Ejemplo n.º 1
0
 public void PlayerLevelUp(PlayerController player, SkillStat skill)
 {
     if (!player)
     {
         return;
     }
     SaveGameStat("last-level-up-name", player.PlayerName);
     SaveGameStat("last-level-up-skill", skill?.ToString());
 }
Ejemplo n.º 2
0
    public override void Handle(PlayerStatsRequest data, GameClient client)
    {
        var player = this.PlayerManager.GetPlayer(data.Player);

        if (!player)
        {
            client.SendCommand(data.Player.Username, "player_stats", "You are not currently playing. Use !join to start playing!");
            return;
        }

        var ps = player.Stats;
        var eq = player.EquipmentStats;

        if (!string.IsNullOrEmpty(data.Skill))
        {
            SkillStat skill = null;
            var       csi   = player.GetCombatTypeFromArgs(data.Skill);
            if (csi != -1)
            {
                skill = player.GetCombatSkill(csi);
            }

            if (skill == null)
            {
                var cs = player.GetSkillTypeFromArgs(data.Skill);
                if (cs != -1)
                {
                    skill = player.GetSkill(cs);
                }
            }

            if (skill != null)
            {
                client.SendCommand(data.Player.Username, "player_stats", skill.ToString());
            }
            return;
        }

        var combatLevel = ps.CombatLevel;
        var skills      = "";
        var total       = ps
                          .GetType()
                          .GetFields(BindingFlags.Instance | BindingFlags.Public)
                          .Where(x => x.FieldType == typeof(SkillStat))
                          .Select(x => { skills += (SkillStat)x.GetValue(ps) + ", "; return(x); })
                          .Sum(x => ((SkillStat)x.GetValue(ps)).Level);

        client.SendCommand(data.Player.Username,
                           "player_stats",
                           $"Combat level {combatLevel}, " +
                           skills +
                           $" -- TOTAL {total} --, " +
                           $"Eq - power {eq.WeaponPower}, " +
                           $"aim {eq.WeaponAim}, " +
                           $"armor {eq.ArmorPower}");
    }
Ejemplo n.º 3
0
    public override void Handle(PlayerStatsRequest data, GameClient client)
    {
        var player = PlayerManager.GetPlayer(data.Player);

        if (!player)
        {
            client.SendMessage(data.Player.Username, Localization.MSG_NOT_PLAYING);
            return;
        }

        if (!string.IsNullOrEmpty(data.Skill))
        {
            var targetPlayer = PlayerManager.GetPlayerByName(data.Skill);
            if (targetPlayer != null)
            {
                SendPlayerStats(targetPlayer, client);
                return;
            }

            SkillStat skill = null;
            var       csi   = player.GetCombatTypeFromArgs(data.Skill);
            if (csi != -1)
            {
                skill = player.GetCombatSkill(csi);
            }

            if (skill == null)
            {
                var cs = player.GetSkillTypeFromArgs(data.Skill);
                if (cs != -1)
                {
                    skill = player.GetSkill((Skill)cs);
                }
            }

            if (skill != null)
            {
                var expRequired = GameMath.ExperienceForLevel(skill.Level + 1);
                var expReq      = (long)expRequired;
                var curExp      = (long)skill.Experience;
                client.SendMessage(data.Player.Username, Localization.MSG_SKILL,
                                   skill.ToString(),
                                   FormatValue(curExp),
                                   FormatValue(expReq));
            }
            return;
        }

        SendPlayerStats(player, client);
    }
Ejemplo n.º 4
0
    public override void Handle(PlayerStatsRequest data, GameClient client)
    {
        var player = PlayerManager.GetPlayer(data.Player);

        if (!player)
        {
            client.SendCommand(data.Player.Username, "player_stats", "You are not currently playing. Use !join to start playing!");
            return;
        }

        if (!string.IsNullOrEmpty(data.Skill))
        {
            var targetPlayer = PlayerManager.GetPlayerByName(data.Skill);
            if (targetPlayer != null)
            {
                SendPlayerStats(targetPlayer, client);
                return;
            }

            SkillStat skill = null;
            var       csi   = player.GetCombatTypeFromArgs(data.Skill);
            if (csi != -1)
            {
                skill = player.GetCombatSkill(csi);
            }

            if (skill == null)
            {
                var cs = player.GetSkillTypeFromArgs(data.Skill);
                if (cs != -1)
                {
                    skill = player.GetSkill(cs);
                }
            }

            if (skill != null)
            {
                client.SendCommand(data.Player.Username, "player_stats", skill.ToString());
            }
            return;
        }

        SendPlayerStats(player, client);
    }