public Spawn(string Datei, MainForm Main) { InitializeComponent(); this.SpawnFile = Datei; this.Main = Main; OpenSpawn = ReadSpawn(); SpawnAnzeigen(OpenSpawn); this.Text = new FileInfo(Datei).Name; for(int x = 0; x <= 444; x++) { //combo_MoverIDs.Items.Add(Main.MobIDsArr[x].MobName); } }
/// <summary> /// Function um die Spawn Dateien zu lesen. /// </summary> public StructSpawn ReadSpawn() { string SpawnFileText = File.ReadAllText(SpawnFile).Replace('.', ','); StructSpawn returnSpawn = new StructSpawn(); returnSpawn.MoverIDs = new System.Windows.Forms.ListView.ListViewItemCollection(lv_movers); SpawnFileText = SpawnFileText.Replace("\r", string.Empty); Regex zahl = new Regex(@"[\d]+"); Regex floatZahl = new Regex(@"[\d]+[,]?[\d]*"); Regex[] spawnCMDs = new Regex[] {new Regex(@"MOB " + zahl.ToString()), new Regex(@"COUNT " + zahl.ToString()), new Regex(@"MOVING " + zahl.ToString()), new Regex(@"PENYA " + floatZahl.ToString()), new Regex(@"EXP " + floatZahl.ToString()), new Regex(@"DROP " + floatZahl.ToString()), new Regex(@"POS " + floatZahl.ToString() + " " + floatZahl.ToString() + " " + floatZahl.ToString()), new Regex(@"WORLD " + floatZahl.ToString()), new Regex(@"RANGE " + floatZahl.ToString()), new Regex(@"AGGRO " + floatZahl.ToString()), new Regex(@"RESPAWNTIME " + zahl.ToString()), new Regex(@"MOVINGINTERVAL " + floatZahl.ToString()), new Regex(@"SIZE " + zahl.ToString())}; string[] lines = SpawnFileText.Split('\n'); try { foreach(string line in lines) { if(!line.StartsWith("//")) { for(int i = 0; i < spawnCMDs.Length; i++) { if(spawnCMDs[i].IsMatch(line)) { if(i == 0) // Mob-ID { ListViewItem lvItem = new ListViewItem(zahl.Matches(line)[0].ToString()); lvItem.SubItems.Add(findeMob(int.Parse(zahl.Matches(line)[0].ToString()))); returnSpawn.MoverIDs.Add(lvItem); break; } else if(i == 1) // Mob Count { returnSpawn.Count = int.Parse(zahl.Matches(line)[0].ToString()); break; } else if(i == 2) // Move { returnSpawn.Move = line.Contains("1"); break; } else if(i == 3) // Penya { returnSpawn.Penya = float.Parse(floatZahl.Matches(line.Replace('.', ','))[0].ToString()); break; } else if(i == 4) // EXP-Rate { returnSpawn.Exp = float.Parse(floatZahl.Matches(line.Replace('.', ','))[0].ToString()); break; } else if(i == 5) // Drop { returnSpawn.Drop = float.Parse(floatZahl.Matches(line.Replace('.', ','))[0].ToString()); break; } else if(i == 6) // Position { returnSpawn.Pos.X = float.Parse(floatZahl.Matches(line)[0].ToString()); returnSpawn.Pos.Y = float.Parse(floatZahl.Matches(line)[1].ToString()); returnSpawn.Pos.Z = float.Parse(floatZahl.Matches(line)[2].ToString()); break; } else if(i == 7) // Position.World { returnSpawn.Pos.World = int.Parse(zahl.Matches(line)[0].ToString()); break; } else if(i == 8) // Angriff Range { returnSpawn.Range = float.Parse(floatZahl.Matches(line)[0].ToString()); break; } else if(i == 9) // Aggro Chance { returnSpawn.Aggro = float.Parse(floatZahl.Matches(line)[0].ToString()); break; } else if(i == 10) // Respwan Time { returnSpawn.ReTime = int.Parse(zahl.Matches(line)[0].ToString()); break; } else if(i == 11) // Moving Interval { returnSpawn.MovingInterval = int.Parse(zahl.Matches(line)[0].ToString()); break; } else if(i == 12) // Size { returnSpawn.Size = int.Parse(zahl.Matches(line)[0].ToString()); break; } } } } } } catch (Exception ex) { Main.LoggIt(ex.Message, ex.StackTrace); } return returnSpawn; }
void SpawnAnzeigen(StructSpawn spawn) { txt_AggroChance.Text = spawn.Aggro.ToString(); txt_Gebiet.Text = spawn.Range.ToString(); txt_MaxMobs.Text = spawn.Count.ToString(); txt_RespawnZeit.Text = spawn.ReTime.ToString(); txt_World.Text = spawn.Pos.World.ToString(); txt_X.Text = spawn.Pos.X.ToString(); txt_Y.Text = spawn.Pos.Y.ToString(); txt_Z.Text = spawn.Pos.Z.ToString(); txt_exp.Text = spawn.Exp.ToString(); txt_drop.Text = spawn.Drop.ToString(); txt_penya.Text = spawn.Penya.ToString(); cb_move.Checked = spawn.Move; txt_MovingInterval.Text = spawn.MovingInterval.ToString(); txt_size.Text = spawn.Size.ToString(); }