private void DecodeGroupSpawnStart(Packet p) { _groupSpawnTypeB = p.ReadByte(); _groupSpawnAmount = p.ReadUShort(); }
private void AgentSocket_PacketReceived(Packet packet) { switch ((OpCodes.AgentServer)packet.Opcode) { #region OpCodes.AgentServer.CharacterListing case OpCodes.AgentServer.CharacterListing: if (packet.ReadByte() == 2) { if (packet.ReadByte() == 1) { CharacterListings.Clear(); var charCount = packet.ReadByte(); for (var i = 0; i < charCount; i++) { var modelId = packet.ReadInt(); var name = packet.ReadAscii(); var volume = packet.ReadByte(); var level = packet.ReadByte(); var exp = packet.ReadLong(); var strength = packet.ReadUShort(); var intelligence = packet.ReadUShort(); var statPoints = packet.ReadUShort(); var hp = packet.ReadUInt(); var mp = packet.ReadUInt(); var isInDeletion = false; if (packet.ReadByte() == 1) { isInDeletion = true; packet.ReadInt(); //TICKS ... } //packet.ReadByte(); //packet.ReadByte(); //packet.ReadByte(); packet.ReadByteArray(3); var itemCount = packet.ReadByte(); /*for (var iItem = 1; iItem <= itemCount; iItem++) * { * packet.ReadUInt(); //Item ID * packet.ReadByte(); //item Plus * }*/ packet.ReadByteArray(5 * itemCount); byte avatarCount = packet.ReadByte(); /*for (var iAvatar = 1; iAvatar <= avatarCount; iAvatar++) * { * packet.ReadUInt(); //Item ID * packet.ReadByte(); //Item plus * }*/ packet.ReadByteArray(5 * avatarCount); CharacterListings.Add(new CharacterListing(modelId, name, volume, level, exp, strength, intelligence, statPoints, hp, mp, isInDeletion)); } } } break; #endregion case OpCodes.AgentServer.GroupSpawnBegin: DecodeGroupSpawnStart(packet); break; case OpCodes.AgentServer.GroupeSpawn: DecodeGroupSpawn(packet); break; case OpCodes.AgentServer.GroupSpawnEnd: DecodeGroupSpawnEnd(packet); break; case OpCodes.AgentServer.SingleSpawn: DecodeSingleSpawn(packet); break; case OpCodes.AgentServer.SingleDespawn: DecodeSingleDespawn(packet); break; } if (InvokeMethodWithSkip(AgentPacketReceived, packet)) { return; //Skip } SendFromServer(packet); }