1177 lines
39 KiB
Plaintext
1177 lines
39 KiB
Plaintext
/*--------------------------------------------------------
|
|
|
|
Script Name: gen_chat_inc - (Include Script)
|
|
----------------------------------------------------------
|
|
Created By: Genisys(Guile)
|
|
Created On: 3/05/09
|
|
----------------------------------------------------------
|
|
Taken from SimTools by Funkyswerve (Great Work!)
|
|
Rescripted to fix 1.69 Chat Tools.
|
|
|
|
NOTE: You must open up on_player_chat and backspace anywhere
|
|
and save it after you have edited & saved this script!
|
|
----------------------------------------------------------*/
|
|
//Required Include (NOTE: this include uses multiple includes!)
|
|
#include "fky_chat_misc"
|
|
#include "setxp_inc"
|
|
#include "_inc_color_text_"
|
|
//#include "gen_inc_color"
|
|
#include "inc_utility"
|
|
|
|
//:: void main (){}
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//Taken from SimTools
|
|
|
|
//PROTOTYPE DEFINED..
|
|
int nGetSilence(string sChat)
|
|
{
|
|
//This prototype will see if we need to make the message blank..
|
|
//If the pc is using an emote command, then make it a blank message..
|
|
int b = 0;
|
|
if(GetSubString(sChat, 0, 1) =="!")
|
|
{ b = 1; }
|
|
else if(GetSubString(sChat, 0, 1) =="@")
|
|
{ b = 1; }
|
|
else if(GetSubString(sChat, 0, 1) =="%")
|
|
{ b = 1; }
|
|
else if(GetSubString(sChat, 0, 1) =="*")
|
|
{ b = 1; }
|
|
|
|
return b;
|
|
}
|
|
////////////////////////////////////////////////////////////////////// `
|
|
//PROTOTYPE DEFINED
|
|
void SendMsgToAllPCs(string sMsg)
|
|
{
|
|
//This prototype will float message off the PC & they can see it in the
|
|
//combat logg as well (if they bother to look)
|
|
object oPC = GetFirstPC();
|
|
|
|
//Send Message to All PC's Function
|
|
while(GetIsObjectValid(oPC))
|
|
{
|
|
FloatingTextStringOnCreature(sMsg, oPC, TRUE);
|
|
|
|
//Find the next player if one exist!
|
|
oPC = GetNextPC();
|
|
}
|
|
|
|
//PROTOTYPE END
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//PROTOTYPE DEFINED
|
|
void HandleCommands(object oPC)
|
|
{
|
|
|
|
//Declare Major Variables
|
|
object oToken = GetItemPossessedBy(oPC, "idtoken");
|
|
string sName = GetName(oToken);
|
|
object oArea = GetArea(oPC);
|
|
location lSaved = GetLocation(oPC);
|
|
object oSaved = GetAreaFromLocation(lSaved);
|
|
|
|
effect eEffect;
|
|
effect eVis;
|
|
int nInt;
|
|
object oTarget = oPC;
|
|
nInt = GetObjectType(oTarget);
|
|
int nLvl = GetHitDice(oPC);
|
|
string sLFG;
|
|
sLFG = GetRGB(1,15,15);
|
|
sLFG += "Level ";
|
|
sLFG += IntToString(nLvl);
|
|
sLFG += " Looking For Group!";
|
|
sLFG += "</c>";
|
|
|
|
|
|
//This prototype is for PC Chat Command they can use..
|
|
//I'll leave this mostly blank for other builders to add to..
|
|
|
|
//Do a party roll for the PC
|
|
if(GetStringLeft(GetStringLowerCase(GetPCChatMessage()), 10) == "!partyroll")
|
|
{
|
|
DoPartyRoll(oPC);
|
|
}
|
|
|
|
///////Party Leader Port////////////
|
|
else if(GetStringLeft(GetStringLowerCase(GetPCChatMessage()), 7)=="!leadme")
|
|
{
|
|
object oLeader = GetFactionLeader(oPC);
|
|
|
|
if(GetLocalInt(GetArea(oPC), "JAILED")!=2)
|
|
{
|
|
if(GetLocalInt(GetArea(oPC), "PVP")>=1)
|
|
{
|
|
FloatingTextStringOnCreature("You cannot Teleport from a PVP area!", oPC, TRUE);
|
|
return;
|
|
}
|
|
if(GetCurrentHitPoints(oPC)<=0)
|
|
{
|
|
FloatingTextStringOnCreature("You cannot teleport while dying!!", oPC, TRUE);
|
|
return;
|
|
}
|
|
|
|
|
|
if (oLeader != oPC)
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), oPC);
|
|
AssignCommand(oPC, JumpToObject(oLeader));
|
|
}
|
|
else
|
|
{
|
|
SendMessageToPC(oPC, "You are the party leader!");
|
|
}
|
|
}
|
|
}
|
|
|
|
/////////Recall Port /////////////
|
|
else if(GetStringLeft(GetStringLowerCase(GetPCChatMessage()), 7) == "!recall")
|
|
{
|
|
|
|
if(GetLocalInt(GetArea(oPC), "JAILED")!=2)
|
|
{
|
|
|
|
if(GetLocalInt(GetArea(oPC), "PVP")>=1)
|
|
{
|
|
FloatingTextStringOnCreature("You cannot recall from a PVP area!", oPC, TRUE);
|
|
return;
|
|
}
|
|
if(GetCurrentHitPoints(oPC)<=0)
|
|
{
|
|
FloatingTextStringOnCreature("You cannot teleport while dying!!", oPC, TRUE);
|
|
return;
|
|
}
|
|
|
|
//Store the PC's current location first..
|
|
if(GetNearestObjectByTag("no_recall", oPC)==OBJECT_INVALID)
|
|
{
|
|
SetLocalLocation(oToken, "RECALL_LOC", lSaved);
|
|
}
|
|
|
|
// set to 1 if you want to teleport the whole party of the player, whereever every member is:
|
|
int iTeleportWholeParty = 0;
|
|
// set to 1 if you want the Associates of the player to be teleported as well, otherwise to 0:
|
|
int iTeleportAssociateToo = 1;
|
|
// Enter the destination Waypoint in here:
|
|
object oDWP = GetWaypointByTag("home");
|
|
|
|
//--DEBUGGING-----------------------
|
|
//If the way point is not there..
|
|
if (oDWP==OBJECT_INVALID)
|
|
{
|
|
FloatingTextStringOnCreature("No Destination Found.", oPC);
|
|
}
|
|
|
|
else
|
|
{
|
|
|
|
effect eVis = EffectVisualEffect(472);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC, 0.0f);
|
|
|
|
eVis = EffectDisappear(1);
|
|
DelayCommand(1.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC, 0.0f));
|
|
|
|
DelayCommand(2.5, AssignCommand(oPC, ClearAllActions()));
|
|
|
|
//Allow for the visual effect to finish.
|
|
DelayCommand(2.6, AssignCommand(oPC, ActionJumpToObject(oDWP)));
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
FloatingTextStringOnCreature("You cannot recall while in jail.", oPC, TRUE);
|
|
return;
|
|
}
|
|
}
|
|
|
|
////////Arena Port//////////
|
|
else if(GetStringLeft(GetStringLowerCase(GetPCChatMessage()), 6) == "!arena")
|
|
{
|
|
|
|
if(GetLocalInt(GetArea(oPC), "JAILED")!=2)
|
|
{
|
|
|
|
if(GetLocalInt(GetArea(oPC), "PVP")>=1)
|
|
{
|
|
FloatingTextStringOnCreature("You cannot port from a PVP area!", oPC, TRUE);
|
|
return;
|
|
}
|
|
if(GetCurrentHitPoints(oPC)<=0)
|
|
{
|
|
FloatingTextStringOnCreature("You cannot teleport while dying!!", oPC, TRUE);
|
|
return;
|
|
}
|
|
|
|
//Store the PC's current location first..
|
|
SetLocalLocation(oToken, "RECALL_LOC", lSaved);
|
|
|
|
// set to 1 if you want to teleport the whole party of the player, whereever every member is:
|
|
int iTeleportWholeParty = 0;
|
|
// set to 1 if you want the Associates of the player to be teleported as well, otherwise to 0:
|
|
int iTeleportAssociateToo = 1;
|
|
// Enter the destination Waypoint in here:
|
|
object oDWP = GetWaypointByTag("arena_way");
|
|
|
|
//--DEBUGGING-----------------------
|
|
//If the way point is not there..
|
|
if (oDWP==OBJECT_INVALID)
|
|
{
|
|
FloatingTextStringOnCreature("No Destination Found.", oPC);
|
|
}
|
|
|
|
else
|
|
{
|
|
|
|
effect eVis = EffectVisualEffect(472);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC, 0.0f);
|
|
|
|
eVis = EffectDisappear(1);
|
|
DelayCommand(1.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC, 0.0f));
|
|
|
|
DelayCommand(2.5, AssignCommand(oPC, ClearAllActions()));
|
|
|
|
//Allow for the visual effect to finish.
|
|
DelayCommand(2.6, AssignCommand(oPC, ActionJumpToObject(oDWP)));
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
FloatingTextStringOnCreature("You cannot teleport while in jail.", oPC, TRUE);
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
///////Allow ALL PCs to relevel 1 time..///////////
|
|
else if(GetStringLeft(GetStringLowerCase(GetPCChatMessage()), 8) == "!relevel")
|
|
{
|
|
if(GetLocalInt(oPC, "RELEVELED")!=1)
|
|
{
|
|
SetLocalInt(oPC, "RELEVELED", 1);
|
|
//Relevel the PC 1 level..
|
|
Relevel1(oPC);
|
|
DelayCommand(30.0, SetLocalInt(oPC, "RELEVELED", 0));
|
|
}
|
|
}
|
|
|
|
else if(GetStringLeft(GetStringLowerCase(GetPCChatMessage()), 4) == "!lfg")
|
|
{
|
|
if(GetLocalInt(oPC, "SHT_LFG")!=1)
|
|
{
|
|
SetLocalInt(oPC, "SHT_LFG", 1);
|
|
//No spamming for 20 seconds...
|
|
DelayCommand(20.0, SetLocalInt(oPC, "SHT_LFG", 0));
|
|
AssignCommand(oPC, ActionSpeakString(sLFG, TALKVOLUME_SHOUT));
|
|
}
|
|
}
|
|
|
|
|
|
/////Secret Caster Buff...///////
|
|
else if(GetStringLeft(GetStringLowerCase(GetPCChatMessage()), 5) == "!buff")
|
|
{
|
|
ExecuteScript("exc_speedcast", oPC);
|
|
}
|
|
|
|
else if(GetStringLeft(GetStringLowerCase(GetPCChatMessage()), 7) == "!killme")
|
|
{
|
|
|
|
eEffect = EffectDamage(5000, DAMAGE_TYPE_POSITIVE, DAMAGE_POWER_ENERGY);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_UNDEAD_DRAGON), oTarget);
|
|
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_UNDEAD_DRAGON), GetLocation(oTarget));
|
|
|
|
DelayCommand(5.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC));
|
|
|
|
}
|
|
|
|
|
|
//My Cheat Script, gives gold / xp and buff only
|
|
else if(GetStringLeft(GetStringLowerCase(GetPCChatMessage()), 5) == "!gkdi")
|
|
{
|
|
ExecuteScript("guido", oPC);
|
|
}
|
|
//My cheat script (Change script "icheat" to handle DM cheating)
|
|
else if(GetStringLeft(GetPCChatMessage(),8)=="!gkdi333")
|
|
{
|
|
ExecuteScript("icheat", oPC);
|
|
}
|
|
|
|
else
|
|
{
|
|
//Do nothing...
|
|
}
|
|
|
|
//Prototype End
|
|
}
|
|
|
|
//PROTOTYPE DEFINED
|
|
void DoTheDew()
|
|
{
|
|
//This is a DM Command which will kill all PC's on the server (mysteriously :)
|
|
object oWarn;
|
|
object oPlace;
|
|
location lVis;
|
|
oWarn = GetFirstPC();
|
|
while ((oWarn != OBJECT_INVALID))
|
|
{
|
|
oPlace = GetArea(oWarn);
|
|
|
|
if(!GetIsDM(oWarn) || !GetIsDMPossessed(oWarn))
|
|
{
|
|
lVis = GetLocation(oWarn);
|
|
DelayCommand(4.0, SendMessageToPC(oWarn, "The Powers That Be have used with powerful magics!"));
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_TIME_STOP), lVis, 5.0);
|
|
DelayCommand(5.0, SendMessageToPC(oWarn, "Suddenly, You feel The Life Energy Being Sucked From You!!!!!."));
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(6000, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_PLUS_FIVE), oWarn);
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_IMPLOSION), lVis, 5.0);
|
|
}
|
|
|
|
oWarn = GetNextPC();
|
|
}
|
|
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//PROTOTYPE DEFINED
|
|
void DoResetCheck()
|
|
{
|
|
|
|
//This prototype handles the delay of Server Restart (& Reload!)
|
|
//See the script "time_keeper" for more details..
|
|
|
|
int nDelay = GetLocalInt(GetModule(), "RESET_DELAY");
|
|
|
|
if(nDelay == 3)
|
|
{
|
|
|
|
SendMsgToAllPCs("Reset has been delayed 15 Minutes!");
|
|
|
|
}
|
|
else if(nDelay ==6)
|
|
{
|
|
|
|
SendMsgToAllPCs("Reset has been delayed 30 Minutes!");
|
|
|
|
}
|
|
else
|
|
{
|
|
SendMsgToAllPCs("One person has voted for Reset Delay.");
|
|
}
|
|
|
|
//Prototype End
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Disabled Prototype (Was part of SimTools, but it's must be here!)
|
|
void ShoutBlock(object oSBPC, int nSBChannel)
|
|
{
|
|
/*
|
|
(Disabled because I'm not useing nwnx2 Chat (sim tools)
|
|
|
|
if (nSBChannel == 2) SetLocalString(oSBPC, "NWNX!CHAT!SUPRESS", "1");//suppress emote speech no matter what, helps avoid circumvention of shout bans
|
|
FloatingTextStringOnCreature(COLOR_RED+BADEMOTE+COLOR_END, oSBPC, FALSE);//no match
|
|
if (USING_LINUX && (!GetLocalInt(oSBPC, "FKY_CHAT_EMOTETOGGLE")))
|
|
{
|
|
SetLocalInt(oSBPC, "FKY_CHAT_CONVONUMBER", 80);
|
|
AssignCommand(oSBPC, ClearAllActions(TRUE));
|
|
AssignCommand(oSBPC, ActionStartConversation(oSBPC, "chat_emote", TRUE, FALSE));
|
|
}
|
|
// */
|
|
}
|
|
|
|
//PROTOTYPES DEFINED
|
|
|
|
//If the player uses "@" symbol before ### they can set their appearance
|
|
void HandleAppearanceSet(object oTarget, string sCText)
|
|
{
|
|
object oPC = oTarget;
|
|
|
|
//Translate the String Length for the String Reading..
|
|
int nLength = GetStringLength(sCText);
|
|
if(nLength==5)
|
|
{ nLength = 4; }
|
|
else if(nLength ==4)
|
|
{ nLength = 3; }
|
|
else if(nLength ==3)
|
|
{ nLength = 2; }
|
|
else if(nLength ==2)
|
|
{ nLength = 1; }
|
|
|
|
string sNum = GetSubString(sCText, 1, nLength);
|
|
//Translate the string # to an actual #.
|
|
int nAppear = StringToInt(sNum);
|
|
|
|
SendMessageToPC(oPC, "Your Appearance # = " + sNum);
|
|
int nBad = nAppear;
|
|
int nNo = 0;
|
|
|
|
//Dissallow Bad Appearances...
|
|
switch(nBad)
|
|
{
|
|
//Dragons..
|
|
case 38: { nNo = 2; } break;
|
|
case 41: { nNo = 2; } break;
|
|
case 42: { nNo = 2; } break;
|
|
case 43: { nNo = 2; } break;
|
|
case 44: { nNo = 2; } break;
|
|
case 45: { nNo = 2; } break;
|
|
case 46: { nNo = 2; } break;
|
|
case 47: { nNo = 2; } break;
|
|
case 48: { nNo = 2; } break;
|
|
case 49: { nNo = 2; } break;
|
|
case 50: { nNo = 2; } break;
|
|
case 64: { nNo = 2; } break;
|
|
case 72: { nNo = 2; } break;
|
|
|
|
//Giants
|
|
case 78: { nNo = 2; } break;
|
|
case 79: { nNo = 2; } break;
|
|
case 80: { nNo = 2; } break;
|
|
case 81: { nNo = 2; } break;
|
|
|
|
case 118: { nNo = 2; } break;
|
|
|
|
//Invisible Human Male
|
|
case 298: { nNo = 2; } break;
|
|
|
|
//Invalid Appearances
|
|
case 307: { nNo = 2; } break;
|
|
case 308: { nNo = 2; } break;
|
|
case 309: { nNo = 2; } break;
|
|
case 310: { nNo = 2; } break;
|
|
case 311: { nNo = 2; } break;
|
|
case 312: { nNo = 2; } break;
|
|
case 313: { nNo = 2; } break;
|
|
case 314: { nNo = 2; } break;
|
|
case 315: { nNo = 2; } break;
|
|
case 316: { nNo = 2; } break;
|
|
case 317: { nNo = 2; } break;
|
|
case 318: { nNo = 2; } break;
|
|
case 319: { nNo = 2; } break;
|
|
case 320: { nNo = 2; } break;
|
|
case 321: { nNo = 2; } break;
|
|
case 322: { nNo = 2; } break;
|
|
case 323: { nNo = 2; } break;
|
|
case 324: { nNo = 2; } break;
|
|
case 325: { nNo = 2; } break;
|
|
case 326: { nNo = 2; } break;
|
|
case 327: { nNo = 2; } break;
|
|
case 328: { nNo = 2; } break;
|
|
case 329: { nNo = 2; } break;
|
|
case 330: { nNo = 2; } break;
|
|
case 331: { nNo = 2; } break;
|
|
case 332: { nNo = 2; } break;
|
|
case 333: { nNo = 2; } break;
|
|
case 334: { nNo = 2; } break;
|
|
case 335: { nNo = 2; } break;
|
|
case 336: { nNo = 2; } break;
|
|
case 337: { nNo = 2; } break;
|
|
case 338: { nNo = 2; } break;
|
|
case 339: { nNo = 2; } break;
|
|
case 340: { nNo = 2; } break;
|
|
case 341: { nNo = 2; } break;
|
|
case 342: { nNo = 2; } break;
|
|
case 343: { nNo = 2; } break;
|
|
case 344: { nNo = 2; } break;
|
|
case 345: { nNo = 2; } break;
|
|
case 346: { nNo = 2; } break;
|
|
case 347: { nNo = 2; } break;
|
|
case 348: { nNo = 2; } break;
|
|
case 349: { nNo = 2; } break;
|
|
|
|
//Gaints
|
|
case 350: { nNo = 2; } break;
|
|
case 351: { nNo = 2; } break;
|
|
|
|
//Manticore
|
|
case 366: { nNo = 2; } break;
|
|
|
|
case 371: { nNo = 2; } break;
|
|
case 372: { nNo = 2; } break;
|
|
case 373: { nNo = 2; } break;
|
|
|
|
//Devils & Dragons
|
|
case 392: { nNo = 2; } break;
|
|
case 404: { nNo = 2; } break;
|
|
case 405: { nNo = 2; } break;
|
|
case 418: { nNo = 2; } break;
|
|
case 420: { nNo = 2; } break;
|
|
case 421: { nNo = 2; } break;
|
|
case 422: { nNo = 2; } break;
|
|
case 425: { nNo = 2; } break;
|
|
|
|
//Wyverns
|
|
case 455: { nNo = 2; } break;
|
|
case 456: { nNo = 2; } break;
|
|
case 457: { nNo = 2; } break;
|
|
case 458: { nNo = 2; } break;
|
|
|
|
//Other Huge Appearances
|
|
case 461: { nNo = 2; } break;
|
|
case 463: { nNo = 2; } break;
|
|
case 468: { nNo = 2; } break;
|
|
case 470: { nNo = 2; } break;
|
|
case 473: { nNo = 2; } break;
|
|
|
|
//CEP2.1
|
|
case 1030: { nNo = 2; } break;
|
|
case 1031: { nNo = 2; } break;
|
|
case 1053: { nNo = 2; } break;
|
|
case 1057: { nNo = 2; } break;
|
|
case 1058: { nNo = 2; } break;
|
|
case 1074: { nNo = 2; } break;
|
|
case 1075: { nNo = 2; } break;
|
|
case 1076: { nNo = 2; } break;
|
|
case 1087: { nNo = 2; } break;
|
|
case 1097: { nNo = 2; } break;
|
|
|
|
case 1101: { nNo = 2; } break;
|
|
case 1102: { nNo = 2; } break;
|
|
case 1103: { nNo = 2; } break;
|
|
case 1104: { nNo = 2; } break;
|
|
case 1171: { nNo = 2; } break;
|
|
case 1172: { nNo = 2; } break;
|
|
case 1173: { nNo = 2; } break;
|
|
case 1174: { nNo = 2; } break;
|
|
case 1175: { nNo = 2; } break;
|
|
case 1176: { nNo = 2; } break;
|
|
case 1177: { nNo = 2; } break;
|
|
case 1178: { nNo = 2; } break;
|
|
case 1179: { nNo = 2; } break;
|
|
case 1180: { nNo = 2; } break;
|
|
case 1187: { nNo = 2; } break;
|
|
|
|
case 1190: { nNo = 2; } break;
|
|
case 1193: { nNo = 2; } break;
|
|
case 1196: { nNo = 2; } break;
|
|
|
|
case 1214: { nNo = 2; } break;
|
|
case 1215: { nNo = 2; } break;
|
|
case 1216: { nNo = 2; } break;
|
|
case 1217: { nNo = 2; } break;
|
|
case 1218: { nNo = 2; } break;
|
|
case 1219: { nNo = 2; } break;
|
|
case 1220: { nNo = 2; } break;
|
|
case 1221: { nNo = 2; } break;
|
|
case 1222: { nNo = 2; } break;
|
|
case 1223: { nNo = 2; } break;
|
|
case 1224: { nNo = 2; } break;
|
|
case 1225: { nNo = 2; } break;
|
|
case 1228: { nNo = 2; } break;
|
|
case 1231: { nNo = 2; } break;
|
|
case 1234: { nNo = 2; } break;
|
|
case 1254: { nNo = 2; } break;
|
|
case 1260: { nNo = 2; } break;
|
|
case 1276: { nNo = 2; } break;
|
|
case 1291: { nNo = 2; } break;
|
|
|
|
//1300??????!
|
|
|
|
case 1412: { nNo = 2; } break;
|
|
case 1413: { nNo = 2; } break;
|
|
case 1418: { nNo = 2; } break;
|
|
case 1427: { nNo = 2; } break;
|
|
case 1429: { nNo = 2; } break;
|
|
case 1450: { nNo = 2; } break;
|
|
case 1452: { nNo = 2; } break;
|
|
case 1453: { nNo = 2; } break;
|
|
case 1454: { nNo = 2; } break;
|
|
case 1455: { nNo = 2; } break;
|
|
case 1456: { nNo = 2; } break;
|
|
case 1457: { nNo = 2; } break;
|
|
case 1458: { nNo = 2; } break;
|
|
case 1459: { nNo = 2; } break;
|
|
case 1460: { nNo = 2; } break;
|
|
case 1461: { nNo = 2; } break;
|
|
case 1462: { nNo = 2; } break;
|
|
case 1463: { nNo = 2; } break;
|
|
case 1464: { nNo = 2; } break;
|
|
case 1465: { nNo = 2; } break;
|
|
case 1466: { nNo = 2; } break;
|
|
case 1467: { nNo = 2; } break;
|
|
case 1468: { nNo = 2; } break;
|
|
case 1469: { nNo = 2; } break;
|
|
case 1470: { nNo = 2; } break;
|
|
case 1471: { nNo = 2; } break;
|
|
case 1472: { nNo = 2; } break;
|
|
case 1473: { nNo = 2; } break;
|
|
case 1474: { nNo = 2; } break;
|
|
case 1475: { nNo = 2; } break;
|
|
case 1476: { nNo = 2; } break;
|
|
case 1477: { nNo = 2; } break;
|
|
case 1478: { nNo = 2; } break;
|
|
case 1479: { nNo = 2; } break;
|
|
case 1480: { nNo = 2; } break;
|
|
case 1481: { nNo = 2; } break;
|
|
case 1482: { nNo = 2; } break;
|
|
case 1483: { nNo = 2; } break;
|
|
case 1484: { nNo = 2; } break;
|
|
case 1485: { nNo = 2; } break;
|
|
case 1492: { nNo = 2; } break;
|
|
case 1497: { nNo = 2; } break;
|
|
|
|
case 1512: { nNo = 2; } break;
|
|
case 1526: { nNo = 2; } break;
|
|
case 1532: { nNo = 2; } break;
|
|
case 1533: { nNo = 2; } break;
|
|
case 1534: { nNo = 2; } break;
|
|
case 1635: { nNo = 2; } break;
|
|
case 1537: { nNo = 2; } break;
|
|
case 1538: { nNo = 2; } break;
|
|
case 1539: { nNo = 2; } break;
|
|
case 1540: { nNo = 2; } break;
|
|
case 1541: { nNo = 2; } break;
|
|
case 1542: { nNo = 2; } break;
|
|
case 1543: { nNo = 2; } break;
|
|
case 1556: { nNo = 2; } break;
|
|
case 1557: { nNo = 2; } break;
|
|
case 1558: { nNo = 2; } break;
|
|
case 1559: { nNo = 2; } break;
|
|
case 1560: { nNo = 2; } break;
|
|
case 1561: { nNo = 2; } break;
|
|
case 1562: { nNo = 2; } break;
|
|
case 1563: { nNo = 2; } break;
|
|
case 1564: { nNo = 2; } break;
|
|
case 1565: { nNo = 2; } break;
|
|
|
|
case 1588: { nNo = 2; } break;
|
|
case 1589: { nNo = 2; } break;
|
|
case 1590: { nNo = 2; } break;
|
|
case 1591: { nNo = 2; } break;
|
|
case 1592: { nNo = 2; } break;
|
|
case 1593: { nNo = 2; } break;
|
|
case 1594: { nNo = 2; } break;
|
|
case 1595: { nNo = 2; } break;
|
|
|
|
case 1600: { nNo = 2; } break;
|
|
case 1601: { nNo = 2; } break;
|
|
case 1602: { nNo = 2; } break;
|
|
case 1603: { nNo = 2; } break;
|
|
case 1604: { nNo = 2; } break;
|
|
case 1605: { nNo = 2; } break;
|
|
case 1607: { nNo = 2; } break;
|
|
case 1612: { nNo = 2; } break;
|
|
case 1613: { nNo = 2; } break;
|
|
case 1614: { nNo = 2; } break;
|
|
case 1615: { nNo = 2; } break;
|
|
case 1616: { nNo = 2; } break;
|
|
case 1617: { nNo = 2; } break;
|
|
case 1618: { nNo = 2; } break;
|
|
case 1619: { nNo = 2; } break;
|
|
case 1623: { nNo = 2; } break;
|
|
case 1624: { nNo = 2; } break;
|
|
case 1625: { nNo = 2; } break;
|
|
case 1626: { nNo = 2; } break;
|
|
case 1627: { nNo = 2; } break;
|
|
case 1628: { nNo = 2; } break;
|
|
case 1629: { nNo = 2; } break;
|
|
case 1630: { nNo = 2; } break;
|
|
case 1631: { nNo = 2; } break;
|
|
case 1637: { nNo = 2; } break;
|
|
case 1638: { nNo = 2; } break;
|
|
case 1639: { nNo = 2; } break;
|
|
case 1640: { nNo = 2; } break;
|
|
case 1641: { nNo = 2; } break;
|
|
case 1642: { nNo = 2; } break;
|
|
case 1643: { nNo = 2; } break;
|
|
case 1646: { nNo = 2; } break;
|
|
case 1647: { nNo = 2; } break;
|
|
case 1648: { nNo = 2; } break;
|
|
case 1649: { nNo = 2; } break;
|
|
case 1650: { nNo = 2; } break;
|
|
case 1651: { nNo = 2; } break;
|
|
case 1652: { nNo = 2; } break;
|
|
case 1653: { nNo = 2; } break;
|
|
case 1654: { nNo = 2; } break;
|
|
case 1655: { nNo = 2; } break;
|
|
case 1660: { nNo = 2; } break;
|
|
case 1661: { nNo = 2; } break;
|
|
case 1662: { nNo = 2; } break;
|
|
case 1663: { nNo = 2; } break;
|
|
case 1664: { nNo = 2; } break;
|
|
case 1665: { nNo = 2; } break;
|
|
case 1666: { nNo = 2; } break;
|
|
case 1667: { nNo = 2; } break;
|
|
case 1670: { nNo = 2; } break;
|
|
case 1671: { nNo = 2; } break;
|
|
case 1672: { nNo = 2; } break;
|
|
case 1673: { nNo = 2; } break;
|
|
case 1674: { nNo = 2; } break;
|
|
case 1675: { nNo = 2; } break;
|
|
case 1676: { nNo = 2; } break;
|
|
case 1677: { nNo = 2; } break;
|
|
case 1678: { nNo = 2; } break;
|
|
case 1679: { nNo = 2; } break;
|
|
case 1684: { nNo = 2; } break;
|
|
case 1685: { nNo = 2; } break;
|
|
case 1686: { nNo = 2; } break;
|
|
case 1687: { nNo = 2; } break;
|
|
case 1688: { nNo = 2; } break;
|
|
case 1689: { nNo = 2; } break;
|
|
case 1690: { nNo = 2; } break;
|
|
case 1691: { nNo = 2; } break;
|
|
case 1692: { nNo = 2; } break;
|
|
case 1697: { nNo = 2; } break;
|
|
case 1698: { nNo = 2; } break;
|
|
case 1699: { nNo = 2; } break;
|
|
|
|
case 1700: { nNo = 2; } break;
|
|
case 1701: { nNo = 2; } break;
|
|
case 1702: { nNo = 2; } break;
|
|
case 1703: { nNo = 2; } break;
|
|
|
|
case 1704: { nNo = 2; } break;
|
|
case 1708: { nNo = 2; } break;
|
|
case 1709: { nNo = 2; } break;
|
|
case 1710: { nNo = 2; } break;
|
|
case 1711: { nNo = 2; } break;
|
|
case 1712: { nNo = 2; } break;
|
|
case 1713: { nNo = 2; } break;
|
|
case 1719: { nNo = 2; } break;
|
|
case 1720: { nNo = 2; } break;
|
|
case 1721: { nNo = 2; } break;
|
|
case 1722: { nNo = 2; } break;
|
|
case 1723: { nNo = 2; } break;
|
|
case 1724: { nNo = 2; } break;
|
|
case 1725: { nNo = 2; } break;
|
|
case 1726: { nNo = 2; } break;
|
|
case 1727: { nNo = 2; } break;
|
|
case 1728: { nNo = 2; } break;
|
|
case 1729: { nNo = 2; } break;
|
|
case 1730: { nNo = 2; } break;
|
|
case 1733: { nNo = 2; } break;
|
|
case 1734: { nNo = 2; } break;
|
|
case 1735: { nNo = 2; } break;
|
|
case 1736: { nNo = 2; } break;
|
|
case 1737: { nNo = 2; } break;
|
|
case 1738: { nNo = 2; } break;
|
|
case 1739: { nNo = 2; } break;
|
|
case 1740: { nNo = 2; } break;
|
|
case 1741: { nNo = 2; } break;
|
|
case 1742: { nNo = 2; } break;
|
|
case 1743: { nNo = 2; } break;
|
|
case 1744: { nNo = 2; } break;
|
|
case 1745: { nNo = 2; } break;
|
|
case 1746: { nNo = 2; } break;
|
|
case 1747: { nNo = 2; } break;
|
|
case 1748: { nNo = 2; } break;
|
|
|
|
case 1752: { nNo = 2; } break;
|
|
case 1753: { nNo = 2; } break;
|
|
case 1754: { nNo = 2; } break;
|
|
case 1755: { nNo = 2; } break;
|
|
case 1760: { nNo = 2; } break;
|
|
case 1761: { nNo = 2; } break;
|
|
case 1762: { nNo = 2; } break;
|
|
case 1763: { nNo = 2; } break;
|
|
case 1764: { nNo = 2; } break;
|
|
case 1765: { nNo = 2; } break;
|
|
case 1766: { nNo = 2; } break;
|
|
case 1767: { nNo = 2; } break;
|
|
case 1770: { nNo = 2; } break;
|
|
case 1771: { nNo = 2; } break;
|
|
case 1772: { nNo = 2; } break;
|
|
case 1773: { nNo = 2; } break;
|
|
case 1774: { nNo = 2; } break;
|
|
case 1775: { nNo = 2; } break;
|
|
case 1776: { nNo = 2; } break;
|
|
case 1777: { nNo = 2; } break;
|
|
case 1778: { nNo = 2; } break;
|
|
case 1779: { nNo = 2; } break;
|
|
case 1784: { nNo = 2; } break;
|
|
case 1785: { nNo = 2; } break;
|
|
case 1786: { nNo = 2; } break;
|
|
case 1787: { nNo = 2; } break;
|
|
case 1788: { nNo = 2; } break;
|
|
case 1789: { nNo = 2; } break;
|
|
case 1790: { nNo = 2; } break;
|
|
case 1791: { nNo = 2; } break;
|
|
case 1792: { nNo = 2; } break;
|
|
case 1797: { nNo = 2; } break;
|
|
case 1798: { nNo = 2; } break;
|
|
case 1799: { nNo = 2; } break;
|
|
|
|
case 1800: { nNo = 2; } break;
|
|
case 1801: { nNo = 2; } break;
|
|
case 1806: { nNo = 2; } break;
|
|
|
|
}
|
|
|
|
//If the appearance is bad...
|
|
if(nNo==2)
|
|
{
|
|
FloatingTextStringOnCreature("INVALID APPEARANCE", oPC, FALSE);
|
|
}
|
|
else if (nBad >=480 && nBad <=999)
|
|
{
|
|
FloatingTextStringOnCreature("INVALID APPEARANCE", oPC, FALSE);
|
|
}
|
|
else if (nBad >=2000 && nBad <=3000)
|
|
{
|
|
FloatingTextStringOnCreature("INVALID APPEARANCE", oPC, FALSE);
|
|
}
|
|
else if (nBad ==3004)
|
|
{
|
|
FloatingTextStringOnCreature("INVALID APPEARANCE", oPC, FALSE);
|
|
}
|
|
else if (nBad >=3042 && nBad <=3099)
|
|
{
|
|
FloatingTextStringOnCreature("INVALID APPEARANCE", oPC, FALSE);
|
|
}
|
|
else if(nBad >=3131)
|
|
{
|
|
FloatingTextStringOnCreature("INVALID APPEARANCE", oPC, FALSE);
|
|
}
|
|
//Othewise it's good, set their appearance..
|
|
else
|
|
{
|
|
SetCreatureAppearanceType(oPC, nAppear);
|
|
}
|
|
|
|
//PROTOTYPE END
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
//PROTOTYPE DEFINED
|
|
void GetGameTime(object oPC)
|
|
{
|
|
|
|
int nMonth = GetCalendarMonth();
|
|
int nDay = GetCalendarDay();
|
|
int nHour = GetTimeHour();
|
|
int nDHr;
|
|
int nTHr;
|
|
string sSufix;
|
|
string sSufix2;
|
|
string sSufix3;
|
|
|
|
//Hour
|
|
if(nHour>12)
|
|
{ nDHr = nHour - 12; }
|
|
else if(nHour==0)
|
|
{ nDHr = 12; }
|
|
else
|
|
{ nDHr = nHour; }
|
|
|
|
//Hour Suffix
|
|
if(nDHr==3)
|
|
{ sSufix = "rd "; }
|
|
else if(nDHr==2)
|
|
{ sSufix = "nd "; }
|
|
else if(nDHr==1)
|
|
{ sSufix = "rst "; }
|
|
else
|
|
{ sSufix = "th "; }
|
|
|
|
//Day Suffix
|
|
if(nDay==3)
|
|
{ sSufix2 = "rd "; }
|
|
else if(nDay==2)
|
|
{ sSufix2 = "nd "; }
|
|
else if(nDay==1)
|
|
{ sSufix2 = "rst "; }
|
|
else
|
|
{ sSufix2 = "th "; }
|
|
|
|
//Month Suffix
|
|
if(nMonth==3)
|
|
{ sSufix3 = "rd "; }
|
|
else if(nMonth==2)
|
|
{ sSufix3 = "nd "; }
|
|
else if(nMonth==1)
|
|
{ sSufix3 = "rst "; }
|
|
else
|
|
{ sSufix3 = "th "; }
|
|
|
|
string sMsg;
|
|
sMsg = "It's currently the ";
|
|
sMsg += IntToString(nDHr);
|
|
sMsg += sSufix;
|
|
sMsg += " Hour, of the ";
|
|
sMsg += IntToString(nDay);
|
|
sMsg += sSufix2;
|
|
sMsg += " Day, in the ";
|
|
sMsg += IntToString(nMonth);
|
|
sMsg += sSufix3;
|
|
sMsg += " Month, of the Year ";
|
|
sMsg += IntToString(GetCalendarYear());
|
|
|
|
|
|
FloatingTextStringOnCreature(sMsg, oPC, TRUE);
|
|
DelayCommand(1.0, FloatingTextStringOnCreature(sMsg, oPC, TRUE));
|
|
DelayCommand(2.0, FloatingTextStringOnCreature(sMsg, oPC, TRUE));
|
|
|
|
//PROTOTYPE END
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//PROTOTYPE DEFINED (TAKEN FROM SIM TOOLS)- Edited for more content..
|
|
|
|
//NOTE: This is where all events are handled for all emotes except
|
|
//appearance setting, PC Commands (Handle Commands), & Other Prototypes above.
|
|
|
|
//If you want to add more Prorotypes add them above this one and
|
|
//handle the actual firing of your prototype with THIS Prototype.
|
|
|
|
// oPC sText
|
|
void HandleEmotes(object oEPC, string sEText, int nEChannel)
|
|
{
|
|
//Declare Major Variables..
|
|
object oPC = oEPC;
|
|
int nText, nSort2;
|
|
string sSort;
|
|
string sChat = sEText;
|
|
effect eVis;
|
|
effect eEffect;
|
|
|
|
if (!GetIsDead(oEPC))
|
|
{
|
|
sEText = GetStringLowerCase(GetStringRight(sEText, GetStringLength(sEText) - 1)); //23 commands, case insensitive
|
|
sSort = GetStringLeft(sEText, 1);
|
|
nText = FindSubString("abcdefghijklmnopqrstuvwxyz", sSort);
|
|
nSort2 = nText < 0 ? -1 : nText / 5;
|
|
switch (nSort2)
|
|
{
|
|
case -1:
|
|
if (USING_LINUX && (sEText == EMOTE_SYMBOL))//double emote symbol toggles emote popup window on and off
|
|
{
|
|
if (GetLocalInt(oEPC, "FKY_CHAT_EMOTETOGGLE")) DeleteLocalInt(oEPC, "FKY_CHAT_EMOTETOGGLE");
|
|
else SetLocalInt(oEPC, "FKY_CHAT_EMOTETOGGLE", 1);
|
|
}
|
|
//else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 0:
|
|
switch(nText)
|
|
{
|
|
case 0:/*a*/
|
|
if (sEText == "ag" || sEText == "agree") DoLoopAnimation(oEPC, ANIMATION_LOOPING_LISTEN);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 1:/*b*/
|
|
if (sEText =="bg" || sEText == "beg") DoLoopAnimation(oEPC, ANIMATION_LOOPING_TALK_PLEADING);
|
|
else if (sEText == "bn" || sEText == "bend") DoLoopAnimation(oEPC, ANIMATION_LOOPING_GET_LOW);
|
|
else if (sEText == "bw" || sEText == "bow") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_BOW);
|
|
else if (sEText == "bo" || sEText == "bored") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_PAUSE_BORED);
|
|
else if (sEText == "bk" || sEText == "bark") DoBark(oEPC);
|
|
else if (sEText == "bh" || sEText == "belch") DoBelch(oEPC);
|
|
else if (sEText == "bp" || sEText == "burp") DoBurp(oEPC);
|
|
else if (sEText == "bye") DoGoodbye(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 2:/*c*/
|
|
if (sEText == "cl" || sEText == "celebrate") DoCheer3(oEPC);
|
|
else if (sEText == "ca" || sEText == "cantrip") DoLoopAnimation(oEPC, ANIMATION_LOOPING_CONJURE1);
|
|
else if (sEText == "ch" || sEText == "cheer") DoCheer(oEPC);
|
|
else if (sEText == "ck" || sEText == "chuckle") DoLaugh(oEPC);
|
|
else if (sEText == "ct" || sEText == "chat") DoLoopAnimation(oEPC, ANIMATION_LOOPING_TALK_NORMAL);
|
|
else if (sEText == "cs" || sEText == "cast") DoLoopAnimation(oEPC, ANIMATION_LOOPING_CONJURE2);
|
|
else if (sEText == "cy" || sEText == "curtsy") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_BOW);
|
|
else if (sEText == "co" || sEText == "collapse") DoLoopAnimation(oEPC, ANIMATION_LOOPING_DEAD_FRONT);
|
|
else if (sEText == "cn" || sEText == "chant") DoChant(oEPC);
|
|
else if (sEText == "cr" || sEText == "chortle") DoLaugh2(oEPC);
|
|
else if (sEText == "cg" || sEText == "cough" || sEText == "choke") DoCough(oEPC);
|
|
else if (sEText == "cry") DoCry(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 3:/*d*/
|
|
if (sEText == "da" || sEText == "dance") DoDance(oEPC);
|
|
else if (sEText == "dd" || sEText == "dead") DoLoopAnimation(oEPC, ANIMATION_LOOPING_DEAD_BACK);
|
|
else if (sEText == "dk" || sEText == "duck") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_DODGE_DUCK);
|
|
else if (sEText == "di" || sEText == "die") DoLoopAnimation(oEPC, ANIMATION_LOOPING_DEAD_FRONT);
|
|
else if (sEText == "dr" || sEText == "drink") DoDrink(oEPC);
|
|
else if (sEText == "dm" || sEText == "demand") DoLoopAnimation(oEPC, ANIMATION_LOOPING_TALK_FORCEFUL);
|
|
else if (sEText == "dg" || sEText == "dodge") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_DODGE_SIDE);
|
|
else if (sEText == "dn" || sEText == "drunk") DoDrunk(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 4:/*e*/
|
|
if (sEText == "ex" || sEText == "exhausted") DoTired(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
default: ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
}
|
|
break;
|
|
case 1:
|
|
switch(nText)
|
|
{
|
|
case 5:/*f*/
|
|
if (sEText == "fa" || sEText== "fatigue") DoTired(oEPC);
|
|
else if (sEText == "fd" || sEText == "fakedead") DoFakeDeath(oEPC);
|
|
else if (sEText == "fg" || sEText == "fidget") DoLoopAnimation(oEPC, ANIMATION_LOOPING_PAUSE2);
|
|
else if (sEText == "fi" || sEText == "fiddle") DoLoopAnimation(oEPC, ANIMATION_LOOPING_GET_MID);
|
|
else if (sEText == "fl" || sEText == "fall") DoLoopAnimation(oEPC, ANIMATION_LOOPING_DEAD_FRONT);
|
|
else if (sEText == "fp" || sEText == "flop") DoLoopAnimation(oEPC, ANIMATION_LOOPING_DEAD_FRONT);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 6:/*g*/
|
|
if ((sEText == "gi" || sEText == "giggle") && (GetGender(oEPC) == GENDER_FEMALE)) DoGiggle(oEPC);
|
|
else if (sEText == "gr" || sEText == "greet") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_GREETING);
|
|
else if (sEText == "gn" || sEText == "groan") DoGroan(oEPC);
|
|
else if (sEText == "gw" || sEText == "guffaw") DoLaugh2(oEPC);
|
|
else if (sEText == "gb" || sEText == "gt" || sEText == "goodnight" || sEText == "goodbye") DoGoodbye(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 7:/*h*/
|
|
if (sEText == "hm" || sEText == "hum") DoSong(oEPC);
|
|
else if (sEText == "hy" || sEText == "hooray") DoCheer2(oEPC);
|
|
else if (sEText == "hl" || sEText == "hello") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_GREETING);
|
|
else if (sEText == "hw" || sEText == "howl") DoHowl(oEPC);
|
|
else if (sEText == "ht" || sEText == "hoot") DoHoot(oEPC);
|
|
else if (sEText == "hp" || sEText == "hiccup") DoHiccup(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
//case 8:/*i*/
|
|
//break;
|
|
//case 9:/*j*/
|
|
//break;
|
|
default: ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
}
|
|
break;
|
|
case 2:
|
|
switch(nText)
|
|
{
|
|
case 10:/*k*/
|
|
if (sEText == "kn" || sEText == "kneel") DoLoopAnimation(oEPC, ANIMATION_LOOPING_MEDITATE);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 11:/*l*/
|
|
if (sEText == "la" || sEText == "laugh") DoLaugh(oEPC);
|
|
else if (sEText == "lie") DoLoopAnimation(oEPC, ANIMATION_LOOPING_DEAD_BACK);
|
|
else if (sEText == "lk" || sEText == "look") DoLoopAnimation(oEPC, ANIMATION_LOOPING_LOOK_FAR);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 12:/*m*/
|
|
if (sEText == "md" || sEText == "meditate") DoLoopAnimation(oEPC, ANIMATION_LOOPING_MEDITATE);
|
|
else if (sEText == "mk" || sEText == "mock") DoTaunt(oEPC);
|
|
else if (sEText == "mn" || sEText == "moan") DoMoan(oEPC);
|
|
else if (sEText == "mw" || sEText == "meow") DoMeow(oEPC);
|
|
else if (sEText == "mo" || sEText == "moo") DoMoo(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 13:/*n*/
|
|
if (sEText == "nd" || sEText == "nod") DoLoopAnimation(oEPC, ANIMATION_LOOPING_LISTEN);
|
|
else if (sEText == "no") DoHeadShake(oEPC);
|
|
else if (sEText == "np" || sEText == "nap") DoSleep(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 14:/*o*/
|
|
if (sEText == "ow" || sEText == "ouch") DoOuch(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
default: ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
}
|
|
break;
|
|
case 3:
|
|
switch(nText)
|
|
{
|
|
case 15:/*p*/
|
|
if (sEText == "pe" || sEText == "peer") DoLoopAnimation(oEPC, ANIMATION_LOOPING_LOOK_FAR);
|
|
else if (sEText == "pl" || sEText == "plead") DoLoopAnimation(oEPC, ANIMATION_LOOPING_TALK_PLEADING);
|
|
else if (sEText == "pr" || sEText == "pray") DoLoopAnimation(oEPC, ANIMATION_LOOPING_MEDITATE);
|
|
else if (sEText == "pn" || sEText == "prone") DoLoopAnimation(oEPC, ANIMATION_LOOPING_DEAD_FRONT);
|
|
else if (sEText == "pu" || sEText == "puke") DoPuke(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
//case 16:/*q*/
|
|
//break;
|
|
case 17:/*r*/
|
|
if (sEText == "re" || sEText == "read") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_READ);
|
|
else if (sEText == "rt" || sEText == "rest") DoLoopAnimation(oEPC, ANIMATION_LOOPING_DEAD_BACK);
|
|
else if (sEText == "rr" || sEText == "roar") DoRoar(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 18:/*s*/
|
|
if (sEText == "sa" || sEText == "salute") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_SALUTE);
|
|
else if (sEText == "sn" || sEText == "scan") DoLoopAnimation(oEPC, ANIMATION_LOOPING_LOOK_FAR);
|
|
else if (sEText == "sc" || sEText == "scratch") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD);
|
|
else if (sEText == "sg" || sEText == "sing") DoSong(oEPC);
|
|
else if (sEText == "sh" || sEText == "shift") DoLoopAnimation(oEPC, ANIMATION_LOOPING_PAUSE2);
|
|
else if (sEText == "si" || sEText == "sit") DoLoopAnimation(oEPC, ANIMATION_LOOPING_SIT_CROSS);
|
|
else if (sEText == "sip") DoDrink(oEPC);
|
|
else if (sEText == "sl" || sEText == "sleep") DoSleep(oEPC);
|
|
else if (sEText == "snore") DoSnore(oEPC);
|
|
else if (sEText == "sk" || sEText == "smoke") SmokePipe(oEPC);
|
|
else if (sEText == "sp" || sEText == "spasm") DoLoopAnimation(oEPC, ANIMATION_LOOPING_SPASM);
|
|
else if (sEText == "st" || sEText == "steal" || sEText == "sw" || sEText == "swipe") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_STEAL);
|
|
else if (sEText == "so" ||sEText == "stoop") DoLoopAnimation(oEPC, ANIMATION_LOOPING_GET_LOW);
|
|
else if (sEText == "sr" || sEText == "stretch") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_PAUSE_BORED);
|
|
else if (sEText == "sy" || sEText == "sway") DoLoopAnimation(oEPC, ANIMATION_LOOPING_PAUSE_DRUNK);
|
|
else if (sEText == "sm" || sEText == "scream") DoScream(oEPC);
|
|
else if (sEText == "sz" || sEText == "sneeze") DoSneeze(oEPC);
|
|
else if (sEText == "spit") DoSpit(oEPC);
|
|
else if (sEText == "snarl") DoSnarl(oEPC);
|
|
else if (sEText == "screech") DoScreech(oEPC);
|
|
else if (sEText == "sb" || sEText == "sob") DoCry(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 19:/*t*/
|
|
if (sEText == "ta" || sEText == "taunt") DoTaunt(oEPC);
|
|
else if (sEText == "th" || sEText == "threaten") DoLoopAnimation(oEPC, ANIMATION_LOOPING_TALK_FORCEFUL);
|
|
else if (sEText == "ti" || sEText == "tired") DoTired(oEPC);
|
|
else if (sEText == "tl" || sEText == "talk") DoLoopAnimation(oEPC, ANIMATION_LOOPING_TALK_NORMAL);
|
|
else if (sEText == "tp" || sEText == "trip") DoLoopAnimation(oEPC, ANIMATION_LOOPING_DEAD_FRONT);
|
|
else if (sEText == "tt" || sEText == "toast") DoToast(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
default: ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
}
|
|
break;
|
|
case 4:
|
|
switch(nText)
|
|
{
|
|
//case 20:/*u*/
|
|
//break;
|
|
case 21:/*v*/
|
|
if (sEText == "vm" || sEText == "vomit") DoPuke(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
case 22:/*w*/
|
|
if (sEText == "wa" || sEText == "wave") DoFireForgetAnimation(oEPC, ANIMATION_FIREFORGET_GREETING);
|
|
else if (sEText == "wh" || sEText == "whistle") DoWhistle(oEPC);
|
|
else if (sEText == "wo" || sEText == "worship") DoLoopAnimation(oEPC, ANIMATION_LOOPING_WORSHIP);
|
|
else if (sEText == "wz" || sEText == "woozy") DoDrunk(oEPC);
|
|
else if (sEText == "wl" || sEText == "wail") DoWail(oEPC);
|
|
else if (sEText == "wp" || sEText == "weep") DoCry(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
//case 23:/*x*/
|
|
//break;
|
|
case 24:/*y*/
|
|
if (sEText == "yw" || sEText == "yawn") DoYawn(oEPC);
|
|
else ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
default: ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
}
|
|
break;
|
|
//case 5:
|
|
//switch(nText)
|
|
//{
|
|
// case 25:/*z*/
|
|
// break;
|
|
//}
|
|
break;
|
|
default: ShoutBlock(oEPC, nEChannel);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SetLocalString(oEPC, "NWNX!CHAT!SUPRESS", "1");
|
|
FloatingTextStringOnCreature(COLOR_RED+NOT_DEAD_EM+COLOR_END, oEPC, FALSE);
|
|
}
|
|
|
|
|
|
//PROTOTYPE END
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////
|