From 3f62f0caddc0f06e23560655c6584d08f5948416 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 8 Jun 2021 16:08:38 +0800 Subject: [PATCH] remove specmapobject --- server/gameserver/human.cc | 65 -------------------------------------- server/gameserver/human.h | 10 ------ 2 files changed, 75 deletions(-) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index cefa9bd..3f6ffa0 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3391,71 +3391,6 @@ void Human::DoGetOnWithCar(Car* car) car->GetOn(this); } -void Human::OnEnterSpecMapArea(int tag, SpecMapObject& map_obj) -{ - #ifdef DEBUG - SendDebugMsg("进入特殊区域"); - #endif - ClearSpecMapAreaTimer(map_obj); - map_obj.enter_timer = room->xtimer.AddDeadLineTimerAndAttach - (MetaMgr::Instance()->GetSpecMapAreaEnterTime(tag) * SERVER_FRAME_RATE, - a8::XParams() - .SetSender(this) - .SetParam1(&map_obj) - .SetParam2(tag), - [] (const a8::XParams& param) - { - Human* hum = (Human*)param.sender.GetUserData(); - int buff_id = MetaMgr::Instance()->GetSpecMapAreaBuffId(param.param2); - hum->MustBeAddBuff(hum, buff_id); - }, - &xtimer_attacher.timer_list_, - [] (const a8::XParams& param) - { - SpecMapObject* map_obj = (SpecMapObject*)param.param1.GetUserData(); - map_obj->enter_timer = nullptr; - }); - -} - -void Human::OnLeaveSpecMapArea(int tag, SpecMapObject& map_obj) -{ - #ifdef DEBUG - SendDebugMsg("离开特殊区域"); - #endif - ClearSpecMapAreaTimer(map_obj); - map_obj.leave_timer = room->xtimer.AddDeadLineTimerAndAttach - (MetaMgr::Instance()->GetSpecMapAreaLeaveTime(tag) * SERVER_FRAME_RATE, - a8::XParams() - .SetSender(this) - .SetParam1(&map_obj) - .SetParam2(tag), - [] (const a8::XParams& param) - { - Human* hum = (Human*)param.sender.GetUserData(); - hum->RemoveBuffById((MetaMgr::Instance()->GetSpecMapAreaBuffId(param.param2))); - }, - &xtimer_attacher.timer_list_, - [] (const a8::XParams& param) - { - SpecMapObject* map_obj = (SpecMapObject*)param.param1.GetUserData(); - map_obj->leave_timer = nullptr; - }); - -} - -void Human::ClearSpecMapAreaTimer(SpecMapObject& map_obj) -{ - if (map_obj.leave_timer) { - room->xtimer.DeleteTimer(map_obj.leave_timer); - map_obj.leave_timer = nullptr; - } - if (map_obj.enter_timer) { - room->xtimer.DeleteTimer(map_obj.enter_timer); - map_obj.enter_timer = nullptr; - } -} - void Human::DoSkillPreProc(int skill_id, int target_id, const a8::Vec2& target_pos) { if (action_type == AT_Reload || diff --git a/server/gameserver/human.h b/server/gameserver/human.h index f40cd34..980e603 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -21,12 +21,6 @@ enum HumanStatus HS_End }; -struct SpecMapObject -{ - struct xtimer_list* leave_timer = nullptr; - struct xtimer_list* enter_timer = nullptr; -}; - struct PartObject { int entity_uniid = 0; @@ -288,9 +282,6 @@ private: void NextReload(int prev_weapon_id, int prev_weapon_idx); void DoGetOnWithLoot(Loot* loot_entity); void DoGetOnWithCar(Car* car); - void OnEnterSpecMapArea(int tag, SpecMapObject& map_obj); - void OnLeaveSpecMapArea(int tag, SpecMapObject& map_obj); - void ClearSpecMapAreaTimer(SpecMapObject& map_obj); virtual void AddBuffPostProc(Creature* caster, Buff* buff) override; virtual void OnBuffRemove(Buff& buff) override; virtual void DoSkillPreProc(int skill_id, int target_id, const a8::Vec2& target_pos) override; @@ -352,7 +343,6 @@ private: size_t box_drop_times_ = 0; std::array fixed_object_sync_flags_ = {}; - std::array spec_map_objects_ = {}; bool already_report_battle_ = false; bool sent_battlereport_ = false;