diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 6c0efc2..1f2b15f 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1102,12 +1102,7 @@ void Human::DoGetDown() } room->UpdateCarObject(skin_tank.tank_uniid, entity_uniid, pos); room->TakeOffCarObject(entity_uniid, pos); - skin_tank = Skin(); - skin_tank_meta = nullptr; - tank_weapon = Weapon(); - tank_oil_value = 0.0f; - tank_oil_max = 0.0f; - RecalcSelfCollider(); + ResetTankSkin(); SyncAroundPlayers(__FILE__, __LINE__, __func__); room->NotifyUiUpdate(); need_sync_active_player = true; @@ -2414,3 +2409,13 @@ void Human::Revive() }); SyncAroundPlayers(__FILE__, __LINE__, __func__); } + +void Human::ResetTankSkin() +{ + skin_tank = Skin(); + skin_tank_meta = nullptr; + tank_weapon = Weapon(); + tank_oil_value = 0.0f; + tank_oil_max = 0.0f; + RecalcSelfCollider(); +} diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 26d45f7..7577858 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -218,6 +218,7 @@ class Human : public Entity protected: void _UpdateMove(int speed); void ProcLootSkin(Loot* entity, MetaData::Equip* item_meta); + void ResetTankSkin(); private: void ClearFrameData(); diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 6bee909..51311f4 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1090,6 +1090,7 @@ void Player::_CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg) if (dead && !real_dead && revive_timer) { dead = false; health = GetMaxHP(); + ResetTankSkin(); SyncAroundPlayers(__FILE__, __LINE__, __func__); room->xtimer.DeleteTimer(revive_timer); revive_timer = nullptr;