Chronicle 4 branch.

This commit is contained in:
MobiusDev
2017-07-19 21:24:06 +00:00
parent 9a69bec286
commit 3a0bf3539a
13496 changed files with 641683 additions and 0 deletions

View File

@@ -0,0 +1,748 @@
@echo off
REM ##############################################
REM ## L2JDP Database Installer - (by DrLecter) ##
REM ##############################################
REM ## Interactive script setup - (by TanelTM) ##
REM ##############################################
REM Copyright (C) 2007 L2J DataPack
REM This program is free software; you can redistribute it and/or modify
REM it under the terms of the GNU General Public License as published by
REM the Free Software Foundation; either version 2 of the License, or (at
REM your option) any later version.
REM
REM This program is distributed in the hope that it will be useful, but
REM WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
REM or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
REM for more details.
REM
REM You should have received a copy of the GNU General Public License along
REM with this program; if not, write to the Free Software Foundation, Inc.,
REM 675 Mass Ave, Cambridge, MA 02139, USA. Or contact the Official L2J
REM DataPack Project at http://www.l2jdp.com, http://forum.l2jdp.com or
REM #l2j-datapack @ irc://irc.freenode.net
set config_file=vars.txt
set config_version=0
set full=0
set stage=0
set logging=0
set upgrade_mode=0
set backup=.
set logdir=.
set safe_mode=1
set cmode=c
set fresh_setup=0
:loadconfig
title L2JMobius DP installer - Reading configuration from file...
cls
if not exist %config_file% goto configure
ren %config_file% vars.bat
call vars.bat
ren vars.bat %config_file%
call :colors 17
if /i %config_version% == 1 goto ls_section
set upgrade_mode=2
echo It seems to be the first time you run this version of
echo database_installer but I found a settings file already.
echo I'll hopefully ask this questions just once.
echo.
echo Configuration upgrade options:
echo.
echo (1) Import and continue: I'll read your old settings and
echo continue execution, but since no new settings will be
echo saved, you'll see this menu again next time.
echo.
echo (2) Import and configure: This tool has some new options
echo available, you choose the values that fit your needs
echo using former settings as a base.
echo.
echo (3) Ignose stored settings: I'll let you configure me
echo with a fresh set of default values as a base.
echo.
echo (4) View saved settings: See the contents of the config
echo file.
echo.
echo (5) Quit: Did you come here by mistake?
echo.
set /P upgrade_mode="Type a number, press Enter (default is '%upgrade_mode%'): "
if %upgrade_mode%==1 goto ls_section
if %upgrade_mode%==2 goto configure
if %upgrade_mode%==3 goto configure
if %upgrade_mode%==4 (cls&type %config_file%&pause&goto loadconfig)
if %upgrade_mode%==5 goto :eof
goto loadconfig
:colors
if /i "%cmode%"=="n" (
if not "%1"=="17" ( color F ) else ( color )
) else ( color %1 )
goto :eof
:configure
call :colors 17
title L2JMobius DP installer - Setup
cls
set config_version=1
if NOT %upgrade_mode% == 2 (
set fresh_setup=1
set mysqlBinPath=%ProgramFiles%\MySQL\MySQL Server 5.5\bin
set lsuser=root
set lspass=
set lsdb=l2jmc4
set lshost=localhost
set gsuser=root
set gspass=
set gsdb=l2jmc4
set gshost=localhost
set cmode=c
set backup=.
set logdir=.
)
set mysqlPath=%mysqlBinPath%\mysql.exe
echo New settings will be created for this tool to run in
echo your computer, so I need to ask you few questions.
echo.
echo 1-MySql Binaries
echo --------------------
echo In order to perform my tasks, I need the path for commands
echo such as 'mysql' and 'mysqldump'. Both executables are
echo usually stored in the same place.
echo.
if "%mysqlBinPath%" == "" (
set mysqlBinPath=use path
echo I can't determine if the binaries are available with your
echo default settings.
) else (
echo I can try to find out if the current setting actually works...
echo.
echo %mysqlPath%
)
if not "%mysqlBinPath%" == "use path" call :binaryfind
echo.
path|find "MySQL">NUL
if %errorlevel% == 0 (
echo I found MySQL is in your PATH, this will be used by default.
echo If you want to use something different, change 'use path' for
echo something else.
set mysqlBinPath=use path
) else (
echo Look, I can't find "MYSQL" in your PATH environment variable.
echo It would be good if you go and find out where "mysql.exe" and
echo "mysqldump.exe" are.
echo.
echo If you have no idea about the meaning of words such as MYSQL
echo or PATH, you'd better close this window, and consider googling
echo and reading about it. Setup and host an L2J server requires a
echo minimum of technical skills.
)
echo.
echo Write the path to your MySQL binaries (no trailing slash needed):
set /P mysqlBinPath="(default %mysqlBinPath%): "
cls
echo.
echo 2-LoginServer settings
echo --------------------
echo I will connect to the MySQL server you specify, and setup a
echo Loginserver database there, most people use a single MySQL
echo server and database for both Login and Gameserver tables.
echo.
set /P lsuser="MySQL Username (default is '%lsuser%'): "
set /P lspass="Password (will be shown as you type, default '%lspass%'): "
set /P lsdb="Database (default is '%lsdb%'): "
set /P lshost="Host (default is '%lshost%'): "
echo.
echo 3-GameServer settings
echo --------------------
set /P gsuser="User (default is '%gsuser%'): "
set /P gspass="Pass (default is '%gspass%'): "
set /P gsdb="Database (default is '%gsdb%'): "
set /P gshost="Host (default is '%gshost%'): "
echo.
echo 4-Misc. settings
echo --------------------
set /P cmode="Color mode (c)olor or (n)on-color, default %cmode% : "
set /P backup="Path for your backups (default '%backup%'): "
set /P logdir="Path for your logs (default '%logdir%'): "
:safe1
set safemode=y
set /P safemode="Debugging messages and increase verbosity a lil bit (y/n, default '%safemode%'): "
if /i %safemode%==y (set safe_mode=1&goto safe2)
if /i %safemode%==n (set safe_mode=0&goto safe2)
goto safe1
:safe2
echo.
if "%mysqlBinPath%" == "use path" (
set mysqlBinPath=
set mysqldumpPath=mysqldump
set mysqlPath=mysql
) else (
set mysqldumpPath=%mysqlBinPath%\mysqldump.exe
set mysqlPath=%mysqlBinPath%\mysql.exe
)
echo @echo off > %config_file%
echo set config_version=%config_version% >> %config_file%
echo set cmode=%cmode%>> %config_file%
echo set safe_mode=%safe_mode% >> %config_file%
echo set mysqlPath=%mysqlPath%>> %config_file%
echo set mysqlBinPath=%mysqlBinPath%>> %config_file%
echo set mysqldumpPath=%mysqldumpPath%>> %config_file%
echo set lsuser=%lsuser%>> %config_file%
echo set lspass=%lspass%>> %config_file%
echo set lsdb=%lsdb%>> %config_file%
echo set lshost=%lshost% >> %config_file%
echo set gsuser=%gsuser%>> %config_file%
echo set gspass=%gspass%>> %config_file%
echo set gsdb=%gsdb%>> %config_file%
echo set gshost=%gshost%>> %config_file%
echo set logdir=%logdir%>> %config_file%
echo set backup=%backup%>> %config_file%
echo.
echo Script setup complete, your settings were saved in the
echo '%config_file%' file. Remember: your passwords are stored
echo as clear text.
echo.
echo press any key to continue...
pause> nul
goto loadconfig
:ls_section
cls
call :colors 17
set cmdline=
set stage=1
title L2JMobius DP installer - Login Server database setup
echo.
echo Trying to make a backup of your loginserver database.
set cmdline="%mysqldumpPath%" --add-drop-table -h %lshost% -u %lsuser% --password=%lspass% %lsdb% ^> "%backup%\loginserver_backup.sql" 2^> NUL
%cmdline%
if %ERRORLEVEL% == 0 goto lsdbok
REM if %safe_mode% == 1 goto omfg
:ls_err1
call :colors 47
title L2JMobius DP installer - Login Server database setup ERROR!!!
cls
echo.
echo Backup attempt failed! A possible reason for this to
echo happen, is that your DB doesn't exist yet. I could
echo try to create %lsdb% for you, or maybe you prefer to
echo proceed with the GameServer part of this tool.
echo.
:ls_ask1
set lsdbprompt=y
echo ATTEMPT TO CREATE LOGINSERVER DATABASE:
echo.
echo (y)es
echo.
echo (n)o
echo.
echo (r)econfigure
echo.
echo (q)uit
echo.
set /p lsdbprompt= Choose (default yes):
if /i %lsdbprompt%==y goto lsdbcreate
if /i %lsdbprompt%==n goto gs_backup
if /i %lsdbprompt%==r goto configure
if /i %lsdbprompt%==q goto end
goto ls_ask1
:omfg
cls
call :colors 57
title L2JMobius DP installer - potential PICNIC detected at stage %stage%
echo.
echo There was some problem while executing:
echo.
echo "%cmdline%"
echo.
echo I'd suggest you to look for correct values and try this
echo script again later. But maybe you'd prefer to go on now.
echo.
if %stage% == 1 set label=ls_err1
if %stage% == 2 set label=ls_err2
if %stage% == 3 set label=gs_backup
if %stage% == 4 set label=gs_err1
if %stage% == 5 set label=gs_err2
if %stage% == 6 set label=horrible_end
if %stage% == 7 set label=horrible_end
:omfgask1
set omfgprompt=q
echo (c)ontinue running the script
echo.
echo (r)econfigure
echo.
echo (q)uit now
echo.
set /p omfgprompt= Choose (default quit):
if /i %omfgprompt%==c goto %label%
if /i %omfgprompt%==r goto configure
if /i %omfgprompt%==q goto horrible_end
goto omfgask1
:lsdbcreate
call :colors 17
set cmdline=
set stage=2
title L2JMobius DP installer - Login Server database setup - DB Creation
echo.
echo Trying to create a Login Server database...
set cmdline="%mysqlPath%" -h %lshost% -u %lsuser% --password=%lspass% -e "CREATE DATABASE %lsdb%" 2^> NUL
%cmdline%
if %ERRORLEVEL% == 0 goto logininstall
if %safe_mode% == 1 goto omfg
:ls_err2
call :colors 47
title L2JMobius DP installer - Login Server database setup - DB Creation error
cls
echo An error occured while trying to create a database for
echo your login server.
echo.
echo Possible reasons:
echo 1-You provided innacurate info , check user, password, etc.
echo 2-User %lsuser% don't have enough privileges for
echo database creation. Check your MySQL privileges.
echo 3-Database exists already...?
echo.
echo Unless you're sure that the pending actions of this tool
echo could work, i'd suggest you to look for correct values
echo and try this script again later.
echo.
:ls_ask2
set omfgprompt=q
echo (c)ontinue running
echo.
echo (r)econfigure
echo.
echo (q)uit now
echo.
set /p omfgprompt= Choose (default quit):
if /i %omfgprompt%==c goto gs_backup
if /i %omfgprompt%==q goto horrible_end
if /i %omfgprompt%==r goto configure
goto ls_ask2
:lsdbok
call :colors 17
title L2JMobius DP installer - Login Server database setup - WARNING!!!
echo.
:asklogin
if %fresh_setup%==0 (
set loginprompt=s
set msg=default skip
) else (
set loginprompt=x
set msg=no default for fresh install
)
echo LOGINSERVER DATABASE install type:
echo.
echo (f)ull: I will destroy data in your `accounts` and
echo and `gameserver` tables.
echo.
echo (s)kip: I'll take you to the gameserver database
echo installation and upgrade options.
echo.
echo (r)econfigure: You'll be able to redefine MySQL path,
echo user and database information and start over with
echo those fresh values.
echo.
echo (q)uit
echo.
set /p loginprompt= Choose (%msg%) :
if /i %loginprompt%==f goto logininstall
if /i %loginprompt%==s goto gs_backup
if /i %loginprompt%==r goto configure
if /i %loginprompt%==q goto end
goto asklogin
:logininstall
set stage=3
call :colors 17
set cmdline=
title L2JMobius DP installer - Login Server database setup - Full install
echo Deleting loginserver tables for new content.
set cmdline="%mysqlPath%" -h %lshost% -u %lsuser% --password=%lspass% -D %lsdb% ^< login_install.sql 2^> NUL
%cmdline%
if not %ERRORLEVEL% == 0 goto omfg
set full=1
goto gs_backup
:gs_backup
call :colors 17
set cmdline=
if %full% == 1 goto fullinstall
set stage=4
title L2JMobius DP installer - Game server database setup
cls
echo.
echo Making a backup of the original gameserver database.
set cmdline="%mysqldumpPath%" --add-drop-table -h %gshost% -u %gsuser% --password=%gspass% %gsdb% ^> "%backup%\gameserver_backup.sql" 2^> NUL
%cmdline%
if %ERRORLEVEL% == 0 goto gsdbok
if %safe_mode% == 1 goto omfg
:gs_err1
call :colors 47
title L2JMobius DP installer - Game Server database setup - Backup failed!
cls
echo.
echo Backup attempt failed! A possible reason for this to happen,
echo is that your DB doesn't exist yet. I could try to create
echo %gsdb% for you, but maybe you prefer me to continue with
echo last part of the script.
echo.
:askgsdb
set gsdbprompt=y
echo ATTEMPT TO CREATE GAMESERVER DATABASE?
echo.
echo (y)es
echo.
echo (n)o
echo.
echo (r)econfigure
echo.
echo (q)uit
echo.
set /p gsdbprompt= Choose (default yes):
if /i %gsdbprompt%==y goto gsdbcreate
if /i %gsdbprompt%==n goto horrible_end
if /i %gsdbprompt%==r goto configure
if /i %gsdbprompt%==q goto end
goto askgsdb
:gsdbcreate
call :colors 17
set stage=5
set cmdline=
title L2JMobius DP installer - Game Server database setup - DB Creation
cls
echo Trying to create Game Server database...
set cmdline="%mysqlPath%" -h %gshost% -u %gsuser% --password=%gspass% -e "CREATE DATABASE %gsdb%" 2^> NUL
%cmdline%
if %ERRORLEVEL% == 0 goto fullinstall
if %safe_mode% == 1 goto omfg
:gs_err2
call :colors 47
title L2JMobius DP installer - Game Server database setup - DB Creation failed!
cls
echo.
echo An error occured while trying to create a database for
echo your game server.
echo.
echo Possible reasons:
echo 1-You provided innacurate info, check username, pass, etc.
echo 2-User %gsuser% don't have enough privileges for
echo database creation.
echo 3-Database exists already...?
echo.
echo I'd suggest you to look for correct values and try this
echo script again later. But you can try to reconfigure it now.
echo.
:askgsdbcreate
set omfgprompt=q
echo (r)estart script with fresh configuration values
echo.
echo (q)uit now
echo.
set /p omfgprompt= Choose (default quit):
if /i %omfgprompt%==r goto configure
if /i %omfgprompt%==q goto horrible_end
goto askgsdbcreate
:gsdbok
call :colors 17
title L2JMobius DP installer - Game Server database setup - WARNING!!!
cls
echo.
:asktype
set installtype=u
echo GAMESERVER DATABASE install:
echo.
echo (f)ull: WARNING! I'll destroy ALL of your existing character
echo data (i really mean it: items, pets.. ALL)
echo.
echo (u)pgrade: I'll do my best to preserve all of your character
echo data.
echo.
echo (s)kip: We'll get into the last set of questions (cummulative
echo updates, custom stuff...)
echo.
echo (q)uit
echo.
set /p installtype= Choose (default upgrade):
if /i %installtype%==f goto fullinstall
if /i %installtype%==u goto upgradeinstall
if /i %installtype%==s goto custom
if /i %installtype%==q goto end
goto asktype
:fullinstall
call :colors 17
set stage=6
set cmdline=
title L2JMobius DP installer - Game Server database setup - Full install
echo Deleting all gameserver tables for new content...
set cmdline="%mysqlPath%" -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% ^< full_install.sql 2^> NUL
%cmdline%
if not %ERRORLEVEL% == 0 goto omfg
set full=1
echo.
echo Game Server tables were deleted.
goto upgradeinstall
:upgradeinstall
set stage=6
set cmdline=
if %full% == 1 (
title L2JMobius DP installer - Game Server database setup - Installing...
echo Installing new gameserver content.
) else (
title L2JMobius DP installer - Game Server database setup - Upgrading...
echo Upgrading gameserver content.
)
if %logging% == 0 set output=NUL
set dest=ls
for %%i in (
accounts.sql
gameservers.sql
) do call :dump %%i
set dest=gs
for %%i in (
account_data.sql
armor.sql
armorsets.sql
auction.sql
auction_bid.sql
auction_watch.sql
auto_announcements.sql
auto_chat.sql
auto_chat_text.sql
castle.sql
castle_door.sql
castle_doorupgrade.sql
castle_functions.sql
castle_manor_procure.sql
castle_manor_production.sql
castle_siege_guards.sql
char_templates.sql
character_friends.sql
character_hennas.sql
character_macroses.sql
character_offline_trade.sql
character_offline_trade_items.sql
character_quests.sql
character_recipebook.sql
character_recommends.sql
character_shortcuts.sql
character_skills.sql
character_skills_save.sql
character_subclasses.sql
characters.sql
clan_data.sql
clan_wars.sql
clanhall.sql
clanhall_functions.sql
class_list.sql
dimensional_rift.sql
droplist.sql
enchant_skill_trees.sql
etcitem.sql
fish.sql
fishing_skill_trees.sql
forums.sql
four_sepulchers_spawnlist.sql
games.sql
global_tasks.sql
grandboss_data.sql
grandboss_list.sql
helper_buff_list.sql
henna.sql
henna_trees.sql
heroes.sql
items.sql
itemsonground.sql
locations.sql
lvlupgain.sql
mapregion.sql
merchant_areas_list.sql
merchant_buylists.sql
merchant_lease.sql
merchant_shopids.sql
merchants.sql
minions.sql
npc.sql
npc_buffer.sql
pets.sql
pets_stats.sql
posts.sql
npcskills.sql
olympiad_nobles.sql
quest_global_data.sql
raidboss_spawnlist.sql
random_spawn.sql
random_spawn_loc.sql
seven_signs.sql
seven_signs_festival.sql
seven_signs_status.sql
siege_clans.sql
skill_learn.sql
skill_spellbooks.sql
skill_trees.sql
spawnlist.sql
teleport.sql
topic.sql
walker_routes.sql
weapon.sql
zone_vertices.sql
) do call :dump %%i
echo done...
echo.
goto custom
:dump
set cmdline=
if /i %full% == 1 (set action=Installing) else (set action=Upgrading)
echo %action% %1>>"%output%"
echo %action% %~nx1
if "%dest%"=="ls" set cmdline="%mysqlPath%" -h %lshost% -u %lsuser% --password=%lspass% -D %lsdb% ^< ..\sql\%1 2^>^>"%output%"
if "%dest%"=="gs" set cmdline="%mysqlPath%" -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% ^< ..\sql\%1 2^>^>"%output%"
%cmdline%
if %logging%==0 if NOT %ERRORLEVEL%==0 call :omfg2 %1
goto :eof
:custom
echo.
set cstprompt=n
set /p cstprompt=Install custom gameserver DB tables: (Y) yes or (N) no?
if /i %cstprompt%==y goto cstinstall
if /i %cstprompt%==n goto end
:cstinstall
echo Installing custom content.
cd ..\sql\custom\
echo @echo off> temp.bat
if exist errors.txt del errors.txt
for %%i in (*.sql) do echo "%mysqlPath%" -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% ^< %%i 2^>^> custom_errors.txt >> temp.bat
call temp.bat> nul
del temp.bat
move custom_errors.txt %workdir%
goto end
:omfg2
cls
call :colors 47
title L2JMobius DP installer - potential database issue at stage %stage%
echo.
echo Something caused an error while executing instruction :
echo %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb%
echo.
echo with file %~nx1
echo.
echo What should we do now?
echo.
:askomfg2
set ntpebcak=c
echo (l)og it: I will create a log for this file, then continue
echo with the rest of the list in non-logging mode.
echo.
echo (c)ontinue: Let's pretend that nothing happened and continue with
echo the rest of the list.
echo.
echo (r)econfigure: Perhaps these errors were caused by a typo.
echo you can restart from scratch and redefine paths, databases
echo and user info again.
echo.
echo (q)uit now
echo.
set /p ntpebcak= Choose (default continue):
if /i %ntpebcak%==c (call :colors 17 & goto :eof)
if /i %ntpebcak%==l (call :logginon %1 & goto :eof)
if /i %ntpebcak%==r (call :configure & exit)
if /i %ntpebcak%==q (call :horrible_end & exit)
goto askomfg2
:logginon
cls
call :colors 17
title L2JMobius DP installer - Game Server database setup - Logging options turned on
set logging=1
if %full% == 1 (
set output=%logdir%\install-%~nx1.log
) else (
set output=%logdir%\upgrade-%~nx1.log
)
echo.
echo Depending on your request, i'll create a log file for your reading pleasure.
echo.
echo I'll call it %output%
echo.
echo If you already have such a file and would like to keep a copy.
echo go now and read it or back it up, because it's not going to be rotated
echo or anything, instead i'll just overwrite it.
echo.
echo When you're done or if you don't mind, press any key to start.
pause>NUL
set cmdline="%mysqlPath%" -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% ^<..\sql\%1 2^>^>"%output%"
date /t >"%output%"
time /t >>"%output%"
%cmdline%
echo Log file created, resuming normal operations...
call :colors 17
set logging=0
set output=NUL
goto :eof
:binaryfind
if EXIST "%mysqlBinPath%" (echo Found) else (echo Not Found)
goto :eof
:horrible_end
call :colors 47
title L2JMobius DP installer - Oops!
cls
echo This wasn't a clean run, but don't worry.
echo You can get help and support at L2JMobius Forum.
echo.
echo I'll try to gather some version-related information that you
echo may find useful when asking for support :
echo.
echo Datapack revision reported by 'SVN version':
svnversion -n 2>NUL
echo.
if %ERRORLEVEL% == 9009 (
echo SVN commandline tools not found!
echo Please download and install a copy from :
echo http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
echo.
)
set dpvf="..\config\l2jdp-version.properties"
echo Datapack revision reported by properties file :
if NOT EXIST %dpvf% (
echo Your %dpvf% file is missing!
echo Use eclipse/ant to build one from your DP SVN copy.
echo With it we'll be able to help you better.
) else (
type %dpvf% | find "version" 2> NUL
if not %ERRORLEVEL% == 0 (
echo An error occured while trying to read
echo your %dpvf% file!
echo Make sure you keep it up to date
echo and in the correct place.
echo %ERRORLEVEL%
))
echo.
rem del %config_file%
pause
goto end
:end
call :colors 17
title L2JMobius DP installer - Script execution finished
cls
echo.
echo Thanks for using L2JMobius, a project based on L2JServer.
echo.
pause
color

