//This code create by CodeEngine using Games.GlobeDefine; using Games.LogicObj; using UnityEngine; namespace SPacket.SocketInstance { public class GC_STOPHandler : Ipacket { public uint Execute(PacketDistributed ipacket) { var packet = (GC_STOP)ipacket; if (null == packet) return (uint)PACKET_EXE.PACKET_EXE_ERROR; //判断ServerID if (packet.Serverid == GlobeVar.INVALID_ID) return (uint)PACKET_EXE.PACKET_EXE_CONTINUE; //查找该NPC var obj = Singleton.GetInstance().FindObjCharacterInScene(packet.Serverid); if (null == obj) return (uint) PACKET_EXE.PACKET_EXE_CONTINUE; //轻功状态下停止轻功 //if (obj.ObjType == GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) //{ // var otherPlayer = obj.TryCastToType(); // if (otherPlayer && otherPlayer.MovementState == MoveState.JumpDelay) // otherPlayer.EndLightSkillMove(); //} // 主角只在跟随队伍的时候响应 if (obj.ObjType != GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER || GameManager.gameManager.PlayerDataPool.IsFollowTeam) { if (packet.HasPosx && packet.HasPosz) { var serverPos = new Vector2(packet.Posx, packet.Posz); serverPos = serverPos.ToClientPos(); obj.SyncMove(serverPos, serverPos, MoveState.Move); } } //查找Obj是否绑定AutoMove组件 //var autoMove = obj.gameObject.GetComponent(); //if (null != autoMove) // autoMove.InterruptMove(packet); return (uint)PACKET_EXE.PACKET_EXE_CONTINUE; } } }