修复死亡掉落问题
This commit is contained in:
parent
d90acdb4d0
commit
18d3baff83
@ -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()
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user