View File

@@ -0,0 +1,397 @@
#!/bin/bash
############################################
## WARNING! WARNING! WARNING! WARNING! ##
## ##
## DON'T USE NOTEPAD TO CHANGE THIS FILE ##
## INSTEAD USE SOME DECENT TEXT EDITOR. ##
## NEWLINE CHARACTERS DIFFER BETWEEN DOS/ ##
## WINDOWS AND UNIX. ##
## ##
## USING NOTEPAD TO SAVE THIS FILE WILL ##
## LEAVE IT IN A BROKEN STATE!!! ##
############################################
## Writen by DrLecter ##
## License: GNU GPL ##
## Based on Tiago Tagliaferri's script ##
## E-mail: tiago_tagliaferri@msn.com ##
## From "L2J-DataPack" ##
############################################
trap finish 2
configure() {
echo "#############################################"
echo "# You entered script configuration area #"
echo "# No change will be performed in your DB #"
echo "# I will just ask you some questions about #"
echo "# your hosts and DB. #"
echo "#############################################"
MYSQLDUMPPATH=`which mysqldump 2>/dev/null`
MYSQLPATH=`which mysql 2>/dev/null`
if [ $? -ne 0 ]; then
echo "We were unable to find MySQL binaries on your path"
while :
do
echo -ne "\nPlease enter MySQL binaries directory (no trailing slash): "
read MYSQLBINPATH
if [ -e "$MYSQLBINPATH" ] && [ -d "$MYSQLBINPATH" ] && [ -e "$MYSQLBINPATH/mysqldump" ] && [ -e "$MYSQLBINPATH/mysql" ]; then
MYSQLDUMPPATH="$MYSQLBINPATH/mysqldump"
MYSQLPATH="$MYSQLBINPATH/mysql"
break
else
echo "The data you entered is invalid. Please verify and try again."
exit 1
fi
done
fi
#LS
echo -ne "\nPlease enter MySQL Login Server hostname (default localhost): "
read LSDBHOST
if [ -z "$LSDBHOST" ]; then
LSDBHOST="localhost"
fi
echo -ne "\nPlease enter MySQL Login Server database name (default l2jdb): "
read LSDB
if [ -z "$LSDB" ]; then
LSDB="l2jdb"
fi
echo -ne "\nPlease enter MySQL Login Server user (default root): "
read LSUSER
if [ -z "$LSUSER" ]; then
LSUSER="root"
fi
echo -ne "\nPlease enter MySQL Login Server $LSUSER's password (won't be displayed) :"
stty -echo
read LSPASS
stty echo
echo ""
if [ -z "$LSPASS" ]; then
echo "Hum.. i'll let it be but don't be stupid and avoid empty passwords"
elif [ "$LSUSER" == "$LSPASS" ]; then
echo "You're not too brilliant choosing passwords huh?"
fi
#GS
echo -ne "\nPlease enter MySQL Game Server hostname (default $LSDBHOST): "
read GSDBHOST
if [ -z "$GSDBHOST" ]; then
GSDBHOST="$LSDBHOST"
fi
echo -ne "\nPlease enter MySQL Game Server database name (default $LSDB): "
read GSDB
if [ -z "$GSDB" ]; then
GSDB="$LSDB"
fi
echo -ne "\nPlease enter MySQL Game Server user (default $LSUSER): "
read GSUSER
if [ -z "$GSUSER" ]; then
GSUSER="$LSUSER"
fi
echo -ne "\nPlease enter MySQL Game Server $GSUSER's password (won't be displayed): "
stty -echo
read GSPASS
stty echo
echo ""
if [ -z "$GSPASS" ]; then
echo "Hum.. i'll let it be but don't be stupid and avoid empty passwords"
elif [ "$GSUSER" == "$GSPASS" ]; then
echo "You're not too brilliant choosing passwords huh?"
fi
save_config $1
}
save_config() {
if [ -n "$1" ]; then
CONF="$1"
else
CONF="database_installer.rc"
fi
echo ""
echo "With these data i can generate a configuration file which can be read"
echo "on future updates. WARNING: this file will contain clear text passwords!"
echo -ne "Shall i generate config file $CONF? (Y/n):"
read SAVE
if [ "$SAVE" == "y" -o "$SAVE" == "Y" -o "$SAVE" == "" ];then
cat <<EOF>$CONF
#Configuration settings for L2J-Datapack database installer script
MYSQLDUMPPATH=$MYSQLDUMPPATH
MYSQLPATH=$MYSQLPATH
LSDBHOST=$LSDBHOST
LSDB=$LSDB
LSUSER=$LSUSER
LSPASS=$LSPASS
GSDBHOST=$GSDBHOST
GSDB=$GSDB
GSUSER=$GSUSER
GSPASS=$GSPASS
EOF
chmod 600 $CONF
echo "Configuration saved as $CONF"
echo "Permissions changed to 600 (rw- --- ---)"
elif [ "$SAVE" != "n" -a "$SAVE" != "N" ]; then
save_config
fi
}
load_config() {
if [ -n "$1" ]; then
CONF="$1"
else
CONF="database_installer.rc"
fi
if [ -e "$CONF" ] && [ -f "$CONF" ]; then
. $CONF
else
echo "Settings file not found: $CONF"
echo "You can specify an alternate settings filename:"
echo $0 config_filename
echo ""
echo "If file doesn't exist it can be created"
echo "If nothing is specified script will try to work with ./database_installer.rc"
echo ""
configure $CONF
fi
}
asklogin(){
echo "#############################################"
echo "# WARNING: This section of the script CAN #"
echo "# destroy your characters and accounts #"
echo "# information. Read questions carefully #"
echo "# before you reply. #"
echo "#############################################"
echo ""
echo "Choose upgrade (u) if you already have an 'accounts' table but no"
echo "'gameserver' table (ie. your server is a pre LS/GS split version.)"
echo "Choose skip (s) to skip loginserver DB installation and go to"
echo "gameserver DB installation/upgrade."
echo -ne "LOGINSERVER DB install type: (f) full, (u) upgrade or (s) skip or (q) quit? "
read LOGINPROMPT
case "$LOGINPROMPT" in
"f"|"F") logininstall; loginupgrade; gsbackup; asktype;;
"u"|"U") loginupgrade; gsbackup; asktype;;
"s"|"S") gsbackup; asktype;;
"q"|"Q") finish;;
*) asklogin;;
esac
}
logininstall(){
echo "Deleting loginserver tables for new content."
$MYL < login_install.sql &> /dev/null
}
loginupgrade(){
echo "Installling new loginserver content."
$MYL < ../sql/accounts.sql &> /dev/null
$MYL < ../sql/gameservers.sql &> /dev/null
}
gsbackup(){
while :
do
echo ""
echo -ne "Do you want to make a backup copy of your GSDB? (y/n): "
read LSB
if [ "$LSB" == "Y" -o "$LSB" == "y" ]; then
echo "Making a backup of the original gameserver database."
$MYSQLDUMPPATH --add-drop-table -h $GSDBHOST -u $GSUSER --password=$GSPASS $GSDB > gameserver_backup.sql
if [ $? -ne 0 ];then
echo ""
echo "There was a problem accesing your GS database, either it wasnt created or authentication data is incorrect."
exit 1
fi
break
elif [ "$LSB" == "n" -o "$LSB" == "N" ]; then
break
fi
done
}
lsbackup(){
while :
do
echo ""
echo -ne "Do you want to make a backup copy of your LSDB? (y/n): "
read LSB
if [ "$LSB" == "Y" -o "$LSB" == "y" ]; then
echo "Making a backup of the original loginserver database."
$MYSQLDUMPPATH --add-drop-table -h $LSDBHOST -u $LSUSER --password=$LSPASS $LSDB > loginserver_backup.sql
if [ $? -ne 0 ];then
echo ""
echo "There was a problem accesing your LS database, either it wasnt created or authentication data is incorrect."
exit 1
fi
break
elif [ "$LSB" == "n" -o "$LSB" == "N" ]; then
break
fi
done
}
asktype(){
echo ""
echo ""
echo "WARNING: A full install (f) will destroy all existing character data."
echo -ne "GAMESERVER DB install type: (f) full install, (u) upgrade, (s) skip or (q) quit?"
read INSTALLTYPE
case "$INSTALLTYPE" in
"f"|"F") fullinstall; upgradeinstall I; custom;;
"u"|"U") upgradeinstall U; custom;;
"s"|"S") custom;;
"q"|"Q") finish;;
*) asktype;;
esac
}
fullinstall(){
echo "Deleting all gameserver tables for new content."
$MYG < full_install.sql &> /dev/null
}
upgradeinstall(){
if [ "$1" == "I" ]; then
echo "Installling new gameserver content."
else
echo "Upgrading gameserver content"
fi
$MYG < ../sql/account_data.sql &> /dev/null
$MYG < ../sql/armor.sql &> /dev/null
$MYG < ../sql/armorsets.sql &> /dev/null
$MYG < ../sql/auction.sql &> /dev/null
$MYG < ../sql/auction_bid.sql &> /dev/null
$MYG < ../sql/auction_watch.sql &> /dev/null
$MYG < ../sql/auto_announcements.sql &> /dev/null
$MYG < ../sql/auto_chat.sql &> /dev/null
$MYG < ../sql/auto_chat_text.sql &> /dev/null
$MYG < ../sql/castle.sql &> /dev/null
$MYG < ../sql/castle_door.sql &> /dev/null
$MYG < ../sql/castle_doorupgrade.sql &> /dev/null
$MYG < ../sql/castle_functions.sql &> /dev/null
$MYG < ../sql/castle_manor_procure.sql &> /dev/null
$MYG < ../sql/castle_manor_production.sql &> /dev/null
$MYG < ../sql/castle_siege_guards.sql &> /dev/null
$MYG < ../sql/char_templates.sql &> /dev/null
$MYG < ../sql/character_friends.sql &> /dev/null
$MYG < ../sql/character_hennas.sql &> /dev/null
$MYG < ../sql/character_macroses.sql &> /dev/null
$MYG < ../sql/character_offline_trade.sql &> /dev/null
$MYG < ../sql/character_offline_trade_items.sql &> /dev/null
$MYG < ../sql/character_quests.sql &> /dev/null
$MYG < ../sql/character_recipebook.sql &> /dev/null
$MYG < ../sql/character_recommends.sql &> /dev/null
$MYG < ../sql/character_shortcuts.sql &> /dev/null
$MYG < ../sql/character_skills.sql &> /dev/null
$MYG < ../sql/character_skills_save.sql &> /dev/null
$MYG < ../sql/character_subclasses.sql &> /dev/null
$MYG < ../sql/characters.sql &> /dev/null
$MYG < ../sql/clan_data.sql &> /dev/null
$MYG < ../sql/clan_wars.sql &> /dev/null
$MYG < ../sql/clanhall.sql &> /dev/null
$MYG < ../sql/clanhall_functions.sql &> /dev/null
$MYG < ../sql/class_list.sql &> /dev/null
$MYG < ../sql/dimensional_rift.sql &> /dev/null
$MYG < ../sql/droplist.sql &> /dev/null
$MYG < ../sql/enchant_skill_trees.sql &> /dev/null
$MYG < ../sql/etcitem.sql &> /dev/null
$MYG < ../sql/fish.sql &> /dev/null
$MYG < ../sql/fishing_skill_trees.sql &> /dev/null
$MYG < ../sql/forums.sql &> /dev/null
$MYG < ../sql/four_sepulchers_spawnlist.sql &> /dev/null
$MYG < ../sql/games.sql &> /dev/null
$MYG < ../sql/global_tasks.sql &> /dev/null
$MYG < ../sql/grandboss_data.sql &> /dev/null
$MYG < ../sql/grandboss_list.sql &> /dev/null
$MYG < ../sql/helper_buff_list.sql &> /dev/null
$MYG < ../sql/henna.sql &> /dev/null
$MYG < ../sql/henna_trees.sql &> /dev/null
$MYG < ../sql/heroes.sql &> /dev/null
$MYG < ../sql/items.sql &> /dev/null
$MYG < ../sql/itemsonground.sql &> /dev/null
$MYG < ../sql/locations.sql &> /dev/null
$MYG < ../sql/lvlupgain.sql &> /dev/null
$MYG < ../sql/mapregion.sql &> /dev/null
$MYG < ../sql/merchant_areas_list.sql &> /dev/null
$MYG < ../sql/merchant_buylists.sql &> /dev/null
$MYG < ../sql/merchant_lease.sql &> /dev/null
$MYG < ../sql/merchant_shopids.sql &> /dev/null
$MYG < ../sql/merchants.sql &> /dev/null
$MYG < ../sql/minions.sql &> /dev/null
$MYG < ../sql/npc.sql &> /dev/null
$MYG < ../sql/npc_buffer.sql &> /dev/null
$MYG < ../sql/olympiad_nobles.sql&> /dev/null
$MYG < ../sql/pets.sql &> /dev/null
$MYG < ../sql/pets_stats.sql &> /dev/null
$MYG < ../sql/posts.sql &> /dev/null
$MYG < ../sql/npcskills.sql &> /dev/null
$MYG < ../sql/quest_global_data.sql &> /dev/null
$MYG < ../sql/raidboss_spawnlist.sql &> /dev/null
$MYG < ../sql/random_spawn.sql &> /dev/null
$MYG < ../sql/random_spawn_loc.sql &> /dev/null
$MYG < ../sql/seven_signs.sql &> /dev/null
$MYG < ../sql/seven_signs_festival.sql &> /dev/null
$MYG < ../sql/seven_signs_status.sql &> /dev/null
$MYG < ../sql/siege_clans.sql &> /dev/null
$MYG < ../sql/skill_learn.sql &> /dev/null
$MYG < ../sql/skill_spellbooks.sql &> /dev/null
$MYG < ../sql/skill_trees.sql &> /dev/null
$MYG < ../sql/spawnlist.sql &> /dev/null
$MYG < ../sql/teleport.sql &> /dev/null
$MYG < ../sql/topic.sql &> /dev/null
$MYG < ../sql/walker_routes.sql &> /dev/null
$MYG < ../sql/weapon.sql &> /dev/null
$MYG < ../sql/zone_vertices.sql &> /dev/null
finish
}
custom(){
echo ""
echo ""
echo -ne "Install custom gameserver DB tables: (y) yes or (n) no or (q) quit?"
read ASKCS
case "$ASKCS" in
"y"|"Y") cstinstall;;
"n"|"N") finish;;
"q"|"Q") finish;;
*) custom;;
esac
finish
}
cstinstall(){
while :
do
echo ""
echo -ne "Do you want to make another backup of GSDB before applying custom contents? (y/N): "
read LSB
if [ "$LSB" == "Y" -o "$LSB" == "y" ]; then
echo "Making a backup of the default gameserver tables."
$MYSQLDUMPPATH --add-drop-table -h $GSDBHOST -u $GSUSER --password=$GSPASS $GSDB > custom_backup.sql 2> /dev/null
if [ $? -ne 0 ];then
echo ""
echo "There was a problem accesing your GS database, server down?."
exit 1
fi
break
elif [ "$LSB" == "n" -o "$LSB" == "N" -o "$LSB" == "" ]; then
break
fi
done
echo "Installing custom content."
for custom in $(ls ../sql/custom/*.sql);do
$MYG < $custom &> /dev/null
done
finish
}
finish(){
echo ""
echo "Script execution finished."
exit 0
}
clear
load_config $1
MYL="$MYSQLPATH -h $LSDBHOST -u $LSUSER --password=$LSPASS -D $LSDB"
MYG="$MYSQLPATH -h $GSDBHOST -u $GSUSER --password=$GSPASS -D $GSDB"
lsbackup
asklogin

View File

@@ -0,0 +1,86 @@
DROP TABLE IF EXISTS account_data;
DROP TABLE IF EXISTS armor;
DROP TABLE IF EXISTS armorsets;
DROP TABLE IF EXISTS auction;
DROP TABLE IF EXISTS auction_bid;
DROP TABLE IF EXISTS auction_watch;
DROP TABLE IF EXISTS auto_announcements;
DROP TABLE IF EXISTS auto_chat;
DROP TABLE IF EXISTS auto_chat_text;
DROP TABLE IF EXISTS castle;
DROP TABLE IF EXISTS castle_door;
DROP TABLE IF EXISTS castle_doorupgrade;
DROP TABLE IF EXISTS castle_functions;
DROP TABLE IF EXISTS castle_manor_procure;
DROP TABLE IF EXISTS castle_manor_production;
DROP TABLE IF EXISTS castle_siege_guards;
DROP TABLE IF EXISTS char_templates;
DROP TABLE IF EXISTS character_friends;
DROP TABLE IF EXISTS character_hennas;
DROP TABLE IF EXISTS character_macroses;
DROP TABLE IF EXISTS character_offline_trade;
DROP TABLE IF EXISTS character_offline_trade_items;
DROP TABLE IF EXISTS character_quests;
DROP TABLE IF EXISTS character_recipebook;
DROP TABLE IF EXISTS character_recommends;
DROP TABLE IF EXISTS character_shortcuts;
DROP TABLE IF EXISTS character_skills;
DROP TABLE IF EXISTS character_skills_save;
DROP TABLE IF EXISTS character_subclasses;
DROP TABLE IF EXISTS characters;
DROP TABLE IF EXISTS clan_data;
DROP TABLE IF EXISTS clan_wars;
DROP TABLE IF EXISTS clanhall;
DROP TABLE IF EXISTS clanhall_functions;
DROP TABLE IF EXISTS class_list;
DROP TABLE IF EXISTS dimensional_rift;
DROP TABLE IF EXISTS droplist;
DROP TABLE IF EXISTS enchant_skill_trees;
DROP TABLE IF EXISTS etcitem;
DROP TABLE IF EXISTS fish;
DROP TABLE IF EXISTS fishing_skill_trees;
DROP TABLE IF EXISTS forums;
DROP TABLE IF EXISTS four_sepulchers_spawnlist;
DROP TABLE IF EXISTS games;
DROP TABLE IF EXISTS global_tasks;
DROP TABLE IF EXISTS grandboss_data;
DROP TABLE IF EXISTS grandboss_list;
DROP TABLE IF EXISTS helper_buff_list;
DROP TABLE IF EXISTS henna;
DROP TABLE IF EXISTS henna_trees;
DROP TABLE IF EXISTS heroes;
DROP TABLE IF EXISTS items;
DROP TABLE IF EXISTS itemsonground;
DROP TABLE IF EXISTS locations;
DROP TABLE IF EXISTS lvlupgain;
DROP TABLE IF EXISTS mapregion;
DROP TABLE IF EXISTS merchant_areas_list;
DROP TABLE IF EXISTS merchant_buylists;
DROP TABLE IF EXISTS merchant_lease;
DROP TABLE IF EXISTS merchant_shopids;
DROP TABLE IF EXISTS merchants;
DROP TABLE IF EXISTS minions;
DROP TABLE IF EXISTS npc;
DROP TABLE IF EXISTS npc_buffer;
DROP TABLE IF EXISTS npcskills;
DROP TABLE IF EXISTS olympiad_nobles;
DROP TABLE IF EXISTS pets;
DROP TABLE IF EXISTS pets_stats;
DROP TABLE IF EXISTS posts;
DROP TABLE IF EXISTS quest_global_data;
DROP TABLE IF EXISTS raidboss_spawnlist;
DROP TABLE IF EXISTS random_spawn;
DROP TABLE IF EXISTS random_spawn_loc;
DROP TABLE IF EXISTS seven_signs;
DROP TABLE IF EXISTS seven_signs_festival;
DROP TABLE IF EXISTS seven_signs_status;
DROP TABLE IF EXISTS siege_clans;
DROP TABLE IF EXISTS skill_learn;
DROP TABLE IF EXISTS skill_spellbooks;
DROP TABLE IF EXISTS skill_trees;
DROP TABLE IF EXISTS spawnlist;
DROP TABLE IF EXISTS teleport;
DROP TABLE IF EXISTS topic;
DROP TABLE IF EXISTS walker_routes;
DROP TABLE IF EXISTS weapon;
DROP TABLE IF EXISTS zone_vertices;

View File

@@ -0,0 +1,2 @@
DROP TABLE IF EXISTS accounts;
DROP TABLE IF EXISTS gameservers;