Core/Scripts: Implemented OnlyOnceAreaTriggerScript

Port From (https://github.com/TrinityCore/TrinityCore/commit/fe938b99f843df3f6c120695db38f327bd55ea94)
This commit is contained in:
hondacrx
2020-09-03 11:53:58 -04:00
parent cbd3904e02
commit 98cc0484ce
4 changed files with 69 additions and 5 deletions
@@ -186,9 +186,9 @@ namespace Scripts.Northrend.AzjolNerub.AzjolNerub.KrikthirTheGatewatcher
switch (action)
{
case -ANInstanceMisc.ActionGatewatcherGreet:
if (!_hadGreet && me.IsAlive() && !me.IsInCombat() && !_petsInCombat)
if (instance.GetData(ANDataTypes.GatewatcherGreet) == 0 && me.IsAlive() && !me.IsInCombat() && !_petsInCombat)
{
_hadGreet = true;
instance.SetData(ANDataTypes.GatewatcherGreet, 1);
Talk(TextIds.SayPrefight);
}
break;
@@ -277,7 +277,6 @@ namespace Scripts.Northrend.AzjolNerub.AzjolNerub.KrikthirTheGatewatcher
Talk(TextIds.SaySendGroup);
}
bool _hadGreet;
bool _hadFrenzy;
bool _petsInCombat;
byte _watchersActive;
@@ -35,6 +35,7 @@ namespace Scripts.Northrend.AzjolNerub.AzjolNerub
public const uint WatcherSilthik = 5;
public const uint AnubarakWall = 6;
public const uint AnubarakWall2 = 7;
public const uint GatewatcherGreet = 8;
}
struct ANCreatureIds
@@ -103,6 +104,8 @@ namespace Scripts.Northrend.AzjolNerub.AzjolNerub
class instance_azjol_nerub_InstanceScript : InstanceScript
{
uint _gateWatcherGreet;
public instance_azjol_nerub_InstanceScript(InstanceMap map) : base(map)
{
SetHeaders(ANInstanceMisc.DataHeader);
@@ -134,7 +137,30 @@ namespace Scripts.Northrend.AzjolNerub.AzjolNerub
return true;
}
}
public override uint GetData(uint dataId)
{
switch (dataId)
{
case ANDataTypes.GatewatcherGreet:
return _gateWatcherGreet;
default:
return 0;
}
}
public override void SetData(uint dataId, uint value)
{
switch (dataId)
{
case ANDataTypes.GatewatcherGreet:
_gateWatcherGreet = value;
break;
default:
break;
}
}
}
public override InstanceScript GetInstanceScript(InstanceMap map)
{