1
This commit is contained in:
parent
9a857a0720
commit
af3149b4b3
@ -84,7 +84,7 @@ void Car::GetDown(Human* passenger)
|
||||
}
|
||||
passenger->SetCar(nullptr);
|
||||
passenger->SetSeat(0);
|
||||
passenger->spec_weapon = Weapon();
|
||||
passenger->second_weapon = Weapon();
|
||||
passenger->CancelAction();
|
||||
passenger->RemoveBuffByEffectId(kBET_Driver);
|
||||
passenger->RemoveBuffByEffectId(kBET_Passenger);
|
||||
|
@ -700,12 +700,12 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff)
|
||||
) {
|
||||
MetaData::Equip* spec_weapon_meta = MetaMgr::Instance()->GetEquip(equip_meta->int_param1);
|
||||
if (spec_weapon_meta) {
|
||||
spec_weapon.weapon_idx = 100;
|
||||
spec_weapon.weapon_id = spec_weapon_meta->i->id();
|
||||
spec_weapon.weapon_lv = 1;
|
||||
spec_weapon.meta = spec_weapon_meta;
|
||||
spec_weapon.Recalc();
|
||||
spec_weapon.ammo = spec_weapon.GetClipVolume();
|
||||
second_weapon.weapon_idx = 100;
|
||||
second_weapon.weapon_id = spec_weapon_meta->i->id();
|
||||
second_weapon.weapon_lv = 1;
|
||||
second_weapon.meta = spec_weapon_meta;
|
||||
second_weapon.Recalc();
|
||||
second_weapon.ammo = second_weapon.GetClipVolume();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1243,8 +1243,8 @@ void Creature::Shot(a8::Vec2& target_dir, bool& shot_ok, float fly_distance)
|
||||
void Creature::AutoLoadingBullet(bool manual)
|
||||
{
|
||||
Weapon* p_weapon = GetCurrWeapon();
|
||||
if (spec_weapon.meta) {
|
||||
p_weapon = &spec_weapon;
|
||||
if (second_weapon.meta) {
|
||||
p_weapon = &second_weapon;
|
||||
}
|
||||
if (p_weapon->weapon_idx != 0 &&
|
||||
(p_weapon->ammo <= 0 ||
|
||||
|
@ -47,7 +47,7 @@ class Creature : public MoveableEntity
|
||||
long long poisoning_time = 0;
|
||||
bool playing_skill = false;
|
||||
|
||||
Weapon spec_weapon;
|
||||
Weapon second_weapon;
|
||||
a8::Vec2 buff_vec2_param1;
|
||||
|
||||
bool need_sync_active_player = false;
|
||||
|
@ -46,8 +46,8 @@ void FrameEvent::AddShot(Creature* sender)
|
||||
auto& p = std::get<1>(tuple);
|
||||
|
||||
p.set_player_id(sender->GetEntityUniId());
|
||||
if (sender->spec_weapon.meta) {
|
||||
sender->spec_weapon.ToPB(p.mutable_weapon());
|
||||
if (sender->second_weapon.meta) {
|
||||
sender->second_weapon.ToPB(p.mutable_weapon());
|
||||
} else {
|
||||
sender->GetCurrWeapon()->ToPB(p.mutable_weapon());
|
||||
}
|
||||
|
@ -411,12 +411,12 @@ void Human::FillMFTeamData(cs::MFTeamData* team_data, bool is_game_over)
|
||||
|
||||
void Human::CarShot(a8::Vec2& target_dir)
|
||||
{
|
||||
if (!spec_weapon.meta) {
|
||||
if (!second_weapon.meta) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (spec_weapon.weapon_idx != 0 &&
|
||||
spec_weapon.ammo <= 0) {
|
||||
if (second_weapon.weapon_idx != 0 &&
|
||||
second_weapon.ammo <= 0) {
|
||||
AutoLoadingBullet();
|
||||
return;
|
||||
}
|
||||
@ -432,15 +432,15 @@ void Human::CarShot(a8::Vec2& target_dir)
|
||||
}
|
||||
|
||||
InternalShot(this,
|
||||
spec_weapon.meta,
|
||||
spec_weapon.GetUpgradeMeta(),
|
||||
spec_weapon.bullet_meta,
|
||||
spec_weapon.weapon_lv,
|
||||
second_weapon.meta,
|
||||
second_weapon.GetUpgradeMeta(),
|
||||
second_weapon.bullet_meta,
|
||||
second_weapon.weapon_lv,
|
||||
0,
|
||||
5,
|
||||
false);
|
||||
|
||||
--spec_weapon.ammo;
|
||||
--second_weapon.ammo;
|
||||
last_shot_frameno_ = room->GetFrameNo();
|
||||
}
|
||||
|
||||
@ -3157,8 +3157,8 @@ void Human::OnChgToTerminator()
|
||||
void Human::ProcReloadAction()
|
||||
{
|
||||
Weapon* p_weapon = GetCurrWeapon();
|
||||
if (spec_weapon.meta) {
|
||||
p_weapon = &spec_weapon;
|
||||
if (second_weapon.meta) {
|
||||
p_weapon = &second_weapon;
|
||||
}
|
||||
|
||||
if (p_weapon->weapon_idx == action_target_id &&
|
||||
@ -3297,8 +3297,8 @@ void Human::NextReload(int prev_weapon_id, int prev_weapon_idx)
|
||||
return;
|
||||
}
|
||||
Weapon* p_weapon = GetCurrWeapon();
|
||||
if (spec_weapon.meta) {
|
||||
p_weapon = &spec_weapon;
|
||||
if (second_weapon.meta) {
|
||||
p_weapon = &second_weapon;
|
||||
}
|
||||
if (p_weapon &&
|
||||
p_weapon->weapon_id == prev_weapon_id &&
|
||||
|
@ -194,8 +194,8 @@ void Player::UpdateShot()
|
||||
return;
|
||||
}
|
||||
Weapon* p_weapon = GetCurrWeapon();
|
||||
if (spec_weapon.meta) {
|
||||
p_weapon = &spec_weapon;
|
||||
if (second_weapon.meta) {
|
||||
p_weapon = &second_weapon;
|
||||
}
|
||||
if (shot_hold) {
|
||||
++series_shot_frames;
|
||||
@ -402,7 +402,7 @@ void Player::UpdateUseSkill()
|
||||
|
||||
void Player::Shot()
|
||||
{
|
||||
if (spec_weapon.meta) {
|
||||
if (second_weapon.meta) {
|
||||
CarShot(attack_dir);
|
||||
return;
|
||||
}
|
||||
@ -903,7 +903,7 @@ void Player::ProcPrepareItems(const ::google::protobuf::RepeatedField< ::google:
|
||||
}
|
||||
}
|
||||
for (auto& spec_weapon : spec_weapons) {
|
||||
MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquip(spec_weapon.weapon_id);
|
||||
MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquip(second_weapon.weapon_id);
|
||||
if (item_meta &&
|
||||
item_meta->i->equip_type() == EQUIP_TYPE_WEAPON) {
|
||||
if (item_meta->i->equip_subtype() != 1) {
|
||||
@ -914,9 +914,9 @@ void Player::ProcPrepareItems(const ::google::protobuf::RepeatedField< ::google:
|
||||
if (weapons[weapon_idx].weapon_id == 0) {
|
||||
Weapon* weapon = &weapons[weapon_idx];
|
||||
weapon->weapon_idx = weapon_idx;
|
||||
weapon->weapon_id = spec_weapon.weapon_id;
|
||||
weapon->weapon_lv = spec_weapon.weapon_lv;
|
||||
weapon->ammo = spec_weapon.ammo;
|
||||
weapon->weapon_id = second_weapon.weapon_id;
|
||||
weapon->weapon_lv = second_weapon.weapon_lv;
|
||||
weapon->ammo = second_weapon.ammo;
|
||||
weapon->meta = item_meta;
|
||||
weapon->Recalc();
|
||||
SetCurrWeapon(&weapons[GUN_SLOT1]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user