diff --git a/server/gameserver/lispenv.cc b/server/gameserver/lispenv.cc index 91a30bbd..86a34bc1 100644 --- a/server/gameserver/lispenv.cc +++ b/server/gameserver/lispenv.cc @@ -306,11 +306,12 @@ public: [this] (const a8::lisp::List& params) -> std::shared_ptr { double result = 0.0f; - if (context_.buff->GetCaster().Get() && params->size() > 3) { + if (context_.buff->GetCaster().Get() && params->size() >= 3) { a8::lisp::Atom atom_x = std::any_cast(params->at(0)->value); a8::lisp::Atom atom_y = std::any_cast(params->at(1)->value); a8::lisp::Atom atom_z = std::any_cast(params->at(2)->value); - a8::lisp::Atom atom_dur_time = std::any_cast(params->at(3)->value); + glm::vec3 target_pos = glm::vec3(atom_x.val, atom_y.val, atom_z.val); + context_.buff->GetCaster().Get()->SpecShot(target_pos, 1); } else { #ifdef MYDEBUG abort();