diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 0a8c1acd..9d13666f 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -1261,3 +1261,13 @@ void Buff::ProcRemoveImmune() owner->GetAbility()->DecImmuneTimes(tag); } } + +void Buff::ProcCallFunc() +{ + +} + +void Buff::ProcRemoveCallFunc() +{ + +} diff --git a/server/gameserver/buff.h b/server/gameserver/buff.h index df220e1d..c4f6ca76 100644 --- a/server/gameserver/buff.h +++ b/server/gameserver/buff.h @@ -89,6 +89,8 @@ class Buff void ProcRemoveRescuer(); void ProcImmune(); void ProcRemoveImmune(); + void ProcCallFunc(); + void ProcRemoveCallFunc(); void CalcPassengerShotOffset(); diff --git a/server/gameserver/constant_export.h b/server/gameserver/constant_export.h index 378c4b95..88fc3023 100644 --- a/server/gameserver/constant_export.h +++ b/server/gameserver/constant_export.h @@ -35,7 +35,7 @@ enum BuffEffectType_e kBET_Invincible = 4, //无敌 kBET_Camouflage = 5, //伪装 kBET_Immune = 6, //免疫 - kBET_LordMode = 7, //上帝模式 + kBET_CallFunc = 7, //调用功能 kBET_NewProtect = 8, //新手保护血量低于50% kBET_BePull = 9, //拉人(被拉方) kBET_JumpTo = 10, //跳跃 diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 64215a1a..45b98fe2 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -559,6 +559,11 @@ void Creature::OnBuffRemove(Buff& buff) buff.ProcRemoveImmune(); } break; + case kBET_CallFunc: + { + buff.ProcRemoveCallFunc(); + } + break; default: { } diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 5b43be8b..17053eba 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2549,7 +2549,6 @@ void Human::OnDie() if (HasBuffEffect(kBET_Camouflage)) { RemoveBuffByEffectId(kBET_Camouflage); } - ClearLordMode(); DoGetDown(); } real_dead_frameno = room->GetFrameNo(); @@ -2800,20 +2799,6 @@ void Human::CancelRevive() } } -void Human::ClearLordMode() -{ - Buff* buff = GetBuffByEffectId(kBET_LordMode); - if (buff) { - std::vector strings; - a8::Split(buff->meta->i->buff_param1(), strings, ':'); - for (auto& str : strings) { - int buff_id = a8::XValue(str); - RemoveBuffById(buff_id); - } - RemoveBuffByEffectId(kBET_LordMode); - } -} - void Human::AdjustDecHp(float old_health, float& new_health) { Buff* buff = GetBuffByEffectId(kBET_NewProtect); diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 046386b8..73890ee5 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -370,7 +370,6 @@ private: void FillSMGameOver(cs::SMGameOver& msg); void SendBattleReport(); void Revive(); - void ClearLordMode(); void AdjustDecHp(float old_health, float& new_health); void ClearPartObjects(); void GetViewObjects(std::set& view_objects);