修复机甲机器数量

This commit is contained in:
aozhiwei 2021-06-18 13:54:38 +08:00
parent d396d12c8f
commit e47bcdd646
2 changed files with 22 additions and 6 deletions

View File

@ -1394,7 +1394,7 @@ void Creature::Shot(a8::Vec2& target_dir, bool& shot_ok, float fly_distance)
AutoLoadingBullet();
}
last_shot_frameno_ = room->GetFrameNo();
if (!need_sync_active_player && IsPlayer()) {
if ((IsPlayer() || IsCar())) {
room->frame_event.AddBulletNumChg(GetWeakPtrRef());
room->frame_event.AddWeaponAmmoChg(GetWeakPtrRef());
}

View File

@ -142,10 +142,17 @@ void FrameEvent::AddExplosionEx(CreatureWeakPtr& sender, int item_id, a8::Vec2 b
void FrameEvent::AddBulletNumChg(CreatureWeakPtr& sender)
{
chged_bullet_nums_.push_back(sender);
int idx = chged_bullet_nums_.size() - 1;
if (sender.Get()->IsHuman()) {
chged_bullet_nums_.push_back(sender);
int idx = chged_bullet_nums_.size() - 1;
((Human*)sender.Get())->chged_bullet_nums_.push_back(idx);
sender.Get()->AsHuman()->chged_bullet_nums_.push_back(idx);
} else {
sender.Get()->TraverseAllLayerHumanList
(
[idx] (Human* hum, bool& stop)
{
hum->chged_bullet_nums_.push_back(idx);
});
}
}
@ -211,7 +218,7 @@ void FrameEvent::AddHpChg(CreatureWeakPtr& sender)
void FrameEvent::AddWeaponAmmoChg(CreatureWeakPtr& sender)
{
if (sender.Get()->GetCurrWeapon() && sender.Get()->IsHuman()) {
if (sender.Get()->GetCurrWeapon()) {
chged_weapon_ammo_.push_back
(
std::make_tuple(sender,
@ -220,7 +227,16 @@ void FrameEvent::AddWeaponAmmoChg(CreatureWeakPtr& sender)
)
);
int idx = chged_weapon_ammo_.size() - 1;
sender.Get()->AsHuman()->chged_weapon_ammo_.push_back(idx);
if (sender.Get()->IsHuman()) {
sender.Get()->AsHuman()->chged_weapon_ammo_.push_back(idx);
} else {
sender.Get()->TraverseAllLayerHumanList
(
[idx] (Human* hum, bool& stop)
{
hum->chged_weapon_ammo_.push_back(idx);
});
}
}
}