1
This commit is contained in:
parent
39ba2b5ab4
commit
75e09a41a9
@ -92,18 +92,19 @@ void SprintBuff::CoCollisionCheck()
|
|||||||
|
|
||||||
void SprintBuff::Check(Position& pre_pos, std::map<int, long long>& hited_objects)
|
void SprintBuff::Check(Position& pre_pos, std::map<int, long long>& hited_objects)
|
||||||
{
|
{
|
||||||
|
pre_pos = owner->GetPos();
|
||||||
if (pre_pos.ManhattanDistance2D(owner->GetPos()) < 2) {
|
if (pre_pos.ManhattanDistance2D(owner->GetPos()) < 2) {
|
||||||
pre_pos = owner->GetPos();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::set<Creature*> enemys;
|
|
||||||
|
|
||||||
glm::vec3 dir = owner->GetPos().ToGlmVec3() - pre_pos.ToGlmVec3();
|
glm::vec3 dir = owner->GetPos().ToGlmVec3() - pre_pos.ToGlmVec3();
|
||||||
|
dir.y = 0.0f;
|
||||||
GlmHelper::Normalize(dir);
|
GlmHelper::Normalize(dir);
|
||||||
|
|
||||||
float distance = owner->GetPos().Distance2D2(pre_pos);
|
float distance = owner->GetPos().Distance2D2(pre_pos);
|
||||||
for (int i = 0; i < (distance + 6); i += 5) {
|
for (int i = 0; i < (distance + 6); i += 5) {
|
||||||
glm::vec3 center = owner->GetPos().ToGlmVec3() + dir * (float)i;
|
glm::vec3 center = owner->GetPos().ToGlmVec3() + dir * (float)i;
|
||||||
|
std::set<Creature*> enemys;
|
||||||
owner->GetHitEnemys(enemys, center, meta->_param4);
|
owner->GetHitEnemys(enemys, center, meta->_param4);
|
||||||
for (auto& enemy : enemys) {
|
for (auto& enemy : enemys) {
|
||||||
if (enemy->IsEntityType(ET_Car)) {
|
if (enemy->IsEntityType(ET_Car)) {
|
||||||
@ -121,7 +122,6 @@ void SprintBuff::Check(Position& pre_pos, std::map<int, long long>& hited_object
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pre_pos = owner->GetPos();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SprintBuff::OnEnemyHit(Creature* enemy)
|
void SprintBuff::OnEnemyHit(Creature* enemy)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user