//string TempCurrentGKDate; //初始化关卡数据 public void InitGuanKaDate() { print(" 初始化 关卡数据!!!!!! "); //进游戏 才能调用 //GlobalSetDate.instance.GetGameAllCunstomStr(); GlobalDateControl.GetGameAllCunstomStr(); //查找存档中是否有本关卡的关卡记录 通过本关卡名字获取本关卡数据 string TempCurrentGKDate = GlobalDateControl.GetCurrentGKDate(); //GlobalSetDate.instance.GetGuanKaStrByGKNameAndRemoveIt(SceneManager.GetActiveScene().name); //print("关于本关卡的关卡记录>> " + TempCurrentGKDate); if (TempCurrentGKDate == null) { //print(" 记录 null "+ TempCurrentGKDate); TempCurrentGKDate = ""; //GuanKaStr; } else { //print(" 有关卡记录 草!!!!!!! "); //如果全局数据中有本关卡数据 清除掉原数据中本关卡数据 匹配本关卡数据 if (GlobalDateControl.GetCGKName().Split('@').Length == 1) { GetPiPei(); } //GetPiPei(); } ObjectEventDispatcher.dispatcher.addEventListener(EventTypeName.CHANGE_SCREEN, SetChangeThisGKInZGKTempDate); ObjectEventDispatcher.dispatcher.addEventListener(EventTypeName.RECORDOBJ_CHANGE, GKDateChange); ObjectEventDispatcher.dispatcher.addEventListener(EventTypeName.PLAYER_ZT, PlayerZT); }
void GetJGDateBySave() { string currentGKDate = GlobalDateControl.GetCurrentGKDate(); if (currentGKDate != "") { string[] arr = currentGKDate.Split(','); if (GlobalTools.IsHasDate(JGDate, arr)) { //有数据 JGDate = GlobalTools.GetHasDate(JGDate, arr); JGNum = int.Parse(JGDate.Split('-')[1]); } } }
//匹配记录的机关状态 门是开的还是关的 BOSS有没有杀掉 public void GetPiPei() { string TempCurrentGKDate = GlobalDateControl.GetCurrentGKDate().Split(':')[1]; print("*****************************************************************开始进行 当前关卡的数据匹配 TempCurrentGKDate: " + TempCurrentGKDate); if (TempCurrentGKDate == "") { return; } //开始匹配关卡数据 string[] strArr = TempCurrentGKDate.Split(','); //if (Globals.isDebug) print("匹配!!TempCurrentGKDate: "+ TempCurrentGKDate); print(" 匹配关卡记录数据------------------------ > " + strArr + " length " + strArr.Length); for (var i = 0; i < strArr.Length; i++) { print("*******************************************************************************************" + strArr[i]); if (strArr[i] == "") { continue; } string s = strArr[i].Split('-')[0]; s = GlobalTools.GetNewStrQuDiaoClone(s); //s = GlobalTools.GetNewStrQuDiaoKuohao(s); string zt = "0"; if (strArr[i].Split('-').Length > 1) { zt = strArr[i].Split('-')[1].Split('@')[0]; } string sName = s.Split('_')[0]; //print("字母头 sName: " + sName+" zt "+zt); //找名字 好像部分大小写 if (sName == "Men") { if (zt == "0") { //print("ssss "+s); GlobalTools.FindObjByName(s).GetComponent <Door>().Chushi(); } else if (zt == "1") { //print("s " + s); GlobalTools.FindObjByName(s).GetComponent <Door>().HasOpen(); } } else if (sName == "BOSS" || sName == "B") { print("匹配到 boss名字 : " + s); GameObject boss = GlobalTools.FindObjByName(s); if (boss != null) { print(">>>进来没!!!"); boss.SetActive(false); DestroyImmediate(boss, true); } } else if (sName == "WP") { //GlobalTools.FindObjByName(s).SetActive(false); if (zt == "1") { print("s ------> " + s); //生成一个 GameObject o = GlobalTools.GetGameObjectByName(s); if (o == null) { return; } string posStr = strArr[i].Split('@')[1]; Vector2 pos = new Vector2(float.Parse(posStr.Split('#')[0]), float.Parse(posStr.Split('#')[1])); o.transform.position = pos; } else { //状态=0 的时候 删除 if (GlobalTools.FindObjByName(s) != null) { GlobalTools.FindObjByName(s).GetComponent <Wupinlan>().DistorySelf(); } } } else if (sName == "G") { GameObject guai; if (GlobalDateControl.GetCGKName().Split('@').Length != 1) { print(">>1"); guai = GlobalTools.FindObjByNameInRMaps(s); } else { print(">>2"); //非生成地图 guai = GlobalTools.FindObjByName(s); } if (guai == null) { print("******************************怪物名字 " + s); guai = GlobalTools.FindObjByNameInGuais(s); GlobalTools.FindObjByName("MainCamera").GetComponent <ScreenDoorGuaiControl>().TheGuaiList.Remove(guai); if (guai) { guai.SetActive(false); } continue; } //要在 maps 里面找 print(" >////////////////////guai sname " + s + " 是否匹配到怪 " + guai); if (GuaiList.Count != 0 && guai != null) { GuaiList.Remove(guai); if (GlobalTools.FindObjByName("maps") && GlobalTools.FindObjByName("maps").GetComponent <GetReMap2>().GuaiList.Remove(guai)) { guai.SetActive(false); } else { guai.SetActive(false); } CheckGuaiDoor(); } else { guai.SetActive(false); } } else if (sName == "JG") { //机关记录 //JG_screenName-nums(数组位置) string ScreenName = strArr[i].Split('_')[1] + "_" + strArr[i].Split('_')[2].Split('-')[0]; //print("ScreenName "+ ScreenName); if (ScreenName == SceneManager.GetActiveScene().name) { JGNum = int.Parse(strArr[i].Split('-')[1]); //print("---------------------------- 匹配!!!"); } } else { print("其他记录 " + s); if (GlobalTools.FindObjByName(s) != null) { GlobalTools.FindObjByName(s).SetActive(false); } } } }
//记录数据的改变 存入全局临时变量 如果是BOSS死掉 存入文档 捡到boss装备也要自动存档 public void GKDateChange(UEvent e) { print("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 关卡数据匹配 当前 关卡名 " + GlobalDateControl.GetCurrentGKDate().Split(':')[0]); string changeDate = e.eventParams.ToString(); //Men_1-1 //print(" GKDateChange 事件 "+ changeDate); string changeDateName = changeDate.Split('-')[0]; //men_1 string type = changeDateName.Split('_')[0]; //men string changezt; if (changeDate.Split('-').Length > 1) { changezt = changeDate.Split('-')[1]; } string TempCurrentGKDate = GlobalDateControl.GetCurrentGKDate().Split(':')[1]; print("临时 关卡 数据 : " + TempCurrentGKDate); if (TempCurrentGKDate == "") { TempCurrentGKDate = changeDate; print("临时 关卡 数据 没有数据的时候 TempCurrentGKDate>>>> : " + TempCurrentGKDate); } else { //print(" >>????? TempCurrentGKDate "+ TempCurrentGKDate+ " ??changeDate "+ changeDate); //men_1-0,men_2-0,boss_1-0 当前关卡数据长这样 string[] currentGKDateArr = TempCurrentGKDate.Split(','); //先查找 关卡数据中是否有该数据 有的就变化状态 没有的话就在后面加 if (!GlobalTools.IsHasDate(changeDate, currentGKDateArr)) { TempCurrentGKDate += "," + changeDate; print(" 如果 原始数据 没有新数据 直接 加载后面? 生成数据是: " + TempCurrentGKDate + " /////// 新数据: " + changeDate); //return; } else { print("如果 变化数据 原始数据中有的 话 进入这里 开始 更新 数据状态 @@@@@@"); string newGKDate = ""; for (var i = 0; i < currentGKDateArr.Length; i++) { string theGKDate = currentGKDateArr[i]; string dateName = theGKDate.Split('-')[0]; //if (Globals.isDebug) print("theGKDate > " + theGKDate); //string zt = theGKDate.Split('-')[1]; //这里 替换了 名字相同的内容 也就是替换了状态 if (dateName == changeDateName) { if (i != currentGKDateArr.Length - 1) { newGKDate += changeDate + ","; } else { newGKDate += changeDate; } } else { if (i != currentGKDateArr.Length - 1) { newGKDate += theGKDate + ","; } else { newGKDate += theGKDate; } } } TempCurrentGKDate = newGKDate; print(" 改变状态后的 数据 TempCurrentGKDate " + TempCurrentGKDate); } } //string TempGKDateStr = GuankaName + ":" + TempCurrentGKDate; string TempGKDateStr = GlobalDateControl.GetCGKName() + ":" + TempCurrentGKDate; if (TempCurrentGKDate != null) { GlobalDateControl.SetCurrentGKDateInZGKTempDate(TempGKDateStr); } print("记录数据 TempCurrentGKDate " + TempGKDateStr); //print("TempCurrentGKDate: " + TempCurrentGKDate); if (type == "boss" || type == "G" || type == "B" || type == "WP") { //将关卡数据写入全局临时数据 存档 GlobalDateControl.SaveMapDate(); } }