From ea27f62b4a1428d24b04010767e67fc07980b401 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 4 Mar 2023 08:25:44 +0800 Subject: [PATCH] 1 --- server/gameserver/lispenv.cc | 31 ++++++++++++++++++++++++++++++- server/gameserver/lispenv.h | 3 ++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/server/gameserver/lispenv.cc b/server/gameserver/lispenv.cc index 0073632b..cbb658a1 100644 --- a/server/gameserver/lispenv.cc +++ b/server/gameserver/lispenv.cc @@ -2,6 +2,35 @@ #include "lispenv.h" +class SkillScope : public a8::lisp::GlobalScope +{ +public: + + void Init() + { + RegisterCProc + ( + "${skillNumber.speed}", + [this] (const a8::lisp::List& params) -> std::shared_ptr + { + a8::lisp::Atom result; + return std::make_shared(result); + }); + } + + float Eval(std::shared_ptr expr, + Creature* c, + const mt::Skill* skill_meta) + { + + } + + struct { + Creature* c = nullptr; + const mt::Skill* skill_meta = nullptr; + } context_; +}; + void LispEnv::Init() { @@ -21,5 +50,5 @@ float LispEnv::EvalSkillNumberExpr(std::shared_ptr expr, Creature* c, const mt::Skill* skill_meta) { - + return skill_env_->Eval(expr, c, skill_meta); } diff --git a/server/gameserver/lispenv.h b/server/gameserver/lispenv.h index ac518837..29fcbacc 100644 --- a/server/gameserver/lispenv.h +++ b/server/gameserver/lispenv.h @@ -4,6 +4,7 @@ #include class Creature; +class SkillScope; class LispEnv : public a8::Singleton { @@ -23,5 +24,5 @@ class LispEnv : public a8::Singleton private: - std::shared_ptr skill_env_; + std::shared_ptr skill_env_; };