car_weapon->spec_weapon

This commit is contained in:
aozhiwei 2021-04-28 10:32:53 +08:00
parent 4c12596090
commit 9a857a0720
6 changed files with 29 additions and 29 deletions

View File

@ -84,7 +84,7 @@ void Car::GetDown(Human* passenger)
}
passenger->SetCar(nullptr);
passenger->SetSeat(0);
passenger->car_weapon = Weapon();
passenger->spec_weapon = Weapon();
passenger->CancelAction();
passenger->RemoveBuffByEffectId(kBET_Driver);
passenger->RemoveBuffByEffectId(kBET_Passenger);

View File

@ -698,14 +698,14 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff)
equip_meta->i->equip_type() == EQUIP_TYPE_CAR &&
equip_meta->i->equip_subtype() == 1
) {
MetaData::Equip* car_weapon_meta = MetaMgr::Instance()->GetEquip(equip_meta->int_param1);
if (car_weapon_meta) {
car_weapon.weapon_idx = 100;
car_weapon.weapon_id = car_weapon_meta->i->id();
car_weapon.weapon_lv = 1;
car_weapon.meta = car_weapon_meta;
car_weapon.Recalc();
car_weapon.ammo = car_weapon.GetClipVolume();
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();
}
}
}
@ -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 (car_weapon.meta) {
p_weapon = &car_weapon;
if (spec_weapon.meta) {
p_weapon = &spec_weapon;
}
if (p_weapon->weapon_idx != 0 &&
(p_weapon->ammo <= 0 ||

View File

@ -47,7 +47,7 @@ class Creature : public MoveableEntity
long long poisoning_time = 0;
bool playing_skill = false;
Weapon car_weapon;
Weapon spec_weapon;
a8::Vec2 buff_vec2_param1;
bool need_sync_active_player = false;

View File

@ -46,8 +46,8 @@ void FrameEvent::AddShot(Creature* sender)
auto& p = std::get<1>(tuple);
p.set_player_id(sender->GetEntityUniId());
if (sender->car_weapon.meta) {
sender->car_weapon.ToPB(p.mutable_weapon());
if (sender->spec_weapon.meta) {
sender->spec_weapon.ToPB(p.mutable_weapon());
} else {
sender->GetCurrWeapon()->ToPB(p.mutable_weapon());
}

View File

@ -411,12 +411,12 @@ void Human::FillMFTeamData(cs::MFTeamData* team_data, bool is_game_over)
void Human::CarShot(a8::Vec2& target_dir)
{
if (!car_weapon.meta) {
if (!spec_weapon.meta) {
return;
}
if (car_weapon.weapon_idx != 0 &&
car_weapon.ammo <= 0) {
if (spec_weapon.weapon_idx != 0 &&
spec_weapon.ammo <= 0) {
AutoLoadingBullet();
return;
}
@ -432,15 +432,15 @@ void Human::CarShot(a8::Vec2& target_dir)
}
InternalShot(this,
car_weapon.meta,
car_weapon.GetUpgradeMeta(),
car_weapon.bullet_meta,
car_weapon.weapon_lv,
spec_weapon.meta,
spec_weapon.GetUpgradeMeta(),
spec_weapon.bullet_meta,
spec_weapon.weapon_lv,
0,
5,
false);
--car_weapon.ammo;
--spec_weapon.ammo;
last_shot_frameno_ = room->GetFrameNo();
}
@ -3157,8 +3157,8 @@ void Human::OnChgToTerminator()
void Human::ProcReloadAction()
{
Weapon* p_weapon = GetCurrWeapon();
if (car_weapon.meta) {
p_weapon = &car_weapon;
if (spec_weapon.meta) {
p_weapon = &spec_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 (car_weapon.meta) {
p_weapon = &car_weapon;
if (spec_weapon.meta) {
p_weapon = &spec_weapon;
}
if (p_weapon &&
p_weapon->weapon_id == prev_weapon_id &&

View File

@ -194,8 +194,8 @@ void Player::UpdateShot()
return;
}
Weapon* p_weapon = GetCurrWeapon();
if (car_weapon.meta) {
p_weapon = &car_weapon;
if (spec_weapon.meta) {
p_weapon = &spec_weapon;
}
if (shot_hold) {
++series_shot_frames;
@ -402,7 +402,7 @@ void Player::UpdateUseSkill()
void Player::Shot()
{
if (car_weapon.meta) {
if (spec_weapon.meta) {
CarShot(attack_dir);
return;
}