private void SpawnMission() { int randomNumber = Random.Range(0, 1000); int randomStartIndex = randomNumber % missionPoints.Count; randomNumber = Random.Range(0, 1000); int randomEndIndex = randomNumber % missionPoints.Count; while (randomEndIndex == randomStartIndex) { randomNumber = Random.Range(0, 1000); randomEndIndex = randomNumber % missionPoints.Count; } missionBeginObject = missionPoints[randomStartIndex]; missionEndObject = missionPoints[randomEndIndex]; if (missionIndicatorInstance == null) { missionIndicatorInstance = Instantiate(missionIndicator, missionBeginObject.missionSpawnPoint.transform.position, missionIndicator.transform.rotation); } else { missionIndicatorInstance.transform.position = missionBeginObject .missionSpawnPoint.transform.position; } missionBeginValidated = false; missionEndValidated = false; }
/// <summary> /// 根据配置数据找到对应位置的显示对象数据 /// </summary> /* * public MissionPoint getPointInfoByLoc (int[] loc) * { * foreach (MissionPoint info in pointList) { * if (info.loc [0] == loc [0] && info.loc [1] == loc [1]) * return info; * } * return null; * } */ public void createAllPointInfo() { pointList = new List <MissionPoint> (); pointData = MissionInfoManager.Instance.mission.points; int mapId = MissionInfoManager.Instance.mission.getPlayerPoint().getMapId(); //遍历所有id; for (int i = 0; i < pointData.Length; i++) { if (pointData [i].getMapId() != mapId) { continue; } //已经有该id,不再制作点位 bool repy = false; foreach (MissionPoint info in pointList) { if (info.loc [0] == pointData [i].getPointLoction() [0] && info.loc [1] == pointData [i].getPointLoction() [1]) { pointData [i].PointInfo = info; repy = true; break; } } if (repy == true) { continue; } MissionPoint pointInfo = new MissionPoint(); pointInfo.loc = pointData [i].getPointLoction(); //0,0就随机玩,一般策划不会配0,0 if (pointInfo.loc [0] == 0 && pointInfo.loc [1] == 0) { drawPoint.localPosition = new Vector3(Random.Range(50, 2000), 0, Random.Range(50, 2000)); } else { drawPoint.localPosition = new Vector3(pointInfo.loc [0], 0, pointInfo.loc [1]); } pointInfo.woldPos = drawPoint.position; pointInfo.localPosition = drawPoint.localPosition; pointInfo.pointIndex = i; pointData [i].PointInfo = pointInfo; pointList.Add(pointInfo); } }
/** 试炼跑到终点后做的事情 */ void moveArriveByPractice() { changeState(fuben_characterState.stand); MissionPointInfo point = MissionInfoManager.Instance.mission.GetPlayerNextPoint(); //获取下个节点的逻辑信息 if (point == null) { return; } MissionPoint info = point.PointInfo; if (info != null && info.eventObj != null) { Destroy(info.eventObj.gameObject); } }
/// <summary> /// 从列表中删除最后一个 /// </summary> public void removeMissionPoint(object sender, EventArgs e) { //找到最近一次的mp和与之对应的btn if (mps.Count > 0) { MissionPoint mp = mps[mps.Count - 1]; mps.Remove(mp); //文字信息改为整体刷新 string info = ""; foreach (MissionPoint temp in mps) { info += ((Button)xw_btn[temp.no]).Text + " " + (temp.isVibrate ? "振动" : "一一") + " " + temp.time / 60 + " 分钟\r\n"; } lblMission.Text = info; } }
public static MissionPoint FindMissionByKey(string missionpointkey) { if (missionpointinfo_list == null || missionpointinfo_list.Count == 0) { return(null); } MissionPoint rmissionpoint = null; foreach (MissionPoint missionpoint in missionpointinfo_list) { if (missionpoint.key.CompareTo(missionpointkey) == 0) { rmissionpoint = missionpoint; break; } } return(rmissionpoint); }
// Use this for initialization void Start() { LoadingData.LoadItem(); Utilities.DebugLog("LoadingData.GetTabCount " + LoadingData.GetTabCount(LoadingData.table_equipment)); BlackSmithAddition getback = LoadingData.FindBlackSmithAdditionByKey(blacksmithfindkey); Equipment getback2 = LoadingData.FindEquipmentInfoByKey(equipmentfindkey); GameMaterial getback3 = LoadingData.FindMaterialByKey(materialfindkey); MissionPoint missionpointback = LoadingData.FindMissionByKey(missionpointfindkey); Stage stageback = LoadingData.FindStageByKey(stagefindkey); Alchemy alchemyback = LoadingData.FindAlchemyByKey(alchemyfindkey); Utilities.DebugLog("addition info " + getback.itemkey); Utilities.DebugLog("need add " + getback.param.Count + " item"); foreach (KeyValuePair <string, int> param in getback.param) { Utilities.DebugLog("addition key " + param.Key + " value " + param.Value); } Utilities.DebugLog("================================"); Utilities.DebugLog("weapon info " + getback2.equipmentkey); Utilities.DebugLog("weapon type " + getback2.type); Utilities.DebugLog("weapon price " + getback2.price_value); Utilities.DebugLog("material info " + getback3.itemkey); Utilities.DebugLog("weapon tw " + getback3.tw); Utilities.DebugLog("weapon desc " + getback2.tw_desc); Utilities.DebugLog("mission point now is " + missionpointback.key); Utilities.DebugLog("stageback now is " + stageback.key); Utilities.DebugLog("stageback point now is " + stageback.checkpointcount); Utilities.DebugLog("stageback king is " + stageback.kingname); Utilities.DebugLog("alchemyback now is " + alchemyback.itemkey); foreach (KeyValuePair <GameMaterial, int> param in alchemyback.param) { Utilities.DebugLog("addition key " + param.Key.tw + " value " + param.Value); } }
/// <summary> /// 添加到列表中 /// </summary> public void addMissionPoint(object sender, EventArgs e) { if (!checkFormat()) { return; } MissionPoint mp = new MissionPoint(); mp.no = tbxNoReal.Text; mp.isVibrate = cbxIsVibrate.Checked; mp.time = Int32.Parse(tbxTime.Text) * 60; mp.timeFixed = mp.time; mps.Add(mp); //文字信息改为整体刷新 string info = ""; foreach (MissionPoint temp in mps) { info += ((Button)xw_btn[temp.no]).Text + " " + (temp.isVibrate ? "振动" : "一一") + " " + temp.time / 60 + " 分钟\r\n"; } lblMission.Text = info; }
public void AddMissionPoint(MissionPoint mp) { missionPoints.Add(mp); PointCount = missionPoints.Count; if (mp.TargetDetected > 0) { TargetsDetected++; } missionPoints.Sort(new MissionPointComparer()); }
public MissionPoint AddMissionPoint(Coordinate3D coord, TargetType type, string annotation) { MissionPoint mp = null; if (mission != null) { index++; mp = new MissionPoint(mission.ID, index, coord.Lat, coord.Lon, coord.Alt, type, CurrentMissionTime, annotation); mission.AddMissionPoint(mp); if (index > 1) { mission.DistanceFlown += CalcDistance(lastCoord, coord); } lastCoord = new Coordinate3D(coord.Lat, coord.Lon, coord.Alt); } return mp; }
/// <summary> /// 发送位移命令 /// </summary> private void toLocation() { //order18(btnF5 ?, TYPE_F ?, 5 ?); //根据currZJIndex 获取当前穴位的坐标 int[] fx = new int[8], fy = new int[8], bx = new int[8], by = new int[8]; string[] strs = config1.frontX.Split(",".ToCharArray()); for (int i = 0; i < strs.Length; i++) { fx[i] = Int32.Parse(strs[i]); } strs = config1.frontY.Split(",".ToCharArray()); for (int i = 0; i < strs.Length; i++) { fy[i] = Int32.Parse(strs[i]); } strs = config1.backX.Split(",".ToCharArray()); for (int i = 0; i < strs.Length; i++) { bx[i] = Int32.Parse(strs[i]); } strs = config1.backY.Split(",".ToCharArray()); for (int i = 0; i < strs.Length; i++) { by[i] = Int32.Parse(strs[i]); } int x = 0, y = 0; MissionPoint mp = mps[currZJIndex]; if (mp.no.Equals("F1")) { x = fx[0]; y = fy[0]; } if (mp.no.Equals("B1")) { x = bx[0]; y = by[0]; } if (mp.no.Equals("F2")) { x = fx[1]; y = fy[1]; } if (mp.no.Equals("B2")) { x = bx[1]; y = by[1]; } if (mp.no.Equals("F3")) { x = fx[2]; y = fy[2]; } if (mp.no.Equals("B3")) { x = bx[2]; y = by[2]; } if (mp.no.Equals("F4")) { x = fx[3]; y = fy[3]; } if (mp.no.Equals("B4")) { x = bx[3]; y = by[3]; } if (mp.no.Equals("F5")) { x = fx[4]; y = fy[4]; } if (mp.no.Equals("B5")) { x = bx[4]; y = by[4]; } if (mp.no.Equals("F6")) { x = fx[5]; y = fy[5]; } if (mp.no.Equals("B6")) { x = bx[5]; y = by[5]; } if (mp.no.Equals("F7")) { x = fx[6]; y = fy[6]; } if (mp.no.Equals("B7")) { x = bx[6]; y = by[6]; } if (mp.no.Equals("F8")) { x = fx[7]; y = fy[7]; } if (mp.no.Equals("B8")) { x = bx[7]; y = by[7]; } order18Direct(x, y); }
/// <summary> /// 用动画标识当前穴位(按钮) /// </summary> private void animateCurrPoint(Object sender, EventArgs e) { MissionPoint mp = mps[currZJIndex]; Button btn = mp.btn; if (btn.BackColor == Color.Red) { btn.BackColor = Color.Green; } else { btn.BackColor = Color.Red; } //处理显示的问题 tbxTotalTimeMin2.Text = totalZJTime / 60 + ""; tbxTotalTimeSec2.Text = totalZJTime % 60 + ""; tbxCurrTimeMin2.Text = mp.time / 60 + ""; tbxCurrTimeSec2.Text = mp.time % 60 + ""; //计时操作 totalZJTime--; mp.time--; if (mp.time == 0) { btn.BackColor = Color.Black; //发送一下振动(停),停止 if (mp.isVibrate) { order16_17(null, null); Console.WriteLine("【结束 振动】: currZJIndex " + currZJIndex); } send(ORDER.Z19, 19, ORDER.L19); currZJIndex++; if (currZJIndex < mps.Count) { //转向下一个穴位 toLocation(); //振动 MissionPoint mpNext = mps[currZJIndex]; if (mpNext.isVibrate) { order16_17(null, null); Console.WriteLine("【开始 振动】: currZJIndex " + currZJIndex); } } } if (totalZJTime == 0) { timer.Stop(); currZJIndex = 0; btnStart2.Enabled = true; btnMission2.Enabled = true; cbxScheme2.Enabled = true; tbxTotalTimeMin2.Text = null; tbxTotalTimeSec2.Text = null; tbxCurrTimeMin2.Text = null; tbxCurrTimeSec2.Text = null; } }
public MissionPoint getPlayerNextPointInfo(MissionPoint nowPoint) { return(null); }
public byte[] Write() { MemoryStream m = new MemoryStream(); EndianBinaryWriter er = new EndianBinaryWriter(m, Endianness.LittleEndian); int NrSections = 0x12; Header.SectionOffsets = new UInt32[NrSections]; Header.Write(er); int SectionIdx = 0; if (KartPoint != null) { WriteHeaderInfo(er, SectionIdx); KartPoint.Write(er); SectionIdx++; } if (EnemyPoint != null) { WriteHeaderInfo(er, SectionIdx); EnemyPoint.Write(er); SectionIdx++; } if (EnemyPointPath != null) { WriteHeaderInfo(er, SectionIdx); EnemyPointPath.Write(er); SectionIdx++; } if (ItemPoint != null) { WriteHeaderInfo(er, SectionIdx); ItemPoint.Write(er); SectionIdx++; } if (ItemPointPath != null) { WriteHeaderInfo(er, SectionIdx); ItemPointPath.Write(er); SectionIdx++; } if (CheckPoint != null) { WriteHeaderInfo(er, SectionIdx); CheckPoint.Write(er); SectionIdx++; } if (CheckPointPath != null) { WriteHeaderInfo(er, SectionIdx); CheckPointPath.Write(er); SectionIdx++; } if (GlobalObject != null) { WriteHeaderInfo(er, SectionIdx); GlobalObject.Write(er); SectionIdx++; } if (PointInfo != null) { WriteHeaderInfo(er, SectionIdx); PointInfo.Write(er); SectionIdx++; } if (Area != null) { WriteHeaderInfo(er, SectionIdx); Area.Write(er); SectionIdx++; } if (Camera != null) { WriteHeaderInfo(er, SectionIdx); Camera.Write(er); SectionIdx++; } if (JugemPoint != null) { WriteHeaderInfo(er, SectionIdx); JugemPoint.Write(er); SectionIdx++; } if (CannonPoint != null) { WriteHeaderInfo(er, SectionIdx); CannonPoint.Write(er); SectionIdx++; } if (MissionPoint != null) { WriteHeaderInfo(er, SectionIdx); MissionPoint.Write(er); SectionIdx++; } if (StageInfo != null) { WriteHeaderInfo(er, SectionIdx); StageInfo.Write(er); SectionIdx++; } if (CourseSect != null) { WriteHeaderInfo(er, SectionIdx); CourseSect.Write(er); SectionIdx++; } if (GliderPoint != null) { WriteHeaderInfo(er, SectionIdx); GliderPoint.Write(er); SectionIdx++; } if (GliderPointPath != null) { WriteHeaderInfo(er, SectionIdx); GliderPointPath.Write(er); SectionIdx++; } WriteHeaderFileSize(er); byte[] result = m.ToArray(); er.Close(); return(result); }
public static void SetInitListForMissionPoint() { if (itemTable != null && itemTable.Count > 0) { if (!itemTable.ContainsKey(table_missionpoint)) { return; } Hashtable parentTable = (Hashtable)itemTable [table_missionpoint]; foreach (string stringkey in parentTable.Keys) { //把每一行抓出來 Utilities.DebugLog("missionpoint init is " + stringkey); Hashtable currenttable = (Hashtable)parentTable[stringkey]; MissionPoint current_missionpoint = new MissionPoint(); current_missionpoint.key = stringkey; string missiontype = Utilities.LoadString(currenttable[key_missionpoint_type], ""); MissionPointType missionpointtype = MissionPointType.Monster; switch (missiontype) { case "resource": missionpointtype = MissionPointType.Resource; break; case "monster": missionpointtype = MissionPointType.Monster; break; default: break; } current_missionpoint.type = missionpointtype; current_missionpoint.zh_tw = Utilities.LoadString(currenttable[key_chinese], ""); current_missionpoint.en = Utilities.LoadString(currenttable [key_english], ""); current_missionpoint.lv = Utilities.LoadInt(currenttable[key_missionpoint_level], 0); current_missionpoint.hp = Utilities.LoadInt(currenttable [key_missionpoint_healthpoint], 0); current_missionpoint.attack = Utilities.LoadInt(currenttable [key_missionpoint_attack], 0); current_missionpoint.exp = Utilities.LoadInt(currenttable [key_missionpoint_exp], 0); Dictionary <monstereffect, int> data = new Dictionary <monstereffect, int>(); int effectname1 = Utilities.LoadInt(currenttable[key_missionpoint_effect1], 0); int effectpercent1 = Utilities.LoadInt(currenttable[key_missionpoint_effect1percent], 0); int effectname2 = Utilities.LoadInt(currenttable[key_missionpoint_effect2], 0); int effectpercent2 = Utilities.LoadInt(currenttable[key_missionpoint_effect2percent], 0); int effectname3 = Utilities.LoadInt(currenttable[key_missionpoint_effect3], 0); int effectpercent3 = Utilities.LoadInt(currenttable[key_missionpoint_effect3percent], 0); if (effectname1 != 0) { data.Add(MissionPoint.Getmonstereffect(effectname1), effectpercent1); } if (effectname2 != 0) { data.Add(MissionPoint.Getmonstereffect(effectname2), effectpercent2); } if (effectname3 != 0) { data.Add(MissionPoint.Getmonstereffect(effectname3), effectpercent3); } current_missionpoint.effect = data; Dictionary <string, int> dropdata = new Dictionary <string, int>(); dropdata = CheckIfKeyGotValue(dropdata, currenttable, key_missionpoint_drop1, key_missionpoint_drop1percent); dropdata = CheckIfKeyGotValue(dropdata, currenttable, key_missionpoint_drop2, key_missionpoint_drop2percent); dropdata = CheckIfKeyGotValue(dropdata, currenttable, key_missionpoint_drop3, key_missionpoint_drop3percent); dropdata.Add("nonedroppercent", Utilities.LoadInt(key_missionpoint_nonedroppercent, 0)); current_missionpoint.drop = dropdata; current_missionpoint.animationpicturename = Utilities.LoadString(currenttable[key_missionpoint_animationpicture]); current_missionpoint.animationpicturecount = Utilities.LoadInt(currenttable [key_missionpoint_animationpictruecount]); missionpointinfo_list.Add(current_missionpoint); Utilities.DebugLog("missionpoint now finish add is " + stringkey); } } }