diff --git a/server/gameserver/lispenv.cc b/server/gameserver/lispenv.cc index 53ee9569..1040b7e6 100644 --- a/server/gameserver/lispenv.cc +++ b/server/gameserver/lispenv.cc @@ -220,6 +220,40 @@ public: return std::make_shared(a8::lisp::Atom(result)); }); + RegisterCProc + ( + "caster.get_pos_x", + [this] (const a8::lisp::List& params) -> std::shared_ptr + { + double result = 0.0f; + if (context_.buff->GetCaster().Get()) { + result = context_.buff->GetCaster().Get()->GetPos().GetX(); + } + return std::make_shared(a8::lisp::Atom(result)); + }); + RegisterCProc + ( + "caster.get_pos_y", + [this] (const a8::lisp::List& params) -> std::shared_ptr + { + double result = 0.0f; + if (context_.buff->GetCaster().Get()) { + result = context_.buff->GetCaster().Get()->GetPos().GetY(); + } + return std::make_shared(a8::lisp::Atom(result)); + }); + RegisterCProc + ( + "caster.get_pos_z", + [this] (const a8::lisp::List& params) -> std::shared_ptr + { + double result = 0.0f; + if (context_.buff->GetCaster().Get()) { + result = context_.buff->GetCaster().Get()->GetPos().GetZ(); + } + return std::make_shared(a8::lisp::Atom(result)); + }); + RegisterCProc ( "caster.get_skill_target_pos_x",