diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index c4513aba..d26fa5ea 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -2680,8 +2680,10 @@ int Room::JoinWithCustomBattle(std::shared_ptr p) { if (!m->IsAndroid()) { Player* hum = InternalCreatePlayer(p, m, room_team); - //hum->is_client_move = m->GetCMJoinMsg()->is_client_move(); - hum->is_client_move = 1; + if (m->GetCMJoinMsg()) { + hum->is_client_move = m->GetCMJoinMsg()->is_client_move(); + } + //hum->is_client_move = 1; } else { Human* hum = CreateAndroidWithCustomMember(m, room_team); } @@ -2729,7 +2731,7 @@ int Room::JoinWithCustomBattle(std::shared_ptr p) a8::SetBitFlag(hum->status, CS_IsOb); p->GetRoom()->GetRoomOb()->AddOb(hum); }); - hum->is_client_move = m->GetCMJoinMsg()->is_client_move(); + //hum->is_client_move = m->GetCMJoinMsg()->is_client_move(); return true; }); } diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 16e579d7..cefc2264 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1017,7 +1017,7 @@ void Player::_CMMove(f8::MsgHdr* hdr, const cs::CMMove& msg) long long pre_frameno = last_cmmove_frameno_; last_cmmove_frameno_ = room->GetFrameNo(); moving = false; - if (!msg.has_attack_dir()) { + if (IsClientMove() && !msg.has_attack_dir()) { if (msg.has_move_dir()) { *(((cs::CMMove*)&msg)->mutable_attack_dir()) = msg.move_dir(); }