Advertisement
Guest User

Untitled

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