REO-EE/_module/nss/fky_chat_cn_cond.nss
Jaysyn904 f82740bbbd Initial commit
Initial commit
2024-02-22 13:22:03 -05:00

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;
}