diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index 8fe7002..ef3faa9 100755 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -131,6 +131,7 @@ enum BuffEffectType_e kBET_Pull = 12, //拉人(主动方) kBET_Terminator = 13, //终结者模式 kBET_PlayShotAni = 14, //播放射击动画 + kBET_Vertigo = 15, //眩晕 kBET_End }; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 9310826..2ddf0f9 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -127,6 +127,9 @@ void Player::UpdateMove() SetLastCollisionDoor(nullptr); return; } + if (HasBuffEffect(kBET_Vertigo)) { + return; + } if (HasBuffEffect(kBET_Camouflage)) { RemoveBuffByEffectId(kBET_Camouflage); } @@ -163,6 +166,9 @@ void Player::UpdateShot() series_shot_frames = 0; return; } + if (HasBuffEffect(kBET_Vertigo)) { + return; + } if (shot_start) { shot_start = false; Shot(); @@ -317,6 +323,9 @@ void Player::UpdateGetDown() void Player::UpdateUseSkill() { + if (HasBuffEffect(kBET_Vertigo)) { + return; + } DoSkill(); } diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index be6605c..5d27156 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1986,7 +1986,7 @@ long long Room::GetGasInactiveTime() if (room_mode_ == kZombieMode) { #if DEBUG if (f8::IsTestEnv()) { - return MetaMgr::Instance()->zbmode_gas_inactive_time; + return MetaMgr::Instance()->zbmode_gas_inactive_time + 10000; } else { return 5; } @@ -2661,8 +2661,8 @@ void Room::AddPlayerPostProc(Player* hum) RandRemoveAndroid(); } if (GetRoomMode() == kZombieMode) { - #if 0 - hum->ChangeToRace(kZombieRace, 1); + #if 1 + hum->ChangeToRace(kZombieRace, 2); #else hum->ChangeToRace(kHumanRace, 1); #endif diff --git a/server/gameserver/zombiemode.ai.cc b/server/gameserver/zombiemode.ai.cc index 7d13880..c6f8128 100644 --- a/server/gameserver/zombiemode.ai.cc +++ b/server/gameserver/zombiemode.ai.cc @@ -176,6 +176,9 @@ void ZombieModeAI::UpdateThinking() void ZombieModeAI::UpdateAttack() { Human* myself = (Human*)owner; + if (hum->HasBuffEffect(kBET_Vertigo)) { + return; + } if (!node_->target || node_->target->dead) { ChangeToState(ZSE_Thinking); return; @@ -263,6 +266,9 @@ void ZombieModeAI::UpdatePursuit() void ZombieModeAI::DoMove() { Human* hum = (Human*)owner; + if (hum->HasBuffEffect(kBET_Vertigo)) { + return; + } if (std::abs(hum->move_dir.x) > FLT_EPSILON || std::abs(hum->move_dir.y) > FLT_EPSILON) { hum->on_move_collision =