public static void Handle_ChangeMap(ClientConnection Client, PacketReader reader, byte last) { Account User = Client.CurrentAccount; NormalRoom room = Rooms.GetRoom(User.CurrentRoomId); bool isRoomMaster = User.RoomPos == room.RoomMasterIndex; if (isRoomMaster) { int mapid = reader.ReadLEInt32(); if (!MapHolder.MapInfos.TryGetValue(mapid, out MapInfo mapinfo)) { Console.WriteLine("Unknown mapid: {0}", mapid); return; } //room.MapNum = mapid; room.setMapNum(mapid); room.RuleType = mapinfo.RuleType; foreach (var RoomPlayer in room.PlayerList()) { RoomPlayer.Connection.SendAsync(new GameRoom_Hex("FF6405F70300000000000000000000", last)); RoomPlayer.Connection.SendAsync(new GameRoom_ChangeMap_FF6605(RoomPlayer, mapid, last)); RoomPlayer.Connection.SendAsync(new GameRoom_ChangeMap_FFEA02(RoomPlayer, mapid, last)); } } }
public SendPlayerHP(NormalRoom room, byte last) { ns.Write((byte)0xFF); ns.Write((short)0x476); ns.Write(room.PlayerCount()); foreach (Account User in room.PlayerList().OrderBy(p => p.RoomPos)) { User.GetMyLevel(); User.HP = 100 + User.HealthPoint + User.Level * 2; User.MaxHP = User.HP; ns.Write((int)User.RoomPos); ns.Write(User.HP); } ns.Write(last); }