From 47b73eaccbc5bddfd37b4432bda036dba943d720 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 4 Mar 2020 15:06:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8B=89=E5=9B=9E=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/entity.h | 10 ++++++++++ server/gameserver/human.cc | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/server/gameserver/entity.h b/server/gameserver/entity.h index caf9616..0171299 100644 --- a/server/gameserver/entity.h +++ b/server/gameserver/entity.h @@ -1,6 +1,7 @@ #pragma once #include "gridservice.h" +#include "room.h" namespace cs { @@ -49,6 +50,15 @@ class Entity a8::Vec2 GetPos() { return pos_; }; void SetPos(a8::Vec2 pos) { + #if 0 + if (room && entity_subtype == EST_Player) { + if (room->frame_no > SERVER_FRAME_RATE * 35) { + if (pos.Distance(pos_) > 500) { + abort(); + } + } + } + #endif pos_ = pos; } float GetX() diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index fa3c635..f6ad548 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -427,6 +427,7 @@ void Human::RecalcSelfCollider() bool Human::IsCollisionInMapService() { + Global::last_collider = nullptr; if (room->OverBorder(GetPos(), meta->i->radius())){ return true; } @@ -438,7 +439,6 @@ bool Human::IsCollisionInMapService() std::set colliders; room->map_service.GetColliders(GetX(), GetY(), colliders); - Global::last_collider = nullptr; for (ColliderComponent* collider : colliders) { switch (collider->owner->entity_type) { case ET_Obstacle: