添加延迟buff处理

This commit is contained in:
aozhiwei 2020-07-31 09:59:10 +08:00
parent 84ddacfa34
commit fc90b604cc

View File

@ -3059,6 +3059,30 @@ void Human::ProcBuffEffect(Human* caster, Buff* buff)
0);
}
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:
{
}