From 63a3cfa766bf76c774f06f4804f83b801ba7c06e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 19 Mar 2021 16:05:08 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 22 ++++++++++------------ server/gameserver/creature.h | 2 ++ server/gameserver/human.h | 2 -- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 450bf37..f161f7b 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -421,36 +421,35 @@ void Creature::TriggerBuff(Skill* skill, std::set& target_list, BuffTri void Creature::TriggerOneObjectBuff(Skill* skill, Entity* target, BuffTriggerType_e trigger_type) { - #if 0 if (!target->IsEntityType(ET_Player)) { return; } - Human* hum = (Human*)target; - if (hum->dead) { + Creature* c = (Creature*)target; + if (c->dead) { return; } - auto itr = CurrentSkill()->meta->trigger_type_buffs.find(trigger_type); - if (itr != CurrentSkill()->meta->trigger_type_buffs.end()) { + auto itr = skill->meta->trigger_type_buffs.find(trigger_type); + if (itr != skill->meta->trigger_type_buffs.end()) { for (MetaData::Buff* buff_meta : itr->second) { switch (buff_meta->i->buff_target()) { case kBuffTargetSelf: //自己 { - if (hum == this) { - hum->AddBuff(this, buff_meta, 1, CurrentSkill()->meta); + if (c == this) { + c->AddBuff(this, buff_meta, 1, skill->meta); } } break; case kBuffTargetFriendly: //友军 { - if (hum->team_id == team_id) { - hum->AddBuff(this, buff_meta, 1, CurrentSkill()->meta); + if (c->team_id == team_id) { + c->AddBuff(this, buff_meta, 1, skill->meta); } } break; case kBuffTargetEnemy: //敌军 { - if (hum->team_id != team_id) { - hum->AddBuff(this, buff_meta, 1, CurrentSkill()->meta); + if (c->team_id != team_id) { + c->AddBuff(this, buff_meta, 1, skill->meta); } } break; @@ -459,7 +458,6 @@ void Creature::TriggerOneObjectBuff(Skill* skill, Entity* target, BuffTriggerTyp } } } - #endif } Skill* Creature::GetSkill(int skill_id) diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index 4d1fa10..afd9277 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -17,6 +17,8 @@ class Creature : public MoveableEntity { public: + bool dead = false; + int team_id = 0; bool aiming = false; ActionType_e action_type = AT_None; a8::Vec2 attack_dir; diff --git a/server/gameserver/human.h b/server/gameserver/human.h index e1f195f..94d3739 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -37,7 +37,6 @@ class Human : public Creature public: int socket_handle = 0; long ip_saddr = 0; - int team_id = 0; std::string account_id; std::string session_id; std::string from_appid; @@ -95,7 +94,6 @@ class Human : public Creature bool real_dead = false; xtimer_list* revive_timer = nullptr; int dead_times = 0; - bool dead = false; long long dead_frameno = 0; long long real_dead_frameno = 0;