Advertisement
Guest User

Untitled

a guest
May 24th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.52 KB | None | 0 0
  1. using System;
  2. using AlmaMagicaMerge.Utilidades;
  3. using MySql.Data.MySqlClient;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6.  
  7. namespace AlmaMagicaMerge
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Console.WriteLine("========== Alma magica mergeator ==========");
  14.             Console.WriteLine("1- Obtener todos los ids de cuenta e introducirlos en custom_player_alma_template");
  15.             Console.WriteLine("2- Crear nueva tabla con todo los niveles sumados y solo por id de cuenta custom_player_alma_template_merge");
  16.  
  17.             int l_Option = Convert.ToInt32(Console.ReadLine());
  18.  
  19.             switch(l_Option)
  20.             {
  21.                 case 1:
  22.                     SetAccountIds();
  23.                     break;
  24.  
  25.                 case 2:
  26.                     MergeLevels();
  27.                     break;
  28.             }
  29.             Console.ReadKey();
  30.         }
  31.  
  32.         static void SetAccountIds()
  33.         {
  34.             MySqlDataReader l_DataReaderAlma;
  35.             MySqlDataReader l_DataReaderAccounts;
  36.  
  37.             DBConnect l_DbCharacters = new DBConnect("127.0.0.1", "personajes", "root", "88REALre");
  38.  
  39.             DBConnect l_DbAccounts = new DBConnect("127.0.0.1", "personajes", "root", "88REALre");
  40.  
  41.             l_DbCharacters.ExecuteQuery("DROP TABLE IF EXISTS custom_player_alma_template_merge");
  42.             l_DbCharacters.ExecuteQuery("CREATE TABLE `custom_player_alma_template_merge` (`id` int(11) NOT NULL AUTO_INCREMENT,`accountId` int(255) NOT NULL, `almaLevel` int(2) NOT NULL, PRIMARY KEY(`id`)) ENGINE = InnoDB AUTO_INCREMENT = 133 DEFAULT CHARSET = latin1");
  43.  
  44.             l_DataReaderAlma = l_DbCharacters.SelectTabla("SELECT * FROM custom_player_alma_template");
  45.  
  46.             List<string> l_Fields = new List<string>();
  47.             List<string> l_Values = new List<string>();
  48.  
  49.             l_Fields.Add("accountId");
  50.             l_Fields.Add("almaLevel");
  51.  
  52.             if (l_DataReaderAlma.HasRows)
  53.             {
  54.                 while(l_DataReaderAlma.Read())
  55.                 {
  56.                     Int64 l_CharacterId = Convert.ToInt64(l_DataReaderAlma["playerGuid"]);
  57.                     Int64 l_Level = Convert.ToInt64(l_DataReaderAlma["almaLevel"]);
  58.  
  59.                     l_DataReaderAccounts = l_DbAccounts.SelectTabla("SELECT account FROM characters WHERE guid='" + l_CharacterId + "'");
  60.                
  61.                     l_Values.Clear();
  62.  
  63.                     if (l_DataReaderAccounts.HasRows)
  64.                     {
  65.                         l_DataReaderAccounts.Read();
  66.                         Int64 l_Account = Convert.ToInt64(l_DataReaderAccounts["account"]);
  67.  
  68.                         l_Values.Add(l_Account.ToString());
  69.  
  70.                         l_Values.Add(l_Level.ToString()); ;
  71.  
  72.                         l_DataReaderAccounts.Close();
  73.                         l_DbAccounts.Insert("custom_player_alma_template_merge", l_Fields, l_Values);
  74.                     }
  75.                     else
  76.                     {
  77.                         l_DataReaderAccounts.Close();
  78.                     }
  79.                 }
  80.             }
  81.         }
  82.  
  83.         static void MergeLevels()
  84.         {
  85.             MySqlDataReader l_DataReaderAlmaLevel;
  86.             MySqlDataReader l_DataLevelMerge;
  87.  
  88.             DBConnect l_DbCharacters = new DBConnect("127.0.0.1", "personajes", "root", "88REALre");
  89.  
  90.             l_DataReaderAlmaLevel = l_DbCharacters.SelectTabla("SELECT * FROM custom_player_alma_template_merge");
  91.  
  92.             List<Int64> l_AccountsIds = new List<Int64>();
  93.  
  94.             if (l_DataReaderAlmaLevel.HasRows)
  95.             {
  96.                 while (l_DataReaderAlmaLevel.Read())
  97.                 {
  98.                     l_AccountsIds.Add(Convert.ToInt64(l_DataReaderAlmaLevel["accountId"]));
  99.                 }
  100.             }
  101.  
  102.             l_DataReaderAlmaLevel.Close();
  103.             IEnumerable<Int64> l_AccountsIdsDistinct = l_AccountsIds.Distinct();
  104.  
  105.             Int64 l_Level = 0;
  106.  
  107.             foreach (int account in l_AccountsIdsDistinct)
  108.             {
  109.                 l_DataLevelMerge = l_DbCharacters.SelectTabla("SELECT * FROM custom_player_alma_template_merge where accountid='" + account + "'");
  110.  
  111.                 l_Level = 0;
  112.  
  113.                 if (l_DataLevelMerge.HasRows)
  114.                 {                
  115.                     while (l_DataLevelMerge.Read())
  116.                     {
  117.                         l_Level += Convert.ToInt64(l_DataLevelMerge["almaLevel"]);
  118.                     }
  119.                 }
  120.  
  121.                 l_DataLevelMerge.Close();
  122.  
  123.                 if (l_Level > 50)
  124.                 {
  125.                     l_Level = 50;
  126.  
  127.                     List<string> l_Fields2 = new List<string>();
  128.                     List<string> l_Values2 = new List<string>();
  129.  
  130.                     l_Fields2.Add("accountId");
  131.                     l_Values2.Add(account.ToString());
  132.                     l_DbCharacters.Insert("custom_alma_mas", l_Fields2, l_Values2);
  133.                 }
  134.  
  135.                 List<string> l_Fields = new List<string>();
  136.                 List<string> l_Values = new List<string>();
  137.  
  138.                 l_Fields.Add("accountId");
  139.                 l_Fields.Add("almaLevel");
  140.  
  141.                 l_Values.Add(account.ToString());
  142.                 l_Values.Add(l_Level.ToString());
  143.                 l_DbCharacters.ExecuteQuery("DELETE FROM custom_player_alma_template_merge WHERE accountid='" + account + "'");
  144.  
  145.                 l_DbCharacters.Insert("custom_player_alma_template_merge", l_Fields, l_Values);  
  146.             }
  147.         }
  148.     }
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement