diff --git a/server/gameserver/android.cc b/server/gameserver/android.cc index 8c41c6d..44cc46a 100644 --- a/server/gameserver/android.cc +++ b/server/gameserver/android.cc @@ -24,15 +24,6 @@ void Android::Initialize() health = meta->i->health(); skin = 14001; RecalcSelfCollider(); - MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(a8::RandEx(12103, 12122)); - if (weapon_meta) { - weapons[GUN_SLOT1].weapon_idx = GUN_SLOT1; - weapons[GUN_SLOT1].weapon_id = weapon_meta->i->id(); - weapons[GUN_SLOT1].weapon_lv = 1; - weapons[GUN_SLOT1].ammo = 0; - weapons[GUN_SLOT1].meta = weapon_meta; - curr_weapon = &weapons[GUN_SLOT1]; - } } void Android::Update(int delta_time) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 6e8c3db..59e8323 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -717,6 +717,17 @@ bool Human::HasNoDownedTeammate() void Human::Land() { a8::UnSetBitFlag(status, HS_Jump); + if (entity_subtype == EST_Android) { + MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(a8::RandEx(12103, 12122)); + if (weapon_meta) { + weapons[GUN_SLOT1].weapon_idx = GUN_SLOT1; + weapons[GUN_SLOT1].weapon_id = weapon_meta->i->id(); + weapons[GUN_SLOT1].weapon_lv = 1; + weapons[GUN_SLOT1].ammo = 0; + weapons[GUN_SLOT1].meta = weapon_meta; + curr_weapon = &weapons[GUN_SLOT1]; + } + } FindLocation(); SyncAroundPlayers(); } diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index e65adfe..f08b56d 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -175,7 +175,9 @@ void Room::AddPlayer(Player* hum) hum->FindLocation(); hum->RefreshView(); MatchTeam(hum); - RandRemoveAndroid(); + while (human_hash_.size() > ROOM_MAX_PLAYER_NUM) { + RandRemoveAndroid(); + } } unsigned short Room::AllocUniid()