1
This commit is contained in:
parent
225f9e6c29
commit
7853aa35ff
@ -883,35 +883,60 @@ void Bullet::ProcNormalBullet(BulletCheckResult& result)
|
|||||||
if (need_remove) {
|
if (need_remove) {
|
||||||
if (IsFlyHook()) {
|
if (IsFlyHook()) {
|
||||||
if (!hited) {
|
if (!hited) {
|
||||||
result.flyed_distance = raycast_len_;
|
if (raycast_hited) {
|
||||||
sender.Get()->IncDisableMoveTimes();
|
if (result.flyed_distance > 0.001f) {
|
||||||
sender.Get()->IncDisableAttackDirTimes();
|
sender.Get()->AutoNavigation(GetPos(), gun_meta->bullet_speed() * 2,
|
||||||
auto sender_p = sender;
|
[] (Creature* c)
|
||||||
sender.Get()->room->xtimer.SetTimeoutEx
|
{
|
||||||
(
|
|
||||||
std::ceil((result.flyed_distance / gun_meta->bullet_speed() / 2) * SERVER_FRAME_RATE),
|
});
|
||||||
[sender_p] (int event, const a8::Args* args) mutable
|
sender.Get()->IncDisableMoveTimes();
|
||||||
{
|
auto sender_p = sender;
|
||||||
if (a8::TIMER_EXEC_EVENT == event) {
|
sender.Get()->room->xtimer.SetTimeoutEx
|
||||||
sender_p.Get()->RemoveBuffById(kKeepShotAnimiBuffId);
|
(
|
||||||
}
|
(raycast_len_ / gun_meta->bullet_speed() / 2 + 0.75) * SERVER_FRAME_RATE,
|
||||||
},
|
[sender_p] (int event, const a8::Args* args) mutable
|
||||||
&sender.Get()->xtimer_attacher
|
{
|
||||||
);
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
sender.Get()->room->xtimer.SetTimeoutEx
|
sender_p.Get()->DecDisableMoveTimes();
|
||||||
(
|
sender_p.Get()->GetTrigger()->FlyHookDestory();
|
||||||
(0.75 + result.flyed_distance / gun_meta->bullet_speed() / 2) * SERVER_FRAME_RATE,
|
}
|
||||||
[sender_p] (int event, const a8::Args* args) mutable
|
},
|
||||||
{
|
&sender.Get()->xtimer_attacher
|
||||||
if (a8::TIMER_EXEC_EVENT == event) {
|
);
|
||||||
sender_p.Get()->DecDisableMoveTimes();
|
sender.Get()->RemoveBuffById(kKeepShotAnimiBuffId);
|
||||||
sender_p.Get()->DecDisableAttackDirTimes();
|
sender.Get()->TryAddBuff(sender.Get(), gun_meta->_int_param2);
|
||||||
sender_p.Get()->GetTrigger()->FlyHookDestory();
|
}
|
||||||
}
|
} else {
|
||||||
},
|
sender.Get()->IncDisableMoveTimes();
|
||||||
&sender.Get()->xtimer_attacher
|
sender.Get()->IncDisableAttackDirTimes();
|
||||||
);
|
auto sender_p = sender;
|
||||||
sender.Get()->TryAddBuff(sender.Get(), gun_meta->_int_param2);
|
sender.Get()->room->xtimer.SetTimeoutEx
|
||||||
|
(
|
||||||
|
std::ceil((result.flyed_distance / gun_meta->bullet_speed() / 2) * SERVER_FRAME_RATE),
|
||||||
|
[sender_p] (int event, const a8::Args* args) mutable
|
||||||
|
{
|
||||||
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
|
sender_p.Get()->RemoveBuffById(kKeepShotAnimiBuffId);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&sender.Get()->xtimer_attacher
|
||||||
|
);
|
||||||
|
sender.Get()->room->xtimer.SetTimeoutEx
|
||||||
|
(
|
||||||
|
(0.75 + result.flyed_distance / gun_meta->bullet_speed() / 2) * SERVER_FRAME_RATE,
|
||||||
|
[sender_p] (int event, const a8::Args* args) mutable
|
||||||
|
{
|
||||||
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
|
sender_p.Get()->DecDisableMoveTimes();
|
||||||
|
sender_p.Get()->DecDisableAttackDirTimes();
|
||||||
|
sender_p.Get()->GetTrigger()->FlyHookDestory();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&sender.Get()->xtimer_attacher
|
||||||
|
);
|
||||||
|
sender.Get()->TryAddBuff(sender.Get(), gun_meta->_int_param2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ForceRemove();
|
ForceRemove();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user