添加延迟buff处理
This commit is contained in:
parent
84ddacfa34
commit
fc90b604cc
@ -3059,6 +3059,30 @@ void Human::ProcBuffEffect(Human* caster, Buff* buff)
|
|||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case kBET_DelayAddBuff:
|
||||||
|
{
|
||||||
|
room->xtimer.AddDeadLineTimerAndAttach
|
||||||
|
(
|
||||||
|
SERVER_FRAME_RATE * buff->meta->param1 / 1000.0f,
|
||||||
|
a8::XParams()
|
||||||
|
.SetSender(this)
|
||||||
|
.SetParam1(caster)
|
||||||
|
.SetParam2(buff->meta->param2)
|
||||||
|
.SetParam3(caster->skill_meta_),
|
||||||
|
[] (const a8::XParams& param)
|
||||||
|
{
|
||||||
|
Human* hum = (Human*)param.sender.GetUserData();
|
||||||
|
Human* caster = (Human*)param.param1.GetUserData();
|
||||||
|
int buff_id = param.param2;
|
||||||
|
MetaData::Skill* skill = (MetaData::Skill*)param.param3.GetUserData();
|
||||||
|
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id);
|
||||||
|
if (buff_meta && skill == caster->skill_meta_ && caster) {
|
||||||
|
hum->AddBuff(caster, buff_meta, caster->GetSkillLv(), skill);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&buff->xtimer_attacher.timer_list_);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user