diff --git a/server/gameserver/shot.cc b/server/gameserver/shot.cc index 29ad433d..872bbd82 100644 --- a/server/gameserver/shot.cc +++ b/server/gameserver/shot.cc @@ -157,7 +157,7 @@ static void InternalCreateBullet(BulletInfo& bullet_info) } } if (c->IsCar() && c->AsCar()->IsSingle()) { - a8::Vec2 bullet_born_offset; + glm::vec3 bullet_born_offset; bool is_player = c->IsPlayer(); bool is_car = c->IsCar(); float bullet_born_angle = GlmHelper::CalcAngle(c->GetAttackDir(), GlmHelper::RIGHT); @@ -165,7 +165,7 @@ static void InternalCreateBullet(BulletInfo& bullet_info) bullet_born_angle = -bullet_born_angle; } float old_bullet_born_angle = bullet_born_angle; - bullet_born_offset.Rotate(bullet_born_angle); + GlmHelper::RotateY(bullet_born_offset, bullet_born_angle); auto transform = glm::rotate(hero_transform, bullet_born_angle * A8_PI, @@ -178,8 +178,8 @@ static void InternalCreateBullet(BulletInfo& bullet_info) bullet_info.bullet_idx, bullet_info.bullet_num); glm::vec4 v = transform * gun_muzzle_position; - bullet_born_offset = a8::Vec2(v.z *10*1, v.x*10*-1); - bullet_info.bullet_born_pos.FromVec2(c->GetPos().ToVec2() + bullet_born_offset); + bullet_born_offset = glm::vec3(v.z *10*1, 0.0f, v.x*10*-1); + bullet_info.bullet_born_pos.FromGlmVec3(c->GetPos().ToGlmVec3() + bullet_born_offset); bullet_info.bullet_dir = c->GetShotDir(); } int bullet_uniid = 0; diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 75b419d2..16ceea8f 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -524,12 +524,9 @@ void Skill::ProcSWZB() glm::vec3 dir = sender.Get()->GetAttackDir(); if (!GlmHelper::IsZero(dir)) { // 999 - #if 1 - #else - a8::Vec2 target_pos = c->GetPos() + - dir * SkillHelper::GetSwzbPullDistance(skill_meta); + glm::vec3 target_pos = c->GetPos().ToGlmVec3() + + dir * (float)(SkillHelper::GetSwzbPullDistance(skill_meta)); c->PullTarget(target_pos); - #endif } int buff_id = SkillHelper::GetSwzbBuffId(skill_meta); float buff_time = SkillHelper::GetSwzbBuffTime(skill_meta);