public static void HandleInstallBillBoard(GameSession session, PacketReader packet, Item item) { string[] parameters = packet.ReadUnicodeString().Split("'"); string title = parameters[0]; string description = parameters[1]; bool publicHouse = parameters[2].Equals("1"); int balloonUid = GuidGenerator.Int(); string id = "AdBalloon_" + balloonUid.ToString(); AdBalloon balloon = new AdBalloon(id, item.Function.InstallBillboard.InteractId, InteractObjectState.Default, InteractObjectType.AdBalloon, session.FieldPlayer, item.Function.InstallBillboard, title, description, publicHouse); session.FieldManager.State.AddInteractObject(balloon); session.FieldManager.BroadcastPacket(InteractObjectPacket.LoadAdBallon(balloon)); InventoryController.Consume(session, item.Uid, 1); }
public static PacketWriter AdBalloonWindow(AdBalloon balloon) { PacketWriter pWriter = PacketWriter.Of(SendOp.PLAYER_HOST); pWriter.Write(PlayerHostPacketMode.AdBalloonWindow); pWriter.WriteLong(balloon.Owner.AccountId); pWriter.WriteLong(balloon.Owner.CharacterId); pWriter.WriteUnicodeString(balloon.Owner.ProfileUrl); pWriter.WriteUnicodeString(balloon.Owner.Name); pWriter.WriteShort(balloon.Owner.Levels.Level); pWriter.WriteInt(); pWriter.WriteUnicodeString(balloon.Title); pWriter.WriteUnicodeString(balloon.Description); pWriter.WriteBool(balloon.PublicHouse); pWriter.WriteLong(balloon.CreationTimestamp); pWriter.WriteLong(balloon.ExpirationTimestamp); pWriter.WriteLong(); return(pWriter); }
public static Packet LoadAdBallon(AdBalloon balloon) { PacketWriter pWriter = PacketWriter.Of(SendOp.INTERACT_OBJECT); pWriter.WriteEnum(InteractObjectMode.AddAdBalloons); pWriter.WriteMapleString(balloon.Id); pWriter.WriteEnum(balloon.State); pWriter.WriteEnum(balloon.Type); pWriter.WriteInt(balloon.InteractId); pWriter.Write(balloon.Position); pWriter.Write(balloon.Rotation); pWriter.WriteUnicodeString(balloon.Model); pWriter.WriteUnicodeString(balloon.Asset); pWriter.WriteUnicodeString(balloon.NormalState); pWriter.WriteUnicodeString(balloon.Reactable); pWriter.WriteFloat(balloon.Scale); pWriter.WriteByte(); pWriter.WriteLong(balloon.Owner.CharacterId); pWriter.WriteUnicodeString(balloon.Owner.Name); return(pWriter); }