From 2e7adfa88939015f77a5b0f078bc96d42db9c5e5 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 23 Mar 2021 16:17:41 +0800 Subject: [PATCH] 1 --- server/gameserver/constant.h | 1 + server/gameserver/creature.cc | 9 +++++++-- server/gameserver/select_target.cc | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index 0d67084..24c4840 100755 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -146,6 +146,7 @@ enum BuffEffectType_e kBET_InGrass = 27, //在草丛 kBET_InWater = 28, //在水里 kBET_InIce = 29, //在冰里 + kBET_Shield = 31, //护盾 kBET_ThroughWall = 50, //穿墙 kBET_Driver = 51, //驾驶中 diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 5579258..e4d71a6 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -434,7 +434,7 @@ void Creature::DoSkill(int skill_id, int target_id, const a8::Vec2& target_pos) Creature* c = (Creature*)entity; std::set target_list; skill_target_pos_ = c->GetPos(); - SelectSkillTargets(c->CurrentSkill(), c->GetPos(), target_list); + SelectSkillTargets(CurrentSkill(), c->GetPos(), target_list); TriggerBuff(CurrentSkill(), target_list, kBTT_UseSkill); if (!CurrentSkill()->meta->phases.empty() && CurrentSkill()->meta->phases[0].time_offset <= 0) { @@ -475,7 +475,7 @@ void Creature::UpdateSkill() if (CurrentSkill()) { if (curr_skill_phase < CurrentSkill()->meta->phases.size()) { MetaData::SkillPhase* phase = &CurrentSkill()->meta->phases[curr_skill_phase]; - if (phase->time_offset >= CurrentSkill()->GetLeftTime()) { + if (phase->time_offset >= CurrentSkill()->GetPassedTime()) { ProcSkillPhase(phase); ++curr_skill_phase; } @@ -715,6 +715,11 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff) } } break; + case kBET_Shield: + { + + } + break; default: { } diff --git a/server/gameserver/select_target.cc b/server/gameserver/select_target.cc index edd2582..ff57987 100644 --- a/server/gameserver/select_target.cc +++ b/server/gameserver/select_target.cc @@ -55,13 +55,17 @@ void Creature::SelectSkillTargets(Skill* skill, const a8::Vec2& target_pos, std: break; case kST_EnemySingle: { - #if 0 + #if 1 Entity* entity = room->GetEntityByUniId(skill_target_id_); if (entity && entity->IsEntityType(ET_Player)) { Human* hum = (Human*)entity; + #if 1 + target_list.insert(hum); + #else if (IsEnemy(hum)) { target_list.insert(hum); } + #endif } #endif }