Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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);
 }