diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 03c200a..32af722 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -66,6 +66,14 @@ float Human::GetSpeed() } if (downed) { return meta->i->move_speed3() + buff.speed; } else { + if (shot_hold) { + if (curr_weapon->weapon_idx == GUN_SLOT1 || + curr_weapon->weapon_idx == GUN_SLOT2) { + if (action_type != AT_Reload) { + return meta->i->shot_speed(); + } + } + } return meta->i->move_speed() + buff.speed; } } diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 8508bc2..dc55c47 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -96,6 +96,11 @@ class Human : public Entity std::set* team_members = nullptr; std::set kill_humans; + bool shot_start = false; + bool shot_hold = false; + int series_shot_frames = 0; + float fly_distance = 0.0f; + long long jump_frameno = 0; long long send_msg_times = 0; diff --git a/server/gameserver/player.h b/server/gameserver/player.h index 6b82065..cfdbd22 100644 --- a/server/gameserver/player.h +++ b/server/gameserver/player.h @@ -30,11 +30,6 @@ class Player : public Human bool moving = false; int moved_frames = 0; - bool shot_start = false; - bool shot_hold = false; - int series_shot_frames = 0; - float fly_distance = 0.0f; - bool select_weapon = false; int selected_weapon_idx = 0; diff --git a/server/masterserver/CMakeLists.txt b/server/masterserver/CMakeLists.txt index 8c97cfe..e27615a 100644 --- a/server/masterserver/CMakeLists.txt +++ b/server/masterserver/CMakeLists.txt @@ -37,6 +37,12 @@ aux_source_directory(../../third_party/framework/cpp SRC_LIST ) +execute_process( + COMMAND touch -a ss_proto.pb.h + COMMAND touch -a ss_proto.pb.cc + COMMAND touch -a ss_msgid.pb.h + COMMAND touch -a ss_msgid.pb.cc + ) aux_source_directory(. SRC_LIST ) diff --git a/server/tools/protobuild/metatable.proto b/server/tools/protobuild/metatable.proto index 106612f..4498fd7 100755 --- a/server/tools/protobuild/metatable.proto +++ b/server/tools/protobuild/metatable.proto @@ -98,6 +98,7 @@ message Player optional int32 move_speed = 4; //移动速度 optional int32 jump_speed = 5; //跳伞速度 optional int32 move_speed3 = 6; + optional int32 shot_speed = 7; optional int32 move_speed4 = 10; //移动速度4 optional float def = 11; //防御 optional string volume = 12; //初始库存 diff --git a/server/tools/scripts/ci/gameserver/manage.py b/server/tools/scripts/ci/gameserver/manage.py index 7715216..0fbe763 100755 --- a/server/tools/scripts/ci/gameserver/manage.py +++ b/server/tools/scripts/ci/gameserver/manage.py @@ -34,7 +34,7 @@ def stop(instance_id, node_id): for pid in pids: exepath = getExePath(pid) cmdline = getExeCmdLine(pid) - if cmdline == ("./gameserver\0-i\0%d\0-i\0%d\0" % (instance_id, node_id)): + if cmdline == ("./gameserver\0-i\0%d\0-n\0%d\0" % (instance_id, node_id)): os.popen('kill -9 %d' % int(pid)) def listServer(): diff --git a/server/tools/scripts/ci/masterserer/manage.py b/server/tools/scripts/ci/masterserer/manage.py index 9442517..438640a 100755 --- a/server/tools/scripts/ci/masterserer/manage.py +++ b/server/tools/scripts/ci/masterserer/manage.py @@ -34,7 +34,7 @@ def stop(instance_id, node_id): for pid in pids: exepath = getExePath(pid) cmdline = getExeCmdLine(pid) - if cmdline == ("./masterserver\0-i\0%d\0-i\0%d\0" % (instance_id, node_id)): + if cmdline == ("./masterserver\0-i\0%d\0-n\0%d\0" % (instance_id, node_id)): os.popen('kill -9 %d' % int(pid)) def listServer(): diff --git a/third_party/a8engine b/third_party/a8engine index 8cee06b..9c2a352 160000 --- a/third_party/a8engine +++ b/third_party/a8engine @@ -1 +1 @@ -Subproject commit 8cee06b52896b0573eeff482a4c9fa1adac2a7fc +Subproject commit 9c2a3520f5459f6260ac4b9b34958ef4c8776a80