diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index 5714516..235c452 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -448,8 +448,8 @@ void Bullet::AddGunBuff() { if (sender.Get()) { std::shared_ptr old_context_ability = sender.Get()->context_ability; - a8::Vec2 old_buff_vec2_param1 = sender.Get()->buff_vec2_param1; - sender.Get()->buff_vec2_param1 = GetPos(); + a8::Vec2 old_context_pos = sender.Get()->context_pos; + sender.Get()->context_pos = GetPos(); MetaData::Buff * buff_meta = MetaMgr::Instance()->GetBuff(gun_meta->i->buffid()); if (buff_meta) { sender.Get()->AddBuff(sender.Get(), @@ -457,7 +457,7 @@ void Bullet::AddGunBuff() 1 ); } - sender.Get()->buff_vec2_param1 = old_buff_vec2_param1; + sender.Get()->context_pos = old_context_pos; sender.Get()->context_ability = old_context_ability; } } diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index e7ac828..d313e15 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -23,8 +23,8 @@ void InternalShot(Creature* c, { if (weapon_meta->i->_inventory_slot() == IS_TRAP || weapon_meta->i->_inventory_slot() == IS_MINE) { - a8::Vec2 old_buff_vec2_param1 = c->buff_vec2_param1; - c->buff_vec2_param1 = c->GetPos() + c->GetAttackDir() * fly_distance; + a8::Vec2 old_context_pos = c->context_pos; + c->context_pos = c->GetPos() + c->GetAttackDir() * fly_distance; MetaData::Buff * buff_meta = MetaMgr::Instance()->GetBuff(bullet_meta->i->buffid()); if (buff_meta) { c->AddBuff(c, @@ -32,7 +32,7 @@ void InternalShot(Creature* c, 1 ); } - c->buff_vec2_param1 = old_buff_vec2_param1; + c->context_pos = old_context_pos; return; } for (auto& tuple : weapon_meta->bullet_born_offset) { @@ -571,7 +571,7 @@ void Creature::DoSkill(int skill_id, skill_distance_ = skill_distance; curr_skill_ = skill; playing_skill = true; - buff_vec2_param1 = GetPos() + skill_dir_ * skill_distance_; + context_pos = GetPos() + skill_dir_ * skill_distance_; CurrentSkill()->last_use_frameno = room->GetFrameNo(); if (CurrentSkill()->meta->i->skill_target() == kST_Self ) { @@ -927,7 +927,7 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff) case kBET_SummonObstacle: { if (!dead) { - SummonObstacle(buff, buff->meta->param1, buff_vec2_param1); + SummonObstacle(buff, buff->meta->param1, context_pos); } } break; diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index d1031a6..2974a93 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -69,7 +69,7 @@ class Creature : public MoveableEntity int power_idx = -1; Weapon second_weapon; - a8::Vec2 buff_vec2_param1; + a8::Vec2 context_pos; std::shared_ptr context_ability; bool need_sync_active_player = false; diff --git a/server/gameserver/obstacle.cc b/server/gameserver/obstacle.cc index 4e801a4..9bde65f 100644 --- a/server/gameserver/obstacle.cc +++ b/server/gameserver/obstacle.cc @@ -764,12 +764,12 @@ std::tuple* Obstacle::GetInteractionData(Human* sender) void Obstacle::AddObstacleBuff(Creature* c) { - a8::Vec2 old_buff_vec2_param1 = c->buff_vec2_param1; - c->buff_vec2_param1 = c->GetPos(); + a8::Vec2 old_context_pos = c->context_pos; + c->context_pos = c->GetPos(); for (int buff_id : meta->buff_list) { c->TryAddBuff(c, buff_id); } - c->buff_vec2_param1 = old_buff_vec2_param1; + c->context_pos = old_context_pos; } void Obstacle::ClearObstacleBuff(Creature* c)