/// <summary> /// 加载角色数据到存档中 /// </summary> /// <param name="DataJson"></param> public static void LoadActorData(string DataJson) { ActorAllData allData = JsonConvert.DeserializeObject <ActorAllData>(DataJson); int ActorID = 0; if (RuntimeConfig.EmptyActorId.Count == 0) { ActorID = (int)AccessTools.Method(typeof(DateFile), "GetNewActorId").Invoke(DateFile.instance, new object[] { }); } else { ActorID = RuntimeConfig.EmptyActorId.Pop(); } Characters.AddChar(ActorID, allData.ActorData); LifeRecords.AddRecords(ActorID, allData.LifeRecords.ToArray()); RuntimeConfig.TraverserLifeRecordFix.Add(ActorID, allData.LifeRecordFix); DateFile.instance.actorInjuryDate[ActorID] = allData.InjuryData; DateFile.instance.actorStudyDate[ActorID] = allData.StadyData; DateFile.instance.actorItemsDate[ActorID] = allData.ItemsData; DateFile.instance.actorEquipGongFas[ActorID] = allData.EquipGongFas; DateFile.instance.actorGongFas[ActorID] = allData.GongFas; DateFile.instance.actorLife[ActorID] = new Dictionary <int, List <int> >(); DateFile.instance.MoveOutPlace(ActorID); var place = DateFile.instance.GetActorAtPlace(DateFile.instance.mianActorId); DateFile.instance.MoveToPlace(place[0], place[1], ActorID, true); }
/// <summary> /// 删除角色生平经历,只要对应内容匹配就会删掉 /// </summary> /// <param name="ActorID">被删的角色 ID</param> /// <param name="RecordType">-1 = 任意,被删掉的记录类型</param> /// <param name="ParamType">-1 = 任意,参数类型</param> /// <param name="ParamValue">必填,参数内容</param> public static void DelLifeRecord(int ActorID, int RecordType = -1, int ParamType = -1, int ParamValue = -1) { var temp = DelLifeRecord(GetLifeRecords(ActorID), RecordType, ParamType, ParamValue).ToArray(); LifeRecords.RemoveRecords(ActorID); LifeRecords.AddRecords(ActorID, temp); }
/// <summary> /// 删除角色生平经历 /// </summary> /// <param name="ActorID">被删的角色 ID</param> /// <param name="RecordType">被删掉的记录类型</param> public static void DelLifeRecord(int ActorID, int RecordType) { var records = LifeRecords.GetAllRecords(ActorID).ToList(); records.RemoveAll(i => i.messageId == RecordType); LifeRecords.RemoveRecords(ActorID); LifeRecords.AddRecords(ActorID, records.ToArray()); }
/// <summary> /// 删除角色生平经历 /// </summary> /// <param name="ActorID">被删的角色 ID</param> /// <param name="Records">被删掉的记录数组</param> public static void DelLifeRecord(int ActorID, LifeRecords.LifeRecord[] Records) { var records = LifeRecords.GetAllRecords(ActorID).ToList(); records.RemoveAll(i => Records.Contains(i)); LifeRecords.RemoveRecords(ActorID); LifeRecords.AddRecords(ActorID, records.ToArray()); }