Advertisement
Guest User

Untitled

a guest
Aug 25th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.70 KB | None | 0 0
  1. using MySql.Data.MySqlClient;
  2. using System;
  3. using System.IO;
  4. using System.Text;
  5.  
  6.  
  7. namespace CharSectionsAdder
  8. {
  9.     class Program
  10.     {
  11.         public static int iCpt;
  12.  
  13.         static string strLines;
  14.         static string strUserChoice;
  15.         static string strMySqlDb = "mysql.conf";
  16.  
  17.  
  18.         const string strTexFiles = @"texfiles.txt";
  19.         const string strCharFiles = @"charfiles.txt";
  20.  
  21.         public static MySqlConnection myConnection = new MySqlConnection(File.ReadAllText(strMySqlDb, Encoding.UTF8));
  22.         public static MySqlCommand myCmd;
  23.  
  24.  
  25.         static void Main(string[] args)
  26.         {
  27.  
  28.             if (File.ReadAllBytes(strMySqlDb).Length <= 0)
  29.             {
  30.                 Console.WriteLine("Erreur, fichier MySql incomplet.");
  31.                 Console.ReadKey();
  32.             }
  33.  
  34.  
  35.             Console.WriteLine("Bienvenue sur le programme CharSectionsAdder\n" +
  36.                 "Ce logiciel a pour but d'automatiser l'ajout de textures et de peau dans World of Warcraft.. \nIl possède deux fonctions :\n " +
  37.                 "\n- chrsections : Ajoute les peaux présentes dans le fichier charfiles.txt" +
  38.                 "\n- texfiledata : Fait la liaison entre une entrée FileDataID et une texture.");
  39.  
  40.             Console.Write("\nFaites votre choix : ");
  41.             strUserChoice = Console.ReadLine();
  42.  
  43.             try
  44.             {
  45.                 switch (strUserChoice)
  46.                 {
  47.                     case "chrsections":
  48.                         DoCharSections();
  49.                         break;
  50.                     case "texfiledata":
  51.                         DoTextureFileData();
  52.                         break;
  53.                     default:
  54.                         Console.ForegroundColor = ConsoleColor.Red;
  55.                         Console.WriteLine("Fonction : {0} non-existente.", strUserChoice);
  56.                         break;
  57.                 }
  58.  
  59.                 Console.ReadKey();
  60.             }
  61.             catch (Exception ex)
  62.             {
  63.                 Console.ForegroundColor = ConsoleColor.Red;
  64.                 Console.WriteLine("Une erreur est survenue !!\n\n" +
  65.                     "{0}", ex);
  66.  
  67.                 Console.ReadKey();
  68.             }
  69.  
  70.         }
  71.  
  72.         static void DoCharSections()
  73.         {
  74.             myCmd = myConnection.CreateCommand();
  75.  
  76.             // basic flag
  77.             int DKFlags = 5;
  78.             int NormalFlags = 1;
  79.  
  80.             myConnection.Open();
  81.  
  82.             using (StreamReader cFiles = new StreamReader(strCharFiles))
  83.             {
  84.                 Console.WriteLine("[CharSections] - Ajout de la ligne n° : {0}", iCpt);
  85.  
  86.                 while ((strLines = cFiles.ReadLine()) != null)
  87.                 {
  88.                     string[] strField = strLines.Split(',');
  89.                     myCmd.Parameters.Clear();
  90.  
  91.                     // MaxID
  92.                     Int32 MaxID = 0;
  93.                     Byte FacesMaxID = 0;
  94.                     Byte SkinMaxID = 0;
  95.  
  96.                     #region MaxID
  97.                     myCmd.CommandText = "SELECT MAX(id) FROM charsections";
  98.                     MaxID = (Int32)myCmd.ExecuteScalar();
  99.  
  100.                     myCmd.CommandText = "SELECT MAX(VariationIndex) FROM charsections WHERE RaceID ='" + strField[0] + "' AND SexID ='" + strField[1] + "' AND BaseSection = 6";
  101.                     FacesMaxID += (byte)myCmd.ExecuteScalar();
  102.  
  103.                     // Get MaxID
  104.                     myCmd.CommandText = "SELECT MAX(ColorIndex) FROM charsections WHERE RaceID ='" + strField[0] + "' AND SexID ='" + strField[1] + "' AND BaseSection = 5";
  105.                     SkinMaxID = (byte)myCmd.ExecuteScalar();
  106.  
  107.                     #endregion
  108.  
  109.                     #region SkinAdd
  110.                     // Skin Functions
  111.  
  112.                     // Add Skin
  113.                     Console.WriteLine("[CharSections] - Ajout de la peau avec le Linked FID {0}", strField[2]);
  114.                     myCmd.CommandText = "INSERT INTO charsections (ID, RaceID, SexID, BaseSection, ColorIndex, Flags, MaterialResourcesID_1) VALUES (@ID, @RaceID, @SexID, @BaseSection, @ColorIndex, @Flags, @MaterialResourcesID_1)";
  115.                     myCmd.Parameters.AddWithValue("@ID", ++MaxID);
  116.                     myCmd.Parameters.AddWithValue("@RaceID", Convert.ToByte(strField[0]));
  117.                     myCmd.Parameters.AddWithValue("@SexID", Convert.ToByte(strField[1]));
  118.                     myCmd.Parameters.AddWithValue("@BaseSection", 5 /*HD Flag*/);
  119.                     myCmd.Parameters.AddWithValue("@ColorIndex", ++SkinMaxID);
  120.                     myCmd.Parameters.AddWithValue("@Flags", 19 /*Playable Skin*/);
  121.                     myCmd.Parameters.AddWithValue("@MaterialResourcesID_1", Convert.ToInt32(strField[2]));
  122.                     myCmd.ExecuteNonQuery();
  123.                     #endregion
  124.  
  125.        
  126.                     #region FacesAdd
  127.                     // Faces Functions
  128.    
  129.                     Console.WriteLine("[CharSections] - Ajout des visages..." +
  130.                         "\nTotal des visages : {0}\n" +
  131.                         "Visage DK : {1}", FacesMaxID + 1, (FacesMaxID +1) / 2);
  132.  
  133.                     for (int i = 0; i < FacesMaxID + 1 /*0-X*/ ; i++)
  134.                     {
  135.                         myCmd.Parameters.Clear();
  136.  
  137.                         myCmd.CommandText = "INSERT into charsections (ID, RaceID, SexID, BaseSection, VariationIndex, ColorIndex, Flags) VALUES (@ID, @RaceID, @SexID, @BaseSection, @VariationIndex, @ColorIndex, @Flags)";
  138.  
  139.                         myCmd.Parameters.AddWithValue("@ID", ++MaxID);
  140.                         myCmd.Parameters.AddWithValue("@RaceID", Convert.ToByte(strField[0]));
  141.                         myCmd.Parameters.AddWithValue("@SexID", Convert.ToByte(strField[1]));
  142.                         myCmd.Parameters.AddWithValue("@BaseSection", 6 /*HD Flag*/);
  143.                         myCmd.Parameters.AddWithValue("@VariationIndex", i);
  144.                         myCmd.Parameters.AddWithValue("@ColorIndex", SkinMaxID);
  145.                         myCmd.Parameters.AddWithValue("@Flags", NormalFlags /* Normal Faces*/);
  146.  
  147.                         if (i >= (FacesMaxID + 1) / 2)
  148.                         {
  149.                             myCmd.Parameters.Clear();
  150.  
  151.                             myCmd.Parameters.AddWithValue("@ID", ++MaxID);
  152.                             myCmd.Parameters.AddWithValue("@RaceID", Convert.ToByte(strField[0]));
  153.                             myCmd.Parameters.AddWithValue("@SexID", Convert.ToByte(strField[1]));
  154.                             myCmd.Parameters.AddWithValue("@BaseSection", 6 /*HD Flag*/);
  155.                             myCmd.Parameters.AddWithValue("@VariationIndex", i);
  156.                             myCmd.Parameters.AddWithValue("@ColorIndex", SkinMaxID);
  157.                             myCmd.Parameters.AddWithValue("@Flags", DKFlags /* DK Faces*/);
  158.  
  159.                         }
  160.  
  161.                         myCmd.ExecuteNonQuery();
  162.                     }
  163.  
  164.                     myCmd.Parameters.Clear();
  165.  
  166.                     Console.WriteLine("{0} visages ajoutées avec succès avec le LinkedFID {1} ! ", FacesMaxID, strField[2]);
  167.  
  168.                     #endregion
  169.  
  170.                    
  171.  
  172.                     #region NakedAdd
  173.  
  174.                     // Naked Functions
  175.                     myCmd.CommandText = "INSERT INTO charsections (ID, RaceID, SexID, BaseSection, ColorIndex, Flags) VALUES (@ID, @RaceID, @SexID, @BaseSection, @ColorIndex, @Flags)";
  176.                     myCmd.Parameters.AddWithValue("@ID", ++MaxID);
  177.                     myCmd.Parameters.AddWithValue("@RaceID", Convert.ToByte(strField[0]));
  178.                     myCmd.Parameters.AddWithValue("@SexID", Convert.ToByte(strField[1]));
  179.                     myCmd.Parameters.AddWithValue("@BaseSection", 9 /*Naked Flag*/);
  180.                     myCmd.Parameters.AddWithValue("@ColorIndex", SkinMaxID);
  181.                     myCmd.Parameters.AddWithValue("@Flags", 19 /*Playable Skin*/);
  182.  
  183.                     myCmd.ExecuteNonQuery();
  184.  
  185.                     ++iCpt;
  186.    
  187.                     #endregion
  188.              
  189.                 }
  190.  
  191.                 Console.Clear();
  192.                 Console.ForegroundColor = ConsoleColor.Green;
  193.                 Console.WriteLine("{0} peau(x) ajoutées avec succès !", iCpt);
  194.             }
  195.  
  196.         }
  197.  
  198.         static void DoTextureFileData()
  199.         {
  200.             iCpt = 0;
  201.             myConnection.Open();
  202.  
  203.             using (StreamReader tFiles = new StreamReader(strTexFiles))
  204.             {
  205.                 Console.WriteLine("[TextureFileData] - Ajout de la ligne n° : {0}", iCpt);
  206.  
  207.                 while ((strLines = tFiles.ReadLine()) != null)
  208.                 {
  209.                     string[] strField = strLines.Split(',');
  210.  
  211.                     myCmd = myConnection.CreateCommand();
  212.  
  213.                     myCmd.CommandText = "INSERT INTO texturefiledata (FileDataID, UsageType, MaterialResourcesID, RelationShipData) VALUES (@FileDataID, @UsageType, @MaterialResourcesID, @RelationShipData)";
  214.                     myCmd.Parameters.AddWithValue("@FileDataID", Convert.ToInt32(strField[0]));
  215.                     myCmd.Parameters.AddWithValue("@UsageType", Convert.ToInt32(strField[1]));
  216.                     myCmd.Parameters.AddWithValue("@MaterialResourcesID", Convert.ToInt32(strField[2]));
  217.                     myCmd.Parameters.AddWithValue("@RelationShipData", Convert.ToUInt32(strField[3]));
  218.  
  219.                     myCmd.ExecuteNonQuery();
  220.  
  221.                     iCpt++;
  222.                 }
  223.                 Console.Clear();
  224.                 Console.ForegroundColor = ConsoleColor.Green;
  225.                 Console.WriteLine("Ajout terminé ! {0} entrée(s) ajoutée(s) dans la base de donnée.", iCpt);
  226.  
  227.                 myConnection.Close();
  228.             }
  229.         }
  230.     }
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement