mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 09:44:45 +01:00
Core/SAI: Implement SMART_EVENT_ACTION_DONE (72, DoAction)
Param1 is event id This event is triggered on spellclick (id=1001), fall on ground (id=1002) and charge (id=1003) Signed-off-by: Nay <dnpd.dd@gmail.com>
This commit is contained in:
@@ -696,8 +696,9 @@ void SmartAI::OnCharmed(bool apply)
|
||||
GetScript()->ProcessEventsFor(SMART_EVENT_CHARMED, NULL, 0, 0, apply);
|
||||
}
|
||||
|
||||
void SmartAI::DoAction(const int32 /*param*/)
|
||||
void SmartAI::DoAction(const int32 param)
|
||||
{
|
||||
GetScript()->ProcessEventsFor(SMART_EVENT_ACTION_DONE, NULL, param);
|
||||
}
|
||||
|
||||
uint32 SmartAI::GetData(uint32 /*id*/)
|
||||
@@ -825,28 +826,6 @@ void SmartAI::sOnGameEvent(bool start, uint16 eventId)
|
||||
GetScript()->ProcessEventsFor(start ? SMART_EVENT_GAME_EVENT_START : SMART_EVENT_GAME_EVENT_END, NULL, eventId);
|
||||
}
|
||||
|
||||
/*
|
||||
SMART_EVENT_UPDATE_OOC
|
||||
SMART_EVENT_SPELLHIT
|
||||
SMART_EVENT_RANGE
|
||||
SMART_EVENT_RESPAWN
|
||||
SMART_EVENT_SUMMONED_UNIT
|
||||
SMART_EVENT_ACCEPTED_QUEST
|
||||
SMART_EVENT_REWARD_QUEST
|
||||
SMART_EVENT_TARGET_BUFFED
|
||||
SMART_EVENT_SUMMON_DESPAWNED
|
||||
SMART_EVENT_AI_INIT
|
||||
SMART_EVENT_DATA_SET
|
||||
SMART_EVENT_TEXT_OVER
|
||||
SMART_EVENT_TIMED_EVENT_TRIGGERED
|
||||
SMART_EVENT_UPDATE
|
||||
SMART_EVENT_LINK
|
||||
SMART_EVENT_GOSSIP_SELECT
|
||||
SMART_EVENT_JUST_CREATED
|
||||
SMART_EVENT_GOSSIP_HELLO
|
||||
SMART_EVENT_DEATH
|
||||
*/
|
||||
|
||||
int SmartGameObjectAI::Permissible(const GameObject* g)
|
||||
{
|
||||
if (g->GetAIName() == "SmartGameObjectAI")
|
||||
|
||||
@@ -2778,6 +2778,12 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
|
||||
ProcessAction(e, NULL, var0);
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_ACTION_DONE:
|
||||
{
|
||||
if (e.event.doAction.eventId != var0)
|
||||
return;
|
||||
ProcessAction(e, unit, var0);
|
||||
}
|
||||
default:
|
||||
sLog->outErrorDb("SmartScript::ProcessEvent: Unhandled Event type %u", e.GetEventType());
|
||||
break;
|
||||
|
||||
@@ -475,63 +475,76 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e)
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_TRANSPORT_ADDCREATURE:
|
||||
{
|
||||
if (e.event.transportAddCreature.creature && !IsCreatureValid(e, e.event.transportAddCreature.creature))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
{
|
||||
if (e.event.transportAddCreature.creature && !IsCreatureValid(e, e.event.transportAddCreature.creature))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_MOVEMENTINFORM:
|
||||
{
|
||||
if (e.event.movementInform.type > NULL_MOTION_TYPE)
|
||||
{
|
||||
if (e.event.movementInform.type > NULL_MOTION_TYPE)
|
||||
{
|
||||
sLog->outErrorDb("SmartAIMgr: Entry %d SourceType %u Event %u Action %u uses invalid Motion type %u, skipped.", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType(), e.event.movementInform.type);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
sLog->outErrorDb("SmartAIMgr: Entry %d SourceType %u Event %u Action %u uses invalid Motion type %u, skipped.", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType(), e.event.movementInform.type);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_DATA_SET:
|
||||
{
|
||||
if (!IsMinMaxValid(e, e.event.dataSet.cooldownMin, e.event.dataSet.cooldownMax))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
{
|
||||
if (!IsMinMaxValid(e, e.event.dataSet.cooldownMin, e.event.dataSet.cooldownMax))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_AREATRIGGER_ONTRIGGER:
|
||||
{
|
||||
if (e.event.areatrigger.id && !IsAreaTriggerValid(e, e.event.areatrigger.id))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
{
|
||||
if (e.event.areatrigger.id && !IsAreaTriggerValid(e, e.event.areatrigger.id))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_TEXT_OVER:
|
||||
//if (e.event.textOver.textGroupID && !IsTextValid(e, e.event.textOver.textGroupID)) return false;// 0 is a valid text group!
|
||||
break;
|
||||
case SMART_EVENT_LINK:
|
||||
{
|
||||
if (e.link && e.link == e.event_id)
|
||||
{
|
||||
if (e.link && e.link == e.event_id)
|
||||
{
|
||||
sLog->outErrorDb("SmartAIMgr: Entry %d SourceType %u, Event %u, Link Event is linking self (infinite loop), skipped.", e.entryOrGuid, e.GetScriptType(), e.event_id);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
sLog->outErrorDb("SmartAIMgr: Entry %d SourceType %u, Event %u, Link Event is linking self (infinite loop), skipped.", e.entryOrGuid, e.GetScriptType(), e.event_id);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_DUMMY_EFFECT:
|
||||
{
|
||||
if (!IsSpellValid(e, e.event.dummy.spell))
|
||||
return false;
|
||||
|
||||
if (e.event.dummy.effIndex > EFFECT_2)
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_IS_BEHIND_TARGET:
|
||||
{
|
||||
if (!IsMinMaxValid(e, e.event.behindTarget.cooldownMin, e.event.behindTarget.cooldownMax))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_GAME_EVENT_START:
|
||||
case SMART_EVENT_GAME_EVENT_END:
|
||||
{
|
||||
GameEventMgr::GameEventDataMap const& events = sGameEventMgr->GetEventMap();
|
||||
if (e.event.gameEvent.gameEventId >= events.size() || !events[e.event.gameEvent.gameEventId].isValid())
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_ACTION_DONE:
|
||||
{
|
||||
if (e.event.doAction.eventId < EventId::EVENT_SPELLCLICK || e.event.doAction.eventId > EventId::EVENT_CHARGE)
|
||||
{
|
||||
GameEventMgr::GameEventDataMap const& events = sGameEventMgr->GetEventMap();
|
||||
if (e.event.gameEvent.gameEventId >= events.size() || !events[e.event.gameEvent.gameEventId].isValid())
|
||||
return false;
|
||||
break;
|
||||
sLog->outErrorDb("SmartAIMgr: Entry %d SourceType %u Event %u Action %u uses invalid event id %u, skipped.", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType(), e.event.doAction.eventId);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SMART_EVENT_GO_STATE_CHANGED:
|
||||
case SMART_EVENT_GO_EVENT_INFORM:
|
||||
case SMART_EVENT_TIMED_EVENT_TRIGGERED:
|
||||
|
||||
@@ -82,81 +82,81 @@ const uint32 SmartPhaseMask[SMART_EVENT_PHASE_COUNT][2] =
|
||||
|
||||
enum SMART_EVENT
|
||||
{
|
||||
SMART_EVENT_UPDATE_IC = 0, //1 // InitialMin, InitialMax, RepeatMin, RepeatMax
|
||||
SMART_EVENT_UPDATE_OOC = 1, //1 // InitialMin, InitialMax, RepeatMin, RepeatMax
|
||||
SMART_EVENT_HEALT_PCT = 2, //1 // HPMin%, HPMax%, RepeatMin, RepeatMax
|
||||
SMART_EVENT_MANA_PCT = 3, //1 // ManaMin%, ManaMax%, RepeatMin, RepeatMax
|
||||
SMART_EVENT_AGGRO = 4, //1 // NONE
|
||||
SMART_EVENT_KILL = 5, //1 // CooldownMin0, CooldownMax1, playerOnly2, else creature entry3
|
||||
SMART_EVENT_DEATH = 6, //1 // NONE
|
||||
SMART_EVENT_EVADE = 7, //1 // NONE
|
||||
SMART_EVENT_SPELLHIT = 8, //1 // SpellID, School, CooldownMin, CooldownMax
|
||||
SMART_EVENT_RANGE = 9, //1 // MinDist, MaxDist, RepeatMin, RepeatMax
|
||||
SMART_EVENT_OOC_LOS = 10, //1 // NoHostile, MaxRnage, CooldownMin, CooldownMax
|
||||
SMART_EVENT_RESPAWN = 11, //1 // type, MapId, ZoneId
|
||||
SMART_EVENT_TARGET_HEALTH_PCT = 12, //1 // HPMin%, HPMax%, RepeatMin, RepeatMax
|
||||
SMART_EVENT_TARGET_CASTING = 13, //1 // RepeatMin, RepeatMax
|
||||
SMART_EVENT_FRIENDLY_HEALTH = 14, //1 // HPDeficit, Radius, RepeatMin, RepeatMax
|
||||
SMART_EVENT_FRIENDLY_IS_CC = 15, //1 // Radius, RepeatMin, RepeatMax
|
||||
SMART_EVENT_FRIENDLY_MISSING_BUFF = 16, //1 // SpellId, Radius, RepeatMin, RepeatMax
|
||||
SMART_EVENT_SUMMONED_UNIT = 17, //1 // CreatureId(0 all), CooldownMin, CooldownMax
|
||||
SMART_EVENT_TARGET_MANA_PCT = 18, //1 // ManaMin%, ManaMax%, RepeatMin, RepeatMax
|
||||
SMART_EVENT_ACCEPTED_QUEST = 19, //1 // QuestID(0any)
|
||||
SMART_EVENT_REWARD_QUEST = 20, //1 // QuestID(0any)
|
||||
SMART_EVENT_REACHED_HOME = 21, //1 // NONE
|
||||
SMART_EVENT_RECEIVE_EMOTE = 22, //1 // EmoteId, CooldownMin, CooldownMax, condition, val1, val2, val3
|
||||
SMART_EVENT_HAS_AURA = 23, //1 // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 RepeatMin, RepeatMax
|
||||
SMART_EVENT_TARGET_BUFFED = 24, //1 // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 RepeatMin, RepeatMax
|
||||
SMART_EVENT_RESET = 25, //1 // Called after combat, when the creature respawn and spawn.
|
||||
SMART_EVENT_UPDATE_IC = 0, // InitialMin, InitialMax, RepeatMin, RepeatMax
|
||||
SMART_EVENT_UPDATE_OOC = 1, // InitialMin, InitialMax, RepeatMin, RepeatMax
|
||||
SMART_EVENT_HEALT_PCT = 2, // HPMin%, HPMax%, RepeatMin, RepeatMax
|
||||
SMART_EVENT_MANA_PCT = 3, // ManaMin%, ManaMax%, RepeatMin, RepeatMax
|
||||
SMART_EVENT_AGGRO = 4, // NONE
|
||||
SMART_EVENT_KILL = 5, // CooldownMin0, CooldownMax1, playerOnly2, else creature entry3
|
||||
SMART_EVENT_DEATH = 6, // NONE
|
||||
SMART_EVENT_EVADE = 7, // NONE
|
||||
SMART_EVENT_SPELLHIT = 8, // SpellID, School, CooldownMin, CooldownMax
|
||||
SMART_EVENT_RANGE = 9, // MinDist, MaxDist, RepeatMin, RepeatMax
|
||||
SMART_EVENT_OOC_LOS = 10, // NoHostile, MaxRnage, CooldownMin, CooldownMax
|
||||
SMART_EVENT_RESPAWN = 11, // type, MapId, ZoneId
|
||||
SMART_EVENT_TARGET_HEALTH_PCT = 12, // HPMin%, HPMax%, RepeatMin, RepeatMax
|
||||
SMART_EVENT_TARGET_CASTING = 13, // RepeatMin, RepeatMax
|
||||
SMART_EVENT_FRIENDLY_HEALTH = 14, // HPDeficit, Radius, RepeatMin, RepeatMax
|
||||
SMART_EVENT_FRIENDLY_IS_CC = 15, // Radius, RepeatMin, RepeatMax
|
||||
SMART_EVENT_FRIENDLY_MISSING_BUFF = 16, // SpellId, Radius, RepeatMin, RepeatMax
|
||||
SMART_EVENT_SUMMONED_UNIT = 17, // CreatureId(0 all), CooldownMin, CooldownMax
|
||||
SMART_EVENT_TARGET_MANA_PCT = 18, // ManaMin%, ManaMax%, RepeatMin, RepeatMax
|
||||
SMART_EVENT_ACCEPTED_QUEST = 19, // QuestID(0any)
|
||||
SMART_EVENT_REWARD_QUEST = 20, // QuestID(0any)
|
||||
SMART_EVENT_REACHED_HOME = 21, // NONE
|
||||
SMART_EVENT_RECEIVE_EMOTE = 22, // EmoteId, CooldownMin, CooldownMax, condition, val1, val2, val3
|
||||
SMART_EVENT_HAS_AURA = 23, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 RepeatMin, RepeatMax
|
||||
SMART_EVENT_TARGET_BUFFED = 24, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 RepeatMin, RepeatMax
|
||||
SMART_EVENT_RESET = 25, // Called after combat, when the creature respawn and spawn.
|
||||
SMART_EVENT_IC_LOS = 26, // NoHostile, MaxRnage, CooldownMin, CooldownMax
|
||||
SMART_EVENT_PASSENGER_BOARDED = 27, // CooldownMin, CooldownMax
|
||||
SMART_EVENT_PASSENGER_REMOVED = 28, // CooldownMin, CooldownMax
|
||||
SMART_EVENT_CHARMED = 29, // NONE
|
||||
SMART_EVENT_CHARMED_TARGET = 30, // NONE
|
||||
SMART_EVENT_SPELLHIT_TARGET = 31, // SpellID, School, CooldownMin, CooldownMax
|
||||
SMART_EVENT_DAMAGED = 32, // MinDmg, MaxDmg, CooldownMin, CooldownMax
|
||||
SMART_EVENT_DAMAGED_TARGET = 33, // MinDmg, MaxDmg, CooldownMin, CooldownMax
|
||||
SMART_EVENT_MOVEMENTINFORM = 34, // MovementType(any), PointID
|
||||
SMART_EVENT_SUMMON_DESPAWNED = 35, // Entry, CooldownMin, CooldownMax
|
||||
SMART_EVENT_CORPSE_REMOVED = 36, // NONE
|
||||
SMART_EVENT_AI_INIT = 37, // NONE
|
||||
SMART_EVENT_DATA_SET = 38, // Id, Value, CooldownMin, CooldownMax
|
||||
SMART_EVENT_WAYPOINT_START = 39, // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_WAYPOINT_REACHED = 40, // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_TRANSPORT_ADDPLAYER = 41, // NONE
|
||||
SMART_EVENT_TRANSPORT_ADDCREATURE = 42, // Entry (0 any)
|
||||
SMART_EVENT_TRANSPORT_REMOVE_PLAYER = 43, // NONE
|
||||
SMART_EVENT_TRANSPORT_RELOCATE = 44, // PointId
|
||||
SMART_EVENT_INSTANCE_PLAYER_ENTER = 45, // Team (0 any), CooldownMin, CooldownMax
|
||||
SMART_EVENT_AREATRIGGER_ONTRIGGER = 46, // TriggerId(0 any)
|
||||
SMART_EVENT_QUEST_ACCEPTED = 47, // none
|
||||
SMART_EVENT_QUEST_OBJ_COPLETETION = 48, // none
|
||||
SMART_EVENT_QUEST_COMPLETION = 49, // none
|
||||
SMART_EVENT_QUEST_REWARDED = 50, // none
|
||||
SMART_EVENT_QUEST_FAIL = 51, // none
|
||||
SMART_EVENT_TEXT_OVER = 52, // GroupId from creature_text, creature entry who talks (0 any)
|
||||
SMART_EVENT_RECEIVE_HEAL = 53, // MinHeal, MaxHeal, CooldownMin, CooldownMax
|
||||
SMART_EVENT_JUST_SUMMONED = 54, // none
|
||||
SMART_EVENT_WAYPOINT_PAUSED = 55, // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_WAYPOINT_RESUMED = 56, // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_WAYPOINT_STOPPED = 57, // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_WAYPOINT_ENDED = 58, // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_TIMED_EVENT_TRIGGERED = 59, // id
|
||||
SMART_EVENT_UPDATE = 60, // InitialMin, InitialMax, RepeatMin, RepeatMax
|
||||
SMART_EVENT_LINK = 61, // INTERNAL USAGE, no params, used to link together multiple events, does not use any extra resources to iterate event lists needlessly
|
||||
SMART_EVENT_GOSSIP_SELECT = 62, // menuID, actionID
|
||||
SMART_EVENT_JUST_CREATED = 63, // none
|
||||
SMART_EVENT_GOSSIP_HELLO = 64, // none
|
||||
SMART_EVENT_FOLLOW_COMPLETED = 65, // none
|
||||
SMART_EVENT_DUMMY_EFFECT = 66, // spellId, effectIndex
|
||||
SMART_EVENT_IS_BEHIND_TARGET = 67, // cooldownMin, CooldownMax
|
||||
SMART_EVENT_GAME_EVENT_START = 68, // game_event.Entry
|
||||
SMART_EVENT_GAME_EVENT_END = 69, // game_event.Entry
|
||||
SMART_EVENT_GO_STATE_CHANGED = 70, // go state
|
||||
SMART_EVENT_GO_EVENT_INFORM = 71, // eventId
|
||||
SMART_EVENT_ACTION_DONE = 72, // eventId (SharedDefines.EventId)
|
||||
|
||||
SMART_EVENT_IC_LOS = 26, //1 // NoHostile, MaxRnage, CooldownMin, CooldownMax
|
||||
SMART_EVENT_PASSENGER_BOARDED = 27, //1 // CooldownMin, CooldownMax
|
||||
SMART_EVENT_PASSENGER_REMOVED = 28, //1 // CooldownMin, CooldownMax
|
||||
SMART_EVENT_CHARMED = 29, //1 // NONE
|
||||
SMART_EVENT_CHARMED_TARGET = 30, //1 // NONE
|
||||
SMART_EVENT_SPELLHIT_TARGET = 31, //1 // SpellID, School, CooldownMin, CooldownMax
|
||||
SMART_EVENT_DAMAGED = 32, //1 // MinDmg, MaxDmg, CooldownMin, CooldownMax
|
||||
SMART_EVENT_DAMAGED_TARGET = 33, //1 // MinDmg, MaxDmg, CooldownMin, CooldownMax
|
||||
SMART_EVENT_MOVEMENTINFORM = 34, //1 // MovementType(any), PointID
|
||||
SMART_EVENT_SUMMON_DESPAWNED = 35, //1 // Entry, CooldownMin, CooldownMax
|
||||
SMART_EVENT_CORPSE_REMOVED = 36, //1 // NONE
|
||||
SMART_EVENT_AI_INIT = 37, //1 // NONE
|
||||
SMART_EVENT_DATA_SET = 38, //1 // Id, Value, CooldownMin, CooldownMax
|
||||
SMART_EVENT_WAYPOINT_START = 39, //1 // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_WAYPOINT_REACHED = 40, //1 // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_TRANSPORT_ADDPLAYER = 41, //1 // NONE
|
||||
SMART_EVENT_TRANSPORT_ADDCREATURE = 42, //1 // Entry (0 any)
|
||||
SMART_EVENT_TRANSPORT_REMOVE_PLAYER = 43, //1 // NONE
|
||||
SMART_EVENT_TRANSPORT_RELOCATE = 44, //1 // PointId
|
||||
SMART_EVENT_INSTANCE_PLAYER_ENTER = 45, //1 // Team (0 any), CooldownMin, CooldownMax
|
||||
SMART_EVENT_AREATRIGGER_ONTRIGGER = 46, //1 // TriggerId(0 any)
|
||||
SMART_EVENT_QUEST_ACCEPTED = 47, //1 // none
|
||||
SMART_EVENT_QUEST_OBJ_COPLETETION = 48, //1 // none
|
||||
SMART_EVENT_QUEST_COMPLETION = 49, //1 // none
|
||||
SMART_EVENT_QUEST_REWARDED = 50, //1 // none
|
||||
SMART_EVENT_QUEST_FAIL = 51, //1 // none
|
||||
SMART_EVENT_TEXT_OVER = 52, //1 // GroupId from creature_text, creature entry who talks (0 any)
|
||||
SMART_EVENT_RECEIVE_HEAL = 53, //1 // MinHeal, MaxHeal, CooldownMin, CooldownMax
|
||||
SMART_EVENT_JUST_SUMMONED = 54, //1 // none
|
||||
SMART_EVENT_WAYPOINT_PAUSED = 55, //1 // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_WAYPOINT_RESUMED = 56, //1 // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_WAYPOINT_STOPPED = 57, //1 // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_WAYPOINT_ENDED = 58, //1 // PointId(0any), pathID(0any)
|
||||
SMART_EVENT_TIMED_EVENT_TRIGGERED = 59, //1 // id
|
||||
SMART_EVENT_UPDATE = 60, //1 // InitialMin, InitialMax, RepeatMin, RepeatMax
|
||||
SMART_EVENT_LINK = 61, //1 // INTERNAL USAGE, no params, used to link together multiple events, does not use any extra resources to iterate event lists needlessly
|
||||
SMART_EVENT_GOSSIP_SELECT = 62, //1 // menuID, actionID
|
||||
SMART_EVENT_JUST_CREATED = 63, //1 // none
|
||||
SMART_EVENT_GOSSIP_HELLO = 64, //1 // none
|
||||
SMART_EVENT_FOLLOW_COMPLETED = 65, //1 // none
|
||||
SMART_EVENT_DUMMY_EFFECT = 66, //1 // spellId, effectIndex
|
||||
SMART_EVENT_IS_BEHIND_TARGET = 67, //1 // cooldownMin, CooldownMax
|
||||
SMART_EVENT_GAME_EVENT_START = 68, //1 // game_event.Entry
|
||||
SMART_EVENT_GAME_EVENT_END = 69, //1 // game_event.Entry
|
||||
SMART_EVENT_GO_STATE_CHANGED = 70, //1 // go state
|
||||
SMART_EVENT_GO_EVENT_INFORM = 71, //1 // eventId
|
||||
|
||||
SMART_EVENT_END = 72,
|
||||
SMART_EVENT_END = 73,
|
||||
};
|
||||
|
||||
struct SmartEvent
|
||||
@@ -356,6 +356,11 @@ struct SmartEvent
|
||||
uint32 eventId;
|
||||
} eventInform;
|
||||
|
||||
struct
|
||||
{
|
||||
uint32 eventId;
|
||||
} doAction;
|
||||
|
||||
struct
|
||||
{
|
||||
uint32 param1;
|
||||
@@ -1173,6 +1178,7 @@ const uint32 SmartAIEventMask[SMART_EVENT_END][2] =
|
||||
{SMART_EVENT_GAME_EVENT_END, SMART_SCRIPT_TYPE_MASK_CREATURE + SMART_SCRIPT_TYPE_MASK_GAMEOBJECT },
|
||||
{SMART_EVENT_GO_STATE_CHANGED, SMART_SCRIPT_TYPE_MASK_GAMEOBJECT },
|
||||
{SMART_EVENT_GO_EVENT_INFORM, SMART_SCRIPT_TYPE_MASK_GAMEOBJECT },
|
||||
{SMART_EVENT_ACTION_DONE, SMART_SCRIPT_TYPE_MASK_CREATURE },
|
||||
};
|
||||
|
||||
enum SmartEventFlags
|
||||
|
||||
Reference in New Issue
Block a user