public PRefreshGeneralOrder(PPlayer Player) : this()
    {
        int           SkillCount = Player.General.SkillList.Count;
        List <string> Answer     = new List <string> {
            Player.Index.ToString(), Player.General.Name, SkillCount.ToString()
        };

        for (int i = 0; i < SkillCount; ++i)
        {
            PSkill Skill = Player.General.SkillList[i];
            Answer.Add(Skill.Name);
            if (Skill.SoftLockOpen)
            {
                if (Skill.Lock)
                {
                    Answer.Add(PSkillType.SoftLock.Name);
                }
                else
                {
                    Answer.Add(PSkillType.SoftLockUnlock.Name);
                }
            }
            else
            {
                if (Skill.Lock)
                {
                    Answer.Add(PSkillType.Lock.Name);
                }
                else
                {
                    if (Skill.Initiative)
                    {
                        if (Player.RemainLimitForAlivePlayers(Skill.Name, PNetworkManager.NetworkServer.Game) && Player.RemainLimit(Skill.Name, true))
                        {
                            Answer.Add(PSkillType.Initiative.Name);
                        }
                        else
                        {
                            Answer.Add(PSkillType.InitiativeInactive.Name);
                        }
                    }
                    else
                    {
                        Answer.Add(PSkillType.Passive.Name);
                    }
                }
            }
        }
        args = Answer.ToArray();
    }