database_installer.bat 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. @echo off
  2. REM ##############################################
  3. REM ## Interactive script setup - (by TanelTM) ##
  4. REM ##############################################
  5. REM Default values:
  6. set mysqlBinPath=C:\Program Files\MySQL\MySQL Server 4.1\bin
  7. REM LOGINSERVER
  8. set lsuser=root
  9. set lspass=
  10. set lsdb=l2jdb
  11. set lshost=localhost
  12. REM GAMESERVER
  13. set gsuser=root
  14. set gspass=
  15. set gsdb=l2jdb
  16. set gshost=localhost
  17. set workdir="%cd%"
  18. :loadVars
  19. if not exist vars.txt goto createVars
  20. ren vars.txt *.bat
  21. call vars.bat
  22. ren vars.bat *.txt
  23. cls
  24. goto start
  25. :createVars
  26. echo This is the first time you run database_installer so we need to set it up...
  27. echo.
  28. echo Your mysqlBinPath is? (default: C:\Program Files\MySQL\MySQL Server 4.1\bin)
  29. set /P mysqlBinPath=": "
  30. echo.
  31. echo LoginServer settings
  32. echo --------------------
  33. set /P lsuser="User (default is 'root'): "
  34. set /P lspass="Pass (will be shown and saved as clear text): "
  35. set /P lsdb="Database (default is 'l2jdb'): "
  36. set /P lshost="Host (default is 'localhost'): "
  37. echo.
  38. echo GameServer settings
  39. echo -------------------
  40. set /P gsuser="User (default is 'root'): "
  41. set /P gspass="Pass (will be shown and saved as clear text): "
  42. set /P gsdb="Database (default is 'l2jdb'): "
  43. set /P gshost="Host (default is 'localhost'): "
  44. echo.
  45. echo @set mysqlPath="%mysqlBinPath%\mysql"> vars.txt
  46. echo @set mysqlBinPath="%mysqlBinPath%">> vars.txt
  47. echo @set mysqldumpPath="%mysqlBinPath%\mysqldump">> vars.txt
  48. echo @set lsuser=%lsuser%>> vars.txt
  49. echo @set lspass=%lspass%>> vars.txt
  50. echo @set lsdb=%lsdb%>> vars.txt
  51. echo @set lshost=%lshost%>> vars.txt
  52. echo @set gsuser=%gsuser%>> vars.txt
  53. echo @set gspass=%gspass%>> vars.txt
  54. echo @set gsdb=%gsdb%>> vars.txt
  55. echo @set gshost=%gshost%>> vars.txt
  56. echo.
  57. echo Setup complete, press any key to continue...
  58. pause> nul
  59. goto loadVars
  60. :start
  61. REM ############################################
  62. echo.
  63. echo Making a backup of the original loginserver database.
  64. %mysqldumpPath% --add-drop-table -h %lshost% -u %lsuser% --password=%lspass% %lsdb% > loginserver_backup.sql
  65. echo.
  66. echo WARNING: A full install (f) will destroy data in your `accounts` and `gameserver` tables.
  67. echo Choose upgrade (u) if you already have an `accounts` table but no `gameserver`
  68. echo table (ie. your server is a pre LS/GS split version.)
  69. echo Choose skip (s) to skip loginserver DB installation and go to gameserver DB
  70. echo installation/upgrade.
  71. :asklogin
  72. set loginprompt=x
  73. set /p loginprompt=LOGINSERVER DB install type: (f) full or (u) upgrade or {s} skip or (q) quit?
  74. if /i %loginprompt%==f goto logininstall
  75. if /i %loginprompt%==u goto loginupgrade
  76. if /i %loginprompt%==s goto gsbackup
  77. if /i %loginprompt%==q goto end
  78. goto asklogin
  79. :logininstall
  80. echo Deleting loginserver tables for new content.
  81. %mysqlPath% -h %lshost% -u %lsuser% --password=%lspass% -D %lsdb% < login_install.sql
  82. :loginupgrade
  83. echo Installling new loginserver content.
  84. %mysqlPath% -h %lshost% -u %lsuser% --password=%lspass% -D %lsdb% < ../sql/accounts.sql
  85. %mysqlPath% -h %lshost% -u %lsuser% --password=%lspass% -D %lsdb% < ../sql/gameservers.sql
  86. :gsbackup
  87. echo.
  88. echo Making a backup of the original gameserver database.
  89. %mysqldumpPath% --add-drop-table -h %gshost% -u %gsuser% --password=%gspass% %gsdb% > gameserver_backup.sql
  90. echo.
  91. echo.
  92. echo WARNING: A full install (f) will destroy all existing character data.
  93. :asktype
  94. set installtype=x
  95. set /p installtype=GAMESERVER DB install type: (f) full install or (u) upgrade or (s) skip or (q) quit?
  96. if /i %installtype%==f goto fullinstall
  97. if /i %installtype%==u goto upgradeinstall
  98. if /i %installtype%==s goto experimental
  99. if /i %installtype%==q goto end
  100. goto asktype
  101. :fullinstall
  102. echo Deleting all gameserver tables for new content.
  103. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < full_install.sql
  104. :upgradeinstall
  105. echo Installling new gameserver content.
  106. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/account_data.sql
  107. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/armor.sql
  108. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/auction.sql
  109. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/auction_bid.sql
  110. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/auction_watch.sql
  111. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/auto_chat.sql
  112. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/auto_chat_text.sql
  113. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/boxaccess.sql
  114. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/boxes.sql
  115. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/castle.sql
  116. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/castle_door.sql
  117. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/castle_doorupgrade.sql
  118. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/castle_siege_guards.sql
  119. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/char_templates.sql
  120. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_friends.sql
  121. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_hennas.sql
  122. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_macroses.sql
  123. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_quests.sql
  124. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_recipebook.sql
  125. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_shortcuts.sql
  126. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_skills.sql
  127. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_skills_save.sql
  128. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_subclasses.sql
  129. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/characters.sql
  130. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/clan_data.sql
  131. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/clan_wars.sql
  132. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/clanhall.sql
  133. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/class_list.sql
  134. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/droplist.sql
  135. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/etcitem.sql
  136. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/fish.sql
  137. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/fishing_skill_trees.sql
  138. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/fishreward.sql
  139. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/forums.sql
  140. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/games.sql
  141. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/global_tasks.sql
  142. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/helper_buff_list.sql
  143. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/henna.sql
  144. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/henna_trees.sql
  145. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/heroes.sql
  146. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/items.sql
  147. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/locations.sql
  148. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/lvlupgain.sql
  149. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/mapregion.sql
  150. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/merchant_areas_list.sql
  151. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/merchant_buylists.sql
  152. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/merchant_lease.sql
  153. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/merchant_shopids.sql
  154. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/merchants.sql
  155. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/minions.sql
  156. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/npc.sql
  157. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/pets.sql
  158. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/pets_stats.sql
  159. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/posts.sql
  160. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/npcskills.sql
  161. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/olympiad_nobles.sql
  162. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/raidboss_spawnlist.sql
  163. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/random_spawn.sql
  164. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/random_spawn_loc.sql
  165. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/seven_signs.sql
  166. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/seven_signs_festival.sql
  167. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/seven_signs_status.sql
  168. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/siege_clans.sql
  169. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/skill_learn.sql
  170. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/skill_spellbooks.sql
  171. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/skill_trees.sql
  172. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/spawnlist.sql
  173. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/teleport.sql
  174. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/topic.sql
  175. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/weapon.sql
  176. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/zone.sql
  177. :experimental
  178. echo.
  179. echo.
  180. echo WARNING: Alternative NPC table is as experimental as standard one for the moment. By comparing the two you can help us to find better values for this table.
  181. :askexp
  182. set expprompt=x
  183. set /p expprompt=Install experimental gameserver DB tables: (y) yes or (n) no or (q) quit?
  184. if /i %expprompt%==y goto expinstall
  185. if /i %expprompt%==n goto end
  186. if /i %expprompt%==q goto end
  187. goto end
  188. :expinstall
  189. echo Making a backup of the default gameserver tables.
  190. %mysqldumpPath% --add-drop-table -h %gshost% -u %gsuser% --password=%gspass% %gsdb% > experimental_backup.sql
  191. echo Installing new content.
  192. %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/experimental/npc.sql
  193. REM %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/experimental/npcskills.sql
  194. REM %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/experimental/spawnlist-experimental.sql
  195. :end
  196. echo.
  197. echo Script complete.
  198. pause