Core/SmartAI: Various fixes and extensions for smart scripts:

Port From (https://github.com/TrinityCore/TrinityCore/commit/a32d5cfa1762ae1158ee2f40b4c9b36e5b41913a)
This commit is contained in:
hondacrx
2019-08-30 12:00:42 -04:00
parent b85860dd78
commit 1657f720dc
15 changed files with 863 additions and 257 deletions
+16 -15
View File
@@ -316,34 +316,35 @@ namespace Game.AI
void CheckConditions(uint diff)
{
if (m_ConditionsTimer < diff)
if (!m_HasConditions)
return;
if (m_ConditionsTimer <= diff)
{
if (m_HasConditions)
Vehicle vehicleKit = me.GetVehicleKit();
if (vehicleKit)
{
Vehicle vehicleKit = me.GetVehicleKit();
if (vehicleKit)
foreach (var pair in vehicleKit.Seats)
{
foreach (var pair in vehicleKit.Seats)
Unit passenger = Global.ObjAccessor.GetUnit(me, pair.Value.Passenger.Guid);
if (passenger)
{
Unit passenger = Global.ObjAccessor.GetUnit(me, pair.Value.Passenger.Guid);
if (passenger)
Player player = passenger.ToPlayer();
if (player)
{
Player player = passenger.ToPlayer();
if (player)
if (!Global.ConditionMgr.IsObjectMeetingNotGroupedConditions(ConditionSourceType.CreatureTemplateVehicle, me.GetEntry(), player, me))
{
if (!Global.ConditionMgr.IsObjectMeetingNotGroupedConditions(ConditionSourceType.CreatureTemplateVehicle, me.GetEntry(), player, me))
{
player.ExitVehicle();
return;//check other pessanger in next tick
}
player.ExitVehicle();
return;//check other pessanger in next tick
}
}
}
}
}
m_ConditionsTimer = VEHICLE_CONDITION_CHECK_TIME;
}
else
else
m_ConditionsTimer -= diff;
}