修复死亡掉落问题

This commit is contained in:
aozhiwei 2021-04-30 13:47:19 +08:00
parent d90acdb4d0
commit 18d3baff83
3 changed files with 22 additions and 1 deletions

View File

@ -2294,12 +2294,16 @@ void Human::DeadDrop()
!HasBuffEffect(kBET_Terminator) && !HasBuffEffect(kBET_Terminator) &&
!(HasBuffEffect(kBET_Become) && GetBuffByEffectId(kBET_Become)->FreezeOperate())) { !(HasBuffEffect(kBET_Become) && GetBuffByEffectId(kBET_Become)->FreezeOperate())) {
for (auto& weapon : weapons) { for (auto& weapon : weapons) {
if (weapon.weapon_id != 0 && weapon.weapon_id != default_weapon.weapon_id) { if (weapon.weapon_id != 0 &&
weapon.weapon_id != default_weapon.weapon_id
) {
a8::Vec2 drop_pos = GetPos(); a8::Vec2 drop_pos = GetPos();
room->DropItem(drop_pos, weapon.weapon_id, 1, weapon.weapon_lv); room->DropItem(drop_pos, weapon.weapon_id, 1, weapon.weapon_lv);
weapon.Clear();
} }
} }
{ {
weapons[0] = default_weapon;
SetCurrWeapon(&weapons[0]); SetCurrWeapon(&weapons[0]);
} }
} }
@ -2352,9 +2356,14 @@ void Human::DeadDrop()
switch (equip_meta->i->_inventory_slot()) { switch (equip_meta->i->_inventory_slot()) {
case IS_FRAG: case IS_FRAG:
case IS_SMOKE: case IS_SMOKE:
case IS_POSION_GAS_BOMB:
case IS_MOLOTOR_COCKTAIL:
case IS_TRAP:
case IS_MINE:
{ {
a8::Vec2 drop_pos = GetPos(); a8::Vec2 drop_pos = GetPos();
room->DropItem(drop_pos, equip_meta->i->id(), GetInventoryData()[slot], 1); room->DropItem(drop_pos, equip_meta->i->id(), GetInventoryData()[slot], 1);
DecInventory(slot, GetInventoryData()[slot]);
} }
break; break;
default: default:
@ -2367,6 +2376,7 @@ void Human::DeadDrop()
} }
} }
} }
need_sync_active_player = true;
} }
void Human::SendBattleReport() void Human::SendBattleReport()

View File

@ -4,6 +4,16 @@
#include "metamgr.h" #include "metamgr.h"
void Weapon::Clear()
{
weapon_id = 0;
weapon_lv = 0;
ammo = 0;
meta = 0;
bullet_meta = nullptr;
upgrade_meta = nullptr;
}
void Weapon::ToPB(cs::MFWeapon* pb_obj) void Weapon::ToPB(cs::MFWeapon* pb_obj)
{ {
pb_obj->set_weapon_id(weapon_id); pb_obj->set_weapon_id(weapon_id);

View File

@ -41,6 +41,7 @@ struct Weapon
MetaData::Equip* meta = nullptr; MetaData::Equip* meta = nullptr;
MetaData::Equip* bullet_meta = nullptr; MetaData::Equip* bullet_meta = nullptr;
void Clear();
void ToPB(cs::MFWeapon* pb_obj); void ToPB(cs::MFWeapon* pb_obj);
void Recalc(); void Recalc();
int GetClipVolume(); int GetClipVolume();