Mein Tool =)

zokker13

Moderator
Joined
Oct 12, 2008
Messages
6,719
Reaction score
0
Mir war eben langweilig und da hab ich nen kleines Tool programmiert, was euch die Replays so abspeichert, dass ihr wisst, wann das war (auch wenn das schon bei Windoof einstellbar ist!)

Ist leider in C# geschrieben also nur auf Windoof verfügbar und man braucht das Netframework 4.0


Feedback immer her!!

Klick mich hart!
 
Last edited:
Du weißt das man das auch nur als exe rausjagen kann ohne den ganzen Ordner mitzunehmen oder?^^
 
du hast mich auf ne gute Idee gebracht :D
mal sehen vielleicht werde ich sowas mal umsetzen :D
 
Ich werd hier raus mal eine Art Blog machen.

Hab heute einen Meilenstein erreicht, ich war in der Lage, den Spieler und die Race zu isolieren!
Ihr könnt eich ja den Sourcecode angucken!

Werde mi9ch jetzt an die Farbe machen!

Update, Spieler 2 is nun auch feddisch
Habs jetzt ins Replaytool integriert, ihr solltet aber nicht gegen den selben Typie 2x spielen, hab noch nicht die uhrzeit gefiltert.


C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;

//Tool by zokker13
//Thx to Liontiger
namespace Autoreplay
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //Variablen und Ordnerdurchsuchung wird deklariert
        string sOn = "Autoreplay = ON!";
        string sOff = "Autoreplay = OFF!";
        string sEndung;
        string strFile;
        Regex alphabet = new Regex("[a-zA-Z]");
        string sSP1 ;
        string sSP2 ;
        string strRaceSP1;
        string strRaceSP2;
        string strkurzSP1;
        string strkurzSP2;
        int i;
        int iyea, imon, iday, istd, imin, isec, imil;
        System.Windows.Forms.FolderBrowserDialog objDialog = new FolderBrowserDialog();
        System.Windows.Forms.FolderBrowserDialog objDialog2 = new FolderBrowserDialog();
        private void cmdStart_Click(object sender, EventArgs e)
        {
            //Dieser Part macht den Timer an/aus.
            if (tmrTimer.Enabled == false)
            {
                tmrTimer.Enabled = true;
            }

            else if (tmrTimer.Enabled == true)
            {
                tmrTimer.Enabled = false;
                cmdStart.Text = sOff;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //Wenn die Form 'hochfährt', wird eine Textdatei gelesen
            if (File.Exists(@"C:\Autoreplaytoolfile.txt"))
            {
                string[] sfile = File.ReadAllLines(@"C:\Autoreplaytoolfile.txt");
                for (int i = 0; i < sfile.Length; i++)
                {
                    objDialog2.SelectedPath = sfile[0];
                    objDialog.SelectedPath = sfile[1];
                }
            }
            else
            {
                //Quellordner
                objDialog.Description = "Search for your Unsaved Replay folder!";
                objDialog.SelectedPath = @"C:\";
                DialogResult objResult = objDialog.ShowDialog(this);

                //Zielordner
                objDialog2.Description = "Create your Replayfolder";
                objDialog2.SelectedPath = @"C:\";
                DialogResult objResult2 = objDialog2.ShowDialog(this);
            }
        }



        public void tmrTimer_Tick(object sender, EventArgs e)
        {
            //Uhrzeitdeklaration
            DateTime dtUhr = DateTime.Now;
            //Variablen für die jeweilige Zeit
            iyea = dtUhr.Year;
            imon = dtUhr.Month;
            iday = dtUhr.Day;
            istd = dtUhr.Hour;
            imin = dtUhr.Minute;
            isec = dtUhr.Second;
            imil = dtUhr.Millisecond;


            //Es wird geprüft, ob es bereits einen Pfad gibt oder nicht
            if (objDialog.SelectedPath != "" && objDialog.SelectedPath != @"C:\" && objDialog2.SelectedPath != "" && objDialog2.SelectedPath != @"C:\")
            {
                //Wenn es einen Pfad gibt, wird eine Textdatei
                //erstellt, die die Pfadinformation beinhaltet
                StreamWriter sw = File.CreateText(@"C:\Autoreplaytoolfile.txt");
                sw.WriteLine(objDialog2.SelectedPath.ToString());
                sw.WriteLine(objDialog.SelectedPath.ToString());
                sw.Close();


                cmdStart.Text = sOn; //<=Der Buttontext

                //Hier werden die Replays an sich (.SC2Replay) gesammelt und bekommen
                //Ihren eigenen Array
                string[] sReps = Directory.GetFiles(objDialog.SelectedPath);
                for (i = 0; i < sReps.Length; i++)
                {
                    sEndung = Path.GetExtension(sReps[i]);
                    strFile = Path.GetFileNameWithoutExtension(sReps[i]);

                    string[] sfile = File.ReadAllLines(sReps[i]);
                    for (int i0 = 0; i0 < sfile.Length; i0++)
                    {

                        //Die 2 steht für die Zeile zwei, in der 
                        //Zeile 2 steht der Accountname des
                        //Spieler_1
                        if (i0 == 2)
                        {
                            string szwiSP1 = sfile[2];
                            //27: Erster Buchstabe des Spieler_1 Accountname
                            //39: Max. letzter Buchstabe des Spieler_1 Accountname
                            for (int i2 = 27; i2 <= 39; i2++)
                            {
                                //Spieler_1 Accountname
                                if (alphabet.IsMatch(szwiSP1[i2].ToString()))
                                {
                                    //Schreibt die werte in ein Label bzw. eine string rein.
                                    sSP1 = sSP1 + szwiSP1[i2].ToString();
                                }


                                //   MessageBox.Show(i2.ToString() + ": " + szwi[i2].ToString());

                            }
                            //56: Erster Buchstabe der Race
                            //62: Max. letzter Buchstabe der Race.
                            for (int i3 = 56; i3 <= 63; i3++)
                            {
                                strkurzSP1 = szwiSP1[57].ToString();
                                //Spieler_1 Race
                                if (alphabet.IsMatch(szwiSP1[i3].ToString()))
                                {
                                    //Schreibt die werte in ein Label bzw. eine string rein.
                                    strRaceSP1 = strRaceSP1 + szwiSP1[i3].ToString();
                                }
                            }
                        }


                        if (i0 == 3)
                        {
                            string szwiSP2 = sfile[3];
                            //27: Erster Buchstabe des Spieler_2 Accountname
                            //39: Max. letzter Buchstabe des Spieler_2 Accountname
                            for (int i2 = 17; i2 <= 29; i2++)
                            {
                                //Spieler_1 Accountname
                                if (alphabet.IsMatch(szwiSP2[i2].ToString()))
                                {
                                    //Schreibt die werte in ein Label bzw. eine string rein.
                                    sSP2 = sSP2 + szwiSP2[i2].ToString();
                                }


                                //   MessageBox.Show(i2.ToString() + ": " + szwi[i2].ToString());

                            }
                            //56: Erster Buchstabe der Race
                            //62: Max. letzter Buchstabe der Race.
                            for (int i3 = 46; i3 <= 53; i3++)
                            {
                                strkurzSP2 = szwiSP2[47].ToString();
                                //Spieler_1 Race
                                if (alphabet.IsMatch(szwiSP2[i3].ToString()))
                                {
                                    //Schreibt die werte in ein Label bzw. eine string rein.
                                    strRaceSP2 = strRaceSP2 + szwiSP2[i3].ToString();
                                }
                            }
                        }
                    }
                    if (sEndung == ".SC2Replay" || sEndung == ".sc2replay")
                    {
                        File.Move(sReps[i], objDialog2.SelectedPath + "\\" + sSP1 + "(" + strkurzSP1 + ")" + " vs " + sSP2 + "(" + strkurzSP2 + ")" + sEndung);
                    }
                }
            }
                
            //Wenn es keine Pfadinformation gibt, wird der User gedrängt,
            //einen Pfand auszuwählen, der Knopftext wird defeiert und
            //der Timer ausgestellt sowie eine Messagebox angezeigt
            else
            {
                tmrTimer.Enabled = false;
                cmdStart.Text = sOff;
                MessageBox.Show("Wähle dein Ziel- und Quell-ordner aus!");
            }
        }

        
        private void txtPath_TextChanged(object sender, EventArgs e)
        {

        }
        //Menüauswahl - Hier werden die Sachen im oberen menü ausgeführt
        private void exitToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void creditsToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("All credits belong to zokker13",
                "It's one of his first Projects!");
        }

        private void quellordnerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            objDialog.Description = "Search for your Unsaved Replay folder!";
            objDialog.SelectedPath = @"C:\";
            DialogResult objResult = objDialog.ShowDialog(this);
        }

        private void zielordnerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            objDialog2.Description = "Create your Autoreplayfolder";
            objDialog2.SelectedPath = @"C:\";
            DialogResult objResult2 = objDialog2.ShowDialog(this);
        }

        private void comingToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Ich plane noch die Replays \n" + 
                "so zu parsen, dass ich \n" + 
                "die Namen, Rasse und Farben \n" + 
                "auslesen kann!!", "Das kommt noch!");
        }

        private void startSCIIToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start(@"C:\Program Files (x86)\StarCraft II\StarCraft II.exe");
        }

        private void lstBox_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}
 
Last edited:
Back
Top