Ejemplo n.º 1
0
        public async Task NotifyServerLevelProcessingCompleteHandler(NotifyServerLevelProcessingCompleteMessage message, Player player)
        {
            var character = player.GetComponent <CharacterComponent>();

            if (character.UniverseScore > character.RequiredUniverseScore)
            {
                await character.LevelUpAsync();

                GameObject.Serialize(player);

                // Show the levelup animation
                player.Zone.BroadcastMessage(new PlayFXEffectMessage
                {
                    Associate  = player,
                    EffectId   = 7074,
                    EffectType = "create",
                    Name       = "levelup_body_glow",
                    Priority   = 1,
                    Scale      = 1,
                    Serialize  = true,
                });

                player.Zone.BroadcastChatMessage($"{character.Name} has reached Level {character.Level}!");
            }
        }
Ejemplo n.º 2
0
        public async Task NotifyServerLevelProcessingCompleteHandler(NotifyServerLevelProcessingCompleteMessage message, Player player)
        {
            await using var ctx      = new UchuContext();
            await using var cdClient = new CdClientContext();

            var character = await ctx.Characters.FirstAsync(c => c.Id == player.Id);

            var lookup_val = 0;

            foreach (var levelProgressionLookup in cdClient.LevelProgressionLookupTable)
            {
                if (levelProgressionLookup.RequiredUScore > character.UniverseScore)
                {
                    break;
                }

                lookup_val = levelProgressionLookup.Id.Value;
            }

            Logger.Debug($"Attempting to assign level {lookup_val} to {character.Name} (They are currently level {character.Level})");

            if (lookup_val > character.Level)
            {
                character.Level = lookup_val;
                GameObject.Serialize(player);
                await ctx.SaveChangesAsync();

                player.Zone.BroadcastMessage(new PlayFXEffectMessage
                {
                    Associate  = player,
                    EffectId   = 7074,
                    EffectType = "create",
                    Name       = "levelup_body_glow"
                });

                player.Zone.BroadcastChatMessage($"{character.Name} has reached Level {character.Level}!");
                Logger.Debug($"Assigned level {lookup_val} to {character.Name} (They are now currently level {character.Level})");
            }
        }