Files
JJBB/Assets/Project/Script/GameLogic/NetWork/PacketHandler/GC_STOPHandler.cs
2024-08-23 15:49:34 +08:00

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;
}
}
}