private static void HandleVIPCoupon(GameSession session, Item item)
    {
        long vipTime = item.Function.VIPCoupon.Duration * 3600;

        PremiumClubHandler.ActivatePremium(session, vipTime);
        session.Player.Inventory.ConsumeItem(session, item.Uid, 1);
    }
Esempio n. 2
0
    public override void Execute(GameCommandTrigger trigger)
    {
        Player player = trigger.Session.Player;

        // Reset stats to default
        player.Stats = new(player.Job);
        player.Stats.AddBaseStats(player, 90);

        trigger.Session.Send(StatPacket.SetStats(player.FieldPlayer));
        trigger.Session.FieldManager.BroadcastPacket(StatPacket.SetStats(player.FieldPlayer), trigger.Session);

        player.Levels.SetLevel(90);
        player.Levels.SetPrestigeLevel(100);
        player.Wallet.Meso.SetAmount(10_000_000_000);                 // 10B
        player.Account.Meret.SetAmount(10_000_000_000);               // 10B

        PremiumClubHandler.ActivatePremium(trigger.Session, 2592000); // 30 days in seconds

        // Stickers
        for (int i = 1; i < 7; i++)
        {
            if (player.ChatSticker.Any(x => x.GroupId == i))
            {
                continue;
            }

            trigger.Session.Send(ChatStickerPacket.AddSticker(21100000 + i, i, long.MaxValue));
            player.ChatSticker.Add(new((byte)i, long.MaxValue));
        }

        List <int> emotes = SkillMetadataStorage.GetEmotes();

        foreach (int emoteId in emotes)
        {
            // Broken emotes
            if (emoteId is >= 90200032 and <= 90200036)
            {
                continue;
            }

            if (player.Emotes.Contains(emoteId))
            {
                continue;
            }

            player.Emotes.Add(emoteId);

            trigger.Session.Send(EmotePacket.LearnEmote(emoteId));
        }

        List <TitleMetadata> titles = TitleMetadataStorage.GetAll();

        foreach (TitleMetadata title in titles)
        {
            int titleId = title.Id;
            if (player.Titles.Contains(titleId))
            {
                continue;
            }

            player.Titles.Add(titleId);

            trigger.Session.Send(UserEnvPacket.AddTitle(titleId));
        }

        DatabaseManager.Characters.Update(player);
        trigger.Session.Send(NoticePacket.Notice("Done!", NoticeType.Chat));
    }