/// <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))
/// <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))