diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index fbebcc0..d1466b7 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2337,6 +2337,12 @@ void Human::ProcLootSkin(Loot* entity, MetaData::Equip* item_meta) void Human::ProcLootCar(Loot* entity, MetaData::Equip* item_meta) { + if (room->gas_data.gas_mode == GasInactive) { + return; + } + if (GetPos().Distance(entity->GetPos()) > MetaMgr::Instance()->max_mount_horse_distance) { + return; + } if (downed) { return; } diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index 9db3d95..40012bd 100755 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -140,6 +140,7 @@ public: 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"); + MetaMgr::Instance()->max_mount_horse_distance = MetaMgr::Instance()->GetSysParamAsFloat("max_mount_horse_distance", 100); if (MetaMgr::Instance()->K < 0.01f) { abort(); } diff --git a/server/gameserver/metamgr.h b/server/gameserver/metamgr.h index 5966273..169e7ac 100755 --- a/server/gameserver/metamgr.h +++ b/server/gameserver/metamgr.h @@ -59,6 +59,7 @@ class MetaMgr : public a8::Singleton float max_oil = 0.0f; float horse_shoot_x = 0.0f; float horse_shoot_y = 0.0f; + float max_mount_horse_distance = 100.0f; private: MetaDataLoader* loader_ = nullptr;