[Quest API] Add Timer related methods to Mobs in Perl/Lua (#3133)

* [Quest API] Add Timer related methods to Mobs in Perl/Lua

# Perl
- Add `quest::ispausedtimer(timer_name)`.
- Add `quest::pausetimer(timer_name)`.
- Add `quest::resumetimer(timer_name)`.
- Add `$mob->GetRemainingTimeMS(timer_name)`.
- Add `$mob->GetTimerDurationMS(timer_name)`.
- Add `$mob->HasTimer(timer_name)`.
- Add `$mob->IsPausedTimer(timer_name)`.
- Add `$mob->PauseTimer(timer_name)`.
- Add `$mob->ResumeTimer(timer_name)`.
- Add `$mob->SetTimer(timer_name)`.
- Add `$mob->SetTimerMS(timer_name)`.
- Add `$mob->StopTimer(timer_name)`.

# Lua
- Add `mob:GetRemainingTimeMS(timer_name)`.
- Add `mob:GetTimerDurationMS(timer_name)`.
- Add `mob:HasTimer(timer_name)`.
- Add `mob:IsPausedTimer(timer_name)`.
- Add `mob:PauseTimer(timer_name)`.
- Add `mob:ResumeTimer(timer_name)`.
- Add `mob:SetTimer(timer_name)`.
- Add `mob:SetTimerMS(timer_name)`.
- Add `mob:StopTimer(timer_name)`.

# Notes
- The mob-based methods allow operators to loop entity list or whatever to set, stop, resume, pause, etc for timers.

* StopAllTimers()

* Update questmgr.cpp
This commit is contained in:
Alex King
2023-03-20 16:18:51 -04:00
committed by GitHub
parent 63a8d2d641
commit 4fe44f4cb6
6 changed files with 216 additions and 70 deletions
+13 -13
View File
@@ -81,22 +81,22 @@ public:
void Zone(const char *zone_name);
void ZoneGroup(const char *zone_name);
void ZoneRaid(const char *zone_name);
void settimer(const char *timer_name, int seconds);
void settimerMS(const char *timer_name, int milliseconds);
void settimerMS(const char *timer_name, int milliseconds, EQ::ItemInstance *inst);
void settimerMS(const char *timer_name, int milliseconds, Mob *mob);
void stoptimer(const char *timer_name);
void stoptimer(const char *timer_name, EQ::ItemInstance *inst);
void stoptimer(const char *timer_name, Mob *mob);
void settimer(const char* timer_name, int seconds, Mob* mob = nullptr);
void settimerMS(const char* timer_name, int milliseconds);
void settimerMS(const char* timer_name, int milliseconds, EQ::ItemInstance *inst);
void settimerMS(const char* timer_name, int milliseconds, Mob *mob);
void stoptimer(const char* timer_name);
void stoptimer(const char* timer_name, EQ::ItemInstance *inst);
void stoptimer(const char* timer_name, Mob *mob);
void stopalltimers();
void stopalltimers(EQ::ItemInstance *inst);
void stopalltimers(Mob *mob);
void pausetimer(const char *timer_name);
void resumetimer(const char *timer_name);
bool ispausedtimer(const char *timer_name);
bool hastimer(const char *timer_name);
uint32 getremainingtimeMS(const char *timer_name);
uint32 gettimerdurationMS(const char *timer_name);
void pausetimer(const char* timer_name, Mob* mob = nullptr);
void resumetimer(const char* timer_name, Mob* mob = nullptr);
bool ispausedtimer(const char* timer_name, Mob* mob = nullptr);
bool hastimer(const char* timer_name, Mob* mob = nullptr);
uint32 getremainingtimeMS(const char* timer_name, Mob* mob = nullptr);
uint32 gettimerdurationMS(const char* timer_name, Mob* mob = nullptr);
void emote(const char *str);
void shout(const char *str);
void shout2(const char *str);