Exemplo n.º 1
0
        public bool AddPlayer(MapleCharacter chr)
        {
            if (Participants.ContainsKey(chr.Id))
            {
                return(false);
            }
            int position = GetFreePosition();

            if (position == -1)
            {
                return(false);                //No space
            }
            MapleMessengerCharacter mcc = new MapleMessengerCharacter(position, chr);

            chr.ChatRoom = this;
            chr.Client.SendPacket(Packets.EnterRoom((byte)position));
            var playerAddPacket = Packets.AddPlayer(mcc);

            BroadCastPacket(playerAddPacket, chr.Id);
            foreach (MapleMessengerCharacter participant in Participants.Values)
            {
                chr.Client.SendPacket(Packets.AddPlayer(participant));
            }
            Participants.Add(chr.Id, mcc);
            return(true);
        }
Exemplo n.º 2
0
            public static PacketWriter AddPlayer(MapleMessengerCharacter mcc)
            {
                MapleCharacter player = mcc.Character;
                PacketWriter   pw     = new PacketWriter(SendHeader.Messenger);

                pw.WriteByte(0);
                pw.WriteByte((byte)mcc.Position);
                MapleCharacter.AddCharLook(pw, player, false);

                pw.WriteMapleString(player.Name);
                pw.WriteByte(player.Client.Channel);
                pw.WriteByte(1);
                pw.WriteShort(player.Job);
                pw.WriteShort(player.SubJob);

                return(pw);
            }