diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 32d51bb0..00375e5d 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2504,6 +2504,7 @@ void Creature::OnBattleStart(Room* room) TryAddBuffAndSetTime(this, kInvincibleBuffId, FRAME_RATE_MS * 2); } battle_start_time_ = f8::App::Instance()->GetNowTime(); + GetTrigger()->OnBattleStart(); } bool Creature::CanFollow(Creature* follower) diff --git a/server/gameserver/trigger.cc b/server/gameserver/trigger.cc index 4968a5b3..736414a7 100644 --- a/server/gameserver/trigger.cc +++ b/server/gameserver/trigger.cc @@ -738,3 +738,8 @@ void Trigger::BulletDmgEnd(Creature* target) { DispatchEvent(kBulletDmgEndEvent, {target}); } + +void Trigger::OnBattleStart() +{ + DispatchEvent(kBattleStartEvent, {}); +} diff --git a/server/gameserver/trigger.h b/server/gameserver/trigger.h index 82e54f07..32ef4dbb 100644 --- a/server/gameserver/trigger.h +++ b/server/gameserver/trigger.h @@ -39,6 +39,7 @@ enum EventId_e kBulletDmgStartEvent, kBulletDmgEndEvent, kCrazeModeEvent, + kBattleStartEvent }; class Weapon; @@ -94,6 +95,7 @@ public: void BeAttack(int attacker_id); void BulletDmgStart(Creature* target); void BulletDmgEnd(Creature* target); + void OnBattleStart(); std::weak_ptr AddListener(int event_id, a8::CommonCbProc cb); void RemoveEventHandler(std::weak_ptr handler_ptr);