diff --git a/server/gameserver/lispenv.cc b/server/gameserver/lispenv.cc index 4161324b..88e925a8 100644 --- a/server/gameserver/lispenv.cc +++ b/server/gameserver/lispenv.cc @@ -52,7 +52,14 @@ public: void Transform(std::shared_ptr node) { if (node->IsType(a8::lisp::ValueType::kSymbol)) { - auto && symbol = std::any_cast(node->value); + auto&& symbol = std::any_cast(node->value); + int idx = mt::SkillNumber::GetAttrIdxByName(symbol.name); + if (idx < 0) { + abort(); + } + auto func_call_exprs = std::make_shared(); + node->Assign(func_call_exprs); + } else if (node->IsType(a8::lisp::ValueType::kList)) { auto list = std::any_cast(node->value); for (auto child_node : *list) { diff --git a/server/gameserver/mt/SkillNumber.h b/server/gameserver/mt/SkillNumber.h index d86ccb6e..5f9532e2 100644 --- a/server/gameserver/mt/SkillNumber.h +++ b/server/gameserver/mt/SkillNumber.h @@ -43,7 +43,7 @@ namespace mt void Init1(); float GetAttrByIdx(int idx); - int GetAttrIdxByName(const std::string& name); + static int GetAttrIdxByName(const std::string& name); };