This commit is contained in:
aozhiwei 2024-05-21 17:01:37 +08:00
parent 208a142458
commit e93d832101
3 changed files with 29 additions and 2 deletions

View File

@ -426,7 +426,7 @@ std::vector<std::string> Ability::GMShowAttrs()
} }
{ {
std::vector<std::string> tmp_strings; std::vector<std::string> tmp_strings;
int attr_id = 0; int attr_id = kHVAT_Begin;
for (auto& list : vattr_list_) { for (auto& list : vattr_list_) {
list_head* head = &list; list_head* head = &list;
list_head* pos = nullptr; list_head* pos = nullptr;

View File

@ -26,6 +26,7 @@
#include "bullet.h" #include "bullet.h"
#include "virtualbullet.h" #include "virtualbullet.h"
#include "shot.h" #include "shot.h"
#include "entityfactory.h"
#include "mt/Buff.h" #include "mt/Buff.h"
#include "mt/Equip.h" #include "mt/Equip.h"
@ -265,6 +266,11 @@ void CallFuncBuff::Activate()
RandAdd(); RandAdd();
} }
break; break;
case BuffCallFunc_e::kShowExplosion:
{
ShowExplosion();
}
break;
default: default:
{ {
} }
@ -1818,3 +1824,22 @@ void CallFuncBuff::RandAdd()
} }
} }
} }
void CallFuncBuff::ShowExplosion()
{
if (owner->dead || !meta->dead_valid()) {
return;
}
int explosion_effect = meta->GetBuffParam2(this);
float x = meta->GetBuffParam3(this);
float y = meta->GetBuffParam4(this);
float z = meta->GetBuffParam5(this);
Position center;
center.FromGlmVec3(glm::vec3(x, y, z));
owner->room->frame_event.AddExplosionEx
(owner->GetWeakPtrRef(),
0,
center,
explosion_effect,
0);
}

View File

@ -43,7 +43,8 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int,
kOnBreakSkill = 43, kOnBreakSkill = 43,
kBreakSkill = 44, kBreakSkill = 44,
kBuffEffectCondAdd = 45, kBuffEffectCondAdd = 45,
kRandAdd = 46 kRandAdd = 46,
kShowExplosion = 47,
); );
@ -88,6 +89,7 @@ class CallFuncBuff : public Buff
void BreakSkill(); void BreakSkill();
void BuffEffectCondAdd(); void BuffEffectCondAdd();
void RandAdd(); void RandAdd();
void ShowExplosion();
void InternalRangeHoldBuff(std::function<bool(glm::vec3&)> get_center_func); void InternalRangeHoldBuff(std::function<bool(glm::vec3&)> get_center_func);