Пример #1
0
        /// <summary>
        /// 治疗解毒理气
        /// </summary>
        /// <param name="instance">DateFile实例</param>
        /// <param name="actorId">要处理的角色ID</param>
        /// <param name="func">功能选择,0疗伤,1祛毒,2调理内息</param>
        /// <param name="battle">是否处理战斗中的伤口、中毒和内息紊乱</param>
        public static void CureHelper(DateFile instance, int actorId, int func, bool battle = true)
        {
            if (instance == null)
            {
                return;
            }

            switch (func)
            {
            case 0:
                if (instance.actorInjuryDate != null && instance.actorInjuryDate.TryGetValue(actorId, out Dictionary <int, int> injuries))
                {
                    var injuryIds = new List <int>(injuries.Keys);
                    for (int i = 0; i < injuryIds.Count; i++)
                    {
                        injuries.Remove(injuryIds[i]);
                    }
                }
                if (battle && instance.ActorIsInBattle(actorId) != 0 && instance.battleActorsInjurys != null &&
                    instance.battleActorsInjurys.TryGetValue(actorId, out Dictionary <int, int[]> battleInjuries))
                {
                    var battleInjuriesIds = new List <int>(battleInjuries.Keys);
                    for (int i = 0; i < battleInjuriesIds.Count; i++)
                    {
                        battleInjuries.Remove(battleInjuriesIds[i]);
                    }
                }
                break;

            case 1:
                if (Characters.HasChar(actorId))
                {
                    for (int i = 0; i < 6; i++)
                    {
                        Characters.SetCharProperty(actorId, 51 + i, "0");
                    }
                }

                if (battle && instance.ActorIsInBattle(actorId) != 0 && instance.battleActorsPoisons != null &&
                    instance.battleActorsPoisons.TryGetValue(actorId, out int[] poisons))
Пример #2
0
        /// <summary>
        /// 治疗解毒理气
        /// </summary>
        /// <param name="instance">DateFile实例</param>
        /// <param name="actorId">要处理的角色ID</param>
        /// <param name="func">功能选择,0疗伤,1祛毒,2调理内息</param>
        /// <param name="battle">是否处理战斗中的伤口、中毒和内息紊乱</param>
        public static void CureHelper(DateFile instance, int actorId, int func, bool battle = true)
        {
            if (instance == null)
            {
                return;
            }

            switch (func)
            {
            case 0:
                if (instance.actorInjuryDate != null && instance.actorInjuryDate.TryGetValue(actorId, out Dictionary <int, int> injuries))
                {
                    List <int> injuryIds = new List <int>(injuries.Keys);
                    for (int i = 0; i < injuryIds.Count; i++)
                    {
                        injuries.Remove(injuryIds[i]);
                    }
                }
                if (battle && instance.ActorIsInBattle(actorId) != 0 && instance.battleActorsInjurys != null &&
                    instance.battleActorsInjurys.TryGetValue(actorId, out Dictionary <int, int[]> battleInjuries))
                {
                    List <int> battleInjuriesIds = new List <int>(battleInjuries.Keys);
                    for (int i = 0; i < battleInjuriesIds.Count; i++)
                    {
                        battleInjuries.Remove(battleInjuriesIds[i]);
                    }
                }
                break;

            case 1:
                if (instance.actorsDate != null && instance.actorsDate.TryGetValue(actorId, out Dictionary <int, string> actorData))
                {
                    for (int i = 0; i < 6; i++)
                    {
                        actorData[i + 51] = "0";
                    }
                }
                if (battle && instance.ActorIsInBattle(actorId) != 0 && instance.battleActorsPoisons != null &&
                    instance.battleActorsPoisons.TryGetValue(actorId, out int[] poisons))