648 lines
29 KiB
Plaintext
648 lines
29 KiB
Plaintext
//::////////////////////////////////////////////////////////////////////////:://
|
|
//:: SIMTools V3.0 Speech Integration & Management Tools Version 3.0 :://
|
|
//:: Created By: FunkySwerve :://
|
|
//:: Created On: April 4 2006 :://
|
|
//:: Last Updated: March 27 2007 :://
|
|
//:: With Thanks To: :://
|
|
//:: Dumbo - for his amazing plugin :://
|
|
//:: Virusman - for Linux versions, and for the reset plugin, and for :://
|
|
//:: his excellent events plugin, without which this update would not :://
|
|
//:: be possible :://
|
|
//:: Dazzle - for his script samples :://
|
|
//:: Butch - for the emote wand scripts :://
|
|
//:: The DMFI project - for the languages conversions and many of the emotes:://
|
|
//:: Lanessar and the players of the Myth Drannor PW - for the new languages:://
|
|
//:: The players and DMs of Higher Ground for their input and playtesting :://
|
|
//::////////////////////////////////////////////////////////////////////////:://
|
|
|
|
#include "fky_chat_inc"
|
|
|
|
const int NODE_TYPE_STARTING_NODE = 0;
|
|
const int NODE_TYPE_ENTRY_NODE = 1;
|
|
const int NODE_TYPE_REPLY_NODE = 2;
|
|
|
|
int GetCurrentNodeType();
|
|
int GetCurrentNodeID();
|
|
int GetCurrentAbsoluteNodeID();
|
|
|
|
int GetCurrentNodeType()
|
|
{
|
|
SetLocalString(OBJECT_SELF, "NWNX!EVENTS!GETNODETYPE", " ");
|
|
return StringToInt(GetLocalString(OBJECT_SELF, "NWNX!EVENTS!GETNODETYPE"));
|
|
}
|
|
|
|
int GetCurrentNodeID()
|
|
{
|
|
SetLocalString(OBJECT_SELF, "NWNX!EVENTS!GETNODEID", " ");
|
|
return StringToInt(GetLocalString(OBJECT_SELF, "NWNX!EVENTS!GETNODEID"));
|
|
}
|
|
|
|
int GetCurrentAbsoluteNodeID()
|
|
{
|
|
SetLocalString(OBJECT_SELF, "NWNX!EVENTS!GETABSOLUTENODEID", " ");
|
|
return StringToInt(GetLocalString(OBJECT_SELF, "NWNX!EVENTS!GETABSOLUTENODEID"));
|
|
}
|
|
|
|
|
|
int StartingConditional()
|
|
{
|
|
int nNodeType = GetCurrentNodeType();
|
|
int nNodeID = GetCurrentNodeID();
|
|
int nAbsNodeID = GetCurrentAbsoluteNodeID();
|
|
object oPC = GetPCSpeaker();
|
|
int nConvoID = GetLocalInt(oPC, "FKY_CHAT_CONVONUMBER");
|
|
string sMenuTrack = GetLocalString(oPC, "FKY_CHAT_COMMAND_COM_MENU");
|
|
//SendMessageToPC(oPC, "Conditional script for node #"+IntToString(nNodeID)+"/"+IntToString(nAbsNodeID)+" (type "+IntToString(nNodeType)+")");
|
|
switch(nConvoID)
|
|
{
|
|
case 1:
|
|
switch(nNodeID)
|
|
{
|
|
case 2: if ((!ENABLE_WEAPON_VISUALS) && ((!ENABLE_PLAYER_SETNAME) && (!VerifyDMKey(oPC)) && (!VerifyAdminKey(oPC)))) return FALSE; break;
|
|
case 3: if (!ENABLE_LANGUAGES) return FALSE; break;
|
|
case 5: if (!ENABLE_METACHANNELS) return FALSE; break;
|
|
}
|
|
break;
|
|
case 2:
|
|
switch(nNodeID)
|
|
{
|
|
case 0: if (GetLocalInt(oPC, "FKY_CHAT_ANON")) return FALSE; break;
|
|
case 1: if (!GetLocalInt(oPC, "FKY_CHAT_ANON")) return FALSE; break;
|
|
case 3: if ((!(PLAYERS_CAN_DELETE)) && (!(DMS_CAN_DELETE && VerifyDMKey(oPC))) && (!VerifyAdminKey(oPC))) return FALSE; break;
|
|
case 4: if ((!ENABLE_PLAYER_SETTAILWINGS) && (!VerifyDMKey(oPC)) && (!VerifyAdminKey(oPC))) return FALSE; break;
|
|
case 5: if ((!ENABLE_PLAYER_SETTAILWINGS) && (!VerifyDMKey(oPC)) && (!VerifyAdminKey(oPC))) return FALSE; break;
|
|
}
|
|
break;
|
|
case 3:
|
|
switch(nNodeID)
|
|
{
|
|
case 7: if (oPC != GetFactionLeader(oPC)) return FALSE; break;
|
|
}
|
|
break;
|
|
case 4:
|
|
switch(nNodeID)
|
|
{
|
|
case 0: if (!ENABLE_WEAPON_VISUALS) return FALSE; break;
|
|
case 1: if (!ENABLE_WEAPON_VISUALS) return FALSE; break;
|
|
case 2: if (!ENABLE_WEAPON_VISUALS) return FALSE; break;
|
|
case 3: if (!ENABLE_WEAPON_VISUALS) return FALSE; break;
|
|
case 4: if (!ENABLE_WEAPON_VISUALS) return FALSE; break;
|
|
case 5: if (!ENABLE_WEAPON_VISUALS) return FALSE; break;
|
|
case 6: if (!ENABLE_WEAPON_VISUALS) return FALSE; break;
|
|
case 7: if ((!ENABLE_PLAYER_SETNAME) && (!VerifyDMKey(oPC)) && (!VerifyAdminKey(oPC))) return FALSE; break;
|
|
case 8: if ((!ENABLE_PLAYER_SETNAME) && (!VerifyDMKey(oPC)) && (!VerifyAdminKey(oPC))) return FALSE; break;
|
|
}
|
|
break;
|
|
case 5:
|
|
switch(nNodeID)
|
|
{
|
|
case 0: if (!ENABLE_LANGUAGES) return FALSE; break;
|
|
case 1: if (!ENABLE_LANGUAGES) return FALSE; break;
|
|
case 2: if (!ENABLE_LANGUAGES) return FALSE; break;
|
|
case 3: if (!ENABLE_LANGUAGES) return FALSE; break;
|
|
}
|
|
break;
|
|
case 6:
|
|
switch(nNodeID)
|
|
{
|
|
case 4: if (!ENABLE_LANGUAGES) return FALSE; break;
|
|
case 5: if (!ENABLE_LANGUAGES) return FALSE; break;;
|
|
}
|
|
break;
|
|
case 7:
|
|
switch(nNodeID)
|
|
{
|
|
case 0: if (!ENABLE_METACHANNELS) return FALSE; break;
|
|
case 1: if (!ENABLE_METACHANNELS) return FALSE; break;
|
|
case 2: if (!ENABLE_METACHANNELS) return FALSE; break;
|
|
case 3: if (!ENABLE_METACHANNELS) return FALSE; break;
|
|
case 4: if (!ENABLE_METACHANNELS) return FALSE; break;
|
|
case 5: if (!ENABLE_METACHANNELS) return FALSE; break;
|
|
case 6: if (!ENABLE_METACHANNELS) return FALSE; break;
|
|
case 7: if (!ENABLE_METACHANNELS) return FALSE; break;
|
|
}
|
|
break;
|
|
/*case 8: //no conditionals
|
|
break;*/
|
|
case 9:
|
|
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
else if (!GetSpeaksAnyRacialPlanarLanguages(oPC)) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
else if (!GetSpeaksAnyRegionalLanguages(oPC)) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
else if (!GetSpeaksAnyClassLanguages(oPC)) return FALSE;
|
|
break;
|
|
case 3: if (sMenuTrack != "!speak ") return FALSE; break;//other language commands can't be used with common
|
|
case 4: if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return FALSE; break;
|
|
case 5: if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return FALSE; break;
|
|
case 6: if (!(((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) && (VerifyDMKey(oPC) || VerifyAdminKey(oPC)))) return FALSE; break;
|
|
case 7: if (!(((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) && (VerifyDMKey(oPC) || VerifyAdminKey(oPC)))) return FALSE; break;
|
|
}
|
|
break;/*
|
|
case 11:
|
|
break;
|
|
case 12:
|
|
break;*/
|
|
case 13:
|
|
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oPC))) return FALSE;
|
|
break;
|
|
/*case 14:
|
|
break;
|
|
case 15:
|
|
break;
|
|
case 16:
|
|
break;
|
|
case 17:
|
|
break;
|
|
case 18:
|
|
break;
|
|
case 19:
|
|
break;*/
|
|
case 20:
|
|
if (!VerifyAdminKey(oPC)) return FALSE;//node 5 (reletive)
|
|
break;
|
|
/*case 21:
|
|
break;
|
|
case 22:
|
|
break;
|
|
case 23:
|
|
break;
|
|
case 24:
|
|
break;
|
|
case 25:
|
|
break;*/
|
|
case 26:
|
|
switch(nNodeID)
|
|
{
|
|
case 1: if ( ((DM_PLAYERS_HEAR_DM && VerifyDMKey(oPC) && (!GetIsDM(oPC))) || (ADMIN_PLAYERS_HEAR_DM && VerifyAdminKey(oPC) && (!GetIsDM(oPC)))) ||
|
|
((DMS_HEAR_META && VerifyDMKey(oPC) && GetIsDM(oPC)) || (DM_PLAYERS_HEAR_META && VerifyDMKey(oPC) && (!GetIsDM(oPC))) || (ADMIN_DMS_HEAR_META && VerifyAdminKey(oPC) && GetIsDM(oPC)) || (ADMIN_PLAYERS_HEAR_META && VerifyAdminKey(oPC) && (!GetIsDM(oPC)))) ||
|
|
((DMS_HEAR_TELLS && VerifyDMKey(oPC) && GetIsDM(oPC)) || (DM_PLAYERS_HEAR_TELLS && VerifyDMKey(oPC) && (!GetIsDM(oPC))) || (ADMIN_DMS_HEAR_TELLS && VerifyAdminKey(oPC) && GetIsDM(oPC)) || (ADMIN_PLAYERS_HEAR_TELLS && VerifyAdminKey(oPC) && (!GetIsDM(oPC)))) ) return TRUE;
|
|
else return FALSE;
|
|
break;
|
|
case 5: if (!ENABLE_LANGUAGES) return FALSE; break;
|
|
case 6: if (!ENABLE_LANGUAGES) return FALSE; break;
|
|
}
|
|
break;
|
|
case 27:
|
|
switch(nNodeID)
|
|
{
|
|
case 0: if ((DM_PLAYERS_HEAR_DM && VerifyDMKey(oPC) && (!GetIsDM(oPC))) || (ADMIN_PLAYERS_HEAR_DM && VerifyAdminKey(oPC) && (!GetIsDM(oPC)))) return TRUE;
|
|
else return FALSE;
|
|
break;
|
|
case 1: if ((DMS_HEAR_META && VerifyDMKey(oPC) && GetIsDM(oPC)) || (DM_PLAYERS_HEAR_META && VerifyDMKey(oPC) && (!GetIsDM(oPC))) || (ADMIN_DMS_HEAR_META && VerifyAdminKey(oPC) && GetIsDM(oPC)) || (ADMIN_PLAYERS_HEAR_META && VerifyAdminKey(oPC) && (!GetIsDM(oPC)))) return TRUE;
|
|
else return FALSE;
|
|
break;
|
|
case 2: if ((DMS_HEAR_TELLS && VerifyDMKey(oPC) && GetIsDM(oPC)) || (DM_PLAYERS_HEAR_TELLS && VerifyDMKey(oPC) && (!GetIsDM(oPC))) || (ADMIN_DMS_HEAR_TELLS && VerifyAdminKey(oPC) && GetIsDM(oPC)) || (ADMIN_PLAYERS_HEAR_TELLS && VerifyAdminKey(oPC) && (!GetIsDM(oPC))))return TRUE;
|
|
else return FALSE;
|
|
break;
|
|
case 3: if ((DM_PLAYERS_HEAR_DM && VerifyDMKey(oPC) && (!GetIsDM(oPC))) || (ADMIN_PLAYERS_HEAR_DM && VerifyAdminKey(oPC) && (!GetIsDM(oPC)))) return TRUE;
|
|
return FALSE;
|
|
break;
|
|
case 4: if ((DMS_HEAR_META && VerifyDMKey(oPC) && GetIsDM(oPC)) || (DM_PLAYERS_HEAR_META && VerifyDMKey(oPC) && (!GetIsDM(oPC))) || (ADMIN_DMS_HEAR_META && VerifyAdminKey(oPC) && GetIsDM(oPC)) || (ADMIN_PLAYERS_HEAR_META && VerifyAdminKey(oPC) && (!GetIsDM(oPC)))) return TRUE;
|
|
return FALSE;
|
|
break;
|
|
case 5: if ((DMS_HEAR_TELLS && VerifyDMKey(oPC) && GetIsDM(oPC)) || (DM_PLAYERS_HEAR_TELLS && VerifyDMKey(oPC) && (!GetIsDM(oPC))) || (ADMIN_DMS_HEAR_TELLS && VerifyAdminKey(oPC) && GetIsDM(oPC)) || (ADMIN_PLAYERS_HEAR_TELLS && VerifyAdminKey(oPC) && (!GetIsDM(oPC)))) return TRUE;
|
|
return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 34: if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oPC))) return FALSE;//nodes 0-5 (relative)
|
|
break;
|
|
case 36: if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oPC))) return FALSE;//nodes 0-2 (relative)
|
|
break;
|
|
case 50:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetSpeaksAToDRacialPlanarLanguages(oPC)) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetSpeaksEToHRacialPlanarLanguages(oPC)) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetSpeaksIToORacialPlanarLanguages(oPC)) return FALSE;
|
|
break;
|
|
case 3:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetSpeaksPToZRacialPlanarLanguages(oPC)) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 51:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG81")) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG37")) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG4")) return FALSE;
|
|
break;
|
|
case 3:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG6")) return FALSE;
|
|
break;
|
|
case 4:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG78")) return FALSE;
|
|
break;
|
|
case 5:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG65")) return FALSE;
|
|
break;
|
|
case 6:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG89")) return FALSE;
|
|
break;
|
|
case 7:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG63")) return FALSE;
|
|
break;
|
|
case 8:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG32")) return FALSE;
|
|
break;
|
|
case 9:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG13")) return FALSE;
|
|
break;
|
|
case 10:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG64")) return FALSE;
|
|
break;
|
|
case 11:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG1")) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 52:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG9")) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG17")) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG66")) return FALSE;
|
|
break;
|
|
case 3:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG18")) return FALSE;
|
|
break;
|
|
case 4:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG15")) return FALSE;
|
|
break;
|
|
case 5:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG49")) return FALSE;
|
|
break;
|
|
case 6:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG52")) return FALSE;
|
|
break;
|
|
case 7:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG23")) return FALSE;
|
|
break;
|
|
case 8:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG53")) return FALSE;
|
|
break;
|
|
case 9:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG74")) return FALSE;
|
|
break;
|
|
case 10:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG62")) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 53:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG21")) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG61")) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG72")) return FALSE;
|
|
break;
|
|
case 3:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG79")) return FALSE;
|
|
break;
|
|
case 4:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG67")) return FALSE;
|
|
break;
|
|
case 5:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG54")) return FALSE;
|
|
break;
|
|
case 6:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG55")) return FALSE;
|
|
break;
|
|
case 7:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG99")) return FALSE;
|
|
break;
|
|
case 8:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG60")) return FALSE;
|
|
break;
|
|
case 9:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG57")) return FALSE;
|
|
break;
|
|
case 10:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG82")) return FALSE;
|
|
break;
|
|
case 11:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG56")) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 54:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG70")) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG58")) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG68")) return FALSE;
|
|
break;
|
|
case 3:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG73")) return FALSE;
|
|
break;
|
|
case 4:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG59")) return FALSE;
|
|
break;
|
|
case 5:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG75")) return FALSE;
|
|
break;
|
|
case 6:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG36")) return FALSE;
|
|
break;
|
|
case 7:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG40")) return FALSE;
|
|
break;
|
|
case 8:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG51")) return FALSE;
|
|
break;
|
|
case 9:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG41")) return FALSE;
|
|
break;
|
|
case 10:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG50")) return FALSE;
|
|
break;
|
|
case 11:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG46")) return FALSE;
|
|
break;
|
|
case 12:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG69")) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 60:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetSpeaksAToHRegionalLanguages(oPC)) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetSpeaksIToRRegionalLanguages(oPC)) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetSpeaksSToZRegionalLanguages(oPC)) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 61:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG2")) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG3")) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG7")) return FALSE;
|
|
break;
|
|
case 3:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG8")) return FALSE;
|
|
break;
|
|
case 4:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG10")) return FALSE;
|
|
break;
|
|
case 5:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG11")) return FALSE;
|
|
break;
|
|
case 6:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG12")) return FALSE;
|
|
break;
|
|
case 7:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG16")) return FALSE;
|
|
break;
|
|
case 8:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG19")) return FALSE;
|
|
break;
|
|
case 9:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG20")) return FALSE;
|
|
break;
|
|
case 10:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG76")) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 62:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG22")) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG24")) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG25")) return FALSE;
|
|
break;
|
|
case 3:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG26")) return FALSE;
|
|
break;
|
|
case 4:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG27")) return FALSE;
|
|
break;
|
|
case 5:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG28")) return FALSE;
|
|
break;
|
|
case 6:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG29")) return FALSE;
|
|
break;
|
|
case 7:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG30")) return FALSE;
|
|
break;
|
|
case 8:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG31")) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 63:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG33")) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG34")) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG35")) return FALSE;
|
|
break;
|
|
case 3:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG38")) return FALSE;
|
|
break;
|
|
case 4:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG39")) return FALSE;
|
|
break;
|
|
case 5:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG42")) return FALSE;
|
|
break;
|
|
case 6:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG43")) return FALSE;
|
|
break;
|
|
case 7:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG45")) return FALSE;
|
|
break;
|
|
case 8:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG47")) return FALSE;
|
|
break;
|
|
case 9:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG48")) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 70:
|
|
switch(nNodeID)
|
|
{
|
|
case 0:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG5")) return FALSE;
|
|
break;
|
|
case 1:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG14")) return FALSE;
|
|
break;
|
|
case 2:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG71")) return FALSE;
|
|
break;
|
|
case 3:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG80")) return FALSE;
|
|
break;
|
|
case 4:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG77")) return FALSE;
|
|
break;
|
|
case 5:
|
|
if ((sMenuTrack == "dm_learn ") || (sMenuTrack == "dm_unlearn ")) return TRUE;
|
|
if (!GetLocalInt(oPC, "FKY_CHAT_LANG44")) return FALSE;
|
|
break;
|
|
}
|
|
break;
|
|
case 80:
|
|
switch(nAbsNodeID)
|
|
{
|
|
case 22:
|
|
case 24:
|
|
case 25:
|
|
case 127: if (GetGender(oPC) == GENDER_FEMALE) return FALSE; break;
|
|
case 63: if (GetGender(oPC) == GENDER_MALE) return FALSE; break;
|
|
}
|
|
break;
|
|
}
|
|
return TRUE;
|
|
}
|