Example #1
0
        public static void AreaStatus(RicePacket packet)
        {
            var ack = new RicePacket(0x2AB);

            // from ZoneServer
            for (int i = 0; i < 100; i++)
            {
                var area = RiceServer.GetArea(i);
                ack.Writer.Write(area != null ? area.GetPlayerCount() : 0);
            }
        }
Example #2
0
        public static void EnterArea(RicePacket packet)
        {
            //TODO: Associate instance with gameserver player based on provided serial, verify, handle
            var serial    = packet.Reader.ReadUInt16();
            var name      = packet.Reader.ReadUnicodeStatic(21);
            var area      = packet.Reader.ReadInt32();
            var group     = packet.Reader.ReadInt32();
            var localtime = packet.Reader.ReadInt32();

            if (packet.Sender.Player == null)
            {
                var serverSerial = RiceServer.GetSerial(serial);

                if (serverSerial == null || serverSerial.GetOwner().ActiveCharacter.Name != name)
                {
                    Log.WriteLine("Serial non-existent or invalid for current user.");
                    packet.Sender.Error("water u even doin");
                    return;
                }

                packet.Sender.Player = serverSerial.GetOwner();
                packet.Sender.Player.ActiveCharacter.CarSerial = serial;
                packet.Sender.Player.AreaClient = packet.Sender;
            }

            RiceServer.GetArea(area).AddPlayer(packet.Sender.Player);

            var ack = new RicePacket(563);

            ack.Writer.Write(area);
            ack.Writer.Write(1); //Result
            ack.Writer.Write(localtime);
            ack.Writer.Write(Environment.TickCount);
            ack.Writer.Write(new byte[6]); // The rest of this is null
            packet.Sender.Send(ack);
        }
Example #3
0
        public static void ExitArea(RicePacket packet)
        {
            var area = packet.Reader.ReadInt32();

            RiceServer.GetArea(area).RemovePlayer(packet.Sender.Player);
        }