901 lines
56 KiB
Plaintext
901 lines
56 KiB
Plaintext
|
/*//////////////////////////////////////////////////////////////////////////////
|
||
|
Script Name: pe_debug
|
||
|
Programmer: Philos
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
PEPS Plugin to allow use of special Debug scripts
|
||
|
/*//////////////////////////////////////////////////////////////////////////////
|
||
|
#include "0i_main"
|
||
|
#include "0i_module"
|
||
|
#include "0i_menus"
|
||
|
//#include "prc_inc_eventhk"
|
||
|
// Gets a variable from oTarget, if oTarget is OBJECT_INVALID then
|
||
|
// it will get the variable from the Module and Area.
|
||
|
void debug_GetObjectVariable(object oPC, object oTarget, string sDesc = "");
|
||
|
// Lists the variables from oTarget to the screen.
|
||
|
void debug_ListObjectVariables(object oPC, object oTarget);
|
||
|
// Force event script change to default for oCreature.
|
||
|
void ai_ForceAssociateEventScriptsToDefault(object oPC, object oCreature);
|
||
|
// Reverts event script change from default for oCreature.
|
||
|
void ai_RevertAssociateEventScriptsToDefault(object oPC, object oCreature);
|
||
|
void main()
|
||
|
{
|
||
|
// Get the last player to use targeting mode
|
||
|
object oPC = GetLastPlayerToSelectTarget();
|
||
|
string sTargetMode = GetLocalString(oPC, AI_TARGET_MODE);
|
||
|
if(oPC == OBJECT_SELF && sTargetMode != "")
|
||
|
{
|
||
|
// Get the targeting mode data
|
||
|
object oTarget = GetTargetingModeSelectedObject();
|
||
|
vector vTarget = GetTargetingModeSelectedPosition();
|
||
|
location lLocation = Location(GetArea(oPC), vTarget, GetFacing(oPC));
|
||
|
object oObject = GetLocalObject(oPC, "AI_TARGET_OBJECT");
|
||
|
// If the user manually exited targeting mode without selecting a target, return
|
||
|
if(!GetIsObjectValid(oTarget) && vTarget == Vector())
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
// Targeting code here.
|
||
|
if(sTargetMode == "DEBUG_CREATURE")
|
||
|
{
|
||
|
object oModule = GetModule();
|
||
|
string sDebugName = GetName(oTarget);
|
||
|
SetLocalString(oModule, AI_RULE_DEBUG_CREATURE, sDebugName);
|
||
|
json jRules = ai_GetCampaignDbJson("rules");
|
||
|
jRules = JsonObjectSet(jRules, AI_RULE_DEBUG_CREATURE, JsonString(sDebugName));
|
||
|
ai_SetCampaignDbJson("rules", jRules);
|
||
|
SetLocalObject(oPC, "AI_RULE_DEBUG_CREATURE_OBJECT", oTarget);
|
||
|
ExecuteScript("pi_debug", oPC);
|
||
|
}
|
||
|
else if(sTargetMode == "CLEAR_REPUTATION")
|
||
|
{
|
||
|
int nReputation = GetFactionAverageReputation(oTarget, oPC);
|
||
|
object oPCMember = GetFirstFactionMember(oPC, FALSE);
|
||
|
while(GetIsObjectValid(oPCMember))
|
||
|
{
|
||
|
ClearPersonalReputation(oPCMember, oTarget);
|
||
|
oPCMember = GetNextFactionMember(oPC, FALSE);
|
||
|
}
|
||
|
ai_SendMessages("Your reputation with " + GetName(oTarget) + " has been set to neutral.", AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(sTargetMode == "SET_REPUTATION")
|
||
|
{
|
||
|
SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 50, oTarget);
|
||
|
SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 50, oTarget);
|
||
|
SetStandardFactionReputation(STANDARD_FACTION_HOSTILE, 50, oTarget);
|
||
|
SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 50, oTarget);
|
||
|
ai_SendMessages(GetName(oTarget) + " has been set to a neutral reputation.", AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(sTargetMode == "DEBUG_INFO")
|
||
|
{
|
||
|
ai_SendMessages("Information for " + GetName(oTarget), AI_COLOR_WHITE, oPC);
|
||
|
ai_SendMessages("ResRef: " + GetResRef(oTarget), AI_COLOR_GREEN, oPC);
|
||
|
ai_SendMessages("Tag: " + GetTag(oTarget), AI_COLOR_ORANGE, oPC);
|
||
|
ai_SendMessages("UUID: " + GetObjectUUID(oTarget), AI_COLOR_LIGHT_MAGENTA, oPC);
|
||
|
ai_SendMessages("Faction Commoner: " + IntToString(GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oTarget)), AI_COLOR_GREEN, oPC);
|
||
|
ai_SendMessages("Faction Defender: " + IntToString(GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oTarget)), AI_COLOR_GREEN, oPC);
|
||
|
ai_SendMessages("Faction Merchant: " + IntToString(GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oTarget)), AI_COLOR_GREEN, oPC);
|
||
|
ai_SendMessages("Faction Hostile: " + IntToString(GetStandardFactionReputation(STANDARD_FACTION_HOSTILE, oTarget)), AI_COLOR_RED, oPC);
|
||
|
int nObjectType = GetObjectType(oTarget);
|
||
|
if(nObjectType == OBJECT_TYPE_CREATURE)
|
||
|
{
|
||
|
json jObject = ObjectToJson(oTarget);
|
||
|
string sConversation = JsonGetString(GffGetResRef(jObject, "Conversation"));
|
||
|
ai_SendMessages("Conversation: " + sConversation, AI_COLOR_CYAN, oPC);
|
||
|
SendMessageToPC(oPC, "Creature Event Scripts:");
|
||
|
string sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_HEARTBEAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_HEARTBEAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_NOTICE);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_NOTICE SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_END_COMBATROUND);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_END_COMBATROUND SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_DIALOGUE);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DIALOGUE SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_MELEE_ATTACKED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_MELEE_ATTACKED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_DAMAGED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DAMAGED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_DEATH);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DEATH SCRIPT: " + sScript);
|
||
|
sScript = GetLocalString(oTarget, "AI_ON_DEATH");
|
||
|
if(sScript != "")
|
||
|
{
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DEATH SECOND SCRIPT: " + sScript);
|
||
|
}
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_DISTURBED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DISTURBED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_SPAWN_IN);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_SPAWN_IN SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_RESTED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_RESTED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_SPELLCASTAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_SPELLCASTAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_BLOCKED_BY_DOOR);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_BLOCKED_BY_DOOR SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_USER_DEFINED_EVENT SCRIPT: " + sScript);
|
||
|
}
|
||
|
else if(nObjectType == OBJECT_TYPE_DOOR)
|
||
|
{
|
||
|
SendMessageToPC(oPC, "Door Event Scripts:");
|
||
|
string sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_CLICKED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_CLICKED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_CLOSE);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_CLOSED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_DAMAGE);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DAMAGE SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_DEATH);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DEATH SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_DIALOGUE);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DIALOGUE SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_DISARM);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DISARM SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_FAIL_TO_OPEN);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_FAIL_TO_OPEN SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_HEARTBEAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_HEARTBEAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_LOCK);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_LOCK SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_MELEE_ATTACKED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_MELEE_ATTACKED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_OPEN);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_OPEN SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_SPELLCASTAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_SPELLCASTAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_TRAPTRIGGERED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_TRAPTRIGGERED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_UNLOCK);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_UNLOCK SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_DOOR_ON_USERDEFINED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_USERDEFINED SCRIPT: " + sScript);
|
||
|
}
|
||
|
else if(nObjectType == OBJECT_TYPE_PLACEABLE)
|
||
|
{
|
||
|
SendMessageToPC(oPC, "Placeable Event Scripts:");
|
||
|
string sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_CLOSED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_CLOSED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_DAMAGED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DAMAGED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_DEATH);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DEATH SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_DIALOGUE);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DIALOGUE SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_DISARM);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DISARM SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_HEARTBEAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_HEARTBEAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_INVENTORYDISTURBED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_INVENTORYDISTURBED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_LEFT_CLICK);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_LEFT_CLICK SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_LOCK);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_LOCK SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_MELEEATTACKED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_MELEEATTACKED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_OPEN);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_OPEN SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_SPELLCASTAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_SPELLCASTAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_TRAPTRIGGERED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_TRAPTRIGGERED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_UNLOCK);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_UNLOCK SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_USED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_USED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_USER_DEFINED_EVENT SCRIPT: " + sScript);
|
||
|
}
|
||
|
else if(nObjectType == OBJECT_TYPE_TRIGGER)
|
||
|
{
|
||
|
SendMessageToPC(oPC, "Trigger Event Scripts:");
|
||
|
string sScript = GetEventScript(oTarget, EVENT_SCRIPT_TRIGGER_ON_CLICKED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_CLICKED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_DISARM);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_DISARM SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_HEARTBEAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_HEARTBEAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_TRIGGER_ON_OBJECT_ENTER);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_OBJECT_ENTER SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_TRIGGER_ON_OBJECT_EXIT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_OBJECT_EXIT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_PLACEABLE_ON_TRAPTRIGGERED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_TRAPTRIGGERED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_USER_DEFINED_EVENT SCRIPT: " + sScript);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// Area event scripts.
|
||
|
object oArea = GetArea(oPC);
|
||
|
SendMessageToPC(oPC, "Area Event Scripts:");
|
||
|
string sScript = GetEventScript(oArea, EVENT_SCRIPT_AREA_ON_ENTER);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_ENTER SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oArea, EVENT_SCRIPT_AREA_ON_EXIT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_EXIT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oArea, EVENT_SCRIPT_PLACEABLE_ON_HEARTBEAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_HEARTBEAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oArea, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_USER_DEFINED_EVENT SCRIPT: " + sScript);
|
||
|
// Module event scripts.
|
||
|
object oModule = GetModule();
|
||
|
SendMessageToPC(oPC, GetModuleName() + " Module Event Scripts.");
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_ACQUIRE_ITEM);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_ACQUIRE_ITEM SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_ACTIVATE_ITEM);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_ACTIVATE_ITEM SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_CLIENT_ENTER);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_CLIENT_ENTER SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_CLIENT_EXIT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_CLIENT_EXIT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_EQUIP_ITEM);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_EQUIP_ITEM SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_HEARTBEAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_HEARTBEAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_LOSE_ITEM);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_LOSE_ITEM SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_MODULE_LOAD);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_MODULE_LOAD SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_MODULE_START);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_MODULE_START SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_NUI_EVENT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_NUI_EVENT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_PLAYER_CANCEL_CUTSCENE);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_PLAYER_CANCEL_CUTSCENE SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_PLAYER_CHAT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_PLAYER_CHAT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_PLAYER_DEATH);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_PLAYER_DEATH SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_PLAYER_DYING);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_PLAYER_DYING SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_PLAYER_GUIEVENT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_PLAYER_GUIEVENT SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_PLAYER_LEVEL_UP);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_LEVEL_UP SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_PLAYER_REST);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_PLAYER_REST SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_PLAYER_TARGET);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_PLAYER_TARGET SCRIPT: " + sScript);
|
||
|
sScript = GetLocalString(oModule, AI_MODULE_TARGET_EVENT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
if(sScript != "")
|
||
|
{
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_PLAYER_TARGET SECOND SCRIPT: " + sScript);
|
||
|
}
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_PLAYER_TILE_ACTION);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_PLAYER_TILE_ACTION SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_RESPAWN_BUTTON_PRESSED);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_RESPAWN_BUTTON_PRESSED SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_MODULE_ON_UNEQUIP_ITEM);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_UNEQUIP_ITEM SCRIPT: " + sScript);
|
||
|
sScript = GetEventScript(oModule, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT);
|
||
|
sScript += " [" + ResManGetAliasFor(sScript, RESTYPE_NCS) + "]";
|
||
|
SendMessageToPC(oPC, "ON_USER_DEFINED_EVENT SCRIPT: " + sScript);
|
||
|
}
|
||
|
/* Checks PRC virtual events. See prc_inc_eventhk
|
||
|
int nIndex = 1;
|
||
|
string sEvent = GetFirstEventScript(oTarget, EVENT_VIRTUAL_ONHEARTBEAT, FALSE);
|
||
|
if(sEvent != "")
|
||
|
{
|
||
|
SendMessageToPC(oPC, "HB event script " + IntToString(nIndex) + ": " + sEvent);
|
||
|
for(nIndex = 2; nIndex < 20; nIndex++)
|
||
|
{
|
||
|
sEvent = GetNextEventScript(oTarget, EVENT_VIRTUAL_ONHEARTBEAT, FALSE);
|
||
|
if(sEvent == "") break;
|
||
|
SendMessageToPC(oPC, "HB event script " + IntToString(nIndex) + ": " + sEvent);
|
||
|
}
|
||
|
}*/
|
||
|
}
|
||
|
else if(sTargetMode == "SET_NPC_SCRIPTS")
|
||
|
{
|
||
|
if(GetLocalString(oTarget, "AI_ON_HEARTBEAT") == "")
|
||
|
{
|
||
|
ai_ForceAssociateEventScriptsToDefault(oPC, oTarget);
|
||
|
}
|
||
|
else ai_RevertAssociateEventScriptsToDefault(oPC, oTarget);
|
||
|
}
|
||
|
else if(sTargetMode == "CLEAR_CREATURE_EVENTS")
|
||
|
{
|
||
|
ai_SendMessages("Set event scripts for " + GetName(oTarget) + " to default.", AI_COLOR_YELLOW, oPC);
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_HEARTBEAT, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_NOTICE, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_END_COMBATROUND, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_DIALOGUE, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_MELEE_ATTACKED, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_DAMAGED, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_DEATH, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_DISTURBED, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_SPAWN_IN, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_RESTED, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_SPELLCASTAT, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_BLOCKED_BY_DOOR, "default");
|
||
|
SetEventScript(oTarget, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT, "default");
|
||
|
DeleteLocalInt(oTarget, "AI_I_AM_BEING_HEALED");
|
||
|
DeleteLocalString(oTarget, "AIScript");
|
||
|
ai_ClearCreatureActions();
|
||
|
}
|
||
|
else if(sTargetMode == "DEBUG_JSON_DUMP")
|
||
|
{
|
||
|
json jObject = ObjectToJson(oTarget, TRUE);
|
||
|
WriteTimestampedLogEntry(GetName(oTarget) + " JsonDump: " + JsonDump(jObject, 1));
|
||
|
ai_SendMessages(GetName(oTarget) + " has been dumped to the log file!", AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(sTargetMode == "DEBUG_LIST_VAR")
|
||
|
{
|
||
|
debug_ListObjectVariables(oPC, oTarget);
|
||
|
}
|
||
|
else if(sTargetMode == "DEBUG_SET_VARIABLE")
|
||
|
{
|
||
|
string sVarName = GetLocalString(oPC, "Debug_Var_Name");
|
||
|
int nVarType = GetLocalInt(oPC, "Debug_Var_Type");
|
||
|
if(nVarType == 0) // Int
|
||
|
{
|
||
|
string sVarValue = GetLocalString(oPC, "Debug_Var_Value");
|
||
|
int nVarValue = StringToInt(sVarValue);
|
||
|
SetLocalInt(oTarget, sVarName, nVarValue);
|
||
|
ai_SendMessages(sVarName + " [Int] has been set to " + IntToString(nVarValue) + " for " + GetName(oTarget), AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(nVarType == 1) // Float
|
||
|
{
|
||
|
string sVarValue = GetLocalString(oPC, "Debug_Var_Value");
|
||
|
DeleteLocalString(oPC, "Debug_Var_Name");
|
||
|
float fVarValue = StringToFloat(sVarValue);
|
||
|
SetLocalFloat(oTarget, sVarName, fVarValue);
|
||
|
ai_SendMessages(sVarName + " [Float] has been set to " + FloatToString(fVarValue, 0, 2) + " for " + GetName(oTarget), AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(nVarType == 2) // String
|
||
|
{
|
||
|
string sVarValue = GetLocalString(oPC, "Debug_Var_Value");
|
||
|
SetLocalString(oTarget, sVarName, sVarValue);
|
||
|
ai_SendMessages(sVarName + " [String] has been set to " + sVarValue + " for " + GetName(oTarget), AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(nVarType == 3) // Object
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalObject(oPC, "AI_TARGET_OBJECT", oTarget);
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_SET_OBJECT_VARIABLE");
|
||
|
ai_SendMessages("Select an object to save to " + GetName(oTarget), AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR |
|
||
|
OBJECT_TYPE_ITEM | OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_TRIGGER, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(nVarType == 4) // Location
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalObject(oPC, "AI_TARGET_OBJECT", oTarget);
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_SET_LOCATION_VARIABLE");
|
||
|
ai_SendMessages("Select a location to save to " + GetName(oTarget), AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_TILE, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
DeleteLocalString(oPC, "Debug_Var_Name");
|
||
|
DeleteLocalInt(oPC, "Debug_Var_Type");
|
||
|
DeleteLocalString(oPC, "Debug_Var_Value");
|
||
|
}
|
||
|
else if(sTargetMode == "DEBUG_SET_OBJECT_VARIABLE")
|
||
|
{
|
||
|
string sVarName = GetLocalString(oPC, "Debug_Var_Name");
|
||
|
SetLocalObject(oObject, sVarName, oTarget);
|
||
|
DeleteLocalObject(oPC, "AI_TARGET_OBJECT");
|
||
|
DeleteLocalString(oPC, "Debug_Var_Name");
|
||
|
ai_SendMessages(sVarName + " [Object] has been set to " + GetName(oObject) + " for " + GetName(oTarget), AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(sTargetMode == "DEBUG_SET_LOCATION_VARIABLE")
|
||
|
{
|
||
|
string sVarName = GetLocalString(oPC, "Debug_Var_Name");
|
||
|
SetLocalLocation(oObject, sVarName, lLocation);
|
||
|
DeleteLocalObject(oPC, "AI_TARGET_OBJECT");
|
||
|
DeleteLocalString(oPC, "Debug_Var_Name");
|
||
|
ai_SendMessages(sVarName + " [Location] has been set to " + LocationToString(lLocation) + " for " + GetName(oTarget), AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(sTargetMode == "DEBUG_DELETE_VARIABLE")
|
||
|
{
|
||
|
string sVarName = GetLocalString(oPC, "Debug_Var_Name");
|
||
|
int nVarType = GetLocalInt(oPC, "Debug_Var_Type");
|
||
|
if(nVarType == 0) DeleteLocalInt(oTarget, sVarName);
|
||
|
else if(nVarType == 1) DeleteLocalFloat(oTarget, sVarName);
|
||
|
else if(nVarType == 2) DeleteLocalString(oTarget, sVarName);
|
||
|
else if(nVarType == 4) DeleteLocalObject(oTarget, sVarName);
|
||
|
else if(nVarType == 5) DeleteLocalLocation(oTarget, sVarName);
|
||
|
ai_SendMessages(sVarName + " has been deleted from " + GetName(oTarget), AI_COLOR_YELLOW, oPC);
|
||
|
DeleteLocalString(oPC, "Debug_Var_Name");
|
||
|
DeleteLocalInt(oPC, "Debug_Var_Type");
|
||
|
}
|
||
|
else if(sTargetMode == "DEBUG_GET_VARIABLE")
|
||
|
{
|
||
|
debug_GetObjectVariable(oPC, oTarget);
|
||
|
}
|
||
|
}
|
||
|
// Run all non-targeting code here, usually NUI events.
|
||
|
else
|
||
|
{
|
||
|
object oPC = NuiGetEventPlayer();
|
||
|
int nToken = NuiGetEventWindow();
|
||
|
string sEvent = NuiGetEventType();
|
||
|
string sElem = NuiGetEventElement();
|
||
|
int nIndex = NuiGetEventArrayIndex();
|
||
|
//string sWndId = NuiGetWindowId(oPC, nToken);
|
||
|
//**********************************************************************
|
||
|
//if(GetLocalInt(oPC, AI_NO_NUI_SAVE)) return;
|
||
|
if(sEvent == "click")
|
||
|
{
|
||
|
if(sElem == "btn_npc_scripts")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "SET_NPC_SCRIPTS");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select an npc to change scripts for.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_CREATURE , MOUSECURSOR_CREATE, MOUSECURSOR_NOCREATE);
|
||
|
}
|
||
|
else if(sElem == "btn_set_reputation")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "SET_REPUTATION");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select a creature to set all standard reputations to neutral.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_CREATURE, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(sElem == "btn_clear_reputation")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "CLEAR_REPUTATION");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select a creature to clear your PC's reputation with that creature's faction.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_CREATURE, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(sElem == "btn_info")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_INFO");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select an object to send it's information to the players screen.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_ALL , MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(sElem == "btn_obj_json")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_JSON_DUMP");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select an object to dump it's json values to the log.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR |
|
||
|
OBJECT_TYPE_ITEM | OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_TRIGGER, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(sElem == "btn_obj_var")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_LIST_VAR");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select an object to list it's variables to the player screen.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_ALL, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(sElem == "btn_debug_creature")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalObject(oPC, AI_TARGET_ASSOCIATE, OBJECT_SELF);
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_CREATURE");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select a creature to start sending debug information to the log for.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_CREATURE, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(sElem == "btn_clear_events")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalObject(oPC, AI_TARGET_ASSOCIATE, OBJECT_SELF);
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "CLEAR_CREATURE_EVENTS");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select a creature to set event scripts to default.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_CREATURE, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(sElem == "btn_clear_debug")
|
||
|
{
|
||
|
object oModule = GetModule();
|
||
|
SetLocalString(oModule, AI_RULE_DEBUG_CREATURE, "");
|
||
|
json jRules = ai_GetCampaignDbJson("rules");
|
||
|
jRules = JsonObjectSet(jRules, AI_RULE_DEBUG_CREATURE, JsonString(""));
|
||
|
ai_SetCampaignDbJson("rules", jRules);
|
||
|
DeleteLocalObject(oPC, "AI_RULE_DEBUG_CREATURE_OBJECT");
|
||
|
ai_SendMessages("Creature Debug mode has been cleared.", AI_COLOR_YELLOW, oPC);
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ExecuteScript("pi_debug", oPC);
|
||
|
}
|
||
|
else if(sElem == "btn_delete_var")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
string sVarName = JsonGetString(NuiGetBind(oPC, nToken, "txt_var_name"));
|
||
|
SetLocalString(oPC, "Debug_Var_Name", sVarName);
|
||
|
SetLocalString(oPC, "Debug_Var_Value", JsonGetString(NuiGetBind(oPC, nToken, "txt_var_value")));
|
||
|
SetLocalInt(oPC, "Debug_Var_Type", JsonGetInt(NuiGetBind (oPC, nToken, "cmb_var_type_selected")));
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_DELETE_VARIABLE");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select Object to delete (" + sVarName + ") variable from.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_ALL, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(sElem == "btn_get_var")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
string sVarName = JsonGetString(NuiGetBind(oPC, nToken, "txt_var_name"));
|
||
|
SetLocalString(oPC, "Debug_Var_Name", sVarName);
|
||
|
SetLocalString(oPC, "Debug_Var_Value", JsonGetString(NuiGetBind(oPC, nToken, "txt_var_value")));
|
||
|
SetLocalInt(oPC, "Debug_Var_Type", JsonGetInt(NuiGetBind (oPC, nToken, "cmb_var_type_selected")));
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_GET_VARIABLE");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select Object to get (" + sVarName + ") variable from.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_ALL, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(sElem == "btn_set_var")
|
||
|
{
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
string sVarName = JsonGetString(NuiGetBind(oPC, nToken, "txt_var_name"));
|
||
|
SetLocalString(oPC, "Debug_Var_Name", sVarName);
|
||
|
SetLocalString(oPC, "Debug_Var_Value", JsonGetString(NuiGetBind(oPC, nToken, "txt_var_value")));
|
||
|
SetLocalInt(oPC, "Debug_Var_Type", JsonGetInt(NuiGetBind (oPC, nToken, "cmb_var_type_selected")));
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_SET_VARIABLE");
|
||
|
NuiDestroy(oPC, nToken);
|
||
|
ai_SendMessages("Select Object to set (" + sVarName + ") variable to.", AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_ALL, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
}
|
||
|
if(sEvent == "watch")
|
||
|
{
|
||
|
if(sElem == "txt_var_name" || sElem == "txt_var_value" ||
|
||
|
sElem == "cmb_var_type_selected")
|
||
|
{
|
||
|
if(JsonGetString(NuiGetBind(oPC, nToken, "txt_var_name")) != "")
|
||
|
{
|
||
|
NuiSetBind(oPC, nToken, "btn_get_var_event", JsonBool(TRUE));
|
||
|
NuiSetBind(oPC, nToken, "btn_delete_var_event", JsonBool(TRUE));
|
||
|
if(JsonGetInt(NuiGetBind (oPC, nToken, "cmb_var_type_selected")) == 3 || // Objects
|
||
|
JsonGetInt(NuiGetBind (oPC, nToken, "cmb_var_type_selected")) == 4 || // Locations
|
||
|
JsonGetString(NuiGetBind(oPC, nToken, "txt_var_value")) != "")
|
||
|
{
|
||
|
NuiSetBind(oPC, nToken, "btn_set_var_event", JsonBool(TRUE));
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
NuiSetBind(oPC, nToken, "btn_get_var_event", JsonBool(FALSE));
|
||
|
NuiSetBind(oPC, nToken, "btn_delete_var_event", JsonBool(FALSE));
|
||
|
}
|
||
|
NuiSetBind(oPC, nToken, "btn_set_var_event", JsonBool(FALSE));
|
||
|
}
|
||
|
}
|
||
|
if(sEvent == "mousedown")
|
||
|
{
|
||
|
int nMouseButton = JsonGetInt(JsonObjectGet(NuiGetEventPayload(), "mouse_btn"));
|
||
|
if(nMouseButton == NUI_MOUSE_BUTTON_RIGHT)
|
||
|
{
|
||
|
if(sElem == "btn_delete_var")
|
||
|
{
|
||
|
object oModule = GetModule();
|
||
|
// Set Targeting variables.
|
||
|
string sVarName = JsonGetString(NuiGetBind(oPC, nToken, "txt_var_name"));
|
||
|
int nVarType = JsonGetInt(NuiGetBind (oPC, nToken, "cmb_var_type_selected"));
|
||
|
if(nVarType == 0) DeleteLocalInt(oModule, sVarName);
|
||
|
else if(nVarType == 1) DeleteLocalFloat(oModule, sVarName);
|
||
|
else if(nVarType == 2) DeleteLocalString(oModule, sVarName);
|
||
|
else if(nVarType == 4) DeleteLocalObject(oModule, sVarName);
|
||
|
else if(nVarType == 5) DeleteLocalLocation(oModule, sVarName);
|
||
|
ai_SendMessages(sVarName + " has been deleted from the Module", AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(sElem == "btn_get_var")
|
||
|
{
|
||
|
// Set Targeting variables.
|
||
|
SetLocalString(oPC, "Debug_Var_Name", JsonGetString(NuiGetBind(oPC, nToken, "txt_var_name")));
|
||
|
SetLocalInt(oPC, "Debug_Var_Type", JsonGetInt(NuiGetBind (oPC, nToken, "cmb_var_type_selected")));
|
||
|
debug_GetObjectVariable(oPC, GetModule(), "(Module)");
|
||
|
}
|
||
|
else if(sElem == "btn_set_var")
|
||
|
{
|
||
|
// Set Targeting variables.
|
||
|
string sVarName = JsonGetString(NuiGetBind(oPC, nToken, "txt_var_name"));
|
||
|
string sVarValue = JsonGetString(NuiGetBind(oPC, nToken, "txt_var_value"));
|
||
|
int nVarType = JsonGetInt(NuiGetBind (oPC, nToken, "cmb_var_type_selected"));
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_SET_VARIABLE");
|
||
|
if(nVarType == 0) // Int
|
||
|
{
|
||
|
int nVarValue = StringToInt(sVarValue);
|
||
|
SetLocalInt(GetModule(), sVarName, nVarValue);
|
||
|
ai_SendMessages(sVarName + " [Int] has been set to " + IntToString(nVarValue) + " on the Module.", AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(nVarType == 1) // Float
|
||
|
{
|
||
|
float fVarValue = StringToFloat(sVarValue);
|
||
|
SetLocalFloat(GetModule(), sVarName, fVarValue);
|
||
|
ai_SendMessages(sVarName + " [Float] has been set to " + FloatToString(fVarValue, 0, 2) + " on the Module.", AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(nVarType == 2) // String
|
||
|
{
|
||
|
SetLocalString(GetModule(), sVarName, sVarValue);
|
||
|
ai_SendMessages(sVarName + " [String] has been set to " + sVarValue + " on the Module.", AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
else if(nVarType == 3) // Object
|
||
|
{
|
||
|
object oModule = GetModule();
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalString(oPC, "Debug_Var_Name", sVarName);
|
||
|
SetLocalObject(oPC, "AI_TARGET_OBJECT", oModule);
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_SET_OBJECT_VARIABLE");
|
||
|
ai_SendMessages("Select an object to save to " + GetName(oModule), AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR |
|
||
|
OBJECT_TYPE_ITEM | OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_TRIGGER, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
else if(nVarType == 4) // Location
|
||
|
{
|
||
|
object oModule = GetModule();
|
||
|
// Set this variable on the player so PEPS can run the targeting script for this plugin.
|
||
|
SetLocalString(oPC, AI_PLUGIN_TARGET_SCRIPT, "pe_debug");
|
||
|
// Set Targeting variables.
|
||
|
SetLocalString(oPC, "Debug_Var_Name", sVarName);
|
||
|
SetLocalObject(oPC, "AI_TARGET_OBJECT", oModule);
|
||
|
SetLocalString(oPC, AI_TARGET_MODE, "DEBUG_SET_LOCATION_VARIABLE");
|
||
|
ai_SendMessages("Select a location to save to " + GetName(oModule), AI_COLOR_YELLOW, oPC);
|
||
|
EnterTargetingMode(oPC, OBJECT_TYPE_TILE, MOUSECURSOR_EXAMINE, MOUSECURSOR_NOEXAMINE);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
void debug_GetObjectVariable(object oPC, object oTarget, string sDesc = "")
|
||
|
{
|
||
|
string sVar, sVarName = GetLocalString(oPC, "Debug_Var_Name");
|
||
|
int nVarType = GetLocalInt(oPC, "Debug_Var_Type");
|
||
|
if(nVarType == 0) sVar = IntToString(GetLocalInt(oTarget, sVarName));
|
||
|
else if(nVarType == 1) sVar = FloatToString(GetLocalFloat(oTarget, sVarName), 0, 2);
|
||
|
else if(nVarType == 2) sVar = GetLocalString(oTarget, sVarName);
|
||
|
else if(nVarType == 4) sVar = GetName(GetLocalObject(oTarget, sVarName));
|
||
|
else if(nVarType == 5) sVar = LocationToString(GetLocalLocation(oTarget, sVarName));
|
||
|
ai_SendMessages(sVarName + " on " + GetName(oTarget) + sDesc + " is set to " + sVar, AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
void debug_ListObjectVariables(object oPC, object oTarget)
|
||
|
{
|
||
|
string sName = GetName(oTarget);
|
||
|
if(GetStringRight(sName, 1) == "s") sName = sName + "'";
|
||
|
else sName = sName + "'s";
|
||
|
ai_SendMessages(sName + " variables:", AI_COLOR_GREEN, oPC);
|
||
|
json jObject = ObjectToJson(oTarget, TRUE);
|
||
|
json jVarTable = GffGetList(jObject, "VarTable");
|
||
|
string sVariable;
|
||
|
int nIndex, nVarType;
|
||
|
json jVar = JsonArrayGet(jVarTable, nIndex);
|
||
|
while(JsonGetType(jVar) != JSON_TYPE_NULL)
|
||
|
{
|
||
|
sVariable = JsonGetString(GffGetString(jVar, "Name"));
|
||
|
nVarType = JsonGetInt(GffGetDword(jVar, "Type"));
|
||
|
if(nVarType == 1)
|
||
|
{
|
||
|
sVariable += " [int] ";
|
||
|
sVariable += IntToString(JsonGetInt(GffGetInt(jVar, "Value")));
|
||
|
}
|
||
|
else if(nVarType == 2)
|
||
|
{
|
||
|
sVariable += " [float] ";
|
||
|
sVariable += FloatToString(JsonGetFloat(GffGetFloat(jVar, "Value")), 0, 2);
|
||
|
}
|
||
|
else if(nVarType == 3)
|
||
|
{
|
||
|
sVariable += " [string] ";
|
||
|
sVariable += JsonGetString(GffGetString(jVar, "Value"));
|
||
|
}
|
||
|
else if(nVarType == 4)
|
||
|
{
|
||
|
sName = GetName(GetLocalObject(oTarget, sVariable));
|
||
|
sVariable += " [object] " + sName;
|
||
|
}
|
||
|
else if(nVarType == 5)
|
||
|
{
|
||
|
sName = LocationToString(GetLocalLocation(oTarget, sVariable));
|
||
|
sVariable += " [location] " + sName;
|
||
|
}
|
||
|
else if(nVarType == 7)
|
||
|
{
|
||
|
sVariable += " [struct] ";
|
||
|
sVariable += JsonDump(GffGetStruct(jVar, "Value"));
|
||
|
}
|
||
|
sVariable += JsonGetString(JsonObjectGet(jVar, "Value"));
|
||
|
ai_SendMessages(sVariable, AI_COLOR_YELLOW, oPC);
|
||
|
jVar = JsonArrayGet(jVarTable, ++nIndex);
|
||
|
}
|
||
|
if(!nIndex) ai_SendMessages("No variables to list!", AI_COLOR_YELLOW, oPC);
|
||
|
}
|
||
|
void ai_ForceAssociateEventScriptsToDefault(object oPC, object oCreature)
|
||
|
{
|
||
|
ai_SendMessages("Changing " + GetName(oCreature) + "'s event scripts to default event scripts!", AI_COLOR_YELLOW, oPC);
|
||
|
ai_SendMessages("Use this tool on them again to revert this creatures event scripts back!", AI_COLOR_YELLOW, oPC);
|
||
|
//********** On Heartbeat **********
|
||
|
string sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_HEARTBEAT);
|
||
|
if(sScript == "0e_id_events" || sScript == "0e_prc_id_events")
|
||
|
{
|
||
|
ai_SendMessages("You cannot use this on creatures in Infinite Dungeons!");
|
||
|
return;
|
||
|
}
|
||
|
SetLocalString(oCreature, "AI_ON_HEARTBEAT", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_HEARTBEAT, "nw_ch_ac1");
|
||
|
//********** On Perception **********
|
||
|
sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_NOTICE);
|
||
|
SetLocalString(oCreature, "AI_ON_NOTICE", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_NOTICE, "nw_ch_ac2");
|
||
|
//********** On End Combat Round **********
|
||
|
sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_END_COMBATROUND);
|
||
|
SetLocalString(oCreature, "AI_ON_END_COMBATROUND", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_END_COMBATROUND, "nw_ch_ac3");
|
||
|
//********** On Dialogue **********
|
||
|
sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_DIALOGUE);
|
||
|
SetLocalString(oCreature, "AI_ON_DIALOGUE", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_DIALOGUE, "nw_ch_ac4");
|
||
|
//********** On Melee Attacked **********
|
||
|
sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_MELEE_ATTACKED);
|
||
|
SetLocalString(oCreature, "AI_ON_MELEE_ATTACKED", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_MELEE_ATTACKED, "nw_ch_ac5");
|
||
|
//********** On Damaged **********
|
||
|
sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_DAMAGED);
|
||
|
SetLocalString(oCreature, "AI_ON_DAMAGED", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_DAMAGED, "nw_ch_ac6");
|
||
|
//********** On Disturbed **********
|
||
|
sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_DISTURBED);
|
||
|
SetLocalString(oCreature, "AI_ON_DISTURBED", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_DISTURBED, "nw_ch_ac8");
|
||
|
//SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_SPAWN_IN, "");
|
||
|
//********** On Rested **********
|
||
|
sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_RESTED);
|
||
|
SetLocalString(oCreature, "AI_ON_RESTED", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_RESTED, "nw_ch_aca");
|
||
|
//********** On Spell Cast At **********
|
||
|
sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_SPELLCASTAT);
|
||
|
SetLocalString(oCreature, "AI_ON_SPELLCASTAT", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_SPELLCASTAT, "nw_ch_acb");
|
||
|
//********** On Blocked **********
|
||
|
sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_BLOCKED_BY_DOOR);
|
||
|
SetLocalString(oCreature, "AI_ON_BLOCKED_BY_DOOR", sScript);
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_BLOCKED_BY_DOOR, "nw_ch_acb");
|
||
|
//SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT, "");
|
||
|
if(!GetCommandable(oCreature)) SetCommandable(TRUE, oCreature);
|
||
|
}
|
||
|
void ai_RevertAssociateEventScriptsToDefault(object oPC, object oCreature)
|
||
|
{
|
||
|
ai_SendMessages("Changing " + GetName(oCreature) + "'s event scripts back to original!", AI_COLOR_YELLOW, oPC);
|
||
|
//********** On Heartbeat **********
|
||
|
string sScript = GetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_HEARTBEAT);
|
||
|
if(sScript == "0e_id_events" || sScript == "0e_prc_id_events")
|
||
|
{
|
||
|
ai_SendMessages("You cannot use this on creatures in Infinite Dungeons!", AI_COLOR_RED, oPC);
|
||
|
return;
|
||
|
}
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_HEARTBEAT");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_HEARTBEAT, sScript);
|
||
|
//********** On Perception **********
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_NOTICE");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_NOTICE, sScript);
|
||
|
//********** On End Combat Round **********
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_END_COMBATROUND");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_END_COMBATROUND, sScript);
|
||
|
//********** On Dialogue **********
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_DIALOGUE");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_DIALOGUE, sScript);
|
||
|
//********** On Melee Attacked **********
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_MELEE_ATTACKED");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_MELEE_ATTACKED, sScript);
|
||
|
//********** On Damaged **********
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_DAMAGED");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_DAMAGED, sScript);
|
||
|
//********** On Disturbed **********
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_DISTURBED");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_DISTURBED, sScript);
|
||
|
//SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_SPAWN_IN, "");
|
||
|
//********** On Rested **********
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_RESTED");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_RESTED, sScript);
|
||
|
//********** On Spell Cast At **********
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_SPELLCASTAT");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_SPELLCASTAT, sScript);
|
||
|
//********** On Blocked **********
|
||
|
sScript = GetLocalString(oCreature, "AI_ON_BLOCKED_BY_DOOR");
|
||
|
SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_BLOCKED_BY_DOOR, sScript);
|
||
|
//SetEventScript(oCreature, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT, "");
|
||
|
if(!GetCommandable(oCreature)) SetCommandable(TRUE, oCreature);
|
||
|
}
|
||
|
|