48 lines
1.9 KiB
C#
48 lines
1.9 KiB
C#
//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<ObjManager>.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<Obj_OtherPlayer>();
|
|
// 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<AutoMove>();
|
|
//if (null != autoMove)
|
|
// autoMove.InterruptMove(packet);
|
|
return (uint)PACKET_EXE.PACKET_EXE_CONTINUE;
|
|
}
|
|
}
|
|
}
|