[Shared Tasks] Implement Activity Locking (#2339)

* Add shared task element locking

This adds the `lock_activity_id` field to the tasks table which will
automatically lock a shared task when that element becomes active.

A method was added to world analogous to zone's UnlockActivities to
determine when an activity is active with respect to task steps.

Also adds quest apis to manually lock or unlock a client's shared task

* Add comment
This commit is contained in:
hg
2022-07-30 20:57:57 -04:00
committed by GitHub
parent ea878ed27f
commit f64d072af7
15 changed files with 149 additions and 30 deletions
+6
View File
@@ -1408,6 +1408,11 @@ bool Perl_Client_IsTaskActivityActive(Client* self, int task_id, int activity_id
return self->IsTaskActivityActive(task_id, activity_id);
}
void Perl_Client_LockSharedTask(Client* self, bool lock)
{
return self->LockSharedTask(lock);
}
uint32_t Perl_Client_GetCorpseCount(Client* self) // @categories Account and Character, Corpse
{
return self->GetCorpseCount();
@@ -2621,6 +2626,7 @@ void perl_register_client()
package.add("LeaveGroup", &Perl_Client_LeaveGroup);
package.add("LoadPEQZoneFlags", &Perl_Client_LoadPEQZoneFlags);
package.add("LoadZoneFlags", &Perl_Client_LoadZoneFlags);
package.add("LockSharedTask", &Perl_Client_LockSharedTask);
package.add("MarkCompassLoc", &Perl_Client_MarkCompassLoc);
package.add("MaxSkill", (int(*)(Client*, uint16))&Perl_Client_MaxSkill);
package.add("MaxSkill", (int(*)(Client*, uint16, uint16))&Perl_Client_MaxSkill);