This commit is contained in:
aozhiwei 2021-04-28 14:29:30 +08:00
parent c624a5af94
commit 6aeda0b548
3 changed files with 27 additions and 10 deletions

View File

@ -178,20 +178,23 @@ void Buff::ProcBecome(Creature* caster)
int weapon_id = a8::XValue(strings[i]); int weapon_id = a8::XValue(strings[i]);
MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(weapon_id); MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(weapon_id);
if (weapon_meta && i < caster->weapons.size()) { if (weapon_meta && i < caster->weapons.size()) {
Weapon* weapon = &caster->weapons[i]; int weapon_idx = weapon_meta->GetWeaponIdx();
hold_weapons_.push_back(*weapon); if (weapon_idx >= 0 && weapon_idx < caster->weapons.size()) {
Weapon* weapon = &caster->weapons[weapon_idx];
hold_weapons_.push_back(*weapon);
weapon->weapon_id = weapon_meta->i->id(); weapon->weapon_id = weapon_meta->i->id();
weapon->weapon_lv = 1; weapon->weapon_lv = 1;
weapon->meta = weapon_meta; weapon->meta = weapon_meta;
weapon->Recalc(); weapon->Recalc();
#if 1 #if 1
weapon->ammo = 10000000; weapon->ammo = 10000000;
#else #else
weapon->ammo = weapon->GetClipVolume(); weapon->ammo = weapon->GetClipVolume();
#endif #endif
if (i == 0) { if (i == 0) {
caster->SetCurrWeapon(weapon); caster->SetCurrWeapon(weapon);
}
} }
} }
} }

View File

@ -162,6 +162,19 @@ namespace MetaData
} }
} }
int Equip::GetWeaponIdx()
{
int weapon_idx = -1;
if (i->equip_type() == EQUIP_TYPE_WEAPON) {
if (i->equip_subtype() == 1) {
return 0;
} else {
return GUN_SLOT1;
}
}
return weapon_idx;
}
void EquipUpgrade::Init() void EquipUpgrade::Init()
{ {
const int MAX_LV = 20; const int MAX_LV = 20;

View File

@ -69,6 +69,7 @@ namespace MetaData
float float_param2 = 0; float float_param2 = 0;
void Init(); void Init();
int GetWeaponIdx();
}; };
struct EquipUpgrade struct EquipUpgrade