public TCPProcessCmdResults ProcessGuanZhanMoveToCmd(TMSKSocket socket, TCPOutPacketPool pool, int nID, byte[] data, int count, out TCPOutPacket tcpOutPacket) { tcpOutPacket = null; try { SpriteMoveData moveData = DataHelper.BytesToObject <SpriteMoveData>(data, 0, count); if (null == moveData) { LogManager.WriteLog(LogTypes.Error, string.Format("ProcessOpenVideoCmd解析客户端数据失败!", new object[0]), null, true); return(TCPProcessCmdResults.RESULT_FAILED); } int roleID = moveData.roleID; GameClient client = GameManager.ClientMgr.FindClient(socket); if (KuaFuManager.getInstance().ClientCmdCheckFaild(nID, client, ref roleID)) { LogManager.WriteLog(LogTypes.Error, string.Format("根据RoleID定位GameClient对象失败, CMD={0}, Client={1}, RoleID={2}", (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(socket, false), roleID), null, true); return(TCPProcessCmdResults.RESULT_FAILED); } if (client.ClientData.HideGM == 0) { LogManager.WriteLog(LogTypes.Error, string.Format("帐号{0}无观战权限,禁止传送!", client.strUserID), null, true); return(TCPProcessCmdResults.RESULT_OK); } int mapCode = moveData.mapCode; int toX = moveData.toX; int toY = moveData.toY; if (Global.GetMapSceneType(mapCode) != Global.GetMapSceneType(client.ClientData.MapCode)) { LogManager.WriteLog(LogTypes.Error, string.Format("必须进入观战地图,才可传送在本活动关联地图范围内传送!", client.strUserID), null, true); return(TCPProcessCmdResults.RESULT_OK); } GameMap gameMap; if (GameManager.MapMgr.DictMaps.TryGetValue(mapCode, out gameMap)) { if (mapCode != client.ClientData.MapCode) { client.ClientData.WaitingChangeMapToMapCode = mapCode; GameManager.ClientMgr.NotifyChangeMap(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, mapCode, toX, toY, -1, 0); } else { GameManager.ClientMgr.NotifyOthersGoBack(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, toX, toY, -1); } } return(TCPProcessCmdResults.RESULT_OK); } catch (Exception ex) { DataHelper.WriteFormatExceptionLog(ex, Global.GetDebugHelperInfo(socket), false, false); } return(TCPProcessCmdResults.RESULT_FAILED); }
public static bool Checker_SpriteMoveData(SpriteMoveData data1, SpriteMoveData data2) { return(data1.roleID == data2.roleID && data1.mapCode == data2.mapCode && data1.action == data2.action && data1.toX == data2.toX && data1.toY == data2.toY && data1.extAction == data2.extAction && data1.fromX == data2.fromX && data1.fromY == data2.fromY && data1.startMoveTicks == data2.startMoveTicks && data1.pathString == data2.pathString); }