Files
Anphillia_PRC8/_module/nss/ee_enc_onex.nss
Jaysyn904 28cdb617b3 Initial commit
Adding all of the current content for Anphillia Unlimited.
2024-01-04 07:49:38 -05:00

75 lines
2.5 KiB
Plaintext

/************************************************************************
* script name : eE_encounter_onexhausted
* created by : eyesolated
* date : 2011/6/1
*
* description : OnExhausted script for eyesolated Encounters.
*
* notes : This script is called by eyesolated Encounters, do NOT
* add it anywhere yourself!
*
* changes : 2011/6/1 - eyesolated - Initial creation
************************************************************************/
#include "ee_inc"
void Undo(object oEncounter)
{
// Try to Soft-Undo all Events
int iRegisteredEvents = eE_GetRegisteredEvents(oEncounter);
int i;
object oEvent;
string sTag;
string sCheck = "";
//float fDelay = 0.0f;
//float fInterval = 0.0f;
for (i = 1; i <= iRegisteredEvents; i++)
{
oEvent = eE_GetEvent(oEncounter, i);
eE_SetActiveKeyEvents(oEncounter, GetTag(oEvent), 0);
eE_HandleEvent(oEncounter, oEvent, eE_ENCOUNTER_STATUS_ONCOOLDOWN, eE_EVENTMODE_UNDO);
// Find out the hightest Interval of all Events
//fInterval = GetLocalFloat(oEvent, eE_VAR_ENTITY_INTERVAL);
//if (fInterval > fDelay)
// fDelay = fInterval;
// Reset all important event variables
eE_SetEventStatus(oEvent, eE_EVENTSTATUS_INACTIVE);
DeleteLocalInt(oEvent, eE_VAR_EVENTCREATURECOUNT);
DeleteLocalInt(oEvent, eE_VAR_ENTITY_MAXDYNAMICQUANTITY);
}
// Reset all important encounter variables
eE_SetRegisteredEvents(oEncounter, 0);
}
void main()
{
object oEncounter = OBJECT_SELF;
string sMessage = "Encounter exhausted";
float fEncounterCD = GetLocalFloat(oEncounter, eE_VAR_COOLDOWN);
// if respawn CD is 0, this is a one-time encounter
if (fEncounterCD != 0.0f)
{
sMessage += "\nCooldown finished in " + FloatToString(fEncounterCD, 0, 2) + " Seconds";
eE_SetEncounterStatus(oEncounter, eE_ENCOUNTER_STATUS_ONCOOLDOWN);
AssignCommand(GetModule(), DelayCommand(fEncounterCD, eE_SetEncounterStatus(oEncounter, eE_ENCOUNTER_STATUS_IDLE)));
}
// Shortly before the encounter is active again, undo it's stuff
AssignCommand(GetModule(), DelayCommand(fEncounterCD - 5.0f, Undo(oEncounter)));
// Remove the encounter from the In Progress Area Array
eE_Encounter_RemoveFromArea(oEncounter, GetArea(oEncounter), eE_VAR_AREA_ENCOUNTERARRAY_PROG);
// Debug MSG
eE_DebugMSG(oEncounter, sMessage);
// Send a victory message to players
eE_SendMessageToActivePlayers(oEncounter, "Congratulations, you defeated [" + eE_GetEncounterName(oEncounter) + "]");
}