Scripts/AreaTrigger: Rename OnlyOnceAreaTriggerScript::_OnTrigger to TryHandleOnce, and make its return value useful.
Port From (https://github.com/TrinityCore/TrinityCore/commit/358dc78e47a6276e9f511e6510e04865d2d87fd2)
This commit is contained in:
@@ -414,18 +414,19 @@ namespace Game.Scripting
|
|||||||
|
|
||||||
public override bool OnTrigger(Player player, AreaTriggerRecord trigger)
|
public override bool OnTrigger(Player player, AreaTriggerRecord trigger)
|
||||||
{
|
{
|
||||||
uint triggerId = trigger.Id;
|
|
||||||
InstanceScript instance = player.GetInstanceScript();
|
InstanceScript instance = player.GetInstanceScript();
|
||||||
if (instance != null)
|
if (instance != null && instance.IsAreaTriggerDone(trigger.Id))
|
||||||
{
|
return true;
|
||||||
if (instance.IsAreaTriggerDone(triggerId))
|
|
||||||
return true;
|
if (TryHandleOnce(player, trigger) && instance != null)
|
||||||
else
|
instance.MarkAreaTriggerDone(trigger.Id);
|
||||||
instance.MarkAreaTriggerDone(triggerId);
|
|
||||||
}
|
return true;
|
||||||
return _OnTrigger(player, trigger);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// returns true if the trigger was successfully handled, false if we should try again next time
|
||||||
|
public virtual bool TryHandleOnce(Player player, AreaTriggerRecord trigger) { return false; }
|
||||||
|
|
||||||
void ResetAreaTriggerDone(InstanceScript script, uint triggerId)
|
void ResetAreaTriggerDone(InstanceScript script, uint triggerId)
|
||||||
{
|
{
|
||||||
script.ResetAreaTriggerDone(triggerId);
|
script.ResetAreaTriggerDone(triggerId);
|
||||||
@@ -437,8 +438,6 @@ namespace Game.Scripting
|
|||||||
if (instance != null)
|
if (instance != null)
|
||||||
ResetAreaTriggerDone(instance, trigger.Id);
|
ResetAreaTriggerDone(instance, trigger.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool _OnTrigger(Player player, AreaTriggerRecord trigger) { return false; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class BattlefieldScript : ScriptObject
|
public class BattlefieldScript : ScriptObject
|
||||||
|
|||||||
Reference in New Issue
Block a user