This commit is contained in:
aozhiwei 2021-04-02 20:07:39 +08:00
parent 5d2039cb28
commit 324aaadb0a
5 changed files with 42 additions and 8 deletions

View File

@ -377,22 +377,34 @@ void Bullet::ProcPosionGasBomb(int delay_time)
task->bomb_pos = GetPos(); task->bomb_pos = GetPos();
task->gun_meta = gun_meta; task->gun_meta = gun_meta;
task->meta = meta; task->meta = meta;
room->xtimer.AddDeadLineTimerAndAttach
(std::max(1, (int)(delay_time / FRAME_RATE_MS)), room->xtimer.AddRepeatTimerAndAttach
(SERVER_FRAME_RATE / 2,
a8::XParams() a8::XParams()
.SetSender(task), .SetSender(task),
[] (const a8::XParams& param) [] (const a8::XParams& param)
{ {
PosionGasMiTask* task = (PosionGasMiTask*)param.sender.GetUserData(); PosionGasMiTask* task = (PosionGasMiTask*)param.sender.GetUserData();
task->Done(); task->Check();
}, },
&task->timer_attacher.timer_list_, &task->timer_attacher.timer_list_);
room->xtimer.AddDeadLineTimerAndAttach
(SERVER_FRAME_RATE * MetaMgr::Instance()->GetSysParamAsInt("smoke_duration", 10),
a8::XParams()
.SetSender(task),
[] (const a8::XParams& param)
{
},
&room->timer_attacher.timer_list_,
[] (const a8::XParams& param) [] (const a8::XParams& param)
{ {
PosionGasMiTask* task = (PosionGasMiTask*)param.sender.GetUserData(); PosionGasMiTask* task = (PosionGasMiTask*)param.sender.GetUserData();
task->Done();
delete task; delete task;
} }
); );
} }
} }
@ -405,19 +417,30 @@ void Bullet::ProcMolotorCocktailBomb(int delay_time)
task->bomb_pos = GetPos(); task->bomb_pos = GetPos();
task->gun_meta = gun_meta; task->gun_meta = gun_meta;
task->meta = meta; task->meta = meta;
room->xtimer.AddDeadLineTimerAndAttach
(std::max(1, (int)(delay_time / FRAME_RATE_MS)), room->xtimer.AddRepeatTimerAndAttach
(SERVER_FRAME_RATE / 2,
a8::XParams() a8::XParams()
.SetSender(task), .SetSender(task),
[] (const a8::XParams& param) [] (const a8::XParams& param)
{ {
MolotorCocktailMiTask* task = (MolotorCocktailMiTask*)param.sender.GetUserData(); MolotorCocktailMiTask* task = (MolotorCocktailMiTask*)param.sender.GetUserData();
task->Done(); task->Check();
}, },
&task->timer_attacher.timer_list_, &task->timer_attacher.timer_list_);
room->xtimer.AddDeadLineTimerAndAttach
(SERVER_FRAME_RATE * MetaMgr::Instance()->GetSysParamAsInt("smoke_duration", 10),
a8::XParams()
.SetSender(task),
[] (const a8::XParams& param)
{
},
&room->timer_attacher.timer_list_,
[] (const a8::XParams& param) [] (const a8::XParams& param)
{ {
MolotorCocktailMiTask* task = (MolotorCocktailMiTask*)param.sender.GetUserData(); MolotorCocktailMiTask* task = (MolotorCocktailMiTask*)param.sender.GetUserData();
task->Done();
delete task; delete task;
} }
); );

View File

@ -5,6 +5,10 @@
#include "player.h" #include "player.h"
#include "metadata.h" #include "metadata.h"
void MolotorCocktailMiTask::Check()
{
}
void MolotorCocktailMiTask::Done() void MolotorCocktailMiTask::Done()
{ {
} }

View File

@ -19,5 +19,6 @@ class MolotorCocktailMiTask : public MicroTask
MetaData::Equip* gun_meta = nullptr; MetaData::Equip* gun_meta = nullptr;
MetaData::Equip* meta = nullptr; MetaData::Equip* meta = nullptr;
void Check();
void Done(); void Done();
}; };

View File

@ -5,6 +5,11 @@
#include "player.h" #include "player.h"
#include "metadata.h" #include "metadata.h"
void PosionGasMiTask::Check()
{
}
void PosionGasMiTask::Done() void PosionGasMiTask::Done()
{ {

View File

@ -19,5 +19,6 @@ class PosionGasMiTask : public MicroTask
MetaData::Equip* gun_meta = nullptr; MetaData::Equip* gun_meta = nullptr;
MetaData::Equip* meta = nullptr; MetaData::Equip* meta = nullptr;
void Check();
void Done(); void Done();
}; };