private BaseResponse Enter(int clientId, BasePacket packet) { PUserEnter pUserEnter = (PUserEnter)packet; PlayerDataEx playerData = World.PlayerDataGet(pUserEnter.SessionToken); if (playerData == null) { ThrowSessionError(packet.Type, packet.SessionToken); return(null); } int maxScreenSide = Math.Max(pUserEnter.ScreenRes.Width, pUserEnter.ScreenRes.Height); playerData.ScreenRes = new ShortSize(maxScreenSide, maxScreenSide); List <Player> nearestPlayers = World.PlayersGetNearest(playerData); ShortRect mapWindow; byte[] mapData = World.MapWindowGet(playerData, out mapWindow); ShortSize mapSize = new ShortSize(playerData.Map.Width, playerData.Map.Height); ShortSize miniMapSize; byte[] miniMapData = World.MiniMapGet(playerData, out miniMapSize); RegisterWorldResponseForNearest(playerData, new RPlayerEnter { Player = playerData }); return(new RUserEnter(pUserEnter) { MyPlayerId = playerData.Player.Id, PlayersOnLocation = nearestPlayers, MapSize = mapSize, MapData = mapData, MapWindow = mapWindow, MiniMapData = miniMapData, MiniMapSize = miniMapSize }); }
public RUserEnter(PUserEnter pUserEnter) : base(pUserEnter) { }