remove specmapobject
This commit is contained in:
parent
97d94f23d3
commit
3f62f0cadd
@ -3391,71 +3391,6 @@ void Human::DoGetOnWithCar(Car* car)
|
|||||||
car->GetOn(this);
|
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)
|
void Human::DoSkillPreProc(int skill_id, int target_id, const a8::Vec2& target_pos)
|
||||||
{
|
{
|
||||||
if (action_type == AT_Reload ||
|
if (action_type == AT_Reload ||
|
||||||
|
@ -21,12 +21,6 @@ enum HumanStatus
|
|||||||
HS_End
|
HS_End
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SpecMapObject
|
|
||||||
{
|
|
||||||
struct xtimer_list* leave_timer = nullptr;
|
|
||||||
struct xtimer_list* enter_timer = nullptr;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PartObject
|
struct PartObject
|
||||||
{
|
{
|
||||||
int entity_uniid = 0;
|
int entity_uniid = 0;
|
||||||
@ -288,9 +282,6 @@ private:
|
|||||||
void NextReload(int prev_weapon_id, int prev_weapon_idx);
|
void NextReload(int prev_weapon_id, int prev_weapon_idx);
|
||||||
void DoGetOnWithLoot(Loot* loot_entity);
|
void DoGetOnWithLoot(Loot* loot_entity);
|
||||||
void DoGetOnWithCar(Car* car);
|
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 AddBuffPostProc(Creature* caster, Buff* buff) override;
|
||||||
virtual void OnBuffRemove(Buff& buff) override;
|
virtual void OnBuffRemove(Buff& buff) override;
|
||||||
virtual void DoSkillPreProc(int skill_id, int target_id, const a8::Vec2& target_pos) 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;
|
size_t box_drop_times_ = 0;
|
||||||
|
|
||||||
std::array<ObjectSyncFlags, FIXED_OBJECT_MAXID> fixed_object_sync_flags_ = {};
|
std::array<ObjectSyncFlags, FIXED_OBJECT_MAXID> fixed_object_sync_flags_ = {};
|
||||||
std::array<SpecMapObject, kColliderSpecTag_End - kColliderSpecTag_Begin + 1> spec_map_objects_ = {};
|
|
||||||
|
|
||||||
bool already_report_battle_ = false;
|
bool already_report_battle_ = false;
|
||||||
bool sent_battlereport_ = false;
|
bool sent_battlereport_ = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user