From ebf4b2452e5914c49a1fb77d049782821ea7ab84 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 18 Mar 2020 16:49:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=AA=91=E9=A9=B4=E5=AD=90?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E7=94=9F=E5=81=8F=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/metamgr.cc | 2 ++ server/gameserver/metamgr.h | 2 ++ server/gameserver/player.cc | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index 4678cd0..9db3d95 100755 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -138,6 +138,8 @@ public: MetaMgr::Instance()->tank_damage_interval = MetaMgr::Instance()->GetSysParamAsFloat("tank_damage_interval", 1); MetaMgr::Instance()->average_oil = MetaMgr::Instance()->GetSysParamAsInt("average_oil"); MetaMgr::Instance()->max_oil = MetaMgr::Instance()->GetSysParamAsInt("max_oil"); + MetaMgr::Instance()->horse_shoot_x = MetaMgr::Instance()->GetSysParamAsInt("horse_shoot_x"); + MetaMgr::Instance()->horse_shoot_y = MetaMgr::Instance()->GetSysParamAsInt("horse_shoot_y"); if (MetaMgr::Instance()->K < 0.01f) { abort(); } diff --git a/server/gameserver/metamgr.h b/server/gameserver/metamgr.h index 3407af7..5966273 100755 --- a/server/gameserver/metamgr.h +++ b/server/gameserver/metamgr.h @@ -57,6 +57,8 @@ class MetaMgr : public a8::Singleton float tank_damage_interval = 0.0f; float average_oil = 0.0f; float max_oil = 0.0f; + float horse_shoot_x = 0.0f; + float horse_shoot_y = 0.0f; private: MetaDataLoader* loader_ = nullptr; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 5e15fb7..094fa22 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -372,6 +372,10 @@ void Player::Shot() } } bullet_dir.Rotate(bullet_angle / 180.0f); + if (car_.car_id != 0) { + bullet_born_pos.x += MetaMgr::Instance()->horse_shoot_x; + bullet_born_pos.y += MetaMgr::Instance()->horse_shoot_y; + } room->frame_event.AddBullet(this, bullet_born_pos, bullet_dir, fly_distance); if (room->BattleStarted() || (room->gas_data.gas_mode == GasJump && !a8::HasBitFlag(status, HS_Jump))) { room->CreateBullet(this, curr_weapon, bullet_born_pos, bullet_dir, fly_distance);