修复死亡掉落问题

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

View File

@ -4,6 +4,16 @@
#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)
{
pb_obj->set_weapon_id(weapon_id);

View File

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