Advertisement
Guest User

Untitled

a guest
Jun 19th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. #include <set>
  2. #include <iostream>
  3. #include <mysql/mysql.h>
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6.  
  7. MYSQL *dbConnect(MYSQL *pMysql, char* dbName, char* dbUser, char* dbPass)
  8. {
  9. //std::cout << "U: " << dbUser << "P: " << dbPass << "W: " << dbName << std::endl;
  10. return mysql_real_connect(pMysql, "localhost", dbUser, dbPass, dbName, 0, NULL, 0);
  11. }
  12.  
  13. void Query(MYSQL *pMysql, const char * format,...)
  14. {
  15.  
  16. }
  17.  
  18. int main(int argc, char* argv[])
  19. {
  20. if(argc < 4)
  21. return 0;
  22.  
  23. char *dbUser = argv[1];
  24. char *dbPass = argv[2];
  25. char *dbWorld = argv[3];
  26. char *dbChar = argv[4];
  27.  
  28. std::set<int> instanceset;
  29.  
  30. //std::cout << "U: " << dbUser << "P: " << dbPass << "W: " << dbWorld << "C: " << dbChar << std::endl;
  31.  
  32. MYSQL *pWorld = mysql_init(NULL);
  33. MYSQL *pCharacters = mysql_init(NULL);
  34. if(!pWorld || !pCharacters)
  35. {
  36. std::cout << "MySQL: init failed." << std::endl;
  37. return 1;
  38. }
  39.  
  40. pWorld = dbConnect(pWorld, dbWorld, dbUser, dbPass);
  41. pCharacters = dbConnect(pCharacters, dbChar, dbUser, dbPass);
  42. if(pWorld && pCharacters)
  43. {
  44. std::cout << "MySQL: connection to databases success." << std::endl;
  45. MYSQL_RES *cRes;
  46. MYSQL_ROW cRow;
  47.  
  48. mysql_query(pCharacters, "SELECT id FROM instance");
  49. cRes = mysql_use_result(pCharacters);
  50. while (cRow = mysql_fetch_row(cRes))
  51. instanceset.insert(atol(cRow[0]));
  52.  
  53. mysql_free_result(cRes);
  54. cRes = NULL;
  55.  
  56. char query[160];
  57. int j =1;
  58. for (std::set< int >::iterator i = instanceset.begin(); i != instanceset.end(); ++i, ++j)
  59. {
  60. if (*i != j)
  61. {
  62. // remap instance id
  63. sprintf(query, "UPDATE creature_respawn SET instance ='%u' WHERE instance = '%u'", j, *i);
  64. mysql_query(pWorld, query);
  65. sprintf(query, "UPDATE gameobject_respawn SET instance = '%u' WHERE instance = '%u'", j, *i);
  66. mysql_query(pWorld, query);
  67. sprintf(query, "UPDATE corpse SET instance = '%u' WHERE instance = '%u'", j, *i);
  68. mysql_query(pCharacters, query);
  69. sprintf(query, "UPDATE character_instance SET instance = '%u' WHERE instance = '%u'", j, *i);
  70. mysql_query(pCharacters, query);
  71. sprintf(query, "UPDATE instance SET id = '%u' WHERE id = '%u'", j, *i);
  72. mysql_query(pCharacters, query);
  73. sprintf(query, "UPDATE group_instance SET instance = '%u' WHERE instance = '%u'", j, *i);
  74. mysql_query(pCharacters, query);
  75. sprintf(query, "UPDATE group_saved_loot SET instanceId = '%u' WHERE instanceId = '%u'", j, *i);
  76. mysql_query(pCharacters, query);
  77. sprintf(query, "UPDATE characters SET instance_id = '%u' WHERE instance_id = '%u'", j, *i);
  78. mysql_query(pCharacters, query);
  79. }
  80. }
  81. }
  82. else
  83. {
  84. std::cout << "MySQL: connection failed." << std::endl;
  85. return 1;
  86. }
  87.  
  88. mysql_close(pWorld);
  89. mysql_close(pCharacters);
  90. return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement