From 2ed275a38370d3a1869e508c5633c4575b2d3988 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 14 Feb 2023 19:04:07 +0800 Subject: [PATCH] 1 --- server/gameserver/skillhelper.cc | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/server/gameserver/skillhelper.cc b/server/gameserver/skillhelper.cc index 284b2284..c68820b9 100644 --- a/server/gameserver/skillhelper.cc +++ b/server/gameserver/skillhelper.cc @@ -1,5 +1,7 @@ #include "precompile.h" +#include + #include "skillhelper.h" #include "creature.h" #include "buff.h" @@ -18,18 +20,19 @@ std::map SkillHelper::magic_skill_hash_; std::map SkillHelper::skill_magic_hash_; -static int GetMagicSkillId(int magic_id) -{ -} - void SkillHelper::Init() { - for (int i = MAGIC_NONE; i < MAGIC_END; ++i) { - if (i != 0) { - int skill_id = GetMagicSkillId(i); + auto fields = a8::GetEnumFields(); + for (auto& tuple : *fields){ + std::string name = std::get<0>(tuple); + int val = std::get<1>(tuple); + if (val > MAGIC_NONE && val < MAGIC_END) { + std::vector strings; + a8::Split(name, strings, '_'); + int skill_id = a8::XValue(strings[1]); if (skill_id) { - magic_skill_hash_[i] = skill_id; - skill_magic_hash_[skill_id] = i; + magic_skill_hash_[val] = skill_id; + skill_magic_hash_[skill_id] = val; } else { abort(); }