修复技能skill_pos问题
This commit is contained in:
parent
62d85a9148
commit
4cd39d4af0
@ -1006,6 +1006,7 @@ void Creature::DoSkill(int skill_id,
|
||||
curr_skill_ = skill;
|
||||
playing_skill = true;
|
||||
skill_pos = GetPos().ToGlmVec3();
|
||||
skill->skill_pos = skill_pos;
|
||||
context_dir = skill_dir_;
|
||||
context_pos = GetPos();
|
||||
context_pos.AddGlmVec3(skill_dir_ * skill_distance_);
|
||||
|
@ -169,7 +169,15 @@ public:
|
||||
{
|
||||
double result = 0.0f;
|
||||
if (context_.buff->GetCaster().Get()) {
|
||||
result = context_.buff->GetCaster().Get()->skill_pos.x;
|
||||
if (context_.buff->GetCaster().Get() && context_.buff->skill_meta) {
|
||||
Skill* skill = context_.buff->GetCaster().Get()->GetSkill
|
||||
(context_.buff->skill_meta->skill_id());
|
||||
if (skill) {
|
||||
result = skill->skill_pos.x;
|
||||
}
|
||||
} else {
|
||||
result = context_.buff->GetCaster().Get()->skill_pos.x;
|
||||
}
|
||||
}
|
||||
return std::make_shared<a8::lisp::Value>(a8::lisp::Atom(result));
|
||||
});
|
||||
@ -180,7 +188,15 @@ public:
|
||||
{
|
||||
double result = 0.0f;
|
||||
if (context_.buff->GetCaster().Get()) {
|
||||
result = context_.buff->GetCaster().Get()->skill_pos.y;
|
||||
if (context_.buff->GetCaster().Get() && context_.buff->skill_meta) {
|
||||
Skill* skill = context_.buff->GetCaster().Get()->GetSkill
|
||||
(context_.buff->skill_meta->skill_id());
|
||||
if (skill) {
|
||||
result = skill->skill_pos.y;
|
||||
}
|
||||
} else {
|
||||
result = context_.buff->GetCaster().Get()->skill_pos.y;
|
||||
}
|
||||
}
|
||||
return std::make_shared<a8::lisp::Value>(a8::lisp::Atom(result));
|
||||
});
|
||||
@ -191,7 +207,15 @@ public:
|
||||
{
|
||||
double result = 0.0f;
|
||||
if (context_.buff->GetCaster().Get()) {
|
||||
result = context_.buff->GetCaster().Get()->skill_pos.z;
|
||||
if (context_.buff->GetCaster().Get() && context_.buff->skill_meta) {
|
||||
Skill* skill = context_.buff->GetCaster().Get()->GetSkill
|
||||
(context_.buff->skill_meta->skill_id());
|
||||
if (skill) {
|
||||
result = skill->skill_pos.z;
|
||||
}
|
||||
} else {
|
||||
result = context_.buff->GetCaster().Get()->skill_pos.z;
|
||||
}
|
||||
}
|
||||
return std::make_shared<a8::lisp::Value>(a8::lisp::Atom(result));
|
||||
});
|
||||
|
@ -26,6 +26,7 @@ class Skill
|
||||
long long last_use_frameno = 0;
|
||||
a8::Attacher xtimer_attacher;
|
||||
int force_use_times = 0;
|
||||
glm::vec3 skill_pos = glm::vec3(0.0f, 0.0f, 0.0f);
|
||||
|
||||
void Initialzie();
|
||||
void SetMeta(const mt::Skill* meta);
|
||||
|
Loading…
x
Reference in New Issue
Block a user