//:://///////////////////////////////////////////// //:: Name: eds_include //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* ENHANCED DELAY SYSTEM - Version: 1.0 This system was developed, in part, to allow for long delays without the lag and CPU usage associated with the DelayCommand function. Basically, this script creates a timestamp of the current time of the delay, plus the delay itself. Then, when the check delay function is called, it computes the current time with when the delay should end. If the current time >= to the original timestamp, the delay has passed. Note: This is a check-based system, and is not real-time. The normal DelayCommand function will perform actions as soon as the delay is finished. With this system, actions are performed after a check has been made to see if the delay has finished. This system is not meant to completely replace the DelayCommand, only where it's use is not needed. For a clear example on how to implement this system, refer to the test module included in the download package. The following variable needs to be defined to properly calculate delays using this system. Module Properties -> Advanced -> Minutes/Hour value. */ //::////////////////////////////////////////////// //:: Created By: Adam Walenga //:: Created On: September 9th, 2004 //::////////////////////////////////////////////// //#include "farm_include" //EDS_SetDelay - //Sets a new delay for the specified object. // oObject: This is the object used to store the delay. // sVar: This is the variable name to refer to the delay with. // fDelay: This is the delay to apply. void EDS_SetDelay (object oObject, string sVar, float fDelay) { //=========================== CALCULATE TIME =========================\\ int iTotal = (GetCalendarMonth() * 2592000) + (GetCalendarDay() * 86400) + (GetTimeHour() * (MINUTES_PER_HOUR * 60)) + (GetTimeMinute() * 60) + GetTimeSecond() + FloatToInt (fDelay); //======================= STORE TIME VARIABLES =======================\\ SetLocalInt (oObject, sVar + "_Year", GetCalendarYear()); SetLocalInt (oObject, sVar + "_Time", iTotal); } //EDS_CheckDelay - //Checks the current delay, and returns TRUE or FALSE based on whether or not //the delay time has passed. // oObject: This is the object with the stored delay saved to it. // sVar: This is the variable name for the specific delay. int EDS_CheckDelay (object oObject, string sVar) { //=========================== CALCULATE TIME =========================\\ int iTotal = ((GetCalendarYear() - GetLocalInt (oObject, sVar + "_Year")) * 31104000) + (GetCalendarMonth() * 2592000) + (GetCalendarDay() * 86400) + (GetTimeHour() * (MINUTES_PER_HOUR * 60)) + (GetTimeMinute() * 60) + GetTimeSecond(); return (iTotal >= GetLocalInt (oObject, sVar + "_Time")); } //void main (){}