From 0ab7d1561da2fdd258af833c05b0d7d42c6f01dd Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 2 Mar 2023 14:17:15 +0800 Subject: [PATCH] 1 --- server/gameserver/buff.cc | 2 +- server/gameserver/frameevent.cc | 4 ++-- server/gameserver/frameevent.h | 4 ++-- server/gameserver/player.cc | 22 ++++++++++++++++++++++ server/gameserver/shot.cc | 2 +- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 8fd940de..bcacc8c6 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -320,7 +320,7 @@ void Buff::ProcSputteringFunc(Bullet* bullet) owner->GetWeakPtrRef(), weapon_meta, 1, - bullet_born_pos, + bullet_born_pos.ToGlmVec3(), bullet_dir, 0, 0, diff --git a/server/gameserver/frameevent.cc b/server/gameserver/frameevent.cc index 64df9cb4..9387c379 100644 --- a/server/gameserver/frameevent.cc +++ b/server/gameserver/frameevent.cc @@ -85,8 +85,8 @@ void FrameEvent::AddBullet(int bullet_uniid, CreatureWeakPtr& sender, const mt::Equip* weapon_meta, int weapon_lv, - Position born_pos, - glm::vec3 dir, + const glm::vec3& born_pos, + const glm::vec3& dir, float fly_distance, int trace_target_id, int hand) diff --git a/server/gameserver/frameevent.h b/server/gameserver/frameevent.h index 7c7e7557..df4fb7b0 100644 --- a/server/gameserver/frameevent.h +++ b/server/gameserver/frameevent.h @@ -21,8 +21,8 @@ public: CreatureWeakPtr& sender, const mt::Equip* weapon_meta, int weapon_lv, - Position born_pos, - glm::vec3 dir, + const glm::vec3& born_pos, + const glm::vec3& dir, float fly_distance, int trace_target_id, int hand); diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 0a486efa..372f4bb6 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1646,6 +1646,28 @@ void Player::UpdateThrowBomb() weapon.ammo, true ); + glm::vec3 bomb_pos = glm::vec3( + throw_bomb->pos().x(), + throw_bomb->pos().y(), + throw_bomb->pos().z() + ); + glm::vec3 bomb_dir = glm::vec3( + throw_bomb->dir().x(), + throw_bomb->dir().y(), + throw_bomb->dir().z() + ); + room->frame_event.AddBullet + ( + room->AllocUniid(), + GetWeakPtrRef(), + equip_meta, + 1, + bomb_pos, + bomb_dir, + throw_bomb->fly_distance(), + 0, + 1 + ); pending_throw_bomb[throw_bomb->throw_uniid()] = throw_bomb; } } diff --git a/server/gameserver/shot.cc b/server/gameserver/shot.cc index bf5f6b93..c8710735 100644 --- a/server/gameserver/shot.cc +++ b/server/gameserver/shot.cc @@ -253,7 +253,7 @@ static void InternalCreateBullet(BulletInfo& bullet_info) c->GetWeakPtrRef(), bullet_info.weapon_meta, bullet_info.weapon_lv, - bullet_info.bullet_born_pos, + bullet_info.bullet_born_pos.ToGlmVec3(), bullet_info.bullet_dir, bullet_info.fly_distance, bullet_info.trace_target_uniid,