From 620e60eebce2c1f35c5c9a82f6ca365b316587f5 Mon Sep 17 00:00:00 2001 From: Valaris Date: Sun, 29 Jan 2006 16:10:48 +0000 Subject: AS OF SVN REV. 5901, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EVERYTHING ELSE GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5094 54d463be-8e91-2dee-dedb-b68131a5f0ec --- tools/backup | 100 ++ tools/cgi/addaccount.cgi | 204 +++ tools/checkversion | 85 ++ tools/getlogincount | 122 ++ tools/ladmin | 3793 ++++++++++++++++++++++++++++++++++++++++++++++ tools/mapcheck.sh | 34 + tools/mapchecker.sh | 56 + tools/stackdump | 48 + 8 files changed, 4442 insertions(+) create mode 100644 tools/backup create mode 100644 tools/cgi/addaccount.cgi create mode 100644 tools/checkversion create mode 100644 tools/getlogincount create mode 100644 tools/ladmin create mode 100644 tools/mapcheck.sh create mode 100644 tools/mapchecker.sh create mode 100644 tools/stackdump (limited to 'tools') diff --git a/tools/backup b/tools/backup new file mode 100644 index 000000000..2b5a95814 --- /dev/null +++ b/tools/backup @@ -0,0 +1,100 @@ +#!/usr/bin/perl + +########################################################################## +# Athena用データバックアップツール +# +#  Athenaの各種データファイル*.txtをバックアップするツール +# +#------------------------------------------------------------------------- +# 設定方法 +#  実行する時のカレントフォルダからのデータへのパス、ファイルのリストを +#  正しく設定します。バックアップ先のフォルダは自動作成されないので、 +#  自分で作成しておく必要があります。 +#  フォルダの最後の「/」は省略できません。 +# +#  フォルダは引数でも指定できます。例>./backup ../save/ ./backup_data/ +#  フォルダの最後の「/」は省略できません。 +# +#  実行するとバックアップ先のフォルダへ、ファイル名に現在の日付と時刻を +#  つけてファイルをコピーします。 +# +# * toolフォルダ内にbackup_dataフォルダを作成し、 +#   athena.shの中に「./tool/backup ./save/ ./tool/backup_data/」 +# という行を追加すると、athenaを起動するたびにバックアップが取れます +# +# 復元するときは引数に「-r 日付と時刻」を指定します。 +#  またその後ろにフォルダを指定することも出来ます +#  例1> ./backup -r 200309191607 +#  例2> ./backup -r 200309191607 ../save ./backup_data/ +#  この例では2003/09/19の16:07分にバックアップしたデータを復元しています +# +#  復元するとき、Athenaディレクトリにあるデータは *.bak に名前を変更して +#  残しているので、いらない場合は rm *.bak などで消してください。 +# +########################################################################## + +$sdir="../save/"; #バックアップ元(Athenaのディレクトリ/save/) +$tdir="./backup_data/"; #バックアップ先 + +@files=( #ファイルのリスト + "account","athena","storage","party","guild","castle","pet" +); + + +#-------------------------------設定ここまで----------------------------- + + + + + + + + + + + +if($ARGV[0]=~/^\-r$/i || $ARGV[0]=~/\-\-(recover|restore)/i){ + #復元処理 + + $file=$ARGV[1]; + $sdir=$ARGV[2]||$sdir; + $tdir=$ARGV[3]||$tdir; + &restorecopy($_) foreach @files; + exit(0); +} + +#バックアップ処理 +$sdir=$ARGV[0]||$sdir; +$tdir=$ARGV[1]||$tdir; + +unless( -d $tdir ){ + print "$0: \"$tdir\" : No such directory\n"; + exit(1); +} + +(undef,$min,$hour,$day,$month,$year)=localtime; + +$file=sprintf("%04d%02d%02d%02d%02d", + $year+1900, $month+1, $day, $hour, $min ); + +&backupcopy($_) foreach @files; +exit(0); + +sub backupcopy { + my($name)= @_; + system("cp $sdir$name.txt $tdir$name$file.txt"); +} + +sub restorecopy { + my($name)= @_; + unless( -f "$sdir$name.txt" ){ + printf("$0: \"$sdir$name.txt\" not found!\n"); + return 0; + } + unless( -f "$tdir$name$file.txt" ){ + printf("$0: \"$tdir$name$file.txt\" not found!\n"); + return 0; + } + rename "$sdir$name.txt","$sdir$name.bak"; + system("cp $tdir$name$file.txt $sdir$name.txt"); +} diff --git a/tools/cgi/addaccount.cgi b/tools/cgi/addaccount.cgi new file mode 100644 index 000000000..2134a78a3 --- /dev/null +++ b/tools/cgi/addaccount.cgi @@ -0,0 +1,204 @@ +#!/usr/bin/perl + +#========================================================================= +# addaccount.cgi ver.1.00 +# ladminをラップした、アカウントを作成するCGI。 +# ladmin ver.1.04での動作を確認。 +# +# ** 設定方法 ** +# +# - 下の$ladmin変数にladminへのパスを設定すること。 +# - UNIX系OSで使用する場合はladminと共に改行コードを変換すること、また +# ファイル先頭行をperlの正しいパスにすること。例> $ which perl +# - サーバープログラムやブラウザによっては $cgiuri にこのファイルへの +# 完全なURIをセットしなければならない場合もある。 +# - perlにパスが通っていない場合は $perl をperlへの正しいパスにすること。 +# - 他は普通のCGIと同じです。(実行権やcgi-binフォルダなど) +# +# ** その他 ** +# addaccount.cgi をブラウザで開くとサンプルHTML(そのまま使えます)が +# 開きます。また、このcgiはブラウザから送られるAccept-Languageが +# jaで始まっていればメッセージの一部を日本語に変換します。 +# (IEならインターネットオプションの言語設定で一番上に日本語を置く) +# それ以外の場合は英語のまま出力します。 +#------------------------------------------------------------------------- + +my($ladmin) = "../ladmin"; # ladminのパス(おそらく変更が必要) + +my($cgiuri) = "./addaccount.cgi"; # このファイルのURI +my($perl) = "perl"; # perlのコマンド名 + + + +#--------------------------- 設定ここまで -------------------------------- + + + + + + +use strict; +use CGI; + +my($cgi)= new CGI; +my(%langconv)=( + 'Athena login-server administration tool.*' => '', + 'logged on.*' => '', +); + +# ----- 日本語環境なら変換テーブルをセット ----- +if($ENV{'HTTP_ACCEPT_LANGUAGE'}=~/^ja/){ + my(%tmp)=( + 'Account \[(.+)\] is successfully created.*' + => 'アカウント "$1" を作成しました.', + 'Account \[(.+)\] creation failed\. same account exists.*' + => 'アカウント "$1" は既に存在します.', + 'Illeagal charactor found in UserID.*' + => 'IDの中に不正な文字があります.', + 'Illeagal charactor found in Password.*' + => 'Passwordの中に不正な文字があります.', + 'input UserID 4-24 bytes.' + => 'IDは半角4〜24文字で入力してください.', + 'input Password 4-24 bytes.' + => 'Passwordは半角4〜24文字で入力してください.', + 'Illeagal gender.*' + => '性別がおかしいです.', + 'Cant connect to login server.*' + => 'ログインサーバーに接続できません.', + 'login error.*' + => 'ログインサーバーへの管理者権限ログインに失敗しました', + "Can't execute ladmin.*" + => 'ladminの実行に失敗しました', + 'UserID "(.+)" is already used.*' + => 'ID "$1" は既に使用されています.', + 'You can use UserID \"(.+)\".*' + => 'ID "$1" は使用可能です.', + + 'account making' =>'アカウント作成', + '\>UserID' =>'>ID', + '\>Password' =>'>パスワード', + '\>Gender' =>'>性別', + '\>Male' =>'>男性', + '\>Female' =>'>女性', + '\"Make Account\"' =>'"アカウント作成"', + '\"Check UserID\"' =>'"IDのチェック"', + ); + map { $langconv{$_}=$tmp{$_}; } keys (%tmp); +} + +# ----- 追加 ----- +if( $cgi->param("addaccount") ){ + my($userid)= $cgi->param("userid"); + my($passwd)= $cgi->param("passwd"); + my($gender)= lc(substr($cgi->param("gender"),0,1)); + if(length($userid)<4 || length($userid)>24){ + HttpError("input UserID 4-24 bytes."); + } + if(length($passwd)<4 || length($passwd)>24){ + HttpError("input Password 4-24 bytes."); + } + if($userid=~/[^0-9A-Za-z\@\_\-\']/){ + HttpError("Illeagal charactor found in UserID."); + } + if($passwd=~/[\x00-\x1f\x80-\xff\']/){ + HttpError("Illeagal charactor found in Password."); + } + if($gender!~/[mf]/){ + HttpError("Gender error."); + } + open PIPE,"$perl $ladmin --add $userid $gender $passwd |" + or HttpError("Can't execute ladmin."); + my(@msg)=; + close PIPE; + HttpMsg(@msg); +} +# ----- 存在チェック ----- +elsif( $cgi->param("check") ){ + my($userid)= $cgi->param("userid"); + if(length($userid)<4 || length($userid)>24){ + HttpError("input UserID 4-24 bytes."); + } + if($userid=~/[^0-9A-Za-z\@\_\-\']/){ + HttpError("Illeagal charactor found in UserID."); + } + open PIPE,"$perl $ladmin --search --regex \\b$userid\\b |" + or HttpError("Can't execute ladmin."); + my(@msg)=; + close PIPE; + if(scalar(@msg)==6 && (split /[\s\0]+/,substr($msg[4],11,24))[0] eq $userid){ + HttpMsg("NG : UserID \"$userid\" is already used."); + }elsif(scalar(@msg)==5){ + HttpMsg("OK : You can use UserID \"$userid\""); + } + HttpError("ladmin error ?\n---output---\n",@msg); +} + +# ----- フォーム ----- +else{ + print LangConv( <<"EOM" ); +Content-type: text/html\n + + + Athena account making cgi + + +

Athena account making cgi

+
+ + + + + + + + + + + + + + + + +
UserID
Password
Gender + Male + Female +
+ + +
+
+ + +EOM + exit; +} + +sub LangConv { + my(@lst)= @_; + my($a,$b,@out)=(); + foreach $a(@lst){ + foreach $b(keys %langconv){ + $a=~s/$b/$langconv{$b}/g; + my($rep1)=$1; + $a=~s/\$1/$rep1/g; + } + push @out,$a; + } + return @out; +} + +sub HttpMsg { + my($msg)=join("", LangConv(@_)); + $msg=~s/\n/
\n/g; + print LangConv("Content-type: text/html\n\n"),$msg; + exit; +} + +sub HttpError { + my($msg)=join("", LangConv(@_)); + $msg=~s/\n/
\n/g; + print LangConv("Content-type: text/html\n\n"),$msg; + exit; +} + diff --git a/tools/checkversion b/tools/checkversion new file mode 100644 index 000000000..135165236 --- /dev/null +++ b/tools/checkversion @@ -0,0 +1,85 @@ +#!/usr/bin/perl -w + +########################################################################## +# INFORMATION TOOL ABOUT THE SERVERS VERSION OF ATHENA +# +# By connection on a server, this software display the version of the +# designed server. +#------------------------------------------------------------------------- +# Usages: +# ./checkversion IP:port +# ./checkversion IP port +# perl checkversion IP:port +# perl checkversion IP port +# +# note: default port: 6900 +# +# When successfull, the software return the value 0. +# +########################################################################## + +#------------------------- start of configuration ------------------------ + +$connecttimeout = 10; # Connection Timeout (in seconds) + +#-------------------------- End of configuration ------------------------- + +use IO::Socket; + +unless($ARGV[0]) { + print "USAGE: $0 server_ip:port\n"; + exit(1); +} + +$server = $ARGV[0]; +$port = $ARGV[1]; +$port = $1 if ($server =~ s/:(\d+)//); +$port ||= 6900; + +# Connection to the server +my($so,$er) = (); +eval{ + $so = IO::Socket::INET->new( + PeerAddr=> $server, + PeerPort=> $port, + Proto => "tcp", + Timeout => $connecttimeout) or $er = 1; +}; + +if($er || $@) { + print "Can't not connect to server [$server:$port] !\n"; + exit(2); +} + +# Request for the server version +print $so pack("v",30000); # 0x7530 +$so->flush(); + +# Receiving of the answer of the server +if (read($so,$buf,10) < 10) { + print "Invalid answer. It isn't an athena server or it is a too old version.\n"; + exit(5); +} + +# Sending end of connection to the server +print $so pack("v",30002); # 0x7532 +$so->flush(); + +# Analyse of the answer +my($ret,$maver,$miver,$rev,$dev,$mod,$type,$mdver) = unpack("v c6 v",$buf); + +if ($ret != 30001) { # 0x7531 + print "Invalid answer. It isn't an athena server or it is a too old version.\n"; + exit(6); +} + +my(@stype) = (); +foreach $i(0..3) { + push @stype,(("login","char","inter","map")[$i]) if( $type & (1<<$i) ); +} +print " ".join("/",@stype)." server [$server:$port].\n"; +printf " Athena version %s-%d.%d", ("stable","dev")[$dev], $maver,$miver; +printf " revision %d",$rev if $rev; +printf "%s%d\n",("","-mod")[$mod],$mdver; + +exit(0); diff --git a/tools/getlogincount b/tools/getlogincount new file mode 100644 index 000000000..6a209924f --- /dev/null +++ b/tools/getlogincount @@ -0,0 +1,122 @@ +#!/usr/bin/perl -w + +########################################################################## +# INFORMATION TOOL ABOUT THE # OF ONLINE PLAYERS ON ATHENA SERVERS +# +# By connection on the athena login-server, this software displays the +# number of online players. +# +#------------------------------------------------------------------------- +# Software usage: +# Configure the IP, the port and a valid account of the server. +# After, use at your choice: +# ./getlogincount - display the number of online players on all servers. +# ./getlogincount --premier or +# ./getlogincount --first -- display the number of online players of the +# first server in the received list. +# ./getlogincount [servername] -- display the number of online players +# of the specified server. +# +# If successfull, the software return the value 0. +# +########################################################################## + +#------------------------------ CONFIGURATION ---------------------------- + +$loginserverip = "127.0.0.1"; # IP of the login-server +$loginserverport = 6900; # port of the login-server +$loginaccount = "s1"; # a valid account name +$loginpasswd = "p1"; # the password of the valid account name + +$connecttimeout = 10; # Connection timeout (in seconds) + +#------------------------------------------------------------------------- + +use IO::Socket; + +my($sname) = $ARGV[0]; +if (!defined($sname)) { + $sname = ""; +} + +# Connection to the login-server +my($so,$er) = (); +eval{ + $so = IO::Socket::INET->new( + PeerAddr=> $loginserverip, + PeerPort=> $loginserverport, + Proto => "tcp", + Timeout => $connecttimeout) or $er=1; +}; +if($er || $@){ + print "Can't not connect to the login-server [${loginserverip}:$loginserverport] !\n"; + exit(2); +} + +# Request to connect on login-server +print $so pack("v V a24 a24 C",0x0064,9,$loginaccount,$loginpasswd,3); +$so->flush(); + +# Fail to connect +if(unpack("v", &soread(\$so,2)) != 0x0069) { + print "Login error.\n"; + exit(3); +} + +# Get length of the received packet +my($plen) = unpack("v",&soread(\$so,2))-4; + +# Suppress information of the account (we need only information about the servers) +&soread(\$so,43); +$plen -= 43; + +# Check about the number of online servers +if ($plen < 32) { + printf "No server is connected to login-server.\n"; + exit(1); +} + +# Read information of the servers +my(@slist) = (); +for(;$plen > 0;$plen -= 32) { + my($name,$count) = unpack("x6 a20 V",&soread(\$so,32)); + $name = substr($name,0,index($name,"\0")); + push @slist, [ $name, $count ]; +} + +# Display the result +if($sname eq "--first" || $sname eq "--premier") { # If we ask only for the first server + printf "%-20s : %5d\n",$slist[0][0],$slist[0][1]; +} elsif ($sname eq "") { # If we ask for all servers + foreach $i(@slist) { + printf "%-20s : %5d\n",$i->[0],$i->[1]; + } +} else { # If we ask for a specified server (by its name) + my($flag) = 1; + foreach $i(@slist) { + if($i->[0] eq $sname) { + printf "%-20s : %5d\n",$i->[0],$i->[1]; + $flag = 0; + } + } + if($flag) { # If the server doesn't exist + printf "The server [$sname] doesn't exist.\n"; + exit(1); + } +} + +# End of the software +$so->shutdown(2); +$so->close(); +exit(0); + +# Sub-function: get data from the socket +sub soread { + my($so,$len) = @_; + my($sobuf); + if(read($$so,$sobuf,$len) < $len) { + print "Socket read error.\n"; + exit(5); + } + return $sobuf; +}; diff --git a/tools/ladmin b/tools/ladmin new file mode 100644 index 000000000..e3319d5de --- /dev/null +++ b/tools/ladmin @@ -0,0 +1,3793 @@ +#!/usr/bin/perl +use POSIX; +########################################################################## +# EAthena login-server remote administration tool +# New ladamin by [Yor] +########################################################################## +#-------------------------------INSTRUCTIONS------------------------------ +# Set the 4 variables below: +# IP of the login server. +# Port where the login-server listens incoming packets. +# Password of administration (same of config_athena.conf). +# Displayed language of the sofware (if not correct, english is used). +# IMPORTANT: +# Be sure that you authorize remote administration in login-server +# (see login_athena.conf, 'admin_state' parameter) +#------------------------------------------------------------------------- +my($loginserverip) = "127.0.0.1"; # IP of login-server +my($loginserverport) = 6900; # Port of login-server +my($loginserveradminpassword) = "admin"; # Administration password +my($connecttimeout) = 10; # Timeout of connection (in seconds) +my($passenc) = 2; # Encoding type of the password +my($defaultlanguage) = "E"; # Default language (F: Fran軋is/E: English) + # (if it's not 'F', default is English) + +#------------------------------------------------------------------------- +# LIST of COMMANDs that you can type at the prompt: +# To use these commands you can only type only the first letters. +# You must type a minimum of letters (you can not type 'a', +# because ladmin doesn't know if it's for 'aide' or for 'add') +# q <= quit, li <= list, pass <= passwd, etc. +# +# Note: every time you must give a account_name, you can use "" or '' (spaces can be included) +# +# aide/help/? +# Display the description of the commands +# aide/help/? [command] +# Display the description of the specified command +# +# add +# Create an account with the default email (a@a.com). +# Concerning the sex, only the first letter is used (F or M). +# The e-mail is set to a@a.com (default e-mail). It's like to have no e-mail. +# When the password is omitted, the input is done without displaying of the pressed keys. +# add testname Male testpass +# +# ban/banish yyyy/mm/dd hh:mm:ss +# Changes the final date of a banishment of an account. +# Same command of banset, except that account_name is at end +# +# banadd +# Adds or substracts time from the final date of a banishment of an account. +# Modifier is done as follows: +# Adjustment value (-1, 1, +1, etc...) +# Modified element: +# a or y: year +# m: month +# j or d: day +# h: hour +# mn: minute +# s: second +# banadd testname +1m-2mn1s-6y +# this example adds 1 month and 1 second, and substracts 2 minutes and 6 years at the same time. +# NOTE: If you modify the final date of a non-banished account, +# you fix the final date to (actual time +- adjustments) +# +# banset yyyy/mm/dd [hh:mm:ss] +# Changes the final date of a banishment of an account. +# Default time: 23:59:59 +# banset 0 +# Set a non-banished account (0 = unbanished). +# +# block +# Set state 5 (You have been blocked by the GM Team) to an account. +# Same command of state 5. +# +# check +# Check the validity of a password for an account +# NOTE: Server will never sends back a password. +# It's the only method you have to know if a password is correct. +# The other method is to have a ('physical') access to the accounts file. +# +# create +# Like the 'add' command, but with e-mail moreover. +# create testname Male my@mail.com testpass +# +# del +# Remove an account. +# This order requires confirmation. After confirmation, the account is deleted. +# +# email +# Modify the e-mail of an account. +# +# getcount +# Give the number of players online on all char-servers. +# +# gm [GM_level] +# Modify the GM level of an account. +# Default value remove GM level (GM level = 0). +# gm testname 80 +# +# id +# Give the id of an account. +# +# info +# Display complete information of an account. +# +# kami +# Sends a broadcast message on all map-server (in yellow). +# kamib +# Sends a broadcast message on all map-server (in blue). +# +# language +# Change the language of displaying. +# +# list/ls [start_id [end_id]] +# Display a list of accounts. +# 'start_id', 'end_id': indicate end and start identifiers. +# Research by name is not possible with this command. +# list 10 9999999 +# +# listBan/lsBan [start_id [end_id]] +# Like list/ls, but only for accounts with state or banished +# +# listGM/lsGM [start_id [end_id]] +# Like list/ls, but only for GM accounts +# +# listOK/lsOK [start_id [end_id]] +# Like list/ls, but only for accounts without state and not banished +# +# memo +# Modify the memo of an account. +# 'memo': it can have until 253 characters (with spaces or not). +# +# name +# Give the name of an account. +# +# passwd +# Change the password of an account. +# When new password is omitted, the input is done without displaying of the pressed keys. +# +# quit/end/exit +# End of the program of administration +# +# reloadGM +# Reload GM configuration file +# +# search +# Seek accounts. +# Displays the accounts whose names correspond. +# search -r/-e/--expr/--regex +# Seek accounts by regular expression. +# Displays the accounts whose names correspond. +# +# sex +# Modify the sex of an account. +# sex testname Male +# +# state +# Change the state of an account. +# 'new_state': state is the state of the packet 0x006a + 1. The possibilities are: +# 0 = Account ok 6 = Your Game's EXE file is not the latest version +# 1 = Unregistered ID 7 = You are Prohibited to log in until %s +# 2 = Incorrect Password 8 = Server is jammed due to over populated +# 3 = This ID is expired 9 = No MSG +# 4 = Rejected from Server 100 = This ID has been totally erased +# 5 = You have been blocked by the GM Team +# all other values are 'No MSG', then use state 9 please. +# 'error_message_#7': message of the code error 6 = Your are Prohibited to log in until %s (packet 0x006a) +# +# timeadd +# Adds or substracts time from the validity limit of an account. +# Modifier is done as follows: +# Adjustment value (-1, 1, +1, etc...) +# Modified element: +# a or y: year +# m: month +# j or d: day +# h: hour +# mn: minute +# s: second +# timeadd testname +1m-2mn1s-6y +# this example adds 1 month and 1 second, and substracts 2 minutes and 6 years at the same time. +# NOTE: You can not modify a unlimited validity limit. +# If you want modify it, you want probably create a limited validity limit. +# So, at first, you must set the validity limit to a date/time. +# +# timeset yyyy/mm/dd [hh:mm:ss] +# Changes the validity limit of an account. +# Default time: 23:59:59 +# timeset 0 +# Gives an unlimited validity limit (0 = unlimited). +# +# unban/unbanish +# Unban an account. +# Same command of banset 0. +# +# unblock +# Set state 0 (Account ok) to an account. +# Same command of state 0. +# +# version +# Display the version of the login-server. +# +# who +# Displays complete information of an account. +# +#------------------------------------------------------------------------- +# Possibilities to execute ladmin in command line by usage of the software with a parameter: +# ./ladmin --mode param1 ... +# +# --makesymlink -- Create the symbolic links for a use in shell +# --add -- Create an account with the default email (or -a) +# --ban yyyy/mm/dd hh:mm:ss -- Change the final date of a banishment of an account (or -b) +# --banadd -- Add or substract time from the final date of a banishment of an account (or - ba) +# --banset yyyy/mm/dd [hh:mm:ss] -- Change the final date of a banishment of an account (or -bs) +# --banset 0 -- Unbanish an account (or -bs) +# --block -- Set state 5 to an account (or -bl) +# --check -- Check the validity of a password for an account (or -check) +# --create -- Create an account with email (or -c) +# --del -- Remove an account (or -d) +# --email -- Modify an email of an account (or -e) +# --getcount -- Give the number of players online on all char-servers (or -g) +# --gm -- Change the GM level of an account (or -gm) +# --id -- Give the id of an account (or -i) +# --info -- Display complete information of an account (or -info) +# --kami -- Sends a broadcast message on all map-server (in yellow). +# --kamib -- Sends a broadcast message on all map-server (in blue). +# --language -- Change the language of displaying (-lang). +# --list [First_id [Last_id]] -- Display a list of accounts (or -l) +# --listBan [start_id [end_id]] -- Display a list of accounts with state or banished (or -lBan) +# --listGM [First_id [Last_id]] -- Display a list of GM accounts (or -lGM) +# --listOK [start_id [end_id]] -- Display a list of accounts without state and not banished (or -lOK) +# --memo -- Modify the memo of an account (or -e) +# --name -- Give the name of an account (or -n) +# --passwd -- Change the password of an account (or -p) +# --reloadGM -- Reload GM configuration file (or -r) +# --search -- Seek accounts (or -s) +# --search -e/-r/--expr/--regex -- Seek accounts by REGEX (or -s) +# --sex -- Change the sex of an account (or -sex) +# --state -- Change the state of an account (or -t) +# --timeadd -- Add or substract time from the validity limit of an account (or - ta) +# --timeset yyyy/mm/dd [hh:mm:ss] -- Change the validify limit of an account (or -ts) +# --timeset 0 -- Give a unlimited validity limit (or -ts) +# --unban/unbanish -- Unban an account (or -uba) +# --unblock -- Set state 0 to an account (or -ubl) +# --version -- Display the version of the login-server (or -v) +# --who -- Display complete information of an account (or -w) +# +# ./ladmin --addaccount testname Male testpass +# +#------------------------------------------------------------------------- +# Possibilities to execute ladmin with symbolic links in Shell +# To create the symbolic links, execute ladmin with the '-- makesymlink' option. +# +# addaccount -- Create an account with the default email +# banaccount yyyy/mm/dd hh:mm:ss -- Change the final date of a banishment of an account +# banaddaccount -- Add or substract time from the final date of a banishment of an account +# bansetaccount yyyy/mm/dd [hh:mm:ss] -- Change the final date of a banishment of an account +# bansetaccount 0 -- Unbanish an account +# blockaccount -- Set state 5 (blocked by the GM Team) to an account +# checkaccount -- Check the validity of a password for an account +# createaccount -- Create an account with email +# delaccount -- Remove an account +# emailaccount -- Modify an email of an account +# getcount -- Give the number of players online on all char-servers +# gmaccount -- Change the GM level of an account +# idaccount -- Give the id of an account +# infoaccount -- Display complete information of an account +# kami -- Sends a broadcast message on all map-server (in yellow). +# kamib -- Sends a broadcast message on all map-server (in blue). +# ladminlanguage -- Change the language of displaying. +# listaccount [First_id [Last_id]] -- Display a list of accounts +# listBanaccount [start_id [end_id]] -- Display a list of accounts with state or banished +# listGMaccount [First_id [Last_id]] -- Display a list of GM accounts +# listOKaccount [start_id [end_id]] -- Display a list of accounts without state and not banished +# loginserverversion -- Display the version of the login-server +# memoaccount -- Modify the memo of an account +# nameaccount -- Give the name of an account +# passwdaccount -- Change the password of an account +# reloadGM -- Reload GM configuration file +# searchaccount -- Seek accounts +# searchaccount -e/-r/--expr/--regex -- Seek accounts by REGEX +# sexaccount -- Change the sex of an account (or -sex) +# stateaccount -- Change the state of an account +# timeaddaccount -- Add or substract time from the validity limit of an account +# timesetaccount yyyy/mm/dd [hh:mm:ss] -- Change the validify limit of an account +# timesetaccount 0 -- Give a unlimited validity limit +# unbanaccount -- Unban an account +# unblockaccount -- Set state 0 (Account ok) to an account +# whoaccount -- Display complete information of an account +# ./addaccount testname Male testpass +# +#------------------------------------------------------------------------- +# About the encoding: +# +# The Digest::MD5 module is necessary to use the encrypted password system. +# When the software cannot found the Digest::MD5 module, +# encoding is automatically disabled ($passenc=0), which allows +# to use this program in any cases. +# +#------------------------------------------------------------------------- +# How to use ladmin with UNIX: +# +# You excecute ladmin as a standard command. +# +# $ mv ladmin ladmin_org +# $ nkf -eLu ladmin_org > ladmin +# $ chmod 700 ladmin +# +# $ perl ladmin +# +########################################################################## + + +use strict; +use IO::Socket; +use Term::ReadLine; +eval { use POSIX qw(:termios_h); }; +eval { use Digest::MD5 qw(md5); } if $passenc; +$passenc = 0 if($@); + +my($ver) = "1.00"; + +# Start of termios +my($termios, $orgterml, $termlecho, $termlnoecho) = (); +eval{ + $termios = POSIX::Termios->new(); + $termios->getattr(fileno(STDIN)); + $orgterml = $termios->getlflag(); + $termlecho = ECHO | ECHOK | ICANON; + $termlnoecho = $orgterml & ~$termlecho; +}; + +# Modification of termios for the displaying of passwords (no displays for pressed keys) +sub cbreak() { + if ($termios) { + $termios->setlflag($termlnoecho); + $termios->setcc(VTIME, 1); + $termios->setattr(fileno(STDIN), TCSANOW); + } +} +# Modification of termios to return at the normal displaying (after input of the passwords) +sub cooked() { + if ($termios) { + $termios->setlflag($orgterml); + $termios->setcc(VTIME,0); + $termios->setattr(fileno(STDIN),TCSANOW); + } +} +END{ cooked() } + +if ($defaultlanguage eq "F") { + print "Outil d'administration distance de eAthena V.$ver\n"; +} else { + print "EAthena login-server administration tool V.$ver\n"; +} + +# Creation of the symbolic links for call of the program in line command of the shell +if ($ARGV[0] eq "--makesymlink") { + symlink $0, "loginserverversion"; + symlink $0, "addaccount"; + symlink $0, "banaccount"; + symlink $0, "banaddaccount"; + symlink $0, "bansetaccount"; + symlink $0, "blockaccount"; + symlink $0, "checkaccount"; + symlink $0, "createaccount"; + symlink $0, "delaccount"; + symlink $0, "emailaccount"; + symlink $0, "getcount"; + symlink $0, "gmaccount"; + symlink $0, "idaccount"; + symlink $0, "infoaccount"; + symlink $0, "kami"; + symlink $0, "kamib"; + symlink $0, "ladminlanguage"; + symlink $0, "listaccount"; + symlink $0, "listBanaccount"; + symlink $0, "listGMaccount"; + symlink $0, "listOKaccount"; + symlink $0, "memoaccount"; + symlink $0, "nameaccount"; + symlink $0, "passwdaccount"; + symlink $0, "reloadGM"; + symlink $0, "searchaccount"; + symlink $0, "sexaccount"; + symlink $0, "stateaccount"; + symlink $0, "timeaddaccount"; + symlink $0, "timesetaccount"; + symlink $0, "unbanaccount"; + symlink $0, "unblockaccount"; + symlink $0, "whoaccount"; + if ($defaultlanguage eq "F") { + print "Liens symbliques cr鳬s.\n"; + } else { + print "Symbolic links created.\n"; + } + exit(0); +} + +# Connection to the login-server +my($so,$er) = (); +eval{ + $so = IO::Socket::INET->new( + PeerAddr=> $loginserverip, + PeerPort=> $loginserverport, +# Proto => "tcp", + Timeout => $connecttimeout) or $er = 1; +}; +if ($er || $@) { + if ($defaultlanguage eq "F") { + print "\nImpossible de se connecter au serveur de login [${loginserverip}:$loginserverport] !\n"; + } else { + print "\nImpossible to have a connection with the login-server [${loginserverip}:$loginserverport] !\n"; + } + print "$!\n"; # Displaying of the error + exit(2); +} + +# Sending the administration password +if ($passenc == 0) { + print $so pack("v2a24",0x7918,0,$loginserveradminpassword); + $so->flush(); +} else { + print $so pack("v",0x791a); + $so->flush(); + my($buf) = readso(4); + if (unpack("v",$buf) != 0x01dc) { + if ($defaultlanguage eq "F") { + print "Erreur au login (馗hec de la cr饌tion de la clef md5).\n"; + } else { + print "Error at login (failure of the md5 key creation).\n"; + } + } + $buf = readso(unpack("x2v",$buf)-4); + my($md5bin) = md5(($passenc == 1) ? $buf.$loginserveradminpassword : $loginserveradminpassword.$buf); + print $so pack("v2a16",0x7918,$passenc,$md5bin); + $so->flush(); +} + +# Waiting of the server reply +my($buf) = readso(3); + +if (unpack("v",$buf) != 0x7919 || unpack("x2c",$buf) != 0) { + if ($defaultlanguage eq "F") { + print "Erreur de login:\n"; + print " - mot de passe incorrect,\n"; + print " - syst鑪e d'administration non activ, ou\n"; + print " - IP non autoris馥.\n"; + } else { + print "Error at login:\n"; + print " - incorrect password,\n"; + print " - administration system not activated, or\n"; + print " - unauthorised IP.\n"; + } + quit(); + exit(4); +} + +if ($defaultlanguage eq "F") { + print "Connexion 騁ablie.\n"; +} else { + print "Established connection.\n"; +} + +#------------------------------------------------------------------------- +# Here are checked the command lines with arguments and symbolic links (no prompt) + +if ($0 =~ /addaccount$/ || + (($ARGV[0] eq "-a" || $ARGV[0] eq "--add") && ((shift @ARGV), 1))) { + my($r) = addaccount($ARGV[0], $ARGV[1], $ARGV[2]); + quit(); + exit($r); +} elsif ($0 =~ /banaccount$/ || $0 =~ /banishaccount$/ || + (($ARGV[0] eq "-b" || $ARGV[0] eq "--ban" || $ARGV[0] eq "--banish") && ((shift @ARGV), 1))) { + my($r) = bansetaccount($ARGV[1], $ARGV[2], $ARGV[0]); + quit(); + exit($r); +} elsif ($0 =~ /banaddaccount$/ || + (($ARGV[0] eq "-ba" || $ARGV[0] eq "--banadd") && ((shift @ARGV), 1))) { + my($r) = banaddaccount($ARGV[0], $ARGV[1]); + quit(); + exit($r); +} elsif ($0 =~ /bansetaccount$/ || + (($ARGV[0] eq "-bs" || $ARGV[0] eq "--banset") && ((shift @ARGV), 1))) { + my($r) = bansetaccount($ARGV[0], $ARGV[1], $ARGV[2]); + quit(); + exit($r); +} elsif ($0 =~ /blockaccount$/ || + (($ARGV[0] eq "-bl" || $ARGV[0] eq "--block") && ((shift @ARGV), 1))) { + my($r) = changestate($ARGV[0], 5, ""); + quit(); + exit($r); +} elsif ($0 =~ /checkaccount$/ || + (($ARGV[0] eq "-check" || $ARGV[0] eq "--check") && ((shift @ARGV), 1))) { + my($r) = checkaccount($ARGV[0], $ARGV[1]); + quit(); + exit($r); +} elsif ($0 =~ /createaccount$/ || + (($ARGV[0] eq "-c" || $ARGV[0] eq "--create") && ((shift @ARGV), 1))) { + my($r) = createaccount($ARGV[0], $ARGV[1], $ARGV[2], $ARGV[3]); + quit(); + exit($r); +} elsif ($0 =~ /delaccount$/ || + (($ARGV[0] eq "-d" || $ARGV[0] eq "--del") && ((shift @ARGV), 1))) { + my($r) = delaccount($ARGV[0]); + quit(); + exit($r); +} elsif ($0 =~ /emailaccount$/ || + (($ARGV[0] eq "-e" || $ARGV[0] eq "--email") && ((shift @ARGV), 1))) { + my($r) = changeemail($ARGV[0], $ARGV[1]); + quit(); + exit($r); +} elsif ($0 =~ /getcount$/ || + (($ARGV[0] eq "-g" || $ARGV[0] eq "--getcount") && ((shift @ARGV), 1))) { + my($r) = getlogincount(); + quit(); + exit($r); +} elsif ($0 =~ /gmaccount$/ || + (($ARGV[0] eq "-gm" || $ARGV[0] eq "--gm") && ((shift @ARGV), 1))) { + my($r) = changegmlevel($ARGV[0], $ARGV[1]); + quit(); + exit($r); +} elsif ($0 =~ /id$/ || + (($ARGV[0] eq "-i" || $ARGV[0] eq "--id") && ((shift @ARGV), 1))) { + my($r) = idaccount($ARGV[0]); + quit(); + exit($r); +} elsif ($0 =~ /infoaccount$/ || + (($ARGV[0] eq "-info" || $ARGV[0] eq "--info") && ((shift @ARGV), 1))) { + my($r) = infoaccount($ARGV[0]); + quit(); + exit($r); +} elsif ($0 =~ /kami$/ || + (($ARGV[0] eq "-kami" || $ARGV[0] eq "--kami") && ((shift @ARGV), 1))) { + my($r) = sendbroadcast(0, $ARGV[0]); + quit(); + exit($r); +} elsif ($0 =~ /kamib$/ || + (($ARGV[0] eq "-kamib" || $ARGV[0] eq "--kamib") && ((shift @ARGV), 1))) { + my($r) = sendbroadcast(0x10, $ARGV[0]); + quit(); + exit($r); +} elsif ($0 =~ /ladminlanguage$/ || + (($ARGV[0] eq "-lang" || $ARGV[0] eq "--language") && ((shift @ARGV), 1))) { + my($r) = changelanguage($ARGV[0]); + quit(); + exit($r); +} elsif ($0 =~ /listaccount$/ || + (($ARGV[0] eq "-l" || $ARGV[0] eq "--list") && ((shift @ARGV), 1))) { + my($r) = listaccount(int($ARGV[0]), int($ARGV[1]), 0); # 0: to list all + quit(); + exit($r); +} elsif ($0 =~ /listBanaccount$/ || + (($ARGV[0] eq "-lBan" || $ARGV[0] eq "--listBan") && ((shift @ARGV), 1))) { + my($r) = listaccount(int($ARGV[0]), int($ARGV[1]), 3); # 3: to list only accounts with state or banished + quit(); + exit($r); +} elsif ($0 =~ /listGMaccount$/ || + (($ARGV[0] eq "-lGM" || $ARGV[0] eq "--listGM") && ((shift @ARGV), 1))) { + my($r) = listaccount(int($ARGV[0]), int($ARGV[1]), 1); # 1: to list only GM + quit(); + exit($r); +} elsif ($0 =~ /listOKaccount$/ || + (($ARGV[0] eq "-lOK" || $ARGV[0] eq "--listOK") && ((shift @ARGV), 1))) { + my($r) = listaccount(int($ARGV[0]), int($ARGV[1]), 4); # 4: to list only accounts without state and not banished + quit(); + exit($r); +} elsif ($0 =~ /loginserverversion$/ || + (($ARGV[0] eq "-v" || $ARGV[0] eq "--version") && ((shift @ARGV), 1))) { + my($r) = checkloginversion(); + quit(); + exit($r); +} elsif ($0 =~ /memoaccount$/ || + (($ARGV[0] eq "-m" || $ARGV[0] eq "--memo") && ((shift @ARGV), 1))) { + my($r) = changememo($ARGV[0], $ARGV[1]); + quit(); + exit($r); +} elsif ($0 =~ /nameaccount$/ || + (($ARGV[0] eq "-n" || $ARGV[0] eq "--name") && ((shift @ARGV), 1))) { + my($r) = nameaccount(int($ARGV[0])); + quit(); + exit($r); +} elsif ($0 =~ /passwdaccount$/ || + (($ARGV[0] eq "-p" || $ARGV[0] eq "--passwd") && ((shift @ARGV), 1))) { + my($r) = changepasswd($ARGV[0], $ARGV[1]); + quit(); + exit($r); +} elsif ($0 =~ /reloadGM$/ || + (($ARGV[0] eq "-r" || $ARGV[0] eq "--reloadGM") && ((shift @ARGV), 1))) { + my($r) = reloadGM(); + quit(); + exit($r); +} elsif ($0 =~ /searchaccount$/ || + (($ARGV[0] eq "-s" || $ARGV[0] eq "--search") && ((shift @ARGV), 1))) { + my($r) = searchaccount($ARGV[0], $ARGV[1]); + quit(); + exit($r); +} elsif ($0 =~ /sexaccount$/ || + (($ARGV[0] eq "-sex" || $ARGV[0] eq "--sex") && ((shift @ARGV), 1))) { + my($r) = changesex($ARGV[0], $ARGV[1]); + quit(); + exit($r); +} elsif ($0 =~ /stateaccount$/ || + (($ARGV[0] eq "-t" || $ARGV[0] eq "--state") && ((shift @ARGV), 1))) { + my($r) = changestate($ARGV[0], $ARGV[1], $ARGV[2]); + quit(); + exit($r); +} elsif ($0 =~ /timeaddaccount$/ || + (($ARGV[0] eq "-ta" || $ARGV[0] eq "--timeadd") && ((shift @ARGV), 1))) { + my($r) = timeaddaccount($ARGV[0], $ARGV[1]); + quit(); + exit($r); +} elsif ($0 =~ /timesetaccount$/ || + (($ARGV[0] eq "-ts" || $ARGV[0] eq "--timeset") && ((shift @ARGV), 1))) { + my($r) = timesetaccount($ARGV[0], $ARGV[1], $ARGV[2]); + quit(); + exit($r); +} elsif ($0 =~ /unbanaccount$/ || $0 =~ /unbanishaccount$/ || + (($ARGV[0] eq "-uba" || $ARGV[0] eq "--unban" || $ARGV[0] eq "--unbanish") && ((shift @ARGV), 1))) { + my($r) = bansetaccount($ARGV[0], 0, ""); + quit(); + exit($r); +} elsif ($0 =~ /unblockaccount$/ || + (($ARGV[0] eq "-ubl" || $ARGV[0] eq "--unblock") && ((shift @ARGV), 1))) { + my($r) = changestate($ARGV[0], 0, ""); + quit(); + exit($r); +} elsif ($0 =~ /whoaccount$/ || + (($ARGV[0] eq "-w" || $ARGV[0] eq "--who") && ((shift @ARGV), 1))) { + my($r) = whoaccount($ARGV[0]); + quit(); + exit($r); +} + +#------------------------------------------------------------------------- +if ($defaultlanguage eq "F") { + print "Lecture de la version du serveur de login...\n"; +} else { + print "Reading of the version of the login-server...\n"; +} +checkloginversion(); + +# Set the prompt line +my($term) = new Term::ReadLine "ladmin"; + +# Here begin the infinite loop to read prompts +while(1) { + # Displaying of the prompt + print "\n"; + if ($defaultlanguage eq "F") { + printf "\033[32mPour afficher les commandes, tapez 'Entr馥'.\033[0m\n"; + } else { + printf "\033[32mTo list the commands, type 'enter'.\033[0m\n"; + } + my($cmd) = $term->readline("ladmin> "); + # split and recovery of the input + chomp $cmd; # remove cariage return + $cmd =~ s/\x1b\[\d*\w//g; # remove (esc)[(number)(1alpha) = screen control sequence + $cmd =~ s/[\x00-\x1f]//g; # remove control char + my($command, $parameters) = split /\s+/,$cmd,2; # extract command and parameters + $command = lc($command); # command in lowercase + my(@paramlist) = split /\s+/,$parameters; # get list of parameters + + if ($command eq "?" || $command eq "") { + $command = "aide" if ($defaultlanguage eq "F"); + $command = "help" if ($defaultlanguage ne "F"); + } + + # Analyse of the command + eval { +# help + if ("aide" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? + displayhelp("aide", $paramlist[0]); + } elsif ("help" =~ /^\Q$command/) { + displayhelp("help", $paramlist[0]); + +# general commands + } elsif ("add" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(.*)/)) { + addaccount($paramlist[0], $paramlist[1], $paramlist[2]); # + } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { + addaccount($paramlist[0], $paramlist[1], ""); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(.*)/)) { + addaccount($paramlist[0], $paramlist[1], $paramlist[2]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { + addaccount($paramlist[0], $paramlist[1], ""); # + } else { + @paramlist = split /\s+/,$parameters; + addaccount($paramlist[0], $paramlist[1], $paramlist[2]); # + } + + } elsif ($command eq "ban" || ("banish" =~ /^\Q$command/ && length($command) >= 4)) { + if (@paramlist = ($parameters =~ m/^(\S+)\s+(\S+)\s+"(.*)"/)) { # yyyy/mm/dd hh:mm:ss + bansetaccount($paramlist[2], $paramlist[0], $paramlist[1]); # yyyy/mm/dd [hh:mm:ss] + } elsif (@paramlist = ($parameters =~ m/^(\S+)\s+(\S+)\s+'(.*)'/)) { # yyyy/mm/dd hh:mm:ss + bansetaccount($paramlist[2], $paramlist[0], $paramlist[1]); # yyyy/mm/dd [hh:mm:ss] + } else { + @paramlist = split /\s+/,$parameters,3; # yyyy/mm/dd hh:mm:ss + bansetaccount($paramlist[2], $paramlist[0], $paramlist[1]); # yyyy/mm/dd [hh:mm:ss] + } + + } elsif (("banadd" =~ /^\Q$command/ || $command eq "ba") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { + banaddaccount($paramlist[0], $paramlist[1]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { + banaddaccount($paramlist[0], $paramlist[1]); # + } else { + @paramlist = split /\s+/,$parameters; + banaddaccount($paramlist[0], $paramlist[1]); # + } + + } elsif (("banset" =~ /^\Q$command/ || $command eq "bs") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(\S+)/)) { + bansetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] + } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { + bansetaccount($paramlist[0], $paramlist[1], "23:59:59"); # yyyy/mm/dd [hh:mm:ss] + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(\S+)/)) { + bansetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { + bansetaccount($paramlist[0], $paramlist[1], "23:59:59"); # yyyy/mm/dd [hh:mm:ss] + } else { + @paramlist = split /\s+/,$parameters; + bansetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] + } + + } elsif ("block" =~ /^\Q$command/ && length($command) >= 2) { + if (@paramlist = ($parameters =~ m/^"(.*)"/)) { + changestate($paramlist[0], 5, ""); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { + changestate($paramlist[0], 5, ""); # + } else { + @paramlist = split /\s+/,$parameters,1; + changestate($paramlist[0], 5, ""); # + } + + } elsif ("check" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(.*)/)) { + checkaccount($paramlist[0], $paramlist[1]); # + } elsif (@paramlist = ($parameters =~ m/^"(.*)"/)) { + checkaccount($paramlist[0], ""); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(.*)/)) { + checkaccount($paramlist[0], $paramlist[1]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { + checkaccount($paramlist[0], ""); # + } else { + @paramlist = split /\s+/,$parameters; + checkaccount($paramlist[0], $paramlist[1]); # + } + + } elsif ("create" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(\S+)\s+(.*)/)) { + createaccount($paramlist[0], $paramlist[1], $paramlist[2], $paramlist[3]); # + } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(\S+)/)) { + createaccount($paramlist[0], $paramlist[1], $paramlist[2], ""); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(\S+)\s+(.*)/)) { + createaccount($paramlist[0], $paramlist[1], $paramlist[2], $paramlist[3]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(\S+)/)) { + createaccount($paramlist[0], $paramlist[1], $paramlist[2], ""); # + } else { + @paramlist = split /\s+/,$parameters; + createaccount($paramlist[0], $paramlist[1], $paramlist[2], $paramlist[3]); # + } + + } elsif ("del" =~ /^\Q$command/ || "delete" =~ /^\Q$command/) { + if (@paramlist = ($parameters =~ m/^"(.*)"/)) { + delaccount($paramlist[0]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { + delaccount($paramlist[0]); # + } else { + @paramlist = split /\s+/,$parameters,1; + delaccount($paramlist[0]); # + } + + } elsif ("email" =~ /^\Q$command/ && $command ne "e") { # check 1 letter command: 'email', 'end' or 'exit'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { + changeemail($paramlist[0], $paramlist[1]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { + changeemail($paramlist[0], $paramlist[1]); # + } else { + @paramlist = split /\s+/,$parameters; + changeemail($paramlist[0], $paramlist[1]); # + } + + } elsif ("getcount" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? + getlogincount(); + + } elsif ("gm" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { + changegmlevel($paramlist[0], int($paramlist[1])); # + } elsif (@paramlist = ($parameters =~ m/^"(.*)"/)) { + changegmlevel($paramlist[0], 0); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { + changegmlevel($paramlist[0], int($paramlist[1])); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { + changegmlevel($paramlist[0], 0); # + } else { + @paramlist = split /\s+/,$parameters; + changegmlevel($paramlist[0], int($paramlist[1])); # + } + + } elsif ("id" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? + if (@paramlist = ($parameters =~ m/^"(.*)"/)) { + idaccount($paramlist[0]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { + idaccount($paramlist[0]); # + } else { + @paramlist = split /\s+/,$parameters,1; + idaccount($paramlist[0]); # + } + + } elsif ("info" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? + infoaccount(int($paramlist[0])); # + + } elsif ($command eq "kami") { # check all letters command: 'kami' or 'kamib'? + @paramlist = split /\s+/,$parameters,1; + sendbroadcast(0, $paramlist[0]); # + + } elsif ($command eq "kamib") { # check all letters command: 'kami' or 'kamib'? + @paramlist = split /\s+/,$parameters,1; + sendbroadcast(0x10, $paramlist[0]); # + + } elsif ("language" =~ /^\Q$command/ && $command ne "l") { # check 1 letter command: 'list' or 'language'? + changelanguage($paramlist[0]); # + + } elsif (("list" =~ /^\Q$command/ || $command eq "ls") && $command ne "l") { # check 1 letter command: 'list' or 'language'? + listaccount(int($paramlist[0]), int($paramlist[1]), 0); # [start_id [end_id]] 0: to list all + + } elsif (("listban" =~ /^\Q$command/ || $command eq "lsban") && $command ne "l") { # need to specificaly write Ban to have this list # check 1 letter command: 'list' or 'language'? + listaccount(int($paramlist[0]), int($paramlist[1]), 3); # [start_id [end_id]] 3: to list only accounts with state or banished + + } elsif (("listgm" =~ /^\Q$command/ || $command eq "lsgm") && $command ne "l") { # need to specificaly write GM to have this list # check 1 letter command: 'list' or 'language'? + listaccount(int($paramlist[0]), int($paramlist[1]), 1); # [start_id [end_id]] 1: to list only GM + + } elsif (("listok" =~ /^\Q$command/ || $command eq "lsok") && $command ne "l") { # need to specificaly write OK to have this list # check 1 letter command: 'list' or 'language'? + listaccount(int($paramlist[0]), int($paramlist[1]), 4); # [start_id [end_id]] 4: to list only accounts without state and not banished + + } elsif ("memo" =~ /^\Q$command/) { + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(.*)/)) { + changememo($paramlist[0], $paramlist[1]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(.*)/)) { + changememo($paramlist[0], $paramlist[1]); # + } else { + @paramlist = split /\s+/,$parameters,2; + changememo($paramlist[0], $paramlist[1]); # + } + + } elsif ("name" =~ /^\Q$command/) { + nameaccount(int($paramlist[0])); # + + } elsif ("passwd" =~ /^\Q$command/ || "password" =~ /^\Q$command/) { + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(.*)/)) { + changepasswd($paramlist[0], $paramlist[1]); # + } elsif (@paramlist = ($parameters =~ m/^"(.*)"/)) { + changepasswd($paramlist[0], ""); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(.*)/)) { + changepasswd($paramlist[0], $paramlist[1]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { + changepasswd($paramlist[0], ""); # + } else { + @paramlist = split /\s+/,$parameters,2; + changepasswd($paramlist[0], $paramlist[1]); # + } + + } elsif ("reloadgm" =~ /^\Q$command/) { + reloadGM(); + + } elsif ("search" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? + $command ne "se") { # check 2 letters command: 'search' or 'sex'? + if (@paramlist = ($parameters =~ m/^(-{1,2}[re]\S*)\s+(.*)/)) { + searchaccount($paramlist[0], $paramlist[1]); # -r/-e/--expr/--regex | + } else { + @paramlist = split /\s+/,$parameters,1; + searchaccount($paramlist[0], ""); # -r/-e/--expr/--regex | + } + + } elsif ("sex" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? + $command ne "se") { # check 2 letters command: 'search' or 'sex'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { + changesex($paramlist[0], $paramlist[1]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { + changesex($paramlist[0], $paramlist[1]); # + } else { + @paramlist = split /\s+/,$parameters; + changesex($paramlist[0], $paramlist[1]); # + } + + } elsif ("state" =~ /^\Q$command/ && $command ne "s") { # check 1 letter command: 'search', 'state' or 'sex'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\d+)\s+(.*)/)) { + changestate($paramlist[0], int($paramlist[1]), $paramlist[2]); # + } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\d+)/)) { + changestate($paramlist[0], int($paramlist[1]), ""); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\d+)\s+(.*)/)) { + changestate($paramlist[0], int($paramlist[1]), $paramlist[2]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\d+)/)) { + changestate($paramlist[0], int($paramlist[1]), ""); # + } else { + @paramlist = split /\s+/,$parameters,3; + changestate($paramlist[0], int($paramlist[1]), $paramlist[2]); # + } + + } elsif (("timeadd" =~ /^\Q$command/ || $command eq "ta") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { + timeaddaccount($paramlist[0], $paramlist[1]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { + timeaddaccount($paramlist[0], $paramlist[1]); # + } else { + @paramlist = split /\s+/,$parameters; + timeaddaccount($paramlist[0], $paramlist[1]); # + } + + } elsif (("timeset" =~ /^\Q$command/ || $command eq "ts") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? + if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(\S+)/)) { + timesetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] + } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { + timesetaccount($paramlist[0], $paramlist[1], "23:59:59"); # yyyy/mm/dd [hh:mm:ss] + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(\S+)/)) { + timesetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] + } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { + timesetaccount($paramlist[0], $paramlist[1], "23:59:59"); # yyyy/mm/dd [hh:mm:ss] + } else { + @paramlist = split /\s+/,$parameters; + timesetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] + } + + } elsif ($command eq "unban" || ("unbanish" =~ /^\Q$command/ && length($command) >= 4)) { + if (@paramlist = ($parameters =~ m/^"(.*)"/)) { + bansetaccount($paramlist[0], 0, ""); # yyyy/mm/dd [hh:mm:ss] + } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { + bansetaccount($paramlist[0], 0, ""); # yyyy/mm/dd [hh:mm:ss] + } else { + @paramlist = split /\s+/,$parameters,1; + bansetaccount($paramlist[0], 0, ""); # yyyy/mm/dd [hh:mm:ss] + } + + } elsif ("unblock" =~ /^\Q$command/ && length($command) >= 4) { + if (@paramlist = ($parameters =~ m/^"(.*)"/)) { + changestate($paramlist[0], 0, ""); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { + changestate($paramlist[0], 0, ""); # + } else { + @paramlist = split /\s+/,$parameters,1; + changestate($paramlist[0], 0, ""); # + } + + } elsif ("version" =~ /^\Q$command/) { + checkloginversion(); + + } elsif ("who" =~ /^\Q$command/) { + if (@paramlist = ($parameters =~ m/^"(.*)"/)) { + whoaccount($paramlist[0]); # + } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { + whoaccount($paramlist[0]); # + } else { + @paramlist = split /\s+/,$parameters,1; + whoaccount($paramlist[0]); # + } + +# quit + } elsif ("quit" =~ /^\Q$command/ || + (("end" =~ /^\Q$command/ || "exit" =~ /^\Q$command/) && $command ne "e")) { # check 1 letter command: 'email', 'end' or 'exit'? + last; + +# unknown command + } elsif ($command) { + if ($defaultlanguage eq "F") { + print "Commande inconnue [".$command."]\n"; + } else { + print "Unknown command [".$command."]\n"; + } + } +# $term->addhistory($cmd) if $command; + }; + if ($@) { + if ($defaultlanguage eq "F") { + print "Erreur [".$command."]\n$@"; + } else { + print "Error [".$command."]\n$@"; + } + } +}; + +# End of the software +quit(); + +if ($defaultlanguage eq "F") { + print "Au revoir.\n"; +} else { + print "Bye.\n"; +} +exit(0); + +#-------------------------------------------------------------------------- + +# Sub-function: Displaying of the version of the login-server +sub checkloginversion() { + print $so pack("v",30000); # 0x7530 + $so->flush(); + $buf = readso(10); + # Analyse du Packet + my($ret, $maver, $miver, $rev, $dev, $mod, $type, $mdver) = unpack("vc6v", $buf); + if ($ret != 30001) { #0x7531 + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + exit(6); + } + + print " Login-Server [$loginserverip:$loginserverport]\n"; + printf " eAthena version %s-%d.%d", ("stable", "dev")[$dev], $maver, $miver; + printf " revision %d", $rev if $rev; + printf "%s%d.\n", ("", "-mod")[$mod], $mdver; + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Displaying of the help +sub displayhelp() { + my($help, $receivedcommand) = @_; + + my($command) = lc($receivedcommand); # command in lowercase + + if ($command eq "") { + $command = "not a command"; # any value that is not a command + } + + if ($command eq "?") { + $command = "aide" if ($defaultlanguage eq "F"); + $command = "help" if ($defaultlanguage ne "F"); + } + + if ($help eq "aide") { + if ("aide" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? + printf "aide/help/?\n"; + printf " Affiche la description des commandes\n"; + printf "aide/help/? [commande]\n"; + printf " Affiche la description de la commande specifi馥\n"; + } elsif ("help" =~ /^\Q$command/) { + printf "aide/help/?\n"; + printf " Display the description of the commands\n"; + printf "aide/help/? [command]\n"; + printf " Display the description of the specified command\n"; + } elsif ("add" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? + printf "add \n"; + printf " Cr馥 un compte avec l'email par d馭aut (a\@a.com).\n"; + printf " Concernant le sexe, seule la premi鑽e lettre compte (F ou M).\n"; + printf " L'e-mail est a\@a.com (e-mail par d馭aut). C'est comme n'avoir aucun e-mail.\n"; + printf " Lorsque motdepasse est omis, la saisie se fait sans que la frappe se voit.\n"; + printf " add testname Male testpass\n"; + } elsif ($command eq "ban" || ("banish" =~ /^\Q$command/ && length($command) >= 4)) { + printf "ban/banish aaaa/mm/jj hh:mm:ss \n"; + printf " Change la date de fin de bannissement d'un compte.\n"; + printf " La diff駻ence avec banset est la position du nom du compte.\n"; + } elsif (("banadd" =~ /^\Q$command/ || $command eq "ba") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? + printf "banadd \n"; + printf " Ajoute ou soustrait du temps la date de banissement d'un compte.\n"; + printf " Les modificateurs sont construits comme suit:\n"; + printf " Valeur d'ajustement (-1, 1, +1, etc...)\n"; + printf " El駑ent modifi:\n"; + printf " a ou y: ann馥\n"; + printf " m: mois\n"; + printf " j ou d: jour\n"; + printf " h: heure\n"; + printf " mn: minute\n"; + printf " s: seconde\n"; + printf " banadd testname +1m-2mn1s-6a\n"; + printf " Cette exemple ajoute 1 mois et une seconde, et soustrait 2 minutes\n"; + printf " et 6 ans dans le m麥e temps.\n"; + printf "NOTE: Si vous modifez la date de banissement d'un compte non bani,\n"; + printf " vous indiquez comme date (le moment actuel +- les ajustements)\n"; + } elsif (("banset" =~ /^\Q$command/ || $command eq "bs") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? + printf "banset aaaa/mm/jj [hh:mm:ss]\n"; + printf " Change la date de fin de bannissement d'un compte.\n"; + printf " Heure par d馭aut: 23:59:59\n"; + printf "banset 0\n"; + printf " D饕anni un compte (0 = de-banni).\n"; + } elsif ("block" =~ /^\Q$command/ && length($command) >= 2) { + printf "block \n"; + printf " Place le status d'un compte 5 (You have been blocked by the GM Team).\n"; + printf " La commande est l'駲uivalent de state 5.\n"; + } elsif ("check" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? + printf "check \n"; + printf " V駻ifie la validit d'un mot de passe pour un compte\n"; + printf " NOTE: Le serveur n'enverra jamais un mot de passe.\n"; + printf " C'est la seule m騁hode que vous poss馘ez pour savoir\n"; + printf " si un mot de passe est le bon. L'autre m騁hode est\n"; + printf " d'avoir un acc鑚 ('physique') au fichier des comptes.\n"; + } elsif ("create" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? + printf "create \n"; + printf " Comme la commande add, mais avec l'e-mail en plus.\n"; + printf " create testname Male mon\@mail.com testpass\n"; + } elsif ("del" =~ /^\Q$command/ || "delete" =~ /^\Q$command/) { + printf "del \n"; + printf " Supprime un compte.\n"; + printf " La commande demande confirmation. Apr鑚 confirmation, le compte est d騁ruit.\n"; + } elsif ("email" =~ /^\Q$command/ && $command ne "e") { # check 1 letter command: 'email', 'end' or 'exit'? + printf "email \n"; + printf " Modifie l'e-mail d'un compte.\n"; + } elsif ("getcount" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? + printf "getcount\n"; + printf " Donne le nombre de joueurs en ligne par serveur de char.\n"; + } elsif ("gm" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? + printf "gm [Niveau_GM]\n"; + printf " Modifie le niveau de GM d'un compte.\n"; + printf " Valeur par d馭aut: 0 (suppression du niveau de GM).\n"; + printf " gm nomtest 80\n"; + } elsif ("id" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? + printf "id \n"; + printf " Donne l'id d'un compte.\n"; + } elsif ("info" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? + printf "info \n"; + printf " Affiche les informations sur un compte.\n"; + } elsif ($command eq "kami") { # check all letters command: 'kami' or 'kamib'? + printf "kami \n"; + printf " Envoi un message g駭駻al sur tous les serveurs de map (en jaune).\n"; + } elsif ($command eq "kamib") { # check all letters command: 'kami' or 'kamib'? + printf "kamib \n"; + printf " Envoi un message g駭駻al sur tous les serveurs de map (en bleu).\n"; + } elsif ("language" =~ /^\Q$command/ && $command ne "l") { # check 1 letter command: 'list' or 'language'? + printf("language \n"); + printf(" Change la langue d'affichage.\n"); + printf(" Langues possibles: 'Fran軋is' ou 'English'.\n"); + } elsif (("list" =~ /^\Q$command/ || $command eq "ls") && $command ne "l") { # check 1 letter command: 'list' or 'language'? + printf "list/ls [Premier_id [Dernier_id]]\n"; + printf " Affiche une liste de comptes.\n"; + printf " 'Premier_id', 'Dernier_id': indique les identifiants de d駱art et de fin.\n"; + printf " La recherche par nom n'est pas possible avec cette commande.\n"; + printf " list 10 9999999\n"; + } elsif (("listban" =~ /^\Q$command/ || $command eq "lsban") && $command ne "l") { # need to specificaly write Ban to have this list # check 1 letter command: 'list' or 'language'? + printf "listBan/lsBan [Premier_id [Dernier_id]]\n"; + printf " Comme list/ls, mais seulement pour les comptes GM avec un statut ou bannis.\n"; + } elsif (("listgm" =~ /^\Q$command/ || $command eq "lsgm") && $command ne "l") { # need to specificaly write GM to have this list # check 1 letter command: 'list' or 'language'? + printf "listGM/lsGM [Premier_id [Dernier_id]]\n"; + printf " Comme list/ls, mais seulement pour les comptes GM.\n"; + } elsif (("listok" =~ /^\Q$command/ || $command eq "lsok") && $command ne "l") { # need to specificaly write OK to have this list # check 1 letter command: 'list' or 'language'? + printf "listOK/lsOK [Premier_id [Dernier_id]]\n"; + printf " Comme list/ls, mais seulement pour les comptes sans statut et non bannis.\n"; + } elsif ("memo" =~ /^\Q$command/) { + printf "memo \n"; + printf " Modifie le m駑o d'un compte.\n"; + printf " 'memo': Il peut avoir jusqu' 253 caract鑽es (avec des espaces ou non).\n"; + } elsif ("name" =~ /^\Q$command/) { + printf "name \n"; + printf " Donne le nom d'un compte.\n"; + } elsif ("passwd" =~ /^\Q$command/ || "password" =~ /^\Q$command/) { + printf "passwd \n"; + printf " Change le mot de passe d'un compte.\n"; + printf " Lorsque nouveaumotdepasse est omis,\n"; + printf " la saisie se fait sans que la frappe ne se voit.\n"; + } elsif ("reloadgm" =~ /^\Q$command/) { + printf "reloadGM\n"; + printf " Reload GM configuration file\n"; + } elsif ("search" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? + $command ne "se") { # check 2 letters command: 'search' or 'sex'? + printf "search \n"; + printf " Cherche des comptes.\n"; + printf " Affiche les comptes dont les noms correspondent.\n"; + printf "search -r/-e/--expr/--regex \n"; + printf " Cherche des comptes par expression reguli鑽e.\n"; + printf " Affiche les comptes dont les noms correspondent.\n"; + } elsif ("sex" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? + $command ne "se") { # check 2 letters command: 'search' or 'sex'? + printf "sex \n"; + printf " Modifie le sexe d'un compte.\n"; + printf " sex testname Male\n"; + } elsif ("state" =~ /^\Q$command/ && $command ne "s") { # check 1 letter command: 'search', 'state' or 'sex'? + printf "state \n"; + printf " Change le statut d'un compte.\n"; + printf " 'nouveaustatut': Le statut est le m麥e que celui du packet 0x006a + 1.\n"; + printf " les possibilit駸 sont:\n"; + printf " 0 = Compte ok\n"; + printf " 1 = Unregistered ID\n"; + printf " 2 = Incorrect Password\n"; + printf " 3 = This ID is expired\n"; + printf " 4 = Rejected from Server\n"; + printf " 5 = You have been blocked by the GM Team\n"; + printf " 6 = Your Game's EXE file is not the latest version\n"; + printf " 7 = You are Prohibited to log in until...\n"; + printf " 8 = Server is jammed due to over populated\n"; + printf " 9 = No MSG\n"; + printf " 100 = This ID has been totally erased\n"; + printf " all other values are 'No MSG', then use state 9 please.\n"; + printf " 'message_erreur_7': message du code erreur 6 =\n"; + printf " = Your are Prohibited to log in until... (packet 0x006a)\n"; + } elsif (("timeadd" =~ /^\Q$command/ || $command eq "ta") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? + printf "timeadd \n"; + printf " Ajoute/soustrait du temps la limite de validit d'un compte.\n"; + printf " Le modificateur est compos comme suit:\n"; + printf " Valeur modificatrice (-1, 1, +1, etc...)\n"; + printf " El駑ent modifi:\n"; + printf " a ou y: ann馥\n"; + printf " m: mois\n"; + printf " j ou d: jour\n"; + printf " h: heure\n"; + printf " mn: minute\n"; + printf " s: seconde\n"; + printf " timeadd testname +1m-2mn1s-6a\n"; + printf " Cette exemple ajoute 1 mois et une seconde, et soustrait 2 minutes\n"; + printf " et 6 ans dans le m麥e temps.\n"; + printf "NOTE: Vous ne pouvez pas modifier une limite de validit illimit馥. Si vous\n"; + printf " d駸irez le faire, c'est que vous voulez probablement cr馥r un limite de\n"; + printf " validit limit馥. Donc, en premier, fix une limite de valitid.\n"; + } elsif (("timeset" =~ /^\Q$command/ || $command eq "ts") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? + printf "timeset aaaa/mm/jj [hh:mm:ss]\n"; + printf " Change la limite de validit d'un compte.\n"; + printf " Heure par d馭aut: 23:59:59\n"; + printf "timeset 0\n"; + printf " Donne une limite de validit illimit馥 (0 = illimit馥).\n"; + } elsif ($command eq "unban" || ("unbanish" =~ /^\Q$command/ && length($command) >= 4)) { + printf "unban/unbanish \n"; + printf " Ote le banissement d'un compte.\n"; + printf " La commande est l'駲uivalent de banset 0.\n"; + } elsif ("unblock" =~ /^\Q$command/ && length($command) >= 4) { + printf "unblock \n"; + printf " Place le status d'un compte 0 (Compte ok).\n"; + printf " La commande est l'駲uivalent de state 0.\n"; + } elsif ("version" =~ /^\Q$command/) { + printf "version\n"; + printf " Affiche la version du login-serveur.\n"; + } elsif ("who" =~ /^\Q$command/) { + printf "who \n"; + printf " Affiche les informations sur un compte.\n"; + } elsif ("quit" =~ /^\Q$command/ || + (("end" =~ /^\Q$command/ || "exit" =~ /^\Q$command/) && $command ne "e")) { # check 1 letter command: 'email', 'end' or 'exit'?\n"; + printf "quit/end/exit\n"; + printf " Fin du programme d'administration.\n"; + } else { + if ($receivedcommand ne "") { + printf "Commande inconnue [%s] pour l'aide. Affichage de toutes les commandes.\n", $receivedcommand; + } + print << "ENDOFAIDE"; + aide/help/? -- Affiche cet aide + aide/help/? [commande] -- Affiche l'aide de la commande + add -- Cr馥 un compte (sans email) + ban/banish aaaa/mm/jj hh:mm:ss -- Change la date finale de banismnt + banadd/ba -- Ajout/soustrait du temps la + exemple: ba moncompte +1m-2mn1s-2y date finale de banissement + banset/bs aaaa/mm/jj [hh:mm:ss] -- Change la date fin de banisemnt + banset/bs 0 -- D-banis un compte. + block -- Mets le status d'un compte 5 (blocked by the GM Team) + check -- V駻ifie un mot de passe d'un compte + create -- Cr馥 un compte (avec email) + del -- Supprime un compte + email -- Modifie l'e-mail d'un compte + getcount -- Donne le nb de joueurs en ligne + gm [Niveau_GM] -- Modifie le niveau de GM d'un compte + id -- Donne l'id d'un compte + info -- Affiche les infos sur un compte + kami -- Envoi un message g駭駻al (en jaune) + kamib -- Envoi un message g駭駻al (en bleu) + language -- Change la langue d'affichage. + list/ls [Premier_id [Dernier_id] ] -- Affiche une liste de comptes + listBan/lsBan [Premier_id [Dernier_id] ]-- Affiche une liste de comptes + avec un statut ou bannis + listGM/lsGM [Premier_id [Dernier_id] ] -- Affiche une liste de comptes GM + listOK/lsOK [Premier_id [Dernier_id] ] -- Affiche une liste de comptes + sans status et non bannis + memo -- Modifie le memo d'un compte + name -- Donne le nom d'un compte + passwd -- Change le mot de passe d'un compte + quit/end/exit -- Fin du programme d'administation + reloadGM -- Recharger le fichier de config des GM + search -- Cherche des comptes + search -e/-r/--expr/--regex -- Cherche des comptes par REGEX + sex -- Modifie le sexe d'un compte + state -- Change le statut d'1 compte + timeadd/ta -- Ajout/soustrait du temps la + exemple: ta moncompte +1m-2mn1s-2y limite de validit + timeset/ts aaaa/mm/jj [hh:mm:ss] -- Change la limite de validit + timeset/ts 0 -- limite de validit = illimit馥 + unban/unbanish -- Ote le banissement d'un compte + unblock -- Mets le status d'un compte 0 (Compte ok) + version -- Donne la version du login-serveur + who -- Affiche les infos sur un compte +ENDOFAIDE + printf(" Note: Pour les noms de compte avec des espaces, tapez \"\" (ou ').\n"); + } + } else { + if ("aide" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? + printf "aide/help/?\n"; + printf " Display the description of the commands\n"; + printf "aide/help/? [command]\n"; + printf " Display the description of the specified command\n"; + } elsif ("help" =~ /^\Q$command/) { + printf "aide/help/?\n"; + printf " Display the description of the commands\n"; + printf "aide/help/? [command]\n"; + printf " Display the description of the specified command\n"; + } elsif ("add" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? + printf "add \n"; + printf " Create an account with the default email (a\@a.com).\n"; + printf " Concerning the sex, only the first letter is used (F or M).\n"; + printf " The e-mail is set to a\@a.com (default e-mail). It's like to have no e-mail.\n"; + printf " When the password is omitted,\n"; + printf " the input is done without displaying of the pressed keys.\n"; + printf " add testname Male testpass\n"; + } elsif ($command eq "ban" || ("banish" =~ /^\Q$command/ && length($command) >= 4)) { + printf "ban/banish yyyy/mm/dd hh:mm:ss \n"; + printf " Changes the final date of a banishment of an account.\n"; + printf " The difference with banset is the position of the account name.\n"; + } elsif (("banadd" =~ /^\Q$command/ || $command eq "ba") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? + printf "banadd \n"; + printf " Adds or substracts time from the final date of a banishment of an account.\n"; + printf " Modifier is done as follows:\n"; + printf " Adjustment value (-1, 1, +1, etc...)\n"; + printf " Modified element:\n"; + printf " a or y: year\n"; + printf " m: month\n"; + printf " j or d: day\n"; + printf " h: hour\n"; + printf " mn: minute\n"; + printf " s: second\n"; + printf " banadd testname +1m-2mn1s-6y\n"; + printf " this example adds 1 month and 1 second, and substracts 2 minutes\n"; + printf " and 6 years at the same time.\n"; + printf "NOTE: If you modify the final date of a non-banished account,\n"; + printf " you fix the final date to (actual time +- adjustments)\n"; + } elsif (("banset" =~ /^\Q$command/ || $command eq "bs") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? + printf "banset yyyy/mm/dd [hh:mm:ss]\n"; + printf " Changes the final date of a banishment of an account.\n"; + printf " Default time: 23:59:59\n"; + printf "banset 0\n"; + printf " Set a non-banished account (0 = unbanished).\n"; + } elsif ("block" =~ /^\Q$command/ && length($command) >= 2) { + printf "block \n"; + printf " Set state 5 (You have been blocked by the GM Team) to an account.\n"; + printf " Same command of state 5.\n"; + } elsif ("check" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? + printf "check \n"; + printf " Check the validity of a password for an account.\n"; + printf " NOTE: Server will never sends back a password.\n"; + printf " It's the only method you have to know if a password is correct.\n"; + printf " The other method is to have a ('physical') access to the accounts file.\n"; + } elsif ("create" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? + printf "create \n"; + printf " Like the 'add' command, but with e-mail moreover.\n"; + printf " create testname Male my\@mail.com testpass\n"; + } elsif ("del" =~ /^\Q$command/ || "delete" =~ /^\Q$command/) { + printf "del \n"; + printf " Remove an account.\n"; + printf " This order requires confirmation. After confirmation, the account is deleted.\n"; + } elsif ("email" =~ /^\Q$command/ && $command ne "e") { # check 1 letter command: 'email', 'end' or 'exit'? + printf "email \n"; + printf " Modify the e-mail of an account.\n"; + } elsif ("getcount" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? + printf "getcount\n"; + printf " Give the number of players online on all char-servers.\n"; + } elsif ("gm" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? + printf "gm [GM_level]\n"; + printf " Modify the GM level of an account.\n"; + printf " Default value remove GM level (GM level = 0).\n"; + printf " gm testname 80\n"; + } elsif ("id" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? + printf "id \n"; + printf " Give the id of an account.\n"; + } elsif ("info" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? + printf "info \n"; + printf " Display complete information of an account.\n"; + } elsif ($command eq "kami") { # check all letters command: 'kami' or 'kamib'? + printf "kami \n"; + printf " Sends a broadcast message on all map-server (in yellow).\n"; + } elsif ($command eq "kamib") { # check all letters command: 'kami' or 'kamib'? + printf "kamib \n"; + printf " Sends a broadcast message on all map-server (in blue).\n"; + } elsif ("language" =~ /^\Q$command/ && $command ne "l") { # check 1 letter command: 'list' or 'language'? + printf("language \n"); + printf(" Change the language of displaying.\n"); + printf(" Possible languages: Fran軋is or English.\n"); + } elsif (("list" =~ /^\Q$command/ || $command eq "ls") && $command ne "l") { # check 1 letter command: 'list' or 'language'? + printf "list/ls [start_id [end_id]]\n"; + printf " Display a list of accounts.\n"; + printf " 'start_id', 'end_id': indicate end and start identifiers.\n"; + printf " Research by name is not possible with this command.\n"; + printf " list 10 9999999\n"; + } elsif (("listban" =~ /^\Q$command/ || $command eq "lsban") && $command ne "l") { # need to specificaly write Ban to have this list # check 1 letter command: 'list' or 'language'? + printf "listBan/lsBan [start_id [end_id]]\n"; + printf " Like list/ls, but only for accounts with state or banished.\n"; + } elsif (("listgm" =~ /^\Q$command/ || $command eq "lsgm") && $command ne "l") { # need to specificaly write GM to have this list # check 1 letter command: 'list' or 'language'? + printf "listGM/lsGM [start_id [end_id]]\n"; + printf " Like list/ls, but only for GM accounts.\n"; + } elsif (("listok" =~ /^\Q$command/ || $command eq "lsok") && $command ne "l") { # need to specificaly write OK to have this list # check 1 letter command: 'list' or 'language'? + printf "listOK/lsOK [start_id [end_id]]\n"; + printf " Like list/ls, but only for accounts without state and not banished.\n"; + } elsif ("memo" =~ /^\Q$command/) { + printf "memo \n"; + printf " Modify the memo of an account.\n"; + printf " 'memo': it can have until 253 characters (with spaces or not).\n"; + } elsif ("name" =~ /^\Q$command/) { + printf "name \n"; + printf " Give the name of an account.\n"; + } elsif ("passwd" =~ /^\Q$command/ || "password" =~ /^\Q$command/) { + printf "passwd \n"; + printf " Change the password of an account.\n"; + printf " When new password is omitted,\n"; + printf " the input is done without displaying of the pressed keys.\n"; + } elsif ("reloadgm" =~ /^\Q$command/) { + printf "reloadGM\n"; + printf " Reload GM configuration file\n"; + } elsif ("search" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? + $command ne "se") { # check 2 letters command: 'search' or 'sex'? + printf "search \n"; + printf " Seek accounts.\n"; + printf " Displays the accounts whose names correspond.\n"; + printf "search -r/-e/--expr/--regex \n"; + printf " Seek accounts by regular expression.\n"; + printf " Displays the accounts whose names correspond.\n"; + } elsif ("sex" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? + $command ne "se") { # check 2 letters command: 'search' or 'sex'? + printf "sex \n"; + printf " Modify the sex of an account.\n"; + printf " sex testname Male\n"; + } elsif ("state" =~ /^\Q$command/ && $command ne "s") { # check 1 letter command: 'search', 'state' or 'sex'? + printf "state \n"; + printf " Change the state of an account.\n"; + printf " 'new_state': state is the state of the packet 0x006a + 1.\n"; + printf " The possibilities are:\n"; + printf " 0 = Account ok\n"; + printf " 1 = Unregistered ID\n"; + printf " 2 = Incorrect Password\n"; + printf " 3 = This ID is expired\n"; + printf " 4 = Rejected from Server\n"; + printf " 5 = You have been blocked by the GM Team\n"; + printf " 6 = Your Game's EXE file is not the latest version\n"; + printf " 7 = You are Prohibited to log in until...\n"; + printf " 8 = Server is jammed due to over populated\n"; + printf " 9 = No MSG\n"; + printf " 100 = This ID has been totally erased\n"; + printf " all other values are 'No MSG', then use state 9 please.\n"; + printf " 'error_message_#7': message of the code error 6\n"; + printf " = Your are Prohibited to log in until... (packet 0x006a)\n"; + } elsif (("timeadd" =~ /^\Q$command/ || $command eq "ta") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? + printf "timeadd \n"; + printf " Adds or substracts time from the validity limit of an account.\n"; + printf " Modifier is done as follows:\n"; + printf " Adjustment value (-1, 1, +1, etc...)\n"; + printf " Modified element:\n"; + printf " a or y: year\n"; + printf " m: month\n"; + printf " j or d: day\n"; + printf " h: hour\n"; + printf " mn: minute\n"; + printf " s: second\n"; + printf " timeadd testname +1m-2mn1s-6y\n"; + printf " this example adds 1 month and 1 second, and substracts 2 minutes\n"; + printf " and 6 years at the same time.\n"; + printf "NOTE: You can not modify a unlimited validity limit.\n"; + printf " If you want modify it, you want probably create a limited validity limit.\n"; + printf " So, at first, you must set the validity limit to a date/time.\n"; + } elsif (("timeset" =~ /^\Q$command/ || $command eq "ts") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? + printf "timeset yyyy/mm/dd [hh:mm:ss]\n"; + printf " Changes the validity limit of an account.\n"; + printf " Default time: 23:59:59\n"; + printf "timeset 0\n"; + printf " Gives an unlimited validity limit (0 = unlimited).\n"; + } elsif ($command eq "unban" || ("unbanish" =~ /^\Q$command/ && length($command) >= 4)) { + printf "unban/unbanish \n"; + printf " Remove the banishment of an account.\n"; + printf " This command works like banset 0.\n"; + } elsif ("unblock" =~ /^\Q$command/ && length($command) >= 4) { + printf "unblock \n"; + printf " Set state 0 (Account ok) to an account.\n"; + printf " This command works like state 0.\n"; + } elsif ("version" =~ /^\Q$command/) { + printf "version\n"; + printf " Display the version of the login-server.\n"; + } elsif ("who" =~ /^\Q$command/) { + printf "who \n"; + printf " Displays complete information of an account.\n"; + } elsif ("quit" =~ /^\Q$command/ || + (("end" =~ /^\Q$command/ || "exit" =~ /^\Q$command/) && $command ne "e")) { # check 1 letter command: 'email', 'end' or 'exit'?\n"; + printf "quit/end/exit\n"; + printf " End of the program of administration.\n"; + } else { + if ($receivedcommand ne "") { + printf "Unknown command [%s] for help. Displaying of all commands.\n", $receivedcommand; + } + print << "ENDOFHELP"; + aide/help/? -- Display this help + aide/help/? [command] -- Display the help of the command + add -- Create an account with default email + ban/banish yyyy/mm/dd hh:mm:ss -- Change final date of a ban + banadd/ba -- Add or substract time from the final + example: ba apple +1m-2mn1s-2y date of a banishment of an account + banset/bs yyyy/mm/dd [hh:mm:ss] -- Change final date of a ban + banset/bs 0 -- Un-banish an account + block -- Set state 5 (blocked by the GM Team) to an account + check -- Check the validity of a password + create -- Create an account with email + del -- Remove an account + email -- Modify an email of an account + getcount -- Give the number of players online + gm [GM_level] -- Modify the GM level of an account + id -- Give the id of an account + info -- Display all information of an account + kami -- Sends a broadcast message (in yellow) + kamib -- Sends a broadcast message (in blue) + language -- Change the language of displaying. + list/ls [First_id [Last_id]] -- Display a list of accounts + listBan/lsBan [First_id [Last_id]] -- Display a list of accounts + with state or banished + listGM/lsGM [First_id [Last_id]] -- Display a list of GM accounts + listOK/lsOK [First_id [Last_id]] -- Display a list of accounts + without state and not banished + memo -- Modify the memo of an account + name -- Give the name of an account + passwd -- Change the password of an account + quit/end/exit -- End of the program of administation + reloadGM -- Reload GM configuration file + search -- Seek accounts + search -e/-r/--expr/--regex -- Seek accounts by regular-expression + sex -- Modify the sex of an account + state -- Change the state + timeadd/ta -- Add or substract time from the + example: ta apple +1m-2mn1s-2y validity limit of an account + timeset/ts yyyy/mm/dd [hh:mm:ss] -- Change the validify limit + timeset/ts 0 -- Give a unlimited validity limit + unban/unbanish -- Remove the banishment of an account + unblock -- Set state 0 (Account ok) to an account + version -- Gives the version of the login-server + who -- Display all information of an account +ENDOFHELP + printf(" Note: To use spaces in an account name, type \"\" (or ').\n"); + } + } + + return 0; +} +#-------------------------------------------------------------------------- + +# Sub-function: Displaying of the accounts list +sub listaccount() { + my($st, $ed, $listflag) = @_; + my($i); + my($n) = (0); + # 0123456789 01 01234567890123456789012301234 012345 0123456789012345678901234567 + if ($defaultlanguage eq "F") { + print " id_compte GM nom_utilisateur sexe count statut\n"; + } else { + print "account_id GM user_name sex count state\n"; + } + print "-------------------------------------------------------------------------------\n"; + while(1) { + print $so pack("vV2", 0x7920, $st, $ed); + $so->flush(); + $buf = readso(4); + if (unpack("v", $buf) != 0x7921) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + exit(10); + } + my($len) = unpack("x2v", $buf); + last if ($len <= 4); + for($i = 4; $i < $len; $i += 38) { + my(@dat) = unpack("VCa24cVV", readso(38)); + $st = $dat[0] + 1; + if ($listflag == 0 || + ($listflag == 1 && $dat[1] > 0) || # check GM flag + ($listflag == 3 && $dat[5] != 0) || # check with state or banished + ($listflag == 4 && $dat[5] == 0)) { # check without state and not banished + printf "%10d %2s %-24s%-5s %6d %-27s\n", $dat[0], + ($dat[1] == 0 ? " " : $dat[1]), + $dat[2], + ($defaultlanguage eq "F" ? ("Femme","Male","Servr")[$dat[3]] : ("Femal","Male","Servr")[$dat[3]]), + $dat[4], + (($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), + "Unregistered ID", + "Incorrect Password", + "This ID is expired", + "Rejected from Server", + "Blocked by the GM Team", # You have been blocked by the GM Team + "Your EXE file is too old", # Your Game's EXE file is not the latest version + "Banishement or\n Prohibited to login until %s", # You are Prohibited to log in until %s + "Server is over populated", # Server is jammed due to over populated + "No MSG", + "This ID is totally erased")[$dat[5] == 100 ? 10 : $dat[5]]; # This ID has been totally erased + $n++; + } + } + } + if ($defaultlanguage eq "F") { + if ($n == 0) { + print "Aucun compte trouv.\n"; + } elsif ($n == 1) { + print "1 compte trouv.\n"; + } else { + print "$n comptes trouv駸.\n"; + } + } else { + if ($n == 0) { + print "No account found.\n"; + } elsif ($n == 1) { + print "1 account found.\n"; + } else { + print "$n accounts found.\n"; + } + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: add an account with the default e-mail +sub addaccount() { + my($userid, $sex, $passwd) = @_; + if ($userid eq "" || !defined($userid)) { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " add nomtest Male motdepassetest\n"; + } else { + print "Please input an account name.\n"; + print " add testname Male testpass\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } +# if ($userid =~ /[^A-Za-z0-9\@-_]/) { +# if ($defaultlanguage eq "F") { +# print "Caract鑽e interdit trouv dans le nom du compte ".$`."[${&}]${'}\n"; +# } else { +# print "Illegal character found in the account name ".$`."[${&}]${'}\n"; +# } +# return 101; +# } + $sex = uc(substr($sex, 0, 1)); + if ($sex !~ /^[MF]$/) { + if ($defaultlanguage eq "F") { + print "Sexe incorrect [$sex]. Entrez M ou F svp.\n"; + } else { + print "Illegal gender [$sex]. Please input M or F.\n"; + } + return 103; + } + if ($passwd eq "") { + return 108 if (($passwd = typepasswd()) eq ""); + } + if (verify_password($passwd) == 0) { + return 104; + } + print $so pack("va24a24a1a40", 0x7930, $userid, $passwd, $sex, ""); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7931) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 106; + } + $buf = readso(28); + if (unpack("V", $buf) == -1 || unpack("V", $buf) == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec la cr饌tion du compte [$userid]. Un compte identique existe d駛.\n"; + } else { + print "Account [$userid] creation failed. Same account already exists.\n"; + } + return 107; + } else { + if ($defaultlanguage eq "F") { + printf "Compte [$userid] cr鳬 avec succ鑚 [id: %d].\n", unpack("V",$buf); + } else { + printf "Account [$userid] is successfully created [id: %d].\n", unpack("V",$buf); + } + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: add an account with an e-mail +sub createaccount() { + my($userid, $sex, $email, $passwd) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " create nomtest Male mon\@email.com motdepassetest\n"; + } else { + print "Please input an account name.\n"; + print " create testname Male my\@mail.com testpass\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } +# if ($userid =~ /[^A-Za-z0-9\@-_]/) { +# if ($defaultlanguage eq "F") { +# print "Caract鑽e interdit trouv dans le nom du compte ".$`."[${&}]${'}\n"; +# } else { +# print "Illegal character found in the account name ".$`."[${&}]${'}\n"; +# } +# return 101; +# } + $sex = uc(substr($sex, 0, 1)); + if ($sex !~ /^[MF]$/) { + if ($defaultlanguage eq "F") { + print "Sexe incorrect [$sex]. Entrez M ou F svp.\n"; + } else { + print "Illegal gender [$sex]. Please input M or F.\n"; + } + return 103; + } + if (length($email) < 3) { + if ($defaultlanguage eq "F") { + print "Email trop courte [$email]. Entrez une e-mail valide svp.\n"; + } else { + print "Email is too short [$email]. Please input a valid e-mail.\n"; + } + return 109; + } + if (length($email) > 39) { + if ($defaultlanguage eq "F") { + print "Email trop longue [$email]. Entrez une e-mail de 39 caract鑽es maximum svp.\n"; + } else { + print "Email is too long [$email]. Please input an e-mail with 39 bytes at the most.\n"; + } + return 109; + } + if (verify_email($email) == 0) { + if ($defaultlanguage eq "F") { + print "Email incorrecte [$email]. Entrez une e-mail valide svp.\n"; + } else { + print "Invalid email [$email]. Please input a valid e-mail.\n"; + } + return 109; + } + if ($passwd eq "") { + return 108 if (($passwd = typepasswd()) eq ""); + } + if (verify_password($passwd) == 0) { + return 104; + } + print $so pack("va24a24a1a40", 0x7930, $userid, $passwd, $sex, $email); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7931) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 106; + } + $buf = readso(28); + if (unpack("V", $buf) == -1 || unpack("V", $buf) == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec la cr饌tion du compte [$userid]. Un compte identique existe d駛.\n"; + } else { + print "Account [$userid] creation failed. Same account already exists.\n"; + } + return 107; + } else { + if ($defaultlanguage eq "F") { + printf "Compte [$userid] cr鳬 avec succ鑚 [id: %d].\n", unpack("V",$buf); + } else { + printf "Account [$userid] is successfully created [id: %d].\n", unpack("V",$buf); + } + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: deletion of an account +sub delaccount() { + my($userid) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " del nomtestasupprimer\n"; + } else { + print "Please input an account name.\n"; + print " del testnametodelete\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + if ($defaultlanguage eq "F") { + print "** Etes-vous vraiment sr de vouloir SUPPRIMER le compte [$userid]? (o/n) "; + } else { + print "** Are you really sure to DELETE account [$userid]? (y/n) "; + } + if (lc(substr(, 0, 1)) !~ /[oy]/) { + if ($defaultlanguage eq "F") { + print "Suppression annul馥\n."; + } else { + print "Deletion canceled\n"; + } + return 121; + } + print $so pack("va24", 0x7932, $userid); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7933) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 122; + } + $buf = readso(28); + my($id2, $name) = unpack("Va24", $buf); + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + if ($id2 == -1 || $id2 == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec de la suppression du compte [$userid]. Le compte n'existe pas.\n"; + } else { + print "Account [$userid] deletion failed. Account doesn't exist.\n"; + } + return 123; + } else { + if ($defaultlanguage eq "F") { + print "Compte [$name][id: $id2] SUPPRIME avec succ鑚.\n"; + } else { + print "Account [$name][id: $id2] is successfully DELETED.\n"; + } + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: modification of a password +sub changepasswd() { + my($userid, $passwd) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " passwd nomtest nouveaumotdepasse\n"; + } else { + print "Please input an account name.\n"; + print " passwd testname newpassword\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + if ($passwd eq "") { + return 134 if (($passwd = typepasswd()) eq ""); + } + if (verify_password($passwd) == 0) { + return 131; + } + print $so pack("va24a24", 0x7934, $userid,$passwd); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7935) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 132; + } + $buf = readso(28); + my($id2, $name) = unpack("Va24", $buf); + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + if ($id2 == -1 || $id2 == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec de la modification du mot de passe du compte [$userid].\n"; + print "Le compte [$userid] n'existe pas.\n"; + } else { + print "Account [$userid] password changing failed.\n"; + print "Account [$userid] doesn't exist.\n"; + } + return 133; + } else { + if ($defaultlanguage eq "F") { + print "Modification du mot de passe du compte [$name][id: $id2] r騏ssie.\n"; + } else { + print "Account [$name][id: $id2] password successfully changed.\n"; + } + } + return 130; +} + +#-------------------------------------------------------------------------- + +# Sub-function: modification of an account e-mail +sub changeemail() { + my($userid, $email) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " email testname nouveauemail\n"; + } else { + print "Please input an account name.\n"; + print " email testname newemail\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + if (length($email) < 3) { + if ($defaultlanguage eq "F") { + print "Email trop courte [$email]. Entrez une e-mail valide svp.\n"; + } else { + print "Email is too short [$email]. Please input a valid e-mail.\n"; + } + return 109; + } + if (length($email) > 39) { + if ($defaultlanguage eq "F") { + print "Email trop longue [$email]. Entrez une e-mail de 39 caract鑽es maximum svp.\n"; + } else { + print "Email is too long [$email]. Please input an e-mail with 39 bytes at the most.\n"; + } + return 109; + } + if (verify_email($email) == 0) { + if ($defaultlanguage eq "F") { + print "Email incorrect [$email]. Entrez une e-mail valide svp.\n"; + } else { + print "Invalid email [$email]. Please input a valid e-mail.\n"; + } + return 109; + } + print $so pack("va24a40", 0x7940, $userid, $email); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7941) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 162; + } + $buf = readso(28); + my($id2, $name) = unpack("Va24", $buf); + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + if ($id2 == -1 || $id2 == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec de la modification de l'e-mail du compte [$userid].\n"; + print "Le compte [$userid] n'existe pas.\n"; + } else { + print "Account [$userid] e-mail changing failed.\n"; + print "Account [$userid] doesn't exist.\n"; + } + return 133; + } else { + if ($defaultlanguage eq "F") { + print "Modification de l'e-mail du compte [$name][id: $id2] r騏ssie.\n"; + } else { + print "Account [$name][id: $id2] e-mail successfully changed.\n"; + } + } + return 160; +} + +#-------------------------------------------------------------------------- + +# Sub-function: search of accounts +sub searchaccount() { + my($p1, $p2) = @_; + my($exp) = (""); + if ($p1 eq "-e" || $p1 eq "-r" || $p1 eq "--regex" || $p1 eq "--expr") { + if ($p2 eq "") { + if ($defaultlanguage eq "F") { + print "Entrez une expression r馮uli鑽e ou utilisez 'ls' pour avoir tous les comptes.\n"; + } else { + print "Input a regular expression or use 'ls' to obtain all accounts.\n"; + } + return 141; + } + $exp = $p2; + } else { + if ($p1 eq "") { + if ($defaultlanguage eq "F") { + print "Entrez une chane ou utilisez 'ls' pour avoir tous les comptes.\n"; + } else { + print "Input a string or use 'ls' to obtain all accounts.\n"; + } + return 141; + } + my($c) = 0; + $exp = lc($p1); + $exp =~ s/([\@])/\\$1/g; + $c += $exp =~ s/([\-\[\]])/\\$1/g; + $c += $exp =~ s/([\*\?])/.$1/g; + $c += $exp =~ s/\\\[(.)\\\-(.)\\\]/[$1-$2]/g; + $exp = "^$exp\$" if $c; + } + if (eval{ "" =~ /$exp/; }, $@) { + if ($defaultlanguage eq "F") { + print "Expression r馮uli鑽e non reconnue.\n"; + } else { + print "Regular-Expression compiling failed.\n"; + } + return 141; + } + my($i); + my($n, $st) = (0, 0); + # 0123456789 01 01234567890123456789012301234 012345 0123456789012345678901234567 + if ($defaultlanguage eq "F") { + print " id_compte GM nom_utilisateur sexe count statut\n"; + } else { + print "account_id GM user_name sex count state\n"; + } + print "-------------------------------------------------------------------------------\n"; + while(1) { + print $so pack("vV2", 0x7920, $st, 0); + $so->flush(); + $buf = readso(4); + if (unpack("v", $buf) != 0x7921) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + exit(10); + } + my($len) = unpack("x2v", $buf); + last if ($len <= 4); + for($i = 4; $i < $len; $i += 38) { + my(@dat) = unpack("VCa24cVV", readso(38)); + $st = $dat[0] + 1; + next if (lc($dat[2]) !~ /$exp/); + printf "%10d %2s %-24s%-5s %6d %-27s\n", $dat[0], + ($dat[1] == 0 ? " " : $dat[1]), + $dat[2], + ($defaultlanguage eq "F" ? ("Femme","Male","Servr")[$dat[3]] : ("Femal","Male","Servr")[$dat[3]]), + $dat[4], + (($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), + "Unregistered ID", + "Incorrect Password", + "This ID is expired", + "Rejected from Server", + "Blocked by the GM Team", # You have been blocked by the GM Team + "Your EXE file is too old", # Your Game's EXE file is not the latest version + "Banishement or\n Prohibited to login until %s", # You are Prohibited to log in until %s + "Server is over populated", # Server is jammed due to over populated + "No MSG", + "This ID is totally erased")[$dat[5] == 100 ? 10 : $dat[5]]; # This ID has been totally erased + $n++; + } + } + if ($defaultlanguage eq "F") { + if ($n == 0) { + print "Aucun compte trouv.\n"; + } elsif ($n == 1) { + print "1 compte trouv.\n"; + } else { + print "$n comptes trouv駸.\n"; + } + } else { + if ($n == 0) { + print "No account found.\n"; + } elsif ($n == 1) { + print "1 account found.\n"; + } else { + print "$n accounts found.\n"; + } + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: modify the sex of an account +sub changesex() { + my($userid, $sex) = @_; + if ($userid eq "" || !defined($userid)) { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " sex nomtest Male\n"; + } else { + print "Please input an account name.\n"; + print " sex testname Male\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } +# if ($userid =~ /[^A-Za-z0-9\@-_]/) { +# if ($defaultlanguage eq "F") { +# print "Caract鑽e interdit trouv dans le nom du compte ".$`."[${&}]${'}\n"; +# } else { +# print "Illegal character found in the account name ".$`."[${&}]${'}\n"; +# } +# return 101; +# } + $sex = uc(substr($sex, 0, 1)); + if ($sex !~ /^[MF]$/) { + if ($defaultlanguage eq "F") { + print "Sexe incorrect [$sex]. Entrez M ou F svp.\n"; + } else { + print "Illegal gender [$sex]. Please input M or F.\n"; + } + return 103; + } + print $so pack("va24a1", 0x793c, $userid, $sex); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x793d) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 152; + } + $buf = readso(28); + my($id2, $name) = unpack("Va24", $buf); + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + if ($id2 == -1 || $id2 == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec du changement du sexe du compte [$userid].\n"; + print "Le compte n'existe pas ou le sexe est d駛 celui demand.\n"; + } else { + print "Account [$userid] sex changing failed.\n"; + print "Account doesn't exist or the sex is already the good sex.\n"; + } + } else { + if ($defaultlanguage eq "F") { + print "Sexe du compte [$name][id: $id2] chang avec succ鑚.\n"; + } else { + print "Account [$name][id: $id2] sex successfully changed.\n"; + } + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: modify the GM level of an account +sub changegmlevel() { + my($userid, $gm_level) = @_; + if ($userid eq "" || !defined($userid)) { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " gm nomtest 80\n"; + } else { + print "Please input an account name.\n"; + print " gm testname 80\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } +# if ($userid =~ /[^A-Za-z0-9\@-_]/) { +# if ($defaultlanguage eq "F") { +# print "Caract鑽e interdit trouv dans le nom du compte ".$`."[${&}]${'}\n"; +# } else { +# print "Illegal character found in the account name ".$`."[${&}]${'}\n"; +# } +# return 101; +# } + $gm_level = int($gm_level); + if ($gm_level < 0 || $gm_level > 99) { + if ($defaultlanguage eq "F") { + print "Niveau de GM incorrect [$gm_level]. Entrez une valeur de 0 99 svp.\n"; + } else { + print "Illegal GM level [$gm_level]. Please input a value from 0 to 99.\n"; + } + return 103; + } + print $so pack("va24C", 0x793e, $userid, $gm_level); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x793f) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 152; + } + $buf = readso(28); + my($id2, $name) = unpack("Va24", $buf); + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + if ($id2 == -1 || $id2 == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec du changement du niveau de GM du compte [$userid].\n"; + print "Le compte n'existe pas, le niveau de GM est d駛 celui demand,\n"; + print "ou il est impossible de modifier le fichier des comptes GM.\n"; + } else { + print "Account [$userid] GM level changing failed.\n"; + print "Account doesn't exist, the GM level is already the good GM level,\n"; + print "or it's impossible to modify the GM accounts file.\n"; + } + } else { + if ($defaultlanguage eq "F") { + print "Niveau de GM du compte [$name][id: $id2] chang avec succ鑚.\n"; + } else { + print "Account [$name][id: $id2] GM level successfully changed.\n"; + } + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Modification of a state +sub changestate { + my($userid, $s, $error_message) = @_; + # Valid values: 0: ok, or value of the 0x006a packet + 1 + if ($s eq "" || (($s < 0 || $s > 9) && $s != 100)) { + if ($defaultlanguage eq "F") { + print "Entrez une des valeurs suivantes svp:\n"; + print " 0 = Compte ok 6 = Your Game's EXE file is not the latest version\n"; + } else { + print "Please input one of these values:\n"; + print " 0 = Account ok 6 = Your Game's EXE file is not the latest version\n"; + } + print " 1 = Unregistered ID 7 = You are Prohibited to log in until %s\n"; + print " 2 = Incorrect Password 8 = Server is jammed due to over populated\n"; + print " 3 = This ID is expired 9 = No MSG\n"; + print " 4 = Rejected from Server 100 = This ID has been totally erased\n"; + print " 5 = You have been blocked by the GM Team\n"; + if ($defaultlanguage eq "F") { + print " state nomtest 5\n"; + print " state nomtest 7 fin de votre ban\n"; + print " block \n"; + print " unblock \n"; + } else { + print " state testname 5\n"; + print " state testname 7 end of your ban\n"; + print " block \n"; + print " unblock \n"; + } + return 151; + } + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " state nomtest 5\n"; + print " state nomtest 7 fin de votre ban\n"; + print " block \n"; + print " unblock \n"; + } else { + print "Please input an account name.\n"; + print " state testname 5\n"; + print " state testname 7 end of your ban\n"; + print " block \n"; + print " unblock \n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + if ($s != 7) { + $error_message = "-"; + } else { + if (length($error_message) < 1) { + if ($defaultlanguage eq "F") { + print "Message d'erreur trop court. Entrez un message de 1-19 caract鑽es.\n"; + } else { + print "Error message is too short. Please input a message of 1-19 bytes.\n"; + } + return 102; + } + if (length($error_message) > 19) { + if ($defaultlanguage eq "F") { + print "Message d'erreur trop long. Entrez un message de 1-19 caract鑽es.\n"; + } else { + print "Error message is too long. Please input a message of 1-19 bytes.\n"; + } + return 102; + } + } + print $so pack("va24Va20", 0x7936, $userid, $s, $error_message); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7937) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 152; + } + $buf = readso(32); + my(@dat) = unpack("Va24V", $buf); + while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { + chop($dat[1]); + }; + if ($dat[0] != -1 && $dat[0] != 4294967295) { + if ($defaultlanguage eq "F") { + print "Statut du compte [$dat[1]][id: $dat[0]] chang avec succ鑚 en ["; + } else { + print "Account [$dat[1]][id: $dat[0]] state successfully changed in ["; + } + print ((($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), + "Unregistered ID", + "Incorrect Password", + "This ID is expired", + "Rejected from Server", + "You have been blocked by the GM Team", + "Your Game's EXE file is not the latest version", + "You are Prohibited to log in until %s", + "Server is jammed due to over populated", + "No MSG", + "This ID has been totally erased")[$dat[2] == 100 ? 10 : $dat[2]]); + print "].\n"; + } else { + if ($defaultlanguage eq "F") { + print "Echec du changement du statut du compte [$userid]. Le compte n'existe pas.\n"; + } else { + print "Account [$userid] state changing failed. Account doesn't exist.\n"; + } + } +} + +#-------------------------------------------------------------------------- + +# Sub-function: Displaying of the number of online players +sub getlogincount { + # Request to the login-server + print $so pack("v", 0x7938); + $so->flush(); + + $buf = readso(4); + # Connection failed + if (unpack("v", $buf) != 0x7939) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + exit(3); + } + + # Get length of the received packet + my($len) = unpack("x2v", $buf) - 4; + + # Read information of the servers + if ($len < 1) { + if ($defaultlanguage eq "F") { + printf " Aucun serveur n'est connect au login serveur.\n"; + } else { + printf " No server is connected to the login-server.\n"; + } + } else { + my(@slist) = (); + for(; $len > 0; $len -= 32) { + my($name, $count) = unpack("x6 a20 V", readso(32)); + $name = substr($name, 0, index($name, "\0")); + push @slist, [ $name, $count ]; + } + # Displaying of result + my($i); + if ($defaultlanguage eq "F") { + printf " Nombre de joueurs en ligne (serveur: nb):\n"; + } else { + printf " Number of online players (server: number).\n"; + } + foreach $i(@slist) { + printf " %-20s : %5d\n", $i->[0], $i->[1]; + } + } +} + +#-------------------------------------------------------------------------- + +# Sub-function: Modification of a memo field +sub changememo { + my($userid, $memo) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " memo nomtest nouveau memo\n"; + } else { + print "Please input an account name.\n"; + print " memo testname new memo\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + if (length($memo) > 254) { + if ($defaultlanguage eq "F") { + print "M駑o trop long (".length($memo)." caract鑽es).\n"; + print "Entrez un m駑o de 254 caract鑽es maximum svp.\n"; + } else { + print "Memo is too long (".length($memo)." characters).\n"; + print "Please input a memo of 254 bytes at the maximum.\n"; + } + return 102; + } + if (length($memo) == 0) { + print $so pack("va24v", 0x7942, $userid, 0); + } else { + print $so pack("va24va".length($memo), 0x7942, $userid, length($memo), $memo); + } + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7943) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 152; + } + $buf = readso(28); + my($id2, $name) = unpack("Va24", $buf); + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + if ($id2 == -1 || $id2 == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec du changement du m駑o du compte [$userid]. Le compte n'existe pas.\n"; + } else { + print "Account [$userid] memo changing failed. Account doesn't exist.\n"; + } + } else { + if ($defaultlanguage eq "F") { + print "M駑o du compte [$name][id: $id2] chang avec succ鑚.\n"; + } else { + print "Account [$name][id: $id2] memo successfully changed.\n"; + } + } +} + +#-------------------------------------------------------------------------- + +# Sub-function: Request to obtain an account id +sub idaccount() { + my($userid) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " id nomtest\n"; + } else { + print "Please input an account name.\n"; + print " id testname\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + print $so pack("va24", 0x7944, $userid); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7945) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 122; + } + $buf = readso(28); + my($id2, $name) = unpack("Va24", $buf); + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + if ($id2 == -1 || $id2 == 4294967295) { + if ($defaultlanguage eq "F") { + print "Impossible de trouver l'id du compte [$userid]. Le compte n'existe pas.\n"; + } else { + print "Unabled to find the account [$userid] id. Account doesn't exist.\n"; + } + return 123; + } else { + if ($defaultlanguage eq "F") { + print "Le compte [$name] a pour id: $id2.\n"; + } else { + print "The account [$name] have the id: $id2.\n"; + } + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Request to obtain an account name +sub nameaccount() { + my($id) = @_; + if ($id < 0) { + if ($defaultlanguage eq "F") { + print "Entrez un id ayant une valeur positive svp.\n"; + } else { + print "Please input a positive value for the id.\n"; + } + return 136; + } + print $so pack("vV", 0x7946, $id); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7947) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 122; + } + $buf = readso(28); + my($id2, $name) = unpack("Va24", $buf); + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + if (length($name) == 0 || $name eq "") { + if ($defaultlanguage eq "F") { + print "Impossible de trouver le nom du compte [id: $id2]. Le compte n'existe pas.\n"; + } else { + print "Unabled to find the account [id: $id2] name. Account doesn't exist.\n"; + } + return 123; + } else { + if ($defaultlanguage eq "F") { + print "Le compte [id: $id2] a pour nom: $name.\n"; + } else { + print "The account [id: $id2] have the name: $name.\n"; + } + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Set a validity limit of an account +sub timesetaccount() { + my($userid, $date, $time) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print ": timeset aaaa/mm/jj [hh:mm:ss]\n"; + print " timeset 0 (0 = illimit)\n"; + printf " Heure par d馭aut [hh:mm:ss]: 23:59:59\n"; + } else { + print "Please input an account name.\n"; + print ": timeset yyyy/mm/dd [hh:mm:ss]\n"; + print " timeset 0 (0 = unlimited)\n"; + printf " Default time [hh:mm:ss]: 23:59:59\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + my($year, $month, $day) = split(/[.\-\/]/, $date); + my($hour, $minute, $second) = split(/:/, $time); + if ($time eq "") { + $hour = 23; + $minute = 59; + $second = 59; + } + my($timestamp); + if ($year eq "" || + ($year != 0 && ($month eq "" || $day eq "" || $hour eq "" || $minute eq "" || $second eq ""))) { + if ($defaultlanguage eq "F") { + print "Entrez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"; + } else { + print "Please input 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"; + } + return 102; + } + if ($year == 0) { + $timestamp = 0; + } else { + if ($year < 70) { + $year = $year + 100; + } + if ($year >= 1900) { + $year = $year - 1900; + } + if ($month < 1 || $month > 12) { + if ($defaultlanguage eq "F") { + print "Entrez un mois correct svp (entre 1 et 12).\n"; + } else { + print "Please give a correct value for the month (from 1 to 12).\n"; + } + return 102; + } + $month = $month - 1; + if ($day < 1 || $day > 31) { + if ($defaultlanguage eq "F") { + print "Entrez un jour correct svp (entre 1 et 31).\n"; + } else { + print "Please give a correct value for the day (from 1 to 31).\n"; + } + return 102; + } + if ((($month == 3 || $month == 5 || $month == 8 || $month == 10) && $day > 30) || + ($month == 1 && $day > 29)) { + if ($defaultlanguage eq "F") { + print "Entrez un jour correct en fonction du mois svp.\n"; + } else { + print "Please give a correct value for a day of this month.\n"; + } + return 102; + } + if ($hour < 0 || $hour > 23) { + if ($defaultlanguage eq "F") { + print "Entrez une heure correcte svp (entre 0 et 23).\n"; + } else { + print "Please give a correct value for the hour (from 0 to 23).\n"; + } + return 102; + } + if ($minute < 0 || $minute > 59) { + if ($defaultlanguage eq "F") { + print "Entrez des minutes correctes svp (entre 0 et 59).\n"; + } else { + print "Please give a correct value for the minutes (from 0 to 59).\n"; + } + return 102; + } + if ($second < 0 || $second > 59) { + if ($defaultlanguage eq "F") { + print "Entrez des secondes correctes svp (entre 0 et 59).\n"; + } else { + print "Please give a correct value for the seconds (from 0 to 59).\n"; + } + return 102; + } + $timestamp = POSIX::mktime($second, $minute, $hour, $day, $month, $year, 0, 0, -1); # -1: no winter/summer time modification + if ($timestamp == undef) { + if ($defaultlanguage eq "F") { + print "Date incorrecte.\n"; + print "Ajoutez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"; + } else { + print "Invalid date.\n"; + print "Please add 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"; + } + return 102; + } + } + + print $so pack("va24V", 0x7948, $userid, $timestamp); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7949) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 152; + } + $buf = readso(32); + my(@dat) = unpack("Va24V", $buf); + while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { + chop($dat[1]); + }; + if ($dat[0] != -1 && $dat[0] != 4294967295) { + if ($defaultlanguage eq "F") { + print "Limite de validit du compte [$dat[1]][id: $dat[0]] chang馥 avec succ鑚 ". + ($dat[2] == 0 ? "en [illimit饐.\n" : "pour 黎re jusqu'au ".(POSIX::ctime($dat[2]))); + } else { + print "Validity Limit of the account [$dat[1]][id: $dat[0]] successfully changed ". + ($dat[2] == 0 ? "to [unlimited].\n" : "to be until ".(POSIX::ctime($dat[2]))); + } + # localtime($dat[2]) is also possible to display instead of POSIX::ctime. + } else { + if ($defaultlanguage eq "F") { + print "Echec du changement de la validit du compte [$userid]. Le compte n'existe pas.\n"; + } else { + print "Account [$userid] validity limit changing failed. Account doesn't exist.\n"; + } + } + + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Add/substract time to the validity limit of an account +sub timeaddaccount() { + my($userid, $modif) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " timeadd nomtest +1m-2mn1s-6y\n"; + print " Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"; + print " et 6 ans dans le m麥e temps.\n"; + } else { + print "Please input an account name.\n"; + print " timeadd testname +1m-2mn1s-6y\n"; + print " this example adds 1 month and 1 second, and substracts 2 minutes\n"; + print " and 6 years at the same time.\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + my($year, $month, $day) = (0, 0 ,0); + my($hour, $minute, $second) = (0, 0 ,0); + + $modif = lc($modif); + while (length($modif) > 0) { + my($value) = int($modif); + if ($value == 0) { + $modif = substr($modif, 1); + } else { + if (substr($modif, 0, 1) =~ /[\-\+]/) { + $modif = substr($modif, 1); + } + while (length($modif) > 0 && substr($modif, 0, 1) =~ /[0-9]/) { + $modif = substr($modif, 1); + } + if (index($modif, "s") == 0) { + $second = $value; + $modif = substr($modif, 1); + } elsif (index($modif, "mn") == 0) { + $minute = $value; + $modif = substr($modif, 2); + } elsif (index($modif, "h") == 0) { + $hour = $value; + $modif = substr($modif, 1); + } elsif (index($modif, "d") == 0 || index($modif, "j") == 0) { + $day = $value; + $modif = substr($modif, 1); + } elsif (index($modif, "m") == 0) { + $month = $value; + $modif = substr($modif, 1); + } elsif (index($modif, "y") == 0 || index($modif, "a") == 0) { + $year = $value; + $modif = substr($modif, 1); + } else { + $modif = substr($modif, 1); + } + } + } + + if ($defaultlanguage eq "F") { + print " ann馥: $year\n"; + print " mois: $month\n"; + print " jour: $day\n"; + print " heure: $hour\n"; + print " minute: $minute\n"; + print " seconde: $second\n"; + } else { + print " year: $year\n"; + print " month: $month\n"; + print " day: $day\n"; + print " hour: $hour\n"; + print " minute: $minute\n"; + print " second: $second\n"; + } + + if ($year == 0 && $month == 0 && $day == 0 && $hour == 0 && $minute == 0 && $second == 0) { + if ($defaultlanguage eq "F") { + print "Vous devez entrer un ajustement avec cette commande, svp:\n"; + print " Valeur d'ajustement (-1, 1, +1, etc...)\n"; + print " Element modifi:\n"; + print " a ou y: ann馥\n"; + print " m: mois\n"; + print " j ou d: jour\n"; + print " h: heure\n"; + print " mn: minute\n"; + print " s: seconde\n"; + print " timeadd nomtest +1m-2mn1s-6y\n"; + print " Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"; + print " et 6 ans dans le m麥e temps.\n"; + } else { + print "Please give an adjustment with this command:\n"; + print " Adjustment value (-1, 1, +1, etc...)\n"; + print " Modified element:\n"; + print " a or y: year\n"; + print " m: month\n"; + print " j or d: day\n"; + print " h: hour\n"; + print " mn: minute\n"; + print " s: second\n"; + print " timeadd testname +1m-2mn1s-6y\n"; + print " this example adds 1 month and 1 second, and substracts 2 minutes\n"; + print " and 6 years at the same time.\n"; + } + return 137; + } + if ($year > 127 || $year < -127) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement d'ann馥s correct (de -127 127), svp.\n"; + } else { + print "Please give a correct adjustment for the years (from -127 to 127).\n"; + } + return 137; + } + if ($month > 255 || $month < -255) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement de mois correct (de -255 255), svp.\n"; + } else { + print "Please give a correct adjustment for the months (from -255 to 255).\n"; + } + return 137; + } + if ($day > 32767 || $day < -32767) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement de jours correct (de -32767 32767), svp.\n"; + } else { + print "Please give a correct adjustment for the days (from -32767 to 32767).\n"; + } + return 137; + } + if ($hour > 32767 || $hour < -32767) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement d'heures correct (de -32767 32767), svp.\n"; + } else { + print "Please give a correct adjustment for the hours (from -32767 to 32767).\n"; + } + return 137; + } + if ($minute > 32767 || $minute < -32767) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement de minutes correct (de -32767 32767), svp.\n"; + } else { + print "Please give a correct adjustment for the minutes (from -32767 to 32767).\n"; + } + return 137; + } + if ($second > 32767 || $second < -32767) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement de secondes correct (de -32767 32767), svp.\n"; + } else { + print "Please give a correct adjustment for the seconds (from -32767 to 32767).\n"; + } + return 137; + } + + print $so pack("va24vvvvvv", 0x7950, $userid, $year, $month, $day, $hour, $minute, $second); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x7951) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 152; + } + $buf = readso(32); + my(@dat) = unpack("Va24V", $buf); + while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { + chop($dat[1]); + }; + if ($dat[0] == -1 || $dat[0] == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec du changement de la validit du compte [$userid]. Le compte n'existe pas.\n"; + } else { + print "Account [$userid] validity limit changing failed. Account doesn't exist.\n"; + } + } elsif ($dat[2] == 0) { + if ($defaultlanguage eq "F") { + print "Limite de validit du compte [$dat[1]][id: $dat[0]] inchang馥.\n"; + print "Le compte a une validit illimit馥 ou\n"; + print "la modification est impossible avec les ajustements demand駸.\n"; + } else { + print "Validity limit of the account [$dat[1]][id: $dat[0]] unchanged.\n"; + print "The account have an unlimited validity limit or\n"; + print "the changing is impossible with the proposed adjustments.\n"; + } + } else { + if ($defaultlanguage eq "F") { + print "Limite de validit du compte [$dat[1]][id: $dat[0]] chang馥 avec succ鑚 ". + ($dat[2] == 0 ? "en [illimit饐.\n" : "pour 黎re jusqu'au ".(POSIX::ctime($dat[2]))); + } else { + print "Validity limit of the account [$dat[1]][id: $dat[0]] successfully changed ". + ($dat[2] == 0 ? "to [unlimited].\n" : "to be until ".(POSIX::ctime($dat[2]))); + } + # localtime($dat[2]) is also possible to display instead of POSIX::ctime. + } + + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Set the final date of a banishment of an account +sub bansetaccount() { + my($userid, $date, $time) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print ": banset aaaa/mm/jj [hh:mm:ss]\n"; + print " banset 0 (0 = d-bani)\n"; + print " ban/banish aaaa/mm/jj hh:mm:ss \n"; + print " unban/unbanish \n"; + printf " Heure par d馭aut [hh:mm:ss]: 23:59:59\n"; + } else { + print "Please input an account name.\n"; + print ": banset yyyy/mm/dd [hh:mm:ss]\n"; + print " banset 0 (0 = un-banished)\n"; + print " ban/banish yyyy/mm/dd hh:mm:ss \n"; + print " unban/unbanish \n"; + printf " Default time [hh:mm:ss]: 23:59:59\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + my($year, $month, $day) = split(/[.\-\/]/, $date); + my($hour, $minute, $second) = split(/:/, $time); + if ($time eq "") { + $hour = 23; + $minute = 59; + $second = 59; + } + my($timestamp); + if ($year eq "" || + ($year != 0 && ($month eq "" || $day eq "" || $hour eq "" || $minute eq "" || $second eq ""))) { + if ($defaultlanguage eq "F") { + print "Entrez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"; + } else { + print "Please input 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"; + } + return 102; + } + if ($year == 0) { + $timestamp = 0; + } else { + if ($year < 70) { + $year = $year + 100; + } + if ($year >= 1900) { + $year = $year - 1900; + } + if ($month < 1 || $month > 12) { + if ($defaultlanguage eq "F") { + print "Entrez un mois correct svp (entre 1 et 12).\n"; + } else { + print "Please give a correct value for the month (from 1 to 12).\n"; + } + return 102; + } + $month = $month - 1; + if ($day < 1 || $day > 31) { + if ($defaultlanguage eq "F") { + print "Entrez un jour correct svp (entre 1 et 31).\n"; + } else { + print "Please give a correct value for the day (from 1 to 31).\n"; + } + return 102; + } + if ((($month == 3 || $month == 5 || $month == 8 || $month == 10) && $day > 30) || + ($month == 1 && $day > 29)) { + if ($defaultlanguage eq "F") { + print "Entrez un jour correct en fonction du mois svp.\n"; + } else { + print "Please give a correct value for a day of this month.\n"; + } + return 102; + } + if ($hour < 0 || $hour > 23) { + if ($defaultlanguage eq "F") { + print "Entrez une heure correcte svp (entre 0 et 23).\n"; + } else { + print "Please give a correct value for the hour (from 0 to 23).\n"; + } + return 102; + } + if ($minute < 0 || $minute > 59) { + if ($defaultlanguage eq "F") { + print "Entrez des minutes correctes svp (entre 0 et 59).\n"; + } else { + print "Please give a correct value for the minutes (from 0 to 59).\n"; + } + return 102; + } + if ($second < 0 || $second > 59) { + if ($defaultlanguage eq "F") { + print "Entrez des secondes correctes svp (entre 0 et 59).\n"; + } else { + print "Please give a correct value for the seconds (from 0 to 59).\n"; + } + return 102; + } + $timestamp = POSIX::mktime($second, $minute, $hour, $day, $month, $year, 0, 0, -1); # -1: no winter/summer time modification + if ($timestamp == undef) { + if ($defaultlanguage eq "F") { + print "Date incorrecte.\n"; + print "Ajoutez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"; + } else { + print "Invalid date.\n"; + print "Please add 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"; + } + return 102; + } + } + + print $so pack("va24V", 0x794a, $userid, $timestamp); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x794b) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 152; + } + $buf = readso(32); + my(@dat) = unpack("Va24V", $buf); + while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { + chop($dat[1]); + }; + if ($dat[0] != -1 && $dat[0] != 4294967295) { + if ($defaultlanguage eq "F") { + print "Date finale de banissement du compte [$dat[1]][id: $dat[0]] chang馥 avec succ鑚 ". + ($dat[2] == 0 ? "en [d-bannie].\n" : "pour 黎re jusqu'au ".(POSIX::ctime($dat[2]))); + } else { + print "Final date of banishment of the account [$dat[1]][id: $dat[0]] successfully changed ". + ($dat[2] == 0 ? "to [unbanished].\n" : "to be until ".(POSIX::ctime($dat[2]))); + } + # localtime($dat[2]) is also possible to display instead of POSIX::ctime. + } else { + if ($defaultlanguage eq "F") { + print "Echec du changement de la date finale de banissement du compte [$userid]. Le compte n'existe pas.\n"; + } else { + print "Account [$userid] final date of banishment changing failed. Account doesn't exist.\n"; + } + } + + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Add/substract time to the final date of a banishment of an account +sub banaddaccount() { + my($userid, $modif) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " banadd nomtest +1m-2mn1s-6y\n"; + print " Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"; + print " et 6 ans dans le m麥e temps.\n"; + } else { + print "Please input an account name.\n"; + print " banadd testname +1m-2mn1s-6y\n"; + print " this example adds 1 month and 1 second, and substracts 2 minutes\n"; + print " and 6 years at the same time.\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + my($year, $month, $day) = (0, 0 ,0); + my($hour, $minute, $second) = (0, 0 ,0); + + $modif = lc($modif); + while (length($modif) > 0) { + my($value) = int($modif); + if ($value == 0) { + $modif = substr($modif, 1); + } else { + if (substr($modif, 0, 1) =~ /[\-\+]/) { + $modif = substr($modif, 1); + } + while (length($modif) > 0 && substr($modif, 0, 1) =~ /[0-9]/) { + $modif = substr($modif, 1); + } + if (index($modif, "s") == 0) { + $second = $value; + $modif = substr($modif, 1); + } elsif (index($modif, "mn") == 0) { + $minute = $value; + $modif = substr($modif, 2); + } elsif (index($modif, "h") == 0) { + $hour = $value; + $modif = substr($modif, 1); + } elsif (index($modif, "d") == 0 || index($modif, "j") == 0) { + $day = $value; + $modif = substr($modif, 1); + } elsif (index($modif, "m") == 0) { + $month = $value; + $modif = substr($modif, 1); + } elsif (index($modif, "y") == 0 || index($modif, "a") == 0) { + $year = $value; + $modif = substr($modif, 1); + } else { + $modif = substr($modif, 1); + } + } + } + + if ($defaultlanguage eq "F") { + print " ann馥: $year\n"; + print " mois: $month\n"; + print " jour: $day\n"; + print " heure: $hour\n"; + print " minute: $minute\n"; + print " seconde: $second\n"; + } else { + print " year: $year\n"; + print " month: $month\n"; + print " day: $day\n"; + print " hour: $hour\n"; + print " minute: $minute\n"; + print " second: $second\n"; + } + + if ($year == 0 && $month == 0 && $day == 0 && $hour == 0 && $minute == 0 && $second == 0) { + if ($defaultlanguage eq "F") { + print "Vous devez entrer un ajustement avec cette commande, svp:\n"; + print " Valeur d'ajustement (-1, 1, +1, etc...)\n"; + print " Element modifi:\n"; + print " a ou y: ann馥\n"; + print " m: mois\n"; + print " j ou d: jour\n"; + print " h: heure\n"; + print " mn: minute\n"; + print " s: seconde\n"; + print " banadd nomtest +1m-2mn1s-6y\n"; + print " Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"; + print " et 6 ans dans le m麥e temps.\n"; + } else { + print "Please give an adjustment with this command:\n"; + print " Adjustment value (-1, 1, +1, etc...)\n"; + print " Modified element:\n"; + print " a or y: year\n"; + print " m: month\n"; + print " j or d: day\n"; + print " h: hour\n"; + print " mn: minute\n"; + print " s: second\n"; + print " banadd testname +1m-2mn1s-6y\n"; + print " this example adds 1 month and 1 second, and substracts 2 minutes\n"; + print " and 6 years at the same time.\n"; + } + return 137; + } + if ($year > 127 || $year < -127) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement d'ann馥s correct (de -127 127), svp.\n"; + } else { + print "Please give a correct adjustment for the years (from -127 to 127).\n"; + } + return 137; + } + if ($month > 255 || $month < -255) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement de mois correct (de -255 255), svp.\n"; + } else { + print "Please give a correct adjustment for the months (from -255 to 255).\n"; + } + return 137; + } + if ($day > 32767 || $day < -32767) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement de jours correct (de -32767 32767), svp.\n"; + } else { + print "Please give a correct adjustment for the days (from -32767 to 32767).\n"; + } + return 137; + } + if ($hour > 32767 || $hour < -32767) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement d'heures correct (de -32767 32767), svp.\n"; + } else { + print "Please give a correct adjustment for the hours (from -32767 to 32767).\n"; + } + return 137; + } + if ($minute > 32767 || $minute < -32767) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement de minutes correct (de -32767 32767), svp.\n"; + } else { + print "Please give a correct adjustment for the minutes (from -32767 to 32767).\n"; + } + return 137; + } + if ($second > 32767 || $second < -32767) { + if ($defaultlanguage eq "F") { + print "Entrez un ajustement de secondes correct (de -32767 32767), svp.\n"; + } else { + print "Please give a correct adjustment for the seconds (from -32767 to 32767).\n"; + } + return 137; + } + + print $so pack("va24vvvvvv", 0x794c, $userid, $year, $month, $day, $hour, $minute, $second); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x794d) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 152; + } + $buf = readso(32); + my(@dat) = unpack("Va24V", $buf); + while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { + chop($dat[1]); + }; + if ($dat[0] == -1 || $dat[0] == 4294967295) { + if ($defaultlanguage eq "F") { + print "Echec du changement de la date finale de banissement du compte [$userid]. Le compte n'existe pas.\n"; + } else { + print "Account [$userid] final date of banishment changing failed. Account doesn't exist.\n"; + } + } else { + if ($defaultlanguage eq "F") { + print "Date finale de banissement du compte [$dat[1]][id: $dat[0]] chang馥 avec succ鑚 ". + ($dat[2] == 0 ? "en [d-bannie].\n" : "pour 黎re jusqu'au ".(POSIX::ctime($dat[2]))); + } else { + print "Final date of banishment of the account [$dat[1]][id: $dat[0]] successfully changed ". + ($dat[2] == 0 ? "to [unbanished].\n" : "to be until ".(POSIX::ctime($dat[2]))); + } + # localtime($dat[2]) is also possible to display instead of POSIX::ctime. + } + + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Request to displaying information about an account (by its name) +sub whoaccount() { + my($userid) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " who nomtest\n"; + } else { + print "Please input an account name.\n"; + print " who testname\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + + print $so pack("va24", 0x7952, $userid); + $so->flush(); + + $buf = readso(2); + if (unpack("v", $buf) != 0x7953) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 122; + } + my($id2, $GM_level, $name, $sex, $count, $status, $error_message, $last_login, $last_ip, $email, $validite, $ban_date, $memo_size) = unpack("VCa24cVVa20a24a16a40VVv", readso(148)); + my($memo) = ""; + if ($memo_size > 0) { + $memo = unpack("a".$memo_size, readso($memo_size)); + } + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + while (length($error_message) > 0 && substr($error_message, length($error_message)-1, 1) eq chr(0)) { + chop($error_message); + }; + while (length($last_login) > 0 && substr($last_login, length($last_login)-1, 1) eq chr(0)) { + chop($last_login); + }; + while (length($last_ip) > 0 && substr($last_ip, length($last_ip)-1, 1) eq chr(0)) { + chop($last_ip); + }; + while (length($email) > 0 && substr($email, length($email)-1, 1) eq chr(0)) { + chop($email); + }; + while (length($memo) > 0 && substr($memo, length($memo)-1, 1) eq chr(0)) { + chop($memo); + }; + + if ($id2 == -1 || $id2 == 4294967295) { + if ($defaultlanguage eq "F") { + print "Impossible de trouver le compte [$userid]. Le compte n'existe pas.\n"; + } else { + print "Unabled to find the account [$userid]. Account doesn't exist.\n"; + } + return 123; + } else { + if ($defaultlanguage eq "F") { + print "Le compte [$userid] a les caract駻istiques suivantes:\n"; + } else { + print "The account [$userid] is set with:\n"; + } + if ($GM_level == 0) { + print " Id: $id2 (non-GM)\n"; + } else { + if ($defaultlanguage eq "F") { + print " Id: $id2 (GM niveau $GM_level)\n"; + } else { + print " Id: $id2 (GM level $GM_level)\n"; + } + } + if ($defaultlanguage eq "F") { + print " Nom: '$name'\n"; + print " Sexe: ".("Femme", "Male", "Serveur")[$sex]."\n"; + } else { + print " Name: '$name'\n"; + print " Sex: ".("Female", "Male", "Server")[$sex]."\n"; + } + print " E-mail: $email\n"; + if ($status == 7) { + print " Statut: 7 [You are Prohibited to log in until $error_message]\n"; + } else { + print " Statut: $status [".( + ($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), + "Unregistered ID", + "Incorrect Password", + "This ID is expired", + "Rejected from Server", + "You have been blocked by the GM Team", + "Your Game's EXE file is not the latest version", + "You are Prohibited to log in until %s", + "Server is jammed due to over populated", + "No MSG", + "This ID is totally erased")[$status == 100 ? 10 : $status]."]\n"; + } + if ($defaultlanguage eq "F") { + print " Banissement: ".($ban_date == 0 ? "non banni.\n" : "jusqu'au ".(POSIX::ctime($ban_date))); + print " Compteur: $count connexion".("s", "")[$count > 1 ? 0 : 1]."\n"; + print " Derni鑽e connexion le: $last_login (ip: $last_ip)\n"; + print " Limite de validit: ".($validite == 0 ? "illimit.\n" : "jusqu'au ".(POSIX::ctime($validite))); + } else { + print " Banishment: ".($ban_date == 0 ? "not banished.\n" : "until ".(POSIX::ctime($ban_date))); + print " Count: $count connection".("s", "")[$count > 1 ? 0 : 1]."\n"; + print " Last connection at: $last_login (ip: $last_ip)\n"; + print " Validity limit: ".($validite == 0 ? "unlimited.\n" : "until ".(POSIX::ctime($validite))); + } + print " Memo: '$memo'\n"; + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Request to displaying information about an account (by its id) +sub infoaccount() { + my($id) = @_; + if ($id < 0) { + if ($defaultlanguage eq "F") { + print "Entrez un id ayant une valeur positive svp.\n"; + } else { + print "Please input a positive value for the id.\n"; + } + return 136; + } + + print $so pack("vV", 0x7954, $id); + $so->flush(); + + $buf = readso(2); + if (unpack("v", $buf) != 0x7953) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 122; + } + my($id2, $GM_level, $name, $sex, $count, $status, $error_message, $last_login, $last_ip, $email, $validite, $ban_date, $memo_size) = unpack("VCa24cVVa20a24a16a40VVv", readso(148)); + my($memo) = ""; + if ($memo_size > 0) { + $memo = unpack("a".$memo_size, readso($memo_size)); + } + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + while (length($error_message) > 0 && substr($error_message, length($error_message)-1, 1) eq chr(0)) { + chop($error_message); + }; + while (length($last_login) > 0 && substr($last_login, length($last_login)-1, 1) eq chr(0)) { + chop($last_login); + }; + while (length($last_ip) > 0 && substr($last_ip, length($last_ip)-1, 1) eq chr(0)) { + chop($last_ip); + }; + while (length($email) > 0 && substr($email, length($email)-1, 1) eq chr(0)) { + chop($email); + }; + while (length($memo) > 0 && substr($memo, length($memo)-1, 1) eq chr(0)) { + chop($memo); + }; + + if (length($name) == 0 || $name eq "") { + if ($defaultlanguage eq "F") { + print "Impossible de trouver le nom du compte [id: $id2]. Le compte n'existe pas.\n"; + } else { + print "Unabled to find the account [id: $id2] name. Account doesn't exist.\n"; + } + return 123; + } else { + if ($defaultlanguage eq "F") { + print "Le compte [id: $id2] a les caract駻istiques suivantes:\n"; + } else { + print "The account [id: $id2] is set with:\n"; + } + if ($GM_level == 0) { + print " Id: $id2 (non-GM)\n"; + } else { + if ($defaultlanguage eq "F") { + print " Id: $id2 (GM niveau $GM_level)\n"; + } else { + print " Id: $id2 (GM level $GM_level)\n"; + } + } + if ($defaultlanguage eq "F") { + print " Nom: '$name'\n"; + print " Sexe: ".("Femme", "Male", "Serveur")[$sex]."\n"; + } else { + print " Name: '$name'\n"; + print " Sex: ".("Female", "Male", "Server")[$sex]."\n"; + } + print " E-mail: $email\n"; + if ($status == 7) { + print " Statut: 7 [You are Prohibited to log in until $error_message]\n"; + } else { + print " Statut: $status [".( + ($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), + "Unregistered ID", + "Incorrect Password", + "This ID is expired", + "Rejected from Server", + "You have been blocked by the GM Team", + "Your Game's EXE file is not the latest version", + "You are Prohibited to log in until %s", + "Server is jammed due to over populated", + "No MSG", + "This ID is totally erased")[$status == 100 ? 10 : $status]."]\n"; + } + if ($defaultlanguage eq "F") { + print " Banissement: ".($ban_date == 0 ? "non banni.\n" : "jusqu'au ".(POSIX::ctime($ban_date))); + print " Compteur: $count connexion".("s", "")[$count > 1 ? 0 : 1]."\n"; + print " Derni鑽e connexion le: $last_login (ip: $last_ip)\n"; + print " Limite de validit: ".($validite == 0 ? "illimit.\n" : "jusqu'au ".(POSIX::ctime($validite))); + } else { + print " Banishment: ".($ban_date == 0 ? "not banished.\n" : "until ".(POSIX::ctime($ban_date))); + print " Count: $count connection".("s", "")[$count > 1 ? 0 : 1]."\n"; + print " Last connection at: $last_login (ip: $last_ip)\n"; + print " Validity limit: ".($validite == 0 ? "unlimited.\n" : "until ".(POSIX::ctime($validite))); + } + print " Memo: '$memo'\n"; + } + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Check the validity of a password +# (Note: never send back a password with login-server!! security of passwords) +sub checkaccount() { + my($userid, $passwd) = @_; + if ($userid eq "") { + if ($defaultlanguage eq "F") { + print "Entrez un nom de compte svp.\n"; + print " check testname motdepasse\n"; + } else { + print "Please input an account name.\n"; + print " check testname password\n"; + } + return 136; + } + if (verify_accountname($userid) == 0) { + return 102; + } + if ($passwd eq "") { + return 134 if (($passwd = typepasswd()) eq ""); + } + if (verify_password($passwd) == 0) { + return 131; + } + print $so pack("va24a24", 0x793a, $userid,$passwd); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x793b) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 132; + } + $buf = readso(28); + my($id2, $name) = unpack("Va24", $buf); + while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { + chop($name); + }; + if ($id2 == -1 || $id2 == 4294967295) { + if ($defaultlanguage eq "F") { + print "Le compte [$userid] n'existe pas ou le mot de passe est incorrect.\n"; + } else { + print "The account [$userid] doesn't exist or the password is incorrect.\n"; + } + return 133; + } else { + if ($defaultlanguage eq "F") { + print "Le mot de passe donn correspond bien au compte [$name][id: $id2].\n"; + } else { + print "The proposed password is correct for the account [$name][id: $id2].\n"; + } + } + return 130; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Request to login-server to reload GM configuration file +sub reloadGM() { + print $so pack("v", 0x7955); + $so->flush(); + if ($defaultlanguage eq "F") { + print "Demande de recharger le fichier de configuration des GM envoy馥.\n"; + print "V駻ifiez les comptes GM actuels (apr鑚 rechargement):\n"; + } else { + print "Request to reload the GM configuration file sended.\n"; + print "Check the actual GM accounts (after reloading):\n"; + } + &listaccount(0, 0, 1); # 1: to list only GM + return 180; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Send a broadcast message +sub sendbroadcast() { + my($type, $message) = @_; + if ($message eq "" || length($message) == 0) { + if ($defaultlanguage eq "F") { + print "Entrez un message svp.\n"; + if ($type == 0) { + print " kami un message\n"; + } else { + print " kamib un message\n"; + } + } else { + print "Please input a message.\n"; + if ($type == 0) { + print " kami a message\n"; + } else { + print " kamib a message\n"; + } + } + return 136; + } + + print $so pack("vvVa".length($message), 0x794e, $type, length($message), $message); + $so->flush(); + $buf = readso(2); + if (unpack("v", $buf) != 0x794f) { + if ($defaultlanguage eq "F") { + print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; + } else { + print "Connection error to the server (incorrect answer).\n"; + } + return 152; + } + $buf = readso(2); + my($answer) = unpack("v", $buf); + if ($answer == -1 || $answer == 65535) { + if ($defaultlanguage eq "F") { + print "Echec de l'envoi du message. Aucun server de char en ligne.\n"; + } else { + print "Message sending failed. No online char-server.\n"; + } + } else { + if ($defaultlanguage eq "F") { + print "Message transmis au server de logins avec succ鑚.\n"; + } else { + print "Message successfully sended to login-server.\n"; + } + } +} + +#-------------------------------------------------------------------------- + +# Sub-function: Change language of displaying +sub changelanguage() { + my($language) = @_; + if ($language eq "" || length($language) == 0) { + if ($defaultlanguage == 'F') { + printf("Entrez une langue svp.\n"); + printf(" language english\n"); + printf(" language fran軋is\n"); + } else { + printf("Please input a language.\n"); + printf(" language english\n"); + printf(" language fran軋is\n"); + } + return 136; + } + + $language = uc(substr($language, 0, 1)); + if ($language =~ /^[EF]$/) { + $defaultlanguage = $language; + if ($defaultlanguage == 'F') { + printf("Changement de la langue d'affichage en Fran軋is.\n"); + } else { + printf("Displaying language changed to English.\n"); + } + } else { + if ($defaultlanguage == 'F') { + printf("Langue non param騁r馥 (langues possibles: 'Fran軋is' ou 'English').\n"); + } else { + printf("Undefined language (possible languages: Fran軋is or English).\n"); + } + } + + return 0; +} + +#-------------------------------------------------------------------------- + +# Sub-function: sending 'end of connection' packet +sub quit() { + print $so pack("v", 0x7532); + $so->flush(); +} + +#-------------------------------------------------------------------------- + +# Sub-function: Get datas from the socket +sub readso() { + my($len) = shift; + my($buf); + if (read($so, $buf, $len) < $len) { + if ($defaultlanguage eq "F") { + print "Erreur de lecture sur la Socket.\n"; + } else { + print "Socket read error.\n"; + } + exit(3); + } + return $buf; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Input of a password +sub typepasswd { + my($passwd1, $passwd2); + cbreak(); + if ($defaultlanguage eq "F") { + print "Entrez le mot de passe > "; $passwd1 = ; chomp($passwd1); print "\n"; + print "R-entrez le mot de passe > "; $passwd2 = ; chomp($passwd2); print "\n"; + } else { + print "Type the password > "; $passwd1 = ; chomp($passwd1); print "\n"; + print "Verify the password > "; $passwd2 = ; chomp($passwd2); print "\n"; + } + cooked(); + if ($passwd1 ne $passwd2) { + if ($defaultlanguage eq "F") { + print "Erreur de v駻ification du mot de passe: Saisissez le m麥e mot de passe svp.\n"; + } else { + print "Password verification failed. Please input same password.\n"; + } + return ""; + } + return $passwd1; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Return ordonal text of a number +sub makeordinal { + my($c) = shift; + if ($defaultlanguage eq "F") { + if ($c < 1) { + return $c; + } + return $c.("er", "鑪e")[$c == 1 ? 0 : 1]; + } else { + if ($c % 10 < 4 && $c % 10 != 0 && ($c < 10 || $c > 20)) { + return $c.("st","nd","rd")[$c % 10 - 1]; + } + return $c."th"; + } +} + +#-------------------------------------------------------------------------- + +# Sub-function: Test of the validity of an account name (return 0 if incorrect, and 1 if ok) +sub verify_accountname { + my($account_name) = @_; # Get the account_name + if ($account_name =~ /[\x00-\x1f]/) { # remove control char + my($c) = length($`) + 1; + if ($defaultlanguage eq "F") { + print "Caract鑽e interdit trouv dans le nom du compte (".makeordinal($c)." caract鑽e).\n"; + } else { + print "Illegal character found in the account name (".makeordinal($c)." character).\n"; + } + return 0; + } + if (length($account_name) < 4) { + if ($defaultlanguage eq "F") { + print "Nom du compte trop court. Entrez un nom de compte de 4-23 caract鑽es.\n"; + } else { + print "Account name is too short. Please input an account name of 4-23 bytes.\n"; + } + return 0; + } + if (length($account_name) > 23) { + if ($defaultlanguage eq "F") { + print "Nom du compte trop long. Entrez un nom de compte de 4-23 caract鑽es.\n"; + } else { + print "Account name is too long. Please input an account name of 4-23 bytes.\n"; + } + return 0; + } + return 1; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Test of the validity of password (return 0 if incorrect, and 1 if ok) +sub verify_password { + my($password) = @_; # Get the password + if ($password =~ /[\x00-\x1f]/) { + my($c) = length($`) + 1; + if ($defaultlanguage eq "F") { + print "Caract鑽e interdit trouv dans le mot de passe (".makeordinal($c)." caract鑽e).\n"; + } else { + print "Illegal character found in the password (".makeordinal($c)." character).\n"; + } + return 0; + } + if (length($password) < 4) { + if ($defaultlanguage eq "F") { + print "Mot de passe trop court. Entrez un mot de passe de 4-23 caract鑽es.\n"; + } else { + print "Password is too short. Please input a password of 4-23 bytes.\n"; + } + return 0; + } + if (length($password) > 23) { + if ($defaultlanguage eq "F") { + print "Mot de passe trop long. Entrez un mot de passe de 4-23 caract鑽es.\n"; + } else { + print "Password is too long. Please input a password of 4-23 bytes.\n"; + } + return 0; + } + return 1; +} + +#-------------------------------------------------------------------------- + +# Sub-function: Test of the validity of an e-mail (return 0 if incorrect, and 1 if ok) +sub verify_email { + my($email) = @_; # Get the e-mail + # To ignore a '.' before the @ (wanadoo, a provider, do that) + $email =~ s/\.\@/\@/; + # If the e-mail is void, it's not correct -> return 0 + if ($email eq '') { + return(0); + } + # If the e-mail have no "@", it's not correct -> return 0 + if ($email !~ /\@/) { + return(0); + } + # If the e-mail have a ",", a space, a tab or a ";", it's not correct -> return 0 + if ($email =~ /[\,|\s|\;]/) { + return(0) + }; + # IF + # (the e-mail contains 2 "@", or ".." or "@." or starts or finishes by a ".") + # OR IF + # (the e-mail doesn't contain "@localhost" AND + # - it doesn't contain characters followed by "@" itself followed by letters itself followed by "." and 2 or more letters + # - or an IP address) + # -> so, it's not good ! (finish !) + if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/ || + ($email !~ /^.+\@localhost$/ && + $email !~ /^.+\@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) { + return(0); # non-valid email + } else { + # If not, the e-email address is correct + return(1); # valid email + } +} \ No newline at end of file diff --git a/tools/mapcheck.sh b/tools/mapcheck.sh new file mode 100644 index 000000000..54cdd0765 --- /dev/null +++ b/tools/mapcheck.sh @@ -0,0 +1,34 @@ +#!/bin/sh +echo "============================================" +echo "= map server status checker... =" +echo "============================================" +./map-server.exe & +sleep 40 + +while [ 0 ] +do + pcpu=` top -n 1| grep map-server | awk '{print $9}' | awk 'BEGIN{FS="."} {print $1}' ` + if [ "$pcpu" -gt 80 ];then + echo "============================================" + echo "map server is more than 80% (now $pcpu%)" + echo "============================================" + ppid=` ps -a | grep map-server | awk '{print $1}' ` + kill $ppid + ./map-server.exe & + sleep 40 + else + pmapct=` ps -a| grep map-server | wc -l ` + if [ "$pmapct" -eq 0 ];then + echo "============================================" + echo "map server is not running..." + echo "restart map server..." + echo "============================================" + ./map-server.exe & + sleep 40 + #echo "test" + else + echo "map server is ok (now $pcpu%)..." + sleep 5 + fi + fi +done \ No newline at end of file diff --git a/tools/mapchecker.sh b/tools/mapchecker.sh new file mode 100644 index 000000000..5f26c9d4b --- /dev/null +++ b/tools/mapchecker.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +athena_dir="/home/athena/658/" + +while [ true ] ; do + +if [ ` ps fauxw | grep map-server | grep -v grep | wc -l ` -eq 0 ];then + #echo `date` " -- map-server crashed - restarting" + echo `date` " -- map-server crashed - restarting" >> /var/log/athena_status.log + killall -9 map-server + cd $athena_dir + nohup ./map-server ./conf/map_athena.conf ./inter_athena.conf & + sleep 240 + #sleep 40 #for fast pc's remove the "#" at the beginning of the line and delete the line above +fi + + +if [ ` ps fauxw | grep map-server | grep -v grep | awk '{print $3}' | awk 'BEGIN{FS="."} {print $1}' ` -gt 10 ];then + #echo `date` " -- mapserver cpuload over 10 - restarting" + echo `date` " -- mapserver cpuload over 10 - restarting" >> /var/log/athena_status.log + killall -9 map-server + cd $athena_dir + nohup ./map-server ./conf/map_athena.conf ./inter_athena.conf & + sleep 240 + #sleep 40 #for fast pc's remove the "#" at the beginning of the line and delete the line above + #echo `date` " -- restarted" + echo `date` " -- restarted" >> /var/log/athena_status.log +fi + +if [ ` ps fauxw | grep char-server | grep -v grep | wc -l ` -eq 0 ];then + #echo `date` " -- char server crashed - restarting" + echo `date` " -- char server crashed - restarting" >> /var/log/athena_status.log + killall -9 char-server + cd $athena_dir + nohup ./char-server ./conf/char_athena.conf ./conf/inter_athena.conf & + #echo `date` " -- restarted" + echo `date` " -- restarted" >> /var/log/athena_status.log + +fi + +if [ ` ps fauxw | grep login-server | grep -v grep | wc -l ` -eq 0 ];then + #echo `date` " -- login server crashed - restarting" + echo `date` " -- login server crashed - restarting" >> /var/log/athena_status.log + killall -9 login-server + cd $athena_dir + nohup ./login-server ./conf/login_athena.conf & + #echo `date` " -- restarted" + echo `date` " -- restarted" >> /var/log/athena_status.log + +fi + + +#echo `date` " -- everything is fine" +echo `date` " -- everything is fine" >> /var/log/athena_status.log +sleep 30 +done diff --git a/tools/stackdump b/tools/stackdump new file mode 100644 index 000000000..d5e89f415 --- /dev/null +++ b/tools/stackdump @@ -0,0 +1,48 @@ +#!/bin/bash + +case "$1" in + ""|help) + echo "Usage 1: ${0##*/} [server-type] [sql]" + echo Server type can be map, login, or char. Examples: + echo "$ ./${0##*/} map" + echo "$ ./${0##*/} login sql" + echo + echo "Usage 2: ${0##*/} [server-type] [number]" + echo Server type has to be the full name of the file. Examples: + echo "$ ./${0##*/} map-server 0001" + echo "$ ./${0##*/} login-server_sql 0002" + echo + echo Note: Dump files inside /log will also be scanned. + exit + ;; + + map|char|login) + # Check for SQL postfix + if [ "$2" = "sql" ]; then + sql="_sql" + fi + STACK="$1-server$sql.exe.stackdump" + SERVER="$1-server$sql.exe" + ;; + + *) + STACK="$1$2.stackdump" + SERVER="$1.exe" + ;; +esac + +# Check if file exists. +# Try looking under '/log' if it isn't + +if [ ! -e $STACK ]; then + if [ -e log/$STACK ]; then + STACK=log/$STACK + else + echo Error: $STACK not found! + exit + fi +fi + +# Finally dump the backtrace + +awk '/^[0-9]/{print $2}' $STACK | addr2line -f -e $SERVER \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 469e1ca0801a611274b7c48d6f951ffc2c008a37 Mon Sep 17 00:00:00 2001 From: skotlex Date: Thu, 22 Jun 2006 16:04:49 +0000 Subject: - Updated the tools/stackdump script to also handle sig-plugin generated backtraces. Now it will also auto-determine whether the exe needs a .exe at the end or not. - Usage is "stackdump [number]". When a number is given, sig-plugin stackdumps are assumed, otherwise it parses the normal stackdump as before. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7296 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 7 +++++++ tools/stackdump | 58 ++++++++++++++++++++++++++++++++++------------------- 2 files changed, 44 insertions(+), 21 deletions(-) (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 9da047964..9f49f4a82 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,13 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/06/22 + * Updated the tools/stackdump script to also handle sig-plugin generated + backtraces. Now it will also auto-determine whether the exe needs a .exe at + the end or not. Help me test it as I want this script on stable NOW :X + [Skotlex] + * Usage is "stackdump [number]". When a number + is given, sig-plugin stackdumps are assumed, otherwise it parses the normal + stackdump as before. [Skotlex] * Corrected autoloot so that you can specify rate with decimal precision ("@autoloot 0.01" should work) [Skotlex] 2006/06/21 diff --git a/tools/stackdump b/tools/stackdump index d5e89f415..1826b0c76 100644 --- a/tools/stackdump +++ b/tools/stackdump @@ -1,35 +1,47 @@ #!/bin/bash case "$1" in - ""|help) - echo "Usage 1: ${0##*/} [server-type] [sql]" + map|char|login) + # Check for SQL postfix + if [ "$2" = "sql" ]; then + SERVER="$1-server_sql" + else + SERVER="$1-server" + fi + ;; + + *|""|help) + echo "Usage 1: ${0##*/} [server-type] [txt/sql]" echo Server type can be map, login, or char. Examples: echo "$ ./${0##*/} map" echo "$ ./${0##*/} login sql" echo - echo "Usage 2: ${0##*/} [server-type] [number]" - echo Server type has to be the full name of the file. Examples: - echo "$ ./${0##*/} map-server 0001" - echo "$ ./${0##*/} login-server_sql 0002" + echo "Usage 2: ${0##*/} [server-type] [txt/sql] [number]" + echo Server type can be map, login, or char. Examples: + echo "$ ./${0##*/} map txt 0001" + echo "$ ./${0##*/} login sql 0002" echo echo Note: Dump files inside /log will also be scanned. exit ;; +esac - map|char|login) - # Check for SQL postfix - if [ "$2" = "sql" ]; then - sql="_sql" - fi - STACK="$1-server$sql.exe.stackdump" - SERVER="$1-server$sql.exe" - ;; +# Check if server file needs .exe (Windows/Cygwin) +if [ ! -e $SERVER ]; then + if [ -e $SERVER.exe ]; then + SERVER=$SERVER.exe + else + echo Error: $SERVER not found! + exit + fi +fi - *) - STACK="$1$2.stackdump" - SERVER="$1.exe" - ;; -esac +# Assemble stackdump filename +if [ $# > 2 ]; then + STACK="$SERVER$3.stackdump" +else + STACK="$SERVER.stackdump" +fi # Check if file exists. # Try looking under '/log' if it isn't @@ -44,5 +56,9 @@ if [ ! -e $STACK ]; then fi # Finally dump the backtrace - -awk '/^[0-9]/{print $2}' $STACK | addr2line -f -e $SERVER \ No newline at end of file +# If number is given, Sig-plugin format. otherwise, standard stackdump format +if [ $# > 2 ]; then + awk '$2 ~ /[0-9a-eA-E]\]$/{print $2}' $STACK | tr -d \[\] | addr2line -f -e $SERVER +else + awk '/^[0-9]/{print $2}' $STACK | addr2line -f -e $SERVER +fi -- cgit v1.2.3-70-g09d2 From 3e02ce770f3b26bf1307d741a15be7c804792e33 Mon Sep 17 00:00:00 2001 From: skotlex Date: Thu, 22 Jun 2006 16:19:20 +0000 Subject: - Did some testing and fixed a bit the updated tools/stackdump script. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7297 54d463be-8e91-2dee-dedb-b68131a5f0ec --- tools/stackdump | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'tools') diff --git a/tools/stackdump b/tools/stackdump index 1826b0c76..df460e824 100644 --- a/tools/stackdump +++ b/tools/stackdump @@ -27,17 +27,15 @@ case "$1" in esac # Check if server file needs .exe (Windows/Cygwin) -if [ ! -e $SERVER ]; then - if [ -e $SERVER.exe ]; then - SERVER=$SERVER.exe - else - echo Error: $SERVER not found! - exit - fi +if [ -e $SERVER.exe ]; then + SERVER="$SERVER.exe" +elif [ ! -e $SERVER ]; then + echo Error: $SERVER not found! + exit fi # Assemble stackdump filename -if [ $# > 2 ]; then +if [ $# -gt 2 ]; then STACK="$SERVER$3.stackdump" else STACK="$SERVER.stackdump" @@ -57,7 +55,7 @@ fi # Finally dump the backtrace # If number is given, Sig-plugin format. otherwise, standard stackdump format -if [ $# > 2 ]; then +if [ $# -gt 2 ]; then awk '$2 ~ /[0-9a-eA-E]\]$/{print $2}' $STACK | tr -d \[\] | addr2line -f -e $SERVER else awk '/^[0-9]/{print $2}' $STACK | addr2line -f -e $SERVER -- cgit v1.2.3-70-g09d2 From f1a7a5ee621c1712b719ae3b2053dafeda294e2d Mon Sep 17 00:00:00 2001 From: skotlex Date: Thu, 22 Jun 2006 20:24:03 +0000 Subject: - Converted the line terminators of tools/stackdump to native. Fixes the script being unusable on *nix due to ^M terminator x.x git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7299 54d463be-8e91-2dee-dedb-b68131a5f0ec --- tools/stackdump | 124 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 62 insertions(+), 62 deletions(-) (limited to 'tools') diff --git a/tools/stackdump b/tools/stackdump index df460e824..25b1fa46a 100644 --- a/tools/stackdump +++ b/tools/stackdump @@ -1,62 +1,62 @@ -#!/bin/bash - -case "$1" in - map|char|login) - # Check for SQL postfix - if [ "$2" = "sql" ]; then - SERVER="$1-server_sql" - else - SERVER="$1-server" - fi - ;; - - *|""|help) - echo "Usage 1: ${0##*/} [server-type] [txt/sql]" - echo Server type can be map, login, or char. Examples: - echo "$ ./${0##*/} map" - echo "$ ./${0##*/} login sql" - echo - echo "Usage 2: ${0##*/} [server-type] [txt/sql] [number]" - echo Server type can be map, login, or char. Examples: - echo "$ ./${0##*/} map txt 0001" - echo "$ ./${0##*/} login sql 0002" - echo - echo Note: Dump files inside /log will also be scanned. - exit - ;; -esac - -# Check if server file needs .exe (Windows/Cygwin) -if [ -e $SERVER.exe ]; then - SERVER="$SERVER.exe" -elif [ ! -e $SERVER ]; then - echo Error: $SERVER not found! - exit -fi - -# Assemble stackdump filename -if [ $# -gt 2 ]; then - STACK="$SERVER$3.stackdump" -else - STACK="$SERVER.stackdump" -fi - -# Check if file exists. -# Try looking under '/log' if it isn't - -if [ ! -e $STACK ]; then - if [ -e log/$STACK ]; then - STACK=log/$STACK - else - echo Error: $STACK not found! - exit - fi -fi - -# Finally dump the backtrace -# If number is given, Sig-plugin format. otherwise, standard stackdump format -if [ $# -gt 2 ]; then - awk '$2 ~ /[0-9a-eA-E]\]$/{print $2}' $STACK | tr -d \[\] | addr2line -f -e $SERVER -else - awk '/^[0-9]/{print $2}' $STACK | addr2line -f -e $SERVER -fi +#!/bin/bash + +case "$1" in + map|char|login) + # Check for SQL postfix + if [ "$2" = "sql" ]; then + SERVER="$1-server_sql" + else + SERVER="$1-server" + fi + ;; + + *|""|help) + echo "Usage 1: ${0##*/} [server-type] [txt/sql]" + echo Server type can be map, login, or char. Examples: + echo "$ ./${0##*/} map" + echo "$ ./${0##*/} login sql" + echo + echo "Usage 2: ${0##*/} [server-type] [txt/sql] [number]" + echo Server type can be map, login, or char. Examples: + echo "$ ./${0##*/} map txt 0001" + echo "$ ./${0##*/} login sql 0002" + echo + echo Note: Dump files inside /log will also be scanned. + exit + ;; +esac + +# Check if server file needs .exe (Windows/Cygwin) +if [ -e $SERVER.exe ]; then + SERVER="$SERVER.exe" +elif [ ! -e $SERVER ]; then + echo Error: $SERVER not found! + exit +fi + +# Assemble stackdump filename +if [ $# -gt 2 ]; then + STACK="$SERVER$3.stackdump" +else + STACK="$SERVER.stackdump" +fi + +# Check if file exists. +# Try looking under '/log' if it isn't + +if [ ! -e $STACK ]; then + if [ -e log/$STACK ]; then + STACK=log/$STACK + else + echo Error: $STACK not found! + exit + fi +fi + +# Finally dump the backtrace +# If number is given, Sig-plugin format. otherwise, standard stackdump format +if [ $# -gt 2 ]; then + awk '$2 ~ /[0-9a-eA-E]\]$/{print $2}' $STACK | tr -d \[\] | addr2line -f -e $SERVER +else + awk '/^[0-9]/{print $2}' $STACK | addr2line -f -e $SERVER +fi -- cgit v1.2.3-70-g09d2 From 90d466716c46d8861d85dcf377981a412a2e2267 Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 25 Jul 2006 18:43:42 +0000 Subject: - Added Toms's perl scripts item_db.pl and mob_db.pl (they are in tools/), they convert the txt databases into sql. - Usage: "script" < "input file" > "output file". eg: ./tools/item_db.pl < db/item_db.txt > sql-files/item_db.sql - Updated the sql files since now it's easy :D git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7879 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 5 ++ sql-files/item_db.sql | 140 ++++++++++++++++++++++++++--------------------- sql-files/mob_db.sql | 106 ++++++++++++++++------------------- tools/item_db.pl | 108 ++++++++++++++++++++++++++++++++++++ tools/mob_db.pl | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 388 insertions(+), 120 deletions(-) create mode 100755 tools/item_db.pl create mode 100755 tools/mob_db.pl (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 78ad0df2f..89de5f334 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,11 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2006/07/25 + * Added Toms's perl scripts item_db.pl and mob_db.pl (they are in tools/), + they convert the txt databases into sql. [Skotlex] + - Usage: "script" < "input file" > "output file". eg: ./tools/item_db.pl < db/item_db.txt > sql-files/item_db.sql + * Updated the sql files since now it's quick [Skotlex] 2006/07/24 * Re-updated the mob_db.sql to latest. [Skotlex] * Cleaned up the skill_landprotector function to correctly block only magic diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index 60006f282..d3ff21c90 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -29,7 +29,10 @@ CREATE TABLE `item_db` ( PRIMARY KEY (`id`) ) TYPE=MyISAM; -# // ID,'Name','Name','Type','Price','Sell','Weight','ATK','DEF','Range','Slot','Job','Upper','Gender','Loc','wLV','eLV','Refineable','View',' Script ',' OnEquip_Script ','OnUnequip_Script'); +# // Items Database +# // +# // Structure of Database: +# // ID,Name,Name,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } # // # // Healing Items # //============================================================= @@ -520,7 +523,7 @@ REPLACE INTO `item_db` VALUES (1140,'Byeollungum','Byeollungum',4,NULL,10,900,15 REPLACE INTO `item_db` VALUES (1141,'Immaterial_Sword','Immaterial Sword',4,NULL,10,900,140,NULL,1,0,0x000654E2,7,2,2,4,40,1,2,' bonus bAtkEle,Ele_Ghost; bonus2 bSPDrainRate,10,30; bonus bSPDrainValue,-1; bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1142,'Jeweled_Sword','Jeweled Sword',4,NULL,10,2200,104,NULL,1,0,0x000654E2,7,2,2,3,68,1,2,' bonus2 bAddMonsterDropItemGroup,IG_Jewel,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1143,'Gaia_Sword','Gaia Sword',4,NULL,10,2500,115,NULL,1,0,0x000654E2,7,2,2,3,74,1,2,' bonus2 bAddMonsterDropItemGroup,IG_Ore,5; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1144,'Sashimi','Sashimi',4,NULL,10,1400,75,NULL,1,0,0x000654E2,7,2,2,3,48,1,2,' bonus bAtkEle,Ele_Wind; bonus3 bAddMonsterDropItem,544,5,4000; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1144,'Sashimi','Sashimi',4,NULL,10,1400,75,NULL,1,0,0x000654E2,7,2,2,3,48,1,2,' bonus bAtkEle,Ele_Wind; bonus3 bAddMonsterDropItem,544,RC_Fish,4000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1145,'Holy_Avenger','Holy Avenger',4,NULL,10,1350,125,NULL,1,0,0x00004000,7,2,2,3,75,1,2,' bonus bAtkEle,Ele_Holy; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1146,'Town_Sword','Town Sword',4,42000,NULL,800,100,NULL,1,1,0x00000001,7,2,2,3,30,1,2,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1147,'Town_Sword_','Town Sword',4,42000,NULL,800,100,NULL,1,2,0x00000001,7,2,2,3,30,1,2,NULL,NULL,NULL); @@ -578,7 +581,7 @@ REPLACE INTO `item_db` VALUES (1225,'Mailbreaker','Mailbreaker',4,NULL,10,1000,7 REPLACE INTO `item_db` VALUES (1226,'Damascus_','Damascus',4,49000,NULL,800,118,NULL,1,2,0x028F5EEE,7,2,2,3,24,1,1,' bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1227,'Weeder_Knife','Weeder Knife',4,NULL,10,400,80,NULL,1,0,0x028F5EEE,7,2,2,4,36,1,1,' bonus bIgnoreDefRace,RC_Plant; bonus2 bAddRace,RC_Plant,15; bonus2 bSubRace,RC_Plant,15; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1228,'Combat_Knife','Combat Knife',4,NULL,10,400,80,NULL,1,0,0x028F5EEE,7,2,2,4,36,1,1,' bonus bIgnoreDefRace,RC_DemiHuman; bonus2 bSubRace,RC_DemiHuman,10; bonus2 bSubRace,RC_Demon,-10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1229,'Kitchen_Knife','Kitchen Knife',4,NULL,10,500,75,NULL,1,0,0x028F5EEE,7,2,2,4,36,1,1,' bonus bCritical,30; bonus2 bAddRace,RC_DemiHuman,3; bonus3 bAddMonsterDropItem,517,2,5000; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1229,'Kitchen_Knife','Kitchen Knife',4,NULL,10,500,75,NULL,1,0,0x028F5EEE,7,2,2,4,36,1,1,' bonus bCritical,30; bonus2 bAddRace,RC_DemiHuman,3; bonus3 bAddMonsterDropItem,517,RC_Brute,5000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1230,'Ice_Pick','Ice Pick',4,NULL,10,600,80,NULL,1,0,0x028F5EEE,7,2,2,4,36,1,1,' bonus bDefRatioAtkRace,RC_Boss; bonus bDefRatioAtkRace,RC_NonBoss; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1231,'Bazerald','Bazerald',4,NULL,10,500,70,NULL,1,0,0x028F5EEE,7,2,2,4,36,1,1,' bonus bAtkEle,Ele_Fire; bonus bInt,5; bonus bMatkRate,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1232,'Assassin_Dagger','Assassin Dagger',4,NULL,10,600,140,NULL,1,0,0x00001000,7,2,2,4,36,1,1,' bonus bMaxHPrate,20; bonus bMaxSPrate,15; bonus bAspdRate,2; bonus bAtkEle,Ele_Dark; ',NULL,NULL); @@ -622,7 +625,7 @@ REPLACE INTO `item_db` VALUES (1301,'Axe','Axe',4,500,NULL,800,38,NULL,1,3,0x000 REPLACE INTO `item_db` VALUES (1302,'Axe_','Axe',4,500,NULL,800,38,NULL,1,4,0x000654E3,7,2,2,1,3,1,6,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1303,'Axe__','Axe',4,500,NULL,800,38,NULL,1,0,0x000654E3,7,2,2,1,3,1,6,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1304,'Orcish_Axe','Orcish Axe',4,NULL,10,1500,75,NULL,1,0,0x000454A3,7,2,2,3,3,1,6,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (1305,'Cleaver','Cleaver',4,NULL,10,1200,140,NULL,1,0,0x000444A2,7,2,2,4,44,1,6,' bonus2 bAddRace,RC_DemiHuman,5; bonus3 bAddMonsterDropItem,517,2,3000; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1305,'Cleaver','Cleaver',4,NULL,10,1200,140,NULL,1,0,0x000444A2,7,2,2,4,44,1,6,' bonus2 bAddRace,RC_DemiHuman,5; bonus3 bAddMonsterDropItem,517,RC_Brute,3000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1306,'War_Axe','War Axe',4,NULL,10,4200,145,NULL,1,1,0x00040400,7,2,2,3,76,1,6,' bonus bDex,2; bonus bLuk,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1307,'Windhawk','Windhawk',4,NULL,10,1500,115,NULL,1,0,0x000444A2,7,2,2,2,14,1,6,' bonus bAspdRate,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1308,'Golden_Axe','Golden Axe',4,NULL,10,3000,170,NULL,1,0,0xFFFFFFFE,7,2,2,4,45,1,6,NULL,NULL,NULL); @@ -727,6 +730,7 @@ REPLACE INTO `item_db` VALUES (1529,'Iron_Driver','Iron Driver',4,NULL,10,3000,1 REPLACE INTO `item_db` VALUES (1530,'Mjolnir','Mjolnir',4,NULL,10,6000,250,NULL,1,0,0x000444A2,7,2,2,4,95,0,8,' bonus bAtkEle,Ele_Wind; bonus bDex,40; bonus bStr,15; bonus bAspdRate,10; bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1531,'Wrench','Wrench',4,NULL,10,2500,115,NULL,1,0,0x00008110,7,2,2,3,55,1,8,' bonus2 bAddEff,Eff_Blind,100; bonus2 bAddEff,Eff_Stun,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Freeze,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1532,'Stunner__','Stunner',4,60000,NULL,2000,140,NULL,1,2,0x00008110,7,2,2,3,27,1,8,' bonus2 bAddEff,Eff_Stun,1000; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1533,'Warrior\'s_Balmung','Warrior\'s Balmung',4,NULL,10,1000,170,NULL,1,0,0xFFFFFFFF,7,2,2,4,48,1,2,' bonus bAllStats,5; ',NULL,NULL); # // Books REPLACE INTO `item_db` VALUES (1550,'Book','Book',4,30000,NULL,600,85,NULL,1,3,0x00410100,7,2,2,2,14,1,15,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1551,'Bible','Bible',4,60000,NULL,1000,115,NULL,1,2,0x00410100,7,2,2,3,27,1,15,' bonus bInt,2; ',NULL,NULL); @@ -788,7 +792,7 @@ REPLACE INTO `item_db` VALUES (1720,'Rudra_Bow','Rudra Bow',4,NULL,10,1200,150,N REPLACE INTO `item_db` VALUES (1721,'Repeating_Crossbow','Repeating Crossbow',4,89000,NULL,2000,95,NULL,9,1,0x00020840,7,2,34,3,65,1,11,' bonus bAtkRange,4; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1722,'Ballista','Ballista',4,NULL,10,3500,145,NULL,5,0,0x00080800,7,2,34,4,77,1,11,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1723,'Luna_Bow','Luna Bow',4,NULL,10,2000,100,NULL,5,2,0x00000800,7,2,34,3,30,1,11,' bonus bDef,2+3*(getrefine()>9)+(getrefine()>6 && getrefine()<=9); ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1724,'Dragon_Wing','Dragon Wing',4,NULL,10,1200,100,NULL,5,0,0x000A0848,7,2,34,4,60,1,11,' bonus3 bAddMonsterDropItem,1765,9,300; bonus bIgnoreDefRace,RC_Dragon; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1724,'Dragon_Wing','Dragon Wing',4,NULL,10,1200,100,NULL,5,0,0x000A0848,7,2,34,4,60,1,11,' bonus3 bAddMonsterDropItem,1765,RC_Dragon,300; bonus bIgnoreDefRace,RC_Dragon; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1725,'Wandering_Bard\'s_Bow','Wandering Bard\'s Bow',4,NULL,10,1700,120,NULL,5,1,0x00080800,7,2,34,4,70,1,11,' bonus bInt,2; bonus bSPrecovRate,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1726,'Hunter_Bow_','Hunter Bow',4,64000,NULL,1500,125,NULL,5,1,0x00000800,7,2,34,3,33,1,11,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1727,'Ballista_','Ballista',4,NULL,10,3500,145,NULL,5,1,0x00080800,7,2,34,4,77,1,11,NULL,NULL,NULL); @@ -1039,7 +1043,7 @@ REPLACE INTO `item_db` VALUES (2334,'Mage_Coat','Mage Coat',5,NULL,10,600,NULL,5 REPLACE INTO `item_db` VALUES (2335,'Thief_Clothes','Thief Clothes',5,74000,NULL,100,NULL,6,NULL,0,0x02021040,7,2,16,NULL,0,1,0,' bonus bAgi,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2336,'Thief_Clothes_','Thief Clothes',5,74000,NULL,100,NULL,6,NULL,1,0x00021040,7,2,16,NULL,0,1,0,' bonus bAgi,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2337,'Ninja_Suit','Ninja Suit',5,NULL,10,1500,NULL,7,NULL,0,0x00021040,7,2,16,NULL,50,1,0,' bonus bAgi,1; bonus bMdef,3; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2338,'Wedding_Dress','Wedding Dress',5,43000,NULL,500,NULL,0,NULL,0,0xFFFFFFFE,7,0,16,NULL,0,1,0,' bonus bMdef,15; ',' setoption Option_Wedding,1; ','setoption Option_Wedding,0;'); +REPLACE INTO `item_db` VALUES (2338,'Wedding_Dress','Wedding Dress',5,43000,NULL,500,NULL,0,NULL,0,0xFFFFFFFE,7,0,16,NULL,0,1,0,' bonus bMdef,15; ',' setoption Option_Wedding,1; ',' setoption Option_Wedding,0; '); REPLACE INTO `item_db` VALUES (2339,'Pantie','Pantie',5,1000,NULL,100,NULL,4,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2340,'Novice_Breastplate','Novice Breastplate',5,89000,NULL,500,NULL,4,NULL,1,0x00000001,7,2,16,NULL,10,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2341,'Legion_Plate_Armor','Legion Plate Armor',5,94000,NULL,5500,NULL,11,NULL,0,0x00004000,7,2,16,NULL,70,1,0,NULL,NULL,NULL); @@ -1154,7 +1158,7 @@ REPLACE INTO `item_db` VALUES (2639,'Occult_Incense','Occult Incense',5,NULL,10, REPLACE INTO `item_db` VALUES (2640,'Kafra_Ring','Kafra Ring',5,NULL,10,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,' bonus bStr,1; bonus bAgi,1; bonus bInt,1; bonus bLuk,1; bonus bMdef,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2641,'Fashion_Hip_Sack','Fashion Hip Sack',5,NULL,10,700,NULL,0,NULL,0,0x00040420,7,2,136,NULL,50,0,0,' bonus bStr,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2642,'Serin\'s_Gold_Ring','Serin\'s Gold Ring',5,NULL,10,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (2643,'Serin\'s_Gold_Ring_','Serin\'s Gold Ring',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (2643,'Serin\'s_Gold_Ring_','Serin\'s Gold Ring',5,NULL,22500,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2644,'The_Sign','The Sign',5,NULL,10,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,' bonus bMatkRate,5; bonus bAtkRate,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2645,'Moonlight_Ring','Moonlight Ring',5,NULL,10,200,NULL,0,NULL,0,0x028F5EEE,7,2,136,NULL,60,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2646,'Bunch_of_Carnations','Bunch of Carnations',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); @@ -1181,8 +1185,10 @@ REPLACE INTO `item_db` VALUES (2666,'Lamp_of_Hope','Lamp of Hope',5,NULL,10,100, REPLACE INTO `item_db` VALUES (2667,'Glove_of_Archer','Gloves of Archer',5,NULL,10,300,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,60,0,0,' bonus bHit,5; bonus bCritical,5; bonus bDex,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2668,'Woman_Glory','Woman Glory',5,NULL,10,1500,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,94,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2669,'RJC_Necklace','RJC Necklace',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,' bonus bMaxSP,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2670,'Ring_of_Longing','Ring of Longing',5,NULL,10,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,136,NULL,30,0,0,' bonus bFlee,5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2670,'Ring_of_Longing','Ring of Longing',5,NULL,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,136,NULL,30,0,NULL,' bonus bFlee,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2671,'Bow_Thimble_','Bow Thimble',5,10000,NULL,100,NULL,0,NULL,1,0x00080808,7,2,136,NULL,65,0,0,' bonus bLongAtkRate,3; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2672,'3rd_Anniversary_Celebration_Ring','3rd Anniversary Celebration Ring',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,20,0,0,' bonus bAllStats,5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2673,'Warrior\'s_Shining_Ring','Warrior\'s Shining Ring',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,48,0,0,' bonus bAtk,10; bonus bSPrecovRate,3; ',NULL,NULL); # // Cards # //=================================================================== REPLACE INTO `item_db` VALUES (4001,'Poring_Card','Poring Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bLuk,2; bonus bFlee2,1; ',NULL,NULL); @@ -1301,13 +1307,13 @@ REPLACE INTO `item_db` VALUES (4113,'Marionette_Card','Marionette Card',6,NULL,1 REPLACE INTO `item_db` VALUES (4114,'Argiope_Card','Argiope Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bDefEle,Ele_Poison; bonus bDef,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4115,'Hunter_Fly_Card','Hunter Fly Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bHpDrainRate,30,15; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4116,'Isis_Card','Isis Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus2 bSubEle,Ele_Dark,30; bonus bFlee,5; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4117,'Sidewinder_Card','Sidewinder Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bDoubleRate,5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4117,'Sidewinder_Card','Sidewinder Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bDoubleRate,5+45*(getskilllv(48)==10); ',NULL,NULL); REPLACE INTO `item_db` VALUES (4118,'Earth_Petite_Card','Earth Petite Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bAddRace,RC_Dragon,20; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4119,'Bathory_Card','Bathory Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bDefEle,Ele_Dark; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4120,'Sky_Petite_Card','Sky Petite Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus2 bSubRace,RC_Dragon,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4121,'Phreeoni_Card','Phreeoni Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bHit,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4122,'Deviruchi_Card','Deviruchi Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bStr,1; bonus2 bResEff,Eff_Blind,10000; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4123,'Eddga_Card','Eddga Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus bMaxHPrate,-25; ',' sc_start4 SC_ENDURE,60000,10,0,0,1; ','sc_end SC_ENDURE;'); +REPLACE INTO `item_db` VALUES (4123,'Eddga_Card','Eddga Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus bMaxHPrate,-25; ',' sc_start4 SC_ENDURE,60000,10,0,0,1; ',' sc_end SC_ENDURE; '); REPLACE INTO `item_db` VALUES (4124,'Medusa_Card','Medusa Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus2 bSubRace,RC_Demon,15; bonus2 bResEff,Eff_Stone,10000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4125,'Deviace_Card','Deviace Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bAddRace,RC_DemiHuman,7; bonus2 bAddRace,RC_Brute,7; bonus2 bAddRace,RC_Plant,7; bonus2 bAddRace,RC_Insect,7; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4126,'Minorous_Card','Minorous Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bAddSize,2,15; bonus bBaseAtk,5; ',NULL,NULL); @@ -1333,11 +1339,11 @@ REPLACE INTO `item_db` VALUES (4145,'Berzebub_Card','Berzebub Card',6,NULL,10,10 REPLACE INTO `item_db` VALUES (4146,'Maya_Card','Maya Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus bMagicDamageReturn,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4147,'Baphomet_Card','Baphomet Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bHit,-10; bonus bSplashRange,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4148,'Pharaoh_Card','Pharaoh Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bUseSPrate,-30; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4149,'Gargoyle_Card','Gargoyle Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12028,4,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4149,'Gargoyle_Card','Gargoyle Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12028,RC_Insect,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4150,'Goat_Card','Goat Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' if(getrefine()<6) { bonus bDef,2; bonus bMdef,5; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4151,'Gajomart_Card','Gajomart Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus2 bSubRace,RC_Plant,-20; bonus2 bExpAddRace,RC_Plant,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4152,'Galapago_Card','Galapago Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus2 bAddItemHealRate,IG_Juice,50; bonus3 bAddMonsterDropItemGroup,IG_Juice,RC_Insect,4000; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4153,'Crab_Card','Crab Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bBaseAtk,5; bonus2 bAddDamageClass,1266,30; if(isequipped(4247,4273)) { bonus3 bAddMonsterDropItem,544,5,3000; bonus2 bAddEle,Ele_Water,30; } ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4153,'Crab_Card','Crab Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bBaseAtk,5; bonus2 bAddDamageClass,1266,30; if(isequipped(4247,4273)) { bonus3 bAddMonsterDropItem,544,RC_Fish,3000; bonus2 bAddEle,Ele_Water,30; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4154,'Dumpling_Child_Card','Dumpling Child Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus2 bAddItemHealRate,IG_Candy,50; bonus3 bAddMonsterDropItemGroup,IG_Candy,RC_DemiHuman,4000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4155,'Goblin_Leader_Card','Goblin Leader Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bAddRace2,1,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4156,'Goblin_Steamrider_Card','Goblin Steamrider Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bCritAtkRate,10; bonus2 bCriticalAddRace,RC_Formless,7; ',NULL,NULL); @@ -1349,9 +1355,9 @@ REPLACE INTO `item_db` VALUES (4161,'Grand_Peco_Card','Grand Peco Card',6,NULL,1 REPLACE INTO `item_db` VALUES (4162,'Grizzly_Card','Grizzly Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Blind,1000+2000*(isequipped(4074)); ',NULL,NULL); REPLACE INTO `item_db` VALUES (4163,'Gryphon_Card','Gryphon Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bFlee,2; bonus bCritical,7; if (BaseClass == Job_Swordman) bonus3 bAutoSpell,62,5,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4164,'Gullinbursti_Card','Gullinbursti Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus2 bSubRace,RC_Fish,-20; bonus2 bExpAddRace,RC_Fish,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4165,'Gig_Card','Gig Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Insect,5; ',' ','heal 0,-5;'); +REPLACE INTO `item_db` VALUES (4165,'Gig_Card','Gig Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Insect,5; ',' ',' heal 0,-5; '); REPLACE INTO `item_db` VALUES (4166,'Nightmare_Terror_Card','Nightmare Terror Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Curse,1000+2000*(isequipped(4127)); ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4167,'Nereid_Card','Neraid Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Brute,5; ',NULL,'heal 0,-5;'); +REPLACE INTO `item_db` VALUES (4167,'Nereid_Card','Neraid Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Brute,5; ',NULL,' heal 0,-5; '); REPLACE INTO `item_db` VALUES (4168,'Dark_Lord_Card','Dark Lord Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus4 bAutoSpellWhenHit,83,5,100,0; if(isequipped(4169)) { bonus bMaxHPrate,20; bonus bMaxSPrate,20; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4169,'Dark_Illusion_Card','Dark Illusion Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bMaxHPrate,-10; bonus bMaxSPrate,-10; bonus bCastrate,-10-10*isequipped(4168); ',NULL,NULL); REPLACE INTO `item_db` VALUES (4170,'Dark_Frame_Card','Dark Frame Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Stone,2000; ',NULL,NULL); @@ -1361,25 +1367,25 @@ REPLACE INTO `item_db` VALUES (4173,'Demon_Pungus_Card','Demon Pungus Card',6,NU REPLACE INTO `item_db` VALUES (4174,'Deviling_Card','Deviling Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus2 bSubEle,Ele_Neutral,50; bonus2 bSubEle,Ele_Water,-50; bonus2 bSubEle,Ele_Earth,-50; bonus2 bSubEle,Ele_Fire,-50; bonus2 bSubEle,Ele_Wind,-50; bonus2 bSubEle,Ele_Poison,-50; bonus2 bSubEle,Ele_Holy,-50; bonus2 bSubEle,Ele_Dark,-50; bonus2 bSubEle,Ele_Ghost,-50; bonus2 bSubEle,Ele_Undead,-50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4175,'Poisonous_Toad_Card','Poisonous Toad Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus4 bAutoSpell,52,1,20,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4176,'Dullahan_Card','Dullahan Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bCritAtkRate,10; bonus2 bCriticalAddRace,RC_Dragon,7; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4177,'Dryad_Card','Dryad Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,993,3,15; bonus2 bSubEle,Ele_Earth,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4177,'Dryad_Card','Dryad Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,993,RC_Plant,15; bonus2 bSubEle,Ele_Earth,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4178,'Dragon_Tail_Card','Dragon Tail Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus bAgi,1; bonus bFlee,10; bonus2 bSkillAtk,46,5; bonus2 bSkillAtk,47,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4179,'Dragon_Fly_Card','Dragon Fly Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus bAgi,1; if(isequipped(4009)) bonus bFlee,18; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4180,'Driller_Card','Driller Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Dragon,5; ',' ','heal 0,-5;'); +REPLACE INTO `item_db` VALUES (4180,'Driller_Card','Driller Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Dragon,5; ',' ',' heal 0,-5; '); REPLACE INTO `item_db` VALUES (4181,'Disguise_Card','Disguise Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Silence,1000+2000*(readparam(bVit)>=77); ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4182,'Diabolic_Card','Diabolic Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Demon,5; ',' ','heal 0,-5;'); +REPLACE INTO `item_db` VALUES (4182,'Diabolic_Card','Diabolic Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Demon,5; ',' ',' heal 0,-5; '); REPLACE INTO `item_db` VALUES (4183,'Vagabond_Wolf_Card','Vagabond Wolf Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus bStr,1; if(isequipped(4029)) bonus bFlee,18; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4184,'Lava_Golem_Card','Lava Golem Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bAddRace2,4,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4185,'Rideword_Card','Rideword Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bInt,1; if(BaseClass == Job_Acolyte) { bonus bInt,1; bonus bMdef,1; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4186,'Raggler_Card','Raggler Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus bStr,1; bonus bVit,1; if(isequipped(4233,4281,4321,4206)) { bonus bLuk,10; bonus2 bSPDrainValue,2,0; bonus2 bSkillAtk,42,20; if(BaseClass == Job_Merchant) { bonus2 bAddMonsterDropItem,617,-2; bonus bMagicDamageReturn,20; } } ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4187,'Raydric_Archer_Card','Raydric Archer Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12030,6,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4188,'Leib_Olmai_Card','Leib Olmai Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus2 bSubEle,Ele_Fire,10; bonus3 bAddMonsterDropItem,990,2,500; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4187,'Raydric_Archer_Card','Raydric Archer Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12030,RC_Demon,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4188,'Leib_Olmai_Card','Leib Olmai Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus2 bSubEle,Ele_Fire,10; bonus3 bAddMonsterDropItem,990,RC_Brute,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4189,'Wraith_Dead_Card','Wraith Dead Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Curse,2000; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4190,'Wraith_Card','Wraith Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12027,1,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4190,'Wraith_Card','Wraith Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12027,RC_Undead,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4191,'Loli_Ruri_Card','Loli Ruri Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus4 bAutoSpellWhenHit,28,3,50,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4192,'Rotar_Zairo_Card','Rotar Zairo Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bCritAtkRate,10; bonus2 bCriticalAddRace,RC_Fish,7; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4193,'Lude_Card','Lude Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' if(BaseJob==Job_Novice||BaseJob==Job_SuperNovice) bonus4 bAutoSpellWhenHit,8,1,200,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4194,'Rybio_Card','Rybio Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Stun,1000+2000*(readparam(bDex)>=77); ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4195,'Leaf_Cat_Card','Leaf Cat Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus2 bSubEle,Ele_Water,10; bonus3 bAddMonsterDropItem,991,5,500; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4195,'Leaf_Cat_Card','Leaf Cat Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus2 bSubEle,Ele_Water,10; bonus3 bAddMonsterDropItem,991,RC_Fish,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4196,'Marin_Card','Marin Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus2 bAddMonsterDropItemGroup,IG_Jellopy,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4197,'Mastering_Card','Mastering Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus bLuk,1; if(isequipped(4001)) bonus bFlee,18; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4198,'Maya_Purple_Card','Maya Purple Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bIntravision,0; ',NULL,NULL); @@ -1408,11 +1414,11 @@ REPLACE INTO `item_db` VALUES (4220,'Solider_Card','Solider Card',6,NULL,10,10,N REPLACE INTO `item_db` VALUES (4221,'Skeleton_General_Card','Skeleton General Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus2 bSubRace,RC_Insect,-20; bonus2 bExpAddRace,RC_Insect,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4222,'Skeleton_Prisoner_Card','Skeleton Prisoner Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Sleep,1000+2000*(isequipped(4025)); ',NULL,NULL); REPLACE INTO `item_db` VALUES (4223,'Stalactic_Golem_Card','Stalactic Golem Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bDef,1; bonus2 bResEff,Eff_Stun,2000; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4224,'Stem_Worm_Card','Stem Worm Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12032,2,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4224,'Stem_Worm_Card','Stem Worm Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12032,RC_Brute,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4225,'Stone_Shooter_Card','Stone Shooter Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bBaseAtk,10; bonus bHit,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4226,'Sting_Card','Sting Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus bDef,2; if(getrefine()>8) bonus bMdef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4227,'Spring_Rabbit_Card','Spring Rabbit Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus2 bAddItemHealRate,IG_Meat,50; bonus3 bAddMonsterDropItemGroup,IG_Meat,RC_Brute,5000; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4228,'Sleeper_Card','Sleeper Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12031,5,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4228,'Sleeper_Card','Sleeper Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12031,RC_Fish,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4229,'Clock_Tower_Manager_Card','Clock Tower Manager Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bInt,1; bonus bCastrate,-5; if(isequipped(4244,4299,4313)) { bonus bDef,3; bonus bMdef,3; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4230,'Shinobi_Card','Shinobi Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus bAgi,1; bonus4 bAutoSpellWhenHit,135,5,100,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4231,'Increase_Soil_Card','Increase Soil Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus2 bAddDamageByClass,1285,-50; bonus2 bAddDamageByClass,1286,-50; bonus2 bAddDamageByClass,1287,-50; ',NULL,NULL); @@ -1440,30 +1446,30 @@ REPLACE INTO `item_db` VALUES (4252,'Alligator_Card','Alligator Card',6,NULL,10, REPLACE INTO `item_db` VALUES (4253,'Alice_Card','Alice Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus2 bSubRace,RC_Boss,40; bonus2 bSubRace,RC_NonBoss,-40; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4254,'Tirfing_Card','Tirfing Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus2 bSubSize,1,25; bonus bDef,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4255,'Orc_Lady_Card','Orc Lady Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bAddRace2,3,30; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4256,'Orc_Archer_Card','Orc Archer Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12034,7,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4256,'Orc_Archer_Card','Orc Archer Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12034,RC_DemiHuman,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4257,'Wild_Rose_Card','Wild Rose Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus bAgi,1; if(BaseClass == Job_Thief) bonus bFlee2,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4258,'Evil_Nymph_Card','Evil Nymph Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bInt,1; bonus bMaxSP,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4259,'Wooden_Golem_Card','Wooden Golem Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bDef,1; bonus bHPrecovRate,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4260,'Wootan_Shooter_Card','Wootan Shooter Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bDef,1; bonus2 bResEff,Eff_Confusion,2000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4261,'Wootan_Fighter_Card','Wootan Fighter Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bDef,1; bonus2 bResEff,Eff_Bleeding,2000; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4262,'Cloud_Hermit_Card','Cloud Hermit Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12029,3,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4263,'Incantation_Samurai_Card','Incantation Samurai Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bIgnoreDefRace,RC_NonBoss; bonus bNoRegen,1; bonus2 bHPLossRate,666,10000; ',' ','heal -999,0;'); +REPLACE INTO `item_db` VALUES (4262,'Cloud_Hermit_Card','Cloud Hermit Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12029,RC_Plant,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4263,'Incantation_Samurai_Card','Incantation Samurai Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bIgnoreDefRace,RC_NonBoss; bonus bNoRegen,1; bonus2 bHPLossRate,666,10000; ',' ',' heal -999,0; '); REPLACE INTO `item_db` VALUES (4264,'Wind_Ghost_Card','Wind Ghost Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAutoSpell,84,3+7*(getskilllv(84)==10),20; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4265,'Li_Me_Mang_Ryang_Card','Li Me Mang Ryang Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12033,8,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4265,'Li_Me_Mang_Ryang_Card','Li Me Mang Ryang Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12033,RC_Angel,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4266,'Eclipse_Card','Eclipse Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus bVit,1; if(isequipped(4006)) bonus bFlee,18; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4267,'Explosion_Card','Explosion Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus2 bSubRace,RC_Dragon,-20; bonus2 bExpAddRace,RC_Dragon,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4268,'Injustice_Card','Injustice Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus3 bAutoSpell,136,1,50; if(isequipped(4277)) { bonus bBaseAtk,20; bonus bLuk,3; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4269,'Incubus_Card','Incubus Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bMaxSP,150; bonus bInt,-3+4*isequipped(4218); bonus bSPrecovRate,-20+30*isequipped(4218); ',NULL,NULL); REPLACE INTO `item_db` VALUES (4270,'Giant_Spider_Card','Giant Spider Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Poison,2000; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4271,'Giant_Hornet_Card','Giant Hornet Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus2 bSubEle,Ele_Wind,10; bonus3 bAddMonsterDropItem,992,4,6000; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4271,'Giant_Hornet_Card','Giant Hornet Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus2 bSubEle,Ele_Wind,10; bonus3 bAddMonsterDropItem,992,RC_Insect,6000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4272,'Dancing_Dragon_Card','Dancing Dragon Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus bAgi,1; bonus bCritical,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4273,'Shell_Fish_Card','Shell Fish Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bBaseAtk,5; bonus2 bAddDamageClass,1073,30; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4274,'Zombie_Master_Card','Zombie Master Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Undead,5; ',' ','heal 0,-5;'); +REPLACE INTO `item_db` VALUES (4274,'Zombie_Master_Card','Zombie Master Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Undead,5; ',' ',' heal 0,-5; '); REPLACE INTO `item_db` VALUES (4275,'Zombie_Prisoner_Card','Zombie Prisoner Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus2 bSubRace,RC_Undead,-20; bonus2 bExpAddRace,RC_Undead,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4276,'Lord_of_Death_Card','Lord of Death Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bAddEff,Eff_Stun,500; bonus2 bAddEff,Eff_Curse,500; bonus2 bAddEff,Eff_Silence,500; bonus2 bAddEff,Eff_Poison,500; bonus2 bAddEff,Eff_Bleeding,500; bonus2 bWeaponComaRace,RC_NonBoss,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4276,'Lord_of_Death_Card','Lord of Death Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bAddEff,Eff_Stun,100; bonus2 bAddEff,Eff_Curse,100; bonus2 bAddEff,Eff_Silence,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Bleeding,100; bonus2 bWeaponComaRace,RC_NonBoss,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4277,'Zherlthsh_Card','Zherlthsh Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus bLuk,2; bonus2 bSkillAtk,316,10; bonus2 bSkillAtk,324,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4278,'Gibbet_Card','Gibbet Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' if(getrefine()<6) bonus bMdef,5; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4279,'Earth_Deleter_Card','Earth Deleter Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bSPrecovRate,-100; bonus bSPGainValue,10; ',' ','heal 0,-100;'); +REPLACE INTO `item_db` VALUES (4279,'Earth_Deleter_Card','Earth Deleter Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bSPrecovRate,-100; bonus bSPGainValue,10; ',' ',' heal 0,-100; '); REPLACE INTO `item_db` VALUES (4280,'Geographer_Card','Geographer Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus4 bAutoSpellWhenHit,34,2+8*(getskilllv(34)==10),30,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4281,'Zipper_Bear_Card','Zipper Bear Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bBaseAtk,30; bonus2 bSPDrainValue,-1,0; if(BaseClass == Job_Merchant) bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4282,'Tengu_Card','Tengu Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus2 bAddMonsterDropItemGroup,IG_Recovery,500; ',NULL,NULL); @@ -1473,7 +1479,7 @@ REPLACE INTO `item_db` VALUES (4285,'Choco_Card','Choco Card',6,NULL,10,10,NULL, REPLACE INTO `item_db` VALUES (4286,'Karakasa_Card','Karakasa Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Confusion,1000+2000*(readparam(bStr)>=77); ',NULL,NULL); REPLACE INTO `item_db` VALUES (4287,'Kapha_Card','Kapha Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' if(getrefine()<6) bonus bMdef,8; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4288,'Carat_Card','Carat Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bInt,2; if(getrefine()>8) bonus bMaxSP,150; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4289,'Caterpillar_Card','Caterpillar Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Plant,5; ',' ','heal 0,-5;'); +REPLACE INTO `item_db` VALUES (4289,'Caterpillar_Card','Caterpillar Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Plant,5; ',' ',' heal 0,-5; '); REPLACE INTO `item_db` VALUES (4290,'Cat_O\'_Nine_Tails_Card','Cat O\' Nine Tails Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus bMdef,3; bonus bMagicDamageReturn,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4291,'Kobold_Leader_Card','Kobold Leader Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bAddRace2,2,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4292,'Kobold_Archer_Card','Kobold Archer Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bCritAtkRate,10; bonus2 bCriticalAddRace,RC_Plant,7; ',NULL,NULL); @@ -1491,8 +1497,8 @@ REPLACE INTO `item_db` VALUES (4303,'Giant_Whisper_Card','Giant Whisper Card',6, REPLACE INTO `item_db` VALUES (4304,'Tamruan_Card','Tamruan Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus bDef,2; bonus2 bSkillAtk,250,10; bonus2 bSkillAtk,251,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4305,'Turtle_General_Card','Turtle General Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bAtkRate,20; if(BaseClass == Job_Swordman) bonus3 bAutoSpell,7,10,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4306,'Toad_Card','Toad Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus bFlee2,1; if(isequipped(4014)) bonus bFlee,18; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4307,'Beetle_King_Card','Beetle King Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Fish,5; ',' ','heal 0,-5;'); -REPLACE INTO `item_db` VALUES (4308,'Tri_Joint_Card','Tri Joint Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Formless,5; ',' ','heal 0,-5;'); +REPLACE INTO `item_db` VALUES (4307,'Beetle_King_Card','Beetle King Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Fish,5; ',' ',' heal 0,-5; '); +REPLACE INTO `item_db` VALUES (4308,'Tri_Joint_Card','Tri Joint Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Formless,5; ',' ',' heal 0,-5; '); REPLACE INTO `item_db` VALUES (4309,'Parasite_Card','Parasite Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus bDef,1; bonus2 bSubEle,Ele_Neutral,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4310,'Panzer_Goblin_Card','Panzer Goblin Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bCritAtkRate,10; bonus2 bCriticalAddRace,RC_Demon,7; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4311,'Permeter_Card','Permeter Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus2 bSubEle,Ele_Dark,15; bonus2 bSubEle,Ele_Undead,15; ',NULL,NULL); @@ -1500,7 +1506,7 @@ REPLACE INTO `item_db` VALUES (4312,'Seal_Card','Seal Card',6,NULL,10,10,NULL,NU REPLACE INTO `item_db` VALUES (4313,'Punk_Card','Punk Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus4 bAutoSpellWhenHit,92,1+4*(getskilllv(92)==5),50,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4314,'Penomena_Card','Penomena Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus2 bSubRace,RC_Formless,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4315,'Pest_Card','Pest Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Stone,1000+2000*(readparam(bInt)>=77); ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4316,'False_Angel_Card','False Angel Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Angel,5; ',' ','heal 0,-5;'); +REPLACE INTO `item_db` VALUES (4316,'False_Angel_Card','False Angel Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_Angel,5; ',' ',' heal 0,-5; '); REPLACE INTO `item_db` VALUES (4317,'Mobster_Card','Mobster Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bCritAtkRate,15; if(BaseClass == Job_Thief) bonus bCritical,4; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4318,'Stormy_Knight_Card','Stormy Knight Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus3 bAutoSpell,89,2,20; bonus2 bAddEff,Eff_Freeze,2000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4319,'Freezer_Card','Freezer Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus bMaxHP,300; if(getrefine()>=9) bonus2 bSkillAtk,5,10; if(isequipped(4246,4311,4220,4331)) { bonus bStr,10; bonus bMaxHPrate,20; bonus bHPrecovRate,50; bonus4 bAutoSpell,112,1,3,0; bonus2 bAddMonsterDropItem,501,100; if(BaseClass == Job_Swordman) { bonus2 bAddItemHealRate,IG_Potion,50; } } ',NULL,NULL); @@ -1513,7 +1519,7 @@ REPLACE INTO `item_db` VALUES (4325,'Harpy_Card','Harpy Card',6,NULL,10,10,NULL, REPLACE INTO `item_db` VALUES (4326,'Sea-Otter_Card','Sea-Otter Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus2 bAddItemHealRate,IG_Fish,50; bonus3 bAddMonsterDropItemGroup,IG_Fish,RC_Fish,5000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4327,'Bloody_Butterfly_Card','Bloody Butterfly Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus bCastrate,30; bonus bNoCastCancel,0; bonus2 bSkillAtk,18,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4328,'Hyegun_Card','Hyegun Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' bonus bFlee,15; bonus bCritical,1; if(isequipped(4090,4212)) bonus bAllStats,1; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4329,'Phendark_Card','Phendark Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_DemiHuman,5; ',' ','heal 0,-5;'); +REPLACE INTO `item_db` VALUES (4329,'Phendark_Card','Phendark Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSPGainRace,RC_DemiHuman,5; ',' ',' heal 0,-5; '); REPLACE INTO `item_db` VALUES (4330,'Evil_Snake_Lord_Card','Evil Snake Lord Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bInt,3; bonus2 bResEff,Eff_Blind,10000; bonus2 bResEff,Eff_Curse,10000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4331,'Heater_Card','Heater Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus bCritical,3; if(BaseClass == Job_Swordman) bonus bFlee2,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4332,'Waste_Stove_Card','Waste Stove Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bBaseAtk,5; bonus bInt,1; if(isequipped(4185,4293,4312)) { bonus bStr,3; bonus bMaxSP,80; bonus bBaseAtk,25; bonus4 bAutoSpell,32,5,10,1; bonus2 bSkillAtk,271,10; if(BaseJob == Job_Monk) { bonus bUseSPrate,-10; bonus bNoCastCancel,0; } } ',NULL,NULL); @@ -1527,19 +1533,19 @@ REPLACE INTO `item_db` VALUES (4339,'Mineral_Card','Mineral Card',6,NULL,10,10,N REPLACE INTO `item_db` VALUES (4340,'Teddy_Bear_Card','Teddy Bear Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus2 bSubEle,RC_Undead,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4341,'Metaling_Card','Metaling Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus3 bAutoSpell,215,1,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4342,'RSX_0806_Card','RSX 0806 Card',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (4343,'Holden_Card','Holden Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bLuk,2; if(isequipped(4186,4281,4036,4233)) { bonus bStr,4; bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus2 bSkillAtk,42,20; bonus bSPGainValue,1; if(BaseJob == Job_Alchem) { bonus3 bAutoSpell,111,1,10; bonus2 bAddMonsterDropItem,7139,1; bonus2 bAddMonsterDropItem,905,1; } } ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4344,'Anopheles_Card','Anopheles Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12058,RC_Insect,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4343,'Holden_Card','Holden Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bLuk,2; if(isequipped(4186,4281,4036,4233)) { bonus bStr,4; bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus2 bSkillAtk,42,20; bonus bSPGainValue,1; if(BaseJob == Job_Alchem) { bonus3 bAutoSpell,111,1,10; bonus2 bAddMonsterDropItem,7139,1; bonus2 bAddMonsterDropItem,905,10; } } ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4344,'Anopheles_Card','Anopheles Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12058,RC_Insect,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4345,'Hill_Wind_Card','Hill Wind Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSkillAtk,21,2; bonus2 bSkillAtk,84,2; bonus2 bSkillAtk,85,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4346,'Egnigem_Cenia_Card','Egnigem Cenia Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bStr,readparam(bInt)/18; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4347,'Armeyer_Dinze_Card','Armeyer Dinze Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12053,RC_Fish,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4347,'Armeyer_Dinze_Card','Armeyer Dinze Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12053,RC_Fish,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4348,'Wikebine_Tres_Card','Wikebine Tres Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAutoSpell,217,1,50; if(isequipped(4039,4210,4257,4230)) { bonus bStr,6; bonus bAgi,4; bonus2 bSkillAtk,212,10; if(getskilllv(217)==5) bonus3 bAutoSpell,217,5,50; if(BaseJob == Job_Rogue) { bonus bUseSPrate,-20; bonus3 bAutoSpell,219,1,-20; } } ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4349,'Errende_Ebecee_Card','Errende Ebecee Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAutoSpellWhenHit,25,1,50; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4349,'Errende_Ebecee_Card','Errende Ebecee Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus4 bAutoSpellWhenHit,25,1,50,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4350,'Laurell_Weinder_Card','Laurell Weinder Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSkillAtk,88,1; bonus2 bSkillAtk,89,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4351,'Kavach_Icarus_Card','Kavach Icarus Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' if(getrefine()<=4) { bonus bFlee,20; bonus bFlee2,1; } else { bonus bFlee,10; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4352,'General_Egnigem_Cenia_Card','General Egnigem Cenia Card',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (4353,'Remover_Card','Remover Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bMaxHP,(800-(80*getrefine())); bonus bHPrecovRate,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4354,'Gemini-S58_Card','Gemini-S58 Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' if(readparam(bAgi)>=90) { bonus2 bResEff,Eff_Silence,3000; bonus2 bResEff,Eff_Stun,3000; } if(readparam(bVit)>=80) { bonus2 bResEff,Eff_Stone,5000; bonus2 bResEff,Eff_Sleep,5000; } ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4355,'Gremlin_Card','Gremlin Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12043,RC_Brute,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4355,'Gremlin_Card','Gremlin Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12043,RC_Brute,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4356,'Beholder_Card','Beholder Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' skill 275,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4357,'Lord_Knight_Card','Lord Knight Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' skill 359,1; bonus bMaxHPrate,-50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4358,'Seyren_Windsor_Card','Seyren Windsor Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus bStr,getrefine()-6; ',NULL,NULL); @@ -1561,21 +1567,21 @@ REPLACE INTO `item_db` VALUES (4373,'Chung_E_Card','Chung E Card',6,NULL,10,10,N REPLACE INTO `item_db` VALUES (4374,'Vesper_Card','Vesper Card',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (4375,'Orc_Baby_Card','Orc Baby Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,' if(getrefine()>=9) { bonus2 bSubEle,Ele_Neutral,15; bonus bFlee,15; } else { bonus2 bSubEle,Ele_Neutral,10; bonus bFlee,10; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4376,'Lady_Tany_Card','Lady Tany Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus bMaxHPrate,-50; bonus bMaxSPrate,50; bonus2 bAddMonsterDropItem,513,20; bonus2 bAddItemHealRate,3,100; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4377,'Grove_Card','Grove Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12063,RC_Formless,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4377,'Grove_Card','Grove Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12063,RC_Formless,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4378,'Gold_Acidus_Card','Gold Acidus Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' if(getrefine()<=4) { bonus bMaxHPrate,8; bonus bMaxSPrate,8; bonus bHPrecovRate,5; bonus bSPrecovRate,5; } else { bonus bMaxHPrate,4; bonus bMaxSPrate,4; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4379,'Blue_Acidus_Card','Blue Acidus Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' if(getrefine()<=4) { bonus bSPrecovRate,5; bonus bMaxSP,80; } else { bonus bMaxSP,40; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4380,'Red_Ferus_Card','Red Ferus Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSkillAtk,80,2; bonus2 bSkillAtk,83,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4381,'Green_Ferus_Card','Green Ferus Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus bVit,1; bonus bMaxHPrate,10; if(isequipped(4199,4234,4252,4178)) { bonus bDex,5; bonus2 bSkillAtk,394,5; bonus2 bSkillAtk,324,10; bonus2 bSkillAtk,316,10; if(BaseJob == Job_Bard || BaseJob == Job_Dancer) { bonus4 bAutoSpellWhenHit,489,2,50,1; } } ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4382,'Yellow_Novus_Card','Yellow Novus Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bMaxHP,500; bonus bHPrecovRate,10; if(isequipped(4208,4258,4325,4327)) { bonus bInt,3; bonus2 bSkillAtk,91,10; bonus2 bSkillAtk,21,10; if(BaseJob == Job_Sage) { bonus bMagicDamageReturn,20; bonus2 bAddMonsterDropItem,716,1; bonus2 bAddMonsterDropItem,715,1; bonus bCastrate,-20; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4382,'Yellow_Novus_Card','Yellow Novus Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bMaxHP,500; bonus bHPrecovRate,10; if(isequipped(4208,4258,4325,4327)) { bonus bInt,3; bonus2 bSkillAtk,91,10; bonus2 bSkillAtk,21,10; if(BaseJob == Job_Sage) { bonus bMagicDamageReturn,20; bonus2 bAddMonsterDropItem,716,10; bonus2 bAddMonsterDropItem,715,10; bonus bCastrate,-20; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4383,'Red_Novus_Card','Red Novus Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus3 bAddEffWhenHit,Eff_Confusion,3000,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4384,'Hydro_Card','Hydro Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAutoSpell,277,1,100; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4385,'Dragon_Egg_Card','Dragon Egg Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12048,RC_Dragon,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4385,'Dragon_Egg_Card','Dragon Egg Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12048,RC_Dragon,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4386,'Detale_Card','Detale Card',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (4387,'Ancient_Mimic_Card','Ancient Mimic Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bAgi,readparam(bLuk)/18; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4388,'Deathword_Card','Deathword Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus2 bSkillAtk,11,2; bonus2 bSkillAtk,13,2; bonus2 bSkillAtk,400,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4389,'Plasma_Card','Plasma Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus2 bAddMonsterDropItem,12118,1; bonus2 bAddMonsterDropItem,12119,1; bonus2 bAddMonsterDropItem,12120,1; bonus2 bAddMonsterDropItem,12121,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4390,'Breeze_Card','Breeze Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bBaseAtk,5; bonus2 bAddEff,Eff_Bleeding,500; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4391,'Retribution_Card','Retribution Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12068,RC_Angel,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4391,'Retribution_Card','Retribution Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,' bonus3 bAddMonsterDropItem,12068,RC_Angel,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4392,'Observation_Card','Observation Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bDex,readparam(bVit)/18; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4393,'Shelter_Card','Shelter Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bInt,readparam(bStr)/18; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4394,'Solace_Card','Solace Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' if(BaseJob == Job_Priest) bonus3 bAutoSpell,254,5,10; ',NULL,NULL); @@ -1592,7 +1598,6 @@ REPLACE INTO `item_db` VALUES (4404,'Skogul_Card','Skogul Card',6,NULL,10,10,NUL REPLACE INTO `item_db` VALUES (4405,'Frus_Card','Frus Card',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (4406,'Skeggiold_Card','Skeggiold Card',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (4407,'Valkyrie_Randgris_Card','Valkyrie Randgris Card',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# # // More Headgears # //=================================================================== REPLACE INTO `item_db` VALUES (5001,'Headset','Headset',5,NULL,10,200,NULL,3,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,1,87,' bonus2 bResEff,Eff_Curse,1000; ',NULL,NULL); @@ -1704,7 +1709,7 @@ REPLACE INTO `item_db` VALUES (5107,'Crunch_Toast','Crunch Toast',5,NULL,10,50,N REPLACE INTO `item_db` VALUES (5108,'Renown_Detective\'s_Cap','Renown Detective\'s Cap',5,NULL,10,350,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,189,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5109,'Red_Bonnet','Red Bonnet',5,NULL,10,400,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,190,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5110,'Baby_Pacifier','Baby Pacifier',5,NULL,10,50,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,191,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5111,'Galapago_Cap','Galapago Cap',5,NULL,10,500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,55,1,192,' bonus3 bAddMonsterDropItem,605,11,100; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5111,'Galapago_Cap','Galapago Cap',5,NULL,10,500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,55,1,192,' bonus3 bAddMonsterDropItem,605,RC_NonBoss,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5112,'Super_Novice_Hat','Super Novice Hat',5,8500,NULL,400,NULL,4,NULL,0,0x00000001,7,2,256,NULL,40,1,193,' bonus bAllStats,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5113,'Angry_Snarl','Angry Snarl',5,NULL,10,50,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,194,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5114,'Bucket_Hat','Bucket Hat',5,6000,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,195,NULL,NULL,NULL); @@ -1741,15 +1746,15 @@ REPLACE INTO `item_db` VALUES (5144,'Gamble_Hat','Gambler Hat',5,NULL,10,200,NUL REPLACE INTO `item_db` VALUES (5145,'Carnival_Jester','Carnival Jester',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,89,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5146,'Elephant_Hat','Elephant Hat',5,NULL,10,500,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,215,' bonus bVit,1; bonus2 bSubRace,RC_Brute,7; skill 86,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5147,'Baseball_Cap','Baseball Cap',5,NULL,10,200,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,216,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5148,'National_Holiday_Hat','National Holiday Hat',5,NULL,10,500,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,217,' bonus bInt,2; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5149,'Silver_Tiara','Silver Tiara',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,218,' bonus bInt,2; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5150,'Brazil_Event_Hat','Brazil Event Hat',5,NULL,10,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,219,' bonus bSpeedRate,35; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5151,'Note_Headphones','Note Headphones',5,NULL,10,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,220,' bonus bMdef,3; bonus2 bResEff,Eff_Stun,1000; bonus2 bResEff,Eff_Freeze,1000; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5152,'Phoenix_Crown','Phoenix Crown',5,NULL,10,2000,NULL,1,NULL,0,0xFFFFFFFF,7,2,768,NULL,0,1,221,' bonus2 bResEff,Eff_Stun,1000; bonus bInt,1; bonus bMdef,2; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5153,'Angeling_Pin','Angeling Pin',5,NULL,10,700,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,222,' bonus bFlee,5; if (isequipped(2358)==0) end; bonus bLuk,6; bonus bFlee,5; bonus bInt,2; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5154,'Father\'s_Sunglasses','Father\'s Sunglasses',5,NULL,10,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,12,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5155,'Father\'s_White_Beard','Father\'s White Beard',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,25,' bonus bAtk,20; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5156,'Father\'s_Mask','Father\'s Mask',5,NULL,10,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,8,' bonus bMatkRate,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5148,'National_Holiday_Hat','National Holiday Hat',5,NULL,10,500,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,NULL,1,217,' bonus bInt,2; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5149,'Silver_Tiara','Silver Tiara',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,NULL,1,218,' bonus bInt,2; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5150,'Brazil_Event_Hat','Brazil Event Hat',5,NULL,10,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,NULL,1,219,' bonus bSpeedRate,35; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5151,'Note_Headphones','Note Headphones',5,NULL,NULL,100,NULL,4,NULL,1,0xFFFFFFFF,7,2,256,NULL,NULL,1,220,' bonus bMdef,3; bonus2 bResEff,Eff_Stun,1000; bonus2 bResEff,Eff_Freeze,1000; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5152,'Phoenix_Crown','Phoenix Crown',5,NULL,NULL,2000,NULL,1,NULL,0,0xFFFFFFFF,7,2,768,NULL,NULL,1,221,' bonus2 bResEff,Eff_Stun,1000; bonus bInt,1; bonus bMdef,2; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5153,'Angeling_Pin','Angeling Pin',5,NULL,NULL,700,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,NULL,1,222,' bonus bFlee,5; if (isequipped(2358)==0) end; bonus bLuk,6; bonus bFlee,5; bonus bInt,2; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5154,'Father\'s_Sunglasses','Father\'s Sunglasses',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,NULL,1,12,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5155,'Father\'s_White_Beard','Father\'s White Beard',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,NULL,25,' bonus bAtk,20; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5156,'Father\'s_Mask','Father\'s Mask',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,NULL,NULL,8,' bonus bMatkRate,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5157,'Orc_Helm_','Orc Helm',5,NULL,10,500,NULL,5,NULL,1,0x000654E2,7,2,256,NULL,0,1,86,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5158,'Monk_Hat_','Monk Hat',5,30000,NULL,100,NULL,5,NULL,1,0x00008110,7,2,256,NULL,0,1,35,' bonus bMdef,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5159,'Golden_Gear_','Golden Gear',5,NULL,10,900,NULL,5,NULL,1,0xFFFFFFFE,7,2,256,NULL,40,1,30,' bonus bUnbreakableHelm,0; ',NULL,NULL); @@ -1768,7 +1773,7 @@ REPLACE INTO `item_db` VALUES (5171,'Valkyrie_Helm','Valkyrie Helm',5,NULL,10,10 REPLACE INTO `item_db` VALUES (5172,'Beret','Beret',5,NULL,10,700,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,226,' bonus2 bSubRace,RC_DemiHuman,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5173,'Judge_Hat','Judge Hat',5,NULL,10,400,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,60,1,227,' if(BaseClass==Job_Taekwon){ bonus bAgi,1; bonus bHPrecovRate,3; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (5174,'A-yam','A-yam',5,NULL,10,400,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,60,1,228,' if(BaseClass==Job_Taekwon){ bonus bInt,1; bonus bSPrecovRate,3; } ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5175,'Anonymity_Request','Anonymity Request',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,229,' bonus2 bResEff,Eff_Curse,500; bonus bMdef,1; bonus bHit,-5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5175,'Anonymity_Request','Anonymity Request',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,512,NULL,0,0,229,' bonus2 bResEff,Eff_Curse,500; bonus bMdef,1; bonus bHit,-5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5176,'Smiling_Mask','Smiling Mask',5,NULL,10,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,513,NULL,30,0,230,' if(BaseClass==Job_Taekwon){ bonus bLuk,1; bonus bFlee2,2; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (5177,'Lion_Masquerade','Lion Masquerade',5,NULL,10,500,NULL,5,NULL,1,0xFFFFFFFF,7,2,768,NULL,40,1,231,' if(BaseClass==Job_Taekwon){ bonus bDex,2; bonus bBaseAtk,2*getrefine(); bonus2 bAddEff,Eff_Stun,100; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (5178,'Candle','Candle',5,NULL,10,150,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,113,' bonus bAllStats,1; ',NULL,NULL); @@ -1781,6 +1786,9 @@ REPLACE INTO `item_db` VALUES (5184,'Captain\'s_Hat','Captain\'s Hat',5,NULL,10, REPLACE INTO `item_db` VALUES (5185,'Laurel_Crown','Laurel Crown',5,NULL,10,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,10,1,237,' bonus bLuk,3; bonus2 bResEff,Eff_Blind,500; bonus2 bResEff,Eff_Curse,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5186,'Geographer_Decoration','Geographer Decoration',5,NULL,10,500,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,0,238,' bonus bInt,1; bonus4 bAutoSpellWhenHit,28,1,10,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5187,'Twin_Ribbon','Twin Ribbon',5,NULL,10,200,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,1,239,' bonus bMaxSP,30; bonus bMdef,3; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5188,'Wandering_Minstrel_Hat','Wandering Minstrel Hat',5,NULL,10,500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,240,' bonus bInt,1; bonus bDex,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5189,'Autumn_Leaves','Autumn Leaves',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,NULL,1,241,' bonus bMaxHP,40; bonus bMaxSP,40; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5190,'Independence_Memorial_Hat','Independence Memorial Hat',5,NULL,10,NULL,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,NULL,1,242,NULL,NULL,NULL); # // More Etc Items # //=================================================================== REPLACE INTO `item_db` VALUES (7001,'Mold_Powder','Mould Powder',3,NULL,340,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -1952,7 +1960,7 @@ REPLACE INTO `item_db` VALUES (7166,'Soft_Silk','Soft Silk',3,NULL,600,10,NULL,N REPLACE INTO `item_db` VALUES (7167,'Strange_Steel_Piece','Strange Steel Piece',3,NULL,215,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7168,'Giant_Butterfly_Wing','Giant Butterfly Wing',3,NULL,307,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7169,'Ba_Gua','Ba_Gua',3,NULL,1400,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7170,'Tuxedo','Tuxedo',5,43000,NULL,10,NULL,0,NULL,0,0xFFFFFFFE,7,1,16,NULL,0,1,0,NULL,' setoption Option_Wedding,1; ','setoption Option_Wedding,0;'); +REPLACE INTO `item_db` VALUES (7170,'Tuxedo','Tuxedo',5,43000,NULL,10,NULL,0,NULL,0,0xFFFFFFFE,7,1,16,NULL,0,1,0,NULL,' setoption Option_Wedding,1; ',' setoption Option_Wedding,0; '); REPLACE INTO `item_db` VALUES (7171,'Leopard_Skin','Leopard Skin',3,NULL,141,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7172,'Leopard_Claw','Leopard Claw',3,NULL,145,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7173,'Bun_Buster_Bag','Bun Buster Bag',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2346,7 +2354,7 @@ REPLACE INTO `item_db` VALUES (7561,'Ice_Heart','Ice Heart',3,NULL,10,10,NULL,NU REPLACE INTO `item_db` VALUES (7562,'Ice_Scale','Ice Scale',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7563,'Bloody_Rune','Bloody Rune',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7564,'Rotten_Meat','Rotten Meat',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7565,'Sticky_Poison','Sticky_Poison',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7565,'Sticky_Poison','Sticky Poison',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7566,'Will_of_Red_Darkness','Will of Red Darkness',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7567,'Suspicious_Hat','Suspicious Hat',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7568,'White_Mask','White Mask',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2361,6 +2369,13 @@ REPLACE INTO `item_db` VALUES (7576,'Blue-colored_Gem','Blue-colored Gem',3,NULL REPLACE INTO `item_db` VALUES (7577,'Yellow-colored_Gem','Yellow-colored Gem',3,NULL,10,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7578,'Countermagic_Crystal','Countermagic Crystal',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7579,'Silk_Handkerchief_of_Zhi_Nu','Silk Handkerchief of Zhi Nu',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7581,'Celebration_Document','Celebration Document',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7582,'Jewel_of_Destruction','Jewel of Destruction',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7583,'Evil_Mind','Evil Mind',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7584,'Guard\'s_First_Proof','Guard\'s First Proof',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7585,'Guard\'s_Second_Proof','Guard\'s Second Proof',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7586,'Guard\'s_Third_Proof','Guard\'s Third Proof',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7587,'Guard\'s_Fourth_Proof','Guard\'s Fourth Proof',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # // Pet Eggs # //=================================================================== REPLACE INTO `item_db` VALUES (9001,'Poring_Egg','Poring Egg',7,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2461,7 +2476,7 @@ REPLACE INTO `item_db` VALUES (12036,'Lotto_Box_02','Lotto Box 02',2,NULL,10,20, REPLACE INTO `item_db` VALUES (12037,'Lotto_Box_03','Lotto Box 03',2,NULL,10,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem rand(7381,7390),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12038,'Lotto_Box_04','Lotto Box 04',2,NULL,10,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_LottoBox),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12039,'Lotto_Box_05','Lotto Box 05',2,NULL,10,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem rand(7542,7546),1; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (12040,'Philosopher\'s_Stone','Philosopher\'s Stone',2,NULL,50000,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' homevolution ; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (12040,'Stone_of_Sage_','Stone of Sage',2,NULL,50000,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' homevolution ; ',NULL,NULL); # // Mixed Foods (+1 to +5) REPLACE INTO `item_db` VALUES (12041,'Boiled_Down_Locust','Boiled Down Locust',0,2000,NULL,60,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 1; percentheal 5,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12042,'Seasoned_Webs','Seasoned Webs',0,4000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 2; percentheal 5,0; ',NULL,NULL); @@ -2612,8 +2627,8 @@ REPLACE INTO `item_db` VALUES (12180,'Spearman_Mercenary_Summon_Scroll_Level_8', REPLACE INTO `item_db` VALUES (12181,'Spearman_Mercenary_Summon_Scroll_Level_9','Spearman Mercenary Summon Scroll Level 9',2,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12182,'Spearman_Mercenary_Summon_Scroll_Level_10','Spearman Mercenary Summon Scroll Level 10',2,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12183,'Holy_Arrow_Quiver','Holy Arrow Quiver',2,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1772,500; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (12185,'Mercenary\'s_Red_Potion','Mercenary\'s Red Potion',2,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12186,'Mercenary\'s_Blue_Potion','Mercenary\'s Blue Potion',2,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12184,'Mercenary\'s_Red_Potion','Mercenary\'s Red Potion',2,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12185,'Mercenary\'s_Blue_Potion','Mercenary\'s Blue Potion',2,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # // More Weapons # //=================================================================== # // Daggers @@ -2638,6 +2653,7 @@ REPLACE INTO `item_db` VALUES (13016,'Poison_Knife__','Poison Knife',4,NULL,10,8 REPLACE INTO `item_db` VALUES (13017,'Ice_Pick_','Ice Pick',4,NULL,10,600,70,NULL,1,1,0x028F5EEE,7,2,2,4,36,1,1,' bonus bDefRatioAtkRace,RC_Boss; bonus bDefRatioAtkRace,RC_NonBoss; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13018,'Sucsamad_','Sucsamad',4,NULL,10,800,140,NULL,1,1,0x028F5EEE,7,2,2,4,36,1,1,' bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Wind,10; bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13019,'Ginnungagap_','Ginnungagap',4,NULL,10,700,120,NULL,1,1,0x008F5EEF,7,2,2,4,70,1,1,' bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; bonus2 bAddEff2,Eff_Blind,50; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13020,'Warrior\'s_Balmung_','Warrior\'s Balmung',4,NULL,10,1000,170,NULL,1,0,0xFFFFFFFF,7,2,2,4,48,1,2,' bonus bAllStats,5; ',NULL,NULL); # // Guns REPLACE INTO `item_db` VALUES (13100,'Six_Shooter','Six Shooter',4,4500,NULL,400,30,NULL,9,1,0x01000000,7,2,34,1,10,1,17,' bonus bHit,-10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13101,'Six_Shooter_','Six Shooter',4,4500,NULL,400,30,NULL,9,2,0x01000000,7,2,34,1,10,1,17,' bonus bHit,-10; ',NULL,NULL); diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index b9b654deb..8cfddfa69 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -65,31 +65,36 @@ CREATE TABLE `mob_db` ( PRIMARY KEY (`ID`) ) TYPE=MyISAM; +# // Monster Database +# // +# // Structure of Database : +# // ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,ADelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper +# // Note: Keep the Sprite_Name field as it is (in the game client). You may change Name,JName field tough REPLACE INTO `mob_db` VALUES (1001,'SCORPION','Scorpion','Scorpion',24,1109,0,287,176,1,80,135,30,0,1,24,24,5,52,5,10,12,0,4,23,149,200,1564,864,576,0,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1); REPLACE INTO `mob_db` VALUES (1002,'PORING','Poring','Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1); REPLACE INTO `mob_db` VALUES (1003,'TESTEGG','Test Egg','Test Egg',2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1004,'HORNET','Hornet','Hornet',8,169,0,19,15,1,22,27,5,5,1,20,8,10,17,5,10,12,0,4,24,137,150,1292,792,216,0,0,0,0,0,0,0,0,992,50,939,5500,909,3500,1208,15,511,350,518,100,0,0,0,0,0,0,4019,1); REPLACE INTO `mob_db` VALUES (1005,'FARMILIAR','Familiar','Familiar',8,155,0,28,15,1,20,28,0,0,1,12,8,5,28,1,10,12,0,2,27,2181,150,1276,576,384,0,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1); -# //1006,'THIEF_BUG_LARVA','Thief Bug Larva','Thief Bug Larva',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# //1006,THIEF_BUG_LARVA,Thief Bug Larva,Thief Bug Larva,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 REPLACE INTO `mob_db` VALUES (1007,'FABRE','Fabre','Fabre',2,63,0,3,2,1,7,10,0,0,1,2,4,1,7,5,10,12,0,4,22,129,400,1672,672,480,0,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1); REPLACE INTO `mob_db` VALUES (1008,'PUPA','Pupa','Pupa',2,427,0,2,4,0,1,2,0,20,1,1,1,1,1,20,10,12,0,4,22,0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1); -REPLACE INTO `mob_db` VALUES (1009,'CONDOR','Condor','Condor',5,92,0,6,5,1,11,14,0,0,1,13,5,1,13,10,10,12,1,2,24,137,150,1148,648,480,0,0,0,0,0,0,0,0,917,6500,1702,150,715,80,1750,5500,517,400,916,2000,0,0,0,0,582,50,4015,1); +REPLACE INTO `mob_db` VALUES (1009,'CONDOR','Condor','Condor',5,92,0,6,5,1,11,14,0,0,1,13,5,1,13,10,10,12,1,2,24,137,150,1148,648,480,0,0,0,0,0,0,0,0,917,6500,1702,150,715,80,1750,5500,517,400,916,2000,0,0,0,0,582,100,4015,1); REPLACE INTO `mob_db` VALUES (1010,'WILOW','Willow','Willow',4,95,0,5,4,1,9,12,5,15,1,4,8,30,9,10,10,12,1,3,22,129,200,1672,672,432,0,0,0,0,0,0,0,0,902,6100,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1); REPLACE INTO `mob_db` VALUES (1011,'CHONCHON','Chonchon','Chonchon',4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,129,200,1076,576,480,0,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1); REPLACE INTO `mob_db` VALUES (1012,'RODA_FROG','Roda Frog','Roda Frog',5,133,0,6,5,1,11,14,0,5,1,5,5,5,10,5,10,12,1,5,21,129,200,2016,816,288,0,0,0,0,0,0,0,0,918,5500,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1); -REPLACE INTO `mob_db` VALUES (1013,'WOLF','Wolf','Wolf',12,405,0,45,32,1,37,46,0,0,1,12,24,15,30,20,10,12,1,2,22,137,200,1054,54,432,0,0,0,0,0,0,0,0,1011,20,920,5500,2308,10,517,650,528,1050,919,5500,0,0,0,0,578,50,4029,1); -REPLACE INTO `mob_db` VALUES (1014,'SPORE','Spore','Spore',9,327,0,22,17,1,24,29,0,5,1,9,9,1,14,5,10,12,1,3,21,129,200,1872,672,288,0,0,0,0,0,0,0,0,921,5000,507,800,510,50,743,5,2220,40,7033,5,0,0,0,0,578,50,4022,1); +REPLACE INTO `mob_db` VALUES (1013,'WOLF','Wolf','Wolf',12,405,0,45,32,1,37,46,0,0,1,12,24,15,30,20,10,12,1,2,22,137,200,1054,54,432,0,0,0,0,0,0,0,0,1011,20,920,5500,2308,10,517,650,528,1050,919,5500,0,0,0,0,578,100,4029,1); +REPLACE INTO `mob_db` VALUES (1014,'SPORE','Spore','Spore',9,327,0,22,17,1,24,29,0,5,1,9,9,1,14,5,10,12,1,3,21,129,200,1872,672,288,0,0,0,0,0,0,0,0,921,5000,507,800,510,50,743,5,2220,40,7033,5,0,0,0,0,578,100,4022,1); REPLACE INTO `mob_db` VALUES (1015,'ZOMBIE','Zombie','Zombie',15,534,0,50,33,1,67,79,0,10,1,8,7,1,15,1,10,12,1,1,29,2181,400,2612,912,288,0,0,0,0,0,0,0,0,957,5500,724,5,938,1000,958,50,727,55,0,0,0,0,0,0,0,0,4038,1); REPLACE INTO `mob_db` VALUES (1016,'ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',31,3040,0,483,283,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,133,300,2864,864,576,0,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,800,1701,150,0,0,0,0,4094,1); REPLACE INTO `mob_db` VALUES (1017,'THIEF_BUG_FEMALE','Thief Bug Female','Thief Bug Female',10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,651,200,988,288,768,0,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1); REPLACE INTO `mob_db` VALUES (1018,'CREAMY','Creamy','Creamy',16,595,0,105,70,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,129,150,1136,720,840,0,0,0,0,0,0,0,0,924,5500,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1); -REPLACE INTO `mob_db` VALUES (1019,'PECOPECO','Peco Peco','Peco Peco',13,531,0,158,36,1,35,46,0,0,1,13,13,25,27,9,10,12,2,2,23,137,200,1564,864,576,0,0,0,0,0,0,0,0,925,5500,2402,20,508,50,507,900,1604,100,0,0,0,0,0,0,582,50,4031,1); +REPLACE INTO `mob_db` VALUES (1019,'PECOPECO','Peco Peco','Peco Peco',13,531,0,158,36,1,35,46,0,0,1,13,13,25,27,9,10,12,2,2,23,137,200,1564,864,576,0,0,0,0,0,0,0,0,925,5500,2402,20,508,50,507,900,1604,100,0,0,0,0,0,0,582,100,4031,1); REPLACE INTO `mob_db` VALUES (1020,'MANDRAGORA','Mandragora','Mandragora',12,405,0,45,32,4,26,35,0,25,1,12,24,1,36,15,10,12,1,3,62,132,1000,1768,768,576,0,0,0,0,0,0,0,0,993,50,905,5500,1405,30,511,350,711,300,706,1,1967,10,0,0,0,0,4030,1); REPLACE INTO `mob_db` VALUES (1021,'THIEF_BUG_MALE','Thief Bug Male','Thief Bug Male',19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,653,300,988,288,768,0,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1); REPLACE INTO `mob_db` VALUES (1022,'WEREWOLF','Werewolf','Werewolf',80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,163,200,1500,768,652,0,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1023,'ORK_WARRIOR','Orc Warrior','Orc Warrior',24,1400,0,407,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,2181,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); REPLACE INTO `mob_db` VALUES (1024,'WORM_TAIL','Wormtail','Wormtail',14,426,0,59,40,2,42,51,5,10,1,14,28,5,46,5,10,12,1,3,22,145,200,1048,48,192,0,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1); -REPLACE INTO `mob_db` VALUES (1025,'SNAKE','Snake','Boa',15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,129,200,1576,576,576,0,0,0,0,0,0,0,0,926,5500,1117,15,507,900,1011,35,937,800,954,1,0,0,0,0,578,50,4037,1); +REPLACE INTO `mob_db` VALUES (1025,'SNAKE','Snake','Boa',15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,129,200,1576,576,576,0,0,0,0,0,0,0,0,926,5500,1117,15,507,900,1011,35,937,800,954,1,0,0,0,0,578,100,4037,1); REPLACE INTO `mob_db` VALUES (1026,'MUNAK','Munak','Munak',30,2872,0,361,218,1,180,230,0,0,1,15,20,5,46,15,10,12,1,1,29,2181,200,2468,768,288,0,0,0,0,0,0,0,0,901,5500,2264,1,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1); REPLACE INTO `mob_db` VALUES (1027,'RAPTICE','Raptice','Raptice',17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,131,200,2000,1000,500,0,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1028,'SOLDIER_SKELETON','Soldier Skeleton','Soldier Skeleton',29,2334,0,372,226,1,221,245,10,15,1,15,22,5,40,15,10,12,1,1,29,2181,200,2276,576,432,0,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,1201,150,1216,50,0,0,0,0,4086,1); @@ -121,7 +126,7 @@ REPLACE INTO `mob_db` VALUES (1053,'THIEF_BUG_','Thief Bug Female','Thief Bug Fe REPLACE INTO `mob_db` VALUES (1054,'THIEF_BUG__','Thief Bug Male','Thief Bug Male',19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,141,300,988,288,768,0,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1); REPLACE INTO `mob_db` VALUES (1055,'MUKA','Muka','Muka',15,570,0,272,48,1,40,49,5,5,1,15,30,5,20,10,10,12,2,3,22,129,300,1960,960,384,0,0,0,0,0,0,0,0,993,70,952,5500,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1); REPLACE INTO `mob_db` VALUES (1056,'SMOKIE','Smokie','Smokie',18,641,0,134,86,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,145,200,1576,576,420,0,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1); -REPLACE INTO `mob_db` VALUES (1057,'YOYO','Yoyo','Yoyo',19,879,0,280,93,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,139,200,1054,54,384,0,0,0,0,0,0,0,0,942,5500,513,1500,508,100,919,5000,753,5,756,24,0,0,7182,50,578,50,4051,1); +REPLACE INTO `mob_db` VALUES (1057,'YOYO','Yoyo','Yoyo',19,879,0,280,93,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,139,200,1054,54,384,0,0,0,0,0,0,0,0,942,5500,513,1500,508,100,919,5000,753,5,756,24,0,0,7182,100,578,100,4051,1); REPLACE INTO `mob_db` VALUES (1058,'METALLER','Metaller','Metaller',22,926,0,241,152,1,131,159,15,30,1,22,22,20,49,50,10,12,1,4,23,139,200,1708,1008,540,0,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1); REPLACE INTO `mob_db` VALUES (1059,'MISTRESS','Mistress','Mistress',74,212000,0,39325,27170,1,880,1110,40,60,1,165,60,95,70,130,10,12,0,4,84,1205,100,1148,648,300,19662,10000,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,984,3300,0,0,0,0,4132,1); REPLACE INTO `mob_db` VALUES (1060,'BIGFOOT','Bigfoot','Bigfoot',25,1619,0,310,188,1,198,220,10,0,1,25,55,15,20,25,10,12,2,2,22,145,300,1260,192,192,0,0,0,0,0,0,0,0,948,5500,2289,5,919,5000,740,80,516,1500,518,400,756,43,0,0,0,0,4074,1); @@ -168,10 +173,10 @@ REPLACE INTO `mob_db` VALUES (1100,'ARGOS','Argos','Argos',25,1117,0,388,188,1,1 REPLACE INTO `mob_db` VALUES (1101,'BAPHOMET_','Baphomet Jr.','Baphomet Jr.',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1173,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,508,300,2405,50,0,0,0,0,4129,1); REPLACE INTO `mob_db` VALUES (1102,'BATHORY','Bathory','Bathory',44,5415,0,2503,1034,1,198,398,0,60,1,76,24,85,65,15,10,12,1,7,27,1173,100,1504,840,900,0,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1); REPLACE INTO `mob_db` VALUES (1103,'CARAMEL','Caramel','Caramel',23,1424,0,264,162,1,90,112,5,5,1,23,46,5,38,10,10,12,0,2,22,145,200,1604,840,756,0,0,0,0,0,0,0,0,1027,5500,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1); -REPLACE INTO `mob_db` VALUES (1104,'COCO','Coco','Coco',17,817,0,120,78,1,56,67,0,0,1,17,34,20,24,10,10,12,0,2,22,145,150,1864,864,1008,0,0,0,0,0,0,0,0,1026,5500,2502,20,914,3000,919,2500,516,500,2402,25,0,0,0,0,578,50,4041,1); +REPLACE INTO `mob_db` VALUES (1104,'COCO','Coco','Coco',17,817,0,120,78,1,56,67,0,0,1,17,34,20,24,10,10,12,0,2,22,145,150,1864,864,1008,0,0,0,0,0,0,0,0,1026,5500,2502,20,914,3000,919,2500,516,500,2402,25,0,0,0,0,578,100,4041,1); REPLACE INTO `mob_db` VALUES (1105,'DENIRO','Deniro','Deniro',19,760,0,135,85,1,68,79,15,0,1,19,30,20,43,10,10,12,0,4,22,139,150,1288,288,576,0,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1); REPLACE INTO `mob_db` VALUES (1106,'DESERT_WOLF','Desert Wolf','Desert Wolf',27,1716,0,427,266,1,169,208,0,10,1,27,45,15,56,10,10,12,1,2,23,141,200,1120,420,288,0,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,1217,140,0,0,0,0,4082,1); -REPLACE INTO `mob_db` VALUES (1107,'DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',9,164,0,20,16,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,137,300,1600,900,240,0,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,517,600,2301,200,0,0,0,0,13011,1,582,50,4023,1); +REPLACE INTO `mob_db` VALUES (1107,'DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',9,164,0,20,16,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,137,300,1600,900,240,0,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,517,600,2301,200,0,0,0,0,13011,1,582,100,4023,1); REPLACE INTO `mob_db` VALUES (1108,'DEVIACE','Deviace','Deviace',47,19192,0,9988,1329,1,514,674,10,20,1,47,62,48,62,25,10,12,1,5,81,145,400,1680,480,384,0,0,0,0,0,0,0,0,995,25,1053,5335,1054,1000,5011,2,971,100,1256,3,756,161,0,0,0,0,4125,1); REPLACE INTO `mob_db` VALUES (1109,'DEVIRUCHI','Deviruchi','Deviruchi',46,7360,0,2662,1278,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,1173,150,980,600,384,0,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1); REPLACE INTO `mob_db` VALUES (1110,'DOKEBI','Dokebi','Dokebi',33,2697,0,889,455,1,197,249,0,10,1,50,40,35,69,40,10,12,0,6,27,145,250,1156,456,384,0,0,0,0,0,0,0,0,1021,5500,757,112,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1); @@ -202,7 +207,7 @@ REPLACE INTO `mob_db` VALUES (1134,'KOBOLD_2','Kobold','Kobold',31,2179,0,806,40 REPLACE INTO `mob_db` VALUES (1135,'KOBOLD_3','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,141,300,1228,528,360,0,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,0,0,2104,3,508,100,0,0,0,0,4091,1); REPLACE INTO `mob_db` VALUES (1136,'KOBOLD_4','Kobold','Kobold',30,3503,0,481,290,1,168,199,15,10,1,30,30,20,50,20,10,12,1,7,41,141,200,2200,1000,500,0,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1); REPLACE INTO `mob_db` VALUES (1137,'KOBOLD_5','Kobold','Kobold',30,2462,0,481,290,1,168,199,15,10,1,30,60,20,45,20,10,12,1,7,42,141,200,2000,1000,500,0,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1); -REPLACE INTO `mob_db` VALUES (1138,'MAGNOLIA','Magnolia','Magnolia',26,3195,0,393,248,1,120,151,5,30,1,26,26,0,39,5,10,12,0,6,21,131,250,1560,360,360,0,0,0,0,0,0,0,0,7031,5500,910,800,911,100,912,10,737,20,508,250,0,0,0,0,12127,20,4076,1); +REPLACE INTO `mob_db` VALUES (1138,'MAGNOLIA','Magnolia','Magnolia',26,3195,0,393,248,1,120,151,5,30,1,26,26,0,39,5,10,12,0,6,21,131,250,1560,360,360,0,0,0,0,0,0,0,0,7031,5500,910,800,911,100,912,10,737,20,508,250,0,0,0,0,12127,30,4076,1); REPLACE INTO `mob_db` VALUES (1139,'MANTIS','Mantis','Mantis',26,2472,0,393,248,1,118,149,10,0,1,26,24,5,45,15,10,12,1,4,22,149,200,1528,660,432,0,0,0,0,0,0,0,0,993,110,1031,5500,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1); REPLACE INTO `mob_db` VALUES (1140,'MARDUK','Marduk','Marduk',40,4214,0,1238,752,1,315,382,0,60,1,40,20,79,78,20,10,12,2,7,23,149,300,1540,840,504,0,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1); REPLACE INTO `mob_db` VALUES (1141,'MARINA','Marina','Marina',21,2087,0,218,140,1,84,106,0,5,1,21,21,1,36,10,10,12,0,3,41,129,400,2280,1080,864,0,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1); @@ -265,7 +270,7 @@ REPLACE INTO `mob_db` VALUES (1197,'ZOMBIE_PRISONER','Zombie Prisoner','Zombie P REPLACE INTO `mob_db` VALUES (1198,'DARK_PRIEST','Dark Priest','Dark Priest',59,9660,0,3320,2974,1,298,370,30,60,1,54,38,95,82,60,10,12,1,7,87,141,200,1500,500,1000,0,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,50,2319,5,1241,1,0,0,0,0,4171,1); REPLACE INTO `mob_db` VALUES (1199,'PUNK','Punk','Punk',43,3620,0,1699,1033,1,292,365,0,45,1,105,5,45,65,20,10,12,0,3,24,149,300,1500,500,1000,0,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1); REPLACE INTO `mob_db` VALUES (1200,'ZHERLTHSH','Zherlthsh','Zealotus',63,18300,0,3608,2304,1,700,850,10,15,1,85,40,30,125,60,10,12,1,7,60,141,200,800,2112,768,0,0,0,0,0,0,0,0,7017,5,509,800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1); -REPLACE INTO `mob_db` VALUES (1201,'RYBIO','Rybio','Rybio',71,9572,0,6317,3520,1,686,912,45,37,1,97,75,74,77,90,10,12,2,6,40,141,200,1790,1440,540,0,0,0,0,0,0,0,0,1015,3880,7017,3,509,800,731,30,1008,10,984,100,0,0,0,0,709,75,4194,1); +REPLACE INTO `mob_db` VALUES (1201,'RYBIO','Rybio','Rybio',71,9572,0,6317,3520,1,686,912,45,37,1,97,75,74,77,90,10,12,2,6,40,141,200,1790,1440,540,0,0,0,0,0,0,0,0,1015,3880,7017,3,509,800,731,30,1008,10,984,100,0,0,0,0,709,150,4194,1); REPLACE INTO `mob_db` VALUES (1202,'PHENDARK','Phendark','Phendark',73,22729,0,6826,3443,1,794,1056,52,36,1,62,120,65,77,66,10,12,2,7,40,141,175,1744,1344,600,0,0,0,0,0,0,0,0,1015,3880,7017,4,509,800,0,0,984,150,0,0,0,0,1971,10,0,0,4329,1); REPLACE INTO `mob_db` VALUES (1203,'MYSTELTAINN','Mysteltainn','Mysteltainn',76,33350,0,6457,5159,2,1160,1440,30,30,1,139,80,35,159,65,10,12,2,0,87,1205,250,1152,500,240,0,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,999,120,984,243,0,0,0,0,4207,1); REPLACE INTO `mob_db` VALUES (1204,'TIRFING','Tirfing','Ogretooth',71,29900,0,5412,4235,1,950,1146,30,35,1,87,55,35,132,65,10,12,1,0,67,1205,100,816,500,240,0,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1); @@ -335,7 +340,7 @@ REPLACE INTO `mob_db` VALUES (1269,'CLOCK','Clock','Clock',60,11050,0,3410,2904, REPLACE INTO `mob_db` VALUES (1270,'C_TOWER_MANAGER','Clock Tower Manager','Clock Tower Manager',63,18600,0,4378,2850,3,880,1180,35,30,1,75,20,64,75,60,10,12,2,0,80,145,200,1072,672,384,0,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1); REPLACE INTO `mob_db` VALUES (1271,'ALLIGATOR','Alligator','Alligator',42,6962,0,1379,866,1,315,360,2,5,1,45,50,10,82,65,10,12,1,2,21,145,200,1100,900,480,0,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1); REPLACE INTO `mob_db` VALUES (1272,'DARK_LORD','Dark Lord','Dark Lord',80,360000,0,65780,45045,2,2800,3320,30,70,1,120,64,118,99,60,10,12,2,6,89,1205,100,868,768,480,32890,10000,7005,6000,5093,500,617,2000,1615,800,5017,550,1237,300,2334,300,2507,100,985,5141,984,3977,0,0,0,0,4168,1); -REPLACE INTO `mob_db` VALUES (1273,'ORC_LADY','Orc Lady','Orc Lady',31,2000,0,644,407,1,135,170,10,10,1,42,25,15,69,55,10,12,1,7,42,1173,200,1050,900,288,0,0,0,0,0,0,0,0,7053,4656,998,300,2602,1,2206,1,1352,10,508,900,2338,1,12127,20,7477,4,4255,1); +REPLACE INTO `mob_db` VALUES (1273,'ORC_LADY','Orc Lady','Orc Lady',31,2000,0,644,407,1,135,170,10,10,1,42,25,15,69,55,10,12,1,7,42,1173,200,1050,900,288,0,0,0,0,0,0,0,0,7053,4656,998,300,2602,1,2206,1,1352,10,508,900,2338,1,12127,30,7477,4,4255,1); REPLACE INTO `mob_db` VALUES (1274,'MEGALITH','Megalith','Megalith',45,5300,0,1758,1075,9,264,314,50,25,1,45,60,5,95,5,10,12,2,0,80,132,200,1332,1332,672,0,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1); REPLACE INTO `mob_db` VALUES (1275,'ALICE','Alice','Alice',62,10000,0,3583,2400,1,550,700,5,5,1,64,42,85,100,130,10,12,1,7,60,145,200,502,2304,480,0,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,739,30,5085,1,508,400,12002,100,0,0,12128,20,4253,1); REPLACE INTO `mob_db` VALUES (1276,'RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',52,5250,0,3025,2125,9,415,500,35,5,1,25,22,5,145,35,10,12,1,6,47,133,200,1152,1152,480,0,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,1701,150,1764,2000,1715,3,985,106,0,0,0,0,4187,1); @@ -431,14 +436,14 @@ REPLACE INTO `mob_db` VALUES (1365,'APOCALIPS','Apocalypse','Apocalypse',66,2268 REPLACE INTO `mob_db` VALUES (1366,'LAVA_GOLEM','Lava Golem','Lava Golem',77,24324,0,6470,3879,1,1541,2049,65,50,1,57,115,70,76,68,10,12,2,0,83,149,400,2190,2040,336,0,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,0,0,0,0,0,0,0,0,4184,1); REPLACE INTO `mob_db` VALUES (1367,'BLAZZER','Blazer','Blazer',43,8252,0,3173,1871,2,533,709,50,40,1,52,50,39,69,40,10,12,0,6,43,149,180,1732,1332,540,0,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1); REPLACE INTO `mob_db` VALUES (1368,'GEOGRAPHER','Geographer','Geographer',56,8071,0,2715,2000,3,467,621,28,26,1,67,47,60,68,44,10,12,0,3,62,132,2000,1308,1008,480,0,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1); -REPLACE INTO `mob_db` VALUES (1369,'GRAND_PECO','Grand Peco','Grand Peco',58,8054,0,2387,1361,2,444,565,37,30,1,67,66,50,71,51,10,12,2,2,43,137,165,1460,960,432,0,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,0,0,0,0,582,75,4161,1); +REPLACE INTO `mob_db` VALUES (1369,'GRAND_PECO','Grand Peco','Grand Peco',58,8054,0,2387,1361,2,444,565,37,30,1,67,66,50,71,51,10,12,2,2,43,137,165,1460,960,432,0,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,0,0,0,0,582,150,4161,1); REPLACE INTO `mob_db` VALUES (1370,'SUCCUBUS','Succubus','Succubus',85,16955,0,5357,4322,2,1268,1686,54,48,1,97,95,150,89,87,10,12,1,6,67,1173,155,1306,1056,288,0,0,0,0,0,0,0,0,522,1500,2407,3,2611,500,2613,150,5066,1,1472,1,505,1000,0,0,0,0,4218,1); REPLACE INTO `mob_db` VALUES (1371,'FAKE_ANGEL','Fake Angel','False Angel',65,16845,0,3371,1949,2,513,682,50,35,1,64,57,70,61,88,10,12,0,8,66,2181,160,920,720,336,0,0,0,0,0,0,0,0,7104,5335,7105,3500,717,1000,715,1000,716,1000,12020,1000,0,0,0,0,0,0,4316,1); REPLACE INTO `mob_db` VALUES (1372,'GOAT','Goat','Goat',69,11077,0,3357,2015,1,457,608,44,25,1,58,66,62,67,43,10,12,2,2,63,137,165,1380,1080,336,0,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1); REPLACE INTO `mob_db` VALUES (1373,'LORD_OF_DEATH','Lord of Death','Lord of the Dead',94,303383,0,131343,43345,2,2430,4104,77,73,1,99,120,169,100,106,10,12,2,6,67,1205,180,1446,1296,360,65671,10000,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1); REPLACE INTO `mob_db` VALUES (1374,'INCUBUS','Incubus','Incubus',75,17281,0,5254,4212,1,1408,1873,58,46,1,97,95,150,89,87,10,12,1,6,67,1173,165,850,600,336,0,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,1200,0,0,0,0,4269,1); REPLACE INTO `mob_db` VALUES (1375,'THE_PAPER','The Paper','The Paper',56,18557,0,2849,1998,1,845,1124,25,24,1,66,52,76,71,79,10,12,1,0,60,2181,170,1160,960,336,0,0,0,0,0,0,0,0,7111,4947,7112,3200,508,800,511,2000,0,0,0,0,0,0,13009,1,0,0,4172,1); -REPLACE INTO `mob_db` VALUES (1376,'HARPY','Harpy','Harpy',70,16599,0,3562,2133,1,956,1231,42,44,1,112,72,103,74,76,10,12,1,6,64,2181,155,972,672,470,0,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,0,0,0,0,0,0,0,0,709,75,4325,1); +REPLACE INTO `mob_db` VALUES (1376,'HARPY','Harpy','Harpy',70,16599,0,3562,2133,1,956,1231,42,44,1,112,72,103,74,76,10,12,1,6,64,2181,155,972,672,470,0,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,0,0,0,0,0,0,0,0,709,150,4325,1); REPLACE INTO `mob_db` VALUES (1377,'ELDER','Elder','Elder',64,21592,0,4650,3408,3,421,560,45,68,1,76,68,108,72,86,10,12,2,7,80,2181,165,1552,1152,336,0,0,0,0,0,0,0,0,7099,4365,7117,1500,7118,1500,691,100,1473,1,616,2,7027,5000,0,0,0,0,4251,1); REPLACE INTO `mob_db` VALUES (1378,'DEMON_PUNGUS','Demon Pungus','Demon Pungus',56,7259,0,3148,1817,1,360,479,48,31,1,83,55,59,63,34,10,12,0,6,65,2181,170,1260,960,672,0,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,0,0,0,0,0,0,0,0,0,0,0,0,4173,1); REPLACE INTO `mob_db` VALUES (1379,'NIGHTMARE_TERROR','Nightmare Terror','Nightmare Terror',78,22605,0,6683,4359,1,757,1007,37,37,1,76,55,60,77,54,10,12,2,6,67,2181,165,1216,816,432,0,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,0,0,1261,1,0,0,4166,1); @@ -453,10 +458,10 @@ REPLACE INTO `mob_db` VALUES (1387,'GIG','Gig','Gig',60,8409,0,3934,2039,1,360,4 REPLACE INTO `mob_db` VALUES (1388,'ARCHANGELING','Archangeling','Arc Angeling',60,79523,0,4152,2173,1,669,890,54,58,1,65,80,74,65,105,10,12,1,8,66,1205,180,1072,672,480,0,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1); REPLACE INTO `mob_db` VALUES (1389,'DRACULA','Dracula','Dracula',85,320096,0,120157,38870,3,1625,1891,45,76,1,95,90,87,85,100,10,12,2,6,87,1205,145,1290,1140,576,60078,10000,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1); REPLACE INTO `mob_db` VALUES (1390,'VIOLY','Violy','Violy',75,18257,0,6353,3529,10,738,982,37,36,1,93,54,85,101,83,10,12,1,7,40,133,170,1356,1056,540,0,0,0,0,0,0,0,0,1060,6305,1610,50,740,1200,2610,800,526,1400,12020,1000,1902,500,0,0,12127,30,4209,1); -REPLACE INTO `mob_db` VALUES (1391,'GALAPAGO','Galapago','Galapago',63,9145,0,3204,1966,1,457,608,33,33,1,56,56,45,66,57,10,12,1,2,22,139,165,1430,1080,1080,0,0,0,0,0,0,0,0,7053,5335,610,1500,508,2500,606,100,605,100,5111,1,0,0,0,0,582,75,4152,1); +REPLACE INTO `mob_db` VALUES (1391,'GALAPAGO','Galapago','Galapago',63,9145,0,3204,1966,1,457,608,33,33,1,56,56,45,66,57,10,12,1,2,22,139,165,1430,1080,1080,0,0,0,0,0,0,0,0,7053,5335,610,1500,508,2500,606,100,605,100,5111,1,0,0,0,0,582,150,4152,1); REPLACE INTO `mob_db` VALUES (1392,'ROTAR_ZAIRO','Rotar Zairo','Rotar Zairo',25,1209,0,351,215,7,109,137,4,34,1,62,45,26,55,5,10,12,1,0,44,133,155,2416,2016,432,0,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1); -REPLACE INTO `mob_db` VALUES (1393,'G_MUMMY','Mummy','Mummy',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,2181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1394,'G_ZOMBIE','Zombie','Zombie',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,2181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# //1393,G_MUMMY,Mummy,Mummy,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,2181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +# //1394,G_ZOMBIE,Zombie,Zombie,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,2181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 REPLACE INTO `mob_db` VALUES (1395,'CRYSTAL_1','Wind Crystal','Wind Crystal',1,15,0,0,0,1,1,2,100,99,1,1,1,1,255,1,7,12,0,3,22,193,2000,300,300,1,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,5097,7000,532,6500,558,5000,607,200,0,0,0,0); REPLACE INTO `mob_db` VALUES (1396,'CRYSTAL_2','Earth Crystal','Earth Crystal',1,15,0,0,0,1,1,2,100,99,1,1,1,1,255,1,7,12,0,3,22,193,2000,300,300,1,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,5097,7000,531,6500,558,5000,608,250,0,0,0,0); REPLACE INTO `mob_db` VALUES (1397,'CRYSTAL_3','Fire Crystal','Fire Crystal',1,15,0,0,0,1,1,2,100,99,1,1,1,1,255,1,7,12,0,3,22,193,2000,300,300,1,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,5097,7000,534,6500,558,5000,604,300,0,0,0,0); @@ -466,17 +471,17 @@ REPLACE INTO `mob_db` VALUES (1400,'KARAKASA','Karakasa','Karakasa',30,3092,0,48 REPLACE INTO `mob_db` VALUES (1401,'SHINOBI','Shinobi','Shinobi',69,12700,0,4970,3010,1,460,1410,34,21,1,85,25,25,100,100,10,12,1,7,67,1173,150,1003,1152,336,0,0,0,0,0,0,0,0,7156,5335,2337,2,7053,2200,2335,2,2336,1,7157,2000,739,15,13013,1,0,0,4230,1); REPLACE INTO `mob_db` VALUES (1402,'POISON_TOAD','Poison Toad','Poison Toad',46,6629,0,1929,1457,1,288,408,5,10,1,34,19,14,66,55,10,12,1,2,45,129,160,1148,1728,864,0,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1); REPLACE INTO `mob_db` VALUES (1403,'ANTIQUE_FIRELOCK','Antique Firelock','Firelock Soldier',47,3852,0,1293,1003,9,289,336,10,10,1,37,29,15,101,15,10,12,1,1,49,133,170,1084,2304,576,0,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,20,549,350,525,250,0,0,13152,1,0,0,4160,1); -REPLACE INTO `mob_db` VALUES (1404,'MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',33,6300,0,795,493,1,250,305,1,20,1,31,15,10,47,15,10,12,1,6,27,145,250,1938,2112,768,0,0,0,0,0,0,0,0,7152,5335,7153,2500,509,550,1000,1250,2613,1,7005,100,1904,2,0,0,12127,20,4208,1); +REPLACE INTO `mob_db` VALUES (1404,'MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',33,6300,0,795,493,1,250,305,1,20,1,31,15,10,47,15,10,12,1,6,27,145,250,1938,2112,768,0,0,0,0,0,0,0,0,7152,5335,7153,2500,509,550,1000,1250,2613,1,7005,100,1904,2,0,0,12127,30,4208,1); REPLACE INTO `mob_db` VALUES (1405,'TENGU','Tengu','Tengu',65,16940,0,4207,2843,2,660,980,12,82,1,45,69,45,75,25,10,12,2,6,42,2181,200,1439,1920,672,0,0,0,0,0,0,0,0,7159,3500,7158,5500,7063,25,522,150,999,80,2278,2,687,100,13301,1,12128,20,4282,1); REPLACE INTO `mob_db` VALUES (1406,'KAPHA','Kapha','Kapha',41,7892,0,2278,1552,3,399,719,20,38,1,65,49,22,73,140,10,12,1,5,21,2181,165,2012,1728,672,0,0,0,0,0,0,0,0,7149,6500,7053,3500,520,1500,521,2300,708,2,1915,10,640,1,0,0,0,0,4287,1); -REPLACE INTO `mob_db` VALUES (1407,'DOKEBI_','Dokebi','Dokebi',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# //1407,DOKEBI_,Dokebi,Dokebi,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 REPLACE INTO `mob_db` VALUES (1408,'BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',57,8082,0,2119,1562,2,354,575,5,23,1,65,35,37,116,30,10,13,1,4,44,141,145,472,576,288,0,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1); REPLACE INTO `mob_db` VALUES (1409,'RICE_CAKE_BOY','Rice Cake Boy','Dumpling Child',27,2098,0,231,149,1,112,134,5,12,1,22,29,5,41,10,10,13,0,7,20,145,160,647,768,420,0,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1); REPLACE INTO `mob_db` VALUES (1410,'LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',55,10050,0,2591,1799,10,482,603,10,38,1,45,120,39,120,55,10,13,1,3,42,132,410,400,672,480,0,0,0,0,0,0,0,0,7164,4365,0,0,526,1000,604,400,532,100,603,3,0,0,0,0,0,0,4217,1); -# //1411,'PEACH_TREE_BULLET','Peach Tree Bullet','Peach Tree Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,); +# //1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, REPLACE INTO `mob_db` VALUES (1412,'EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',57,15003,0,3304,2198,9,620,899,25,59,1,66,21,76,130,79,10,13,2,0,40,133,190,480,840,432,0,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1); -REPLACE INTO `mob_db` VALUES (1413,'WILD_GINSENG','Wild Ginseng','Hermit Plant',46,6900,0,1038,692,1,220,280,10,20,1,42,36,55,66,30,10,13,0,3,43,145,140,512,756,360,0,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,516,4800,1951,1,0,0,0,0,578,75,4232,1); -# //1414,'GINSENG_BULLET','Ginseng Bullet','Ginseng Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,); +REPLACE INTO `mob_db` VALUES (1413,'WILD_GINSENG','Wild Ginseng','Hermit Plant',46,6900,0,1038,692,1,220,280,10,20,1,42,36,55,66,30,10,13,0,3,43,145,140,512,756,360,0,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,516,4800,1951,1,0,0,0,0,578,150,4232,1); +# //1414,GINSENG_BULLET,Ginseng Bullet,Ginseng Bullet... (mode 129),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, REPLACE INTO `mob_db` VALUES (1415,'BABY_LEOPARD','Baby Leopard','Baby Leopard',32,2590,0,352,201,1,155,207,0,5,1,44,20,4,49,10,10,13,0,2,28,2181,150,318,528,420,0,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1); REPLACE INTO `mob_db` VALUES (1416,'WICKED_NYMPH','Wicked Nymph','Evil Nymph',63,18029,0,3945,2599,1,691,1382,12,75,1,64,12,69,100,80,10,13,1,6,67,1173,200,637,1008,360,0,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1); REPLACE INTO `mob_db` VALUES (1417,'ZIPPER_BEAR','Zipper Bear','Zipper Bear',35,2901,0,370,255,1,248,289,10,5,1,25,55,15,28,25,10,13,1,2,27,145,155,780,1008,420,0,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1); @@ -554,20 +559,18 @@ REPLACE INTO `mob_db` VALUES (1488,'G_ANOLIAN','Anolian','Anolian',63,18960,0,0, REPLACE INTO `mob_db` VALUES (1489,'G_STING','Sting','Sting',61,9500,0,0,0,1,850,1032,5,30,1,45,55,5,120,85,10,12,1,0,62,2181,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1490,'G_WANDER_MAN','Wander Man','Wanderer',74,8170,0,0,0,2,750,1000,5,5,1,192,38,45,127,85,10,12,1,6,24,2693,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1491,'G_DOKEBI','Dokebi','Dokebi',33,2697,0,0,0,1,197,249,0,10,1,50,40,35,69,40,10,12,0,6,27,2181,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# # //Umbala REPLACE INTO `mob_db` VALUES (1492,'INCANTATION_SAMURAI','Incantation Samurai','Samurai Specter',71,218652,0,53600,5000,1,1219,2169,10,51,1,85,78,85,150,60,10,12,2,7,67,1205,135,874,1344,576,26800,10000,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,504,7500,1235,80,13303,1,0,0,4263,1); REPLACE INTO `mob_db` VALUES (1493,'DRYAD','Dryad','Dryad',50,8791,0,2763,1493,3,499,589,15,33,1,75,55,1,78,45,10,12,1,3,64,2181,170,950,2520,576,0,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,1951,80,1964,1,2270,10,7100,3000,0,0,0,0,4177,1); REPLACE INTO `mob_db` VALUES (1494,'KIND_OF_BEETLE','Beetle King','Beetle King',34,1874,0,679,442,1,191,243,45,12,1,34,10,1,50,1,10,12,0,4,22,137,165,1247,768,576,0,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1); REPLACE INTO `mob_db` VALUES (1495,'STONE_SHOOTER','Stone Shooter','Stone Shooter',42,4104,0,1238,752,9,309,350,12,45,1,40,20,79,92,20,10,12,1,3,63,2181,175,2413,1248,768,0,0,0,0,0,0,0,0,7203,5000,7201,3000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1); -# //1496,'STONE_SHOOTER_BULLET','Stone Shooter Bullet','Stone Shooter Bullet',(mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,); +# //1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,(mode 2181),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, REPLACE INTO `mob_db` VALUES (1497,'WOODEN_GOLEM','Wooden Golem','Wooden Golem',51,9200,0,1926,1353,1,570,657,32,36,1,41,69,5,85,41,10,12,2,3,42,2181,165,1543,1632,480,0,0,0,0,0,0,0,0,7189,4365,7188,5723,757,110,2270,10,604,100,7201,1000,921,1000,0,0,0,0,4259,1); -REPLACE INTO `mob_db` VALUES (1498,'WOOTAN_SHOOTER','Wootan Shooter','Wootan Shooter',39,3977,0,886,453,9,224,271,10,28,1,35,29,15,120,42,10,12,1,7,42,2181,200,857,1056,576,0,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,512,100,0,0,5116,10,0,0,7182,75,4260,1); +REPLACE INTO `mob_db` VALUES (1498,'WOOTAN_SHOOTER','Wootan Shooter','Wootan Shooter',39,3977,0,886,453,9,224,271,10,28,1,35,29,15,120,42,10,12,1,7,42,2181,200,857,1056,576,0,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,512,100,0,0,5116,10,0,0,7182,150,4260,1); REPLACE INTO `mob_db` VALUES (1499,'WOOTAN_FIGHTER','Wootan Fighter','Wootan Fighter',41,4457,0,1790,833,1,395,480,30,19,1,41,31,10,67,30,10,12,1,7,43,2181,200,912,1344,480,0,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,513,1000,7198,1000,5116,5,0,0,0,0,4261,1); REPLACE INTO `mob_db` VALUES (1500,'PARASITE','Parasite','Parasite',37,3090,0,1098,478,9,175,215,5,19,1,40,20,10,90,25,10,12,1,3,44,132,400,864,864,672,0,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,711,500,0,0,0,0,4309,1); -# //1501,'PARASITE_BULLET','Parasite Bullet','Parasite Bullet... (mode 2181)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,); +# //1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet... (mode 2181),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, REPLACE INTO `mob_db` VALUES (1502,'PORING_V','Pori Pori','Bring it on!',99,95000000,0,87250,27895,1,600,700,17,32,10,50,65,50,45,35,10,12,1,3,25,2485,160,1672,672,480,43625,10000,10020,1000,4005,100,2286,200,5035,5000,2344,5000,2346,5000,2350,5000,2348,5000,10004,6000,7126,7760,2110,4500,0,0,0,0); -# # //Niflheim REPLACE INTO `mob_db` VALUES (1503,'GIBBET','Gibbet','Gibbet',58,6841,0,4011,1824,1,418,656,28,31,1,42,42,27,46,28,10,12,2,6,27,2693,180,917,1584,576,0,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,0,0,0,0,0,0,4278,1); REPLACE INTO `mob_db` VALUES (1504,'DULLAHAN','Dullahan','Dullahan',62,12437,0,4517,2963,1,647,1065,47,38,1,30,5,45,62,22,10,12,1,1,49,2181,155,847,1152,480,0,0,0,0,0,0,0,0,7209,3200,7210,4850,0,0,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1); @@ -577,9 +580,7 @@ REPLACE INTO `mob_db` VALUES (1507,'BLOODY_MURDERER','Bloody Murderer','Bloody M REPLACE INTO `mob_db` VALUES (1508,'QUVE','Quve','Quve',40,4559,0,414,306,1,299,469,12,12,1,61,24,19,37,24,10,12,0,1,29,2181,150,912,1248,576,0,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,0,0,0,0,0,0,0,0,4294,1); REPLACE INTO `mob_db` VALUES (1509,'LUDE','Lude','Lude',36,3214,0,392,247,1,287,469,14,10,1,59,60,18,36,21,10,12,0,1,29,2181,150,890,960,480,0,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,0,0,0,0,0,0,4193,1); REPLACE INTO `mob_db` VALUES (1510,'HYLOZOIST','Hylozoist','Heirozoist',51,7186,0,2314,1297,1,317,498,16,51,1,28,26,47,66,14,10,12,0,6,47,2181,155,741,1536,480,0,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1); -# REPLACE INTO `mob_db` VALUES (1511,'AMON_RA','Amon Ra','Amon Ra',88,1214138,0,87264,35891,3,1647,2576,26,52,1,1,90,124,74,45,10,12,2,7,62,164,170,854,2016,480,43632,10000,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1); -# # //Louyang REPLACE INTO `mob_db` VALUES (1512,'HYEGUN','Hyegun','Yao Jun',56,9981,0,2199,1032,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,49,2181,180,890,1320,720,0,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,0,0,0,0,0,0,0,0,4328,1); REPLACE INTO `mob_db` VALUES (1513,'CIVIL_SERVANT','Civil Servant','Mao Guai',62,14390,0,4023,2750,1,650,1010,42,5,58,15,20,60,80,50,10,12,1,2,44,2181,200,1257,528,432,0,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1); @@ -653,13 +654,11 @@ REPLACE INTO `mob_db` VALUES (1580,'G_INCUBUS','Incubus','Incubus',75,17281,0,0, REPLACE INTO `mob_db` VALUES (1581,'G_VOCAL','Vocal','Vocal',18,3016,0,0,0,1,71,82,10,30,1,28,26,30,53,40,10,10,1,4,22,1205,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1582,'DEVILING','Deviling','Deviling',31,64500,0,211,412,1,135,270,5,70,1,50,20,75,77,200,10,12,1,6,87,1205,200,1072,1056,384,0,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1); REPLACE INTO `mob_db` VALUES (1583,'TAO_GUNKA','Tao Gunka','Tao Gunka',70,193000,0,59175,10445,3,1450,1770,20,20,70,40,85,78,35,140,60,12,2,6,60,173,150,1020,288,144,29587,10000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,1002,1000,2231,5,0,0,0,0,4302,1); -# # //Ayothaya REPLACE INTO `mob_db` VALUES (1584,'TAMRUAN','Tamruan','Tamruan',52,10234,0,3812,55,3,489,534,15,35,1,62,38,75,72,15,10,12,2,6,67,141,140,512,1152,672,0,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,0,0,0,0,0,0,0,0,4304,1); REPLACE INTO `mob_db` VALUES (1585,'MIME_MONKEY','Mime Monkey','Mime Monkey',40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1586,'LEAF_CAT','Leaf Cat','Leaf Cat',38,2396,0,165,1212,1,266,307,5,19,1,67,12,45,60,29,10,12,0,2,22,131,150,960,864,720,0,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1); -REPLACE INTO `mob_db` VALUES (1587,'KRABEN','Kraben','Kraben',50,5880,0,206,1322,1,125,765,5,42,1,125,1,66,75,50,10,12,1,0,48,141,100,1152,1536,576,0,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,0,0,603,10,0,0,7286,100,4295,1); -# +REPLACE INTO `mob_db` VALUES (1587,'KRABEN','Kraben','Kraben',50,5880,0,206,1322,1,125,765,5,42,1,125,1,66,75,50,10,12,1,0,48,141,100,1152,1536,576,0,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,0,0,603,10,0,0,7286,200,4295,1); # //Some more G_Mobs and Xmas_Orc REPLACE INTO `mob_db` VALUES (1588,'ORC_XMAS','Christmas Orc','Christmas Orc',24,1400,0,261,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,2181,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1); REPLACE INTO `mob_db` VALUES (1589,'G_MANDRAGORA','Mandragora','Mandragora',12,405,0,0,0,4,26,35,0,25,1,12,24,1,36,15,10,12,1,3,62,132,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -686,7 +685,6 @@ REPLACE INTO `mob_db` VALUES (1609,'G_DANCING_DRAGON','Dancing Dragon','Zhu Po L REPLACE INTO `mob_db` VALUES (1610,'A_MUNAK','Munak','Munak',30,2872,0,0,0,1,180,230,0,0,1,15,20,5,46,15,10,12,1,1,29,133,200,2468,768,288,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); REPLACE INTO `mob_db` VALUES (1611,'A_BON_GUN','Bongun','Bongun',32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,29,149,200,1720,500,420,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); REPLACE INTO `mob_db` VALUES (1612,'A_HYEGUN','Hyegun','Yao Jun',56,9981,0,0,0,3,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,49,133,180,890,1320,720,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); -# # //Einbroch REPLACE INTO `mob_db` VALUES (1613,'METALING','Metaling','Metaling',26,889,0,492,249,1,135,270,5,3,20,15,10,18,35,2,10,12,0,0,20,131,300,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,512,500,7312,5000,13103,1,0,0,4341,1); REPLACE INTO `mob_db` VALUES (1614,'MINERAL','Mineral','Mineral',56,7950,0,3563,1768,1,723,812,29,35,50,52,35,21,77,32,10,12,0,0,40,145,250,648,480,360,0,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1); @@ -701,10 +699,8 @@ REPLACE INTO `mob_db` VALUES (1622,'TEDDY_BEAR','Teddy Bear','Teddy Bear',71,810 REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',86,280733,0,31010,32011,1,2740,5620,39,41,1,51,75,25,93,84,10,12,2,0,60,1205,220,128,1104,240,15505,10000,607,5500,5104,3500,732,5500,7093,6000,999,5000,644,5000,617,1000,7327,5000,1242,50,1531,20,1230,10,0,0,4342,1); REPLACE INTO `mob_db` VALUES (1624,'G_WASTE_STOVE','Waste Stove','Old Stove',68,15895,0,0,0,1,692,1081,23,10,60,69,55,5,59,77,10,12,2,0,20,645,300,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1625,'G_PORCELLIO','Porcellio','Porcellio',28,1654,0,0,0,1,82,247,0,8,30,31,21,50,54,85,10,12,0,4,62,131,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# # // Hellion Revenant REPLACE INTO `mob_db` VALUES (1626,'G_DARK_PRIEST','Hellion Revenant','Hellion Revenant',88,286900,0,1,1,2,50,3150,25,50,1,80,50,99,130,99,10,12,1,6,69,181,150,432,384,192,0,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0); -# # //Lighthalzen REPLACE INTO `mob_db` VALUES (1627,'ANOPHELES','Anopheles','Anopheles',23,100,0,99,55,1,48,63,0,90,1,200,4,5,120,23,10,12,0,4,64,133,200,140,864,430,0,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1); REPLACE INTO `mob_db` VALUES (1628,'MOLE','Mole','Holden',36,2209,0,268,172,1,53,63,0,5,1,18,23,30,45,5,10,12,0,2,42,131,300,140,960,504,0,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,0,0,0,0,0,0,0,0,13101,1,0,0,4343,1); @@ -721,12 +717,12 @@ REPLACE INTO `mob_db` VALUES (1637,'MAGALETA','Magaleta','Margaretha Solin',90,6 REPLACE INTO `mob_db` VALUES (1638,'SHECIL','Shecil','Cecil Damon',82,58900,0,100000,118260,9,1226,1854,25,15,1,145,27,49,134,80,10,12,1,7,64,1693,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,12014,200,1705,150,1711,80,12007,200,603,50,2502,100,2331,5,0,0,4368,1); REPLACE INTO `mob_db` VALUES (1639,'KATRINN','Katrinn','Kathryne Keyron',92,47280,0,100000,116470,1,497,1697,10,74,1,56,39,180,110,39,10,12,1,7,68,1693,150,1152,384,288,0,0,0,0,0,0,0,0,7345,3000,603,40,1611,300,1620,2,2102,30,2334,30,2404,30,5085,1,0,0,4366,1); # //MVP Slaves -REPLACE INTO `mob_db` VALUES (1640,'G_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,347590,0,18000,10000,1,4238,5040,58,37,1,40,86,20,94,25,10,12,1,6,63,1693,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1641,'G_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',99,211230,0,18000,10000,1,3189,5289,27,39,1,138,31,19,90,30,10,12,1,6,85,1693,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1642,'G_HARWORD','Whitesmith Harword','Whitesmith Howard',99,310000,0,18000,10000,1,4822,5033,42,36,1,62,99,35,98,66,10,12,1,7,82,1693,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1643,'G_MAGALETA','High Priest Magaleta','High Priest Margaretha',99,182910,0,18000,10000,1,1688,2580,35,78,1,81,41,145,70,40,10,12,1,7,66,1693,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1644,'G_SHECIL','Sniper Shecil','Sniper Cecil',99,209000,0,18000,10000,9,1892,5113,22,35,1,145,27,49,134,80,10,12,1,7,64,1693,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1645,'G_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,189920,0,18000,10000,1,497,2094,10,82,1,56,39,180,110,39,10,12,1,7,68,1693,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1640,'G_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,347590,0,18000,10000,1,4238,5040,58,37,1,40,86,20,94,25,10,12,1,6,63,1725,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1641,'G_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',99,211230,0,18000,10000,1,3189,5289,27,39,1,138,31,19,90,30,10,12,1,6,85,1725,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1642,'G_HARWORD','Whitesmith Harword','Whitesmith Howard',99,310000,0,18000,10000,1,4822,5033,42,36,1,62,99,35,98,66,10,12,1,7,82,1725,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1643,'G_MAGALETA','High Priest Magaleta','High Priest Margaretha',99,182910,0,18000,10000,1,1688,2580,35,78,1,81,41,145,70,40,10,12,1,7,66,1725,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1644,'G_SHECIL','Sniper Shecil','Sniper Cecil',99,209000,0,18000,10000,9,1892,5113,22,35,1,145,27,49,134,80,10,12,1,7,64,1725,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1645,'G_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,189920,0,18000,10000,1,497,2094,10,82,1,56,39,180,110,39,10,12,1,7,68,1725,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); # //MVP Monsters REPLACE INTO `mob_db` VALUES (1646,'B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,4835600,1569970,1,7238,11040,72,37,1,81,94,110,130,52,10,12,1,6,63,1973,100,76,384,288,2417800,10000,617,5500,603,5000,732,2000,1132,3000,2342,4000,2412,9000,1470,4000,1469,4000,1166,3000,1415,3000,1169,3000,0,0,4357,1); REPLACE INTO `mob_db` VALUES (1647,'B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,4083400,1592380,1,4189,8289,37,39,1,181,62,37,122,60,10,12,1,6,85,1973,100,76,384,288,2041700,10000,617,5500,603,5000,732,2000,1234,3000,1230,3000,2319,9000,1233,4000,1232,4000,1265,4000,13002,4000,1231,3000,0,0,4359,1); @@ -748,7 +744,6 @@ REPLACE INTO `mob_db` VALUES (1660,'G_ARMAIA','Armaia','Armeyer Dinze',66,7110,0 REPLACE INTO `mob_db` VALUES (1661,'G_EREND','Erend','Errende Ebecee',59,6980,0,0,0,1,796,1059,14,30,1,31,41,93,60,30,10,12,1,7,46,1693,130,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1662,'G_KAVAC','Kavac','Kavach Icarus',60,7899,0,0,0,9,584,804,14,5,1,75,10,15,108,40,10,12,1,7,44,1693,150,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1663,'G_RAWREL','Rawrel','Laurell Weinder',61,6168,0,0,0,1,330,417,8,48,1,41,5,120,45,10,10,12,1,7,48,3229,150,1008,964,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (1664,'POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,3900,1800,7,800,900,10,30,1,40,25,20,80,80,10,12,1,0,40,157,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1665,'POTON_CANON_1','Photon Cannon','Photon Cannon',67,7500,0,4300,2000,7,700,800,15,30,1,40,30,40,86,80,10,12,1,0,40,157,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1666,'POTON_CANON_2','Photon Cannon','Photon Cannon',64,7100,0,3100,2700,7,800,900,8,30,1,40,21,29,80,91,10,12,1,0,40,157,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -761,10 +756,10 @@ REPLACE INTO `mob_db` VALUES (1672,'DIMIK_3','Dimik','Dimik',80,19000,0,5900,280 REPLACE INTO `mob_db` VALUES (1673,'DIMIK_4','Dimik','Dimik',82,13900,0,5800,4500,7,1840,2840,45,28,1,20,20,10,120,30,10,12,1,0,43,157,175,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7355,50,999,500,7094,500,999,500,984,10,2656,1,13157,1,12128,20,4370,1); REPLACE INTO `mob_db` VALUES (1674,'MONEMUS','Monemus','Monemus',88,80000,0,0,0,5,2000,3000,26,52,1,1,90,124,74,45,10,12,2,0,63,164,400,1368,1344,432,0,0,0,0,0,0,0,0,7049,2000,953,1000,7049,0,7049,0,7049,0,7049,0,7049,0,7049,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1675,'VENATU','Venatu','Venatu',77,8000,0,0,0,3,1200,1800,35,20,1,26,24,5,75,40,10,12,1,0,43,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7356,350,999,500,7094,500,999,500,985,10,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1676,'VENATU_1','Venatu','Venatu',72,8900,0,4000,2000,3,800,1400,30,20,1,26,24,5,82,30,10,12,1,0,40,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7356,350,999,500,7094,500,999,500,985,10,0,0,13157,1,12127,20,4369,1); -REPLACE INTO `mob_db` VALUES (1677,'VENATU_2','Venatu','Venatu',80,9000,0,4000,2000,3,900,1500,30,20,1,82,32,5,105,30,10,12,1,0,44,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7357,500,999,500,7094,500,999,500,985,10,0,0,13157,1,12127,20,4369,1); -REPLACE INTO `mob_db` VALUES (1678,'VENATU_3','Venatu','Venatu',78,9500,0,4500,2000,3,800,1400,30,20,1,26,68,5,95,30,10,12,1,0,42,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7358,400,999,500,7094,500,999,500,985,10,0,0,13157,1,12127,20,4369,1); -REPLACE INTO `mob_db` VALUES (1679,'VENATU_4','Venatu','Venatu',75,12300,0,4000,2000,3,800,1400,30,20,1,26,24,5,100,30,10,12,1,0,41,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7359,300,999,500,7094,500,999,500,985,10,0,0,13157,1,12127,20,4369,1); +REPLACE INTO `mob_db` VALUES (1676,'VENATU_1','Venatu','Venatu',72,8900,0,4000,2000,3,800,1400,30,20,1,26,24,5,82,30,10,12,1,0,40,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7356,350,999,500,7094,500,999,500,985,10,0,0,13157,1,12127,30,4369,1); +REPLACE INTO `mob_db` VALUES (1677,'VENATU_2','Venatu','Venatu',80,9000,0,4000,2000,3,900,1500,30,20,1,82,32,5,105,30,10,12,1,0,44,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7357,500,999,500,7094,500,999,500,985,10,0,0,13157,1,12127,30,4369,1); +REPLACE INTO `mob_db` VALUES (1678,'VENATU_3','Venatu','Venatu',78,9500,0,4500,2000,3,800,1400,30,20,1,26,68,5,95,30,10,12,1,0,42,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7358,400,999,500,7094,500,999,500,985,10,0,0,13157,1,12127,30,4369,1); +REPLACE INTO `mob_db` VALUES (1679,'VENATU_4','Venatu','Venatu',75,12300,0,4000,2000,3,800,1400,30,20,1,26,24,5,100,30,10,12,1,0,41,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7359,300,999,500,7094,500,999,500,985,10,0,0,13157,1,12127,30,4369,1); REPLACE INTO `mob_db` VALUES (1680,'HILL_WIND_1','Hill Wind','Hill Wind',45,4233,0,2132,1722,1,320,510,10,15,1,42,31,50,67,23,10,12,1,2,64,157,170,504,480,360,0,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1); REPLACE INTO `mob_db` VALUES (1681,'GEMINI','Gemini-S58','Gemini-S58',72,57870,0,22024,9442,1,2150,3030,60,45,1,75,70,77,105,55,10,12,1,0,61,189,200,1872,360,864,0,0,0,0,0,0,0,0,7005,3000,603,1000,7005,3000,546,500,547,400,971,100,972,100,12040,2,7479,2,4354,1); REPLACE INTO `mob_db` VALUES (1682,'REMOVAL','Removal','Remover',55,10289,0,3831,1278,1,558,797,5,20,1,20,56,35,57,20,10,12,1,1,49,157,250,1536,1056,1152,0,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,10,0,0,0,0,4353,1); @@ -776,8 +771,7 @@ REPLACE INTO `mob_db` VALUES (1687,'GREEN_IGUANA','Green Iguana','Green Iguana', REPLACE INTO `mob_db` VALUES (1688,'LADY_TANEE','Lady Tanee','Lady Tany',89,493000,0,64995,42222,9,450,2170,20,44,1,125,48,78,210,38,10,12,0,3,62,676,75,1564,864,576,32497,10000,617,750,753,2500,732,3000,513,7000,634,3000,12129,1500,607,2800,985,2500,5116,350,1716,250,0,0,0,0,4376,1); REPLACE INTO `mob_db` VALUES (1689,'G_BACSOJIN','Bacsojin','White Lady',72,56380,0,0,0,1,560,1446,10,51,1,85,78,85,150,60,10,12,2,7,44,1973,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1690,'G_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',58,9045,0,0,0,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,131,160,1120,552,511,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1691,'G_KRABEN','Kraben','Kraben',50,5880,0,0,0,1,125,765,1,66,1,40,40,40,40,30,10,12,1,0,48,645,100,1152,1536,576,0,0,0,0,0,0,0,0,703,75,521,1500,519,5000,912,5000,5062,1000,2102,15,603,5,0,0,0,0,4295,1); -# +REPLACE INTO `mob_db` VALUES (1691,'G_KRABEN','Kraben','Kraben',50,5880,0,206,1322,1,125,765,5,42,1,125,1,66,75,50,10,12,1,0,48,141,100,1152,1536,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # // Thanatos Tower & Abyss REPLACE INTO `mob_db` VALUES (1692,'BREEZE','Breeze','Breeze',56,5099,0,2390,1340,1,294,715,7,32,1,92,6,38,91,45,10,12,1,0,64,133,150,396,384,240,0,0,0,0,0,0,0,0,2270,30,2269,2,945,7000,511,2500,706,8,996,50,604,110,0,0,0,0,4390,1); REPLACE INTO `mob_db` VALUES (1693,'PLASMA_Y','Plasma','Plasma',56,8400,0,2200,2100,3,400,900,0,40,1,30,10,83,105,45,10,12,0,0,88,133,100,1458,1440,480,0,0,0,0,0,0,0,0,911,6000,644,10,732,12,715,250,969,1,0,0,0,0,0,0,0,0,4389,1); @@ -801,10 +795,10 @@ REPLACE INTO `mob_db` VALUES (1710,'G_THANA_DESPERO','Thanatos Despero','Thanato REPLACE INTO `mob_db` VALUES (1711,'G_THANA_MAERO','Thanatos Maero','Thanatos Maero',83,62000,0,0,0,1,2022,2288,29,72,1,176,30,200,122,29,10,12,1,1,88,165,150,584,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1712,'G_THANA_DOLOR','Thanatos Dolor','Thanatos Dolor',83,59922,0,0,0,1,1392,2092,21,80,1,76,29,206,139,44,10,12,0,1,88,165,150,584,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1713,'ACIDUS','Acidus','Acidus',80,51112,0,28043,8023,1,1289,2109,39,69,1,71,55,135,103,69,10,12,2,9,66,133,155,800,672,480,0,0,0,0,0,0,0,0,582,1200,1036,5500,1035,3000,7444,2,715,800,714,25,7448,1,5122,1,0,0,4378,1); -REPLACE INTO `mob_db` VALUES (1714,'FERUS','Ferus','Ferus',70,29218,0,8093,3952,1,1056,1496,34,45,1,80,100,110,70,70,10,12,2,9,63,133,120,480,472,480,0,0,0,0,0,0,0,0,7123,2100,1035,2750,994,10,578,100,0,0,0,0,7447,1,0,0,0,0,4380,1); +REPLACE INTO `mob_db` VALUES (1714,'FERUS','Ferus','Ferus',70,29218,0,8093,3952,1,1056,1496,34,45,1,80,100,110,70,70,10,12,2,9,63,133,120,480,472,480,0,0,0,0,0,0,0,0,7123,2100,1035,2750,994,10,578,200,0,0,0,0,7447,1,0,0,0,0,4380,1); REPLACE INTO `mob_db` VALUES (1715,'NOVUS','Novus','Novus',42,5430,0,1320,1002,1,284,384,20,28,1,56,43,45,124,43,10,12,0,9,20,133,120,396,384,480,0,0,0,0,0,0,0,0,1036,5500,511,2000,7053,2500,512,800,0,0,0,0,0,0,0,0,0,0,4383,1); REPLACE INTO `mob_db` VALUES (1716,'ACIDUS_','Acidus','Acidus',76,39111,0,14392,4203,1,1180,2000,31,47,1,78,31,93,88,52,10,12,2,9,61,133,155,800,672,480,0,0,0,0,0,0,0,0,505,400,1036,6000,1035,3200,510,750,717,800,996,120,7446,1,2114,1,0,0,4379,1); -REPLACE INTO `mob_db` VALUES (1717,'FERUS_','Ferus','Ferus',69,21182,0,6750,2230,1,930,1170,24,38,1,90,100,100,80,70,10,12,2,9,62,133,120,480,472,480,0,0,0,0,0,0,0,0,7123,2100,1035,2750,997,10,579,100,0,0,0,0,7445,1,0,0,0,0,4381,1); +REPLACE INTO `mob_db` VALUES (1717,'FERUS_','Ferus','Ferus',69,21182,0,6750,2230,1,930,1170,24,38,1,90,100,100,80,70,10,12,2,9,62,133,120,480,472,480,0,0,0,0,0,0,0,0,7123,2100,1035,2750,997,10,579,200,0,0,0,0,7445,1,0,0,0,0,4381,1); REPLACE INTO `mob_db` VALUES (1718,'NOVUS_','Novus','Novus',43,5830,0,1411,1100,1,314,414,24,28,1,60,43,39,119,43,10,12,0,9,20,133,120,584,576,480,0,0,0,0,0,0,0,0,1036,6000,508,1200,7053,2200,512,600,0,0,0,0,0,0,0,0,0,0,4382,1); REPLACE INTO `mob_db` VALUES (1719,'DETALE','Detale','Detale',90,480000,0,291850,123304,1,4560,5548,66,59,1,90,112,136,140,56,10,12,2,9,67,1461,400,750,672,480,145925,10000,617,3000,969,2500,732,5000,7444,1500,7451,4500,12080,2000,1417,3,2231,300,617,800,0,0,2649,1,0,0,4386,1); REPLACE INTO `mob_db` VALUES (1720,'HYDRO','Hydro','Hydro',89,308230,0,83450,2480,1,2554,3910,52,62,1,96,110,86,94,32,10,12,2,9,47,165,150,800,672,480,41725,10000,603,5000,617,1500,607,2000,7443,4500,7123,3000,12040,80,7444,60,12085,300,1166,4,5124,1,5127,1,5128,1,4384,1); @@ -820,10 +814,9 @@ REPLACE INTO `mob_db` VALUES (1729,'G_BAPHOMET__','Baphomet Jr.','Baphomet Jr.', REPLACE INTO `mob_db` VALUES (1730,'G_DEVIRUCHI_','Deviruchi','Deviruchi',46,7360,0,0,0,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,2181,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1731,'G_DOPPELGANGER','Doppelganger','Doppelganger',72,249000,0,0,0,1,1340,1590,60,35,1,90,90,35,125,65,10,10,1,6,67,1205,100,480,480,288,0,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1732,'G_TREASURE_BOX','Treasure Chest','Treasure Chest',1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,1,1,1,1,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# -# // Kiel Dungeon monsters (done,' but drop rates guessed)','','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,); +# // Kiel Dungeon monsters (done, but drop rates guessed) REPLACE INTO `mob_db` VALUES (1733,'KIEL','Kiel','Kiel',90,523000,0,36500,23405,1,1682,3311,28,32,1,112,76,89,156,102,10,12,1,0,47,165,150,584,576,480,0,0,0,0,0,0,0,0,7513,100,512,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',90,1523000,0,2356200,512602,1,3280,6560,28,32,1,130,140,160,199,180,10,12,1,0,47,1461,150,584,576,480,1178100,10000,617,1000,7513,100,0,0,7513,500,2319,15,1618,15,1242,15,2621,15,0,0,0,0,0,0,0,0,4403,1); +REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',90,1523000,0,2356200,512602,1,3280,6560,28,32,1,130,140,160,199,180,10,12,1,0,47,1461,150,584,576,480,1178100,10000,617,1000,7513,500,0,0,7513,500,2319,15,1618,15,1242,15,2621,15,0,0,0,0,0,0,0,0,4403,1); REPLACE INTO `mob_db` VALUES (1735,'ALICEL','Alicel','Alicel',75,37520,0,8890,5420,1,1800,2770,30,30,1,58,50,51,92,40,10,12,1,0,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7512,100,7507,100,999,30,7317,500,1812,1,985,10,2504,2,2517,1,0,0,4401,1); REPLACE INTO `mob_db` VALUES (1736,'ALIOT','Aliot','Aliot',75,48290,0,13020,4006,1,950,2470,35,15,1,32,87,12,68,19,10,12,1,0,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7512,100,7507,100,999,30,7317,500,1408,5,985,10,512,5,0,0,0,0,4402,1); REPLACE INTO `mob_db` VALUES (1737,'ALIZA','Aliza','Aliza',69,19000,0,6583,3400,1,750,1100,8,5,1,72,52,35,110,140,10,12,1,7,60,145,150,584,576,480,0,0,0,0,0,0,0,0,637,10,2407,1,2626,1,7047,500,12128,20,661,5,2233,2,2518,1,0,0,4400,1); @@ -840,8 +833,7 @@ REPLACE INTO `mob_db` VALUES (1747,'G_SNAKE','Snake','Boa',15,471,0,0,0,1,46,55, REPLACE INTO `mob_db` VALUES (1748,'G_ANACONDAQ','Anacondaq','Anacondaq',23,1109,0,0,0,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,145,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1749,'G_MEDUSA','Medusa','Medusa',79,22408,0,0,0,1,827,1100,48,38,1,74,50,57,77,69,10,12,1,6,40,1173,180,2000,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1750,'G_RED_PLANT','Red Plant','Red Plant',1,10,0,0,0,1,1,2,100,99,1,1,1,1,1,1,7,12,0,3,22,64,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# -# // Odin monsters (done,' but drop rates guessed)','','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,); +# // Odin monsters (done, but drop rates guessed) REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',99,3567200,0,2854900,3114520,1,5560,8980,25,42,1,120,80,120,220,210,10,12,2,8,86,165,150,584,576,480,1427450,10000,603,1000,617,500,617,250,7510,500,2357,60,2524,60,2421,60,2229,60,7024,60,2353,60,0,0,0,0,4407,1); REPLACE INTO `mob_db` VALUES (1752,'SKOGUL','Skogul','Skogul',70,87544,0,27620,10,1,1110,1930,20,15,1,69,70,50,112,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7511,50,7054,500,716,50,739,1,2609,5,757,20,0,0,0,0,0,0,4404,1); REPLACE INTO `mob_db` VALUES (1753,'FRUS','Frus','Frus',69,83422,0,20620,10,1,1110,1780,20,15,1,69,60,50,123,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7511,50,7054,500,716,50,2622,1,2308,5,757,20,0,0,0,0,0,0,4405,1); @@ -859,8 +851,7 @@ REPLACE INTO `mob_db` VALUES (1764,'G_SKEGGIOLD_','Skeggiold','Skeggiold',83,315 REPLACE INTO `mob_db` VALUES (1765,'G_RANDGRIS','Valkyrie','Valkyrie',99,1567200,0,10000,10000,1,5560,8980,25,42,1,120,80,120,220,210,10,12,2,8,86,165,150,584,576,480,0,0,0,0,0,0,0,0,7510,100,617,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1766,'EM_ANGELING','Angeling','Angeling',20,55000,0,163,144,1,120,195,0,70,1,50,20,75,68,200,10,10,1,8,86,1205,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1767,'EM_DEVILING','Deviling','Deviling',31,64500,0,211,412,1,135,270,5,70,1,50,20,75,77,200,10,12,1,6,87,1205,200,1072,1056,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# -# // Rachel/Ice Dungeon with Poring Stat - Chung E = Temp sprites +# // Rachel / Ice Dungeon monsters (Poring Stats) REPLACE INTO `mob_db` VALUES (1768,'GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1769,'AGAV','Agav','Agav',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1770,'ECHIO','Echio','Echio',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -890,7 +881,6 @@ REPLACE INTO `mob_db` VALUES (1793,'G_MEGALITH','Megalith','Megalith',45,5300,0, REPLACE INTO `mob_db` VALUES (1794,'G_ROWEEN','Roween','Roween',31,3009,0,0,0,1,300,400,25,21,1,40,50,42,70,31,10,12,1,2,24,133,200,872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1795,'G_BLOODY_KNIGHT_','Bloody Knight','Bloody Knight',82,57870,0,0,0,3,2150,3030,60,50,1,75,70,77,125,55,10,12,2,0,87,1173,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1796,'G_AUNOE','Aunoe','Aunoe',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (6001,'LIF','Lif','Lif',50,8010,708,465,94,1,170,325,48,21,1,94,48,129,99,90,10,12,1,0,60,145,300,1608,816,396,0,0,0,0,0,0,0,0,999,150,953,5500,912,220,757,61,1003,120,715,200,998,350,0,0,0,0,4072,5); REPLACE INTO `mob_db` VALUES (6002,'AMISTR','Amistr','Amistr',50,12022,255,465,94,1,208,416,83,12,1,89,84,25,76,75,10,12,1,0,60,145,300,1608,816,396,0,0,0,0,0,0,0,0,999,150,953,5500,912,220,757,61,1003,120,715,200,998,350,0,0,0,0,4072,5); REPLACE INTO `mob_db` VALUES (6003,'FILIR','Filir','Filir',50,5820,515,3872,2695,1,200,401,18,23,1,129,19,95,111,69,10,12,1,0,80,145,250,1608,864,288,0,0,0,0,0,0,0,0,999,150,953,5500,912,220,757,61,1003,120,715,200,998,350,0,0,0,0,4072,5); diff --git a/tools/item_db.pl b/tools/item_db.pl new file mode 100755 index 000000000..f176a949f --- /dev/null +++ b/tools/item_db.pl @@ -0,0 +1,108 @@ +#!/usr/bin/perl +$db = "item_db"; +$nb_columns = 22; +@str_col = (1,2,19,20,21); +$create_table = "# +# Table structure for table `item_db` +# + +DROP TABLE IF EXISTS `item_db`; +CREATE TABLE `item_db` ( + `id` smallint(5) unsigned NOT NULL default '0', + `name_english` varchar(50) NOT NULL default '', + `name_japanese` varchar(50) NOT NULL default '', + `type` tinyint(2) unsigned NOT NULL default '0', + `price_buy` mediumint(10) unsigned default NULL, + `price_sell` mediumint(10) unsigned default NULL, + `weight` smallint(5) unsigned NOT NULL default '0', + `attack` smallint(3) unsigned default NULL, + `defence` tinyint(3) unsigned default NULL, + `range` tinyint(2) unsigned default NULL, + `slots` tinyint(2) unsigned default NULL, + `equip_jobs` int(12) unsigned default NULL, + `equip_upper` tinyint(8) unsigned default NULL, + `equip_genders` tinyint(2) unsigned default NULL, + `equip_locations` smallint(4) unsigned default NULL, + `weapon_level` tinyint(2) unsigned default NULL, + `equip_level` tinyint(3) unsigned default NULL, + `refineable` tinyint(1) unsigned default NULL, + `view` tinyint(3) unsigned default NULL, + `script` text, + `equip_script` text, + `unequip_script` text, + PRIMARY KEY (`id`) +) TYPE=MyISAM; +"; +printf("%s\n",$create_table); +while ($ligne=) +{ + if ($ligne =~ /[^\r\n]+/) + { + $ligne = $&; + if ($ligne =~ /^\/\//) + { + printf("# %s\n", $ligne); + } else { + @champ = split (",(?![^{]*[})])",$ligne); + if ($#champ != $nb_columns - 1) + { + printf ("# WARNING BAD LINE : %d (%s)\n", $#champ, $ligne); + printf STDERR ("Warning : can't parse %s\n", $ligne); + } else { + printf("REPLACE INTO `%s` VALUES (", $db); + for ($i=0; $i<$#champ; $i++) + { + printField($champ[$i],",",$i); + } + printField($champ[$#champ],");\n",$#champ); + } + } + } +} + +sub printField { + my ($str, $suffix, $idCol) = @_; + # Remove first { and last } + if ($str =~ /{.*}/) + { + $str = substr($&,1,-1); + } + # If nothing, put NULL + if ($str eq "") { + printf("NULL%s", $suffix); + } else { + my $flag = 0; + # Search if it's a string column ? + foreach $col (@str_col) + { + if ($col == $idCol) + { + $flag = 1; + break; + } + } + if ($flag == 1) + { + # String column, so escape and add '' + printf("'%s'%s", escape($str), $suffix); + } else { + # Not a string column + printf("%s%s", $str,$suffix); + } + } +} + +sub escape { + my ($str) = @_; + my @str_splitted = split("'", $str); + my $result = ""; + for (my $i=0; $i<=$#str_splitted; $i++) + { + if ($i == 0) { + $result = @str_splitted[0]; + } else { + $result = $result."\\'".@str_splitted[$i]; + } + } + return $result +} diff --git a/tools/mob_db.pl b/tools/mob_db.pl new file mode 100755 index 000000000..2ddd5c584 --- /dev/null +++ b/tools/mob_db.pl @@ -0,0 +1,149 @@ +#!/usr/bin/perl +$db = "mob_db"; +$nb_columns = 58; +@str_col = (1,2,3); +$create_table = "# +# Table structure for table `mob_db` +# + +DROP TABLE IF EXISTS `mob_db`; +CREATE TABLE `mob_db` ( + `ID` mediumint(9) unsigned NOT NULL default '0', + `Sprite` text NOT NULL, + `kName` text NOT NULL, + `iName` text NOT NULL, + `LV` tinyint(6) unsigned NOT NULL default '0', + `HP` int(9) unsigned NOT NULL default '0', + `SP` mediumint(9) unsigned NOT NULL default '0', + `EXP` mediumint(9) unsigned NOT NULL default '0', + `JEXP` mediumint(9) unsigned NOT NULL default '0', + `Range1` tinyint(4) unsigned NOT NULL default '0', + `ATK1` smallint(6) unsigned NOT NULL default '0', + `ATK2` smallint(6) unsigned NOT NULL default '0', + `DEF` smallint(6) unsigned NOT NULL default '0', + `MDEF` smallint(6) unsigned NOT NULL default '0', + `STR` tinyint(4) unsigned NOT NULL default '0', + `AGI` tinyint(4) unsigned NOT NULL default '0', + `VIT` tinyint(4) unsigned NOT NULL default '0', + `INT` tinyint(4) unsigned NOT NULL default '0', + `DEX` tinyint(4) unsigned NOT NULL default '0', + `LUK` tinyint(4) unsigned NOT NULL default '0', + `Range2` tinyint(4) unsigned NOT NULL default '0', + `Range3` tinyint(4) unsigned NOT NULL default '0', + `Scale` tinyint(4) unsigned NOT NULL default '0', + `Race` tinyint(4) unsigned NOT NULL default '0', + `Element` tinyint(4) unsigned NOT NULL default '0', + `Mode` smallint(6) unsigned NOT NULL default '0', + `Speed` smallint(6) unsigned NOT NULL default '0', + `ADelay` smallint(6) unsigned NOT NULL default '0', + `aMotion` smallint(6) unsigned NOT NULL default '0', + `dMotion` smallint(6) unsigned NOT NULL default '0', + `MEXP` mediumint(9) unsigned NOT NULL default '0', + `ExpPer` smallint(9) unsigned NOT NULL default '0', + `MVP1id` smallint(9) unsigned NOT NULL default '0', + `MVP1per` smallint(9) unsigned NOT NULL default '0', + `MVP2id` smallint(9) unsigned NOT NULL default '0', + `MVP2per` smallint(9) unsigned NOT NULL default '0', + `MVP3id` smallint(9) unsigned NOT NULL default '0', + `MVP3per` smallint(9) unsigned NOT NULL default '0', + `Drop1id` smallint(9) unsigned NOT NULL default '0', + `Drop1per` smallint(9) unsigned NOT NULL default '0', + `Drop2id` smallint(9) unsigned NOT NULL default '0', + `Drop2per` smallint(9) unsigned NOT NULL default '0', + `Drop3id` smallint(9) unsigned NOT NULL default '0', + `Drop3per` smallint(9) unsigned NOT NULL default '0', + `Drop4id` smallint(9) unsigned NOT NULL default '0', + `Drop4per` smallint(9) unsigned NOT NULL default '0', + `Drop5id` smallint(9) unsigned NOT NULL default '0', + `Drop5per` smallint(9) unsigned NOT NULL default '0', + `Drop6id` smallint(9) unsigned NOT NULL default '0', + `Drop6per` smallint(9) unsigned NOT NULL default '0', + `Drop7id` smallint(9) unsigned NOT NULL default '0', + `Drop7per` smallint(9) unsigned NOT NULL default '0', + `Drop8id` smallint(9) unsigned NOT NULL default '0', + `Drop8per` smallint(9) unsigned NOT NULL default '0', + `Drop9id` smallint(9) unsigned NOT NULL default '0', + `Drop9per` smallint(9) unsigned NOT NULL default '0', + `DropCardid` smallint(9) unsigned NOT NULL default '0', + `DropCardper` smallint(9) unsigned NOT NULL default '0', + PRIMARY KEY (`ID`) +) TYPE=MyISAM; +"; +printf("%s\n",$create_table); +while ($ligne=) +{ + if ($ligne =~ /[^\r\n]+/) + { + $ligne = $&; + if ($ligne =~ /^\/\//) + { + printf("# %s\n", $ligne); + } else { + @champ = split (",(?![^{]*[})])",$ligne); + if ($#champ != $nb_columns - 1) + { + printf ("# WARNING BAD LINE : %d (%s)\n", $#champ, $ligne); + printf STDERR ("Warning : can't parse %s\n", $ligne); + } else { + printf("REPLACE INTO `%s` VALUES (", $db); + for ($i=0; $i<$#champ; $i++) + { + printField($champ[$i],",",$i); + } + printField($champ[$#champ],");\n",$#champ); + } + } + } +} + +sub printField { + my ($str, $suffix, $idCol) = @_; + # Remove first { and last } + if ($str =~ /{.*}/) + { + $str = substr($&,1,-1); + } + # Remove comment at end of line + if ($str =~ /[^\/]*\/\//) + { + $str = substr($&,0,-2); + } + # If nothing, put NULL + if ($str eq "") { + printf("NULL%s", $suffix); + } else { + my $flag = 0; + # Search if it's a string column ? + foreach $col (@str_col) + { + if ($col == $idCol) + { + $flag = 1; + break; + } + } + if ($flag == 1) + { + # String column, so escape and add '' + printf("'%s'%s", escape($str), $suffix); + } else { + # Not a string column + printf("%s%s", $str,$suffix); + } + } +} + +sub escape { + my ($str) = @_; + my @str_splitted = split("'", $str); + my $result = ""; + for (my $i=0; $i<=$#str_splitted; $i++) + { + if ($i == 0) { + $result = @str_splitted[0]; + } else { + $result = $result."\\'".@str_splitted[$i]; + } + } + return $result +} -- cgit v1.2.3-70-g09d2 From f44dfdcc144a03acfab0261783cd21d8da1027a5 Mon Sep 17 00:00:00 2001 From: Playtester Date: Mon, 11 Sep 2006 10:31:49 +0000 Subject: Added D-Kalck's fix of the TXT -> SQL converter git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8702 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 2 ++ sql-files/item_db.sql | 4 ++-- tools/item_db.pl | 8 +++++++- 3 files changed, 11 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 0b259838a..0a6732ea3 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,8 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2006/09/11 + * Added D-Kalck's fix of the TXT -> SQL converter [Playtester] 2006/09/10 * Thanks to KarLaeda, added missing function in @showmobs [Lupus] - Script function 'query_sql': In the TXT version it doesn't fill the array diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index 3d1cf925e..f783be245 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -2219,8 +2219,8 @@ REPLACE INTO `item_db` VALUES (7413,'Moon_Cake8','Yuebing',3,NULL,10,10,NULL,NUL REPLACE INTO `item_db` VALUES (7414,'Moon_Cake9','Yuebing',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7415,'Stone_Of_Summons','Summoning Stone',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7416,'Letter_Of_Recommendation','Letter of Recommentation',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7417,'Mission_ScrollA','Written Request 01',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7418,'Mission_ScrollB','Written Request 02',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7417,'Mission_ScrollA','Written Request (A)',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7418,'Mission_ScrollB','Written Request (B)',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7419,'Embryo_Create_Book','Embryo Creation Guide',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7420,'Skull_','Skull',3,NULL,0,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7421,'Red_Key','Red Key',3,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/tools/item_db.pl b/tools/item_db.pl index f176a949f..7edf3f0a0 100755 --- a/tools/item_db.pl +++ b/tools/item_db.pl @@ -2,6 +2,8 @@ $db = "item_db"; $nb_columns = 22; @str_col = (1,2,19,20,21); +$line_format = "([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),(\{.*\}),(\{.*\}),(\{.*\})"; +#$line_format = ; $create_table = "# # Table structure for table `item_db` # @@ -43,7 +45,11 @@ while ($ligne=) { printf("# %s\n", $ligne); } else { - @champ = split (",(?![^{]*[})])",$ligne); + if ($ligne =~ $line_format) { + @champ = ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22); + } else { + @champ = (); + } if ($#champ != $nb_columns - 1) { printf ("# WARNING BAD LINE : %d (%s)\n", $#champ, $ligne); -- cgit v1.2.3-70-g09d2 From 857a19ea960a90aac9d0c154c1154a3a8b2a15b1 Mon Sep 17 00:00:00 2001 From: toms Date: Sun, 5 Nov 2006 09:38:59 +0000 Subject: Updated sql files Updated perl files acording to rev 9135 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9139 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 + sql-files/item_db.sql | 30 +++---- sql-files/mob_db.sql | 212 +++++++++++++++++++++++++------------------------- tools/item_db.pl | 2 +- 4 files changed, 125 insertions(+), 122 deletions(-) (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 27f114051..635246c70 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2006/11/05 + * Updated sql files [Toms] + * Updated perl files acording to rev 9135 [Toms] 2006/11/04 * Readded duel code in map_quit. Why it has been removed!? [LuzZza] * Converted itemdb tables to use smallint. Credits to ALZ. [Lance] diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index d537beade..d1b57e01c 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -1041,8 +1041,8 @@ REPLACE INTO `item_db` VALUES (2332,'Silver_Robe','Silver Robe',5,7000,NULL,700, REPLACE INTO `item_db` VALUES (2333,'Silver_Robe_','Silver Robe',5,7000,NULL,700,NULL,4,NULL,1,0x00810204,7,2,16,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2334,'Mage_Coat','Mage Coat',5,NULL,10,600,NULL,5,NULL,0,0x00810204,7,2,16,NULL,50,1,0,' bonus bMdef,5; bonus bInt,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2335,'Thief_Clothes','Thief Clothes',5,74000,NULL,100,NULL,6,NULL,0,0x02021040,7,2,16,NULL,0,1,0,' bonus bAgi,1; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2336,'Thief_Clothes_','Thief Clothes',5,74000,NULL,100,NULL,6,NULL,1,0x00021040,7,2,16,NULL,0,1,0,' bonus bAgi,1; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2337,'Ninja_Suit','Ninja Suit',5,NULL,10,1500,NULL,7,NULL,0,0x00021040,7,2,16,NULL,50,1,0,' bonus bAgi,1; bonus bMdef,3; if(isequipped(2654)) { bonus bUseSPrate,-20; bonus bMaxHP,300; } ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2336,'Thief_Clothes_','Thief Clothes',5,74000,NULL,100,NULL,6,NULL,1,0x02021040,7,2,16,NULL,0,1,0,' bonus bAgi,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2337,'Ninja_Suit','Ninja Suit',5,NULL,10,1500,NULL,7,NULL,0,0x02021040,7,2,16,NULL,50,1,0,' bonus bAgi,1; bonus bMdef,3; if(isequipped(2654)) { bonus bUseSPrate,-20; bonus bMaxHP,300; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (2338,'Wedding_Dress','Wedding Dress',5,43000,NULL,500,NULL,0,NULL,0,0xFFFFFFFE,7,0,16,NULL,0,1,0,' bonus bMdef,15; ',' setoption Option_Wedding,1; ',' setoption Option_Wedding,0; '); REPLACE INTO `item_db` VALUES (2339,'G_Strings','Pantie',5,1000,NULL,100,NULL,4,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2340,'Novice_Breast','Novice Breastplate',5,89000,NULL,500,NULL,4,NULL,1,0x00000001,7,2,16,NULL,10,1,0,NULL,NULL,NULL); @@ -1064,7 +1064,7 @@ REPLACE INTO `item_db` VALUES (2355,'Angel\'s_Protection','Angelic Protection',5 REPLACE INTO `item_db` VALUES (2356,'Holy_Cloth_of_Benefit','Blessed Holy Robe',5,NULL,10,2500,NULL,5,NULL,1,0x00008100,7,2,16,NULL,70,1,NULL,' bonus bMdef,5; bonus2 bResEff,Eff_Blind,8000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2357,'Valkyrie\'s_Armor','Valkyrie\'s Armor',5,NULL,10,2800,NULL,6,NULL,1,0xFFFFFFFE,2,2,16,NULL,0,1,0,' bonus bAllStats,1; bonus bUnbreakableArmor,0; if(BaseClass==Job_Mage||BaseClass==Job_Archer||BaseClass==Job_Acolyte) bonus2 bResEff,Eff_Silence,5000; else if(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief) bonus2 bResEff,Eff_Stun,5000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2358,'Angel\'s_Dress','Angel\'s Dress',5,NULL,10,1000,NULL,5,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,1,NULL,' bonus bLuk,4; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2359,'Ninja_Suit_','Ninja Suit',5,NULL,10,1500,NULL,7,NULL,1,0x00021040,7,2,16,NULL,50,1,0,' bonus bAgi,1; bonus bMdef,3; if(isequipped(2654)) { bonus bUseSPrate,-20; bonus bMaxHP,300; } ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2359,'Ninja_Suit_','Ninja Suit',5,NULL,10,1500,NULL,7,NULL,1,0x02021040,7,2,16,NULL,50,1,0,' bonus bAgi,1; bonus bMdef,3; if(isequipped(2654)) { bonus bUseSPrate,-20; bonus bMaxHP,300; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (2360,'Robe_of_Cast_','Robe of Cast',5,NULL,10,1100,NULL,5,NULL,1,0x00810200,7,2,16,NULL,75,1,0,' bonus bCastrate,-3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2361,'Blue_Robe','Blue Robe',5,NULL,10,500,NULL,0,NULL,0,0xFFFFFFFE,7,2,16,NULL,0,1,0,' bonus bAllStats,5; bonus bMdef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2362,'Red_Robe','Red Robe',5,NULL,10,500,NULL,0,NULL,0,0xFFFFFFFE,7,2,16,NULL,0,1,0,' bonus bAllStats,5; bonus bMdef,5; ',NULL,NULL); @@ -2671,14 +2671,14 @@ REPLACE INTO `item_db` VALUES (13003,'Coward','Cowardice Blade',4,52000,NULL,700 REPLACE INTO `item_db` VALUES (13004,'Coward_','Cowardice Blade',4,52000,NULL,700,80,NULL,1,2,0x02021040,7,2,2,3,55,1,1,' bonus bDef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13005,'Angelwing_Short_Sword','Angelic Wing Dagger',4,NULL,10,600,120,NULL,1,1,0xFFFFFFFE,7,2,2,4,50,1,1,NULL,NULL,NULL); # // Ninja Weapons -REPLACE INTO `item_db` VALUES (13006,'Gokurin','Gokurin',4,240000,NULL,600,150,NULL,1,0,0x02000000,7,2,2,3,65,1,1,' bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Curse,500; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13006,'Khukri','Gokurin',4,240000,NULL,600,150,NULL,1,0,0x02000000,7,2,2,3,65,1,1,' bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Curse,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13007,'Jitte','Jitte',4,20000,NULL,400,70,NULL,1,0,0x02000000,7,2,2,2,35,1,1,' bonus bBreakWeaponRate,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13008,'Jitte_','Jitte',4,20000,NULL,400,70,NULL,1,1,0x02000000,7,2,2,2,35,1,1,' bonus bBreakWeaponRate,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13009,'Kamaitachi','Kamaitachi',4,48000,NULL,900,125,NULL,1,0,0x02000000,7,2,2,4,70,1,1,' bonus bAtkEle,Ele_Dark; bonus bCritical,3; bonus bAspdRate,3; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13010,'Ashura','Ashura',4,32000,NULL,600,50,NULL,1,2,0x02000000,7,2,2,1,12,1,1,' bonus bMatkRate,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13011,'Ashura_','Ashura',4,32000,NULL,600,50,NULL,1,3,0x02000000,7,2,2,1,12,1,1,' bonus bMatkRate,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13010,'Asura','Ashura',4,32000,NULL,600,50,NULL,1,2,0x02000000,7,2,2,1,12,1,1,' bonus bMatkRate,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13011,'Asura_','Ashura',4,32000,NULL,600,50,NULL,1,3,0x02000000,7,2,2,1,12,1,1,' bonus bMatkRate,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13012,'Murasame','Murasame',4,48000,NULL,700,95,NULL,1,1,0x02000000,7,2,2,2,24,1,1,' bonus bAtkEle,Ele_Water; bonus2 bCriticalAddRace,RC_DemiHuman,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13013,'Murasame_','Murasame',4,48000,NULL,700,95,NULL,1,2,0x02000000,7,2,2,2,24,1,1,' bonus bAtkEle,Ele_Water; bonus2 bCriticalAddRace,RC_DemiHuman,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13013,'Muraseme_','Murasame',4,48000,NULL,700,95,NULL,1,2,0x02000000,7,2,2,2,24,1,1,' bonus bAtkEle,Ele_Water; bonus2 bCriticalAddRace,RC_DemiHuman,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13014,'Hakujin','Hakujin',4,120000,NULL,800,120,NULL,1,0,0x02000000,7,2,2,3,42,1,1,' bonus4 bAutoSpell,28,1,20,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13015,'Hakujin_','Hakujin',4,120000,NULL,800,120,NULL,1,1,0x02000000,7,2,2,3,42,1,1,' bonus4 bAutoSpell,28,1,20,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13016,'Poison_Knife__','Poison Knife',4,NULL,10,800,64,NULL,1,2,0x028F5EEE,7,2,2,3,65,1,1,' bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,3000; ',NULL,NULL); @@ -2691,12 +2691,12 @@ REPLACE INTO `item_db` VALUES (13100,'Six_Shooter','Six Shooter',4,4500,NULL,400 REPLACE INTO `item_db` VALUES (13101,'Six_Shooter_','Six Shooter',4,4500,NULL,400,30,NULL,7,2,0x01000000,7,2,34,1,10,1,17,' bonus bHit,-10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13102,'Crimson_Bolt','Crimson Bolt',4,20000,NULL,450,45,NULL,7,1,0x01000000,7,2,34,2,35,1,17,' bonus bHit,-10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13103,'Crimson_Bolt_','Crimson Bolt',4,20000,NULL,450,45,NULL,7,2,0x01000000,7,2,34,2,35,1,17,' bonus bHit,-10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13104,'Garrison','Garrison',4,48000,NULL,500,70,NULL,7,1,0x01000000,7,2,34,2,55,1,17,' bonus bHit,-10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13105,'Garrison_','Garrison',4,48000,NULL,500,70,NULL,7,2,0x01000000,7,2,34,2,55,1,17,' bonus bHit,-10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13104,'The_Garrison','Garrison',4,48000,NULL,500,70,NULL,7,1,0x01000000,7,2,34,2,55,1,17,' bonus bHit,-10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13105,'The_Garrison_','Garrison',4,48000,NULL,500,70,NULL,7,2,0x01000000,7,2,34,2,55,1,17,' bonus bHit,-10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13106,'Gold_Lux','Gold Lux',4,100000,NULL,500,20,NULL,7,0,0x01000000,7,2,34,3,12,1,17,' bonus bHit,-10; if(getskilllv(500)>0) bonus4 bAutoSpell,500,getskilllv(500),100,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13150,'Branch','Branch',4,3000,NULL,500,50,NULL,9,3,0x01000000,7,2,34,1,1,1,18,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13151,'Cyclone','Cyclone',4,17500,NULL,700,120,NULL,9,1,0x01000000,7,2,34,2,24,1,18,' bonus bHit,10; bonus bCritical,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13152,'Cyclone_','Cyclone',4,17500,NULL,700,120,NULL,9,2,0x01000000,7,2,34,2,24,1,18,' bonus bHit,10; bonus bCritical,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13151,'The_Cyclone','Cyclone',4,17500,NULL,700,120,NULL,9,1,0x01000000,7,2,34,2,24,1,18,' bonus bHit,10; bonus bCritical,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13152,'The_Cyclone_','Cyclone',4,17500,NULL,700,120,NULL,9,2,0x01000000,7,2,34,2,24,1,18,' bonus bHit,10; bonus bCritical,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13153,'Dusk','Dusk',4,23500,NULL,750,150,NULL,9,1,0x01000000,7,2,34,2,56,1,18,' bonus bHit,10; bonus bCritical,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13154,'Rolling_Stone','Rolling Stone',4,12000,NULL,900,135,NULL,9,1,0x01000000,7,2,34,1,14,1,19,' bonus bSplashRange,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13155,'Black_Rose','Black Rose',4,32000,NULL,900,180,NULL,9,1,0x01000000,7,2,34,2,35,1,19,' bonus bSplashRange,1; ',NULL,NULL); @@ -2728,8 +2728,8 @@ REPLACE INTO `item_db` VALUES (13257,'Kunai_of_Violent_Winds','Kunai of Violent REPLACE INTO `item_db` VALUES (13258,'Kunai_of_Fierce_Heat','Kunai of Fierce Heat',10,10,NULL,20,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,7,' bonus bAtkEle,Ele_Fire; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13259,'Kunai_of_Deadly_Poison','Kunai of Deadly Poison',10,10,NULL,20,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,7,' bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; ',NULL,NULL); # // Ninja Fuuma Shurikens -REPLACE INTO `item_db` VALUES (13300,'Kazema_Beneki','Fuuma Shuriken Beneki',4,90000,NULL,3000,150,NULL,1,0,0x02000000,7,2,34,4,65,1,22,' bonus bAtkEle,Ele_Wind; bonus bAgi,-1; bonus bDex,-2; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13301,'Kazema_Daisharin','Fuuma Shuriken Daisharin',4,40000,NULL,2500,50,NULL,1,3,0x02000000,7,2,34,4,42,1,22,' bonus2 bAddEff,Eff_Bleeding,100; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13302,'Kazema_Daisharin_','Fuuma Shuriken Daisharin',4,40000,NULL,2500,50,NULL,1,4,0x02000000,7,2,34,4,42,1,22,' bonus2 bAddEff,Eff_Bleeding,100; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13303,'Kazema_Rekka','Fuuma Shuriken Rekka',4,78000,NULL,1500,185,NULL,1,0,0x02000000,7,2,34,4,55,1,22,' bonus bDex,-2; bonus bAtkEle,Ele_Fire; bonus4 bAutoSpell,17,5,30,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13300,'Huuma_Bird_Wing','Fuuma Shuriken Beneki',4,90000,NULL,3000,150,NULL,1,0,0x02000000,7,2,34,4,65,1,22,' bonus bAtkEle,Ele_Wind; bonus bAgi,-1; bonus bDex,-2; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13301,'Huuma_Giant_Wheel','Fuuma Shuriken Daisharin',4,40000,NULL,2500,50,NULL,1,3,0x02000000,7,2,34,4,42,1,22,' bonus2 bAddEff,Eff_Bleeding,100; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13302,'Huuma_Giant_Wheel_','Fuuma Shuriken Daisharin',4,40000,NULL,2500,50,NULL,1,4,0x02000000,7,2,34,4,42,1,22,' bonus2 bAddEff,Eff_Bleeding,100; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13303,'Huuma_Blaze','Fuuma Shuriken Rekka',4,78000,NULL,1500,185,NULL,1,0,0x02000000,7,2,34,4,55,1,22,' bonus bDex,-2; bonus bAtkEle,Ele_Fire; bonus4 bAutoSpell,17,5,30,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13400,'Cutlus_','Cutlus',4,NULL,10,900,150,NULL,1,1,0x000654E2,7,2,2,4,40,1,2,' skill 5,5; bonus bStr,2; bonus bDef,1; ',NULL,NULL); diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index 01f43bb7e..32a4526ed 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -85,7 +85,7 @@ REPLACE INTO `mob_db` VALUES (1012,'RODA_FROG','Roda Frog','Roda Frog',5,133,0,6 REPLACE INTO `mob_db` VALUES (1013,'WOLF','Wolf','Wolf',25,919,0,329,32,1,37,46,0,0,1,12,24,15,30,20,10,12,1,2,22,137,200,1054,54,432,0,0,0,0,0,0,0,0,1011,20,920,5500,2308,10,517,650,528,1050,919,5500,578,500,0,0,0,0,4029,1); REPLACE INTO `mob_db` VALUES (1014,'SPORE','Spore','Spore',16,510,0,66,17,1,24,48,0,5,1,9,9,1,14,5,10,12,1,3,21,129,200,1872,672,288,0,0,0,0,0,0,0,0,921,5000,507,800,510,50,743,5,2220,40,7033,5,578,500,0,0,0,0,4022,1); REPLACE INTO `mob_db` VALUES (1015,'ZOMBIE','Zombie','Zombie',15,534,0,50,33,1,67,79,0,10,1,8,7,1,15,1,10,12,1,1,29,2181,400,2612,912,288,0,0,0,0,0,0,0,0,957,5500,724,5,938,1000,958,50,727,55,0,0,0,0,0,0,0,0,4038,1); -REPLACE INTO `mob_db` VALUES (1016,'ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',31,3040,0,483,283,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,133,300,2864,864,576,0,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,800,1701,150,0,0,0,0,4094,1); +REPLACE INTO `mob_db` VALUES (1016,'ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',31,3040,0,483,283,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,133,300,2864,864,576,0,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1); REPLACE INTO `mob_db` VALUES (1017,'THIEF_BUG_FEMALE','Thief Bug Female','Thief Bug Female',10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,651,200,988,288,768,0,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1); REPLACE INTO `mob_db` VALUES (1018,'CREAMY','Creamy','Creamy',16,595,0,105,70,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,129,150,1136,720,840,0,0,0,0,0,0,0,0,924,5500,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1); REPLACE INTO `mob_db` VALUES (1019,'PECOPECO','Peco Peco','Peco Peco',19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,137,200,1564,864,576,0,0,0,0,0,0,0,0,925,5500,2402,20,508,50,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1); @@ -105,12 +105,12 @@ REPLACE INTO `mob_db` VALUES (1032,'VERIT','Verit','Verit',38,5272,0,835,517,1,3 REPLACE INTO `mob_db` VALUES (1033,'ELDER_WILOW','Elder Willow','Elder Willow',20,693,0,163,101,1,58,70,10,30,1,20,25,35,38,30,10,12,1,3,43,149,200,1452,672,432,0,0,0,0,0,0,0,0,990,50,907,5500,1019,350,757,37,2329,30,690,100,604,100,0,0,0,0,4052,1); REPLACE INTO `mob_db` VALUES (1034,'THARA_FROG','Thara Frog','Thara Frog',22,2152,0,219,138,1,105,127,0,10,1,22,22,5,34,10,10,12,1,5,41,129,200,2016,816,288,0,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1); REPLACE INTO `mob_db` VALUES (1035,'HUNTER_FLY','Hunter Fly','Hunter Fly',42,5242,0,1517,952,1,246,333,25,15,1,105,32,15,72,30,10,12,0,4,44,2181,150,676,576,480,0,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1); -REPLACE INTO `mob_db` VALUES (1036,'GHOUL','Ghoul','Ghoul',40,5418,0,1088,541,1,420,500,5,20,1,20,29,1,33,20,10,12,1,1,49,2181,250,2456,912,504,0,0,0,0,0,0,0,0,958,5335,756,110,509,670,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1); +REPLACE INTO `mob_db` VALUES (1036,'GHOUL','Ghoul','Ghoul',40,5418,0,1088,541,1,420,500,5,20,1,20,29,1,33,20,10,12,1,1,49,2181,250,2456,912,504,0,0,0,0,0,0,0,0,958,5335,756,110,509,670,511,800,2609,60,934,150,0,0,0,0,0,0,4110,1); REPLACE INTO `mob_db` VALUES (1037,'SIDE_WINDER','Side Winder','Side Winder',43,4929,0,1996,993,1,240,320,5,10,1,43,40,15,115,20,10,12,1,2,25,149,200,1576,576,576,0,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1); REPLACE INTO `mob_db` VALUES (1038,'OSIRIS','Osiris','Osiris',78,415400,0,71500,28600,1,780,2880,10,25,1,75,62,37,86,40,10,10,1,1,89,1205,100,1072,672,384,35750,10000,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,984,3783,0,0,0,0,4144,1); REPLACE INTO `mob_db` VALUES (1039,'BAPHOMET','Baphomet','Baphomet',81,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1205,100,768,768,576,53625,10000,607,2000,750,500,923,5000,1466,200,2256,200,2607,800,714,500,617,3000,985,5432,984,4171,0,0,0,0,4147,1); REPLACE INTO `mob_db` VALUES (1040,'GOLEM','Golem','Golem',25,3900,0,465,94,1,175,187,40,0,1,15,25,0,15,0,10,12,2,0,60,145,300,1608,816,396,0,0,0,0,0,0,0,0,999,150,953,5500,912,220,757,61,1003,120,715,200,998,350,0,0,0,0,4072,1); -REPLACE INTO `mob_db` VALUES (1041,'MUMMY','Mummy','Mummy',37,5176,0,800,314,1,305,360,0,10,1,19,32,0,63,20,10,12,1,1,49,2181,300,1772,72,384,0,0,0,0,0,0,0,0,930,5335,756,100,934,550,2604,1,2611,10,525,250,508,450,0,0,0,0,4106,1); +REPLACE INTO `mob_db` VALUES (1041,'MUMMY','Mummy','Mummy',37,5176,0,800,314,1,305,360,0,10,1,19,32,0,63,20,10,12,1,1,49,2181,300,1772,72,384,0,0,0,0,0,0,0,0,930,5335,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1); REPLACE INTO `mob_db` VALUES (1042,'STEEL_CHONCHON','Steel Chonchon','Steel Chonchon',17,530,0,109,71,1,54,65,15,0,1,43,17,5,33,10,10,12,0,4,24,139,150,1076,576,480,0,0,0,0,0,0,0,0,992,70,999,30,910,2400,935,3500,943,30,998,200,1002,300,0,0,0,0,4042,1); REPLACE INTO `mob_db` VALUES (1043,'SEAHORES','Seahorse','Seahorse',18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1044,'OBEAUNE','Obeaune','Obeaune',31,3952,0,644,407,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,149,200,1872,672,288,0,0,0,0,0,0,0,0,995,13,950,5500,5014,1,2326,10,720,10,951,500,748,25,0,0,0,0,4093,1); @@ -160,23 +160,23 @@ REPLACE INTO `mob_db` VALUES (1087,'ORK_HERO','Orc Hero','Orc Hero',77,295700,0, REPLACE INTO `mob_db` VALUES (1088,'VOCAL','Vocal','Vocal',18,3016,0,110,88,1,71,82,10,30,1,28,26,30,53,40,10,10,1,4,22,1205,200,1080,648,480,0,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,912,5335,645,700,1917,10,2420,50,0,0,4211,1); REPLACE INTO `mob_db` VALUES (1089,'TOAD','Toad','Toad',10,5065,0,100,50,1,26,32,0,0,1,5,10,10,10,25,10,10,1,5,21,1205,200,1236,336,432,0,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,746,1500,970,100,971,100,0,0,5125,50,0,0,4306,1); REPLACE INTO `mob_db` VALUES (1090,'MASTERING','Mastering','Mastering',2,2415,0,30,10,1,18,24,0,10,1,2,2,0,17,60,10,10,1,3,21,1205,300,1072,672,480,0,0,0,0,0,0,0,0,2257,200,619,50,722,1000,512,18,512,8000,512,8000,531,4000,2116,50,0,0,4197,1); -REPLACE INTO `mob_db` VALUES (1091,'DRAGON_FLY','Dragon Fly','Dragon Fly',8,2400,0,88,44,1,22,27,40,0,1,20,8,15,17,5,10,10,0,4,24,1205,100,1076,576,480,0,0,0,0,0,0,0,0,2245,200,501,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1); +REPLACE INTO `mob_db` VALUES (1091,'DRAGON_FLY','Dragon Fly','Dragon Fly',8,2400,0,88,44,1,22,27,40,0,1,20,8,15,17,5,10,10,0,4,24,1205,100,1076,576,480,0,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1); REPLACE INTO `mob_db` VALUES (1092,'VAGABOND_WOLF','Vagabond Wolf','Vagabond Wolf',24,12240,0,247,176,1,135,159,10,0,1,45,48,20,50,65,10,10,1,2,22,1205,150,1048,648,432,0,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,517,8000,725,10,626,50,2521,50,0,0,4183,1); REPLACE INTO `mob_db` VALUES (1093,'ECLIPSE','Eclipse','Eclipse',6,1800,0,60,55,1,20,26,0,40,1,36,6,0,11,80,10,10,0,2,60,1205,200,1456,456,336,0,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,746,1500,706,30,622,50,534,5000,2355,50,0,0,4266,1); REPLACE INTO `mob_db` VALUES (1094,'AMBERNITE','Ambernite','Ambernite',13,495,0,57,38,1,39,46,30,0,1,13,13,5,18,5,10,12,2,4,21,145,400,2048,648,648,0,0,0,0,0,0,0,0,991,35,946,5500,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1); REPLACE INTO `mob_db` VALUES (1095,'ANDRE','Andre','Andre',17,688,0,109,71,1,60,71,10,0,1,17,24,20,26,20,10,12,0,4,22,139,300,1288,288,384,0,0,0,0,0,0,0,0,955,5500,910,1000,938,500,993,40,1001,4,1002,350,757,28,0,0,0,0,4043,1); -REPLACE INTO `mob_db` VALUES (1096,'ANGELING','Angeling','Angeling',20,55000,0,163,144,1,120,195,0,70,1,50,20,75,68,200,10,10,1,8,86,1205,200,1072,672,672,0,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,504,1000,512,28,714,40,0,0,0,0,4054,1); +REPLACE INTO `mob_db` VALUES (1096,'ANGELING','Angeling','Angeling',20,55000,0,163,144,1,120,195,0,70,1,50,20,75,68,200,10,10,1,8,86,1205,200,1072,672,672,0,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1); REPLACE INTO `mob_db` VALUES (1097,'ANT_EGG','Ant Egg','Ant Egg',4,420,0,5,4,0,1,2,20,20,1,1,1,1,1,20,10,12,0,0,60,0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1); -REPLACE INTO `mob_db` VALUES (1098,'ANUBIS','Anubis','Anubis',55,12359,0,2906,2700,1,688,812,0,45,1,69,55,75,95,95,10,12,1,8,26,1717,200,2000,1000,500,0,0,0,0,0,0,0,0,2602,5,504,600,2601,5,1007,15,0,0,0,0,0,0,0,0,0,0,4138,1); +REPLACE INTO `mob_db` VALUES (1098,'ANUBIS','Anubis','Anubis',55,12359,0,2906,2700,1,688,812,0,45,1,69,55,75,95,95,10,12,1,8,26,1717,200,2000,1000,500,0,0,0,0,0,0,0,0,2602,5,509,600,2601,5,1007,15,0,0,0,0,0,0,0,0,0,0,4138,1); REPLACE INTO `mob_db` VALUES (1099,'ARGIOPE','Argiope','Argiope',41,4382,0,1797,849,1,395,480,30,0,1,41,31,10,56,30,10,12,2,4,25,1685,300,1792,792,336,0,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1); REPLACE INTO `mob_db` VALUES (1100,'ARGOS','Argos','Argos',25,1117,0,388,188,1,158,191,15,0,1,25,25,5,32,15,10,12,2,4,25,149,300,1468,468,768,0,0,0,0,0,0,0,0,1025,5500,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1); -REPLACE INTO `mob_db` VALUES (1101,'BAPHOMET_','Baphomet Jr.','Baphomet Jr.',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1173,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,508,300,2405,50,0,0,0,0,4129,1); +REPLACE INTO `mob_db` VALUES (1101,'BAPHOMET_','Baphomet Jr.','Baphomet Jr.',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1173,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1); REPLACE INTO `mob_db` VALUES (1102,'BATHORY','Bathory','Bathory',44,5415,0,2503,1034,1,198,398,0,60,1,76,24,85,65,15,10,12,1,7,27,1173,100,1504,840,900,0,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1); REPLACE INTO `mob_db` VALUES (1103,'CARAMEL','Caramel','Caramel',23,1424,0,264,162,1,90,112,5,5,1,23,46,5,38,10,10,12,0,2,22,145,200,1604,840,756,0,0,0,0,0,0,0,0,1027,5500,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1); REPLACE INTO `mob_db` VALUES (1104,'COCO','Coco','Coco',17,817,0,120,78,1,56,67,0,0,1,17,34,20,24,10,10,12,0,2,22,145,150,1864,864,1008,0,0,0,0,0,0,0,0,1026,5500,2502,20,914,3000,919,2500,516,500,2402,25,578,500,0,0,0,0,4041,1); REPLACE INTO `mob_db` VALUES (1105,'DENIRO','Deniro','Deniro',19,760,0,135,85,1,68,79,15,0,1,19,30,20,43,10,10,12,0,4,22,139,150,1288,288,576,0,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1); REPLACE INTO `mob_db` VALUES (1106,'DESERT_WOLF','Desert Wolf','Desert Wolf',27,1716,0,427,266,1,169,208,0,10,1,27,45,15,56,10,10,12,1,2,23,141,200,1120,420,288,0,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,1217,140,0,0,0,0,4082,1); -REPLACE INTO `mob_db` VALUES (1107,'DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',9,164,0,20,16,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,137,300,1600,900,240,0,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,517,600,2301,200,0,0,582,1000,13011,2,0,0,4023,1); +REPLACE INTO `mob_db` VALUES (1107,'DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',9,164,0,20,16,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,137,300,1600,900,240,0,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,517,600,2301,200,13011,5,582,1000,0,0,0,0,4023,1); REPLACE INTO `mob_db` VALUES (1108,'DEVIACE','Deviace','Deviace',47,20090,0,9988,1329,1,514,1024,10,20,1,47,62,48,62,25,10,12,1,5,81,145,400,1680,480,384,0,0,0,0,0,0,0,0,995,25,1053,5335,1054,1000,5011,2,971,100,1256,3,756,161,0,0,0,0,4125,1); REPLACE INTO `mob_db` VALUES (1109,'DEVIRUCHI','Deviruchi','Deviruchi',46,6666,0,2662,1278,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,1173,150,980,600,384,0,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1); REPLACE INTO `mob_db` VALUES (1110,'DOKEBI','Dokebi','Dokebi',33,2697,0,889,455,1,197,249,0,10,1,50,40,35,69,40,10,12,0,6,27,145,250,1156,456,384,0,0,0,0,0,0,0,0,1021,5500,757,112,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1); @@ -191,17 +191,17 @@ REPLACE INTO `mob_db` VALUES (1118,'FLORA','Flora','Flora',26,2092,0,357,226,3,2 REPLACE INTO `mob_db` VALUES (1119,'FRILLDORA','Frilldora','Frilldora',30,2023,0,529,319,1,200,239,0,10,1,30,38,15,53,30,10,12,1,2,23,2181,300,1540,720,432,0,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1); REPLACE INTO `mob_db` VALUES (1120,'GHOSTRING','Ghostring','Ghostring',18,73300,0,101,108,1,82,122,0,60,1,27,18,45,72,30,10,12,1,6,88,1205,300,1220,1080,648,0,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1); REPLACE INTO `mob_db` VALUES (1121,'GIEARTH','Giearth','Giearth',29,2252,0,495,301,1,154,185,10,50,1,29,46,60,64,105,10,12,0,6,22,145,200,1848,1296,432,0,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1); -REPLACE INTO `mob_db` VALUES (1122,'GOBLIN_1','Goblin','Goblin',25,1176,0,310,188,1,118,140,10,5,1,53,25,20,38,10,10,12,1,7,24,1173,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1); -REPLACE INTO `mob_db` VALUES (1123,'GOBLIN_2','Goblin','Goblin',24,1034,0,287,176,1,88,100,10,5,1,24,24,15,66,10,10,12,1,7,23,149,150,1320,620,240,0,0,0,0,0,0,0,0,998,250,911,1000,5010,3,1511,10,2104,1,507,550,2297,3,0,0,0,0,4060,1); -REPLACE INTO `mob_db` VALUES (1124,'GOBLIN_3','Goblin','Goblin',24,1034,0,357,176,1,132,165,10,5,1,24,24,15,24,10,10,12,1,7,25,141,250,1624,624,240,0,0,0,0,0,0,0,0,998,230,911,1000,2275,3,5088,15,2104,1,507,550,508,120,0,0,0,0,4060,1); -REPLACE INTO `mob_db` VALUES (1125,'GOBLIN_4','Goblin','Goblin',23,1359,0,264,164,1,109,131,10,5,1,23,46,15,36,10,10,12,1,7,22,141,200,1624,624,240,0,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2104,1,507,500,0,0,0,0,4060,1); -REPLACE INTO `mob_db` VALUES (1126,'GOBLIN_5','Goblin','Goblin',22,1952,0,241,152,1,105,127,10,5,1,22,22,15,32,10,10,12,1,7,21,141,300,3074,1874,480,0,0,0,0,0,0,0,0,998,150,911,800,1605,15,2104,1,5089,15,507,500,508,120,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1122,'GOBLIN_1','Goblin','Goblin',25,1176,0,310,188,1,118,140,10,5,1,53,25,20,38,10,10,12,1,7,24,1173,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1123,'GOBLIN_2','Goblin','Goblin',24,1034,0,287,176,1,88,100,10,5,1,24,24,15,66,10,10,12,1,7,23,149,150,1320,620,240,0,0,0,0,0,0,0,0,998,250,911,1000,5010,3,1511,10,2104,1,507,1550,2297,3,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1124,'GOBLIN_3','Goblin','Goblin',24,1034,0,357,176,1,132,165,10,5,1,24,24,15,24,10,10,12,1,7,25,141,250,1624,624,240,0,0,0,0,0,0,0,0,998,230,911,1000,2275,3,5088,15,2104,1,507,1550,508,220,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1125,'GOBLIN_4','Goblin','Goblin',23,1359,0,264,164,1,109,131,10,5,1,23,46,15,36,10,10,12,1,7,22,141,200,1624,624,240,0,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2104,1,507,1500,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1126,'GOBLIN_5','Goblin','Goblin',22,1952,0,241,152,1,105,127,10,5,1,22,22,15,32,10,10,12,1,7,21,141,300,3074,1874,480,0,0,0,0,0,0,0,0,998,150,911,800,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1); REPLACE INTO `mob_db` VALUES (1127,'HODE','Hode','Hode',26,2282,0,550,248,1,146,177,0,30,1,26,42,5,49,40,10,12,1,2,44,129,200,1480,480,720,0,0,0,0,0,0,0,0,993,120,1055,5500,757,70,938,3000,1146,10,7021,1,632,20,0,0,0,0,4081,1); REPLACE INTO `mob_db` VALUES (1128,'HORN','Horn','Horn',18,659,0,134,86,1,58,69,10,0,1,18,28,10,47,15,10,12,1,4,22,145,200,1528,528,288,0,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1); REPLACE INTO `mob_db` VALUES (1129,'HORONG','Horong','Horong',34,1939,0,786,479,1,275,327,99,50,1,34,10,1,50,1,10,12,0,0,83,141,400,1888,1152,828,0,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1); REPLACE INTO `mob_db` VALUES (1130,'JAKK','Jakk','Jakk',38,3581,0,1408,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,1173,200,1180,480,648,0,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,1008,5,535,1000,0,0,0,0,0,0,4109,1); REPLACE INTO `mob_db` VALUES (1131,'JOKER','Joker','Joker',57,12450,0,3706,2362,1,621,738,10,35,1,143,47,75,98,175,10,12,2,7,84,1173,100,1364,864,432,0,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1); -REPLACE INTO `mob_db` VALUES (1132,'KHALITZBURG','Khalitzburg','Khalitzburg',63,19276,0,4378,2750,1,875,1025,45,10,1,65,48,5,73,40,10,12,2,1,29,1173,350,528,1000,396,0,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,509,1000,1127,2,0,0,0,0,4136,1); +REPLACE INTO `mob_db` VALUES (1132,'KHALITZBURG','Khalitzburg','Khalitzburg',63,19276,0,4378,2750,1,875,1025,45,10,1,65,48,5,73,40,10,12,2,1,29,1173,350,528,1000,396,0,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,509,2000,1127,2,0,0,0,0,4136,1); REPLACE INTO `mob_db` VALUES (1133,'KOBOLD_1','Kobold','Kobold',36,3893,0,988,625,1,265,318,15,10,1,90,36,30,52,20,10,12,1,7,44,141,150,1028,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); REPLACE INTO `mob_db` VALUES (1134,'KOBOLD_2','Kobold','Kobold',31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,141,200,1528,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1); REPLACE INTO `mob_db` VALUES (1135,'KOBOLD_3','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,141,300,1228,528,360,0,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,0,0,2104,3,508,100,0,0,0,0,4091,1); @@ -218,14 +218,14 @@ REPLACE INTO `mob_db` VALUES (1145,'MARTIN','Martin','Martin',18,1109,0,134,86,1 REPLACE INTO `mob_db` VALUES (1146,'MATYR','Matyr','Matyr',31,2585,0,967,407,1,134,160,0,0,1,47,38,5,64,5,10,12,1,2,27,149,150,432,432,360,0,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1); REPLACE INTO `mob_db` VALUES (1147,'MAYA','Maya','Maya',81,169000,0,42900,17875,1,1800,2070,60,25,1,97,76,95,82,105,10,12,2,4,82,1205,100,864,1000,480,21450,10000,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,984,2500,0,0,0,0,4146,1); REPLACE INTO `mob_db` VALUES (1148,'MEDUSA','Medusa','Medusa',79,16408,0,6876,4697,1,827,1100,48,38,1,74,50,57,77,69,10,12,1,6,40,1173,180,2000,1000,500,0,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,2610,150,722,250,967,3500,1007,3,0,0,0,0,4124,1); -REPLACE INTO `mob_db` VALUES (1149,'MINOROUS','Minorous','Minorous',52,7431,0,2750,1459,1,590,770,15,5,1,42,61,66,52,25,10,12,2,2,43,149,200,1360,960,432,0,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,516,1500,1301,200,568,150,0,0,0,0,4126,1); +REPLACE INTO `mob_db` VALUES (1149,'MINOROUS','Minorous','Minorous',52,7431,0,2750,1459,1,590,770,15,5,1,42,61,66,52,25,10,12,2,2,43,149,200,1360,960,432,0,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,516,1500,1301,200,568,300,0,0,0,0,4126,1); REPLACE INTO `mob_db` VALUES (1150,'MOONLIGHT','Moonlight Flower','Moonlight Flower',67,120000,0,27500,14300,1,1200,1700,10,55,1,99,55,82,95,120,10,10,1,6,63,1205,150,1276,576,288,13750,10000,1022,5000,504,1500,728,500,5008,1000,1234,100,1525,150,10008,500,638,650,985,2600,984,1900,0,0,0,0,4131,1); REPLACE INTO `mob_db` VALUES (1151,'MYST','Myst','Myst',38,3745,0,1391,688,1,365,445,0,40,1,38,18,1,53,10,10,12,2,0,25,1173,200,1576,576,384,0,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,514,35,0,0,0,0,4108,1); REPLACE INTO `mob_db` VALUES (1152,'ORC_SKELETON','Orc Skeleton','Orc Skeleton',28,2278,0,315,194,1,190,236,10,10,1,14,18,1,30,15,10,12,1,1,29,2181,200,2420,720,648,0,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1); REPLACE INTO `mob_db` VALUES (1153,'ORC_ZOMBIE','Orc Zombie','Orc Zombie',24,1568,0,196,120,1,151,184,5,10,1,12,24,1,24,5,10,12,1,1,29,2181,400,2852,1152,840,0,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1); REPLACE INTO `mob_db` VALUES (1154,'PASANA','Pasana','Pasana',61,8289,0,4087,2135,1,513,682,29,35,1,73,50,61,69,43,10,12,1,7,43,149,165,976,576,288,0,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,0,0,0,0,2522,100,0,0,4099,1); REPLACE INTO `mob_db` VALUES (1155,'PETIT','Petite','Petite',44,6881,0,1677,1034,1,360,427,30,30,1,44,62,69,79,60,10,12,1,9,22,149,200,1624,620,384,0,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,912,1500,606,15,0,0,0,0,4118,1); -REPLACE INTO `mob_db` VALUES (1156,'PETIT_','Petite','Petite',45,5747,0,1758,1075,1,300,355,20,45,1,113,45,69,73,80,10,12,1,9,24,149,150,1420,1080,528,0,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,602,500,912,1500,606,15,13006,1,0,0,4120,1); +REPLACE INTO `mob_db` VALUES (1156,'PETIT_','Petite','Petite',45,5747,0,1758,1075,1,300,355,20,45,1,113,45,69,73,80,10,12,1,9,24,149,150,1420,1080,528,0,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1); REPLACE INTO `mob_db` VALUES (1157,'PHARAOH','Pharaoh','Pharaoh',93,445997,0,114990,41899,1,2267,3015,67,70,1,93,100,104,89,112,10,12,2,7,67,1205,125,2000,1000,500,57495,10000,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1); REPLACE INTO `mob_db` VALUES (1158,'PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,145,150,2544,1344,1152,0,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1); REPLACE INTO `mob_db` VALUES (1159,'PHREEONI','Phreeoni','Phreeoni',69,188000,0,32175,16445,1,880,1530,10,20,1,85,78,35,130,60,10,10,2,2,60,1205,200,1020,1020,288,16087,10000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,984,2100,0,0,0,0,4121,1); @@ -235,7 +235,7 @@ REPLACE INTO `mob_db` VALUES (1162,'RAFFLESIA','Rafflesia','Rafflesia',27,1950,0 REPLACE INTO `mob_db` VALUES (1163,'RAYDRIC','Raydric','Raydric',52,8613,0,3410,1795,1,830,930,40,15,1,47,42,5,69,26,10,12,2,7,47,149,150,824,780,420,0,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,0,0,0,0,4133,1); REPLACE INTO `mob_db` VALUES (1164,'REQUIEM','Requiem','Requiem',35,3089,0,800,458,1,220,272,0,15,1,53,35,5,57,2,10,12,1,7,27,2181,400,1516,816,432,0,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1); REPLACE INTO `mob_db` VALUES (1165,'SAND_MAN','Sandman','Sandman',34,3413,0,810,492,1,180,205,10,25,1,34,58,38,60,5,10,12,1,0,62,2181,250,1672,720,288,0,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1); -REPLACE INTO `mob_db` VALUES (1166,'SAVAGE','Savage','Savage',26,2092,0,521,226,1,120,150,10,5,1,26,54,10,37,15,10,12,2,2,42,145,150,1960,960,384,0,0,0,0,0,0,0,0,1028,5500,514,150,702,2,2276,1,605,10,757,70,526,1,0,0,0,0,4078,1); +REPLACE INTO `mob_db` VALUES (1166,'SAVAGE','Savage','Savage',26,2092,0,521,226,1,120,150,10,5,1,26,54,10,37,15,10,12,2,2,42,145,150,1960,960,384,0,0,0,0,0,0,0,0,1028,5500,514,250,702,2,2276,1,605,10,757,70,526,1,0,0,0,0,4078,1); REPLACE INTO `mob_db` VALUES (1167,'SAVAGE_BABE','Savage Babe','Savage Babe',7,182,0,14,12,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,129,400,1624,624,576,0,0,0,0,0,0,0,0,919,5500,1302,100,517,500,1750,1000,949,850,1010,80,627,20,0,0,0,0,4017,1); REPLACE INTO `mob_db` VALUES (1168,'SCORPION_KING','Scorpion King','Scorpion King',50,6354,0,2187,1346,1,500,603,40,10,1,50,47,1,83,30,10,12,2,7,23,145,200,1700,1000,500,0,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1); REPLACE INTO `mob_db` VALUES (1169,'SKEL_WORKER','Skeleton Worker','Skeleton Worker',30,2872,0,397,240,1,242,288,0,15,1,15,30,5,42,10,10,12,1,1,29,2181,400,2420,720,384,0,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,1002,800,0,0,0,0,4092,1); @@ -246,7 +246,7 @@ REPLACE INTO `mob_db` VALUES (1173,'SOLDIER_PIERE','Soldier Piere','Soldier Pier REPLACE INTO `mob_db` VALUES (1174,'STAINER','Stainer','Stainer',16,538,0,105,70,1,53,64,10,0,1,40,16,5,30,5,10,12,0,4,24,145,200,1688,1188,612,0,0,0,0,0,0,0,0,992,60,1011,30,1013,5500,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1); REPLACE INTO `mob_db` VALUES (1175,'TAROU','Tarou','Tarou',11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,145,150,1744,1044,684,0,0,0,0,0,0,0,0,1016,5500,919,3000,949,800,528,1000,701,1,0,0,0,0,0,0,0,0,4028,1); REPLACE INTO `mob_db` VALUES (1176,'VITATA','Vitata','Vitata',20,894,0,163,101,1,69,80,15,20,1,20,25,65,40,70,10,12,0,4,22,145,300,1768,768,384,0,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1); -REPLACE INTO `mob_db` VALUES (1177,'ZENORC','Zenorc','Zenorc',31,2585,0,967,407,1,188,223,0,15,1,77,15,1,76,10,10,12,1,7,27,131,150,1180,480,360,0,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,50,640,20,0,0,0,0,0,0,4096,1); +REPLACE INTO `mob_db` VALUES (1177,'ZENORC','Zenorc','Zenorc',31,2585,0,967,407,1,188,223,0,15,1,77,15,1,76,10,10,12,1,7,27,131,150,1180,480,360,0,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1); REPLACE INTO `mob_db` VALUES (1178,'ZEROM','Zerom','Zerom',23,1109,0,240,149,1,127,155,0,10,1,23,23,5,42,1,10,12,1,7,23,2181,200,1780,1080,432,0,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,1002,300,0,0,0,0,4064,1); REPLACE INTO `mob_db` VALUES (1179,'WHISPER','Whisper','Whisper',34,1796,0,591,599,1,180,221,0,45,1,51,14,1,60,1,10,12,0,6,68,149,150,1960,960,504,0,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1); REPLACE INTO `mob_db` VALUES (1180,'NINE_TAIL','Nine Tail','Nine Tail',51,7766,0,2812,825,1,610,734,10,25,1,80,46,1,89,85,10,12,1,2,63,1173,150,840,540,480,0,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1); @@ -257,7 +257,7 @@ REPLACE INTO `mob_db` VALUES (1184,'FABRE_','Fabre','Fabre',1,30,0,1,0,1,4,7,0,0 REPLACE INTO `mob_db` VALUES (1185,'WHISPER_','Whisper','Whisper',34,1796,0,537,545,1,198,239,0,45,1,51,14,1,60,1,10,12,0,1,28,0,150,1960,960,504,0,0,0,0,0,0,0,0,1001,10,1059,100,2282,0,2333,1,0,0,0,0,0,0,0,0,0,0,4102,0); REPLACE INTO `mob_db` VALUES (1186,'WHISPER_BOSS','Giant Whisper','Giant Whisper',34,5040,0,537,545,1,198,239,0,45,1,51,14,1,60,1,10,12,0,6,48,1173,250,2536,1536,672,0,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1); REPLACE INTO `mob_db` VALUES (1187,'SWITCH','Switch','Switch',1,2,0,1,1,1,1,2,0,0,1,1,1,1,1,1,1,12,1,0,20,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1188,'BON_GUN','Bongun','Bongun',32,3520,0,424,242,1,220,260,0,0,1,15,36,10,48,15,10,12,1,1,29,149,200,1720,500,420,0,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,250,0,0,0,0,4212,1); +REPLACE INTO `mob_db` VALUES (1188,'BON_GUN','Bongun','Bongun',32,3520,0,424,242,1,220,260,0,0,1,15,36,10,48,15,10,12,1,1,29,149,200,1720,500,420,0,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1); REPLACE INTO `mob_db` VALUES (1189,'ORC_ARCHER','Orc Archer','Orc Archer',49,7440,0,1729,1787,9,310,390,10,5,1,44,25,20,125,20,10,12,1,7,22,149,300,1960,620,480,0,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1716,2,507,1400,509,900,0,0,0,0,4256,1); REPLACE INTO `mob_db` VALUES (1190,'ORC_LORD','Orc Lord','Orc Lord',74,393000,0,62205,8580,1,2700,3150,40,5,1,82,149,70,110,85,10,12,2,7,82,1205,100,1248,500,360,31102,10000,968,5500,617,2000,0,0,1363,200,2601,500,5007,150,2627,1000,0,0,985,4268,984,3100,0,0,0,0,4135,1); REPLACE INTO `mob_db` VALUES (1191,'MIMIC','Mimic','Mimic',51,6120,0,165,165,1,150,900,10,40,1,121,1,60,75,110,10,12,1,0,60,149,100,972,500,288,0,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,714,3,2626,1,757,270,0,0,0,0,4205,1); @@ -269,18 +269,18 @@ REPLACE INTO `mob_db` VALUES (1196,'SKEL_PRISONER','Skeleton Prisoner','Skeleton REPLACE INTO `mob_db` VALUES (1197,'ZOMBIE_PRISONER','Zombie Prisoner','Zombie Prisoner',53,11280,0,2635,1724,1,780,930,10,20,1,24,39,1,72,25,10,12,1,1,69,141,350,1768,500,192,0,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1); REPLACE INTO `mob_db` VALUES (1198,'DARK_PRIEST','Dark Priest','Dark Priest',59,9660,0,3320,2974,1,298,370,30,60,1,54,38,95,82,60,10,12,1,7,87,141,200,1500,500,1000,0,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,50,2319,5,1241,1,0,0,0,0,4171,1); REPLACE INTO `mob_db` VALUES (1199,'PUNK','Punk','Punk',43,3620,0,1699,1033,1,292,365,0,45,1,105,5,45,65,20,10,12,0,3,24,149,300,1500,500,1000,0,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1); -REPLACE INTO `mob_db` VALUES (1200,'ZHERLTHSH','Zherlthsh','Zealotus',63,18300,0,3608,2304,1,700,850,10,15,1,85,40,30,125,60,10,12,1,7,60,141,200,800,2112,768,0,0,0,0,0,0,0,0,7017,5,509,800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1); -REPLACE INTO `mob_db` VALUES (1201,'RYBIO','Rybio','Rybio',71,9572,0,6317,3520,1,686,912,45,37,1,97,75,74,77,90,10,12,2,6,40,141,200,1790,1440,540,0,0,0,0,0,0,0,0,1015,3880,7017,3,509,800,731,30,1008,10,984,100,709,30,0,0,0,0,4194,1); -REPLACE INTO `mob_db` VALUES (1202,'PHENDARK','Phendark','Phendark',73,22729,0,6826,3443,1,794,1056,52,36,1,62,120,65,77,66,10,12,2,7,40,141,175,1744,1344,600,0,0,0,0,0,0,0,0,1015,3880,7017,4,509,800,0,0,984,150,0,0,0,0,1971,10,0,0,4329,1); +REPLACE INTO `mob_db` VALUES (1200,'ZHERLTHSH','Zherlthsh','Zealotus',63,18300,0,3608,2304,1,700,850,10,15,1,85,40,30,125,60,10,12,1,7,60,141,200,800,2112,768,0,0,0,0,0,0,0,0,7017,5,509,1800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1); +REPLACE INTO `mob_db` VALUES (1201,'RYBIO','Rybio','Rybio',71,9572,0,6317,3520,1,686,912,45,37,1,97,75,74,77,90,10,12,2,6,40,141,200,1790,1440,540,0,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,731,30,1008,10,984,100,709,30,0,0,0,0,4194,1); +REPLACE INTO `mob_db` VALUES (1202,'PHENDARK','Phendark','Phendark',73,22729,0,6826,3443,1,794,1056,52,36,1,62,120,65,77,66,10,12,2,7,40,141,175,1744,1344,600,0,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,0,0,0,0,1971,10,0,0,4329,1); REPLACE INTO `mob_db` VALUES (1203,'MYSTELTAINN','Mysteltainn','Mysteltainn',76,33350,0,6457,5159,2,1160,1440,30,30,1,139,80,35,159,65,10,12,2,0,87,1205,250,1152,500,240,0,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,999,120,984,243,0,0,0,0,4207,1); REPLACE INTO `mob_db` VALUES (1204,'TIRFING','Tirfing','Ogretooth',71,29900,0,5412,4235,1,950,1146,30,35,1,87,55,35,132,65,10,12,1,0,67,1205,100,816,500,240,0,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1); REPLACE INTO `mob_db` VALUES (1205,'EXECUTIONER','Executioner','Executioner',65,28980,0,4730,3536,2,570,950,35,35,1,85,40,25,88,60,10,12,2,0,47,1205,200,768,500,384,0,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1); REPLACE INTO `mob_db` VALUES (1206,'ANOLIAN','Anolian','Anolian',61,18960,0,5900,2907,1,640,980,15,15,1,43,58,25,97,65,10,12,1,5,41,1173,190,900,500,864,0,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,943,5335,2625,1,984,134,0,0,0,0,4234,1); REPLACE INTO `mob_db` VALUES (1207,'STING','Sting','Sting',61,9500,0,4081,2970,1,850,1032,5,30,1,45,55,5,120,85,10,12,1,0,62,1173,300,528,500,240,0,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,719,3,0,0,0,0,4226,1); -REPLACE INTO `mob_db` VALUES (1208,'WANDER_MAN','Wander Man','Wanderer',74,8170,0,5786,4730,2,450,550,5,5,1,192,38,45,127,85,10,12,1,6,24,1173,100,672,500,192,0,0,0,0,0,0,0,0,7005,4850,616,1,723,500,2270,5,610,650,984,217,1164,1,13015,1,0,0,4210,1); -REPLACE INTO `mob_db` VALUES (1209,'CRAMP','Cramp','Cramp',56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,149,100,1000,500,1000,0,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,150,510,70,984,95,0,0,0,0,4296,1); +REPLACE INTO `mob_db` VALUES (1208,'WANDER_MAN','Wander Man','Wanderer',74,8170,0,5786,4730,2,450,550,5,5,1,192,38,45,127,85,10,12,1,6,24,1173,100,672,500,192,0,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1); +REPLACE INTO `mob_db` VALUES (1209,'CRAMP','Cramp','Cramp',56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,149,100,1000,500,1000,0,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1); REPLACE INTO `mob_db` VALUES (1210,'FILAMENTOUS','Filamentous','Filamentous',51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,149,200,1500,500,1000,0,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1); -REPLACE INTO `mob_db` VALUES (1211,'BRILIGHT','Brilight','Brilight',46,5562,0,1826,1331,1,298,383,30,5,1,90,15,10,50,35,10,12,0,4,23,149,200,1500,500,1000,0,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,602,1000,757,220,610,250,509,1600,0,0,0,0,4213,1); +REPLACE INTO `mob_db` VALUES (1211,'BRILIGHT','Brilight','Brilight',46,5562,0,1826,1331,1,298,383,30,5,1,90,15,10,50,35,10,12,0,4,23,149,200,1500,500,1000,0,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,602,1000,757,220,610,250,509,2600,0,0,0,0,4213,1); REPLACE INTO `mob_db` VALUES (1212,'IRON_FIST','Iron Fist','Iron Fist',47,4221,0,1435,1520,1,430,590,40,5,1,25,15,10,81,20,10,12,1,4,60,149,200,1500,500,1000,0,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1); REPLACE INTO `mob_db` VALUES (1213,'HIGH_ORC','High Orc','High Orc',52,6890,0,3618,1639,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,1173,150,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1); REPLACE INTO `mob_db` VALUES (1214,'CHOCO','Choco','Choco',43,4278,0,1265,1265,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,149,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1); @@ -288,13 +288,13 @@ REPLACE INTO `mob_db` VALUES (1215,'STEM_WORM','Stem Worm','Stem Worm',40,6136,0 REPLACE INTO `mob_db` VALUES (1216,'PENOMENA','Penomena','Penomena',57,7256,0,2870,2200,7,415,565,5,50,1,5,35,15,136,30,10,12,1,5,25,1173,400,832,500,600,0,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1); REPLACE INTO `mob_db` VALUES (1219,'KNIGHT_OF_ABYSS','Knight of Abyss','Abysmal Knight',79,36140,0,8469,6268,1,1600,2150,55,50,1,68,64,25,135,50,10,12,2,7,87,1685,300,1500,500,1000,0,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1410,25,1162,1,985,369,984,259,0,0,0,0,4140,1); REPLACE INTO `mob_db` VALUES (1220,'M_DESERT_WOLF','Desert Wolf','Desert Wolf',27,1716,0,427,266,1,169,208,0,10,1,27,45,15,56,10,10,12,1,2,23,1717,200,1120,420,288,0,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1); -REPLACE INTO `mob_db` VALUES (1221,'M_SAVAGE','Savage','Savage',26,2092,0,521,226,1,120,150,10,5,1,26,54,10,37,10,10,12,2,2,42,1717,150,1960,960,384,0,0,0,0,0,0,0,0,1028,6000,656,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1); -REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,1717,200,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,502,1100,0,0,0,0,4066,1); +REPLACE INTO `mob_db` VALUES (1221,'M_SAVAGE','Savage','Savage',26,2092,0,521,226,1,120,150,10,5,1,26,54,10,37,10,10,12,2,2,42,1717,150,1960,960,384,0,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1); +REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,1717,200,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1); REPLACE INTO `mob_db` VALUES (1223,'L_ORC','Orc','Orc',24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,1717,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); REPLACE INTO `mob_db` VALUES (1224,'L_POISON_SPORE','Poison Spore','Poison Spore',19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,1717,200,1672,672,288,0,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1); REPLACE INTO `mob_db` VALUES (1225,'L_CHOCO','Choco','Choco',43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,1717,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1); REPLACE INTO `mob_db` VALUES (1226,'L_KOBOLD','Kobold','Kobold',36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,1717,200,1028,528,360,0,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); -REPLACE INTO `mob_db` VALUES (1227,'L_GOBLIN','Goblin','Goblin',25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,1717,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,501,800,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1227,'L_GOBLIN','Goblin','Goblin',25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,1717,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1); REPLACE INTO `mob_db` VALUES (1228,'L_PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,1717,150,2544,1344,1152,0,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1); REPLACE INTO `mob_db` VALUES (1229,'META_FABRE','Fabre','Fabre',2,63,0,3,2,1,8,11,0,0,1,2,4,1,7,5,10,12,0,4,22,129,400,1672,672,480,0,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1); REPLACE INTO `mob_db` VALUES (1230,'META_PUPA','Pupa','Pupa',2,427,0,2,4,0,1,2,20,20,1,1,1,1,1,20,10,12,0,4,22,0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1); @@ -313,30 +313,30 @@ REPLACE INTO `mob_db` VALUES (1242,'MARIN','Marin','Marin',15,742,0,66,44,1,39,4 REPLACE INTO `mob_db` VALUES (1243,'SASQUATCH','Sasquatch','Sasquatch',30,3163,0,529,319,1,250,280,5,0,1,25,60,10,34,20,10,12,2,2,60,1173,300,1260,192,192,0,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1); REPLACE INTO `mob_db` VALUES (1244,'JAKK_XMAS','Christmas Jakk','Christmas Jakk',38,3581,0,1113,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,1173,200,1180,480,648,0,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1); REPLACE INTO `mob_db` VALUES (1245,'GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,0,282,171,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,1173,100,1120,620,240,0,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1); -REPLACE INTO `mob_db` VALUES (1246,'COOKIE_XMAS','Christmas Cookie','Christmas Cookie',28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,145,400,1248,1248,240,0,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,700,0,0,0,0,4235,1); +REPLACE INTO `mob_db` VALUES (1246,'COOKIE_XMAS','Christmas Cookie','Christmas Cookie',28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,145,400,1248,1248,240,0,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1); REPLACE INTO `mob_db` VALUES (1247,'ANTONIO','Antonio','Antonio',10,10,0,3,2,1,13,20,99,0,1,1,1,50,100,100,10,12,1,3,66,129,100,720,720,432,0,0,0,0,0,0,0,0,7034,10000,644,200,538,1500,539,1000,529,5500,530,5500,2236,250,0,0,0,0,4243,1); -REPLACE INTO `mob_db` VALUES (1248,'CRUISER','Cruiser','Cruiser',35,2820,0,1100,450,7,175,215,5,5,1,40,10,10,90,25,10,12,1,0,60,133,400,1296,1296,432,0,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,719,35,756,87,13150,3,0,0,4297,1); +REPLACE INTO `mob_db` VALUES (1248,'CRUISER','Cruiser','Cruiser',35,2820,0,1100,450,7,175,215,5,5,1,40,10,10,90,25,10,12,1,0,60,133,400,1296,1296,432,0,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1); REPLACE INTO `mob_db` VALUES (1249,'MYSTCASE','Myst Case','Myst Case',38,3450,0,1113,688,1,160,360,5,10,1,50,25,5,48,75,10,12,1,0,60,145,400,1248,1248,432,0,0,0,0,0,0,0,0,530,90,912,1500,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1); -REPLACE INTO `mob_db` VALUES (1250,'CHEPET','Chepet','Chepet',42,4950,0,1518,946,1,380,440,0,25,1,72,35,71,65,85,10,12,1,7,23,1173,400,672,672,288,0,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,300,2508,5,0,0,0,0,4284,1); +REPLACE INTO `mob_db` VALUES (1250,'CHEPET','Chepet','Chepet',42,4950,0,1518,946,1,380,440,0,25,1,72,35,71,65,85,10,12,1,7,23,1173,400,672,672,288,0,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1); REPLACE INTO `mob_db` VALUES (1251,'KNIGHT_OF_WINDSTORM','Knight of Windstorm','Stormy Knight',77,240000,0,64350,21450,2,1425,1585,35,60,1,185,83,55,130,79,10,12,2,0,84,1205,200,468,468,288,32175,10000,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1); REPLACE INTO `mob_db` VALUES (1252,'GARM','Garm','Garm',73,197000,0,50050,20020,3,1700,1900,40,45,1,126,82,65,95,60,10,12,2,2,81,1205,400,608,408,336,25025,10000,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1); REPLACE INTO `mob_db` VALUES (1253,'GARGOYLE','Gargoyle','Gargoyle',48,3950,0,1650,1650,9,290,360,10,10,1,61,20,20,126,40,10,12,1,6,64,133,200,1020,720,384,0,0,0,0,0,0,0,0,912,3880,1039,500,0,0,0,0,2619,1,1769,2000,757,238,0,0,0,0,4149,1); -REPLACE INTO `mob_db` VALUES (1254,'RAGGLER','Raggler','Raggler',21,1020,0,218,140,1,102,113,0,5,1,10,32,20,39,35,10,12,0,2,24,1173,200,1000,900,384,0,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,100,992,90,2225,7,756,32,0,0,0,0,4186,1); +REPLACE INTO `mob_db` VALUES (1254,'RAGGLER','Raggler','Raggler',21,1020,0,218,140,1,102,113,0,5,1,10,32,20,39,35,10,12,0,2,24,1173,200,1000,900,384,0,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1); REPLACE INTO `mob_db` VALUES (1255,'NERAID','Neraid','Nereid',40,4120,0,1126,684,1,325,360,0,10,1,45,50,5,64,5,10,12,0,2,22,1173,200,776,576,288,0,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1); REPLACE INTO `mob_db` VALUES (1256,'PEST','Pest','Pest',40,3240,0,1238,752,1,375,450,0,5,1,60,22,5,80,5,10,12,0,2,47,1173,200,700,648,480,0,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1); REPLACE INTO `mob_db` VALUES (1257,'INJUSTICE','Injustice','Injustice',51,7600,0,2118,1488,1,480,600,0,0,1,42,39,1,71,35,10,12,1,1,47,1173,400,770,720,336,0,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1); -REPLACE INTO `mob_db` VALUES (1258,'GOBLIN_ARCHER','Goblin Archer','Goblin Archer',28,1750,0,461,284,9,89,113,0,0,1,15,20,15,72,20,10,12,0,7,25,133,200,1172,672,420,0,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,150,0,0,0,0,4157,1); +REPLACE INTO `mob_db` VALUES (1258,'GOBLIN_ARCHER','Goblin Archer','Goblin Archer',28,1750,0,461,284,9,89,113,0,0,1,15,20,15,72,20,10,12,0,7,25,133,200,1172,672,420,0,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1); REPLACE INTO `mob_db` VALUES (1259,'GRYPHON','Gryphon','Gryphon',72,27800,0,5896,4400,1,880,1260,35,35,1,95,78,65,115,75,10,12,2,2,84,1205,100,704,504,432,0,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1); REPLACE INTO `mob_db` VALUES (1260,'DARK_FRAME','Dark Frame','Dark Frame',59,7500,0,3652,3271,1,960,1210,10,45,1,72,42,45,85,25,10,12,1,6,67,1173,200,920,720,200,0,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1); REPLACE INTO `mob_db` VALUES (1261,'WILD_ROSE','Wild Rose','Wild Rose',38,2980,0,1113,688,1,315,360,0,15,1,85,15,35,65,80,10,12,0,2,24,131,100,964,864,288,0,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,1767,3000,624,35,528,600,2244,2,0,0,0,0,4257,1); REPLACE INTO `mob_db` VALUES (1262,'MUTANT_DRAGON','Mutant Dragon','Mutant Dragonoid',65,62600,0,4730,3536,4,2400,3400,15,20,1,47,30,68,45,35,10,12,2,9,43,1205,250,1280,1080,240,0,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,400,7296,1500,12040,10,0,0,0,0,4203,1); REPLACE INTO `mob_db` VALUES (1263,'WIND_GHOST','Wind Ghost','Wind Ghost',51,4820,0,2424,1488,2,489,639,0,45,1,89,15,90,85,25,10,12,1,6,64,1173,150,1056,1056,336,0,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1); -REPLACE INTO `mob_db` VALUES (1264,'MERMAN','Merman','Merman',53,14690,0,4500,2054,2,482,964,10,35,1,45,46,15,85,55,10,12,1,7,61,1173,220,916,816,336,0,0,0,0,0,0,0,0,1054,1300,523,300,568,200,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1); +REPLACE INTO `mob_db` VALUES (1264,'MERMAN','Merman','Merman',53,14690,0,4500,2054,2,482,964,10,35,1,45,46,15,85,55,10,12,1,7,61,1173,220,916,816,336,0,0,0,0,0,0,0,0,1054,1300,523,300,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1); REPLACE INTO `mob_db` VALUES (1265,'COOKIE','Cookie','Cookie',25,950,0,310,188,1,130,153,0,25,1,35,20,53,37,90,10,12,0,7,60,137,200,1036,936,240,0,0,0,0,0,0,0,0,538,1000,530,150,979,1,645,280,2402,30,12001,100,529,320,0,0,0,0,4293,1); REPLACE INTO `mob_db` VALUES (1266,'ASTER','Aster','Aster',18,1452,0,122,78,1,56,64,0,10,1,19,15,1,34,5,10,12,0,5,22,145,400,1264,864,216,0,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1); -REPLACE INTO `mob_db` VALUES (1267,'CARAT','Carat','Carat',51,5200,0,1926,1353,1,330,417,0,25,1,41,45,5,85,155,10,12,1,6,44,1173,200,1078,768,384,0,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,450,0,0,0,0,4288,1); +REPLACE INTO `mob_db` VALUES (1267,'CARAT','Carat','Carat',51,5200,0,1926,1353,1,330,417,0,25,1,41,45,5,85,155,10,12,1,6,44,1173,200,1078,768,384,0,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1); REPLACE INTO `mob_db` VALUES (1268,'BLOODY_KNIGHT','Bloody Knight','Bloody Knight',82,57870,0,10120,6820,3,2150,3030,60,50,1,75,70,77,125,55,10,12,2,0,87,1173,250,828,528,192,0,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2106,65,1170,1,1417,2,985,433,0,0,0,0,4320,1); -REPLACE INTO `mob_db` VALUES (1269,'CLOCK','Clock','Clock',60,11050,0,3410,2904,2,720,909,15,10,1,70,50,25,90,50,10,12,1,0,42,145,200,1092,792,480,0,0,0,0,0,0,0,0,1095,5335,1019,800,509,900,568,220,7026,30,7027,30,985,163,0,0,0,0,4299,1); +REPLACE INTO `mob_db` VALUES (1269,'CLOCK','Clock','Clock',60,11050,0,3410,2904,2,720,909,15,10,1,70,50,25,90,50,10,12,1,0,42,145,200,1092,792,480,0,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1); REPLACE INTO `mob_db` VALUES (1270,'C_TOWER_MANAGER','Clock Tower Manager','Clock Tower Manager',63,18600,0,4378,2850,3,880,1180,35,30,1,75,20,64,75,60,10,12,2,0,80,145,200,1072,672,384,0,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1); REPLACE INTO `mob_db` VALUES (1271,'ALLIGATOR','Alligator','Alligator',42,6962,0,1379,866,1,315,360,2,5,1,45,50,10,82,65,10,12,1,2,21,145,200,1100,900,480,0,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1); REPLACE INTO `mob_db` VALUES (1272,'DARK_LORD','Dark Lord','Dark Lord',80,360000,0,65780,45045,2,2800,3320,30,70,1,120,64,118,99,60,10,12,2,6,89,1205,100,868,768,480,32890,10000,7005,6000,5093,500,617,2000,1615,800,5017,550,1237,300,2334,300,2507,100,985,5141,984,3977,0,0,0,0,4168,1); @@ -344,13 +344,13 @@ REPLACE INTO `mob_db` VALUES (1273,'ORC_LADY','Orc Lady','Orc Lady',31,2000,0,64 REPLACE INTO `mob_db` VALUES (1274,'MEGALITH','Megalith','Megalith',45,5300,0,1758,1075,9,264,314,50,25,1,45,60,5,95,5,10,12,2,0,80,132,200,1332,1332,672,0,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1); REPLACE INTO `mob_db` VALUES (1275,'ALICE','Alice','Alice',62,10000,0,3583,2400,1,550,700,5,5,1,64,42,85,100,130,10,12,1,7,60,145,200,502,2304,480,0,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,739,30,5085,1,12128,10,12002,100,0,0,0,0,4253,1); REPLACE INTO `mob_db` VALUES (1276,'RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',52,5250,0,3025,2125,9,415,500,35,5,1,25,22,5,145,35,10,12,1,6,47,133,200,1152,1152,480,0,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,1701,150,1764,2000,1715,3,985,106,0,0,0,0,4187,1); -REPLACE INTO `mob_db` VALUES (1277,'GREATEST_GENERAL','Greatest General','Greatest General',40,3632,0,1238,752,3,350,400,15,15,1,20,60,55,82,140,10,12,1,0,43,132,200,1152,1152,384,0,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,200,2272,1,508,150,686,100,0,0,0,0,4283,1); +REPLACE INTO `mob_db` VALUES (1277,'GREATEST_GENERAL','Greatest General','Greatest General',40,3632,0,1238,752,3,350,400,15,15,1,20,60,55,82,140,10,12,1,0,43,132,200,1152,1152,384,0,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,200,2272,1,508,250,686,100,0,0,0,0,4283,1); REPLACE INTO `mob_db` VALUES (1278,'STALACTIC_GOLEM','Stalactic Golem','Stalactic Golem',60,18700,0,5808,2695,1,950,1260,50,5,1,45,85,5,75,25,10,12,2,0,80,145,200,1264,864,288,0,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,0,0,985,163,0,0,0,0,4223,1); REPLACE INTO `mob_db` VALUES (1279,'TRI_JOINT','Tri Joint','Tri Joint',32,2300,0,386,220,1,178,206,20,5,1,48,24,10,67,20,10,12,0,4,22,1173,200,860,660,624,0,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1); -REPLACE INTO `mob_db` VALUES (1280,'STEAM_GOBLIN','Steam Goblin','Goblin Steamrider',35,2490,0,864,495,1,234,269,20,5,1,59,32,15,75,25,10,12,1,7,44,145,200,1008,1008,528,0,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,1003,320,757,124,0,0,0,0,4156,1); +REPLACE INTO `mob_db` VALUES (1280,'STEAM_GOBLIN','Steam Goblin','Goblin Steamrider',35,2490,0,864,495,1,234,269,20,5,1,59,32,15,75,25,10,12,1,7,44,145,200,1008,1008,528,0,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1); REPLACE INTO `mob_db` VALUES (1281,'SAGEWORM','Sage Worm','Sage Worm',43,3850,0,1155,1320,1,120,280,0,50,1,52,24,88,79,55,10,12,0,2,60,145,200,936,936,288,0,0,0,0,0,0,0,0,693,100,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1); REPLACE INTO `mob_db` VALUES (1282,'KOBOLD_ARCHER','Kobold Archer','Kobold Archer',33,2560,0,739,455,9,155,185,10,5,1,20,15,30,100,25,10,12,0,7,23,133,200,1008,1008,384,0,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1); -REPLACE INTO `mob_db` VALUES (1283,'CHIMERA','Chimera','Chimera',70,32600,0,4950,3000,1,1200,1320,30,10,1,72,110,88,75,85,10,12,2,2,63,1205,200,772,672,360,0,0,0,0,0,0,0,0,7054,5335,1048,2500,657,500,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1); +REPLACE INTO `mob_db` VALUES (1283,'CHIMERA','Chimera','Chimera',70,32600,0,4950,3000,1,1200,1320,30,10,1,72,110,88,75,85,10,12,2,2,63,1205,200,772,672,360,0,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1); REPLACE INTO `mob_db` VALUES (1284,'HUGELING','Hugeling','Hugeling',1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,145,200,1872,672,480,0,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0); REPLACE INTO `mob_db` VALUES (1285,'ARCHER_GUARDIAN','Archer Guardian','Archer Guardian',74,28634,0,1,1,12,1120,1600,35,60,1,80,80,90,165,55,14,16,2,7,80,165,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1286,'KNIGHT_GUARDIAN','Knight Guardian','Knight Guardian',86,30214,0,1,1,2,1280,1560,55,30,1,40,140,65,125,65,14,16,2,7,80,165,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -358,31 +358,31 @@ REPLACE INTO `mob_db` VALUES (1287,'SOLDIER_GUARDIAN','Soldier Guardian','Soldie REPLACE INTO `mob_db` VALUES (1288,'EMPERIUM','Emperium','Emperium',90,68430,0,109,71,1,60,71,40,50,1,17,80,50,26,20,10,12,0,8,26,0,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1289,'MAYA_PUPLE','Maya Purple','Maya Purple',81,54331,0,10496,3893,2,1446,1999,68,48,1,90,80,95,90,119,10,12,2,4,82,1205,100,1024,1000,480,0,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1); REPLACE INTO `mob_db` VALUES (1290,'SKELETON_GENERAL','Skeleton General','Skeleton General',73,17043,0,8170,3370,1,910,1089,25,25,1,25,40,20,77,25,10,12,1,1,29,1173,150,2276,576,432,0,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,1222,3,2274,1,0,0,0,0,4221,1); -REPLACE INTO `mob_db` VALUES (1291,'WRAITH_DEAD','Wraith Dead','Wraith Dead',74,42131,0,10341,3618,2,1366,1626,25,30,1,99,55,95,115,45,10,12,2,1,89,1173,175,1816,576,240,0,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,100,568,150,0,0,0,0,4189,1); +REPLACE INTO `mob_db` VALUES (1291,'WRAITH_DEAD','Wraith Dead','Wraith Dead',74,42131,0,10341,3618,2,1366,1626,25,30,1,99,55,95,115,45,10,12,2,1,89,1173,175,1816,576,240,0,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,100,568,300,0,0,0,0,4189,1); REPLACE INTO `mob_db` VALUES (1292,'MINI_DEMON','Mini Demon','Mini Demon',68,31865,0,8396,3722,1,1073,1415,30,25,1,75,40,55,89,42,10,12,0,6,27,1173,150,1000,600,384,0,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1410,3,0,0,0,0,4204,1); REPLACE INTO `mob_db` VALUES (1293,'CREMY_FEAR','Creamy Fear','Creamy Fear',62,13109,0,7365,2691,2,667,830,45,30,1,40,16,15,68,55,10,12,0,4,24,1173,155,1136,720,840,0,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,1611,8,522,50,0,0,0,0,4298,1); -REPLACE INTO `mob_db` VALUES (1294,'KILLER_MANTIS','Killer Mantis','Killer Mantis',56,12911,0,6509,2366,1,764,927,35,20,1,26,24,5,75,40,10,12,1,4,22,1173,175,1528,660,432,0,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,5,514,25,1262,1,2108,1,0,0,0,0,4301,1); +REPLACE INTO `mob_db` VALUES (1294,'KILLER_MANTIS','Killer Mantis','Killer Mantis',56,12911,0,6509,2366,1,764,927,35,20,1,26,24,5,75,40,10,12,1,4,22,1173,175,1528,660,432,0,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1); REPLACE INTO `mob_db` VALUES (1295,'OWL_BARON','Owl Baron','Owl Baron',75,59489,0,10967,4811,2,1252,1609,65,25,1,25,80,95,95,55,10,12,2,6,60,1205,175,1345,824,440,0,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1402,25,693,100,5045,5,0,0,0,0,4238,1); REPLACE INTO `mob_db` VALUES (1296,'KOBOLD_LEADER','Kobold Leader','Kobold Leader',65,17935,0,7432,2713,1,649,957,37,37,1,90,36,30,77,59,10,12,1,7,44,1173,150,1028,528,360,0,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1); -REPLACE INTO `mob_db` VALUES (1297,'ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',64,40599,0,8040,3499,1,836,1129,27,27,1,19,32,5,83,35,10,12,1,1,49,1173,175,1772,120,384,0,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,508,350,756,150,757,100,0,0,0,0,4248,1); +REPLACE INTO `mob_db` VALUES (1297,'ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',64,40599,0,8040,3499,1,836,1129,27,27,1,19,32,5,83,35,10,12,1,1,49,1173,175,1772,120,384,0,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,508,650,756,150,757,100,0,0,0,0,4248,1); REPLACE INTO `mob_db` VALUES (1298,'ZOMBIE_MASTER','Zombie Master','Zombie Master',62,13917,0,7610,2826,1,824,1084,37,26,1,20,30,5,77,35,10,12,1,1,29,1173,175,2612,912,288,0,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1); REPLACE INTO `mob_db` VALUES (1299,'GOBLIN_LEADER','Goblin Leader','Goblin Leader',64,19735,0,6036,2184,1,663,753,48,16,1,55,37,30,69,58,10,12,1,8,24,1173,120,1120,620,240,0,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1); REPLACE INTO `mob_db` VALUES (1300,'CATERPILLAR','Caterpillar','Caterpillar',64,14140,0,6272,3107,1,895,1448,47,29,1,25,85,15,69,45,10,12,0,4,22,1173,300,1672,672,480,0,0,0,0,0,0,0,0,949,3000,7054,5335,2227,20,1000,100,997,50,505,12,508,500,0,0,0,0,4289,1); REPLACE INTO `mob_db` VALUES (1301,'AM_MUT','Am Mut','Am Mut',61,11848,0,7709,2690,1,1041,1123,50,10,1,65,40,35,83,45,10,12,0,6,27,1173,200,1156,456,384,0,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,250,0,0,0,0,4245,1); -REPLACE INTO `mob_db` VALUES (1302,'DARK_ILLUSION','Dark Illusion','Dark Illusion',77,101487,0,11163,4181,2,1300,1982,64,70,1,100,40,100,97,40,10,12,2,6,89,1205,145,1024,768,480,0,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,504,550,1162,2,0,0,0,0,4169,1); +REPLACE INTO `mob_db` VALUES (1302,'DARK_ILLUSION','Dark Illusion','Dark Illusion',77,101487,0,11163,4181,2,1300,1982,64,70,1,100,40,100,97,40,10,12,2,6,89,1205,145,1024,768,480,0,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1); REPLACE INTO `mob_db` VALUES (1303,'GIANT_HONET','Giant Hornet','Giant Hornet',56,12834,0,5785,2006,1,650,851,38,43,1,38,32,10,71,64,10,12,0,4,24,1173,155,1292,792,340,0,0,0,0,0,0,0,0,526,550,518,1200,522,12,610,15,1608,3,722,20,2627,1,0,0,0,0,4271,1); REPLACE INTO `mob_db` VALUES (1304,'GIANT_SPIDER','Giant Spider','Giant Spider',55,11628,0,6211,2146,1,625,802,41,28,1,36,43,5,73,69,10,12,2,4,25,1173,165,1468,468,768,0,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1); REPLACE INTO `mob_db` VALUES (1305,'ANCIENT_WORM','Ancient Worm','Ancient Worm',67,22598,0,8174,3782,1,947,1115,35,30,1,35,56,55,81,72,10,12,2,4,25,1173,165,1792,792,336,0,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,719,15,1096,680,938,3500,7054,2500,0,0,0,0,4249,1); REPLACE INTO `mob_db` VALUES (1306,'LEIB_OLMAI','Leib Olmai','Leib Olmai',58,24223,0,6011,2171,1,740,1390,27,31,1,35,95,5,64,85,10,12,2,2,22,1173,175,1260,230,192,0,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,526,500,969,5,7053,800,0,0,0,0,4188,1); REPLACE INTO `mob_db` VALUES (1307,'CAT_O_NINE_TAIL','Cat o\' Nine Tails','Cat o\' Nine Tails',76,64512,0,10869,4283,1,1112,1275,61,55,1,75,55,82,86,120,10,12,1,6,63,1205,155,1276,576,288,0,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1); -REPLACE INTO `mob_db` VALUES (1308,'PANZER_GOBLIN','Panzer Goblin','Panzer Goblin',59,13838,0,7212,2697,1,682,877,41,28,1,60,40,20,81,160,10,12,1,7,44,1173,200,960,1008,840,0,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,744,800,994,160,0,0,0,0,4310,1); +REPLACE INTO `mob_db` VALUES (1308,'PANZER_GOBLIN','Panzer Goblin','Panzer Goblin',59,13838,0,7212,2697,1,682,877,41,28,1,60,40,20,81,160,10,12,1,7,44,1173,200,960,1008,840,0,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1); REPLACE INTO `mob_db` VALUES (1309,'GAJOMART','Gajomart','Gajomart',63,13699,0,6625,2900,1,916,948,85,50,1,34,10,5,75,140,10,12,0,0,83,1173,300,1000,1152,828,0,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,1752,10000,999,640,994,180,0,0,0,0,4151,1); -REPLACE INTO `mob_db` VALUES (1310,'MAJORUROS','Majoruros','Majoruros',66,57991,0,8525,3799,1,781,1301,10,25,1,50,75,50,85,48,10,12,2,2,43,1173,250,1100,960,780,0,0,0,0,0,0,0,0,941,4413,1361,4,568,300,984,16,509,850,2611,160,1000,250,0,0,0,0,4201,1); +REPLACE INTO `mob_db` VALUES (1310,'MAJORUROS','Majoruros','Majoruros',66,57991,0,8525,3799,1,781,1301,10,25,1,50,75,50,85,48,10,12,2,2,43,1173,250,1100,960,780,0,0,0,0,0,0,0,0,941,4413,1361,4,568,300,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1); REPLACE INTO `mob_db` VALUES (1311,'GULLINBURSTI','Gullinbursti','Gullinbursti',62,21331,0,5814,2376,1,699,1431,10,15,1,25,60,5,70,45,10,12,2,2,42,1173,150,1960,960,384,0,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1); REPLACE INTO `mob_db` VALUES (1312,'TURTLE_GENERAL','Turtle General','Turtle General',97,320700,0,18202,9800,1,2438,3479,50,54,1,45,55,65,105,164,10,12,2,2,42,1205,200,900,1000,500,9101,10000,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1); REPLACE INTO `mob_db` VALUES (1313,'MOBSTER','Mobster','Mobster',61,11347,0,4424,1688,1,910,1128,41,37,1,46,20,35,76,55,10,12,1,7,20,1173,250,1100,560,580,0,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,716,600,912,2500,525,450,505,60,0,0,0,0,4317,1); REPLACE INTO `mob_db` VALUES (1314,'PERMETER','Permeter','Permeter',63,8228,0,3756,1955,2,943,1212,46,45,1,59,60,5,69,100,10,12,1,2,40,145,250,1100,483,528,0,0,0,0,0,0,0,0,967,4413,7070,45,1019,1240,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1); -REPLACE INTO `mob_db` VALUES (1315,'ASSULTER','Assaulter','Assaulter',71,15861,0,4854,2654,2,764,1499,35,28,1,74,10,35,100,100,10,12,1,7,44,1173,155,1000,900,432,0,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,508,1280,912,1240,522,45,603,1,13300,1,0,0,4246,1); +REPLACE INTO `mob_db` VALUES (1315,'ASSULTER','Assaulter','Assaulter',71,15861,0,4854,2654,2,764,1499,35,28,1,74,10,35,100,100,10,12,1,7,44,1173,155,1000,900,432,0,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,508,1280,912,1240,13300,5,603,1,0,0,0,0,4246,1); REPLACE INTO `mob_db` VALUES (1316,'SOLIDER','Solider','Solider',70,12099,0,4458,1951,2,796,978,57,43,1,35,85,5,74,100,10,12,1,2,42,145,250,1452,483,528,0,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1); REPLACE INTO `mob_db` VALUES (1317,'FUR_SEAL','Fur Seal','Seal',63,9114,0,3765,1824,1,845,1203,25,33,1,28,22,15,69,84,10,12,1,2,21,149,200,1612,622,583,0,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1); REPLACE INTO `mob_db` VALUES (1318,'HEATER','Heater','Heater',68,11020,0,3766,2359,2,682,1007,40,42,1,47,25,5,71,100,10,12,1,2,43,1173,250,1452,483,528,0,0,0,0,0,0,0,0,967,4413,7070,750,697,100,912,1640,526,140,7054,600,7068,1250,0,0,0,0,4331,1); @@ -432,7 +432,7 @@ REPLACE INTO `mob_db` VALUES (1361,'TREASURE_BOX38','Treasure Chest','Treasure C REPLACE INTO `mob_db` VALUES (1362,'TREASURE_BOX39','Treasure Chest','Treasure Chest',99,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,1,1,1,1,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); REPLACE INTO `mob_db` VALUES (1363,'TREASURE_BOX40','Treasure Chest','Treasure Chest',99,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,1,1,1,1,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0); REPLACE INTO `mob_db` VALUES (1364,'G_ASSAULTER','Assaulter','Assaulter',59,18251,0,0,0,2,195,227,35,36,85,55,10,35,145,100,10,12,1,7,44,1173,155,1000,900,432,0,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1365,'APOCALIPS','Apocalypse','Apocalypse',66,22680,0,6540,4935,2,1030,1370,62,49,1,48,120,108,66,85,10,12,2,0,60,149,400,1840,1440,384,0,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,757,15,2506,20,999,2500,0,0,0,0,4242,1); +REPLACE INTO `mob_db` VALUES (1365,'APOCALIPS','Apocalypse','Apocalypse',66,22680,0,6540,4935,2,1030,1370,62,49,1,48,120,108,66,85,10,12,2,0,60,149,400,1840,1440,384,0,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,999,2500,0,0,0,0,4242,1); REPLACE INTO `mob_db` VALUES (1366,'LAVA_GOLEM','Lava Golem','Lava Golem',77,24324,0,6470,3879,1,1541,2049,65,50,1,57,115,70,76,68,10,12,2,0,83,149,400,2190,2040,336,0,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,0,0,0,0,0,0,0,0,4184,1); REPLACE INTO `mob_db` VALUES (1367,'BLAZZER','Blazer','Blazer',43,8252,0,3173,1871,2,533,709,50,40,1,52,50,39,69,40,10,12,0,6,43,149,180,1732,1332,540,0,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1); REPLACE INTO `mob_db` VALUES (1368,'GEOGRAPHER','Geographer','Geographer',56,8071,0,2715,2000,3,467,621,28,26,1,67,47,60,68,44,10,12,0,3,62,132,2000,1308,1008,480,0,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1); @@ -441,11 +441,11 @@ REPLACE INTO `mob_db` VALUES (1370,'SUCCUBUS','Succubus','Succubus',85,16955,0,5 REPLACE INTO `mob_db` VALUES (1371,'FAKE_ANGEL','Fake Angel','False Angel',65,16845,0,3371,1949,2,513,682,50,35,1,64,57,70,61,88,10,12,0,8,66,2181,160,920,720,336,0,0,0,0,0,0,0,0,7104,5335,7105,3500,717,1000,715,1000,716,1000,12020,1000,0,0,0,0,0,0,4316,1); REPLACE INTO `mob_db` VALUES (1372,'GOAT','Goat','Goat',69,11077,0,3357,2015,1,457,608,44,25,1,58,66,62,67,43,10,12,2,2,63,137,165,1380,1080,336,0,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1); REPLACE INTO `mob_db` VALUES (1373,'LORD_OF_DEATH','Lord of Death','Lord of the Dead',94,303383,0,131343,43345,2,2430,4104,77,73,1,99,120,169,100,106,10,12,2,6,67,1205,180,1446,1296,360,65671,10000,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1); -REPLACE INTO `mob_db` VALUES (1374,'INCUBUS','Incubus','Incubus',75,17281,0,5254,4212,1,1408,1873,58,46,1,97,95,150,89,87,10,12,1,6,67,1173,165,850,600,336,0,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,1200,0,0,0,0,4269,1); -REPLACE INTO `mob_db` VALUES (1375,'THE_PAPER','The Paper','The Paper',56,18557,0,2849,1998,1,845,1124,25,24,1,66,52,76,71,79,10,12,1,0,60,2181,170,1160,960,336,0,0,0,0,0,0,0,0,7111,4947,7112,3200,508,800,511,2000,0,0,0,0,0,0,13009,1,0,0,4172,1); +REPLACE INTO `mob_db` VALUES (1374,'INCUBUS','Incubus','Incubus',75,17281,0,5254,4212,1,1408,1873,58,46,1,97,95,150,89,87,10,12,1,6,67,1173,165,850,600,336,0,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1); +REPLACE INTO `mob_db` VALUES (1375,'THE_PAPER','The Paper','The Paper',56,18557,0,2849,1998,1,845,1124,25,24,1,66,52,76,71,79,10,12,1,0,60,2181,170,1160,960,336,0,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1); REPLACE INTO `mob_db` VALUES (1376,'HARPY','Harpy','Harpy',70,16599,0,3562,2133,1,956,1231,42,44,1,112,72,103,74,76,10,12,1,6,64,2181,155,972,672,470,0,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,0,0,0,0,0,0,0,0,4325,1); REPLACE INTO `mob_db` VALUES (1377,'ELDER','Elder','Elder',64,21592,0,4650,3408,3,421,560,45,68,1,76,68,108,72,86,10,12,2,7,80,2181,165,1552,1152,336,0,0,0,0,0,0,0,0,7099,4000,7117,1500,7118,1500,691,100,1473,1,616,1,7027,3000,0,0,0,0,4251,1); -REPLACE INTO `mob_db` VALUES (1378,'DEMON_PUNGUS','Demon Pungus','Demon Pungus',56,7259,0,3148,1817,1,360,479,48,31,1,83,55,59,63,34,10,12,0,6,65,2181,170,1260,960,672,0,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,0,0,0,0,0,0,0,0,0,0,0,0,4173,1); +REPLACE INTO `mob_db` VALUES (1378,'DEMON_PUNGUS','Demon Pungus','Demon Pungus',56,7259,0,3148,1817,1,360,479,48,31,1,83,55,59,63,34,10,12,0,6,65,2181,170,1260,960,672,0,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1); REPLACE INTO `mob_db` VALUES (1379,'NIGHTMARE_TERROR','Nightmare Terror','Nightmare Terror',78,22605,0,6683,4359,1,757,1007,37,37,1,76,55,60,77,54,10,12,2,6,67,2181,165,1216,816,432,0,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,0,0,1261,1,0,0,4166,1); REPLACE INTO `mob_db` VALUES (1380,'DRILLER','Driller','Driller',52,7452,0,3215,1860,1,666,886,48,31,1,66,58,50,60,47,10,12,1,2,22,2181,165,1300,900,336,0,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1); REPLACE INTO `mob_db` VALUES (1381,'GRIZZLY','Grizzly','Grizzly',68,11733,0,3341,2012,1,809,1076,44,32,1,54,68,58,70,61,10,12,2,2,63,2181,165,1492,1092,192,0,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,0,0,0,0,0,0,0,0,0,0,0,0,4162,1); @@ -458,7 +458,7 @@ REPLACE INTO `mob_db` VALUES (1387,'GIG','Gig','Gig',60,8409,0,3934,2039,1,360,4 REPLACE INTO `mob_db` VALUES (1388,'ARCHANGELING','Archangeling','Arc Angeling',60,79523,0,4152,2173,1,669,890,54,58,1,65,80,74,65,105,10,12,1,8,66,1205,180,1072,672,480,0,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1); REPLACE INTO `mob_db` VALUES (1389,'DRACULA','Dracula','Dracula',85,320096,0,120157,38870,3,1625,1891,45,76,1,95,90,87,85,100,10,12,2,6,87,1205,145,1290,1140,576,60078,10000,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1); REPLACE INTO `mob_db` VALUES (1390,'VIOLY','Violy','Violy',75,18257,0,6353,3529,10,738,982,37,36,1,93,54,85,101,83,10,12,1,7,40,133,170,1356,1056,540,0,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,2610,800,526,1400,12020,1000,1902,500,0,0,0,0,4209,1); -REPLACE INTO `mob_db` VALUES (1391,'GALAPAGO','Galapago','Galapago',63,9145,0,3204,1966,1,457,608,33,33,1,56,56,45,66,57,10,12,1,2,22,139,165,1430,1080,1080,0,0,0,0,0,0,0,0,7053,5335,610,1500,508,2500,606,100,605,100,5111,1,582,1000,0,0,0,0,4152,1); +REPLACE INTO `mob_db` VALUES (1391,'GALAPAGO','Galapago','Galapago',63,9145,0,3204,1966,1,457,608,33,33,1,56,56,45,66,57,10,12,1,2,22,139,165,1430,1080,1080,0,0,0,0,0,0,0,0,7053,5335,610,100,508,3500,606,100,605,100,5111,1,582,1000,0,0,0,0,4152,1); REPLACE INTO `mob_db` VALUES (1392,'ROTAR_ZAIRO','Rotar Zairo','Rotar Zairo',25,1209,0,351,215,7,109,137,4,34,1,62,45,26,55,5,10,12,1,0,44,133,155,2416,2016,432,0,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1); # //1393,G_MUMMY,Mummy,Mummy,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,2181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 # //1394,G_ZOMBIE,Zombie,Zombie,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,2181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -467,17 +467,17 @@ REPLACE INTO `mob_db` VALUES (1396,'CRYSTAL_2','Earth Crystal','Earth Crystal',1 REPLACE INTO `mob_db` VALUES (1397,'CRYSTAL_3','Fire Crystal','Fire Crystal',1,15,0,0,0,1,1,2,100,99,1,1,1,1,255,1,7,12,0,3,22,193,2000,300,300,1,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,5097,7000,534,6500,558,5000,604,300,0,0,0,0); REPLACE INTO `mob_db` VALUES (1398,'CRYSTAL_4','Water Crystal','Water Crystal',1,15,0,0,0,1,1,2,100,99,1,1,1,1,255,1,7,12,0,3,22,193,2000,300,300,1,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,5097,7000,533,6500,558,5000,603,100,0,0,0,0); REPLACE INTO `mob_db` VALUES (1399,'EVENT_BAPHO','Baphomet','Baphomet',68,864960,0,562340,87895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1205,130,768,768,576,281170,10000,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,2256,1550,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1400,'KARAKASA','Karakasa','Karakasa',30,3092,0,489,322,1,140,183,1,20,1,40,12,5,10,1,10,12,1,0,60,129,155,1638,2016,576,0,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,0,0,13013,1,0,0,4286,1); -REPLACE INTO `mob_db` VALUES (1401,'SHINOBI','Shinobi','Shinobi',69,12700,0,4970,3010,1,460,1410,34,21,1,85,25,25,100,100,10,12,1,7,67,1173,150,1003,1152,336,0,0,0,0,0,0,0,0,7156,5335,2337,2,7053,2200,2335,2,2336,1,7157,2000,739,15,13013,1,0,0,4230,1); +REPLACE INTO `mob_db` VALUES (1400,'KARAKASA','Karakasa','Karakasa',30,3092,0,489,322,1,140,183,1,20,1,40,12,5,10,1,10,12,1,0,60,129,155,1638,2016,576,0,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1); +REPLACE INTO `mob_db` VALUES (1401,'SHINOBI','Shinobi','Shinobi',69,12700,0,4970,3010,1,460,1410,34,21,1,85,25,25,100,100,10,12,1,7,67,1173,150,1003,1152,336,0,0,0,0,0,0,0,0,7156,5335,2337,2,7053,2200,2335,2,2336,1,7157,2000,13013,5,0,0,2654,1,4230,1); REPLACE INTO `mob_db` VALUES (1402,'POISON_TOAD','Poison Toad','Poison Toad',46,6629,0,1929,1457,1,288,408,5,10,1,34,19,14,66,55,10,12,1,2,45,129,160,1148,1728,864,0,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1); -REPLACE INTO `mob_db` VALUES (1403,'ANTIQUE_FIRELOCK','Antique Firelock','Firelock Soldier',47,3852,0,1293,1003,9,289,336,10,10,1,37,29,15,101,15,10,12,1,1,49,133,170,1084,2304,576,0,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,20,549,350,525,250,0,0,13152,2,0,0,4160,1); -REPLACE INTO `mob_db` VALUES (1404,'MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',33,6300,0,795,493,1,250,305,1,20,1,31,15,10,47,15,10,12,1,6,27,145,250,1938,2112,768,0,0,0,0,0,0,0,0,7152,5335,7153,2500,509,550,1000,1250,12127,10,7005,100,1904,2,0,0,0,0,4208,1); -REPLACE INTO `mob_db` VALUES (1405,'TENGU','Tengu','Tengu',65,16940,0,4207,2843,2,660,980,12,82,1,45,69,45,75,25,10,12,2,6,42,2181,200,1439,1920,672,0,0,0,0,0,0,0,0,7159,3500,7158,5500,7063,25,522,150,999,80,12128,20,687,100,13301,2,0,0,4282,1); -REPLACE INTO `mob_db` VALUES (1406,'KAPHA','Kapha','Kapha',41,7892,0,2278,1552,3,399,719,20,38,1,65,49,22,73,140,10,12,1,5,21,2181,165,2012,1728,672,0,0,0,0,0,0,0,0,7149,6500,7053,3500,520,1500,521,2300,708,2,1915,10,640,1,0,0,0,0,4287,1); +REPLACE INTO `mob_db` VALUES (1403,'ANTIQUE_FIRELOCK','Antique Firelock','Firelock Soldier',47,3852,0,1293,1003,9,289,336,10,10,1,37,29,15,101,15,10,12,1,1,49,133,170,1084,2304,576,0,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1); +REPLACE INTO `mob_db` VALUES (1404,'MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',33,6300,0,795,493,1,250,305,1,20,1,31,15,10,47,15,10,12,1,6,27,145,250,1938,2112,768,0,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1); +REPLACE INTO `mob_db` VALUES (1405,'TENGU','Tengu','Tengu',65,16940,0,4207,2843,2,660,980,12,82,1,45,69,45,75,25,10,12,2,6,42,2181,200,1439,1920,672,0,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1); +REPLACE INTO `mob_db` VALUES (1406,'KAPHA','Kapha','Kapha',41,7892,0,2278,1552,3,399,719,20,38,1,65,49,22,73,140,10,12,1,5,21,2181,165,2012,1728,672,0,0,0,0,0,0,0,0,7149,6500,7053,3500,520,1500,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1); # //1407,DOKEBI_,Dokebi,Dokebi,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 REPLACE INTO `mob_db` VALUES (1408,'BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',57,8082,0,2119,1562,2,354,575,5,23,1,65,35,37,116,30,10,13,1,4,44,141,145,472,576,288,0,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1); REPLACE INTO `mob_db` VALUES (1409,'RICE_CAKE_BOY','Rice Cake Boy','Dumpling Child',27,2098,0,231,149,1,112,134,5,12,1,22,29,5,41,10,10,13,0,7,20,145,160,647,768,420,0,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1); -REPLACE INTO `mob_db` VALUES (1410,'LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',55,10050,0,2591,1799,10,482,603,10,38,1,45,120,39,120,55,10,13,1,3,42,132,410,400,672,480,0,0,0,0,0,0,0,0,7164,4365,0,0,526,1000,604,400,532,100,603,3,0,0,0,0,0,0,4217,1); +REPLACE INTO `mob_db` VALUES (1410,'LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',55,10050,0,2591,1799,10,482,603,10,38,1,45,120,39,120,55,10,13,1,3,42,132,410,400,672,480,0,0,0,0,0,0,0,0,7164,4365,0,0,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1); # //1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, REPLACE INTO `mob_db` VALUES (1412,'EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',57,15003,0,3304,2198,9,620,899,25,59,1,66,21,76,130,79,10,13,2,0,40,133,190,480,840,432,0,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1); REPLACE INTO `mob_db` VALUES (1413,'WILD_GINSENG','Wild Ginseng','Hermit Plant',46,6900,0,1038,692,1,220,280,10,20,1,42,36,55,66,30,10,13,0,3,43,145,140,512,756,360,0,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,516,4800,1951,1,578,1000,0,0,0,0,4232,1); @@ -504,7 +504,7 @@ REPLACE INTO `mob_db` VALUES (1433,'G_DEVIRUCHI','Deviruchi','Deviruchi',46,6666 REPLACE INTO `mob_db` VALUES (1434,'G_DRAINLIAR','Drainliar','Drainliar',24,1162,0,0,0,1,74,84,0,0,1,36,24,1,78,1,10,12,0,2,47,2181,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1435,'G_EVIL_DRUID','Evil Druid','Evil Druid',58,16506,0,0,0,1,420,670,5,60,1,29,58,80,68,30,10,12,2,1,89,2693,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1436,'G_JAKK','Jakk','Jakk',38,3581,0,0,0,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,2181,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1437,'G_JOKER','Joker','Joker',57,12450,0,0,0,1,621,738,10,35,1,143,47,75,98,175,10,12,2,7,84,2181,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1437,'G_JOKER','Joker','Joker',57,12450,0,0,0,1,621,738,10,35,1,143,47,75,98,175,10,12,2,7,84,2181,100,1364,864,432,0,0,0,0,0,0,0,0,7025,9990,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1438,'G_KHALITZBURG','Khalitzburg','Khalitzburg',63,19276,0,0,0,1,875,1025,45,10,1,65,48,5,73,40,10,12,2,1,29,2693,175,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1439,'G_HIGH_ORC','High Orc','High Orc',52,6890,0,0,0,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,2181,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1440,'G_STEM_WORM','Stem Worm','Stem Worm',40,6136,0,0,0,2,290,375,5,10,1,30,26,15,79,35,10,12,1,3,24,2181,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -560,7 +560,7 @@ REPLACE INTO `mob_db` VALUES (1489,'G_STING','Sting','Sting',61,9500,0,0,0,1,850 REPLACE INTO `mob_db` VALUES (1490,'G_WANDER_MAN','Wander Man','Wanderer',74,8170,0,0,0,2,750,1000,5,5,1,192,38,45,127,85,10,12,1,6,24,2693,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1491,'G_DOKEBI','Dokebi','Dokebi',33,2697,0,0,0,1,197,249,0,10,1,50,40,35,69,40,10,12,0,6,27,2181,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # //Umbala -REPLACE INTO `mob_db` VALUES (1492,'INCANTATION_SAMURAI','Incantation Samurai','Samurai Specter',71,218652,0,53600,5000,1,1219,2169,10,51,1,85,78,85,150,60,10,12,2,7,67,1205,135,874,1344,576,26800,10000,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,504,7500,1235,80,13303,10,0,0,4263,1); +REPLACE INTO `mob_db` VALUES (1492,'INCANTATION_SAMURAI','Incantation Samurai','Samurai Specter',71,218652,0,53600,5000,1,1219,2169,10,51,1,85,78,85,150,60,10,12,2,7,67,1205,135,874,1344,576,26800,10000,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1); REPLACE INTO `mob_db` VALUES (1493,'DRYAD','Dryad','Dryad',50,8791,0,2763,1493,3,499,589,15,33,1,75,55,1,78,45,10,12,1,3,82,2181,170,950,2520,576,0,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,1951,80,1964,1,2270,10,7100,3000,0,0,0,0,4177,1); REPLACE INTO `mob_db` VALUES (1494,'KIND_OF_BEETLE','Beetle King','Beetle King',34,1874,0,679,442,1,191,243,45,12,1,34,10,1,50,1,10,12,0,4,22,137,165,1247,768,576,0,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1); REPLACE INTO `mob_db` VALUES (1495,'STONE_SHOOTER','Stone Shooter','Stone Shooter',42,4104,0,1238,752,9,309,350,12,45,1,40,20,79,92,20,10,12,1,3,63,2181,175,2413,1248,768,0,0,0,0,0,0,0,0,7203,5000,7201,3000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1); @@ -588,7 +588,7 @@ REPLACE INTO `mob_db` VALUES (1514,'DANCING_DRAGON','Dancing Dragon','Zhu Po Lon REPLACE INTO `mob_db` VALUES (1515,'GARM_BABY','Garm Baby','Garm Baby',61,20119,0,1022,2980,1,680,1179,34,13,45,30,56,55,85,30,10,12,1,2,41,2181,450,879,672,576,0,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1); REPLACE INTO `mob_db` VALUES (1516,'INCREASE_SOIL','Increase Soil','Mi Gao',51,8230,0,2760,2110,1,560,700,30,12,40,45,23,12,69,12,10,12,1,0,62,145,445,106,1056,576,0,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1); REPLACE INTO `mob_db` VALUES (1517,'LI_ME_MANG_RYANG','Li Me Mang Ryang','Jing Guai',48,5920,0,1643,1643,1,434,633,23,16,46,51,19,8,57,30,10,12,2,6,62,2181,165,1120,576,420,0,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1); -REPLACE INTO `mob_db` VALUES (1518,'BACSOJIN','Bacsojin','White Lady',85,253221,0,45250,16445,1,1868,6124,20,55,1,65,44,112,152,35,10,12,2,7,64,2213,160,576,960,480,22625,10000,607,500,608,500,985,500,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,0,0,2234,1,0,0,4372,1); +REPLACE INTO `mob_db` VALUES (1518,'BACSOJIN','Bacsojin','White Lady',85,253221,0,45250,16445,1,1868,6124,20,55,1,65,44,112,152,35,10,12,2,7,64,2213,160,576,960,480,0,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,0,0,2234,1,0,0,4372,1); REPLACE INTO `mob_db` VALUES (1519,'CHUNG_E','Chung E','Green Maiden',59,23900,0,4256,920,1,60,105,8,15,1,65,144,30,90,15,10,12,1,7,44,2181,170,1728,816,1188,0,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,0,0,0,0,0,0,5042,2,0,0,4373,1); REPLACE INTO `mob_db` VALUES (1520,'BOILED_RICE','Boiled Rice','Boiled Rice',14,344,0,81,44,1,59,72,0,10,1,14,14,0,19,15,10,12,1,6,21,129,170,1152,672,672,0,0,0,0,0,0,0,0,564,5500,7272,3000,7194,1000,7198,1000,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1521,'G_ALICE','Alice','Alice',62,10000,0,0,0,1,550,700,5,5,1,64,42,85,100,130,10,12,1,7,60,145,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -686,7 +686,7 @@ REPLACE INTO `mob_db` VALUES (1610,'A_MUNAK','Munak','Munak',30,2872,0,0,0,1,150 REPLACE INTO `mob_db` VALUES (1611,'A_BON_GUN','Bongun','Bongun',32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,29,149,200,1720,500,420,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); REPLACE INTO `mob_db` VALUES (1612,'A_HYEGUN','Hyegun','Yao Jun',56,9981,0,0,0,3,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,49,133,180,890,1320,720,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); # //Einbroch -REPLACE INTO `mob_db` VALUES (1613,'METALING','Metaling','Metaling',26,889,0,492,249,1,135,270,5,3,20,15,10,18,35,2,10,12,0,0,20,131,300,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,512,500,7312,5000,13103,2,0,0,4341,1); +REPLACE INTO `mob_db` VALUES (1613,'METALING','Metaling','Metaling',26,889,0,492,249,1,135,270,5,3,20,15,10,18,35,2,10,12,0,0,20,131,300,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1); REPLACE INTO `mob_db` VALUES (1614,'MINERAL','Mineral','Mineral',56,7950,0,3563,1768,1,723,812,29,15,50,52,35,21,77,32,10,12,0,0,40,145,250,648,480,360,0,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1); REPLACE INTO `mob_db` VALUES (1615,'OBSIDIAN','Obsidian','Obsidian',50,8812,0,3002,2202,1,841,980,35,5,50,32,42,24,71,55,10,12,0,0,42,141,350,720,864,504,0,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1); REPLACE INTO `mob_db` VALUES (1616,'PITMAN','Pitman','Pitman',43,5015,0,1799,1083,1,290,486,22,12,50,15,5,5,52,36,10,12,2,1,42,145,180,960,336,300,0,0,0,0,0,0,0,0,7318,3000,7319,500,998,800,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1); @@ -695,7 +695,7 @@ REPLACE INTO `mob_db` VALUES (1618,'UNGOLIANT','Ungoliant','Ungoliant',69,29140, REPLACE INTO `mob_db` VALUES (1619,'PORCELLIO','Porcellio','Porcellio',28,1654,0,512,346,1,82,247,0,8,30,31,21,50,54,85,10,12,0,4,62,131,150,720,360,360,0,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1); REPLACE INTO `mob_db` VALUES (1620,'NOXIOUS','Noxious','Noxious',35,2038,0,698,698,1,299,400,0,35,30,41,10,30,44,2,10,12,1,0,68,141,350,768,1440,672,0,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,0,0,0,0,0,0,603,1,0,0,4334,1); REPLACE INTO `mob_db` VALUES (1621,'VENOMOUS','Venomous','Venomous',42,4653,0,1780,1280,1,422,844,0,42,30,60,17,19,58,1,10,12,1,0,25,141,350,768,1440,672,0,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,0,0,0,0,0,0,603,1,0,0,4333,1); -REPLACE INTO `mob_db` VALUES (1622,'TEDDY_BEAR','Teddy Bear','Teddy Bear',71,8109,0,5891,3445,1,559,1352,19,27,70,179,32,41,121,26,10,12,0,0,60,149,200,512,780,504,0,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,538,1000,5113,50,2652,10,985,100,13106,1,0,0,4340,1); +REPLACE INTO `mob_db` VALUES (1622,'TEDDY_BEAR','Teddy Bear','Teddy Bear',71,8109,0,5891,3445,1,559,1352,19,27,70,179,32,41,121,26,10,12,0,0,60,149,200,512,780,504,0,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1); REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',86,280733,0,31010,32011,1,2740,5620,39,41,1,51,75,25,93,84,10,12,2,0,60,1205,220,128,1104,240,15505,10000,607,5500,5104,3500,732,5500,7093,6000,999,5000,644,5000,617,1000,7327,5000,1242,50,1531,20,1230,10,0,0,4342,1); REPLACE INTO `mob_db` VALUES (1624,'G_WASTE_STOVE','Waste Stove','Old Stove',68,15895,0,0,0,1,692,1081,23,10,60,69,55,5,59,77,10,12,2,0,20,645,300,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1625,'G_PORCELLIO','Porcellio','Porcellio',28,1654,0,0,0,1,82,247,0,8,30,31,21,50,54,85,10,12,0,4,62,131,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -703,7 +703,7 @@ REPLACE INTO `mob_db` VALUES (1625,'G_PORCELLIO','Porcellio','Porcellio',28,1654 REPLACE INTO `mob_db` VALUES (1626,'G_DARK_PRIEST','Hellion Revenant','Hellion Revenant',88,286900,0,1,1,2,50,3150,25,50,1,80,50,99,130,99,10,12,1,6,69,181,150,432,384,192,0,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0); # //Lighthalzen REPLACE INTO `mob_db` VALUES (1627,'ANOPHELES','Anopheles','Anopheles',23,100,0,99,55,1,48,63,0,90,1,200,4,5,120,23,10,12,0,4,64,133,200,140,864,430,0,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1); -REPLACE INTO `mob_db` VALUES (1628,'MOLE','Mole','Holden',36,2209,0,268,172,1,53,63,0,5,1,18,23,30,45,5,10,12,0,2,42,131,300,140,960,504,0,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,0,0,0,0,0,0,0,0,13101,3,0,0,4343,1); +REPLACE INTO `mob_db` VALUES (1628,'MOLE','Mole','Holden',36,2209,0,268,172,1,53,63,0,5,1,18,23,30,45,5,10,12,0,2,42,131,300,140,960,504,0,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1); REPLACE INTO `mob_db` VALUES (1629,'HILL_WIND','Hill Wind','Hill Wind',43,3189,0,1800,1100,1,290,480,10,15,1,42,31,50,51,23,10,12,1,2,64,671,200,336,540,432,0,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1); REPLACE INTO `mob_db` VALUES (1630,'BACSOJIN_','Bacsojin','White Lady',85,253221,0,45250,16445,1,1868,6124,20,55,1,65,44,112,152,35,10,12,2,7,64,1973,130,576,960,480,22625,10000,607,5500,2513,2000,617,5000,1020,5500,603,5000,617,3000,7165,3000,7166,1000,747,500,0,0,2234,10,0,0,4372,1); REPLACE INTO `mob_db` VALUES (1631,'CHUNG_E_','Chung E','Green Maiden',59,23900,0,4256,920,1,60,105,8,15,1,65,144,30,90,15,10,12,1,7,44,145,150,1728,816,1188,0,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,0,0,0,0,0,0,5042,50,0,0,4373,1); @@ -724,12 +724,12 @@ REPLACE INTO `mob_db` VALUES (1643,'G_MAGALETA','High Priest Magaleta','High Pri REPLACE INTO `mob_db` VALUES (1644,'G_SHECIL','Sniper Shecil','Sniper Cecil',99,209000,0,18000,10000,9,1892,5113,22,35,1,145,27,49,134,80,10,12,1,7,64,1725,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); REPLACE INTO `mob_db` VALUES (1645,'G_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,189920,0,18000,10000,1,497,2094,10,82,1,56,39,180,110,39,10,12,1,7,68,1725,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); # //MVP Monsters -REPLACE INTO `mob_db` VALUES (1646,'B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,4835600,1569970,1,7238,11040,72,37,1,81,94,110,130,52,10,12,1,7,63,1973,100,76,384,288,2417800,10000,617,5500,603,5000,732,2000,1132,3000,2342,4000,2412,9000,1470,4000,1469,3500,1166,3000,1415,2000,1169,3000,0,0,4357,1); -REPLACE INTO `mob_db` VALUES (1647,'B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,4083400,1592380,1,4189,8289,37,39,1,181,62,37,122,60,10,12,1,7,85,1973,100,76,384,288,2041700,10000,617,5500,603,5000,732,2000,1234,2000,1230,2000,2319,9000,1233,4000,1232,4000,1265,4000,13002,4000,1231,3000,0,0,4359,1); -REPLACE INTO `mob_db` VALUES (1648,'B_HARWORD','Whitesmith Harword','Whitesmith Howard',99,1460000,0,4002340,1421000,1,7822,8251,66,36,1,73,112,35,136,60,10,12,1,7,82,1973,100,76,384,288,2001170,10000,617,5500,603,5000,732,2000,1138,4000,1140,3000,2318,9000,1365,4000,1364,4000,1369,3000,1368,4000,1363,4000,0,0,4361,1); -REPLACE INTO `mob_db` VALUES (1649,'B_MAGALETA','High Priest Magaleta','High Priest Margaretha',99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,66,1973,125,1152,384,288,2128500,10000,617,5500,603,5000,732,2000,1814,4000,2615,3000,2513,9000,1557,4000,1527,4000,1528,3000,1560,4000,1526,4000,0,0,4363,1); -REPLACE INTO `mob_db` VALUES (1650,'B_SHECIL','Sniper Shecil','Sniper Cecil',99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,1973,100,76,384,288,2046500,10000,617,5500,603,5000,1723,2000,1228,4000,1236,4000,617,9000,1234,2000,1237,4000,1722,4000,1724,3000,1720,2000,0,0,4367,1); -REPLACE INTO `mob_db` VALUES (1651,'B_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,1973,150,1152,384,288,2004100,10000,617,5500,603,5000,732,2000,1241,4000,1242,4000,2616,9000,2343,3000,2513,3000,1618,3500,1620,3500,2319,4000,0,0,4365,1); +REPLACE INTO `mob_db` VALUES (1646,'B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,4835600,1569970,1,7238,11040,72,37,1,81,94,110,130,52,10,12,1,7,63,1973,100,76,384,288,2417800,10000,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,1169,2500,0,0,4357,1); +REPLACE INTO `mob_db` VALUES (1647,'B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,4083400,1592380,1,4189,8289,37,39,1,181,62,37,122,60,10,12,1,7,85,1973,100,76,384,288,2041700,10000,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,1231,2500,0,0,4359,1); +REPLACE INTO `mob_db` VALUES (1648,'B_HARWORD','Whitesmith Harword','Whitesmith Howard',99,1460000,0,4002340,1421000,1,7822,8251,66,36,1,73,112,35,136,60,10,12,1,7,82,1973,100,76,384,288,2001170,10000,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,1363,3500,0,0,4361,1); +REPLACE INTO `mob_db` VALUES (1649,'B_MAGALETA','High Priest Magaleta','High Priest Margaretha',99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,66,1973,125,1152,384,288,2128500,10000,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,1526,3500,0,0,4363,1); +REPLACE INTO `mob_db` VALUES (1650,'B_SHECIL','Sniper Shecil','Sniper Cecil',99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,1973,100,76,384,288,2046500,10000,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1722,3500,1724,2500,1720,1500,0,0,4367,1); +REPLACE INTO `mob_db` VALUES (1651,'B_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,1973,150,1152,384,288,2004100,10000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,1620,3500,2319,3500,0,0,4365,1); # //1'st Class Mobs REPLACE INTO `mob_db` VALUES (1652,'YGNIZEM','Ygnizem','Egnigem Cenia',58,11200,0,4870,98,1,723,1112,35,12,1,35,52,18,70,20,10,12,1,7,43,1693,145,576,432,288,0,0,0,0,0,0,0,0,7347,1000,644,10,1158,20,1127,20,2313,10,1152,80,1170,1,2317,1,0,0,4346,1); REPLACE INTO `mob_db` VALUES (1653,'WHIKEBAIN','Whikebain','Wickebine Tres',62,7320,0,4204,21,1,593,789,9,12,1,102,34,20,74,30,10,12,1,7,65,1693,120,576,432,288,0,0,0,0,0,0,0,0,7345,2000,644,10,2306,40,1220,10,2315,2,1208,50,13004,10,1223,1,0,0,4348,1); @@ -745,30 +745,30 @@ REPLACE INTO `mob_db` VALUES (1661,'G_EREND','Erend','Errende Ebecee',59,6980,0, REPLACE INTO `mob_db` VALUES (1662,'G_KAVAC','Kavac','Kavach Icarus',60,7899,0,0,0,9,584,804,14,5,1,75,10,15,108,40,10,12,1,7,44,1693,150,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1663,'G_RAWREL','Rawrel','Laurell Weinder',61,6168,0,0,0,1,330,417,8,48,1,41,5,120,45,10,10,12,1,7,48,3229,150,1008,964,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1664,'POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,3900,1800,7,800,900,10,30,1,40,25,20,80,80,10,12,1,0,40,157,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1665,'POTON_CANON_1','Photon Cannon','Photon Cannon',67,7500,0,4300,2000,7,700,800,15,30,1,40,30,40,86,80,10,12,1,0,40,157,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1665,'POTON_CANON_1','Photon Cannon','Photon Cannon',67,7500,0,4300,2000,7,700,800,15,30,1,40,30,40,86,80,10,12,1,0,40,157,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1666,'POTON_CANON_2','Photon Cannon','Photon Cannon',64,7100,0,3100,2700,7,800,900,8,30,1,40,21,29,80,91,10,12,1,0,40,157,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1667,'POTON_CANON_3','Photon Cannon','Photon Cannon',65,7800,0,3800,2300,7,700,800,15,30,1,40,23,30,90,99,10,12,1,0,40,157,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1668,'ARCHDAM','Archdam','Archdam',79,25000,0,8000,100,1,1000,2000,15,15,1,65,35,75,75,15,10,12,2,7,60,157,180,580,288,360,0,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,0,0,0,0,0,0,0,0,0,0,4371,1); +REPLACE INTO `mob_db` VALUES (1668,'ARCHDAM','Archdam','Archdam',79,25000,0,8000,100,1,1000,2000,15,15,1,65,35,75,75,15,10,12,2,7,60,157,180,580,288,360,0,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,0,0,0,0,0,0,0,0,4371,1); REPLACE INTO `mob_db` VALUES (1669,'DIMIK','Dimik','Dimik',77,10000,0,0,0,7,840,1480,45,28,1,35,41,15,120,40,10,12,1,0,40,157,175,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1670,'DIMIK_1','Dimik','Dimik',79,16000,0,6400,3500,7,1140,1980,45,28,1,88,20,20,120,40,10,12,1,0,44,157,175,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7352,50,999,500,7094,500,999,500,984,10,12128,50,13157,1,2656,1,4370,1); -REPLACE INTO `mob_db` VALUES (1671,'DIMIK_2','Dimik','Dimik',89,29000,0,8000,5000,7,1440,2280,45,28,1,40,30,30,150,70,10,12,1,0,41,157,175,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7353,50,999,500,7094,500,999,500,984,10,12128,50,13157,1,2656,1,4370,1); -REPLACE INTO `mob_db` VALUES (1672,'DIMIK_3','Dimik','Dimik',80,19000,0,5900,2800,7,1240,2080,68,28,1,30,78,20,120,30,10,12,1,0,42,157,175,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7354,50,999,500,7094,500,999,500,984,10,12128,50,13157,1,2656,1,4370,1); -REPLACE INTO `mob_db` VALUES (1673,'DIMIK_4','Dimik','Dimik',82,13900,0,5800,4500,7,1840,2840,45,28,1,20,20,10,120,30,10,12,1,0,43,157,175,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7355,50,999,500,7094,500,999,500,984,10,12128,50,13157,1,2656,1,4370,1); +REPLACE INTO `mob_db` VALUES (1670,'DIMIK_1','Dimik','Dimik',79,16000,0,6400,3500,7,1140,1980,45,28,1,88,20,20,120,40,10,12,1,0,44,157,175,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7352,50,999,500,7094,500,13153,5,984,10,12128,50,0,0,2656,1,4370,1); +REPLACE INTO `mob_db` VALUES (1671,'DIMIK_2','Dimik','Dimik',89,29000,0,8000,5000,7,1440,2280,45,28,1,40,30,30,150,70,10,12,1,0,41,157,175,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7353,50,999,500,7094,500,999,500,984,10,12128,50,0,0,2656,1,4370,1); +REPLACE INTO `mob_db` VALUES (1672,'DIMIK_3','Dimik','Dimik',80,19000,0,5900,2800,7,1240,2080,68,28,1,30,78,20,120,30,10,12,1,0,42,157,175,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7354,50,999,500,7094,500,999,500,984,10,12128,50,0,0,2656,1,4370,1); +REPLACE INTO `mob_db` VALUES (1673,'DIMIK_4','Dimik','Dimik',82,13900,0,5800,4500,7,1840,2840,45,28,1,20,20,10,120,30,10,12,1,0,43,157,175,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7355,50,999,500,7094,500,999,500,984,10,12128,50,0,0,2656,1,4370,1); REPLACE INTO `mob_db` VALUES (1674,'MONEMUS','Monemus','Monemus',88,80000,0,0,0,5,2000,3000,26,52,1,1,90,124,74,45,10,12,2,0,63,164,400,1368,1344,432,0,0,0,0,0,0,0,0,7049,2000,953,1000,7049,0,7049,0,7049,0,7049,0,7049,0,7049,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1675,'VENATU','Venatu','Venatu',77,8000,0,0,0,3,1200,1800,35,20,1,26,24,5,75,40,10,12,1,0,43,157,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1676,'VENATU_1','Venatu','Venatu',72,8900,0,4000,2000,3,800,1400,30,20,1,26,24,5,82,30,10,12,1,0,40,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7356,350,999,500,7094,500,999,500,985,10,12127,100,13157,1,2656,1,4369,1); -REPLACE INTO `mob_db` VALUES (1677,'VENATU_2','Venatu','Venatu',80,9000,0,4000,2000,3,900,1500,30,20,1,82,32,5,105,30,10,12,1,0,44,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7357,500,999,500,7094,500,999,500,985,10,12127,100,13157,1,2656,1,4369,1); -REPLACE INTO `mob_db` VALUES (1678,'VENATU_3','Venatu','Venatu',78,9500,0,4500,2000,3,800,1400,30,20,1,26,68,5,95,30,10,12,1,0,42,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7358,400,999,500,7094,500,999,500,985,10,12127,100,13157,1,2656,1,4369,1); -REPLACE INTO `mob_db` VALUES (1679,'VENATU_4','Venatu','Venatu',75,12300,0,4000,2000,3,800,1400,30,20,1,26,24,5,100,30,10,12,1,0,41,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7359,300,999,500,7094,500,999,500,985,10,12127,100,13157,1,2656,1,4369,1); +REPLACE INTO `mob_db` VALUES (1676,'VENATU_1','Venatu','Venatu',72,8900,0,4000,2000,3,800,1400,30,20,1,26,24,5,82,30,10,12,1,0,40,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7356,350,999,500,7094,500,13157,5,985,10,12127,100,0,0,2656,1,4369,1); +REPLACE INTO `mob_db` VALUES (1677,'VENATU_2','Venatu','Venatu',80,9000,0,4000,2000,3,900,1500,30,20,1,82,32,5,105,30,10,12,1,0,44,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7357,500,999,500,7094,500,999,500,985,10,12127,100,0,0,2656,1,4369,1); +REPLACE INTO `mob_db` VALUES (1678,'VENATU_3','Venatu','Venatu',78,9500,0,4500,2000,3,800,1400,30,20,1,26,68,5,95,30,10,12,1,0,42,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7358,400,999,500,7094,500,999,500,985,10,12127,100,0,0,2656,1,4369,1); +REPLACE INTO `mob_db` VALUES (1679,'VENATU_4','Venatu','Venatu',75,12300,0,4000,2000,3,800,1400,30,20,1,26,24,5,100,30,10,12,1,0,41,157,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7359,300,999,500,7094,500,999,500,985,10,12127,100,0,0,2656,1,4369,1); REPLACE INTO `mob_db` VALUES (1680,'HILL_WIND_1','Hill Wind','Hill Wind',45,4233,0,2132,1722,1,320,510,10,15,1,42,31,50,67,23,10,12,1,2,64,157,170,504,480,360,0,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1); -REPLACE INTO `mob_db` VALUES (1681,'GEMINI','Gemini-S58','Gemini-S58',72,57870,0,22024,9442,1,2150,3030,60,45,1,75,70,77,105,55,10,12,1,0,61,189,200,1872,360,864,0,0,0,0,0,0,0,0,7005,3000,603,1000,7005,3000,546,500,547,400,7479,6,972,100,12040,300,0,0,4354,1); +REPLACE INTO `mob_db` VALUES (1681,'GEMINI','Gemini-S58','Gemini-S58',72,57870,0,22024,9442,1,2150,3030,60,45,1,75,70,77,105,55,10,12,1,0,61,189,200,1872,360,864,0,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,972,100,12040,300,0,0,4354,1); REPLACE INTO `mob_db` VALUES (1682,'REMOVAL','Removal','Remover',55,10289,0,3831,1278,1,558,797,5,20,1,20,56,35,57,20,10,12,1,1,49,157,250,1536,1056,1152,0,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1); REPLACE INTO `mob_db` VALUES (1683,'POTON_CANON_5','Photon Cannon','Photon Cannon',46,7000,0,2,1,1,560,570,5,10,1,1,1,1,1,1,10,12,1,0,43,669,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1684,'G_ARCHDAM','Archdam','Archdam',57,11000,0,0,0,1,600,700,15,15,1,65,35,75,75,15,10,12,2,8,60,157,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1685,'APOCALIPS_H','Vesper','Vesper',97,320700,0,200000,100000,2,4000,10000,50,54,1,50,60,70,160,150,10,12,2,2,46,165,180,504,912,432,100000,10000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,617,1000,2659,100,2660,100,2661,100,2662,100,13161,50,4374,1); +REPLACE INTO `mob_db` VALUES (1685,'APOCALIPS_H','Vesper','Vesper',97,320700,0,200000,100000,2,4000,10000,50,54,1,50,60,70,160,150,10,12,2,2,46,165,180,504,912,432,100000,10000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,4374,1); REPLACE INTO `mob_db` VALUES (1686,'ORC_BABY','Orc Baby','Orc Baby',21,912,0,220,220,1,135,270,10,10,1,15,10,18,35,2,10,12,1,7,42,653,200,2000,1000,500,0,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1); REPLACE INTO `mob_db` VALUES (1687,'GREEN_IGUANA','Green Iguana','Grove',54,6444,0,2400,2050,1,550,650,0,10,5,52,64,5,98,14,10,12,1,2,22,129,200,2000,1000,500,0,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,511,1,511,1,0,0,4377,1); -REPLACE INTO `mob_db` VALUES (1688,'LADY_TANEE','Lady Tanee','Lady Tanee',89,493000,0,64995,42222,9,450,2170,20,44,1,125,48,78,210,38,10,12,0,3,62,676,75,1564,864,576,32497,10000,617,750,753,2500,732,3000,12090,5000,634,4000,12129,1000,607,3000,985,5000,617,2000,1716,6000,5116,1000,0,0,4376,1); +REPLACE INTO `mob_db` VALUES (1688,'LADY_TANEE','Lady Tanee','Lady Tanee',89,493000,0,64995,42222,9,450,2170,20,44,1,125,48,78,210,38,10,12,0,3,62,676,75,1564,864,576,32497,10000,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,607,3000,985,5000,617,2000,1716,6000,5116,1000,0,0,4376,1); REPLACE INTO `mob_db` VALUES (1689,'G_BACSOJIN','Bacsojin','White Lady',72,56380,0,0,0,1,560,1446,10,51,1,85,78,85,150,60,10,12,2,7,44,1973,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1690,'G_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',58,9045,0,0,0,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,131,160,1120,552,511,0,0,0,0,0,0,0,0,12123,5000,12122,5000,12124,5000,663,5000,12123,5000,12122,5000,12124,5000,663,5000,0,0,0,0); REPLACE INTO `mob_db` VALUES (1691,'G_KRABEN','Kraben','Kraben',50,5880,0,0,0,1,125,765,5,42,1,125,1,66,75,50,10,12,1,0,48,141,100,1152,1536,576,0,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0); @@ -789,7 +789,7 @@ REPLACE INTO `mob_db` VALUES (1704,'THA_ODIUM','Thanatos Odium','Odium of Thanat REPLACE INTO `mob_db` VALUES (1705,'THA_DESPERO','Thanatos Despero','Despero of Thanatos',88,86666,0,62001,51220,1,2182,3082,38,39,1,167,79,92,151,120,10,12,2,1,88,165,150,584,576,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,0,0,0,0,2520,50,0,0,4397,1); REPLACE INTO `mob_db` VALUES (1706,'THA_MAERO','Thanatos Maero','Maero of Thanatos',83,62000,0,56699,63880,1,2022,2288,29,72,1,176,30,200,122,29,10,12,1,1,88,165,150,584,576,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,0,0,0,0,5128,50,0,0,4395,1); REPLACE INTO `mob_db` VALUES (1707,'THA_DOLOR','Thanatos Dolor','Dolor of Thanatos',83,59922,0,43200,51220,1,1392,2092,21,80,1,76,29,206,139,44,10,12,0,1,88,165,150,584,576,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,0,0,0,0,2354,50,0,0,4398,1); -REPLACE INTO `mob_db` VALUES (1708,'THANATOS','Thanatos','Thanatos Phantom',99,445660,0,3666000,2145060,1,3812,7483,35,35,1,108,122,86,147,32,10,10,2,6,88,1461,100,584,576,480,1833000,10000,603,5000,732,3000,616,4000,7444,1000,732,500,7450,5000,2342,5000,2412,5000,616,1000,12103,500,2655,500,2519,250,4399,1); +REPLACE INTO `mob_db` VALUES (1708,'THANATOS','Thanatos','Thanatos Phantom',99,445660,0,3666000,2145060,1,3812,7483,35,35,1,108,122,86,147,32,10,10,2,6,88,1461,100,584,576,480,1833000,10000,617,5500,603,5000,732,2000,7444,1000,732,500,7450,5000,2342,5000,2412,5000,616,1000,12103,500,2655,500,2519,250,4399,1); REPLACE INTO `mob_db` VALUES (1709,'G_THA_ODIUM','Thanatos Odium','Odium of Thanatos',92,72389,0,10000,5000,7,2100,2800,68,30,1,52,165,62,185,90,10,12,2,1,88,165,150,396,384,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1710,'G_THA_DESPERO','Thanatos Despero','Despero of Thanatos',88,86666,0,10000,5000,1,2182,3082,38,39,1,167,79,92,151,120,10,12,2,1,88,165,150,584,576,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1711,'G_THA_MAERO','Thanatos Maero','Maero of Thanatos',83,62000,0,10000,5000,1,2022,2288,29,72,1,176,30,200,122,29,10,12,1,1,88,165,150,584,576,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -800,7 +800,7 @@ REPLACE INTO `mob_db` VALUES (1715,'NOVUS','Novus','Novus',42,5430,0,1320,1002,1 REPLACE INTO `mob_db` VALUES (1716,'ACIDUS_','Acidus','Acidus',76,39111,0,14392,4203,1,1180,2000,31,47,1,78,31,93,88,52,10,12,2,9,41,133,155,800,672,480,0,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,500,996,20,0,0,0,0,0,0,4379,1); REPLACE INTO `mob_db` VALUES (1717,'FERUS_','Ferus','Ferus',69,21182,0,6750,2230,1,930,1170,24,38,1,90,100,100,80,70,10,12,2,9,42,133,120,480,472,480,0,0,0,0,0,0,0,0,579,5100,1035,1000,0,0,1036,3589,7445,500,997,20,0,0,0,0,0,0,4381,1); REPLACE INTO `mob_db` VALUES (1718,'NOVUS_','Novus','Novus',43,5830,0,1411,1100,1,314,414,24,28,1,60,43,39,119,43,10,12,0,9,20,133,120,584,576,480,0,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1); -REPLACE INTO `mob_db` VALUES (1719,'DETALE','Detale','Detardeurus',90,480000,0,291850,123304,1,4560,5548,66,59,1,90,112,136,140,56,10,12,2,9,67,1461,400,750,672,480,145925,10000,617,3000,969,2500,732,5000,969,4000,617,4000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,2648,50,2649,50,4386,1); +REPLACE INTO `mob_db` VALUES (1719,'DETALE','Detale','Detardeurus',90,480000,0,291850,123304,1,4560,5548,66,59,1,90,112,136,140,56,10,12,2,9,67,1461,400,750,672,480,145925,10000,617,5500,603,5000,732,2000,969,4000,617,4000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,2648,50,2649,50,4386,1); REPLACE INTO `mob_db` VALUES (1720,'HYDRO','Hydro','Hydrolancer',89,308230,0,83450,2480,1,2554,3910,52,62,1,96,110,86,94,32,10,12,2,9,47,165,150,800,672,480,0,0,0,0,0,0,0,0,7443,3880,7444,100,1166,100,12085,300,12040,200,0,0,5124,50,5127,50,5126,50,4384,1); REPLACE INTO `mob_db` VALUES (1721,'DRAGON_EGG','Dragon Egg','Dragon Egg',43,18322,0,6740,0,1,1,2,78,60,1,1,56,67,1,63,10,12,1,9,40,0,400,1872,672,480,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1); REPLACE INTO `mob_db` VALUES (1722,'G_JAKK_','Jakk','Jakk',38,3581,0,0,0,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,2181,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -815,44 +815,44 @@ REPLACE INTO `mob_db` VALUES (1730,'G_DEVIRUCHI_','Deviruchi','Deviruchi',46,666 REPLACE INTO `mob_db` VALUES (1731,'G_DOPPELGANGER','Doppelganger','Doppelganger',72,249000,0,0,0,1,1340,1590,60,35,1,90,90,35,125,65,10,10,1,6,67,1205,100,480,480,288,0,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1732,'G_TREASURE_BOX','Treasure Chest','Treasure Chest',1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,1,1,1,1,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # // Kiel Dungeon monsters (done, but drop rates guessed) -REPLACE INTO `mob_db` VALUES (1733,'KIEL','Kiel','Kiel',90,523000,0,36500,23405,1,1682,3311,28,32,1,112,76,89,156,102,10,12,1,0,47,165,150,584,576,480,0,0,0,0,0,0,0,0,7513,2500,512,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',90,1523000,0,2356200,512602,1,3280,6560,28,32,1,130,140,160,199,180,10,12,1,0,47,1461,150,584,576,480,1178100,10000,617,1000,7513,500,0,0,7513,2500,2319,200,1618,100,1242,100,2621,10,0,0,0,0,2650,50,2651,50,4403,1); -REPLACE INTO `mob_db` VALUES (1735,'ALICEL','Alicel','Alicel',75,37520,0,8890,5420,1,1800,2770,30,30,1,58,50,51,92,40,10,12,1,6,60,133,170,972,672,480,0,0,0,0,0,0,0,0,7512,200,7507,200,999,250,7317,2500,1812,2,985,50,2504,3,2517,3,0,0,4401,1); -REPLACE INTO `mob_db` VALUES (1736,'ALIOT','Aliot','Aliot',75,48290,0,13020,4006,1,950,2470,35,15,1,32,87,12,68,19,10,12,1,6,60,133,170,972,672,480,0,0,0,0,0,0,0,0,7512,200,7507,200,999,250,7317,2500,1408,15,985,50,512,5,2516,3,0,0,4402,1); -REPLACE INTO `mob_db` VALUES (1737,'ALIZA','Aliza','Aliza',69,19000,0,6583,3400,1,750,1100,8,5,1,72,52,35,110,140,10,12,1,7,60,145,200,2304,502,480,0,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,2626,1,12128,10,661,5,2233,3,2518,5,0,0,4400,1); -REPLACE INTO `mob_db` VALUES (1738,'CONSTANT','Constant','Constant',55,10000,0,3230,116,1,460,580,12,12,1,28,26,47,66,14,10,12,0,0,67,133,120,972,500,288,0,0,0,0,0,0,0,0,7512,100,7507,100,7325,2000,999,125,757,100,512,5,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1739,'G_ALICEL','Alicel','Alicel',75,37520,0,0,0,1,1800,2770,30,30,1,58,50,51,92,40,10,12,1,6,60,133,170,972,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1740,'G_ALIOT','Aliot','Aliot',75,48290,0,0,0,1,950,2470,35,15,1,32,87,12,68,19,10,12,1,6,60,133,170,972,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1733,'KIEL','Kiel','Kiel',90,523000,0,36500,23405,1,1682,3311,28,32,1,112,76,89,156,102,10,12,1,0,47,165,150,584,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',90,1523000,0,2356200,512602,1,3280,6560,28,32,1,130,140,160,199,180,10,12,1,0,47,1461,150,584,576,480,1178100,10000,617,5500,603,5000,616,2000,7513,3000,617,3000,2621,100,2319,1000,1618,500,1242,500,0,0,2650,50,2651,50,4403,1); +REPLACE INTO `mob_db` VALUES (1735,'ALICEL','Alicel','Alicel',75,37520,0,8890,5420,1,1800,2770,30,30,1,58,50,51,92,40,10,12,1,6,60,133,170,972,672,480,0,0,0,0,0,0,0,0,7512,2000,7507,3000,999,200,7317,500,1812,5,985,10,2504,2,2517,3,0,0,4401,1); +REPLACE INTO `mob_db` VALUES (1736,'ALIOT','Aliot','Aliot',75,48290,0,13020,4006,1,950,2470,35,15,1,32,87,12,68,19,10,12,1,6,60,133,170,972,672,480,0,0,0,0,0,0,0,0,7512,2000,7507,3000,999,200,7317,500,1408,10,985,10,2102,2,2516,3,0,0,4402,1); +REPLACE INTO `mob_db` VALUES (1737,'ALIZA','Aliza','Aliza',69,19000,0,6583,3400,1,750,1100,8,5,1,72,52,35,110,140,10,12,1,7,60,145,200,2304,502,480,0,0,0,0,0,0,0,0,637,50,2407,5,2626,10,7047,5,12128,50,661,1,2233,3,2518,5,0,0,4400,1); +REPLACE INTO `mob_db` VALUES (1738,'CONSTANT','Constant','Constant',55,10000,0,3230,116,1,460,580,12,12,1,28,26,47,66,14,10,12,0,0,67,133,120,972,500,288,0,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1739,'G_ALICEL','Alicel','Alicel',75,37520,0,0,0,1,1800,2770,30,30,1,58,50,51,92,40,10,12,1,6,60,133,170,972,672,480,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1740,'G_ALIOT','Aliot','Aliot',75,48290,0,0,0,1,950,2470,35,15,1,32,87,12,68,19,10,12,1,6,60,133,170,972,672,480,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1741,'G_COOKIE_XMAS','Christmas Cookie','Christmas Cookie',28,2090,0,0,0,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,145,400,1248,1248,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1742,'G_CARAT','Carat','Carat',51,5200,0,0,0,1,330,417,0,25,1,41,45,5,85,155,10,12,1,6,44,1173,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1743,'G_MYSTCASE','Myst Case','Myst Case',38,3450,0,0,0,1,160,360,5,10,1,50,25,5,48,75,10,12,1,0,60,145,400,1248,1248,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1744,'G_WILD_ROSE','Wild Rose','Wild Rose',38,2980,0,0,0,1,315,360,0,15,1,85,15,35,65,80,10,12,0,2,24,131,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1745,'G_CONSTANT','Constant','Constant',55,10000,0,0,0,1,460,580,12,12,1,28,26,47,66,14,10,12,0,0,67,133,120,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1746,'G_ALIZA','Aliza','Aliza',69,19000,0,0,0,1,750,1100,8,5,1,72,52,35,110,140,10,12,1,7,60,145,200,2304,502,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1745,'G_CONSTANT','Constant','Constant',55,10000,0,0,0,1,460,580,12,12,1,28,26,47,66,14,10,12,0,0,67,133,120,972,500,288,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1746,'G_ALIZA','Aliza','Aliza',69,19000,0,0,0,1,750,1100,8,5,1,72,52,35,110,140,10,12,1,7,60,145,200,2304,502,480,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1747,'G_SNAKE','Snake','Boa',15,471,0,0,0,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,129,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1748,'G_ANACONDAQ','Anacondaq','Anacondaq',23,1109,0,0,0,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,145,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1749,'G_MEDUSA','Medusa','Medusa',79,16408,0,0,0,1,827,1100,48,38,1,74,50,57,77,69,10,12,1,6,40,1173,180,2000,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1750,'G_RED_PLANT','Red Plant','Red Plant',1,10,0,0,0,1,1,2,100,99,1,1,1,1,1,1,7,12,0,3,22,64,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # // Odin monsters (done, but drop rates guessed) -REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',99,3567200,0,2854900,3114520,1,5560,8980,25,42,1,120,80,120,220,210,10,12,2,8,86,165,150,584,576,480,1427450,10000,603,1000,617,500,617,250,7510,2500,2357,500,2524,500,2421,500,2115,500,2229,100,7024,100,2353,100,0,0,4407,1); -REPLACE INTO `mob_db` VALUES (1752,'SKOGUL','Skogul','Skogul',70,87544,0,27620,10,1,1110,1930,20,15,1,69,70,50,112,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7511,500,7054,3500,716,500,739,15,2609,30,757,200,0,0,0,0,0,0,4404,1); -REPLACE INTO `mob_db` VALUES (1753,'FRUS','Frus','Frus',69,83422,0,20620,10,1,1110,1780,20,15,1,69,60,50,123,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7511,500,7054,3500,716,500,2622,1,2308,10,757,200,0,0,0,0,0,0,4405,1); -REPLACE INTO `mob_db` VALUES (1754,'SKEGGIOLD','Skeggiold','Skeggiold',81,295200,0,91100,10,1,1400,2020,12,32,1,100,50,72,106,50,10,12,0,8,66,165,250,792,780,480,0,0,0,0,0,0,0,0,7511,1000,2254,5,7063,2500,608,100,983,20,2353,20,2322,20,2504,20,0,0,4406,1); -REPLACE INTO `mob_db` VALUES (1755,'SKEGGIOLD_','Skeggiold','Skeggiold',83,315200,0,99200,10,1,1600,2050,15,32,1,120,60,85,119,80,10,12,0,8,66,165,250,792,780,480,0,0,0,0,0,0,0,0,7511,1000,2254,5,7063,2500,608,100,978,20,2353,20,2322,20,2504,20,0,0,4406,1); +REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',99,3567200,0,2854900,3114520,1,5560,8980,25,42,1,120,80,120,220,210,10,12,2,8,86,165,120,396,384,480,1427450,10000,617,5500,603,5000,616,2000,7510,5000,2357,800,2524,1500,2421,1500,2229,2500,7024,2500,0,0,2353,800,0,0,4407,1); +REPLACE INTO `mob_db` VALUES (1752,'SKOGUL','Skogul','Skogul',70,87544,0,27620,10,1,1110,1930,20,15,1,69,70,50,112,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,0,0,0,0,0,0,4404,1); +REPLACE INTO `mob_db` VALUES (1753,'FRUS','Frus','Frus',69,83422,0,20620,10,1,1110,1780,20,15,1,69,60,50,123,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1); +REPLACE INTO `mob_db` VALUES (1754,'SKEGGIOLD','Skeggiold','Skeggiold',81,295200,0,91100,10,1,1400,2020,12,32,1,100,50,72,106,50,10,12,0,8,66,165,250,792,780,480,0,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,608,20,983,10,2322,100,2504,3,2353,20,0,0,4406,1); +REPLACE INTO `mob_db` VALUES (1755,'SKEGGIOLD_','Skeggiold','Skeggiold',83,315200,0,99200,10,1,1600,2050,15,32,1,120,60,85,119,80,10,12,0,8,66,165,250,792,780,480,0,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,608,20,978,10,2322,100,2504,3,2353,20,0,0,4406,1); REPLACE INTO `mob_db` VALUES (1756,'G_HYDRO','Hydro','Hydrolancer',89,308230,0,0,0,1,2554,3910,52,62,1,96,110,86,94,32,10,12,2,9,47,165,150,800,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1757,'G_ACIDUS','Acidus','Acidus',80,51112,0,0,0,1,1289,2109,39,69,1,71,55,135,103,69,10,12,2,9,46,133,155,800,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1758,'G_FERUS','Ferus','Ferus',70,29218,0,0,0,1,1056,1496,34,45,1,80,100,110,70,70,10,12,2,9,43,133,120,480,472,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1759,'G_ACIDUS_','Acidus','Acidus',76,39111,0,0,0,1,1180,2000,31,47,1,78,31,93,88,52,10,12,2,9,41,133,155,800,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1760,'G_FERUS_','Ferus','Ferus',69,21182,0,0,0,1,930,1170,24,38,1,90,100,100,80,70,10,12,2,9,42,133,120,480,472,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1761,'G_SKOGUL','Skogul','Skogul',70,87544,0,0,0,1,1110,1930,20,15,1,69,70,50,112,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1762,'G_FRUS','Frus','Frus',69,83422,0,0,0,1,1110,1780,20,15,1,69,60,50,123,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1763,'G_SKEGGIOLD','Skeggiold','Skeggiold',81,295200,0,0,0,1,1400,2020,12,32,1,100,50,72,106,50,10,12,0,8,66,165,250,792,780,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1764,'G_SKEGGIOLD_','Skeggiold','Skeggiold',83,315200,0,0,0,1,1600,2050,15,32,1,120,60,85,119,80,10,12,0,8,66,165,250,792,780,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1765,'G_RANDGRIS','Valkyrie','Valkyrie',99,1567200,0,10000,10000,1,5560,8980,25,42,1,120,80,120,220,210,10,12,2,8,86,165,150,584,576,480,0,0,0,0,0,0,0,0,7510,2500,617,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1761,'G_SKOGUL','Skogul','Skogul',70,87544,0,0,0,1,1110,1930,20,15,1,69,70,50,112,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1762,'G_FRUS','Frus','Frus',69,83422,0,0,0,1,1110,1780,20,15,1,69,60,50,123,52,10,12,1,6,67,133,150,584,576,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1763,'G_SKEGGIOLD','Skeggiold','Skeggiold',81,295200,0,0,0,1,1400,2020,12,32,1,100,50,72,106,50,10,12,0,8,66,165,250,792,780,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1764,'G_SKEGGIOLD_','Skeggiold','Skeggiold',83,315200,0,0,0,1,1600,2050,15,32,1,120,60,85,119,80,10,12,0,8,66,165,250,792,780,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1765,'G_RANDGRIS','Valkyrie','Valkyrie',99,1567200,0,10000,10000,1,5560,8980,25,42,1,120,80,120,220,210,10,12,2,8,86,165,120,396,384,480,0,0,0,0,0,0,0,0,7510,500,617,100,0,0,0,0,0,0,0,0,0,0,2115,100,0,0,0,0); REPLACE INTO `mob_db` VALUES (1766,'EM_ANGELING','Angeling','Angeling',20,55000,0,163,144,1,120,195,0,70,1,50,20,75,68,200,10,10,1,8,86,1205,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1767,'EM_DEVILING','Deviling','Deviling',31,64500,0,211,412,1,135,270,5,70,1,50,20,75,77,200,10,12,1,6,87,1205,200,1072,1056,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # // Rachel / Ice Dungeon monsters (Poring Stats) -REPLACE INTO `mob_db` VALUES (1768,'GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',89,2298000,0,962175,276445,1,5880,9516,10,20,1,89,89,127,134,89,10,12,2,0,68,165,150,584,576,480,461087,10000,617,1000,603,1000,0,0,7566,2500,7023,100,7024,100,617,100,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1768,'GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',89,2298000,0,962175,276445,1,5880,9516,10,20,1,89,89,127,134,89,10,12,2,0,68,165,150,584,576,480,461087,10000,617,1000,603,1000,0,0,7566,2500,7023,100,7024,100,617,100,1137,10,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1769,'AGAV','Agav','Agav',73,29620,0,9780,6622,1,103,1109,15,35,1,73,27,145,110,73,10,12,1,7,80,133,150,584,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1770,'ECHIO','Echio','Echio',69,34900,0,13560,4300,1,750,1800,33,11,1,69,55,61,104,69,10,12,1,7,80,133,150,584,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1771,'VANBERK','Vanberk','Vanberk',59,9988,0,4203,901,1,230,660,24,6,1,59,39,48,89,59,10,12,1,7,80,133,150,584,576,480,0,0,0,0,0,0,0,0,7563,250,7568,1500,5172,5,2406,2,526,50,512,5,0,0,0,0,0,0,0,0); diff --git a/tools/item_db.pl b/tools/item_db.pl index 7edf3f0a0..101ff3961 100755 --- a/tools/item_db.pl +++ b/tools/item_db.pl @@ -28,7 +28,7 @@ CREATE TABLE `item_db` ( `weapon_level` tinyint(2) unsigned default NULL, `equip_level` tinyint(3) unsigned default NULL, `refineable` tinyint(1) unsigned default NULL, - `view` tinyint(3) unsigned default NULL, + `view` smallint(3) unsigned default NULL, `script` text, `equip_script` text, `unequip_script` text, -- cgit v1.2.3-70-g09d2 From 89a228e0aa57b695a7f990ee6777f38cbdd2460c Mon Sep 17 00:00:00 2001 From: skotlex Date: Wed, 6 Dec 2006 18:38:45 +0000 Subject: - Updated the mob_db converter to rename the ADelay column to ThinkTime. - Updated the mob_db sql files to have this change as well. - Updated mob_db2.sql git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9425 54d463be-8e91-2dee-dedb-b68131a5f0ec --- sql-files/mob_db.sql | 2 +- sql-files/mob_db2.sql | 101 +++++++++++++++++++++++++------------------------- tools/mob_db.pl | 2 +- 3 files changed, 53 insertions(+), 52 deletions(-) (limited to 'tools') diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index 9bd5e6200..e6ba56141 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -31,7 +31,7 @@ CREATE TABLE `mob_db` ( `Element` tinyint(4) unsigned NOT NULL default '0', `Mode` smallint(6) unsigned NOT NULL default '0', `Speed` smallint(6) unsigned NOT NULL default '0', - `ADelay` smallint(6) unsigned NOT NULL default '0', + `ThinkTime` smallint(6) unsigned NOT NULL default '0', `aMotion` smallint(6) unsigned NOT NULL default '0', `dMotion` smallint(6) unsigned NOT NULL default '0', `MEXP` mediumint(9) unsigned NOT NULL default '0', diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql index 561b82f0d..3c81595dd 100755 --- a/sql-files/mob_db2.sql +++ b/sql-files/mob_db2.sql @@ -1,6 +1,6 @@ --- --- table structure for table `mob_db2` --- +# +# Table structure for table `mob_db` +# DROP TABLE IF EXISTS `mob_db2`; CREATE TABLE `mob_db2` ( @@ -31,7 +31,7 @@ CREATE TABLE `mob_db2` ( `Element` tinyint(4) unsigned NOT NULL default '0', `Mode` smallint(6) unsigned NOT NULL default '0', `Speed` smallint(6) unsigned NOT NULL default '0', - `ADelay` smallint(6) unsigned NOT NULL default '0', + `ThinkTime` smallint(6) unsigned NOT NULL default '0', `aMotion` smallint(6) unsigned NOT NULL default '0', `dMotion` smallint(6) unsigned NOT NULL default '0', `MEXP` mediumint(9) unsigned NOT NULL default '0', @@ -65,49 +65,50 @@ CREATE TABLE `mob_db2` ( PRIMARY KEY (`ID`) ) TYPE=MyISAM; --- // Crusader quest monsters with poring stats (No drops) -REPLACE INTO `mob_db2` VALUES (1910,'C_GHOUL','Ghoul','Ghoul',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db2` VALUES (1911,'C_KHALITZBURG','Khalitzburg','Khalitzburg',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db2` VALUES (1912,'C_INJUSTICE','Injustice','Injustice',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db2` VALUES (1913,'C_REQUIEM','Requiem','Requiem',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db2` VALUES (1914,'C_RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); --- --- // Easter Event Monsters -REPLACE INTO `mob_db2` VALUES (1920,'EASTER_EGG','Easter Egg','Easter Egg',3,300,0,4,4,0,1,2,20,20,1,1,1,1,1,20,10,12,0,0,60,128,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,250,935,500,558,300,501,200,501,200,713,800,558,300,558,300,0,0,0,0); -REPLACE INTO `mob_db2` VALUES (1921,'EASTER_BUNNY','Easter Bunny','Easter Bunny',6,1800,0,60,55,1,20,26,0,40,1,36,6,1,11,80,10,10,0,2,60,181,200,1456,456,336,0,0,0,0,0,0,0,0,2250,200,515,8000,727,1200,746,1500,706,30,622,50,534,5000,0,0,0,0,4006,70); --- --- // eAthena Dev Team -REPLACE INTO `mob_db2` VALUES (1900,'VALARIS','Valaris','Valaris',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); -REPLACE INTO `mob_db2` VALUES (1901,'VALARIS_WORSHIPPER','Valaris\'s Worshipper','Valaris\'s Worshipper',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1685,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1); -REPLACE INTO `mob_db2` VALUES (1902,'MC_CAMERI','MC Cameri','MC Cameri',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); -REPLACE INTO `mob_db2` VALUES (1903,'POKI','Poki#3','Poki#3',99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,1973,120,500,672,480,92100,7000,603,5500,617,3000,1723,1000,1228,100,1236,500,617,2500,1234,75,1237,125,1722,250,1724,100,1720,50,0,0,0,0); --- --- // Mobs used for eAthena's Custom Equipped Mobs -REPLACE INTO `mob_db2` VALUES (1970,'PORING_','Pet Poring','Pet Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20); -REPLACE INTO `mob_db2` VALUES (1971,'CHONCHON__','Pet Chonchon','Pet Chonchon',4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,129,200,1076,576,480,0,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,5); -REPLACE INTO `mob_db2` VALUES (1972,'SPORE_','Pet Spore','Pet Spore',9,327,0,22,17,1,24,29,0,5,1,9,9,1,14,5,10,12,1,3,21,129,200,1872,672,288,0,0,0,0,0,0,0,0,921,5000,507,800,510,50,743,5,2220,40,921,5,578,100,0,0,0,0,4022,5); -REPLACE INTO `mob_db2` VALUES (1973,'PECOPECO_','Pet Peco Peco','Pet Peco Peco',13,531,0,85,36,1,35,46,0,0,1,13,13,25,27,9,10,12,2,2,23,649,200,1564,864,576,0,0,0,0,0,0,0,0,925,5500,2402,20,508,50,507,900,1604,100,582,60,0,0,0,0,0,0,4031,3); -REPLACE INTO `mob_db2` VALUES (1974,'ORK_WARRIOR_','Pet Orc Warrior','Pet Orc Warrior',24,1400,0,261,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,2693,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); -REPLACE INTO `mob_db2` VALUES (1975,'MUNAK_','Pet Munak','Pet Munak',30,2872,0,361,218,1,180,230,0,0,1,15,20,5,46,15,10,12,1,1,29,2693,200,2468,768,288,0,0,0,0,0,0,0,0,901,5500,2264,1,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,3); -REPLACE INTO `mob_db2` VALUES (1976,'ISIS_','Pet Isis','Pet Isis',43,4828,0,2396,993,1,423,507,10,35,1,65,43,30,72,15,10,12,2,6,27,661,200,1384,768,336,0,0,0,0,0,0,0,0,936,5500,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1); -REPLACE INTO `mob_db2` VALUES (1977,'POPORING_','Pet Poporing','Pet Poporing',14,344,0,81,44,1,59,72,0,10,1,14,14,1,19,15,10,12,1,3,25,131,300,1672,672,480,0,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,729,5,0,0,0,0,0,0,0,0,4033,5); -REPLACE INTO `mob_db2` VALUES (1978,'HUNTER_FLY_','Pet Hunter Fly','Pet Hunter Fly',42,5242,0,1517,952,1,246,333,25,15,1,105,32,15,72,30,10,12,0,4,44,2693,150,676,576,480,0,0,0,0,0,0,0,0,996,30,999,100,943,5500,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1); -REPLACE INTO `mob_db2` VALUES (1979,'STEEL_CHONCHON_','Pet Steel Chonchon','Pet Steel Chonchon',17,530,0,109,71,1,54,65,15,0,1,43,17,5,33,10,10,12,0,4,24,651,150,1076,576,480,0,0,0,0,0,0,0,0,992,70,999,30,910,2400,935,3500,943,30,998,200,1002,500,0,0,0,0,4042,1); -REPLACE INTO `mob_db2` VALUES (1980,'PICKY__','Pet Picky','Pet Picky',3,80,0,4,3,1,9,12,0,0,1,3,3,5,10,30,10,12,0,2,23,129,200,988,288,168,0,0,0,0,0,0,0,0,916,6500,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,10); -REPLACE INTO `mob_db2` VALUES (1981,'ROCKER_','Pet Rocker','Pet Rocker',9,198,0,20,16,1,24,29,5,10,1,9,18,10,14,15,10,12,1,4,22,129,200,1864,864,540,0,0,0,0,0,0,0,0,940,5000,909,5500,2298,4,1402,80,520,10,752,5,703,3,0,0,0,0,4021,10); -REPLACE INTO `mob_db2` VALUES (1982,'SMOKIE_','Pet Smokie','Pet Smokie',18,641,0,134,86,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,145,200,1576,576,420,0,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,2,754,2,912,6,729,3,0,0,0,0,4044,1); -REPLACE INTO `mob_db2` VALUES (1983,'YOYO_','Pet Yoyo','Pet Yoyo',19,879,0,148,93,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,651,200,1054,54,384,0,0,0,0,0,0,0,0,942,5500,513,1500,508,100,919,5000,753,5,756,24,578,200,0,0,0,0,4051,1); -REPLACE INTO `mob_db2` VALUES (1984,'LUNATIC_','Pet Lunatic','Pet Lunatic',3,60,0,6,2,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,129,200,1456,456,336,0,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,1102,100,512,600,515,1100,622,20,0,0,0,0,4006,15); -REPLACE INTO `mob_db2` VALUES (1985,'POISON_SPORE_','Pet Poison Spore','Pet Poison Spore',19,665,0,186,93,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,2693,200,1672,672,288,0,0,0,0,0,0,0,0,7033,5500,2221,20,511,550,510,50,972,30,921,1200,912,6,0,0,0,0,4048,2); -REPLACE INTO `mob_db2` VALUES (1986,'BAPHOMET__','Pet Baphomet Jr.','Pet Baphomet Jr.',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1685,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1); -REPLACE INTO `mob_db2` VALUES (1987,'DESERT_WOLF_B_','Pet Baby Desert Wolf','Pet Baby Desert Wolf',9,164,0,20,16,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,649,300,1600,900,240,0,0,0,0,0,0,0,0,1010,85,919,5500,2306,60,517,600,2301,200,0,0,0,0,0,0,0,0,4023,10); -REPLACE INTO `mob_db2` VALUES (1988,'DEVIRUCHI_','Pet Deviruchi','Pet Deviruchi',46,7360,0,2662,1278,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,1685,150,980,600,384,0,0,0,0,0,0,0,0,1038,5500,1039,400,0,0,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1); -REPLACE INTO `mob_db2` VALUES (1989,'DOKEBI__','Pet Dokebi','Pet Dokebi',33,2697,0,889,455,1,197,249,0,10,1,50,40,35,69,40,10,12,0,6,27,145,250,1156,456,384,0,0,0,0,0,0,0,0,1021,5500,757,112,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1); -REPLACE INTO `mob_db2` VALUES (1990,'DROPS_','Pet Drops','Pet Drops',3,55,0,4,3,1,10,13,0,0,1,3,3,1,12,15,10,12,1,3,23,131,400,1452,672,480,0,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,741,5,620,20,0,0,0,0,4004,10); -REPLACE INTO `mob_db2` VALUES (1991,'PETIT__','Pet Earth Petite','Pet Earth Petite',44,6881,0,1677,1034,1,360,427,30,30,1,44,62,69,79,60,10,12,1,9,22,661,200,1624,620,384,0,0,0,0,0,0,0,0,1035,5500,1037,300,756,140,509,1000,1510,150,912,1500,606,15,0,0,0,0,4118,1); -REPLACE INTO `mob_db2` VALUES (1992,'SAVAGE_BABE_','Pet Savage Babe','Pet Savage Babe',7,182,0,14,12,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,129,400,1624,624,576,0,0,0,0,0,0,0,0,919,5500,1302,100,517,500,1750,1000,949,850,1010,80,627,20,0,0,0,0,4017,1); -REPLACE INTO `mob_db2` VALUES (1993,'SOHEE_','Pet Sohee','Pet Sohee',33,5628,0,739,455,1,210,251,0,10,1,33,33,10,58,15,10,12,1,6,21,145,300,2112,912,576,0,0,0,0,0,0,0,0,1020,5500,1049,50,2277,1,2504,5,1217,5,501,1000,662,100,0,0,0,0,4100,1); -REPLACE INTO `mob_db2` VALUES (1994,'BON_GUN_','Pet Bon Gun','Pet Bon Gun',32,3520,0,424,242,1,220,260,0,0,1,15,36,10,48,15,10,12,1,1,29,661,200,1720,500,420,0,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,2337,2,609,15,508,1000,502,250,5046,1,0,0,4212,1); --- --- //Custom Fire Poring. Warning, Colides with META_DENIRO --- //1239,'FIRE_PORING','Fire Poring','Fire Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20); +# // Monsters Additional Database +# // +# // Structure of Database : +# // ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,ThinkTime,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper +# // Crusader quest monsters with poring stats (No drops) +REPLACE INTO `mob_db` VALUES (1910,'C_GHOUL','Ghoul','Ghoul',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1911,'C_KHALITZBURG','Khalitzburg','Khalitzburg',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1912,'C_INJUSTICE','Injustice','Injustice',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1913,'C_REQUIEM','Requiem','Requiem',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1914,'C_RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# // Easter Event Monsters +REPLACE INTO `mob_db` VALUES (1920,'EASTER_EGG','Easter Egg','Easter Egg',3,300,0,4,4,0,1,2,20,20,1,1,1,1,1,20,10,12,0,0,60,128,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,250,935,500,558,300,501,200,501,200,713,800,558,300,558,300,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1921,'EASTER_BUNNY','Easter Bunny','Easter Bunny',6,1800,0,60,55,1,20,26,0,40,1,36,6,1,11,80,10,10,0,2,60,181,200,1456,456,336,0,0,0,0,0,0,0,0,2250,200,515,8000,727,1200,746,1500,706,30,622,50,534,5000,0,0,0,0,4006,70); +# // eAthena Dev Team +REPLACE INTO `mob_db` VALUES (1900,'VALARIS','Valaris','Valaris',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); +REPLACE INTO `mob_db` VALUES (1901,'VALARIS_WORSHIPPER','Valaris\'s Worshipper','Valaris\'s Worshipper',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1685,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1); +REPLACE INTO `mob_db` VALUES (1902,'MC_CAMERI','MC Cameri','MC Cameri',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); +REPLACE INTO `mob_db` VALUES (1903,'POKI','Poki#3','Poki#3',99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,1973,120,500,672,480,92100,7000,603,5500,617,3000,1723,1000,1228,100,1236,500,617,2500,1234,75,1237,125,1722,250,1724,100,1720,50,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1904,'SENTRY','Sentry','Sentry',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); +# // Mobs used for eAthena's Custom Equipped Mobs +REPLACE INTO `mob_db` VALUES (1970,'PORING_','Pet Poring','Pet Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20); +REPLACE INTO `mob_db` VALUES (1971,'CHONCHON__','Pet Chonchon','Pet Chonchon',4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,129,200,1076,576,480,0,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,5); +REPLACE INTO `mob_db` VALUES (1972,'SPORE_','Pet Spore','Pet Spore',9,327,0,22,17,1,24,29,0,5,1,9,9,1,14,5,10,12,1,3,21,129,200,1872,672,288,0,0,0,0,0,0,0,0,921,5000,507,800,510,50,743,5,2220,40,921,5,578,100,0,0,0,0,4022,5); +REPLACE INTO `mob_db` VALUES (1973,'PECOPECO_','Pet Peco Peco','Pet Peco Peco',13,531,0,85,36,1,35,46,0,0,1,13,13,25,27,9,10,12,2,2,23,649,200,1564,864,576,0,0,0,0,0,0,0,0,925,5500,2402,20,508,50,507,900,1604,100,582,60,0,0,0,0,0,0,4031,3); +REPLACE INTO `mob_db` VALUES (1974,'ORK_WARRIOR_','Pet Orc Warrior','Pet Orc Warrior',24,1400,0,261,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,2693,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); +REPLACE INTO `mob_db` VALUES (1975,'MUNAK_','Pet Munak','Pet Munak',30,2872,0,361,218,1,180,230,0,0,1,15,20,5,46,15,10,12,1,1,29,2693,200,2468,768,288,0,0,0,0,0,0,0,0,901,5500,2264,1,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,3); +REPLACE INTO `mob_db` VALUES (1976,'ISIS_','Pet Isis','Pet Isis',43,4828,0,2396,993,1,423,507,10,35,1,65,43,30,72,15,10,12,2,6,27,661,200,1384,768,336,0,0,0,0,0,0,0,0,936,5500,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1); +REPLACE INTO `mob_db` VALUES (1977,'POPORING_','Pet Poporing','Pet Poporing',14,344,0,81,44,1,59,72,0,10,1,14,14,1,19,15,10,12,1,3,25,131,300,1672,672,480,0,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,729,5,0,0,0,0,0,0,0,0,4033,5); +REPLACE INTO `mob_db` VALUES (1978,'HUNTER_FLY_','Pet Hunter Fly','Pet Hunter Fly',42,5242,0,1517,952,1,246,333,25,15,1,105,32,15,72,30,10,12,0,4,44,2693,150,676,576,480,0,0,0,0,0,0,0,0,996,30,999,100,943,5500,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1); +REPLACE INTO `mob_db` VALUES (1979,'STEEL_CHONCHON_','Pet Steel Chonchon','Pet Steel Chonchon',17,530,0,109,71,1,54,65,15,0,1,43,17,5,33,10,10,12,0,4,24,651,150,1076,576,480,0,0,0,0,0,0,0,0,992,70,999,30,910,2400,935,3500,943,30,998,200,1002,500,0,0,0,0,4042,1); +REPLACE INTO `mob_db` VALUES (1980,'PICKY__','Pet Picky','Pet Picky',3,80,0,4,3,1,9,12,0,0,1,3,3,5,10,30,10,12,0,2,23,129,200,988,288,168,0,0,0,0,0,0,0,0,916,6500,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,10); +REPLACE INTO `mob_db` VALUES (1981,'ROCKER_','Pet Rocker','Pet Rocker',9,198,0,20,16,1,24,29,5,10,1,9,18,10,14,15,10,12,1,4,22,129,200,1864,864,540,0,0,0,0,0,0,0,0,940,5000,909,5500,2298,4,1402,80,520,10,752,5,703,3,0,0,0,0,4021,10); +REPLACE INTO `mob_db` VALUES (1982,'SMOKIE_','Pet Smokie','Pet Smokie',18,641,0,134,86,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,145,200,1576,576,420,0,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,2,754,2,912,6,729,3,0,0,0,0,4044,1); +REPLACE INTO `mob_db` VALUES (1983,'YOYO_','Pet Yoyo','Pet Yoyo',19,879,0,148,93,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,651,200,1054,54,384,0,0,0,0,0,0,0,0,942,5500,513,1500,508,100,919,5000,753,5,756,24,578,200,0,0,0,0,4051,1); +REPLACE INTO `mob_db` VALUES (1984,'LUNATIC_','Pet Lunatic','Pet Lunatic',3,60,0,6,2,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,129,200,1456,456,336,0,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,1102,100,512,600,515,1100,622,20,0,0,0,0,4006,15); +REPLACE INTO `mob_db` VALUES (1985,'POISON_SPORE_','Pet Poison Spore','Pet Poison Spore',19,665,0,186,93,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,2693,200,1672,672,288,0,0,0,0,0,0,0,0,7033,5500,2221,20,511,550,510,50,972,30,921,1200,912,6,0,0,0,0,4048,2); +REPLACE INTO `mob_db` VALUES (1986,'BAPHOMET__','Pet Baphomet Jr.','Pet Baphomet Jr.',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1685,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1); +REPLACE INTO `mob_db` VALUES (1987,'DESERT_WOLF_B_','Pet Baby Desert Wolf','Pet Baby Desert Wolf',9,164,0,20,16,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,649,300,1600,900,240,0,0,0,0,0,0,0,0,1010,85,919,5500,2306,60,517,600,2301,200,0,0,0,0,0,0,0,0,4023,10); +REPLACE INTO `mob_db` VALUES (1988,'DEVIRUCHI_','Pet Deviruchi','Pet Deviruchi',46,7360,0,2662,1278,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,1685,150,980,600,384,0,0,0,0,0,0,0,0,1038,5500,1039,400,0,0,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1); +REPLACE INTO `mob_db` VALUES (1989,'DOKEBI__','Pet Dokebi','Pet Dokebi',33,2697,0,889,455,1,197,249,0,10,1,50,40,35,69,40,10,12,0,6,27,145,250,1156,456,384,0,0,0,0,0,0,0,0,1021,5500,757,112,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1); +REPLACE INTO `mob_db` VALUES (1990,'DROPS_','Pet Drops','Pet Drops',3,55,0,4,3,1,10,13,0,0,1,3,3,1,12,15,10,12,1,3,23,131,400,1452,672,480,0,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,741,5,620,20,0,0,0,0,4004,10); +REPLACE INTO `mob_db` VALUES (1991,'PETIT__','Pet Earth Petite','Pet Earth Petite',44,6881,0,1677,1034,1,360,427,30,30,1,44,62,69,79,60,10,12,1,9,22,661,200,1624,620,384,0,0,0,0,0,0,0,0,1035,5500,1037,300,756,140,509,1000,1510,150,912,1500,606,15,0,0,0,0,4118,1); +REPLACE INTO `mob_db` VALUES (1992,'SAVAGE_BABE_','Pet Savage Babe','Pet Savage Babe',7,182,0,14,12,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,129,400,1624,624,576,0,0,0,0,0,0,0,0,919,5500,1302,100,517,500,1750,1000,949,850,1010,80,627,20,0,0,0,0,4017,1); +REPLACE INTO `mob_db` VALUES (1993,'SOHEE_','Pet Sohee','Pet Sohee',33,5628,0,739,455,1,210,251,0,10,1,33,33,10,58,15,10,12,1,6,21,145,300,2112,912,576,0,0,0,0,0,0,0,0,1020,5500,1049,50,2277,1,2504,5,1217,5,501,1000,662,100,0,0,0,0,4100,1); +REPLACE INTO `mob_db` VALUES (1994,'BON_GUN_','Pet Bon Gun','Pet Bon Gun',32,3520,0,424,242,1,220,260,0,0,1,15,36,10,48,15,10,12,1,1,29,661,200,1720,500,420,0,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,2337,2,609,15,508,1000,502,250,5046,1,0,0,4212,1); +# //Custom Fire Poring. Warning, Colides with META_DENIRO +# //1239,FIRE_PORING,Fire Poring,Fire Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20 diff --git a/tools/mob_db.pl b/tools/mob_db.pl index 2ddd5c584..96fee6528 100755 --- a/tools/mob_db.pl +++ b/tools/mob_db.pl @@ -35,7 +35,7 @@ CREATE TABLE `mob_db` ( `Element` tinyint(4) unsigned NOT NULL default '0', `Mode` smallint(6) unsigned NOT NULL default '0', `Speed` smallint(6) unsigned NOT NULL default '0', - `ADelay` smallint(6) unsigned NOT NULL default '0', + `ThinkTime` smallint(6) unsigned NOT NULL default '0', `aMotion` smallint(6) unsigned NOT NULL default '0', `dMotion` smallint(6) unsigned NOT NULL default '0', `MEXP` mediumint(9) unsigned NOT NULL default '0', -- cgit v1.2.3-70-g09d2 From d07073885c8ffd1f1ed58beaa34ad281dbe1a68a Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 19 Dec 2006 13:41:25 +0000 Subject: - Reverted the mob ThinkTime update, that field is again aDelay as it apparently should be. - Fixed one small compilation error. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9522 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 2 ++ db/mob_db.txt | 2 +- db/mob_db2.txt | 2 +- sql-files/mob_db.sql | 2 +- sql-files/mob_db2.sql | 2 +- src/common/timer.c | 2 +- src/map/mob.c | 22 ++++++---------------- src/map/mob.h | 1 - tools/mob_db.pl | 2 +- 9 files changed, 14 insertions(+), 23 deletions(-) (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index f7d8d38bd..bffce6bba 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/12/19 + * Reverted the mob ThinkTime update, that field is again aDelay as it + apparently should be. [Skotlex] * Cleanups or minor changes. * Now addtick_timer invokes settick_timer, so keep an eye for whatever timer issues it's supposed to have. diff --git a/db/mob_db.txt b/db/mob_db.txt index c79f12aec..109a71e41 100644 --- a/db/mob_db.txt +++ b/db/mob_db.txt @@ -1,7 +1,7 @@ // Monster Database // // Structure of Database : -// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,ThinkTime,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper +// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper // Note: Keep the Sprite_Name field as it is (in the game client). You may change Name,JName field tough 1001,SCORPION,Scorpion,Scorpion,24,1109,0,287,176,1,80,135,30,0,1,24,24,5,52,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1 diff --git a/db/mob_db2.txt b/db/mob_db2.txt index aa8552a77..4744b597f 100644 --- a/db/mob_db2.txt +++ b/db/mob_db2.txt @@ -1,7 +1,7 @@ // Monsters Additional Database // // Structure of Database : -// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,ThinkTime,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper +// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper // Crusader quest monsters with poring stats (No drops) 1910,C_GHOUL,Ghoul,Ghoul,1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index d910f25c7..9530cbb5e 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -31,7 +31,7 @@ CREATE TABLE `mob_db` ( `Element` tinyint(4) unsigned NOT NULL default '0', `Mode` smallint(6) unsigned NOT NULL default '0', `Speed` smallint(6) unsigned NOT NULL default '0', - `ThinkTime` smallint(6) unsigned NOT NULL default '0', + `aDelay` smallint(6) unsigned NOT NULL default '0', `aMotion` smallint(6) unsigned NOT NULL default '0', `dMotion` smallint(6) unsigned NOT NULL default '0', `MEXP` mediumint(9) unsigned NOT NULL default '0', diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql index b7f685220..be3dd20f1 100755 --- a/sql-files/mob_db2.sql +++ b/sql-files/mob_db2.sql @@ -31,7 +31,7 @@ CREATE TABLE `mob_db2` ( `Element` tinyint(4) unsigned NOT NULL default '0', `Mode` smallint(6) unsigned NOT NULL default '0', `Speed` smallint(6) unsigned NOT NULL default '0', - `ThinkTime` smallint(6) unsigned NOT NULL default '0', + `aDelay` smallint(6) unsigned NOT NULL default '0', `aMotion` smallint(6) unsigned NOT NULL default '0', `dMotion` smallint(6) unsigned NOT NULL default '0', `MEXP` mediumint(9) unsigned NOT NULL default '0', diff --git a/src/common/timer.c b/src/common/timer.c index 34c95fcf6..a2e67aa09 100644 --- a/src/common/timer.c +++ b/src/common/timer.c @@ -452,7 +452,7 @@ void timer_final(void) struct timer_func_list *tfl; struct timer_func_list *next; - for( tfl=tfl_root; tfl != NULL; tfl = next ) + for( tfl=tfl_root; tfl != NULL; tfl = next ) { next = tfl->next; // copy next pointer aFree(tfl->name); // free structures aFree(tfl); diff --git a/src/map/mob.c b/src/map/mob.c index b2dc67482..f38a5d3ac 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -1063,7 +1063,7 @@ static int mob_ai_sub_hard(struct block_list *bl,va_list ap) if(md->bl.prev == NULL || md->status.hp <= 0) return 1; - if (DIFF_TICK(tick, md->last_thinktime) < md->db->min_thinktime) + if (DIFF_TICK(tick, md->last_thinktime) < MIN_MOBTHINKTIME) return 0; md->last_thinktime = tick; @@ -1335,7 +1335,7 @@ static int mob_ai_sub_lazy(DBKey key,void * data,va_list ap) tick=va_arg(ap,unsigned int); - if(DIFF_TICK(tick,md->last_thinktime)< 10*md->db->min_thinktime) + if(DIFF_TICK(tick,md->last_thinktime)< 10*MIN_MOBTHINKTIME) return 0; md->last_thinktime=tick; @@ -2925,7 +2925,6 @@ int mob_clone_spawn(struct map_session_data *sd, int m, int x, int y, const char mob_db_data[class_]->job_exp=1; mob_db_data[class_]->range2=AREA_SIZE; //Let them have the same view-range as players. mob_db_data[class_]->range3=AREA_SIZE; //Min chase of a screen. - mob_db_data[class_]->min_thinktime = 500; //Average player's reflexes? mob_db_data[class_]->option=sd->sc.option; //Skill copy [Skotlex] @@ -3143,7 +3142,6 @@ static int mob_makedummymobdb(int class_) mob_dummy->status.adelay=1000; mob_dummy->status.amotion=500; mob_dummy->status.dmotion=500; - mob_dummy->min_thinktime=5000; mob_dummy->base_exp=2; mob_dummy->job_exp=1; mob_dummy->range2=10; @@ -3308,12 +3306,8 @@ static int mob_readdb(void) status->mode&=~MD_AGGRESSIVE; status->speed=atoi(str[26]); status->aspd_rate = 1000; - db->min_thinktime=atoi(str[27]); - status->adelay = status->amotion=atoi(str[28]); - if (db->min_thinktime > status->adelay) - status->adelay = db->min_thinktime; - if (db->min_thinktime < MIN_MOBTHINKTIME) - db->min_thinktime = MIN_MOBTHINKTIME; + status->adelay = atoi(str[27]); + status->amotion = atoi(str[28]); status->dmotion=atoi(str[29]); if(battle_config.monster_damage_delay_rate != 100) status->dmotion = status->dmotion*battle_config.monster_damage_delay_rate/100; @@ -4012,12 +4006,8 @@ static int mob_read_sqldb(void) status->mode&=~MD_AGGRESSIVE; status->speed = TO_INT(26); status->aspd_rate = 1000; - db->min_thinktime = TO_INT(27); - status->adelay = status->amotion = TO_INT(28); - if (db->min_thinktime > status->adelay) - status->adelay = db->min_thinktime; - if (db->min_thinktime < MIN_MOBTHINKTIME) - db->min_thinktime = MIN_MOBTHINKTIME; + status->adelay = TO_INT(27); + status->amotion = TO_INT(28); status->dmotion = TO_INT(29); if(battle_config.monster_damage_delay_rate != 100) status->dmotion = status->dmotion*battle_config.monster_damage_delay_rate/100; diff --git a/src/map/mob.h b/src/map/mob.h index 03d35b076..f4895c7e0 100644 --- a/src/map/mob.h +++ b/src/map/mob.h @@ -58,7 +58,6 @@ struct mob_db { char sprite[NAME_LENGTH],name[NAME_LENGTH],jname[NAME_LENGTH]; unsigned int base_exp,job_exp; unsigned int mexp,mexpper; - unsigned int min_thinktime; //Min think time, Recharge Time as aegis calls it. int range2,range3; short race2; // celest unsigned short lv; diff --git a/tools/mob_db.pl b/tools/mob_db.pl index 96fee6528..de4e1b15e 100755 --- a/tools/mob_db.pl +++ b/tools/mob_db.pl @@ -35,7 +35,7 @@ CREATE TABLE `mob_db` ( `Element` tinyint(4) unsigned NOT NULL default '0', `Mode` smallint(6) unsigned NOT NULL default '0', `Speed` smallint(6) unsigned NOT NULL default '0', - `ThinkTime` smallint(6) unsigned NOT NULL default '0', + `aDelay` smallint(6) unsigned NOT NULL default '0', `aMotion` smallint(6) unsigned NOT NULL default '0', `dMotion` smallint(6) unsigned NOT NULL default '0', `MEXP` mediumint(9) unsigned NOT NULL default '0', -- cgit v1.2.3-70-g09d2 From 0c948878b116ea28d073ee960d2942e30f076e43 Mon Sep 17 00:00:00 2001 From: DracoRPG Date: Wed, 28 Feb 2007 00:57:29 +0000 Subject: Added experimental new mapcache generator git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9928 54d463be-8e91-2dee-dedb-b68131a5f0ec --- eAthena-8.sln | 16 +- src/tool/grfio.c | 982 +++++++++++++++++++++++++++++++++++++++++++ src/tool/grfio.h | 23 + src/tool/mapcache.c | 202 +++++++++ tools/mapcache/grf_files.txt | 14 + tools/mapcache/map_list.txt | 646 ++++++++++++++++++++++++++++ vcproj-8/mapcache.vcproj | 261 ++++++++++++ 7 files changed, 2143 insertions(+), 1 deletion(-) create mode 100644 src/tool/grfio.c create mode 100644 src/tool/grfio.h create mode 100644 src/tool/mapcache.c create mode 100644 tools/mapcache/grf_files.txt create mode 100644 tools/mapcache/map_list.txt create mode 100644 vcproj-8/mapcache.vcproj (limited to 'tools') diff --git a/eAthena-8.sln b/eAthena-8.sln index 88a55a5a3..355912d6a 100644 --- a/eAthena-8.sln +++ b/eAthena-8.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 +# Visual C++ Express 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_txt", "vcproj-8\map-server_txt.vcproj", "{D356871D-58E1-450B-967A-E1E9646175AF}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_txt", "vcproj-8\login-server_txt.vcproj", "{D356871D-58E1-450B-967A-E2E9646175AF}" @@ -12,6 +12,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_sql", "vcproj- EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_sql", "vcproj-8\map-server_sql.vcproj", "{D356871D-58E1-450B-967A-E6E9646175AF}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-8\mapcache.vcproj", "{82A4EF25-7047-4DF1-A89C-94A6C73E0712}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -82,6 +84,18 @@ Global {D356871D-58E1-450B-967A-E6E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32 {D356871D-58E1-450B-967A-E6E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32 {D356871D-58E1-450B-967A-E6E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Debug|Win32.ActiveCfg = Debug|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Debug|Win32.Build.0 = Debug|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Debug-sql|Win32.ActiveCfg = Debug|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Debug-sql|Win32.Build.0 = Debug|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Debug-txt|Win32.ActiveCfg = Debug|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Debug-txt|Win32.Build.0 = Debug|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Release|Win32.ActiveCfg = Release|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Release|Win32.Build.0 = Release|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Release-sql|Win32.ActiveCfg = Release|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Release-sql|Win32.Build.0 = Release|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Release-txt|Win32.ActiveCfg = Release|Win32 + {82A4EF25-7047-4DF1-A89C-94A6C73E0712}.Release-txt|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/tool/grfio.c b/src/tool/grfio.c new file mode 100644 index 000000000..ad6a466ba --- /dev/null +++ b/src/tool/grfio.c @@ -0,0 +1,982 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +/********************************************************************* + * + * Ragnarok Online Emulator : grfio.c -- grf file I/O Module + *-------------------------------------------------------------------- + * special need library : zlib + ********************************************************************* + * $Id: grfio.c,v 1.2 2004/09/29 17:31:49 kalaspuff Exp $ + * + * 2002/12/18... the original edition + * 2003/01/23 ... Code correction + * 2003/02/01 ... An addition and decryption processing are improved for LocalFile and two or more GRF(s) check processing. + * 2003/02/02 ... Even if there is no grf it does not stop -- as -- correction + * 2003/02/02... grf reading specification can be added later -- as -- correction (grfio_add function addition) + * 2003/02 / 03... at the time of grfio_resourcecheck processing the entry addition processing method -- correction + * 2003/02/05... change of the processing in grfio_init + * 2003/02/23... a local file check -- GRFIO_LOCAL -- switch (Defoe -- Function Off) + * 2003/10/21 ... The data of alpha client was read. + * 2003/11/10 ... Ready new grf format. + * 2003/11/11 ... version check fix & bug fix + * 2006/04/16 ... fixed crash grfio_find_file when file is not found. + */ + +#include +#include +#include +#include +#include +#include + +#include "grfio.h" +#include "../common/mmo.h" +#include "../zlib/unzip.h" + +#define CHUNK 16384 + +#ifdef __WIN32 + #include "../zlib/zlib.h" + #include "../zlib/iowin32.h" +#else + #ifndef __FREEBSD__ + #include + #endif +#endif + +typedef unsigned char BYTE; +typedef unsigned short WORD; +typedef unsigned long DWORD; + +static char data_dir[1024] = ""; // "../"; + +//---------------------------- +// file entry table struct +//---------------------------- +typedef struct { + int srclen; // compressed size + int srclen_aligned; // + int declen; // original size + int srcpos; + short next; + int cycle; + char type; + char fn[128-4*5]; // file name + char *fnd; + signed char gentry; // read grf file select +} FILELIST; +//gentry ... 0 : It acquires from a local file. +// It acquires from the resource file of 1>=:gentry_table[gentry-1]. +// 1<=: Check a local file. +// If it is, after re-setting to 0, it acquires from a local file. +// If there is nothing, mark reversal will be carried out, and it will re-set, and will acquire from a resource file as well as 1>=. + +//Since char defines *FILELIST.gentry, the maximum which can be added by grfio_add becomes by 127 pieces. + +#define GENTRY_LIMIT 512 +#define FILELIST_LIMIT 1048576 // temporary maximum, and a theory top maximum are 2G. + +static FILELIST *filelist = NULL; +static int filelist_entrys = 0; +static int filelist_maxentry = 0; + +static char **gentry_table = NULL; +static int gentry_entrys = 0; +static int gentry_maxentry = 0; + +//---------------------------- +// file list hash table +//---------------------------- +static int filelist_hash[256]; + +//---------------------------- +// grf decode data table +//---------------------------- +static unsigned char BitMaskTable[8] = { + 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 +}; + +static char BitSwapTable1[64] = { + 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, + 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, + 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, + 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 +}; +static char BitSwapTable2[64] = { + 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, + 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, + 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, + 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25 +}; +static char BitSwapTable3[32] = { + 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10, + 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25 +}; + +static unsigned char NibbleData[4][64]={ + { + 0xef, 0x03, 0x41, 0xfd, 0xd8, 0x74, 0x1e, 0x47, 0x26, 0xef, 0xfb, 0x22, 0xb3, 0xd8, 0x84, 0x1e, + 0x39, 0xac, 0xa7, 0x60, 0x62, 0xc1, 0xcd, 0xba, 0x5c, 0x96, 0x90, 0x59, 0x05, 0x3b, 0x7a, 0x85, + 0x40, 0xfd, 0x1e, 0xc8, 0xe7, 0x8a, 0x8b, 0x21, 0xda, 0x43, 0x64, 0x9f, 0x2d, 0x14, 0xb1, 0x72, + 0xf5, 0x5b, 0xc8, 0xb6, 0x9c, 0x37, 0x76, 0xec, 0x39, 0xa0, 0xa3, 0x05, 0x52, 0x6e, 0x0f, 0xd9, + }, { + 0xa7, 0xdd, 0x0d, 0x78, 0x9e, 0x0b, 0xe3, 0x95, 0x60, 0x36, 0x36, 0x4f, 0xf9, 0x60, 0x5a, 0xa3, + 0x11, 0x24, 0xd2, 0x87, 0xc8, 0x52, 0x75, 0xec, 0xbb, 0xc1, 0x4c, 0xba, 0x24, 0xfe, 0x8f, 0x19, + 0xda, 0x13, 0x66, 0xaf, 0x49, 0xd0, 0x90, 0x06, 0x8c, 0x6a, 0xfb, 0x91, 0x37, 0x8d, 0x0d, 0x78, + 0xbf, 0x49, 0x11, 0xf4, 0x23, 0xe5, 0xce, 0x3b, 0x55, 0xbc, 0xa2, 0x57, 0xe8, 0x22, 0x74, 0xce, + }, { + 0x2c, 0xea, 0xc1, 0xbf, 0x4a, 0x24, 0x1f, 0xc2, 0x79, 0x47, 0xa2, 0x7c, 0xb6, 0xd9, 0x68, 0x15, + 0x80, 0x56, 0x5d, 0x01, 0x33, 0xfd, 0xf4, 0xae, 0xde, 0x30, 0x07, 0x9b, 0xe5, 0x83, 0x9b, 0x68, + 0x49, 0xb4, 0x2e, 0x83, 0x1f, 0xc2, 0xb5, 0x7c, 0xa2, 0x19, 0xd8, 0xe5, 0x7c, 0x2f, 0x83, 0xda, + 0xf7, 0x6b, 0x90, 0xfe, 0xc4, 0x01, 0x5a, 0x97, 0x61, 0xa6, 0x3d, 0x40, 0x0b, 0x58, 0xe6, 0x3d, + }, { + 0x4d, 0xd1, 0xb2, 0x0f, 0x28, 0xbd, 0xe4, 0x78, 0xf6, 0x4a, 0x0f, 0x93, 0x8b, 0x17, 0xd1, 0xa4, + 0x3a, 0xec, 0xc9, 0x35, 0x93, 0x56, 0x7e, 0xcb, 0x55, 0x20, 0xa0, 0xfe, 0x6c, 0x89, 0x17, 0x62, + 0x17, 0x62, 0x4b, 0xb1, 0xb4, 0xde, 0xd1, 0x87, 0xc9, 0x14, 0x3c, 0x4a, 0x7e, 0xa8, 0xe2, 0x7d, + 0xa0, 0x9f, 0xf6, 0x5c, 0x6a, 0x09, 0x8d, 0xf0, 0x0f, 0xe3, 0x53, 0x25, 0x95, 0x36, 0x28, 0xcb, + } +}; +/*----------------- + * long data get + */ +static unsigned int getlong(unsigned char *p) +{ + return p[0] + | p[1] << 0x08 + | p[2] << 0x10 + | p[3] << 0x18; // Shinomori +} + +/*========================================== + * Grf data decode : Subs + *------------------------------------------ + */ +static void NibbleSwap(BYTE *Src, int len) +{ + for(;0>4) | (*Src<<4); + } +} + +static void BitConvert(BYTE *Src,char *BitSwapTable) +{ + int lop,prm; + BYTE tmp[8]; + memset(tmp,0,8); + for(lop=0;lop!=64;lop++) { + prm = BitSwapTable[lop]-1; + if (Src[(prm >> 3) & 7] & BitMaskTable[prm & 7]) { + tmp[(lop >> 3) & 7] |= BitMaskTable[lop & 7]; + } + } + memcpy(Src,tmp,8); +} + +static void BitConvert4(BYTE *Src) +{ + int lop,prm; + BYTE tmp[8]; + tmp[0] = ((Src[7]<<5) | (Src[4]>>3)) & 0x3f; // ..0 vutsr + tmp[1] = ((Src[4]<<1) | (Src[5]>>7)) & 0x3f; // ..srqpo n + tmp[2] = ((Src[4]<<5) | (Src[5]>>3)) & 0x3f; // ..o nmlkj + tmp[3] = ((Src[5]<<1) | (Src[6]>>7)) & 0x3f; // ..kjihg f + tmp[4] = ((Src[5]<<5) | (Src[6]>>3)) & 0x3f; // ..g fedcb + tmp[5] = ((Src[6]<<1) | (Src[7]>>7)) & 0x3f; // ..cba98 7 + tmp[6] = ((Src[6]<<5) | (Src[7]>>3)) & 0x3f; // ..8 76543 + tmp[7] = ((Src[7]<<1) | (Src[4]>>7)) & 0x3f; // ..43210 v + + for(lop=0;lop!=4;lop++) { + tmp[lop] = (NibbleData[lop][tmp[lop*2]] & 0xf0) + | (NibbleData[lop][tmp[lop*2+1]] & 0x0f); + } + + *(DWORD*)(tmp+4)=0; + for(lop=0;lop!=32;lop++) { + prm = BitSwapTable3[lop]-1; + if (tmp[prm >> 3] & BitMaskTable[prm & 7]) { + tmp[(lop >> 3) + 4] |= BitMaskTable[lop & 7]; + } + } + Src[0] ^= tmp[4]; + Src[1] ^= tmp[5]; + Src[2] ^= tmp[6]; + Src[3] ^= tmp[7]; +} + +static void decode_des_etc(BYTE *buf,int len,int type,int cycle) +{ + int lop,cnt=0; + if(cycle<3) cycle=3; + else if(cycle<5) cycle++; + else if(cycle<7) cycle+=9; + else cycle+=15; + + for(lop=0;lop*8 64K on 16-bit machine: */ + if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; + + stream.next_out = (Bytef*) dest; + stream.avail_out = (uInt)*destLen; + if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; + + stream.zalloc = (alloc_func)0; + stream.zfree = (free_func)0; + + err = inflateInit(&stream); + if (err != Z_OK) return err; + + err = inflate(&stream, Z_FINISH); + if (err != Z_STREAM_END) { + inflateEnd(&stream); + return err == Z_OK ? Z_BUF_ERROR : err; + } + *destLen = stream.total_out; + + err = inflateEnd(&stream); + return err; +} + +int encode_zip(unsigned char *dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen) { + z_stream stream; + int err; + memset(&stream, 0, sizeof(stream)); + stream.next_in = (Bytef*)source; + stream.avail_in = (uInt)sourceLen; + /* Check for source > 64K on 16-bit machine: */ + if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; + + stream.next_out = (Bytef*) dest; + stream.avail_out = (uInt)*destLen; + if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; + + stream.zalloc = (alloc_func)0; + stream.zfree = (free_func)0; + + err = deflateInit(&stream,Z_DEFAULT_COMPRESSION); + if (err != Z_OK) return err; + + err = deflate(&stream, Z_FINISH); + if (err != Z_STREAM_END) { + inflateEnd(&stream); + return err == Z_OK ? Z_BUF_ERROR : err; + } + *destLen = stream.total_out; + + err = deflateEnd(&stream); + return err; +} + +/* =================================== +* Unzips a file. 1: success, 0: error +* Adapted from miniunz.c [Celest] +* Version 1.01b, May 30th, 2004 +* Copyright (C) 1998-2004 Gilles Vollant +* ------------------------------------- +*/ +int deflate_file (const char *source, const char *filename) +{ +#ifdef _WIN32 + zlib_filefunc_def ffunc; +#endif + unzFile uf = NULL; + int err = UNZ_OK; + uInt size_buf = 8192; + FILE *fout = NULL; + void *buf; + +#ifdef _WIN32 + fill_win32_filefunc(&ffunc); + uf = unzOpen2(source, &ffunc); +#else + uf = unzOpen(source); +#endif + + if (uf == NULL) + return 0; + + if (unzLocateFile(uf, filename, 0) != UNZ_OK) + return 0; + + err = unzOpenCurrentFilePassword(uf, NULL); + + fout = fopen(filename,"wb"); + if (fout == NULL) + return 0; + + buf = (void *)malloc(size_buf); + do { + err = unzReadCurrentFile(uf, buf, size_buf); + if (err < 0) + break; + if (err > 0 && + fwrite(buf, err, 1, fout)!=1) + { + err = UNZ_ERRNO; + break; + } + } while (err > 0); + + if (fout) fclose(fout); + + if (err == UNZ_OK) { + err = unzCloseCurrentFile (uf); + free(buf); + return (err == UNZ_OK); + } + + unzCloseCurrentFile(uf); /* don't lose the error */ + + return 0; +} + +unsigned long grfio_crc32 (const unsigned char *buf, unsigned int len) +{ + return crc32(crc32(0L, Z_NULL, 0), buf, len); +} + +/*********************************************************** + *** File List Subroutines *** + ***********************************************************/ + +/*========================================== + * File List : Hash make + *------------------------------------------ + */ +static int filehash(unsigned char *fname) +{ + unsigned int hash=0; + while(*fname) { + hash = ((hash<<1)+(hash>>7)*9+tolower(*fname)); + fname++; + } + return hash & 255; +} + +/*========================================== + * File List : Hash initalize + *------------------------------------------ + */ +static void hashinit(void) +{ + int lop; + for (lop = 0; lop < 256; lop++) + filelist_hash[lop] = -1; +} + +/*========================================== + * File List : File find + *------------------------------------------ + */ +static FILELIST *filelist_find(char *fname) +{ + int hash; + + if (!filelist) + return NULL; + + for (hash = filelist_hash[filehash((unsigned char *) fname)]; hash >= 0; hash = filelist[hash].next) { + if(strcmpi(filelist[hash].fn, fname) == 0) + break; + } + + return (hash >= 0) ? &filelist[hash] : NULL; +} + +char *grfio_find_file(char *fname){ + FILELIST *filelist = filelist_find(fname); + if (!filelist) return NULL; + return (!filelist->fnd?filelist->fn:filelist->fnd); +} + +/*========================================== + * File List : Filelist add + *------------------------------------------ + */ +#define FILELIST_ADDS 1024 // number increment of file lists ` + +static FILELIST* filelist_add(FILELIST *entry) +{ + int hash; + + if (filelist_entrys >= FILELIST_LIMIT) { + printf("GRF filelist limit reached!\n"); + exit(1); + } + + if (filelist_entrys >= filelist_maxentry) { + filelist = (FILELIST *)realloc(filelist, (filelist_maxentry + FILELIST_ADDS) * sizeof(FILELIST)); + memset(filelist + filelist_maxentry, '\0', FILELIST_ADDS * sizeof(FILELIST)); + filelist_maxentry += FILELIST_ADDS; + } + + memcpy (&filelist[filelist_entrys], entry, sizeof(FILELIST)); + + hash = filehash((unsigned char *) entry->fn); + filelist[filelist_entrys].next = filelist_hash[hash]; + filelist_hash[hash] = filelist_entrys; + + filelist_entrys++; + + return &filelist[filelist_entrys - 1]; +} + +static FILELIST* filelist_modify(FILELIST *entry) +{ + FILELIST *fentry; + if ((fentry = filelist_find(entry->fn)) != NULL) { + int tmp = fentry->next; + memcpy(fentry, entry, sizeof(FILELIST)); + fentry->next = tmp; + } else { + fentry = filelist_add(entry); + } + return fentry; +} + +/*========================================== + * File List : filelist size adjust + *------------------------------------------ + */ +static void filelist_adjust(void) +{ + if (filelist != NULL) { + if (filelist_maxentry > filelist_entrys) { + filelist = (FILELIST *)realloc( + filelist, filelist_entrys * sizeof(FILELIST)); + filelist_maxentry = filelist_entrys; + } + } +} + +/*********************************************************** + *** Grfio Sobroutines *** + ***********************************************************/ + +/*========================================== + * Grfio : Resource file size get + *------------------------------------------ + */ +int grfio_size(char *fname) +{ + FILELIST *entry; + + entry = filelist_find(fname); + + if (entry == NULL || entry->gentry < 0) { // LocalFileCheck + char lfname[256], *p; + FILELIST lentry; + struct stat st; + + sprintf(lfname, "%s%s", data_dir, fname); + + for (p = &lfname[0]; *p != 0; p++) + if (*p=='\\') *p = '/'; // * At the time of Unix + + if (stat(lfname, &st) == 0) { + strncpy(lentry.fn, fname, sizeof(lentry.fn) - 1); + lentry.fnd = NULL; + lentry.declen = st.st_size; + lentry.gentry = 0; // 0:LocalFile + entry = filelist_modify(&lentry); + } else if (entry == NULL) { + printf("%s not found (grfio_size)\n", fname); + //exit(1); + return -1; + } + } + return entry->declen; +} + +/*========================================== + * Grfio : Resource file read & size get + *------------------------------------------ + */ +void* grfio_reads(char *fname, int *size) +{ + FILE *in; + FILELIST *entry; + unsigned char *buf2 = NULL; + + entry = filelist_find(fname); + + if (entry == NULL || entry->gentry <= 0) { // LocalFileCheck + char lfname[256], *p; + FILELIST lentry; + + sprintf(lfname, "%s%s", data_dir, fname); + + for (p = &lfname[0]; *p != 0; p++) + if (*p == '\\') *p = '/'; // * At the time of Unix + + in = fopen(lfname, "rb"); + if (in != NULL) { + if (entry != NULL && entry->gentry == 0) { + lentry.declen = entry->declen; + } else { + fseek(in,0,2); // SEEK_END + lentry.declen = ftell(in); + } + fseek(in,0,0); // SEEK_SET + buf2 = (unsigned char *)malloc(lentry.declen + 1024); + fread(buf2, 1, lentry.declen, in); + fclose(in); + strncpy(lentry.fn, fname, sizeof(lentry.fn) - 1); + lentry.fnd = NULL; + lentry.gentry = 0; // 0:LocalFile + entry = filelist_modify(&lentry); + } else { + if (entry != NULL && entry->gentry < 0) { + entry->gentry = -entry->gentry; // local file checked + } else { + printf("%s not found (grfio_reads - local file %s)\n", fname, lfname); + return NULL; + } + } + } + if (entry != NULL && entry->gentry > 0) { // Archive[GRF] File Read + char *gfname = gentry_table[entry->gentry - 1]; + in = fopen(gfname, "rb"); + if(in != NULL) { + unsigned char *buf = (unsigned char *)malloc(entry->srclen_aligned + 1024); + fseek(in, entry->srcpos, 0); + fread(buf, 1, entry->srclen_aligned, in); + fclose(in); + buf2 = (unsigned char *)malloc(entry->declen + 1024); + if (entry->type == 1 || entry->type == 3 || entry->type == 5) { + uLongf len; + if (entry->cycle >= 0) + decode_des_etc(buf, entry->srclen_aligned, entry->cycle == 0, entry->cycle); + len = entry->declen; + decode_zip(buf2, &len, buf, entry->srclen); + if (len != entry->declen) { + printf("decode_zip size mismatch err: %d != %d\n", (int)len, entry->declen); + free(buf); + free(buf2); + return NULL; + } + } else { + memcpy(buf2, buf, entry->declen); + } + free(buf); + } else { + printf("%s not found (grfio_reads - GRF file %s)\n", fname, gfname); + return NULL; + } + } + if (size != NULL && entry != NULL) + *size = entry->declen; + + return buf2; +} + +/*========================================== + * Resource filename decode + *------------------------------------------ + */ +static char * decode_filename(unsigned char *buf,int len) +{ + int lop; + for(lop=0;lop> 8; + + if (grf_version == 0x01) { //****** Grf version 01xx ****** + list_size = grf_size - ftell(fp); + grf_filelist = (unsigned char *) malloc(list_size); + fread(grf_filelist,1,list_size,fp); + fclose(fp); + + entrys = getlong(grf_header+0x26) - getlong(grf_header+0x22) - 7; + + // Get an entry + for (entry = 0,ofs = 0; entry < entrys; entry++) { + int ofs2, srclen, srccount, type; + char *period_ptr; + FILELIST aentry; + + ofs2 = ofs+getlong(grf_filelist+ofs)+4; + type = grf_filelist[ofs2+12]; + if (type != 0) { // Directory Index ... skip + fname = decode_filename(grf_filelist+ofs+6, grf_filelist[ofs]-6); + if (strlen(fname) > sizeof(aentry.fn) - 1) { + printf("GRF file name %s is too long\n", fname); + free(grf_filelist); + exit(1); + } + srclen = 0; + if ((period_ptr = strrchr(fname, '.')) != NULL) { + for(lop = 0; lop < 4; lop++) { + if (strcmpi(period_ptr, ".gnd\0.gat\0.act\0.str"+lop*5) == 0) + break; + } + srclen = getlong(grf_filelist+ofs2) - getlong(grf_filelist+ofs2+8) - 715; + if(lop == 4) { + for(lop = 10, srccount = 1; srclen >= lop; lop = lop * 10, srccount++); + } else { + srccount = 0; + } + } else { + srccount = 0; + } + + aentry.srclen = srclen; + aentry.srclen_aligned = getlong(grf_filelist+ofs2+4)-37579; + aentry.declen = getlong(grf_filelist+ofs2+8); + aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; + aentry.cycle = srccount; + aentry.type = type; + strncpy(aentry.fn, fname,sizeof(aentry.fn)-1); + aentry.fnd = NULL; +#ifdef GRFIO_LOCAL + aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck +#else + aentry.gentry = gentry+1; // With no first time LocalFileCheck +#endif + filelist_modify(&aentry); + } + ofs = ofs2 + 17; + } + free(grf_filelist); + + } else if (grf_version == 0x02) { //****** Grf version 02xx ****** + unsigned char eheader[8]; + unsigned char *rBuf; + uLongf rSize, eSize; + + fread(eheader,1,8,fp); + rSize = getlong(eheader); // Read Size + eSize = getlong(eheader+4); // Extend Size + + if ((long)rSize > grf_size-ftell(fp)) { // Warning fix [Lance] + fclose(fp); + printf("Illegal data format: GRF compress entry size\n"); + return 4; + } + + rBuf = (unsigned char *)malloc(rSize); // Get a Read Size + grf_filelist = (unsigned char *)malloc(eSize); // Get a Extend Size + fread(rBuf,1,rSize,fp); + fclose(fp); + decode_zip(grf_filelist, &eSize, rBuf, rSize); // Decode function + list_size = eSize; + free(rBuf); + + entrys = getlong(grf_header+0x26) - 7; + + // Get an entry + for(entry = 0, ofs = 0; entry < entrys; entry++){ + int ofs2, srclen, srccount, type; + FILELIST aentry; + + fname = (char*)(grf_filelist+ofs); + if (strlen(fname) > sizeof(aentry.fn)-1) { + printf("GRF file name %s is too long\n", fname); + free(grf_filelist); + exit(1); + } + //ofs2 = ofs+strlen((char*)(grf_filelist+ofs))+1; + ofs2 = ofs + strlen(fname)+1; + type = grf_filelist[ofs2+12]; + if (type == 1 || type == 3 || type == 5) { + srclen = getlong(grf_filelist+ofs2); + if (grf_filelist[ofs2+12] == 3) { + for (lop = 10, srccount = 1; srclen >= lop; lop = lop * 10, srccount++); + } else if (grf_filelist[ofs2+12] == 5) { + srccount = 0; + } else { // if (grf_filelist[ofs2+12]==1) { + srccount = -1; + } + + aentry.srclen = srclen; + aentry.srclen_aligned = getlong(grf_filelist+ofs2+4); + aentry.declen = getlong(grf_filelist+ofs2+8); + aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; + aentry.cycle = srccount; + aentry.type = type; + strncpy(aentry.fn,fname,sizeof(aentry.fn)-1); + aentry.fnd = NULL; +#ifdef GRFIO_LOCAL + aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck +#else + aentry.gentry = gentry+1; // With no first time LocalFileCheck +#endif + filelist_modify(&aentry); + } + ofs = ofs2 + 17; + } + free(grf_filelist); + + } else { //****** Grf Other version ****** + fclose(fp); + printf("GRF version %04x not supported\n",getlong(grf_header+0x2a)); + return 4; + } + + filelist_adjust(); // Unnecessary area release of filelist + + return 0; // 0:no error +} + +/*========================================== + * Grfio : Resource file check + *------------------------------------------ + */ +static void grfio_resourcecheck(void) +{ + char w1[256], w2[256], src[256], dst[256], restable[256], line[256]; + char *ptr, *buf; + FILELIST *entry; + int size, i = 0; + FILE *fp; + + // read resnametable from data directory and return if successful + sprintf(restable, "%sdata\\resnametable.txt", data_dir); + for (ptr = &restable[0]; *ptr != 0; ptr++) + if (*ptr == '\\') *ptr = '/'; + + fp = fopen(restable,"rb"); + if (fp) { + while (fgets(line, sizeof(line) - 1, fp)) { + if (sscanf(line, "%[^#]#%[^#]#", w1, w2) == 2 && + // we only need the maps' GAT and RSW files + (strstr(w2, ".gat") || strstr(w2, ".rsw"))) + { + sprintf(src, "data\\%s", w1); + sprintf(dst, "data\\%s", w2); + entry = filelist_find(dst); + // create new entries reusing the original's info + if (entry != NULL) { + FILELIST fentry; + memcpy(&fentry, entry, sizeof(FILELIST)); + strncpy(fentry.fn, src, sizeof(fentry.fn) - 1); + fentry.fnd = grfio_alloc_ptr(dst); + filelist_modify(&fentry); + i++; + } + } + } + fclose(fp); + return; // we're done here! + } + + // read resnametable from loaded GRF's, only if it cannot be + // loaded from the data directory + buf = (char *)grfio_reads("data\\resnametable.txt", &size); + if (buf) { + buf[size] = 0; + ptr = buf; + + while (ptr - buf < size) { + if (sscanf(ptr, "%[^#]#%[^#]#", w1, w2) == 2 && + (strstr(w2, ".gat") || strstr(w2, ".rsw"))) + { + sprintf(src, "data\\%s", w1); + sprintf(dst, "data\\%s", w2); + entry = filelist_find(dst); + if (entry != NULL) { + FILELIST fentry; + memcpy(&fentry, entry, sizeof(FILELIST)); + strncpy(fentry.fn, src, sizeof(fentry.fn) - 1); + fentry.fnd = grfio_alloc_ptr(dst); + filelist_modify(&fentry); + i++; + } + } + ptr = strchr(ptr,'\n'); // Next line + if (!ptr) break; + ptr++; + } + free(buf); + return; + } + +} + +/*========================================== + * Grfio : Resource add + *------------------------------------------ + */ +#define GENTRY_ADDS 4 // The number increment of gentry_table entries + +static int grfio_add(char *fname) +{ + grfio_alloc_ptr(fname); + + return grfio_entryread(fname, gentry_entrys - 1); +} + +char *grfio_alloc_ptr(char *fname) +{ + int len; + char *buf; + + if (gentry_entrys >= GENTRY_LIMIT) { + printf("GRF file entry limit reached!\n"); + exit(1); + } + + if (gentry_entrys >= gentry_maxentry) { + gentry_maxentry += GENTRY_ADDS; + gentry_table = (char**)realloc(gentry_table, gentry_maxentry * sizeof(char*)); + memset(gentry_table + (gentry_maxentry - GENTRY_ADDS), 0, sizeof(char*) * GENTRY_ADDS); + } + len = strlen( fname ); + buf = (char*)malloc(len + 1); + strcpy(buf, fname); + gentry_table[gentry_entrys++] = buf; + + return buf; +} + +/*========================================== + * Grfio : Finalize + *------------------------------------------ + */ +void grfio_final(void) +{ + if (filelist != NULL) + free(filelist); + + filelist_entrys = filelist_maxentry = 0; + + if (gentry_table != NULL) { + int lop; + for (lop = 0; lop < gentry_entrys; lop++) { + if (gentry_table[lop] != NULL) + free(gentry_table[lop]); + } + free(gentry_table); + } + gentry_table = NULL; + gentry_entrys = gentry_maxentry = 0; +} + +/*========================================== + * Grfio : Initialize + *------------------------------------------ + */ +void grfio_init(char *fname) +{ + FILE *data_conf; + char line[1024], w1[1024], w2[1024]; + int grf_num = 0; + + hashinit(); // hash table initialization + + data_conf = fopen(fname, "r"); + // It will read, if there is grf-files.txt. + if (data_conf) { + while(fgets(line, sizeof(line) - 1, data_conf)) { + if (line[0] == '/' && line[1] == '/') + continue; + if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) != 2) + continue; + // Entry table reading + if(strcmp(w1, "grf") == 0) // GRF file + grf_num += (grfio_add(w2) == 0); + else if(strcmp(w1,"data_dir") == 0) // Data directory + strcpy(data_dir, w2); + } + fclose(data_conf); + } // end of reading grf-files.txt + + if (grf_num == 0) { + printf("No GRF loaded, using default data directory\n"); + } + + // Unnecessary area release of filelist + filelist_adjust(); + // Resource check + grfio_resourcecheck(); + + return; +} diff --git a/src/tool/grfio.h b/src/tool/grfio.h new file mode 100644 index 000000000..72aceeda9 --- /dev/null +++ b/src/tool/grfio.h @@ -0,0 +1,23 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#ifndef _GRFIO_H_ +#define _GRFIO_H_ + +void grfio_init(char*); // GRFIO Initialize +void grfio_final(void); // GRFIO Finalize +void* grfio_reads(char*,int*); // GRFIO data file read & size get +char *grfio_find_file(char *fname); +char *grfio_alloc_ptr(char *fname); + +#define grfio_read(fn) grfio_reads(fn, NULL) + +int grfio_size(char*); // GRFIO data file size get +unsigned long grfio_crc32(const unsigned char *buf, unsigned int len); + +int decode_zip(unsigned char *dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen); +int encode_zip(unsigned char *dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen); +int deflate_file (const char *source, const char *filename); + +#endif /* _GRFIO_H_ */ + diff --git a/src/tool/mapcache.c b/src/tool/mapcache.c new file mode 100644 index 000000000..c7e6aaa60 --- /dev/null +++ b/src/tool/mapcache.c @@ -0,0 +1,202 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#include +#include +#include +#include + +#ifndef _WIN32 +#include +#endif + +#include "grfio.h" + +char grf_list_file[256] = "tools/mapcache/grf_files.txt"; +char map_list_file[256] = "tools/mapcache/map_list.txt"; +char map_cache_file[256] = "map_cache.dat"; + +#define MAP_NAME_LENGTH 16 +#define NO_WATER 1000000 + +// Used internally, this structure contains the physical map cells +struct map_data { + short xs; + short ys; + unsigned char *cells; +}; + +// This is the header appended before every compressed map cells info +struct map_cache_info { + char name[MAP_NAME_LENGTH]; + unsigned short index; + short xs; + short ys; + long len; +}; + +// This is the main header found at the very beginning of the file +struct map_cache_head { + short sizeof_header; + short sizeof_mapinfo; + long filesize; + unsigned short map_count; +} header; + +FILE *map_cache_fp; + + +// Read map from GRF's GAT and RSW files +int read_map(char *name, struct map_data *m) +{ + char filename[256]; + char *gat, *rsw; + int water_height; + int x, y, xs, ys; + struct gat_cell { + float height[4]; + int type; + } *p = NULL; + + // Open map GAT + sprintf(filename,"data\\%s.gat", name); + gat = (char *)grfio_read(filename); + if (gat == NULL) + return 0; + + // Open map RSW + sprintf(filename,"data\\%s.rsw", name); + rsw = (char *)grfio_read(filename); + + // Read water height + if (rsw) { + float temp = *(float*)(rsw+166); + water_height = (int)temp; + free(rsw); + } else + water_height = NO_WATER; + + // Read map size and allocate needed memory + xs = m->xs = *(int*)(gat+6); + ys = m->ys = *(int*)(gat+10); + m->cells = (unsigned char *)malloc(xs*ys); + + // Set cell properties + for (y = 0; y < ys; y++) { + p = (struct gat_cell*)(gat+14+y*xs*20); + for (x = 0; x < xs; x++) { + if (water_height != NO_WATER && p->type == 0 && (p->height[0] > water_height || p->height[1] > water_height || p->height[2] > water_height || p->height[3] > water_height)) + m->cells[x+y*xs] = 3; // Cell is 0 (walkable) but under water level, set to 3 (walkable water) + else + m->cells[x+y*xs] = p->type; + p++; + } + } + + free(gat); + + return 1; +} + +void cache_map(char *name, unsigned short index, struct map_data *m) +{ + struct map_cache_info info; + unsigned long len; + char *write_buf; + + // Create an output buffer twice as big as the uncompressed map... this way we're sure it fits + len = m->xs*m->ys*2; + write_buf = (char *)malloc(len); + // Compress the cells and get the compressed length + encode_zip((unsigned char *)write_buf, &len, m->cells, m->xs*m->ys); + + // Fill the map header + strncpy(info.name, name, MAP_NAME_LENGTH); + info.index = index; + info.xs = m->xs; + info.ys = m->ys; + info.len = len; + + // Append map header then compressed cells at the end of the file + fseek(map_cache_fp, header.filesize, SEEK_SET); + fwrite(&info, sizeof(struct map_cache_info), 1, map_cache_fp); + fwrite(write_buf, 1, len, map_cache_fp); + header.map_count++; + header.filesize += header.sizeof_mapinfo + len; + + free(write_buf); + free(m->cells); + + return; +} + +int main(int argc, char *argv[]) +{ + FILE *list; + char line[1024]; + struct map_data map; + char name[MAP_NAME_LENGTH]; + unsigned short index = 1; + + if(argc > 1) + strcpy(grf_list_file, argv[1]); + if(argc > 2) + strcpy(map_list_file, argv[2]); + if(argc > 3) + strcpy(map_cache_file, argv[3]); + + printf("Initializing grfio with %s\n", grf_list_file); + grfio_init(grf_list_file); + + printf("Opening map cache: %s\n", map_cache_file); + if(!(map_cache_fp = fopen(map_cache_file, "wb"))) { + printf("Failure when opening map cache file %s\n", map_cache_file); + exit(1); + } + + printf("Opening map list: %s\n", map_list_file); + if(!(list = fopen(map_list_file, "r"))) { + printf("Failure when opening maps list file %s\n", map_list_file); + exit(1); + } + + // Initialize the main header + header.sizeof_header = sizeof(struct map_cache_head); + header.sizeof_mapinfo = sizeof(struct map_cache_info); + header.map_count = 0; + header.filesize = sizeof(struct map_cache_head); + + // Read and process the map list + while(fgets(line, 1020, list)){ + + if(line[0] == '/' && line[1] == '/') + continue; + + if(sscanf(line, "%16s %hu", name, &index) > 0) { // No defines in strings, 16 is hardcoded here + printf("Index %d : %s\n", index, name); + if(read_map(name, &map)) + cache_map(name, index, &map); + else + printf("Map file not found in GRF\n"); + // If the 2nd argument is omitted at next line, we'll keep last used index + 1 + index++; + } else + printf("Skipping incorrect line\n"); + } + + printf("Closing map list: %s\n", map_list_file); + fclose(list); + + printf("Closing map cache: %s\n", map_cache_file); + // Write the main header and close the map cache + fseek(map_cache_fp, 0, SEEK_SET); + fwrite(&header, sizeof(struct map_cache_head), 1, map_cache_fp); + fclose(map_cache_fp); + + printf("Finalizing grfio\n"); + grfio_final(); + + printf("%d maps cached\n", header.map_count); + + return 0; +} diff --git a/tools/mapcache/grf_files.txt b/tools/mapcache/grf_files.txt new file mode 100644 index 000000000..38e4bca90 --- /dev/null +++ b/tools/mapcache/grf_files.txt @@ -0,0 +1,14 @@ +//----------------------------------------- +// GRF List +//----------------------------------------- + +grf: C:\Jeux\RO\sdata.grf + +// You may add more in this format +// grf: + +//------ Others --------------------------- + +//Path to directory that contains the data dir +//NOTE: Path must include trailing backslash, only one data_dir entry is supported. +//data_dir: C:\Program Files\Gravity\RO\ diff --git a/tools/mapcache/map_list.txt b/tools/mapcache/map_list.txt new file mode 100644 index 000000000..5bb039d6f --- /dev/null +++ b/tools/mapcache/map_list.txt @@ -0,0 +1,646 @@ +//====================================================================================== +// Map Index +//====================================================================================== +//Contains the list of maps with their respective IDs for inter-server use. +//IDs must never change, therefore any new maps need to be added at the end, +//and old ones must not be removed, but may be replaced. +//Format: +//mapnameindex <- specifies index for this map +//mapname <- map will use index of previous map +1 +//Note that map index 0 is special and reserved for "error" status. +alb_ship 1 +alb2trea +alberta +alberta_in +alde_dun01 +alde_dun02 +alde_dun03 +alde_dun04 +aldeba_in +aldebaran +anthell01 +anthell02 +arena_room +c_tower1 +c_tower2 +c_tower3 +c_tower4 +force_1-1 +force_1-2 +force_1-3 +force_2-1 +force_2-2 +force_2-3 +force_3-1 +force_3-2 +force_3-3 +gef_dun00 +gef_dun01 +gef_dun02 +gef_dun03 +gef_fild00 +gef_fild01 +gef_fild02 +gef_fild03 +gef_fild04 +gef_fild05 +gef_fild06 +gef_fild07 +gef_fild08 +gef_fild09 +gef_fild10 +gef_fild11 +gef_fild12 +gef_fild13 +gef_fild14 +gef_tower +geffen +geffen_in +gl_cas01 +gl_cas02 +gl_church +gl_chyard +gl_dun01 +gl_dun02 +gl_in01 +gl_knt01 +gl_knt02 +gl_prison +gl_prison1 +gl_sew01 +gl_sew02 +gl_sew03 +gl_sew04 +gl_step +glast_01 +hunter_1-1 +hunter_2-1 +hunter_3-1 +in_hunter +in_moc_16 +in_orcs01 +in_sphinx1 +in_sphinx2 +in_sphinx3 +in_sphinx4 +in_sphinx5 +iz_dun00 +iz_dun01 +iz_dun02 +iz_dun03 +iz_dun04 +job_sword1 +izlu2dun +izlude +izlude_in +job_thief1 +knight_1-1 +knight_2-1 +knight_3-1 +mjo_dun01 +mjo_dun02 +mjo_dun03 +mjolnir_01 +mjolnir_02 +mjolnir_03 +mjolnir_04 +mjolnir_05 +mjolnir_06 +mjolnir_07 +mjolnir_08 +mjolnir_09 +mjolnir_10 +mjolnir_11 +mjolnir_12 +moc_castle +moc_fild01 +moc_fild02 +moc_fild03 +moc_fild04 +moc_fild05 +moc_fild06 +moc_fild07 +moc_fild08 +moc_fild09 +moc_fild10 +moc_fild11 +moc_fild12 +moc_fild13 +moc_fild14 +moc_fild15 +moc_fild16 +moc_fild17 +moc_fild18 +moc_fild19 +moc_pryd01 +moc_pryd02 +moc_pryd03 +moc_pryd04 +moc_pryd05 +moc_pryd06 +moc_prydb1 +moc_ruins +monk_in +morocc +morocc_in +new_1-1 +new_1-2 +new_1-3 +new_1-4 +new_2-1 +new_2-2 +new_2-3 +new_2-4 +new_3-1 +new_3-2 +new_3-3 +new_3-4 +new_4-1 +new_4-2 +new_4-3 +new_4-4 +new_5-1 +new_5-2 +new_5-3 +new_5-4 +orcsdun01 +orcsdun02 +ordeal_1-1 +ordeal_1-2 +ordeal_1-3 +ordeal_1-4 +ordeal_2-1 +ordeal_2-2 +ordeal_2-3 +ordeal_2-4 +ordeal_3-1 +ordeal_3-2 +ordeal_3-3 +ordeal_3-4 +pay_arche +pay_dun00 +pay_dun01 +pay_dun02 +pay_dun03 +pay_dun04 +pay_fild01 +pay_fild02 +pay_fild03 +pay_fild04 +pay_fild05 +pay_fild06 +pay_fild07 +pay_fild08 +pay_fild09 +pay_fild10 +pay_fild11 +payon +payon_in01 +payon_in02 +priest_1-1 +priest_2-1 +priest_3-1 +prontera +prt_are_in +prt_are01 +pvp_room +prt_castle +prt_church +prt_fild00 +prt_fild01 +prt_fild02 +prt_fild03 +prt_fild04 +prt_fild05 +prt_fild06 +prt_fild07 +prt_fild08 +prt_fild09 +prt_fild10 +prt_fild11 +prt_in +prt_maze01 +prt_maze02 +prt_maze03 +prt_monk +prt_sewb1 +prt_sewb2 +prt_sewb3 +prt_sewb4 +pvp_2vs2 +pvp_c_room +pvp_n_1-1 +pvp_n_1-2 +pvp_n_1-3 +pvp_n_1-4 +pvp_n_1-5 +pvp_n_2-1 +pvp_n_2-2 +pvp_n_2-3 +pvp_n_2-4 +pvp_n_2-5 +pvp_n_3-1 +pvp_n_3-2 +pvp_n_3-3 +pvp_n_3-4 +pvp_n_3-5 +pvp_n_4-1 +pvp_n_4-2 +pvp_n_4-3 +pvp_n_4-4 +pvp_n_4-5 +pvp_n_5-1 +pvp_n_5-2 +pvp_n_5-3 +pvp_n_5-4 +pvp_n_5-5 +pvp_n_6-1 +pvp_n_6-2 +pvp_n_6-3 +pvp_n_6-4 +pvp_n_6-5 +pvp_n_7-1 +pvp_n_7-2 +pvp_n_7-3 +pvp_n_7-4 +pvp_n_7-5 +pvp_n_8-1 +pvp_n_8-2 +pvp_n_8-3 +pvp_n_8-4 +pvp_n_8-5 +pvp_n_room +pvp_y_1-1 +pvp_y_1-2 +pvp_y_1-3 +pvp_y_1-4 +pvp_y_1-5 +pvp_y_2-1 +pvp_y_2-2 +pvp_y_2-3 +pvp_y_2-4 +pvp_y_2-5 +pvp_y_3-1 +pvp_y_3-2 +pvp_y_3-3 +pvp_y_3-4 +pvp_y_3-5 +pvp_y_4-1 +pvp_y_4-2 +pvp_y_4-3 +pvp_y_4-4 +pvp_y_4-5 +pvp_y_5-1 +pvp_y_5-2 +pvp_y_5-3 +pvp_y_5-4 +pvp_y_5-5 +pvp_y_6-1 +pvp_y_6-2 +pvp_y_6-3 +pvp_y_6-4 +pvp_y_6-5 +pvp_y_7-1 +pvp_y_7-2 +pvp_y_7-3 +pvp_y_7-4 +pvp_y_7-5 +pvp_y_8-1 +pvp_y_8-2 +pvp_y_8-3 +pvp_y_8-4 +pvp_y_8-5 +pvp_y_room +sword_1-1 +sword_2-1 +sword_3-1 +treasure01 +treasure02 +wizard_1-1 +wizard_2-1 +wizard_3-1 +xmas +xmas_dun01 +xmas_dun02 +xmas_fild01 +xmas_in +beach_dun +beach_dun2 +beach_dun3 +cmd_fild01 +cmd_fild02 +cmd_fild03 +cmd_fild04 +cmd_fild05 +cmd_fild06 +cmd_fild07 +cmd_fild08 +cmd_fild09 +cmd_in01 +cmd_in02 +comodo +quiz_00 +quiz_01 +g_room1-1 +g_room1-2 +g_room1-3 +g_room2 +tur_dun01 +tur_dun02 +tur_dun03 +tur_dun04 +tur_dun05 +tur_dun06 +alde_gld +aldeg_cas01 +aldeg_cas02 +aldeg_cas03 +aldeg_cas04 +aldeg_cas05 +gefg_cas01 +gefg_cas02 +gefg_cas03 +gefg_cas04 +gefg_cas05 +gld_dun01 +gld_dun02 +gld_dun03 +gld_dun04 +guild_room +guild_vs1 +guild_vs2 +guild_vs3 +guild_vs4 +guild_vs5 +guild_vs1-1 +guild_vs1-2 +guild_vs1-3 +guild_vs1-4 +guild_vs2-1 +guild_vs2-2 +job_hunte +job_knt +job_prist +job_wiz +pay_gld +payg_cas01 +payg_cas02 +payg_cas03 +payg_cas04 +payg_cas05 +prt_gld +prtg_cas01 +prtg_cas02 +prtg_cas03 +prtg_cas04 +prtg_cas05 +alde_alche +in_rogue +job_cru +job_duncer +job_monk +job_sage +mag_dun01 +mag_dun02 +monk_test +quiz_test +yuno +yuno_fild01 +yuno_fild02 +yuno_fild03 +yuno_fild04 +yuno_in01 +yuno_in02 +yuno_in03 +yuno_in04 +yuno_in05 +ama_dun01 +ama_dun02 +ama_dun03 +ama_fild01 +ama_in01 +ama_in02 +ama_test +amatsu +gon_dun01 +gon_dun02 +gon_dun03 +gon_fild01 +gon_in +gon_test +gonryun +sec_in01 +sec_in02 +sec_pri +umbala +um_dun01 +um_dun02 +um_fild01 +um_fild02 +um_fild03 +um_fild04 +um_in +niflheim +nif_fild01 +nif_fild02 +nif_in +yggdrasil01 +valkyrie +himinn +lou_in01 +lou_in02 +lou_dun03 +lou_dun02 +lou_dun01 +lou_fild01 +louyang +siege_test +n_castle +nguild_gef +nguild_prt +nguild_pay +nguild_alde +jawaii +jawaii_in +gefenia01 +gefenia02 +gefenia03 +gefenia04 +new_zone01 +new_zone02 +new_zone03 +new_zone04 +payon_in03 +ayothaya +ayo_in01 +ayo_in02 +ayo_fild01 +ayo_fild02 +ayo_dun01 +ayo_dun02 +que_god01 +que_god02 +yuno_fild05 +yuno_fild07 +yuno_fild08 +yuno_fild09 +yuno_fild11 +yuno_fild12 +alde_tt02 +turbo_n_1 +turbo_n_4 +turbo_n_8 +turbo_n_16 +turbo_e_4 +turbo_e_8 +turbo_e_16 +turbo_room +airplane +airport +einbech +einbroch +ein_dun01 +ein_dun02 +ein_fild06 +ein_fild07 +ein_fild08 +ein_fild09 +ein_fild10 +ein_in01 +que_sign01 +que_sign02 +ein_fild03 +ein_fild04 +lhz_fild02 +lhz_fild03 +yuno_pre +lhz_fild01 +lighthalzen +lhz_in01 +lhz_in02 +lhz_in03 +lhz_que01 +lhz_dun01 +lhz_dun02 +lhz_dun03 +lhz_cube +juperos_01 +juperos_02 +jupe_area1 +jupe_area2 +jupe_core +jupe_ele +jupe_ele_r +jupe_gate +y_airport +lhz_airport +airplane_01 +jupe_cave +quiz_02 +hu_fild07 +hu_fild05 +hu_fild04 +hu_fild01 +yuno_fild06 +job_soul +job_star +que_job01 +que_job02 +que_job03 +abyss_01 +abyss_02 +abyss_03 +thana_step +thana_boss +tha_scene01 +tha_t01 +tha_t02 +tha_t03 +tha_t04 +tha_t07 +tha_t05 +tha_t06 +tha_t08 +tha_t09 +tha_t10 +tha_t11 +tha_t12 +auction_01 +auction_02 +hugel +hu_in01 +que_bingo +que_hugel +p_track01 +p_track02 +odin_tem01 +odin_tem02 +odin_tem03 +hu_fild02 +hu_fild03 +hu_fild06 +ein_fild01 +ein_fild02 +ein_fild05 +yuno_fild10 +kh_kiehl02 +kh_kiehl01 +kh_dun02 +kh_dun01 +kh_mansion +kh_rossi +kh_school +kh_vila +force_map1 +force_map2 +force_map3 +job_hunter +job_knight +job_priest +job_wizard +g_room2 +rachel +ra_in01 +ra_fild01 +ra_fild02 +ra_fild03 +ra_fild04 +ra_fild05 +ra_fild06 +ra_fild07 +ra_fild08 +ra_fild09 +ra_fild10 +ra_fild11 +ra_fild12 +ra_fild13 +ra_san01 +ra_san02 +ra_san03 +ra_san04 +ra_san05 +ra_temin +ra_temple +ra_temsky +que_rachel +ice_dun01 +ice_dun02 +ice_dun03 +ice_dun04 +que_thor +thor_camp +thor_v01 +thor_v02 +thor_v03 +veins +ve_in +ve_fild01 +ve_fild02 +ve_fild03 +ve_fild04 +ve_fild05 +ve_fild06 +ve_fild07 +poring_c01 +poring_c02 +que_ng diff --git a/vcproj-8/mapcache.vcproj b/vcproj-8/mapcache.vcproj new file mode 100644 index 000000000..f2db1a2da --- /dev/null +++ b/vcproj-8/mapcache.vcproj @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3-70-g09d2 From ed39bb7197c749c28f1de75a4219329465b0fa08 Mon Sep 17 00:00:00 2001 From: DracoRPG Date: Tue, 13 Mar 2007 20:24:08 +0000 Subject: Mapcache update, should polish off remaining bugs git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10003 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 7 + conf-tmpl/grf-files.txt | 15 - db/grf_files.txt | 14 + db/map_index.txt | 710 -------------------------------- db/map_list.txt | 713 ++++++++++++++++++++++++++++++++ src/char/char.c | 24 +- src/char_sql/char.c | 4 +- src/common/grfio.c | 874 +--------------------------------------- src/common/mapindex.c | 24 +- src/common/mapindex.h | 51 +-- src/map/atcommand.c | 97 ++--- src/map/charcommand.c | 6 - src/map/clif.c | 31 +- src/map/guild.c | 8 +- src/map/guild.h | 2 +- src/map/map.c | 22 +- src/map/script.c | 246 +++++------ src/tool/mapcache.c | 7 +- tools/mapcache/grf_files.txt | 14 - tools/mapcache/map_list.txt | 646 ----------------------------- vcproj-8/char-server_txt.vcproj | 2 +- 21 files changed, 990 insertions(+), 2527 deletions(-) delete mode 100644 conf-tmpl/grf-files.txt create mode 100644 db/grf_files.txt delete mode 100644 db/map_index.txt create mode 100644 db/map_list.txt delete mode 100644 tools/mapcache/grf_files.txt delete mode 100644 tools/mapcache/map_list.txt (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 7659c9b8a..92a9ed67a 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,13 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2007/03/14 + * Finished polishing the new mapcache system [DracoRPG] + - common/grfio.* now empty except zipping functions (to read mapcache) + - servers do not use .gat internally anymore + => YOU CAN (and should) STOP USING .gat IN YOUR SCRIPTS + - moved files for the mapcache builder to db/ for now + - the char-server now uses the same index list as the mapcache builder + => poring_c01, poring_c02 and ng_quest mapindex have changed, beware * Updated sql files [Playtester] * Adjusted @pvpoff, @gvgoff, @killer, @killable to make characters stop attacking when used. diff --git a/conf-tmpl/grf-files.txt b/conf-tmpl/grf-files.txt deleted file mode 100644 index ef2421925..000000000 --- a/conf-tmpl/grf-files.txt +++ /dev/null @@ -1,15 +0,0 @@ -//----------------------------------------- -// GRF List -//----------------------------------------- - -grf: C:\Program Files\Gravity\RO\data.grf -grf: C:\Program Files\Gravity\RO\sdata.grf - -// You may add more in this format -// grf: - -//------ Others --------------------------- - -//Path to directory that contains the data dir -//NOTE: Path must include trailing backslash, only one data_dir entry is supported. -//data_dir: C:\Program Files\Gravity\RO\ diff --git a/db/grf_files.txt b/db/grf_files.txt new file mode 100644 index 000000000..38e4bca90 --- /dev/null +++ b/db/grf_files.txt @@ -0,0 +1,14 @@ +//----------------------------------------- +// GRF List +//----------------------------------------- + +grf: C:\Jeux\RO\sdata.grf + +// You may add more in this format +// grf: + +//------ Others --------------------------- + +//Path to directory that contains the data dir +//NOTE: Path must include trailing backslash, only one data_dir entry is supported. +//data_dir: C:\Program Files\Gravity\RO\ diff --git a/db/map_index.txt b/db/map_index.txt deleted file mode 100644 index dd2f9ea7c..000000000 --- a/db/map_index.txt +++ /dev/null @@ -1,710 +0,0 @@ -//====================================================================================== -// Map Index -//====================================================================================== -//Contains the list of maps with their respective IDs for inter-server use. -//IDs must never change, therefore any new maps need to be added at the end, -//and old ones must not be removed, but may be replaced. -//Format: -//mapnameindex <- specifies index for this map -//mapname <- map will use index of previous map +1 -//Note that map index 0 is special and reserved for "error" status. -//Note: The extension is optional, all maps will have their extension set to -// ".gat" upon loading. -unknown.gat 0 -alb_ship.gat -alb2trea.gat -alberta.gat -alberta_in.gat -alde_dun01.gat -alde_dun02.gat -alde_dun03.gat -alde_dun04.gat -aldeba_in.gat -aldebaran.gat -anthell01.gat -anthell02.gat -arena_room.gat -c_tower1.gat -c_tower2.gat -c_tower3.gat -c_tower4.gat -force_1-1.gat -force_1-2.gat -force_1-3.gat -force_2-1.gat -force_2-2.gat -force_2-3.gat -force_3-1.gat -force_3-2.gat -force_3-3.gat -gef_dun00.gat -gef_dun01.gat -gef_dun02.gat -gef_dun03.gat -gef_fild00.gat -gef_fild01.gat -gef_fild02.gat -gef_fild03.gat -gef_fild04.gat -gef_fild05.gat -gef_fild06.gat -gef_fild07.gat -gef_fild08.gat -gef_fild09.gat -gef_fild10.gat -gef_fild11.gat -gef_fild12.gat -gef_fild13.gat -gef_fild14.gat -gef_tower.gat -geffen.gat -geffen_in.gat -gl_cas01.gat -gl_cas02.gat -gl_church.gat -gl_chyard.gat -gl_dun01.gat -gl_dun02.gat -gl_in01.gat -gl_knt01.gat -gl_knt02.gat -gl_prison.gat -gl_prison1.gat -gl_sew01.gat -gl_sew02.gat -gl_sew03.gat -gl_sew04.gat -gl_step.gat -glast_01.gat -hunter_1-1.gat -hunter_2-1.gat -hunter_3-1.gat -in_hunter.gat -in_moc_16.gat -in_orcs01.gat -in_sphinx1.gat -in_sphinx2.gat -in_sphinx3.gat -in_sphinx4.gat -in_sphinx5.gat -iz_dun00.gat -iz_dun01.gat -iz_dun02.gat -iz_dun03.gat -iz_dun04.gat -job_sword1.gat -izlu2dun.gat -izlude.gat -izlude_in.gat -job_thief1.gat -knight_1-1.gat -knight_2-1.gat -knight_3-1.gat -mjo_dun01.gat -mjo_dun02.gat -mjo_dun03.gat -mjolnir_01.gat -mjolnir_02.gat -mjolnir_03.gat -mjolnir_04.gat -mjolnir_05.gat -mjolnir_06.gat -mjolnir_07.gat -mjolnir_08.gat -mjolnir_09.gat -mjolnir_10.gat -mjolnir_11.gat -mjolnir_12.gat -moc_castle.gat -moc_fild01.gat -moc_fild02.gat -moc_fild03.gat -moc_fild04.gat -moc_fild05.gat -moc_fild06.gat -moc_fild07.gat -moc_fild08.gat -moc_fild09.gat -moc_fild10.gat -moc_fild11.gat -moc_fild12.gat -moc_fild13.gat -moc_fild14.gat -moc_fild15.gat -moc_fild16.gat -moc_fild17.gat -moc_fild18.gat -moc_fild19.gat -moc_pryd01.gat -moc_pryd02.gat -moc_pryd03.gat -moc_pryd04.gat -moc_pryd05.gat -moc_pryd06.gat -moc_prydb1.gat -moc_ruins.gat -monk_in.gat -morocc.gat -morocc_in.gat -new_1-1.gat -new_1-2.gat -new_1-3.gat -new_1-4.gat -new_2-1.gat -new_2-2.gat -new_2-3.gat -new_2-4.gat -new_3-1.gat -new_3-2.gat -new_3-3.gat -new_3-4.gat -new_4-1.gat -new_4-2.gat -new_4-3.gat -new_4-4.gat -new_5-1.gat -new_5-2.gat -new_5-3.gat -new_5-4.gat -orcsdun01.gat -orcsdun02.gat -ordeal_1-1.gat -ordeal_1-2.gat -ordeal_1-3.gat -ordeal_1-4.gat -ordeal_2-1.gat -ordeal_2-2.gat -ordeal_2-3.gat -ordeal_2-4.gat -ordeal_3-1.gat -ordeal_3-2.gat -ordeal_3-3.gat -ordeal_3-4.gat -pay_arche.gat -pay_dun00.gat -pay_dun01.gat -pay_dun02.gat -pay_dun03.gat -pay_dun04.gat -pay_fild01.gat -pay_fild02.gat -pay_fild03.gat -pay_fild04.gat -pay_fild05.gat -pay_fild06.gat -pay_fild07.gat -pay_fild08.gat -pay_fild09.gat -pay_fild10.gat -pay_fild11.gat -payon.gat -payon_in01.gat -payon_in02.gat -priest_1-1.gat -priest_2-1.gat -priest_3-1.gat -prontera.gat -prt_are_in.gat -prt_are01.gat -pvp_room.gat -prt_castle.gat -prt_church.gat -prt_fild00.gat -prt_fild01.gat -prt_fild02.gat -prt_fild03.gat -prt_fild04.gat -prt_fild05.gat -prt_fild06.gat -prt_fild07.gat -prt_fild08.gat -prt_fild09.gat -prt_fild10.gat -prt_fild11.gat -prt_in.gat -prt_maze01.gat -prt_maze02.gat -prt_maze03.gat -prt_monk.gat -prt_sewb1.gat -prt_sewb2.gat -prt_sewb3.gat -prt_sewb4.gat -pvp_2vs2.gat -pvp_c_room.gat -pvp_n_1-1.gat -pvp_n_1-2.gat -pvp_n_1-3.gat -pvp_n_1-4.gat -pvp_n_1-5.gat -pvp_n_2-1.gat -pvp_n_2-2.gat -pvp_n_2-3.gat -pvp_n_2-4.gat -pvp_n_2-5.gat -pvp_n_3-1.gat -pvp_n_3-2.gat -pvp_n_3-3.gat -pvp_n_3-4.gat -pvp_n_3-5.gat -pvp_n_4-1.gat -pvp_n_4-2.gat -pvp_n_4-3.gat -pvp_n_4-4.gat -pvp_n_4-5.gat -pvp_n_5-1.gat -pvp_n_5-2.gat -pvp_n_5-3.gat -pvp_n_5-4.gat -pvp_n_5-5.gat -pvp_n_6-1.gat -pvp_n_6-2.gat -pvp_n_6-3.gat -pvp_n_6-4.gat -pvp_n_6-5.gat -pvp_n_7-1.gat -pvp_n_7-2.gat -pvp_n_7-3.gat -pvp_n_7-4.gat -pvp_n_7-5.gat -pvp_n_8-1.gat -pvp_n_8-2.gat -pvp_n_8-3.gat -pvp_n_8-4.gat -pvp_n_8-5.gat -pvp_n_room.gat -pvp_y_1-1.gat -pvp_y_1-2.gat -pvp_y_1-3.gat -pvp_y_1-4.gat -pvp_y_1-5.gat -pvp_y_2-1.gat -pvp_y_2-2.gat -pvp_y_2-3.gat -pvp_y_2-4.gat -pvp_y_2-5.gat -pvp_y_3-1.gat -pvp_y_3-2.gat -pvp_y_3-3.gat -pvp_y_3-4.gat -pvp_y_3-5.gat -pvp_y_4-1.gat -pvp_y_4-2.gat -pvp_y_4-3.gat -pvp_y_4-4.gat -pvp_y_4-5.gat -pvp_y_5-1.gat -pvp_y_5-2.gat -pvp_y_5-3.gat -pvp_y_5-4.gat -pvp_y_5-5.gat -pvp_y_6-1.gat -pvp_y_6-2.gat -pvp_y_6-3.gat -pvp_y_6-4.gat -pvp_y_6-5.gat -pvp_y_7-1.gat -pvp_y_7-2.gat -pvp_y_7-3.gat -pvp_y_7-4.gat -pvp_y_7-5.gat -pvp_y_8-1.gat -pvp_y_8-2.gat -pvp_y_8-3.gat -pvp_y_8-4.gat -pvp_y_8-5.gat -pvp_y_room.gat -sword_1-1.gat -sword_2-1.gat -sword_3-1.gat -treasure01.gat -treasure02.gat -wizard_1-1.gat -wizard_2-1.gat -wizard_3-1.gat -xmas.gat -xmas_dun01.gat -xmas_dun02.gat -xmas_fild01.gat -xmas_in.gat -beach_dun.gat -beach_dun2.gat -beach_dun3.gat -cmd_fild01.gat -cmd_fild02.gat -cmd_fild03.gat -cmd_fild04.gat -cmd_fild05.gat -cmd_fild06.gat -cmd_fild07.gat -cmd_fild08.gat -cmd_fild09.gat -cmd_in01.gat -cmd_in02.gat -comodo.gat -quiz_00.gat -quiz_01.gat -g_room1-1.gat -g_room1-2.gat -g_room1-3.gat -g_room2.gat -tur_dun01.gat -tur_dun02.gat -tur_dun03.gat -tur_dun04.gat -tur_dun05.gat -tur_dun06.gat -alde_gld.gat -aldeg_cas01.gat -aldeg_cas02.gat -aldeg_cas03.gat -aldeg_cas04.gat -aldeg_cas05.gat -gefg_cas01.gat -gefg_cas02.gat -gefg_cas03.gat -gefg_cas04.gat -gefg_cas05.gat -gld_dun01.gat -gld_dun02.gat -gld_dun03.gat -gld_dun04.gat -guild_room.gat -guild_vs1.gat -guild_vs2.gat -guild_vs3.gat -guild_vs4.gat -guild_vs5.gat -guild_vs1-1.gat -guild_vs1-2.gat -guild_vs1-3.gat -guild_vs1-4.gat -guild_vs2-1.gat -guild_vs2-2.gat -job_hunte.gat -job_knt.gat -job_prist.gat -job_wiz.gat -pay_gld.gat -payg_cas01.gat -payg_cas02.gat -payg_cas03.gat -payg_cas04.gat -payg_cas05.gat -prt_gld.gat -prtg_cas01.gat -prtg_cas02.gat -prtg_cas03.gat -prtg_cas04.gat -prtg_cas05.gat -alde_alche.gat -in_rogue.gat -job_cru.gat -job_duncer.gat -job_monk.gat -job_sage.gat -mag_dun01.gat -mag_dun02.gat -monk_test.gat -quiz_test.gat -yuno.gat -yuno_fild01.gat -yuno_fild02.gat -yuno_fild03.gat -yuno_fild04.gat -yuno_in01.gat -yuno_in02.gat -yuno_in03.gat -yuno_in04.gat -yuno_in05.gat -ama_dun01.gat -ama_dun02.gat -ama_dun03.gat -ama_fild01.gat -ama_in01.gat -ama_in02.gat -ama_test.gat -amatsu.gat -gon_dun01.gat -gon_dun02.gat -gon_dun03.gat -gon_fild01.gat -gon_in.gat -gon_test.gat -gonryun.gat -sec_in01.gat -sec_in02.gat -sec_pri.gat -umbala.gat -um_dun01.gat -um_dun02.gat -um_fild01.gat -um_fild02.gat -um_fild03.gat -um_fild04.gat -um_in.gat -niflheim.gat -nif_fild01.gat -nif_fild02.gat -nif_in.gat -yggdrasil01.gat -valkyrie.gat -himinn.gat -lou_in01.gat -lou_in02.gat -lou_dun03.gat -lou_dun02.gat -lou_dun01.gat -lou_fild01.gat -louyang.gat -siege_test.gat -n_castle.gat -nguild_gef.gat -nguild_prt.gat -nguild_pay.gat -nguild_alde.gat -jawaii.gat -jawaii_in.gat -gefenia01.gat -gefenia02.gat -gefenia03.gat -gefenia04.gat -new_zone01.gat -new_zone02.gat -new_zone03.gat -new_zone04.gat -payon_in03.gat -ayothaya.gat -ayo_in01.gat -ayo_in02.gat -ayo_fild01.gat -ayo_fild02.gat -ayo_dun01.gat -ayo_dun02.gat -que_god01.gat -que_god02.gat -yuno_fild05.gat -yuno_fild07.gat -yuno_fild08.gat -yuno_fild09.gat -yuno_fild11.gat -yuno_fild12.gat -alde_tt02.gat -turbo_n_1.gat -turbo_n_4.gat -turbo_n_8.gat -turbo_n_16.gat -turbo_e_4.gat -turbo_e_8.gat -turbo_e_16.gat -turbo_room.gat -airplane.gat -airport.gat -einbech.gat -einbroch.gat -ein_dun01.gat -ein_dun02.gat -ein_fild06.gat -ein_fild07.gat -ein_fild08.gat -ein_fild09.gat -ein_fild10.gat -ein_in01.gat -que_sign01.gat -que_sign02.gat -ein_fild03.gat -ein_fild04.gat -lhz_fild02.gat -lhz_fild03.gat -yuno_pre.gat -lhz_fild01.gat -lighthalzen.gat -lhz_in01.gat -lhz_in02.gat -lhz_in03.gat -lhz_que01.gat -lhz_dun01.gat -lhz_dun02.gat -lhz_dun03.gat -lhz_cube.gat -juperos_01.gat -juperos_02.gat -jupe_area1.gat -jupe_area2.gat -jupe_core.gat -jupe_ele.gat -jupe_ele_r.gat -jupe_gate.gat -y_airport.gat -lhz_airport.gat -airplane_01.gat -jupe_cave.gat -quiz_02.gat -hu_fild07.gat -hu_fild05.gat -hu_fild04.gat -hu_fild01.gat -yuno_fild06.gat -job_soul.gat -job_star.gat -que_job01.gat -que_job02.gat -que_job03.gat -abyss_01.gat -abyss_02.gat -abyss_03.gat -thana_step.gat -thana_boss.gat -tha_scene01.gat -tha_t01.gat -tha_t02.gat -tha_t03.gat -tha_t04.gat -tha_t07.gat -tha_t05.gat -tha_t06.gat -tha_t08.gat -tha_t09.gat -tha_t10.gat -tha_t11.gat -tha_t12.gat -auction_01.gat -auction_02.gat -hugel.gat -hu_in01.gat -que_bingo.gat -que_hugel.gat -p_track01.gat -p_track02.gat -odin_tem01.gat -odin_tem02.gat -odin_tem03.gat -hu_fild02.gat -hu_fild03.gat -hu_fild06.gat -ein_fild01.gat -ein_fild02.gat -ein_fild05.gat -yuno_fild10.gat -kh_kiehl02.gat -kh_kiehl01.gat -kh_dun02.gat -kh_dun01.gat -kh_mansion.gat -kh_rossi.gat -kh_school.gat -kh_vila.gat -force_map1.gat -force_map2.gat -force_map3.gat -job_hunter.gat -job_knight.gat -job_priest.gat -job_wizard.gat -g_room2.gat -rachel.gat -ra_in01.gat -ra_fild01.gat -ra_fild02.gat -ra_fild03.gat -ra_fild04.gat -ra_fild05.gat -ra_fild06.gat -ra_fild07.gat -ra_fild08.gat -ra_fild09.gat -ra_fild10.gat -ra_fild11.gat -ra_fild12.gat -ra_fild13.gat -ra_san01.gat -ra_san02.gat -ra_san03.gat -ra_san04.gat -ra_san05.gat -ra_temin.gat -ra_temple.gat -ra_temsky.gat -que_rachel.gat -ice_dun01.gat -ice_dun02.gat -ice_dun03.gat -ice_dun04.gat -que_thor.gat -thor_camp.gat -thor_v01.gat -thor_v02.gat -thor_v03.gat -veins.gat -ve_in.gat -ve_fild01.gat -ve_fild02.gat -ve_fild03.gat -ve_fild04.gat -ve_fild05.gat -ve_fild06.gat -ve_fild07.gat -//====================================================================================== -// - Other/Extra maps - -// Only add maps under this line if they are not standard maps! -//====================================================================================== -rwc01.gat 1000 -rwc02.gat -rwc03.gat -prontera_x.gat -alberta_x.gat -aldebaran_x.gat -geffen_x.gat -izlude_x.gat -prt_church_x.gat -prontera_s.gat -pay_arche_s.gat -xmas_old.gat -ordeal_a00.gat -ordeal_a02.gat -fay_vilg00.gat -fay_vilg01.gat -gef_vilg00.gat -gef_vilg01.gat -moc_dugn01.gat -moc_dugn02.gat -moc_fild01.gat -moc_fild02.gat -moc_fild03.gat -moc_fild04.gat -moc_intr00.gat -moc_intr01.gat -moc_intr02.gat -moc_intr04.gat -moc_vilg00.gat -moc_vilg01.gat -moc_vilg02.gat -probemap.gat -probemap02.gat -prt_cstl01.gat -prt_dugn00.gat -prt_dugn01.gat -prt_fild00.gat -prt_fild01.gat -prt_fild03.gat -prt_fild04.gat -prt_fild05.gat -prt_intr01.gat -prt_intr01_a.gat -prt_intr02.gat -prt_vilg00.gat -prt_vilg01.gat -prt_vilg02.gat -tank_test.gat -tank_test2.gat -test.gat -poring_c01.gat -poring_c02.gat -que_ng.gat -//====================================================================================== -//Place your custom maps with a starting ID here. -//====================================================================================== -//Example: -// -//mymap.gat 1250 -//mymap-2.gat diff --git a/db/map_list.txt b/db/map_list.txt new file mode 100644 index 000000000..95b0e2e55 --- /dev/null +++ b/db/map_list.txt @@ -0,0 +1,713 @@ +//====================================================================================== +// Map Index +//====================================================================================== +//Contains the list of maps with their respective IDs for inter-server use. +//IDs must never change, therefore any new maps need to be added at the end, +//and old ones must not be removed, but may be replaced. +//Format: +//mapnameindex <- specifies index for this map +//mapname <- map will use index of previous map +1 +//Note that map index 0 is special and reserved for "error" status. + +alb_ship 1 +alb2trea +alberta +alberta_in +alde_dun01 +alde_dun02 +alde_dun03 +alde_dun04 +aldeba_in +aldebaran +anthell01 +anthell02 +arena_room +c_tower1 +c_tower2 +c_tower3 +c_tower4 +force_1-1 +force_1-2 +force_1-3 +force_2-1 +force_2-2 +force_2-3 +force_3-1 +force_3-2 +force_3-3 +gef_dun00 +gef_dun01 +gef_dun02 +gef_dun03 +gef_fild00 +gef_fild01 +gef_fild02 +gef_fild03 +gef_fild04 +gef_fild05 +gef_fild06 +gef_fild07 +gef_fild08 +gef_fild09 +gef_fild10 +gef_fild11 +gef_fild12 +gef_fild13 +gef_fild14 +gef_tower +geffen +geffen_in +gl_cas01 +gl_cas02 +gl_church +gl_chyard +gl_dun01 +gl_dun02 +gl_in01 +gl_knt01 +gl_knt02 +gl_prison +gl_prison1 +gl_sew01 +gl_sew02 +gl_sew03 +gl_sew04 +gl_step +glast_01 +hunter_1-1 +hunter_2-1 +hunter_3-1 +in_hunter +in_moc_16 +in_orcs01 +in_sphinx1 +in_sphinx2 +in_sphinx3 +in_sphinx4 +in_sphinx5 +iz_dun00 +iz_dun01 +iz_dun02 +iz_dun03 +iz_dun04 +job_sword1 +izlu2dun +izlude +izlude_in +job_thief1 +knight_1-1 +knight_2-1 +knight_3-1 +mjo_dun01 +mjo_dun02 +mjo_dun03 +mjolnir_01 +mjolnir_02 +mjolnir_03 +mjolnir_04 +mjolnir_05 +mjolnir_06 +mjolnir_07 +mjolnir_08 +mjolnir_09 +mjolnir_10 +mjolnir_11 +mjolnir_12 +moc_castle +moc_fild01 +moc_fild02 +moc_fild03 +moc_fild04 +moc_fild05 +moc_fild06 +moc_fild07 +moc_fild08 +moc_fild09 +moc_fild10 +moc_fild11 +moc_fild12 +moc_fild13 +moc_fild14 +moc_fild15 +moc_fild16 +moc_fild17 +moc_fild18 +moc_fild19 +moc_pryd01 +moc_pryd02 +moc_pryd03 +moc_pryd04 +moc_pryd05 +moc_pryd06 +moc_prydb1 +moc_ruins +monk_in +morocc +morocc_in +new_1-1 +new_1-2 +new_1-3 +new_1-4 +new_2-1 +new_2-2 +new_2-3 +new_2-4 +new_3-1 +new_3-2 +new_3-3 +new_3-4 +new_4-1 +new_4-2 +new_4-3 +new_4-4 +new_5-1 +new_5-2 +new_5-3 +new_5-4 +orcsdun01 +orcsdun02 +ordeal_1-1 +ordeal_1-2 +ordeal_1-3 +ordeal_1-4 +ordeal_2-1 +ordeal_2-2 +ordeal_2-3 +ordeal_2-4 +ordeal_3-1 +ordeal_3-2 +ordeal_3-3 +ordeal_3-4 +pay_arche +pay_dun00 +pay_dun01 +pay_dun02 +pay_dun03 +pay_dun04 +pay_fild01 +pay_fild02 +pay_fild03 +pay_fild04 +pay_fild05 +pay_fild06 +pay_fild07 +pay_fild08 +pay_fild09 +pay_fild10 +pay_fild11 +payon +payon_in01 +payon_in02 +priest_1-1 +priest_2-1 +priest_3-1 +prontera +prt_are_in +prt_are01 +pvp_room +prt_castle +prt_church +prt_fild00 +prt_fild01 +prt_fild02 +prt_fild03 +prt_fild04 +prt_fild05 +prt_fild06 +prt_fild07 +prt_fild08 +prt_fild09 +prt_fild10 +prt_fild11 +prt_in +prt_maze01 +prt_maze02 +prt_maze03 +prt_monk +prt_sewb1 +prt_sewb2 +prt_sewb3 +prt_sewb4 +pvp_2vs2 +pvp_c_room +pvp_n_1-1 +pvp_n_1-2 +pvp_n_1-3 +pvp_n_1-4 +pvp_n_1-5 +pvp_n_2-1 +pvp_n_2-2 +pvp_n_2-3 +pvp_n_2-4 +pvp_n_2-5 +pvp_n_3-1 +pvp_n_3-2 +pvp_n_3-3 +pvp_n_3-4 +pvp_n_3-5 +pvp_n_4-1 +pvp_n_4-2 +pvp_n_4-3 +pvp_n_4-4 +pvp_n_4-5 +pvp_n_5-1 +pvp_n_5-2 +pvp_n_5-3 +pvp_n_5-4 +pvp_n_5-5 +pvp_n_6-1 +pvp_n_6-2 +pvp_n_6-3 +pvp_n_6-4 +pvp_n_6-5 +pvp_n_7-1 +pvp_n_7-2 +pvp_n_7-3 +pvp_n_7-4 +pvp_n_7-5 +pvp_n_8-1 +pvp_n_8-2 +pvp_n_8-3 +pvp_n_8-4 +pvp_n_8-5 +pvp_n_room +pvp_y_1-1 +pvp_y_1-2 +pvp_y_1-3 +pvp_y_1-4 +pvp_y_1-5 +pvp_y_2-1 +pvp_y_2-2 +pvp_y_2-3 +pvp_y_2-4 +pvp_y_2-5 +pvp_y_3-1 +pvp_y_3-2 +pvp_y_3-3 +pvp_y_3-4 +pvp_y_3-5 +pvp_y_4-1 +pvp_y_4-2 +pvp_y_4-3 +pvp_y_4-4 +pvp_y_4-5 +pvp_y_5-1 +pvp_y_5-2 +pvp_y_5-3 +pvp_y_5-4 +pvp_y_5-5 +pvp_y_6-1 +pvp_y_6-2 +pvp_y_6-3 +pvp_y_6-4 +pvp_y_6-5 +pvp_y_7-1 +pvp_y_7-2 +pvp_y_7-3 +pvp_y_7-4 +pvp_y_7-5 +pvp_y_8-1 +pvp_y_8-2 +pvp_y_8-3 +pvp_y_8-4 +pvp_y_8-5 +pvp_y_room +sword_1-1 +sword_2-1 +sword_3-1 +treasure01 +treasure02 +wizard_1-1 +wizard_2-1 +wizard_3-1 +xmas +xmas_dun01 +xmas_dun02 +xmas_fild01 +xmas_in +beach_dun +beach_dun2 +beach_dun3 +cmd_fild01 +cmd_fild02 +cmd_fild03 +cmd_fild04 +cmd_fild05 +cmd_fild06 +cmd_fild07 +cmd_fild08 +cmd_fild09 +cmd_in01 +cmd_in02 +comodo +quiz_00 +quiz_01 +g_room1-1 +g_room1-2 +g_room1-3 +g_room2 +tur_dun01 +tur_dun02 +tur_dun03 +tur_dun04 +tur_dun05 +tur_dun06 +alde_gld +aldeg_cas01 +aldeg_cas02 +aldeg_cas03 +aldeg_cas04 +aldeg_cas05 +gefg_cas01 +gefg_cas02 +gefg_cas03 +gefg_cas04 +gefg_cas05 +gld_dun01 +gld_dun02 +gld_dun03 +gld_dun04 +guild_room +guild_vs1 +guild_vs2 +guild_vs3 +guild_vs4 +guild_vs5 +guild_vs1-1 +guild_vs1-2 +guild_vs1-3 +guild_vs1-4 +guild_vs2-1 +guild_vs2-2 +job_hunte +job_knt +job_prist +job_wiz +pay_gld +payg_cas01 +payg_cas02 +payg_cas03 +payg_cas04 +payg_cas05 +prt_gld +prtg_cas01 +prtg_cas02 +prtg_cas03 +prtg_cas04 +prtg_cas05 +alde_alche +in_rogue +job_cru +job_duncer +job_monk +job_sage +mag_dun01 +mag_dun02 +monk_test +quiz_test +yuno +yuno_fild01 +yuno_fild02 +yuno_fild03 +yuno_fild04 +yuno_in01 +yuno_in02 +yuno_in03 +yuno_in04 +yuno_in05 +ama_dun01 +ama_dun02 +ama_dun03 +ama_fild01 +ama_in01 +ama_in02 +ama_test +amatsu +gon_dun01 +gon_dun02 +gon_dun03 +gon_fild01 +gon_in +gon_test +gonryun +sec_in01 +sec_in02 +sec_pri +umbala +um_dun01 +um_dun02 +um_fild01 +um_fild02 +um_fild03 +um_fild04 +um_in +niflheim +nif_fild01 +nif_fild02 +nif_in +yggdrasil01 +valkyrie +himinn +lou_in01 +lou_in02 +lou_dun03 +lou_dun02 +lou_dun01 +lou_fild01 +louyang +siege_test +n_castle +nguild_gef +nguild_prt +nguild_pay +nguild_alde +jawaii +jawaii_in +gefenia01 +gefenia02 +gefenia03 +gefenia04 +new_zone01 +new_zone02 +new_zone03 +new_zone04 +payon_in03 +ayothaya +ayo_in01 +ayo_in02 +ayo_fild01 +ayo_fild02 +ayo_dun01 +ayo_dun02 +que_god01 +que_god02 +yuno_fild05 +yuno_fild07 +yuno_fild08 +yuno_fild09 +yuno_fild11 +yuno_fild12 +alde_tt02 +turbo_n_1 +turbo_n_4 +turbo_n_8 +turbo_n_16 +turbo_e_4 +turbo_e_8 +turbo_e_16 +turbo_room +airplane +airport +einbech +einbroch +ein_dun01 +ein_dun02 +ein_fild06 +ein_fild07 +ein_fild08 +ein_fild09 +ein_fild10 +ein_in01 +que_sign01 +que_sign02 +ein_fild03 +ein_fild04 +lhz_fild02 +lhz_fild03 +yuno_pre +lhz_fild01 +lighthalzen +lhz_in01 +lhz_in02 +lhz_in03 +lhz_que01 +lhz_dun01 +lhz_dun02 +lhz_dun03 +lhz_cube +juperos_01 +juperos_02 +jupe_area1 +jupe_area2 +jupe_core +jupe_ele +jupe_ele_r +jupe_gate +y_airport +lhz_airport +airplane_01 +jupe_cave +quiz_02 +hu_fild07 +hu_fild05 +hu_fild04 +hu_fild01 +yuno_fild06 +job_soul +job_star +que_job01 +que_job02 +que_job03 +abyss_01 +abyss_02 +abyss_03 +thana_step +thana_boss +tha_scene01 +tha_t01 +tha_t02 +tha_t03 +tha_t04 +tha_t07 +tha_t05 +tha_t06 +tha_t08 +tha_t09 +tha_t10 +tha_t11 +tha_t12 +auction_01 +auction_02 +hugel +hu_in01 +que_bingo +que_hugel +p_track01 +p_track02 +odin_tem01 +odin_tem02 +odin_tem03 +hu_fild02 +hu_fild03 +hu_fild06 +ein_fild01 +ein_fild02 +ein_fild05 +yuno_fild10 +kh_kiehl02 +kh_kiehl01 +kh_dun02 +kh_dun01 +kh_mansion +kh_rossi +kh_school +kh_vila +force_map1 +force_map2 +force_map3 +job_hunter +job_knight +job_priest +job_wizard +g_room2 +rachel +ra_in01 +ra_fild01 +ra_fild02 +ra_fild03 +ra_fild04 +ra_fild05 +ra_fild06 +ra_fild07 +ra_fild08 +ra_fild09 +ra_fild10 +ra_fild11 +ra_fild12 +ra_fild13 +ra_san01 +ra_san02 +ra_san03 +ra_san04 +ra_san05 +ra_temin +ra_temple +ra_temsky +que_rachel +ice_dun01 +ice_dun02 +ice_dun03 +ice_dun04 +que_thor +thor_camp +thor_v01 +thor_v02 +thor_v03 +veins +ve_in +ve_fild01 +ve_fild02 +ve_fild03 +ve_fild04 +ve_fild05 +ve_fild06 +ve_fild07 +poring_c01 +poring_c02 +que_ng + + +// Only add maps under this line if they are not standard maps! + + +//====================================================================================== +// - Other/Extra maps - +//====================================================================================== +//rwc01 1000 +//rwc02 +//rwc03 +//prontera_x +//alberta_x +//aldebaran_x +//geffen_x +//izlude_x +//prt_church_x +//prontera_s +//pay_arche_s +//xmas_old +//ordeal_a00 +//ordeal_a02 +//fay_vilg00 +//fay_vilg01 +//gef_vilg00 +//gef_vilg01 +//moc_dugn01 +//moc_dugn02 +//moc_fild01 +//moc_fild02 +//moc_fild03 +//moc_fild04 +//moc_intr00 +//moc_intr01 +//moc_intr02 +//moc_intr04 +//moc_vilg00 +//moc_vilg01 +//moc_vilg02 +//probemap +//probemap02 +//prt_cstl01 +//prt_dugn00 +//prt_dugn01 +//prt_fild00 +//prt_fild01 +//prt_fild03 +//prt_fild04 +//prt_fild05 +//prt_intr01 +//prt_intr01_a +//prt_intr02 +//prt_vilg00 +//prt_vilg01 +//prt_vilg02 +//tank_test +//tank_test2 +//test + +//====================================================================================== +//Place your custom maps with a starting ID here. +//====================================================================================== +//Example: +// +//mymap 1250 +//mymap-2 diff --git a/src/char/char.c b/src/char/char.c index 54fa75c68..5a29a1344 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -3539,11 +3539,15 @@ int parse_char(int fd) { ShowWarning("Unable to find map-server for '%s', sending to major city '%s'.\n", mapindex_id2name(cd->last_point.map), mapindex_id2name(j)); cd->last_point.map = j; } - { //Send player to map + { + //Send player to map + char map_name[MAP_NAME_LENGTH]; + snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(cd->last_point.map)); + WFIFOHEAD(fd, 28); WFIFOW(fd,0) = 0x71; WFIFOL(fd,2) = cd->char_id; - memcpy(WFIFOP(fd,6), mapindex_id2name(cd->last_point.map), MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,6), map_name, MAP_NAME_LENGTH); // Advanced subnet check [LuzZza] if((subnet_map_ip = lan_subnetcheck((long *)p))) @@ -4170,15 +4174,13 @@ int char_config_read(const char *cfgName) { int x, y; if (sscanf(w2, "%[^,],%d,%d", map, &x, &y) < 3) continue; - if (strstr(map, ".gat") != NULL) { // Verify at least if '.gat' is in the map name - start_point.map = mapindex_name2id(map); - if (!start_point.map) { - ShowError("Specified start_point %s not found in map-index cache.\n", map); - start_point.map = 0; - } - start_point.x = x; - start_point.y = y; + start_point.map = mapindex_name2id(map); + if (!start_point.map) { + ShowError("Specified start_point %s not found in map-index cache.\n", map); + start_point.map = 0; } + start_point.x = x; + start_point.y = y; } else if(strcmpi(w1,"log_char")==0) { //log char or not [devil] log_char = atoi(w2); } else if (strcmpi(w1, "start_zeny") == 0) { @@ -4318,7 +4320,7 @@ int do_init(int argc, char **argv) { int i; mapindex_init(); //Needed here for the start-point reading. - start_point.map = mapindex_name2id("new_zone01.gat"); + start_point.map = mapindex_name2id("new_zone01"); char_config_read((argc < 2) ? CHAR_CONF_NAME : argv[1]); char_lan_config_read((argc > 3) ? argv[3] : LOGIN_LAN_CONF_NAME); diff --git a/src/char_sql/char.c b/src/char_sql/char.c index de0b79bd1..0afaa526a 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -3359,10 +3359,12 @@ int parse_char(int fd) { char_dat.last_point.map = j; } { //Send player to map. + char map_name[MAP_NAME_LENGTH]; + snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(char_dat.last_point.map)); WFIFOHEAD(fd,28); WFIFOW(fd, 0) =0x71; WFIFOL(fd, 2) =char_dat.char_id; - memcpy(WFIFOP(fd,6), mapindex_id2name(char_dat.last_point.map), MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,6), map_name, MAP_NAME_LENGTH); // Advanced subnet check [LuzZza] if((subnet_map_ip = lan_subnetcheck((long *)p))) diff --git a/src/common/grfio.c b/src/common/grfio.c index ba3b55bb3..a2d7f7f5a 100644 --- a/src/common/grfio.c +++ b/src/common/grfio.c @@ -1,28 +1,6 @@ // Copyright (c) Athena Dev Teams - Licensed under GNU GPL // For more information, see LICENCE in the main folder -/********************************************************************* - * - * Ragnarok Online Emulator : grfio.c -- grf file I/O Module - *-------------------------------------------------------------------- - * special need library : zlib - ********************************************************************* - * $Id: grfio.c,v 1.2 2004/09/29 17:31:49 kalaspuff Exp $ - * - * 2002/12/18... the original edition - * 2003/01/23 ... Code correction - * 2003/02/01 ... An addition and decryption processing are improved for LocalFile and two or more GRF(s) check processing. - * 2003/02/02 ... Even if there is no grf it does not stop -- as -- correction - * 2003/02/02... grf reading specification can be added later -- as -- correction (grfio_add function addition) - * 2003/02 / 03... at the time of grfio_resourcecheck processing the entry addition processing method -- correction - * 2003/02/05... change of the processing in grfio_init - * 2003/02/23... a local file check -- GRFIO_LOCAL -- switch (Defoe -- Function Off) - * 2003/10/21 ... The data of alpha client was read. - * 2003/11/10 ... Ready new grf format. - * 2003/11/11 ... version check fix & bug fix - * 2006/04/16 ... fixed crash grfio_find_file when file is not found. - */ - #include #include #include @@ -30,13 +8,9 @@ #include #include "grfio.h" -#include "../common/mmo.h" -#include "../common/showmsg.h" -#include "../common/malloc.h" +#include "malloc.h" #include "../zlib/unzip.h" -#define CHUNK 16384 - #ifdef __WIN32 #include "../zlib/zlib.h" #include "../zlib/iowin32.h" @@ -46,225 +20,6 @@ #endif #endif -typedef unsigned char BYTE; -typedef unsigned short WORD; -typedef unsigned long DWORD; - -//static char data_file[1024] = ""; // "data.grf"; -//static char sdata_file[1024] = ""; // "sdata.grf"; -//static char adata_file[1024] = ""; // "adata.grf"; -static char data_dir[1024] = ""; // "../"; - -//---------------------------- -// file entry table struct -//---------------------------- -typedef struct { - int srclen; // compressed size - int srclen_aligned; // - int declen; // original size - int srcpos; - short next; - int cycle; - char type; - char fn[128-4*5]; // file name - char *fnd; - signed char gentry; // read grf file select -} FILELIST; -//gentry ... 0 : It acquires from a local file. -// It acquires from the resource file of 1>=:gentry_table[gentry-1]. -// 1<=: Check a local file. -// If it is, after re-setting to 0, it acquires from a local file. -// If there is nothing, mark reversal will be carried out, and it will re-set, and will acquire from a resource file as well as 1>=. - -//Since char defines *FILELIST.gentry, the maximum which can be added by grfio_add becomes by 127 pieces. - -#define GENTRY_LIMIT 512 -#define FILELIST_LIMIT 1048576 // temporary maximum, and a theory top maximum are 2G. - -static FILELIST *filelist = NULL; -static int filelist_entrys = 0; -static int filelist_maxentry = 0; - -static char **gentry_table = NULL; -static int gentry_entrys = 0; -static int gentry_maxentry = 0; - -//---------------------------- -// file list hash table -//---------------------------- -static int filelist_hash[256]; - -//---------------------------- -// grf decode data table -//---------------------------- -static unsigned char BitMaskTable[8] = { - 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 -}; - -static char BitSwapTable1[64] = { - 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, - 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, - 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, - 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 -}; -static char BitSwapTable2[64] = { - 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, - 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, - 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, - 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25 -}; -static char BitSwapTable3[32] = { - 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10, - 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25 -}; - -static unsigned char NibbleData[4][64]={ - { - 0xef, 0x03, 0x41, 0xfd, 0xd8, 0x74, 0x1e, 0x47, 0x26, 0xef, 0xfb, 0x22, 0xb3, 0xd8, 0x84, 0x1e, - 0x39, 0xac, 0xa7, 0x60, 0x62, 0xc1, 0xcd, 0xba, 0x5c, 0x96, 0x90, 0x59, 0x05, 0x3b, 0x7a, 0x85, - 0x40, 0xfd, 0x1e, 0xc8, 0xe7, 0x8a, 0x8b, 0x21, 0xda, 0x43, 0x64, 0x9f, 0x2d, 0x14, 0xb1, 0x72, - 0xf5, 0x5b, 0xc8, 0xb6, 0x9c, 0x37, 0x76, 0xec, 0x39, 0xa0, 0xa3, 0x05, 0x52, 0x6e, 0x0f, 0xd9, - }, { - 0xa7, 0xdd, 0x0d, 0x78, 0x9e, 0x0b, 0xe3, 0x95, 0x60, 0x36, 0x36, 0x4f, 0xf9, 0x60, 0x5a, 0xa3, - 0x11, 0x24, 0xd2, 0x87, 0xc8, 0x52, 0x75, 0xec, 0xbb, 0xc1, 0x4c, 0xba, 0x24, 0xfe, 0x8f, 0x19, - 0xda, 0x13, 0x66, 0xaf, 0x49, 0xd0, 0x90, 0x06, 0x8c, 0x6a, 0xfb, 0x91, 0x37, 0x8d, 0x0d, 0x78, - 0xbf, 0x49, 0x11, 0xf4, 0x23, 0xe5, 0xce, 0x3b, 0x55, 0xbc, 0xa2, 0x57, 0xe8, 0x22, 0x74, 0xce, - }, { - 0x2c, 0xea, 0xc1, 0xbf, 0x4a, 0x24, 0x1f, 0xc2, 0x79, 0x47, 0xa2, 0x7c, 0xb6, 0xd9, 0x68, 0x15, - 0x80, 0x56, 0x5d, 0x01, 0x33, 0xfd, 0xf4, 0xae, 0xde, 0x30, 0x07, 0x9b, 0xe5, 0x83, 0x9b, 0x68, - 0x49, 0xb4, 0x2e, 0x83, 0x1f, 0xc2, 0xb5, 0x7c, 0xa2, 0x19, 0xd8, 0xe5, 0x7c, 0x2f, 0x83, 0xda, - 0xf7, 0x6b, 0x90, 0xfe, 0xc4, 0x01, 0x5a, 0x97, 0x61, 0xa6, 0x3d, 0x40, 0x0b, 0x58, 0xe6, 0x3d, - }, { - 0x4d, 0xd1, 0xb2, 0x0f, 0x28, 0xbd, 0xe4, 0x78, 0xf6, 0x4a, 0x0f, 0x93, 0x8b, 0x17, 0xd1, 0xa4, - 0x3a, 0xec, 0xc9, 0x35, 0x93, 0x56, 0x7e, 0xcb, 0x55, 0x20, 0xa0, 0xfe, 0x6c, 0x89, 0x17, 0x62, - 0x17, 0x62, 0x4b, 0xb1, 0xb4, 0xde, 0xd1, 0x87, 0xc9, 0x14, 0x3c, 0x4a, 0x7e, 0xa8, 0xe2, 0x7d, - 0xa0, 0x9f, 0xf6, 0x5c, 0x6a, 0x09, 0x8d, 0xf0, 0x0f, 0xe3, 0x53, 0x25, 0x95, 0x36, 0x28, 0xcb, - } -}; -/*----------------- - * long data get - */ -static unsigned int getlong(unsigned char *p) -{ -// return *p+p[1]*256+(p[2]+p[3]*256)*65536; - return p[0] - | p[1] << 0x08 - | p[2] << 0x10 - | p[3] << 0x18; // Shinomori -} - -/*========================================== - * Grf data decode : Subs - *------------------------------------------ - */ -static void NibbleSwap(BYTE *Src, int len) -{ - for(;0>4) | (*Src<<4); - } -} - -static void BitConvert(BYTE *Src,char *BitSwapTable) -{ - int lop,prm; - BYTE tmp[8]; -// *(DWORD*)tmp=*(DWORD*)(tmp+4)=0; - memset(tmp,0,8); - for(lop=0;lop!=64;lop++) { - prm = BitSwapTable[lop]-1; - if (Src[(prm >> 3) & 7] & BitMaskTable[prm & 7]) { - tmp[(lop >> 3) & 7] |= BitMaskTable[lop & 7]; - } - } -// *(DWORD*)Src = *(DWORD*)tmp; -// *(DWORD*)(Src+4) = *(DWORD*)(tmp+4); - memcpy(Src,tmp,8); -} - -static void BitConvert4(BYTE *Src) -{ - int lop,prm; - BYTE tmp[8]; - tmp[0] = ((Src[7]<<5) | (Src[4]>>3)) & 0x3f; // ..0 vutsr - tmp[1] = ((Src[4]<<1) | (Src[5]>>7)) & 0x3f; // ..srqpo n - tmp[2] = ((Src[4]<<5) | (Src[5]>>3)) & 0x3f; // ..o nmlkj - tmp[3] = ((Src[5]<<1) | (Src[6]>>7)) & 0x3f; // ..kjihg f - tmp[4] = ((Src[5]<<5) | (Src[6]>>3)) & 0x3f; // ..g fedcb - tmp[5] = ((Src[6]<<1) | (Src[7]>>7)) & 0x3f; // ..cba98 7 - tmp[6] = ((Src[6]<<5) | (Src[7]>>3)) & 0x3f; // ..8 76543 - tmp[7] = ((Src[7]<<1) | (Src[4]>>7)) & 0x3f; // ..43210 v - - for(lop=0;lop!=4;lop++) { - tmp[lop] = (NibbleData[lop][tmp[lop*2]] & 0xf0) - | (NibbleData[lop][tmp[lop*2+1]] & 0x0f); - } - - *(DWORD*)(tmp+4)=0; - for(lop=0;lop!=32;lop++) { - prm = BitSwapTable3[lop]-1; - if (tmp[prm >> 3] & BitMaskTable[prm & 7]) { - tmp[(lop >> 3) + 4] |= BitMaskTable[lop & 7]; - } - } -// *(DWORD*)Src ^= *(DWORD*)(tmp+4); - Src[0] ^= tmp[4]; - Src[1] ^= tmp[5]; - Src[2] ^= tmp[6]; - Src[3] ^= tmp[7]; -} - -static void decode_des_etc(BYTE *buf,int len,int type,int cycle) -{ - int lop,cnt=0; - if(cycle<3) cycle=3; - else if(cycle<5) cycle++; - else if(cycle<7) cycle+=9; - else cycle+=15; - - for(lop=0;lop*8>7)*9+tolower(*fname)); - fname++; - } - return hash & 255; -} - -/*========================================== - * File List : Hash initalize - *------------------------------------------ - */ -static void hashinit(void) -{ - int lop; - for (lop = 0; lop < 256; lop++) - filelist_hash[lop] = -1; -} - -/*========================================== - * File List : File find - *------------------------------------------ - */ -static FILELIST *filelist_find(char *fname) -{ - int hash; - - if (!filelist) - return NULL; - - for (hash = filelist_hash[filehash((unsigned char *) fname)]; hash >= 0; hash = filelist[hash].next) { - if(strcmpi(filelist[hash].fn, fname) == 0) - break; - } - - return (hash >= 0) ? &filelist[hash] : NULL; -} - -char *grfio_find_file(char *fname){ - FILELIST *filelist = filelist_find(fname); - if (!filelist) return NULL; - return (!filelist->fnd?filelist->fn:filelist->fnd); -} - -/*========================================== - * File List : Filelist add - *------------------------------------------ - */ -#define FILELIST_ADDS 1024 // number increment of file lists ` - -static FILELIST* filelist_add(FILELIST *entry) -{ - int hash; - - if (filelist_entrys >= FILELIST_LIMIT) { - ShowFatalError("GRF filelist limit reached (filelist_add)!\n"); - exit(1); - } - - if (filelist_entrys >= filelist_maxentry) { - filelist = (FILELIST *)aRealloc(filelist, (filelist_maxentry + FILELIST_ADDS) * sizeof(FILELIST)); - memset(filelist + filelist_maxentry, '\0', FILELIST_ADDS * sizeof(FILELIST)); - filelist_maxentry += FILELIST_ADDS; - } - - memcpy (&filelist[filelist_entrys], entry, sizeof(FILELIST)); - - hash = filehash((unsigned char *) entry->fn); - filelist[filelist_entrys].next = filelist_hash[hash]; - filelist_hash[hash] = filelist_entrys; - - filelist_entrys++; - - return &filelist[filelist_entrys - 1]; -} - -static FILELIST* filelist_modify(FILELIST *entry) -{ - FILELIST *fentry; - if ((fentry = filelist_find(entry->fn)) != NULL) { - int tmp = fentry->next; - memcpy(fentry, entry, sizeof(FILELIST)); - fentry->next = tmp; - } else { - fentry = filelist_add(entry); - } - return fentry; -} - -/*========================================== - * File List : filelist size adjust - *------------------------------------------ - */ -static void filelist_adjust(void) -{ - if (filelist != NULL) { - if (filelist_maxentry > filelist_entrys) { - filelist = (FILELIST *)aRealloc( - filelist, filelist_entrys * sizeof(FILELIST)); - filelist_maxentry = filelist_entrys; - } - } -} - -/*********************************************************** - *** Grfio Sobroutines *** - ***********************************************************/ - -/*========================================== - * Grfio : Resource file size get - *------------------------------------------ - */ -int grfio_size(char *fname) -{ - FILELIST *entry; - - entry = filelist_find(fname); - - if (entry == NULL || entry->gentry < 0) { // LocalFileCheck - char lfname[256], *p; - FILELIST lentry; - struct stat st; - - sprintf(lfname, "%s%s", data_dir, fname); - - for (p = &lfname[0]; *p != 0; p++) - if (*p=='\\') *p = '/'; // * At the time of Unix - - if (stat(lfname, &st) == 0) { - strncpy(lentry.fn, fname, sizeof(lentry.fn) - 1); - lentry.fnd = NULL; - lentry.declen = st.st_size; - lentry.gentry = 0; // 0:LocalFile - entry = filelist_modify(&lentry); - } else if (entry == NULL) { - ShowError("%s not found (grfio_size)\n", fname); - //exit(1); - return -1; - } - } - return entry->declen; -} - -/*========================================== - * Grfio : Resource file read & size get - *------------------------------------------ - */ -void* grfio_reads(char *fname, int *size) -{ - FILE *in; - FILELIST *entry; - unsigned char *buf2 = NULL; - - entry = filelist_find(fname); - - if (entry == NULL || entry->gentry <= 0) { // LocalFileCheck - char lfname[256], *p; - FILELIST lentry; - - sprintf(lfname, "%s%s", data_dir, fname); - - for (p = &lfname[0]; *p != 0; p++) - if (*p == '\\') *p = '/'; // * At the time of Unix - - in = fopen(lfname, "rb"); - if (in != NULL) { - if (entry != NULL && entry->gentry == 0) { - lentry.declen = entry->declen; - } else { - fseek(in,0,2); // SEEK_END - lentry.declen = ftell(in); - } - fseek(in,0,0); // SEEK_SET - buf2 = (unsigned char *)aMallocA(lentry.declen + 1024); - fread(buf2, 1, lentry.declen, in); - fclose(in); - strncpy(lentry.fn, fname, sizeof(lentry.fn) - 1); - lentry.fnd = NULL; - lentry.gentry = 0; // 0:LocalFile - entry = filelist_modify(&lentry); - } else { - if (entry != NULL && entry->gentry < 0) { - entry->gentry = -entry->gentry; // local file checked - } else { - ShowError("%s not found (grfio_reads - local file %s)\n", fname, lfname); - return NULL; - } - } - } - if (entry != NULL && entry->gentry > 0) { // Archive[GRF] File Read - char *gfname = gentry_table[entry->gentry - 1]; - in = fopen(gfname, "rb"); - if(in != NULL) { - unsigned char *buf = (unsigned char *)aMallocA(entry->srclen_aligned + 1024); - fseek(in, entry->srcpos, 0); - fread(buf, 1, entry->srclen_aligned, in); - fclose(in); - buf2 = (unsigned char *)aMallocA(entry->declen + 1024); - if (entry->type == 1 || entry->type == 3 || entry->type == 5) { - uLongf len; - if (entry->cycle >= 0) - decode_des_etc(buf, entry->srclen_aligned, entry->cycle == 0, entry->cycle); - len = entry->declen; - decode_zip(buf2, &len, buf, entry->srclen); - if (len != entry->declen) { - ShowError("decode_zip size miss match err: %d != %d\n", (int)len, entry->declen); - aFree(buf); - aFree(buf2); - return NULL; - } - } else { - memcpy(buf2, buf, entry->declen); - } - aFree(buf); - } else { - ShowError("%s not found (grfio_reads - grf file %s)\n", fname, gfname); - return NULL; - } - } - if (size != NULL && entry != NULL) - *size = entry->declen; - - return buf2; -} - -/*========================================== - * Resource filename decode - *------------------------------------------ - */ -static char * decode_filename(unsigned char *buf,int len) -{ - int lop; - for(lop=0;lop> 8; - - if (grf_version == 0x01) { //****** Grf version 01xx ****** - list_size = grf_size - ftell(fp); - grf_filelist = (unsigned char *) aMallocA(list_size); - /*if (grf_filelist == NULL){ - fclose(fp); - ShowError("out of memory : grf_filelist\n"); - return 3; // 3:memory alloc error - }*/ - fread(grf_filelist,1,list_size,fp); - fclose(fp); - - entrys = getlong(grf_header+0x26) - getlong(grf_header+0x22) - 7; - - // Get an entry - for (entry = 0,ofs = 0; entry < entrys; entry++) { - int ofs2, srclen, srccount, type; - char *period_ptr; - FILELIST aentry; - - ofs2 = ofs+getlong(grf_filelist+ofs)+4; - type = grf_filelist[ofs2+12]; - if (type != 0) { // Directory Index ... skip - fname = decode_filename(grf_filelist+ofs+6, grf_filelist[ofs]-6); - if (strlen(fname) > sizeof(aentry.fn) - 1) { - ShowFatalError("GRF file name %s is too long\n", fname); - aFree(grf_filelist); - exit(1); - } - srclen = 0; - if ((period_ptr = strrchr(fname, '.')) != NULL) { - for(lop = 0; lop < 4; lop++) { - if (strcmpi(period_ptr, ".gnd\0.gat\0.act\0.str"+lop*5) == 0) - break; - } - srclen = getlong(grf_filelist+ofs2) - getlong(grf_filelist+ofs2+8) - 715; - if(lop == 4) { - for(lop = 10, srccount = 1; srclen >= lop; lop = lop * 10, srccount++); - } else { - srccount = 0; - } - } else { - srccount = 0; - } - - aentry.srclen = srclen; - aentry.srclen_aligned = getlong(grf_filelist+ofs2+4)-37579; - aentry.declen = getlong(grf_filelist+ofs2+8); - aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; - aentry.cycle = srccount; - aentry.type = type; - strncpy(aentry.fn, fname,sizeof(aentry.fn)-1); - aentry.fnd = NULL; -#ifdef GRFIO_LOCAL - aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck -#else - aentry.gentry = gentry+1; // With no first time LocalFileCheck -#endif - filelist_modify(&aentry); - } - ofs = ofs2 + 17; - } - aFree(grf_filelist); - - } else if (grf_version == 0x02) { //****** Grf version 02xx ****** - unsigned char eheader[8]; - unsigned char *rBuf; - uLongf rSize, eSize; - - fread(eheader,1,8,fp); - rSize = getlong(eheader); // Read Size - eSize = getlong(eheader+4); // Extend Size - - if ((long)rSize > grf_size-ftell(fp)) { // Warning fix [Lance] - fclose(fp); - ShowError("Illegal data format : grf compress entry size\n"); - return 4; - } - - rBuf = (unsigned char *)aMallocA(rSize); // Get a Read Size - /*if (rBuf==NULL) { - fclose(fp); - ShowError("out of memory : grf compress entry table buffer\n"); - return 3; - }*/ - grf_filelist = (unsigned char *)aMallocA(eSize); // Get a Extend Size - /*if (grf_filelist==NULL) { - aFree(rBuf); - fclose(fp); - ShowError("out of memory : grf extract entry table buffer\n"); - return 3; - }*/ - fread(rBuf,1,rSize,fp); - fclose(fp); - decode_zip(grf_filelist, &eSize, rBuf, rSize); // Decode function - list_size = eSize; - aFree(rBuf); - - entrys = getlong(grf_header+0x26) - 7; - - // Get an entry - for(entry = 0, ofs = 0; entry < entrys; entry++){ - int ofs2, srclen, srccount, type; - FILELIST aentry; - - fname = (char*)(grf_filelist+ofs); - if (strlen(fname) > sizeof(aentry.fn)-1) { - ShowFatalError("GRF file name %s is too long\n", fname); - aFree(grf_filelist); - exit(1); - } - //ofs2 = ofs+strlen((char*)(grf_filelist+ofs))+1; - ofs2 = ofs + strlen(fname)+1; - type = grf_filelist[ofs2+12]; - if (type == 1 || type == 3 || type == 5) { - srclen = getlong(grf_filelist+ofs2); - if (grf_filelist[ofs2+12] == 3) { - for (lop = 10, srccount = 1; srclen >= lop; lop = lop * 10, srccount++); - } else if (grf_filelist[ofs2+12] == 5) { - srccount = 0; - } else { // if (grf_filelist[ofs2+12]==1) { - srccount = -1; - } - - aentry.srclen = srclen; - aentry.srclen_aligned = getlong(grf_filelist+ofs2+4); - aentry.declen = getlong(grf_filelist+ofs2+8); - aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; - aentry.cycle = srccount; - aentry.type = type; - strncpy(aentry.fn,fname,sizeof(aentry.fn)-1); - aentry.fnd = NULL; -#ifdef GRFIO_LOCAL - aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck -#else - aentry.gentry = gentry+1; // With no first time LocalFileCheck -#endif - filelist_modify(&aentry); - } - ofs = ofs2 + 17; - } - aFree(grf_filelist); - - } else { //****** Grf Other version ****** - fclose(fp); - ShowError("GRF version %04x not supported\n",getlong(grf_header+0x2a)); - return 4; - } - - filelist_adjust(); // Unnecessary area release of filelist - - return 0; // 0:no error -} - -/*========================================== - * Grfio : Resource file check - *------------------------------------------ - */ -static void grfio_resourcecheck(void) -{ - char w1[256], w2[256], src[256], dst[256], restable[256], line[256]; - char *ptr, *buf; - FILELIST *entry; - int size, i = 0; - FILE *fp; - - // read resnametable from data directory and return if successful - sprintf(restable, "%sdata\\resnametable.txt", data_dir); - for (ptr = &restable[0]; *ptr != 0; ptr++) - if (*ptr == '\\') *ptr = '/'; - - fp = fopen(restable,"rb"); - if (fp) { - while (fgets(line, sizeof(line) - 1, fp)) { - if (sscanf(line, "%[^#]#%[^#]#", w1, w2) == 2 && - // we only need the map names and text files - (strstr(w2, ".gat") || strstr(w2, ".txt"))) - { - sprintf(src, "data\\%s", w1); - sprintf(dst, "data\\%s", w2); - entry = filelist_find(dst); - // create new entries reusing the original's info - if (entry != NULL) { - FILELIST fentry; - memcpy(&fentry, entry, sizeof(FILELIST)); - strncpy(fentry.fn, src, sizeof(fentry.fn) - 1); - fentry.fnd = grfio_alloc_ptr(dst); - filelist_modify(&fentry); - i++; - } - } - } - fclose(fp); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", i, "resnametable.txt"); - return; // we're done here! - } - - // read resnametable from loaded GRF's, only if it cannot be - // loaded from the data directory - buf = (char *)grfio_reads("data\\resnametable.txt", &size); - if (buf) { - buf[size] = 0; - ptr = buf; - - while (ptr - buf < size) { - if (sscanf(ptr, "%[^#]#%[^#]#", w1, w2) == 2 && - (strstr(w2, ".gat") || strstr(w2, ".txt"))) - { - sprintf(src, "data\\%s", w1); - sprintf(dst, "data\\%s", w2); - entry = filelist_find(dst); - if (entry != NULL) { - FILELIST fentry; - memcpy(&fentry, entry, sizeof(FILELIST)); - strncpy(fentry.fn, src, sizeof(fentry.fn) - 1); - fentry.fnd = grfio_alloc_ptr(dst); - filelist_modify(&fentry); - i++; - } - } - ptr = strchr(ptr,'\n'); // Next line - if (!ptr) break; - ptr++; - } - aFree(buf); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", i, "data\\resnametable.txt"); - return; - } - - //ShowWarning("GRF: No resnametable found! Panic?\n"); -} - -/*========================================== - * Grfio : Resource add - *------------------------------------------ - */ -#define GENTRY_ADDS 4 // The number increment of gentry_table entries - -static int grfio_add(char *fname) -{ - grfio_alloc_ptr(fname); - - return grfio_entryread(fname, gentry_entrys - 1); -} - -char *grfio_alloc_ptr(char *fname) -{ - int len; - char *buf; - - if (gentry_entrys >= GENTRY_LIMIT) { - ShowFatalError("gentrys limit : grfio_add\n"); - exit(1); - } - - if (gentry_entrys >= gentry_maxentry) { - gentry_maxentry += GENTRY_ADDS; - gentry_table = (char**)aRealloc(gentry_table, gentry_maxentry * sizeof(char*)); - memset(gentry_table + (gentry_maxentry - GENTRY_ADDS), 0, sizeof(char*) * GENTRY_ADDS); - } - len = strlen( fname ); - buf = (char*)aMallocA(len + 1); - strcpy(buf, fname); - gentry_table[gentry_entrys++] = buf; - - return buf; -} - -/*========================================== - * Grfio : Finalize - *------------------------------------------ - */ -void grfio_final(void) -{ - if (filelist != NULL) - aFree(filelist); - - filelist_entrys = filelist_maxentry = 0; - - if (gentry_table != NULL) { - int lop; - for (lop = 0; lop < gentry_entrys; lop++) { - if (gentry_table[lop] != NULL) - aFree(gentry_table[lop]); - } - aFree(gentry_table); - } - gentry_table = NULL; - gentry_entrys = gentry_maxentry = 0; -} - -/*========================================== - * Grfio : Initialize - *------------------------------------------ - */ -void grfio_init(char *fname) -{ - FILE *data_conf; - char line[1024], w1[1024], w2[1024]; - int result = 0; - - hashinit(); // hash table initialization - - data_conf = fopen(fname, "r"); - // It will read, if there is grf-files.txt. - if (data_conf) { - while(fgets(line, sizeof(line) - 1, data_conf)) { - if (line[0] == '/' && line[1] == '/') - continue; - if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) != 2) - continue; - // Entry table reading - if(strcmp(w1, "grf") == 0 || - strcmp(w1, "data") == 0 || // Primary data file - strcmp(w1, "sdata") == 0 || // Sakray data file - strcmp(w1, "adata") == 0) // Alpha version data file - // increment if successfully loaded - result += (grfio_add(w2) == 0); - else if(strcmp(w1,"data_dir") == 0) // Data directory - strcpy(data_dir, w2); - } - - fclose(data_conf); - ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n", fname); - } // end of reading grf-files.txt - - if (result == 0) { - ShowInfo("No grf's loaded.. using default data directory\n"); - //exit(1); // It ends, if a resource cannot read one. - } - - // Unnecessary area release of filelist - filelist_adjust(); - // Resource check - grfio_resourcecheck(); - - return; -} diff --git a/src/common/mapindex.c b/src/common/mapindex.c index 01489ce93..439075b99 100644 --- a/src/common/mapindex.c +++ b/src/common/mapindex.c @@ -20,11 +20,11 @@ struct indexes { static unsigned short max_index = 0; -char mapindex_cfgfile[80] = "db/map_index.txt"; +char mapindex_cfgfile[80] = "db/map_list.txt"; /// Adds a map to the specified index /// Returns 1 if successful, 0 oherwise -static int mapindex_addmap(int index, const char *name) +int mapindex_addmap(int index, const char *name) { char map_name[1024]; char *ext; @@ -41,25 +41,13 @@ static int mapindex_addmap(int index, const char *name) ShowError("(mapindex_add) Map name %s is too long. Maps are limited to %d characters.\n", map_name, MAP_NAME_LENGTH); return 0; } - if ((ext = strstr(map_name, ".gat")) != NULL) { //Gat map + if ((ext = strstr(map_name, ".")) != NULL) { // Remove extension length = ext-map_name; - } else if ((ext = strstr(map_name, ".afm")) != NULL || (ext = strstr(map_name, ".af2")) != NULL) { //afm map - length = ext-map_name; - sprintf(ext, ".gat"); //Change the extension to gat - } else if ((ext = strstr(map_name, ".")) != NULL) { //Generic extension? - length = ext-map_name; - sprintf(ext, ".gat"); - } else { //No extension? - length = strlen(map_name); - strcat(map_name, ".gat"); - } - if (length > MAP_NAME_LENGTH - 4) { - ShowError("(mapindex_add) Adjusted Map name %s is too long. Maps are limited to %d characters.\n", map_name, MAP_NAME_LENGTH); - return 0; + sprintf(ext, "\0"); } if (indexes[index].length) - ShowWarning("(mapindex_add) Overriding index %d: map \"%s\" -> \"%s\"\n", indexes[index].name, map_name); + ShowWarning("(mapindex_add) Overriding index %d: map \"%s\" -> \"%s\"\n", index, indexes[index].name, map_name); strncpy(indexes[index].name, map_name, MAP_NAME_LENGTH); indexes[index].length = length; @@ -77,7 +65,7 @@ unsigned short mapindex_name2id(const char* name) { length = ext-name; //Base map-name length without the extension. for (i = 1; i < max_index; i++) { - if (indexes[i].length == length && strncmp(indexes[i].name,name,length)==0) + if (strncmp(indexes[i].name,name,length)==0) return i; } #ifdef MAPINDEX_AUTOADD diff --git a/src/common/mapindex.h b/src/common/mapindex.h index a4aabbc7b..dfcb150e2 100644 --- a/src/common/mapindex.h +++ b/src/common/mapindex.h @@ -12,31 +12,32 @@ extern char mapindex_cfgfile[80]; //#define MAPINDEX_AUTOADD //Some definitions for the mayor city maps. -#define MAP_PRONTERA "prontera.gat" -#define MAP_GEFFEN "geffen.gat" -#define MAP_MORROC "morocc.gat" -#define MAP_ALBERTA "alberta.gat" -#define MAP_PAYON "payon.gat" -#define MAP_IZLUDE "izlude.gat" -#define MAP_ALDEBARAN "aldebaran.gat" -#define MAP_LUTIE "xmas.gat" -#define MAP_COMODO "comodo.gat" -#define MAP_YUNO "yuno.gat" -#define MAP_AMATSU "amatsu.gat" -#define MAP_GONRYUN "gonryun.gat" -#define MAP_UMBALA "umbala.gat" -#define MAP_NIFLHEIM "niflheim.gat" -#define MAP_LOUYANG "louyang.gat" -#define MAP_JAWAII "jawaii.gat" -#define MAP_AYOTHAYA "ayothaya.gat" -#define MAP_EINBROCH "einbroch.gat" -#define MAP_LIGHTHALZEN "lighthalzen.gat" -#define MAP_EINBECH "einbech.gat" -#define MAP_HUGEL "hugel.gat" -#define MAP_RACHEL "rachel.gat" -#define MAP_VEINS "veins.gat" -#define MAP_JAIL "sec_pri.gat" -#define MAP_NOVICE "new_zone01.gat" +#define MAP_PRONTERA "prontera" +#define MAP_GEFFEN "geffen" +#define MAP_MORROC "morocc" +#define MAP_ALBERTA "alberta" +#define MAP_PAYON "payon" +#define MAP_IZLUDE "izlude" +#define MAP_ALDEBARAN "aldebaran" +#define MAP_LUTIE "xmas" +#define MAP_COMODO "comodo" +#define MAP_YUNO "yuno" +#define MAP_AMATSU "amatsu" +#define MAP_GONRYUN "gonryun" +#define MAP_UMBALA "umbala" +#define MAP_NIFLHEIM "niflheim" +#define MAP_LOUYANG "louyang" +#define MAP_JAWAII "jawaii" +#define MAP_AYOTHAYA "ayothaya" +#define MAP_EINBROCH "einbroch" +#define MAP_LIGHTHALZEN "lighthalzen" +#define MAP_EINBECH "einbech" +#define MAP_HUGEL "hugel" +#define MAP_RACHEL "rachel" +#define MAP_VEINS "veins" +#define MAP_JAIL "sec_pri" +#define MAP_NOVICE "new_zone01" +int mapindex_addmap(int index, const char *name); unsigned short mapindex_name2id(const char*); const char* mapindex_id2name(unsigned short); void mapindex_init(void); diff --git a/src/map/atcommand.c b/src/map/atcommand.c index b104633a6..5ec3c1f1b 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -1327,9 +1327,6 @@ int atcommand_rura( const int fd, struct map_session_data* sd, const char* comma return -1; } - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < MAP_NAME_LENGTH-4) // 16 - 4 (.gat) - strcat(map_name, ".gat"); - mapindex = mapindex_name2id(map_name); if (mapindex) m = map_mapindex2mapid(mapindex); @@ -1713,8 +1710,6 @@ int atcommand_whomap3(const int fd, struct map_session_data* sd, const char* com map_id = sd->bl.m; else { sscanf(message, "%15s", map_name); - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < MAP_NAME_LENGTH-4) // 16 - 4 (.gat) - strcat(map_name, ".gat"); if ((map_id = map_mapname2mapid(map_name)) < 0) map_id = sd->bl.m; } @@ -1771,8 +1766,6 @@ int atcommand_whomap2(const int fd, struct map_session_data* sd, const char* com map_id = sd->bl.m; else { sscanf(message, "%15s", map_name); - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < MAP_NAME_LENGTH-4) // 16 - 4 (.gat) - strcat(map_name, ".gat"); if ((map_id = map_mapname2mapid(map_name)) < 0) map_id = sd->bl.m; } @@ -1835,8 +1828,6 @@ int atcommand_whomap(const int fd, struct map_session_data* sd, const char* comm map_id = sd->bl.m; else { sscanf(message, "%15s", map_name); - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < MAP_NAME_LENGTH-4) // 16 - 4 (.gat) - strcat(map_name, ".gat"); if ((map_id = map_mapname2mapid(map_name)) < 0) map_id = sd->bl.m; } @@ -3252,77 +3243,75 @@ int atcommand_go(const int fd, struct map_session_data* sd, const char* command, clif_displaymessage(fd, " 24=Veins"); return -1; } else { - // get possible name of the city and add .gat if not in the name + // get possible name of the city map_name[MAP_NAME_LENGTH-1] = '\0'; for (i = 0; map_name[i]; i++) map_name[i] = tolower(map_name[i]); - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < MAP_NAME_LENGTH-4) // 16 - 4 (.gat) - strcat(map_name, ".gat"); // try to see if it's a name, and not a number (try a lot of possibilities, write errors and abbreviations too) - if (strncmp(map_name, "prontera.gat", 3) == 0) { // 3 first characters + if (strncmp(map_name, "prontera", 3) == 0) { // 3 first characters town = 0; - } else if (strncmp(map_name, "morocc.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "morocc", 3) == 0) { // 3 first characters town = 1; - } else if (strncmp(map_name, "geffen.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "geffen", 3) == 0) { // 3 first characters town = 2; - } else if (strncmp(map_name, "payon.gat", 3) == 0 || // 3 first characters - strncmp(map_name, "paion.gat", 3) == 0) { // writing error (3 first characters) + } else if (strncmp(map_name, "payon", 3) == 0 || // 3 first characters + strncmp(map_name, "paion", 3) == 0) { // writing error (3 first characters) town = 3; - } else if (strncmp(map_name, "alberta.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "alberta", 3) == 0) { // 3 first characters town = 4; - } else if (strncmp(map_name, "izlude.gat", 3) == 0 || // 3 first characters - strncmp(map_name, "islude.gat", 3) == 0) { // writing error (3 first characters) + } else if (strncmp(map_name, "izlude", 3) == 0 || // 3 first characters + strncmp(map_name, "islude", 3) == 0) { // writing error (3 first characters) town = 5; - } else if (strncmp(map_name, "aldebaran.gat", 3) == 0 || // 3 first characters - strcmp(map_name, "al.gat") == 0) { // al (de baran) + } else if (strncmp(map_name, "aldebaran", 3) == 0 || // 3 first characters + strcmp(map_name, "al") == 0) { // al (de baran) town = 6; - } else if (strncmp(map_name, "lutie.gat", 3) == 0 || // name of the city, not name of the map (3 first characters) - strcmp(map_name, "christmas.gat") == 0 || // name of the symbol - strncmp(map_name, "xmas.gat", 3) == 0 || // 3 first characters - strncmp(map_name, "x-mas.gat", 3) == 0) { // writing error (3 first characters) + } else if (strncmp(map_name, "lutie", 3) == 0 || // name of the city, not name of the map (3 first characters) + strcmp(map_name, "christmas") == 0 || // name of the symbol + strncmp(map_name, "xmas", 3) == 0 || // 3 first characters + strncmp(map_name, "x-mas", 3) == 0) { // writing error (3 first characters) town = 7; - } else if (strncmp(map_name, "comodo.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "comodo", 3) == 0) { // 3 first characters town = 8; - } else if (strncmp(map_name, "yuno.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "yuno", 3) == 0) { // 3 first characters town = 9; - } else if (strncmp(map_name, "amatsu.gat", 3) == 0 || // 3 first characters - strncmp(map_name, "ammatsu.gat", 3) == 0) { // writing error (3 first characters) + } else if (strncmp(map_name, "amatsu", 3) == 0 || // 3 first characters + strncmp(map_name, "ammatsu", 3) == 0) { // writing error (3 first characters) town = 10; - } else if (strncmp(map_name, "gonryun.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "gonryun", 3) == 0) { // 3 first characters town = 11; - } else if (strncmp(map_name, "umbala.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "umbala", 3) == 0) { // 3 first characters town = 12; - } else if (strncmp(map_name, "niflheim.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "niflheim", 3) == 0) { // 3 first characters town = 13; - } else if (strncmp(map_name, "louyang.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "louyang", 3) == 0) { // 3 first characters town = 14; - } else if (strncmp(map_name, "new_zone01.gat", 3) == 0 || // 3 first characters (or "newbies") - strncmp(map_name, "startpoint.gat", 3) == 0 || // name of the position (3 first characters) - strncmp(map_name, "begining.gat", 3) == 0) { // name of the position (3 first characters) + } else if (strncmp(map_name, "new_zone01", 3) == 0 || // 3 first characters (or "newbies") + strncmp(map_name, "startpoint", 3) == 0 || // name of the position (3 first characters) + strncmp(map_name, "begining", 3) == 0) { // name of the position (3 first characters) town = 15; - } else if (strncmp(map_name, "sec_pri.gat", 3) == 0 || // 3 first characters - strncmp(map_name, "prison.gat", 3) == 0 || // name of the position (3 first characters) - strncmp(map_name, "jails.gat", 3) == 0) { // name of the position + } else if (strncmp(map_name, "sec_pri", 3) == 0 || // 3 first characters + strncmp(map_name, "prison", 3) == 0 || // name of the position (3 first characters) + strncmp(map_name, "jails", 3) == 0) { // name of the position town = 16; - } else if (strncmp(map_name, "jawaii.gat", 3) == 0 || // 3 first characters - strncmp(map_name, "jawai.gat", 3) == 0) { // writing error (3 first characters) + } else if (strncmp(map_name, "jawaii", 3) == 0 || // 3 first characters + strncmp(map_name, "jawai", 3) == 0) { // writing error (3 first characters) town = 17; - } else if (strncmp(map_name, "ayothaya.gat", 2) == 0 || // 2 first characters - strncmp(map_name, "ayotaya.gat", 2) == 0) { // writing error (2 first characters) + } else if (strncmp(map_name, "ayothaya", 2) == 0 || // 2 first characters + strncmp(map_name, "ayotaya", 2) == 0) { // writing error (2 first characters) town = 18; - } else if (strncmp(map_name, "einbroch.gat", 5) == 0 || // 5 first characters - strncmp(map_name, "ainbroch.gat", 5) == 0) { // writing error (5 first characters) + } else if (strncmp(map_name, "einbroch", 5) == 0 || // 5 first characters + strncmp(map_name, "ainbroch", 5) == 0) { // writing error (5 first characters) town = 19; - } else if (strncmp(map_name, "lighthalzen.gat", 3) == 0 || // 3 first characters - strncmp(map_name, "reichthalzen.gat", 3) == 0) { // 'alternative' name (3 first characters) + } else if (strncmp(map_name, "lighthalzen", 3) == 0 || // 3 first characters + strncmp(map_name, "reichthalzen", 3) == 0) { // 'alternative' name (3 first characters) town = 20; - } else if (strncmp(map_name, "einbech.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "einbech", 3) == 0) { // 3 first characters town = 21; - } else if (strncmp(map_name, "hugel.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "hugel", 3) == 0) { // 3 first characters town = 22; - } else if (strncmp(map_name, "rachel.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "rachel", 3) == 0) { // 3 first characters town = 23; - } else if (strncmp(map_name, "veins.gat", 3) == 0) { // 3 first characters + } else if (strncmp(map_name, "veins", 3) == 0) { // 3 first characters town = 24; } @@ -3650,8 +3639,6 @@ void atcommand_killmonster_sub(const int fd, struct map_session_data* sd, const if (!message || !*message || sscanf(message, "%15s", map_name) < 1) map_id = sd->bl.m; else { - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < MAP_NAME_LENGTH-4) // 16 - 4 (.gat) - strcat(map_name, ".gat"); if ((map_id = map_mapname2mapid(map_name)) < 0) map_id = sd->bl.m; } @@ -5446,8 +5433,6 @@ int atcommand_mapinfo(const int fd, struct map_session_data* sd, const char* com atcmd_player_name[MAP_NAME_LENGTH] = '\0'; m_id = map_mapindex2mapid(sd->mapindex); } else { - if (strstr(atcmd_player_name, ".gat") == NULL && strstr(atcmd_player_name, ".afm") == NULL && strlen(atcmd_player_name) < MAP_NAME_LENGTH-4) // 16 - 4 (.gat) - strcat(atcmd_player_name, ".gat"); m_id = map_mapname2mapid(atcmd_player_name); } if (m_id < 0) { diff --git a/src/map/charcommand.c b/src/map/charcommand.c index 5eb03dd1f..743f456f6 100644 --- a/src/map/charcommand.c +++ b/src/map/charcommand.c @@ -628,9 +628,6 @@ int charcommand_save( return -1; } - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < MAP_NAME_LENGTH-4) // 16 - 4 (.gat) - strcat(map_name, ".gat"); - if ((pl_sd = map_nick2sd(character)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change save point only to lower or same gm level m = map_mapname2mapid(map_name); @@ -1146,9 +1143,6 @@ int charcommand_warp( return -1; } - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < MAP_NAME_LENGTH-4) // 16 - 4 (.gat) - strcat(map_name, ".gat"); - if ((pl_sd = map_nick2sd(character)) == NULL) { clif_displaymessage(fd, msg_table[3]); // Character not found. return -1; diff --git a/src/map/clif.c b/src/map/clif.c index bcfae2bf2..f5dff2f85 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -1596,14 +1596,17 @@ void clif_setwaitclose(int fd) { */ int clif_changemap(struct map_session_data *sd, short map, int x, int y) { int fd; + char map_name[MAP_NAME_LENGTH]; nullpo_retr(0, sd); fd = sd->fd; - + + snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(map)); + WFIFOHEAD(fd, packet_len(0x91)); WFIFOW(fd,0) = 0x91; - memcpy(WFIFOP(fd,2), mapindex_id2name(map), MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,2), map_name, MAP_NAME_LENGTH); WFIFOW(fd,18) = x; WFIFOW(fd,20) = y; WFIFOSET(fd, packet_len(0x91)); @@ -5616,12 +5619,17 @@ int clif_party_created(struct map_session_data *sd,int flag) int clif_party_member_info(struct party_data *p, struct map_session_data *sd) { unsigned char buf[96]; + char map_name[MAP_NAME_LENGTH]; + if (!sd) { //Pick any party member (this call is used when changing item share rules) int i; for (i=0; idata[i].sd; i++); if (i >= MAX_PARTY) return 0; //Should never happen... sd = p->data[i].sd; } + + snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->mapindex)); + WBUFW(buf,0)=0x1e9; WBUFL(buf,2)= sd->status.account_id; WBUFL(buf,6)= 0; //Apparently setting this to 1 makes you adoptable. @@ -5630,7 +5638,7 @@ int clif_party_member_info(struct party_data *p, struct map_session_data *sd) WBUFB(buf,14)=0; //Unconfirmed byte, could be online/offline. memcpy(WBUFP(buf,15), p->party.name, NAME_LENGTH); memcpy(WBUFP(buf,39), sd->status.name, NAME_LENGTH); - memcpy(WBUFP(buf,63), mapindex_id2name(sd->mapindex), MAP_NAME_LENGTH); + memcpy(WBUFP(buf,63), map_name, MAP_NAME_LENGTH); WBUFB(buf,79) = (p->party.item&1)?1:0; WBUFB(buf,80) = (p->party.item&2)?1:0; clif_send(buf,packet_len(0x1e9),&sd->bl,PARTY); @@ -5655,13 +5663,17 @@ int clif_party_info(struct party_data* p, struct map_session_data *sd) for(i = 0, c = 0; i < MAX_PARTY; i++) { struct party_member* m = &p->party.member[i]; + char map_name[MAP_NAME_LENGTH]; + if(!m->account_id) continue; if(party_sd == NULL) party_sd = p->data[i].sd; + snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(m->map)); + WBUFL(buf,28+c*46) = m->account_id; memcpy(WBUFP(buf,28+c*46+4), m->name, NAME_LENGTH); - memcpy(WBUFP(buf,28+c*46+28), mapindex_id2name(m->map), MAP_NAME_LENGTH); + memcpy(WBUFP(buf,28+c*46+28), map_name, MAP_NAME_LENGTH); WBUFB(buf,28+c*46+44) = (m->leader) ? 0 : 1; WBUFB(buf,28+c*46+45) = (m->online) ? 0 : 1; c++; @@ -5940,10 +5952,13 @@ int clif_hpmeter(struct map_session_data *sd) int clif_party_move(struct party *p,struct map_session_data *sd,int online) { unsigned char buf[128]; + char map_name[MAP_NAME_LENGTH]; nullpo_retr(0, sd); nullpo_retr(0, p); + snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", map[sd->bl.m].name); + WBUFW(buf, 0)=0x104; WBUFL(buf, 2)=sd->status.account_id; WBUFL(buf, 6)=0; @@ -5952,7 +5967,7 @@ int clif_party_move(struct party *p,struct map_session_data *sd,int online) WBUFB(buf,14)=!online; memcpy(WBUFP(buf,15),p->name, NAME_LENGTH); memcpy(WBUFP(buf,39),sd->status.name, NAME_LENGTH); - memcpy(WBUFP(buf,63),map[sd->bl.m].name, MAP_NAME_LENGTH); + memcpy(WBUFP(buf,63),map_name, MAP_NAME_LENGTH); clif_send(buf,packet_len(0x104),&sd->bl,PARTY); return 0; } @@ -7794,9 +7809,13 @@ void clif_gospel_info(struct map_session_data *sd, int type) void clif_feel_info(struct map_session_data *sd, unsigned char feel_level, unsigned char type) { int fd=sd->fd; + char map_name[MAP_NAME_LENGTH]; + + snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->feel_map[feel_level].index)); + WFIFOHEAD(fd,packet_len(0x20e)); WFIFOW(fd,0)=0x20e; - memcpy(WFIFOP(fd,2),mapindex_id2name(sd->feel_map[feel_level].index), MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,2),map_name, MAP_NAME_LENGTH); WFIFOL(fd,26)=sd->bl.id; WFIFOB(fd,30)=feel_level; WFIFOB(fd,31)=type?1:0; diff --git a/src/map/guild.c b/src/map/guild.c index c53343703..64af2e12a 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -253,6 +253,9 @@ struct guild_castle *guild_mapname2gc(char *mapname) { int i; struct guild_castle *gc=NULL; + + map_normalize_name(mapname); + for(i=0;imap_name,mapindex_id2name(mapname))==0) return gc; + if(strcmp(gc->map_name,mapindex_id2name(mapindex))==0) return gc; } return NULL; } diff --git a/src/map/guild.h b/src/map/guild.h index d5b501e3a..9f21cd550 100644 --- a/src/map/guild.h +++ b/src/map/guild.h @@ -25,7 +25,7 @@ struct guild *guild_searchname(char *str); struct guild_castle *guild_castle_search(int gcid); struct guild_castle *guild_mapname2gc(char *mapname); -struct guild_castle *guild_mapindex2gc(short mapname); +struct guild_castle *guild_mapindex2gc(short mapindex); struct map_session_data *guild_getavailablesd(struct guild *g); int guild_getindex(struct guild *g,int account_id,int char_id); diff --git a/src/map/map.c b/src/map/map.c index 3f37c430e..dfdda95b7 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -2432,12 +2432,6 @@ int map_eraseipport(unsigned short mapindex,unsigned long ip,int port) * Map cache reading *===========================================*/ -// This is the main header found at the very beginning of the file -/*struct map_cache_head { - long filesize; - unsigned short map_count; -};*/ - // This is the header appended before every compressed map cells info struct map_cache_info { char name[MAP_NAME_LENGTH]; @@ -2449,6 +2443,7 @@ struct map_cache_info { FILE *map_cache_fp; +// Removes the extension from a map name char *map_normalize_name(char *mapname) { char *ptr, *ptr2; @@ -2457,7 +2452,8 @@ char *map_normalize_name(char *mapname) while (ptr[1] && (ptr2 = strchr(ptr+1, '.'))) ptr = ptr2; //Skip to the last dot. if(stricmp(ptr,".gat") == 0 || - stricmp(ptr,".afm") == 0) + stricmp(ptr,".afm") == 0 || + stricmp(ptr,".af2") == 0) *ptr = '\0'; //Remove extension. } return mapname; @@ -2471,6 +2467,9 @@ int map_readmap(struct map_data *m) unsigned long size; unsigned char *buf; + if(!map_cache_fp) + return 0; + fseek(map_cache_fp, 0, SEEK_SET); fread(&map_count, sizeof(map_count), 1, map_cache_fp); @@ -2628,6 +2627,7 @@ int map_readallmaps (void) map[i].block_count = (int*)aCallocA(size, 1); map[i].block_mob_count = (int*)aCallocA(size, 1); + mapindex_addmap(map[i].index, map[i].name); uidb_put(map_db, (unsigned int)map[i].index, &map[i]); } @@ -3177,8 +3177,6 @@ void do_final(void) { if (map[i].moblist[j]) aFree(map[i].moblist[j]); } } - - mapindex_final(); id_db->destroy(id_db, NULL); pc_db->destroy(pc_db, NULL); @@ -3337,9 +3335,6 @@ int do_init(int argc, char *argv[]) { charsql_db_init(1); //Connecting to chardb #endif /* not TXT_ONLY */ - mapindex_init(); - grfio_init(GRF_PATH_FILENAME); - map_readallmaps(); add_timer_func_list(map_freeblock_timer, "map_freeblock_timer"); @@ -3378,9 +3373,6 @@ int do_init(int argc, char *argv[]) { npc_event_do_oninit(); // npcのOnInitイベント?行 - //Done loading with the maps, no need for the grf module anymore. - grfio_final(); - if( console ) { //##TODO invoke a CONSOLE_START plugin event diff --git a/src/map/script.c b/src/map/script.c index 11f5c6dda..6f862400f 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -4593,7 +4593,7 @@ BUILDIN_FUNC(areawarp) * warpchar [LuzZza] * Useful for warp one player from * another player npc-session. - * Using: warpchar "mapname.gat",x,y,Char_ID; + * Using: warpchar "mapname",x,y,Char_ID; *------------------------------------------ */ BUILDIN_FUNC(warpchar) @@ -4631,7 +4631,7 @@ BUILDIN_FUNC(warpchar) /*========================================== * Warpparty - [Fredzilla] - * Syntax: warpparty "mapname.gat",x,y,Party_ID; + * Syntax: warpparty "mapname",x,y,Party_ID; *------------------------------------------ */ BUILDIN_FUNC(warpparty) @@ -4714,7 +4714,7 @@ BUILDIN_FUNC(warpparty) } /*========================================== * Warpguild - [Fredzilla] - * Syntax: warpguild "mapname.gat",x,y,Guild_ID; + * Syntax: warpguild "mapname",x,y,Guild_ID; *------------------------------------------ */ BUILDIN_FUNC(warpguild) @@ -7806,7 +7806,7 @@ BUILDIN_FUNC(getusersname) return 0; } /*========================================== - * getmapguildusers("mapname.gat",guild ID) Returns the number guild members present on a map [Reddozen] + * getmapguildusers("mapname",guild ID) Returns the number guild members present on a map [Reddozen] *------------------------------------------ */ BUILDIN_FUNC(getmapguildusers) @@ -9132,16 +9132,12 @@ BUILDIN_FUNC(flagemblem) BUILDIN_FUNC(getcastlename) { - const char *mapname=conv_str(st,& (st->stack->stack_data[st->start+2])); - struct guild_castle *gc=NULL; - int i; - for(i=0;imap_name)==0){ - break; - } - } - } + char mapname[MAP_NAME_LENGTH]; + struct guild_castle *gc; + + strncpy(mapname, conv_str(st,script_getdata(st,2)), MAP_NAME_LENGTH); + gc = guild_mapname2gc(mapname); + if(gc) push_str(st->stack,C_CONSTSTR,gc->castle_name); else @@ -9151,66 +9147,67 @@ BUILDIN_FUNC(getcastlename) BUILDIN_FUNC(getcastledata) { - char mapname[MAP_NAME_LENGTH+1]; + char mapname[MAP_NAME_LENGTH]; int index=conv_num(st,& (st->stack->stack_data[st->start+3])); const char *event=NULL; struct guild_castle *gc; - int i,j; + int i; strncpy(mapname, conv_str(st,script_getdata(st,2)), MAP_NAME_LENGTH); - mapname[MAP_NAME_LENGTH] = '\0'; - map_normalize_name(mapname); - - if( st->end>st->start+4 && index==0){ - for(i=0,j=-1;imap_name)==0 ) - j=i; - if(j>=0){ - event=conv_str(st,& (st->stack->stack_data[st->start+4])); - check_event(st, event); - guild_addcastleinfoevent(j,17,event); - } - } - - for(i=0;imap_name)==0){ - switch(index){ - case 0: for(j=1;j<26;j++) guild_castledataload(gc->castle_id,j); break; // Initialize[AgitInit] - case 1: push_val(st->stack,C_INT,gc->guild_id); break; - case 2: push_val(st->stack,C_INT,gc->economy); break; - case 3: push_val(st->stack,C_INT,gc->defense); break; - case 4: push_val(st->stack,C_INT,gc->triggerE); break; - case 5: push_val(st->stack,C_INT,gc->triggerD); break; - case 6: push_val(st->stack,C_INT,gc->nextTime); break; - case 7: push_val(st->stack,C_INT,gc->payTime); break; - case 8: push_val(st->stack,C_INT,gc->createTime); break; - case 9: push_val(st->stack,C_INT,gc->visibleC); break; - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - push_val(st->stack,C_INT,gc->guardian[index-10].visible); break; - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - push_val(st->stack,C_INT,gc->guardian[index-18].hp); break; - default: - push_val(st->stack,C_INT,0); break; - } - return 0; - } + gc = guild_mapname2gc(mapname); + + if(st->end>st->start+4 && index==0 && gc) { + event=conv_str(st,& (st->stack->stack_data[st->start+4])); + check_event(st, event); + guild_addcastleinfoevent(gc->castle_id,17,event); + } + + if(gc){ + switch(index){ + case 0: + for(i=1;i<26;i++) // Initialize[AgitInit] + guild_castledataload(gc->castle_id,i); + break; + case 1: + push_val(st->stack,C_INT,gc->guild_id); break; + case 2: + push_val(st->stack,C_INT,gc->economy); break; + case 3: + push_val(st->stack,C_INT,gc->defense); break; + case 4: + push_val(st->stack,C_INT,gc->triggerE); break; + case 5: + push_val(st->stack,C_INT,gc->triggerD); break; + case 6: + push_val(st->stack,C_INT,gc->nextTime); break; + case 7: + push_val(st->stack,C_INT,gc->payTime); break; + case 8: + push_val(st->stack,C_INT,gc->createTime); break; + case 9: + push_val(st->stack,C_INT,gc->visibleC); break; + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + push_val(st->stack,C_INT,gc->guardian[index-10].visible); break; + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + push_val(st->stack,C_INT,gc->guardian[index-18].hp); break; + default: + push_val(st->stack,C_INT,0); break; } + return 0; } push_val(st->stack,C_INT,0); return 0; @@ -9218,69 +9215,72 @@ BUILDIN_FUNC(getcastledata) BUILDIN_FUNC(setcastledata) { - char mapname[MAP_NAME_LENGTH+1]; + char mapname[MAP_NAME_LENGTH]; int index=conv_num(st,& (st->stack->stack_data[st->start+3])); int value=conv_num(st,& (st->stack->stack_data[st->start+4])); struct guild_castle *gc; - int i; strncpy(mapname, conv_str(st,script_getdata(st,2)), MAP_NAME_LENGTH); - mapname[MAP_NAME_LENGTH] = '\0'; - map_normalize_name(mapname); - - for(i=0;imap_name)==0){ - // Save Data byself First - switch(index){ - case 1: gc->guild_id = value; break; - case 2: gc->economy = value; break; - case 3: gc->defense = value; break; - case 4: gc->triggerE = value; break; - case 5: gc->triggerD = value; break; - case 6: gc->nextTime = value; break; - case 7: gc->payTime = value; break; - case 8: gc->createTime = value; break; - case 9: gc->visibleC = value; break; - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - gc->guardian[index-10].visible = value; break; - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - gc->guardian[index-18].hp = value; - if (gc->guardian[index-18].id) - { //Update this mob's HP. - struct block_list *bl = map_id2bl(gc->guardian[index-18].id); - if (!bl) - { //Wrong target? - gc->guardian[index-18].id = 0; - break; - } - if (value < 1) { - status_kill(bl); - break; - } - status_set_hp(bl, value, 0); + gc = guild_mapname2gc(mapname); + + if(gc) { + // Save Data byself First + switch(index){ + case 1: + gc->guild_id = value; break; + case 2: + gc->economy = value; break; + case 3: + gc->defense = value; break; + case 4: + gc->triggerE = value; break; + case 5: + gc->triggerD = value; break; + case 6: + gc->nextTime = value; break; + case 7: + gc->payTime = value; break; + case 8: + gc->createTime = value; break; + case 9: + gc->visibleC = value; break; + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + gc->guardian[index-10].visible = value; break; + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + gc->guardian[index-18].hp = value; + if (gc->guardian[index-18].id) + { //Update this mob's HP. + struct block_list *bl = map_id2bl(gc->guardian[index-18].id); + if (!bl) + { //Wrong target? + gc->guardian[index-18].id = 0; + break; } - break; - default: return 0; + if (value < 1) { + status_kill(bl); + break; + } + status_set_hp(bl, value, 0); } - guild_castledatasave(gc->castle_id,index,value); + break; + default: return 0; - } } + guild_castledatasave(gc->castle_id,index,value); } return 0; } @@ -10853,7 +10853,7 @@ BUILDIN_FUNC(prompt) /*========================================== * GetMapMobs returns mob counts on a set map: - e.g. GetMapMobs("prontera.gat") + e.g. GetMapMobs("prontera") use "this" - for player's map *------------------------------------------ */ diff --git a/src/tool/mapcache.c b/src/tool/mapcache.c index e73723e66..79de65e0b 100644 --- a/src/tool/mapcache.c +++ b/src/tool/mapcache.c @@ -12,8 +12,8 @@ #include "grfio.h" -char grf_list_file[256] = "tools/mapcache/grf_files.txt"; -char map_list_file[256] = "tools/mapcache/map_list.txt"; +char grf_list_file[256] = "db/grf_files.txt"; +char map_list_file[256] = "db/map_list.txt"; char map_cache_file[256] = "db/map_cache.dat"; #define MAP_NAME_LENGTH 16 @@ -226,8 +226,7 @@ int main(int argc, char *argv[]) printf("Map file not found in GRF\n"); // If the 2nd argument is omitted at next line, we'll keep last used index + 1 index++; - } else - printf("Skipping incorrect line\n"); + } } printf("Closing map list: %s\n", map_list_file); diff --git a/tools/mapcache/grf_files.txt b/tools/mapcache/grf_files.txt deleted file mode 100644 index 38e4bca90..000000000 --- a/tools/mapcache/grf_files.txt +++ /dev/null @@ -1,14 +0,0 @@ -//----------------------------------------- -// GRF List -//----------------------------------------- - -grf: C:\Jeux\RO\sdata.grf - -// You may add more in this format -// grf: - -//------ Others --------------------------- - -//Path to directory that contains the data dir -//NOTE: Path must include trailing backslash, only one data_dir entry is supported. -//data_dir: C:\Program Files\Gravity\RO\ diff --git a/tools/mapcache/map_list.txt b/tools/mapcache/map_list.txt deleted file mode 100644 index 5bb039d6f..000000000 --- a/tools/mapcache/map_list.txt +++ /dev/null @@ -1,646 +0,0 @@ -//====================================================================================== -// Map Index -//====================================================================================== -//Contains the list of maps with their respective IDs for inter-server use. -//IDs must never change, therefore any new maps need to be added at the end, -//and old ones must not be removed, but may be replaced. -//Format: -//mapnameindex <- specifies index for this map -//mapname <- map will use index of previous map +1 -//Note that map index 0 is special and reserved for "error" status. -alb_ship 1 -alb2trea -alberta -alberta_in -alde_dun01 -alde_dun02 -alde_dun03 -alde_dun04 -aldeba_in -aldebaran -anthell01 -anthell02 -arena_room -c_tower1 -c_tower2 -c_tower3 -c_tower4 -force_1-1 -force_1-2 -force_1-3 -force_2-1 -force_2-2 -force_2-3 -force_3-1 -force_3-2 -force_3-3 -gef_dun00 -gef_dun01 -gef_dun02 -gef_dun03 -gef_fild00 -gef_fild01 -gef_fild02 -gef_fild03 -gef_fild04 -gef_fild05 -gef_fild06 -gef_fild07 -gef_fild08 -gef_fild09 -gef_fild10 -gef_fild11 -gef_fild12 -gef_fild13 -gef_fild14 -gef_tower -geffen -geffen_in -gl_cas01 -gl_cas02 -gl_church -gl_chyard -gl_dun01 -gl_dun02 -gl_in01 -gl_knt01 -gl_knt02 -gl_prison -gl_prison1 -gl_sew01 -gl_sew02 -gl_sew03 -gl_sew04 -gl_step -glast_01 -hunter_1-1 -hunter_2-1 -hunter_3-1 -in_hunter -in_moc_16 -in_orcs01 -in_sphinx1 -in_sphinx2 -in_sphinx3 -in_sphinx4 -in_sphinx5 -iz_dun00 -iz_dun01 -iz_dun02 -iz_dun03 -iz_dun04 -job_sword1 -izlu2dun -izlude -izlude_in -job_thief1 -knight_1-1 -knight_2-1 -knight_3-1 -mjo_dun01 -mjo_dun02 -mjo_dun03 -mjolnir_01 -mjolnir_02 -mjolnir_03 -mjolnir_04 -mjolnir_05 -mjolnir_06 -mjolnir_07 -mjolnir_08 -mjolnir_09 -mjolnir_10 -mjolnir_11 -mjolnir_12 -moc_castle -moc_fild01 -moc_fild02 -moc_fild03 -moc_fild04 -moc_fild05 -moc_fild06 -moc_fild07 -moc_fild08 -moc_fild09 -moc_fild10 -moc_fild11 -moc_fild12 -moc_fild13 -moc_fild14 -moc_fild15 -moc_fild16 -moc_fild17 -moc_fild18 -moc_fild19 -moc_pryd01 -moc_pryd02 -moc_pryd03 -moc_pryd04 -moc_pryd05 -moc_pryd06 -moc_prydb1 -moc_ruins -monk_in -morocc -morocc_in -new_1-1 -new_1-2 -new_1-3 -new_1-4 -new_2-1 -new_2-2 -new_2-3 -new_2-4 -new_3-1 -new_3-2 -new_3-3 -new_3-4 -new_4-1 -new_4-2 -new_4-3 -new_4-4 -new_5-1 -new_5-2 -new_5-3 -new_5-4 -orcsdun01 -orcsdun02 -ordeal_1-1 -ordeal_1-2 -ordeal_1-3 -ordeal_1-4 -ordeal_2-1 -ordeal_2-2 -ordeal_2-3 -ordeal_2-4 -ordeal_3-1 -ordeal_3-2 -ordeal_3-3 -ordeal_3-4 -pay_arche -pay_dun00 -pay_dun01 -pay_dun02 -pay_dun03 -pay_dun04 -pay_fild01 -pay_fild02 -pay_fild03 -pay_fild04 -pay_fild05 -pay_fild06 -pay_fild07 -pay_fild08 -pay_fild09 -pay_fild10 -pay_fild11 -payon -payon_in01 -payon_in02 -priest_1-1 -priest_2-1 -priest_3-1 -prontera -prt_are_in -prt_are01 -pvp_room -prt_castle -prt_church -prt_fild00 -prt_fild01 -prt_fild02 -prt_fild03 -prt_fild04 -prt_fild05 -prt_fild06 -prt_fild07 -prt_fild08 -prt_fild09 -prt_fild10 -prt_fild11 -prt_in -prt_maze01 -prt_maze02 -prt_maze03 -prt_monk -prt_sewb1 -prt_sewb2 -prt_sewb3 -prt_sewb4 -pvp_2vs2 -pvp_c_room -pvp_n_1-1 -pvp_n_1-2 -pvp_n_1-3 -pvp_n_1-4 -pvp_n_1-5 -pvp_n_2-1 -pvp_n_2-2 -pvp_n_2-3 -pvp_n_2-4 -pvp_n_2-5 -pvp_n_3-1 -pvp_n_3-2 -pvp_n_3-3 -pvp_n_3-4 -pvp_n_3-5 -pvp_n_4-1 -pvp_n_4-2 -pvp_n_4-3 -pvp_n_4-4 -pvp_n_4-5 -pvp_n_5-1 -pvp_n_5-2 -pvp_n_5-3 -pvp_n_5-4 -pvp_n_5-5 -pvp_n_6-1 -pvp_n_6-2 -pvp_n_6-3 -pvp_n_6-4 -pvp_n_6-5 -pvp_n_7-1 -pvp_n_7-2 -pvp_n_7-3 -pvp_n_7-4 -pvp_n_7-5 -pvp_n_8-1 -pvp_n_8-2 -pvp_n_8-3 -pvp_n_8-4 -pvp_n_8-5 -pvp_n_room -pvp_y_1-1 -pvp_y_1-2 -pvp_y_1-3 -pvp_y_1-4 -pvp_y_1-5 -pvp_y_2-1 -pvp_y_2-2 -pvp_y_2-3 -pvp_y_2-4 -pvp_y_2-5 -pvp_y_3-1 -pvp_y_3-2 -pvp_y_3-3 -pvp_y_3-4 -pvp_y_3-5 -pvp_y_4-1 -pvp_y_4-2 -pvp_y_4-3 -pvp_y_4-4 -pvp_y_4-5 -pvp_y_5-1 -pvp_y_5-2 -pvp_y_5-3 -pvp_y_5-4 -pvp_y_5-5 -pvp_y_6-1 -pvp_y_6-2 -pvp_y_6-3 -pvp_y_6-4 -pvp_y_6-5 -pvp_y_7-1 -pvp_y_7-2 -pvp_y_7-3 -pvp_y_7-4 -pvp_y_7-5 -pvp_y_8-1 -pvp_y_8-2 -pvp_y_8-3 -pvp_y_8-4 -pvp_y_8-5 -pvp_y_room -sword_1-1 -sword_2-1 -sword_3-1 -treasure01 -treasure02 -wizard_1-1 -wizard_2-1 -wizard_3-1 -xmas -xmas_dun01 -xmas_dun02 -xmas_fild01 -xmas_in -beach_dun -beach_dun2 -beach_dun3 -cmd_fild01 -cmd_fild02 -cmd_fild03 -cmd_fild04 -cmd_fild05 -cmd_fild06 -cmd_fild07 -cmd_fild08 -cmd_fild09 -cmd_in01 -cmd_in02 -comodo -quiz_00 -quiz_01 -g_room1-1 -g_room1-2 -g_room1-3 -g_room2 -tur_dun01 -tur_dun02 -tur_dun03 -tur_dun04 -tur_dun05 -tur_dun06 -alde_gld -aldeg_cas01 -aldeg_cas02 -aldeg_cas03 -aldeg_cas04 -aldeg_cas05 -gefg_cas01 -gefg_cas02 -gefg_cas03 -gefg_cas04 -gefg_cas05 -gld_dun01 -gld_dun02 -gld_dun03 -gld_dun04 -guild_room -guild_vs1 -guild_vs2 -guild_vs3 -guild_vs4 -guild_vs5 -guild_vs1-1 -guild_vs1-2 -guild_vs1-3 -guild_vs1-4 -guild_vs2-1 -guild_vs2-2 -job_hunte -job_knt -job_prist -job_wiz -pay_gld -payg_cas01 -payg_cas02 -payg_cas03 -payg_cas04 -payg_cas05 -prt_gld -prtg_cas01 -prtg_cas02 -prtg_cas03 -prtg_cas04 -prtg_cas05 -alde_alche -in_rogue -job_cru -job_duncer -job_monk -job_sage -mag_dun01 -mag_dun02 -monk_test -quiz_test -yuno -yuno_fild01 -yuno_fild02 -yuno_fild03 -yuno_fild04 -yuno_in01 -yuno_in02 -yuno_in03 -yuno_in04 -yuno_in05 -ama_dun01 -ama_dun02 -ama_dun03 -ama_fild01 -ama_in01 -ama_in02 -ama_test -amatsu -gon_dun01 -gon_dun02 -gon_dun03 -gon_fild01 -gon_in -gon_test -gonryun -sec_in01 -sec_in02 -sec_pri -umbala -um_dun01 -um_dun02 -um_fild01 -um_fild02 -um_fild03 -um_fild04 -um_in -niflheim -nif_fild01 -nif_fild02 -nif_in -yggdrasil01 -valkyrie -himinn -lou_in01 -lou_in02 -lou_dun03 -lou_dun02 -lou_dun01 -lou_fild01 -louyang -siege_test -n_castle -nguild_gef -nguild_prt -nguild_pay -nguild_alde -jawaii -jawaii_in -gefenia01 -gefenia02 -gefenia03 -gefenia04 -new_zone01 -new_zone02 -new_zone03 -new_zone04 -payon_in03 -ayothaya -ayo_in01 -ayo_in02 -ayo_fild01 -ayo_fild02 -ayo_dun01 -ayo_dun02 -que_god01 -que_god02 -yuno_fild05 -yuno_fild07 -yuno_fild08 -yuno_fild09 -yuno_fild11 -yuno_fild12 -alde_tt02 -turbo_n_1 -turbo_n_4 -turbo_n_8 -turbo_n_16 -turbo_e_4 -turbo_e_8 -turbo_e_16 -turbo_room -airplane -airport -einbech -einbroch -ein_dun01 -ein_dun02 -ein_fild06 -ein_fild07 -ein_fild08 -ein_fild09 -ein_fild10 -ein_in01 -que_sign01 -que_sign02 -ein_fild03 -ein_fild04 -lhz_fild02 -lhz_fild03 -yuno_pre -lhz_fild01 -lighthalzen -lhz_in01 -lhz_in02 -lhz_in03 -lhz_que01 -lhz_dun01 -lhz_dun02 -lhz_dun03 -lhz_cube -juperos_01 -juperos_02 -jupe_area1 -jupe_area2 -jupe_core -jupe_ele -jupe_ele_r -jupe_gate -y_airport -lhz_airport -airplane_01 -jupe_cave -quiz_02 -hu_fild07 -hu_fild05 -hu_fild04 -hu_fild01 -yuno_fild06 -job_soul -job_star -que_job01 -que_job02 -que_job03 -abyss_01 -abyss_02 -abyss_03 -thana_step -thana_boss -tha_scene01 -tha_t01 -tha_t02 -tha_t03 -tha_t04 -tha_t07 -tha_t05 -tha_t06 -tha_t08 -tha_t09 -tha_t10 -tha_t11 -tha_t12 -auction_01 -auction_02 -hugel -hu_in01 -que_bingo -que_hugel -p_track01 -p_track02 -odin_tem01 -odin_tem02 -odin_tem03 -hu_fild02 -hu_fild03 -hu_fild06 -ein_fild01 -ein_fild02 -ein_fild05 -yuno_fild10 -kh_kiehl02 -kh_kiehl01 -kh_dun02 -kh_dun01 -kh_mansion -kh_rossi -kh_school -kh_vila -force_map1 -force_map2 -force_map3 -job_hunter -job_knight -job_priest -job_wizard -g_room2 -rachel -ra_in01 -ra_fild01 -ra_fild02 -ra_fild03 -ra_fild04 -ra_fild05 -ra_fild06 -ra_fild07 -ra_fild08 -ra_fild09 -ra_fild10 -ra_fild11 -ra_fild12 -ra_fild13 -ra_san01 -ra_san02 -ra_san03 -ra_san04 -ra_san05 -ra_temin -ra_temple -ra_temsky -que_rachel -ice_dun01 -ice_dun02 -ice_dun03 -ice_dun04 -que_thor -thor_camp -thor_v01 -thor_v02 -thor_v03 -veins -ve_in -ve_fild01 -ve_fild02 -ve_fild03 -ve_fild04 -ve_fild05 -ve_fild06 -ve_fild07 -poring_c01 -poring_c02 -que_ng diff --git a/vcproj-8/char-server_txt.vcproj b/vcproj-8/char-server_txt.vcproj index b42153d6c..5947caa83 100644 --- a/vcproj-8/char-server_txt.vcproj +++ b/vcproj-8/char-server_txt.vcproj @@ -1,7 +1,7 @@ Date: Fri, 6 Apr 2007 17:22:40 +0000 Subject: I'm still here! Rewrote fame ranking lists- changed MAP_NAME_LENGTH to 12, now there's MAP_NAME_LENGTH_EXT at 16 for uses where there is / may be the .gat extension, code adjusted accordingly - moved map_normalize_name to mapindex_normalize_name so that everything handling map names uses the same extension-removing function - greatly enhanced the map cache generator, complete documentation on the tool and the map cache format can be found in doc/ - the map cache format changed a bit as a consequence, but of course a new valid one is included (contains latest Nameless Island maps) - fixed a duplicate entry in map index git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10167 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 11 + conf-tmpl/maps_athena.conf | 12 +- db/Changelog.txt | 2 + db/grf_files.txt | 15 - db/map_cache.dat | Bin 1576951 -> 1586340 bytes db/map_index.txt | 726 +++++++++++++++++++++++++++++++++++++++++++ db/map_list.txt | 713 ------------------------------------------ doc/map_cache.txt | 71 ++++- src/char/char.c | 10 +- src/char_sql/char.c | 21 +- src/common/mapindex.c | 52 ++-- src/common/mapindex.h | 1 + src/common/mmo.h | 5 +- src/map/atcommand.c | 20 +- src/map/charcommand.c | 4 +- src/map/chrif.c | 2 +- src/map/clif.c | 61 ++-- src/map/guild.c | 5 +- src/map/map.c | 70 ++--- src/map/map.h | 3 +- src/map/npc.c | 14 +- src/map/script.c | 18 +- src/map/skill.c | 14 +- src/tool/grfio.c | 1 - src/tool/mapcache.c | 214 +++++++++---- tools/mapcache/grf_files.txt | 15 + 26 files changed, 1131 insertions(+), 949 deletions(-) delete mode 100644 db/grf_files.txt create mode 100644 db/map_index.txt delete mode 100644 db/map_list.txt create mode 100644 tools/mapcache/grf_files.txt (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 062f25428..c3e6c3969 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -5,6 +5,17 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2007/04/07 + * Final touches to the whole map crap [DracoRPG] + - changed MAP_NAME_LENGTH to 12, now there's MAP_NAME_LENGTH_EXT at 16 for + uses where there is / may be the .gat extension, code adjusted accordingly + - moved map_normalize_name to mapindex_normalize_name so that everything + handling map names uses the same extension-removing function + - greatly enhanced the map cache generator, complete documentation on the + tool and the map cache format can be found in doc/ + - the map cache format changed a bit as a consequence, but of course a new + valid one is included (contains latest Nameless Island maps) + - and I'm sorry for the number of times I've moved around and renamed files, + now the final structure should have been reached * Capped clif_heal's heal field (the argument received is int, but the packet field is short, meaning that if the heal is high enough, the client would receive a negative heal amount). [Skotlex] diff --git a/conf-tmpl/maps_athena.conf b/conf-tmpl/maps_athena.conf index f7b969aa1..520be4347 100644 --- a/conf-tmpl/maps_athena.conf +++ b/conf-tmpl/maps_athena.conf @@ -744,7 +744,6 @@ map: ice_dun04 // --- Veins & Thor Dungeon --- // -- 2006-12-19sdata_k.gpf -- - map: que_thor map: thor_camp map: thor_v01 @@ -760,6 +759,17 @@ map: ve_fild05 map: ve_fild06 map: ve_fild07 +// --- Unknown Island & Abbey Dungeon --- +// -- 2007-04-02sdata_k.gpf +map: nameless_i +map: nameless_n +map: nameless_in +map: abbey01 +map: abbey02 +map: abbey03 +map: poring_w01 +map: poring_w02 + //------------------------- Clone Maps --------------------------- //------------------------- Extra Maps --------------------------- diff --git a/db/Changelog.txt b/db/Changelog.txt index cfed7180f..89c357ecc 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -21,6 +21,8 @@ ======================== 04/07 + * Updated map index and map cache with Nameless Island maps [DracoRPG] + - also removed the duplicate g_room2 entry from map index, read the note * Corrected Aliza card's item_db line. [Skotlex] 04/05 * Fixed some items that should heal percentual hp/sp [Playtester] diff --git a/db/grf_files.txt b/db/grf_files.txt deleted file mode 100644 index ef2421925..000000000 --- a/db/grf_files.txt +++ /dev/null @@ -1,15 +0,0 @@ -//----------------------------------------- -// GRF List -//----------------------------------------- - -grf: C:\Program Files\Gravity\RO\data.grf -grf: C:\Program Files\Gravity\RO\sdata.grf - -// You may add more in this format -// grf: - -//------ Others --------------------------- - -//Path to directory that contains the data dir -//NOTE: Path must include trailing backslash, only one data_dir entry is supported. -//data_dir: C:\Program Files\Gravity\RO\ diff --git a/db/map_cache.dat b/db/map_cache.dat index 34b8942ee..320e83c66 100644 Binary files a/db/map_cache.dat and b/db/map_cache.dat differ diff --git a/db/map_index.txt b/db/map_index.txt new file mode 100644 index 000000000..b23fe7ba8 --- /dev/null +++ b/db/map_index.txt @@ -0,0 +1,726 @@ +//====================================================================================== +// Map Index +//====================================================================================== +//Contains the list of maps with their respective IDs for inter-server use. +//IDs must never change, therefore any new maps need to be added at the end, +//and old ones must not be removed, but may be replaced. +//Format: +//mapnameindex <- specifies index for this map +//mapname <- map will use index of previous map +1 +//Note that map index 0 is special and reserved for "error" status. + +// NOTE TO DEVELOPERS +// Due to a removed duplicate, index 591 is free, if you have to add a single map, +// please add it there instead of the end. Then remove the 592 on next line (rachel) +// and remove all those comments. ~DracoRPG + +alb_ship 1 +alb2trea +alberta +alberta_in +alde_dun01 +alde_dun02 +alde_dun03 +alde_dun04 +aldeba_in +aldebaran +anthell01 +anthell02 +arena_room +c_tower1 +c_tower2 +c_tower3 +c_tower4 +force_1-1 +force_1-2 +force_1-3 +force_2-1 +force_2-2 +force_2-3 +force_3-1 +force_3-2 +force_3-3 +gef_dun00 +gef_dun01 +gef_dun02 +gef_dun03 +gef_fild00 +gef_fild01 +gef_fild02 +gef_fild03 +gef_fild04 +gef_fild05 +gef_fild06 +gef_fild07 +gef_fild08 +gef_fild09 +gef_fild10 +gef_fild11 +gef_fild12 +gef_fild13 +gef_fild14 +gef_tower +geffen +geffen_in +gl_cas01 +gl_cas02 +gl_church +gl_chyard +gl_dun01 +gl_dun02 +gl_in01 +gl_knt01 +gl_knt02 +gl_prison +gl_prison1 +gl_sew01 +gl_sew02 +gl_sew03 +gl_sew04 +gl_step +glast_01 +hunter_1-1 +hunter_2-1 +hunter_3-1 +in_hunter +in_moc_16 +in_orcs01 +in_sphinx1 +in_sphinx2 +in_sphinx3 +in_sphinx4 +in_sphinx5 +iz_dun00 +iz_dun01 +iz_dun02 +iz_dun03 +iz_dun04 +job_sword1 +izlu2dun +izlude +izlude_in +job_thief1 +knight_1-1 +knight_2-1 +knight_3-1 +mjo_dun01 +mjo_dun02 +mjo_dun03 +mjolnir_01 +mjolnir_02 +mjolnir_03 +mjolnir_04 +mjolnir_05 +mjolnir_06 +mjolnir_07 +mjolnir_08 +mjolnir_09 +mjolnir_10 +mjolnir_11 +mjolnir_12 +moc_castle +moc_fild01 +moc_fild02 +moc_fild03 +moc_fild04 +moc_fild05 +moc_fild06 +moc_fild07 +moc_fild08 +moc_fild09 +moc_fild10 +moc_fild11 +moc_fild12 +moc_fild13 +moc_fild14 +moc_fild15 +moc_fild16 +moc_fild17 +moc_fild18 +moc_fild19 +moc_pryd01 +moc_pryd02 +moc_pryd03 +moc_pryd04 +moc_pryd05 +moc_pryd06 +moc_prydb1 +moc_ruins +monk_in +morocc +morocc_in +new_1-1 +new_1-2 +new_1-3 +new_1-4 +new_2-1 +new_2-2 +new_2-3 +new_2-4 +new_3-1 +new_3-2 +new_3-3 +new_3-4 +new_4-1 +new_4-2 +new_4-3 +new_4-4 +new_5-1 +new_5-2 +new_5-3 +new_5-4 +orcsdun01 +orcsdun02 +ordeal_1-1 +ordeal_1-2 +ordeal_1-3 +ordeal_1-4 +ordeal_2-1 +ordeal_2-2 +ordeal_2-3 +ordeal_2-4 +ordeal_3-1 +ordeal_3-2 +ordeal_3-3 +ordeal_3-4 +pay_arche +pay_dun00 +pay_dun01 +pay_dun02 +pay_dun03 +pay_dun04 +pay_fild01 +pay_fild02 +pay_fild03 +pay_fild04 +pay_fild05 +pay_fild06 +pay_fild07 +pay_fild08 +pay_fild09 +pay_fild10 +pay_fild11 +payon +payon_in01 +payon_in02 +priest_1-1 +priest_2-1 +priest_3-1 +prontera +prt_are_in +prt_are01 +pvp_room +prt_castle +prt_church +prt_fild00 +prt_fild01 +prt_fild02 +prt_fild03 +prt_fild04 +prt_fild05 +prt_fild06 +prt_fild07 +prt_fild08 +prt_fild09 +prt_fild10 +prt_fild11 +prt_in +prt_maze01 +prt_maze02 +prt_maze03 +prt_monk +prt_sewb1 +prt_sewb2 +prt_sewb3 +prt_sewb4 +pvp_2vs2 +pvp_c_room +pvp_n_1-1 +pvp_n_1-2 +pvp_n_1-3 +pvp_n_1-4 +pvp_n_1-5 +pvp_n_2-1 +pvp_n_2-2 +pvp_n_2-3 +pvp_n_2-4 +pvp_n_2-5 +pvp_n_3-1 +pvp_n_3-2 +pvp_n_3-3 +pvp_n_3-4 +pvp_n_3-5 +pvp_n_4-1 +pvp_n_4-2 +pvp_n_4-3 +pvp_n_4-4 +pvp_n_4-5 +pvp_n_5-1 +pvp_n_5-2 +pvp_n_5-3 +pvp_n_5-4 +pvp_n_5-5 +pvp_n_6-1 +pvp_n_6-2 +pvp_n_6-3 +pvp_n_6-4 +pvp_n_6-5 +pvp_n_7-1 +pvp_n_7-2 +pvp_n_7-3 +pvp_n_7-4 +pvp_n_7-5 +pvp_n_8-1 +pvp_n_8-2 +pvp_n_8-3 +pvp_n_8-4 +pvp_n_8-5 +pvp_n_room +pvp_y_1-1 +pvp_y_1-2 +pvp_y_1-3 +pvp_y_1-4 +pvp_y_1-5 +pvp_y_2-1 +pvp_y_2-2 +pvp_y_2-3 +pvp_y_2-4 +pvp_y_2-5 +pvp_y_3-1 +pvp_y_3-2 +pvp_y_3-3 +pvp_y_3-4 +pvp_y_3-5 +pvp_y_4-1 +pvp_y_4-2 +pvp_y_4-3 +pvp_y_4-4 +pvp_y_4-5 +pvp_y_5-1 +pvp_y_5-2 +pvp_y_5-3 +pvp_y_5-4 +pvp_y_5-5 +pvp_y_6-1 +pvp_y_6-2 +pvp_y_6-3 +pvp_y_6-4 +pvp_y_6-5 +pvp_y_7-1 +pvp_y_7-2 +pvp_y_7-3 +pvp_y_7-4 +pvp_y_7-5 +pvp_y_8-1 +pvp_y_8-2 +pvp_y_8-3 +pvp_y_8-4 +pvp_y_8-5 +pvp_y_room +sword_1-1 +sword_2-1 +sword_3-1 +treasure01 +treasure02 +wizard_1-1 +wizard_2-1 +wizard_3-1 +xmas +xmas_dun01 +xmas_dun02 +xmas_fild01 +xmas_in +beach_dun +beach_dun2 +beach_dun3 +cmd_fild01 +cmd_fild02 +cmd_fild03 +cmd_fild04 +cmd_fild05 +cmd_fild06 +cmd_fild07 +cmd_fild08 +cmd_fild09 +cmd_in01 +cmd_in02 +comodo +quiz_00 +quiz_01 +g_room1-1 +g_room1-2 +g_room1-3 +g_room2 +tur_dun01 +tur_dun02 +tur_dun03 +tur_dun04 +tur_dun05 +tur_dun06 +alde_gld +aldeg_cas01 +aldeg_cas02 +aldeg_cas03 +aldeg_cas04 +aldeg_cas05 +gefg_cas01 +gefg_cas02 +gefg_cas03 +gefg_cas04 +gefg_cas05 +gld_dun01 +gld_dun02 +gld_dun03 +gld_dun04 +guild_room +guild_vs1 +guild_vs2 +guild_vs3 +guild_vs4 +guild_vs5 +guild_vs1-1 +guild_vs1-2 +guild_vs1-3 +guild_vs1-4 +guild_vs2-1 +guild_vs2-2 +job_hunte +job_knt +job_prist +job_wiz +pay_gld +payg_cas01 +payg_cas02 +payg_cas03 +payg_cas04 +payg_cas05 +prt_gld +prtg_cas01 +prtg_cas02 +prtg_cas03 +prtg_cas04 +prtg_cas05 +alde_alche +in_rogue +job_cru +job_duncer +job_monk +job_sage +mag_dun01 +mag_dun02 +monk_test +quiz_test +yuno +yuno_fild01 +yuno_fild02 +yuno_fild03 +yuno_fild04 +yuno_in01 +yuno_in02 +yuno_in03 +yuno_in04 +yuno_in05 +ama_dun01 +ama_dun02 +ama_dun03 +ama_fild01 +ama_in01 +ama_in02 +ama_test +amatsu +gon_dun01 +gon_dun02 +gon_dun03 +gon_fild01 +gon_in +gon_test +gonryun +sec_in01 +sec_in02 +sec_pri +umbala +um_dun01 +um_dun02 +um_fild01 +um_fild02 +um_fild03 +um_fild04 +um_in +niflheim +nif_fild01 +nif_fild02 +nif_in +yggdrasil01 +valkyrie +himinn +lou_in01 +lou_in02 +lou_dun03 +lou_dun02 +lou_dun01 +lou_fild01 +louyang +siege_test +n_castle +nguild_gef +nguild_prt +nguild_pay +nguild_alde +jawaii +jawaii_in +gefenia01 +gefenia02 +gefenia03 +gefenia04 +new_zone01 +new_zone02 +new_zone03 +new_zone04 +payon_in03 +ayothaya +ayo_in01 +ayo_in02 +ayo_fild01 +ayo_fild02 +ayo_dun01 +ayo_dun02 +que_god01 +que_god02 +yuno_fild05 +yuno_fild07 +yuno_fild08 +yuno_fild09 +yuno_fild11 +yuno_fild12 +alde_tt02 +turbo_n_1 +turbo_n_4 +turbo_n_8 +turbo_n_16 +turbo_e_4 +turbo_e_8 +turbo_e_16 +turbo_room +airplane +airport +einbech +einbroch +ein_dun01 +ein_dun02 +ein_fild06 +ein_fild07 +ein_fild08 +ein_fild09 +ein_fild10 +ein_in01 +que_sign01 +que_sign02 +ein_fild03 +ein_fild04 +lhz_fild02 +lhz_fild03 +yuno_pre +lhz_fild01 +lighthalzen +lhz_in01 +lhz_in02 +lhz_in03 +lhz_que01 +lhz_dun01 +lhz_dun02 +lhz_dun03 +lhz_cube +juperos_01 +juperos_02 +jupe_area1 +jupe_area2 +jupe_core +jupe_ele +jupe_ele_r +jupe_gate +y_airport +lhz_airport +airplane_01 +jupe_cave +quiz_02 +hu_fild07 +hu_fild05 +hu_fild04 +hu_fild01 +yuno_fild06 +job_soul +job_star +que_job01 +que_job02 +que_job03 +abyss_01 +abyss_02 +abyss_03 +thana_step +thana_boss +tha_scene01 +tha_t01 +tha_t02 +tha_t03 +tha_t04 +tha_t07 +tha_t05 +tha_t06 +tha_t08 +tha_t09 +tha_t10 +tha_t11 +tha_t12 +auction_01 +auction_02 +hugel +hu_in01 +que_bingo +que_hugel +p_track01 +p_track02 +odin_tem01 +odin_tem02 +odin_tem03 +hu_fild02 +hu_fild03 +hu_fild06 +ein_fild01 +ein_fild02 +ein_fild05 +yuno_fild10 +kh_kiehl02 +kh_kiehl01 +kh_dun02 +kh_dun01 +kh_mansion +kh_rossi +kh_school +kh_vila +force_map1 +force_map2 +force_map3 +job_hunter +job_knight +job_priest +job_wizard +// INDEX 591 IS FREE, PLEASE USE IT +rachel 592 +ra_in01 +ra_fild01 +ra_fild02 +ra_fild03 +ra_fild04 +ra_fild05 +ra_fild06 +ra_fild07 +ra_fild08 +ra_fild09 +ra_fild10 +ra_fild11 +ra_fild12 +ra_fild13 +ra_san01 +ra_san02 +ra_san03 +ra_san04 +ra_san05 +ra_temin +ra_temple +ra_temsky +que_rachel +ice_dun01 +ice_dun02 +ice_dun03 +ice_dun04 +que_thor +thor_camp +thor_v01 +thor_v02 +thor_v03 +veins +ve_in +ve_fild01 +ve_fild02 +ve_fild03 +ve_fild04 +ve_fild05 +ve_fild06 +ve_fild07 +poring_c01 +poring_c02 +que_ng +nameless_i +nameless_n +nameless_in +abbey01 +abbey02 +abbey03 +poring_w01 +poring_w02 + + +// Only add maps under this line if they are not standard maps! + + +//====================================================================================== +// - Other/Extra maps - +//====================================================================================== +//rwc01 1000 +//rwc02 +//rwc03 +//prontera_x +//alberta_x +//aldebaran_x +//geffen_x +//izlude_x +//prt_church_x +//prontera_s +//pay_arche_s +//xmas_old +//ordeal_a00 +//ordeal_a02 +//fay_vilg00 +//fay_vilg01 +//gef_vilg00 +//gef_vilg01 +//moc_dugn01 +//moc_dugn02 +//moc_fild01 +//moc_fild02 +//moc_fild03 +//moc_fild04 +//moc_intr00 +//moc_intr01 +//moc_intr02 +//moc_intr04 +//moc_vilg00 +//moc_vilg01 +//moc_vilg02 +//probemap +//probemap02 +//prt_cstl01 +//prt_dugn00 +//prt_dugn01 +//prt_fild00 +//prt_fild01 +//prt_fild03 +//prt_fild04 +//prt_fild05 +//prt_intr01 +//prt_intr01_a +//prt_intr02 +//prt_vilg00 +//prt_vilg01 +//prt_vilg02 +//tank_test +//tank_test2 +//test + +//====================================================================================== +//Place your custom maps with a starting ID here. +//====================================================================================== +//Example: +// +//mymap 1250 +//mymap-2 diff --git a/db/map_list.txt b/db/map_list.txt deleted file mode 100644 index 94585d873..000000000 --- a/db/map_list.txt +++ /dev/null @@ -1,713 +0,0 @@ -//====================================================================================== -// Map Index -//====================================================================================== -//Contains the list of maps with their respective IDs for inter-server use. -//IDs must never change, therefore any new maps need to be added at the end, -//and old ones must not be removed, but may be replaced. -//Format: -//mapnameindex <- specifies index for this map -//mapname <- map will use index of previous map +1 -//Note that map index 0 is special and reserved for "error" status. - -alb_ship 1 -alb2trea -alberta -alberta_in -alde_dun01 -alde_dun02 -alde_dun03 -alde_dun04 -aldeba_in -aldebaran -anthell01 -anthell02 -arena_room -c_tower1 -c_tower2 -c_tower3 -c_tower4 -force_1-1 -force_1-2 -force_1-3 -force_2-1 -force_2-2 -force_2-3 -force_3-1 -force_3-2 -force_3-3 -gef_dun00 -gef_dun01 -gef_dun02 -gef_dun03 -gef_fild00 -gef_fild01 -gef_fild02 -gef_fild03 -gef_fild04 -gef_fild05 -gef_fild06 -gef_fild07 -gef_fild08 -gef_fild09 -gef_fild10 -gef_fild11 -gef_fild12 -gef_fild13 -gef_fild14 -gef_tower -geffen -geffen_in -gl_cas01 -gl_cas02 -gl_church -gl_chyard -gl_dun01 -gl_dun02 -gl_in01 -gl_knt01 -gl_knt02 -gl_prison -gl_prison1 -gl_sew01 -gl_sew02 -gl_sew03 -gl_sew04 -gl_step -glast_01 -hunter_1-1 -hunter_2-1 -hunter_3-1 -in_hunter -in_moc_16 -in_orcs01 -in_sphinx1 -in_sphinx2 -in_sphinx3 -in_sphinx4 -in_sphinx5 -iz_dun00 -iz_dun01 -iz_dun02 -iz_dun03 -iz_dun04 -job_sword1 -izlu2dun -izlude -izlude_in -job_thief1 -knight_1-1 -knight_2-1 -knight_3-1 -mjo_dun01 -mjo_dun02 -mjo_dun03 -mjolnir_01 -mjolnir_02 -mjolnir_03 -mjolnir_04 -mjolnir_05 -mjolnir_06 -mjolnir_07 -mjolnir_08 -mjolnir_09 -mjolnir_10 -mjolnir_11 -mjolnir_12 -moc_castle -moc_fild01 -moc_fild02 -moc_fild03 -moc_fild04 -moc_fild05 -moc_fild06 -moc_fild07 -moc_fild08 -moc_fild09 -moc_fild10 -moc_fild11 -moc_fild12 -moc_fild13 -moc_fild14 -moc_fild15 -moc_fild16 -moc_fild17 -moc_fild18 -moc_fild19 -moc_pryd01 -moc_pryd02 -moc_pryd03 -moc_pryd04 -moc_pryd05 -moc_pryd06 -moc_prydb1 -moc_ruins -monk_in -morocc -morocc_in -new_1-1 -new_1-2 -new_1-3 -new_1-4 -new_2-1 -new_2-2 -new_2-3 -new_2-4 -new_3-1 -new_3-2 -new_3-3 -new_3-4 -new_4-1 -new_4-2 -new_4-3 -new_4-4 -new_5-1 -new_5-2 -new_5-3 -new_5-4 -orcsdun01 -orcsdun02 -ordeal_1-1 -ordeal_1-2 -ordeal_1-3 -ordeal_1-4 -ordeal_2-1 -ordeal_2-2 -ordeal_2-3 -ordeal_2-4 -ordeal_3-1 -ordeal_3-2 -ordeal_3-3 -ordeal_3-4 -pay_arche -pay_dun00 -pay_dun01 -pay_dun02 -pay_dun03 -pay_dun04 -pay_fild01 -pay_fild02 -pay_fild03 -pay_fild04 -pay_fild05 -pay_fild06 -pay_fild07 -pay_fild08 -pay_fild09 -pay_fild10 -pay_fild11 -payon -payon_in01 -payon_in02 -priest_1-1 -priest_2-1 -priest_3-1 -prontera -prt_are_in -prt_are01 -pvp_room -prt_castle -prt_church -prt_fild00 -prt_fild01 -prt_fild02 -prt_fild03 -prt_fild04 -prt_fild05 -prt_fild06 -prt_fild07 -prt_fild08 -prt_fild09 -prt_fild10 -prt_fild11 -prt_in -prt_maze01 -prt_maze02 -prt_maze03 -prt_monk -prt_sewb1 -prt_sewb2 -prt_sewb3 -prt_sewb4 -pvp_2vs2 -pvp_c_room -pvp_n_1-1 -pvp_n_1-2 -pvp_n_1-3 -pvp_n_1-4 -pvp_n_1-5 -pvp_n_2-1 -pvp_n_2-2 -pvp_n_2-3 -pvp_n_2-4 -pvp_n_2-5 -pvp_n_3-1 -pvp_n_3-2 -pvp_n_3-3 -pvp_n_3-4 -pvp_n_3-5 -pvp_n_4-1 -pvp_n_4-2 -pvp_n_4-3 -pvp_n_4-4 -pvp_n_4-5 -pvp_n_5-1 -pvp_n_5-2 -pvp_n_5-3 -pvp_n_5-4 -pvp_n_5-5 -pvp_n_6-1 -pvp_n_6-2 -pvp_n_6-3 -pvp_n_6-4 -pvp_n_6-5 -pvp_n_7-1 -pvp_n_7-2 -pvp_n_7-3 -pvp_n_7-4 -pvp_n_7-5 -pvp_n_8-1 -pvp_n_8-2 -pvp_n_8-3 -pvp_n_8-4 -pvp_n_8-5 -pvp_n_room -pvp_y_1-1 -pvp_y_1-2 -pvp_y_1-3 -pvp_y_1-4 -pvp_y_1-5 -pvp_y_2-1 -pvp_y_2-2 -pvp_y_2-3 -pvp_y_2-4 -pvp_y_2-5 -pvp_y_3-1 -pvp_y_3-2 -pvp_y_3-3 -pvp_y_3-4 -pvp_y_3-5 -pvp_y_4-1 -pvp_y_4-2 -pvp_y_4-3 -pvp_y_4-4 -pvp_y_4-5 -pvp_y_5-1 -pvp_y_5-2 -pvp_y_5-3 -pvp_y_5-4 -pvp_y_5-5 -pvp_y_6-1 -pvp_y_6-2 -pvp_y_6-3 -pvp_y_6-4 -pvp_y_6-5 -pvp_y_7-1 -pvp_y_7-2 -pvp_y_7-3 -pvp_y_7-4 -pvp_y_7-5 -pvp_y_8-1 -pvp_y_8-2 -pvp_y_8-3 -pvp_y_8-4 -pvp_y_8-5 -pvp_y_room -sword_1-1 -sword_2-1 -sword_3-1 -treasure01 -treasure02 -wizard_1-1 -wizard_2-1 -wizard_3-1 -xmas -xmas_dun01 -xmas_dun02 -xmas_fild01 -xmas_in -beach_dun -beach_dun2 -beach_dun3 -cmd_fild01 -cmd_fild02 -cmd_fild03 -cmd_fild04 -cmd_fild05 -cmd_fild06 -cmd_fild07 -cmd_fild08 -cmd_fild09 -cmd_in01 -cmd_in02 -comodo -quiz_00 -quiz_01 -g_room1-1 -g_room1-2 -g_room1-3 -g_room2 -tur_dun01 -tur_dun02 -tur_dun03 -tur_dun04 -tur_dun05 -tur_dun06 -alde_gld -aldeg_cas01 -aldeg_cas02 -aldeg_cas03 -aldeg_cas04 -aldeg_cas05 -gefg_cas01 -gefg_cas02 -gefg_cas03 -gefg_cas04 -gefg_cas05 -gld_dun01 -gld_dun02 -gld_dun03 -gld_dun04 -guild_room -guild_vs1 -guild_vs2 -guild_vs3 -guild_vs4 -guild_vs5 -guild_vs1-1 -guild_vs1-2 -guild_vs1-3 -guild_vs1-4 -guild_vs2-1 -guild_vs2-2 -job_hunte -job_knt -job_prist -job_wiz -pay_gld -payg_cas01 -payg_cas02 -payg_cas03 -payg_cas04 -payg_cas05 -prt_gld -prtg_cas01 -prtg_cas02 -prtg_cas03 -prtg_cas04 -prtg_cas05 -alde_alche -in_rogue -job_cru -job_duncer -job_monk -job_sage -mag_dun01 -mag_dun02 -monk_test -quiz_test -yuno -yuno_fild01 -yuno_fild02 -yuno_fild03 -yuno_fild04 -yuno_in01 -yuno_in02 -yuno_in03 -yuno_in04 -yuno_in05 -ama_dun01 -ama_dun02 -ama_dun03 -ama_fild01 -ama_in01 -ama_in02 -ama_test -amatsu -gon_dun01 -gon_dun02 -gon_dun03 -gon_fild01 -gon_in -gon_test -gonryun -sec_in01 -sec_in02 -sec_pri -umbala -um_dun01 -um_dun02 -um_fild01 -um_fild02 -um_fild03 -um_fild04 -um_in -niflheim -nif_fild01 -nif_fild02 -nif_in -yggdrasil01 -valkyrie -himinn -lou_in01 -lou_in02 -lou_dun03 -lou_dun02 -lou_dun01 -lou_fild01 -louyang -siege_test -n_castle -nguild_gef -nguild_prt -nguild_pay -nguild_alde -jawaii -jawaii_in -gefenia01 -gefenia02 -gefenia03 -gefenia04 -new_zone01 -new_zone02 -new_zone03 -new_zone04 -payon_in03 -ayothaya -ayo_in01 -ayo_in02 -ayo_fild01 -ayo_fild02 -ayo_dun01 -ayo_dun02 -que_god01 -que_god02 -yuno_fild05 -yuno_fild07 -yuno_fild08 -yuno_fild09 -yuno_fild11 -yuno_fild12 -alde_tt02 -turbo_n_1 -turbo_n_4 -turbo_n_8 -turbo_n_16 -turbo_e_4 -turbo_e_8 -turbo_e_16 -turbo_room -airplane -airport -einbech -einbroch -ein_dun01 -ein_dun02 -ein_fild06 -ein_fild07 -ein_fild08 -ein_fild09 -ein_fild10 -ein_in01 -que_sign01 -que_sign02 -ein_fild03 -ein_fild04 -lhz_fild02 -lhz_fild03 -yuno_pre -lhz_fild01 -lighthalzen -lhz_in01 -lhz_in02 -lhz_in03 -lhz_que01 -lhz_dun01 -lhz_dun02 -lhz_dun03 -lhz_cube -juperos_01 -juperos_02 -jupe_area1 -jupe_area2 -jupe_core -jupe_ele -jupe_ele_r -jupe_gate -y_airport -lhz_airport -airplane_01 -jupe_cave -quiz_02 -hu_fild07 -hu_fild05 -hu_fild04 -hu_fild01 -yuno_fild06 -job_soul -job_star -que_job01 -que_job02 -que_job03 -abyss_01 -abyss_02 -abyss_03 -thana_step -thana_boss -tha_scene01 -tha_t01 -tha_t02 -tha_t03 -tha_t04 -tha_t07 -tha_t05 -tha_t06 -tha_t08 -tha_t09 -tha_t10 -tha_t11 -tha_t12 -auction_01 -auction_02 -hugel -hu_in01 -que_bingo -que_hugel -p_track01 -p_track02 -odin_tem01 -odin_tem02 -odin_tem03 -hu_fild02 -hu_fild03 -hu_fild06 -ein_fild01 -ein_fild02 -ein_fild05 -yuno_fild10 -kh_kiehl02 -kh_kiehl01 -kh_dun02 -kh_dun01 -kh_mansion -kh_rossi -kh_school -kh_vila -force_map1 -force_map2 -force_map3 -job_hunter -job_knight -job_priest -job_wizard -g_room2 -rachel -ra_in01 -ra_fild01 -ra_fild02 -ra_fild03 -ra_fild04 -ra_fild05 -ra_fild06 -ra_fild07 -ra_fild08 -ra_fild09 -ra_fild10 -ra_fild11 -ra_fild12 -ra_fild13 -ra_san01 -ra_san02 -ra_san03 -ra_san04 -ra_san05 -ra_temin -ra_temple -ra_temsky -que_rachel -ice_dun01 -ice_dun02 -ice_dun03 -ice_dun04 -que_thor -thor_camp -thor_v01 -thor_v02 -thor_v03 -veins -ve_in -ve_fild01 -ve_fild02 -ve_fild03 -ve_fild04 -ve_fild05 -ve_fild06 -ve_fild07 -poring_c01 -poring_c02 -que_ng - - -// Only add maps under this line if they are not standard maps! - - -//====================================================================================== -// - Other/Extra maps - -//====================================================================================== -//rwc01 1000 -//rwc02 -//rwc03 -//prontera_x -//alberta_x -//aldebaran_x -//geffen_x -//izlude_x -//prt_church_x -//prontera_s -//pay_arche_s -//xmas_old -//ordeal_a00 -//ordeal_a02 -//fay_vilg00 -//fay_vilg01 -//gef_vilg00 -//gef_vilg01 -//moc_dugn01 -//moc_dugn02 -//moc_fild01 -//moc_fild02 -//moc_fild03 -//moc_fild04 -//moc_intr00 -//moc_intr01 -//moc_intr02 -//moc_intr04 -//moc_vilg00 -//moc_vilg01 -//moc_vilg02 -//probemap -//probemap02 -//prt_cstl01 -//prt_dugn00 -//prt_dugn01 -//prt_fild00 -//prt_fild01 -//prt_fild03 -//prt_fild04 -//prt_fild05 -//prt_intr01 -//prt_intr01_a -//prt_intr02 -//prt_vilg00 -//prt_vilg01 -//prt_vilg02 -//tank_test -//tank_test2 -//test - -//====================================================================================== -//Place your custom maps with a starting ID here. -//====================================================================================== -//Example: -// -//mymap 1250 -//mymap-2 diff --git a/doc/map_cache.txt b/doc/map_cache.txt index 4ab77e99b..82849cdf4 100644 --- a/doc/map_cache.txt +++ b/doc/map_cache.txt @@ -1,18 +1,67 @@ -"How to use the mapcache builder" -DracoRPG +//===== Athena Doc ======================================== +//= Map Cache Builder and Format Documentation +//===== By ================================================ +//= DracoRPG +//===== Version =========================================== +//= 1.0 +//========================================================= +//= 0.1 - Short howto for the initial builder version +//= 1.0 - Complete manual covering the improved version +//===== Description ======================================= +//= A complete manual for eAthena's map cache generator +//= as well as a reference on the map cache format used +//========================================================= +Preface: +------------------------------------------------------------------------------- -This is only useful if you have custom maps, as eAthena is provided with an updated mapcache containing every map -from kRO Sakray's data. +Since SVN revision ~10000, the map-server does not know how to read RO client files anymore. It reads maps from a +"map cache" file that contains all and only the useful data about the maps. A map cache containing every official +kRO Sakray map currently supported by eAthena is provided as a default. +If you have custom maps or want to minimize the size of your map cache because your server does not load all of them +(multi-map-server or light test server), you can use the map cache builder to generate a new one fitting your needs. -1. First add the path to the directory / GRF containing your maps to db/grf_files.txt -/!\ Please note you must also have the official maps as the whole mapcache will be rebuilt from scratch +Map cache builder manual: +------------------------------------------------------------------------------- -2. Then add those custom maps at the end of db/map_list.txt, carefully chosing their index +The source code for the map cache builder is located in src/tool/. It can be built using "make tools" if you use the Makefile +or using the "mapcache" project under Visual Studio. Named "mapcache", the executable will be in your eAthena main folder. +The map cache builder needs 3 file paths : one is a list of GRFs and/or data directory containing the maps, the second +is the list of maps to add to the map cache, and the last one is the path of the map cache to generate. Default values for +those paths are "tools/mapcache/grf_files.txt", "db/map_index.txt" and "db/map_cache.dat". +The list of GRF and/or data directory must follow the format and indication of the default file: as many "grf:" entries as +you wish and optionally one only "data_dir:" entry with trailing backslash included. // comments are supported as usual. +In fact, any file with one map name per line can be used as a map list, that's why the map index list is used as a default: +we are sure it contains every map supported by the server. Anything after the map name is ignored, // comments are supported +and if the first word on the line is "map:" then the second word is used as the map name instead: that allows using +maps_athena.conf as your map list, which is handy if you want to generate a minimal map cache for each of your multiple +map-servers. +The map cache file path can point to an already existing file, as the builder adds a map only if it's not already cached. +This way, you can add custom maps to the base map cache without even needing kRO Sakray maps. If you wish to rebuild the +entire map cache, though, you can either provide a path to a non-existing file, or force the rebuild mode. -3. Now just run the mapcache builder and it'll build a new one at db/map_cache.dat +Here are the command-line arguments you can provide to the map cache builder to customize its behavior: + -grf path/to/grf/list + Allows to specify the file containing the list of GRFs and/or data directory + -list path/to/map/list + Allows to specify the file containing the list of maps to add to the map cache + -cache path/to/map/cache + Allows to specify the path to the generated map cache + - rebuild + Allows to force the rebuild mode (map cache will be overwritten even if it already exists) -NOTE: -You can override those default paths by providing your own ones as command-line arguments to the mapcache builder: -$> mapcache [grf_files_path [map_list_path [map_cache_path]]] \ No newline at end of file +Map cache format reference: +------------------------------------------------------------------------------- + +The file is written as little-endian, even on big-endian systems, for cross-compatibility reasons. Appropriate conversions +are done when generating it, so don't worry about it. +The first 6 bytes are a main header: + file size + number of maps +Then maps are stored one right after another: +<12-characters-long string> map name + X size + Y size + compressed cell data length + compressed cell data diff --git a/src/char/char.c b/src/char/char.c index 371303c87..46379bf30 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -1605,10 +1605,6 @@ void create_online_files(void) { if (online_display_option & 24) { // 8 or 16 // prepare map name memcpy(temp, mapindex_id2name(char_dat[j].status.last_point.map), MAP_NAME_LENGTH); - temp[MAP_NAME_LENGTH] = '\0'; - if (strstr(temp, ".gat") != NULL) { - temp[strstr(temp, ".gat") - temp] = 0; // suppress the '.gat' - } // write map name if (online_display_option & 16) { // map-name AND coordinates fprintf(fp2, " %s (%d, %d)\n", temp, char_dat[j].status.last_point.x, char_dat[j].status.last_point.y); @@ -3532,13 +3528,13 @@ int parse_char(int fd) { //Send player to map uint32 subnet_map_ip; - char map_name[MAP_NAME_LENGTH]; - snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(cd->last_point.map)); + char map_name[MAP_NAME_LENGTH_EXT]; + snprintf(map_name, MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(cd->last_point.map)); WFIFOHEAD(fd,28); WFIFOW(fd,0) = 0x71; WFIFOL(fd,2) = cd->char_id; - memcpy(WFIFOP(fd,6), map_name, MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,6), map_name, MAP_NAME_LENGTH_EXT); // Advanced subnet check [LuzZza] subnet_map_ip = lan_subnetcheck(ipl); diff --git a/src/char_sql/char.c b/src/char_sql/char.c index b0de20e75..a0c780cb9 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -3340,13 +3340,12 @@ int parse_char(int fd) { //Send player to map. uint32 subnet_map_ip; - char map_name[MAP_NAME_LENGTH]; - snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(char_dat.last_point.map)); - + char map_name[MAP_NAME_LENGTH_EXT]; + snprintf(map_name, MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(char_dat.last_point.map)); WFIFOHEAD(fd,28); WFIFOW(fd,0) = 0x71; WFIFOL(fd,2) = char_dat.char_id; - memcpy(WFIFOP(fd,6), map_name, MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,6), map_name, MAP_NAME_LENGTH_EXT); // Advanced subnet check [LuzZza] subnet_map_ip = lan_subnetcheck(ipl); @@ -4024,17 +4023,15 @@ int char_config_read(const char *cfgName) { } else if (strcmpi(w1, "save_log") == 0) { save_log = config_switch(w2); } else if (strcmpi(w1, "start_point") == 0) { - char map[MAP_NAME_LENGTH]; + char map[MAP_NAME_LENGTH_EXT]; int x, y; if (sscanf(w2, "%16[^,],%d,%d", map, &x, &y) < 3) continue; - if (strstr(map, ".gat") != NULL) { // Verify at least if '.gat' is in the map name - start_point.map = mapindex_name2id(map); - if (!start_point.map) - ShowError("Specified start_point %s not found in map-index cache.\n", map); - start_point.x = x; - start_point.y = y; - } + start_point.map = mapindex_name2id(map); + if (!start_point.map) + ShowError("Specified start_point %s not found in map-index cache.\n", map); + start_point.x = x; + start_point.y = y; } else if (strcmpi(w1, "start_zeny") == 0) { start_zeny = atoi(w2); if (start_zeny < 0) diff --git a/src/common/mapindex.c b/src/common/mapindex.c index bfd67140a..cc847e538 100644 --- a/src/common/mapindex.c +++ b/src/common/mapindex.c @@ -15,42 +15,53 @@ //Leave an extra char of space to hold the terminator, in case for the strncpy(mapindex_id2name()) calls. struct indexes { char name[MAP_NAME_LENGTH+1]; //Stores map name - int length; //Stores string length WITHOUT the extension for quick lookup. + char exists; //Set to 1 if index exists } indexes[MAX_MAPINDEX]; static unsigned short max_index = 0; -char mapindex_cfgfile[80] = "db/map_list.txt"; +char mapindex_cfgfile[80] = "db/map_index.txt"; + +// Removes the extension from a map name +char *mapindex_normalize_name(char *mapname) +{ + char *ptr, *ptr2; + ptr = strchr(mapname, '.'); + if (ptr) { //Check and remove extension. + while (ptr[1] && (ptr2 = strchr(ptr+1, '.'))) + ptr = ptr2; //Skip to the last dot. + if(stricmp(ptr,".gat") == 0 || + stricmp(ptr,".afm") == 0 || + stricmp(ptr,".af2") == 0) + *ptr = '\0'; //Remove extension. + } + return mapname; +} /// Adds a map to the specified index /// Returns 1 if successful, 0 oherwise int mapindex_addmap(int index, const char *name) { char map_name[1024]; - char *ext; - int length; if (index < 0 || index >= MAX_MAPINDEX) { ShowError("(mapindex_add) Map index (%d) for \"%s\" out of range (max is %d)\n", index, name, MAX_MAPINDEX); return 0; } + snprintf(map_name, 1024, "%s", name); - map_name[1023] = 0; - length = strlen(map_name); - if (length > MAP_NAME_LENGTH) { + mapindex_normalize_name(map_name); + + if (strlen(map_name) > MAP_NAME_LENGTH-1) { ShowError("(mapindex_add) Map name %s is too long. Maps are limited to %d characters.\n", map_name, MAP_NAME_LENGTH); return 0; } - if ((ext = strstr(map_name, ".")) != NULL) { // Remove extension - length = ext-map_name; - *ext = '\0'; - } - if (indexes[index].length) + if (indexes[index].exists) ShowWarning("(mapindex_add) Overriding index %d: map \"%s\" -> \"%s\"\n", index, indexes[index].name, map_name); strncpy(indexes[index].name, map_name, MAP_NAME_LENGTH); - indexes[index].length = length; + indexes[index].exists = 1; if (max_index <= index) max_index = index+1; return 1; @@ -59,17 +70,18 @@ int mapindex_addmap(int index, const char *name) unsigned short mapindex_name2id(const char* name) { //TODO: Perhaps use a db to speed this up? [Skotlex] int i; - int length = strlen(name); - char *ext = strstr(name, "."); - if (ext) - length = ext-name; //Base map-name length without the extension. + char map_name[1024]; + + snprintf(map_name, 1024, "%s", name); + mapindex_normalize_name(map_name); + for (i = 1; i < max_index; i++) { - if (strncmp(indexes[i].name,name,length)==0) + if (strcmp(indexes[i].name,map_name)==0) return i; } #ifdef MAPINDEX_AUTOADD - if( mapindex_addmap(i,name) ) + if( mapindex_addmap(i,map_name) ) { ShowDebug("mapindex_name2id: Auto-added map \"%s\" to position %d\n", indexes[i], i); return i; @@ -83,7 +95,7 @@ unsigned short mapindex_name2id(const char* name) { } const char* mapindex_id2name(unsigned short id) { - if (id > MAX_MAPINDEX || !indexes[id].length) { + if (id > MAX_MAPINDEX || !indexes[id].exists) { ShowDebug("mapindex_id2name: Requested name for non-existant map index [%d] in cache.\n", id); return indexes[0].name; //Theorically this should never happen, hence we return this string to prevent null pointer crashes. } diff --git a/src/common/mapindex.h b/src/common/mapindex.h index dfcb150e2..0ec192258 100644 --- a/src/common/mapindex.h +++ b/src/common/mapindex.h @@ -37,6 +37,7 @@ extern char mapindex_cfgfile[80]; #define MAP_VEINS "veins" #define MAP_JAIL "sec_pri" #define MAP_NOVICE "new_zone01" +char *mapindex_normalize_name(char *mapname); int mapindex_addmap(int index, const char *name); unsigned short mapindex_name2id(const char*); const char* mapindex_id2name(unsigned short); diff --git a/src/common/mmo.h b/src/common/mmo.h index f07876115..8d5071cc2 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -77,8 +77,9 @@ #define NAME_LENGTH 24 //For item names, which tend to have much longer names. #define ITEM_NAME_LENGTH 50 -//For Map Names, which the client considers to be 16 in length -#define MAP_NAME_LENGTH 16 +//For Map Names, which the client considers to be 16 in length including the .gat extension +#define MAP_NAME_LENGTH 12 +#define MAP_NAME_LENGTH_EXT 16 #define MAX_FRIENDS 40 #define MAX_MEMOPOINTS 10 diff --git a/src/map/atcommand.c b/src/map/atcommand.c index f77d04044..2ce3009eb 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -1310,7 +1310,7 @@ int atcommand_send(const int fd, struct map_session_data* sd, const char* comman */ int atcommand_rura( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; unsigned short mapindex; int x = 0, y = 0; int m = -1; @@ -1698,7 +1698,7 @@ int atcommand_whomap3(const int fd, struct map_session_data* sd, const char* com int i, count, users; int pl_GM_level, GM_level; int map_id; - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(map_name, '\0', sizeof(map_name)); @@ -1752,7 +1752,7 @@ int atcommand_whomap2(const int fd, struct map_session_data* sd, const char* com int i, count, users; int pl_GM_level, GM_level; int map_id = 0; - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; nullpo_retr(-1, sd); @@ -1810,7 +1810,7 @@ int atcommand_whomap(const int fd, struct map_session_data* sd, const char* comm int i, count, users; int pl_GM_level, GM_level; int map_id = 0; - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; struct guild *g; struct party_data *p; @@ -3190,10 +3190,10 @@ int atcommand_go(const int fd, struct map_session_data* sd, const char* command, { int i; int town; - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; int m; - const struct { char map[MAP_NAME_LENGTH]; int x, y; } data[] = { + const struct { char map[MAP_NAME_LENGTH_EXT]; int x, y; } data[] = { { MAP_PRONTERA, 156, 191 }, // 0=Prontera { MAP_MORROC, 156, 93 }, // 1=Morroc { MAP_GEFFEN, 119, 59 }, // 2=Geffen @@ -3250,7 +3250,7 @@ int atcommand_go(const int fd, struct map_session_data* sd, const char* command, return -1; } else { // get possible name of the city - map_name[MAP_NAME_LENGTH-1] = '\0'; + map_name[MAP_NAME_LENGTH_EXT-1] = '\0'; for (i = 0; map_name[i]; i++) map_name[i] = TOLOWER(map_name[i]); // try to see if it's a name, and not a number (try a lot of possibilities, write errors and abbreviations too) @@ -3636,7 +3636,7 @@ static int atkillmonster_sub(struct block_list *bl, va_list ap) void atcommand_killmonster_sub(const int fd, struct map_session_data* sd, const char* message, const int drop) { int map_id; - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; if (!sd) return; @@ -5432,8 +5432,8 @@ int atcommand_mapinfo(const int fd, struct map_session_data* sd, const char* com } if (atcmd_player_name[0] == '\0') { - memcpy(atcmd_player_name, mapindex_id2name(sd->mapindex), MAP_NAME_LENGTH); - atcmd_player_name[MAP_NAME_LENGTH] = '\0'; + memcpy(atcmd_player_name, mapindex_id2name(sd->mapindex), MAP_NAME_LENGTH_EXT); + atcmd_player_name[MAP_NAME_LENGTH_EXT] = '\0'; m_id = map_mapindex2mapid(sd->mapindex); } else { m_id = map_mapname2mapid(atcmd_player_name); diff --git a/src/map/charcommand.c b/src/map/charcommand.c index e826d42b8..415f216d5 100644 --- a/src/map/charcommand.c +++ b/src/map/charcommand.c @@ -617,7 +617,7 @@ int charcommand_save( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; char character[NAME_LENGTH]; struct map_session_data* pl_sd; int x = 0, y = 0; @@ -1130,7 +1130,7 @@ int charcommand_warp( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; char character[NAME_LENGTH]; int x = 0, y = 0; struct map_session_data *pl_sd; diff --git a/src/map/chrif.c b/src/map/chrif.c index 3fef01c5c..2af51c20d 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -328,7 +328,7 @@ int chrif_changemapserver(struct map_session_data *sd, short map, int x, int y, int chrif_changemapserverack(int fd) { struct map_session_data *sd; - char mapname[MAP_NAME_LENGTH+1]; + char mapname[MAP_NAME_LENGTH_EXT]; RFIFOHEAD(fd); sd = map_id2sd(RFIFOL(fd,2)); diff --git a/src/map/clif.c b/src/map/clif.c index 615b5fee3..36ae1d658 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -1208,12 +1208,16 @@ static void clif_spiritball_single(int fd, struct map_session_data *sd) *------------------------------------------ */ static int clif_set0192(int fd, int m, int x, int y, int type) { + char map_name[MAP_NAME_LENGTH_EXT]; + + sprintf(map_name, "%s.gat", map[m].name); + WFIFOHEAD(fd, packet_len(0x192)); WFIFOW(fd,0) = 0x192; WFIFOW(fd,2) = x; WFIFOW(fd,4) = y; WFIFOW(fd,6) = type; - memcpy(WFIFOP(fd,8),map[m].name,MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,8),map_name,MAP_NAME_LENGTH_EXT); WFIFOSET(fd,packet_len(0x192)); return 0; @@ -1600,17 +1604,17 @@ void clif_setwaitclose(int fd) { */ int clif_changemap(struct map_session_data *sd, short map, int x, int y) { int fd; - char map_name[MAP_NAME_LENGTH]; - + char map_name[MAP_NAME_LENGTH_EXT]; + nullpo_retr(0, sd); fd = sd->fd; - snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(map)); + sprintf(map_name, "%s.gat", mapindex_id2name(map)); WFIFOHEAD(fd, packet_len(0x91)); WFIFOW(fd,0) = 0x91; - memcpy(WFIFOP(fd,2), map_name, MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,2), map_name, MAP_NAME_LENGTH_EXT); WFIFOW(fd,18) = x; WFIFOW(fd,20) = y; WFIFOSET(fd, packet_len(0x91)); @@ -1631,7 +1635,7 @@ int clif_changemapserver(struct map_session_data* sd, const char* mapname, int x WFIFOHEAD(fd, packet_len(0x92)); WFIFOW(fd,0) = 0x92; //Better not trust the null-terminator is there. [Skotlex] - memcpy(WFIFOP(fd,2), mapname, MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,2), mapname, MAP_NAME_LENGTH_EXT); WFIFOB(fd,17) = 0; //Null terminator for mapname WFIFOW(fd,18) = x; WFIFOW(fd,20) = y; @@ -4661,10 +4665,10 @@ int clif_skill_warppoint(struct map_session_data *sd,int skill_num,int skill_lv, WFIFOHEAD(fd,packet_len(0x11c)); WFIFOW(fd,0)=0x11c; WFIFOW(fd,2)=skill_num; - strncpy((char*)WFIFOP(fd, 4),map1,MAP_NAME_LENGTH); - strncpy((char*)WFIFOP(fd,20),map2,MAP_NAME_LENGTH); - strncpy((char*)WFIFOP(fd,36),map3,MAP_NAME_LENGTH); - strncpy((char*)WFIFOP(fd,52),map4,MAP_NAME_LENGTH); + strncpy((char*)WFIFOP(fd, 4),map1,MAP_NAME_LENGTH_EXT); + strncpy((char*)WFIFOP(fd,20),map2,MAP_NAME_LENGTH_EXT); + strncpy((char*)WFIFOP(fd,36),map3,MAP_NAME_LENGTH_EXT); + strncpy((char*)WFIFOP(fd,52),map4,MAP_NAME_LENGTH_EXT); WFIFOSET(fd,packet_len(0x11c)); sd->menuskill_id = skill_num; if (skill_num == AL_WARP) @@ -5660,7 +5664,7 @@ int clif_party_created(struct map_session_data *sd,int flag) int clif_party_member_info(struct party_data *p, struct map_session_data *sd) { unsigned char buf[96]; - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; if (!sd) { //Pick any party member (this call is used when changing item share rules) int i; @@ -5669,7 +5673,7 @@ int clif_party_member_info(struct party_data *p, struct map_session_data *sd) sd = p->data[i].sd; } - snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->mapindex)); + snprintf(map_name, MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(sd->mapindex)); WBUFW(buf,0)=0x1e9; WBUFL(buf,2)= sd->status.account_id; @@ -5679,7 +5683,7 @@ int clif_party_member_info(struct party_data *p, struct map_session_data *sd) WBUFB(buf,14)=0; //Unconfirmed byte, could be online/offline. memcpy(WBUFP(buf,15), p->party.name, NAME_LENGTH); memcpy(WBUFP(buf,39), sd->status.name, NAME_LENGTH); - memcpy(WBUFP(buf,63), map_name, MAP_NAME_LENGTH); + memcpy(WBUFP(buf,63), map_name, MAP_NAME_LENGTH_EXT); WBUFB(buf,79) = (p->party.item&1)?1:0; WBUFB(buf,80) = (p->party.item&2)?1:0; clif_send(buf,packet_len(0x1e9),&sd->bl,PARTY); @@ -5693,7 +5697,7 @@ int clif_party_member_info(struct party_data *p, struct map_session_data *sd) *------------------------------------------*/ int clif_party_info(struct party_data* p, struct map_session_data *sd) { - unsigned char buf[2+2+NAME_LENGTH+(4+NAME_LENGTH+MAP_NAME_LENGTH+1+1)*MAX_PARTY]; + unsigned char buf[2+2+NAME_LENGTH+(4+NAME_LENGTH+MAP_NAME_LENGTH_EXT+1+1)*MAX_PARTY]; struct map_session_data* party_sd = NULL; int i, c; @@ -5704,17 +5708,17 @@ int clif_party_info(struct party_data* p, struct map_session_data *sd) for(i = 0, c = 0; i < MAX_PARTY; i++) { struct party_member* m = &p->party.member[i]; - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; if(!m->account_id) continue; if(party_sd == NULL) party_sd = p->data[i].sd; - snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(m->map)); + snprintf(map_name, MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(m->map)); WBUFL(buf,28+c*46) = m->account_id; memcpy(WBUFP(buf,28+c*46+4), m->name, NAME_LENGTH); - memcpy(WBUFP(buf,28+c*46+28), map_name, MAP_NAME_LENGTH); + memcpy(WBUFP(buf,28+c*46+28), map_name, MAP_NAME_LENGTH_EXT); WBUFB(buf,28+c*46+44) = (m->leader) ? 0 : 1; WBUFB(buf,28+c*46+45) = (m->online) ? 0 : 1; c++; @@ -5993,12 +5997,12 @@ int clif_hpmeter(struct map_session_data *sd) int clif_party_move(struct party *p,struct map_session_data *sd,int online) { unsigned char buf[128]; - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; nullpo_retr(0, sd); nullpo_retr(0, p); - snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", map[sd->bl.m].name); + snprintf(map_name, MAP_NAME_LENGTH_EXT, "%s.gat", map[sd->bl.m].name); WBUFW(buf, 0)=0x104; WBUFL(buf, 2)=sd->status.account_id; @@ -6008,7 +6012,7 @@ int clif_party_move(struct party *p,struct map_session_data *sd,int online) WBUFB(buf,14)=!online; memcpy(WBUFP(buf,15),p->name, NAME_LENGTH); memcpy(WBUFP(buf,39),sd->status.name, NAME_LENGTH); - memcpy(WBUFP(buf,63),map_name, MAP_NAME_LENGTH); + memcpy(WBUFP(buf,63),map_name, MAP_NAME_LENGTH_EXT); clif_send(buf,packet_len(0x104),&sd->bl,PARTY); return 0; } @@ -6415,6 +6419,9 @@ int clif_changemapcell(int m,int x,int y,int cell_type,int type) { struct block_list bl; unsigned char buf[32]; + char map_name[MAP_NAME_LENGTH_EXT]; + + snprintf(map_name, MAP_NAME_LENGTH_EXT, "%s.gat", map[m].name); bl.type = BL_NUL; bl.m = m; @@ -6424,7 +6431,7 @@ int clif_changemapcell(int m,int x,int y,int cell_type,int type) WBUFW(buf,2) = x; WBUFW(buf,4) = y; WBUFW(buf,6) = cell_type; - memcpy(WBUFP(buf,8),map[m].name,MAP_NAME_LENGTH); + memcpy(WBUFP(buf,8),map_name,MAP_NAME_LENGTH_EXT); if(!type) clif_send(buf,packet_len(0x192),&bl,AREA); else @@ -7850,13 +7857,13 @@ void clif_gospel_info(struct map_session_data *sd, int type) void clif_feel_info(struct map_session_data *sd, unsigned char feel_level, unsigned char type) { int fd=sd->fd; - char map_name[MAP_NAME_LENGTH]; + char map_name[MAP_NAME_LENGTH_EXT]; - snprintf(map_name, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->feel_map[feel_level].index)); + snprintf(map_name, MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(sd->feel_map[feel_level].index)); WFIFOHEAD(fd,packet_len(0x20e)); WFIFOW(fd,0)=0x20e; - memcpy(WFIFOP(fd,2),map_name, MAP_NAME_LENGTH); + memcpy(WFIFOP(fd,2),map_name, MAP_NAME_LENGTH_EXT); WFIFOL(fd,26)=sd->bl.id; WFIFOB(fd,30)=feel_level; WFIFOB(fd,31)=type?1:0; @@ -8636,8 +8643,8 @@ int clif_message(struct block_list *bl, const char* msg) */ void clif_parse_MapMove(int fd, struct map_session_data *sd) { // /m /mapmove (as @rura GM command) - char output[MAP_NAME_LENGTH+15]; // Max length of a short: ' -6XXXX' -> 7 digits - char message[MAP_NAME_LENGTH+15+5]; // "/mm "+output + char output[MAP_NAME_LENGTH_EXT+15]; // Max length of a short: ' -6XXXX' -> 7 digits + char message[MAP_NAME_LENGTH_EXT+15+5]; // "/mm "+output char *map_name; RFIFOHEAD(fd); @@ -8647,7 +8654,7 @@ void clif_parse_MapMove(int fd, struct map_session_data *sd) { return; map_name = RFIFOP(fd,2); - map_name[MAP_NAME_LENGTH-1]='\0'; + map_name[MAP_NAME_LENGTH_EXT-1]='\0'; sprintf(output, "%s %d %d", map_name, RFIFOW(fd,18), RFIFOW(fd,20)); atcommand_rura(fd, sd, "@rura", output); if(log_config.gm && get_atcommand_level(AtCommand_MapMove) >= log_config.gm) diff --git a/src/map/guild.c b/src/map/guild.c index 64af2e12a..8399022e3 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -9,6 +9,7 @@ #include "../common/timer.h" #include "../common/nullpo.h" #include "../common/malloc.h" +#include "../common/mapindex.h" #include "../common/showmsg.h" #include "../common/ers.h" @@ -183,7 +184,7 @@ static int guild_read_castledb(void) gc=(struct guild_castle *)aCalloc(1,sizeof(struct guild_castle)); gc->castle_id=atoi(str[0]); - memcpy(gc->map_name,map_normalize_name(str[1]),MAP_NAME_LENGTH-1); + memcpy(gc->map_name,mapindex_normalize_name(str[1]),MAP_NAME_LENGTH-1); memcpy(gc->castle_name,str[2],NAME_LENGTH-1); memcpy(gc->castle_event,str[3],NAME_LENGTH-1); @@ -254,7 +255,7 @@ struct guild_castle *guild_mapname2gc(char *mapname) int i; struct guild_castle *gc=NULL; - map_normalize_name(mapname); + mapindex_normalize_name(mapname); for(i=0;iname, info.name) == 0) { // Map found m->xs = info.xs; m->ys = info.ys; m->gat = (unsigned char *)aMalloc(m->xs*m->ys); // Allocate room for map cells data buf = aMalloc(info.len); // Allocate a temp buffer to read the zipped map - fread(buf, info.len, 1, map_cache_fp); + fread(buf, info.len, 1, fp); size = m->xs*m->ys; decode_zip(m->gat, &size, buf, info.len); // Unzip the map from the buffer aFree(buf); return 1; } else // Map not found, jump to the beginning of the next map info header - fseek(map_cache_fp, info.len, SEEK_CUR); + fseek(fp, info.len, SEEK_CUR); } return 0; @@ -2482,7 +2469,7 @@ int map_addmap(char *mapname) { return 1; } - memcpy(map[map_num].name, map_normalize_name(mapname), MAP_NAME_LENGTH-1); + memcpy(map[map_num].name, mapindex_normalize_name(mapname), MAP_NAME_LENGTH-1); map_num++; return 0; } @@ -2520,8 +2507,9 @@ int map_readallmaps (void) { int i; int maps_removed = 0; + FILE *fp; - if(!(map_cache_fp = fopen(map_cache_file, "rb"))) + if(!(fp = fopen(map_cache_file, "rb"))) { ShowFatalError("Unable to open map cache file "CL_WHITE"%s"CL_RESET"\n", map_cache_file); exit(1); //No use launching server if maps can't be read. @@ -2559,7 +2547,7 @@ int map_readallmaps (void) fflush(stdout); } - if(!map_readmap(&map[i])) { + if(!map_readfromcache(&map[i], fp)) { map_delmapid(i); maps_removed++; i--; @@ -2609,6 +2597,8 @@ int map_readallmaps (void) map[i].block_mob_count = (int*)aCallocA(size, 1); } + fclose(fp); + // finished map loading printf("\r"); ShowInfo("Successfully loaded '"CL_WHITE"%d"CL_RESET"' maps.%30s\n",map_num,""); diff --git a/src/map/map.h b/src/map/map.h index 96b2b79b8..468f7a7d6 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -1030,7 +1030,7 @@ enum { ATK_LUCKY=1,ATK_FLEE,ATK_DEF}; // struct map_data { char name[MAP_NAME_LENGTH]; unsigned short index; //Index is the map index used by the mapindex* functions. - unsigned char *gat; // NULLなら下のmap_data_other_serverとして扱う + unsigned char *gat; // If this is NULL the map is not on this map-server unsigned char *cell; //Contains temporary cell data that is set/unset on tiles. #ifdef CELL_NOSTACK unsigned char *cell_bl; //Holds amount of bls in any given cell. @@ -1350,7 +1350,6 @@ void map_foreachpc(int (*func)(DBKey,void*,va_list),...); int map_foreachiddb(int (*)(DBKey,void*,va_list),...); void map_addnickdb(struct map_session_data *); struct map_session_data * map_nick2sd(const char*); -char *map_normalize_name(char *mapname); // その他 int map_check_dir(int s_dir,int t_dir); diff --git a/src/map/npc.c b/src/map/npc.c index f4be64e16..9d12fa2d6 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -1659,7 +1659,7 @@ int npc_parse_warp (char *w1,char *w2,char *w3,char *w4) { int x, y, xs, ys, to_x, to_y, m; int i; - char mapname[MAP_NAME_LENGTH], to_mapname[MAP_NAME_LENGTH]; + char mapname[MAP_NAME_LENGTH_EXT], to_mapname[MAP_NAME_LENGTH_EXT]; struct npc_data *nd; // 引数の個数チェック @@ -1723,7 +1723,7 @@ static int npc_parse_shop (char *w1, char *w2, char *w3, char *w4) #define MAX_SHOPITEM 100 char *p; int x, y, dir, m, pos = 0; - char mapname[MAP_NAME_LENGTH]; + char mapname[MAP_NAME_LENGTH_EXT]; struct npc_data *nd; if (strcmp(w1, "-") == 0) { @@ -1953,7 +1953,7 @@ static int npc_skip_script (char *w1,char *w2,char *w3,char *w4,char *first_line static int npc_parse_script(char *w1,char *w2,char *w3,char *w4,char *first_line,FILE *fp,int *lines,const char* file) { int x, y, dir = 0, m, xs = 0, ys = 0, class_ = 0; // [Valaris] thanks to fov - char mapname[MAP_NAME_LENGTH]; + char mapname[MAP_NAME_LENGTH_EXT]; unsigned char *srcbuf = NULL; struct script_code *script; int srcsize = 65536; @@ -2380,7 +2380,7 @@ int npc_parse_mob2 (struct spawn_data *mob, int index) int npc_parse_mob (char *w1, char *w2, char *w3, char *w4) { int level, num, class_, mode, x,y,xs,ys; - char mapname[MAP_NAME_LENGTH]; + char mapname[MAP_NAME_LENGTH_EXT]; char mobname[NAME_LENGTH]; struct spawn_data mob, *data; @@ -2515,7 +2515,7 @@ int npc_parse_mob (char *w1, char *w2, char *w3, char *w4) static int npc_parse_mapflag (char *w1, char *w2, char *w3, char *w4) { int m; - char mapname[MAP_NAME_LENGTH]; + char mapname[MAP_NAME_LENGTH_EXT]; int state = 1; // 引数の個数チェック @@ -2530,7 +2530,7 @@ static int npc_parse_mapflag (char *w1, char *w2, char *w3, char *w4) //マップフラグ if (strcmpi(w3, "nosave") == 0) { - char savemap[MAP_NAME_LENGTH]; + char savemap[MAP_NAME_LENGTH_EXT]; int savex, savey; if (state == 0) ; //Map flag disabled. @@ -2764,7 +2764,7 @@ static int npc_parse_mapflag (char *w1, char *w2, char *w3, char *w4) static int npc_parse_mapcell (char *w1, char *w2, char *w3, char *w4) { int m, cell, x, y, x0, y0, x1, y1; - char type[24], mapname[MAP_NAME_LENGTH]; + char type[24], mapname[MAP_NAME_LENGTH_EXT]; if (sscanf(w1, "%15[^,]", mapname) != 1) return 1; diff --git a/src/map/script.c b/src/map/script.c index b0f582b58..602020cf2 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -9119,10 +9119,10 @@ BUILDIN_FUNC(flagemblem) BUILDIN_FUNC(getcastlename) { - char mapname[MAP_NAME_LENGTH]; + char mapname[MAP_NAME_LENGTH_EXT]; struct guild_castle *gc; - strncpy(mapname, script_getstr(st,2), MAP_NAME_LENGTH); + strncpy(mapname, script_getstr(st,2), MAP_NAME_LENGTH_EXT); gc = guild_mapname2gc(mapname); if(gc) @@ -9134,13 +9134,13 @@ BUILDIN_FUNC(getcastlename) BUILDIN_FUNC(getcastledata) { - char mapname[MAP_NAME_LENGTH]; + char mapname[MAP_NAME_LENGTH_EXT]; int index=script_getnum(st,3); const char *event=NULL; struct guild_castle *gc; int i; - strncpy(mapname, script_getstr(st,2), MAP_NAME_LENGTH); + strncpy(mapname, script_getstr(st,2), MAP_NAME_LENGTH_EXT); gc = guild_mapname2gc(mapname); if(script_hasdata(st,4) && index==0 && gc) { @@ -9202,12 +9202,12 @@ BUILDIN_FUNC(getcastledata) BUILDIN_FUNC(setcastledata) { - char mapname[MAP_NAME_LENGTH]; + char mapname[MAP_NAME_LENGTH_EXT]; int index=script_getnum(st,3); int value=script_getnum(st,4); struct guild_castle *gc; - strncpy(mapname, script_getstr(st,2), MAP_NAME_LENGTH); + strncpy(mapname, script_getstr(st,2), MAP_NAME_LENGTH_EXT); gc = guild_mapname2gc(mapname); if(gc) { @@ -11084,9 +11084,9 @@ BUILDIN_FUNC(getsavepoint) y=sd->status.save_point.y; switch(type){ case 0: - mapname=(char *) aMallocA((MAP_NAME_LENGTH+1)*sizeof(char)); + mapname=(char *) aMallocA((MAP_NAME_LENGTH)*sizeof(char)); memcpy(mapname, mapindex_id2name(sd->status.save_point.map), MAP_NAME_LENGTH); - mapname[MAP_NAME_LENGTH]='\0'; + mapname[MAP_NAME_LENGTH-1]='\0'; script_pushstr(st,mapname); break; case 1: @@ -11133,7 +11133,7 @@ BUILDIN_FUNC(getmapxy) char prefix; int x,y,type; - char mapname[MAP_NAME_LENGTH+1]; + char mapname[MAP_NAME_LENGTH]; memset(mapname, 0, sizeof(mapname)); if( !data_isreference(script_getdata(st,2)) ){ diff --git a/src/map/skill.c b/src/map/skill.c index 1aaecb778..b44219db1 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4445,8 +4445,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in } else { if (sd->skillitem != AL_TELEPORT) { - char save_map[MAP_NAME_LENGTH]; - snprintf(save_map, MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.save_point.map)); + char save_map[MAP_NAME_LENGTH_EXT]; + snprintf(save_map, MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(sd->status.save_point.map)); clif_skill_warppoint(sd,skillid,skilllv,"Random",save_map,"",""); } else //Autocasted Teleport level 2?? @@ -6086,14 +6086,14 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s case AL_WARP: if(sd) { - char memo[4][MAP_NAME_LENGTH] = {"", "", "", ""}; - snprintf(memo[0], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.save_point.map)); + char memo[4][MAP_NAME_LENGTH_EXT] = {"", "", "", ""}; + snprintf(memo[0], MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(sd->status.save_point.map)); if (skilllv>1 && sd->status.memo_point[0].map) - snprintf(memo[1], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.memo_point[0].map)); + snprintf(memo[1], MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(sd->status.memo_point[0].map)); if (skilllv>2 && sd->status.memo_point[1].map) - snprintf(memo[2], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.memo_point[1].map)); + snprintf(memo[2], MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(sd->status.memo_point[1].map)); if (skilllv>3 && sd->status.memo_point[2].map) - snprintf(memo[3], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.memo_point[2].map)); + snprintf(memo[3], MAP_NAME_LENGTH_EXT, "%s.gat", mapindex_id2name(sd->status.memo_point[2].map)); clif_skill_warppoint(sd,skillid,skilllv, memo[0],memo[1],memo[2],memo[3]); diff --git a/src/tool/grfio.c b/src/tool/grfio.c index 3b19ca2f8..72034d92f 100644 --- a/src/tool/grfio.c +++ b/src/tool/grfio.c @@ -578,7 +578,6 @@ void* grfio_reads(char *fname, int *size) if (entry != NULL && entry->gentry < 0) { entry->gentry = -entry->gentry; // local file checked } else { - printf("%s not found (grfio_reads - local file %s)\n", fname, lfname); return NULL; } } diff --git a/src/tool/mapcache.c b/src/tool/mapcache.c index d088a9d52..c576a6b6c 100644 --- a/src/tool/mapcache.c +++ b/src/tool/mapcache.c @@ -4,6 +4,7 @@ #include #include #include +#include #ifndef _WIN32 #include @@ -11,12 +12,18 @@ #include "grfio.h" -char grf_list_file[256] = "db/grf_files.txt"; -char map_list_file[256] = "db/map_list.txt"; +#define MAP_NAME_LENGTH 12 +#define MAP_NAME_LENGTH_EXT 16 +#define NO_WATER 1000000 + +char grf_list_file[256] = "tools/mapcache/grf_files.txt"; +char map_list_file[256] = "db/map_index.txt"; char map_cache_file[256] = "db/map_cache.dat"; +int rebuild = 0; -#define MAP_NAME_LENGTH 16 -#define NO_WATER 1000000 +FILE *map_cache_fp; + +unsigned long file_size; // Used internally, this structure contains the physical map cells struct map_data { @@ -26,31 +33,25 @@ struct map_data { }; // This is the main header found at the very beginning of the file -unsigned short map_count; +struct main_header { + unsigned long file_size; + unsigned short map_count; +} header; // This is the header appended before every compressed map cells info -struct map_cache_info { +struct map_info { char name[MAP_NAME_LENGTH]; - unsigned short index; short xs; short ys; long len; }; -FILE *map_cache_fp; - -int filesize; -/// Converts an unsigned short (16 bits) from current machine order to little-endian -unsigned short MakeUShortLE(unsigned short val) -{ - unsigned char buf[2]; - buf[0] = (unsigned char)( (val & 0x00FF) ); - buf[1] = (unsigned char)( (val & 0xFF00) >> 0x08 ); - return *((unsigned short*)buf); -} +/************************************* +* Big-endian compatibility functions * +*************************************/ -/// Converts a short (16 bits) from current machine order to little-endian +// Converts a short (16 bits) from current machine order to little-endian short MakeShortLE(short val) { unsigned char buf[2]; @@ -59,7 +60,7 @@ short MakeShortLE(short val) return *((short*)buf); } -/// Converts a long (32 bits) from current machine order to little-endian +// Converts a long (32 bits) from current machine order to little-endian long MakeLongLE(long val) { unsigned char buf[4]; @@ -70,7 +71,23 @@ long MakeLongLE(long val) return *((long*)buf); } -/// Reads an unsigned long (32 bits) in little-endian from the buffer +// Reads an unsigned short (16 bits) in little-endian from the buffer +unsigned short GetUShort(const unsigned char *buf) +{ + return ( ((unsigned short)(buf[0])) ) + |( ((unsigned short)(buf[1])) << 0x08 ); +} + +// Reads a long (32 bits) in little-endian from the buffer +long GetLong(const unsigned char *buf) +{ + return ( ((long)(buf[0])) ) + |( ((long)(buf[1])) << 0x08 ) + |( ((long)(buf[2])) << 0x10 ) + |( ((long)(buf[3])) << 0x18 ); +} + +// Reads an unsigned long (32 bits) in little-endian from the buffer unsigned long GetULong(const unsigned char *buf) { return ( ((unsigned long)(buf[0])) ) @@ -87,7 +104,7 @@ float GetFloat(const unsigned char *buf) } -// Read map from GRF's GAT and RSW files +// Reads a map from GRF's GAT and RSW files int read_map(char *name, struct map_data *m) { char filename[256]; @@ -143,31 +160,31 @@ int read_map(char *name, struct map_data *m) return 1; } -void cache_map(char *name, unsigned short index, struct map_data *m) +// Adds a map to the cache +void cache_map(char *name, struct map_data *m) { - struct map_cache_info info; - unsigned long len; - char *write_buf; + struct map_info info; + long len; + unsigned char *write_buf; // Create an output buffer twice as big as the uncompressed map... this way we're sure it fits len = m->xs*m->ys*2; - write_buf = (char *)malloc(len); + write_buf = (unsigned char *)malloc(len); // Compress the cells and get the compressed length - encode_zip((unsigned char *)write_buf, &len, m->cells, m->xs*m->ys); + encode_zip(write_buf, &len, m->cells, m->xs*m->ys); // Fill the map header strncpy(info.name, name, MAP_NAME_LENGTH); - info.index = MakeUShortLE(index); info.xs = MakeShortLE(m->xs); info.ys = MakeShortLE(m->ys); - info.len = MakeLongLE((long)len); + info.len = MakeLongLE(len); // Append map header then compressed cells at the end of the file - fseek(map_cache_fp, filesize, SEEK_SET); - fwrite(&info, sizeof(struct map_cache_info), 1, map_cache_fp); + fseek(map_cache_fp, header.file_size, SEEK_SET); + fwrite(&info, sizeof(struct map_info), 1, map_cache_fp); fwrite(write_buf, 1, len, map_cache_fp); - map_count++; - filesize += sizeof(struct map_cache_info) + len; + header.file_size += sizeof(struct map_info) + len; + header.map_count++; free(write_buf); free(m->cells); @@ -175,41 +192,111 @@ void cache_map(char *name, unsigned short index, struct map_data *m) return; } +// Checks whether a map is already is the cache +int find_map(char *name) +{ + int i; + struct map_info info; + + fseek(map_cache_fp, sizeof(struct main_header), SEEK_SET); + + for(i = 0; i < header.map_count; i++) { + fread(&info, sizeof(info), 1, map_cache_fp); + if(strcmp(name, info.name) == 0) // Map found + return 1; + else // Map not found, jump to the beginning of the next map info header + fseek(map_cache_fp, GetLong((unsigned char *)&(info.len)), SEEK_CUR); + } + + return 0; +} + +// Cuts the extension from a map name +char *remove_extension(char *mapname) +{ + char *ptr, *ptr2; + ptr = strchr(mapname, '.'); + if (ptr) { //Check and remove extension. + while (ptr[1] && (ptr2 = strchr(ptr+1, '.'))) + ptr = ptr2; //Skip to the last dot. + if(stricmp(ptr,".gat") == 0 || + stricmp(ptr,".afm") == 0 || + stricmp(ptr,".af2") == 0) + *ptr = '\0'; //Remove extension. + } + return mapname; +} + +// Processes command-line arguments +void process_args(int argc, char *argv[]) +{ + int i; + + for(i = 0; i < argc; i++) { + if(strcmp(argv[i], "-grf") == 0) { + if(++i < argc) + strcpy(grf_list_file, argv[i]); + } else if(strcmp(argv[i], "-list") == 0) { + if(++i < argc) + strcpy(map_list_file, argv[i]); + } else if(strcmp(argv[i], "-cache") == 0) { + if(++i < argc) + strcpy(map_cache_file, argv[i]); + } else if(strcmp(argv[i], "-rebuild") == 0) + rebuild = 1; + } + +} + int main(int argc, char *argv[]) { FILE *list; char line[1024]; struct map_data map; - char name[MAP_NAME_LENGTH]; - unsigned short index = 1; + char name[MAP_NAME_LENGTH_EXT]; - if(argc > 1) - strcpy(grf_list_file, argv[1]); - if(argc > 2) - strcpy(map_list_file, argv[2]); - if(argc > 3) - strcpy(map_cache_file, argv[3]); + // Process the command-line arguments + process_args(argc, argv); printf("Initializing grfio with %s\n", grf_list_file); grfio_init(grf_list_file); + // Attempt to open the map cache file and force rebuild if not found printf("Opening map cache: %s\n", map_cache_file); - map_cache_fp = fopen(map_cache_file, "wb"); - if( map_cache_fp == NULL ) { + if(!rebuild) { + map_cache_fp = fopen(map_cache_file, "rb"); + if(map_cache_fp == NULL) { + printf("Existing map cache not found, forcing rebuild mode\n"); + rebuild = 1; + } else + fclose(map_cache_fp); + } + if(rebuild) + map_cache_fp = fopen(map_cache_file, "w+b"); + else + map_cache_fp = fopen(map_cache_file, "r+b"); + if(map_cache_fp == NULL) { printf("Failure when opening map cache file %s\n", map_cache_file); exit(1); } + // Open the map list printf("Opening map list: %s\n", map_list_file); list = fopen(map_list_file, "r"); - if( list == NULL ) { + if(list == NULL) { printf("Failure when opening maps list file %s\n", map_list_file); - exit(1); + exit(2); } // Initialize the main header - map_count = 0; - filesize = sizeof(map_count); + if(rebuild) { + header.file_size = sizeof(struct main_header); + header.map_count = 0; + } else { + fread(&header, sizeof(struct main_header), 1, map_cache_fp); + header.file_size = GetULong((unsigned char *)&(header.file_size)); + header.map_count = GetUShort((unsigned char *)&(header.map_count)); + } // Read and process the map list while(fgets(line, 1020, list)){ @@ -217,30 +304,37 @@ int main(int argc, char *argv[]) if(line[0] == '/' && line[1] == '/') continue; - if(sscanf(line, "%16s %hu", name, &index) > 0) { // No defines in strings, 16 is hardcoded here - printf("Index %d : %s\n", index, name); - if(read_map(name, &map)) - cache_map(name, index, &map); - else - printf("Map file not found in GRF\n"); - // If the 2nd argument is omitted at next line, we'll keep last used index + 1 - index++; - } + if(sscanf(line, "%15s", name) < 1) + continue; + + if(strcmp("map:", name) == 0 && sscanf(line, "%*s %15s", name) < 1) + continue; + + remove_extension(name); + printf("%s", name); + if(find_map(name)) + printf(" already in cache!\n"); + else if(read_map(name, &map)) { + cache_map(name, &map); + printf(" successfully cached\n"); + } else + printf(" not found in GRF!\n"); + } printf("Closing map list: %s\n", map_list_file); fclose(list); - printf("Closing map cache: %s\n", map_cache_file); // Write the main header and close the map cache + printf("Closing map cache: %s\n", map_cache_file); fseek(map_cache_fp, 0, SEEK_SET); - fwrite(&map_count, sizeof(map_count), 1, map_cache_fp); + fwrite(&header, sizeof(struct main_header), 1, map_cache_fp); fclose(map_cache_fp); printf("Finalizing grfio\n"); grfio_final(); - printf("%d maps cached\n", map_count); + printf("%d maps now in cache\n", header.map_count); return 0; } diff --git a/tools/mapcache/grf_files.txt b/tools/mapcache/grf_files.txt new file mode 100644 index 000000000..21a3145bc --- /dev/null +++ b/tools/mapcache/grf_files.txt @@ -0,0 +1,15 @@ +//----------------------------------------- +// GRF List +// Add as many entries as you wish +//----------------------------------------- + +//grf: C:\Program Files\Gravity\RO\data.grf +grf: C:\Program Files\Gravity\RO\sdata.grf + +//----------------------------------------- +// Data Directory +// Path must include trailing backslash +// Only one entry supported! +//----------------------------------------- + +//data_dir: C:\Program Files\Gravity\RO\ -- cgit v1.2.3-70-g09d2 From cece111a565a6d53790248eaa01bf68615d3a4b1 Mon Sep 17 00:00:00 2001 From: toms Date: Fri, 25 Jan 2008 16:11:39 +0000 Subject: Updated conversion tools for mob_db & item_db Updated SQL Files (item & mobs) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12138 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 + db/mob_db.txt | 8 +- sql-files/item_db.sql | 550 ++++++++++++++++++++++++++++++------------------- sql-files/item_db2.sql | 14 +- sql-files/mob_db.sql | 114 +++++----- sql-files/mob_db2.sql | 16 +- tools/item_db.pl | 33 +-- tools/mob_db.pl | 24 +-- 8 files changed, 442 insertions(+), 320 deletions(-) (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index e2eea5284..758729403 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2008/01/25 + * Updated conversion tools for mob_db & item_db + * Updated SQL Files (item & mobs) [Toms] 2008/01/21 * Fixed battle config loading not applying the side-effects of battle_adjust_conf() side-effect if an import: operation fails. diff --git a/db/mob_db.txt b/db/mob_db.txt index 07dd2a71c..6c08aa912 100644 --- a/db/mob_db.txt +++ b/db/mob_db.txt @@ -412,10 +412,10 @@ 1408,BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,55,8082,0,2119,1562,3,121,342,5,23,1,59,14,55,68,15,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1 1409,RICE_CAKE_BOY,Rice Cake Boy,Dumpling Child,27,2098,0,231,149,1,112,134,5,12,1,22,29,5,41,10,10,12,0,7,20,0x91,160,647,768,420,0,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1 1410,LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,53,8905,0,2591,1799,7,301,351,10,38,72,45,35,39,80,5,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,7164,4365,0,0,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1 -//1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +//1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1412,EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,56,10392,0,3304,2198,10,311,333,25,59,1,20,18,50,136,11,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1 1413,WILD_GINSENG,Wild Ginseng,Hermit Plant,46,6900,0,1038,692,1,220,280,10,20,13,42,36,55,66,30,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,516,4800,1951,1,578,1000,0,0,0,0,4232,1 -//1414,GINSENG_BULLET,Ginseng Bullet,Ginseng Bullet... (mode 129),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +//1414,GINSENG_BULLET,Ginseng Bullet,Ginseng Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1415,BABY_LEOPARD,Baby Leopard,Baby Leopard,32,2590,0,352,201,2,155,207,0,5,20,44,20,4,49,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1 1416,WICKED_NYMPH,Wicked Nymph,Evil Nymph,63,16029,0,3945,2599,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1 1417,ZIPPER_BEAR,Zipper Bear,Zipper Bear,35,2901,0,370,225,1,248,289,10,5,30,25,55,15,28,25,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1 @@ -499,12 +499,12 @@ 1493,DRYAD,Dryad,Dryad,50,8791,0,2763,1493,3,499,589,15,33,1,75,55,1,78,45,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,1951,80,1964,1,2270,10,7100,3000,0,0,0,0,4177,1 1494,KIND_OF_BEETLE,Beetle King,Beetle King,34,1874,0,679,442,1,191,243,45,12,1,34,10,0,40,0,10,12,0,4,22,0x3985,165,1247,768,576,0,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1 1495,STONE_SHOOTER,Stone Shooter,Stone Shooter,42,4104,0,1238,752,10,309,350,12,45,1,40,20,79,92,20,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1 -//1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,(mode 2181),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +//1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,(mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1497,WOODEN_GOLEM,Wooden Golem,Wooden Golem,51,9200,0,1926,1353,1,570,657,32,36,1,41,69,5,85,155,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,921,1000,0,0,0,0,4259,1 1498,WOOTAN_SHOOTER,Wootan Shooter,Wootan Shooter,39,3977,0,886,453,10,84,105,10,28,15,35,29,15,100,42,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,512,100,7182,100,5116,10,0,0,0,0,4260,1 1499,WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,41,4457,0,1790,833,1,395,480,30,19,1,41,31,10,45,30,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,513,1000,7198,1000,5116,5,0,0,0,0,4261,1 1500,PARASITE,Parasite,Parasite,49,5188,0,1098,1453,8,215,430,10,19,1,40,30,30,90,50,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,711,500,0,0,0,0,4309,1 -//1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet... (mode 2181),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +//1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet... (mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1502,PORING_V,Pori Pori,Bring it on!,99,95000000,0,87250,27895,1,10000,30000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10000,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,4000,7126,10000,2110,4500,0,0,0,0 //Niflheim diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index 1e9736957..7791230e8 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -29,13 +29,13 @@ CREATE TABLE `item_db` ( PRIMARY KEY (`id`) ) TYPE=MyISAM; -# // Items Database -# // -# // Structure of Database: -# // ID,AegisName,Name,Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } -# // -# // Healing Items -# //============================================================= +# Items Database +# +# Structure of Database: +# REPLACE INTO `item_db` VALUES ( ID,'AegisName','Name',Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,' Script ',' OnEquip_Script ',' OnUnequip_Script '); +# +# Healing Items +# ============================================================= REPLACE INTO `item_db` VALUES (501,'Red_Potion','Red Potion',0,50,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(45,65),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (502,'Orange_Potion','Orange Potion',0,200,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(105,145),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (503,'Yellow_Potion','Yellow Potion',0,550,NULL,130,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(175,235),0; ',NULL,NULL); @@ -75,8 +75,8 @@ REPLACE INTO `item_db` VALUES (538,'Well_Baked_Cookie','Well-baked Cookie',0,100 REPLACE INTO `item_db` VALUES (539,'Piece_Of_Cake','Piece of Cake',0,3000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(270,330),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (540,'Falcon\'s_Feed','Falcon food',0,2000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(185,225),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (541,'Pecopeco\'s_Feed','Peco Peco food',0,3000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(325,405),0; ',NULL,NULL); -# //542,Festive_Cookie,Festival Cookie,0,10,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(325,405),0; },{},{} -# //543,Festive_Rainbow_Cake,Festival Rainbow Cake,0,10,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(325,405),0; },{},{} +# REPLACE INTO `item_db` VALUES (542,'Festive_Cookie','Festival Cookie',0,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(325,405),0; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (543,'Festive_Rainbow_Cake','Festival Rainbow Cake',0,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(325,405),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (544,'Fish_Slice','Raw Fish',0,20,NULL,30,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(25,60),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (545,'Red_Slim_Potion','Condensed Red Potion',0,150,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(45,65),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (546,'Yellow_Slim_Potion','Condensed Yellow Potion',0,600,NULL,30,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(175,235),0; ',NULL,NULL); @@ -133,8 +133,8 @@ REPLACE INTO `item_db` VALUES (596,'Cute_Strawberry_Choco','Cute Strawberry-Choc REPLACE INTO `item_db` VALUES (597,'Lovely_Choco_Tart','Lovely Choco-Tart',0,NULL,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (598,'Light_Red_Pot','Light Red Potion',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(45,65),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (599,'Light_Orange_Pot','Light Orange Potion',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(105,145),0; ',NULL,NULL); -# // Usable Items -# //=================================================================== +# Usable Items +# =================================================================== REPLACE INTO `item_db` VALUES (601,'Wing_Of_Fly','Fly Wing',2,60,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' warp "Random",0,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (602,'Wing_Of_Butterfly','Butterfly Wing',2,300,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' warp "SavePoint",0,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (603,'Old_Blue_Box','Old Blue Box',2,10000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_BlueBox),1; ',NULL,NULL); @@ -146,16 +146,16 @@ REPLACE INTO `item_db` VALUES (608,'Seed_Of_Yggdrasil','Yggdrasil Seed',0,5000,N REPLACE INTO `item_db` VALUES (609,'Amulet','Amulet',2,100,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (610,'Leaf_Of_Yggdrasil','Yggdrasil Leaf',11,4000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 54,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (611,'Spectacles','Magnifier',11,40,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 40,1; ',NULL,NULL); -# // Smithing Items +# Smithing Items REPLACE INTO `item_db` VALUES (612,'Portable_Furnace','Mini Furnace',2,150,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' produce 21; ',NULL,NULL); REPLACE INTO `item_db` VALUES (613,'Iron_Hammer','Iron Hammer',2,1000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' produce 1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (614,'Golden_Hammer','Golden Hammer',2,3000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' produce 2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (615,'Oridecon_Hammer','Oridecon Hammer',2,5000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' produce 3; ',NULL,NULL); -# // Item Givers +# Item Givers REPLACE INTO `item_db` VALUES (616,'Old_Card_Album','Old Card Album',2,10000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_CardAlbum),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (617,'Old_Violet_Box','Old Purple Box',2,10000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_VioletBox),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (618,'Worn_Out_Scroll','Worn Out Scroll',2,50,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_ScrollBox),1; ',NULL,NULL); -# // Pet Tames +# Pet Tames REPLACE INTO `item_db` VALUES (619,'Unripe_Apple','Unripe Apple',2,1000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' pet 1002; ',NULL,NULL); REPLACE INTO `item_db` VALUES (620,'Orange_Juice','Orange Juice',2,1500,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' pet 1113; ',NULL,NULL); REPLACE INTO `item_db` VALUES (621,'Bitter_Herb','Bitter Herb',2,NULL,10,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' pet 1031; ',NULL,NULL); @@ -182,25 +182,25 @@ REPLACE INTO `item_db` VALUES (641,'Contracts_In_Shadow','Contracts in Shadow',2 REPLACE INTO `item_db` VALUES (642,'Book_Of_Devil','Book of the Devil',2,1800,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' pet 1101; ',NULL,NULL); REPLACE INTO `item_db` VALUES (643,'Pet_Incubator','Pet Incubator',2,3000,NULL,30,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' bpet; ',NULL,NULL); REPLACE INTO `item_db` VALUES (644,'Gift_Box','Gift Box',2,1000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_GiftBox),1; ',NULL,NULL); -# // ASPD Potions +# ASPD Potions REPLACE INTO `item_db` VALUES (645,'Center_Potion','Concentration Potion',2,800,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_ASPDPOTION0,1800000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (656,'Awakening_Potion','Awakening Potion',2,1500,NULL,150,NULL,NULL,NULL,NULL,0xFFF7FEEF,7,2,NULL,NULL,40,NULL,NULL,' sc_start SC_ASPDPOTION1,1800000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (657,'Berserk_Potion','Berserk Potion',2,3000,NULL,200,NULL,NULL,NULL,NULL,0x01E646A6,7,2,NULL,NULL,85,NULL,NULL,' sc_start SC_ASPDPOTION2,1800000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (658,'Union_Of_Tribe','Tribal Solidarity',2,NULL,1,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' guildgetexp rand(600000,1200000); ',NULL,NULL); -# // New Pet Tames +# New Pet Tames REPLACE INTO `item_db` VALUES (659,'Heart_Of_Her','Her Heart',2,500,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' pet 1188; ',NULL,NULL); REPLACE INTO `item_db` VALUES (660,'Prohibition_Red_Candle','Forbidden Red Candle',2,20000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' pet 1200; ',NULL,NULL); REPLACE INTO `item_db` VALUES (661,'Sway_Apron','Soft Apron',2,20000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' pet 1275; ',NULL,NULL); REPLACE INTO `item_db` VALUES (662,'Inspector_Certificate','Authoritative Badge',2,1450,NULL,30,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' specialeffect 507; sc_start SC_SpeedUp0,180000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (663,'Korea_Rice_Cake','Songpyun',0,1,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 10,0; ',NULL,NULL); -# // Item Givers +# Item Givers REPLACE INTO `item_db` VALUES (664,'Gift_Box_1','Gift Box',2,1000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_GiftBox_1),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (665,'Gift_Box_2','Gift Box',2,1000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_GiftBox_2),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (666,'Gift_Box_3','Gift Box',2,1000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_GiftBox_3),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (667,'Gift_Box_4','Gift Box',2,1000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_GiftBox_4),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (668,'Handsei','Red_Envelope',2,0,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' set Zeny,Zeny+rand(1000,10000); ',NULL,NULL); REPLACE INTO `item_db` VALUES (669,'Rice_Cake_Soup','Rice-Cake Soup',0,500,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal -100,-100; ',NULL,NULL); -# // Coins +# Coins REPLACE INTO `item_db` VALUES (670,'Gold_Coin_Moneybag','Bag of Gold Coins',2,100000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (671,'Gold_Coin','Gold Coin',2,10000,NULL,40,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (672,'Copper_Coin_Moneybag','Bag of Bronze Coins',2,1000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -213,12 +213,12 @@ REPLACE INTO `item_db` VALUES (678,'Poison_Bottle','Poison Bottle',0,5000,NULL,1 REPLACE INTO `item_db` VALUES (679,'Gold_Pill','Pilule',0,5000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 50,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (680,'Magical_Carnation','Magic Carnation',0,NULL,0,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 0,20; ',NULL,NULL); REPLACE INTO `item_db` VALUES (681,'Memory_Of_Wedding','Sweet Memory of Marriage',2,50000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,3,NULL,NULL,NULL,NULL,NULL,' if (getpartnerid()) sc_start SC_WEDDING,600000,0; ',NULL,NULL); -# // ATK/MATK Potions +# ATK/MATK Potions REPLACE INTO `item_db` VALUES (682,'Realgar_Wine','Distilled Fighting Spirit',0,NULL,0,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_ATKPOTION,60000,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (683,'Exorcize_Herb','Herb of Incantation',0,NULL,0,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_MATKPOTION,60000,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (684,'Durian','Durian',0,15000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_ATKPOTION,60000,10; sc_start SC_MATKPOTION,60000,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (685,'RAMADAN','Ramadan',0,5000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 100,50; ',NULL,NULL); -# // Scrolls +# Scrolls REPLACE INTO `item_db` VALUES (686,'Earth_Scroll_1_3','Level 3 Earth Spike',11,1000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 90,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (687,'Earth_Scroll_1_5','Level 5 Earth Spike',11,2000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 90,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (688,'Cold_Scroll_1_3','Level 3 Cold Bolt',11,1000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 14,3; ',NULL,NULL); @@ -234,8 +234,8 @@ REPLACE INTO `item_db` VALUES (697,'Fire_Scroll_2_5','Level 5 Fire Ball',11,2000 REPLACE INTO `item_db` VALUES (698,'Fire_Scroll_3_1','Level 1 Fire Wall',11,1000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 18,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (699,'Fire_Scroll_3_5','Level 5 Fire Wall',11,2000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 18,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (700,'Cold_Scroll_2_1','Level 1 Frost Diver',11,1000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 15,1; ',NULL,NULL); -# // Etc Items -# //=================================================================== +# Etc Items +# =================================================================== REPLACE INTO `item_db` VALUES (701,'Ora_Ora','Ora Ora',3,55000,NULL,200,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (702,'Animal_Blood','Animal Gore',3,450,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (703,'Hinalle','Hinalle',3,500,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -488,9 +488,9 @@ REPLACE INTO `item_db` VALUES (1096,'Round_Shell','Round Shell',3,780,NULL,10,NU REPLACE INTO `item_db` VALUES (1097,'Worn_Out_Page','Worn Out Page',3,948,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1098,'Manacles','Manacles',3,658,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1099,'Worn_Out_Prison_Uniform','Worn-out Prison Uniform',3,680,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# // Weapons -# //=================================================================== -# // 1-Handed Swords +# Weapons +# =================================================================== +# 1-Handed Swords REPLACE INTO `item_db` VALUES (1101,'Sword','Sword',4,100,NULL,500,25,NULL,1,3,0x000654E3,7,2,2,1,2,1,2,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1102,'Sword_','Sword',4,100,NULL,500,25,NULL,1,4,0x000654E3,7,2,2,1,2,1,2,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1103,'Sword__','Sword',4,100,NULL,500,25,NULL,1,0,0x000654E3,7,2,2,1,2,1,2,NULL,NULL,NULL); @@ -540,7 +540,7 @@ REPLACE INTO `item_db` VALUES (1146,'Town_Sword','Town Sword',4,42000,NULL,800,1 REPLACE INTO `item_db` VALUES (1147,'Town_Sword_','Town Sword',4,42000,NULL,800,100,NULL,1,2,0x00000001,7,2,2,3,30,1,2,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1148,'Star_Dust_Blade','Star Dust Blade',4,NULL,10,1000,140,NULL,1,1,0x00000001,7,2,2,4,45,1,2,' bonus2 bAddEff,Eff_Stun,500; bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1149,'Flamberge_','Flamberge',4,60000,NULL,1500,150,NULL,1,2,0x00004080,7,2,2,3,27,1,2,NULL,NULL,NULL); -# // 2-Handed Swords +# 2-Handed Swords REPLACE INTO `item_db` VALUES (1151,'Slayer','Slayer',4,15000,NULL,1300,90,NULL,1,2,0x00004082,7,2,34,2,18,1,3,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1152,'Slayer_','Slayer',4,15000,NULL,1300,90,NULL,1,3,0x00004082,7,2,34,2,18,1,3,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1153,'Slayer__','Slayer',4,15000,NULL,1300,90,NULL,1,0,0x00004082,7,2,34,2,18,1,3,NULL,NULL,NULL); @@ -571,9 +571,11 @@ REPLACE INTO `item_db` VALUES (1177,'Sakray_Test_Two-Handed_Sword','Sakray Test REPLACE INTO `item_db` VALUES (1178,'Schweizersabel_','Schweizersabel',4,NULL,10,1600,160,NULL,1,2,0x00004082,7,2,34,4,48,1,3,' bonus bAtkEle,Ele_Wind; bonus bDef,1; bonus3 bAutoSpell,20,3,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1179,'Executioner__','Executioner',4,NULL,10,2200,155,NULL,1,1,0x00004082,7,2,34,4,48,1,3,' bonus bIgnoreDefRace,RC_DemiHuman; bonus2 bAddRace,RC_DemiHuman,20; bonus2 bSubRace,RC_DemiHuman,-10; bonus bAtkEle,Ele_Dark; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1180,'Dragon_Slayer_','Dragon Slayer',4,NULL,10,1300,150,NULL,1,2,0x00004082,7,2,34,4,48,1,3,' bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddRace,RC_Dragon,15; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1181,'Tegron','Tegron',4,NULL,NULL,2000,250,NULL,1,2,0x00004082,2,2,34,4,79,1,3,' bonus bFlee2,10; if (getrefine() > 8) bonus bCastrate,-20; bonus bDelayRate,-20; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1182,'Bloody_Eater','Bloody Eater',4,NULL,NULL,2000,250,NULL,1,2,0x00004082,2,2,34,4,79,1,3,' bonus bHPGainValue,100; ',NULL,NULL); -# // Daggers +REPLACE INTO `item_db` VALUES (1181,'Tegron','Tegron',4,NULL,NULL,2000,250,NULL,1,2,0x00004082,2,2,34,4,79,1,3,' bonus bFlee2,10; if (JobLevel>=70) bonusautoscript "{ sc_start SC_INCBASEATK,5000,50; }",10; if (getrefine() > 8) { bonus bCastrate,-20; bonus bDelayRate,-20; } ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1182,'Bloody_Eater','Bloody Eater',4,NULL,NULL,2000,250,NULL,1,2,0x00004082,2,2,34,4,79,1,3,' bonusautoscript "{ sc_start SC_INCCRI,15000,100; sc_start SC_INCBASEATK,15000,100; }",10; bonus bHPGainValue,100; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1183,'Assaulter\'s_Katzbalger','Assaulter\'s Katzbalger',4,NULL,0,0,200,NULL,1,0,0x00004082,7,2,34,3,80,1,3,' bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,55; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1184,'Assaulter\'s_Katzbalger_','Assaulter\'s Katzbalger',4,NULL,0,0,200,NULL,1,0,0x00004082,7,2,34,3,80,1,3,' bonus bCritical,20; bonus2 bAddRace,RC_DemiHuman,55; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# Daggers REPLACE INTO `item_db` VALUES (1201,'Knife','Knife',4,50,NULL,400,17,NULL,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1202,'Knife_','Knife',4,50,NULL,400,17,NULL,1,4,0xFE9F7EEF,7,2,2,1,1,1,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1203,'Knife__','Knife',4,50,NULL,400,17,NULL,1,0,0xFE9F7EEF,7,2,2,1,1,1,1,NULL,NULL,NULL); @@ -623,7 +625,7 @@ REPLACE INTO `item_db` VALUES (1246,'Cinquedea_','Cinquedea',4,40000,NULL,700,11 REPLACE INTO `item_db` VALUES (1247,'Kindling_Dagger','Kindle Dagger',4,10000,NULL,600,39,NULL,1,0,0x008F5EEF,7,2,2,1,1,1,1,' bonus bAtkEle,Ele_Fire; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1248,'Obsidian_Dagger','Obsidian Dagger',4,10000,NULL,600,39,NULL,1,0,0x008F5EEF,7,2,2,1,1,1,1,' bonus bAtkEle,Ele_Earth; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1249,'Fisherman\'s_Dagger','Fisherman\'s Dagger',4,10000,NULL,600,39,NULL,1,0,0x008F5EEF,7,2,2,1,1,1,1,' bonus bAtkEle,Ele_Water; ',NULL,NULL); -# // Katars +# Katars REPLACE INTO `item_db` VALUES (1250,'Jur','Jur',4,19500,NULL,800,125,NULL,1,2,0x00001000,7,2,34,2,18,1,16,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1251,'Jur_','Jur',4,19500,NULL,800,125,NULL,1,3,0x00001000,7,2,34,2,18,1,16,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1252,'Katar','Katar',4,41000,NULL,1200,148,NULL,1,1,0x00001000,7,2,34,3,33,1,16,' bonus bDex,1; ',NULL,NULL); @@ -653,7 +655,9 @@ REPLACE INTO `item_db` VALUES (1275,'Katar_Of_Cold_Icicle_','Katar of Frozen Ici REPLACE INTO `item_db` VALUES (1276,'Katar_Of_Thornbush_','Katar of Quaking',4,45000,NULL,1200,105,NULL,1,3,0x00001000,7,2,34,3,55,1,16,' bonus bAtkEle,Ele_Earth; bonus2 bAddEff,Eff_Blind,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1277,'Katar_Of_Raging_Blaze_','Katar of Raging Blaze',4,45000,NULL,1200,105,NULL,1,3,0x00001000,7,2,34,3,55,1,16,' bonus bAtkEle,Ele_Fire; bonus2 bAddEff,Eff_Silence,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1278,'Katar_Of_Piercing_Wind_','Katar of Piercing Wind',4,45000,NULL,1200,105,NULL,1,3,0x00001000,7,2,34,3,55,1,16,' bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Sleep,500; ',NULL,NULL); -# // 1-Handed Axes +REPLACE INTO `item_db` VALUES (1279,'Mass_Murder_Katar','Mass Murder Katar',4,NULL,0,0,130,NULL,1,0,0x00001000,7,2,34,3,80,1,16,' bonus bStr,1; bonus bDex,1; bonus bLuk,1; bonus2 bAddRace,RC_DemiHuman,70; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1280,'Mass_Murder_Katar_','Mass Murder Katar',4,NULL,0,0,130,NULL,1,0,0x00001000,7,2,34,3,80,1,16,' bonus bStr,1; bonus bDex,1; bonus bLuk,1; bonus2 bAddRace,RC_DemiHuman,70; bonus bCritAtkRate,20; bonus bAspdRate,5; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# 1-Handed Axes REPLACE INTO `item_db` VALUES (1301,'Axe','Axe',4,500,NULL,800,38,NULL,1,3,0x000654E3,7,2,2,1,3,1,6,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1302,'Axe_','Axe',4,500,NULL,800,38,NULL,1,4,0x000654E3,7,2,2,1,3,1,6,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1303,'Axe__','Axe',4,500,NULL,800,38,NULL,1,0,0x000654E3,7,2,2,1,3,1,6,NULL,NULL,NULL); @@ -663,7 +667,7 @@ REPLACE INTO `item_db` VALUES (1306,'War_Axe','War Axe',4,NULL,10,4200,140,NULL, REPLACE INTO `item_db` VALUES (1307,'Windhawk','Windhawk',4,18000,NULL,1500,115,NULL,1,0,0x000444A2,7,2,2,2,14,1,6,' bonus bAtkEle,Ele_Wind; bonus bAspdRate,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1308,'Golden_Axe','Golden Axe',4,NULL,10,3000,170,NULL,1,0,0x00000001,7,2,2,4,45,1,6,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1309,'Orcish_Axe_','Orcish Axe',4,NULL,10,1500,75,NULL,1,4,0x000454A3,7,2,2,3,3,1,6,NULL,NULL,NULL); -# // 2-Handed Axes +# 2-Handed Axes REPLACE INTO `item_db` VALUES (1351,'Battle_Axe','Battle Axe',4,5400,NULL,1500,80,NULL,1,3,0x000444A2,7,2,34,1,3,1,7,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1352,'Battle_Axe_','Battle Axe',4,5400,NULL,1500,80,NULL,1,4,0x000444A2,7,2,34,1,3,1,7,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1353,'Battle_Axe__','Battle Axe',4,5400,NULL,1500,80,NULL,1,0,0x000444A2,7,2,34,1,3,1,7,NULL,NULL,NULL); @@ -692,7 +696,9 @@ REPLACE INTO `item_db` VALUES (1375,'Bardiche','Bardiche',4,NULL,10,2500,200,NUL REPLACE INTO `item_db` VALUES (1376,'Heart_Breaker','Heart Breaker',4,NULL,10,2000,175,NULL,1,1,0x000444A2,7,2,34,4,70,1,7,' bonus bCritical,20+3*getrefine(); bonus bAspdRate,5; if ((Class == Job_Whitesmith) || (Class == Job_Creator)) bonus3 bAutoSpell,110,3,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1377,'Hurricane\'s_Fury','Hurricane\'s Fury',4,NULL,10,3500,332,NULL,1,1,0x000444A2,7,2,34,4,80,1,7,' bonus2 bSubSize,1,10+getrefine(); bonus bAspdRate,2*getrefine(); bonus3 bAutoSpell,661,1,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1378,'Great_Axe_C','Refined Great Axe',4,NULL,0,0,215,NULL,1,0,0x000444A2,7,2,34,4,1,0,7,' bonus bStr,5; bonus bHit,20; bonus2 bAddSkillBlow,42,5; bonus2 bAddEff,Eff_Stun,1500; ',NULL,NULL); -# // 1-Handed Spears +REPLACE INTO `item_db` VALUES (1379,'Elite_Soldier\'s_Battle_Axe','Elite Soldier\'s Battle Axe',4,NULL,0,0,200,NULL,1,0,0x000444A2,7,2,34,3,80,1,7,' bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,55; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1380,'Elite_Soldier\'s_Battle_Axe_','Elite Soldier\'s Battle Axe',4,NULL,0,0,200,NULL,1,0,0x000444A2,7,2,34,3,80,1,7,' bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,55; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# 1-Handed Spears REPLACE INTO `item_db` VALUES (1401,'Javelin','Javelin',4,150,NULL,700,28,NULL,3,3,0x00004082,7,2,2,1,4,1,4,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1402,'Javelin_','Javelin',4,150,NULL,700,28,NULL,3,4,0x00004082,7,2,2,1,4,1,4,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1403,'Javelin__','Javelin',4,150,NULL,700,28,NULL,3,0,0x00004082,7,2,2,1,4,1,4,NULL,NULL,NULL); @@ -717,7 +723,8 @@ REPLACE INTO `item_db` VALUES (1421,'Battle_Hook','Battle Hook',4,NULL,10,900,14 REPLACE INTO `item_db` VALUES (1422,'Hunting_Spear','Hunting Spear',4,NULL,10,4200,180,NULL,3,1,0x00004082,2,2,2,4,60,1,4,' bonus bIgnoreDefRace,RC_Brute; bonus3 bAddMonsterDropItem,517,RC_Brute,100; bonus3 bAutoSpell,399,3,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1423,'Sakray_Test_Spear','Sakray Test Spear',4,NULL,10,0,120,NULL,3,0,0x00004082,7,2,2,1,1,0,4,' bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1424,'Skewer_C','Refined Brocca',4,NULL,0,0,149,NULL,3,0,0x00004082,7,2,2,4,1,0,4,' bonus bIgnoreDefRace,RC_NonBoss; bonus2 bAddSize,1,20; ',NULL,NULL); -# // 2-Handed Spears +REPLACE INTO `item_db` VALUES (1425,'Assaulter\'s_Spear','Assaulter\'s Spear',4,NULL,0,0,60,NULL,3,0,0x00004082,7,2,2,3,80,1,4,' bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,95; bonus bUnbreakableWeapon,0; if (BaseClass == Job_Crusader) bonus bAspdRate,20; ',NULL,NULL); +# 2-Handed Spears REPLACE INTO `item_db` VALUES (1451,'Guisarme','Guisarme',4,13000,NULL,1000,84,NULL,3,2,0x00004082,7,2,34,2,18,1,5,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1452,'Guisarme_','Guisarme',4,13000,NULL,1000,84,NULL,3,3,0x00004082,7,2,34,2,18,1,5,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1453,'Guisarme__','Guisarme',4,13000,NULL,1000,84,NULL,3,0,0x00004082,7,2,34,2,18,1,5,NULL,NULL,NULL); @@ -739,10 +746,10 @@ REPLACE INTO `item_db` VALUES (1468,'Zephyrus','Zephyrus',4,NULL,10,2000,170,NUL REPLACE INTO `item_db` VALUES (1469,'Longinus\'s_Spear','Longinus\'s Spear',4,NULL,10,2500,180,NULL,3,0,0x00004082,7,2,34,4,48,1,5,' bonus bAtkEle,Ele_Dark; bonus2 bAddRace,RC_DemiHuman,10; bonus2 bAddRace,RC_Angel,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1470,'Brionac','Brionac',4,NULL,10,3000,190,NULL,3,0,0x00004082,7,2,34,4,48,1,5,' bonus bAtkEle,Ele_Holy; skill 28,5; bonus3 bAutoSpell,13,3,100; bonus2 bAddRace,RC_Boss,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1471,'Hell_Fire','Hellfire',4,NULL,10,3500,200,NULL,3,0,0x00004082,7,2,34,4,48,1,5,' bonus bAtkEle,Ele_Fire; bonus3 bAutoSpell,17,3,100; bonus bStr,3; ',NULL,NULL); -# // 2-Handed Staffs +# 2-Handed Staffs REPLACE INTO `item_db` VALUES (1472,'Staff_Of_Soul','Soul Staff',4,NULL,10,1400,25,NULL,1,0,0x00810204,7,2,34,3,73,1,10,' bonus bInt,5; bonus bAgi,2; bonus bMatkRate,15; if(isequipped(2677) || isequipped(2711)){ bonus bMatkRate,6; bonus bDex,2; bonus bCastrate,-getrefine(); } ',NULL,NULL); REPLACE INTO `item_db` VALUES (1473,'Wizardy_Staff','Wizardry Staff',4,NULL,10,2400,120,NULL,1,0,0x00810204,7,2,34,4,90,1,10,' bonus bInt,6; bonus bDex,2; bonus bMatkRate,15; if(isequipped(2677) || isequipped(2711)){ bonus bMatkRate,6; bonus bDex,2; bonus bCastrate,-getrefine(); } ',NULL,NULL); -# // 2-Handed Spears +# 2-Handed Spears REPLACE INTO `item_db` VALUES (1474,'Gae_Bolg','Gae Bolg',4,NULL,10,2000,160,NULL,3,0,0x00004082,7,2,34,4,60,1,5,' bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddRace,RC_Boss,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1475,'Horseback_Lance','Equestrian\'s Spear',4,NULL,10,3700,200,NULL,4,0,0x00004082,7,2,34,4,75,1,5,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1476,'Crescent_Scythe_','Crescent Scythe',4,NULL,10,2500,180,NULL,3,1,0x00004082,7,2,34,4,48,1,5,' bonus bCritical,30; bonus bHit,10; ',NULL,NULL); @@ -751,7 +758,8 @@ REPLACE INTO `item_db` VALUES (1478,'Ahlspiess','Ahlspiess',4,NULL,10,1000,120,N REPLACE INTO `item_db` VALUES (1479,'Phantom_Sphere_','Phantom Spear',4,NULL,10,2000,170,NULL,3,1,0x00004082,7,2,34,4,75,1,5,' bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus bHPGainValue,50; if(!isequipped(2700)) bonus2 bAddEff2,Eff_Confusion,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1480,'Gae_Bolg_','Gae Bolg',4,NULL,10,2000,160,NULL,3,2,0x00004082,7,2,34,4,60,1,5,' bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddRace,RC_Boss,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1481,'Zephyrus_','Zephyrus',4,NULL,10,2000,170,NULL,3,3,0x00004082,7,2,34,4,48,1,5,' bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,21,3,100; ',NULL,NULL); -# // Maces +REPLACE INTO `item_db` VALUES (1482,'Assaulter\'s_Lance','Assaulter\'s Lance',4,NULL,0,0,160,NULL,3,0,0x00004082,7,2,34,3,80,1,5,' bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,25; bonus bIgnoreDefRace,RC_DemiHuman; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# Maces REPLACE INTO `item_db` VALUES (1501,'Club','Club',4,120,NULL,700,23,NULL,1,3,0x0004C5B3,7,2,2,1,2,1,8,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1502,'Club_','Club',4,120,NULL,700,23,NULL,1,4,0x0004C5B3,7,2,2,1,2,1,8,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1503,'Club__','Club',4,120,NULL,700,23,NULL,1,0,0x0004C5B3,7,2,2,1,2,1,8,NULL,NULL,NULL); @@ -779,7 +787,7 @@ REPLACE INTO `item_db` VALUES (1524,'Golden_Mace','Golden Mace',4,NULL,10,800,11 REPLACE INTO `item_db` VALUES (1525,'Long_Mace','Long Mace',4,NULL,10,800,135,NULL,3,0,0x00008110,7,2,2,4,40,1,8,' bonus bLongAtkDef,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1526,'Slash','Slash',4,NULL,10,1000,145,NULL,1,0,0x00008110,7,2,2,4,40,1,8,' bonus2 bAddRace,RC_Undead,15; bonus2 bWeaponComaRace,RC_Undead,100; bonus2 bExpAddRace,RC_Undead,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1527,'Quadrille','Quadrille',4,NULL,10,900,165,NULL,1,0,0x00008110,7,2,2,4,40,1,8,' bonus2 bAddRace,RC_Undead,10; bonus2 bAddRace,RC_DemiHuman,10; bonus2 bAddEle,Ele_Earth,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1528,'Grand_Cross','Grand Cross',4,NULL,10,1500,140,NULL,1,0,0x00008110,7,2,2,4,40,1,8,' bonus bAtkEle,Ele_Holy; bonus3 bAutoSpell,77,3,100; bonus2 bSPDrainValueRace,RC_Undead,1; bonus2 bSPGainRace,RC_Undead,3; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1528,'Grand_Cross','Grand Cross',4,NULL,10,1500,140,NULL,1,0,0x00008110,7,2,2,4,40,1,8,' bonus bAtkEle,Ele_Holy; skill 77,3; bonus3 bAutoSpell,77,3,100; bonus2 bSPDrainValueRace,RC_Undead,1; bonus2 bSPGainRace,RC_Undead,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1529,'Iron_Driver','Iron Driver',4,NULL,10,3000,155,NULL,2,0,0x00008100,7,2,2,3,78,1,8,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1530,'Mjolnir','Mjolnir',4,NULL,10,6000,250,NULL,1,0,0x000444A2,7,2,2,4,95,0,8,' bonus bAtkEle,Ele_Wind; bonus bDex,40; bonus bStr,15; bonus bAspdRate,10; bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1531,'Spanner','Wrench',4,NULL,10,2500,115,NULL,1,0,0x00008110,7,2,2,3,55,1,8,' bonus2 bAddEff,Eff_Blind,100; bonus2 bAddEff,Eff_Stun,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Freeze,100; ',NULL,NULL); @@ -792,8 +800,10 @@ REPLACE INTO `item_db` VALUES (1537,'Quadrille_C','Refined Quadrille',4,NULL,0,0 REPLACE INTO `item_db` VALUES (1538,'Spike_','Spike',4,NULL,10,700,85,NULL,1,2,0x00008110,7,2,2,4,40,1,8,' bonus bCritical,40; bonus bDefRate,-67; bonus bDef2Rate,-67; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1539,'Golden_Mace_','Golden Mace',4,NULL,10,800,110,NULL,1,2,0x00008110,7,2,2,4,40,1,8,' bonus2 bAddRace,RC_Undead,10; bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1540,'Grand_Cross_','Grand Cross',4,NULL,10,1500,140,NULL,1,1,0x00008110,7,2,2,4,40,1,8,' bonus bAtkEle,Ele_Holy; bonus3 bAutoSpell,77,3,100; bonus2 bSPDrainValueRace,RC_Undead,1; bonus2 bSPGainRace,RC_Undead,3; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1541,'Nemesis','Nemesis',4,NULL,NULL,900,120,NULL,1,3,0x00008110,7,2,2,4,60,1,8,' bonus3 bAutoSpell,32,1+getrefine(),100; ',NULL,NULL); -# // Books +REPLACE INTO `item_db` VALUES (1541,'Nemesis','Nemesis',4,NULL,NULL,900,120,NULL,1,3,0x00008110,7,2,2,4,60,1,8,' bonus3 bAutoSpell,32,1+getrefine(),100; bonusautoscript "{ sc_start SC_INCBASEATK,20000,50; }",10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1542,'Millitant_Morning_Star','Millitant Morning Star',4,NULL,0,0,105,NULL,1,0,0x0004C5B3,7,2,2,3,80,1,8,' bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1543,'Millitant_Morning_Star_','Millitant Morning Star',4,NULL,0,0,105,NULL,1,0,0x0004C5B3,7,2,2,3,80,1,8,' bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# Books REPLACE INTO `item_db` VALUES (1550,'Book','Book',4,30000,NULL,600,85,NULL,1,3,0x00410100,7,2,2,2,14,1,15,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1551,'Bible','Bible',4,60000,NULL,1000,115,NULL,1,2,0x00410100,7,2,2,3,27,1,15,' bonus bInt,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1552,'Tablet','Tablet',4,51000,NULL,800,125,NULL,1,1,0x00410100,7,2,2,3,27,1,15,NULL,NULL,NULL); @@ -816,10 +826,12 @@ REPLACE INTO `item_db` VALUES (1568,'Book_Of_Billows_','Book of Billows',4,35000 REPLACE INTO `item_db` VALUES (1569,'Book_Of_Mother_Earth_','Book of Mother Earth',4,35000,NULL,750,90,NULL,1,3,0x00410100,7,2,2,3,27,1,15,' bonus bAtkEle,Ele_Earth; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1570,'Book_Of_Blazing_Sun_','Book of the Blazing Sun',4,35000,NULL,750,90,NULL,1,3,0x00410100,7,2,2,3,27,1,15,' bonus bAtkEle,Ele_Fire; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1571,'Book_Of_Gust_Of_Wind_','Book of Gust of Wind',4,35000,NULL,750,90,NULL,1,3,0x00410100,7,2,2,3,27,1,15,' bonus bAtkEle,Ele_Wind; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1572,'Magic_Tactics','Magic Tactics',4,NULL,NULL,300,60,NULL,1,2,0x00410100,7,2,2,3,60,1,15,' bonus bMatkRate,20; bonus bInt,1; bonus bSPrecovRate,5; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1573,'Ancient_Sorcery','Ancient Sorcery',4,NULL,NULL,700,30,NULL,1,2,0x00410100,7,2,2,3,70,1,15,' bonus bMatkRate,15; if (isequipped(2334)) bonus bMdef,8; bonus bMaxSPRate,10; bonus bInt,4; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1572,'Magic_Tactics','Magic Tactics',4,NULL,NULL,300,60,NULL,1,2,0x00410100,7,2,2,3,60,1,15,' bonus bMatkRate,20; bonus bInt,1; bonus bSPrecovRate,5; if (isequipped(2716) && isequipped(2717)) { bonus bMdef,8; bonus bMaxSPRate,10; bonus bInt,4; }; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1573,'Ancient_Sorcery','Ancient Sorcery',4,NULL,NULL,700,30,NULL,1,2,0x00410100,7,2,2,3,70,1,15,' bonus bMatkRate,15; if (isequipped(2716) && isequipped(2717)) { bonus bMdef,8; bonus bMaxSPRate,10; bonus bInt,4; }; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1574,'Decendant_Strategy','Decendant Strategy',4,NULL,0,0,90,NULL,1,0,0x00410100,7,2,2,3,80,1,15,' bonus bStr,1; bonus bInt,2; bonus bMatkRate,15; bonus2 bAddRace,RC_DemiHuman,70; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1575,'Decendant_Strategy_','Decendant Strategy',4,NULL,0,0,90,NULL,1,0,0x00410100,7,2,2,3,80,1,15,' bonus bStr,1; bonus bInt,2; bonus bMatkRate,15; bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreMdefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1599,'Angra_Manyu','Angra Manyu',4,1,NULL,10,200,NULL,2,0,0xFFFFFFFF,7,2,2,1,1,1,8,' bonus bAllStats,50; bonus bBaseAtk,3800; bonus2 bHPDrainRate,1000,100; ',NULL,NULL); -# // Staffs +# Staffs REPLACE INTO `item_db` VALUES (1601,'Rod','Rod',4,50,NULL,400,15,NULL,1,3,0x00818315,7,2,2,1,1,1,10,' bonus bMatkRate,15; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1602,'Rod_','Rod',4,50,NULL,400,15,NULL,1,4,0x00818315,7,2,2,1,1,1,10,' bonus bMatkRate,15; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1603,'Rod__','Rod',4,50,NULL,400,15,NULL,1,0,0x00818315,7,2,2,1,1,1,10,' bonus bMatkRate,15; ',NULL,NULL); @@ -851,7 +863,11 @@ REPLACE INTO `item_db` VALUES (1628,'Survival_Rod_C','Refined Survivor\'s Rod',4 REPLACE INTO `item_db` VALUES (1629,'Gentleman\'s_Staff','Gentleman\'s Staff',4,NULL,NULL,500,40,NULL,1,1,0x00818315,7,2,2,4,50,1,10,' bonus bMatkRate,15+getrefine(); bonus bDex,1; if (isequipped(5045)) bonus bDex,2; bonus bInt,2; bonus bSPrecovRate,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1630,'Release_of_Wish','Release of Wish',4,NULL,NULL,500,30,NULL,1,0,0x00018205,7,2,2,3,50,1,10,' bonus bMatkRate,15; bonus bInt,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1631,'Holy_Stick','Holy Stick',4,NULL,NULL,500,50,NULL,1,1,0x00008101,7,2,2,4,70,1,10,' bonus bMatkRate,15; bonus2 bCastrate,156,-25; bonus2 bCastrate,77,-25; bonus2 bCastrate,79,-25; ',NULL,NULL); -# // Bows +REPLACE INTO `item_db` VALUES (1632,'Wolong\'s_Magic_Staff','Wolong\'s Magic Staff',4,NULL,0,0,70,NULL,1,0,0x00818315,7,2,2,3,80,1,10,' bonus bint,4; bonus bDex,3; bonus bMatkRate,15; bonus2 bIgnoreMdefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1633,'Wolong\'s_Battle_Staff','Wolong\'s Magic Staff',4,NULL,0,0,70,NULL,1,0,0x00818315,7,2,2,3,80,1,10,' bonus bint,3; bonus bDex,3; bonus bMatkRate,15; bonus2 bMagicAddRace,RC_DemiHuman,15; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1634,'Mighty_Recovery_Staff','Mighty Recovery Staff',4,NULL,0,0,70,NULL,1,0,0x00818315,7,2,2,3,80,1,10,' bonus bMatkRate,15; bonus2 bSkillHeal,28,14; bonus2 bSkillHeal,70,14; bonus2 bSPRegenRate,5,10000; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1635,'Speedy_Recovery_Staff','Speedy Recovery Staff',4,NULL,0,0,70,NULL,1,0,0x00818315,7,2,2,3,80,1,10,' bonus bInt,3; bonus bDex,2; bonus bMatkRate,15; bonus bDelayRate,-15; bonus2 bSPRegenRate,5,10000; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# Bows REPLACE INTO `item_db` VALUES (1701,'Bow','Bow',4,1000,NULL,500,15,NULL,5,3,0x000A0848,7,2,34,1,4,1,11,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1702,'Bow_','Bow',4,1000,NULL,500,15,NULL,5,4,0x000A0848,7,2,34,1,4,1,11,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1703,'Bow__','Bow',4,1000,NULL,500,15,NULL,5,0,0x000A0848,7,2,34,1,4,1,11,NULL,NULL,NULL); @@ -887,8 +903,10 @@ REPLACE INTO `item_db` VALUES (1733,'Gale_Bow','Gale Bow',4,NULL,10,1400,95,NULL REPLACE INTO `item_db` VALUES (1734,'Orc_Archer\'s_Bow','Orc Archer\'s Bow',4,NULL,10,1600,120,NULL,5,0,0x00020800,7,2,34,4,65,1,11,' bonus2 bAddMonsterDropItem,1770,200; if(isequipped(1770)) bonus bLongAtkRate,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1735,'Sakray_Test_Bow','Sakray Test Bow',4,NULL,10,0,120,NULL,5,0,0x000A0848,7,2,34,1,1,0,11,' bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1736,'Double_Bound','Double Bound',4,NULL,NULL,900,70,NULL,5,3,0x00000800,2,2,34,3,70,1,11,' bonus3 bAutoSpell,46,GetSkillLv(46),100; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (1737,'Ixion\'s_Wings','Ixion\'s Wings',4,NULL,NULL,300,135,NULL,5,1,0x00000800,2,2,34,4,70,1,11,' bonus2 bAddSkillBlow,148,3; ',NULL,NULL); -# // Arrows +REPLACE INTO `item_db` VALUES (1737,'Ixion\'s_Wings','Ixion\'s Wings',4,NULL,NULL,300,135,NULL,5,1,0x00000800,2,2,34,4,70,1,11,' bonusautoscript "{ sc_start SC_INCASPDRATE,7000,7; }",10+(getrefine()*2); bonus2 bAddSkillBlow,148,3; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1738,'Battle_Crossbow','Battle Crossbow',4,NULL,0,0,100,NULL,5,0,0x000A0848,7,2,34,3,80,1,11,' bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,55; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1739,'Battle_Crossbow_','Battle Crossbow',4,NULL,0,0,100,NULL,5,0,0x000A0848,7,2,34,3,80,1,11,' bonus bDex,2; bonus bInt,10; bonus2 bAddRace,RC_DemiHuman,55; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# Arrows REPLACE INTO `item_db` VALUES (1750,'Arrow','Arrow',10,1,NULL,1,25,NULL,NULL,NULL,0x000A1848,7,2,32768,NULL,1,NULL,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1751,'Silver_Arrow','Silver Arrow',10,3,NULL,2,30,NULL,NULL,NULL,0x000A1848,7,2,32768,NULL,1,NULL,1,' bonus bAtkEle,Ele_Holy; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1752,'Fire_Arrow','Fire Arrow',10,3,NULL,2,30,NULL,NULL,NULL,0x000A1848,7,2,32768,NULL,1,NULL,1,' bonus bAtkEle,Ele_Fire; ',NULL,NULL); @@ -912,7 +930,7 @@ REPLACE INTO `item_db` VALUES (1769,'Silence_Arrow','Mute Arrow',10,10,NULL,3,1, REPLACE INTO `item_db` VALUES (1770,'Iron_Arrow','Iron Arrow',10,2,NULL,1,30,NULL,NULL,NULL,0x000A1848,7,2,32768,NULL,1,NULL,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1771,'Venom_Knife','Venom Knife',10,50,NULL,5,30,NULL,NULL,NULL,0x00001000,7,2,32768,NULL,1,NULL,2,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1772,'Holy_Arrow','Holy Arrow',10,3,NULL,2,50,NULL,NULL,NULL,0x000A1848,7,2,32768,NULL,1,NULL,1,' bonus bAtkEle,Ele_Holy; bonus2 bAddRace,RC_Demon,5; ',NULL,NULL); -# // Knuckles +# Knuckles REPLACE INTO `item_db` VALUES (1801,'Waghnakh','Waghnak',4,8000,NULL,400,30,NULL,1,3,0x00008100,7,2,2,1,1,1,12,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1802,'Waghnakh_','Waghnak',4,8000,NULL,400,30,NULL,1,4,0x00008100,7,2,2,1,1,1,12,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1803,'Knuckle_Duster','Knuckle Duster',4,25000,NULL,450,50,NULL,1,2,0x00008100,7,2,2,2,12,1,12,NULL,NULL,NULL); @@ -935,7 +953,9 @@ REPLACE INTO `item_db` VALUES (1819,'Icicle_Fist','Iceicle Fist',4,NULL,10,650,8 REPLACE INTO `item_db` VALUES (1820,'Electric_Fist','Electric Fist',4,NULL,10,650,80,NULL,1,3,0x00008100,7,2,2,3,75,1,12,' bonus3 bAutoSpell,282,5,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1821,'Seismic_Fist','Seismic Fist',4,NULL,10,650,80,NULL,1,3,0x00008100,7,2,2,3,75,1,12,' bonus3 bAutoSpell,283,5,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1822,'Barrage_Fist','Barrage Fist',4,NULL,NULL,500,30,NULL,1,4,0x00008100,7,2,2,3,60,1,12,' bonus2 bSkillAtk,263,15; bonus2 bSkillAtk,272,15; bonus2 bSkillAtk,273,20; ',NULL,NULL); -# // Instruments +REPLACE INTO `item_db` VALUES (1823,'Champion\'s_Battle_Fist','Champion\'s Battle Fist',4,NULL,0,0,30,NULL,1,0,0x00008100,7,2,2,3,80,1,12,' bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1824,'Champion\'s_Battle_Fist_','Champion\'s Battle Fist',4,NULL,0,0,30,NULL,1,0,0x00008100,7,2,2,3,80,1,12,' bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bCastrate,271,25; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# Instruments REPLACE INTO `item_db` VALUES (1901,'Violin','Violin',4,4000,NULL,700,50,NULL,1,3,0x00080000,7,1,2,1,2,1,13,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1902,'Violin_','Violin',4,4000,NULL,700,50,NULL,1,4,0x00080000,7,1,2,1,2,1,13,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1903,'Mandolin','Mandolin',4,18000,NULL,400,90,NULL,1,2,0x00080000,7,1,2,2,14,1,13,NULL,NULL,NULL); @@ -958,7 +978,9 @@ REPLACE INTO `item_db` VALUES (1919,'Bass_Guitar','Bass Guitar',4,NULL,10,1500,1 REPLACE INTO `item_db` VALUES (1920,'Spirited_Guitar','Spirited Guitar',4,NULL,10,1800,10,NULL,1,0,0x00080000,2,1,2,4,70,1,13,' bonus bAspdRate,100; bonus bHPrecovRate,-100; bonus2 bHPLossRate,50,5000; bonus bDex,-readparam(bDex); ',NULL,NULL); REPLACE INTO `item_db` VALUES (1921,'Sakray_Test_Instrument','Sakray Test Instrument',4,NULL,10,0,120,NULL,1,0,0x00080000,7,1,2,1,1,0,13,' bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1922,'Oriental_Lute_','Oriental Lute',4,NULL,10,1200,150,NULL,1,2,0x00080000,7,1,2,4,65,1,13,' bonus2 bSkillAtk,394,10; bonus2 bSkillAtk,316,10; ',NULL,NULL); -# // Whips +REPLACE INTO `item_db` VALUES (1923,'Battleground_Guitar','Battleground Guitar',4,NULL,0,0,50,NULL,1,0,0x00080000,7,1,2,3,80,1,13,' bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1924,'Battleground_Guitar_','Battleground Guitar',4,NULL,0,0,50,NULL,1,0,0x00080000,7,1,2,3,80,1,13,' bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bSkillAtk,394,20; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# Whips REPLACE INTO `item_db` VALUES (1950,'Rope','Rope',4,2500,NULL,400,45,NULL,2,3,0x00080000,7,0,2,1,3,1,14,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1951,'Rope_','Rope',4,2500,NULL,400,45,NULL,2,4,0x00080000,7,0,2,1,3,1,14,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1952,'Line','Whip',4,12000,NULL,300,80,NULL,2,2,0x00080000,7,0,2,2,16,1,14,NULL,NULL,NULL); @@ -986,11 +1008,13 @@ REPLACE INTO `item_db` VALUES (1973,'Foot_of_the_Sea_Witch','Foot of the Sea Wit REPLACE INTO `item_db` VALUES (1974,'Carrot_Whip','Carrot Whip',4,NULL,10,1300,185,NULL,2,0,0x00080000,2,0,2,4,70,1,14,' if(getrefine() > 0) bonus3 bAutoSpell,29,getrefine(),10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1975,'Sakray_Test_Whip','Sakray Test Whip',4,NULL,10,0,120,NULL,2,0,0x00080000,7,0,2,1,1,0,14,' bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (1976,'Queen\'s_Whip_','Queen\'s Whip',4,NULL,10,1100,150,NULL,2,2,0x00080000,7,0,2,4,65,1,14,' bonus2 bSkillAtk,394,10; bonus2 bSkillAtk,324,10; ',NULL,NULL); -# // Additional 2-Handed Staffs +REPLACE INTO `item_db` VALUES (1977,'Battle_Lariat','Battle Lariat',4,NULL,0,0,50,NULL,2,0,0x00080000,7,0,2,3,80,1,14,' bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (1978,'Battle_Lariat_','Battle Lariat',4,NULL,0,0,50,NULL,2,0,0x00080000,7,0,2,3,80,1,14,' bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bSkillAtk,394,20; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# Additional 2-Handed Staffs REPLACE INTO `item_db` VALUES (2000,'Staff_of_Destruction','Staff of Destruction',4,NULL,10,2500,130,NULL,1,1,0x00000200,2,2,34,4,80,1,10,' bonus bMatkRate,25+getrefine()/2; bonus bInt,3; bonus bAgi,10; bonus bUseSPrate,getrefine(); bonus3 bAutoSpell,84,5,10+getrefine(); bonus2 bCastrate,366,-50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2001,'Divine_Cross','Divine Cross',4,NULL,10,1500,120,NULL,1,0,0x00008100,7,2,34,4,70,1,10,' bonus bAtkEle,Ele_Holy; bonus bMatkRate,15; bonus bDex,4; bonus2 bSubRace,RC_Demon,15; bonus2 bSubRace,RC_Undead,15; if (isequipped(2677) || isequipped(2711)) { bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }; ',NULL,NULL); -# // Shields -# //=================================================================== +# Shields +# =================================================================== REPLACE INTO `item_db` VALUES (2101,'Guard','Guard',5,500,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,32,NULL,0,1,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2102,'Guard_','Guard',5,500,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,2,32,NULL,0,1,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2103,'Buckler','Buckler',5,14000,NULL,600,NULL,4,NULL,0,0x000ED5F2,7,2,32,NULL,0,1,2,NULL,NULL,NULL); @@ -999,7 +1023,7 @@ REPLACE INTO `item_db` VALUES (2105,'Shield','Shield',5,56000,NULL,1300,NULL,6,N REPLACE INTO `item_db` VALUES (2106,'Shield_','Shield',5,56000,NULL,1300,NULL,6,NULL,1,0x00004082,7,2,32,NULL,0,1,3,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2107,'Mirror_Shield','Mirror Shield',5,60000,NULL,1000,NULL,4,NULL,0,0x00404082,7,2,32,NULL,0,1,4,' bonus bMdef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2108,'Mirror_Shield_','Mirror Shield',5,60000,NULL,1000,NULL,4,NULL,1,0x00404082,7,2,32,NULL,0,1,4,' bonus bMdef,5; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2109,'Memorize_Book','Memory Book',5,NULL,10,1000,NULL,3,NULL,0,0x00810204,7,2,32,NULL,0,1,0,' bonus bInt,1; bonus bMdef,2; if (isequipped(2717) && isequipped(2212)) bonus bHPrecovRate,15; bonus bSPrecovRate,15; bonus bMatkRate,7; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2109,'Memorize_Book','Memory Book',5,NULL,10,1000,NULL,3,NULL,0,0x00810204,7,2,32,NULL,0,1,0,' bonus bInt,1; bonus bMdef,2; if (isequipped(2717) && isequipped(2212)) { bonus bHPrecovRate,15; bonus bSPrecovRate,15; bonus bMatkRate,7; }; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2110,'Holy_Guard','Holy Guard',5,85000,NULL,1400,NULL,5,NULL,0,0x00004000,7,2,32,NULL,68,0,3,' bonus bVit,2; bonus bMdef,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2111,'Herald_Of_GOD','Sacred Mission',5,128000,NULL,1600,NULL,5,NULL,0,0x00004000,7,2,32,NULL,83,1,3,' bonus bVit,3; bonus bInt,2; bonus bMdef,3; bonus bUnbreakableShield,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2112,'Novice_Guard','Novice Guard',5,1,NULL,1,NULL,3,NULL,0,0x00000001,7,2,32,NULL,0,0,1,NULL,NULL,NULL); @@ -1020,11 +1044,11 @@ REPLACE INTO `item_db` VALUES (2126,'Old_Shield','Old Shield',5,NULL,10,700,NULL REPLACE INTO `item_db` VALUES (2127,'Sakray_Test_Shield','Sakray Test Shield',5,NULL,10,0,NULL,10,NULL,0,0xFFFFFFFF,7,2,32,1,1,0,1,' bonus2 bSubRace,RC_NonBoss,-25; bonus2 bSubRace,RC_Boss,-25; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2128,'Herald_Of_GOD_','Sacred Mission',5,128000,NULL,1600,NULL,5,NULL,1,0x00004000,7,2,32,NULL,83,1,3,' bonus bVit,3; bonus bInt,2; bonus bMdef,3; bonus bUnbreakableShield,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2129,'Sacred_Scripture','Sacred Scripture',5,NULL,NULL,600,NULL,5,NULL,0,0x00008100,7,2,32,NULL,50,1,1,' bonus bHPrecovRate,3; bonus bSPrecovRate,3; bonus bInt,1; if(isequipped(1631)) bonus2 bSkillAtk,79,20; bonus3 bAutoSpellWhenHit,77,1,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2130,'Cross_Shield','Cross Shield',5,NULL,NULL,2000,NULL,6,NULL,0,0x00004000,7,2,32,NULL,80,1,1,' bonus bStr,1; bonus2 bSkillAtk,480,30; bonus2 bSkillAtk,251,30; bonus bUseSPrate,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2131,'Book_of_Charms_Volume_1','Book of Chars Vol. 1',5,NULL,NULL,1000,NULL,2,NULL,0,0x00010204,2,2,32,NULL,80,1,1,' bonus bMDef,3; bonus bInt,2; bonus2 bAddEffWhenHit,Eff_Stun,300; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2130,'Cross_Shield','Cross Shield',5,NULL,NULL,2000,NULL,6,NULL,1,0x00004000,7,2,32,NULL,80,1,1,' bonus bStr,1; bonus2 bSkillAtk,480,30; bonus2 bSkillAtk,251,30; bonus bUseSPrate,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2131,'Book_of_Charms_Volume_1','Book of Chars Vol. 1',5,NULL,NULL,1000,NULL,2,NULL,1,0x00010204,2,2,32,NULL,80,1,1,' bonus bMDef,3; bonus bInt,2; bonus2 bAddEffWhenHit,Eff_Stun,300; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2199,'Ahura_Mazda','Ahura Mazdah',5,1,NULL,10,NULL,100,NULL,0,0xFFFFFFFF,7,2,32,NULL,1,1,0,' bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; skill 479,5; ',NULL,NULL); -# // Headgears -# //=================================================================== +# Headgears +# =================================================================== REPLACE INTO `item_db` VALUES (2201,'Sunglasses','Sunglasses',5,5000,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,512,NULL,0,0,12,' bonus2 bResEff,Eff_Blind,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2202,'Sunglasses_','Sunglasses',5,5000,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,7,2,512,NULL,0,0,12,' bonus2 bResEff,Eff_Blind,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2203,'Glasses','Glasses',5,4000,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,512,NULL,0,0,3,NULL,NULL,NULL); @@ -1062,7 +1086,7 @@ REPLACE INTO `item_db` VALUES (2234,'Tiara','Tiara',5,20,NULL,400,NULL,4,NULL,0, REPLACE INTO `item_db` VALUES (2235,'Crown','Crown',5,20,NULL,400,NULL,4,NULL,0,0xFFFFFFFE,7,1,256,NULL,45,1,45,' bonus bInt,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2236,'Santa\'s_Hat','Santa Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,20,' bonus bMdef,1; bonus bLuk,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2237,'Weird_Goatee','Bandit Beard',5,2,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,21,NULL,NULL,NULL); -# //2238,Weird_Moustache,Moustache,5,2,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,0,22,{},{},{} +# REPLACE INTO `item_db` VALUES (2238,'Weird_Moustache','Moustache',5,2,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,22,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2239,'One_Eyed_Glass','Monocle',5,10000,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,512,NULL,0,0,23,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2240,'Beard','Beard',5,2,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,24,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2241,'Granpa_Beard','Grandpa Beard',5,5000,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,25,NULL,NULL,NULL); @@ -1124,8 +1148,8 @@ REPLACE INTO `item_db` VALUES (2296,'Binoculars','Binoculars',5,20,NULL,100,NULL REPLACE INTO `item_db` VALUES (2297,'Goblini_Mask','Goblin Mask',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFE,7,2,513,NULL,0,0,84,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2298,'Green_Feeler','Green Feeler',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,85,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2299,'Viking_Helm','Orc Helm',5,20,NULL,500,NULL,5,NULL,0,0x000654E2,7,2,256,NULL,0,1,86,NULL,NULL,NULL); -# // Armors -# //=================================================================== +# Armors +# =================================================================== REPLACE INTO `item_db` VALUES (2301,'Cotton_Shirt','Cotton Shirt',5,10,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2302,'Cotton_Shirt_','Cotton Shirt',5,10,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,16,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2303,'Leather_Jacket','Jacket',5,200,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,1,0,NULL,NULL,NULL); @@ -1186,23 +1210,31 @@ REPLACE INTO `item_db` VALUES (2357,'Valkyrie_Armor','Valkyrie\'s Armor',5,0,NUL REPLACE INTO `item_db` VALUES (2358,'Angel_Dress','Angel\'s Dress',5,NULL,10,1000,NULL,5,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,0,0,' bonus bLuk,4; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2359,'Ninja_Suit_','Ninja Suit',5,NULL,10,1500,NULL,7,NULL,1,0x02021040,7,2,16,NULL,50,1,0,' bonus bAgi,1; bonus bMdef,3; if(isequipped(2654)) { bonus bUseSPrate,-20; bonus bMaxHP,300; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (2360,'Robe_of_Casting_','Robe of Cast',5,124800,NULL,1100,NULL,5,NULL,1,0x00810200,7,2,16,NULL,75,1,0,' bonus bCastrate,-3; bonus bMdef,4; ',NULL,NULL); -# //2361,Blue_Aodai,Blue Robe,5,,10,500,,0,,0,0xFFFFFFFE,7,2,16,,0,1,0,{ bonus bAllStats,5; bonus bMdef,5; },{},{} -# //2362,Red_Aodai,Red Robe,5,,10,500,,0,,0,0xFFFFFFFE,7,2,16,,0,1,0,{ bonus bAllStats,5; bonus bMdef,5; },{},{} -# //2363,White_Aodai,White Robe,5,,10,500,,0,,0,0x00000001,7,2,16,,0,1,0,{ bonus bAllStats,3; bonus bMdef,5; },{},{} +# REPLACE INTO `item_db` VALUES (2361,'Blue_Aodai','Blue Robe',5,NULL,10,500,NULL,0,NULL,0,0xFFFFFFFE,7,2,16,NULL,0,1,0,' bonus bAllStats,5; bonus bMdef,5; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (2362,'Red_Aodai','Red Robe',5,NULL,10,500,NULL,0,NULL,0,0xFFFFFFFE,7,2,16,NULL,0,1,0,' bonus bAllStats,5; bonus bMdef,5; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (2363,'White_Aodai','White Robe',5,NULL,10,500,NULL,0,NULL,0,0x00000001,7,2,16,NULL,0,1,0,' bonus bAllStats,3; bonus bMdef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2364,'Meteor_Plate','Meteor Plate',5,NULL,10,3000,NULL,10,NULL,1,0x000444A2,2,2,16,NULL,55,1,0,' bonus2 bResEff,Eff_Stun,3000; bonus2 bResEff,Eff_Freeze,3000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2365,'Robes_of_Orleans','Robes of Orleans',5,NULL,10,300,NULL,2,NULL,1,0xFFFFFFFE,2,2,16,NULL,55,1,0,' bonus bCastrate,15; bonus bNoCastCancel,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2366,'Divine_Clothes','Divine Clothes',5,NULL,10,1500,NULL,6,NULL,1,0xFFFFFFFE,2,2,16,NULL,55,1,0,' bonus2 bResEff,Eff_Curse,500; bonus2 bResEff,Eff_Silence,500; bonus2 bResEff,Eff_Stun,500; bonus2 bResEff,Eff_Stone,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2367,'Sniping_Suits','Sniping Suit',5,NULL,10,750,NULL,5,NULL,1,0x00000800,2,2,16,NULL,50,1,0,' bonus bMdef,5; bonus bCritical,6+readparam(bLuk)/5; bonus bDelayRate,-23; ',NULL,NULL); -# //2368,Golden_Armor,Golden Armor,5,,10,2000,,4,,0,0xFFFFFFFF,7,2,16,,,1,0,{ bonus bMdef,4; },{},{} -# //2369,Freya's_Clothes,Freya's Clothes,5,,10,500,,12,,0,0xFFFFFFFE,7,2,16,,0,1,0,{ if ((isequipped(2428)) || (isequipped(2533)) || (isequipped(5306))) { bonus2 bSubRace,RC_DemiHuman,10; bonus bMaxHPrate,20; bonus2 bResEff,Eff_Freeze,10000; skill 88,10; } },{},{} +# REPLACE INTO `item_db` VALUES (2368,'Golden_Armor','Golden Armor',5,NULL,10,2000,NULL,4,NULL,0,0xFFFFFFFF,7,2,16,NULL,NULL,1,0,' bonus bMdef,4; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (2369,'Freya\'s_Clothes','Freya\'s Clothes',5,NULL,10,500,NULL,12,NULL,0,0xFFFFFFFE,7,2,16,NULL,0,1,0,' if ((isequipped(2428)) || (isequipped(2533)) || (isequipped(5306))) { bonus2 bSubRace,RC_DemiHuman,10; bonus bMaxHPrate,20; bonus2 bResEff,Eff_Freeze,10000; skill 88,10; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (2370,'Sakray_Test_Armor','Sakray Test Armor',5,NULL,10,0,NULL,15,NULL,0,0xFFFFFFFF,7,2,16,1,1,0,0,' bonus bMaxHP,300; bonus bMaxSP,30; bonus bBaseAtk,10; bonus bAGI,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2371,'G_Strings_','Pantie',5,1000,NULL,100,NULL,4,NULL,1,0xFFFFFFFF,7,2,16,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2372,'Mage_Coat_','Mage Coat',5,NULL,10,600,NULL,5,NULL,1,0x00810204,7,2,16,NULL,50,1,0,' bonus bMdef,5; bonus bInt,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2373,'Holy_Robe_','Holy Robe',5,NULL,10,1700,NULL,7,NULL,1,0x00008110,7,2,16,NULL,60,1,0,' bonus bMdef,5; bonus2 bSubRace,RC_Demon,15; bonus2 bSubEle,Ele_Dark,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2374,'Diablos_Robe','Diablos Robe',5,NULL,NULL,300,NULL,6,NULL,1,0x00098B1C,2,2,16,NULL,0,1,0,' bonus bMaxSP,150; bonus bMdef,5; bonus2 bSkillheal,28,6; bonus bDelayRate,-10; if (isequipped(2729)) bonus bAtkRate,3; bonus bMatkRate,3; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2374,'Diablos_Robe','Diablos Robe',5,NULL,NULL,300,NULL,6,NULL,1,0x00098B1C,2,2,16,55,0,1,0,' bonus bMaxSP,150; bonus bMdef,5; bonus2 bSkillheal,28,6; bonus bDelayRate,-10; if (isequipped(2729)) bonus bAtkRate,3; bonus bMatkRate,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2375,'Diablos_Armor','Diablos Armor',5,NULL,NULL,600,NULL,7,NULL,1,0x000654E2,2,2,16,NULL,0,1,0,' bonus bStr,2; bonus bDex,1; bonus bMaxHP,150; bonus2 bResEff,Eff_Stun,500; bonus2 bResEff,Eff_Stone,500; if (isequipped(2729)) bonus bAtkRate,3; bonus bMatkRate,3; ',NULL,NULL); -# // Footgears -# //=================================================================== +REPLACE INTO `item_db` VALUES (2376,'General\'s_Plate_Mail','General\'s Plate Mail',5,NULL,NULL,0,NULL,7,NULL,1,0x006444A2,7,2,16,NULL,80,1,0,' bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2538) && isequipped(2435)) { bonus2 bSubRace,RC_DemiHuman,3; bonus bVit,3; bonus bMaxHPRate,12; bonus2 bAddItemHealRate,IG_Recovery,10; bonusautoscript "{ heal 6000,0; }",10,BF_WEAPON; }; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2377,'Elite_Engineer\'s_Armor','Elite Engineer\'s Armor',5,NULL,NULL,0,NULL,7,NULL,1,0x00040420,7,2,16,NULL,80,1,0,' bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2538) && isequipped(2435)) { bonus2 bSubRace,RC_DemiHuman,3; bonus bStr,3; bonus bMaxHPRate,12; bonus2 bSkillAtk,42,20; bonus2 bSkillHeal,231,10; bonus bUnbreakableArmor,0; }; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2378,'Assassin\'s_Robe','Assassin\'s Robe',5,NULL,NULL,0,NULL,7,NULL,1,0x00021040,7,2,16,NULL,80,1,0,' bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539) && isequipped(2435)) { bonus2 bSubRace,RC_DemiHuman,3; bonus bAgi,3; bonus bCritical,3; bonus bMaxHPRate,12; bonusautoscript "{ heal 3000,0; }",10,BF_WEAPON; }; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2379,'Wolong\'s_Battle_Robe','Wolong\'s_Battle Robe',5,NULL,NULL,0,NULL,3,NULL,1,0x00010204,7,2,16,NULL,80,1,0,' bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539) && isequipped(2436)) { bonus2 bSubRace,RC_DemiHuman,3; bonus bInt,3; bonus bMaxHPRate,12; bonus2 bResEff,Eff_Stun,2000; bonus2 bAddEffWhenHit,Eff_Stone,100; }; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2380,'Robe_of_Order','Robe of Order',5,NULL,NULL,0,NULL,3,NULL,1,0x00008110,7,2,16,NULL,80,1,0,' bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539) && isequipped(2436)) { bonus2 bSubRace,RC_DemiHuman,3; bonus bInt,3; bonus bMaxHPRate,12; bonus2 bcastRate,156,-50; bonus2 bSkillHeal,28,6; bonus2 bSkillHeal,70,6; bonus2 bAddEffWhenHit,Eff_Stone,100; }; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2381,'Elite_Marksman_Suit','Elite Marksman Suit',5,NULL,NULL,0,NULL,3,NULL,1,0x00180808,7,2,16,NULL,80,1,0,' bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539) && isequipped(2436)) { bonus2 bSubRace,RC_DemiHuman,3; bonus bDex,3; bonus bMaxHPRate,12; bonus bLongAtkDef,10; bonus bDelayRate,-25; }; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2382,'Elite_Shooter\'s_Suit','Elite Shooter\'s Suit',5,NULL,NULL,0,NULL,3,NULL,1,0x01000000,7,2,16,NULL,80,1,0,' bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539) && isequipped(2436)) { bonus2 bSubRace,RC_DemiHuman,3; bonus bDex,3; bonus bMaxHPRate,12; bonus bLongAtkDef,10; bonus bDelayRate,-25; }; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2383,'Brynhildr','Brynhildr',5,NULL,10,400,NULL,10,NULL,0,0xFFFFFFFF,7,2,16,NULL,94,0,0,' bonus bMdef,10; bonus bMaxHP,20*BaseLevel; bonus bMaxSP,5*BaseLevel; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus2 bAddRace2,5,10; bonus bMatkRate,10; bonus bUnbreakableArmor,0; ',NULL,NULL); +# Footgears +# =================================================================== REPLACE INTO `item_db` VALUES (2401,'Sandals','Sandals',5,400,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,64,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2402,'Sandals_','Sandals',5,400,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,2,64,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2403,'Shoes','Shoes',5,3500,NULL,400,NULL,2,NULL,0,0xFFFFFFFE,7,2,64,NULL,0,1,0,NULL,NULL,NULL); @@ -1229,16 +1261,19 @@ REPLACE INTO `item_db` VALUES (2423,'Variant_Shoes','Variant Shoes',5,NULL,10,50 REPLACE INTO `item_db` VALUES (2424,'Tidal_Shoes','Tidal Shoes',5,NULL,10,300,NULL,3,NULL,1,0xFFFFFFFE,2,2,64,NULL,55,1,0,' bonus2 bSubEle,Ele_Water,5; if (isequipped(2528)) { bonus bHPrecovRate,5; bonus bMaxHPrate,10; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (2425,'Black_Leather_Boots','Black Leather Boots',5,NULL,10,500,NULL,4,NULL,0,0xFFFFFFFE,2,2,64,NULL,55,1,0,' bonus bAgi,1; if(getrefine() >= 9) bonus bAgi,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2426,'Shadow_Walk','Shadow Walk',5,NULL,10,2000,NULL,0,NULL,0,0xFFFFFFFE,2,2,64,NULL,75,1,0,' bonus bMdef,10; if(getskilllv(135) < 3){ bonus5 bAutoSpellWhenHit,135,3,50,BF_MAGIC,0; } else bonus5 bAutoSpellWhenHit,135,getskilllv(135),50,BF_MAGIC,0; ',NULL,NULL); -# //2427,Golden_Shoes,Golden Shoes,5,,10,300,,4,,0,0xFFFFFFFF,7,2,64,,,1,0,{ bonus bMdef,4; },{},{} -# //2428,Freya's_Boots,Freya's Boots,5,,10,300,,10,,0,0xFFFFFFFF,7,2,64,,0,1,0,{},{},{} +# REPLACE INTO `item_db` VALUES (2427,'Golden_Shoes','Golden Shoes',5,NULL,10,300,NULL,4,NULL,0,0xFFFFFFFF,7,2,64,NULL,NULL,1,0,' bonus bMdef,4; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (2428,'Freya\'s_Boots','Freya\'s Boots',5,NULL,10,300,NULL,10,NULL,0,0xFFFFFFFF,7,2,64,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2429,'Iron_Shoes_01','Iron Shoes 01',5,NULL,10,1500,NULL,5,NULL,0,0x030E5CEA,7,2,64,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2430,'Iron_Shoes_02','Iron Shoes 02',5,NULL,10,800,NULL,5,NULL,0,0x00018315,7,2,64,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2431,'Sakray_Test_Shoes','Sakray Test Shoes',5,NULL,10,0,NULL,10,NULL,0,0xFFFFFFFE,7,2,64,1,1,0,0,' bonus bMaxHPRate,7; bonus bMaxSPRate,7; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2432,'Spiky_Heel_','High Heels',5,8500,NULL,600,NULL,2,NULL,1,0xFFFFFFFE,7,2,64,NULL,0,1,0,' bonus bMdef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2433,'Diablos_Boots','Diablos Boots',5,NULL,NULL,250,NULL,4,NULL,1,0x000FDF80,2,2,64,NULL,0,1,0,' bonus bMaxHP,(BaseLevel*10); ',NULL,NULL); REPLACE INTO `item_db` VALUES (2434,'Black_Leather_Boots_','Black Leather Boots',5,NULL,10,500,NULL,4,NULL,1,0xFFFFFFFE,2,2,64,NULL,55,1,0,' bonus bAgi,1; if(getrefine() >= 9) bonus bAgi,2; ',NULL,NULL); -# // Garments -# //=================================================================== +REPLACE INTO `item_db` VALUES (2435,'General\'s_Greaves','General\'s Greaves',5,NULL,NULL,0,NULL,4,NULL,1,0x006654E2,7,2,64,NULL,80,1,0,' bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2436,'Military_Boots','Military Boots',5,NULL,NULL,0,NULL,3,NULL,1,0x0099AB1C,7,2,64,NULL,80,1,0,' bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2437,'Battleground_Boots','Battleground Boots',5,NULL,NULL,0,NULL,3,NULL,1,0x01000000,7,2,64,NULL,80,1,0,' bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; ',NULL,NULL); +# Garments +# =================================================================== REPLACE INTO `item_db` VALUES (2501,'Hood','Hood',5,1000,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,4,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2502,'Hood_','Hood',5,1000,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,2,4,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2503,'Muffler','Muffler',5,5000,NULL,400,NULL,2,NULL,0,0xFFFFFFFE,7,2,4,NULL,0,1,0,NULL,NULL,NULL); @@ -1271,13 +1306,17 @@ REPLACE INTO `item_db` VALUES (2529,'Decoration_of_the_Rider','Crest of the Ride REPLACE INTO `item_db` VALUES (2530,'Decoration_of_the_Rider_','Crest of the Rider',5,NULL,10,500,NULL,4,NULL,1,0xFFFFFFFE,2,2,4,NULL,55,1,0,' bonus bAgi,2; if (isequipped(2425) || isequipped(2434)) bonus bFlee,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2531,'Wolfhedin','Wolfheiden',5,NULL,10,700,NULL,3,NULL,1,0x000654E2,2,2,4,NULL,70,1,0,' bonus5 bAutoSpellWhenHit,675,1,20,BF_WEAPON,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2532,'Mithril_Magic_Cape','Mithril Magic Manteau',5,NULL,10,400,NULL,3,NULL,1,0x00098B1C,2,2,4,NULL,70,1,0,' bonus bMdef,3; bonus5 bAutoSpellWhenHit,676,1,20,BF_MAGIC,0; ',NULL,NULL); -# //2533,Freya's_Manteau,Freya's Manteau,5,,10,200,,10,,0,0xFFFFFFFE,7,2,4,,0,1,0,{},{},{} +# REPLACE INTO `item_db` VALUES (2533,'Freya\'s_Manteau','Freya\'s Manteau',5,NULL,10,200,NULL,10,NULL,0,0xFFFFFFFE,7,2,4,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2534,'Sakray_Test_Garment','Sakray Test Garment',5,NULL,10,0,NULL,10,NULL,0,0x006654E2,7,2,4,1,1,0,0,' bonus2 bSubEle,Ele_Neutral,17; bonus bFlee,17; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2535,'Clack_of_Survival_C','Refined Survivor\'s Manteau',5,NULL,0,0,NULL,5,NULL,0,0x00810204,7,2,4,NULL,1,0,0,' bonus bVit,10; bonus bMdef,10; if (isequipped(1618) || isequipped(1620)) { bonus bMatkRate,5; bonus2 bSubEle,Ele_Neutral,25; } ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2536,'Skin_of_Ventoss','Skin of Ventoss',5,NULL,NULL,250,NULL,2,NULL,1,0xFFFFFFFE,7,2,4,NULL,60,0,0,' bonus bMdef,5; bonus bMaxHP,200; bonus bFlee,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2537,'Diablos_Manteau','Diablos Manteau',5,NULL,NULL,250,NULL,5,NULL,1,0x000FDF80,2,2,4,NULL,1,0,0,' bonus2 bSubEle,Ele_Neutral,5; bonus bMaxHP,100; if (isequipped(2433)) bonus bMaxHPRate,6; ',NULL,NULL); -# // Accessories -# //=================================================================== +REPLACE INTO `item_db` VALUES (2536,'Skin_of_Ventoss','Skin of Ventoss',5,NULL,NULL,250,NULL,2,NULL,1,0xFFFFFFFE,7,2,4,NULL,60,1,0,' bonus bMdef,5; bonus bMaxHP,200; bonus bFlee,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2537,'Diablos_Manteau','Diablos Manteau',5,NULL,NULL,250,NULL,5,NULL,1,0x000FDF80,2,2,4,NULL,1,1,0,' bonus2 bSubEle,Ele_Neutral,5; bonus bMaxHP,100; if (isequipped(2433)) bonus bMaxHPRate,6; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2538,'General\'s_Manteau','General\'s Manteau',5,NULL,NULL,0,NULL,4,NULL,1,0x006654E2,7,2,4,NULL,80,1,0,' bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2539,'Commander\'s_Manteau','Commander\'s Manteau',5,NULL,NULL,0,NULL,3,NULL,1,0x0099AB1C,7,2,4,NULL,80,1,0,' bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2540,'Officer\'s_Manteau','Officer\'s Manteau',5,NULL,NULL,0,NULL,3,NULL,1,0x01000000,7,2,4,NULL,80,1,0,' bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2541,'Aesprika','Aesprika',5,NULL,NULL,400,NULL,5,NULL,0,0xFFFFFFFF,7,2,4,NULL,94,0,0,' bonus bMdef,5; bonus2 bSubEle,Ele_Neutral,30; bonus2 bSubEle,Ele_Water,30; bonus2 bSubEle,Ele_Earth,30; bonus2 bSubEle,Ele_Fire,30; bonus2 bSubEle,Ele_Wind,30; bonus2 bSubEle,Ele_Poison,30; bonus2 bSubEle,Ele_Holy,30; bonus2 bSubEle,Ele_Dark,30; bonus2 bSubEle,Ele_Ghost,30; bonus2 bSubEle,Ele_Undead,30; bonus bFlee,30; skill 26,1; bonus bUnbreakableArmor,0; ',NULL,NULL); +# Accessories +# =================================================================== REPLACE INTO `item_db` VALUES (2601,'Ring','Ring',5,30000,NULL,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,20,0,0,' bonus bStr,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2602,'Earring','Earring',5,30000,NULL,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,20,0,0,' bonus bInt,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2603,'Necklace','Necklace',5,30000,NULL,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,20,0,0,' bonus bVit,2; ',NULL,NULL); @@ -1308,8 +1347,8 @@ REPLACE INTO `item_db` VALUES (2628,'Novice_Armlet','Novice Armlet',5,400,NULL,2 REPLACE INTO `item_db` VALUES (2629,'Magingiorde','Megingjard',5,NULL,10,8000,NULL,2,NULL,0,0xFFFFFFFF,7,2,136,NULL,94,0,0,' bonus bStr,40; bonus bMdef,7; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2630,'Brysinggamen','Brisingamen',5,NULL,10,1500,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,94,0,0,' bonus bStr,6; bonus bAgi,6; bonus bVit,6; bonus bInt,6; bonus bLuk,10; bonus bMdef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2631,'First_Age_Ring','Celebration Ring',5,1,NULL,10,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,1,0,0,NULL,NULL,NULL); -# //2632,Korean_Trinket,Korean Trinket,5,125000,,100,,1,,0,0xFFFFFFFE,7,2,136,,65,0,0,{ bonus bVit,1; bonus bDex,1; bonus bLuk,1; },{},{} -# //2633,Jade_Ring,Jade Ring,5,204000,,100,,0,,0,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bStr,2; bonus bInt,1; },{},{} +# REPLACE INTO `item_db` VALUES (2632,'Korean_Trinket','Korean Trinket',5,125000,NULL,100,NULL,1,NULL,0,0xFFFFFFFE,7,2,136,NULL,65,0,0,' bonus bVit,1; bonus bDex,1; bonus bLuk,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (2633,'Jade_Ring','Jade Ring',5,204000,NULL,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,80,0,0,' bonus bStr,2; bonus bInt,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2634,'Bridegroom_Ring','Wedding Ring',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,1,136,NULL,0,0,0,' skill 334,1; skill 335,1; skill 336,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2635,'Bride_Ring','Wedding Ring',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,0,136,NULL,0,0,0,' skill 334,1; skill 335,1; skill 336,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2636,'Gold_Ring_','Gold Christmas Ring',5,30000,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,' bonus bLuk,1; ',NULL,NULL); @@ -1380,22 +1419,23 @@ REPLACE INTO `item_db` VALUES (2700,'Red_Silk_of_Seal','Red Silk of Seal',5,NULL REPLACE INTO `item_db` VALUES (2701,'Glove_of_Orleans','Glove of Orleans',5,NULL,10,100,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,90,0,0,' bonus bDex,2; bonus bMatkRate,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2702,'Horn_of_the_Buffalo','Horn of the Buffalo',5,NULL,10,100,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,90,0,0,' bonus bAgi,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2703,'Expert_Ring','Expert Ring',5,NULL,10,150,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,90,0,0,' bonus bDelayRate,-5; bonus bUseSPrate,5; ',NULL,NULL); -# //2704,Golden_Accessories,Golden Accessories,5,,10,100,,4,,0,0xFFFFFFFF,7,2,136,,,,,{ bonus bMdef,4; },{},{} -# //2705,Golden_Accessories_,Golden Accessories,5,,10,100,,4,,0,0xFFFFFFFF,7,2,136,,,,,{ bonus2 bAddMonsterDropItem,12018,500; },{},{} +# REPLACE INTO `item_db` VALUES (2704,'Golden_Accessories','Golden Accessories',5,NULL,10,100,NULL,4,NULL,0,0xFFFFFFFF,7,2,136,NULL,NULL,NULL,NULL,' bonus bMdef,4; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (2705,'Golden_Accessories_','Golden Accessories',5,NULL,10,100,NULL,4,NULL,0,0xFFFFFFFF,7,2,136,NULL,NULL,NULL,NULL,' bonus2 bAddMonsterDropItem,12018,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2706,'Arrest_Handcuffs','Arrest Handcuffs',5,NULL,19,10,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,0,0,0,NULL,NULL,NULL); -# //2707,Gusli,Gusli,5,,10,100,,0,,0,0xFFFFFFFF,7,2,136,,0,0,0,{},{},{} +# REPLACE INTO `item_db` VALUES (2707,'Gusli','Gusli',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2708,'Chinese_Handicraft','Chinese Handicraft',5,NULL,10,50,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,' bonus3 bAutoSpell,19,5,300; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2709,'5th_Anniversary_Coin','5th Anniversary Coin',5,NULL,0,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,1,0,0,' bonus bAtkRate,5; bonus bMatkRate,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2710,'Bloody_Iron_Ball_C','Refined Bloodied Shackle Ball',5,NULL,0,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,1,0,0,' bonus bBaseAtk,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2711,'Spiritual_Ring_C','Refined Spiritual Ring',5,NULL,0,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,1,0,0,' bonus bInt,2; bonus bDex,2; if(isequipped(2607) || isequipped(2608) || isequipped(2626)) { bonus2 bSkillAtk,28,50; bonus2 bSkillAtk,79,30; bonus bSPrecovRate,9; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (2712,'Collector\'s_Edition_Book','Collector\'s Edition Book',5,NULL,10,300,NULL,0,NULL,1,0xFFFFFFFF,7,2,136,NULL,1,0,0,' bonus bAgi,3; bonus bVit,3; bonus bLuk,3; ',NULL,NULL); -# // -# // +REPLACE INTO `item_db` VALUES (2714,'Miraculous_Paendeonteu','Miraculous Paendeonteu',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# +# REPLACE INTO `item_db` VALUES (2715,'Skul_Ring_','Skull Ring',5,10000,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,7,2,136,NULL,0,0,0,' bonus2 bSubRace,RC_Undead,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2716,'Librarian_Gloves','Librarian Gloves',5,NULL,NULL,100,NULL,0,NULL,1,0x00812200,7,2,136,NULL,0,0,0,' bonus MaxSP,20; if (getiteminfo(getequipid(EQI_HAND_R),11) == 15 && isequipped(2717)) bonus bInt,5; bonus bMaxHP,700; bonus bAspdRate,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2717,'Pocket_Watch','Pocket Watch',5,NULL,NULL,100,NULL,0,NULL,0,0x00010204,7,2,136,NULL,80,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2718,'Lunatic_Brooch','Lunatic Brooch',5,NULL,NULL,100,NULL,0,NULL,1,0x00080808,7,2,136,NULL,65,0,0,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (2719,'Gauntlet','Gauntlet',5,NULL,10,700,NULL,0,NULL,0,0x000444A2,2,2,136,NULL,50,0,0,' bonus2 bAddRace,RC_NonBoss,6; bonus2 bAddRace,RC_Boss,6; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2719,'Iron_Wrist','Iron Wrist',5,NULL,10,700,NULL,0,NULL,0,0x000444A2,2,2,136,NULL,50,0,0,' bonus2 bSkillAtk,5,6; bonus2 bSkillAtk,42,6; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2720,'SM_Medalion','Medalion',5,NULL,NULL,0,NULL,1,NULL,0,0x00004082,7,2,136,NULL,70,0,0,' bonus bAtkRate,5; bonus bMatkRate,5; bonus bHit,10; bonus bMaxHP,500; bonus bMaxSP,50; bonus2 bAddEff,Eff_Stun,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2721,'TF_Medalion','Medalion',5,NULL,NULL,0,NULL,1,NULL,0,0x00021040,7,2,136,NULL,70,0,0,' bonus bAtkRate,5; bonus bMatkRate,5; bonus bFlee,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus2 bAddEff,Eff_Poison,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2722,'AL_Medalion','Medalion',5,NULL,NULL,0,NULL,1,NULL,0,0x00008110,7,2,136,NULL,70,0,0,' bonus bAtkRate,5; bonus bMatkRate,5; bonus bMdef,6; bonus bMaxHP,600; bonus2 bAddEff,Eff_Silence,100; ',NULL,NULL); @@ -1403,14 +1443,17 @@ REPLACE INTO `item_db` VALUES (2723,'MG_Medalion','Medalion',5,NULL,NULL,0,NULL, REPLACE INTO `item_db` VALUES (2724,'AC_Medalion','Medalion',5,NULL,NULL,0,NULL,1,NULL,0,0x00080808,7,2,136,NULL,70,0,0,' bonus bAtkRate,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus2 bAddEff,Eff_Blind,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2725,'MC_Medalion','Medalion',5,NULL,NULL,0,NULL,1,NULL,0,0x00040420,7,2,136,NULL,70,0,0,' bonus bAtkRate,5; bonus bMatkRate,5; bonus bAspd,10; bonus bMaxHP,500; bonus bMaxSP,50; bonus2 bAddEff,Eff_Curse,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2726,'Feather_of_Icarus','Feather of Icarus',5,NULL,NULL,100,NULL,0,NULL,0,0x00000800,2,2,136,NULL,70,0,0,' bonus bMaxSP,50; bonus bDex,3; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (2727,'Renown_Archer\'s_Scarf','Renown Archer\'s Scarf',5,NULL,NULL,200,NULL,0,NULL,0,0x00000800,2,2,136,NULL,0,0,0,' bonus bMaxSP,50; bonus bDex,3; bonus bUseSPrate,-25; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2727,'Renown_Archer\'s_Scarf','Renown Archer\'s Scarf',5,NULL,NULL,200,NULL,0,NULL,0,0x00000800,2,2,136,NULL,0,0,0,' bonus bMaxSP,50; bonus bDex,3; if (isequipped(2726)) bonus bUseSPrate,-25; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2728,'Cursed_Hand','Cursed Hand',5,NULL,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,78,0,0,' bonus3 bAutoSpell,673,1,30; bonus bHit,10; bonus bHPrecovRate,20; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2729,'Diablos_Ring','Diablos Ring',5,NULL,NULL,50,NULL,0,NULL,1,0x000FDF80,2,2,136,NULL,0,0,0,' bonus bMaxHP,100; bonus bMaxSP,100; bonus2 bSkillheal,28,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2730,'Continental_Guard_Seal','Continental Guard Seal',5,NULL,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,78,0,0,' bonus bMaxHP,50; bonus bAspdRate,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2731,'Rune_Charm_Stone','Rune Charm Stone',5,NULL,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,78,0,0,' bonus bMaxSP,50; bonus bCastRate,-1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (2732,'Death_Medalion','Death Medalion',5,NULL,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,80,0,0,' bonus bCritical,5; ',NULL,NULL); -# // Cards -# //=================================================================== +REPLACE INTO `item_db` VALUES (2733,'Officer\'s_Medalion','Officer\'s Medalion',5,NULL,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,' bonus bAtkRate,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (2734,'Patrol_Mission','Patrol Mission',5,NULL,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (2735,'Patrol_Mission_','Patrol Mission',5,NULL,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,NULL,NULL,NULL); +# Cards +# =================================================================== REPLACE INTO `item_db` VALUES (4001,'Poring_Card','Poring Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bLuk,2; bonus bFlee2,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4002,'Fabre_Card','Fabre Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bVit,1; bonus bMaxHP,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4003,'Pupa_Card','Pupa Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bMaxHP,700; ',NULL,NULL); @@ -1709,7 +1752,7 @@ REPLACE INTO `item_db` VALUES (4295,'Kraben_Card','Kraben Card',6,NULL,10,10,NUL REPLACE INTO `item_db` VALUES (4296,'Cramp_Card','Cramp Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,' bonus2 bGetZenyNum,500,1; if(isequipped(4028)) bonus bStr,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4297,'Cruiser_Card','Cruiser Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' bonus bCritAtkRate,10; bonus2 bCriticalAddRace,RC_Brute,7; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4298,'Cremy_Fear_Card','Creamy Fear Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Confusion,600; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (4299,'Clock_Card','Clock Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus3 bAutoSpellWhenHit,249,3+7*(getskilllv(249)==10),30; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (4299,'Clock_Card','Clock Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus3 bAutoSpellWhenHit,249,3+7*(getskilllv(249)==10),30; ',NULL,' sc_end SC_AUTOGUARD; '); REPLACE INTO `item_db` VALUES (4300,'Chimera_Card','Chimera Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Poison,300+600*(BaseJob==Job_Assassin); ',NULL,NULL); REPLACE INTO `item_db` VALUES (4301,'Killer_Mantis_Card','Killer Mantis Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus2 bAddEffWhenHit,Eff_Bleeding,600; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4302,'Tao_Gunka_Card','Tao Gunka Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,' bonus bMaxHPrate,100; bonus bDef,-50; bonus bMdef,-50; ',NULL,NULL); @@ -1852,8 +1895,8 @@ REPLACE INTO `item_db` VALUES (4438,'Banshee_Card','Banshee Card',6,NULL,10,10,N REPLACE INTO `item_db` VALUES (4439,'Flame_Skull_Card','Flame Skull Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,' bonus2 bResEff,Eff_Blind,3000; bonus2 bResEff,Eff_Stun,3000; bonus2 bResEff,Eff_Curse,3000; bonus2 bResEff,Eff_Stone,3000; bonus2 bAddEffWhenHit,Eff_Blind,100; bonus2 bAddEffWhenHit,Eff_Stun,100; bonus2 bAddEffWhenHit,Eff_Curse,100; bonus2 bAddEffWhenHit,Eff_Stone,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (4440,'Necromancer_Card','Necromancer Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,' if (getiteminfo(getequipid(EQI_HAND_R),11) == 10) { bonus bInt,1; bonus bIgnoreMdefRate,2; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (4441,'Fallen_Bishop_Hibram_Card','Fallen Bishop Hibram Card',6,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,' bonus bMatkRate,10; bonus bMaxSPrate,-50; bonus2 bMagicAddRace,RC_Angel,50; bonus2 bMagicAddRace,RC_DemiHuman,50; ',NULL,NULL); -# // More Headgears -# //=================================================================== +# More Headgears +# =================================================================== REPLACE INTO `item_db` VALUES (5001,'Headset','Headset',5,20,NULL,200,NULL,3,NULL,0,0xFFFFFFFE,7,2,256,NULL,1,1,87,' bonus2 bResEff,Eff_Curse,1000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5002,'Gemmed_Crown','Jewel Crown',5,20,NULL,600,NULL,4,NULL,0,0x000654E2,7,2,256,NULL,60,1,88,' bonus bMdef,3; bonus bInt,2; bonus bLuk,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5003,'Joker_Jester','Joker Jester',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,1,89,' bonus bMdef,5; bonus bLuk,2; ',NULL,NULL); @@ -1948,7 +1991,7 @@ REPLACE INTO `item_db` VALUES (5091,'Big_Golden_Bell','Decorative Golden Bell',5 REPLACE INTO `item_db` VALUES (5092,'Blue_Coif','Coif',5,150000,NULL,300,NULL,5,NULL,0,0x00001100,7,2,768,NULL,65,1,176,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5093,'Blue_Coif_','Coif',5,150000,NULL,300,NULL,5,NULL,1,0x00001100,7,2,768,NULL,65,1,177,' bonus bMaxSP,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5094,'Orc_Hero_Helm','Helmet of Orc Hero',5,500000,NULL,900,NULL,5,NULL,0,0xFFFFFFFE,7,2,768,NULL,55,1,178,' bonus bStr,2; bonus bVit,1; ',NULL,NULL); -# //5095,Orc_Hero_Helm_,Helmet of Orc Hero,5,800000,,1000,,5,,1,0xFFFFFFFE,7,2,768,,55,1,179,{ bonus bStr,2; bonus bVit,1; },{},{} +# REPLACE INTO `item_db` VALUES (5095,'Orc_Hero_Helm_','Helmet of Orc Hero',5,800000,NULL,1000,NULL,5,NULL,1,0xFFFFFFFE,7,2,768,NULL,55,1,179,' bonus bStr,2; bonus bVit,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5096,'Assassin_Mask_','Assassin Mask',5,20,NULL,100,NULL,0,NULL,0,0x00001100,7,2,1,NULL,70,0,180,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5097,'Cone_Hat_','4 Years Anniversary Hat',5,0,NULL,400,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,144,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5098,'Tiger_Mask','Tiger Mask',5,20,NULL,400,NULL,2,NULL,0,0xFFFFFFFF,7,2,768,NULL,50,0,181,' bonus bStr,3; bonus bMaxHP,100; ',NULL,NULL); @@ -2078,7 +2121,7 @@ REPLACE INTO `item_db` VALUES (5221,'Pair_Of_Red_Ribbon_','Evolved Small Ribbons REPLACE INTO `item_db` VALUES (5222,'Fish_On_Head_','Evolved Blue Fish',5,20,NULL,500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,149,' bonus bAgi,1; bonus bDex,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5223,'Big_Golden_Bell_','Evolved Decorative Golden Bell',5,20,NULL,200,NULL,2,NULL,0,0xFFFFFFFE,7,2,768,NULL,35,1,175,' bonus bAgi,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5224,'Orc_Hero_Helm_TW','Evolved Helmet of Orc Hero',5,20,NULL,900,NULL,5,NULL,0,0xFFFFFFFE,7,2,768,NULL,55,1,178,' bonus bStr,2; bonus bVit,1; bonus bMaxHPrate,10; ',NULL,NULL); -# //5225,Marcher_Hat,Holy Marcher Hat,5,,10,200,,2,,1,0xFFFFFFFF,7,2,256,,10,1,269,{ bonus bMdef,2; bonus bStr,2; bonus3 bAutoSpell,33,5,10; },{},{} +# REPLACE INTO `item_db` VALUES (5225,'Marcher_Hat','Holy Marcher Hat',5,NULL,10,200,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,10,1,269,' bonus bMdef,2; bonus bStr,2; bonus3 bAutoSpell,33,5,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5226,'Mini_Propeller_','Advanced Mini Propeller',5,NULL,10,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,270,' bonus bAgi,2; bonus bDex,1; bonus bFlee,10; bonus bCastrate,-getrefine(); ',NULL,NULL); REPLACE INTO `item_db` VALUES (5227,'Red_Deviruchi_Cap','Red Deviruchi Hat',5,NULL,10,800,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,64,1,271,' bonus bStr,1; bonus bInt,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5228,'White_Deviruchi_Cap','White Deviruchi Hat',5,NULL,10,800,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,64,1,272,' bonus bStr,1; bonus bInt,1; ',NULL,NULL); @@ -2142,43 +2185,43 @@ REPLACE INTO `item_db` VALUES (5285,'Vane_Hairpin','Vane Hairpin',5,NULL,10,300, REPLACE INTO `item_db` VALUES (5286,'Pecopeco_Hairband','Pecopeco Hairband',5,NULL,10,0,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,314,' bonus bSpeedRate,5; bonus bAspdRate,-10; bonus bCastrate,25; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5287,'Summer_Hat','Summer Hat',5,NULL,10,200,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,0,315,' bonus bVit,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5288,'Red_Glasses','Red Glasses',5,NULL,10,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,0,0,316,' bonus bInt,1; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5289,'Vanilmirth_Hat','Vanilmirth Hat',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,0,317,' bonus bUnbreakableArmor,0; bonus3 bAutoSpell,19,1,100; bonus3 bAutoSpell,14,1,100; bonus3 bAutoSpell,20,1,100; bonus3 bAutoSpell,90,1,100; bonus bMdef,5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5289,'Vanilmirth_Hat','Vanilmirth Hat',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,0,317,' bonus bUnbreakableArmor,0; bonus3 bAutoSpell,19,1,10; bonus3 bAutoSpell,14,1,10; bonus3 bAutoSpell,20,1,10; bonus3 bAutoSpell,90,1,10; bonus bMdef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5290,'Evolved_Drooping_Bunny','Drooping Bunny',5,NULL,10,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,249,' bonus bDex,1; bonus bFlee,2; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (5291,'Kettle_Hat','Kettle Hat',5,NULL,10,600,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,318,' bonus4 bAutoSpell,286,2,300,0; bonus3 bAutoSpell,86,3,300; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5291,'Kettle_Hat','Kettle Hat',5,NULL,10,600,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,318,' bonus4 bAutoSpell,286,2,30,0; bonus3 bAutoSpell,86,3,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5292,'Dragon_Skull','Dragon Skull',5,NULL,10,800,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,319,' bonus2 bSubRace,RC_Dragon,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5293,'Ramen_Hat','Ramen Hat',5,NULL,10,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,320,' bonus bDex,4; bonus3 bAutoSpell,30,1,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5294,'Whisper_Mask','Whisper Mask',5,NULL,10,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,769,NULL,0,0,321,' bonus bAgi,3; bonus2 bSubEle,Ele_Ghost,-10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5296,'Drooping_Nine_Tail','Drooping Nine Tail',5,NULL,10,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,296,' bonus bAgi,1; bonus bCritical,1; ',NULL,NULL); -# //5295,Golden_Bandana,Golden Bandana,5,,10,2400,,4,,0,0xFFFFFFFF,7,2,768,,,1,138,{ bonus bMdef,4; },{},{} +# REPLACE INTO `item_db` VALUES (5295,'Golden_Bandana','Golden Bandana',5,NULL,10,2400,NULL,4,NULL,0,0xFFFFFFFF,7,2,768,NULL,NULL,1,138,' bonus bMdef,4; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5297,'Soul_Wing','Soul Wing',5,NULL,10,300,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,301,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5298,'Dokebi\'s_Wig','Dokebi\'s Wig',5,NULL,10,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,768,NULL,0,0,302,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5299,'Pagdayaw','Pagdayaw',5,NULL,10,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,769,NULL,0,0,303,' bonus3 bAutoSpell,326,1,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5300,'Bullock_Helm','Bullock Helm',5,NULL,10,800,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,45,1,322,' bonus bMaxHP,100; ',NULL,NULL); -# //5301,Victory_Hairband,Victory Hairband,5,,10,100,,0,,0,0xFFFFFFFF,7,2,256,,0,1,323,{},{},{} +# REPLACE INTO `item_db` VALUES (5301,'Victory_Hairband','Victory Hairband',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,323,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5302,'Flower_Lily','Flower Lily',5,NULL,10,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,0,324,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5303,'Flower_Crown','Flower Crown',5,NULL,10,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,325,' bonus bMdef,3; bonus bMaxHP,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5304,'Executioner_Hood','Executioner Hood',5,NULL,10,800,NULL,4,NULL,1,0xFFFFFFFF,7,2,769,NULL,50,1,326,' bonus2 bResEff,Eff_Curse,700; bonus2 bResEff,Eff_Blind,10000; ',NULL,NULL); -# //5305,Pirate_Dagger,Pirate Dagger,5,,10,100,,0,,0,0xFFFFFFFF,7,2,1,,0,0,327,{},{},{} -# //5306,Freya's_Crown,Freya's Crown,5,,10,500,,12,,0,0xFFFFFFFE,7,2,256,,0,0,328,{ bonus2 bSubRace,RC_DemiHuman,5; skill 88,10; bonus bMaxHPrate,20; },{},{} -# //5307,Carmen_Miranda's_Hat,Carmen Miranda's Hat,5,,10,400,,3,,0,0xFFFFFFFF,7,0,256,,0,1,329,{ bonus bMdef,3; bonus3 bAutoSpellWhenHit,1011,1,50; },{},{} -# //5308,Brazil_National_Flag_Hat,Brazil National Flag Hat,5,,10,300,,3,,1,0xFFFFFFFF,7,0,256,,0,1,330,{ bonus bSpeedAddRate,25; },{},{} -# //5309,Wool_Mask,Wool Mask,5,,10,200,,1,,0,0xFFFFFFFF,7,0,769,,0,1,331,{ skill 220,1; },{},{} -# //5310,Shining_Electric_Bulb,Shining Electric Bulb,5,,10,100,,3,,1,0xFFFFFFFF,7,2,256,,0,0,332,{ bonus2 bSubEle,Ele_Dark,10; skill 10,1; },{},{} -# //5311,Large_Hibiscus,Large Hibiscus,5,,10,100,,1,,1,0xFFFFFFFF,7,2,256,,0,0,333,{ bonus bMdef,15; },{},{} -# //5312,Ayothaya_King's_Hat,Ayothaya King's Hat,5,,10,100,,5,,1,0x000654E2,7,2,256,,0,1,334,{ bonus bStr,1; bonus2 bAddRace,RC_DemiHuman,5; },{},{} -# //5313,Diadem,Diadem,5,,10,100,,3,,1,0xFFFFFFFF,7,2,768,,0,1,335,{ bonus bInt,1; bonus bMatkRate,3; bonus bCastrate,-3; },{},{} -# //5314,Hockey_Mask,Hockey Mask,5,,10,100,,1,,0,0xFFFFFFFF,7,2,513,,50,0,336,{ bonus2 bAddRace,RC_DemiHuman,5; },{},{} -# //5315,Observer,Observer,5,,10,100,,1,,0,0xFFFFFFFF,7,2,512,,35,0,337,{ skill 93,1; },{},{} -# //5316,Umbrella_Hat,Umbrella Hat,5,,10,100,,2,,0,0xFFFFFFFF,7,2,256,,50,1,338,{ bonus2 bSubEle,Ele_Water,3; },{},{} -# //5317,Fisherman's_Hat,Fisherman's Hat,5,,10,100,,2,,0,0xFFFFFFFF,7,2,256,,50,1,339,{ bonus3 bAutoSpell,86,3,50; },{},{} -# //5318,Poring_Party_Hat,Poring Party Hat,5,,10,700,,2,,0,0xFFFFFFFF,7,2,256,,0,1,340,{ bonus bAllStats,3; },{},{} -# //5319,Hello_Mother_Hat,Hello Mother Hat,5,,10,200,,2,,0,0xFFFFFFFE,7,2,256,,10,1,341,{ bonus bLuk,3; },{},{} -# //5320,Champion_Wreath,Sacred Palma,5,,10,500,,4,,0,0xFFFFFFFF,7,2,256,,0,1,261,{ bonus bAllStats,2; bonus4 bAutoSpellWhenHit,28,1,50,0; },{},{} -# //5321,Indonesian_Bandana,Bandana Merah Putih,5,,10,500,,4,,0,0xFFFFFFFF,7,2,256,,0,1,342,{ bonus2 bAddMonsterDropItem,518,100; },{},{} -# //5322,Scarf,Scarf,5,,10,100,,2,,0,0xFFFFFFFF,7,2,256,,24,0,343,{ bonus bFlee,5; bonus bMdef,2; },{},{} +# REPLACE INTO `item_db` VALUES (5305,'Pirate_Dagger','Pirate Dagger',5,NULL,10,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,327,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5306,'Freya\'s_Crown','Freya\'s Crown',5,NULL,10,500,NULL,12,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,0,328,' bonus2 bSubRace,RC_DemiHuman,5; skill 88,10; bonus bMaxHPrate,20; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5307,'Carmen_Miranda\'s_Hat','Carmen Miranda\'s Hat',5,NULL,10,400,NULL,3,NULL,0,0xFFFFFFFF,7,0,256,NULL,0,1,329,' bonus bMdef,3; bonus3 bAutoSpellWhenHit,1011,1,50; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5308,'Brazil_National_Flag_Hat','Brazil National Flag Hat',5,NULL,10,300,NULL,3,NULL,1,0xFFFFFFFF,7,0,256,NULL,0,1,330,' bonus bSpeedAddRate,25; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5309,'Wool_Mask','Wool Mask',5,NULL,10,200,NULL,1,NULL,0,0xFFFFFFFF,7,0,769,NULL,0,1,331,' skill 220,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5310,'Shining_Electric_Bulb','Shining Electric Bulb',5,NULL,10,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,332,' bonus2 bSubEle,Ele_Dark,10; skill 10,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5311,'Large_Hibiscus','Large Hibiscus',5,NULL,10,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,333,' bonus bMdef,15; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5312,'Ayothaya_King\'s_Hat','Ayothaya King\'s Hat',5,NULL,10,100,NULL,5,NULL,1,0x000654E2,7,2,256,NULL,0,1,334,' bonus bStr,1; bonus2 bAddRace,RC_DemiHuman,5; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5313,'Diadem','Diadem',5,NULL,10,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,768,NULL,0,1,335,' bonus bInt,1; bonus bMatkRate,3; bonus bCastrate,-3; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5314,'Hockey_Mask','Hockey Mask',5,NULL,10,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,513,NULL,50,0,336,' bonus2 bAddRace,RC_DemiHuman,5; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5315,'Observer','Observer',5,NULL,10,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,35,0,337,' skill 93,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5316,'Umbrella_Hat','Umbrella Hat',5,NULL,10,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,338,' bonus2 bSubEle,Ele_Water,3; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5317,'Fisherman\'s_Hat','Fisherman\'s Hat',5,NULL,10,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,339,' bonus3 bAutoSpell,86,3,50; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5318,'Poring_Party_Hat','Poring Party Hat',5,NULL,10,700,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,340,' bonus bAllStats,3; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5319,'Hello_Mother_Hat','Hello Mother Hat',5,NULL,10,200,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,10,1,341,' bonus bLuk,3; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5320,'Champion_Wreath','Sacred Palma',5,NULL,10,500,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,261,' bonus bAllStats,2; bonus4 bAutoSpellWhenHit,28,1,50,0; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5321,'Indonesian_Bandana','Bandana Merah Putih',5,NULL,10,500,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,342,' bonus2 bAddMonsterDropItem,518,100; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5322,'Kerchief','Kerchief',5,NULL,10,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,24,0,343,' bonus bFlee,5; bonus bMdef,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5323,'Sakray_Test_Helm','Sakray Test Helm',5,NULL,10,0,NULL,10,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,0,165,' bonus bAllStats,2; ',NULL,NULL); -# //5324,Little_Angel_Rock,Little Angel Rock,5,,10,300,,2,,0,0xFFFFFFFF,7,2,256,,10,0,344,{ bonus bDex,3; bonus4 bAutoSpellWhenHit,254,3,50,0; },{},{} -# //5325,Robo_Eye,Robo_Eye,5,,10,200,,2,,0,0xFFFFFFFF,7,2,512,,10,0,345,{ bonus bAtkRate,3; bonus bMatkRate,3; bonus bDex,1; },{},{} +REPLACE INTO `item_db` VALUES (5324,'Little_Angel_Rock','Little Angel Rock',5,NULL,10,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,0,344,' bonus bDex,3; bonus4 bAutoSpellWhenHit,254,3,50,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5325,'Robo_Eye','Robo Eye',5,NULL,10,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,512,NULL,10,0,345,' bonus bAtkRate,3; bonus bMatkRate,3; bonus bDex,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5326,'Masquerade_C','Refined Masquerade',5,NULL,0,0,NULL,1,NULL,0,0xFFFFFFFE,7,2,512,NULL,1,0,78,' bonus2 bAddRace,RC_DemiHuman,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5327,'Orc_Hero_Helm','Refined Helmet of Orc Hero',5,NULL,0,0,NULL,10,NULL,0,0xFFFFFFFE,7,2,768,NULL,1,0,178,' bonus bStr,5; bonus bVit,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5328,'Devil\'s_Wing','Refined Wing of Diablo',5,NULL,0,0,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,0,129,' bonus bStr,1;',NULL,NULL); @@ -2186,25 +2229,42 @@ REPLACE INTO `item_db` VALUES (5329,'Dark_Blindfold_C','Refined Dark_Blinder',5, REPLACE INTO `item_db` VALUES (5330,'Drooping_Kitty_C','Refined Drooping_Cat',5,NULL,0,0,NULL,6,NULL,0,0xFFFFFFFE,7,2,256,NULL,1,0,142,' bonus bMDef,15; bonus2 bResEff,Eff_Curse,4000; bonus2 bResEff,Eff_Curse,1000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5331,'Corsair_C','Refined Corsair',5,NULL,10,500,NULL,10,NULL,0,0xFFFFFFFE,7,2,256,NULL,1,0,105,' bonus bVit,3; bonus bInt,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5332,'Loki_Mask','Loki Mask',5,NULL,10,200,NULL,0,NULL,0,0xFFFFFFFF,7,2,513,NULL,1,0,346,' bonus bFlee2,3; ',NULL,NULL); -# //5333,Antenna_,Antenna,5,,,1500,,2,,0,0xFFFFFFFF,7,2,256,,60,0,347,{ bonus bMdef,3; skill 20,1; },{},{} -# //5334,Flying_Angeling,Flying Angeling,5,,,700,,0,,0,0xFFFFFFFF,7,2,256,,38,1,348,{ bonus bLuk,2; bonus bMdef,2; },{},{} -# //5335,Squatting_Poring,Squatting Poring,5,,,300,,2,,0,0xFFFFFFFF,7,2,256,,10,1,349,{ bonus bLuk,1; bonus bUnbreakableHelm,0; },{},{} -# //5336,Guild_Recruiting_Hat,Guild Recruiting Hat,5,,,700,,2,,0,0xFFFFFFFF,7,2,256,,10,1,350,{},{},{} -# //5337,Party_Hat__,Party Hat,5,,,700,,2,,0,0xFFFFFFFF,7,2,256,,10,1,351,{},{},{} -# //5338,Boyfriend_Hat,Boyfriend Hat,5,,,700,,2,,0,0xFFFFFFFF,7,2,256,,10,1,352,{},{},{} -# //5339,Friend_Hat,Friend Hat,5,,,700,,2,,0,0xFFFFFFFF,7,2,256,,10,1,353,{},{},{} -# //5340,Deporte_Doll_Hat,Deporte Doll Hat,5,,,500,,0,,1,0xFFFFFFFF,7,2,256,,60,0,354,{ bonus bStr,2; },{},{} -# //5341,Glarice_Doll_Hat,Clarice Doll Hat,5,,,500,,0,,1,0xFFFFFFFF,7,2,256,,60,0,355,{ bonus bInt,2; },{},{} -# //5342,Sorin_Doll_Hat,Sorin Doll Hat,5,,,500,,0,,1,0xFFFFFFFF,7,2,256,,60,0,356,{ bonus bDex,2; },{},{} -# //5343,Tailring_Doll_Hat,Tailring Doll Hat,5,,,500,,0,,1,0xFFFFFFFF,7,2,256,,60,0,357,{ bonus bAgi,2; },{},{} -# //5344,Vinit_Doll_Hat,Vinit Doll Hat,5,,,500,,0,,1,0xFFFFFFFF,7,2,256,,60,0,358,{ bonus bVit,2; },{},{} -# //5345,W_Doll_Hat,W Doll Hat,5,,,500,,0,,1,0xFFFFFFFF,7,2,256,,60,0,359,{ bonus bLuk,2; },{},{} -# //5346,Girlfriend_Hat,Girlfriend Hat,5,,,700,,0,,0,0xFFFFFFFF,7,2,256,,10,1,360,{},{},{} +# REPLACE INTO `item_db` VALUES (5333,'Antenna_','Antenna',5,NULL,NULL,1500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,60,0,347,' bonus bMdef,3; skill 20,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5334,'Flying_Angeling','Flying Angeling',5,NULL,NULL,700,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,38,1,348,' bonus bLuk,2; bonus bMdef,2; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5335,'Squatting_Poring','Squatting Poring',5,NULL,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,349,' bonus bLuk,1; bonus bUnbreakableHelm,0; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5336,'Guild_Recruiting_Hat','Guild Recruiting Hat',5,NULL,NULL,700,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,350,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5337,'Party_Hat__','Party Hat',5,NULL,NULL,700,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,351,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5338,'Boyfriend_Hat','Boyfriend Hat',5,NULL,NULL,700,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,352,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5339,'Friend_Hat','Friend Hat',5,NULL,NULL,700,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,353,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5340,'Deporte_Doll_Hat','Deporte Doll Hat',5,NULL,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,7,2,256,NULL,60,0,354,' bonus bStr,2; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5341,'Glarice_Doll_Hat','Clarice Doll Hat',5,NULL,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,7,2,256,NULL,60,0,355,' bonus bInt,2; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5342,'Sorin_Doll_Hat','Sorin Doll Hat',5,NULL,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,7,2,256,NULL,60,0,356,' bonus bDex,2; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5343,'Tailring_Doll_Hat','Tailring Doll Hat',5,NULL,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,7,2,256,NULL,60,0,357,' bonus bAgi,2; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5344,'Vinit_Doll_Hat','Vinit Doll Hat',5,NULL,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,7,2,256,NULL,60,0,358,' bonus bVit,2; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5345,'W_Doll_Hat','W Doll Hat',5,NULL,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,7,2,256,NULL,60,0,359,' bonus bLuk,2; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5346,'Girlfriend_Hat','Girlfriend Hat',5,NULL,NULL,700,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,360,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5347,'Ph.D_Hat_','Ph.D Hat',5,20,NULL,200,NULL,3,NULL,1,0xFFFFFFFE,7,2,256,NULL,0,1,98,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5348,'Big_Sis\'_Ribbon_','Big Ribbon',5,15000,NULL,200,NULL,2,NULL,1,0xFFFFFFFE,7,2,256,NULL,0,1,28,' bonus bMdef,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5349,'Boy\'s_Cap_','Boys Cap',5,20,NULL,100,NULL,2,NULL,1,0xFFFFFFFE,7,2,256,NULL,0,1,102,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5350,'Pirate_Bandana_','Pirate Bandana',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFE,7,2,256,NULL,0,1,74,' bonus bStr,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5351,'Sunflower_','Sunflower',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,37,' bonus2 bSubRace,RC_Insect,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5352,'Poporing_Hat','Poporing Hat',5,NULL,NULL,700,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,38,1,361,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5354,'Songkok','Songkok',5,NULL,NULL,100,NULL,2,NULL,0,0xFFFFFFFE,7,1,256,NULL,0,1,362,' bonus bCastrate,-5; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5355,'Selendang','Selendang',5,NULL,NULL,100,NULL,2,NULL,0,0xFFFFFFFE,7,0,256,NULL,0,1,363,' bonus bCastrate,-5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5357,'Victory_Wings','Victory Wings',5,NULL,NULL,0,NULL,10,NULL,0,0xFFFFFFFF,7,2,768,NULL,0,1,365,' bonus bMdef,10; bonus bUnbreakableHelm,0; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5358,'Pecopeco_Ears','Pecopeco Ears',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,70,0,366,' bonus bAgi,1; bonus bMdef,2; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5359,'Ship_Captain\'s_Hat','Ship Captain\'s Hat',5,NULL,NULL,500,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,367,' bonus bLongAtkRate,3; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5360,'Hukke\'s_Blackcat_Ears','Hukke\'s Blackcat Ears',5,NULL,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,45,1,368,' bonus bDef,-50; bonus bFlee,10; bonus bCritical,3; bonus2 bCriticalAddRace,RC_Boss,10; bonus2 bCriticalAddRace,RC_NonBoss,10; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5361,'Ganster_Scarf','Ganster Scarf',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,60,0,369,' bonus bBaseAtk,5; if(BaseJob == Job_Rogue) skill 223,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5362,'Ninja\'s_Scroll','Ninja\'s Scroll',5,NULL,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,60,0,370,' bonus bMatkRate,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5366,'Love_Dad_Bandana','Love Dad Bandana',5,NULL,NULL,200,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,374,' bonus bStr,2; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5370,'Orchid_Hairband','Orchid Hairband',5,NULL,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,376,' bonus bInt,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5371,'Judge_Cap','Judge Cap',5,NULL,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,377,' bonus bLuk,1; bonus bMaxSP,30; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5379,'Balloon_Hat','Balloon Hat',5,NULL,NULL,800,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,385,' bonus bCastrate,-getrefine(); ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5380,'Fish_Head_Hat','Fish Head Hat',5,NULL,NULL,400,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,386,' bonus3 bAutoSpell,281,1,20; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5381,'SantaPoring_Cap','SantaPoring Cap',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,387,' bonus bMdef,2; bonus2 bAddEle,Ele_Dark,3; bonus2 bSubEle,Ele_Dark,3; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5382,'Bell_Ribbon','Bell Ribbon',5,NULL,NULL,200,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,388,' bonus bVit,1; skill 33,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (5383,'Hunter_Cap','Hunter Cap',5,NULL,NULL,250,NULL,3,NULL,1,0xFFFFFFFE,7,2,256,NULL,50,1,389,NULL,NULL,' bonus bLuk,1; '); REPLACE INTO `item_db` VALUES (5800,'Blush_Of_Groom','Blush of Groom',5,NULL,NULL,50,NULL,0,NULL,0,0xFFFFFFFF,7,2,512,NULL,0,0,125,' bonus2 bSubRace,RC_DemiHuman,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5801,'Ribbon_Of_Bride','Red Tailed Ribbon',5,NULL,NULL,100,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,167,' bonus bAllStats,2; bonus2 bSubRace,RC_DemiHuman,10; if (getskilllv(29) == 10) { bonus3 bAutoSpellWhenHit,28,10,20; } else { bonus3 bAutoSpellWhenHit,28,5,20; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (5802,'Upgrade_Elephant_Hat','Upgraded Elephant Hat',5,NULL,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,215,NULL,NULL,NULL); @@ -2213,9 +2273,9 @@ REPLACE INTO `item_db` VALUES (5804,'Pirate_Eye_Bandage','Pirate Eye Bandage',5, REPLACE INTO `item_db` VALUES (5805,'Victorious_Coronet','Victorious Coronet',5,NULL,10,150,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,43,' bonus bMaxHPrate,15; bonus bSPrecovRate,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (5806,'Natalie\'s_Poet_Hat','Natalie\'s Poet Hat',5,NULL,10,300,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,0,67,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5807,'Octopus_Hat','Octopus Hat',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFE,7,2,256,NULL,1,0,104,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5808,'Dark_Bashilrium','Dark Bashilrium',5,NULL,NULL,250,NULL,5,NULL,1,0x00CFFF80,2,2,769,NULL,1,0,203,' bonus2 bResEff,Eff_Stone,2000+(getrefine()*2); bonus2 bResEff,Eff_Freeze,2000+(getrefine()*2); bonus2 bResEff,Eff_Stun,2000+(getrefine()*2); ',NULL,NULL); -# // More Etc Items -# //=================================================================== +REPLACE INTO `item_db` VALUES (5808,'Dark_Bashilrium','Dark Bashilrium',5,NULL,NULL,250,NULL,5,NULL,1,0x00CFFF80,2,2,769,NULL,1,0,364,' bonus2 bResEff,Eff_Stone,2000+(getrefine()*2); bonus2 bResEff,Eff_Freeze,2000+(getrefine()*2); bonus2 bResEff,Eff_Stun,2000+(getrefine()*2); ',NULL,NULL); +# More Etc Items +# =================================================================== REPLACE INTO `item_db` VALUES (7001,'Mould_Powder','Mould Powder',3,466,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7002,'Ogre_Tooth','Ogre Tooth',3,658,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7003,'Anolian_Skin','Anolian Skin',3,968,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2470,13 +2530,13 @@ REPLACE INTO `item_db` VALUES (7251,'Soul_Of_Victory','Spirit of Victory',3,0,NU REPLACE INTO `item_db` VALUES (7252,'Herb_Medicine','Herbal Medicine',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7253,'Taeguk_Flag','Golden Korean Flag',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7254,'Digital_Print_Ticket','Digital Picture Printing Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //7255,China_Marble01,Mystic Orb,3,0,,100,,,,,,,,,,,,,{},{},{} -# //7256,China_Marble02,Mystic Orb,3,0,,100,,,,,,,,,,,,,{},{},{} -# //7257,China_Marble03,Mystic Orb,3,0,,100,,,,,,,,,,,,,{},{},{} -# //7258,China_Marble04,Mystic Orb,3,0,,100,,,,,,,,,,,,,{},{},{} -# //7259,China_Marble05,Mystic Orb,3,0,,100,,,,,,,,,,,,,{},{},{} -# //7260,China_Marble06,Mystic Orb,3,0,,100,,,,,,,,,,,,,{},{},{} -# //7261,China_Marble07,Mystic Orb,3,0,,100,,,,,,,,,,,,,{},{},{} +# REPLACE INTO `item_db` VALUES (7255,'China_Marble01','Mystic Orb',3,0,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7256,'China_Marble02','Mystic Orb',3,0,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7257,'China_Marble03','Mystic Orb',3,0,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7258,'China_Marble04','Mystic Orb',3,0,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7259,'China_Marble05','Mystic Orb',3,0,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7260,'China_Marble06','Mystic Orb',3,0,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7261,'China_Marble07','Mystic Orb',3,0,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7262,'Fan','Folding Fan of Cat Ghost',3,466,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7263,'Cat_Eyed_Stone','Cat\'s Eye',3,954,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7264,'Dried_Sand','Dry Sand',3,322,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2544,7 +2604,7 @@ REPLACE INTO `item_db` VALUES (7326,'Fluorescent_Liquid','Fluorescent Liquid',3, REPLACE INTO `item_db` VALUES (7327,'Headlamp','Flashlight',3,1024,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7328,'Legendary_Scroll','Legend of Songkran',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7329,'Old_Copper_Key','Old Bronze Key',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //7330,Holy_Marble,Mystic Orb,3,0,,100,,,,,,,,,,,,,{},{},{} +# REPLACE INTO `item_db` VALUES (7330,'Holy_Marble','Mystic Orb',3,0,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7331,'Flower_Of_Heaven','Heaven Flower',3,500,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7332,'Slate','Complete Tablet',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7333,'Piece_Of_Slate_1','Prontera Tablet',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2794,7 +2854,7 @@ REPLACE INTO `item_db` VALUES (7576,'Blue-coloured_Gem','Blue-colored Gem',3,20, REPLACE INTO `item_db` VALUES (7577,'Yellow-coloured_Gem','Yellow-colored Gem',3,20,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7578,'Countermagic_Crystal','Countermagic Crystal',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7579,'Silk_Handkerchief_of_Zhi','Silk Handkerchief of Zhi Nu',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //7580,Black_Marble,Black Marble,3,20,,10,,,,,,,,,,,,,{},{},{} +# REPLACE INTO `item_db` VALUES (7580,'Black_Marble','Black Marble',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7581,'Anniversary_Document','Celebration Document',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7582,'Jewel_of_Destruction','Jewel of Destruction',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7583,'Evil_Heart','Evil Mind',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2812,11 +2872,11 @@ REPLACE INTO `item_db` VALUES (7594,'Sonia\'s_Letter','Sonia\'s Letter',3,20,NUL REPLACE INTO `item_db` VALUES (7595,'Special_Sword','Special Sword',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7596,'Special_Shield','Special Shield',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7597,'Magic_Stone','Magic Stone',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //7598,Blue_I_Card,Blue I Card,3,0,,10,,,,,,,,,,,,,{},{},{} -# //7599,Blue_D_Card,Blue D Card,3,0,,10,,,,,,,,,,,,,{},{},{} -# //7600,Blue_K_Card,Blue K Card,3,0,,10,,,,,,,,,,,,,{},{},{} -# //7601,Blue_S_Card,Blue S Card,3,0,,10,,,,,,,,,,,,,{},{},{} -# //7602,Blue_R_Card,Blue R Card,3,0,,10,,,,,,,,,,,,,{},{},{} +# REPLACE INTO `item_db` VALUES (7598,'Blue_I_Card','Blue I Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7599,'Blue_D_Card','Blue D Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7600,'Blue_K_Card','Blue K Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7601,'Blue_S_Card','Blue S Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (7602,'Blue_R_Card','Blue R Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7603,'RO_Party_Ticket','RO Party Ticket',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7604,'Flour','Flour',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7605,'Egg_','Egg',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2850,13 +2910,13 @@ REPLACE INTO `item_db` VALUES (7711,'Update_Ticket','Update Ticket',3,0,NULL,1,N REPLACE INTO `item_db` VALUES (7712,'Nokia5500','Nokia5500',3,0,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7713,'BlueCard_A_','Blue A Card',3,0,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7714,'BlueCard_R_','Blue R Card',3,0,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //Valentine's Day Evernt (2007) +# Valentine's Day Evernt (2007) REPLACE INTO `item_db` VALUES (7715,'Handmade_Choco_Recipe','Handmade Choco Recipe',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7716,'Strawberry_Choco_Recipe','Recipe for Strawberry Chocolate',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7717,'Choco_Tart_Recipe','Recipe for Chocolate Tart',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7718,'Cacao_Bean','Cacao_Bean',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7719,'BlueCard_G','Blue G Card',3,0,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //St. Patricks Day Event (2007) +# St. Patricks Day Event (2007) REPLACE INTO `item_db` VALUES (7720,'Gold_Coin_US','Gold Coin',3,1000,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7721,'Treasure_Box_','Treasure Box',3,300000,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7722,'Loan_Proof','Loan Reciept',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2929,7 +2989,7 @@ REPLACE INTO `item_db` VALUES (7800,'Golden_Charm_Apple','Golden Charm Apple',3, REPLACE INTO `item_db` VALUES (7801,'Girl\'s_Letter','Girl\'s Letter',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7802,'Sun_Oil','Sun Oil',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7803,'Beginner\'s_Field_Manual','Beginner\'s Field Manual',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //7804,シヌ濱チクシュ,シヌ濱チクシュ,3,,10,10,,,,,,,,,,,,,{},{},{} +# REPLACE INTO `item_db` VALUES (7804,'シヌ濱チクシュ','シヌ濱チクシュ',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7805,'Brown_Jenoss\'s_Family_Ring','Brown Jenoss\'s Family Ring',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7806,'God_Anvil','God Anvil',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7807,'God_Mineral','God Mineral',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2945,11 +3005,22 @@ REPLACE INTO `item_db` VALUES (7816,'Blue_Cat\'s_Eye','Blue Cat\'s Eye',3,NULL,1 REPLACE INTO `item_db` VALUES (7817,'Symbol_of_Peace','Symbol of Peace',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7818,'Jessur\'s_Necklace','Jessur\'s Necklace',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7819,'Nokia_5300','Nokia 5300',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //7820,Morocc's_ヌヌコホチカー「,Morocc's_ヌヌコホチカー「,3,,10,10,,,,,,,,,,,,,{},{},{} +# REPLACE INTO `item_db` VALUES (7820,'Morocc\'s_ヌヌコホチカー「','Morocc\'s_ヌヌコホチカー「',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7821,'Green_Apple','Green Apple',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7822,'Whole_Roast','Whole Roast',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7823,'Meat_Kabob','Meat Kabob',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7824,'Deadly_Poison','Deadly Posion',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7830,'Goddess_Tear','Goddess Tear',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7831,'Battle_Maiden_Emblem','Battle Maiden Emblem',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7832,'Beur\'s_Armor_Fragment','Beur\'s Armor Fragment',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7833,'Harmful_Essence','Harmful Essence',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7834,'Andropov_Bari\'s_Ring','Andropov Bari\'s Ring',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7835,'Essence_of_Sunset','Essence of Sunset',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7836,'Essence_of_Sunrise','Essence of Sunrise',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7837,'Essence_of_Moonlight','Essence of Moonlight',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7838,'Essence_of_Starlight','Essence of Starlight',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7839,'Crystal_Key','Crystal Key',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7840,'Gifted_Flower','Gifted Flower',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7850,'Wooden_Block_','Wooden Block',3,50,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7851,'Pass_F1','Wii Raffle Ticket',3,0,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7852,'Pass_F2','Divx Player Raffle Ticket',3,0,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2989,8 +3060,15 @@ REPLACE INTO `item_db` VALUES (7886,'Bean_Paste','Bean Paste',3,NULL,10,10,NULL, REPLACE INTO `item_db` VALUES (7887,'Dried_Fruit_Box','Dried Fruit Box',3,NULL,10,30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7888,'Nut_Bag','Nut Bag',3,NULL,10,30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7889,'Chicken_Feed','Chicken Feed',3,NULL,10,20,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# // Pet Eggs -# //=================================================================== +REPLACE INTO `item_db` VALUES (7900,'Jonathan_Family_Ring','Jonathan Family Ring',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7901,'Jillberriel_Family_Ring','Jillberriel Family Ring',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7902,'Jessur_Family_Ring','Jessur Family Ring',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7903,'Jenoss_Family_Ring','Jenoss Family Ring',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7904,'Piano_Key','Piano Key',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7905,'Rok_Star_2','Rok Star 2',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7906,'Poppy_Wreath','Poppy Wreath',3,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# Pet Eggs +# =================================================================== REPLACE INTO `item_db` VALUES (9001,'Poring_Egg','Poring Egg',7,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (9002,'Drops_Egg','Drops Egg',7,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (9003,'Poporing_Egg','Poporing Egg',7,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3028,8 +3106,8 @@ REPLACE INTO `item_db` VALUES (9034,'Goblin_4_Egg','Goblin Egg',7,NULL,10,0,NULL REPLACE INTO `item_db` VALUES (9035,'Deleter_Egg','Deleter Egg',7,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (9036,'Diabolic_Egg','Diabolic Egg',7,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (9037,'Wanderer_Egg','Wanderer Egg',7,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# // Pet Accessories -# //=================================================================== +# Pet Accessories +# =================================================================== REPLACE INTO `item_db` VALUES (10001,'Skull_Helm','Skull Helm',8,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (10002,'Monster_Oxygen_Mask','Monster Oxygen Mask',8,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (10003,'Transparent_Headgear','Transparent Headgear',8,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3050,8 +3128,8 @@ REPLACE INTO `item_db` VALUES (10017,'Bark_Shorts','Bark Shorts',8,NULL,10,0,NUL REPLACE INTO `item_db` VALUES (10018,'Monkey_Circlet','Monkey Circlet',8,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (10019,'Red_Muffler','Red Scarf',8,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (10020,'Sword_Of_Grave_Keeper','Grave Keeper\'s Sword',8,NULL,10,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# // Misc "Etc" Books -# //=================================================================== +# Misc "Etc" Books +# =================================================================== REPLACE INTO `item_db` VALUES (11000,'Prontera_Book_01','History book of Prontera',3,8000,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11001,'Poetry01','Poetry01',3,8000,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11002,'Novel01','Novel01',3,8000,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3062,19 +3140,20 @@ REPLACE INTO `item_db` VALUES (11006,'Blood_Flower01','Blood Flower 1',3,0,NULL, REPLACE INTO `item_db` VALUES (11007,'Blood_Flower02','Blood Flower 2',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11008,'Barmund','Barmund',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11009,'Adventure_Story02','Adventure Story 2',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# // More Usable Items -# //=================================================================== +# More Usable Items +# =================================================================== REPLACE INTO `item_db` VALUES (11500,'Light_Yellow_Pot','Light Yellow Potion',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(175,235),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (11501,'Light_White_Pot','Light White Potion',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal rand(325,405),0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (11502,'Light_Blue_Pot','Light Blue Potion',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal 0,rand(40,60); ',NULL,NULL); REPLACE INTO `item_db` VALUES (11702,'Month_Cookie','Month_Cookie',11,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_end SC_ALL; itemskill 34,7; ',NULL,NULL); -# //11703,Magic_キホソ_ヌヌ,Magic_キホソ_ヌヌ,0,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal 0,rand(20,30); },{},{} -# // Scrolls +REPLACE INTO `item_db` VALUES (11705,'Children\'s_Potion','Children\'s Potion',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (11703,'Magic_キホソ_ヌヌ','Magic_キホソ_ヌヌ',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemheal 0,rand(20,30); ',NULL,NULL); +# Scrolls REPLACE INTO `item_db` VALUES (12000,'Cold_Scroll_2_5','Level 5 Frost Diver',11,2000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 15,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12001,'Holy_Scroll_1_3','Level 3 Heal',11,1000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 28,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12002,'Holy_Scroll_1_5','Level 5 Heal',11,2000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 28,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12003,'Holy_Scroll_2_1','Level 1 Teleport',11,1000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 26,1; ',NULL,NULL); -# // Arrow Quivers +# Arrow Quivers REPLACE INTO `item_db` VALUES (12004,'Arrow_Container','Quiver',2,NULL,1,250,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1750,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12005,'Iron_Arrow_Container','Iron Arrow Quiver',2,NULL,1,250,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1770,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12006,'Steel_Arrow_Container','Steel Arrow Quiver',2,NULL,1,250,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1753,500; ',NULL,NULL); @@ -3087,7 +3166,7 @@ REPLACE INTO `item_db` VALUES (12012,'Crystal_Arrow_Container','Crystal Arrow Qu REPLACE INTO `item_db` VALUES (12013,'Shadow_Arrow_Container','Shadow Arrow Quiver',2,NULL,1,250,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1767,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12014,'Imma_Arrow_Container','Immaterial Arrow Quiver',2,NULL,1,250,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1757,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12015,'Rusty_Arrow_Container','Rusty Arrow Quiver',2,NULL,1,250,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1762,500; ',NULL,NULL); -# // Speed Potions +# Speed Potions REPLACE INTO `item_db` VALUES (12016,'Speed_Up_Potion','Speed Potion',0,NULL,1,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' specialeffect 507; sc_start SC_SpeedUp1,5000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12017,'Slow_Down_Potion','Slow Potion',0,NULL,1,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_SlowDown,5000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12018,'Fire_Cracker','Firecracker',2,NULL,1,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' misceffect(256); ',NULL,NULL); @@ -3099,7 +3178,7 @@ REPLACE INTO `item_db` VALUES (12023,'Giftbox_China','Wrapped Box',2,1000,NULL,2 REPLACE INTO `item_db` VALUES (12024,'Red_Pouch_Of_Surprise','Red Pouch',2,50,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' monster "this",-1,-1,"--ja--",-4,1,""; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12025,'Egg_Boy','Dano Festival Egg',2,1000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_EggBoy),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12026,'Egg_Girl','Dano Festival Egg',2,1000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_EggGirl),1; ',NULL,NULL); -# // Effect Boxes +# Effect Boxes REPLACE INTO `item_db` VALUES (12027,'Giggling_Box','Giggling Box',2,NULL,500,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 9,0; if(rand(1000)<300) sc_start SC_Curse,30000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12028,'Box_Of_Thunder','Box of Thunder',2,NULL,500,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_SpeedUp0,20000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12029,'Gloomy_Box','Box of Gloom',11,NULL,500,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 45,1; ',NULL,NULL); @@ -3114,7 +3193,7 @@ REPLACE INTO `item_db` VALUES (12037,'Lotto_Box03','Lotto Box 03',2,NULL,0,20,NU REPLACE INTO `item_db` VALUES (12038,'Lotto_Box04','Lotto Box 04',2,NULL,0,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_LottoBox),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12039,'Lotto_Box05','Lotto Box 05',2,NULL,0,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem rand(7542,7546),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12040,'Stone_Of_Intelligence_','Stone of Sage',2,NULL,50000,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' homevolution ; ',NULL,NULL); -# // Mixed Foods (+1 to +5) +# Mixed Foods (+1 to +5) REPLACE INTO `item_db` VALUES (12041,'Str_Dish01','Fried Grasshopper Legs',0,2000,NULL,60,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 1; percentheal 5,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12042,'Str_Dish02','Seasoned Sticky Webfoot',0,4000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 2; percentheal 5,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12043,'Str_Dish03','Bomber Steak',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 3; percentheal 5,0; ',NULL,NULL); @@ -3145,7 +3224,7 @@ REPLACE INTO `item_db` VALUES (12067,'Luk_Dish02','Mixed Juice',0,4000,NULL,200, REPLACE INTO `item_db` VALUES (12068,'Luk_Dish03','Fried Sweet Potato',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_LUKFood, 1200000, 3; percentheal 4,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12069,'Luk_Dish04','Steamed Ancient Lips',0,8000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_LUKFood, 1200000, 4; percentheal 4,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12070,'Luk_Dish05','Fried Scorpion Tails',0,10000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_LUKFood, 1200000, 5; percentheal 5,2; ',NULL,NULL); -# // Mixed Foods (+6 to +10) +# Mixed Foods (+6 to +10) REPLACE INTO `item_db` VALUES (12071,'Str_Dish06','Shiny Marinade Beef',0,20000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 6; percentheal 10,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12072,'Str_Dish07','Whole Roast',0,40000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 7; percentheal 10,4; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12073,'Str_Dish08','Bearfoot Special',0,60000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 8; percentheal 15,6; ',NULL,NULL); @@ -3178,7 +3257,7 @@ REPLACE INTO `item_db` VALUES (12099,'Luk_Dish09','Blood Flavored Soda',0,80000, REPLACE INTO `item_db` VALUES (12100,'Luk_Dish10','Cooked Nine Tail',0,100000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_LUKFood, 1200000, 10; percentheal 14,8; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12101,'Citron','Citron',0,NULL,10,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12102,'Meat_Skewer','Grilled Skewer',0,NULL,10,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# // New Monster Summoners & Item Givers +# New Monster Summoners & Item Givers REPLACE INTO `item_db` VALUES (12103,'Bloody_Dead_Branch','Bloody Branch',2,NULL,5000,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' monster "this",-1,-1,"--ja--",-3,1,""; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12104,'Random_Quiver','Random Quiver',2,NULL,5000,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_Quiver),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12105,'Set_Of_Taiming_Item','Taming Gift Set',2,NULL,5000,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_Taming),1; getitem groupranditem(IG_Taming),1; getitem groupranditem(IG_Taming),1; ',NULL,NULL); @@ -3190,12 +3269,12 @@ REPLACE INTO `item_db` VALUES (12110,'First_Aid_Kit','First Aid Kit',2,NULL,5000 REPLACE INTO `item_db` VALUES (12111,'Food_Package','Bundle of Food',2,NULL,5000,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_FoodBag),1; getitem groupranditem(IG_FoodBag),1; getitem groupranditem(IG_FoodBag),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12112,'Tropical_Sograt','Tropical Sograt',0,NULL,500,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_Curse,10000,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12113,'Vermilion_The_Beach','Vermilion on the Beach',0,NULL,500,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_Stun,10000,1; ',NULL,NULL); -# // Elemental Converters +# Elemental Converters REPLACE INTO `item_db` VALUES (12114,'Elemental_Fire','Flame Elemental Converter',11,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 492,4; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12115,'Elemental_Water','Frost Elemental Converter',11,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 492,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12116,'Elemental_Earth','Seismic Elemental Converter',11,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 492,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12117,'Elemental_Wind','Lightning Elemental Converter',11,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 492,5; ',NULL,NULL); -# // Elemental Resistance Potions +# Elemental Resistance Potions REPLACE INTO `item_db` VALUES (12118,'Resist_Fire','Fire Resist Potion',2,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start4 SC_ARMOR_ELEMENT,1200000,Ele_Fire,20,Ele_Water,-15; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12119,'Resist_Water','Cold Resist Potion',2,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start4 SC_ARMOR_ELEMENT,1200000,Ele_Water,20,Ele_Wind,-15; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12120,'Resist_Earth','Earth Resist Potion',2,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start4 SC_ARMOR_ELEMENT,1200000,Ele_Earth,20,Ele_Fire,-15; ',NULL,NULL); @@ -3203,13 +3282,13 @@ REPLACE INTO `item_db` VALUES (12121,'Resist_Wind','Thunder Resist Potion',2,NUL REPLACE INTO `item_db` VALUES (12122,'Sesame_Pastry','Sesame Pastry',0,NULL,1,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_HitFood,1200000,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12123,'Honey_Pastry','Honey Pastry',0,NULL,1,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_FleeFood,1200000,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12124,'Rainbow_Cake','Rainbow Cake',0,NULL,1,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_BATKFood,1200000,10; sc_start SC_MATKFood,120000,10; ',NULL,NULL); -# // Cooking Sets +# Cooking Sets REPLACE INTO `item_db` VALUES (12125,'Outdoor_Cooking_Kits','Outdoor Cooking Kit',2,500,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' produce 11; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12126,'Indoor_Cooking_Kits','Home Cooking Kit',2,1000,NULL,30,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' produce 12; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12127,'High_end_Cooking_Kits','Professional Cooking Kit',2,2000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' produce 13; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12128,'Imperial_Cooking_Kits','Royal Cooking Kit',2,5000,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' produce 14; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12129,'Fantastic_Cooking_Kits','Fantastic Cooking Kit',2,10000,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' produce 15; ',NULL,NULL); -# // +# REPLACE INTO `item_db` VALUES (12130,'Cookie_Bag','Cookie Bag',2,NULL,1,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_CookieBag),1; getitem groupranditem(IG_CookieBag),1; getitem groupranditem(IG_CookieBag),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12131,'Lucky_Potion','Lucky Potion',0,NULL,1,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12132,'Red_Bag','Santa\'s Bag',2,NULL,0,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_Xmas,600000,0; ',NULL,NULL); @@ -3282,7 +3361,7 @@ REPLACE INTO `item_db` VALUES (12198,'Lucky_Rice_Cake','Lucky Rice Cake',2,NULL, REPLACE INTO `item_db` VALUES (12199,'Rice_Scroll','Rice Scroll',2,NULL,0,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12200,'Event_Cake','Event Cake',2,NULL,10,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12201,'Red_Box_','Old Red Box',2,50000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# // Cash Shop Usable Items +# Cash Shop Usable Items REPLACE INTO `item_db` VALUES (12202,'STR_Dish','Steamed_Tongue',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood,1800000, 10; percentheal 15,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12203,'AGI_Dish','Steamed_Desert_Scorpions',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_AGIFood,1800000, 10; percentheal 15,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12204,'INT_Dish','Dragon_Breath_Cocktail',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INTFood,1800000, 10; percentheal 15,5; ',NULL,NULL); @@ -3306,14 +3385,14 @@ REPLACE INTO `item_db` VALUES (12221,'Megaphone_','Megaphone',2,NULL,NULL,10,NUL REPLACE INTO `item_db` VALUES (12225,'Sweet_Candy_Cane','Sweet Candy Cane',2,NULL,10,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' pet 1245; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12232,'GingerBread','Ginger Bread',0,NULL,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12233,'Kvass','Kvass',0,NULL,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 100,100; ',NULL,NULL); -# //Valentine's Day Event (2007) +# Valentine's Day Event (2007) REPLACE INTO `item_db` VALUES (12234,'Cacao99','Fierce Cacao 99%',0,NULL,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 25,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12235,'Strawberry_Choco','Strawberry Chocolate',11,NULL,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 0,5; itemskill 34,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12236,'Choco_Tart','Chocolate Tart',11,NULL,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 5,0; itemskill 33,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12237,'Choco_Lump','Dollop of Chocolate',2,NULL,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 0,5; sc_start SC_Poison,18000,0; sc_start SC_Bleeding,18000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12240,'Old_Yellow_Box','Old Yellow Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem rand(5259,5262),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12244,'Old_Gift_Box','Old Gift Box',2,NULL,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem rand(5270,5272),1; ',NULL,NULL); -# //St patrick's day Event (2007) +# St patrick's day Event (2007) REPLACE INTO `item_db` VALUES (12245,'Green_Ale_US','Green Ale',0,NULL,10,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 100,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12247,'Halohalo','Halo-Halo',2,NULL,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,20,NULL,NULL,' sc_start SC_INCALLSTATUS,600000,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12248,'Fancy_Ball_Box','Fancy_Ball_Box',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5296,1; getitem 5297,1; getitem 5298,1; ',NULL,NULL); @@ -3327,12 +3406,19 @@ REPLACE INTO `item_db` VALUES (12255,'Vit_Dish_','Immortal Stew',2,NULL,10,10,NU REPLACE INTO `item_db` VALUES (12256,'PRO_Gift_Box','PRO_Gift_Box',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12257,'Cold_Medicine','Cold_Medicine',2,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,50,NULL,NULL,' percentheal 25,25; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12258,'Bomb_Poring_Box','Bomb Poring Box',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //12259,ネッサタヌ_コセ,ネッサタヌ_コセ,2,,10,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} +# REPLACE INTO `item_db` VALUES (12259,'ネッサタヌ_コセ','ネッサタヌ_コセ',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12260,'Summer_Event_Suit','Summer Event Suit',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_Summer,600000,0; ',NULL,NULL); -# //12261,ネッサタヌ_コセ,ネッサタヌ_コセ,2,,10,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} +# REPLACE INTO `item_db` VALUES (12261,'ネッサタヌ_コセ','ネッサタヌ_コセ',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12262,'Inspector_Certificate_','Authoritative Badge',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' specialeffect 507; sc_start SC_SpeedUp0,180000,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (12269,'Emergency_Rations','Emergency Rations',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_ATKPOTION,600000,15; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (12270,'Emergency_Rations_','Emergency Rations',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_MATKPOTION,600000,15; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (12271,'Military_Rations_A','Military Rations A',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 5,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (12272,'Military_Rations_B','Military Rations B',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCHIT,600000,3; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (12273,'Military_Rations_C','Military Rations C',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCFLEE,600000,33; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (12274,'Daehwandan','Daehwandan',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCMHPRATE,36000000,5; percentheal 10,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (12275,'Taecheongdan','Taecheongdan',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCMSPRATE,36000000,5; percentheal 0,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12701,'Old_Blue_Box_F','Old Blue Box',2,NULL,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# //April Fools Day Event (2007) +# April Fools Day Event (2007) REPLACE INTO `item_db` VALUES (12702,'Old_Bleu_Box','Old Bleu Box',2,0,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem groupranditem(IG_BleuBox),1; getitem groupranditem(IG_BleuBox),1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12703,'Vit_Dish10_','Holy Egg',11,NULL,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12704,'Elixir_Of_Life','Elixir Of Life',2,NULL,10,850,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,85,NULL,NULL,' percentheal 100,0; ',NULL,NULL); @@ -3340,9 +3426,9 @@ REPLACE INTO `item_db` VALUES (12705,'Noble_Nameplate','Noble Nameplate',2,NULL, REPLACE INTO `item_db` VALUES (12706,'Luck_Cookie','Luck Cookie',11,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 75,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12707,'Luck_Cookie_','Luck Cookie',11,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 74,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12708,'Luck_Cookie__','Luck Cookie',11,NULL,10,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' itemskill 66,3; ',NULL,NULL); -# //12709,アクセ濱Candy,アクセ濱Candy,2,,10,150,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 30,30; },{},{} -# //12710,アクセ猊ェオ,アクセ猊ェオ,2,,10,200,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} -# //Cash Shop Box Items +# REPLACE INTO `item_db` VALUES (12709,'アクセ濱Candy','アクセ濱Candy',2,NULL,10,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' percentheal 30,30; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (12710,'アクセ猊ェオ','アクセ猊ェオ',2,NULL,10,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# Cash Shop Box Items REPLACE INTO `item_db` VALUES (12900,'Field_Manual_Box','Battle Manual Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12208,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12901,'Life_Insurrance_Box','Insurance Package',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12209,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12902,'Bubble_Gum_Box','Bubble Gum Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12210,10; ',NULL,NULL); @@ -3433,16 +3519,16 @@ REPLACE INTO `item_db` VALUES (12996,'Blue_Herb_Box','Blue Herb Box',2,NULL,NULL REPLACE INTO `item_db` VALUES (12997,'Elunium_Box','Elunium Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 985,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12998,'Oridecon_Box','Oridecon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 984,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (12999,'Branch_of_Dead_Tree_Box','Dead Branch Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 604,3; ',NULL,NULL); -# // More Weapons -# //=================================================================== -# // Daggers +# More Weapons +# =================================================================== +# Daggers REPLACE INTO `item_db` VALUES (13000,'Jujube_Dagger','Dagger with Jujube hilt',4,10000,NULL,600,39,NULL,1,0,0x008F5EEF,7,2,2,1,1,1,1,' bonus bAtkEle,Ele_Wind; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13001,'Dragon_Killer','Dragon Killer',4,NULL,10,900,110,NULL,1,0,0x008F5EEF,7,2,2,4,60,1,1,' bonus bIgnoreDefRace,RC_Dragon; bonus2 bExpAddRace,RC_Dragon,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13002,'Ginnungagap','Ginnungagap',4,NULL,10,700,148,NULL,1,0,0x008F5EEF,7,2,2,4,70,1,1,' bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; bonus2 bAddEff2,Eff_Blind,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13003,'Coward','Cowardice Blade',4,52000,NULL,700,80,NULL,1,1,0x02021040,7,2,2,3,55,1,1,' bonus bDef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13004,'Coward_','Cowardice Blade',4,52000,NULL,700,80,NULL,1,2,0x02021040,7,2,2,3,55,1,1,' bonus bDef,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13005,'Angelwing_Short_Sword','Angelic Wing Dagger',4,NULL,10,600,120,NULL,1,2,0x00000001,7,2,2,4,50,1,1,NULL,NULL,NULL); -# // Ninja Weapons +# Ninja Weapons REPLACE INTO `item_db` VALUES (13006,'Khukri','Gokurin',4,240000,NULL,600,150,NULL,1,0,0x02000000,7,2,2,3,65,1,1,' bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Curse,1000; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13007,'Jitte','Jitte',4,20000,NULL,400,70,NULL,1,0,0x02000000,7,2,2,2,35,1,1,' bonus bBreakWeaponRate,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13008,'Jitte_','Jitte',4,20000,NULL,400,70,NULL,1,1,0x02000000,7,2,2,2,35,1,1,' bonus bBreakWeaponRate,500; ',NULL,NULL); @@ -3471,9 +3557,11 @@ REPLACE INTO `item_db` VALUES (13030,'Dragon_Killer_','Dragon Killer',4,NULL,10, REPLACE INTO `item_db` VALUES (13031,'Sword_Breaker_','Swordbreaker',4,NULL,10,1000,70,NULL,1,3,0x028F5EEE,7,2,2,4,36,1,1,' bonus bBreakWeaponRate,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13032,'Mail_Breaker_','Mailbreaker',4,NULL,10,1000,70,NULL,1,3,0x028F5EEE,7,2,2,4,36,1,1,' bonus bBreakArmorRate,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13033,'Assasin_Dagger_','Assassin Dagger',4,NULL,10,600,140,NULL,1,1,0x00001000,7,2,2,4,36,1,1,' bonus bMaxHPrate,20; bonus bMaxSPrate,15; bonus bAspdRate,2; bonus bAtkEle,Ele_Dark; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13034,'Desert_Twilight','Desert Twilight',4,NULL,NULL,600,130,NULL,1,2,0x00001000,2,2,2,3,70,1,1,' if (isequipped(13035)) { bonus bMaxSP,20; bonus bMaxHPRate,5; bonus bHit,10; bonus2 bAddRace,RC_DemiHuman,30; } ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13034,'Desert_Twilight','Desert Twilight',4,NULL,NULL,600,130,NULL,1,2,0x00001000,2,2,2,3,70,1,1,' if (isequipped(13035)) { bonus bMaxSP,20; bonus bMaxHPRate,5; bonus bHit,10; bonus2 bAddRace,RC_DemiHuman,30; bonusautoscript "{ sc_start SC_INCASPDRATE,7000,100; }",10; } ',NULL,NULL); REPLACE INTO `item_db` VALUES (13035,'Desert_Winds','Desert Winds',4,NULL,NULL,600,50,NULL,1,4,0x00001000,2,2,2,2,70,1,1,NULL,NULL,NULL); -# // Guns +REPLACE INTO `item_db` VALUES (13036,'Assassin_Dagger','Assassin Dagger',4,NULL,0,0,120,NULL,1,0,0x029E7CEB,7,2,2,3,80,1,1,' bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bUnbreakableWeapon,0; if (Class == Job_Ninja) bonus bMatkRate,15; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13037,'Assassin_Dagger_','Assassin Dagger',4,NULL,0,0,120,NULL,1,0,0x029E7CEB,7,2,2,3,80,1,1,' bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bUnbreakableWeapon,0; if (Class == Job_Ninja) bonus bMatkRate,15; ',NULL,NULL); +# Guns REPLACE INTO `item_db` VALUES (13100,'Six_Shooter','Six Shooter',4,4500,NULL,400,30,NULL,7,1,0x01000000,7,2,34,1,10,1,17,' bonus bHit,-10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13101,'Six_Shooter_','Six Shooter',4,4500,NULL,400,30,NULL,7,2,0x01000000,7,2,34,1,10,1,17,' bonus bHit,-10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13102,'Crimson_Bolt','Crimson Bolt',4,20000,NULL,450,45,NULL,7,1,0x01000000,7,2,34,2,35,1,17,' bonus bHit,-10; ',NULL,NULL); @@ -3482,6 +3570,7 @@ REPLACE INTO `item_db` VALUES (13104,'The_Garrison','Garrison',4,48000,NULL,500, REPLACE INTO `item_db` VALUES (13105,'The_Garrison_','Garrison',4,48000,NULL,500,70,NULL,7,2,0x01000000,7,2,34,2,55,1,17,' bonus bHit,-10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13106,'Gold_Lux','Gold Lux',4,100000,NULL,500,20,NULL,7,0,0x01000000,7,2,34,3,12,1,17,' bonus bHit,-10; if(getskilllv(500)>0) bonus3 bAutoSpell,500,getskilllv(500),100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13107,'Western_Outlaw','Western Outlaw',4,NULL,10,580,68,NULL,7,2,0x01000000,7,2,34,3,10,1,17,' bonus bHit,readparam(bAgi)/6; bonus bAspdRate,readparam(bAgi)/6; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13108,'Soldier_Handgun','Soldier Handgun',4,NULL,0,0,70,NULL,7,0,0x01000000,7,2,34,3,80,1,17,' bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonusautoscript "{ sc_start SC_INCBASEATK,3000,readparam(bAtk); }",10,BF_WEAPON; bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13150,'Branch','Branch',4,3000,NULL,500,50,NULL,9,3,0x01000000,7,2,34,1,1,1,18,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13151,'The_Cyclone','Cyclone',4,17500,NULL,700,120,NULL,9,1,0x01000000,7,2,34,2,24,1,18,' bonus bHit,10; bonus bCritical,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13152,'The_Cyclone_','Cyclone',4,17500,NULL,700,120,NULL,9,2,0x01000000,7,2,34,2,24,1,18,' bonus bHit,10; bonus bCritical,10; ',NULL,NULL); @@ -3503,7 +3592,11 @@ REPLACE INTO `item_db` VALUES (13167,'Gate_KeeperDD','Gate Keeper-DD',4,NULL,10, REPLACE INTO `item_db` VALUES (13168,'Thunder_P','Thunder-P',4,76000,NULL,700,80,NULL,9,1,0x01000000,7,2,34,3,70,1,19,' bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13169,'Thunder_P_','Thunder-P',4,76000,NULL,700,80,NULL,9,2,0x01000000,7,2,34,3,70,1,19,' bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13170,'Lever_Action_Rifle','Lever Action Rifle',4,NULL,10,770,138,NULL,9,2,0x01000000,7,2,34,3,70,1,18,' bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; ',NULL,NULL); -# // Bullets +REPLACE INTO `item_db` VALUES (13171,'Soldier_Rifle','Soldier Rifle',4,NULL,0,0,80,NULL,9,0,0x01000000,7,2,34,3,80,1,18,' bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bCastRate,512,25; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13172,'Soldier_Gatling_Gun','Soldier Gatling Gun',4,NULL,0,0,80,NULL,9,0,0x01000000,7,2,34,3,80,1,20,' bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonusautoscript "{ sc_start SC_INCBASEATK,6000,80; heal -720,0; }",10,BF_WEAPON; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13173,'Soldier_Shotgun','Soldier Shotgun',4,NULL,0,0,100,NULL,9,0,0x01000000,7,2,34,3,80,1,19,' bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonusautoscript "{ sc_start SC_INCBASEATK,6000,100; heal -600,0; }",10,BF_WEAPON; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13174,'Soldier_Grenade_Launcher','Soldier Frenade Launcher',4,NULL,0,0,300,NULL,9,0,0x01000000,7,2,34,3,80,1,21,' bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonusautoscript "{ sc_start SC_INCBASEATK,6000,300; heal -720,0; }",10,BF_WEAPON; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# Bullets REPLACE INTO `item_db` VALUES (13200,'Bullet','Bullet',10,1,NULL,2,10,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,3,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13201,'Silver_Bullet','Silver Bullet',10,15,NULL,2,15,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,3,' bonus bAtkEle,Ele_Holy; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13202,'Shell_of_Blood','Shell of Blood',10,30,NULL,2,30,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,3,' bonus2 bAddEff,Eff_Bleeding,100; ',NULL,NULL); @@ -3512,7 +3605,7 @@ REPLACE INTO `item_db` VALUES (13204,'Lightning_Sphere','Lightning Sphere',10,80 REPLACE INTO `item_db` VALUES (13205,'Poison_Sphere','Poison Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,5,' bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13206,'Blind_Sphere','Blind Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,5,' bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13207,'Freezing_Sphere','Freezing Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,5,' bonus bAtkEle,Ele_Water; ',NULL,NULL); -# // Shurikens & Kunais +# Shurikens & Kunais REPLACE INTO `item_db` VALUES (13250,'Shuriken','Shuriken',10,4,NULL,5,10,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,6,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13251,'Raincloud_Shuriken','Raincloud Shuriken',10,10,NULL,5,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,20,NULL,6,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13252,'Flash_Shuriken','Flash Shuriken',10,20,NULL,5,45,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,40,NULL,6,NULL,NULL,NULL); @@ -3523,12 +3616,14 @@ REPLACE INTO `item_db` VALUES (13256,'Kunai_of_Black_Earth','Kunai of Black Eart REPLACE INTO `item_db` VALUES (13257,'Kunai_of_Violent_Winds','Kunai of Violent Winds',10,10,NULL,20,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,7,' bonus bAtkEle,Ele_Wind; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13258,'Kunai_of_Fierce_Heat','Kunai of Fierce Heat',10,10,NULL,20,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,7,' bonus bAtkEle,Ele_Fire; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13259,'Kunai_of_Deadly_Poison','Kunai of Deadly Poison',10,10,NULL,20,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,7,' bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; ',NULL,NULL); -# // Ninja Fuuma Shurikens +# Ninja Fuuma Shurikens REPLACE INTO `item_db` VALUES (13300,'Huuma_Bird_Wing','Fuuma Shuriken Beneki',4,90000,NULL,3000,150,NULL,1,0,0x02000000,7,2,34,4,65,1,22,' bonus bAtkEle,Ele_Wind; bonus bAgi,-1; bonus bDex,-2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13301,'Huuma_Giant_Wheel','Fuuma Shuriken Daisharin',4,40000,NULL,2500,50,NULL,1,3,0x02000000,7,2,34,4,42,1,22,' bonus2 bAddEff,Eff_Bleeding,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13302,'Huuma_Giant_Wheel_','Fuuma Shuriken Daisharin',4,40000,NULL,2500,50,NULL,1,4,0x02000000,7,2,34,4,42,1,22,' bonus2 bAddEff,Eff_Bleeding,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13303,'Huuma_Blaze','Fuuma Shuriken Rekka',4,78000,NULL,2300,185,NULL,1,0,0x02000000,7,2,34,4,55,1,22,' bonus bDex,-2; bonus bAtkEle,Ele_Fire; bonus3 bAutoSpell,17,5,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13304,'Spirit_of_Kamaitachi','Spirit of Kamaitachi',4,NULL,10,1550,112,NULL,1,2,0x02000000,7,2,34,3,70,1,22,' bonus2 bSkillAtk,525,30; bonus bNoCastCancel,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13305,'Battleground_Shuriken','Huuma Battleground Shuriken',4,NULL,0,0,55,NULL,1,0,0x02000000,7,2,34,3,80,1,22,' bonus bStr,2; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,95; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13306,'Battleground_Shuriken_','Huuma Battleground Shuriken',4,NULL,0,0,55,NULL,1,0,0x02000000,7,2,34,3,80,1,22,' bonus bStr,2; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,95; bonus bUnbreakableWeapon,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13400,'Cutlas_','Cutlus',4,NULL,10,900,150,NULL,1,1,0x000654E2,7,2,2,4,40,1,2,' skill 5,5; bonus bStr,2; bonus bDef,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13401,'Excalibur_C','Refined Excalibur',4,NULL,NULL,0,199,NULL,1,0,0x000654E2,7,2,2,4,1,0,2,' bonus bInt,10; bonus bLuk,10; bonus bAtkEle,Ele_Holy; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13402,'Cutlas_C','Refined Cutlus',4,NULL,NULL,0,185,NULL,1,0,0x000654E2,7,2,2,4,1,0,2,' skill 5,5; bonus bStr,2; bonus bDef,1; ',NULL,NULL); @@ -3539,7 +3634,9 @@ REPLACE INTO `item_db` VALUES (13406,'Sakray_Test_Sword','Sakray Test Sword',4,N REPLACE INTO `item_db` VALUES (13407,'Nagan_C','Refined Nagan',4,NULL,NULL,0,148,NULL,1,0,0x000654E2,7,2,2,4,40,1,2,' bonus bDoubleRate,40; bonus2 bAddRace,RC_DemiHuman,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13408,'Fire_brand_C','Refined Fireblend',4,NULL,NULL,0,120,NULL,1,0,0x000654E2,7,2,2,4,40,1,2,' bonus bAtkEle,Ele_Fire; bonus bInt,2; skill 19,5; bonus3 bAutoSpell,19,5,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13409,'Immaterial_Sword_C','Refined Immaterial Sword',4,NULL,NULL,0,160,NULL,1,0,0x000654E2,7,2,2,4,40,1,2,' bonus bAtkEle,Ele_Ghost; bonus2 bSPVanishRate,45,30; bonus bSPDrainValue,-1; bonus bUnbreakableWeapon,0; ',NULL,NULL); -# // More Cash Shop Items +REPLACE INTO `item_db` VALUES (13410,'Gladiator_Blade','Gladiator Blade',4,0,NULL,0,115,NULL,1,0,0x020654E3,7,2,2,3,80,1,2,' bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bUnbreakableWeapon,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13411,'Gladiator_Blade_','Gladiator Blade',4,0,NULL,0,115,NULL,1,0,0x020654E3,7,2,2,3,80,1,2,' bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bMatkRate,10; bonus bUnbreakableWeapon,0; ',NULL,NULL); +# More Cash Shop Items REPLACE INTO `item_db` VALUES (13502,'Drooping_Kitty_Box','Refined Drooping Cat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5279,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13503,'Magestic_Goat_Box','Refined Majestic Goat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5280,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13504,'Deviruchi_Hat_Box','Refined Deviruchi Hat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5281,1; ',NULL,NULL); @@ -3674,13 +3771,13 @@ REPLACE INTO `item_db` VALUES (13635,'1_Hour_Package_Vol_2','1_Hour Package Vol REPLACE INTO `item_db` VALUES (13636,'1_Hour_Package_Vol_3','1_Hour Package Vol 3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12252,2; getitem 12253,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13637,'1_Hour_Package_Vol_4','1_Hour Package Vol 4',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12252,2; getitem 12255,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13638,'1_Hour_Package_Vol_5','1_Hour Package Vol 5',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12252,2; getitem 12250,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13639,'1_Hour_Package_Vol_6','1_Hour Package Vol 6',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 1220,24; getitem 12217,20; getitem 12211,1; getitem 7621,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13639,'1_Hour_Package_Vol_6','1_Hour Package Vol 6',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 12215,15; getitem 12217,20; getitem 12211,1; getitem 7621,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13640,'2_Hour_Package_Vol_1','2_Hour Package Vol 1',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13641,'2_Hour_Package_Vol_2','2_Hour Package Vol 2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12250,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13642,'2_Hour_Package_Vol_3','2_Hour Package Vol 3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12252,4; getitem 12253,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13643,'2_Hour_Package_Vol_4','2_Hour Package Vol 4',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12252,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13644,'2_Hour_Package_Vol_5','2_Hour Package Vol 5',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12252,4; getitem 12250,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13645,'2_Hour_Package_Vol_6','2_Hour Package Vol 6',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 1220,48; getitem 12217,40; getitem 12211,2; getitem 7621,2; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13645,'2_Hour_Package_Vol_6','2_Hour Package Vol 6',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12217,40; getitem 12211,2; getitem 7621,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13646,'Infiltrator_Box_','Refined Infiltrator Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1267,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13647,'Muramasa_Box_','Refined Muramasa Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1173,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13648,'Excalibur_Box_','Refined Excalibur Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 13401,1; ',NULL,NULL); @@ -3726,10 +3823,10 @@ REPLACE INTO `item_db` VALUES (13687,'Moonlight_Sword_Box_','Refined Moonlight D REPLACE INTO `item_db` VALUES (13688,'Spanner_Box_','Refined Wrench Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1534,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13689,'Bok_Choy_Box','Bok Choy Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7766,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13690,'Chung_E_Cake_Box','Green Maiden Cake Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7767,10; ',NULL,NULL); -# //13691,Freya's_Clothes_Box,Freya's Clothes Box,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 2369,1; },{},{} -# //13692,Freya's_Boots_Box,Freya's Boots Box,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 2428,1;},{},{} -# //13693,Freya's_Manteau_Box,Freya's Manteau Box,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 2533,1; },{},{} -# //13694,Freya's_Crown_Box,Freya's Crown Box,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 5306,1; },{},{} +# REPLACE INTO `item_db` VALUES (13691,'Freya\'s_Clothes_Box','Freya\'s Clothes Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 2369,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13692,'Freya\'s_Boots_Box','Freya\'s Boots Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 2428,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13693,'Freya\'s_Manteau_Box','Freya\'s Manteau Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 2533,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13694,'Freya\'s_Crown_Box','Freya\'s Crown Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5306,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13695,'Field_Manual_25%_Box','Field Manual 25% Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14532,25; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13696,'Field_Manual_100%_Box','Field Manual 100% Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14532,100; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13697,'Blessing_Scroll_10ea_Box','Blessing Scroll 10ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 12215,30; ',NULL,NULL); @@ -3767,8 +3864,8 @@ REPLACE INTO `item_db` VALUES (13728,'Golden_Key_1ea_Box','Golden Key 1ea Box',2 REPLACE INTO `item_db` VALUES (13729,'Golden_Key_5ea_Box','Golden Key 5ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7779,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13730,'Silver_Key_1ea_Box','Silver Key 1ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7780,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13731,'Silver_Key_5ea_Box','Silver Key 5ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7780,5; ',NULL,NULL); -# //13732,アンタヌ_Key_Box,アンタヌ_Key_Box,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 7779,1; },{},{} -# //13733,タコタヌ_Key_Box,タコタヌ_Key_Box,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 7780,1; },{},{} +# REPLACE INTO `item_db` VALUES (13732,'アンタヌ_Key_Box','アンタヌ_Key_Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7779,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13733,'タコタヌ_Key_Box','タコタヌ_Key_Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7780,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13734,'Pecopeco_Hairband_Box_','Pecopeco Hairband Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5286,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13735,'Red_Glasses_Box_','Red Glasses Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5288,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13736,'Whisper_Mask_Box_','Whisper Mask Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5294,1; ',NULL,NULL); @@ -3784,7 +3881,7 @@ REPLACE INTO `item_db` VALUES (13745,'Holy_Armor_Scroll_30ea_Box','Holy Armor Sc REPLACE INTO `item_db` VALUES (13746,'Small_Defense_Potion_10ea_Box','Small Defense Potion 10ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14541,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13747,'Small_Defense_Potion_30ea_Box','Small Defense Potion 30ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14541,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13748,'Small_Defense_Potion_50ea_Box','Small Defense Potion 50ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14541,50; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13749,'Big_Defense_Potion_10ea_Box','Big Defense Potion 10ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14541,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13749,'Big_Defense_Potion_10ea_Box','Big Defense Potion 10ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14542,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13750,'Big_Defense_Potion_30ea_Box','Big Defense Potion 30ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14542,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13751,'Big_Defense_Potion_50ea_Box','Big Defense Potion 50ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14542,50; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13752,'Small_Magic_Defense_Potion_10ea_Box','Small Magic Defense Potion 10ea Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14543,10; ',NULL,NULL); @@ -3800,7 +3897,7 @@ REPLACE INTO `item_db` VALUES (13761,'Empty_Bottle_Box','Empty Bottle Box',2,20, REPLACE INTO `item_db` VALUES (13762,'Royal_Jelly_Box','Royal Jelly Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 526,70; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13763,'5th_Anniversary_Coin_Box','5th Anniversary Coin Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 2709,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13764,'Beginner\'s_Field_Manual_5ea_Box','Beginner\'s Field Manual 5ea Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7803,5; ',NULL,NULL); -# //13765,オソコタオネ_シヌ濱チクシュ,オソコタオネ_シヌ濱チクシュ,2,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 7804,1; },{},{} +# REPLACE INTO `item_db` VALUES (13765,'オソコタオネ_シヌ濱チクシュ','オソコタオネ_シヌ濱チクシュ',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7804,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13766,'Nagan_Box_C','Refined Nagan Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 13407,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13767,'Brocca_Box_C','Refined Brocca Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1424,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13768,'Survivor\'s_Rod_Box_C','Refined Survivor\'s Rod Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 1628,1; ',NULL,NULL); @@ -3851,11 +3948,11 @@ REPLACE INTO `item_db` VALUES (13812,'Food_Box_Vol_2','Food Box Vol 2',2,NULL,NU REPLACE INTO `item_db` VALUES (13813,'Food_Box_Vol_3','Food Box Vol 3',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14553,1; getitem 14556,1; getitem 14559,1; getitem 14562,1; getitem 14565,1; getitem 14568,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13814,'Healing_Box','Healing Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13815,'Goblin_1_Taming_Box','Goblin Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14569,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13816,'Goblin_2_Taming_Box','Goblin Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14569,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13817,'Goblin_4_Taming_Box','Goblin Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14569,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13818,'Deleter_Taming_Box','Deleter Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14569,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13819,'Diabolic_Taming_Box','Diabolic Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14569,10; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (13820,'Wanderer_Taming_Box','Wanderer Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14569,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13816,'Goblin_2_Taming_Box','Goblin Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14570,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13817,'Goblin_4_Taming_Box','Goblin Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14571,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13818,'Deleter_Taming_Box','Deleter Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14572,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13819,'Diabolic_Taming_Box','Diabolic Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14573,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13820,'Wanderer_Taming_Box','Wanderer Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14574,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13821,'Green_Apple_Box','Green_Apple_Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7821,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13822,'Whole_Roast_Box','Whole_Roast_Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7822,10; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13823,'Meat_Kabob_Box','Meat_Kabob_Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 7823,10; ',NULL,NULL); @@ -3869,6 +3966,23 @@ REPLACE INTO `item_db` VALUES (13830,'Stat_Boost_1','Stat Booster 1',2,NULL,NULL REPLACE INTO `item_db` VALUES (13831,'Stat_Boost_2','Stat Booster 2',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCINT,60000,5; sc_start SC_INCLUK,60000,5; sc_start SC_INCDEX,60000,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13832,'Stat_Boost_3','Stat Booster 3',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCAGI,60000,5; sc_start SC_INCVIT,60000,5; sc_start SC_INCDEX,60000,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (13833,'Stat_Boost_4','Stat Booster 4',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCINT,60000,5; sc_start SC_INCVIT,60000,5; sc_start SC_INCDEX,60000,5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13849,'Yellow_Butterfly_Wing_5ea_Box','Yellow Butterfly Wing 5ea Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14582,5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13850,'Yellow_Butterfly_Wing_10ea_Box','Yellow Butterfly Wing 10ea Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14582,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13851,'Green_Butterfly_Wing_5ea_Box','Green Butterfly Wing 5ea Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14583,5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13852,'Green_Butterfly_Wing_10ea_Box','Green Butterfly Wing 10ea Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14583,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13853,'Red_Butterfly_Wing_5ea_Box','Red Butterfly Wing 5ea Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14584,5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13854,'Red_Butterfly_Wing_10ea_Box','Red Butterfly Wing 10ea Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14584,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13855,'Blue_Butterfly_Wing_5ea_Box','Blue Butterfly Wing 5ea Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14585,5; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13856,'Blue_Butterfly_Wing_10ea_Box','Blue Butterfly Wing 10ea Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14585,10; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13859,'Patrol_Mission_Envelope','Patrol Mission Envelope',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 2734,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13860,'Patrol_Mission_Envelope_','Patrol Mission Envelope',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 2735,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13863,'Repair_Weapon_Scroll_Box10ea','Repair Weapon Scroll Box 10ea',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 14521,10; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13864,'Hockey_Mask_Box','Hockey Mask Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5314,1; ',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13865,'Observer_Box','Observer Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5315,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13866,'Flying_Angel_Box','Flying Angel_box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5210,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13867,'Cat_hat_Box','Neko Mimi Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5099,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13868,'Moonlight_Flower_Hat_Box','Moonlight Flower Hat Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5214,1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (13869,'Chick_Hat_Box','Chick Hat Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' getitem 5283,1; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14508,'Zeny_Pet_Egg_Scroll','Zeny Pet Egg Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (14509,'Light_Center_Pot','Light Concentration Potion',2,NULL,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_ASPDPOTION0,1800000,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14510,'Light_Awakening_Pot','Light Awakening Potion',2,NULL,NULL,20,NULL,NULL,NULL,NULL,0xFFF7FEEF,7,2,NULL,NULL,40,NULL,NULL,' sc_start SC_ASPDPOTION1,1800000,0; ',NULL,NULL); @@ -3895,23 +4009,23 @@ REPLACE INTO `item_db` VALUES (14530,'Evasion_Scroll','Evasion Scroll',2,NULL,10 REPLACE INTO `item_db` VALUES (14531,'Concentration_Power_Scroll','Concentration Power Scroll',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCHIT,1800000,30; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14532,'Field_Manual_25%','Field Manual 25%',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_EXPBOOST,1800000,25; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14533,'Field_Manual_100%','Field Manual 100%',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_EXPBOOST,1800000,100; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (14534,'Small_Life_Potion','Small Life Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14535,'Medium_Life_Potion','Medium Life Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14534,'Small_Life_Potion','Small Life Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start4 SC_HPREGEN,600000,5,5,0,0; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14535,'Medium_Life_Potion','Medium Life Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start4 SC_HPREGEN,600000,7,4,0,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14536,'Abrasive','Abrasive',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCCRI,300000,30; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (14537,'Regeneration_Potion','Regeneration Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14537,'Regeneration_Potion','Regeneration Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCHEALRATE,1800000,20; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14538,'Glass_of_Illusion','Glass of Illusion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (14539,'Shadow_Armor_Scroll','Shadow Armor Scroll',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start4 SC_ARMOR_ELEMENT,1800000,Ele_Shadow,20,Ele_Holy,-15; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14540,'Holy_Armor_Scroll','Holy Armor Scroll',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start4 SC_ARMOR_ELEMENT,1800000,Ele_Holy,20,Ele_Shadow,-15; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14541,'Small_Defense_Potion','Small Defense Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCDEFRATE,60000,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14542,'Big_Defense_Potion','Big Defense Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCDEFRATE,180000,3; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (14543,'Small_Magic_Defense_Potion','Small Magic Defense Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14544,'Big_Magic_Defense_Potion','Big Magic Defense Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14543,'Small_Magic_Defense_Potion','Small Magic Defense Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCMDEFRATE,600000,3; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14544,'Big_Magic_Defense_Potion','Big Magic Defense Potion',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_INCMDEFRATE,180000,3; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14545,'Field_Manual_300%','Field Manual 300%',2,NULL,10,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_EXPBOOST,1800000,300; ',NULL,NULL); -REPLACE INTO `item_db` VALUES (14546,'Love_You_Firecracker','Love You Firecracker',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14547,'White_Day_Firecracker','White Day Firecracker',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14548,'Valentine\'s_Day_Firecracker','Valentine\'s Day Firecracker',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14549,'Birthday_Firecracker','Birthday Firecracker',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14550,'Christmas_Firecracker','Christmas Firecracker',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14546,'Love_You_Firecracker','Love You Firecracker',2,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' misceffect(682); ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14547,'White_Day_Firecracker','White Day Firecracker',2,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' misceffect(683); ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14548,'Valentine\'s_Day_Firecracker','Valentine\'s Day Firecracker',2,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' misceffect(684); ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14549,'Birthday_Firecracker','Birthday Firecracker',2,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' misceffect(685); ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14550,'Christmas_Firecracker','Christmas Firecracker',2,NULL,1,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' misceffect(686); ',NULL,NULL); REPLACE INTO `item_db` VALUES (14551,'Str_Dish01_','Fried Grasshopper Legs',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 1; percentheal 5,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14552,'Str_Dish02_','Seasoned Sticky Webfoot',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 2; percentheal 5,0; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14553,'Str_Dish03_','Bomber Steak',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_STRFood, 1200000, 3; percentheal 5,0; ',NULL,NULL); @@ -3942,3 +4056,7 @@ REPLACE INTO `item_db` VALUES (14577,'Vit_Dish05_','Spicy Fried Bao',0,NULL,NULL REPLACE INTO `item_db` VALUES (14578,'Agi_Dish05_','Steamed Bat Wing in Pumpkin',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_AGIFood, 1200000, 5; percentheal 6,2; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14579,'Dex_Dish05_','Green Salad',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_DEXFood, 1200000, 5; percentheal 5,5; ',NULL,NULL); REPLACE INTO `item_db` VALUES (14580,'Luk_Dish05_','Fried Scorpion Tails',0,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' sc_start SC_LUKFood, 1200000, 5; percentheal 5,2; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14582,'Yellow_Butterfly_Wing','Yellow Butterfly Wing',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' callfunc "F_CashCity",1; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14583,'Green_Butterfly_Wing','Green Butterfly Wing',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' callfunc "F_CashCity",2; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14584,'Red_Butterfly_Wing','Red Butterfly Wing',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' callfunc "F_CashCity",3; ',NULL,NULL); +REPLACE INTO `item_db` VALUES (14585,'Blue_Butterfly_Wing','Blue Butterfly Wing',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,' callfunc "F_CashCity",4; ',NULL,NULL); diff --git a/sql-files/item_db2.sql b/sql-files/item_db2.sql index c7a15306b..0216148d0 100644 --- a/sql-files/item_db2.sql +++ b/sql-files/item_db2.sql @@ -29,13 +29,13 @@ CREATE TABLE `item_db2` ( PRIMARY KEY (`id`) ) TYPE=MyISAM; -# // Items Additional Database - Custom Items go here -# // -# // Structure of Database: -# // ID,Name,Name,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } -# // -# // THQ Quest Items -# //============================================================= +# Items Additional Database - Custom Items go here +# +# Structure of Database: +# REPLACE INTO `item_db` VALUES ( ID,'Name','Name',Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,' Script ',' OnEquip_Script ',' OnUnequip_Script '); +# +# THQ Quest Items +# ============================================================= # REPLACE INTO `item_db2` VALUES (7950,'THG_Membership','THG Membership',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # REPLACE INTO `item_db2` VALUES (7951,'Token_Bag','Token Bag',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # REPLACE INTO `item_db2` VALUES (1998,'Jeramiah\'s_Jur','Jeramiah\'s Jur',3,NULL,10,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index ff340ee96..a05c3e84b 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -65,17 +65,17 @@ CREATE TABLE `mob_db` ( PRIMARY KEY (`ID`) ) TYPE=MyISAM; -# // Monster Database -# // -# // Structure of Database : -# // ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper -# // Note: Keep the Sprite_Name field as it is (in the game client). You may change Name,JName field tough +# Monster Database +# +# Structure of Database : +# REPLACE INTO `mob_db` VALUES ( ID,'Sprite_Name','kROName','iROName',LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper); +# Note: Keep the Sprite_Name field as it is (in the game client). You may change Name,JName field tough REPLACE INTO `mob_db` VALUES (1001,'SCORPION','Scorpion','Scorpion',24,1109,0,287,176,1,80,135,30,0,1,24,24,5,52,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1); REPLACE INTO `mob_db` VALUES (1002,'PORING','Poring','Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1); -# //1003,TESTEGG,Test Egg,Test Egg,2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +# REPLACE INTO `mob_db` VALUES (1003,'TESTEGG','Test Egg','Test Egg',2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1004,'HORNET','Hornet','Hornet',8,169,0,19,15,1,22,27,5,5,6,20,8,10,17,5,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1); REPLACE INTO `mob_db` VALUES (1005,'FARMILIAR','Familiar','Familiar',8,155,0,28,15,1,20,28,0,0,1,12,8,5,28,0,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1); -# //1006,THIEF_BUG_LARVA,Thief Bug Larva,Thief Bug Larva,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +# REPLACE INTO `mob_db` VALUES (1006,'THIEF_BUG_LARVA','Thief Bug Larva','Thief Bug Larva',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1007,'FABRE','Fabre','Fabre',2,63,0,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1); REPLACE INTO `mob_db` VALUES (1008,'PUPA','Pupa','Pupa',2,427,0,2,4,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1); REPLACE INTO `mob_db` VALUES (1009,'CONDOR','Condor','Condor',5,92,0,6,5,1,11,14,0,0,1,13,5,0,13,10,10,12,1,2,24,0x1089,150,1148,648,480,0,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1); @@ -86,17 +86,17 @@ REPLACE INTO `mob_db` VALUES (1013,'WOLF','Wolf','Wolf',25,919,0,329,199,1,37,46 REPLACE INTO `mob_db` VALUES (1014,'SPORE','Spore','Spore',16,510,0,66,108,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1); REPLACE INTO `mob_db` VALUES (1015,'ZOMBIE','Zombie','Zombie',15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1); REPLACE INTO `mob_db` VALUES (1016,'ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',31,3040,0,483,283,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1); -# //1017,THIEF_BUG_FEMALE,Thief Bug Female,Thief Bug Female,10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,651,200,988,288,768,0,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1 +# REPLACE INTO `mob_db` VALUES (1017,'THIEF_BUG_FEMALE','Thief Bug Female','Thief Bug Female',10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,651,200,988,288,768,0,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1); REPLACE INTO `mob_db` VALUES (1018,'CREAMY','Creamy','Creamy',16,595,0,105,70,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1); REPLACE INTO `mob_db` VALUES (1019,'PECOPECO','Peco Peco','Peco Peco',19,531,0,159,72,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1); REPLACE INTO `mob_db` VALUES (1020,'MANDRAGORA','Mandragora','Mandragora',12,405,0,45,32,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1); -# //1021,THIEF_BUG_MALE,Thief Bug Male,Thief Bug Male,19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,653,300,988,288,768,0,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1 -# //1022,WEREWOLF,Werewolf,Werewolf,80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,163,200,1500,768,652,0,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0 +# REPLACE INTO `mob_db` VALUES (1021,'THIEF_BUG_MALE','Thief Bug Male','Thief Bug Male',19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,653,300,988,288,768,0,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1); +# REPLACE INTO `mob_db` VALUES (1022,'WEREWOLF','Werewolf','Werewolf',80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,163,200,1500,768,652,0,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1023,'ORK_WARRIOR','Orc Warrior','Orc Warrior',24,1400,0,408,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); REPLACE INTO `mob_db` VALUES (1024,'WORM_TAIL','Wormtail','Wormtail',14,426,0,59,40,2,42,51,5,0,1,14,28,5,46,5,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1); REPLACE INTO `mob_db` VALUES (1025,'SNAKE','Snake','Boa',15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1); REPLACE INTO `mob_db` VALUES (1026,'MUNAK','Munak','Munak',30,2872,0,601,318,1,150,230,0,0,1,15,20,5,46,15,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1); -# //1027,RAPTICE,Raptice,Raptice,17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,131,200,2000,1000,500,0,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +# REPLACE INTO `mob_db` VALUES (1027,'RAPTICE','Raptice','Raptice',17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,131,200,2000,1000,500,0,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1028,'SOLDIER_SKELETON','Soldier Skeleton','Soldier Skeleton',29,2334,0,372,226,1,221,245,10,15,1,15,22,5,40,15,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,1201,150,1216,50,0,0,0,0,4086,1); REPLACE INTO `mob_db` VALUES (1029,'ISIS','Isis','Isis',47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1); REPLACE INTO `mob_db` VALUES (1030,'ANACONDAQ','Anacondaq','Anacondaq',23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,0,1011,50,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1); @@ -108,11 +108,11 @@ REPLACE INTO `mob_db` VALUES (1035,'HUNTER_FLY','Hunter Fly','Hunter Fly',42,524 REPLACE INTO `mob_db` VALUES (1036,'GHOUL','Ghoul','Ghoul',40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1); REPLACE INTO `mob_db` VALUES (1037,'SIDE_WINDER','Side Winder','Side Winder',43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1); REPLACE INTO `mob_db` VALUES (1038,'OSIRIS','Osiris','Osiris',78,415400,0,71500,28600,1,780,2880,10,25,1,75,30,37,86,40,10,12,1,1,89,0x37B5,100,1072,672,384,35750,10000,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,984,3783,0,0,0,0,4144,1); -REPLACE INTO `mob_db` VALUES (1039,'BAPHOMET','Baphomet','Baphomet',81,668000,0,107250,37895,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,53625,10000,607,2000,750,500,923,5000,1466,200,2256,200,2607,800,714,500,617,3000,985,5432,984,4171,0,0,0,0,4147,1); +REPLACE INTO `mob_db` VALUES (1039,'BAPHOMET','Baphomet','Baphomet',81,668000,0,107250,37895,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,53625,10000,607,2000,750,500,923,5000,1466,400,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1); REPLACE INTO `mob_db` VALUES (1040,'GOLEM','Golem','Golem',25,3900,0,465,94,1,175,187,40,0,1,15,25,0,15,0,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,1003,210,715,200,998,350,0,0,0,0,4072,1); REPLACE INTO `mob_db` VALUES (1041,'MUMMY','Mummy','Mummy',37,5176,0,800,602,1,305,360,0,10,28,19,32,0,63,20,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1); REPLACE INTO `mob_db` VALUES (1042,'STEEL_CHONCHON','Steel Chonchon','Steel Chonchon',17,530,0,109,71,1,54,65,15,0,1,43,17,5,33,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1); -# //1043,SEAHORES,Seahorse,Seahorse,18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +# REPLACE INTO `mob_db` VALUES (1043,'SEAHORES','Seahorse','Seahorse',18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1044,'OBEAUNE','Obeaune','Obeaune',31,3952,0,644,407,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1); REPLACE INTO `mob_db` VALUES (1045,'MARC','Marc','Marc',36,6900,0,988,625,1,220,280,5,10,1,36,36,20,56,30,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1); REPLACE INTO `mob_db` VALUES (1046,'DOPPELGANGER','Doppelganger','Doppelganger',72,249000,0,51480,10725,1,1340,1590,60,35,88,90,30,35,125,65,10,12,1,6,67,0x37B5,100,480,480,288,25740,10000,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1); @@ -205,8 +205,8 @@ REPLACE INTO `mob_db` VALUES (1132,'KHALITZBURG','Khalitzburg','Khalitzburg',63, REPLACE INTO `mob_db` VALUES (1133,'KOBOLD_1','Kobold','Kobold',36,3893,0,988,625,1,265,318,15,10,1,90,36,30,52,20,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); REPLACE INTO `mob_db` VALUES (1134,'KOBOLD_2','Kobold','Kobold',31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1); REPLACE INTO `mob_db` VALUES (1135,'KOBOLD_3','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,0,0,2104,3,508,100,0,0,0,0,4091,1); -# //1136,KOBOLD_4,Kobold,Kobold,31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1 -# //1137,KOBOLD_5,Kobold,Kobold,31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1 +# REPLACE INTO `mob_db` VALUES (1136,'KOBOLD_4','Kobold','Kobold',31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1); +# REPLACE INTO `mob_db` VALUES (1137,'KOBOLD_5','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1); REPLACE INTO `mob_db` VALUES (1138,'MAGNOLIA','Magnolia','Magnolia',26,3195,0,393,248,1,120,151,5,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1); REPLACE INTO `mob_db` VALUES (1139,'MANTIS','Mantis','Mantis',26,2472,0,393,248,1,118,149,10,0,1,26,24,5,45,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1); REPLACE INTO `mob_db` VALUES (1140,'MARDUK','Marduk','Marduk',40,4214,0,1238,752,1,315,382,0,60,1,40,20,79,78,20,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1); @@ -237,12 +237,12 @@ REPLACE INTO `mob_db` VALUES (1164,'REQUIEM','Requiem','Requiem',35,3089,0,800,4 REPLACE INTO `mob_db` VALUES (1165,'SAND_MAN','Sandman','Sandman',34,3413,0,810,492,1,180,205,10,25,24,34,58,38,60,5,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1); REPLACE INTO `mob_db` VALUES (1166,'SAVAGE','Savage','Savage',26,2092,0,521,248,1,120,150,10,5,1,26,54,10,37,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,605,10,757,70,526,2,0,0,0,0,4078,1); REPLACE INTO `mob_db` VALUES (1167,'SAVAGE_BABE','Savage Babe','Savage Babe',7,182,0,14,12,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,0,919,9000,1302,100,517,500,1750,1000,949,850,1010,80,627,40,0,0,0,0,4017,1); -# //1168,SCORPION_KING,Scorpion King,Scorpion King,50,6354,0,2187,1346,1,500,603,40,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1 +# REPLACE INTO `mob_db` VALUES (1168,'SCORPION_KING','Scorpion King','Scorpion King',50,6354,0,2187,1346,1,500,603,40,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1); REPLACE INTO `mob_db` VALUES (1169,'SKEL_WORKER','Skeleton Worker','Skeleton Worker',30,2872,0,397,240,1,242,288,0,15,1,15,30,5,42,10,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,1002,800,0,0,0,0,4092,1); REPLACE INTO `mob_db` VALUES (1170,'SOHEE','Sohee','Sohee',33,5628,0,739,455,1,210,251,0,10,1,33,33,10,58,15,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,507,1000,662,350,0,0,0,0,4100,1); -# //1171,SOLDIER_ANDRE,Soldier Andre,Soldier Andre,22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1 -# //1172,SOLDIER_DENIRO,Soldier Deniro,Soldier Deniro,29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1 -# //1173,SOLDIER_PIERE,Soldier Piere,Soldier Piere,23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1 +# REPLACE INTO `mob_db` VALUES (1171,'SOLDIER_ANDRE','Soldier Andre','Soldier Andre',22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1); +# REPLACE INTO `mob_db` VALUES (1172,'SOLDIER_DENIRO','Soldier Deniro','Soldier Deniro',29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1); +# REPLACE INTO `mob_db` VALUES (1173,'SOLDIER_PIERE','Soldier Piere','Soldier Piere',23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1); REPLACE INTO `mob_db` VALUES (1174,'STAINER','Stainer','Stainer',16,538,0,105,70,1,53,64,10,0,1,40,16,5,30,5,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1); REPLACE INTO `mob_db` VALUES (1175,'TAROU','Tarou','Tarou',11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1); REPLACE INTO `mob_db` VALUES (1176,'VITATA','Vitata','Vitata',20,894,0,163,101,1,69,80,15,20,1,20,25,65,40,70,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1); @@ -250,7 +250,7 @@ REPLACE INTO `mob_db` VALUES (1177,'ZENORC','Zenorc','Zenorc',31,2585,0,967,407, REPLACE INTO `mob_db` VALUES (1178,'ZEROM','Zerom','Zerom',23,1109,0,240,149,1,127,155,0,10,1,23,23,5,42,0,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,1002,300,0,0,0,0,4064,1); REPLACE INTO `mob_db` VALUES (1179,'WHISPER','Whisper','Whisper',34,1796,0,591,599,1,180,221,0,45,1,51,14,0,60,0,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1); REPLACE INTO `mob_db` VALUES (1180,'NINE_TAIL','Nine Tail','Nine Tail',51,7766,0,2812,825,1,610,734,10,25,1,80,46,1,74,85,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1); -# //1181,ZOMBIE_DRAGON,Zombie Dragon,Zombie Dragon,1,1000,0,49500,1650,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +# REPLACE INTO `mob_db` VALUES (1181,'ZOMBIE_DRAGON','Zombie Dragon','Zombie Dragon',1,1000,0,49500,1650,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1182,'THIEF_MUSHROOM','Thief Mushroom','Thief Mushroom',1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1183,'CHONCHON_','Chonchon','Chonchon',4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1); REPLACE INTO `mob_db` VALUES (1184,'FABRE_','Fabre','Fabre',1,30,0,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,4002,0); @@ -259,7 +259,7 @@ REPLACE INTO `mob_db` VALUES (1186,'WHISPER_BOSS','Giant Whisper','Giant Whisper REPLACE INTO `mob_db` VALUES (1187,'SWITCH','Switch','Switch',1,2,0,1,1,1,1,2,0,0,1,1,1,0,1,0,1,12,1,0,20,0x0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1188,'BON_GUN','Bongun','Bongun',32,3520,0,424,242,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1); REPLACE INTO `mob_db` VALUES (1189,'ORC_ARCHER','Orc Archer','Orc Archer',49,7440,0,1729,1787,9,310,390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1716,2,507,1400,509,900,1734,3,0,0,4256,1); -REPLACE INTO `mob_db` VALUES (1190,'ORC_LORD','Orc Lord','Orc Lord',74,783000,0,62205,8580,1,2700,3150,40,5,85,82,30,70,110,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,10000,968,5500,617,2000,0,0,1363,200,2601,500,5007,150,2627,1000,0,0,985,4268,984,3100,1371,100,0,0,4135,1); +REPLACE INTO `mob_db` VALUES (1190,'ORC_LORD','Orc Lord','Orc Lord',74,783000,0,62205,8580,1,2700,3150,40,5,85,82,30,70,110,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,10000,968,5500,617,2000,0,0,1363,400,2621,400,5007,400,1371,400,617,1000,985,4268,984,3100,0,0,0,0,4135,1); REPLACE INTO `mob_db` VALUES (1191,'MIMIC','Mimic','Mimic',51,6120,0,165,165,1,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,714,3,2626,1,757,270,0,0,0,0,4205,1); REPLACE INTO `mob_db` VALUES (1192,'WRAITH','Wraith','Wraith',53,10999,0,2199,1099,1,580,760,5,30,1,95,30,65,95,35,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1); REPLACE INTO `mob_db` VALUES (1193,'ALARM','Alarm','Alarm',58,10647,0,3987,2300,1,480,600,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1); @@ -279,7 +279,7 @@ REPLACE INTO `mob_db` VALUES (1206,'ANOLIAN','Anolian','Anolian',61,18960,0,5900 REPLACE INTO `mob_db` VALUES (1207,'STING','Sting','Sting',61,9500,0,4081,2970,1,850,1032,5,30,57,45,55,5,120,85,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,719,3,0,0,0,0,4226,1); REPLACE INTO `mob_db` VALUES (1208,'WANDER_MAN','Wander Man','Wanderer',74,8170,0,5786,4730,2,450,1170,5,5,1,192,38,45,127,85,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1); REPLACE INTO `mob_db` VALUES (1209,'CRAMP','Cramp','Cramp',56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1); -# //1210,FILAMENTOUS,Filamentous,Filamentous,51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1 +# REPLACE INTO `mob_db` VALUES (1210,'FILAMENTOUS','Filamentous','Filamentous',51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1); REPLACE INTO `mob_db` VALUES (1211,'BRILIGHT','Brilight','Brilight',46,5562,0,1826,1331,1,298,383,30,5,1,90,15,10,50,35,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,602,1000,757,220,610,250,509,2600,0,0,0,0,4213,1); REPLACE INTO `mob_db` VALUES (1212,'IRON_FIST','Iron Fist','Iron Fist',47,4221,0,1435,1520,1,430,590,40,5,1,25,15,10,81,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1); REPLACE INTO `mob_db` VALUES (1213,'HIGH_ORC','High Orc','High Orc',52,6890,0,3618,1639,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1); @@ -290,7 +290,7 @@ REPLACE INTO `mob_db` VALUES (1219,'KNIGHT_OF_ABYSS','Knight of Abyss','Abysmal REPLACE INTO `mob_db` VALUES (1220,'M_DESERT_WOLF','Desert Wolf','Desert Wolf',27,1716,0,388,242,1,169,208,0,10,1,27,45,15,56,10,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1); REPLACE INTO `mob_db` VALUES (1221,'M_SAVAGE','Savage','Savage',26,2092,0,357,226,1,146,177,10,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1); REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1); -# //1223,L_ORC,Orc,Orc,24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 +# REPLACE INTO `mob_db` VALUES (1223,'L_ORC','Orc','Orc',24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); REPLACE INTO `mob_db` VALUES (1224,'L_POISON_SPORE','Poison Spore','Poison Spore',19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1); REPLACE INTO `mob_db` VALUES (1225,'L_CHOCO','Choco','Choco',43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1); REPLACE INTO `mob_db` VALUES (1226,'L_KOBOLD','Kobold','Kobold',36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); @@ -339,7 +339,7 @@ REPLACE INTO `mob_db` VALUES (1268,'BLOODY_KNIGHT','Bloody Knight','Bloody Knigh REPLACE INTO `mob_db` VALUES (1269,'CLOCK','Clock','Clock',60,11050,0,3410,2904,1,720,909,15,10,1,70,50,25,90,50,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1); REPLACE INTO `mob_db` VALUES (1270,'C_TOWER_MANAGER','Clock Tower Manager','Clock Tower Manager',63,18600,0,4378,2850,3,880,1180,35,30,1,75,20,64,75,60,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1); REPLACE INTO `mob_db` VALUES (1271,'ALLIGATOR','Alligator','Alligator',42,6962,0,1379,866,1,315,360,2,5,1,45,50,10,69,65,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1); -REPLACE INTO `mob_db` VALUES (1272,'DARK_LORD','Dark Lord','Dark Lord',80,720000,0,65780,45045,2,2800,3320,30,70,1,120,30,118,99,60,10,12,2,6,89,0x37B5,100,868,768,480,32890,10000,7005,6000,5093,500,617,2000,1615,800,5017,550,1237,300,2334,300,2507,100,985,5141,984,3977,0,0,0,0,4168,1); +REPLACE INTO `mob_db` VALUES (1272,'DARK_LORD','Dark Lord','Dark Lord',80,720000,0,65780,45045,2,2800,3320,30,70,1,120,30,118,99,60,10,12,2,6,89,0x37B5,100,868,768,480,32890,10000,7005,6000,5093,500,617,2000,1615,800,5017,550,1237,300,2334,300,2507,100,985,5141,5162,10,0,0,0,0,4168,1); REPLACE INTO `mob_db` VALUES (1273,'ORC_LADY','Orc Lady','Orc Lady',31,2000,0,644,407,1,135,170,10,10,35,42,25,15,69,55,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,0,7053,4656,998,300,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1); REPLACE INTO `mob_db` VALUES (1274,'MEGALITH','Megalith','Megalith',45,5300,0,1758,1075,9,264,314,50,25,1,45,60,5,95,5,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1); REPLACE INTO `mob_db` VALUES (1275,'ALICE','Alice','Alice',62,10000,0,3583,2400,1,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,0x91,200,502,2304,480,0,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,739,30,5085,1,12128,10,12002,100,0,0,0,0,4253,1); @@ -351,7 +351,7 @@ REPLACE INTO `mob_db` VALUES (1280,'STEAM_GOBLIN','Steam Goblin','Goblin Steamri REPLACE INTO `mob_db` VALUES (1281,'SAGEWORM','Sage Worm','Sage Worm',43,3850,0,1155,1320,1,120,280,0,50,1,52,24,88,79,55,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,0,693,100,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1); REPLACE INTO `mob_db` VALUES (1282,'KOBOLD_ARCHER','Kobold Archer','Kobold Archer',33,2560,0,739,455,9,155,185,10,5,10,20,15,30,100,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1); REPLACE INTO `mob_db` VALUES (1283,'CHIMERA','Chimera','Chimera',70,32600,0,4950,3000,1,1200,1320,30,10,1,72,110,88,75,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1); -# //1284,HUGELING,Hugeling,Hugeling,1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0 +# REPLACE INTO `mob_db` VALUES (1284,'HUGELING','Hugeling','Hugeling',1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0); REPLACE INTO `mob_db` VALUES (1285,'ARCHER_GUARDIAN','Archer Guardian','Archer Guardian',74,28634,0,1,1,12,1120,1600,35,60,95,80,80,90,165,55,14,16,2,7,80,0x20A5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1286,'KNIGHT_GUARDIAN','Knight Guardian','Knight Guardian',86,30214,0,1,1,2,1280,1560,55,30,110,40,140,65,125,65,14,16,2,7,80,0x20A5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1287,'SOLDIER_GUARDIAN','Soldier Guardian','Soldier Guardian',56,15670,0,1,1,1,873,1036,35,0,85,56,100,45,103,43,10,12,0,4,22,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -440,7 +440,7 @@ REPLACE INTO `mob_db` VALUES (1369,'GRAND_PECO','Grand Peco','Grand Peco',58,805 REPLACE INTO `mob_db` VALUES (1370,'SUCCUBUS','Succubus','Succubus',85,16955,0,5357,4322,2,1268,1686,54,48,1,97,95,103,89,87,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,522,1500,2407,3,2611,500,2613,150,5066,1,1472,1,505,1000,0,0,0,0,4218,1); REPLACE INTO `mob_db` VALUES (1371,'FAKE_ANGEL','Fake Angel','False Angel',65,16845,0,3371,1949,2,513,682,50,35,1,64,57,70,61,88,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,0,0,0,0,0,717,1000,715,1000,716,1000,12020,1000,0,0,1974,3,0,0,4316,1); REPLACE INTO `mob_db` VALUES (1372,'GOAT','Goat','Goat',69,11077,0,3357,2015,1,457,608,44,25,1,58,66,62,67,43,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1); -REPLACE INTO `mob_db` VALUES (1373,'LORD_OF_DEATH','Lord of Death','Lord of the Dead',94,603383,0,131343,43345,3,2430,3232,77,73,1,99,30,109,100,106,10,12,2,6,67,0x37B5,180,1446,1296,360,65671,10000,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1); +REPLACE INTO `mob_db` VALUES (1373,'LORD_OF_DEATH','Lord of Death','Lord of the Dead',94,603383,0,131343,43345,3,2430,3232,77,73,1,99,30,109,100,106,10,12,2,6,67,0x37B5,130,1446,1296,360,65671,10000,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1); REPLACE INTO `mob_db` VALUES (1374,'INCUBUS','Incubus','Incubus',75,17281,0,5254,4212,2,1408,1873,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1); REPLACE INTO `mob_db` VALUES (1375,'THE_PAPER','The Paper','The Paper',56,18557,0,2849,1998,1,845,1124,25,24,1,66,52,76,71,79,10,12,1,0,60,0x3885,170,1160,960,336,0,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1); REPLACE INTO `mob_db` VALUES (1376,'HARPY','Harpy','Harpy',70,16599,0,3562,2133,1,926,1231,42,44,1,112,72,67,74,76,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,0,0,0,0,1820,3,0,0,4325,1); @@ -474,14 +474,14 @@ REPLACE INTO `mob_db` VALUES (1403,'ANTIQUE_FIRELOCK','Antique Firelock','Firelo REPLACE INTO `mob_db` VALUES (1404,'MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',33,6300,0,795,453,1,250,305,1,20,1,52,15,10,62,15,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1); REPLACE INTO `mob_db` VALUES (1405,'TENGU','Tengu','Tengu',65,16940,0,4207,2843,2,660,980,12,82,90,42,69,45,78,80,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1); REPLACE INTO `mob_db` VALUES (1406,'KAPHA','Kapha','Kapha',41,7892,0,2278,1552,3,399,719,20,38,1,51,49,22,73,45,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,7149,6500,7053,3500,520,1500,521,2300,708,2,1915,10,13008,5,13304,3,0,0,4287,1); -# //1407,DOKEBI_,Dokebi,Dokebi,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +# REPLACE INTO `mob_db` VALUES (1407,'DOKEBI_','Dokebi','Dokebi',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1408,'BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',55,8082,0,2119,1562,3,121,342,5,23,1,59,14,55,68,15,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1); REPLACE INTO `mob_db` VALUES (1409,'RICE_CAKE_BOY','Rice Cake Boy','Dumpling Child',27,2098,0,231,149,1,112,134,5,12,1,22,29,5,41,10,10,12,0,7,20,0x91,160,647,768,420,0,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1); REPLACE INTO `mob_db` VALUES (1410,'LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',53,8905,0,2591,1799,7,301,351,10,38,72,45,35,39,80,5,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,7164,4365,0,0,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1); -# //1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +# REPLACE INTO `mob_db` VALUES (1411,'PEACH_TREE_BULLET','Peach Tree Bullet','Peach Tree Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1412,'EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',56,10392,0,3304,2198,10,311,333,25,59,1,20,18,50,136,11,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1); REPLACE INTO `mob_db` VALUES (1413,'WILD_GINSENG','Wild Ginseng','Hermit Plant',46,6900,0,1038,692,1,220,280,10,20,13,42,36,55,66,30,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,516,4800,1951,1,578,1000,0,0,0,0,4232,1); -# //1414,GINSENG_BULLET,Ginseng Bullet,Ginseng Bullet... (mode 129),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +# REPLACE INTO `mob_db` VALUES (1414,'GINSENG_BULLET','Ginseng Bullet','Ginseng Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1415,'BABY_LEOPARD','Baby Leopard','Baby Leopard',32,2590,0,352,201,2,155,207,0,5,20,44,20,4,49,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1); REPLACE INTO `mob_db` VALUES (1416,'WICKED_NYMPH','Wicked Nymph','Evil Nymph',63,16029,0,3945,2599,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1); REPLACE INTO `mob_db` VALUES (1417,'ZIPPER_BEAR','Zipper Bear','Zipper Bear',35,2901,0,370,225,1,248,289,10,5,30,25,55,15,28,25,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1); @@ -559,19 +559,19 @@ REPLACE INTO `mob_db` VALUES (1488,'G_ANOLIAN','Anolian','Anolian',63,18960,0,0, REPLACE INTO `mob_db` VALUES (1489,'G_STING','Sting','Sting',61,9500,0,0,0,1,850,1032,5,30,57,45,55,5,120,85,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1490,'G_WANDER_MAN','Wander Man','Wanderer',74,8170,0,0,0,2,450,1170,5,5,1,192,38,45,127,85,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1491,'G_DOKEBI','Dokebi','Dokebi',33,2697,0,0,0,1,197,249,0,10,50,50,40,35,69,40,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# //Umbala +# Umbala REPLACE INTO `mob_db` VALUES (1492,'INCANTATION_SAMURAI','Incantation Samurai','Samurai Specter',71,218652,0,33095,18214,3,1219,2169,10,51,91,85,30,85,150,60,10,12,2,7,67,0x37B5,135,874,1344,576,16547,10000,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1); REPLACE INTO `mob_db` VALUES (1493,'DRYAD','Dryad','Dryad',50,8791,0,2763,1493,3,499,589,15,33,1,75,55,1,78,45,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,1951,80,1964,1,2270,10,7100,3000,0,0,0,0,4177,1); REPLACE INTO `mob_db` VALUES (1494,'KIND_OF_BEETLE','Beetle King','Beetle King',34,1874,0,679,442,1,191,243,45,12,1,34,10,0,40,0,10,12,0,4,22,0x3985,165,1247,768,576,0,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1); REPLACE INTO `mob_db` VALUES (1495,'STONE_SHOOTER','Stone Shooter','Stone Shooter',42,4104,0,1238,752,10,309,350,12,45,1,40,20,79,92,20,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1); -# //1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,(mode 2181),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +# REPLACE INTO `mob_db` VALUES (1496,'STONE_SHOOTER_BULLET','Stone Shooter Bullet','Stone Shooter Bullet',(mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1497,'WOODEN_GOLEM','Wooden Golem','Wooden Golem',51,9200,0,1926,1353,1,570,657,32,36,1,41,69,5,85,155,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,921,1000,0,0,0,0,4259,1); REPLACE INTO `mob_db` VALUES (1498,'WOOTAN_SHOOTER','Wootan Shooter','Wootan Shooter',39,3977,0,886,453,10,84,105,10,28,15,35,29,15,100,42,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,512,100,7182,100,5116,10,0,0,0,0,4260,1); REPLACE INTO `mob_db` VALUES (1499,'WOOTAN_FIGHTER','Wootan Fighter','Wootan Fighter',41,4457,0,1790,833,1,395,480,30,19,1,41,31,10,45,30,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,513,1000,7198,1000,5116,5,0,0,0,0,4261,1); REPLACE INTO `mob_db` VALUES (1500,'PARASITE','Parasite','Parasite',49,5188,0,1098,1453,8,215,430,10,19,1,40,30,30,90,50,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,711,500,0,0,0,0,4309,1); -# //1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet... (mode 2181),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +# REPLACE INTO `mob_db` VALUES (1501,'PARASITE_BULLET','Parasite Bullet','Parasite Bullet... (mode 2181)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1502,'PORING_V','Pori Pori','Bring it on!',99,95000000,0,87250,27895,1,10000,30000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10000,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,4000,7126,10000,2110,4500,0,0,0,0); -# //Niflheim +# Niflheim REPLACE INTO `mob_db` VALUES (1503,'GIBBET','Gibbet','Gibbet',58,6841,0,4011,1824,1,418,656,28,31,0,42,42,27,46,28,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,0,0,0,0,0,0,4278,1); REPLACE INTO `mob_db` VALUES (1504,'DULLAHAN','Dullahan','Dullahan',62,12437,0,4517,2963,2,647,1065,47,38,0,30,5,45,62,22,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,0,7209,3200,7210,4850,0,0,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1); REPLACE INTO `mob_db` VALUES (1505,'LOLI_RURI','Loli Ruri','Loli Ruri',71,23470,0,6641,4314,2,1476,2317,39,44,0,66,54,74,81,43,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,0,0,0,0,0,0,0,0,4191,1); @@ -581,7 +581,7 @@ REPLACE INTO `mob_db` VALUES (1508,'QUVE','Quve','Quve',40,4559,0,414,306,1,299, REPLACE INTO `mob_db` VALUES (1509,'LUDE','Lude','Lude',36,3214,0,392,247,2,287,451,14,10,0,59,21,18,36,21,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,0,0,0,0,0,0,4193,1); REPLACE INTO `mob_db` VALUES (1510,'HYLOZOIST','Hylozoist','Heirozoist',51,7186,0,2314,1297,1,317,498,16,51,0,28,26,47,66,14,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1); REPLACE INTO `mob_db` VALUES (1511,'AMON_RA','Amon Ra','Amon Ra',88,1214138,0,87264,35891,3,1647,2576,26,52,0,1,90,124,74,45,14,12,2,7,62,0x1A4,170,854,2016,480,43632,10000,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1); -# //Louyang +# Louyang REPLACE INTO `mob_db` VALUES (1512,'HYEGUN','Hyegun','Yao Jun',56,9981,0,2199,1022,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,0,0,0,0,0,0,0,0,4328,1); REPLACE INTO `mob_db` VALUES (1513,'CIVIL_SERVANT','Civil Servant','Mao Guai',62,14390,0,4023,2750,2,650,1010,42,5,58,15,20,60,80,50,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1); REPLACE INTO `mob_db` VALUES (1514,'DANCING_DRAGON','Dancing Dragon','Zhu Po Long',54,9136,0,3030,769,2,550,789,39,10,55,62,55,25,72,22,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1); @@ -654,12 +654,12 @@ REPLACE INTO `mob_db` VALUES (1580,'G_INCUBUS','Incubus','Incubus',75,17281,0,0, REPLACE INTO `mob_db` VALUES (1581,'G_VOCAL','Vocal','Vocal',18,3016,0,0,0,1,71,82,10,30,77,28,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1582,'DEVILING','Deviling','Deviling',31,64500,0,211,412,1,135,270,5,70,30,50,20,75,77,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1); REPLACE INTO `mob_db` VALUES (1583,'TAO_GUNKA','Tao Gunka','Tao Gunka',70,193000,0,59175,10445,2,1450,1770,20,20,1,85,78,35,140,60,10,12,2,6,60,0x37B5,150,1020,288,144,29587,10000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,1002,1000,2231,5,0,0,0,0,4302,1); -# //Ayothaya +# Ayothaya REPLACE INTO `mob_db` VALUES (1584,'TAMRUAN','Tamruan','Tamruan',52,10234,0,3812,55,1,489,534,15,35,80,62,38,75,72,15,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,0,0,0,0,0,0,0,0,4304,1); REPLACE INTO `mob_db` VALUES (1585,'MIME_MONKEY','Mime Monkey','Mime Monkey',40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1586,'LEAF_CAT','Leaf Cat','Leaf Cat',38,2396,0,165,1212,1,266,307,5,19,25,67,12,45,60,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1); REPLACE INTO `mob_db` VALUES (1587,'KRABEN','Kraben','Kraben',50,5880,0,206,1322,1,125,765,5,42,50,125,1,66,75,50,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1); -# //Some more G_Mobs and Xmas_Orc +# Some more G_Mobs and Xmas_Orc REPLACE INTO `mob_db` VALUES (1588,'ORC_XMAS','Christmas Orc','Christmas Orc',24,1400,0,261,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1); REPLACE INTO `mob_db` VALUES (1589,'G_MANDRAGORA','Mandragora','Mandragora',12,405,0,0,0,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1590,'G_GEOGRAPHER','Geographer','Geographer',56,8071,0,0,0,3,467,621,28,26,1,66,47,60,68,44,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -685,7 +685,7 @@ REPLACE INTO `mob_db` VALUES (1609,'G_DANCING_DRAGON','Dancing Dragon','Zhu Po L REPLACE INTO `mob_db` VALUES (1610,'A_MUNAK','Munak','Munak',30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); REPLACE INTO `mob_db` VALUES (1611,'A_BON_GUN','Bongun','Bongun',32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); REPLACE INTO `mob_db` VALUES (1612,'A_HYEGUN','Hyegun','Yao Jun',56,9981,0,0,0,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); -# //Einbroch +# Einbroch REPLACE INTO `mob_db` VALUES (1613,'METALING','Metaling','Metaling',26,889,0,492,249,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1); REPLACE INTO `mob_db` VALUES (1614,'MINERAL','Mineral','Mineral',56,7950,0,3563,1768,1,723,812,29,35,60,52,35,21,67,32,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1); REPLACE INTO `mob_db` VALUES (1615,'OBSIDIAN','Obsidian','Obsidian',50,8812,0,2799,1802,1,841,980,35,5,62,32,42,24,61,55,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1); @@ -696,12 +696,12 @@ REPLACE INTO `mob_db` VALUES (1619,'PORCELLIO','Porcellio','Porcellio',28,1654,0 REPLACE INTO `mob_db` VALUES (1620,'NOXIOUS','Noxious','Noxious',35,2038,0,698,698,1,299,400,0,60,12,41,10,30,44,2,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,0,0,0,0,603,1,0,0,0,0,4334,1); REPLACE INTO `mob_db` VALUES (1621,'VENOMOUS','Venomous','Venomous',42,4653,0,1780,1280,1,422,844,0,49,12,60,17,19,60,1,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,0,0,0,0,603,1,0,0,0,0,4333,1); REPLACE INTO `mob_db` VALUES (1622,'TEDDY_BEAR','Teddy Bear','Teddy Bear',71,8109,0,5891,3455,1,621,1432,19,32,5,155,32,41,121,26,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1); -REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',86,560733,0,31010,32011,1,2740,5620,39,41,85,51,30,25,93,84,10,12,2,0,60,0x37B5,220,128,1104,240,15505,10000,607,5500,5104,3500,732,5500,7093,6000,999,5000,644,5000,617,1000,7327,5000,1242,50,1531,20,1230,10,0,0,4342,1); +REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',86,560733,0,31010,32011,1,2740,5620,39,41,85,51,30,25,93,84,10,12,2,0,60,0x37B5,220,128,1104,240,15505,10000,607,5500,5104,3500,732,5500,7093,6000,999,5000,13017,1,617,1000,7327,5000,1242,100,1531,40,1230,5,0,0,4342,1); REPLACE INTO `mob_db` VALUES (1624,'G_WASTE_STOVE','Waste Stove','Old Stove',68,15895,0,0,0,1,500,889,23,10,20,69,55,5,79,77,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1625,'G_PORCELLIO','Porcellio','Porcellio',43,5523,0,1024,693,1,164,494,0,8,0,31,21,50,64,85,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# // Hellion Revenant +# Hellion Revenant REPLACE INTO `mob_db` VALUES (1626,'G_DARK_PRIEST','Hellion Revenant','Hellion Revenant',88,286900,0,1,1,2,50,3150,25,50,1,80,50,99,130,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0); -# //Lighthalzen +# Lighthalzen REPLACE INTO `mob_db` VALUES (1627,'ANOPHELES','Anopheles','Anopheles',23,100,0,99,55,1,48,63,0,90,1,200,4,5,120,5,10,12,0,4,64,0x3985,200,140,864,430,0,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1); REPLACE INTO `mob_db` VALUES (1628,'MOLE','Mole','Holden',36,2209,0,268,172,9,52,63,0,5,24,18,23,30,45,5,10,12,0,2,42,0x1089,300,140,960,504,0,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1); REPLACE INTO `mob_db` VALUES (1629,'HILL_WIND','Hill Wind','Hill Wind',43,3189,0,1800,1100,3,290,480,10,15,21,42,31,50,41,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1); @@ -709,35 +709,35 @@ REPLACE INTO `mob_db` VALUES (1630,'BACSOJIN_','Bacsojin','White Lady',85,253221 REPLACE INTO `mob_db` VALUES (1631,'CHUNG_E_','Chung E','Green Maiden',59,23900,0,4256,920,2,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,0,0,0,0,5042,50,0,0,0,0,4373,1); REPLACE INTO `mob_db` VALUES (1632,'GREMLIN','Gremlin','Gremlin',53,9280,0,4355,1768,1,329,762,29,25,80,41,59,75,62,15,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1); REPLACE INTO `mob_db` VALUES (1633,'BEHOLDER','Beholder','Beholder',56,7950,0,4821,3822,6,723,812,17,30,60,62,25,59,85,32,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1); -# //Normal advanced class mobs +# Normal advanced class mobs REPLACE INTO `mob_db` VALUES (1634,'SEYREN','Seyren','Seyren Windsor',91,88402,0,100000,116460,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,603,30,2229,12,2317,1,1155,250,0,0,0,0,4358,1); REPLACE INTO `mob_db` VALUES (1635,'EREMES','Eremes','Eremes Guile',87,60199,0,100000,99800,1,2020,2320,23,12,45,138,31,19,99,30,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,0,7347,2000,603,50,2514,1,1262,3,1264,30,678,110,2336,2,0,0,0,0,4360,1); REPLACE INTO `mob_db` VALUES (1636,'HARWORD','Harword','Howard Alt-Eisen',83,78690,0,100000,112540,1,1890,2390,59,10,90,62,99,35,98,66,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,2514,1,2406,5,1361,110,2104,10,2318,1,603,50,0,0,0,0,4362,1); REPLACE INTO `mob_db` VALUES (1637,'MAGALETA','Magaleta','Margaretha Sorin',90,61282,0,100000,117800,1,1300,2053,35,60,1,9,97,145,88,40,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,0,7347,2000,2607,20,1602,200,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1); REPLACE INTO `mob_db` VALUES (1638,'SHECIL','Shecil','Cecil Damon',82,58900,0,100000,118260,14,1226,1854,25,15,1,145,27,32,134,80,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,603,50,2502,60,0,0,0,0,4368,1); REPLACE INTO `mob_db` VALUES (1639,'KATRINN','Katrinn','Kathryne Keyron',92,47280,0,100000,116470,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,7345,3000,603,50,1611,200,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1); -# //MVP Slaves +# MVP Slaves REPLACE INTO `mob_db` VALUES (1640,'G_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,347590,0,18000,10000,1,4238,5040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); REPLACE INTO `mob_db` VALUES (1641,'G_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',99,211230,0,18000,10000,1,3189,5289,27,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); REPLACE INTO `mob_db` VALUES (1642,'G_HARWORD','Whitesmith Harword','Whitesmith Howard',99,310000,0,18000,10000,1,4822,5033,66,36,100,73,112,35,136,60,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); REPLACE INTO `mob_db` VALUES (1643,'G_MAGALETA','High Priest Magaleta','High Priest Margaretha',99,182910,0,18000,10000,1,1688,2580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); REPLACE INTO `mob_db` VALUES (1644,'G_SHECIL','Sniper Shecil','Sniper Cecil',99,209000,0,18000,10000,14,1892,5113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); REPLACE INTO `mob_db` VALUES (1645,'G_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,189920,0,18000,10000,1,497,2094,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); -# //MVP Monsters +# MVP Monsters REPLACE INTO `mob_db` VALUES (1646,'B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,4835600,1569970,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,2417800,10000,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1); REPLACE INTO `mob_db` VALUES (1647,'B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,4083400,1592380,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,2041700,10000,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1); REPLACE INTO `mob_db` VALUES (1648,'B_HARWORD','Whitesmith Harword','Whitesmith Howard',99,1460000,0,4002340,1421000,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,2001170,10000,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1); REPLACE INTO `mob_db` VALUES (1649,'B_MAGALETA','High Priest Magaleta','High Priest Margaretha',99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,2128500,10000,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1); REPLACE INTO `mob_db` VALUES (1650,'B_SHECIL','Sniper Shecil','Sniper Cecil',99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,2046500,10000,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1); REPLACE INTO `mob_db` VALUES (1651,'B_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,2004100,10000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1); -# //1'st Class Mobs +# 1'st Class Mobs REPLACE INTO `mob_db` VALUES (1652,'YGNIZEM','Ygnizem','Egnigem Cenia',58,11200,0,4870,98,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,7347,1000,2317,1,1158,20,1127,20,2313,10,1152,80,1170,1,0,0,0,0,4346,1); REPLACE INTO `mob_db` VALUES (1653,'WHIKEBAIN','Whikebain','Wickebine Tres',62,7320,0,4204,21,1,693,889,9,8,1,102,34,20,83,30,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,1208,50,13004,10,0,0,0,0,4348,1); REPLACE INTO `mob_db` VALUES (1654,'ARMAIA','Armaia','Armeyer Dinze',66,7110,0,4008,35,1,750,913,42,6,5,36,50,15,89,60,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1); REPLACE INTO `mob_db` VALUES (1655,'EREND','Erend','Errende Ebecee',59,6980,0,4501,67,1,896,1159,14,30,1,31,41,93,67,30,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1); REPLACE INTO `mob_db` VALUES (1656,'KAVAC','Kavac','Kavach Icarus',60,7899,0,4090,86,9,684,904,12,5,48,100,10,15,118,40,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1); REPLACE INTO `mob_db` VALUES (1657,'RAWREL','Rawrel','Laurell Weinder',61,6168,0,4620,30,1,430,517,8,48,1,41,5,120,45,10,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1); -# //1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs. +# 1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs. REPLACE INTO `mob_db` VALUES (1658,'B_YGNIZEM','Ygnizem','Egnigem Cenia',79,214200,0,258760,86000,1,3890,5690,48,25,82,60,45,31,110,40,10,12,1,7,43,0x37B5,100,1008,864,288,129380,10000,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,644,1000,0,0,4352,1); REPLACE INTO `mob_db` VALUES (1659,'G_WHIKEBAIN','Whikebain','Wickebine Tres',62,7320,0,0,0,1,593,789,9,12,1,102,34,23,74,30,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1660,'G_ARMAIA','Armaia','Armeyer Dinze',66,7110,0,0,0,1,650,813,42,6,5,36,40,15,80,60,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -772,7 +772,7 @@ REPLACE INTO `mob_db` VALUES (1688,'LADY_TANEE','Lady Tanee','Lady Tanee',89,493 REPLACE INTO `mob_db` VALUES (1689,'G_BACSOJIN','Bacsojin','White Lady',85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1690,'G_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',12,15,0,0,0,1,0,0,100,99,1,1,1,1,1,1,10,12,1,2,42,0xC3,160,1120,552,511,0,0,0,0,0,0,0,0,7303,9000,7303,500,7303,10,7303,10,7303,10,7303,10,7303,10,7303,10,0,0,0,0); REPLACE INTO `mob_db` VALUES (1691,'G_KRABEN','Kraben','Kraben',70,10880,0,0,0,1,125,765,5,42,50,155,1,66,112,60,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0); -# // Thanatos Tower & Abyss +# Thanatos Tower & Abyss REPLACE INTO `mob_db` VALUES (1692,'BREEZE','Breeze','Breeze',56,5099,0,2390,1340,2,94,215,7,32,1,96,6,38,91,45,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,0,945,500,706,10,2270,10,511,100,604,10,2269,10,996,10,1733,3,0,0,4390,1); REPLACE INTO `mob_db` VALUES (1693,'PLASMA_Y','Plasma','Plasma',56,8400,0,2200,2100,3,400,900,0,40,1,30,10,83,105,45,10,12,0,0,88,0x3885,100,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,0,0,0,0,0,0,0,0,4389,1); REPLACE INTO `mob_db` VALUES (1694,'PLASMA_R','Plasma','Plasma',43,5700,0,2000,1000,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x3885,150,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1); @@ -814,7 +814,7 @@ REPLACE INTO `mob_db` VALUES (1729,'R_BAPHOMET_','Baphomet Jr.','Baphomet Jr.',5 REPLACE INTO `mob_db` VALUES (1730,'R_DEVIRUCHI','Deviruchi','Deviruchi',46,7360,0,0,0,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1731,'G_DOPPELGANGER','Doppelganger','Doppelganger',72,12000000,0,3000000,2000000,1,5000,10000,99,99,88,180,70,75,180,65,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1732,'G_TREASURE_BOX','Treasure Chest','Treasure Chest',98,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# // Kiel Dungeon monsters +# Kiel Dungeon monsters REPLACE INTO `mob_db` VALUES (1733,'KIEL','Kiel','Kiehl',90,523000,0,36500,23405,3,1682,3311,28,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',90,1523000,0,2356200,512602,3,3280,6560,28,32,100,130,30,160,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,1178100,10000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1); REPLACE INTO `mob_db` VALUES (1735,'ALICEL','Alicel','Alicel',75,37520,0,8890,5420,2,1800,2770,30,30,50,58,50,51,92,40,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,0,7512,2000,7507,3000,999,200,7317,500,1812,5,985,10,2517,20,1270,3,0,0,4401,1); @@ -833,8 +833,8 @@ REPLACE INTO `mob_db` VALUES (1747,'G_SNAKE','Snake','Boa',15,471,0,0,0,1,46,55, REPLACE INTO `mob_db` VALUES (1748,'G_ANACONDAQ','Anacondaq','Anacondaq',23,1109,0,0,0,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1749,'G_MEDUSA','Medusa','Medusa',79,22408,0,0,0,1,827,1100,48,38,1,74,50,57,77,69,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1750,'G_RED_PLANT','Red Plant','Red Plant',1,100,0,0,0,1,100,200,100,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# // Odin monsters -REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',99,3567200,0,2854900,3114520,3,5560,9980,25,42,100,120,30,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,1427450,10000,617,5500,603,5000,616,2000,7510,5000,2357,800,2524,1500,2421,1500,2229,2500,7024,2500,0,0,0,0,0,0,4407,1); +# Odin monsters +REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',99,3567200,0,2854900,3114520,3,5560,9980,25,42,100,120,30,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,1427450,10000,617,5500,603,5000,616,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,0,0,0,0,0,0,4407,1); REPLACE INTO `mob_db` VALUES (1752,'SKOGUL','Skogul','Skogul',70,87544,0,27620,10,2,1110,1930,20,15,1,69,70,50,67,52,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,0,0,1271,3,0,0,4404,1); REPLACE INTO `mob_db` VALUES (1753,'FRUS','Frus','Frus',69,83422,0,20620,10,2,1110,1780,20,15,1,69,60,50,76,52,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1); REPLACE INTO `mob_db` VALUES (1754,'SKEGGIOLD','Skeggiold','Skeggiold',81,295200,0,91100,10,1,1400,2020,12,24,80,100,50,72,90,50,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,608,20,7511,1000,2322,100,2353,100,2001,5,0,0,4406,1); @@ -851,7 +851,7 @@ REPLACE INTO `mob_db` VALUES (1764,'G_SKEGGIOLD_','Skeggiold','Skeggiold',83,103 REPLACE INTO `mob_db` VALUES (1765,'G_RANDGRIS','Valkyrie','Valkyrie',99,1567200,0,10000,10000,3,5560,9980,25,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,7510,500,617,100,2115,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1766,'EM_ANGELING','Angeling','Angeling',99,128430,0,0,0,1,60,71,40,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1767,'EM_DEVILING','Deviling','Deviling',99,128430,0,0,0,1,60,71,40,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# // Rachel / Ice Dungeon monsters +# Rachel / Ice Dungeon monsters REPLACE INTO `mob_db` VALUES (1768,'GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',89,2298000,0,962175,276445,3,5880,9516,10,20,100,115,98,78,111,50,10,12,2,0,68,0x37B5,200,1344,2880,576,481087,10000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,0,0,0,0,1377,30,0,0,4408,1); REPLACE INTO `mob_db` VALUES (1769,'AGAV','Agav','Agav',73,29620,0,9780,6622,1,103,1109,15,35,1,32,27,132,69,15,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,0,0,0,0,0,0,4409,1); REPLACE INTO `mob_db` VALUES (1770,'ECHIO','Echio','Echio',69,34900,0,13560,4300,1,750,1800,33,11,74,74,52,35,59,56,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,50,12183,20,7563,100,0,0,2366,2,0,0,4410,1); @@ -896,7 +896,7 @@ REPLACE INTO `mob_db` VALUES (1808,'B_MAGALETA_','High Priest Magaleta','High Pr REPLACE INTO `mob_db` VALUES (1809,'B_SHECIL_','Sniper Shecil','Sniper Cecil',99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1810,'B_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1811,'G_SMOKIE_','Smokie','Bandit',18,641,0,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1812,'EVENT_LUDE','Lude','Delightful Lude',99,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1812,'EVENT_LUDE','Lude','Delightful Lude',99,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1813,'EVENT_HYDRO','Hydro','Hydrolancer',99,5880000,0,4000000,2000000,3,15000,40000,60,55,1,142,250,86,189,32,10,12,2,8,48,0x37B5,100,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1814,'EVENT_MOON','Moonlight Flower','Moonlight Flower',80,30000,0,30000,30000,1,500,800,50,50,1,35,45,112,69,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1815,'EVENT_RICECAKE','Rice Cake','Rice Cake',12,20,0,0,0,1,1,2,100,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,1320,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -913,7 +913,7 @@ REPLACE INTO `mob_db` VALUES (1825,'G_GOBLINE_XMAS_','Chistmas Goblin','Chistmas REPLACE INTO `mob_db` VALUES (1826,'G_MYST_','Myst','Myst',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1827,'G_SASQUATCH_','Sasquatch','Sasquatch',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1828,'G_GULLINBURSTI_','Gullinbrusti','Gullinbrusti',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1829,'SWORD_GUADIAN','Sword Guardian','Sword Master',86,152533,0,155013,122604,2,7590,9140,60,33,1,40,54,65,125,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,0,0,0,0,2122,5,1422,6,1176,6,4427,1); +REPLACE INTO `mob_db` VALUES (1829,'SWORD_GUARDIAN','Sword Guardian','Sword Master',86,152533,0,155013,122604,2,7590,9140,60,33,1,40,54,65,125,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,0,0,0,0,2122,5,1422,6,1176,6,4427,1); REPLACE INTO `mob_db` VALUES (1830,'BOW_GUARDIAN','Bow Guardian','Bow Master',80,80404,0,50149,23006,12,1840,2520,40,62,1,80,33,90,165,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,0,0,0,0,0,0,0,0,2367,5,2701,2,4428,1); REPLACE INTO `mob_db` VALUES (1831,'SALAMANDER','Salamander','Salamander',91,97934,0,72000,55000,2,7590,10860,65,50,1,55,44,45,180,25,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,7097,3000,994,30,716,100,2680,1,1370,5,2621,1,0,0,1920,3,2364,2,4429,1); REPLACE INTO `mob_db` VALUES (1832,'IFRIT','Ifrit','Ifrit',99,7700000,0,3154321,3114520,3,13530,17000,40,50,1,180,25,190,199,50,10,12,2,0,83,0x37B5,130,212,384,360,1577160,10000,603,5500,617,5000,616,2000,994,10000,2677,3000,2678,100,2679,100,1471,2000,1133,2000,1473,2000,2345,100,0,0,4430,1); @@ -964,15 +964,15 @@ REPLACE INTO `mob_db` VALUES (1876,'G_LORD_OF_DEATH','Lord of Death','Lord of th REPLACE INTO `mob_db` VALUES (1877,'G_CRYSTAL','Crystal','Crystal',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1878,'G_SHINING_PLANT','Shining Plant','Shining Plant',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1879,'ECLIPSE_P','Spring Rabbit','Spring Rabbit',58,9045,0,3982,1766,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# //Moscovia monsters (with sense info) +# Moscovia monsters (with sense info) REPLACE INTO `mob_db` VALUES (1880,'WOOD_GOBLIN','Wood Goblin','Leshij',42,6982,0,2201,1552,1,600,750,32,3,1,42,48,43,63,42,10,12,1,3,62,0x81,100,288,288,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1881,'LES','Mavka','Mavka',39,3080,0,1521,912,1,300,600,0,17,1,39,12,32,58,39,10,12,1,3,82,0x81,100,288,288,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1882,'VAVAYAGA','Babayaga','Baba-Yaga',49,7444,0,2583,2583,1,550,1100,4,29,1,49,24,88,73,49,10,12,1,7,21,0x3295,100,288,288,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1883,'UZHAS','Uzdas','Kikimora',61,13565,0,4002,3003,1,700,1400,11,34,1,61,19,72,91,61,10,12,1,7,61,0x3295,100,288,288,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1883,'UZHAS','Uzdas','Kikimora',61,13707,0,4002,3003,1,700,1400,11,34,1,61,19,72,91,61,10,12,1,7,61,0x3295,100,288,288,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1884,'MAVKA','Lesavka','Lesavka',63,19200,0,8301,6353,9,1500,3000,32,19,1,63,57,34,126,63,10,12,1,3,62,0x3295,100,288,288,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1885,'GOPINICH','Gorynych','Zmey Gorynych',85,299321,0,33937,7941,3,3500,7000,20,42,1,85,56,102,170,85,10,12,2,2,62,0x37B5,120,288,288,288,16968,10000,607,5500,603,5000,603,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1886,'G_MAVKA','Lesavka','Lesavka',63,19200,0,0,0,9,1500,3000,32,19,1,63,57,34,126,63,10,12,1,3,62,0x3295,100,288,288,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# //Additional Monsters +# Additional Monsters REPLACE INTO `mob_db` VALUES (1887,'G_FREEZER__','Freezer','Freezer',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1888,'G_GARM_BABY__','Garm Baby','Garm Baby',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1889,'G_GARM','Garm','Garm',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -1000,8 +1000,8 @@ REPLACE INTO `mob_db` VALUES (1910,'OBJ_B','Flag','Flag',1,50,0,0,0,1,7,10,0,5,1 REPLACE INTO `mob_db` VALUES (1911,'OBJ_NEUTRAL','Flag','Flag',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1912,'OBJ_FLAG_A','Flag','Flag',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1913,'OBJ_FLAG_B','Flag','Flag',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# //1914,OBJ_A2,Flag,Flag,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -# //1915,OBJ_B2,Flag,Flag,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +# REPLACE INTO `mob_db` VALUES (1914,'OBJ_A2','Flag','Flag',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (1915,'OBJ_B2','Flag','Flag',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1916,'G_SATAN_MORROC','Satan Morroc','Satan Morroc',99,60000000,0,0,0,1,7,10,29,65,1,1,1,1,6,30,10,12,2,6,87,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1917,'SATAN_MORROC','Satan Morroc','Satan Morroc',99,60000000,0,0,0,1,7,10,29,65,1,1,1,1,6,30,10,12,2,6,87,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1918,'G_MORROC_SHADOW_ANGEL','Morroc\'s Shadow','Morroc\'s Shadow',97,190000,0,0,0,1,7,10,20,37,1,1,1,1,6,30,10,12,2,8,26,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql index 22ebfe6cc..55d4c2f8d 100644 --- a/sql-files/mob_db2.sql +++ b/sql-files/mob_db2.sql @@ -65,20 +65,20 @@ CREATE TABLE `mob_db2` ( PRIMARY KEY (`ID`) ) TYPE=MyISAM; -# // Monsters Additional Database -# // -# // Structure of Database : -# // ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper -# // Easter Event Monsters +# Monsters Additional Database +# +# Structure of Database : +# REPLACE INTO `mob_db2` VALUES ( ID,'Sprite_Name','kROName','iROName',LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper); +# Easter Event Monsters # REPLACE INTO `mob_db2` VALUES (1920,'EASTER_EGG','Easter Egg','Easter Egg',3,300,0,4,4,0,1,2,20,20,1,1,1,1,1,20,10,12,0,0,60,128,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,250,935,500,558,300,501,200,501,200,713,800,558,300,558,300,0,0,0,0); # REPLACE INTO `mob_db2` VALUES (1921,'EASTER_BUNNY','Easter Bunny','Easter Bunny',6,1800,0,60,55,1,20,26,0,40,1,36,6,1,11,80,10,10,0,2,60,181,200,1456,456,336,0,0,0,0,0,0,0,0,2250,200,515,8000,727,1200,746,1500,706,30,622,50,534,5000,0,0,0,0,4006,70); -# // eAthena Dev Team +# eAthena Dev Team # REPLACE INTO `mob_db2` VALUES (1900,'VALARIS','Valaris','Valaris',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); # REPLACE INTO `mob_db2` VALUES (1901,'VALARIS_WORSHIPPER','Valaris\'s Worshipper','Valaris\'s Worshipper',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1685,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1); # REPLACE INTO `mob_db2` VALUES (1902,'MC_CAMERI','MC Cameri','MC Cameri',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); # REPLACE INTO `mob_db2` VALUES (1903,'POKI','Poki#3','Poki#3',99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,1973,120,500,672,480,92100,7000,603,5500,617,3000,1723,1000,1228,100,1236,500,617,2500,1234,75,1237,125,1722,250,1724,100,1720,50,0,0,0,0); # REPLACE INTO `mob_db2` VALUES (1904,'SENTRY','Sentry','Sentry',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); -# //Custom Hollow Poring (overrrides/collides with META_ANDRE) +# Custom Hollow Poring (overrrides/collides with META_ANDRE) # REPLACE INTO `mob_db2` VALUES (1237,'HOLLOW_PORING','Hollow Poring','Hollow Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,10); -# //Custom Fire Poring. Warning, Colides with META_DENIRO +# Custom Fire Poring. Warning, Colides with META_DENIRO # REPLACE INTO `mob_db2` VALUES (1239,'FIRE_PORING','Fire Poring','Fire Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20); diff --git a/tools/item_db.pl b/tools/item_db.pl index 101ff3961..f19737f1e 100755 --- a/tools/item_db.pl +++ b/tools/item_db.pl @@ -43,29 +43,30 @@ while ($ligne=) $ligne = $&; if ($ligne =~ /^\/\//) { - printf("# %s\n", $ligne); + printf("# "); + $ligne = substr($ligne, 2); + } + if ($ligne =~ $line_format) { + @champ = ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22); } else { - if ($ligne =~ $line_format) { - @champ = ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22); - } else { - @champ = (); - } - if ($#champ != $nb_columns - 1) + @champ = (); + } + if ($#champ != $nb_columns - 1) + { + # Can't parse, it's a real comment + printf ("%s\n", $ligne); + } else { + printf("REPLACE INTO `%s` VALUES (", $db); + for ($i=0; $i<$#champ; $i++) { - printf ("# WARNING BAD LINE : %d (%s)\n", $#champ, $ligne); - printf STDERR ("Warning : can't parse %s\n", $ligne); - } else { - printf("REPLACE INTO `%s` VALUES (", $db); - for ($i=0; $i<$#champ; $i++) - { - printField($champ[$i],",",$i); - } - printField($champ[$#champ],");\n",$#champ); + printField($champ[$i],",",$i); } + printField($champ[$#champ],");\n",$#champ); } } } + sub printField { my ($str, $suffix, $idCol) = @_; # Remove first { and last } diff --git a/tools/mob_db.pl b/tools/mob_db.pl index de4e1b15e..e6eb859c4 100755 --- a/tools/mob_db.pl +++ b/tools/mob_db.pl @@ -77,21 +77,21 @@ while ($ligne=) $ligne = $&; if ($ligne =~ /^\/\//) { - printf("# %s\n", $ligne); + printf("# "); + $ligne = substr($ligne, 2); + } + @champ = split (",",$ligne); + if ($#champ != $nb_columns - 1) + { + # Can't parse, it's a real comment + printf ("%s\n", $ligne); } else { - @champ = split (",(?![^{]*[})])",$ligne); - if ($#champ != $nb_columns - 1) + printf("REPLACE INTO `%s` VALUES (", $db); + for ($i=0; $i<$#champ; $i++) { - printf ("# WARNING BAD LINE : %d (%s)\n", $#champ, $ligne); - printf STDERR ("Warning : can't parse %s\n", $ligne); - } else { - printf("REPLACE INTO `%s` VALUES (", $db); - for ($i=0; $i<$#champ; $i++) - { - printField($champ[$i],",",$i); - } - printField($champ[$#champ],");\n",$#champ); + printField($champ[$i],",",$i); } + printField($champ[$#champ],");\n",$#champ); } } } -- cgit v1.2.3-70-g09d2 From 49f192f82cc0026f73bd5b0d1e924cc3ab9ec04c Mon Sep 17 00:00:00 2001 From: ultramage Date: Wed, 30 Jan 2008 16:25:47 +0000 Subject: Added back the GRF_PATH_FILENAME variable and commandline parameter. Removed confusing /tool/mapcache/ configuration directory, changed code to use /conf for this purpose. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12154 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/map.c | 6 +++++- src/map/map.h | 1 + src/tool/mapcache.c | 2 +- tools/mapcache/grf_files.txt | 15 --------------- 4 files changed, 7 insertions(+), 17 deletions(-) delete mode 100644 tools/mapcache/grf_files.txt (limited to 'tools') diff --git a/src/map/map.c b/src/map/map.c index cce232fd2..448648f28 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -93,6 +93,7 @@ char *ATCOMMAND_CONF_FILENAME; char *CHARCOMMAND_CONF_FILENAME; char *SCRIPT_CONF_NAME; char *MSG_CONF_NAME; +char *GRF_PATH_FILENAME; // 極力 staticでロ?カルに?める static DBMap* id_db=NULL; // int id -> struct block_list* @@ -3156,6 +3157,7 @@ int do_init(int argc, char *argv[]) CHARCOMMAND_CONF_FILENAME = "conf/charcommand_athena.conf"; SCRIPT_CONF_NAME = "conf/script_athena.conf"; MSG_CONF_NAME = "conf/msg_athena.conf"; + GRF_PATH_FILENAME = "conf/grf-files.txt"; srand(gettick()); @@ -3176,6 +3178,8 @@ int do_init(int argc, char *argv[]) SCRIPT_CONF_NAME = argv[i+1]; else if (strcmp(argv[i],"--msg_config") == 0 || strcmp(argv[i],"--msg-config") == 0) MSG_CONF_NAME = argv[i+1]; + else if (strcmp(argv[i],"--grf_path_file") == 0 || strcmp(argv[i],"--grf-path-file") == 0) + GRF_PATH_FILENAME = argv[i+1]; #ifndef TXT_ONLY else if (strcmp(argv[i],"--inter_config") == 0 || strcmp(argv[i],"--inter-config") == 0) INTER_CONF_NAME = argv[i+1]; @@ -3230,7 +3234,7 @@ int do_init(int argc, char *argv[]) mapindex_init(); if(enable_grf) - grfio_init("conf/grf-files.txt"); //[blackhole89] - restore + grfio_init(GRF_PATH_FILENAME); map_readallmaps(); diff --git a/src/map/map.h b/src/map/map.h index fc67a5387..436fbca33 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -1347,6 +1347,7 @@ extern char *ATCOMMAND_CONF_FILENAME; extern char *CHARCOMMAND_CONF_FILENAME; extern char *SCRIPT_CONF_NAME; extern char *MSG_CONF_NAME; +extern char *GRF_PATH_FILENAME; extern char *map_server_dns; diff --git a/src/tool/mapcache.c b/src/tool/mapcache.c index c74484339..b696c6ee9 100644 --- a/src/tool/mapcache.c +++ b/src/tool/mapcache.c @@ -15,7 +15,7 @@ #define MAP_NAME_LENGTH_EXT 16 #define NO_WATER 1000000 -char grf_list_file[256] = "tools/mapcache/grf_files.txt"; +char grf_list_file[256] = "conf/grf-files.txt"; char map_list_file[256] = "db/map_index.txt"; char map_cache_file[256] = "db/map_cache.dat"; int rebuild = 0; diff --git a/tools/mapcache/grf_files.txt b/tools/mapcache/grf_files.txt deleted file mode 100644 index 21a3145bc..000000000 --- a/tools/mapcache/grf_files.txt +++ /dev/null @@ -1,15 +0,0 @@ -//----------------------------------------- -// GRF List -// Add as many entries as you wish -//----------------------------------------- - -//grf: C:\Program Files\Gravity\RO\data.grf -grf: C:\Program Files\Gravity\RO\sdata.grf - -//----------------------------------------- -// Data Directory -// Path must include trailing backslash -// Only one entry supported! -//----------------------------------------- - -//data_dir: C:\Program Files\Gravity\RO\ -- cgit v1.2.3-70-g09d2 From 43cd16d6223038e798e151df8038c81d18414353 Mon Sep 17 00:00:00 2001 From: ultramage Date: Fri, 4 Apr 2008 21:04:47 +0000 Subject: Replaced the TYPE keyword with ENGINE in all sql files, because this is the preferred alternative. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12480 54d463be-8e91-2dee-dedb-b68131a5f0ec --- sql-files/convert_engine_innodb.sql | 70 +++++++++++++++++++------------------ sql-files/convert_engine_myisam.sql | 70 +++++++++++++++++++------------------ sql-files/item_db.sql | 2 +- sql-files/item_db2.sql | 2 +- sql-files/logs.sql | 14 ++++---- sql-files/main.sql | 56 ++++++++++++++--------------- sql-files/mob_db.sql | 2 +- sql-files/mob_db2.sql | 2 +- sql-files/upgrade_svn11018.sql | 2 +- tools/item_db.pl | 2 +- tools/mob_db.pl | 2 +- 11 files changed, 114 insertions(+), 110 deletions(-) (limited to 'tools') diff --git a/sql-files/convert_engine_innodb.sql b/sql-files/convert_engine_innodb.sql index f2610a775..bc926373c 100644 --- a/sql-files/convert_engine_innodb.sql +++ b/sql-files/convert_engine_innodb.sql @@ -2,37 +2,39 @@ -- eAthena Database Converter ( MyISAM -> InnoDB ) -- -ALTER TABLE `cart_inventory` TYPE = InnoDB; -ALTER TABLE `char` TYPE = InnoDB; -ALTER TABLE `charlog` TYPE = InnoDB; -ALTER TABLE `friends` TYPE = InnoDB; -ALTER TABLE `global_reg_value` TYPE = InnoDB; -ALTER TABLE `guild` TYPE = InnoDB; -ALTER TABLE `guild_alliance` TYPE = InnoDB; -ALTER TABLE `guild_castle` TYPE = InnoDB; -ALTER TABLE `guild_expulsion` TYPE = InnoDB; -ALTER TABLE `guild_member` TYPE = InnoDB; -ALTER TABLE `guild_position` TYPE = InnoDB; -ALTER TABLE `guild_skill` TYPE = InnoDB; -ALTER TABLE `guild_storage` TYPE = InnoDB; -ALTER TABLE `homunculus` TYPE = InnoDB; -ALTER TABLE `interlog` TYPE = InnoDB; -ALTER TABLE `inventory` TYPE = InnoDB; -ALTER TABLE `ipbanlist` TYPE = InnoDB; -ALTER TABLE `item_db` TYPE = InnoDB; -ALTER TABLE `item_db2` TYPE = InnoDB; -ALTER TABLE `login` TYPE = InnoDB; -#ALTER TABLE `loginlog` TYPE = InnoDB; -#ALTER TABLE `mail` TYPE = InnoDB; -ALTER TABLE `mapreg` TYPE = InnoDB; -ALTER TABLE `memo` TYPE = InnoDB; -ALTER TABLE `mob_db` TYPE = InnoDB; -ALTER TABLE `mob_db2` TYPE = InnoDB; -ALTER TABLE `party` TYPE = InnoDB; -ALTER TABLE `pet` TYPE = InnoDB; -ALTER TABLE `ragsrvinfo` TYPE = InnoDB; -ALTER TABLE `sc_data` TYPE = InnoDB; -ALTER TABLE `skill` TYPE = InnoDB; -ALTER TABLE `skill_homunculus` TYPE = InnoDB; -ALTER TABLE `sstatus` TYPE = InnoDB; -ALTER TABLE `storage` TYPE = InnoDB; +ALTER TABLE `auction` ENGINE = InnoDB; +ALTER TABLE `cart_inventory` ENGINE = InnoDB; +ALTER TABLE `char` ENGINE = InnoDB; +ALTER TABLE `charlog` ENGINE = InnoDB; +ALTER TABLE `friends` ENGINE = InnoDB; +ALTER TABLE `global_reg_value` ENGINE = InnoDB; +ALTER TABLE `guild` ENGINE = InnoDB; +ALTER TABLE `guild_alliance` ENGINE = InnoDB; +ALTER TABLE `guild_castle` ENGINE = InnoDB; +ALTER TABLE `guild_expulsion` ENGINE = InnoDB; +ALTER TABLE `guild_member` ENGINE = InnoDB; +ALTER TABLE `guild_position` ENGINE = InnoDB; +ALTER TABLE `guild_skill` ENGINE = InnoDB; +ALTER TABLE `guild_storage` ENGINE = InnoDB; +ALTER TABLE `homunculus` ENGINE = InnoDB; +ALTER TABLE `hotkey` ENGINE = InnoDB; +ALTER TABLE `interlog` ENGINE = InnoDB; +ALTER TABLE `inventory` ENGINE = InnoDB; +ALTER TABLE `ipbanlist` ENGINE = InnoDB; +#ALTER TABLE `item_db` ENGINE = InnoDB; +#ALTER TABLE `item_db2` ENGINE = InnoDB; +ALTER TABLE `login` ENGINE = InnoDB; +ALTER TABLE `loginlog` ENGINE = InnoDB; +ALTER TABLE `mail` ENGINE = InnoDB; +ALTER TABLE `mapreg` ENGINE = InnoDB; +ALTER TABLE `memo` ENGINE = InnoDB; +#ALTER TABLE `mob_db` ENGINE = InnoDB; +#ALTER TABLE `mob_db2` ENGINE = InnoDB; +ALTER TABLE `party` ENGINE = InnoDB; +ALTER TABLE `pet` ENGINE = InnoDB; +ALTER TABLE `ragsrvinfo` ENGINE = InnoDB; +ALTER TABLE `sc_data` ENGINE = InnoDB; +ALTER TABLE `skill` ENGINE = InnoDB; +ALTER TABLE `skill_homunculus` ENGINE = InnoDB; +ALTER TABLE `sstatus` ENGINE = InnoDB; +ALTER TABLE `storage` ENGINE = InnoDB; diff --git a/sql-files/convert_engine_myisam.sql b/sql-files/convert_engine_myisam.sql index aec1d38dc..35414c083 100644 --- a/sql-files/convert_engine_myisam.sql +++ b/sql-files/convert_engine_myisam.sql @@ -2,37 +2,39 @@ -- eAthena Database Converter ( InnoDB -> MyISAM ) -- -ALTER TABLE `cart_inventory` TYPE = MYISAM; -ALTER TABLE `char` TYPE = MYISAM; -ALTER TABLE `charlog` TYPE = MYISAM; -ALTER TABLE `friends` TYPE = MYISAM; -ALTER TABLE `global_reg_value` TYPE = MYISAM; -ALTER TABLE `guild` TYPE = MYISAM; -ALTER TABLE `guild_alliance` TYPE = MYISAM; -ALTER TABLE `guild_castle` TYPE = MYISAM; -ALTER TABLE `guild_expulsion` TYPE = MYISAM; -ALTER TABLE `guild_member` TYPE = MYISAM; -ALTER TABLE `guild_position` TYPE = MYISAM; -ALTER TABLE `guild_skill` TYPE = MYISAM; -ALTER TABLE `guild_storage` TYPE = MYISAM; -ALTER TABLE `homunculus` TYPE = MYISAM; -ALTER TABLE `interlog` TYPE = MYISAM; -ALTER TABLE `inventory` TYPE = MYISAM; -ALTER TABLE `ipbanlist` TYPE = MYISAM; -ALTER TABLE `item_db` TYPE = MYISAM; -ALTER TABLE `item_db2` TYPE = MYISAM; -ALTER TABLE `login` TYPE = MYISAM; -#ALTER TABLE `loginlog` TYPE = MYISAM; -#ALTER TABLE `mail` TYPE = MYISAM; -ALTER TABLE `mapreg` TYPE = MYISAM; -ALTER TABLE `memo` TYPE = MYISAM; -ALTER TABLE `mob_db` TYPE = MYISAM; -ALTER TABLE `mob_db2` TYPE = MYISAM; -ALTER TABLE `party` TYPE = MYISAM; -ALTER TABLE `pet` TYPE = MYISAM; -ALTER TABLE `ragsrvinfo` TYPE = MYISAM; -ALTER TABLE `sc_data` TYPE = MYISAM; -ALTER TABLE `skill` TYPE = MYISAM; -ALTER TABLE `skill_homunculus` TYPE = MYISAM; -ALTER TABLE `sstatus` TYPE = MYISAM; -ALTER TABLE `storage` TYPE = MYISAM; +ALTER TABLE `auction` ENGINE = MyISAM; +ALTER TABLE `cart_inventory` ENGINE = MyISAM; +ALTER TABLE `char` ENGINE = MyISAM; +ALTER TABLE `charlog` ENGINE = MyISAM; +ALTER TABLE `friends` ENGINE = MyISAM; +ALTER TABLE `global_reg_value` ENGINE = MyISAM; +ALTER TABLE `guild` ENGINE = MyISAM; +ALTER TABLE `guild_alliance` ENGINE = MyISAM; +ALTER TABLE `guild_castle` ENGINE = MyISAM; +ALTER TABLE `guild_expulsion` ENGINE = MyISAM; +ALTER TABLE `guild_member` ENGINE = MyISAM; +ALTER TABLE `guild_position` ENGINE = MyISAM; +ALTER TABLE `guild_skill` ENGINE = MyISAM; +ALTER TABLE `guild_storage` ENGINE = MyISAM; +ALTER TABLE `homunculus` ENGINE = MyISAM; +ALTER TABLE `hotkey` ENGINE = MyISAM; +ALTER TABLE `interlog` ENGINE = MyISAM; +ALTER TABLE `inventory` ENGINE = MyISAM; +ALTER TABLE `ipbanlist` ENGINE = MyISAM; +#ALTER TABLE `item_db` ENGINE = MyISAM; +#ALTER TABLE `item_db2` ENGINE = MyISAM; +ALTER TABLE `login` ENGINE = MyISAM; +ALTER TABLE `loginlog` ENGINE = MyISAM; +ALTER TABLE `mail` ENGINE = MyISAM; +ALTER TABLE `mapreg` ENGINE = MyISAM; +ALTER TABLE `memo` ENGINE = MyISAM; +#ALTER TABLE `mob_db` ENGINE = MyISAM; +#ALTER TABLE `mob_db2` ENGINE = MyISAM; +ALTER TABLE `party` ENGINE = MyISAM; +ALTER TABLE `pet` ENGINE = MyISAM; +ALTER TABLE `ragsrvinfo` ENGINE = MyISAM; +ALTER TABLE `sc_data` ENGINE = MyISAM; +ALTER TABLE `skill` ENGINE = MyISAM; +ALTER TABLE `skill_homunculus` ENGINE = MyISAM; +ALTER TABLE `sstatus` ENGINE = MyISAM; +ALTER TABLE `storage` ENGINE = MyISAM; diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index d6d3d98d3..e10ee847a 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -27,7 +27,7 @@ CREATE TABLE `item_db` ( `equip_script` text, `unequip_script` text, PRIMARY KEY (`id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; # Items Database # diff --git a/sql-files/item_db2.sql b/sql-files/item_db2.sql index 0216148d0..e4cb333b7 100644 --- a/sql-files/item_db2.sql +++ b/sql-files/item_db2.sql @@ -27,7 +27,7 @@ CREATE TABLE `item_db2` ( `equip_script` text, `unequip_script` text, PRIMARY KEY (`id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; # Items Additional Database - Custom Items go here # diff --git a/sql-files/logs.sql b/sql-files/logs.sql index 0217c4fea..3f48685f8 100644 --- a/sql-files/logs.sql +++ b/sql-files/logs.sql @@ -19,7 +19,7 @@ CREATE TABLE `picklog` ( `map` varchar(11) NOT NULL default '', PRIMARY KEY (`id`), INDEX (`type`) -) TYPE=MyISAM AUTO_INCREMENT=1 ; +) ENGINE=MyISAM AUTO_INCREMENT=1 ; #ZenyLog types (M)onsters,(T)rade,(V)ending Sell/Buy,(S)hop Sell/Buy,(N)PC Change amount,(A)dministrators #Database: log @@ -34,7 +34,7 @@ CREATE TABLE `zenylog` ( `map` varchar(11) NOT NULL default '', PRIMARY KEY (`id`), INDEX (`type`) -) TYPE=MyISAM AUTO_INCREMENT=1 ; +) ENGINE=MyISAM AUTO_INCREMENT=1 ; #Database: log #Table: branchlog @@ -48,7 +48,7 @@ CREATE TABLE `branchlog` ( PRIMARY KEY (`branch_id`), INDEX (`account_id`), INDEX (`char_id`) -) TYPE=MyISAM AUTO_INCREMENT=1 ; +) ENGINE=MyISAM AUTO_INCREMENT=1 ; #Database: log #Table: mvplog @@ -61,7 +61,7 @@ CREATE TABLE `mvplog` ( `mvpexp` mediumint(9) NOT NULL default '0', `map` varchar(11) NOT NULL default '', PRIMARY KEY (`mvp_id`) -) TYPE=MyISAM AUTO_INCREMENT=1 ; +) ENGINE=MyISAM AUTO_INCREMENT=1 ; #Database: log #Table: atcommandlog @@ -76,7 +76,7 @@ CREATE TABLE `atcommandlog` ( PRIMARY KEY (`atcommand_id`), INDEX (`account_id`), INDEX (`char_id`) -) TYPE=MyISAM AUTO_INCREMENT=1 ; +) ENGINE=MyISAM AUTO_INCREMENT=1 ; #Database: log #Table: npclog @@ -91,7 +91,7 @@ CREATE TABLE `npclog` ( PRIMARY KEY (`npc_id`), INDEX (`account_id`), INDEX (`char_id`) -) TYPE=MyISAM AUTO_INCREMENT=1 ; +) ENGINE=MyISAM AUTO_INCREMENT=1 ; #ChatLog types Gl(O)bal,(W)hisper,(P)arty,(G)uild,(M)ain chat #Database: log @@ -111,4 +111,4 @@ CREATE TABLE `chatlog` ( PRIMARY KEY (`id`), INDEX (`src_accountid`), INDEX (`src_charid`) -) TYPE=MyISAM AUTO_INCREMENT=1 ; +) ENGINE=MyISAM AUTO_INCREMENT=1 ; diff --git a/sql-files/main.sql b/sql-files/main.sql index 5ea065677..0b8c9b32c 100644 --- a/sql-files/main.sql +++ b/sql-files/main.sql @@ -45,7 +45,7 @@ CREATE TABLE `cart_inventory` ( `card3` int(11) NOT NULL default '0', PRIMARY KEY (`id`), KEY `char_id` (`char_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `char` @@ -129,7 +129,7 @@ CREATE TABLE `charlog` ( `luk` int(11) unsigned NOT NULL default '0', `hair` tinyint(4) NOT NULL default '0', `hair_color` int(11) NOT NULL default '0' -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `friends` @@ -141,7 +141,7 @@ CREATE TABLE `friends` ( `friend_account` int(11) NOT NULL default '0', `friend_id` int(11) NOT NULL default '0', KEY `char_id` (`char_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `hotkey` @@ -156,7 +156,7 @@ CREATE TABLE `hotkey` ( `skill_lvl` TINYINT(4) unsigned NOT NULL default '0', PRIMARY KEY (`char_id`,`hotkey`), INDEX (`char_id`) -) TYPE=MYISAM; +) ENGINE=MyISAM; -- -- Table structure for table `global_reg_value` @@ -172,7 +172,7 @@ CREATE TABLE `global_reg_value` ( PRIMARY KEY (`char_id`,`str`,`account_id`), KEY `account_id` (`account_id`), KEY `char_id` (`char_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `guild` @@ -199,7 +199,7 @@ CREATE TABLE `guild` ( PRIMARY KEY (`guild_id`,`char_id`), UNIQUE KEY `guild_id` (`guild_id`), KEY `char_id` (`char_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `guild_alliance` @@ -213,7 +213,7 @@ CREATE TABLE `guild_alliance` ( `name` varchar(24) NOT NULL default '', PRIMARY KEY (`guild_id`,`alliance_id`), KEY `alliance_id` (`alliance_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `guild_castle` @@ -249,7 +249,7 @@ CREATE TABLE `guild_castle` ( `gHP7` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`castle_id`), KEY `guild_id` (`guild_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `guild_expulsion` @@ -262,7 +262,7 @@ CREATE TABLE `guild_expulsion` ( `name` varchar(24) NOT NULL default '', `mes` varchar(40) NOT NULL default '', PRIMARY KEY (`guild_id`,`name`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `guild_member` @@ -285,7 +285,7 @@ CREATE TABLE `guild_member` ( `name` varchar(24) NOT NULL default '', PRIMARY KEY (`guild_id`,`char_id`), KEY `char_id` (`char_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `guild_position` @@ -300,7 +300,7 @@ CREATE TABLE `guild_position` ( `exp_mode` tinyint(11) unsigned NOT NULL default '0', PRIMARY KEY (`guild_id`,`position`), KEY `guild_id` (`guild_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `guild_skill` @@ -312,7 +312,7 @@ CREATE TABLE `guild_skill` ( `id` smallint(11) unsigned NOT NULL default '0', `lv` tinyint(11) unsigned NOT NULL default '0', PRIMARY KEY (`guild_id`,`id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `guild_storage` @@ -334,7 +334,7 @@ CREATE TABLE `guild_storage` ( `card3` smallint(11) NOT NULL default '0', PRIMARY KEY (`id`), KEY `guild_id` (`guild_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `homunculus` @@ -365,7 +365,7 @@ CREATE TABLE `homunculus` ( `rename_flag` tinyint(2) NOT NULL default '0', `vaporize` tinyint(2) NOT NULL default '0', PRIMARY KEY (`homun_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `interlog` @@ -375,7 +375,7 @@ DROP TABLE IF EXISTS `interlog`; CREATE TABLE `interlog` ( `time` datetime NOT NULL default '0000-00-00 00:00:00', `log` varchar(255) NOT NULL default '' -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `inventory` @@ -397,7 +397,7 @@ CREATE TABLE `inventory` ( `card3` smallint(11) NOT NULL default '0', PRIMARY KEY (`id`), KEY `char_id` (`char_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `ipbanlist` @@ -410,7 +410,7 @@ CREATE TABLE `ipbanlist` ( `rtime` datetime NOT NULL default '0000-00-00 00:00:00', `reason` varchar(255) NOT NULL default '', KEY (`list`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `login` @@ -452,7 +452,7 @@ CREATE TABLE `mapreg` ( `value` varchar(255) NOT NULL, KEY `varname` (`varname`), KEY `index` (`index`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `sc_data` @@ -470,7 +470,7 @@ CREATE TABLE `sc_data` ( `val4` int(11) NOT NULL default '0', KEY (`account_id`), KEY (`char_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `loginlog` @@ -484,7 +484,7 @@ CREATE TABLE `loginlog` ( `rcode` tinyint(4) NOT NULL default '0', `log` varchar(255) NOT NULL default '', INDEX (`ip`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `mail` @@ -527,7 +527,7 @@ CREATE TABLE `memo` ( `y` smallint(4) unsigned NOT NULL default '0', PRIMARY KEY (`memo_id`), KEY `char_id` (`char_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `party` @@ -542,7 +542,7 @@ CREATE TABLE `party` ( `leader_id` int(11) unsigned NOT NULL default '0', `leader_char` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`party_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `pet` @@ -563,7 +563,7 @@ CREATE TABLE `pet` ( `rename_flag` tinyint(4) unsigned NOT NULL default '0', `incuvate` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`pet_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `ragsrvinfo` @@ -577,7 +577,7 @@ CREATE TABLE `ragsrvinfo` ( `jexp` int(11) unsigned NOT NULL default '0', `drop` int(11) unsigned NOT NULL default '0', `motd` varchar(255) NOT NULL default '' -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `skill` @@ -590,7 +590,7 @@ CREATE TABLE `skill` ( `lv` tinyint(4) unsigned NOT NULL default '0', PRIMARY KEY (`char_id`,`id`), KEY `char_id` (`char_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `skill_homunculus` @@ -603,7 +603,7 @@ CREATE TABLE `skill_homunculus` ( `lv` smallint(6) NOT NULL, PRIMARY KEY (`homun_id`,`id`), KEY `homun_id` (`homun_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `sstatus` @@ -614,7 +614,7 @@ CREATE TABLE `sstatus` ( `index` tinyint(4) unsigned NOT NULL default '0', `name` varchar(255) NOT NULL default '', `user` int(11) unsigned NOT NULL default '0' -) TYPE=MyISAM; +) ENGINE=MyISAM; -- -- Table structure for table `storage` @@ -636,4 +636,4 @@ CREATE TABLE `storage` ( `card3` smallint(11) NOT NULL default '0', PRIMARY KEY (`id`), KEY `account_id` (`account_id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index 397a684d5..c9cab41d1 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -63,7 +63,7 @@ CREATE TABLE `mob_db` ( `DropCardid` smallint(9) unsigned NOT NULL default '0', `DropCardper` smallint(9) unsigned NOT NULL default '0', PRIMARY KEY (`ID`) -) TYPE=MyISAM; +) ENGINE=MyISAM; # Monster Database # diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql index 76302ff9b..f81a8e7b0 100644 --- a/sql-files/mob_db2.sql +++ b/sql-files/mob_db2.sql @@ -63,7 +63,7 @@ CREATE TABLE `mob_db2` ( `DropCardid` smallint(9) unsigned NOT NULL default '0', `DropCardper` smallint(9) unsigned NOT NULL default '0', PRIMARY KEY (`ID`) -) TYPE=MyISAM; +) ENGINE=MyISAM; # Monsters Additional Database # diff --git a/sql-files/upgrade_svn11018.sql b/sql-files/upgrade_svn11018.sql index 176d7e12d..8c2a4c2d9 100644 --- a/sql-files/upgrade_svn11018.sql +++ b/sql-files/upgrade_svn11018.sql @@ -7,4 +7,4 @@ CREATE TABLE `hotkey` ( `skill_lvl` TINYINT(4) unsigned NOT NULL default '0', PRIMARY KEY (`char_id`,`hotkey`), INDEX (`char_id`) -) TYPE=MYISAM; +) ENGINE=MYISAM; diff --git a/tools/item_db.pl b/tools/item_db.pl index f19737f1e..38ffe5d0a 100755 --- a/tools/item_db.pl +++ b/tools/item_db.pl @@ -33,7 +33,7 @@ CREATE TABLE `item_db` ( `equip_script` text, `unequip_script` text, PRIMARY KEY (`id`) -) TYPE=MyISAM; +) ENGINE=MyISAM; "; printf("%s\n",$create_table); while ($ligne=) diff --git a/tools/mob_db.pl b/tools/mob_db.pl index e6eb859c4..ebcf2b74b 100755 --- a/tools/mob_db.pl +++ b/tools/mob_db.pl @@ -67,7 +67,7 @@ CREATE TABLE `mob_db` ( `DropCardid` smallint(9) unsigned NOT NULL default '0', `DropCardper` smallint(9) unsigned NOT NULL default '0', PRIMARY KEY (`ID`) -) TYPE=MyISAM; +) ENGINE=MyISAM; "; printf("%s\n",$create_table); while ($ligne=) -- cgit v1.2.3-70-g09d2 From 1624d1d57db3cfde3b4f42a55580f5a1e742f28e Mon Sep 17 00:00:00 2001 From: ultramage Date: Sat, 26 Jul 2008 20:45:57 +0000 Subject: Merged the /loginmerge branch (topic:192754) * the login server storage, ipban and logging systems have been abstracted and now provide a common interface; the rest has been merged into a single login server core (no more login/login_sql duplicity) * storage systems are now added via compiler options (WITH_SQL / WITH_TXT) * multiple storage engines can be compiled in at the same time, and the config option account.engine defines which one will be used. * due to MySQL autoincrement limitations, accounts with id '0' will not be supported; account IDs from this point on should start from '1'. * login_log() functions now again record IP addresses in dotted format, not as 4-byte integers (undo from r6868). * removed config options that defined column names in the login table * removed `memo` and `error message` columns from login db/savefile * moved `loginlog` table to the logs database * added sql files upgrade_svn12975.sql and upgrade_svn12975_log.sql * due to changes to the login table layout, I added an !optional! sql file (upgrade_svn12975_view.sql) that will provide a certain degree of backwards compatibility with existing software; read the instructions inside carefully! * moved third-party includes/libs to a separate directory * updated project files / makefiles Changed the way GM levels are handled * removed conf/gm_account.txt * added the gm level column to the txt savefile (after 'email' column) * gm level information is now transferred along with account data For open problems see bugreport:1889. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13000 54d463be-8e91-2dee-dedb-b68131a5f0ec --- 3rdparty/mysql/include/config-win.h | 470 ++++ 3rdparty/mysql/include/m_ctype.h | 493 +++++ 3rdparty/mysql/include/my_alloc.h | 52 + 3rdparty/mysql/include/my_dbug.h | 101 + 3rdparty/mysql/include/my_global.h | 1306 +++++++++++ 3rdparty/mysql/include/my_list.h | 46 + 3rdparty/mysql/include/my_pthread.h | 717 ++++++ 3rdparty/mysql/include/my_sys.h | 904 ++++++++ 3rdparty/mysql/include/mysql.h | 847 +++++++ 3rdparty/mysql/include/mysql_com.h | 452 ++++ 3rdparty/mysql/include/mysql_time.h | 56 + 3rdparty/mysql/include/mysql_version.h | 29 + 3rdparty/mysql/include/raid.h | 159 ++ 3rdparty/mysql/include/typelib.h | 34 + 3rdparty/mysql/lib/libmysql.lib | Bin 0 -> 34900 bytes 3rdparty/mysql/mysql-5.0.20 | 0 3rdparty/pcre/include/pcre.h | 294 +++ 3rdparty/pcre/lib/pcre.lib | Bin 0 -> 7378 bytes 3rdparty/pcre/pcre-7.0 | 0 3rdparty/zlib/include/zconf.h | 332 +++ 3rdparty/zlib/include/zlib.h | 1357 ++++++++++++ 3rdparty/zlib/lib/zdll.lib | Bin 0 -> 10590 bytes 3rdparty/zlib/zlib-1.2.3 | 0 Changelog-Trunk.txt | 27 + Makefile.in | 5 +- conf/Changelog.txt | 8 + conf/GM_account.txt | 10 - conf/battle/gm.conf | 5 + conf/inter_athena.conf | 39 +- conf/ladmin_athena.conf | 5 - conf/login_athena.conf | 55 +- configure | 41 +- configure.in | 4 +- lib/libmysql.lib | Bin 34900 -> 0 bytes lib/mysql-5.0.20 | 0 lib/pcre-7.0 | 0 lib/pcre.lib | Bin 7378 -> 0 bytes lib/zdll.lib | Bin 10590 -> 0 bytes lib/zlib-1.2.3 | 0 save-tmpl/account.txt | 27 +- save-tmpl/castle.txt | 68 +- sql-files/logs.sql | 12 + sql-files/main.sql | 26 +- sql-files/upgrade_svn12975.sql | 24 + sql-files/upgrade_svn12975_log.sql | 20 + sql-files/upgrade_svn12975_view.sql | 17 + src/char/char.c | 165 +- src/char/char.h | 1 - src/char/inter.c | 34 +- src/char/inter.h | 3 - src/char_sql/char.c | 188 +- src/char_sql/char.h | 8 - src/char_sql/inter.c | 177 +- src/char_sql/inter.h | 15 - src/common/mmo.h | 6 +- src/common/plugins.c | 2 +- src/common/plugins.h | 2 +- src/common/sql.c | 51 + src/common/utils.c | 6 +- src/ladmin/ladmin.c | 2809 +++++++---------------- src/login/Makefile.in | 63 +- src/login/account.h | 159 ++ src/login/account_sql.c | 578 +++++ src/login/account_txt.c | 622 ++++++ src/login/admin.c | 606 +++-- src/login/ipban.h | 25 + src/login/ipban_sql.c | 209 ++ src/login/ipban_txt.c | 50 + src/login/login.c | 2067 +++++++---------- src/login/login.h | 43 +- src/login/loginlog.h | 14 + src/login/loginlog_sql.c | 93 + src/login/loginlog_txt.c | 74 + src/login_sql/Makefile.in | 60 - src/login_sql/login.c | 1982 ----------------- src/login_sql/login.h | 94 - src/map/atcommand.c | 18 +- src/map/battle.c | 1 + src/map/battle.h | 1 + src/map/chrif.c | 127 +- src/map/chrif.h | 1 - src/map/map.c | 44 +- src/map/map.h | 1 - src/map/npc_chat.c | 2 +- src/map/party.c | 1 - src/map/party.h | 2 - src/map/pc.c | 54 +- src/map/pc.h | 5 +- src/map/pcre.h | 294 --- src/map/trade.c | 4 +- src/mysql/config-win.h | 470 ---- src/mysql/m_ctype.h | 493 ----- src/mysql/my_alloc.h | 52 - src/mysql/my_dbug.h | 101 - src/mysql/my_global.h | 1306 ----------- src/mysql/my_list.h | 46 - src/mysql/my_pthread.h | 717 ------ src/mysql/my_sys.h | 904 -------- src/mysql/mysql-5.0.20 | 0 src/mysql/mysql.h | 847 ------- src/mysql/mysql_com.h | 452 ---- src/mysql/mysql_time.h | 56 - src/mysql/mysql_version.h | 29 - src/mysql/raid.h | 159 -- src/mysql/typelib.h | 34 - src/txt-converter/login-converter.c | 205 +- src/zlib/zconf.h | 332 --- src/zlib/zlib-1.2.3 | 0 src/zlib/zlib.h | 1357 ------------ tools/cgi/addaccount.cgi | 204 -- tools/ladmin | 3793 -------------------------------- vcproj-6/char-server_sql.dsp | 540 ++--- vcproj-6/char-server_txt.dsp | 492 ++--- vcproj-6/login-server_sql.dsp | 448 ++-- vcproj-6/login-server_txt.dsp | 432 ++-- vcproj-6/map-server_sql.dsp | 884 ++++---- vcproj-6/map-server_txt.dsp | 876 ++++---- vcproj-7.1/char-server_sql.vcproj | 20 +- vcproj-7.1/char-server_txt.vcproj | 12 +- vcproj-7.1/login-server_sql.vcproj | 41 +- vcproj-7.1/login-server_txt.vcproj | 35 +- vcproj-7.1/map-server_sql.vcproj | 37 +- vcproj-7.1/map-server_txt.vcproj | 37 +- vcproj-7.1/mapcache.vcproj | 322 ++- vcproj-8/char-server_sql.vcproj | 20 +- vcproj-8/char-server_txt.vcproj | 12 +- vcproj-8/ladmin.vcproj | 8 +- vcproj-8/login-server_sql.vcproj | 48 +- vcproj-8/login-server_txt.vcproj | 42 +- vcproj-8/map-server_sql.vcproj | 38 +- vcproj-8/map-server_txt.vcproj | 38 +- vcproj-8/mapcache.vcproj | 20 +- vcproj-8/txt-converter-char.vcproj | 12 +- vcproj-8/txt-converter-login.vcproj | 12 +- vcproj-9/char-server_sql.vcproj | 14 +- vcproj-9/char-server_txt.vcproj | 12 +- vcproj-9/ladmin.vcproj | 8 +- vcproj-9/login-server_sql.vcproj | 48 +- vcproj-9/login-server_txt.vcproj | 38 +- vcproj-9/map-server_sql.vcproj | 26 +- vcproj-9/map-server_txt.vcproj | 24 +- vcproj-9/mapcache.vcproj | 18 +- vcproj-9/txt-converter-char.vcproj | 20 +- vcproj-9/txt-converter-login.vcproj | 40 +- 144 files changed, 14204 insertions(+), 20830 deletions(-) create mode 100644 3rdparty/mysql/include/config-win.h create mode 100644 3rdparty/mysql/include/m_ctype.h create mode 100644 3rdparty/mysql/include/my_alloc.h create mode 100644 3rdparty/mysql/include/my_dbug.h create mode 100644 3rdparty/mysql/include/my_global.h create mode 100644 3rdparty/mysql/include/my_list.h create mode 100644 3rdparty/mysql/include/my_pthread.h create mode 100644 3rdparty/mysql/include/my_sys.h create mode 100644 3rdparty/mysql/include/mysql.h create mode 100644 3rdparty/mysql/include/mysql_com.h create mode 100644 3rdparty/mysql/include/mysql_time.h create mode 100644 3rdparty/mysql/include/mysql_version.h create mode 100644 3rdparty/mysql/include/raid.h create mode 100644 3rdparty/mysql/include/typelib.h create mode 100644 3rdparty/mysql/lib/libmysql.lib create mode 100644 3rdparty/mysql/mysql-5.0.20 create mode 100644 3rdparty/pcre/include/pcre.h create mode 100644 3rdparty/pcre/lib/pcre.lib create mode 100644 3rdparty/pcre/pcre-7.0 create mode 100644 3rdparty/zlib/include/zconf.h create mode 100644 3rdparty/zlib/include/zlib.h create mode 100644 3rdparty/zlib/lib/zdll.lib create mode 100644 3rdparty/zlib/zlib-1.2.3 delete mode 100644 conf/GM_account.txt delete mode 100644 lib/libmysql.lib delete mode 100644 lib/mysql-5.0.20 delete mode 100644 lib/pcre-7.0 delete mode 100644 lib/pcre.lib delete mode 100644 lib/zdll.lib delete mode 100644 lib/zlib-1.2.3 create mode 100644 sql-files/upgrade_svn12975.sql create mode 100644 sql-files/upgrade_svn12975_log.sql create mode 100644 sql-files/upgrade_svn12975_view.sql create mode 100644 src/login/account.h create mode 100644 src/login/account_sql.c create mode 100644 src/login/account_txt.c create mode 100644 src/login/ipban.h create mode 100644 src/login/ipban_sql.c create mode 100644 src/login/ipban_txt.c create mode 100644 src/login/loginlog.h create mode 100644 src/login/loginlog_sql.c create mode 100644 src/login/loginlog_txt.c delete mode 100644 src/login_sql/Makefile.in delete mode 100644 src/login_sql/login.c delete mode 100644 src/login_sql/login.h delete mode 100644 src/map/pcre.h delete mode 100644 src/mysql/config-win.h delete mode 100644 src/mysql/m_ctype.h delete mode 100644 src/mysql/my_alloc.h delete mode 100644 src/mysql/my_dbug.h delete mode 100644 src/mysql/my_global.h delete mode 100644 src/mysql/my_list.h delete mode 100644 src/mysql/my_pthread.h delete mode 100644 src/mysql/my_sys.h delete mode 100644 src/mysql/mysql-5.0.20 delete mode 100644 src/mysql/mysql.h delete mode 100644 src/mysql/mysql_com.h delete mode 100644 src/mysql/mysql_time.h delete mode 100644 src/mysql/mysql_version.h delete mode 100644 src/mysql/raid.h delete mode 100644 src/mysql/typelib.h delete mode 100644 src/zlib/zconf.h delete mode 100644 src/zlib/zlib-1.2.3 delete mode 100644 src/zlib/zlib.h delete mode 100644 tools/cgi/addaccount.cgi delete mode 100644 tools/ladmin (limited to 'tools') diff --git a/3rdparty/mysql/include/config-win.h b/3rdparty/mysql/include/config-win.h new file mode 100644 index 000000000..b2e1c9831 --- /dev/null +++ b/3rdparty/mysql/include/config-win.h @@ -0,0 +1,470 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* Defines for Win32 to make it compatible for MySQL */ + +#ifdef __WIN2000__ +/* We have to do this define before including windows.h to get the AWE API +functions */ +#define _WIN32_WINNT 0x0500 +#endif + +#if defined(_MSC_VER) && _MSC_VER >= 1400 +/* Avoid endless warnings about sprintf() etc. being unsafe. */ +#define _CRT_SECURE_NO_DEPRECATE 1 +#endif + +#include +#include +#include /* Because of rint() */ +#include +#include +#include + +#define HAVE_SMEM 1 + +#if defined(_WIN64) || defined(WIN64) +#define SYSTEM_TYPE "Win64" +#elif defined(_WIN32) || defined(WIN32) +#define SYSTEM_TYPE "Win32" +#else +#define SYSTEM_TYPE "Windows" +#endif + +#if defined(_M_IA64) +#define MACHINE_TYPE "ia64" +#elif defined(_M_IX86) +#define MACHINE_TYPE "ia32" +#elif defined(_M_ALPHA) +#define MACHINE_TYPE "axp" +#else +#define MACHINE_TYPE "unknown" /* Define to machine type name */ +#endif + +#if !(defined(_WIN64) || defined(WIN64)) +#ifndef _WIN32 +#define _WIN32 /* Compatible with old source */ +#endif +#ifndef __WIN32__ +#define __WIN32__ +#endif +#endif /* _WIN64 */ +#ifndef __WIN__ +#define __WIN__ /* To make it easier in VC++ */ +#endif + +#ifndef MAX_INDEXES +#define MAX_INDEXES 64 +#endif + +/* File and lock constants */ +#define O_SHARE 0x1000 /* Open file in sharing mode */ +#ifdef __BORLANDC__ +#define F_RDLCK LK_NBLCK /* read lock */ +#define F_WRLCK LK_NBRLCK /* write lock */ +#define F_UNLCK LK_UNLCK /* remove lock(s) */ +#else +#define F_RDLCK _LK_NBLCK /* read lock */ +#define F_WRLCK _LK_NBRLCK /* write lock */ +#define F_UNLCK _LK_UNLCK /* remove lock(s) */ +#endif + +#define F_EXCLUSIVE 1 /* We have only exclusive locking */ +#define F_TO_EOF (INT_MAX32/2) /* size for lock of all file */ +#define F_OK 0 /* parameter to access() */ +#define W_OK 2 + +#define S_IROTH S_IREAD /* for my_lib */ + +#ifdef __BORLANDC__ +#define FILE_BINARY O_BINARY /* my_fopen in binary mode */ +#define O_TEMPORARY 0 +#define O_SHORT_LIVED 0 +#define SH_DENYNO _SH_DENYNO +#else +#define O_BINARY _O_BINARY /* compability with MSDOS */ +#define FILE_BINARY _O_BINARY /* my_fopen in binary mode */ +#define O_TEMPORARY _O_TEMPORARY +#define O_SHORT_LIVED _O_SHORT_LIVED +#define SH_DENYNO _SH_DENYNO +#endif +#define NO_OPEN_3 /* For my_create() */ + +#define SIGQUIT SIGTERM /* No SIGQUIT */ + +#undef _REENTRANT /* Crashes something for win32 */ +#undef SAFE_MUTEX /* Can't be used on windows */ + +#if defined(_MSC_VER) && _MSC_VER >= 1310 +#define LL(A) A##ll +#define ULL(A) A##ull +#else +#define LL(A) ((__int64) A) +#define ULL(A) ((unsigned __int64) A) +#endif + +#define LONGLONG_MIN LL(0x8000000000000000) +#define LONGLONG_MAX LL(0x7FFFFFFFFFFFFFFF) +#define ULONGLONG_MAX ULL(0xFFFFFFFFFFFFFFFF) + +/* Type information */ + +#if defined(__EMX__) || !defined(HAVE_UINT) +#undef HAVE_UINT +#define HAVE_UINT +typedef unsigned short ushort; +typedef unsigned int uint; +#endif /* defined(__EMX__) || !defined(HAVE_UINT) */ + +typedef unsigned __int64 ulonglong; /* Microsofts 64 bit types */ +typedef __int64 longlong; +#ifndef HAVE_SIGSET_T +typedef int sigset_t; +#endif +#define longlong_defined +/* + off_t should not be __int64 because of conflicts in header files; + Use my_off_t or os_off_t instead +*/ +#ifndef HAVE_OFF_T +typedef long off_t; +#endif +typedef __int64 os_off_t; +#ifdef _WIN64 +typedef UINT_PTR rf_SetTimer; +#else +#ifndef HAVE_SIZE_T +typedef unsigned int size_t; +#endif +typedef uint rf_SetTimer; +#endif + +#define Socket_defined +#define my_socket SOCKET +#define bool BOOL +#define SIGPIPE SIGINT +#define RETQSORTTYPE void +#define QSORT_TYPE_IS_VOID +#define RETSIGTYPE void +#define SOCKET_SIZE_TYPE int +#define my_socket_defined +#define bool_defined +#define byte_defined +#define HUGE_PTR +#define STDCALL __stdcall /* Used by libmysql.dll */ +#define isnan(X) _isnan(X) +#define finite(X) _finite(X) + +#ifndef UNDEF_THREAD_HACK +#define THREAD +#endif +#define VOID_SIGHANDLER +#define SIZEOF_CHAR 1 +#define SIZEOF_LONG 4 +#define SIZEOF_LONG_LONG 8 +#define SIZEOF_OFF_T 8 +#ifdef _WIN64 +#define SIZEOF_CHARP 8 +#else +#define SIZEOF_CHARP 4 +#endif +#define HAVE_BROKEN_NETINET_INCLUDES +#ifdef __NT__ +#define HAVE_NAMED_PIPE /* We can only create pipes on NT */ +#endif + +/* ERROR is defined in wingdi.h */ +#undef ERROR + +/* We need to close files to break connections on shutdown */ +#ifndef SIGNAL_WITH_VIO_CLOSE +#define SIGNAL_WITH_VIO_CLOSE +#endif + +/* Use all character sets in MySQL */ +#define USE_MB 1 +#define USE_MB_IDENT 1 +#define USE_STRCOLL 1 + +/* All windows servers should support .sym files */ +#undef USE_SYMDIR +#define USE_SYMDIR + +/* If LOAD DATA LOCAL INFILE should be enabled by default */ +#define ENABLED_LOCAL_INFILE 1 + +/* Convert some simple functions to Posix */ + +#define my_sigset(A,B) signal((A),(B)) +#define finite(A) _finite(A) +#define sleep(A) Sleep((A)*1000) +#define popen(A,B) _popen((A),(B)) +#define pclose(A) _pclose(A) + +#ifndef __BORLANDC__ +#define access(A,B) _access(A,B) +#endif + +#if !defined(__cplusplus) +#define inline __inline +#endif /* __cplusplus */ + +inline double rint(double nr) +{ + double f = floor(nr); + double c = ceil(nr); + return (((c-nr) >= (nr-f)) ? f :c); +} + +#ifdef _WIN64 +#define ulonglong2double(A) ((double) (ulonglong) (A)) +#define my_off_t2double(A) ((double) (my_off_t) (A)) + +#else +inline double ulonglong2double(ulonglong value) +{ + longlong nr=(longlong) value; + if (nr >= 0) + return (double) nr; + return (18446744073709551616.0 + (double) nr); +} +#define my_off_t2double(A) ulonglong2double(A) +#endif /* _WIN64 */ + +#if SIZEOF_OFF_T > 4 +#define lseek(A,B,C) _lseeki64((A),(longlong) (B),(C)) +#define tell(A) _telli64(A) +#endif + +#define set_timespec(ABSTIME,SEC) { (ABSTIME).tv_sec=time((time_t*)0) + (time_t) (SEC); (ABSTIME).tv_nsec=0; } + +#define STACK_DIRECTION -1 + +/* Optimized store functions for Intel x86 */ + +#ifndef _WIN64 +#define sint2korr(A) (*((int16 *) (A))) +#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \ + (((uint32) 255L << 24) | \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0])) : \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0]))) +#define sint4korr(A) (*((long *) (A))) +#define uint2korr(A) (*((uint16 *) (A))) +/* + ATTENTION ! + + Please, note, uint3korr reads 4 bytes (not 3) ! + It means, that you have to provide enough allocated space ! +*/ +#define uint3korr(A) (long) (*((unsigned int *) (A)) & 0xFFFFFF) +#define uint4korr(A) (*((unsigned long *) (A))) +#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16) +\ + (((uint32) ((uchar) (A)[3])) << 24)) +\ + (((ulonglong) ((uchar) (A)[4])) << 32)) +#define uint8korr(A) (*((ulonglong *) (A))) +#define sint8korr(A) (*((longlong *) (A))) +#define int2store(T,A) *((uint16*) (T))= (uint16) (A) +#define int3store(T,A) { *(T)= (uchar) ((A));\ + *(T+1)=(uchar) (((uint) (A) >> 8));\ + *(T+2)=(uchar) (((A) >> 16)); } +#define int4store(T,A) *((long *) (T))= (long) (A) +#define int5store(T,A) { *(T)= (uchar)((A));\ + *((T)+1)=(uchar) (((A) >> 8));\ + *((T)+2)=(uchar) (((A) >> 16));\ + *((T)+3)=(uchar) (((A) >> 24)); \ + *((T)+4)=(uchar) (((A) >> 32)); } +#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A) + +#define doubleget(V,M) do { *((long *) &V) = *((long*) M); \ + *(((long *) &V)+1) = *(((long*) M)+1); } while(0) +#define doublestore(T,V) do { *((long *) T) = *((long*) &V); \ + *(((long *) T)+1) = *(((long*) &V)+1); } while(0) +#define float4get(V,M) { *((long *) &(V)) = *((long*) (M)); } +#define floatstore(T,V) memcpy((byte*)(T), (byte*)(&V), sizeof(float)) +#define floatget(V,M) memcpy((byte*)(&V), (byte*)(M), sizeof(float)) +#define float8get(V,M) doubleget((V),(M)) +#define float4store(V,M) memcpy((byte*) V,(byte*) (&M),sizeof(float)) +#define float8store(V,M) doublestore((V),(M)) +#endif /* _WIN64 */ + +#define HAVE_PERROR +#define HAVE_VFPRINT +#define HAVE_RENAME /* Have rename() as function */ +#define HAVE_BINARY_STREAMS /* Have "b" flag in streams */ +#define HAVE_LONG_JMP /* Have long jump function */ +#define HAVE_LOCKING /* have locking() call */ +#define HAVE_ERRNO_AS_DEFINE /* errno is a define */ +#define HAVE_STDLIB /* everything is include in this file */ +#define HAVE_MEMCPY +#define HAVE_MEMMOVE +#define HAVE_GETCWD +#define HAVE_TELL +#define HAVE_TZNAME +#define HAVE_PUTENV +#define HAVE_SELECT +#define HAVE_SETLOCALE +#define HAVE_SOCKET /* Giangi */ +#define HAVE_FLOAT_H +#define HAVE_LIMITS_H +#define HAVE_STDDEF_H +#define HAVE_RINT /* defined in this file */ +#define NO_FCNTL_NONBLOCK /* No FCNTL */ +#define HAVE_ALLOCA +#define HAVE_STRPBRK +#define HAVE_STRSTR +#define HAVE_COMPRESS +#define HAVE_CREATESEMAPHORE +#define HAVE_ISNAN +#define HAVE_FINITE +#define HAVE_QUERY_CACHE +#define SPRINTF_RETURNS_INT +#define HAVE_SETFILEPOINTER +#define HAVE_VIO_READ_BUFF +#define HAVE_STRNLEN + +#ifndef __NT__ +#undef FILE_SHARE_DELETE +#define FILE_SHARE_DELETE 0 /* Not implemented on Win 98/ME */ +#endif + +#ifdef NOT_USED +#define HAVE_SNPRINTF /* Gave link error */ +#define _snprintf snprintf +#endif + +#ifdef _MSC_VER +#define HAVE_LDIV /* The optimizer breaks in zortech for ldiv */ +#define HAVE_ANSI_INCLUDE +#define HAVE_SYS_UTIME_H +#define HAVE_STRTOUL +#endif +#define my_reinterpret_cast(A) reinterpret_cast +#define my_const_cast(A) const_cast + + +/* MYSQL OPTIONS */ + +#ifdef _CUSTOMCONFIG_ +#include +#else +#define DEFAULT_MYSQL_HOME "c:\\mysql" +#define PACKAGE "mysql" +#define DEFAULT_BASEDIR "C:\\" +#define SHAREDIR "share" +#define DEFAULT_CHARSET_HOME "C:/mysql/" +#endif +#ifndef DEFAULT_HOME_ENV +#define DEFAULT_HOME_ENV MYSQL_HOME +#endif +#ifndef DEFAULT_GROUP_SUFFIX_ENV +#define DEFAULT_GROUP_SUFFIX_ENV MYSQL_GROUP_SUFFIX +#endif + +/* File name handling */ + +#define FN_LIBCHAR '\\' +#define FN_ROOTDIR "\\" +#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */ +#define FN_NO_CASE_SENCE /* Files are not case-sensitive */ +#define OS_FILE_LIMIT 2048 + +#define DO_NOT_REMOVE_THREAD_WRAPPERS +#define thread_safe_increment(V,L) InterlockedIncrement((long*) &(V)) +#define thread_safe_decrement(V,L) InterlockedDecrement((long*) &(V)) +/* The following is only used for statistics, so it should be good enough */ +#ifdef __NT__ /* This should also work on Win98 but .. */ +#define thread_safe_add(V,C,L) InterlockedExchangeAdd((long*) &(V),(C)) +#define thread_safe_sub(V,C,L) InterlockedExchangeAdd((long*) &(V),-(long) (C)) +#define statistic_add(V,C,L) thread_safe_add((V),(C),(L)) +#else +#define thread_safe_add(V,C,L) \ + pthread_mutex_lock((L)); (V)+=(C); pthread_mutex_unlock((L)); +#define thread_safe_sub(V,C,L) \ + pthread_mutex_lock((L)); (V)-=(C); pthread_mutex_unlock((L)); +#define statistic_add(V,C,L) (V)+=(C) +#endif +#define statistic_increment(V,L) thread_safe_increment((V),(L)) +#define statistic_decrement(V,L) thread_safe_decrement((V),(L)) + +#define shared_memory_buffer_length 16000 +#define default_shared_memory_base_name "MYSQL" + +#ifdef CYBOZU +#define MYSQL_DEFAULT_CHARSET_NAME "utf8" +#define MYSQL_DEFAULT_COLLATION_NAME "utf8_general_cs" +#define HAVE_UTF8_GENERAL_CS 1 +#else +#define MYSQL_DEFAULT_CHARSET_NAME "latin1" +#define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci" +#endif + +#define HAVE_SPATIAL 1 +#define HAVE_RTREE_KEYS 1 + +#define HAVE_OPENSSL 1 +#define HAVE_YASSL 1 + +/* Define charsets you want */ +/* #undef HAVE_CHARSET_armscii8 */ +/* #undef HAVE_CHARSET_ascii */ +#ifndef CYBOZU +#define HAVE_CHARSET_big5 1 +#define HAVE_CHARSET_cp1250 1 +#endif +/* #undef HAVE_CHARSET_cp1251 */ +/* #undef HAVE_CHARSET_cp1256 */ +/* #undef HAVE_CHARSET_cp1257 */ +/* #undef HAVE_CHARSET_cp850 */ +/* #undef HAVE_CHARSET_cp852 */ +/* #undef HAVE_CHARSET_cp866 */ +#define HAVE_CHARSET_cp932 1 +/* #undef HAVE_CHARSET_dec8 */ +#ifndef CYBOZU +#define HAVE_CHARSET_eucjpms 1 +#define HAVE_CHARSET_euckr 1 +#define HAVE_CHARSET_gb2312 1 +#define HAVE_CHARSET_gbk 1 +#endif +/* #undef HAVE_CHARSET_greek */ +/* #undef HAVE_CHARSET_hebrew */ +/* #undef HAVE_CHARSET_hp8 */ +/* #undef HAVE_CHARSET_keybcs2 */ +/* #undef HAVE_CHARSET_koi8r */ +/* #undef HAVE_CHARSET_koi8u */ +#ifndef CYBOZU +#define HAVE_CHARSET_latin1 1 +#define HAVE_CHARSET_latin2 1 +#endif +/* #undef HAVE_CHARSET_latin5 */ +/* #undef HAVE_CHARSET_latin7 */ +/* #undef HAVE_CHARSET_macce */ +/* #undef HAVE_CHARSET_macroman */ +#define HAVE_CHARSET_sjis 1 +/* #undef HAVE_CHARSET_swe7 */ +#ifndef CYBOZU +#define HAVE_CHARSET_tis620 1 +#define HAVE_CHARSET_ucs2 1 +#define HAVE_CHARSET_ujis 1 +#endif +#define HAVE_CHARSET_utf8 1 +#define HAVE_UCA_COLLATIONS 1 + diff --git a/3rdparty/mysql/include/m_ctype.h b/3rdparty/mysql/include/m_ctype.h new file mode 100644 index 000000000..54ae41bf2 --- /dev/null +++ b/3rdparty/mysql/include/m_ctype.h @@ -0,0 +1,493 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* + A better inplementation of the UNIX ctype(3) library. + Notes: my_global.h should be included before ctype.h +*/ + +#ifndef _m_ctype_h +#define _m_ctype_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define MY_CS_NAME_SIZE 32 +#define MY_CS_CTYPE_TABLE_SIZE 257 +#define MY_CS_TO_LOWER_TABLE_SIZE 256 +#define MY_CS_TO_UPPER_TABLE_SIZE 256 +#define MY_CS_SORT_ORDER_TABLE_SIZE 256 +#define MY_CS_TO_UNI_TABLE_SIZE 256 + +#define CHARSET_DIR "charsets/" + +#define my_wc_t ulong + +typedef struct unicase_info_st +{ + uint16 toupper; + uint16 tolower; + uint16 sort; +} MY_UNICASE_INFO; + + +extern MY_UNICASE_INFO *my_unicase_default[256]; +extern MY_UNICASE_INFO *my_unicase_turkish[256]; + + +/* wm_wc and wc_mb return codes */ +#define MY_CS_ILSEQ 0 /* Wrong by sequence: wb_wc */ +#define MY_CS_ILUNI 0 /* Cannot encode Unicode to charset: wc_mb */ +#define MY_CS_TOOSMALL -101 /* Need at least one byte: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL2 -102 /* Need at least two bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL3 -103 /* Need at least three bytes: wc_mb and mb_wc */ +/* These following three are currently not really used */ +#define MY_CS_TOOSMALL4 -104 /* Need at least 4 bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL5 -105 /* Need at least 5 bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL6 -106 /* Need at least 6 bytes: wc_mb and mb_wc */ +/* A helper macros for "need at least n bytes" */ +#define MY_CS_TOOSMALLN(n) (-100-(n)) + +#define MY_SEQ_INTTAIL 1 +#define MY_SEQ_SPACES 2 + + /* My charsets_list flags */ +#define MY_CS_COMPILED 1 /* compiled-in sets */ +#define MY_CS_CONFIG 2 /* sets that have a *.conf file */ +#define MY_CS_INDEX 4 /* sets listed in the Index file */ +#define MY_CS_LOADED 8 /* sets that are currently loaded */ +#define MY_CS_BINSORT 16 /* if binary sort order */ +#define MY_CS_PRIMARY 32 /* if primary collation */ +#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */ +#define MY_CS_UNICODE 128 /* is a charset is full unicode */ +#define MY_CS_READY 256 /* if a charset is initialized */ +#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/ +#define MY_CS_CSSORT 1024 /* if case sensitive sort order */ +#define MY_CHARSET_UNDEFINED 0 + + +typedef struct my_uni_idx_st +{ + uint16 from; + uint16 to; + uchar *tab; +} MY_UNI_IDX; + +typedef struct +{ + uint beg; + uint end; + uint mblen; +} my_match_t; + +enum my_lex_states +{ + MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT, + MY_LEX_IDENT_SEP, MY_LEX_IDENT_START, + MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER, + MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END, + MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL, + MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE, + MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON, + MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP, + MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR, + MY_LEX_IDENT_OR_KEYWORD, + MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN, MY_LEX_IDENT_OR_NCHAR, + MY_LEX_STRING_OR_DELIMITER +}; + +struct charset_info_st; + +typedef struct my_collation_handler_st +{ + my_bool (*init)(struct charset_info_st *, void *(*alloc)(uint)); + /* Collation routines */ + int (*strnncoll)(struct charset_info_st *, + const uchar *, uint, const uchar *, uint, my_bool); + int (*strnncollsp)(struct charset_info_st *, + const uchar *, uint, const uchar *, uint, + my_bool diff_if_only_endspace_difference); + int (*strnxfrm)(struct charset_info_st *, + uchar *, uint, const uchar *, uint); + uint (*strnxfrmlen)(struct charset_info_st *, uint); + my_bool (*like_range)(struct charset_info_st *, + const char *s, uint s_length, + pchar w_prefix, pchar w_one, pchar w_many, + uint res_length, + char *min_str, char *max_str, + uint *min_len, uint *max_len); + int (*wildcmp)(struct charset_info_st *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape,int w_one, int w_many); + + int (*strcasecmp)(struct charset_info_st *, const char *, const char *); + + uint (*instr)(struct charset_info_st *, + const char *b, uint b_length, + const char *s, uint s_length, + my_match_t *match, uint nmatch); + + /* Hash calculation */ + void (*hash_sort)(struct charset_info_st *cs, const uchar *key, uint len, + ulong *nr1, ulong *nr2); + my_bool (*propagate)(struct charset_info_st *cs, const uchar *str, uint len); +} MY_COLLATION_HANDLER; + +extern MY_COLLATION_HANDLER my_collation_mb_bin_handler; +extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler; +extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler; +extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler; + + +typedef struct my_charset_handler_st +{ + my_bool (*init)(struct charset_info_st *, void *(*alloc)(uint)); + /* Multibyte routines */ + int (*ismbchar)(struct charset_info_st *, const char *, const char *); + int (*mbcharlen)(struct charset_info_st *, uint); + uint (*numchars)(struct charset_info_st *, const char *b, const char *e); + uint (*charpos)(struct charset_info_st *, const char *b, const char *e, uint pos); + uint (*well_formed_len)(struct charset_info_st *, + const char *b,const char *e, + uint nchars, int *error); + uint (*lengthsp)(struct charset_info_st *, const char *ptr, uint length); + uint (*numcells)(struct charset_info_st *, const char *b, const char *e); + + /* Unicode convertion */ + int (*mb_wc)(struct charset_info_st *cs,my_wc_t *wc, + const unsigned char *s,const unsigned char *e); + int (*wc_mb)(struct charset_info_st *cs,my_wc_t wc, + unsigned char *s,unsigned char *e); + + /* Functions for case and sort convertion */ + void (*caseup_str)(struct charset_info_st *, char *); + void (*casedn_str)(struct charset_info_st *, char *); + uint (*caseup)(struct charset_info_st *, char *src, uint srclen, + char *dst, uint dstlen); + uint (*casedn)(struct charset_info_st *, char *src, uint srclen, + char *dst, uint dstlen); + + /* Charset dependant snprintf() */ + int (*snprintf)(struct charset_info_st *, char *to, uint n, const char *fmt, + ...); + int (*long10_to_str)(struct charset_info_st *, char *to, uint n, int radix, + long int val); + int (*longlong10_to_str)(struct charset_info_st *, char *to, uint n, + int radix, longlong val); + + void (*fill)(struct charset_info_st *, char *to, uint len, int fill); + + /* String-to-number convertion routines */ + long (*strntol)(struct charset_info_st *, const char *s, uint l, + int base, char **e, int *err); + ulong (*strntoul)(struct charset_info_st *, const char *s, uint l, + int base, char **e, int *err); + longlong (*strntoll)(struct charset_info_st *, const char *s, uint l, + int base, char **e, int *err); + ulonglong (*strntoull)(struct charset_info_st *, const char *s, uint l, + int base, char **e, int *err); + double (*strntod)(struct charset_info_st *, char *s, uint l, char **e, + int *err); + longlong (*strtoll10)(struct charset_info_st *cs, + const char *nptr, char **endptr, int *error); + ulong (*scan)(struct charset_info_st *, const char *b, const char *e, + int sq); +} MY_CHARSET_HANDLER; + +extern MY_CHARSET_HANDLER my_charset_8bit_handler; +extern MY_CHARSET_HANDLER my_charset_ucs2_handler; + + +typedef struct charset_info_st +{ + uint number; + uint primary_number; + uint binary_number; + uint state; + const char *csname; + const char *name; + const char *comment; + const char *tailoring; + uchar *ctype; + uchar *to_lower; + uchar *to_upper; + uchar *sort_order; + uint16 *contractions; + uint16 **sort_order_big; + uint16 *tab_to_uni; + MY_UNI_IDX *tab_from_uni; + MY_UNICASE_INFO **caseinfo; + uchar *state_map; + uchar *ident_map; + uint strxfrm_multiply; + uchar caseup_multiply; + uchar casedn_multiply; + uint mbminlen; + uint mbmaxlen; + uint16 min_sort_char; + uint16 max_sort_char; /* For LIKE optimization */ + uchar pad_char; + my_bool escape_with_backslash_is_dangerous; + + MY_CHARSET_HANDLER *cset; + MY_COLLATION_HANDLER *coll; + +} CHARSET_INFO; + + +extern CHARSET_INFO my_charset_bin; +extern CHARSET_INFO my_charset_big5_chinese_ci; +extern CHARSET_INFO my_charset_big5_bin; +extern CHARSET_INFO my_charset_cp932_japanese_ci; +extern CHARSET_INFO my_charset_cp932_bin; +extern CHARSET_INFO my_charset_eucjpms_japanese_ci; +extern CHARSET_INFO my_charset_eucjpms_bin; +extern CHARSET_INFO my_charset_euckr_korean_ci; +extern CHARSET_INFO my_charset_euckr_bin; +extern CHARSET_INFO my_charset_gb2312_chinese_ci; +extern CHARSET_INFO my_charset_gb2312_bin; +extern CHARSET_INFO my_charset_gbk_chinese_ci; +extern CHARSET_INFO my_charset_gbk_bin; +extern CHARSET_INFO my_charset_latin1; +extern CHARSET_INFO my_charset_latin1_german2_ci; +extern CHARSET_INFO my_charset_latin1_bin; +extern CHARSET_INFO my_charset_latin2_czech_ci; +extern CHARSET_INFO my_charset_sjis_japanese_ci; +extern CHARSET_INFO my_charset_sjis_bin; +extern CHARSET_INFO my_charset_tis620_thai_ci; +extern CHARSET_INFO my_charset_tis620_bin; +extern CHARSET_INFO my_charset_ucs2_general_ci; +extern CHARSET_INFO my_charset_ucs2_bin; +extern CHARSET_INFO my_charset_ucs2_general_uca; +extern CHARSET_INFO my_charset_ujis_japanese_ci; +extern CHARSET_INFO my_charset_ujis_bin; +extern CHARSET_INFO my_charset_utf8_general_ci; +extern CHARSET_INFO my_charset_utf8_bin; +extern CHARSET_INFO my_charset_cp1250_czech_ci; + +/* declarations for simple charsets */ +extern int my_strnxfrm_simple(CHARSET_INFO *, uchar *, uint, const uchar *, + uint); +uint my_strnxfrmlen_simple(CHARSET_INFO *, uint); +extern int my_strnncoll_simple(CHARSET_INFO *, const uchar *, uint, + const uchar *, uint, my_bool); + +extern int my_strnncollsp_simple(CHARSET_INFO *, const uchar *, uint, + const uchar *, uint, + my_bool diff_if_only_endspace_difference); + +extern void my_hash_sort_simple(CHARSET_INFO *cs, + const uchar *key, uint len, + ulong *nr1, ulong *nr2); + +extern uint my_lengthsp_8bit(CHARSET_INFO *cs, const char *ptr, uint length); + +extern uint my_instr_simple(struct charset_info_st *, + const char *b, uint b_length, + const char *s, uint s_length, + my_match_t *match, uint nmatch); + + +/* Functions for 8bit */ +extern void my_caseup_str_8bit(CHARSET_INFO *, char *); +extern void my_casedn_str_8bit(CHARSET_INFO *, char *); +extern uint my_caseup_8bit(CHARSET_INFO *, char *src, uint srclen, + char *dst, uint dstlen); +extern uint my_casedn_8bit(CHARSET_INFO *, char *src, uint srclen, + char *dst, uint dstlen); + +extern int my_strcasecmp_8bit(CHARSET_INFO * cs, const char *, const char *); + +int my_mb_wc_8bit(CHARSET_INFO *cs,my_wc_t *wc, const uchar *s,const uchar *e); +int my_wc_mb_8bit(CHARSET_INFO *cs,my_wc_t wc, uchar *s, uchar *e); + +ulong my_scan_8bit(CHARSET_INFO *cs, const char *b, const char *e, int sq); + +int my_snprintf_8bit(struct charset_info_st *, char *to, uint n, + const char *fmt, ...); + +long my_strntol_8bit(CHARSET_INFO *, const char *s, uint l, int base, + char **e, int *err); +ulong my_strntoul_8bit(CHARSET_INFO *, const char *s, uint l, int base, + char **e, int *err); +longlong my_strntoll_8bit(CHARSET_INFO *, const char *s, uint l, int base, + char **e, int *err); +ulonglong my_strntoull_8bit(CHARSET_INFO *, const char *s, uint l, int base, + char **e, int *err); +double my_strntod_8bit(CHARSET_INFO *, char *s, uint l,char **e, + int *err); +int my_long10_to_str_8bit(CHARSET_INFO *, char *to, uint l, int radix, + long int val); +int my_longlong10_to_str_8bit(CHARSET_INFO *, char *to, uint l, int radix, + longlong val); + +longlong my_strtoll10_8bit(CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error); +longlong my_strtoll10_ucs2(CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error); + +void my_fill_8bit(CHARSET_INFO *cs, char* to, uint l, int fill); + +my_bool my_like_range_simple(CHARSET_INFO *cs, + const char *ptr, uint ptr_length, + pbool escape, pbool w_one, pbool w_many, + uint res_length, + char *min_str, char *max_str, + uint *min_length, uint *max_length); + +my_bool my_like_range_mb(CHARSET_INFO *cs, + const char *ptr, uint ptr_length, + pbool escape, pbool w_one, pbool w_many, + uint res_length, + char *min_str, char *max_str, + uint *min_length, uint *max_length); + +my_bool my_like_range_ucs2(CHARSET_INFO *cs, + const char *ptr, uint ptr_length, + pbool escape, pbool w_one, pbool w_many, + uint res_length, + char *min_str, char *max_str, + uint *min_length, uint *max_length); + + +int my_wildcmp_8bit(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +int my_wildcmp_bin(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +uint my_numchars_8bit(CHARSET_INFO *, const char *b, const char *e); +uint my_numcells_8bit(CHARSET_INFO *, const char *b, const char *e); +uint my_charpos_8bit(CHARSET_INFO *, const char *b, const char *e, uint pos); +uint my_well_formed_len_8bit(CHARSET_INFO *, const char *b, const char *e, + uint pos, int *error); +int my_mbcharlen_8bit(CHARSET_INFO *, uint c); + + +/* Functions for multibyte charsets */ +extern void my_caseup_str_mb(CHARSET_INFO *, char *); +extern void my_casedn_str_mb(CHARSET_INFO *, char *); +extern uint my_caseup_mb(CHARSET_INFO *, char *src, uint srclen, + char *dst, uint dstlen); +extern uint my_casedn_mb(CHARSET_INFO *, char *src, uint srclen, + char *dst, uint dstlen); +extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *); + +int my_wildcmp_mb(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); +uint my_numchars_mb(CHARSET_INFO *, const char *b, const char *e); +uint my_numcells_mb(CHARSET_INFO *, const char *b, const char *e); +uint my_charpos_mb(CHARSET_INFO *, const char *b, const char *e, uint pos); +uint my_well_formed_len_mb(CHARSET_INFO *, const char *b, const char *e, + uint pos, int *error); +uint my_instr_mb(struct charset_info_st *, + const char *b, uint b_length, + const char *s, uint s_length, + my_match_t *match, uint nmatch); + +int my_wildcmp_unicode(CHARSET_INFO *cs, + const char *str, const char *str_end, + const char *wildstr, const char *wildend, + int escape, int w_one, int w_many, + MY_UNICASE_INFO **weights); + +extern my_bool my_parse_charset_xml(const char *bug, uint len, + int (*add)(CHARSET_INFO *cs)); + +my_bool my_propagate_simple(CHARSET_INFO *cs, const uchar *str, uint len); +my_bool my_propagate_complex(CHARSET_INFO *cs, const uchar *str, uint len); + + +#define _MY_U 01 /* Upper case */ +#define _MY_L 02 /* Lower case */ +#define _MY_NMR 04 /* Numeral (digit) */ +#define _MY_SPC 010 /* Spacing character */ +#define _MY_PNT 020 /* Punctuation */ +#define _MY_CTR 040 /* Control character */ +#define _MY_B 0100 /* Blank */ +#define _MY_X 0200 /* heXadecimal digit */ + + +#define my_isascii(c) (!((c) & ~0177)) +#define my_toascii(c) ((c) & 0177) +#define my_tocntrl(c) ((c) & 31) +#define my_toprint(c) ((c) | 64) +#define my_toupper(s,c) (char) ((s)->to_upper[(uchar) (c)]) +#define my_tolower(s,c) (char) ((s)->to_lower[(uchar) (c)]) +#define my_isalpha(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L)) +#define my_isupper(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_U) +#define my_islower(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_L) +#define my_isdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_NMR) +#define my_isxdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_X) +#define my_isalnum(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L | _MY_NMR)) +#define my_isspace(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_SPC) +#define my_ispunct(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_PNT) +#define my_isprint(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B)) +#define my_isgraph(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR)) +#define my_iscntrl(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_CTR) + +/* Some macros that should be cleaned up a little */ +#define my_isvar(s,c) (my_isalnum(s,c) || (c) == '_') +#define my_isvar_start(s,c) (my_isalpha(s,c) || (c) == '_') + +#define my_binary_compare(s) ((s)->state & MY_CS_BINSORT) +#define use_strnxfrm(s) ((s)->state & MY_CS_STRNXFRM) +#define my_strnxfrm(s, a, b, c, d) ((s)->coll->strnxfrm((s), (a), (b), (c), (d))) +#define my_strnncoll(s, a, b, c, d) ((s)->coll->strnncoll((s), (a), (b), (c), (d), 0)) +#define my_like_range(s, a, b, c, d, e, f, g, h, i, j) \ + ((s)->coll->like_range((s), (a), (b), (c), (d), (e), (f), (g), (h), (i), (j))) +#define my_wildcmp(cs,s,se,w,we,e,o,m) ((cs)->coll->wildcmp((cs),(s),(se),(w),(we),(e),(o),(m))) +#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp((s), (a), (b))) +#define my_charpos(cs, b, e, num) (cs)->cset->charpos((cs), (const char*) (b), (const char *)(e), (num)) + + +#define use_mb(s) ((s)->cset->ismbchar != NULL) +#define my_ismbchar(s, a, b) ((s)->cset->ismbchar((s), (a), (b))) +#ifdef USE_MB +#define my_mbcharlen(s, a) ((s)->cset->mbcharlen((s),(a))) +#else +#define my_mbcharlen(s, a) 1 +#endif + +#define my_caseup_str(s, a) ((s)->cset->caseup_str((s), (a))) +#define my_casedn_str(s, a) ((s)->cset->casedn_str((s), (a))) +#define my_strntol(s, a, b, c, d, e) ((s)->cset->strntol((s),(a),(b),(c),(d),(e))) +#define my_strntoul(s, a, b, c, d, e) ((s)->cset->strntoul((s),(a),(b),(c),(d),(e))) +#define my_strntoll(s, a, b, c, d, e) ((s)->cset->strntoll((s),(a),(b),(c),(d),(e))) +#define my_strntoull(s, a, b, c,d, e) ((s)->cset->strntoull((s),(a),(b),(c),(d),(e))) +#define my_strntod(s, a, b, c, d) ((s)->cset->strntod((s),(a),(b),(c),(d))) + + +/* XXX: still need to take care of this one */ +#ifdef MY_CHARSET_TIS620 +#error The TIS620 charset is broken at the moment. Tell tim to fix it. +#define USE_TIS620 +#include "t_ctype.h" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _m_ctype_h */ diff --git a/3rdparty/mysql/include/my_alloc.h b/3rdparty/mysql/include/my_alloc.h new file mode 100644 index 000000000..1641b3acf --- /dev/null +++ b/3rdparty/mysql/include/my_alloc.h @@ -0,0 +1,52 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* + Data structures for mysys/my_alloc.c (root memory allocator) +*/ + +#ifndef _my_alloc_h +#define _my_alloc_h + +#define ALLOC_MAX_BLOCK_TO_DROP 4096 +#define ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP 10 + +typedef struct st_used_mem +{ /* struct for once_alloc (block) */ + struct st_used_mem *next; /* Next block in use */ + unsigned int left; /* memory left in block */ + unsigned int size; /* size of block */ +} USED_MEM; + + +typedef struct st_mem_root +{ + USED_MEM *free; /* blocks with free memory in it */ + USED_MEM *used; /* blocks almost without free memory */ + USED_MEM *pre_alloc; /* preallocated block */ + /* if block have less memory it will be put in 'used' list */ + unsigned int min_malloc; + unsigned int block_size; /* initial block size */ + unsigned int block_num; /* allocated blocks counter */ + /* + first free block in queue test counter (if it exceed + MAX_BLOCK_USAGE_BEFORE_DROP block will be dropped in 'used' list) + */ + unsigned int first_block_usage; + + void (*error_handler)(void); +} MEM_ROOT; +#endif diff --git a/3rdparty/mysql/include/my_dbug.h b/3rdparty/mysql/include/my_dbug.h new file mode 100644 index 000000000..b76a3fcc8 --- /dev/null +++ b/3rdparty/mysql/include/my_dbug.h @@ -0,0 +1,101 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef _dbug_h +#define _dbug_h + +#ifdef __cplusplus +extern "C" { +#endif +#if !defined(DBUG_OFF) && !defined(_lint) +extern int _db_on_,_no_db_; +extern FILE *_db_fp_; +extern char *_db_process_; +extern int _db_keyword_(const char *keyword); +extern int _db_strict_keyword_(const char *keyword); +extern void _db_setjmp_(void); +extern void _db_longjmp_(void); +extern void _db_push_(const char *control); +extern void _db_pop_(void); +extern void _db_enter_(const char *_func_,const char *_file_,uint _line_, + const char **_sfunc_,const char **_sfile_, + uint *_slevel_, char ***); +extern void _db_return_(uint _line_,const char **_sfunc_,const char **_sfile_, + uint *_slevel_); +extern void _db_pargs_(uint _line_,const char *keyword); +extern void _db_doprnt_ _VARARGS((const char *format,...)); +extern void _db_dump_(uint _line_,const char *keyword,const char *memory, + uint length); +extern void _db_output_(uint flag); +extern void _db_lock_file(void); +extern void _db_unlock_file(void); + +#define DBUG_ENTER(a) const char *_db_func_, *_db_file_; uint _db_level_; \ + char **_db_framep_; \ + _db_enter_ (a,__FILE__,__LINE__,&_db_func_,&_db_file_,&_db_level_, \ + &_db_framep_) +#define DBUG_LEAVE \ + (_db_return_ (__LINE__, &_db_func_, &_db_file_, &_db_level_)) +#define DBUG_RETURN(a1) {DBUG_LEAVE; return(a1);} +#define DBUG_VOID_RETURN {DBUG_LEAVE; return;} +#define DBUG_EXECUTE(keyword,a1) \ + {if (_db_on_) {if (_db_keyword_ (keyword)) { a1 }}} +#define DBUG_PRINT(keyword,arglist) \ + {if (_db_on_) {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;}} +#define DBUG_PUSH(a1) _db_push_ (a1) +#define DBUG_POP() _db_pop_ () +#define DBUG_PROCESS(a1) (_db_process_ = a1) +#define DBUG_FILE (_db_fp_) +#define DBUG_SETJMP(a1) (_db_setjmp_ (), setjmp (a1)) +#define DBUG_LONGJMP(a1,a2) (_db_longjmp_ (), longjmp (a1, a2)) +#define DBUG_DUMP(keyword,a1,a2)\ + {if (_db_on_) {_db_dump_(__LINE__,keyword,a1,a2);}} +#define DBUG_IN_USE (_db_fp_ && _db_fp_ != stderr) +#define DEBUGGER_OFF _no_db_=1;_db_on_=0; +#define DEBUGGER_ON _no_db_=0 +#define DBUG_LOCK_FILE { _db_lock_file(); } +#define DBUG_UNLOCK_FILE { _db_unlock_file(); } +#define DBUG_OUTPUT(A) { _db_output_(A); } +#define DBUG_ASSERT(A) assert(A) +#define DBUG_EXECUTE_IF(keyword,a1) \ + {if (_db_on_) {if (_db_strict_keyword_ (keyword)) { a1 }}} +#else /* No debugger */ + +#define DBUG_ENTER(a1) +#define DBUG_RETURN(a1) return(a1) +#define DBUG_VOID_RETURN return +#define DBUG_EXECUTE(keyword,a1) {} +#define DBUG_EXECUTE_IF(keyword,a1) {} +#define DBUG_PRINT(keyword,arglist) {} +#define DBUG_PUSH(a1) {} +#define DBUG_POP() {} +#define DBUG_PROCESS(a1) {} +#define DBUG_FILE (stderr) +#define DBUG_SETJMP setjmp +#define DBUG_LONGJMP longjmp +#define DBUG_DUMP(keyword,a1,a2) {} +#define DBUG_IN_USE 0 +#define DEBUGGER_OFF +#define DEBUGGER_ON +#define DBUG_LOCK_FILE +#define DBUG_UNLOCK_FILE +#define DBUG_OUTPUT(A) +#define DBUG_ASSERT(A) {} +#endif +#ifdef __cplusplus +} +#endif +#endif diff --git a/3rdparty/mysql/include/my_global.h b/3rdparty/mysql/include/my_global.h new file mode 100644 index 000000000..2417477e2 --- /dev/null +++ b/3rdparty/mysql/include/my_global.h @@ -0,0 +1,1306 @@ +/* Copyright (C) 2000-2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* This is the include file that should be included 'first' in every C file. */ + +#ifndef _global_h +#define _global_h + +#ifndef EMBEDDED_LIBRARY +#define HAVE_REPLICATION +#define HAVE_EXTERNAL_CLIENT +#endif + +#if defined( __EMX__) && !defined( MYSQL_SERVER) +/* moved here to use below VOID macro redefinition */ +#define INCL_BASE +#define INCL_NOPMAPI +#include +#endif /* __EMX__ */ + +#ifdef __CYGWIN__ +/* We use a Unix API, so pretend it's not Windows */ +#undef WIN +#undef WIN32 +#undef _WIN +#undef _WIN32 +#undef _WIN64 +#undef __WIN__ +#undef __WIN32__ +#define HAVE_ERRNO_AS_DEFINE +#endif /* __CYGWIN__ */ + +#if defined(__QNXNTO__) && !defined(FD_SETSIZE) +#define FD_SETSIZE 1024 /* Max number of file descriptor bits in + fd_set, used when calling 'select' + Must be defined before including + "sys/select.h" and "sys/time.h" + */ +#endif + + +/* to make command line shorter we'll define USE_PRAGMA_INTERFACE here */ +#ifdef USE_PRAGMA_IMPLEMENTATION +#define USE_PRAGMA_INTERFACE +#endif + +#if defined(i386) && !defined(__i386__) +#define __i386__ +#endif + +/* Macros to make switching between C and C++ mode easier */ +#ifdef __cplusplus +#define C_MODE_START extern "C" { +#define C_MODE_END } +#else +#define C_MODE_START +#define C_MODE_END +#endif + +#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32) +#include +#elif defined(OS2) +#include +#elif defined(__NETWARE__) +#include +#include +#if defined(__cplusplus) && defined(inline) +#undef inline /* fix configure problem */ +#endif +#else +#include +#if defined(__cplusplus) && defined(inline) +#undef inline /* fix configure problem */ +#endif +#endif /* _WIN32... */ + +/* Some defines to avoid ifdefs in the code */ +#ifndef NETWARE_YIELD +#define NETWARE_YIELD +#define NETWARE_SET_SCREEN_MODE(A) +#endif + +#include "../common/strlib.h" + +/* + The macros below are borrowed from include/linux/compiler.h in the + Linux kernel. Use them to indicate the likelyhood of the truthfulness + of a condition. This serves two purposes - newer versions of gcc will be + able to optimize for branch predication, which could yield siginficant + performance gains in frequently executed sections of the code, and the + other reason to use them is for documentation +*/ + +#if !defined(__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) +#define __builtin_expect(x, expected_value) (x) +#endif + +#define likely(x) __builtin_expect((x),1) +#define unlikely(x) __builtin_expect((x),0) + + +/* Fix problem with S_ISLNK() on Linux */ +#if defined(TARGET_OS_LINUX) +#undef _GNU_SOURCE +#define _GNU_SOURCE 1 +#endif + +/* + Temporary solution to solve bug#7156. Include "sys/types.h" before + the thread headers, else the function madvise() will not be defined +*/ +#if defined(HAVE_SYS_TYPES_H) && ( defined(sun) || defined(__sun) ) +#include +#endif + +/* The client defines this to avoid all thread code */ +#if defined(UNDEF_THREADS_HACK) +#undef THREAD +#undef HAVE_mit_thread +#undef HAVE_LINUXTHREADS +#undef HAVE_NPTL +#undef HAVE_UNIXWARE7_THREADS +#endif + +#ifdef HAVE_THREADS_WITHOUT_SOCKETS +/* MIT pthreads does not work with unix sockets */ +#undef HAVE_SYS_UN_H +#endif + +#define __EXTENSIONS__ 1 /* We want some extension */ +#ifndef __STDC_EXT__ +#define __STDC_EXT__ 1 /* To get large file support on hpux */ +#endif + +/* + Solaris 9 include file refers to X/Open document + + System Interfaces and Headers, Issue 5 + + saying we should define _XOPEN_SOURCE=500 to get POSIX.1c prototypes, + but apparently other systems (namely FreeBSD) don't agree. + + On a newer Solaris 10, the above file recognizes also _XOPEN_SOURCE=600. + Furthermore, it tests that if a program requires older standard + (_XOPEN_SOURCE<600 or _POSIX_C_SOURCE<200112L) it cannot be + run on a new compiler (that defines _STDC_C99) and issues an #error. + It's also an #error if a program requires new standard (_XOPEN_SOURCE=600 + or _POSIX_C_SOURCE=200112L) and a compiler does not define _STDC_C99. + + To add more to this mess, Sun Studio C compiler defines _STDC_C99 while + C++ compiler does not! + + So, in a desperate attempt to get correct prototypes for both + C and C++ code, we define either _XOPEN_SOURCE=600 or _XOPEN_SOURCE=500 + depending on the compiler's announced C standard support. + + Cleaner solutions are welcome. +*/ +#ifdef __sun +#if __STDC_VERSION__ - 0 >= 199901L +#define _XOPEN_SOURCE 600 +#else +#define _XOPEN_SOURCE 500 +#endif +#endif + +#if defined(THREAD) && !defined(__WIN__) && !defined(OS2) +#ifndef _POSIX_PTHREAD_SEMANTICS +#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */ +#endif + +#if !defined(SCO) +#define _REENTRANT 1 /* Some thread libraries require this */ +#endif +#if !defined(_THREAD_SAFE) && !defined(_AIX) +#define _THREAD_SAFE /* Required for OSF1 */ +#endif +#ifndef HAVE_mit_thread +#ifdef HAVE_UNIXWARE7_THREADS +#include +#else +#if defined(HPUX10) || defined(HPUX11) +C_MODE_START /* HPUX needs this, signal.h bug */ +#include +C_MODE_END +#else +#include /* AIX must have this included first */ +#endif +#endif /* HAVE_UNIXWARE7_THREADS */ +#endif /* HAVE_mit_thread */ +#if !defined(SCO) && !defined(_REENTRANT) +#define _REENTRANT 1 /* Threads requires reentrant code */ +#endif +#endif /* THREAD */ + +/* Go around some bugs in different OS and compilers */ +#ifdef _AIX /* By soren@t.dk */ +#define _H_STRINGS +#define _SYS_STREAM_H +/* #define _AIX32_CURSES */ /* XXX: this breaks AIX 4.3.3 (others?). */ +#define ulonglong2double(A) my_ulonglong2double(A) +#define my_off_t2double(A) my_ulonglong2double(A) +C_MODE_START +double my_ulonglong2double(unsigned long long A); +C_MODE_END +#endif /* _AIX */ + +#ifdef HAVE_BROKEN_SNPRINTF /* HPUX 10.20 don't have this defined */ +#undef HAVE_SNPRINTF +#endif +#ifdef HAVE_BROKEN_PREAD +/* + pread()/pwrite() are not 64 bit safe on HP-UX 11.0 without + installing the kernel patch PHKL_20349 or greater +*/ +#undef HAVE_PREAD +#undef HAVE_PWRITE +#endif +#if defined(HAVE_BROKEN_INLINE) && !defined(__cplusplus) +#undef inline +#define inline +#endif + +#ifdef UNDEF_HAVE_GETHOSTBYNAME_R /* For OSF4.x */ +#undef HAVE_GETHOSTBYNAME_R +#endif +#ifdef UNDEF_HAVE_INITGROUPS /* For AIX 4.3 */ +#undef HAVE_INITGROUPS +#endif + +/* gcc/egcs issues */ + +#if defined(__GNUC) && defined(__EXCEPTIONS) +#error "Please add -fno-exceptions to CXXFLAGS and reconfigure/recompile" +#endif + + +/* Fix a bug in gcc 2.8.0 on IRIX 6.2 */ +#if SIZEOF_LONG == 4 && defined(__LONG_MAX__) && (__GNUC__ == 2 && __GNUC_MINOR__ == 8) +#undef __LONG_MAX__ /* Is a longlong value in gcc 2.8.0 ??? */ +#define __LONG_MAX__ 2147483647 +#endif + +/* egcs 1.1.2 has a problem with memcpy on Alpha */ +#if defined(__GNUC__) && defined(__alpha__) && ! (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) +#define BAD_MEMCPY +#endif + +#if defined(_lint) && !defined(lint) +#define lint +#endif +#if SIZEOF_LONG_LONG > 4 && !defined(_LONG_LONG) +#define _LONG_LONG 1 /* For AIX string library */ +#endif + +#ifndef stdin +#include +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_STDDEF_H +#include +#endif + +#include +#ifdef HAVE_LIMITS_H +#include +#endif +#ifdef HAVE_FLOAT_H +#include +#endif + +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_FCNTL_H +#include +#endif +#ifdef HAVE_SYS_TIMEB_H +#include /* Avoid warnings on SCO */ +#endif +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif /* TIME_WITH_SYS_TIME */ +#ifdef HAVE_UNISTD_H +#include +#endif +#if defined(__cplusplus) && defined(NO_CPLUSPLUS_ALLOCA) +#undef HAVE_ALLOCA +#undef HAVE_ALLOCA_H +#endif +#ifdef HAVE_ALLOCA_H +#include +#endif +#ifdef HAVE_ATOMIC_ADD +#define new my_arg_new +#define need_to_restore_new 1 +C_MODE_START +#include +C_MODE_END +#ifdef need_to_restore_new /* probably safer than #ifdef new */ +#undef new +#undef need_to_restore_new +#endif +#endif +#include /* Recommended by debian */ +/* We need the following to go around a problem with openssl on solaris */ +#if defined(HAVE_CRYPT_H) +#include +#endif + +/* + A lot of our programs uses asserts, so better to always include it + This also fixes a problem when people uses DBUG_ASSERT without including + assert.h +*/ +#include + +/* Go around some bugs in different OS and compilers */ +#if defined(_HPUX_SOURCE) && defined(HAVE_SYS_STREAM_H) +#include /* HPUX 10.20 defines ulong here. UGLY !!! */ +#define HAVE_ULONG +#endif +#ifdef DONT_USE_FINITE /* HPUX 11.x has is_finite() */ +#undef HAVE_FINITE +#endif +#if defined(HPUX10) && defined(_LARGEFILE64_SOURCE) && defined(THREAD) +/* Fix bug in setrlimit */ +#undef setrlimit +#define setrlimit cma_setrlimit64 +#endif +/* Declare madvise where it is not declared for C++, like Solaris */ +#if HAVE_MADVISE && !HAVE_DECL_MADVISE && defined(__cplusplus) +extern "C" int madvise(void *addr, size_t len, int behav); +#endif + +#ifdef __QNXNTO__ +/* This has to be after include limits.h */ +#define HAVE_ERRNO_AS_DEFINE +#define HAVE_FCNTL_LOCK +#undef HAVE_FINITE +#undef LONGLONG_MIN /* These get wrongly defined in QNX 6.2 */ +#undef LONGLONG_MAX /* standard system library 'limits.h' */ +#ifdef __cplusplus +#ifndef HAVE_RINT +#define HAVE_RINT +#endif /* rint() and isnan() functions are not */ +#define rint(a) std::rint(a) /* visible in C++ scope due to an error */ +#define isnan(a) std::isnan(a) /* in the usr/include/math.h on QNX */ +#endif +#endif + +/* We can not live without the following defines */ + +#define USE_MYFUNC 1 /* Must use syscall indirection */ +#define MASTER 1 /* Compile without unireg */ +#define ENGLISH 1 /* Messages in English */ +#define POSIX_MISTAKE 1 /* regexp: Fix stupid spec error */ +#define USE_REGEX 1 /* We want the use the regex library */ +/* Do not define for ultra sparcs */ +#ifndef OS2 +#define USE_BMOVE512 1 /* Use this unless system bmove is faster */ +#endif + +#define QUOTE_ARG(x) #x /* Quote argument (before cpp) */ +#define STRINGIFY_ARG(x) QUOTE_ARG(x) /* Quote argument, after cpp */ + +/* Paranoid settings. Define I_AM_PARANOID if you are paranoid */ +#ifdef I_AM_PARANOID +#define DONT_ALLOW_USER_CHANGE 1 +#define DONT_USE_MYSQL_PWD 1 +#endif + +/* Does the system remember a signal handler after a signal ? */ +#ifndef HAVE_BSD_SIGNALS +#define DONT_REMEMBER_SIGNAL +#endif + +/* Define void to stop lint from generating "null effekt" comments */ +#ifndef DONT_DEFINE_VOID +#ifdef _lint +int __void__; +#define VOID(X) (__void__ = (int) (X)) +#else +#undef VOID +#define VOID(X) (X) +#endif +#endif /* DONT_DEFINE_VOID */ + +#if defined(_lint) || defined(FORCE_INIT_OF_VARS) +#define LINT_INIT(var) var=0 /* No uninitialize-warning */ +#else +#define LINT_INIT(var) +#endif + +#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(HAVE_purify) +#define PURIFY_OR_LINT_INIT(var) var=0 +#else +#define PURIFY_OR_LINT_INIT(var) +#endif + +/* Define some useful general macros */ +#if !defined(max) +#define max(a, b) ((a) > (b) ? (a) : (b)) +#define min(a, b) ((a) < (b) ? (a) : (b)) +#endif + +#if defined(__EMX__) || !defined(HAVE_UINT) +#undef HAVE_UINT +#define HAVE_UINT +typedef unsigned int uint; +typedef unsigned short ushort; +#endif + +#define CMP_NUM(a,b) (((a) < (b)) ? -1 : ((a) == (b)) ? 0 : 1) +#define sgn(a) (((a) < 0) ? -1 : ((a) > 0) ? 1 : 0) +#define swap_variables(t, a, b) { register t dummy; dummy= a; a= b; b= dummy; } +#define test(a) ((a) ? 1 : 0) +#define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0) +#define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0) +#define test_all_bits(a,b) (((a) & (b)) == (b)) +#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1)) +#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0]))) +#ifndef HAVE_RINT +#define rint(A) floor((A)+(((A) < 0)? -0.5 : 0.5)) +#endif + +/* Define some general constants */ +#ifndef TRUE +#define TRUE (1) /* Logical true */ +#define FALSE (0) /* Logical false */ +#endif + +#if defined(__GNUC__) +#define function_volatile volatile +#define my_reinterpret_cast(A) reinterpret_cast +#define my_const_cast(A) const_cast +#elif !defined(my_reinterpret_cast) +#define my_reinterpret_cast(A) (A) +#define my_const_cast(A) (A) +#endif +#if !defined(__attribute__) && (defined(__cplusplus) || !defined(__GNUC__) || __GNUC__ == 2 && __GNUC_MINOR__ < 8) +#define __attribute__(A) +#endif + +/* + Wen using the embedded library, users might run into link problems, + dupicate declaration of __cxa_pure_virtual, solved by declaring it a + weak symbol. +*/ +#ifdef USE_MYSYS_NEW +C_MODE_START +int __cxa_pure_virtual () __attribute__ ((weak)); +C_MODE_END +#endif + +/* From old s-system.h */ + +/* + Support macros for non ansi & other old compilers. Since such + things are no longer supported we do nothing. We keep then since + some of our code may still be needed to upgrade old customers. +*/ +#define _VARARGS(X) X +#define _STATIC_VARARGS(X) X +#define _PC(X) X + +#if defined(DBUG_ON) && defined(DBUG_OFF) +#undef DBUG_OFF +#endif + +#if defined(_lint) && !defined(DBUG_OFF) +#define DBUG_OFF +#endif + +#include + +#define MIN_ARRAY_SIZE 0 /* Zero or One. Gcc allows zero*/ +#define ASCII_BITS_USED 8 /* Bit char used */ +#define NEAR_F /* No near function handling */ + +/* Some types that is different between systems */ + +typedef int File; /* File descriptor */ +#ifndef Socket_defined +typedef int my_socket; /* File descriptor for sockets */ +#define INVALID_SOCKET -1 +#endif +/* Type for fuctions that handles signals */ +#define sig_handler RETSIGTYPE +C_MODE_START +typedef void (*sig_return)();/* Returns type from signal */ +C_MODE_END +#if defined(__GNUC__) && !defined(_lint) +typedef char pchar; /* Mixed prototypes can take char */ +typedef char puchar; /* Mixed prototypes can take char */ +typedef char pbool; /* Mixed prototypes can take char */ +typedef short pshort; /* Mixed prototypes can take short int */ +typedef float pfloat; /* Mixed prototypes can take float */ +#else +typedef int pchar; /* Mixed prototypes can't take char */ +typedef uint puchar; /* Mixed prototypes can't take char */ +typedef int pbool; /* Mixed prototypes can't take char */ +typedef int pshort; /* Mixed prototypes can't take short int */ +typedef double pfloat; /* Mixed prototypes can't take float */ +#endif +C_MODE_START +typedef int (*qsort_cmp)(const void *,const void *); +typedef int (*qsort_cmp2)(void*, const void *,const void *); +C_MODE_END +#ifdef HAVE_mit_thread +#define qsort_t void +#undef QSORT_TYPE_IS_VOID +#define QSORT_TYPE_IS_VOID +#else +#define qsort_t RETQSORTTYPE /* Broken GCC cant handle typedef !!!! */ +#endif +#ifdef HAVE_mit_thread +#define size_socket socklen_t /* Type of last arg to accept */ +#else +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +typedef SOCKET_SIZE_TYPE size_socket; +#endif + +#ifndef SOCKOPT_OPTLEN_TYPE +#define SOCKOPT_OPTLEN_TYPE size_socket +#endif + +/* file create flags */ + +#ifndef O_SHARE /* Probably not windows */ +#define O_SHARE 0 /* Flag to my_open for shared files */ +#ifndef O_BINARY +#define O_BINARY 0 /* Flag to my_open for binary files */ +#endif +#ifndef FILE_BINARY +#define FILE_BINARY O_BINARY /* Flag to my_fopen for binary streams */ +#endif +#ifdef HAVE_FCNTL +#define HAVE_FCNTL_LOCK +#define F_TO_EOF 0L /* Param to lockf() to lock rest of file */ +#endif +#endif /* O_SHARE */ + +#ifndef O_TEMPORARY +#define O_TEMPORARY 0 +#endif +#ifndef O_SHORT_LIVED +#define O_SHORT_LIVED 0 +#endif +#ifndef O_NOFOLLOW +#define O_NOFOLLOW 0 +#endif + +/* additional file share flags for win32 */ +#ifdef __WIN__ +#define _SH_DENYRWD 0x110 /* deny read/write mode & delete */ +#define _SH_DENYWRD 0x120 /* deny write mode & delete */ +#define _SH_DENYRDD 0x130 /* deny read mode & delete */ +#define _SH_DENYDEL 0x140 /* deny delete only */ +#endif /* __WIN__ */ + + +/* #define USE_RECORD_LOCK */ + + /* Unsigned types supported by the compiler */ +#define UNSINT8 /* unsigned int8 (char) */ +#define UNSINT16 /* unsigned int16 */ +#define UNSINT32 /* unsigned int32 */ + + /* General constants */ +#define SC_MAXWIDTH 256 /* Max width of screen (for error messages) */ +#define FN_LEN 256 /* Max file name len */ +#define FN_HEADLEN 253 /* Max length of filepart of file name */ +#define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */ +#define FN_REFLEN 512 /* Max length of full path-name */ +#define FN_EXTCHAR '.' +#define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */ +#define FN_CURLIB '.' /* ./ is used as abbrev for current dir */ +#define FN_PARENTDIR ".." /* Parent directory; Must be a string */ +#define FN_DEVCHAR ':' + +#ifndef FN_LIBCHAR +#ifdef __EMX__ +#define FN_LIBCHAR '\\' +#define FN_ROOTDIR "\\" +#else +#define FN_LIBCHAR '/' +#define FN_ROOTDIR "/" +#endif +#endif +#define MY_NFILE 64 /* This is only used to save filenames */ +#ifndef OS_FILE_LIMIT +#define OS_FILE_LIMIT 65535 +#endif + +/* #define EXT_IN_LIBNAME */ +/* #define FN_NO_CASE_SENCE */ +/* #define FN_UPPER_CASE TRUE */ + +/* + Io buffer size; Must be a power of 2 and a multiple of 512. May be + smaller what the disk page size. This influences the speed of the + isam btree library. eg to big to slow. +*/ +#define IO_SIZE 4096 +/* + How much overhead does malloc have. The code often allocates + something like 1024-MALLOC_OVERHEAD bytes +*/ +#ifdef SAFEMALLOC +#define MALLOC_OVERHEAD (8+24+4) +#else +#define MALLOC_OVERHEAD 8 +#endif + /* get memory in huncs */ +#define ONCE_ALLOC_INIT (uint) (4096-MALLOC_OVERHEAD) + /* Typical record cash */ +#define RECORD_CACHE_SIZE (uint) (64*1024-MALLOC_OVERHEAD) + /* Typical key cash */ +#define KEY_CACHE_SIZE (uint) (8*1024*1024-MALLOC_OVERHEAD) + /* Default size of a key cache block */ +#define KEY_CACHE_BLOCK_SIZE (uint) 1024 + + + /* Some things that this system doesn't have */ + +#define NO_HASH /* Not needed anymore */ +#ifdef __WIN__ +#define NO_DIR_LIBRARY /* Not standar dir-library */ +#define USE_MY_STAT_STRUCT /* For my_lib */ +#endif + +/* Some defines of functions for portability */ + +#undef remove /* Crashes MySQL on SCO 5.0.0 */ +#ifndef __WIN__ +#ifdef OS2 +#define closesocket(A) soclose(A) +#else +#define closesocket(A) close(A) +#endif +#ifndef ulonglong2double +#define ulonglong2double(A) ((double) (ulonglong) (A)) +#define my_off_t2double(A) ((double) (my_off_t) (A)) +#endif +#endif + +#ifndef offsetof +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#endif +#define ulong_to_double(X) ((double) (ulong) (X)) +#define SET_STACK_SIZE(X) /* Not needed on real machines */ + +#if !defined(HAVE_mit_thread) && !defined(HAVE_STRTOK_R) +#define strtok_r(A,B,C) strtok((A),(B)) +#endif + +/* Remove some things that mit_thread break or doesn't support */ +#if defined(HAVE_mit_thread) && defined(THREAD) +#undef HAVE_PREAD +#undef HAVE_REALPATH +#undef HAVE_MLOCK +#undef HAVE_TEMPNAM /* Use ours */ +#undef HAVE_PTHREAD_SETPRIO +#undef HAVE_FTRUNCATE +#undef HAVE_READLINK +#endif + +/* This is from the old m-machine.h file */ + +#if SIZEOF_LONG_LONG > 4 +#define HAVE_LONG_LONG 1 +#endif + +/* + Some pre-ANSI-C99 systems like AIX 5.1 and Linux/GCC 2.95 define + ULONGLONG_MAX, LONGLONG_MIN, LONGLONG_MAX; we use them if they're defined. + Also on Windows we define these constants by hand in config-win.h. +*/ + +#if defined(HAVE_LONG_LONG) && !defined(LONGLONG_MIN) +#define LONGLONG_MIN ((long long) 0x8000000000000000LL) +#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL) +#endif + +#if defined(HAVE_LONG_LONG) && !defined(ULONGLONG_MAX) +/* First check for ANSI C99 definition: */ +#ifdef ULLONG_MAX +#define ULONGLONG_MAX ULLONG_MAX +#else +#define ULONGLONG_MAX ((unsigned long long)(~0ULL)) +#endif +#endif /* defined (HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)*/ + +#define INT_MIN32 (~0x7FFFFFFFL) +#define INT_MAX32 0x7FFFFFFFL +#define UINT_MAX32 0xFFFFFFFFL +#define INT_MIN24 (~0x007FFFFF) +#define INT_MAX24 0x007FFFFF +#define UINT_MAX24 0x00FFFFFF +#define INT_MIN16 (~0x7FFF) +#define INT_MAX16 0x7FFF +#define UINT_MAX16 0xFFFF +#define INT_MIN8 (~0x7F) +#define INT_MAX8 0x7F +#define UINT_MAX8 0xFF + +/* From limits.h instead */ +#ifndef DBL_MIN +#define DBL_MIN 4.94065645841246544e-324 +#define FLT_MIN ((float)1.40129846432481707e-45) +#endif +#ifndef DBL_MAX +#define DBL_MAX 1.79769313486231470e+308 +#define FLT_MAX ((float)3.40282346638528860e+38) +#endif + +#if !defined(HAVE_ISINF) && !defined(isinf) +#define isinf(X) 0 +#endif + +/* Define missing math constants. */ +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif +#ifndef M_E +#define M_E 2.7182818284590452354 +#endif +#ifndef M_LN2 +#define M_LN2 0.69314718055994530942 +#endif + +/* + Max size that must be added to a so that we know Size to make + adressable obj. +*/ +#if SIZEOF_CHARP == 4 +typedef long my_ptrdiff_t; +#else +typedef long long my_ptrdiff_t; +#endif + +#define MY_ALIGN(A,L) (((A) + (L) - 1) & ~((L) - 1)) +#define ALIGN_SIZE(A) MY_ALIGN((A),sizeof(double)) +/* Size to make adressable obj. */ +#define ALIGN_PTR(A, t) ((t*) MY_ALIGN((A),sizeof(t))) + /* Offset of field f in structure t */ +#define OFFSET(t, f) ((size_t)(char *)&((t *)0)->f) +#define ADD_TO_PTR(ptr,size,type) (type) ((byte*) (ptr)+size) +#define PTR_BYTE_DIFF(A,B) (my_ptrdiff_t) ((byte*) (A) - (byte*) (B)) + +#define NullS (char *) 0 +/* Nowdays we do not support MessyDos */ +#ifndef NEAR +#define NEAR /* Who needs segments ? */ +#define FAR /* On a good machine */ +#ifndef HUGE_PTR +#define HUGE_PTR +#endif +#endif +#if defined(__IBMC__) || defined(__IBMCPP__) +/* This was _System _Export but caused a lot of warnings on _AIX43 */ +#define STDCALL +#elif !defined( STDCALL) +#define STDCALL +#endif + +/* Typdefs for easyier portability */ + +#if defined(VOIDTYPE) +typedef void *gptr; /* Generic pointer */ +#else +typedef char *gptr; /* Generic pointer */ +#endif +#ifndef HAVE_INT_8_16_32 +typedef signed char int8; /* Signed integer >= 8 bits */ +typedef short int16; /* Signed integer >= 16 bits */ +#endif +#ifndef HAVE_UCHAR +typedef unsigned char uchar; /* Short for unsigned char */ +#endif +typedef unsigned char uint8; /* Short for unsigned integer >= 8 bits */ +typedef unsigned short uint16; /* Short for unsigned integer >= 16 bits */ + +#if SIZEOF_INT == 4 +#ifndef HAVE_INT_8_16_32 +typedef int int32; +#endif +typedef unsigned int uint32; /* Short for unsigned integer >= 32 bits */ +#elif SIZEOF_LONG == 4 +#ifndef HAVE_INT_8_16_32 +typedef long int32; +#endif +typedef unsigned long uint32; /* Short for unsigned integer >= 32 bits */ +#else +#error "Neither int or long is of 4 bytes width" +#endif + +#if !defined(HAVE_ULONG) && !defined(TARGET_OS_LINUX) && !defined(__USE_MISC) +typedef unsigned long ulong; /* Short for unsigned long */ +#endif +#ifndef longlong_defined +#if defined(HAVE_LONG_LONG) && SIZEOF_LONG != 8 +typedef unsigned long long int ulonglong; /* ulong or unsigned long long */ +typedef long long int longlong; +#else +typedef unsigned long ulonglong; /* ulong or unsigned long long */ +typedef long longlong; +#endif +#endif + +#if defined(NO_CLIENT_LONG_LONG) +typedef unsigned long my_ulonglong; +#elif defined (__WIN__) +typedef unsigned __int64 my_ulonglong; +#else +typedef unsigned long long my_ulonglong; +#endif + +#ifdef USE_RAID +/* + The following is done with a if to not get problems with pre-processors + with late define evaluation +*/ +#if SIZEOF_OFF_T == 4 +#define SYSTEM_SIZEOF_OFF_T 4 +#else +#define SYSTEM_SIZEOF_OFF_T 8 +#endif +#undef SIZEOF_OFF_T +#define SIZEOF_OFF_T 8 +#else +#define SYSTEM_SIZEOF_OFF_T SIZEOF_OFF_T +#endif /* USE_RAID */ + +#if SIZEOF_OFF_T > 4 +typedef ulonglong my_off_t; +#else +typedef unsigned long my_off_t; +#endif +#define MY_FILEPOS_ERROR (~(my_off_t) 0) +#if !defined(__WIN__) && !defined(OS2) +typedef off_t os_off_t; +#endif + +#if defined(__WIN__) +#define socket_errno WSAGetLastError() +#define SOCKET_EINTR WSAEINTR +#define SOCKET_EAGAIN WSAEINPROGRESS +#define SOCKET_ETIMEDOUT WSAETIMEDOUT +#define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK +#define SOCKET_EADDRINUSE WSAEADDRINUSE +#define SOCKET_ENFILE ENFILE +#define SOCKET_EMFILE EMFILE +#elif defined(OS2) +#define socket_errno sock_errno() +#define SOCKET_EINTR SOCEINTR +#define SOCKET_EAGAIN SOCEINPROGRESS +#define SOCKET_ETIMEDOUT SOCKET_EINTR +#define SOCKET_EWOULDBLOCK SOCEWOULDBLOCK +#define SOCKET_EADDRINUSE SOCEADDRINUSE +#define SOCKET_ENFILE SOCENFILE +#define SOCKET_EMFILE SOCEMFILE +#define closesocket(A) soclose(A) +#else /* Unix */ +#define socket_errno errno +#define closesocket(A) close(A) +#define SOCKET_EINTR EINTR +#define SOCKET_EAGAIN EAGAIN +#define SOCKET_ETIMEDOUT SOCKET_EINTR +#define SOCKET_EWOULDBLOCK EWOULDBLOCK +#define SOCKET_EADDRINUSE EADDRINUSE +#define SOCKET_ENFILE ENFILE +#define SOCKET_EMFILE EMFILE +#endif + +typedef uint8 int7; /* Most effective integer 0 <= x <= 127 */ +typedef short int15; /* Most effective integer 0 <= x <= 32767 */ +typedef char *my_string; /* String of characters */ +typedef unsigned long size_s; /* Size of strings (In string-funcs) */ +typedef int myf; /* Type of MyFlags in my_funcs */ +#ifndef byte_defined +typedef char byte; /* Smallest addressable unit */ +#endif +typedef char my_bool; /* Small bool */ +#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) || !defined(__cplusplus)) +typedef char bool; /* Ordinary boolean values 0 1 */ +#endif + /* Macros for converting *constants* to the right type */ +#define INT8(v) (int8) (v) +#define INT16(v) (int16) (v) +#define INT32(v) (int32) (v) +#define MYF(v) (myf) (v) + +#ifndef LL +#ifdef HAVE_LONG_LONG +#define LL(A) A ## LL +#else +#define LL(A) A ## L +#endif +#endif + +#ifndef ULL +#ifdef HAVE_LONG_LONG +#define ULL(A) A ## ULL +#else +#define ULL(A) A ## UL +#endif +#endif + +/* + Defines to make it possible to prioritize register assignments. No + longer that important with modern compilers. +*/ +#ifndef USING_X +#define reg1 register +#define reg2 register +#define reg3 register +#define reg4 register +#define reg5 register +#define reg6 register +#define reg7 register +#define reg8 register +#define reg9 register +#define reg10 register +#define reg11 register +#define reg12 register +#define reg13 register +#define reg14 register +#define reg15 register +#define reg16 register +#endif + +/* + Sometimes we want to make sure that the variable is not put into + a register in debugging mode so we can see its value in the core +*/ + +#ifndef DBUG_OFF +#define dbug_volatile volatile +#else +#define dbug_volatile +#endif + +/* Defines for time function */ +#define SCALE_SEC 100 +#define SCALE_USEC 10000 +#define MY_HOW_OFTEN_TO_ALARM 2 /* How often we want info on screen */ +#define MY_HOW_OFTEN_TO_WRITE 1000 /* How often we want info on screen */ + +#ifdef HAVE_TIMESPEC_TS_SEC +#ifndef set_timespec +#define set_timespec(ABSTIME,SEC) \ +{ \ + (ABSTIME).ts_sec=time(0) + (time_t) (SEC); \ + (ABSTIME).ts_nsec=0; \ +} +#endif /* !set_timespec */ +#ifndef set_timespec_nsec +#define set_timespec_nsec(ABSTIME,NSEC) \ +{ \ + ulonglong now= my_getsystime() + (NSEC/100); \ + (ABSTIME).ts_sec= (now / ULL(10000000)); \ + (ABSTIME).ts_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \ +} +#endif /* !set_timespec_nsec */ +#else +#ifndef set_timespec +#define set_timespec(ABSTIME,SEC) \ +{\ + struct timeval tv;\ + gettimeofday(&tv,0);\ + (ABSTIME).tv_sec=tv.tv_sec+(time_t) (SEC);\ + (ABSTIME).tv_nsec=tv.tv_usec*1000;\ +} +#endif /* !set_timespec */ +#ifndef set_timespec_nsec +#define set_timespec_nsec(ABSTIME,NSEC) \ +{\ + ulonglong now= my_getsystime() + (NSEC/100); \ + (ABSTIME).tv_sec= (now / ULL(10000000)); \ + (ABSTIME).tv_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \ +} +#endif /* !set_timespec_nsec */ +#endif /* HAVE_TIMESPEC_TS_SEC */ + +/* + Define-funktions for reading and storing in machine independent format + (low byte first) +*/ + +/* Optimized store functions for Intel x86 */ +#if defined(__i386__) && !defined(_WIN64) +#define sint2korr(A) (*((int16 *) (A))) +#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \ + (((uint32) 255L << 24) | \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0])) : \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0]))) +#define sint4korr(A) (*((long *) (A))) +#define uint2korr(A) (*((uint16 *) (A))) +#ifdef HAVE_purify +#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16)) +#else +/* + ATTENTION ! + + Please, note, uint3korr reads 4 bytes (not 3) ! + It means, that you have to provide enough allocated space ! +*/ +#define uint3korr(A) (long) (*((unsigned int *) (A)) & 0xFFFFFF) +#endif +#define uint4korr(A) (*((unsigned long *) (A))) +#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16) +\ + (((uint32) ((uchar) (A)[3])) << 24)) +\ + (((ulonglong) ((uchar) (A)[4])) << 32)) +#define uint8korr(A) (*((ulonglong *) (A))) +#define sint8korr(A) (*((longlong *) (A))) +#define int2store(T,A) *((uint16*) (T))= (uint16) (A) +#define int3store(T,A) do { *(T)= (uchar) ((A));\ + *(T+1)=(uchar) (((uint) (A) >> 8));\ + *(T+2)=(uchar) (((A) >> 16)); } while (0) +#define int4store(T,A) *((long *) (T))= (long) (A) +#define int5store(T,A) do { *(T)= (uchar)((A));\ + *((T)+1)=(uchar) (((A) >> 8));\ + *((T)+2)=(uchar) (((A) >> 16));\ + *((T)+3)=(uchar) (((A) >> 24)); \ + *((T)+4)=(uchar) (((A) >> 32)); } while(0) +#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A) + +typedef union { + double v; + long m[2]; +} doubleget_union; +#define doubleget(V,M) \ +do { doubleget_union _tmp; \ + _tmp.m[0] = *((long*)(M)); \ + _tmp.m[1] = *(((long*) (M))+1); \ + (V) = _tmp.v; } while(0) +#define doublestore(T,V) do { *((long *) T) = ((doubleget_union *)&V)->m[0]; \ + *(((long *) T)+1) = ((doubleget_union *)&V)->m[1]; \ + } while (0) +#define float4get(V,M) do { *((long *) &(V)) = *((long*) (M)); } while(0) +#define float8get(V,M) doubleget((V),(M)) +#define float4store(V,M) memcpy((byte*) V,(byte*) (&M),sizeof(float)) +#define floatstore(T,V) memcpy((byte*)(T), (byte*)(&V),sizeof(float)) +#define floatget(V,M) memcpy((byte*) &V,(byte*) (M),sizeof(float)) +#define float8store(V,M) doublestore((V),(M)) +#endif /* __i386__ */ + +#ifndef sint2korr +/* + We're here if it's not a IA-32 architecture (Win32 and UNIX IA-32 defines + were done before) +*/ +#define sint2korr(A) (int16) (((int16) ((uchar) (A)[0])) +\ + ((int16) ((int16) (A)[1]) << 8)) +#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \ + (((uint32) 255L << 24) | \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0])) : \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0]))) +#define sint4korr(A) (int32) (((int32) ((uchar) (A)[0])) +\ + (((int32) ((uchar) (A)[1]) << 8)) +\ + (((int32) ((uchar) (A)[2]) << 16)) +\ + (((int32) ((int16) (A)[3]) << 24))) +#define sint8korr(A) (longlong) uint8korr(A) +#define uint2korr(A) (uint16) (((uint16) ((uchar) (A)[0])) +\ + ((uint16) ((uchar) (A)[1]) << 8)) +#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16)) +#define uint4korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16) +\ + (((uint32) ((uchar) (A)[3])) << 24)) +#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16) +\ + (((uint32) ((uchar) (A)[3])) << 24)) +\ + (((ulonglong) ((uchar) (A)[4])) << 32)) +#define uint8korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16) +\ + (((uint32) ((uchar) (A)[3])) << 24)) +\ + (((ulonglong) (((uint32) ((uchar) (A)[4])) +\ + (((uint32) ((uchar) (A)[5])) << 8) +\ + (((uint32) ((uchar) (A)[6])) << 16) +\ + (((uint32) ((uchar) (A)[7])) << 24))) <<\ + 32)) +#define int2store(T,A) do { uint def_temp= (uint) (A) ;\ + *((uchar*) (T))= (uchar)(def_temp); \ + *((uchar*) (T)+1)=(uchar)((def_temp >> 8)); \ + } while(0) +#define int3store(T,A) do { /*lint -save -e734 */\ + *((uchar*)(T))=(uchar) ((A));\ + *((uchar*) (T)+1)=(uchar) (((A) >> 8));\ + *((uchar*)(T)+2)=(uchar) (((A) >> 16)); \ + /*lint -restore */} while(0) +#define int4store(T,A) do { *((char *)(T))=(char) ((A));\ + *(((char *)(T))+1)=(char) (((A) >> 8));\ + *(((char *)(T))+2)=(char) (((A) >> 16));\ + *(((char *)(T))+3)=(char) (((A) >> 24)); } while(0) +#define int5store(T,A) do { *((char *)(T))=((A));\ + *(((char *)(T))+1)=(((A) >> 8));\ + *(((char *)(T))+2)=(((A) >> 16));\ + *(((char *)(T))+3)=(((A) >> 24)); \ + *(((char *)(T))+4)=(((A) >> 32)); } while(0) +#define int8store(T,A) do { uint def_temp= (uint) (A), def_temp2= (uint) ((A) >> 32); \ + int4store((T),def_temp); \ + int4store((T+4),def_temp2); } while(0) +#ifdef WORDS_BIGENDIAN +#define float4store(T,A) do { *(T)= ((byte *) &A)[3];\ + *((T)+1)=(char) ((byte *) &A)[2];\ + *((T)+2)=(char) ((byte *) &A)[1];\ + *((T)+3)=(char) ((byte *) &A)[0]; } while(0) + +#define float4get(V,M) do { float def_temp;\ + ((byte*) &def_temp)[0]=(M)[3];\ + ((byte*) &def_temp)[1]=(M)[2];\ + ((byte*) &def_temp)[2]=(M)[1];\ + ((byte*) &def_temp)[3]=(M)[0];\ + (V)=def_temp; } while(0) +#define float8store(T,V) do { *(T)= ((byte *) &V)[7];\ + *((T)+1)=(char) ((byte *) &V)[6];\ + *((T)+2)=(char) ((byte *) &V)[5];\ + *((T)+3)=(char) ((byte *) &V)[4];\ + *((T)+4)=(char) ((byte *) &V)[3];\ + *((T)+5)=(char) ((byte *) &V)[2];\ + *((T)+6)=(char) ((byte *) &V)[1];\ + *((T)+7)=(char) ((byte *) &V)[0]; } while(0) + +#define float8get(V,M) do { double def_temp;\ + ((byte*) &def_temp)[0]=(M)[7];\ + ((byte*) &def_temp)[1]=(M)[6];\ + ((byte*) &def_temp)[2]=(M)[5];\ + ((byte*) &def_temp)[3]=(M)[4];\ + ((byte*) &def_temp)[4]=(M)[3];\ + ((byte*) &def_temp)[5]=(M)[2];\ + ((byte*) &def_temp)[6]=(M)[1];\ + ((byte*) &def_temp)[7]=(M)[0];\ + (V) = def_temp; } while(0) +#else +#define float4get(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(float)) +#define float4store(V,M) memcpy_fixed((byte*) V,(byte*) (&M),sizeof(float)) + +#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN) +#define doublestore(T,V) do { *(((char*)T)+0)=(char) ((byte *) &V)[4];\ + *(((char*)T)+1)=(char) ((byte *) &V)[5];\ + *(((char*)T)+2)=(char) ((byte *) &V)[6];\ + *(((char*)T)+3)=(char) ((byte *) &V)[7];\ + *(((char*)T)+4)=(char) ((byte *) &V)[0];\ + *(((char*)T)+5)=(char) ((byte *) &V)[1];\ + *(((char*)T)+6)=(char) ((byte *) &V)[2];\ + *(((char*)T)+7)=(char) ((byte *) &V)[3]; }\ + while(0) +#define doubleget(V,M) do { double def_temp;\ + ((byte*) &def_temp)[0]=(M)[4];\ + ((byte*) &def_temp)[1]=(M)[5];\ + ((byte*) &def_temp)[2]=(M)[6];\ + ((byte*) &def_temp)[3]=(M)[7];\ + ((byte*) &def_temp)[4]=(M)[0];\ + ((byte*) &def_temp)[5]=(M)[1];\ + ((byte*) &def_temp)[6]=(M)[2];\ + ((byte*) &def_temp)[7]=(M)[3];\ + (V) = def_temp; } while(0) +#endif /* __FLOAT_WORD_ORDER */ + +#define float8get(V,M) doubleget((V),(M)) +#define float8store(V,M) doublestore((V),(M)) +#endif /* WORDS_BIGENDIAN */ + +#endif /* sint2korr */ + +/* + Macro for reading 32-bit integer from network byte order (big-endian) + from unaligned memory location. +*/ +#define int4net(A) (int32) (((uint32) ((uchar) (A)[3])) |\ + (((uint32) ((uchar) (A)[2])) << 8) |\ + (((uint32) ((uchar) (A)[1])) << 16) |\ + (((uint32) ((uchar) (A)[0])) << 24)) +/* + Define-funktions for reading and storing in machine format from/to + short/long to/from some place in memory V should be a (not + register) variable, M is a pointer to byte +*/ + +#ifdef WORDS_BIGENDIAN + +#define ushortget(V,M) do { V = (uint16) (((uint16) ((uchar) (M)[1]))+\ + ((uint16) ((uint16) (M)[0]) << 8)); } while(0) +#define shortget(V,M) do { V = (short) (((short) ((uchar) (M)[1]))+\ + ((short) ((short) (M)[0]) << 8)); } while(0) +#define longget(V,M) do { int32 def_temp;\ + ((byte*) &def_temp)[0]=(M)[0];\ + ((byte*) &def_temp)[1]=(M)[1];\ + ((byte*) &def_temp)[2]=(M)[2];\ + ((byte*) &def_temp)[3]=(M)[3];\ + (V)=def_temp; } while(0) +#define ulongget(V,M) do { uint32 def_temp;\ + ((byte*) &def_temp)[0]=(M)[0];\ + ((byte*) &def_temp)[1]=(M)[1];\ + ((byte*) &def_temp)[2]=(M)[2];\ + ((byte*) &def_temp)[3]=(M)[3];\ + (V)=def_temp; } while(0) +#define shortstore(T,A) do { uint def_temp=(uint) (A) ;\ + *(((char*)T)+1)=(char)(def_temp); \ + *(((char*)T)+0)=(char)(def_temp >> 8); } while(0) +#define longstore(T,A) do { *(((char*)T)+3)=((A));\ + *(((char*)T)+2)=(((A) >> 8));\ + *(((char*)T)+1)=(((A) >> 16));\ + *(((char*)T)+0)=(((A) >> 24)); } while(0) + +#define floatget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(float)) +#define floatstore(T,V) memcpy_fixed((byte*) (T),(byte*)(&V),sizeof(float)) +#define doubleget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(double)) +#define doublestore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(double)) +#define longlongget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(ulonglong)) +#define longlongstore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(ulonglong)) + +#else + +#define ushortget(V,M) do { V = uint2korr(M); } while(0) +#define shortget(V,M) do { V = sint2korr(M); } while(0) +#define longget(V,M) do { V = sint4korr(M); } while(0) +#define ulongget(V,M) do { V = uint4korr(M); } while(0) +#define shortstore(T,V) int2store(T,V) +#define longstore(T,V) int4store(T,V) +#ifndef floatstore +#define floatstore(T,V) memcpy_fixed((byte*) (T),(byte*) (&V),sizeof(float)) +#define floatget(V,M) memcpy_fixed((byte*) &V, (byte*) (M), sizeof(float)) +#endif +#ifndef doubleget +#define doubleget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(double)) +#define doublestore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(double)) +#endif /* doubleget */ +#define longlongget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(ulonglong)) +#define longlongstore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(ulonglong)) + +#endif /* WORDS_BIGENDIAN */ + +/* sprintf does not always return the number of bytes :- */ +#ifdef SPRINTF_RETURNS_INT +#define my_sprintf(buff,args) sprintf args +#else +#ifdef SPRINTF_RETURNS_PTR +#define my_sprintf(buff,args) ((int)(sprintf args - buff)) +#else +#define my_sprintf(buff,args) ((ulong) sprintf args, (ulong) strlen(buff)) +#endif +#endif + +#ifndef THREAD +#define thread_safe_increment(V,L) (V)++ +#define thread_safe_add(V,C,L) (V)+=(C) +#define thread_safe_sub(V,C,L) (V)-=(C) +#define statistic_increment(V,L) (V)++ +#define statistic_add(V,C,L) (V)+=(C) +#endif + +#ifdef HAVE_CHARSET_utf8 +#define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8" +#else +#define MYSQL_UNIVERSAL_CLIENT_CHARSET MYSQL_DEFAULT_CHARSET_NAME +#endif + +#if defined(EMBEDDED_LIBRARY) && !defined(HAVE_EMBEDDED_PRIVILEGE_CONTROL) +#define NO_EMBEDDED_ACCESS_CHECKS +#endif + +#endif /* my_global_h */ diff --git a/3rdparty/mysql/include/my_list.h b/3rdparty/mysql/include/my_list.h new file mode 100644 index 000000000..92598696f --- /dev/null +++ b/3rdparty/mysql/include/my_list.h @@ -0,0 +1,46 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef _list_h_ +#define _list_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct st_list { + struct st_list *prev,*next; + void *data; +} LIST; + +typedef int (*list_walk_action)(void *,void *); + +extern LIST *list_add(LIST *root,LIST *element); +extern LIST *list_delete(LIST *root,LIST *element); +extern LIST *list_cons(void *data,LIST *root); +extern LIST *list_reverse(LIST *root); +extern void list_free(LIST *root,unsigned int free_data); +extern unsigned int list_length(LIST *); +extern int list_walk(LIST *,list_walk_action action,gptr argument); + +#define list_rest(a) ((a)->next) +#define list_push(a,b) (a)=list_cons((b),(a)) +#define list_pop(A) {LIST *old=(A); (A)=list_delete(old,old) ; my_free((gptr) old,MYF(MY_FAE)); } + +#ifdef __cplusplus +} +#endif +#endif diff --git a/3rdparty/mysql/include/my_pthread.h b/3rdparty/mysql/include/my_pthread.h new file mode 100644 index 000000000..202e047dc --- /dev/null +++ b/3rdparty/mysql/include/my_pthread.h @@ -0,0 +1,717 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* Defines to make different thread packages compatible */ + +#ifndef _my_pthread_h +#define _my_pthread_h + +#include +#ifndef ETIME +#define ETIME ETIMEDOUT /* For FreeBSD */ +#endif + +#ifdef __cplusplus +#define EXTERNC extern "C" +extern "C" { +#else +#define EXTERNC +#endif /* __cplusplus */ + +#if defined(__WIN__) || defined(OS2) + +#ifdef OS2 +typedef ULONG HANDLE; +typedef ULONG DWORD; +typedef int sigset_t; +#endif + +#ifdef OS2 +typedef HMTX pthread_mutex_t; +#else +typedef CRITICAL_SECTION pthread_mutex_t; +#endif +typedef HANDLE pthread_t; +typedef struct thread_attr { + DWORD dwStackSize ; + DWORD dwCreatingFlag ; + int priority ; +} pthread_attr_t ; + +typedef struct { int dummy; } pthread_condattr_t; + +/* Implementation of posix conditions */ + +typedef struct st_pthread_link { + DWORD thread_id; + struct st_pthread_link *next; +} pthread_link; + +typedef struct { + uint32 waiting; +#ifdef OS2 + HEV semaphore; +#else + HANDLE semaphore; +#endif +} pthread_cond_t; + + +#ifndef OS2 +struct timespec { /* For pthread_cond_timedwait() */ + time_t tv_sec; + long tv_nsec; +}; +#endif + +typedef int pthread_mutexattr_t; +#define win_pthread_self my_thread_var->pthread_self +#ifdef OS2 +#define pthread_handler_t EXTERNC void * _Optlink +typedef void * (_Optlink *pthread_handler)(void *); +#else +#define pthread_handler_t EXTERNC void * __cdecl +typedef void * (__cdecl *pthread_handler)(void *); +#endif + +void win_pthread_init(void); +int win_pthread_setspecific(void *A,void *B,uint length); +int pthread_create(pthread_t *,pthread_attr_t *,pthread_handler,void *); +int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr); +int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); +int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, + struct timespec *abstime); +int pthread_cond_signal(pthread_cond_t *cond); +int pthread_cond_broadcast(pthread_cond_t *cond); +int pthread_cond_destroy(pthread_cond_t *cond); +int pthread_attr_init(pthread_attr_t *connect_att); +int pthread_attr_setstacksize(pthread_attr_t *connect_att,DWORD stack); +int pthread_attr_setprio(pthread_attr_t *connect_att,int priority); +int pthread_attr_destroy(pthread_attr_t *connect_att); +struct tm *localtime_r(const time_t *timep,struct tm *tmp); +struct tm *gmtime_r(const time_t *timep,struct tm *tmp); + + +void pthread_exit(void *a); /* was #define pthread_exit(A) ExitThread(A)*/ + +#ifndef OS2 +#define ETIMEDOUT 145 /* Win32 doesn't have this */ +#define getpid() GetCurrentThreadId() +#endif +#define pthread_self() win_pthread_self +#define HAVE_LOCALTIME_R 1 +#define _REENTRANT 1 +#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 + +#ifdef USE_TLS /* For LIBMYSQL.DLL */ +#undef SAFE_MUTEX /* This will cause conflicts */ +#define pthread_key(T,V) DWORD V +#define pthread_key_create(A,B) ((*A=TlsAlloc())==0xFFFFFFFF) +#define pthread_key_delete(A) TlsFree(A) +#define pthread_getspecific(A) (TlsGetValue(A)) +#define my_pthread_getspecific(T,A) ((T) TlsGetValue(A)) +#define my_pthread_getspecific_ptr(T,V) ((T) TlsGetValue(V)) +#define my_pthread_setspecific_ptr(T,V) (!TlsSetValue((T),(V))) +#define pthread_setspecific(A,B) (!TlsSetValue((A),(B))) +#else +#define pthread_key(T,V) __declspec(thread) T V +#define pthread_key_create(A,B) pthread_dummy(0) +#define pthread_key_delete(A) pthread_dummy(0) +#define pthread_getspecific(A) (&(A)) +#define my_pthread_getspecific(T,A) (&(A)) +#define my_pthread_getspecific_ptr(T,V) (V) +#define my_pthread_setspecific_ptr(T,V) ((T)=(V),0) +#define pthread_setspecific(A,B) win_pthread_setspecific(&(A),(B),sizeof(A)) +#endif /* USE_TLS */ + +#define pthread_equal(A,B) ((A) == (B)) +#ifdef OS2 +extern int pthread_mutex_init (pthread_mutex_t *, const pthread_mutexattr_t *); +extern int pthread_mutex_lock (pthread_mutex_t *); +extern int pthread_mutex_unlock (pthread_mutex_t *); +extern int pthread_mutex_destroy (pthread_mutex_t *); +#define my_pthread_setprio(A,B) DosSetPriority(PRTYS_THREAD,PRTYC_NOCHANGE, B, A) +#define pthread_kill(A,B) raise(B) +#define pthread_exit(A) pthread_dummy() +#else +#define pthread_mutex_init(A,B) (InitializeCriticalSection(A),0) +#define pthread_mutex_lock(A) (EnterCriticalSection(A),0) +#define pthread_mutex_trylock(A) (WaitForSingleObject((A), 0) == WAIT_TIMEOUT) +#define pthread_mutex_unlock(A) LeaveCriticalSection(A) +#define pthread_mutex_destroy(A) DeleteCriticalSection(A) +#define my_pthread_setprio(A,B) SetThreadPriority(GetCurrentThread(), (B)) +#define pthread_kill(A,B) pthread_dummy(0) +#endif /* OS2 */ + +/* Dummy defines for easier code */ +#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) +#define my_pthread_attr_setprio(A,B) pthread_attr_setprio(A,B) +#define pthread_attr_setscope(A,B) +#define pthread_detach_this_thread() +#define pthread_condattr_init(A) +#define pthread_condattr_destroy(A) + +/*Irena: compiler does not like this: */ +/*#define my_pthread_getprio(pthread_t thread_id) pthread_dummy(0) */ +#define my_pthread_getprio(thread_id) pthread_dummy(0) + +#elif defined(HAVE_UNIXWARE7_THREADS) + +#include +#include + +#ifndef _REENTRANT +#define _REENTRANT +#endif + +#define HAVE_NONPOSIX_SIGWAIT +#define pthread_t thread_t +#define pthread_cond_t cond_t +#define pthread_mutex_t mutex_t +#define pthread_key_t thread_key_t +typedef int pthread_attr_t; /* Needed by Unixware 7.0.0 */ + +#define pthread_key_create(A,B) thr_keycreate((A),(B)) +#define pthread_key_delete(A) thr_keydelete(A) + +#define pthread_handler_t EXTERNC void * +#define pthread_key(T,V) pthread_key_t V + +void * my_pthread_getspecific_imp(pthread_key_t key); +#define my_pthread_getspecific(A,B) ((A) my_pthread_getspecific_imp(B)) +#define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,V) + +#define pthread_setspecific(A,B) thr_setspecific(A,B) +#define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,V) + +#define pthread_create(A,B,C,D) thr_create(NULL,65536L,(C),(D),THR_DETACHED,(A)) +#define pthread_cond_init(a,b) cond_init((a),USYNC_THREAD,NULL) +#define pthread_cond_destroy(a) cond_destroy(a) +#define pthread_cond_signal(a) cond_signal(a) +#define pthread_cond_wait(a,b) cond_wait((a),(b)) +#define pthread_cond_timedwait(a,b,c) cond_timedwait((a),(b),(c)) +#define pthread_cond_broadcast(a) cond_broadcast(a) + +#define pthread_mutex_init(a,b) mutex_init((a),USYNC_THREAD,NULL) +#define pthread_mutex_lock(a) mutex_lock(a) +#define pthread_mutex_unlock(a) mutex_unlock(a) +#define pthread_mutex_destroy(a) mutex_destroy(a) + +#define pthread_self() thr_self() +#define pthread_exit(A) thr_exit(A) +#define pthread_equal(A,B) (((A) == (B)) ? 1 : 0) +#define pthread_kill(A,B) thr_kill((A),(B)) +#define HAVE_PTHREAD_KILL + +#define pthread_sigmask(A,B,C) thr_sigsetmask((A),(B),(C)) + +extern int my_sigwait(const sigset_t *set,int *sig); + +#define pthread_detach_this_thread() pthread_dummy(0) + +#define pthread_attr_init(A) pthread_dummy(0) +#define pthread_attr_destroy(A) pthread_dummy(0) +#define pthread_attr_setscope(A,B) pthread_dummy(0) +#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) +#define my_pthread_setprio(A,B) pthread_dummy (0) +#define my_pthread_getprio(A) pthread_dummy (0) +#define my_pthread_attr_setprio(A,B) pthread_dummy(0) + +#else /* Normal threads */ + +#ifdef HAVE_rts_threads +#define sigwait org_sigwait +#include +#undef sigwait +#endif +#include +#ifndef _REENTRANT +#define _REENTRANT +#endif +#ifdef HAVE_THR_SETCONCURRENCY +#include /* Probably solaris */ +#endif +#ifdef HAVE_SCHED_H +#include +#endif +#ifdef HAVE_SYNCH_H +#include +#endif +#if defined(__EMX__) && (!defined(EMX_PTHREAD_REV) || (EMX_PTHREAD_REV < 2)) +#error Requires at least rev 2 of EMX pthreads library. +#endif + +#ifdef __NETWARE__ +void my_pthread_exit(void *status); +#define pthread_exit(A) my_pthread_exit(A) +#endif + +extern int my_pthread_getprio(pthread_t thread_id); + +#define pthread_key(T,V) pthread_key_t V +#define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,(V)) +#define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,(void*) (V)) +#define pthread_detach_this_thread() +#define pthread_handler_t EXTERNC void * +typedef void *(* pthread_handler)(void *); + +/* Test first for RTS or FSU threads */ + +#if defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) +#define HAVE_rts_threads +extern int my_pthread_create_detached; +#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) +#define PTHREAD_CREATE_DETACHED &my_pthread_create_detached +#define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_GLOBAL +#define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_LOCAL +#define USE_ALARM_THREAD +#elif defined(HAVE_mit_thread) +#define USE_ALARM_THREAD +#undef HAVE_LOCALTIME_R +#define HAVE_LOCALTIME_R +#undef HAVE_GMTIME_R +#define HAVE_GMTIME_R +#undef HAVE_PTHREAD_ATTR_SETSCOPE +#define HAVE_PTHREAD_ATTR_SETSCOPE +#undef HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE /* If we are running linux */ +#undef HAVE_RWLOCK_T +#undef HAVE_RWLOCK_INIT +#undef HAVE_PTHREAD_RWLOCK_RDLOCK +#undef HAVE_SNPRINTF + +#define my_pthread_attr_setprio(A,B) +#endif /* defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) */ + +#if defined(_BSDI_VERSION) && _BSDI_VERSION < 199910 +int sigwait(sigset_t *set, int *sig); +#endif + +#ifndef HAVE_NONPOSIX_SIGWAIT +#define my_sigwait(A,B) sigwait((A),(B)) +#else +int my_sigwait(const sigset_t *set,int *sig); +#endif + +#ifdef HAVE_NONPOSIX_PTHREAD_MUTEX_INIT +#ifndef SAFE_MUTEX +#define pthread_mutex_init(a,b) my_pthread_mutex_init((a),(b)) +extern int my_pthread_mutex_init(pthread_mutex_t *mp, + const pthread_mutexattr_t *attr); +#endif /* SAFE_MUTEX */ +#define pthread_cond_init(a,b) my_pthread_cond_init((a),(b)) +extern int my_pthread_cond_init(pthread_cond_t *mp, + const pthread_condattr_t *attr); +#endif /* HAVE_NONPOSIX_PTHREAD_MUTEX_INIT */ + +#if defined(HAVE_SIGTHREADMASK) && !defined(HAVE_PTHREAD_SIGMASK) +#define pthread_sigmask(A,B,C) sigthreadmask((A),(B),(C)) +#endif + +#if !defined(HAVE_SIGWAIT) && !defined(HAVE_mit_thread) && !defined(HAVE_rts_threads) && !defined(sigwait) && !defined(alpha_linux_port) && !defined(HAVE_NONPOSIX_SIGWAIT) && !defined(HAVE_DEC_3_2_THREADS) && !defined(_AIX) +int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */ +#endif + + +/* + We define my_sigset() and use that instead of the system sigset() so that + we can favor an implementation based on sigaction(). On some systems, such + as Mac OS X, sigset() results in flags such as SA_RESTART being set, and + we want to make sure that no such flags are set. +*/ +#if defined(HAVE_SIGACTION) && !defined(my_sigset) +#define my_sigset(A,B) do { struct sigaction s; sigset_t set; \ + sigemptyset(&set); \ + s.sa_handler = (B); \ + s.sa_mask = set; \ + s.sa_flags = 0; \ + sigaction((A), &s, (struct sigaction *) NULL); \ + } while (0) +#elif defined(HAVE_SIGSET) && !defined(my_sigset) +#define my_sigset(A,B) sigset((A),(B)) +#elif !defined(my_sigset) +#define my_sigset(A,B) signal((A),(B)) +#endif + +#ifndef my_pthread_setprio +#if defined(HAVE_PTHREAD_SETPRIO_NP) /* FSU threads */ +#define my_pthread_setprio(A,B) pthread_setprio_np((A),(B)) +#elif defined(HAVE_PTHREAD_SETPRIO) +#define my_pthread_setprio(A,B) pthread_setprio((A),(B)) +#else +extern void my_pthread_setprio(pthread_t thread_id,int prior); +#endif +#endif + +#ifndef my_pthread_attr_setprio +#ifdef HAVE_PTHREAD_ATTR_SETPRIO +#define my_pthread_attr_setprio(A,B) pthread_attr_setprio((A),(B)) +#else +extern void my_pthread_attr_setprio(pthread_attr_t *attr, int priority); +#endif +#endif + +#if !defined(HAVE_PTHREAD_ATTR_SETSCOPE) || defined(HAVE_DEC_3_2_THREADS) +#define pthread_attr_setscope(A,B) +#undef HAVE_GETHOSTBYADDR_R /* No definition */ +#endif + +#if defined(HAVE_BROKEN_PTHREAD_COND_TIMEDWAIT) && !defined(SAFE_MUTEX) +extern int my_pthread_cond_timedwait(pthread_cond_t *cond, + pthread_mutex_t *mutex, + struct timespec *abstime); +#define pthread_cond_timedwait(A,B,C) my_pthread_cond_timedwait((A),(B),(C)) +#endif + +#if defined(OS2) +#define my_pthread_getspecific(T,A) ((T) &(A)) +#define pthread_setspecific(A,B) win_pthread_setspecific(&(A),(B),sizeof(A)) +#elif !defined( HAVE_NONPOSIX_PTHREAD_GETSPECIFIC) +#define my_pthread_getspecific(A,B) ((A) pthread_getspecific(B)) +#else +#define my_pthread_getspecific(A,B) ((A) my_pthread_getspecific_imp(B)) +void *my_pthread_getspecific_imp(pthread_key_t key); +#endif /* OS2 */ + +#ifndef HAVE_LOCALTIME_R +struct tm *localtime_r(const time_t *clock, struct tm *res); +#endif + +#ifndef HAVE_GMTIME_R +struct tm *gmtime_r(const time_t *clock, struct tm *res); +#endif + +#ifdef HAVE_PTHREAD_CONDATTR_CREATE +/* DCE threads on HPUX 10.20 */ +#define pthread_condattr_init pthread_condattr_create +#define pthread_condattr_destroy pthread_condattr_delete +#endif + +/* FSU THREADS */ +#if !defined(HAVE_PTHREAD_KEY_DELETE) && !defined(pthread_key_delete) +#define pthread_key_delete(A) pthread_dummy(0) +#endif + +#ifdef HAVE_CTHREADS_WRAPPER /* For MacOSX */ +#define pthread_cond_destroy(A) pthread_dummy(0) +#define pthread_mutex_destroy(A) pthread_dummy(0) +#define pthread_attr_delete(A) pthread_dummy(0) +#define pthread_condattr_delete(A) pthread_dummy(0) +#define pthread_attr_setstacksize(A,B) pthread_dummy(0) +#define pthread_equal(A,B) ((A) == (B)) +#define pthread_cond_timedwait(a,b,c) pthread_cond_wait((a),(b)) +#define pthread_attr_init(A) pthread_attr_create(A) +#define pthread_attr_destroy(A) pthread_attr_delete(A) +#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) +#define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D)) +#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) +#define pthread_kill(A,B) pthread_dummy(0) +#undef pthread_detach_this_thread +#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); } +#endif + +#ifdef HAVE_DARWIN5_THREADS +#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) +#define pthread_kill(A,B) pthread_dummy(0) +#define pthread_condattr_init(A) pthread_dummy(0) +#define pthread_condattr_destroy(A) pthread_dummy(0) +#undef pthread_detach_this_thread +#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(tmp); } +#endif + +#if ((defined(HAVE_PTHREAD_ATTR_CREATE) && !defined(HAVE_SIGWAIT)) || defined(HAVE_DEC_3_2_THREADS)) && !defined(HAVE_CTHREADS_WRAPPER) +/* This is set on AIX_3_2 and Siemens unix (and DEC OSF/1 3.2 too) */ +#define pthread_key_create(A,B) \ + pthread_keycreate(A,(B) ?\ + (pthread_destructor_t) (B) :\ + (pthread_destructor_t) pthread_dummy) +#define pthread_attr_init(A) pthread_attr_create(A) +#define pthread_attr_destroy(A) pthread_attr_delete(A) +#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) +#define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D)) +#ifndef pthread_sigmask +#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) +#endif +#define pthread_kill(A,B) pthread_dummy(0) +#undef pthread_detach_this_thread +#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); } +#elif !defined(__NETWARE__) /* HAVE_PTHREAD_ATTR_CREATE && !HAVE_SIGWAIT */ +#define HAVE_PTHREAD_KILL +#endif + +#endif /* defined(__WIN__) */ + +#if defined(HPUX10) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS) +#undef pthread_cond_timedwait +#define pthread_cond_timedwait(a,b,c) my_pthread_cond_timedwait((a),(b),(c)) +int my_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, + struct timespec *abstime); +#endif + +#if defined(HPUX10) +#define pthread_attr_getstacksize(A,B) my_pthread_attr_getstacksize(A,B) +void my_pthread_attr_getstacksize(pthread_attr_t *attrib, size_t *size); +#endif + +#if defined(HAVE_POSIX1003_4a_MUTEX) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS) +#undef pthread_mutex_trylock +#define pthread_mutex_trylock(a) my_pthread_mutex_trylock((a)) +int my_pthread_mutex_trylock(pthread_mutex_t *mutex); +#endif + + /* safe_mutex adds checking to mutex for easier debugging */ + +#if defined(__NETWARE__) && !defined(SAFE_MUTEX_DETECT_DESTROY) +#define SAFE_MUTEX_DETECT_DESTROY +#endif + +typedef struct st_safe_mutex_t +{ + pthread_mutex_t global,mutex; + const char *file; + uint line,count; + pthread_t thread; +#ifdef SAFE_MUTEX_DETECT_DESTROY + struct st_safe_mutex_info_t *info; /* to track destroying of mutexes */ +#endif +} safe_mutex_t; + +#ifdef SAFE_MUTEX_DETECT_DESTROY +/* + Used to track the destroying of mutexes. This needs to be a seperate + structure because the safe_mutex_t structure could be freed before + the mutexes are destroyed. +*/ + +typedef struct st_safe_mutex_info_t +{ + struct st_safe_mutex_info_t *next; + struct st_safe_mutex_info_t *prev; + const char *init_file; + uint32 init_line; +} safe_mutex_info_t; +#endif /* SAFE_MUTEX_DETECT_DESTROY */ + +int safe_mutex_init(safe_mutex_t *mp, const pthread_mutexattr_t *attr, + const char *file, uint line); +int safe_mutex_lock(safe_mutex_t *mp,const char *file, uint line); +int safe_mutex_unlock(safe_mutex_t *mp,const char *file, uint line); +int safe_mutex_destroy(safe_mutex_t *mp,const char *file, uint line); +int safe_cond_wait(pthread_cond_t *cond, safe_mutex_t *mp,const char *file, + uint line); +int safe_cond_timedwait(pthread_cond_t *cond, safe_mutex_t *mp, + struct timespec *abstime, const char *file, uint line); +void safe_mutex_global_init(void); +void safe_mutex_end(FILE *file); + + /* Wrappers if safe mutex is actually used */ +#ifdef SAFE_MUTEX +#undef pthread_mutex_init +#undef pthread_mutex_lock +#undef pthread_mutex_unlock +#undef pthread_mutex_destroy +#undef pthread_mutex_wait +#undef pthread_mutex_timedwait +#undef pthread_mutex_t +#undef pthread_cond_wait +#undef pthread_cond_timedwait +#undef pthread_mutex_trylock +#define pthread_mutex_init(A,B) safe_mutex_init((A),(B),__FILE__,__LINE__) +#define pthread_mutex_lock(A) safe_mutex_lock((A),__FILE__,__LINE__) +#define pthread_mutex_unlock(A) safe_mutex_unlock((A),__FILE__,__LINE__) +#define pthread_mutex_destroy(A) safe_mutex_destroy((A),__FILE__,__LINE__) +#define pthread_cond_wait(A,B) safe_cond_wait((A),(B),__FILE__,__LINE__) +#define pthread_cond_timedwait(A,B,C) safe_cond_timedwait((A),(B),(C),__FILE__,__LINE__) +#define pthread_mutex_trylock(A) pthread_mutex_lock(A) +#define pthread_mutex_t safe_mutex_t +#define safe_mutex_assert_owner(mp) \ + DBUG_ASSERT((mp)->count > 0 && \ + pthread_equal(pthread_self(), (mp)->thread)) +#define safe_mutex_assert_not_owner(mp) \ + DBUG_ASSERT(! (mp)->count || \ + ! pthread_equal(pthread_self(), (mp)->thread)) +#else +#define safe_mutex_assert_owner(mp) +#define safe_mutex_assert_not_owner(mp) +#endif /* SAFE_MUTEX */ + + /* READ-WRITE thread locking */ + +#ifdef HAVE_BROKEN_RWLOCK /* For OpenUnix */ +#undef HAVE_PTHREAD_RWLOCK_RDLOCK +#undef HAVE_RWLOCK_INIT +#undef HAVE_RWLOCK_T +#endif + +#if defined(USE_MUTEX_INSTEAD_OF_RW_LOCKS) +/* use these defs for simple mutex locking */ +#define rw_lock_t pthread_mutex_t +#define my_rwlock_init(A,B) pthread_mutex_init((A),(B)) +#define rw_rdlock(A) pthread_mutex_lock((A)) +#define rw_wrlock(A) pthread_mutex_lock((A)) +#define rw_tryrdlock(A) pthread_mutex_trylock((A)) +#define rw_trywrlock(A) pthread_mutex_trylock((A)) +#define rw_unlock(A) pthread_mutex_unlock((A)) +#define rwlock_destroy(A) pthread_mutex_destroy((A)) +#elif defined(HAVE_PTHREAD_RWLOCK_RDLOCK) +#define rw_lock_t pthread_rwlock_t +#define my_rwlock_init(A,B) pthread_rwlock_init((A),(B)) +#define rw_rdlock(A) pthread_rwlock_rdlock(A) +#define rw_wrlock(A) pthread_rwlock_wrlock(A) +#define rw_tryrdlock(A) pthread_rwlock_tryrdlock((A)) +#define rw_trywrlock(A) pthread_rwlock_trywrlock((A)) +#define rw_unlock(A) pthread_rwlock_unlock(A) +#define rwlock_destroy(A) pthread_rwlock_destroy(A) +#elif defined(HAVE_RWLOCK_INIT) +#ifdef HAVE_RWLOCK_T /* For example Solaris 2.6-> */ +#define rw_lock_t rwlock_t +#endif +#define my_rwlock_init(A,B) rwlock_init((A),USYNC_THREAD,0) +#else +/* Use our own version of read/write locks */ +typedef struct _my_rw_lock_t { + pthread_mutex_t lock; /* lock for structure */ + pthread_cond_t readers; /* waiting readers */ + pthread_cond_t writers; /* waiting writers */ + int state; /* -1:writer,0:free,>0:readers */ + int waiters; /* number of waiting writers */ +} my_rw_lock_t; + +#define rw_lock_t my_rw_lock_t +#define rw_rdlock(A) my_rw_rdlock((A)) +#define rw_wrlock(A) my_rw_wrlock((A)) +#define rw_tryrdlock(A) my_rw_tryrdlock((A)) +#define rw_trywrlock(A) my_rw_trywrlock((A)) +#define rw_unlock(A) my_rw_unlock((A)) +#define rwlock_destroy(A) my_rwlock_destroy((A)) + +extern int my_rwlock_init(my_rw_lock_t *, void *); +extern int my_rwlock_destroy(my_rw_lock_t *); +extern int my_rw_rdlock(my_rw_lock_t *); +extern int my_rw_wrlock(my_rw_lock_t *); +extern int my_rw_unlock(my_rw_lock_t *); +extern int my_rw_tryrdlock(my_rw_lock_t *); +extern int my_rw_trywrlock(my_rw_lock_t *); +#endif /* USE_MUTEX_INSTEAD_OF_RW_LOCKS */ + +#define GETHOSTBYADDR_BUFF_SIZE 2048 + +#ifndef HAVE_THR_SETCONCURRENCY +#define thr_setconcurrency(A) pthread_dummy(0) +#endif +#if !defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && ! defined(pthread_attr_setstacksize) +#define pthread_attr_setstacksize(A,B) pthread_dummy(0) +#endif + +/* Define mutex types, see my_thr_init.c */ +#define MY_MUTEX_INIT_SLOW NULL +#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP +extern pthread_mutexattr_t my_fast_mutexattr; +#define MY_MUTEX_INIT_FAST &my_fast_mutexattr +#else +#define MY_MUTEX_INIT_FAST NULL +#endif +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +extern pthread_mutexattr_t my_errorcheck_mutexattr; +#define MY_MUTEX_INIT_ERRCHK &my_errorcheck_mutexattr +#else +#define MY_MUTEX_INIT_ERRCHK NULL +#endif + +extern my_bool my_thread_global_init(void); +extern void my_thread_global_end(void); +extern my_bool my_thread_init(void); +extern void my_thread_end(void); +extern const char *my_thread_name(void); +extern long my_thread_id(void); +extern int pthread_no_free(void *); +extern int pthread_dummy(int); + +/* All thread specific variables are in the following struct */ + +#define THREAD_NAME_SIZE 10 +#ifndef DEFAULT_THREAD_STACK +#if SIZEOF_CHARP > 4 +/* + MySQL can survive with 32K, but some glibc libraries require > 128K stack + To resolve hostnames. Also recursive stored procedures needs stack. +*/ +#define DEFAULT_THREAD_STACK (256*1024L) +#else +#define DEFAULT_THREAD_STACK (192*1024) +#endif +#endif + +struct st_my_thread_var +{ + int thr_errno; + pthread_cond_t suspend; + pthread_mutex_t mutex; + pthread_mutex_t * volatile current_mutex; + pthread_cond_t * volatile current_cond; + pthread_t pthread_self; + long id; + int cmp_length; + int volatile abort; + my_bool init; + struct st_my_thread_var *next,**prev; + void *opt_info; +#ifndef DBUG_OFF + gptr dbug; + char name[THREAD_NAME_SIZE+1]; +#endif +}; + +extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const)); +#define my_thread_var (_my_thread_var()) +#define my_errno my_thread_var->thr_errno +/* + Keep track of shutdown,signal, and main threads so that my_end() will not + report errors with them +*/ +extern pthread_t shutdown_th, main_th, signal_th; + + /* statistics_xxx functions are for not essential statistic */ + +#ifndef thread_safe_increment +#ifdef HAVE_ATOMIC_ADD +#define thread_safe_increment(V,L) atomic_inc((atomic_t*) &V) +#define thread_safe_decrement(V,L) atomic_dec((atomic_t*) &V) +#define thread_safe_add(V,C,L) atomic_add((C),(atomic_t*) &V) +#define thread_safe_sub(V,C,L) atomic_sub((C),(atomic_t*) &V) +#else +#define thread_safe_increment(V,L) \ + (pthread_mutex_lock((L)), (V)++, pthread_mutex_unlock((L))) +#define thread_safe_decrement(V,L) \ + (pthread_mutex_lock((L)), (V)--, pthread_mutex_unlock((L))) +#define thread_safe_add(V,C,L) (pthread_mutex_lock((L)), (V)+=(C), pthread_mutex_unlock((L))) +#define thread_safe_sub(V,C,L) \ + (pthread_mutex_lock((L)), (V)-=(C), pthread_mutex_unlock((L))) +#endif /* HAVE_ATOMIC_ADD */ +#ifdef SAFE_STATISTICS +#define statistic_increment(V,L) thread_safe_increment((V),(L)) +#define statistic_decrement(V,L) thread_safe_decrement((V),(L)) +#define statistic_add(V,C,L) thread_safe_add((V),(C),(L)) +#else +#define statistic_decrement(V,L) (V)-- +#define statistic_increment(V,L) (V)++ +#define statistic_add(V,C,L) (V)+=(C) +#endif /* SAFE_STATISTICS */ +#endif /* thread_safe_increment */ + +#ifdef __cplusplus +} +#endif +#endif /* _my_ptread_h */ diff --git a/3rdparty/mysql/include/my_sys.h b/3rdparty/mysql/include/my_sys.h new file mode 100644 index 000000000..44fe383bf --- /dev/null +++ b/3rdparty/mysql/include/my_sys.h @@ -0,0 +1,904 @@ +/* Copyright (C) 2000-2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef _my_sys_h +#define _my_sys_h +C_MODE_START + +#ifdef HAVE_AIOWAIT +#include /* Used by record-cache */ +typedef struct my_aio_result { + aio_result_t result; + int pending; +} my_aio_result; +#endif + +#ifndef THREAD +extern int NEAR my_errno; /* Last error in mysys */ +#else +#include +#endif + +#ifndef _m_ctype_h +#include /* for CHARSET_INFO */ +#endif + +#include +#include + +#define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curses; mysys_uses_curses=1; } +#define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_no_curses; mysys_uses_curses=0;} +#define MY_INIT(name); { my_progname= name; my_init(); } + +#define ERRMSGSIZE (SC_MAXWIDTH) /* Max length of a error message */ +#define NRERRBUFFS (2) /* Buffers for parameters */ +#define MY_FILE_ERROR ((uint) ~0) + + /* General bitmaps for my_func's */ +#define MY_FFNF 1 /* Fatal if file not found */ +#define MY_FNABP 2 /* Fatal if not all bytes read/writen */ +#define MY_NABP 4 /* Error if not all bytes read/writen */ +#define MY_FAE 8 /* Fatal if any error */ +#define MY_WME 16 /* Write message on error */ +#define MY_WAIT_IF_FULL 32 /* Wait and try again if disk full error */ +#define MY_IGNORE_BADFD 32 /* my_sync: ignore 'bad descriptor' errors */ +#define MY_RAID 64 /* Support for RAID */ +#define MY_FULL_IO 512 /* For my_read - loop intil I/O is complete */ +#define MY_DONT_CHECK_FILESIZE 128 /* Option to init_io_cache() */ +#define MY_LINK_WARNING 32 /* my_redel() gives warning if links */ +#define MY_COPYTIME 64 /* my_redel() copys time */ +#define MY_DELETE_OLD 256 /* my_create_with_symlink() */ +#define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */ +#define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */ +#define MY_REDEL_MAKE_BACKUP 256 +#define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */ +#define MY_DONT_WAIT 64 /* my_lock() don't wait if can't lock */ +#define MY_ZEROFILL 32 /* my_malloc(), fill array with zero */ +#define MY_ALLOW_ZERO_PTR 64 /* my_realloc() ; zero ptr -> malloc */ +#define MY_FREE_ON_ERROR 128 /* my_realloc() ; Free old ptr on error */ +#define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */ +#define MY_THREADSAFE 128 /* pread/pwrite: Don't allow interrupts */ +#define MY_DONT_OVERWRITE_FILE 1024 /* my_copy: Don't overwrite file */ + +#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */ +#define MY_GIVE_INFO 2 /* Give time info about process*/ + +#define ME_HIGHBYTE 8 /* Shift for colours */ +#define ME_NOCUR 1 /* Don't use curses message */ +#define ME_OLDWIN 2 /* Use old window */ +#define ME_BELL 4 /* Ring bell then printing message */ +#define ME_HOLDTANG 8 /* Don't delete last keys */ +#define ME_WAITTOT 16 /* Wait for errtime secs of for a action */ +#define ME_WAITTANG 32 /* Wait for a user action */ +#define ME_NOREFRESH 64 /* Dont refresh screen */ +#define ME_NOINPUT 128 /* Dont use the input libary */ +#define ME_COLOUR1 ((1 << ME_HIGHBYTE)) /* Possibly error-colours */ +#define ME_COLOUR2 ((2 << ME_HIGHBYTE)) +#define ME_COLOUR3 ((3 << ME_HIGHBYTE)) + + /* Bits in last argument to fn_format */ +#define MY_REPLACE_DIR 1 /* replace dir in name with 'dir' */ +#define MY_REPLACE_EXT 2 /* replace extension with 'ext' */ +#define MY_UNPACK_FILENAME 4 /* Unpack name (~ -> home) */ +#define MY_PACK_FILENAME 8 /* Pack name (home -> ~) */ +#define MY_RESOLVE_SYMLINKS 16 /* Resolve all symbolic links */ +#define MY_RETURN_REAL_PATH 32 /* return full path for file */ +#define MY_SAFE_PATH 64 /* Return NULL if too long path */ +#define MY_RELATIVE_PATH 128 /* name is relative to 'dir' */ + + /* My seek flags */ +#define MY_SEEK_SET 0 +#define MY_SEEK_CUR 1 +#define MY_SEEK_END 2 + + /* Some constants */ +#define MY_WAIT_FOR_USER_TO_FIX_PANIC 60 /* in seconds */ +#define MY_WAIT_GIVE_USER_A_MESSAGE 10 /* Every 10 times of prev */ +#define MIN_COMPRESS_LENGTH 50 /* Don't compress small bl. */ +#define DFLT_INIT_HITS 3 + + /* root_alloc flags */ +#define MY_KEEP_PREALLOC 1 +#define MY_MARK_BLOCKS_FREE 2 /* move used to free list and reuse them */ + + /* Internal error numbers (for assembler functions) */ +#define MY_ERRNO_EDOM 33 +#define MY_ERRNO_ERANGE 34 + + /* Bits for get_date timeflag */ +#define GETDATE_DATE_TIME 1 +#define GETDATE_SHORT_DATE 2 +#define GETDATE_HHMMSSTIME 4 +#define GETDATE_GMT 8 +#define GETDATE_FIXEDLENGTH 16 + + /* defines when allocating data */ +#ifdef SAFEMALLOC +#define my_malloc(SZ,FLAG) _mymalloc((SZ), __FILE__, __LINE__, FLAG ) +#define my_malloc_ci(SZ,FLAG) _mymalloc((SZ), sFile, uLine, FLAG ) +#define my_realloc(PTR,SZ,FLAG) _myrealloc((PTR), (SZ), __FILE__, __LINE__, FLAG ) +#define my_checkmalloc() _sanity( __FILE__, __LINE__ ) +#define my_free(PTR,FLAG) _myfree((PTR), __FILE__, __LINE__,FLAG) +#define my_memdup(A,B,C) _my_memdup((A),(B), __FILE__,__LINE__,C) +#define my_strdup(A,C) _my_strdup((A), __FILE__,__LINE__,C) +#define my_strdup_with_length(A,B,C) _my_strdup_with_length((A),(B),__FILE__,__LINE__,C) +#define TRASH(A,B) bfill(A, B, 0x8F) +#define QUICK_SAFEMALLOC sf_malloc_quick=1 +#define NORMAL_SAFEMALLOC sf_malloc_quick=0 +extern uint sf_malloc_prehunc,sf_malloc_endhunc,sf_malloc_quick; +extern ulonglong sf_malloc_mem_limit; + +#define CALLER_INFO_PROTO , const char *sFile, uint uLine +#define CALLER_INFO , __FILE__, __LINE__ +#define ORIG_CALLER_INFO , sFile, uLine +#else +#define my_checkmalloc() +#undef TERMINATE +#define TERMINATE(A) {} +#define QUICK_SAFEMALLOC +#define NORMAL_SAFEMALLOC +extern gptr my_malloc(uint Size,myf MyFlags); +#define my_malloc_ci(SZ,FLAG) my_malloc( SZ, FLAG ) +extern gptr my_realloc(gptr oldpoint,uint Size,myf MyFlags); +extern void my_no_flags_free(gptr ptr); +extern gptr my_memdup(const byte *from,uint length,myf MyFlags); +extern char *my_strdup(const char *from,myf MyFlags); +extern char *my_strdup_with_length(const byte *from, uint length, + myf MyFlags); +/* we do use FG (as a no-op) in below so that a typo on FG is caught */ +#define my_free(PTR,FG) ((void)FG,my_no_flags_free(PTR)) +#define CALLER_INFO_PROTO /* nothing */ +#define CALLER_INFO /* nothing */ +#define ORIG_CALLER_INFO /* nothing */ +#define TRASH(A,B) /* nothing */ +#endif + +#ifdef HAVE_LARGE_PAGES +extern uint my_get_large_page_size(void); +extern gptr my_large_malloc(uint size, myf my_flags); +extern void my_large_free(gptr ptr, myf my_flags); +#else +#define my_get_large_page_size() (0) +#define my_large_malloc(A,B) my_malloc_lock((A),(B)) +#define my_large_free(A,B) my_free_lock((A),(B)) +#endif /* HAVE_LARGE_PAGES */ + +#ifdef HAVE_ALLOCA +#if defined(_AIX) && !defined(__GNUC__) && !defined(_AIX43) +#pragma alloca +#endif /* _AIX */ +#if defined(__MWERKS__) +#undef alloca +#define alloca _alloca +#endif /* __MWERKS__ */ +#if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && ! defined(alloca) +#define alloca __builtin_alloca +#endif /* GNUC */ +#define my_alloca(SZ) alloca((size_t) (SZ)) +#define my_afree(PTR) {} +#else +#define my_alloca(SZ) my_malloc(SZ,MYF(0)) +#define my_afree(PTR) my_free(PTR,MYF(MY_WME)) +#endif /* HAVE_ALLOCA */ + +#ifdef MSDOS +#ifdef __ZTC__ +void * __CDECL halloc(long count,size_t length); +void __CDECL hfree(void *ptr); +#endif +#if defined(USE_HALLOC) +#if defined(_VCM_) || defined(M_IC80386) +#undef USE_HALLOC +#endif +#endif +#ifdef USE_HALLOC +#define malloc(a) halloc((long) (a),1) +#define free(a) hfree(a) +#endif +#endif /* MSDOS */ + +#ifndef errno /* did we already get it? */ +#ifdef HAVE_ERRNO_AS_DEFINE +#include /* errno is a define */ +#else +extern int errno; /* declare errno */ +#endif +#endif /* #ifndef errno */ +extern char NEAR errbuff[NRERRBUFFS][ERRMSGSIZE]; +extern char *home_dir; /* Home directory for user */ +extern const char *my_progname; /* program-name (printed in errors) */ +extern char NEAR curr_dir[]; /* Current directory for user */ +extern int (*error_handler_hook)(uint my_err, const char *str,myf MyFlags); +extern int (*fatal_error_handler_hook)(uint my_err, const char *str, + myf MyFlags); +extern uint my_file_limit; + +#ifdef HAVE_LARGE_PAGES +extern my_bool my_use_large_pages; +extern uint my_large_page_size; +#endif + +/* charsets */ +extern CHARSET_INFO *default_charset_info; +extern CHARSET_INFO *all_charsets[256]; +extern CHARSET_INFO compiled_charsets[]; + +/* statistics */ +extern ulong my_file_opened,my_stream_opened, my_tmp_file_created; +extern uint mysys_usage_id; +extern my_bool my_init_done; + + /* Point to current my_message() */ +extern void (*my_sigtstp_cleanup)(void), + /* Executed before jump to shell */ + (*my_sigtstp_restart)(void), + (*my_abort_hook)(int); + /* Executed when comming from shell */ +extern int NEAR my_umask, /* Default creation mask */ + NEAR my_umask_dir, + NEAR my_recived_signals, /* Signals we have got */ + NEAR my_safe_to_handle_signal, /* Set when allowed to SIGTSTP */ + NEAR my_dont_interrupt; /* call remember_intr when set */ +extern my_bool NEAR mysys_uses_curses, my_use_symdir; +extern ulong sf_malloc_cur_memory, sf_malloc_max_memory; + +extern ulong my_default_record_cache_size; +extern my_bool NEAR my_disable_locking,NEAR my_disable_async_io, + NEAR my_disable_flush_key_blocks, NEAR my_disable_symlinks; +extern char wild_many,wild_one,wild_prefix; +extern const char *charsets_dir; +extern char *defaults_extra_file; +extern const char *defaults_group_suffix; +extern const char *defaults_file; + +extern my_bool timed_mutexes; + +typedef struct wild_file_pack /* Struct to hold info when selecting files */ +{ + uint wilds; /* How many wildcards */ + uint not_pos; /* Start of not-theese-files */ + my_string *wild; /* Pointer to wildcards */ +} WF_PACK; + +enum loglevel { + ERROR_LEVEL, + WARNING_LEVEL, + INFORMATION_LEVEL +}; + +enum cache_type +{ + TYPE_NOT_SET= 0, READ_CACHE, WRITE_CACHE, + SEQ_READ_APPEND /* sequential read or append */, + READ_FIFO, READ_NET,WRITE_NET}; + +enum flush_type +{ + FLUSH_KEEP, FLUSH_RELEASE, FLUSH_IGNORE_CHANGED, FLUSH_FORCE_WRITE +}; + +typedef struct st_record_cache /* Used when cacheing records */ +{ + File file; + int rc_seek,error,inited; + uint rc_length,read_length,reclength; + my_off_t rc_record_pos,end_of_file; + byte *rc_buff,*rc_buff2,*rc_pos,*rc_end,*rc_request_pos; +#ifdef HAVE_AIOWAIT + int use_async_io; + my_aio_result aio_result; +#endif + enum cache_type type; +} RECORD_CACHE; + +enum file_type +{ + UNOPEN = 0, FILE_BY_OPEN, FILE_BY_CREATE, STREAM_BY_FOPEN, STREAM_BY_FDOPEN, + FILE_BY_MKSTEMP, FILE_BY_DUP +}; + +struct st_my_file_info +{ + my_string name; + enum file_type type; +#if defined(THREAD) && !defined(HAVE_PREAD) + pthread_mutex_t mutex; +#endif +}; + +extern struct st_my_file_info *my_file_info; + +typedef struct st_my_tmpdir +{ + char **list; + uint cur, max; +#ifdef THREAD + pthread_mutex_t mutex; +#endif +} MY_TMPDIR; + +typedef struct st_dynamic_array +{ + char *buffer; + uint elements,max_element; + uint alloc_increment; + uint size_of_element; +} DYNAMIC_ARRAY; + +typedef struct st_dynamic_string +{ + char *str; + uint length,max_length,alloc_increment; +} DYNAMIC_STRING; + +struct st_io_cache; +typedef int (*IO_CACHE_CALLBACK)(struct st_io_cache*); + +#ifdef THREAD +typedef struct st_io_cache_share +{ + /* to sync on reads into buffer */ + pthread_mutex_t mutex; + pthread_cond_t cond; + int count, total; + /* actual IO_CACHE that filled the buffer */ + struct st_io_cache *active; +#ifdef NOT_YET_IMPLEMENTED + /* whether the structure should be free'd */ + my_bool alloced; +#endif +} IO_CACHE_SHARE; +#endif + +typedef struct st_io_cache /* Used when cacheing files */ +{ + /* Offset in file corresponding to the first byte of byte* buffer. */ + my_off_t pos_in_file; + /* + The offset of end of file for READ_CACHE and WRITE_CACHE. + For SEQ_READ_APPEND it the maximum of the actual end of file and + the position represented by read_end. + */ + my_off_t end_of_file; + /* Points to current read position in the buffer */ + byte *read_pos; + /* the non-inclusive boundary in the buffer for the currently valid read */ + byte *read_end; + byte *buffer; /* The read buffer */ + /* Used in ASYNC_IO */ + byte *request_pos; + + /* Only used in WRITE caches and in SEQ_READ_APPEND to buffer writes */ + byte *write_buffer; + /* + Only used in SEQ_READ_APPEND, and points to the current read position + in the write buffer. Note that reads in SEQ_READ_APPEND caches can + happen from both read buffer (byte* buffer) and write buffer + (byte* write_buffer). + */ + byte *append_read_pos; + /* Points to current write position in the write buffer */ + byte *write_pos; + /* The non-inclusive boundary of the valid write area */ + byte *write_end; + + /* + Current_pos and current_end are convenience variables used by + my_b_tell() and other routines that need to know the current offset + current_pos points to &write_pos, and current_end to &write_end in a + WRITE_CACHE, and &read_pos and &read_end respectively otherwise + */ + byte **current_pos, **current_end; +#ifdef THREAD + /* + The lock is for append buffer used in SEQ_READ_APPEND cache + need mutex copying from append buffer to read buffer. + */ + pthread_mutex_t append_buffer_lock; + /* + The following is used when several threads are reading the + same file in parallel. They are synchronized on disk + accesses reading the cached part of the file asynchronously. + It should be set to NULL to disable the feature. Only + READ_CACHE mode is supported. + */ + IO_CACHE_SHARE *share; +#endif + /* + A caller will use my_b_read() macro to read from the cache + if the data is already in cache, it will be simply copied with + memcpy() and internal variables will be accordinging updated with + no functions invoked. However, if the data is not fully in the cache, + my_b_read() will call read_function to fetch the data. read_function + must never be invoked directly. + */ + int (*read_function)(struct st_io_cache *,byte *,uint); + /* + Same idea as in the case of read_function, except my_b_write() needs to + be replaced with my_b_append() for a SEQ_READ_APPEND cache + */ + int (*write_function)(struct st_io_cache *,const byte *,uint); + /* + Specifies the type of the cache. Depending on the type of the cache + certain operations might not be available and yield unpredicatable + results. Details to be documented later + */ + enum cache_type type; + /* + Callbacks when the actual read I/O happens. These were added and + are currently used for binary logging of LOAD DATA INFILE - when a + block is read from the file, we create a block create/append event, and + when IO_CACHE is closed, we create an end event. These functions could, + of course be used for other things + */ + IO_CACHE_CALLBACK pre_read; + IO_CACHE_CALLBACK post_read; + IO_CACHE_CALLBACK pre_close; + /* + Counts the number of times, when we were forced to use disk. We use it to + increase the binlog_cache_disk_use status variable. + */ + ulong disk_writes; + void* arg; /* for use by pre/post_read */ + char *file_name; /* if used with 'open_cached_file' */ + char *dir,*prefix; + File file; /* file descriptor */ + /* + seek_not_done is set by my_b_seek() to inform the upcoming read/write + operation that a seek needs to be preformed prior to the actual I/O + error is 0 if the cache operation was successful, -1 if there was a + "hard" error, and the actual number of I/O-ed bytes if the read/write was + partial. + */ + int seek_not_done,error; + /* buffer_length is memory size allocated for buffer or write_buffer */ + uint buffer_length; + /* read_length is the same as buffer_length except when we use async io */ + uint read_length; + myf myflags; /* Flags used to my_read/my_write */ + /* + alloced_buffer is 1 if the buffer was allocated by init_io_cache() and + 0 if it was supplied by the user. + Currently READ_NET is the only one that will use a buffer allocated + somewhere else + */ + my_bool alloced_buffer; +#ifdef HAVE_AIOWAIT + /* + As inidicated by ifdef, this is for async I/O, which is not currently + used (because it's not reliable on all systems) + */ + uint inited; + my_off_t aio_read_pos; + my_aio_result aio_result; +#endif +} IO_CACHE; + +typedef int (*qsort2_cmp)(const void *, const void *, const void *); + + /* defines for mf_iocache */ + + /* Test if buffer is inited */ +#define my_b_clear(info) (info)->buffer=0 +#define my_b_inited(info) (info)->buffer +#define my_b_EOF INT_MIN + +#define my_b_read(info,Buffer,Count) \ + ((info)->read_pos + (Count) <= (info)->read_end ?\ + (memcpy(Buffer,(info)->read_pos,(size_t) (Count)), \ + ((info)->read_pos+=(Count)),0) :\ + (*(info)->read_function)((info),Buffer,Count)) + +#define my_b_write(info,Buffer,Count) \ + ((info)->write_pos + (Count) <=(info)->write_end ?\ + (memcpy((info)->write_pos, (Buffer), (size_t)(Count)),\ + ((info)->write_pos+=(Count)),0) : \ + (*(info)->write_function)((info),(Buffer),(Count))) + +#define my_b_get(info) \ + ((info)->read_pos != (info)->read_end ?\ + ((info)->read_pos++, (int) (uchar) (info)->read_pos[-1]) :\ + _my_b_get(info)) + + /* my_b_write_byte dosn't have any err-check */ +#define my_b_write_byte(info,chr) \ + (((info)->write_pos < (info)->write_end) ?\ + ((*(info)->write_pos++)=(chr)) :\ + (_my_b_write(info,0,0) , ((*(info)->write_pos++)=(chr)))) + +#define my_b_fill_cache(info) \ + (((info)->read_end=(info)->read_pos),(*(info)->read_function)(info,0,0)) + +#define my_b_tell(info) ((info)->pos_in_file + \ + (uint) (*(info)->current_pos - (info)->request_pos)) + +/* tell write offset in the SEQ_APPEND cache */ +my_off_t my_b_append_tell(IO_CACHE* info); +my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */ + +#define my_b_bytes_in_cache(info) (uint) (*(info)->current_end - \ + *(info)->current_pos) + +typedef uint32 ha_checksum; + +/* Define the type of function to be passed to process_default_option_files */ +typedef int (*Process_option_func)(void *ctx, const char *group_name, + const char *option); + +#include + + /* Prototypes for mysys and my_func functions */ + +extern int my_copy(const char *from,const char *to,myf MyFlags); +extern int my_append(const char *from,const char *to,myf MyFlags); +extern int my_delete(const char *name,myf MyFlags); +extern int my_getwd(my_string buf,uint size,myf MyFlags); +extern int my_setwd(const char *dir,myf MyFlags); +extern int my_lock(File fd,int op,my_off_t start, my_off_t length,myf MyFlags); +extern gptr my_once_alloc(uint Size,myf MyFlags); +extern void my_once_free(void); +extern char *my_once_strdup(const char *src,myf myflags); +extern char *my_once_memdup(const char *src, uint len, myf myflags); +extern File my_open(const char *FileName,int Flags,myf MyFlags); +extern File my_register_filename(File fd, const char *FileName, + enum file_type type_of_file, + uint error_message_number, myf MyFlags); +extern File my_create(const char *FileName,int CreateFlags, + int AccsesFlags, myf MyFlags); +extern int my_close(File Filedes,myf MyFlags); +extern File my_dup(File file, myf MyFlags); +extern int my_mkdir(const char *dir, int Flags, myf MyFlags); +extern int my_readlink(char *to, const char *filename, myf MyFlags); +extern int my_realpath(char *to, const char *filename, myf MyFlags); +extern File my_create_with_symlink(const char *linkname, const char *filename, + int createflags, int access_flags, + myf MyFlags); +extern int my_delete_with_symlink(const char *name, myf MyFlags); +extern int my_rename_with_symlink(const char *from,const char *to,myf MyFlags); +extern int my_symlink(const char *content, const char *linkname, myf MyFlags); +extern uint my_read(File Filedes,byte *Buffer,uint Count,myf MyFlags); +extern uint my_pread(File Filedes,byte *Buffer,uint Count,my_off_t offset, + myf MyFlags); +extern int my_rename(const char *from,const char *to,myf MyFlags); +extern my_off_t my_seek(File fd,my_off_t pos,int whence,myf MyFlags); +extern my_off_t my_tell(File fd,myf MyFlags); +extern uint my_write(File Filedes,const byte *Buffer,uint Count, + myf MyFlags); +extern uint my_pwrite(File Filedes,const byte *Buffer,uint Count, + my_off_t offset,myf MyFlags); +extern uint my_fread(FILE *stream,byte *Buffer,uint Count,myf MyFlags); +extern uint my_fwrite(FILE *stream,const byte *Buffer,uint Count, + myf MyFlags); +extern my_off_t my_fseek(FILE *stream,my_off_t pos,int whence,myf MyFlags); +extern my_off_t my_ftell(FILE *stream,myf MyFlags); +extern gptr _mymalloc(uint uSize,const char *sFile, + uint uLine, myf MyFlag); +extern gptr _myrealloc(gptr pPtr,uint uSize,const char *sFile, + uint uLine, myf MyFlag); +extern gptr my_multi_malloc _VARARGS((myf MyFlags, ...)); +extern void _myfree(gptr pPtr,const char *sFile,uint uLine, myf MyFlag); +extern int _sanity(const char *sFile,unsigned int uLine); +extern gptr _my_memdup(const byte *from,uint length, + const char *sFile, uint uLine,myf MyFlag); +extern my_string _my_strdup(const char *from, const char *sFile, uint uLine, + myf MyFlag); +extern char *_my_strdup_with_length(const byte *from, uint length, + const char *sFile, uint uLine, + myf MyFlag); + +#ifdef __WIN__ +extern int my_access(const char *path, int amode); +extern File my_sopen(const char *path, int oflag, int shflag, int pmode); +#else +#define my_access access +#endif +extern int check_if_legal_filename(const char *path); + +#ifndef TERMINATE +extern void TERMINATE(FILE *file); +#endif +extern void init_glob_errs(void); +extern FILE *my_fopen(const char *FileName,int Flags,myf MyFlags); +extern FILE *my_fdopen(File Filedes,const char *name, int Flags,myf MyFlags); +extern int my_fclose(FILE *fd,myf MyFlags); +extern int my_chsize(File fd,my_off_t newlength, int filler, myf MyFlags); +extern int my_sync(File fd, myf my_flags); +extern int my_error _VARARGS((int nr,myf MyFlags, ...)); +extern int my_printf_error _VARARGS((uint my_err, const char *format, + myf MyFlags, ...) + __attribute__ ((format (printf, 2, 4)))); +extern int my_error_register(const char **errmsgs, int first, int last); +extern const char **my_error_unregister(int first, int last); +extern int my_message(uint my_err, const char *str,myf MyFlags); +extern int my_message_no_curses(uint my_err, const char *str,myf MyFlags); +extern int my_message_curses(uint my_err, const char *str,myf MyFlags); +extern my_bool my_init(void); +extern void my_end(int infoflag); +extern int my_redel(const char *from, const char *to, int MyFlags); +extern int my_copystat(const char *from, const char *to, int MyFlags); +extern my_string my_filename(File fd); + +#ifndef THREAD +extern void dont_break(void); +extern void allow_break(void); +#else +#define dont_break() +#define allow_break() +#endif + +extern my_bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist); +extern char *my_tmpdir(MY_TMPDIR *tmpdir); +extern void free_tmpdir(MY_TMPDIR *tmpdir); + +extern void my_remember_signal(int signal_number,sig_handler (*func)(int)); +extern uint dirname_part(my_string to,const char *name); +extern uint dirname_length(const char *name); +#define base_name(A) (A+dirname_length(A)) +extern int test_if_hard_path(const char *dir_name); +extern my_bool has_path(const char *name); +extern char *convert_dirname(char *to, const char *from, const char *from_end); +extern void to_unix_path(my_string name); +extern my_string fn_ext(const char *name); +extern my_string fn_same(my_string toname,const char *name,int flag); +extern my_string fn_format(my_string to,const char *name,const char *dir, + const char *form, uint flag); +extern size_s strlength(const char *str); +extern void pack_dirname(my_string to,const char *from); +extern uint unpack_dirname(my_string to,const char *from); +extern uint cleanup_dirname(my_string to,const char *from); +extern uint system_filename(my_string to,const char *from); +extern uint unpack_filename(my_string to,const char *from); +extern my_string intern_filename(my_string to,const char *from); +extern my_string directory_file_name(my_string dst, const char *src); +extern int pack_filename(my_string to, const char *name, size_s max_length); +extern my_string my_path(my_string to,const char *progname, + const char *own_pathname_part); +extern my_string my_load_path(my_string to, const char *path, + const char *own_path_prefix); +extern int wild_compare(const char *str,const char *wildstr,pbool str_is_pattern); +extern WF_PACK *wf_comp(my_string str); +extern int wf_test(struct wild_file_pack *wf_pack,const char *name); +extern void wf_end(struct wild_file_pack *buffer); +extern size_s strip_sp(my_string str); +extern void get_date(my_string to,int timeflag,time_t use_time); +extern void soundex(CHARSET_INFO *, my_string out_pntr, my_string in_pntr,pbool remove_garbage); +extern int init_record_cache(RECORD_CACHE *info,uint cachesize,File file, + uint reclength,enum cache_type type, + pbool use_async_io); +extern int read_cache_record(RECORD_CACHE *info,byte *to); +extern int end_record_cache(RECORD_CACHE *info); +extern int write_cache_record(RECORD_CACHE *info,my_off_t filepos, + const byte *record,uint length); +extern int flush_write_cache(RECORD_CACHE *info); +extern long my_clock(void); +extern sig_handler sigtstp_handler(int signal_number); +extern void handle_recived_signals(void); + +extern sig_handler my_set_alarm_variable(int signo); +extern void my_string_ptr_sort(void *base,uint items,size_s size); +extern void radixsort_for_str_ptr(uchar* base[], uint number_of_elements, + size_s size_of_element,uchar *buffer[]); +extern qsort_t qsort2(void *base_ptr, size_t total_elems, size_t size, + qsort2_cmp cmp, void *cmp_argument); +extern qsort2_cmp get_ptr_compare(uint); +void my_store_ptr(byte *buff, uint pack_length, my_off_t pos); +my_off_t my_get_ptr(byte *ptr, uint pack_length); +extern int init_io_cache(IO_CACHE *info,File file,uint cachesize, + enum cache_type type,my_off_t seek_offset, + pbool use_async_io, myf cache_myflags); +extern my_bool reinit_io_cache(IO_CACHE *info,enum cache_type type, + my_off_t seek_offset,pbool use_async_io, + pbool clear_cache); +extern void setup_io_cache(IO_CACHE* info); +extern int _my_b_read(IO_CACHE *info,byte *Buffer,uint Count); +#ifdef THREAD +extern int _my_b_read_r(IO_CACHE *info,byte *Buffer,uint Count); +extern void init_io_cache_share(IO_CACHE *info, + IO_CACHE_SHARE *s, uint num_threads); +extern void remove_io_thread(IO_CACHE *info); +#endif +extern int _my_b_seq_read(IO_CACHE *info,byte *Buffer,uint Count); +extern int _my_b_net_read(IO_CACHE *info,byte *Buffer,uint Count); +extern int _my_b_get(IO_CACHE *info); +extern int _my_b_async_read(IO_CACHE *info,byte *Buffer,uint Count); +extern int _my_b_write(IO_CACHE *info,const byte *Buffer,uint Count); +extern int my_b_append(IO_CACHE *info,const byte *Buffer,uint Count); +extern int my_b_safe_write(IO_CACHE *info,const byte *Buffer,uint Count); + +extern int my_block_write(IO_CACHE *info, const byte *Buffer, + uint Count, my_off_t pos); +extern int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock); + +#define flush_io_cache(info) my_b_flush_io_cache((info),1) + +extern int end_io_cache(IO_CACHE *info); +extern uint my_b_fill(IO_CACHE *info); +extern void my_b_seek(IO_CACHE *info,my_off_t pos); +extern uint my_b_gets(IO_CACHE *info, char *to, uint max_length); +extern my_off_t my_b_filelength(IO_CACHE *info); +extern uint my_b_printf(IO_CACHE *info, const char* fmt, ...); +extern uint my_b_vprintf(IO_CACHE *info, const char* fmt, va_list ap); +extern my_bool open_cached_file(IO_CACHE *cache,const char *dir, + const char *prefix, uint cache_size, + myf cache_myflags); +extern my_bool real_open_cached_file(IO_CACHE *cache); +extern void close_cached_file(IO_CACHE *cache); +File create_temp_file(char *to, const char *dir, const char *pfx, + int mode, myf MyFlags); +#define my_init_dynamic_array(A,B,C,D) init_dynamic_array(A,B,C,D CALLER_INFO) +#define my_init_dynamic_array_ci(A,B,C,D) init_dynamic_array(A,B,C,D ORIG_CALLER_INFO) +extern my_bool init_dynamic_array(DYNAMIC_ARRAY *array,uint element_size, + uint init_alloc,uint alloc_increment + CALLER_INFO_PROTO); +extern my_bool insert_dynamic(DYNAMIC_ARRAY *array,gptr element); +extern byte *alloc_dynamic(DYNAMIC_ARRAY *array); +extern byte *pop_dynamic(DYNAMIC_ARRAY*); +extern my_bool set_dynamic(DYNAMIC_ARRAY *array,gptr element,uint array_index); +extern void get_dynamic(DYNAMIC_ARRAY *array,gptr element,uint array_index); +extern void delete_dynamic(DYNAMIC_ARRAY *array); +extern void delete_dynamic_element(DYNAMIC_ARRAY *array, uint array_index); +extern void freeze_size(DYNAMIC_ARRAY *array); +#define dynamic_array_ptr(array,array_index) ((array)->buffer+(array_index)*(array)->size_of_element) +#define dynamic_element(array,array_index,type) ((type)((array)->buffer) +(array_index)) +#define push_dynamic(A,B) insert_dynamic(A,B) +#define reset_dynamic(array) ((array)->elements= 0) + +extern my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str, + uint init_alloc,uint alloc_increment); +extern my_bool dynstr_append(DYNAMIC_STRING *str, const char *append); +my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, + uint length); +extern my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str); +extern my_bool dynstr_realloc(DYNAMIC_STRING *str, ulong additional_size); +extern void dynstr_free(DYNAMIC_STRING *str); +#ifdef HAVE_MLOCK +extern byte *my_malloc_lock(uint length,myf flags); +extern void my_free_lock(byte *ptr,myf flags); +#else +#define my_malloc_lock(A,B) my_malloc((A),(B)) +#define my_free_lock(A,B) my_free((A),(B)) +#endif +#define alloc_root_inited(A) ((A)->min_malloc != 0) +#define ALLOC_ROOT_MIN_BLOCK_SIZE (MALLOC_OVERHEAD + sizeof(USED_MEM) + 8) +#define clear_alloc_root(A) do { (A)->free= (A)->used= (A)->pre_alloc= 0; (A)->min_malloc=0;} while(0) +extern void init_alloc_root(MEM_ROOT *mem_root, uint block_size, + uint pre_alloc_size); +extern gptr alloc_root(MEM_ROOT *mem_root,unsigned int Size); +extern gptr multi_alloc_root(MEM_ROOT *mem_root, ...); +extern void free_root(MEM_ROOT *root, myf MyFLAGS); +extern void set_prealloc_root(MEM_ROOT *root, char *ptr); +extern void reset_root_defaults(MEM_ROOT *mem_root, uint block_size, + uint prealloc_size); +extern char *strdup_root(MEM_ROOT *root,const char *str); +extern char *strmake_root(MEM_ROOT *root,const char *str,uint len); +extern char *memdup_root(MEM_ROOT *root,const char *str,uint len); +extern int get_defaults_options(int argc, char **argv, + char **defaults, char **extra_defaults, + char **group_suffix); +extern int load_defaults(const char *conf_file, const char **groups, + int *argc, char ***argv); +extern int modify_defaults_file(const char *file_location, const char *option, + const char *option_value, + const char *section_name, int remove_option); +extern int my_search_option_files(const char *conf_file, int *argc, + char ***argv, uint *args_used, + Process_option_func func, void *func_ctx); +extern void free_defaults(char **argv); +extern void my_print_default_files(const char *conf_file); +extern void print_defaults(const char *conf_file, const char **groups); +extern my_bool my_compress(byte *, ulong *, ulong *); +extern my_bool my_uncompress(byte *, ulong *, ulong *); +extern byte *my_compress_alloc(const byte *packet, ulong *len, ulong *complen); +extern ha_checksum my_checksum(ha_checksum crc, const byte *mem, uint count); +extern uint my_bit_log2(ulong value); +extern uint my_count_bits(ulonglong v); +extern uint my_count_bits_ushort(ushort v); +extern void my_sleep(ulong m_seconds); +extern ulong crc32(ulong crc, const uchar *buf, uint len); +extern uint my_set_max_open_files(uint files); +void my_free_open_file_info(void); + +ulonglong my_getsystime(void); +my_bool my_gethwaddr(uchar *to); + +#ifdef HAVE_SYS_MMAN_H +#include + +#ifndef MAP_NOSYNC +#define MAP_NOSYNC 0 +#endif + +#define my_mmap(a,b,c,d,e,f) mmap(a,b,c,d,e,f) +#ifdef HAVE_GETPAGESIZE +#define my_getpagesize() getpagesize() +#else +/* qnx ? */ +#define my_getpagesize() 8192 +#endif +#define my_munmap(a,b) munmap((a),(b)) + +#else +/* not a complete set of mmap() flags, but only those that nesessary */ +#define PROT_READ 1 +#define PROT_WRITE 2 +#define MAP_SHARED 0x0001 +#define MAP_NOSYNC 0x0800 +#define MAP_FAILED ((void *)-1) +#define MS_SYNC 0x0000 + +#ifndef __NETWARE__ +#define HAVE_MMAP +#endif + +int my_getpagesize(void); +void *my_mmap(void *, size_t, int, int, int, my_off_t); +int my_munmap(void *, size_t); +#endif + +int my_msync(int, void *, size_t, int); + +/* character sets */ +extern uint get_charset_number(const char *cs_name, uint cs_flags); +extern uint get_collation_number(const char *name); +extern const char *get_charset_name(uint cs_number); + +extern CHARSET_INFO *get_charset(uint cs_number, myf flags); +extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags); +extern CHARSET_INFO *get_charset_by_csname(const char *cs_name, + uint cs_flags, myf my_flags); +extern void free_charsets(void); +extern char *get_charsets_dir(char *buf); +extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2); +extern my_bool init_compiled_charsets(myf flags); +extern void add_compiled_collation(CHARSET_INFO *cs); +extern ulong escape_string_for_mysql(CHARSET_INFO *charset_info, + char *to, ulong to_length, + const char *from, ulong length); +#ifdef __WIN__ +#define BACKSLASH_MBTAIL +/* File system character set */ +extern CHARSET_INFO *fs_character_set(void); +#endif +extern ulong escape_quotes_for_mysql(CHARSET_INFO *charset_info, + char *to, ulong to_length, + const char *from, ulong length); + +extern void thd_increment_bytes_sent(ulong length); +extern void thd_increment_bytes_received(ulong length); +extern void thd_increment_net_big_packet_count(ulong length); + +#ifdef __WIN__ +extern my_bool have_tcpip; /* Is set if tcpip is used */ + +/* implemented in my_windac.c */ + +int my_security_attr_create(SECURITY_ATTRIBUTES **psa, const char **perror, + DWORD owner_rights, DWORD everybody_rights); + +void my_security_attr_free(SECURITY_ATTRIBUTES *sa); + +/* implemented in my_conio.c */ +char* my_cgets(char *string, unsigned long clen, unsigned long* plen); + +#endif +#ifdef __NETWARE__ +void netware_reg_user(const char *ip, const char *user, + const char *application); +#endif + +C_MODE_END +#include "raid.h" +#endif /* _my_sys_h */ diff --git a/3rdparty/mysql/include/mysql.h b/3rdparty/mysql/include/mysql.h new file mode 100644 index 000000000..925a45253 --- /dev/null +++ b/3rdparty/mysql/include/mysql.h @@ -0,0 +1,847 @@ +/* Copyright (C) 2000-2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef _mysql_h +#define _mysql_h + +#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */ +#undef WIN +#undef _WIN +#undef _WIN32 +#undef _WIN64 +#undef __WIN__ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _global_h /* If not standard header */ +#include +#ifdef __LCC__ +#include /* For windows */ +#endif +typedef char my_bool; +#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__) +#define __WIN__ +#endif +#if !defined(__WIN__) +#define STDCALL +#else +#define STDCALL __stdcall +#endif +typedef char * gptr; + +#ifndef my_socket_defined +#ifdef __WIN__ +#define my_socket SOCKET +#else +typedef int my_socket; +#endif /* __WIN__ */ +#endif /* my_socket_defined */ +#endif /* _global_h */ + +#include "mysql_com.h" +#include "mysql_time.h" +#include "mysql_version.h" +#include "typelib.h" + +#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */ + +extern unsigned int mysql_port; +extern char *mysql_unix_port; + +#define CLIENT_NET_READ_TIMEOUT 365*24*3600 /* Timeout on read */ +#define CLIENT_NET_WRITE_TIMEOUT 365*24*3600 /* Timeout on write */ + +#ifdef __NETWARE__ +#pragma pack(push, 8) /* 8 byte alignment */ +#endif + +#define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) +#define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) +#define IS_BLOB(n) ((n) & BLOB_FLAG) +#define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR || (t) == FIELD_TYPE_NEWDECIMAL) +#define IS_NUM_FIELD(f) ((f)->flags & NUM_FLAG) +#define INTERNAL_NUM_FIELD(f) (((f)->type <= FIELD_TYPE_INT24 && ((f)->type != FIELD_TYPE_TIMESTAMP || (f)->length == 14 || (f)->length == 8)) || (f)->type == FIELD_TYPE_YEAR) + + +typedef struct st_mysql_field { + char *name; /* Name of column */ + char *org_name; /* Original column name, if an alias */ + char *table; /* Table of column if column was a field */ + char *org_table; /* Org table name, if table was an alias */ + char *db; /* Database for table */ + char *catalog; /* Catalog for table */ + char *def; /* Default value (set by mysql_list_fields) */ + unsigned long length; /* Width of column (create length) */ + unsigned long max_length; /* Max width for selected set */ + unsigned int name_length; + unsigned int org_name_length; + unsigned int table_length; + unsigned int org_table_length; + unsigned int db_length; + unsigned int catalog_length; + unsigned int def_length; + unsigned int flags; /* Div flags */ + unsigned int decimals; /* Number of decimals in field */ + unsigned int charsetnr; /* Character set */ + enum enum_field_types type; /* Type of field. See mysql_com.h for types */ +} MYSQL_FIELD; + +typedef char **MYSQL_ROW; /* return data as array of strings */ +typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */ + +#ifndef _global_h +#if defined(NO_CLIENT_LONG_LONG) +typedef unsigned long my_ulonglong; +#elif defined (__WIN__) +typedef unsigned __int64 my_ulonglong; +#else +typedef unsigned long long my_ulonglong; +#endif +#endif + +#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0) + +/* backward compatibility define - to be removed eventually */ +#define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED + +typedef struct st_mysql_rows { + struct st_mysql_rows *next; /* list of rows */ + MYSQL_ROW data; + unsigned long length; +} MYSQL_ROWS; + +typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */ + +#include "my_alloc.h" + +typedef struct embedded_query_result EMBEDDED_QUERY_RESULT; +typedef struct st_mysql_data { + my_ulonglong rows; + unsigned int fields; + MYSQL_ROWS *data; + MEM_ROOT alloc; + /* extra info for embedded library */ + struct embedded_query_result *embedded_info; +} MYSQL_DATA; + +enum mysql_option +{ + MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE, + MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, + MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE, + MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT, + MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_USE_RESULT, + MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION, + MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH, + MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT +}; + +struct st_mysql_options { + unsigned int connect_timeout, read_timeout, write_timeout; + unsigned int port, protocol; + unsigned long client_flag; + char *host,*user,*password,*unix_socket,*db; + struct st_dynamic_array *init_commands; + char *my_cnf_file,*my_cnf_group, *charset_dir, *charset_name; + char *ssl_key; /* PEM key file */ + char *ssl_cert; /* PEM cert file */ + char *ssl_ca; /* PEM CA file */ + char *ssl_capath; /* PEM directory of CA-s? */ + char *ssl_cipher; /* cipher to use */ + char *shared_memory_base_name; + unsigned long max_allowed_packet; + my_bool use_ssl; /* if to use SSL or not */ + my_bool compress,named_pipe; + /* + On connect, find out the replication role of the server, and + establish connections to all the peers + */ + my_bool rpl_probe; + /* + Each call to mysql_real_query() will parse it to tell if it is a read + or a write, and direct it to the slave or the master + */ + my_bool rpl_parse; + /* + If set, never read from a master, only from slave, when doing + a read that is replication-aware + */ + my_bool no_master_reads; +#if !defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY) + my_bool separate_thread; +#endif + enum mysql_option methods_to_use; + char *client_ip; + /* Refuse client connecting to server if it uses old (pre-4.1.1) protocol */ + my_bool secure_auth; + /* 0 - never report, 1 - always report (default) */ + my_bool report_data_truncation; + + /* function pointers for local infile support */ + int (*local_infile_init)(void **, const char *, void *); + int (*local_infile_read)(void *, char *, unsigned int); + void (*local_infile_end)(void *); + int (*local_infile_error)(void *, char *, unsigned int); + void *local_infile_userdata; +}; + +enum mysql_status +{ + MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,MYSQL_STATUS_USE_RESULT +}; + +enum mysql_protocol_type +{ + MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET, + MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY +}; +/* + There are three types of queries - the ones that have to go to + the master, the ones that go to a slave, and the adminstrative + type which must happen on the pivot connectioin +*/ +enum mysql_rpl_type +{ + MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN +}; + +typedef struct character_set +{ + unsigned int number; /* character set number */ + unsigned int state; /* character set state */ + const char *csname; /* collation name */ + const char *name; /* character set name */ + const char *comment; /* comment */ + const char *dir; /* character set directory */ + unsigned int mbminlen; /* min. length for multibyte strings */ + unsigned int mbmaxlen; /* max. length for multibyte strings */ +} MY_CHARSET_INFO; + +struct st_mysql_methods; + +typedef struct st_mysql +{ + NET net; /* Communication parameters */ + gptr connector_fd; /* ConnectorFd for SSL */ + char *host,*user,*passwd,*unix_socket,*server_version,*host_info,*info; + char *db; + struct charset_info_st *charset; + MYSQL_FIELD *fields; + MEM_ROOT field_alloc; + my_ulonglong affected_rows; + my_ulonglong insert_id; /* id if insert on table with NEXTNR */ + my_ulonglong extra_info; /* Not used */ + unsigned long thread_id; /* Id for connection in server */ + unsigned long packet_length; + unsigned int port; + unsigned long client_flag,server_capabilities; + unsigned int protocol_version; + unsigned int field_count; + unsigned int server_status; + unsigned int server_language; + unsigned int warning_count; + struct st_mysql_options options; + enum mysql_status status; + my_bool free_me; /* If free in mysql_close */ + my_bool reconnect; /* set to 1 if automatic reconnect */ + + /* session-wide random string */ + char scramble[SCRAMBLE_LENGTH+1]; + + /* + Set if this is the original connection, not a master or a slave we have + added though mysql_rpl_probe() or mysql_set_master()/ mysql_add_slave() + */ + my_bool rpl_pivot; + /* + Pointers to the master, and the next slave connections, points to + itself if lone connection. + */ + struct st_mysql* master, *next_slave; + + struct st_mysql* last_used_slave; /* needed for round-robin slave pick */ + /* needed for send/read/store/use result to work correctly with replication */ + struct st_mysql* last_used_con; + + LIST *stmts; /* list of all statements */ + const struct st_mysql_methods *methods; + void *thd; + /* + Points to boolean flag in MYSQL_RES or MYSQL_STMT. We set this flag + from mysql_stmt_close if close had to cancel result set of this object. + */ + my_bool *unbuffered_fetch_owner; +#if defined(EMBEDDED_LIBRARY) || defined(EMBEDDED_LIBRARY_COMPATIBLE) || MYSQL_VERSION_ID >= 50100 + /* needed for embedded server - no net buffer to store the 'info' */ + char *info_buffer; +#endif +} MYSQL; + +typedef struct st_mysql_res { + my_ulonglong row_count; + MYSQL_FIELD *fields; + MYSQL_DATA *data; + MYSQL_ROWS *data_cursor; + unsigned long *lengths; /* column lengths of current row */ + MYSQL *handle; /* for unbuffered reads */ + MEM_ROOT field_alloc; + unsigned int field_count, current_field; + MYSQL_ROW row; /* If unbuffered read */ + MYSQL_ROW current_row; /* buffer to current row */ + my_bool eof; /* Used by mysql_fetch_row */ + /* mysql_stmt_close() had to cancel this result */ + my_bool unbuffered_fetch_cancelled; + const struct st_mysql_methods *methods; +} MYSQL_RES; + +#define MAX_MYSQL_MANAGER_ERR 256 +#define MAX_MYSQL_MANAGER_MSG 256 + +#define MANAGER_OK 200 +#define MANAGER_INFO 250 +#define MANAGER_ACCESS 401 +#define MANAGER_CLIENT_ERR 450 +#define MANAGER_INTERNAL_ERR 500 + +#if !defined(MYSQL_SERVER) && !defined(MYSQL_CLIENT) +#define MYSQL_CLIENT +#endif + + +typedef struct st_mysql_manager +{ + NET net; + char *host,*user,*passwd; + unsigned int port; + my_bool free_me; + my_bool eof; + int cmd_status; + int last_errno; + char* net_buf,*net_buf_pos,*net_data_end; + int net_buf_size; + char last_error[MAX_MYSQL_MANAGER_ERR]; +} MYSQL_MANAGER; + +typedef struct st_mysql_parameters +{ + unsigned long *p_max_allowed_packet; + unsigned long *p_net_buffer_length; +} MYSQL_PARAMETERS; + +#if !defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY) +#define max_allowed_packet (*mysql_get_parameters()->p_max_allowed_packet) +#define net_buffer_length (*mysql_get_parameters()->p_net_buffer_length) +#endif + +/* + Set up and bring down the server; to ensure that applications will + work when linked against either the standard client library or the + embedded server library, these functions should be called. +*/ +int STDCALL mysql_server_init(int argc, char **argv, char **groups); +void STDCALL mysql_server_end(void); +/* + mysql_server_init/end need to be called when using libmysqld or + libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so + you don't need to call it explicitely; but you need to call + mysql_server_end() to free memory). The names are a bit misleading + (mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general + names which suit well whether you're using libmysqld or libmysqlclient. We + intend to promote these aliases over the mysql_server* ones. +*/ +#define mysql_library_init mysql_server_init +#define mysql_library_end mysql_server_end + +MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void); + +/* + Set up and bring down a thread; these function should be called + for each thread in an application which opens at least one MySQL + connection. All uses of the connection(s) should be between these + function calls. +*/ +my_bool STDCALL mysql_thread_init(void); +void STDCALL mysql_thread_end(void); + +/* + Functions to get information from the MYSQL and MYSQL_RES structures + Should definitely be used if one uses shared libraries. +*/ + +my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res); +unsigned int STDCALL mysql_num_fields(MYSQL_RES *res); +my_bool STDCALL mysql_eof(MYSQL_RES *res); +MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES *res, + unsigned int fieldnr); +MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res); +MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res); +MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res); + +unsigned int STDCALL mysql_field_count(MYSQL *mysql); +my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql); +my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql); +unsigned int STDCALL mysql_errno(MYSQL *mysql); +const char * STDCALL mysql_error(MYSQL *mysql); +const char *STDCALL mysql_sqlstate(MYSQL *mysql); +unsigned int STDCALL mysql_warning_count(MYSQL *mysql); +const char * STDCALL mysql_info(MYSQL *mysql); +unsigned long STDCALL mysql_thread_id(MYSQL *mysql); +const char * STDCALL mysql_character_set_name(MYSQL *mysql); +int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname); + +MYSQL * STDCALL mysql_init(MYSQL *mysql); +my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, + const char *cert, const char *ca, + const char *capath, const char *cipher); +my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, + const char *passwd, const char *db); +MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, + const char *user, + const char *passwd, + const char *db, + unsigned int port, + const char *unix_socket, + unsigned long clientflag); +int STDCALL mysql_select_db(MYSQL *mysql, const char *db); +int STDCALL mysql_query(MYSQL *mysql, const char *q); +int STDCALL mysql_send_query(MYSQL *mysql, const char *q, + unsigned long length); +int STDCALL mysql_real_query(MYSQL *mysql, const char *q, + unsigned long length); +MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql); +MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql); + +/* perform query on master */ +my_bool STDCALL mysql_master_query(MYSQL *mysql, const char *q, + unsigned long length); +my_bool STDCALL mysql_master_send_query(MYSQL *mysql, const char *q, + unsigned long length); +/* perform query on slave */ +my_bool STDCALL mysql_slave_query(MYSQL *mysql, const char *q, + unsigned long length); +my_bool STDCALL mysql_slave_send_query(MYSQL *mysql, const char *q, + unsigned long length); +void STDCALL mysql_get_character_set_info(MYSQL *mysql, + MY_CHARSET_INFO *charset); + +/* local infile support */ + +#define LOCAL_INFILE_ERROR_LEN 512 + +void +mysql_set_local_infile_handler(MYSQL *mysql, + int (*local_infile_init)(void **, const char *, + void *), + int (*local_infile_read)(void *, char *, + unsigned int), + void (*local_infile_end)(void *), + int (*local_infile_error)(void *, char*, + unsigned int), + void *); + +void +mysql_set_local_infile_default(MYSQL *mysql); + + +/* + enable/disable parsing of all queries to decide if they go on master or + slave +*/ +void STDCALL mysql_enable_rpl_parse(MYSQL* mysql); +void STDCALL mysql_disable_rpl_parse(MYSQL* mysql); +/* get the value of the parse flag */ +int STDCALL mysql_rpl_parse_enabled(MYSQL* mysql); + +/* enable/disable reads from master */ +void STDCALL mysql_enable_reads_from_master(MYSQL* mysql); +void STDCALL mysql_disable_reads_from_master(MYSQL* mysql); +/* get the value of the master read flag */ +my_bool STDCALL mysql_reads_from_master_enabled(MYSQL* mysql); + +enum mysql_rpl_type STDCALL mysql_rpl_query_type(const char* q, int len); + +/* discover the master and its slaves */ +my_bool STDCALL mysql_rpl_probe(MYSQL* mysql); + +/* set the master, close/free the old one, if it is not a pivot */ +int STDCALL mysql_set_master(MYSQL* mysql, const char* host, + unsigned int port, + const char* user, + const char* passwd); +int STDCALL mysql_add_slave(MYSQL* mysql, const char* host, + unsigned int port, + const char* user, + const char* passwd); + +int STDCALL mysql_shutdown(MYSQL *mysql, + enum mysql_enum_shutdown_level + shutdown_level); +int STDCALL mysql_dump_debug_info(MYSQL *mysql); +int STDCALL mysql_refresh(MYSQL *mysql, + unsigned int refresh_options); +int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid); +int STDCALL mysql_set_server_option(MYSQL *mysql, + enum enum_mysql_set_option + option); +int STDCALL mysql_ping(MYSQL *mysql); +const char * STDCALL mysql_stat(MYSQL *mysql); +const char * STDCALL mysql_get_server_info(MYSQL *mysql); +const char * STDCALL mysql_get_client_info(void); +unsigned long STDCALL mysql_get_client_version(void); +const char * STDCALL mysql_get_host_info(MYSQL *mysql); +unsigned long STDCALL mysql_get_server_version(MYSQL *mysql); +unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql); +MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild); +MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild); +MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql); +int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option, + const char *arg); +void STDCALL mysql_free_result(MYSQL_RES *result); +void STDCALL mysql_data_seek(MYSQL_RES *result, + my_ulonglong offset); +MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result, + MYSQL_ROW_OFFSET offset); +MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result, + MYSQL_FIELD_OFFSET offset); +MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result); +unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result); +MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result); +MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table, + const char *wild); +unsigned long STDCALL mysql_escape_string(char *to,const char *from, + unsigned long from_length); +unsigned long STDCALL mysql_hex_string(char *to,const char *from, + unsigned long from_length); +unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql, + char *to,const char *from, + unsigned long length); +void STDCALL mysql_debug(const char *debug); +char * STDCALL mysql_odbc_escape_string(MYSQL *mysql, + char *to, + unsigned long to_length, + const char *from, + unsigned long from_length, + void *param, + char * + (*extend_buffer) + (void *, char *to, + unsigned long *length)); +void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name); +unsigned int STDCALL mysql_thread_safe(void); +my_bool STDCALL mysql_embedded(void); +MYSQL_MANAGER* STDCALL mysql_manager_init(MYSQL_MANAGER* con); +MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, + const char* host, + const char* user, + const char* passwd, + unsigned int port); +void STDCALL mysql_manager_close(MYSQL_MANAGER* con); +int STDCALL mysql_manager_command(MYSQL_MANAGER* con, + const char* cmd, int cmd_len); +int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con, + char* res_buf, + int res_buf_size); +my_bool STDCALL mysql_read_query_result(MYSQL *mysql); + + +/* + The following definitions are added for the enhanced + client-server protocol +*/ + +/* statement state */ +enum enum_mysql_stmt_state +{ + MYSQL_STMT_INIT_DONE= 1, MYSQL_STMT_PREPARE_DONE, MYSQL_STMT_EXECUTE_DONE, + MYSQL_STMT_FETCH_DONE +}; + + +/* + This structure is used to define bind information, and + internally by the client library. + Public members with their descriptions are listed below + (conventionally `On input' refers to the binds given to + mysql_stmt_bind_param, `On output' refers to the binds given + to mysql_stmt_bind_result): + + buffer_type - One of the MYSQL_* types, used to describe + the host language type of buffer. + On output: if column type is different from + buffer_type, column value is automatically converted + to buffer_type before it is stored in the buffer. + buffer - On input: points to the buffer with input data. + On output: points to the buffer capable to store + output data. + The type of memory pointed by buffer must correspond + to buffer_type. See the correspondence table in + the comment to mysql_stmt_bind_param. + + The two above members are mandatory for any kind of bind. + + buffer_length - the length of the buffer. You don't have to set + it for any fixed length buffer: float, double, + int, etc. It must be set however for variable-length + types, such as BLOBs or STRINGs. + + length - On input: in case when lengths of input values + are different for each execute, you can set this to + point at a variable containining value length. This + way the value length can be different in each execute. + If length is not NULL, buffer_length is not used. + Note, length can even point at buffer_length if + you keep bind structures around while fetching: + this way you can change buffer_length before + each execution, everything will work ok. + On output: if length is set, mysql_stmt_fetch will + write column length into it. + + is_null - On input: points to a boolean variable that should + be set to TRUE for NULL values. + This member is useful only if your data may be + NULL in some but not all cases. + If your data is never NULL, is_null should be set to 0. + If your data is always NULL, set buffer_type + to MYSQL_TYPE_NULL, and is_null will not be used. + + is_unsigned - On input: used to signify that values provided for one + of numeric types are unsigned. + On output describes signedness of the output buffer. + If, taking into account is_unsigned flag, column data + is out of range of the output buffer, data for this column + is regarded truncated. Note that this has no correspondence + to the sign of result set column, if you need to find it out + use mysql_stmt_result_metadata. + error - where to write a truncation error if it is present. + possible error value is: + 0 no truncation + 1 value is out of range or buffer is too small + + Please note that MYSQL_BIND also has internals members. +*/ + +typedef struct st_mysql_bind +{ + unsigned long *length; /* output length pointer */ + my_bool *is_null; /* Pointer to null indicator */ + void *buffer; /* buffer to get/put data */ + /* set this if you want to track data truncations happened during fetch */ + my_bool *error; + enum enum_field_types buffer_type; /* buffer type */ + /* output buffer length, must be set when fetching str/binary */ + unsigned long buffer_length; + unsigned char *row_ptr; /* for the current data position */ + unsigned long offset; /* offset position for char/binary fetch */ + unsigned long length_value; /* Used if length is 0 */ + unsigned int param_number; /* For null count and error messages */ + unsigned int pack_length; /* Internal length for packed data */ + my_bool error_value; /* used if error is 0 */ + my_bool is_unsigned; /* set if integer type is unsigned */ + my_bool long_data_used; /* If used with mysql_send_long_data */ + my_bool is_null_value; /* Used if is_null is 0 */ + void (*store_param_func)(NET *net, struct st_mysql_bind *param); + void (*fetch_result)(struct st_mysql_bind *, MYSQL_FIELD *, + unsigned char **row); + void (*skip_result)(struct st_mysql_bind *, MYSQL_FIELD *, + unsigned char **row); +} MYSQL_BIND; + + +/* statement handler */ +typedef struct st_mysql_stmt +{ + MEM_ROOT mem_root; /* root allocations */ + LIST list; /* list to keep track of all stmts */ + MYSQL *mysql; /* connection handle */ + MYSQL_BIND *params; /* input parameters */ + MYSQL_BIND *bind; /* output parameters */ + MYSQL_FIELD *fields; /* result set metadata */ + MYSQL_DATA result; /* cached result set */ + MYSQL_ROWS *data_cursor; /* current row in cached result */ + /* copy of mysql->affected_rows after statement execution */ + my_ulonglong affected_rows; + my_ulonglong insert_id; /* copy of mysql->insert_id */ + /* + mysql_stmt_fetch() calls this function to fetch one row (it's different + for buffered, unbuffered and cursor fetch). + */ + int (*read_row_func)(struct st_mysql_stmt *stmt, + unsigned char **row); + unsigned long stmt_id; /* Id for prepared statement */ + unsigned long flags; /* i.e. type of cursor to open */ + unsigned long prefetch_rows; /* number of rows per one COM_FETCH */ + /* + Copied from mysql->server_status after execute/fetch to know + server-side cursor status for this statement. + */ + unsigned int server_status; + unsigned int last_errno; /* error code */ + unsigned int param_count; /* input parameter count */ + unsigned int field_count; /* number of columns in result set */ + enum enum_mysql_stmt_state state; /* statement state */ + char last_error[MYSQL_ERRMSG_SIZE]; /* error message */ + char sqlstate[SQLSTATE_LENGTH+1]; + /* Types of input parameters should be sent to server */ + my_bool send_types_to_server; + my_bool bind_param_done; /* input buffers were supplied */ + unsigned char bind_result_done; /* output buffers were supplied */ + /* mysql_stmt_close() had to cancel this result */ + my_bool unbuffered_fetch_cancelled; + /* + Is set to true if we need to calculate field->max_length for + metadata fields when doing mysql_stmt_store_result. + */ + my_bool update_max_length; +} MYSQL_STMT; + +enum enum_stmt_attr_type +{ + /* + When doing mysql_stmt_store_result calculate max_length attribute + of statement metadata. This is to be consistent with the old API, + where this was done automatically. + In the new API we do that only by request because it slows down + mysql_stmt_store_result sufficiently. + */ + STMT_ATTR_UPDATE_MAX_LENGTH, + /* + unsigned long with combination of cursor flags (read only, for update, + etc) + */ + STMT_ATTR_CURSOR_TYPE, + /* + Amount of rows to retrieve from server per one fetch if using cursors. + Accepts unsigned long attribute in the range 1 - ulong_max + */ + STMT_ATTR_PREFETCH_ROWS +}; + + +typedef struct st_mysql_methods +{ + my_bool (*read_query_result)(MYSQL *mysql); + my_bool (*advanced_command)(MYSQL *mysql, + enum enum_server_command command, + const char *header, + unsigned long header_length, + const char *arg, + unsigned long arg_length, + my_bool skip_check); + MYSQL_DATA *(*read_rows)(MYSQL *mysql,MYSQL_FIELD *mysql_fields, + unsigned int fields); + MYSQL_RES * (*use_result)(MYSQL *mysql); + void (*fetch_lengths)(unsigned long *to, + MYSQL_ROW column, unsigned int field_count); + void (*flush_use_result)(MYSQL *mysql); +#if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) + MYSQL_FIELD * (*list_fields)(MYSQL *mysql); + my_bool (*read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt); + int (*stmt_execute)(MYSQL_STMT *stmt); + int (*read_binary_rows)(MYSQL_STMT *stmt); + int (*unbuffered_fetch)(MYSQL *mysql, char **row); + void (*free_embedded_thd)(MYSQL *mysql); + const char *(*read_statistics)(MYSQL *mysql); + my_bool (*next_result)(MYSQL *mysql); + int (*read_change_user_result)(MYSQL *mysql, char *buff, const char *passwd); + int (*read_rows_from_cursor)(MYSQL_STMT *stmt); +#endif +} MYSQL_METHODS; + + +MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql); +int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, + unsigned long length); +int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind, + unsigned int column, + unsigned long offset); +int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt); +unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + const void *attr); +my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + void *attr); +my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT * stmt, MYSQL_BIND * bnd); +my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT * stmt, MYSQL_BIND * bnd); +my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt); +my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, + unsigned int param_number, + const char *data, + unsigned long length); +MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt); +MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt); +unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT * stmt); +const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt); +const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT * stmt); +MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT *stmt, + MYSQL_ROW_OFFSET offset); +MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_tell(MYSQL_STMT *stmt); +void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong offset); +my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt); +my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt); +my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt); +unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt); + +my_bool STDCALL mysql_commit(MYSQL * mysql); +my_bool STDCALL mysql_rollback(MYSQL * mysql); +my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode); +my_bool STDCALL mysql_more_results(MYSQL *mysql); +int STDCALL mysql_next_result(MYSQL *mysql); +void STDCALL mysql_close(MYSQL *sock); + + +/* status return codes */ +#define MYSQL_NO_DATA 100 +#define MYSQL_DATA_TRUNCATED 101 + +#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) + +#ifdef USE_OLD_FUNCTIONS +MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host, + const char *user, const char *passwd); +int STDCALL mysql_create_db(MYSQL *mysql, const char *DB); +int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB); +#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) +#endif +#define HAVE_MYSQL_REAL_CONNECT + +/* + The following functions are mainly exported because of mysqlbinlog; + They are not for general usage +*/ + +#define simple_command(mysql, command, arg, length, skip_check) \ + (*(mysql)->methods->advanced_command)(mysql, command, \ + NullS, 0, arg, length, skip_check) +unsigned long net_safe_read(MYSQL* mysql); + +#ifdef __NETWARE__ +#pragma pack(pop) /* restore alignment */ +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _mysql_h */ diff --git a/3rdparty/mysql/include/mysql_com.h b/3rdparty/mysql/include/mysql_com.h new file mode 100644 index 000000000..ec1c13379 --- /dev/null +++ b/3rdparty/mysql/include/mysql_com.h @@ -0,0 +1,452 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* +** Common definition between mysql server & client +*/ + +#ifndef _mysql_com_h +#define _mysql_com_h + +#define NAME_LEN 64 /* Field/table name length */ +#define HOSTNAME_LENGTH 60 +#define USERNAME_LENGTH 16 +#define SERVER_VERSION_LENGTH 60 +#define SQLSTATE_LENGTH 5 + +/* + USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain + username and hostname parts of the user identifier with trailing zero in + MySQL standard format: + user_name_part@host_name_part\0 +*/ +#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2 + +#define LOCAL_HOST "localhost" +#define LOCAL_HOST_NAMEDPIPE "." + + +#if defined(__WIN__) && !defined( _CUSTOMCONFIG_) +#define MYSQL_NAMEDPIPE "MySQL" +#define MYSQL_SERVICENAME "MySQL" +#endif /* __WIN__ */ + +/* + You should add new commands to the end of this list, otherwise old + servers won't be able to handle them as 'unsupported'. +*/ + +enum enum_server_command +{ + COM_SLEEP, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST, + COM_CREATE_DB, COM_DROP_DB, COM_REFRESH, COM_SHUTDOWN, COM_STATISTICS, + COM_PROCESS_INFO, COM_CONNECT, COM_PROCESS_KILL, COM_DEBUG, COM_PING, + COM_TIME, COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP, + COM_TABLE_DUMP, COM_CONNECT_OUT, COM_REGISTER_SLAVE, + COM_STMT_PREPARE, COM_STMT_EXECUTE, COM_STMT_SEND_LONG_DATA, COM_STMT_CLOSE, + COM_STMT_RESET, COM_SET_OPTION, COM_STMT_FETCH, + /* don't forget to update const char *command_name[] in sql_parse.cc */ + + /* Must be last */ + COM_END +}; + + +/* + Length of random string sent by server on handshake; this is also length of + obfuscated password, recieved from client +*/ +#define SCRAMBLE_LENGTH 20 +#define SCRAMBLE_LENGTH_323 8 +/* length of password stored in the db: new passwords are preceeded with '*' */ +#define SCRAMBLED_PASSWORD_CHAR_LENGTH (SCRAMBLE_LENGTH*2+1) +#define SCRAMBLED_PASSWORD_CHAR_LENGTH_323 (SCRAMBLE_LENGTH_323*2) + + +#define NOT_NULL_FLAG 1 /* Field can't be NULL */ +#define PRI_KEY_FLAG 2 /* Field is part of a primary key */ +#define UNIQUE_KEY_FLAG 4 /* Field is part of a unique key */ +#define MULTIPLE_KEY_FLAG 8 /* Field is part of a key */ +#define BLOB_FLAG 16 /* Field is a blob */ +#define UNSIGNED_FLAG 32 /* Field is unsigned */ +#define ZEROFILL_FLAG 64 /* Field is zerofill */ +#define BINARY_FLAG 128 /* Field is binary */ + +/* The following are only sent to new clients */ +#define ENUM_FLAG 256 /* field is an enum */ +#define AUTO_INCREMENT_FLAG 512 /* field is a autoincrement field */ +#define TIMESTAMP_FLAG 1024 /* Field is a timestamp */ +#define SET_FLAG 2048 /* field is a set */ +#define NO_DEFAULT_VALUE_FLAG 4096 /* Field doesn't have default value */ +#define NUM_FLAG 32768 /* Field is num (for clients) */ +#define PART_KEY_FLAG 16384 /* Intern; Part of some key */ +#define GROUP_FLAG 32768 /* Intern: Group field */ +#define UNIQUE_FLAG 65536 /* Intern: Used by sql_yacc */ +#define BINCMP_FLAG 131072 /* Intern: Used by sql_yacc */ + +#define REFRESH_GRANT 1 /* Refresh grant tables */ +#define REFRESH_LOG 2 /* Start on new log file */ +#define REFRESH_TABLES 4 /* close all tables */ +#define REFRESH_HOSTS 8 /* Flush host cache */ +#define REFRESH_STATUS 16 /* Flush status variables */ +#define REFRESH_THREADS 32 /* Flush thread cache */ +#define REFRESH_SLAVE 64 /* Reset master info and restart slave + thread */ +#define REFRESH_MASTER 128 /* Remove all bin logs in the index + and truncate the index */ + +/* The following can't be set with mysql_refresh() */ +#define REFRESH_READ_LOCK 16384 /* Lock tables for read */ +#define REFRESH_FAST 32768 /* Intern flag */ + +/* RESET (remove all queries) from query cache */ +#define REFRESH_QUERY_CACHE 65536 +#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */ +#define REFRESH_DES_KEY_FILE 0x40000L +#define REFRESH_USER_RESOURCES 0x80000L + +#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */ +#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */ +#define CLIENT_LONG_FLAG 4 /* Get all column flags */ +#define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */ +#define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */ +#define CLIENT_COMPRESS 32 /* Can use compression protocol */ +#define CLIENT_ODBC 64 /* Odbc client */ +#define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */ +#define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */ +#define CLIENT_PROTOCOL_41 512 /* New 4.1 protocol */ +#define CLIENT_INTERACTIVE 1024 /* This is an interactive client */ +#define CLIENT_SSL 2048 /* Switch to SSL after handshake */ +#define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ +#define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ +#define CLIENT_RESERVED 16384 /* Old flag for 4.1 protocol */ +#define CLIENT_SECURE_CONNECTION 32768 /* New 4.1 authentication */ +#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */ +#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */ +#define CLIENT_REMEMBER_OPTIONS (((ulong) 1) << 31) + +#define SERVER_STATUS_IN_TRANS 1 /* Transaction has started */ +#define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ +#define SERVER_STATUS_MORE_RESULTS 4 /* More results on server */ +#define SERVER_MORE_RESULTS_EXISTS 8 /* Multi query - next query exists */ +#define SERVER_QUERY_NO_GOOD_INDEX_USED 16 +#define SERVER_QUERY_NO_INDEX_USED 32 +/* + The server was able to fulfill the clients request and opened a + read-only non-scrollable cursor for a query. This flag comes + in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands. +*/ +#define SERVER_STATUS_CURSOR_EXISTS 64 +/* + This flag is sent when a read-only cursor is exhausted, in reply to + COM_STMT_FETCH command. +*/ +#define SERVER_STATUS_LAST_ROW_SENT 128 +#define SERVER_STATUS_DB_DROPPED 256 /* A database was dropped */ +#define SERVER_STATUS_NO_BACKSLASH_ESCAPES 512 + +#define MYSQL_ERRMSG_SIZE 512 +#define NET_READ_TIMEOUT 30 /* Timeout on read */ +#define NET_WRITE_TIMEOUT 60 /* Timeout on write */ +#define NET_WAIT_TIMEOUT 8*60*60 /* Wait for new query */ + +#define ONLY_KILL_QUERY 1 + +struct st_vio; /* Only C */ +typedef struct st_vio Vio; + +#define MAX_TINYINT_WIDTH 3 /* Max width for a TINY w.o. sign */ +#define MAX_SMALLINT_WIDTH 5 /* Max width for a SHORT w.o. sign */ +#define MAX_MEDIUMINT_WIDTH 8 /* Max width for a INT24 w.o. sign */ +#define MAX_INT_WIDTH 10 /* Max width for a LONG w.o. sign */ +#define MAX_BIGINT_WIDTH 20 /* Max width for a LONGLONG */ +#define MAX_CHAR_WIDTH 255 /* Max length for a CHAR colum */ +#define MAX_BLOB_WIDTH 8192 /* Default width for blob */ + +typedef struct st_net { +#if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY) + Vio* vio; + unsigned char *buff,*buff_end,*write_pos,*read_pos; + my_socket fd; /* For Perl DBI/dbd */ + unsigned long max_packet,max_packet_size; + unsigned int pkt_nr,compress_pkt_nr; + unsigned int write_timeout, read_timeout, retry_count; + int fcntl; + my_bool compress; + /* + The following variable is set if we are doing several queries in one + command ( as in LOAD TABLE ... FROM MASTER ), + and do not want to confuse the client with OK at the wrong time + */ + unsigned long remain_in_buf,length, buf_length, where_b; + unsigned int *return_status; + unsigned char reading_or_writing; + char save_char; + my_bool no_send_ok; /* For SPs and other things that do multiple stmts */ + my_bool no_send_eof; /* For SPs' first version read-only cursors */ + /* + Set if OK packet is already sent, and we do not need to send error + messages + */ + my_bool no_send_error; + /* + Pointer to query object in query cache, do not equal NULL (0) for + queries in cache that have not stored its results yet + */ +#endif + char last_error[MYSQL_ERRMSG_SIZE], sqlstate[SQLSTATE_LENGTH+1]; + unsigned int last_errno; + unsigned char error; + gptr query_cache_query; + my_bool report_error; /* We should report error (we have unreported error) */ + my_bool return_errno; +} NET; + +#define packet_error (~(unsigned long) 0) + +enum enum_field_types { MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY, + MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG, + MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, + MYSQL_TYPE_NULL, MYSQL_TYPE_TIMESTAMP, + MYSQL_TYPE_LONGLONG,MYSQL_TYPE_INT24, + MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, + MYSQL_TYPE_DATETIME, MYSQL_TYPE_YEAR, + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + MYSQL_TYPE_BIT, + MYSQL_TYPE_NEWDECIMAL=246, + MYSQL_TYPE_ENUM=247, + MYSQL_TYPE_SET=248, + MYSQL_TYPE_TINY_BLOB=249, + MYSQL_TYPE_MEDIUM_BLOB=250, + MYSQL_TYPE_LONG_BLOB=251, + MYSQL_TYPE_BLOB=252, + MYSQL_TYPE_VAR_STRING=253, + MYSQL_TYPE_STRING=254, + MYSQL_TYPE_GEOMETRY=255 + +}; + +/* For backward compatibility */ +#define CLIENT_MULTI_QUERIES CLIENT_MULTI_STATEMENTS +#define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL +#define FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL +#define FIELD_TYPE_TINY MYSQL_TYPE_TINY +#define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT +#define FIELD_TYPE_LONG MYSQL_TYPE_LONG +#define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT +#define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE +#define FIELD_TYPE_NULL MYSQL_TYPE_NULL +#define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP +#define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG +#define FIELD_TYPE_INT24 MYSQL_TYPE_INT24 +#define FIELD_TYPE_DATE MYSQL_TYPE_DATE +#define FIELD_TYPE_TIME MYSQL_TYPE_TIME +#define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME +#define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR +#define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE +#define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM +#define FIELD_TYPE_SET MYSQL_TYPE_SET +#define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB +#define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB +#define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB +#define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB +#define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING +#define FIELD_TYPE_STRING MYSQL_TYPE_STRING +#define FIELD_TYPE_CHAR MYSQL_TYPE_TINY +#define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM +#define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY +#define FIELD_TYPE_BIT MYSQL_TYPE_BIT + + +/* Shutdown/kill enums and constants */ + +/* Bits for THD::killable. */ +#define MYSQL_SHUTDOWN_KILLABLE_CONNECT (unsigned char)(1 << 0) +#define MYSQL_SHUTDOWN_KILLABLE_TRANS (unsigned char)(1 << 1) +#define MYSQL_SHUTDOWN_KILLABLE_LOCK_TABLE (unsigned char)(1 << 2) +#define MYSQL_SHUTDOWN_KILLABLE_UPDATE (unsigned char)(1 << 3) + +enum mysql_enum_shutdown_level { + /* + We want levels to be in growing order of hardness (because we use number + comparisons). Note that DEFAULT does not respect the growing property, but + it's ok. + */ + SHUTDOWN_DEFAULT = 0, + /* wait for existing connections to finish */ + SHUTDOWN_WAIT_CONNECTIONS= MYSQL_SHUTDOWN_KILLABLE_CONNECT, + /* wait for existing trans to finish */ + SHUTDOWN_WAIT_TRANSACTIONS= MYSQL_SHUTDOWN_KILLABLE_TRANS, + /* wait for existing updates to finish (=> no partial MyISAM update) */ + SHUTDOWN_WAIT_UPDATES= MYSQL_SHUTDOWN_KILLABLE_UPDATE, + /* flush InnoDB buffers and other storage engines' buffers*/ + SHUTDOWN_WAIT_ALL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1), + /* don't flush InnoDB buffers, flush other storage engines' buffers*/ + SHUTDOWN_WAIT_CRITICAL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1) + 1, + /* Now the 2 levels of the KILL command */ +#if MYSQL_VERSION_ID >= 50000 + KILL_QUERY= 254, +#endif + KILL_CONNECTION= 255 +}; + + +enum enum_cursor_type +{ + CURSOR_TYPE_NO_CURSOR= 0, + CURSOR_TYPE_READ_ONLY= 1, + CURSOR_TYPE_FOR_UPDATE= 2, + CURSOR_TYPE_SCROLLABLE= 4 +}; + + +/* options for mysql_set_option */ +enum enum_mysql_set_option +{ + MYSQL_OPTION_MULTI_STATEMENTS_ON, + MYSQL_OPTION_MULTI_STATEMENTS_OFF +}; + +#define net_new_transaction(net) ((net)->pkt_nr=0) + +#ifdef __cplusplus +extern "C" { +#endif + +my_bool my_net_init(NET *net, Vio* vio); +void my_net_local_init(NET *net); +void net_end(NET *net); +void net_clear(NET *net); +my_bool net_realloc(NET *net, unsigned long length); +my_bool net_flush(NET *net); +my_bool my_net_write(NET *net,const char *packet,unsigned long len); +my_bool net_write_command(NET *net,unsigned char command, + const char *header, unsigned long head_len, + const char *packet, unsigned long len); +int net_real_write(NET *net,const char *packet,unsigned long len); +unsigned long my_net_read(NET *net); + +/* + The following function is not meant for normal usage + Currently it's used internally by manager.c +*/ +struct sockaddr; +int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen, + unsigned int timeout); + +struct rand_struct { + unsigned long seed1,seed2,max_value; + double max_value_dbl; +}; + +#ifdef __cplusplus +} +#endif + + /* The following is for user defined functions */ + +enum Item_result {STRING_RESULT=0, REAL_RESULT, INT_RESULT, ROW_RESULT, + DECIMAL_RESULT}; + +typedef struct st_udf_args +{ + unsigned int arg_count; /* Number of arguments */ + enum Item_result *arg_type; /* Pointer to item_results */ + char **args; /* Pointer to argument */ + unsigned long *lengths; /* Length of string arguments */ + char *maybe_null; /* Set to 1 for all maybe_null args */ + char **attributes; /* Pointer to attribute name */ + unsigned long *attribute_lengths; /* Length of attribute arguments */ +} UDF_ARGS; + + /* This holds information about the result */ + +typedef struct st_udf_init +{ + my_bool maybe_null; /* 1 if function can return NULL */ + unsigned int decimals; /* for real functions */ + unsigned long max_length; /* For string functions */ + char *ptr; /* free pointer for function data */ + my_bool const_item; /* 0 if result is independent of arguments */ +} UDF_INIT; + + /* Constants when using compression */ +#define NET_HEADER_SIZE 4 /* standard header size */ +#define COMP_HEADER_SIZE 3 /* compression header extra size */ + + /* Prototypes to password functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + These functions are used for authentication by client and server and + implemented in sql/password.c +*/ + +void randominit(struct rand_struct *, unsigned long seed1, + unsigned long seed2); +double my_rnd(struct rand_struct *); +void create_random_string(char *to, unsigned int length, struct rand_struct *rand_st); + +void hash_password(unsigned long *to, const char *password, unsigned int password_len); +void make_scrambled_password_323(char *to, const char *password); +void scramble_323(char *to, const char *message, const char *password); +my_bool check_scramble_323(const char *, const char *message, + unsigned long *salt); +void get_salt_from_password_323(unsigned long *res, const char *password); +void make_password_from_salt_323(char *to, const unsigned long *salt); + +void make_scrambled_password(char *to, const char *password); +void scramble(char *to, const char *message, const char *password); +my_bool check_scramble(const char *reply, const char *message, + const unsigned char *hash_stage2); +void get_salt_from_password(unsigned char *res, const char *password); +void make_password_from_salt(char *to, const unsigned char *hash_stage2); +char *octet2hex(char *to, const char *str, unsigned int len); + +/* end of password.c */ + +char *get_tty_password(char *opt_message); +const char *mysql_errno_to_sqlstate(unsigned int mysql_errno); + +/* Some other useful functions */ + +my_bool my_init(void); +extern int modify_defaults_file(const char *file_location, const char *option, + const char *option_value, + const char *section_name, int remove_option); +int load_defaults(const char *conf_file, const char **groups, + int *argc, char ***argv); +my_bool my_thread_init(void); +void my_thread_end(void); + +#ifdef _global_h +ulong STDCALL net_field_length(uchar **packet); +my_ulonglong net_field_length_ll(uchar **packet); +char *net_store_length(char *pkg, ulonglong length); +#endif + +#ifdef __cplusplus +} +#endif + +#define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */ +#define MYSQL_STMT_HEADER 4 +#define MYSQL_LONG_DATA_HEADER 6 + +#endif diff --git a/3rdparty/mysql/include/mysql_time.h b/3rdparty/mysql/include/mysql_time.h new file mode 100644 index 000000000..5f4fc12c0 --- /dev/null +++ b/3rdparty/mysql/include/mysql_time.h @@ -0,0 +1,56 @@ +/* Copyright (C) 2004 MySQL AB & MySQL Finland AB & TCX DataKonsult AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef _mysql_time_h_ +#define _mysql_time_h_ + +/* + Time declarations shared between the server and client API: + you should not add anything to this header unless it's used + (and hence should be visible) in mysql.h. + If you're looking for a place to add new time-related declaration, + it's most likely my_time.h. See also "C API Handling of Date + and Time Values" chapter in documentation. +*/ + +enum enum_mysql_timestamp_type +{ + MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1, + MYSQL_TIMESTAMP_DATE= 0, MYSQL_TIMESTAMP_DATETIME= 1, MYSQL_TIMESTAMP_TIME= 2 +}; + + +/* + Structure which is used to represent datetime values inside MySQL. + + We assume that values in this structure are normalized, i.e. year <= 9999, + month <= 12, day <= 31, hour <= 23, hour <= 59, hour <= 59. Many functions + in server such as my_system_gmt_sec() or make_time() family of functions + rely on this (actually now usage of make_*() family relies on a bit weaker + restriction). Also functions that produce MYSQL_TIME as result ensure this. + There is one exception to this rule though if this structure holds time + value (time_type == MYSQL_TIMESTAMP_TIME) days and hour member can hold + bigger values. +*/ +typedef struct st_mysql_time +{ + unsigned int year, month, day, hour, minute, second; + unsigned long second_part; + my_bool neg; + enum enum_mysql_timestamp_type time_type; +} MYSQL_TIME; + +#endif /* _mysql_time_h_ */ diff --git a/3rdparty/mysql/include/mysql_version.h b/3rdparty/mysql/include/mysql_version.h new file mode 100644 index 000000000..473a19987 --- /dev/null +++ b/3rdparty/mysql/include/mysql_version.h @@ -0,0 +1,29 @@ +/* Copyright Abandoned 1996, 1999, 2001 MySQL AB + This file is public domain and comes with NO WARRANTY of any kind */ + +/* Version numbers for protocol & mysqld */ + +#ifndef _mysql_version_h +#define _mysql_version_h +#ifdef _CUSTOMCONFIG_ +#include +#else +#define PROTOCOL_VERSION 10 +#define MYSQL_SERVER_VERSION "5.0.20" +#define MYSQL_BASE_VERSION "mysqld-5.0" +#define MYSQL_SERVER_SUFFIX_DEF "-community-max-nt" +#define FRM_VER 6 +#define MYSQL_VERSION_ID 50020 +#define MYSQL_PORT 3306 +#define MYSQL_UNIX_ADDR "/tmp/mysql.sock" +#define MYSQL_CONFIG_NAME "my" +#define MYSQL_COMPILATION_COMMENT "MySQL Community Edition - Max (GPL)" + +/* mysqld compile time options */ +#endif /* _CUSTOMCONFIG_ */ + +#ifndef LICENSE +#define LICENSE GPL +#endif /* LICENSE */ + +#endif /* _mysql_version_h */ diff --git a/3rdparty/mysql/include/raid.h b/3rdparty/mysql/include/raid.h new file mode 100644 index 000000000..c840afcba --- /dev/null +++ b/3rdparty/mysql/include/raid.h @@ -0,0 +1,159 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* Parser needs these defines always, even if USE_RAID is not defined */ +#define RAID_TYPE_0 1 /* Striping */ +#define RAID_TYPE_x 2 /* Some new modes */ +#define RAID_TYPE_y 3 + +#define RAID_DEFAULT_CHUNKS 4 +#define RAID_DEFAULT_CHUNKSIZE 256*1024 /* 256kB */ + +C_MODE_START +#define my_raid_type(raid_type) raid_type_string[(int)(raid_type)] +extern const char *raid_type_string[]; +C_MODE_END + +#ifdef DONT_USE_RAID +#undef USE_RAID +#endif +#if defined(USE_RAID) + +#include "my_dir.h" + +/* Trap all occurences of my_...() in source and use our wrapper around this function */ + +#ifdef MAP_TO_USE_RAID +#define my_read(A,B,C,D) my_raid_read(A,B,C,D) +#define my_write(A,B,C,D) my_raid_write(A,B,C,D) +#define my_pwrite(A,B,C,D,E) my_raid_pwrite(A,B,C,D,E) +#define my_pread(A,B,C,D,E) my_raid_pread(A,B,C,D,E) +#define my_chsize(A,B,C,D) my_raid_chsize(A,B,C,D) +#define my_close(A,B) my_raid_close(A,B) +#define my_tell(A,B) my_raid_tell(A,B) +#define my_seek(A,B,C,D) my_raid_seek(A,B,C,D) +#define my_lock(A,B,C,D,E) my_raid_lock(A,B,C,D,E) +#define my_fstat(A,B,C) my_raid_fstat(A,B,C) +#endif /* MAP_TO_USE_RAID */ + +#ifdef __cplusplus +extern "C" { +#endif + + void init_raid(void); + void end_raid(void); + + bool is_raid(File fd); + File my_raid_create(const char *FileName, int CreateFlags, int access_flags, + uint raid_type, uint raid_chunks, ulong raid_chunksize, + myf MyFlags); + File my_raid_open(const char *FileName, int Flags, + uint raid_type, uint raid_chunks, ulong raid_chunksize, + myf MyFlags); + int my_raid_rename(const char *from, const char *to, uint raid_chunks, + myf MyFlags); + int my_raid_delete(const char *from, uint raid_chunks, myf MyFlags); + int my_raid_redel(const char *old_name, const char *new_name, + uint raid_chunks, myf MyFlags); + + my_off_t my_raid_seek(File fd, my_off_t pos, int whence, myf MyFlags); + my_off_t my_raid_tell(File fd, myf MyFlags); + + uint my_raid_write(File,const byte *Buffer, uint Count, myf MyFlags); + uint my_raid_read(File Filedes, byte *Buffer, uint Count, myf MyFlags); + + uint my_raid_pread(File Filedes, byte *Buffer, uint Count, my_off_t offset, + myf MyFlags); + uint my_raid_pwrite(int Filedes, const byte *Buffer, uint Count, + my_off_t offset, myf MyFlags); + + int my_raid_lock(File,int locktype, my_off_t start, my_off_t length, + myf MyFlags); + int my_raid_chsize(File fd, my_off_t newlength, int filler, myf MyFlags); + int my_raid_close(File, myf MyFlags); + int my_raid_fstat(int Filedes, struct stat *buf, myf MyFlags); + +#ifdef __cplusplus +} + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +class RaidName { + public: + RaidName(const char *FileName); + ~RaidName(); + bool IsRaid(); + int Rename(const char * from, const char * to, myf MyFlags); + private: + uint _raid_type; /* RAID_TYPE_0 or RAID_TYPE_1 or RAID_TYPE_5 */ + uint _raid_chunks; /* 1..n */ + ulong _raid_chunksize; /* 1..n in bytes */ +}; + +class RaidFd { + public: + RaidFd(uint raid_type, uint raid_chunks , ulong raid_chunksize); + ~RaidFd(); + File Create(const char *FileName, int CreateFlags, int access_flags, + myf MyFlags); + File Open(const char *FileName, int Flags, myf MyFlags); + my_off_t Seek(my_off_t pos,int whence,myf MyFlags); + my_off_t Tell(myf MyFlags); + int Write(const byte *Buffer, uint Count, myf MyFlags); + int Read(const byte *Buffer, uint Count, myf MyFlags); + int Lock(int locktype, my_off_t start, my_off_t length, myf MyFlags); + int Chsize(File fd, my_off_t newlength, int filler, myf MyFlags); + int Fstat(int fd, MY_STAT *stat_area, myf MyFlags ); + int Close(myf MyFlags); + static bool IsRaid(File fd); + static DYNAMIC_ARRAY _raid_map; /* Map of RaidFD* */ + private: + + uint _raid_type; /* RAID_TYPE_0 or RAID_TYPE_1 or RAID_TYPE_5 */ + uint _raid_chunks; /* 1..n */ + ulong _raid_chunksize; /* 1..n in bytes */ + + ulong _total_block; /* We are operating with block no x (can be 0..many). */ + uint _this_block; /* can be 0.._raid_chunks */ + uint _remaining_bytes; /* Maximum bytes that can be written in this block */ + + my_off_t _position; + my_off_t _size; /* Cached file size for faster seek(SEEK_END) */ + File _fd; + File *_fd_vector; /* Array of File */ + off_t *_seek_vector; /* Array of cached seek positions */ + + inline void Calculate() + { + DBUG_ENTER("RaidFd::_Calculate"); + DBUG_PRINT("info",("_position: %lu _raid_chunksize: %d, _size: %lu", + (ulong) _position, _raid_chunksize, (ulong) _size)); + + _total_block = (ulong) (_position / _raid_chunksize); + _this_block = _total_block % _raid_chunks; /* can be 0.._raid_chunks */ + _remaining_bytes = (uint) (_raid_chunksize - + (_position - _total_block * _raid_chunksize)); + DBUG_PRINT("info", + ("_total_block: %d this_block: %d _remaining_bytes:%d", + _total_block, _this_block, _remaining_bytes)); + DBUG_VOID_RETURN; + } +}; + +#endif /* __cplusplus */ +#endif /* USE_RAID */ diff --git a/3rdparty/mysql/include/typelib.h b/3rdparty/mysql/include/typelib.h new file mode 100644 index 000000000..4d6a90ad5 --- /dev/null +++ b/3rdparty/mysql/include/typelib.h @@ -0,0 +1,34 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + + +#ifndef _typelib_h +#define _typelib_h + +typedef struct st_typelib { /* Different types saved here */ + unsigned int count; /* How many types */ + const char *name; /* Name of typelib */ + const char **type_names; + unsigned int *type_lengths; +} TYPELIB; + +extern int find_type(char *x,TYPELIB *typelib,unsigned int full_name); +extern void make_type(char *to,unsigned int nr,TYPELIB *typelib); +extern const char *get_type(TYPELIB *typelib,unsigned int nr); + +extern TYPELIB sql_protocol_typelib; + +#endif /* _typelib_h */ diff --git a/3rdparty/mysql/lib/libmysql.lib b/3rdparty/mysql/lib/libmysql.lib new file mode 100644 index 000000000..aa99dc3b8 Binary files /dev/null and b/3rdparty/mysql/lib/libmysql.lib differ diff --git a/3rdparty/mysql/mysql-5.0.20 b/3rdparty/mysql/mysql-5.0.20 new file mode 100644 index 000000000..e69de29bb diff --git a/3rdparty/pcre/include/pcre.h b/3rdparty/pcre/include/pcre.h new file mode 100644 index 000000000..e973396ba --- /dev/null +++ b/3rdparty/pcre/include/pcre.h @@ -0,0 +1,294 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* This is the public header file for the PCRE library, to be #included by +applications that call the PCRE functions. + + Copyright (c) 1997-2006 University of Cambridge + +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + +#ifndef _PCRE_H +#define _PCRE_H + +/* The current PCRE version information. */ + +/* NOTES FOR FUTURE MAINTAINERS: Do not use numbers with leading zeros, because +they may be treated as octal constants. The PCRE_PRERELEASE feature is for +identifying release candidates. It might be defined as -RC2, for example. In +real releases, it should be defined empty. Do not change the alignment of these +statments. The code in ./configure greps out the version numbers by using "cut" +to get values from column 29 onwards. These are substituted into pcre-config +and libpcre.pc. The values are not put into configure.ac and substituted here +(which would simplify this issue) because that makes life harder for those who +cannot run ./configure. As it now stands, this file need not be edited in that +circumstance. */ + +#define PCRE_MAJOR 7 +#define PCRE_MINOR 0 +#define PCRE_PRERELEASE +#define PCRE_DATE 18-Dec-2006 + +/* Win32 uses DLL by default; it needs special stuff for exported functions +when building PCRE. */ + +#ifdef _WIN32 +# ifdef PCRE_DEFINITION +# ifdef DLL_EXPORT +# define PCRE_DATA_SCOPE __declspec(dllexport) +# endif +# else +# ifndef PCRE_STATIC +# define PCRE_DATA_SCOPE extern __declspec(dllimport) +# endif +# endif +#endif + +/* Otherwise, we use the standard "extern". */ + +#ifndef PCRE_DATA_SCOPE +# ifdef __cplusplus +# define PCRE_DATA_SCOPE extern "C" +# else +# define PCRE_DATA_SCOPE extern +# endif +#endif + +/* Have to include stdlib.h in order to ensure that size_t is defined; +it is needed here for malloc. */ + +#include + +/* Allow for C++ users */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Options */ + +#define PCRE_CASELESS 0x00000001 +#define PCRE_MULTILINE 0x00000002 +#define PCRE_DOTALL 0x00000004 +#define PCRE_EXTENDED 0x00000008 +#define PCRE_ANCHORED 0x00000010 +#define PCRE_DOLLAR_ENDONLY 0x00000020 +#define PCRE_EXTRA 0x00000040 +#define PCRE_NOTBOL 0x00000080 +#define PCRE_NOTEOL 0x00000100 +#define PCRE_UNGREEDY 0x00000200 +#define PCRE_NOTEMPTY 0x00000400 +#define PCRE_UTF8 0x00000800 +#define PCRE_NO_AUTO_CAPTURE 0x00001000 +#define PCRE_NO_UTF8_CHECK 0x00002000 +#define PCRE_AUTO_CALLOUT 0x00004000 +#define PCRE_PARTIAL 0x00008000 +#define PCRE_DFA_SHORTEST 0x00010000 +#define PCRE_DFA_RESTART 0x00020000 +#define PCRE_FIRSTLINE 0x00040000 +#define PCRE_DUPNAMES 0x00080000 +#define PCRE_NEWLINE_CR 0x00100000 +#define PCRE_NEWLINE_LF 0x00200000 +#define PCRE_NEWLINE_CRLF 0x00300000 +#define PCRE_NEWLINE_ANY 0x00400000 + +/* Exec-time and get/set-time error codes */ + +#define PCRE_ERROR_NOMATCH (-1) +#define PCRE_ERROR_NULL (-2) +#define PCRE_ERROR_BADOPTION (-3) +#define PCRE_ERROR_BADMAGIC (-4) +#define PCRE_ERROR_UNKNOWN_OPCODE (-5) +#define PCRE_ERROR_UNKNOWN_NODE (-5) /* For backward compatibility */ +#define PCRE_ERROR_NOMEMORY (-6) +#define PCRE_ERROR_NOSUBSTRING (-7) +#define PCRE_ERROR_MATCHLIMIT (-8) +#define PCRE_ERROR_CALLOUT (-9) /* Never used by PCRE itself */ +#define PCRE_ERROR_BADUTF8 (-10) +#define PCRE_ERROR_BADUTF8_OFFSET (-11) +#define PCRE_ERROR_PARTIAL (-12) +#define PCRE_ERROR_BADPARTIAL (-13) +#define PCRE_ERROR_INTERNAL (-14) +#define PCRE_ERROR_BADCOUNT (-15) +#define PCRE_ERROR_DFA_UITEM (-16) +#define PCRE_ERROR_DFA_UCOND (-17) +#define PCRE_ERROR_DFA_UMLIMIT (-18) +#define PCRE_ERROR_DFA_WSSIZE (-19) +#define PCRE_ERROR_DFA_RECURSE (-20) +#define PCRE_ERROR_RECURSIONLIMIT (-21) +#define PCRE_ERROR_NULLWSLIMIT (-22) +#define PCRE_ERROR_BADNEWLINE (-23) + +/* Request types for pcre_fullinfo() */ + +#define PCRE_INFO_OPTIONS 0 +#define PCRE_INFO_SIZE 1 +#define PCRE_INFO_CAPTURECOUNT 2 +#define PCRE_INFO_BACKREFMAX 3 +#define PCRE_INFO_FIRSTBYTE 4 +#define PCRE_INFO_FIRSTCHAR 4 /* For backwards compatibility */ +#define PCRE_INFO_FIRSTTABLE 5 +#define PCRE_INFO_LASTLITERAL 6 +#define PCRE_INFO_NAMEENTRYSIZE 7 +#define PCRE_INFO_NAMECOUNT 8 +#define PCRE_INFO_NAMETABLE 9 +#define PCRE_INFO_STUDYSIZE 10 +#define PCRE_INFO_DEFAULT_TABLES 11 + +/* Request types for pcre_config(). Do not re-arrange, in order to remain +compatible. */ + +#define PCRE_CONFIG_UTF8 0 +#define PCRE_CONFIG_NEWLINE 1 +#define PCRE_CONFIG_LINK_SIZE 2 +#define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD 3 +#define PCRE_CONFIG_MATCH_LIMIT 4 +#define PCRE_CONFIG_STACKRECURSE 5 +#define PCRE_CONFIG_UNICODE_PROPERTIES 6 +#define PCRE_CONFIG_MATCH_LIMIT_RECURSION 7 + +/* Bit flags for the pcre_extra structure. Do not re-arrange or redefine +these bits, just add new ones on the end, in order to remain compatible. */ + +#define PCRE_EXTRA_STUDY_DATA 0x0001 +#define PCRE_EXTRA_MATCH_LIMIT 0x0002 +#define PCRE_EXTRA_CALLOUT_DATA 0x0004 +#define PCRE_EXTRA_TABLES 0x0008 +#define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0x0010 + +/* Types */ + +struct real_pcre; /* declaration; the definition is private */ +typedef struct real_pcre pcre; + +/* When PCRE is compiled as a C++ library, the subject pointer type can be +replaced with a custom type. For conventional use, the public interface is a +const char *. */ + +#ifndef PCRE_SPTR +#define PCRE_SPTR const char * +#endif + +/* The structure for passing additional data to pcre_exec(). This is defined in +such as way as to be extensible. Always add new fields at the end, in order to +remain compatible. */ + +typedef struct pcre_extra { + unsigned long int flags; /* Bits for which fields are set */ + void *study_data; /* Opaque data from pcre_study() */ + unsigned long int match_limit; /* Maximum number of calls to match() */ + void *callout_data; /* Data passed back in callouts */ + const unsigned char *tables; /* Pointer to character tables */ + unsigned long int match_limit_recursion; /* Max recursive calls to match() */ +} pcre_extra; + +/* The structure for passing out data via the pcre_callout_function. We use a +structure so that new fields can be added on the end in future versions, +without changing the API of the function, thereby allowing old clients to work +without modification. */ + +typedef struct pcre_callout_block { + int version; /* Identifies version of block */ + /* ------------------------ Version 0 ------------------------------- */ + int callout_number; /* Number compiled into pattern */ + int *offset_vector; /* The offset vector */ + PCRE_SPTR subject; /* The subject being matched */ + int subject_length; /* The length of the subject */ + int start_match; /* Offset to start of this match attempt */ + int current_position; /* Where we currently are in the subject */ + int capture_top; /* Max current capture */ + int capture_last; /* Most recently closed capture */ + void *callout_data; /* Data passed in with the call */ + /* ------------------- Added for Version 1 -------------------------- */ + int pattern_position; /* Offset to next item in the pattern */ + int next_item_length; /* Length of next item in the pattern */ + /* ------------------------------------------------------------------ */ +} pcre_callout_block; + +/* Indirection for store get and free functions. These can be set to +alternative malloc/free functions if required. Special ones are used in the +non-recursive case for "frames". There is also an optional callout function +that is triggered by the (?) regex item. For Virtual Pascal, these definitions +have to take another form. */ + +#ifndef VPCOMPAT +PCRE_DATA_SCOPE void *(*pcre_malloc)(size_t); +PCRE_DATA_SCOPE void (*pcre_free)(void *); +PCRE_DATA_SCOPE void *(*pcre_stack_malloc)(size_t); +PCRE_DATA_SCOPE void (*pcre_stack_free)(void *); +PCRE_DATA_SCOPE int (*pcre_callout)(pcre_callout_block *); +#else /* VPCOMPAT */ +PCRE_DATA_SCOPE void *pcre_malloc(size_t); +PCRE_DATA_SCOPE void pcre_free(void *); +PCRE_DATA_SCOPE void *pcre_stack_malloc(size_t); +PCRE_DATA_SCOPE void pcre_stack_free(void *); +PCRE_DATA_SCOPE int pcre_callout(pcre_callout_block *); +#endif /* VPCOMPAT */ + +/* Exported PCRE functions */ + +PCRE_DATA_SCOPE pcre *pcre_compile(const char *, int, const char **, int *, + const unsigned char *); +PCRE_DATA_SCOPE pcre *pcre_compile2(const char *, int, int *, const char **, + int *, const unsigned char *); +PCRE_DATA_SCOPE int pcre_config(int, void *); +PCRE_DATA_SCOPE int pcre_copy_named_substring(const pcre *, const char *, + int *, int, const char *, char *, int); +PCRE_DATA_SCOPE int pcre_copy_substring(const char *, int *, int, int, char *, + int); +PCRE_DATA_SCOPE int pcre_dfa_exec(const pcre *, const pcre_extra *, + const char *, int, int, int, int *, int , int *, int); +PCRE_DATA_SCOPE int pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR, + int, int, int, int *, int); +PCRE_DATA_SCOPE void pcre_free_substring(const char *); +PCRE_DATA_SCOPE void pcre_free_substring_list(const char **); +PCRE_DATA_SCOPE int pcre_fullinfo(const pcre *, const pcre_extra *, int, + void *); +PCRE_DATA_SCOPE int pcre_get_named_substring(const pcre *, const char *, + int *, int, const char *, const char **); +PCRE_DATA_SCOPE int pcre_get_stringnumber(const pcre *, const char *); +PCRE_DATA_SCOPE int pcre_get_stringtable_entries(const pcre *, const char *, + char **, char **); +PCRE_DATA_SCOPE int pcre_get_substring(const char *, int *, int, int, + const char **); +PCRE_DATA_SCOPE int pcre_get_substring_list(const char *, int *, int, + const char ***); +PCRE_DATA_SCOPE int pcre_info(const pcre *, int *, int *); +PCRE_DATA_SCOPE const unsigned char *pcre_maketables(void); +PCRE_DATA_SCOPE int pcre_refcount(pcre *, int); +PCRE_DATA_SCOPE pcre_extra *pcre_study(const pcre *, int, const char **); +PCRE_DATA_SCOPE const char *pcre_version(void); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* End of pcre.h */ diff --git a/3rdparty/pcre/lib/pcre.lib b/3rdparty/pcre/lib/pcre.lib new file mode 100644 index 000000000..37b4084ef Binary files /dev/null and b/3rdparty/pcre/lib/pcre.lib differ diff --git a/3rdparty/pcre/pcre-7.0 b/3rdparty/pcre/pcre-7.0 new file mode 100644 index 000000000..e69de29bb diff --git a/3rdparty/zlib/include/zconf.h b/3rdparty/zlib/include/zconf.h new file mode 100644 index 000000000..03a9431c8 --- /dev/null +++ b/3rdparty/zlib/include/zconf.h @@ -0,0 +1,332 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#ifndef ZCONF_H +#define ZCONF_H + +/* + * If you *really* need a unique prefix for all types and library functions, + * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. + */ +#ifdef Z_PREFIX +# define deflateInit_ z_deflateInit_ +# define deflate z_deflate +# define deflateEnd z_deflateEnd +# define inflateInit_ z_inflateInit_ +# define inflate z_inflate +# define inflateEnd z_inflateEnd +# define deflateInit2_ z_deflateInit2_ +# define deflateSetDictionary z_deflateSetDictionary +# define deflateCopy z_deflateCopy +# define deflateReset z_deflateReset +# define deflateParams z_deflateParams +# define deflateBound z_deflateBound +# define deflatePrime z_deflatePrime +# define inflateInit2_ z_inflateInit2_ +# define inflateSetDictionary z_inflateSetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateCopy z_inflateCopy +# define inflateReset z_inflateReset +# define inflateBack z_inflateBack +# define inflateBackEnd z_inflateBackEnd +# define compress z_compress +# define compress2 z_compress2 +# define compressBound z_compressBound +# define uncompress z_uncompress +# define adler32 z_adler32 +# define crc32 z_crc32 +# define get_crc_table z_get_crc_table +# define zError z_zError + +# define alloc_func z_alloc_func +# define free_func z_free_func +# define in_func z_in_func +# define out_func z_out_func +# define Byte z_Byte +# define uInt z_uInt +# define uLong z_uLong +# define Bytef z_Bytef +# define charf z_charf +# define intf z_intf +# define uIntf z_uIntf +# define uLongf z_uLongf +# define voidpf z_voidpf +# define voidp z_voidp +#endif + +#if defined(__MSDOS__) && !defined(MSDOS) +# define MSDOS +#endif +#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) +# define OS2 +#endif +#if defined(_WINDOWS) && !defined(WINDOWS) +# define WINDOWS +#endif +#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) +# ifndef WIN32 +# define WIN32 +# endif +#endif +#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) +# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) +# ifndef SYS16BIT +# define SYS16BIT +# endif +# endif +#endif + +/* + * Compile with -DMAXSEG_64K if the alloc function cannot allocate more + * than 64k bytes at a time (needed on systems with 16-bit int). + */ +#ifdef SYS16BIT +# define MAXSEG_64K +#endif +#ifdef MSDOS +# define UNALIGNED_OK +#endif + +#ifdef __STDC_VERSION__ +# ifndef STDC +# define STDC +# endif +# if __STDC_VERSION__ >= 199901L +# ifndef STDC99 +# define STDC99 +# endif +# endif +#endif +#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) +# define STDC +#endif +#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) +# define STDC +#endif +#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) +# define STDC +#endif +#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) +# define STDC +#endif + +#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ +# define STDC +#endif + +#ifndef STDC +# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +# define const /* note: need a more gentle solution here */ +# endif +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) +# define NO_DUMMY_DECL +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +/* The following definitions for FAR are needed only for MSDOS mixed + * model programming (small or medium model with some far allocations). + * This was tested only with MSC; for other MSDOS compilers you may have + * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, + * just define FAR to be empty. + */ +#ifdef SYS16BIT +# if defined(M_I86SM) || defined(M_I86MM) + /* MSC small or medium model */ +# define SMALL_MEDIUM +# ifdef _MSC_VER +# define FAR _far +# else +# define FAR far +# endif +# endif +# if (defined(__SMALL__) || defined(__MEDIUM__)) + /* Turbo C small or medium model */ +# define SMALL_MEDIUM +# ifdef __BORLANDC__ +# define FAR _far +# else +# define FAR far +# endif +# endif +#endif + +#if defined(WINDOWS) || defined(WIN32) + /* If building or using zlib as a DLL, define ZLIB_DLL. + * This is not mandatory, but it offers a little performance increase. + */ +# ifdef ZLIB_DLL +# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) +# ifdef ZLIB_INTERNAL +# define ZEXTERN extern __declspec(dllexport) +# else +# define ZEXTERN extern __declspec(dllimport) +# endif +# endif +# endif /* ZLIB_DLL */ + /* If building or using zlib with the WINAPI/WINAPIV calling convention, + * define ZLIB_WINAPI. + * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. + */ +# ifdef ZLIB_WINAPI +# ifdef FAR +# undef FAR +# endif +# include + /* No need for _export, use ZLIB.DEF instead. */ + /* For complete Windows compatibility, use WINAPI, not __stdcall. */ +# define ZEXPORT WINAPI +# ifdef WIN32 +# define ZEXPORTVA WINAPIV +# else +# define ZEXPORTVA FAR CDECL +# endif +# endif +#endif + +#if defined (__BEOS__) +# ifdef ZLIB_DLL +# ifdef ZLIB_INTERNAL +# define ZEXPORT __declspec(dllexport) +# define ZEXPORTVA __declspec(dllexport) +# else +# define ZEXPORT __declspec(dllimport) +# define ZEXPORTVA __declspec(dllimport) +# endif +# endif +#endif + +#ifndef ZEXTERN +# define ZEXTERN extern +#endif +#ifndef ZEXPORT +# define ZEXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA +#endif + +#ifndef FAR +# define FAR +#endif + +#if !defined(__MACTYPES__) +typedef unsigned char Byte; /* 8 bits */ +#endif +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +#ifdef SMALL_MEDIUM + /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ +# define Bytef Byte FAR +#else + typedef Byte FAR Bytef; +#endif +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void const *voidpc; + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte const *voidpc; + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +#if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */ +# include /* for off_t */ +# include /* for SEEK_* and off_t */ +# ifdef VMS +# include /* for off_t */ +# endif +# define z_off_t off_t +#endif +#ifndef SEEK_SET +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif +#ifndef z_off_t +# define z_off_t long +#endif + +#if defined(__OS400__) +# define NO_vsnprintf +#endif + +#if defined(__MVS__) +# define NO_vsnprintf +# ifdef FAR +# undef FAR +# endif +#endif + +/* MVS linker does not support external names larger than 8 bytes */ +#if defined(__MVS__) +# pragma map(deflateInit_,"DEIN") +# pragma map(deflateInit2_,"DEIN2") +# pragma map(deflateEnd,"DEEND") +# pragma map(deflateBound,"DEBND") +# pragma map(inflateInit_,"ININ") +# pragma map(inflateInit2_,"ININ2") +# pragma map(inflateEnd,"INEND") +# pragma map(inflateSync,"INSY") +# pragma map(inflateSetDictionary,"INSEDI") +# pragma map(compressBound,"CMBND") +# pragma map(inflate_table,"INTABL") +# pragma map(inflate_fast,"INFA") +# pragma map(inflate_copyright,"INCOPY") +#endif + +#endif /* ZCONF_H */ diff --git a/3rdparty/zlib/include/zlib.h b/3rdparty/zlib/include/zlib.h new file mode 100644 index 000000000..022817927 --- /dev/null +++ b/3rdparty/zlib/include/zlib.h @@ -0,0 +1,1357 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.3, July 18th, 2005 + + Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +*/ + +#ifndef ZLIB_H +#define ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.2.3" +#define ZLIB_VERNUM 0x1230 + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed + data. This version of the library supports only one compression method + (deflation) but other algorithms will be added later and will have the same + stream interface. + + Compression can be done in a single step if the buffers are large + enough (for example if an input file is mmap'ed), or can be done by + repeated calls of the compression function. In the latter case, the + application must provide more input and/or consume the output + (providing more output space) before each call. + + The compressed data format used by default by the in-memory functions is + the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped + around a deflate stream, which is itself documented in RFC 1951. + + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio using the functions that start + with "gz". The gzip format is different from the zlib format. gzip is a + gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. + + This library can optionally read and write gzip streams in memory as well. + + The zlib format was designed to be compact and fast for use in memory + and on communications channels. The gzip format was designed for single- + file compression on file systems, has a larger header than zlib to maintain + directory information, and uses a different, slower check method than zlib. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never + crash even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total nb of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total nb of bytes output so far */ + + char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: binary or text */ + uLong adler; /* adler32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* + gzip header information passed to and from zlib routines. See RFC 1952 + for more details on the meanings of these fields. +*/ +typedef struct gz_header_s { + int text; /* true if compressed data believed to be text */ + uLong time; /* modification time */ + int xflags; /* extra flags (not used when writing a gzip file) */ + int os; /* operating system */ + Bytef *extra; /* pointer to extra field or Z_NULL if none */ + uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ + uInt extra_max; /* space at extra (only when reading header) */ + Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ + uInt name_max; /* space at name (only when reading header) */ + Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ + uInt comm_max; /* space at comment (only when reading header) */ + int hcrc; /* true if there was or will be a header crc */ + int done; /* true when done reading gzip header (not used + when writing a gzip file) */ +} gz_header; + +typedef gz_header FAR *gz_headerp; + +/* + The application must update next_in and avail_in when avail_in has + dropped to zero. It must update next_out and avail_out when avail_out + has dropped to zero. The application must initialize zalloc, zfree and + opaque before calling the init function. All other fields are set by the + compression library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this + if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, + pointers returned by zalloc for objects of exactly 65536 bytes *must* + have their offset normalized to zero. The default allocation function + provided by this library ensures this (see zutil.c). To reduce memory + requirements and avoid any allocation of 64K objects, at the expense of + compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or + progress reports. After compression, total_in holds the total size of + the uncompressed data and may be saved for use in the decompressor + (particularly if the decompressor wants to decompress everything in + a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +#define Z_BLOCK 5 +/* Allowed flush values; see deflate() and inflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative + * values are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_RLE 3 +#define Z_FIXED 4 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_TEXT 1 +#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ +#define Z_UNKNOWN 2 +/* Possible values of the data_type field (though see inflate()) */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is + not compatible with the zlib.h header file used by the application. + This check is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. + If zalloc and zfree are set to Z_NULL, deflateInit updates them to + use default allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at + all (the input data is simply copied a block at a time). + Z_DEFAULT_COMPRESSION requests a default compromise between speed and + compression (currently equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if level is not a valid compression level, + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). + msg is set to null if there is no error message. deflateInit does not + perform any compression: this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce some + output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. deflate performs one or both of the + following actions: + + - Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). + Some output may be provided even if flush is not set. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating avail_in or avail_out accordingly; avail_out + should never be zero before the call. The application can consume the + compressed output when it wants, for example when the output buffer is full + (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK + and with zero avail_out, it must be called again after making room in the + output buffer because there might be more output pending. + + Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to + decide how much data to accumualte before producing output, in order to + maximize compression. + + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In particular + avail_in is zero after the call if enough output space has been provided + before the call.) Flushing may degrade compression for some compression + algorithms and so it should be used only when necessary. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + compression. + + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that + avail_out is greater than six to avoid repeated flush markers due to + avail_out == 0 on return. + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there + was enough output space; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the + stream are deflateReset or deflateEnd. + + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least + the value returned by deflateBound (see below). If deflate does not return + Z_STREAM_END, then it must be called again as described above. + + deflate() sets strm->adler to the adler32 checksum of all input read + so far (that is, total_in bytes). + + deflate() may update strm->data_type if it can make a good guess about + the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered + binary. This field is only for information purposes and does not affect + the compression algorithm in any manner. + + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not + fatal, and deflate() can be called again with more input and more output + space to continue compressing. +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, + msg may be set but then points to a static string (which must not be + deallocated). +*/ + + +/* +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + + Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the exact + value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller. msg is set to null if there is no error + message. inflateInit does not perform any decompression apart from reading + the zlib header if present: this will be done by inflate(). (So next_in and + avail_in may be modified, but next_out and avail_out are unchanged.) +*/ + + +ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +/* + inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. inflate performs one or both of the + following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing + will resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() provides as much output as possible, until there + is no more input data or no more space in the output buffer (see below + about the flush parameter). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating the next_* and avail_* values accordingly. + The application can consume the uncompressed output when it wants, for + example when the output buffer is full (avail_out == 0), or after each + call of inflate(). If inflate returns Z_OK and with zero avail_out, it + must be called again after making room in the output buffer because there + might be more output pending. + + The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, + Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much + output as possible to the output buffer. Z_BLOCK requests that inflate() stop + if and when it gets to the next deflate block boundary. When decoding the + zlib or gzip format, this will cause inflate() to return immediately after + the header and before the first block. When doing a raw inflate, inflate() + will go ahead and process the first block, and will return when it gets to + the end of that block, or when it runs out of data. + + The Z_BLOCK option assists in appending to or combining deflate streams. + Also to assist in this, on return inflate() will set strm->data_type to the + number of unused bits in the last byte taken from strm->next_in, plus 64 + if inflate() is currently decoding the last block in the deflate stream, + plus 128 if inflate() returned immediately after decoding an end-of-block + code or decoding the complete header up to just before the first byte of the + deflate stream. The end-of-block will not be indicated until all of the + uncompressed data from that block has been written to strm->next_out. The + number of unused bits may in general be greater than seven, except when + bit 7 of data_type is set, in which case the number of unused bits will be + less than eight. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step + (a single call of inflate), the parameter flush should be set to + Z_FINISH. In this case all pending input is processed and all pending + output is flushed; avail_out must be large enough to hold all the + uncompressed data. (The size of the uncompressed data may have been saved + by the compressor for this purpose.) The next operation on this stream must + be inflateEnd to deallocate the decompression state. The use of Z_FINISH + is never required, but can be used to inform inflate that a faster approach + may be used for the single inflate() call. + + In this implementation, inflate() always flushes as much output as + possible to the output buffer, and always uses the faster approach on the + first call. So the only effect of the flush parameter in this implementation + is on the return value of inflate(), as noted below, or when it returns early + because Z_BLOCK is used. + + If a preset dictionary is needed after this call (see inflateSetDictionary + below), inflate sets strm->adler to the adler32 checksum of the dictionary + chosen by the compressor and returns Z_NEED_DICT; otherwise it sets + strm->adler to the adler32 checksum of all output produced so far (that is, + total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described + below. At the end of the stream, inflate() checks that its computed adler32 + checksum is equal to that saved by the compressor and returns Z_STREAM_END + only if the checksum is correct. + + inflate() will decompress and check either zlib-wrapped or gzip-wrapped + deflate data. The header type is detected automatically. Any information + contained in the gzip header is not retained, so applications that need that + information should instead use raw inflate, see inflateInit2() below, or + inflateBack() and perform their own processing of the gzip header and + trailer. + + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect check + value), Z_STREAM_ERROR if the stream structure was inconsistent (for example + if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory, + Z_BUF_ERROR if no progress is possible or if there was not enough room in the + output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and + inflate() can be called again with more input and more output space to + continue decompressing. If Z_DATA_ERROR is returned, the application may then + call inflateSync() to look for a good compression block if a partial recovery + of the data is desired. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + /* Advanced functions */ + +/* + The following functions are needed only in some special applications. +*/ + +/* +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy)); + + This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by + the caller. + + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library. + + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead. + + windowBits can also be -8..-15 for raw deflate. In this case, -windowBits + determines the window size. deflate() will then generate raw deflate data + with no zlib header or trailer, and will not compute an adler32 check value. + + windowBits can also be greater than 15 for optional gzip encoding. Add + 16 to windowBits to write a simple gzip header and trailer around the + compressed data instead of a zlib wrapper. The gzip header will have no + file name, no extra data, no comment, no modification time (set to zero), + no header crc, and the operating system will be set to 255 (unknown). If a + gzip stream is being written, strm->adler is a crc32 instead of an adler32. + + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but + is slow and reduces compression ratio; memLevel=9 uses maximum memory + for optimal speed. The default value is 8. See zconf.h for total memory + usage as a function of windowBits and memLevel. + + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match), or Z_RLE to limit match distances to one (run-length + encoding). Filtered data consists mostly of small values with a somewhat + random distribution. In this case, the compression algorithm is tuned to + compress them better. The effect of Z_FILTERED is to force more Huffman + coding and less string matching; it is somewhat intermediate between + Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as + Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy + parameter only affects the compression ratio but not the correctness of the + compressed output even if it is not set appropriately. Z_FIXED prevents the + use of dynamic Huffman codes, allowing for a simpler decoder for special + applications. + + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid + method). msg is set to null if there is no error message. deflateInit2 does + not perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the compression dictionary from the given byte sequence + without producing any compressed output. This function must be called + immediately after deflateInit, deflateInit2 or deflateReset, before any + call of deflate. The compressor and decompressor must use exactly the same + dictionary (see inflateSetDictionary). + + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy; the data can then be compressed better than + with the default empty dictionary. + + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size in + deflate or deflate2. Thus the strings most likely to be useful should be + put at the end of the dictionary, not at the front. In addition, the + current implementation of deflate will use at most the window size minus + 262 bytes of the provided dictionary. + + Upon return of this function, strm->adler is set to the adler32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.) If a raw deflate was requested, then the + adler32 value is not computed and strm->adler is not set. + + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if the compression method is bsort). deflateSetDictionary does not + perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and + can consume lots of memory. + + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* + This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. + The stream will keep the same compression level and any other attributes + that may have been set by deflateInit2. + + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, + int level, + int strategy)); +/* + Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different + strategy. If the compression level is changed, the input available so far + is compressed with the old level (and may be flushed); the new level will + take effect only at the next call of deflate(). + + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to + be compressed and flushed. In particular, strm->avail_out must be non-zero. + + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR + if strm->avail_out was zero. +*/ + +ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain)); +/* + Fine tune deflate's internal compression parameters. This should only be + used by someone who understands the algorithm used by zlib's deflate for + searching for the best matching string, and even then only by the most + fanatic optimizer trying to squeeze out the last compressed bit for their + specific input data. Read the deflate.c source code for the meaning of the + max_lazy, good_length, nice_length, and max_chain parameters. + + deflateTune() can be called after deflateInit() or deflateInit2(), and + returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. + */ + +ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, + uLong sourceLen)); +/* + deflateBound() returns an upper bound on the compressed size after + deflation of sourceLen bytes. It must be called after deflateInit() + or deflateInit2(). This would be used to allocate an output buffer + for deflation in a single pass, and so would be called before deflate(). +*/ + +ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + deflatePrime() inserts bits in the deflate output stream. The intent + is that this function is used to start off the deflate output with the + bits leftover from a previous deflate stream when appending to it. As such, + this function can only be used for raw deflate, and must be used before the + first deflate() call after a deflateInit2() or deflateReset(). bits must be + less than or equal to 16, and that many of the least significant bits of + value will be inserted in the output. + + deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, + gz_headerp head)); +/* + deflateSetHeader() provides gzip header information for when a gzip + stream is requested by deflateInit2(). deflateSetHeader() may be called + after deflateInit2() or deflateReset() and before the first call of + deflate(). The text, time, os, extra field, name, and comment information + in the provided gz_header structure are written to the gzip header (xflag is + ignored -- the extra flags are set according to the compression level). The + caller must assure that, if not Z_NULL, name and comment are terminated with + a zero byte, and that if extra is not Z_NULL, that extra_len bytes are + available there. If hcrc is true, a gzip header crc is included. Note that + the current versions of the command-line version of gzip (up through version + 1.3.x) do not support header crc's, and will report that it is a "multi-part + gzip file" and give up. + + If deflateSetHeader is not used, the default gzip header has text false, + the time set to zero, and os set to 255, with no extra, name, or comment + fields. The gzip header is returned to the default state by deflateReset(). + + deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, + int windowBits)); + + This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. windowBits must be greater than or equal to the windowBits value + provided to deflateInit2() while compressing, or it must be equal to 15 if + deflateInit2() was not used. If a compressed stream with a larger window + size is given as input, inflate() will return with the error code + Z_DATA_ERROR instead of trying to allocate a larger window. + + windowBits can also be -8..-15 for raw inflate. In this case, -windowBits + determines the window size. inflate() will then process raw deflate data, + not looking for a zlib or gzip header, not generating a check value, and not + looking for any check values for comparison at the end of the stream. This + is for use with other formats that use the deflate compressed data format + such as zip. Those formats provide their own check values. If a custom + format is developed using the raw deflate format for compressed data, it is + recommended that a check value such as an adler32 or a crc32 be applied to + the uncompressed data as is done in the zlib, gzip, and zip formats. For + most applications, the zlib format should be used as is. Note that comments + above on the use in deflateInit2() applies to the magnitude of windowBits. + + windowBits can also be greater than 15 for optional gzip decoding. Add + 32 to windowBits to enable zlib and gzip decoding with automatic header + detection, or add 16 to decode only the gzip format (the zlib format will + return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is + a crc32 instead of an adler32. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg + is set to null if there is no error message. inflateInit2 does not perform + any decompression apart from reading the zlib header if present: this will + be done by inflate(). (So next_in and avail_in may be modified, but next_out + and avail_out are unchanged.) +*/ + +ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate, + if that call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the adler32 value returned by that call of inflate. + The compressor and decompressor must use exactly the same dictionary (see + deflateSetDictionary). For raw inflate, this function can be called + immediately after inflateInit2() or inflateReset() and before any call of + inflate() to set the dictionary. The application must insure that the + dictionary that was used for compression is provided. + + inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate(). +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/* + Skips invalid compressed data until a full flush point (see above the + description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided. + + inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR + if no more input was provided, Z_DATA_ERROR if no flush point has been found, + or Z_STREAM_ERROR if the stream structure was inconsistent. In the success + case, the application may save the current current value of total_in which + indicates where valid compressed data was found. In the error case, the + application may repeatedly call inflateSync, providing more input each time, + until success or end of the input data. +*/ + +ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when randomly accessing a large stream. The + first pass through the stream can periodically record the inflate state, + allowing restarting inflate at those points when randomly accessing the + stream. + + inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. + The stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + This function inserts bits in the inflate input stream. The intent is + that this function is used to start inflating at a bit position in the + middle of a byte. The provided bits will be used before any bytes are used + from next_in. This function should only be used with raw inflate, and + should be used before the first inflate() call after inflateInit2() or + inflateReset(). bits must be less than or equal to 16, and that many of the + least significant bits of value will be inserted in the input. + + inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, + gz_headerp head)); +/* + inflateGetHeader() requests that gzip header information be stored in the + provided gz_header structure. inflateGetHeader() may be called after + inflateInit2() or inflateReset(), and before the first call of inflate(). + As inflate() processes the gzip stream, head->done is zero until the header + is completed, at which time head->done is set to one. If a zlib stream is + being decoded, then head->done is set to -1 to indicate that there will be + no gzip header information forthcoming. Note that Z_BLOCK can be used to + force inflate() to return immediately after header processing is complete + and before any actual data is decompressed. + + The text, time, xflags, and os fields are filled in with the gzip header + contents. hcrc is set to true if there is a header CRC. (The header CRC + was valid if done is set to one.) If extra is not Z_NULL, then extra_max + contains the maximum number of bytes to write to extra. Once done is true, + extra_len contains the actual extra field length, and extra contains the + extra field, or that field truncated if extra_max is less than extra_len. + If name is not Z_NULL, then up to name_max characters are written there, + terminated with a zero unless the length is greater than name_max. If + comment is not Z_NULL, then up to comm_max characters are written there, + terminated with a zero unless the length is greater than comm_max. When + any of extra, name, or comment are not Z_NULL and the respective field is + not present in the header, then that field is set to Z_NULL to signal its + absence. This allows the use of deflateSetHeader() with the returned + structure to duplicate the header. However if those fields are set to + allocated memory, then the application will need to save those pointers + elsewhere so that they can be eventually freed. + + If inflateGetHeader is not used, then the header information is simply + discarded. The header is always checked for validity, including the header + CRC if present. inflateReset() will reset the process to discard the header + information. The application would need to call inflateGetHeader() again to + retrieve the header from the next gzip stream. + + inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, + unsigned char FAR *window)); + + Initialize the internal stream state for decompression using inflateBack() + calls. The fields zalloc, zfree and opaque in strm must be initialized + before the call. If zalloc and zfree are Z_NULL, then the default library- + derived memory allocation routines are used. windowBits is the base two + logarithm of the window size, in the range 8..15. window is a caller + supplied buffer of that size. Except for special applications where it is + assured that deflate was used with small window sizes, windowBits must be 15 + and a 32K byte window must be supplied to be able to decompress general + deflate streams. + + See inflateBack() for the usage of these routines. + + inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of + the paramaters are invalid, Z_MEM_ERROR if the internal state could not + be allocated, or Z_VERSION_ERROR if the version of the library does not + match the version of the header file. +*/ + +typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); +typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); + +ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc)); +/* + inflateBack() does a raw inflate with a single call using a call-back + interface for input and output. This is more efficient than inflate() for + file i/o applications in that it avoids copying between the output and the + sliding window by simply making the window itself the output buffer. This + function trusts the application to not change the output buffer passed by + the output function, at least until inflateBack() returns. + + inflateBackInit() must be called first to allocate the internal state + and to initialize the state with the user-provided window buffer. + inflateBack() may then be used multiple times to inflate a complete, raw + deflate stream with each call. inflateBackEnd() is then called to free + the allocated state. + + A raw deflate stream is one with no zlib or gzip header or trailer. + This routine would normally be used in a utility that reads zip or gzip + files and writes out uncompressed files. The utility would decode the + header and process the trailer on its own, hence this routine expects + only the raw deflate stream to decompress. This is different from the + normal behavior of inflate(), which expects either a zlib or gzip header and + trailer around the deflate stream. + + inflateBack() uses two subroutines supplied by the caller that are then + called by inflateBack() for input and output. inflateBack() calls those + routines until it reads a complete deflate stream and writes out all of the + uncompressed data, or until it encounters an error. The function's + parameters and return types are defined above in the in_func and out_func + typedefs. inflateBack() will call in(in_desc, &buf) which should return the + number of bytes of provided input, and a pointer to that input in buf. If + there is no input available, in() must return zero--buf is ignored in that + case--and inflateBack() will return a buffer error. inflateBack() will call + out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() + should return zero on success, or non-zero on failure. If out() returns + non-zero, inflateBack() will return with an error. Neither in() nor out() + are permitted to change the contents of the window provided to + inflateBackInit(), which is also the buffer that out() uses to write from. + The length written by out() will be at most the window size. Any non-zero + amount of input may be provided by in(). + + For convenience, inflateBack() can be provided input on the first call by + setting strm->next_in and strm->avail_in. If that input is exhausted, then + in() will be called. Therefore strm->next_in must be initialized before + calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called + immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in + must also be initialized, and then if strm->avail_in is not zero, input will + initially be taken from strm->next_in[0 .. strm->avail_in - 1]. + + The in_desc and out_desc parameters of inflateBack() is passed as the + first parameter of in() and out() respectively when they are called. These + descriptors can be optionally used to pass any information that the caller- + supplied in() and out() functions need to do their job. + + On return, inflateBack() will set strm->next_in and strm->avail_in to + pass back any unused input that was provided by the last in() call. The + return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR + if in() or out() returned an error, Z_DATA_ERROR if there was a format + error in the deflate stream (in which case strm->msg is set to indicate the + nature of the error), or Z_STREAM_ERROR if the stream was not properly + initialized. In the case of Z_BUF_ERROR, an input or output error can be + distinguished using strm->next_in which will be Z_NULL only if in() returned + an error. If strm->next is not Z_NULL, then the Z_BUF_ERROR was due to + out() returning non-zero. (in() will always be called before out(), so + strm->next_in is assured to be defined if out() returns non-zero.) Note + that inflateBack() cannot return Z_OK. +*/ + +ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +/* + All memory allocated by inflateBackInit() is freed. + + inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream + state was inconsistent. +*/ + +ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +/* Return flags indicating compile-time options. + + Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: + 1.0: size of uInt + 3.2: size of uLong + 5.4: size of voidpf (pointer) + 7.6: size of z_off_t + + Compiler, assembler, and debug options: + 8: DEBUG + 9: ASMV or ASMINF -- use ASM code + 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention + 11: 0 (reserved) + + One-time table building (smaller code, but not thread-safe if true): + 12: BUILDFIXED -- build static block decoding tables when needed + 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed + 14,15: 0 (reserved) + + Library content (indicates missing functionality): + 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking + deflate code when not needed) + 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect + and decode gzip streams (to avoid linking crc code) + 18-19: 0 (reserved) + + Operation variations (changes in library functionality): + 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate + 21: FASTEST -- deflate algorithm with only one, lowest compression level + 22,23: 0 (reserved) + + The sprintf variant used by gzprintf (zero is best): + 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format + 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! + 26: 0 = returns value, 1 = void -- 1 means inferred string length returned + + Remainder: + 27-31: 0 (reserved) + */ + + + /* utility functions */ + +/* + The following utility functions are implemented on top of the + basic stream-oriented functions. To simplify the interface, some + default options are assumed (compression level and memory usage, + standard memory allocation functions). The source code of these + utility functions can easily be modified if you need special options. +*/ + +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be at least the value returned + by compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + This function can be used to compress a whole file at once if the + input file is mmap'ed. + compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer. +*/ + +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level)); +/* + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +/* + compressBound() returns an upper bound on the compressed size after + compress() or compress2() on sourceLen bytes. It would be used before + a compress() or compress2() call to allocate the destination buffer. +*/ + +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer. + This function can be used to decompress a whole file at once if the + input file is mmap'ed. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. +*/ + + +typedef voidp gzFile; + +ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); +/* + Opens a gzip (.gz) file for reading or writing. The mode parameter + is as in fopen ("rb" or "wb") but can also include a compression level + ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for + Huffman only compression as in "wb1h", or 'R' for run-length encoding + as in "wb1R". (See the description of deflateInit2 for more information + about the strategy parameter.) + + gzopen can be used to read a file which is not in gzip format; in this + case gzread will directly read from the file without decompression. + + gzopen returns NULL if the file could not be opened or if there was + insufficient memory to allocate the (de)compression state; errno + can be checked to distinguish the two cases (if errno is zero, the + zlib error is Z_MEM_ERROR). */ + +ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +/* + gzdopen() associates a gzFile with the file descriptor fd. File + descriptors are obtained from calls like open, dup, creat, pipe or + fileno (in the file has been previously opened with fopen). + The mode parameter is as in gzopen. + The next call of gzclose on the returned gzFile will also close the + file descriptor fd, just like fclose(fdopen(fd), mode) closes the file + descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). + gzdopen returns NULL if there was insufficient memory to allocate + the (de)compression state. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* + Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. + gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +*/ + +ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +/* + Reads the given number of uncompressed bytes from the compressed file. + If the input file was not in gzip format, gzread copies the given number + of bytes into the buffer. + gzread returns the number of uncompressed bytes actually read (0 for + end of file, -1 for error). */ + +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, + voidpc buf, unsigned len)); +/* + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes actually written + (0 in case of error). +*/ + +ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); +/* + Converts, formats, and writes the args to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written (0 in case of error). The number of + uncompressed bytes written is limited to 4095. The caller should assure that + this limit is not exceeded. If it is exceeded, then gzprintf() will return + return an error (0) with nothing written. In this case, there may also be a + buffer overflow with unpredictable consequences, which is possible only if + zlib was compiled with the insecure functions sprintf() or vsprintf() + because the secure snprintf() or vsnprintf() functions were not available. +*/ + +ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +/* + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + gzputs returns the number of characters written, or -1 in case of error. +*/ + +ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +/* + Reads bytes from the compressed file until len-1 characters are read, or + a newline character is read and transferred to buf, or an end-of-file + condition is encountered. The string is then terminated with a null + character. + gzgets returns buf, or Z_NULL in case of error. +*/ + +ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +/* + Writes c, converted to an unsigned char, into the compressed file. + gzputc returns the value that was written, or -1 in case of error. +*/ + +ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +/* + Reads one byte from the compressed file. gzgetc returns this byte + or -1 in case of end of file or error. +*/ + +ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +/* + Push one character back onto the stream to be read again later. + Only one character of push-back is allowed. gzungetc() returns the + character pushed, or -1 on failure. gzungetc() will fail if a + character has been pushed but not read yet, or if c is -1. The pushed + character will be discarded if the stream is repositioned with gzseek() + or gzrewind(). +*/ + +ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +/* + Flushes all pending output into the compressed file. The parameter + flush is as in the deflate() function. The return value is the zlib + error number (see function gzerror below). gzflush returns Z_OK if + the flush parameter is Z_FINISH and all output could be flushed. + gzflush should be called only when strictly necessary because it can + degrade compression. +*/ + +ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, + z_off_t offset, int whence)); +/* + Sets the starting position for the next gzread or gzwrite on the + given compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. + If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported; gzseek then compresses a sequence of zeroes up to the new + starting position. + + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +*/ + +ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +/* + Rewinds the given file. This function is supported only for reading. + + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +*/ + +ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); +/* + Returns the starting position for the next gzread or gzwrite on the + given compressed file. This position represents a number of bytes in the + uncompressed data stream. + + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* + Returns 1 when EOF has previously been detected reading the given + input stream, otherwise zero. +*/ + +ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +/* + Returns 1 if file is being read directly without decompression, otherwise + zero. +*/ + +ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +/* + Flushes all pending output if necessary, closes the compressed file + and deallocates all the (de)compression state. The return value is the zlib + error number (see function gzerror below). +*/ + +ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +/* + Returns the error message for the last error which occurred on the + given compressed file. errnum is set to zlib error number. If an + error occurred in the file system and not in the compression library, + errnum is set to Z_ERRNO and the application may consult errno + to get the exact error code. +*/ + +ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +/* + Clears the error and end-of-file flags for file. This is analogous to the + clearerr() function in stdio. This is useful for continuing to read a gzip + file that is being written concurrently. +*/ + + /* checksum functions */ + +/* + These functions are not related to compression but are exported + anyway because they might be useful in applications using the + compression library. +*/ + +ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +/* + Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is NULL, this function returns + the required initial value for the checksum. + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, + z_off_t len2)); +/* + Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 + and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for + each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of + seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. +*/ + +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +/* + Update a running CRC-32 with the bytes buf[0..len-1] and return the + updated CRC-32. If buf is NULL, this function returns the required initial + value for the for the crc. Pre- and post-conditioning (one's complement) is + performed within this function so it shouldn't be done by the application. + Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ + +ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); + +/* + Combine two CRC-32 check values into one. For two sequences of bytes, + seq1 and seq2 with lengths len1 and len2, CRC-32 check values were + calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 + check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and + len2. +*/ + + + /* various hacks, don't look :) */ + +/* deflateInit and inflateInit are macros to allow checking the zlib version + * and the compiler's view of z_stream: + */ +ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size)); +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size)); +#define deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) +#define inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), \ + ZLIB_VERSION, sizeof(z_stream)) + + +#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) + struct internal_state {int dummy;}; /* hack for buggy compilers */ +#endif + +ZEXTERN const char * ZEXPORT zError OF((int)); +ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z)); +ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); + +#ifdef __cplusplus +} +#endif + +#endif /* ZLIB_H */ diff --git a/3rdparty/zlib/lib/zdll.lib b/3rdparty/zlib/lib/zdll.lib new file mode 100644 index 000000000..01f4e10e6 Binary files /dev/null and b/3rdparty/zlib/lib/zdll.lib differ diff --git a/3rdparty/zlib/zlib-1.2.3 b/3rdparty/zlib/zlib-1.2.3 new file mode 100644 index 000000000..e69de29bb diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index bf2623489..54e73ea51 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,33 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2008/07/27 + * Changed the way GM levels are handled + - removed conf/gm_account.txt + - added the gm level column to the txt savefile (after 'email' column) + - gm level information is now transferred along with account data + * Merged the /loginmerge branch [ultramage] + - the login server storage, ipban and logging systems have been abstracted + and now provide a common interface; the rest has been merged into a + single login server core (no more login/login_sql duplicity) + - storage systems are now added via compiler options (WITH_SQL / WITH_TXT) + - multiple storage engines can be compiled in at the same time, + and the config option account.engine defines which one will be used. + - due to MySQL autoincrement limitations, accounts with id '0' will not + be supported; account IDs from this point on should start from '1'. + - login_log() functions now again record IP addresses in dotted format, + not as 4-byte integers (undo from r6868). + - removed config options that defined column names in the login table + - removed `memo` and `error message` columns from login db/savefile + - moved `loginlog` table to the logs database + - added sql files upgrade_svn12975.sql and upgrade_svn12975_log.sql + - due to changes to the login table layout, I added an !optional! sql + file (upgrade_svn12975_view.sql) that will provide a certain degree + of backwards compatibility with existing software; + read the instructions inside carefully! + - moved third-party includes/libs to a separate directory + - updated project files / makefiles + 2008/07/20 * Simplified the search in pop_timer_heap and added more debug info to help determine the source condition of timer errors. (bugreport:1860) diff --git a/Makefile.in b/Makefile.in index aa47001a1..2afeda0f5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -43,10 +43,10 @@ common_sql: $(COMMON_SQL_DEPENDS) @$(MAKE) -C src/common sql login: common - @$(MAKE) -C src/login + @$(MAKE) -C src/login txt login_sql: $(LOGIN_SQL_DEPENDS) - @$(MAKE) -C src/login_sql + @$(MAKE) -C src/login sql char: common @$(MAKE) -C src/char @@ -93,7 +93,6 @@ save: clean: @$(MAKE) -C src/common $@ @$(MAKE) -C src/login $@ - @$(MAKE) -C src/login_sql $@ @$(MAKE) -C src/char $@ @$(MAKE) -C src/char_sql $@ @$(MAKE) -C src/map $@ diff --git a/conf/Changelog.txt b/conf/Changelog.txt index 3e9fd15d4..d5371167f 100644 --- a/conf/Changelog.txt +++ b/conf/Changelog.txt @@ -1,5 +1,13 @@ Date Added +2008/07/27 + * Conf file adjustments for the loginmerge branch + - added new login and ipban db config options to login_athena.conf + - login database options are no longer in inter_athena.conf! + - moved setting 'lowest_gm_level' from inter_athena.conf to battle/gm.conf + - removed setting 'gm_read_method' + - removed options for setting `login` table column names + - deleted file GM_account.txt, now the savefile is used for this 2008/07/23 * Increased max. hairstyle number, 23 -> 25 (bugreport:1773) [ultramage] 2008/07/22 diff --git a/conf/GM_account.txt b/conf/GM_account.txt deleted file mode 100644 index e49f9df16..000000000 --- a/conf/GM_account.txt +++ /dev/null @@ -1,10 +0,0 @@ -// eAthena's GM Accounts File (for TXT servers only) -// Edited by MC Cameri to enable account id ranges -// Changing this file while login server is running -// Usage #1(Standard): -// Usage #2(Range): -// Examples: -// 2000002 99 -// 2000003-2000005 99 -// 2000003~2000005 99 -// 2000001 30 diff --git a/conf/battle/gm.conf b/conf/battle/gm.conf index 1bfc4a372..ff0b1126a 100644 --- a/conf/battle/gm.conf +++ b/conf/battle/gm.conf @@ -30,6 +30,11 @@ atcommand_slave_clone_limit: 25 // current map server. partial_name_scan: yes +// The level at which a player with access is considered a GM. +// An account with an access level lower than this is not effected +// by gm_can_drop_lv (battle_athena.conf). +lowest_gm_level: 1 + // [GM] Can use all skills? (No or mimimum GM level) gm_all_skill: no diff --git a/conf/inter_athena.conf b/conf/inter_athena.conf index c5dcd351d..ddb7c5e1b 100644 --- a/conf/inter_athena.conf +++ b/conf/inter_athena.conf @@ -1,5 +1,17 @@ // Athena InterServer configuration. +// Options for both versions + +// Log Inter Connections, etc.? +log_inter: 1 + +// Inter Log Filename +inter_log_filename: log/inter.log + +// Level range for sharing within a party +party_share_level: 10 + + // TXT version options only // Storage flatfile database, used for Karfa storage. @@ -26,32 +38,14 @@ castle_txt: save/castle.txt // Status change flatfile database, for status changes that are saved between sessions. scdata_txt: save/scdata.txt -// Options for both versions - -// Log Inter Connections, etc.? -log_inter: 1 - -// Inter Log Filename -inter_log_filename: log/inter.log - -// Level range for sharing within a party -party_share_level: 10 // SQL version options only -// GM Reading Method -// 1 to have Char read GMs, 0 to have Login-controlled GMs -gm_read_method: 0 - -// The level at which a player with access is considered a GM. -// An account with an access level lower than this is not effected -// by gm_can_drop_lv (battle_athena.conf). -lowest_gm_level: 1 - // You can specify the codepage to use in your mySQL tables here. // (Note that this feature requires MySQL 4.1+) //default_codepage: + // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1 // Under windows, you want to use 127.0.0.1. If you see a message like // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" @@ -96,16 +90,9 @@ db_server_logindb: ragnarok // this is meant for people who KNOW their stuff, and for some reason want to change their // database layout. [CLOWNISIUS] -//Column names for the login table. -login_db_account_id: account_id -login_db_userid: userid -login_db_user_pass: user_pass -login_db_level: level - // ALL MySQL Database Table names // Login Database Tables -login_db: login loginlog_db: loginlog // Char Database Tables diff --git a/conf/ladmin_athena.conf b/conf/ladmin_athena.conf index b091b47ff..5c4257af7 100644 --- a/conf/ladmin_athena.conf +++ b/conf/ladmin_athena.conf @@ -15,11 +15,6 @@ admin_pass: admin // 2: password+key passenc: 2 -// Language of ladmin -// F: Fran軋is -// E: English (default) -defaultlanguage: E - // Log Filename. All operations done by the software are logged in this file. ladmin_log_filename: log/ladmin.log diff --git a/conf/login_athena.conf b/conf/login_athena.conf index c5a9fb242..28f022c42 100644 --- a/conf/login_athena.conf +++ b/conf/login_athena.conf @@ -38,13 +38,12 @@ console_silent: 0 // Whether remote administration is enabled or disabled admin_state: no -// Administrative password, used by ladmin (perl software) to connect remotely to server. -// NOTICE: If you enable remote administration, you should change its value for security -// NOTE: ladmin only works on TXT login servers. +// Administrative password, used by ladmin to connect remotely to server. +// NOTICE: you should change this value for security if you use ladmin. admin_pass: admin // Indicate the IP/host that the server accepts for remote administration. -admin_allowed_ip: 127.0.0.1 +admin_allowed_host: 127.0.0.1 // Console Commands // Allow for console commands to be used on/off @@ -62,15 +61,8 @@ new_account: yes allowed_regs: 1 time_allowed: 10 -// Account flatfile database, stores account information. -account_filename: save/account.txt - -// What account AIDs have GM privs, and what level? -gm_account_filename: conf/GM_account.txt - -// Timer to check if GM_account file has been changed and reload GM account automaticaly -// (in seconds; default: 15; value: 0 (disabled), or 2 or more) -gm_account_filename_check_timer: 15 +// Log Filename. All operations received by the server are logged in this file. +login_log_filename: log/login.log // To log the login server? // NOTE: The login-sql server needs the login logs to enable dynamic pass failure bans. @@ -110,11 +102,18 @@ client_version_to_connect: 20 use_MD5_passwords: no // Ipban features (SQL only) -ipban: yes -dynamic_pass_failure_ban: yes -dynamic_pass_failure_ban_interval: 5 -dynamic_pass_failure_ban_limit: 7 -dynamic_pass_failure_ban_duration: 5 +ipban.enable: yes +ipban.sql.db_hostname: 127.0.0.1 +ipban.sql.db_port: 3306 +ipban.sql.db_username: ragnarok +ipban.sql.db_password: ragnarok +ipban.sql.db_database: ragnarok +ipban.sql.ipban_table: ipbanlist +// Dynamic password failure ipban system +ipban.dynamic_pass_failure_ban: yes +ipban.dynamic_pass_failure_ban_interval: 5 +ipban.dynamic_pass_failure_ban_limit: 7 +ipban.dynamic_pass_failure_ban_duration: 5 // Interval (in minutes) to execute a DNS/IP update. Disabled by default. // Enable it if your server uses a dynamic IP which changes with time. @@ -126,4 +125,24 @@ dynamic_pass_failure_ban_duration: 5 use_dnsbl: no dnsbl_servers: dnsbl.deltaanime.net +// Which account engine to use. +// 'auto' selects the first engine available (txt, sql, then others) +// (defaults to auto) +account.engine: auto + +// Account data storage configuration +// TXT +account.txt.account_db: save/account.txt +account.txt.case_sensitive: no +// SQL +account.sql.db_hostname: 127.0.0.1 +account.sql.db_port: 3306 +account.sql.db_username: ragnarok +account.sql.db_password: ragnarok +account.sql.db_database: ragnarok +account.sql.codepage: +account.sql.case_sensitive: no +account.sql.account_db: login +account.sql.accreg_db: global_reg_value + import: conf/import/login_conf.txt diff --git a/configure b/configure index 39e0ecdcd..290958782 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 12803 . +# From configure.in Revision: 12731 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61. # @@ -663,6 +663,7 @@ OBJEXT CPP GREP EGREP +HAVE_OPENRJ_TXT MYSQL_CONFIG_HOME HAVE_MYSQL MYSQL_VERSION @@ -1259,7 +1260,9 @@ Optional Features: --enable-mapregsql Makes map-wide script variables be saved to SQL instead of TXT files in the sql map-server. (disabled by default) - --enable-debug Compiles in debug mode. (disabled by default) + --enable-debug Compiles extra debug code. (disabled by default) + --disable-openrj-txt Disables the openrj-based account engine in the TXT + login-server (enabled by default) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1718,7 +1721,7 @@ ac_config_files="$ac_config_files Makefile src/common/Makefile" ac_config_files="$ac_config_files src/char/Makefile src/login/Makefile src/ladmin/Makefile" -ac_config_files="$ac_config_files src/char_sql/Makefile src/login_sql/Makefile src/txt-converter/Makefile" +ac_config_files="$ac_config_files src/char_sql/Makefile src/txt-converter/Makefile" ac_config_files="$ac_config_files src/map/Makefile src/plugins/Makefile src/tool/Makefile" @@ -1807,6 +1810,28 @@ fi +# +# OpenRJ account engine in the txt login server +# +# Check whether --enable-openrj-txt was given. +if test "${enable_openrj_txt+set}" = set; then + enableval=$enable_openrj_txt; + HAVE_OPENRJ_TXT="$enableval" + case $enableval in + no);; + yes);; + *) { { echo "$as_me:$LINENO: error: invalid argument --enable-openrj-txt=$enableval... stopping" >&5 +echo "$as_me: error: invalid argument --enable-openrj-txt=$enableval... stopping" >&2;} + { (exit 1); exit 1; }; };; + esac + +else + HAVE_OPENRJ_TXT="yes" + +fi + + + # # Enable/disable MySql and optionally specify the path to mysql_config (optional library) # @@ -4530,6 +4555,12 @@ if test "$enable_debug" = "yes" ; then fi +# +# OpenRJ account engine in the txt login server +# + + + # # zlib library (required) # @@ -6002,7 +6033,6 @@ do "src/login/Makefile") CONFIG_FILES="$CONFIG_FILES src/login/Makefile" ;; "src/ladmin/Makefile") CONFIG_FILES="$CONFIG_FILES src/ladmin/Makefile" ;; "src/char_sql/Makefile") CONFIG_FILES="$CONFIG_FILES src/char_sql/Makefile" ;; - "src/login_sql/Makefile") CONFIG_FILES="$CONFIG_FILES src/login_sql/Makefile" ;; "src/txt-converter/Makefile") CONFIG_FILES="$CONFIG_FILES src/txt-converter/Makefile" ;; "src/map/Makefile") CONFIG_FILES="$CONFIG_FILES src/map/Makefile" ;; "src/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/Makefile" ;; @@ -6115,6 +6145,7 @@ OBJEXT!$OBJEXT$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim +HAVE_OPENRJ_TXT!$HAVE_OPENRJ_TXT$ac_delim MYSQL_CONFIG_HOME!$MYSQL_CONFIG_HOME$ac_delim HAVE_MYSQL!$HAVE_MYSQL$ac_delim MYSQL_VERSION!$MYSQL_VERSION$ac_delim @@ -6128,7 +6159,7 @@ LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 59; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 60; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/configure.in b/configure.in index d9deb8710..5ebbe1561 100644 --- a/configure.in +++ b/configure.in @@ -7,7 +7,7 @@ AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([src/common/cbasetypes.h]) AC_CONFIG_FILES([Makefile src/common/Makefile]) AC_CONFIG_FILES([src/char/Makefile src/login/Makefile src/ladmin/Makefile]) -AC_CONFIG_FILES([src/char_sql/Makefile src/login_sql/Makefile src/txt-converter/Makefile]) +AC_CONFIG_FILES([src/char_sql/Makefile src/txt-converter/Makefile]) AC_CONFIG_FILES([src/map/Makefile src/plugins/Makefile src/tool/Makefile]) @@ -78,7 +78,7 @@ AC_ARG_ENABLE( [debug], AC_HELP_STRING( [--enable-debug], - [Compiles in debug mode. (disabled by default)] + [Compiles extra debug code. (disabled by default)] ), [ enable_debug="$enableval" diff --git a/lib/libmysql.lib b/lib/libmysql.lib deleted file mode 100644 index aa99dc3b8..000000000 Binary files a/lib/libmysql.lib and /dev/null differ diff --git a/lib/mysql-5.0.20 b/lib/mysql-5.0.20 deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/pcre-7.0 b/lib/pcre-7.0 deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/pcre.lib b/lib/pcre.lib deleted file mode 100644 index 37b4084ef..000000000 Binary files a/lib/pcre.lib and /dev/null differ diff --git a/lib/zdll.lib b/lib/zdll.lib deleted file mode 100644 index 01f4e10e6..000000000 Binary files a/lib/zdll.lib and /dev/null differ diff --git a/lib/zlib-1.2.3 b/lib/zlib-1.2.3 deleted file mode 100644 index e69de29bb..000000000 diff --git a/save-tmpl/account.txt b/save-tmpl/account.txt index b326f67f7..43299d089 100644 --- a/save-tmpl/account.txt +++ b/save-tmpl/account.txt @@ -1,19 +1,16 @@ +20080409 // Accounts file: here are saved all information about the accounts. -// Structure: ID, account name, password, last login time, sex, # of logins, state, email, error message for state 7, validity time, last (accepted) login ip, memo field, ban timestamp, repeated(register text, register value) -// Some explanations: -// account name : between 4 to 23 char for a normal account (standard client can't send less than 4 char). -// account password: between 4 to 23 char +// Structure: account ID, username, password, sex, email, level, state, unban time, expiration time, # of logins, last login time, last (accepted) login ip, repeated(register key, register value) +// where: // sex : M or F for normal accounts, S for server accounts +// level : this account's gm level // state : 0: account is ok, 1 to 256: error code of packet 0x006a + 1 -// email : between 3 to 39 char (a@a.com is like no email) -// error message : text for the state 7: 'Your are Prohibited to login until '. Max 19 char -// valitidy time : 0: unlimited account, : date calculated by addition of 1/1/1970 + value (number of seconds since the 1/1/1970) -// memo field : max 254 char -// ban time : 0: no ban, : banned until the date: date calculated by addition of 1/1/1970 + value (number of seconds since the 1/1/1970) -0 s1 p1 2004-10-25 01:12:04.147 S 2 0 a@a.com - 0 127.0.0.1 - 0 -1 s2 p2 - S 0 0 a@a.com - 0 - - 0 -2 s3 p3 - S 0 0 a@a.com - 0 - - 0 -3 s4 p4 - S 0 0 a@a.com - 0 - - 0 -4 s5 p5 - S 0 0 a@a.com - 0 - - 0 -2000001 Test Test - M 0 0 a@a.com - 0 - - 0 +// unban time : 0: no ban, : banned until the date (unix timestamp) +// expiration time : 0: unlimited account, : account expires on the date (unix timestamp) +1 s1 p1 S a@a.com 0 0 0 0 0 - - +2 s2 p2 S a@a.com 0 0 0 0 0 - - +3 s3 p3 S a@a.com 0 0 0 0 0 - - +4 s4 p4 S a@a.com 0 0 0 0 0 - - +5 s5 p5 S a@a.com 0 0 0 0 0 - - +2000001 Test Test M a@a.com 0 0 0 0 0 - - 2000002 %newid% diff --git a/save-tmpl/castle.txt b/save-tmpl/castle.txt index 72df05921..5270d976b 100644 --- a/save-tmpl/castle.txt +++ b/save-tmpl/castle.txt @@ -1,34 +1,34 @@ -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 diff --git a/sql-files/logs.sql b/sql-files/logs.sql index 09895263b..b46b34355 100644 --- a/sql-files/logs.sql +++ b/sql-files/logs.sql @@ -113,3 +113,15 @@ CREATE TABLE `chatlog` ( INDEX (`src_accountid`), INDEX (`src_charid`) ) ENGINE=MyISAM AUTO_INCREMENT=1 ; + +#Database: log +#Table: loginlog +CREATE TABLE `loginlog` ( + `time` datetime NOT NULL default '0000-00-00 00:00:00', + `ip` varchar(15) NOT NULL default '', + `user` varchar(23) NOT NULL default '', + `rcode` tinyint(4) NOT NULL default '0', + `log` varchar(255) NOT NULL default '', + INDEX (`ip`) +) ENGINE=MyISAM ; + diff --git a/sql-files/main.sql b/sql-files/main.sql index 1dd36bbc1..5b9f1a313 100644 --- a/sql-files/main.sql +++ b/sql-files/main.sql @@ -421,17 +421,15 @@ CREATE TABLE `login` ( `account_id` int(11) unsigned NOT NULL auto_increment, `userid` varchar(23) NOT NULL default '', `user_pass` varchar(32) NOT NULL default '', - `lastlogin` datetime NOT NULL default '0000-00-00 00:00:00', `sex` enum('M','F','S') NOT NULL default 'M', - `logincount` mediumint(9) unsigned NOT NULL default '0', `email` varchar(39) NOT NULL default '', `level` tinyint(3) NOT NULL default '0', - `error_message` smallint(11) unsigned NOT NULL default '0', - `connect_until` int(11) unsigned NOT NULL default '0', - `last_ip` varchar(100) NOT NULL default '', - `memo` smallint(11) unsigned NOT NULL default '0', - `ban_until` int(11) unsigned NOT NULL default '0', `state` int(11) unsigned NOT NULL default '0', + `unban_time` int(11) unsigned NOT NULL default '0', + `expiration_time` int(11) unsigned NOT NULL default '0', + `logincount` mediumint(9) unsigned NOT NULL default '0', + `lastlogin` datetime NOT NULL default '0000-00-00 00:00:00', + `last_ip` varchar(100) NOT NULL default '', PRIMARY KEY (`account_id`), KEY `name` (`userid`) ) ENGINE=MyISAM AUTO_INCREMENT=2000000; @@ -472,20 +470,6 @@ CREATE TABLE `sc_data` ( KEY (`char_id`) ) ENGINE=MyISAM; --- --- Table structure for table `loginlog` --- - -DROP TABLE IF EXISTS `loginlog`; -CREATE TABLE `loginlog` ( - `time` datetime NOT NULL default '0000-00-00 00:00:00', - `ip` int(10) unsigned NOT NULL default '0', - `user` varchar(23) NOT NULL default '', - `rcode` tinyint(4) NOT NULL default '0', - `log` varchar(255) NOT NULL default '', - INDEX (`ip`) -) ENGINE=MyISAM; - -- -- Table structure for table `mail` -- diff --git a/sql-files/upgrade_svn12975.sql b/sql-files/upgrade_svn12975.sql new file mode 100644 index 000000000..a8f5e3818 --- /dev/null +++ b/sql-files/upgrade_svn12975.sql @@ -0,0 +1,24 @@ +START TRANSACTION; + +-- delete columns +ALTER TABLE `login` DROP `error_message`; +ALTER TABLE `login` DROP `memo`; + +-- rename columns +ALTER TABLE `login` CHANGE `connect_until` `expiration_time` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'; +ALTER TABLE `login` CHANGE `ban_until` `unban_time` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'; + +-- reorder columns +ALTER TABLE `login` MODIFY `sex` enum('M','F','S') NOT NULL default 'M' AFTER `user_pass`; +ALTER TABLE `login` MODIFY `email` varchar(39) NOT NULL default '' AFTER `sex`; +ALTER TABLE `login` MODIFY `level` tinyint(3) NOT NULL default '0' AFTER `email`; +ALTER TABLE `login` MODIFY `state` int(11) unsigned NOT NULL default '0' AFTER `level`; +ALTER TABLE `login` MODIFY `unban_time` int(11) unsigned NOT NULL default '0' AFTER `state`; +ALTER TABLE `login` MODIFY `expiration_time` int(11) unsigned NOT NULL default '0' AFTER `unban_time`; +ALTER TABLE `login` MODIFY `logincount` mediumint(9) unsigned NOT NULL default '0' AFTER `expiration_time`; + +-- change ip format +ALTER TABLE `loginlog` CHANGE `ip` `ip` VARCHAR( 15 ) NOT NULL default ''; +UPDATE `loginlog` SET `ip` = inet_ntoa(`ip`); + +COMMIT; diff --git a/sql-files/upgrade_svn12975_log.sql b/sql-files/upgrade_svn12975_log.sql new file mode 100644 index 000000000..c6900e606 --- /dev/null +++ b/sql-files/upgrade_svn12975_log.sql @@ -0,0 +1,20 @@ +-- NOTE: change `ragnarok` and `log` to whatever your database names are. + +START TRANSACTION; + +CREATE TABLE `log`.`loginlog` ( + `time` datetime NOT NULL default '0000-00-00 00:00:00', + `ip` varchar( 15 ) NOT NULL , + `user` varchar( 23 ) NOT NULL default '', + `rcode` tinyint( 4 ) NOT NULL default '0', + `log` varchar( 255 ) NOT NULL default '', + KEY `ip` ( `ip` ) +) ENGINE = MYISAM; + +INSERT INTO `log`.`loginlog` + SELECT * + FROM `ragnarok`.`loginlog` ; + +DROP TABLE `ragnarok`.`loginlog` ; + +COMMIT; diff --git a/sql-files/upgrade_svn12975_view.sql b/sql-files/upgrade_svn12975_view.sql new file mode 100644 index 000000000..8d5d5906b --- /dev/null +++ b/sql-files/upgrade_svn12975_view.sql @@ -0,0 +1,17 @@ +-- The statements below will create a 'view' (virtual table) that mimics +-- the previous `login` table layout. You can use this hack to make your db +-- compatible with older eathena servers or control panels. +-- Note: also adjust the account.sql.account_db setting in login_athena.conf. +-- Note: if your CP does not have a config setting for the `login` table name +-- you'll have to either modify its code or do some table renaming. + +START TRANSACTION; + +-- create dummy columns, needed to make the view insertable +ALTER TABLE `login` ADD `error_message` SMALLINT UNSIGNED NOT NULL; +ALTER TABLE `login` ADD `memo` SMALLINT UNSIGNED NOT NULL; + +-- create the view +CREATE VIEW `login_view` ( `account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`, `error_message`, `connect_until`, `last_ip`, `memo`, `ban_until`, `state` ) AS SELECT `account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`, `error_message`, `expiration_time`, `last_ip`, `memo`, `unban_time`, `state` FROM `login`; + +COMMIT; diff --git a/src/char/char.c b/src/char/char.c index 071e21472..cedf7caa2 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -109,6 +109,7 @@ struct char_session_data { int found_char[MAX_CHARS]; // ids of chars on this account char email[40]; // e-mail (default: a@a.com) by [Yor] time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) + int gmlevel; }; int char_id_count = START_CHAR_NUM; @@ -136,9 +137,6 @@ struct fame_list taekwon_fame_list[MAX_FAME_LIST]; // Initial position (it's possible to set it in conf file) struct point start_point = { 0, 53, 111 }; -struct gm_account *gm_account = NULL; -int GM_num = 0; - // online players by [Yor] char online_txt_filename[1024] = "online.txt"; char online_html_filename[1024] = "online.html"; @@ -162,6 +160,7 @@ struct auth_node { uint32 ip; int sex; time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) + int gmlevel; }; static DBMap* auth_db; // int account_id -> struct auth_node* @@ -344,20 +343,6 @@ int char_log(char *fmt, ...) return 0; } -//---------------------------------------------------------------------- -// Determine if an account (id) is a GM account -// and returns its level (or 0 if it isn't a GM account or if not found) -//---------------------------------------------------------------------- -int isGM(int account_id) -{ - int i; - - for(i = 0; i < GM_num; i++) - if (gm_account[i].account_id == account_id) - return gm_account[i].level; - return 0; -} - //Search character data from the aid/cid givem struct mmo_charstatus* search_character(int aid, int cid) { @@ -1556,7 +1541,8 @@ void create_online_files(void) // displaying the character name if ((online_display_option & 1) || (online_display_option & 64)) { // without/with 'GM' display strcpy(temp, char_dat[j].status.name); - l = isGM(char_dat[j].status.account_id); + //l = isGM(char_dat[j].status.account_id); + l = 0; //FIXME: how to get the gm level? if (online_display_option & 64) { if (l >= online_gm_display_min_level) fprintf(fp, "%-24s (GM) ", temp); @@ -1892,7 +1878,7 @@ static int char_delete(struct mmo_charstatus *cs) static void char_auth_ok(int fd, struct char_session_data *sd) { struct online_char_data* character; - if (max_connect_user && count_users() >= max_connect_user && isGM(sd->account_id) < gm_allow_level) + if (max_connect_user && count_users() >= max_connect_user && sd->gmlevel < gm_allow_level) { // refuse connection (over populated) WFIFOW(fd,0) = 0x6c; @@ -1999,7 +1985,7 @@ int parse_fromlogin(int fd) // acknowledgement of account authentication request case 0x2713: - if (RFIFOREST(fd) < 59) + if (RFIFOREST(fd) < 60) return 0; { int account_id = RFIFOL(fd,2); @@ -2008,6 +1994,7 @@ int parse_fromlogin(int fd) bool result = RFIFOB(fd,14); const char* email = (const char*)RFIFOP(fd,15); time_t expiration_time = (time_t)RFIFOL(fd,55); + int gmlevel = RFIFOB(fd,59); // find the session with this account id ARR_FIND( 0, fd_max, i, session[i] && (sd = (struct char_session_data*)session[i]->session_data) && @@ -2021,32 +2008,29 @@ int parse_fromlogin(int fd) WFIFOSET(i,3); } else { // success memcpy(sd->email, email, 40); - if (e_mail_check(sd->email) == 0) - strncpy(sd->email, "a@a.com", 40); // default e-mail sd->expiration_time = expiration_time; + sd->gmlevel = gmlevel; char_auth_ok(i, sd); } } } - RFIFOSKIP(fd,59); + RFIFOSKIP(fd,60); break; // Receiving of an e-mail/time limit from the login-server (answer of a request because a player comes back from map-server to char-server) by [Yor] case 0x2717: - if (RFIFOREST(fd) < 50) + if (RFIFOREST(fd) < 51) return 0; - for(i = 0; i < fd_max; i++) { - if (session[i] && (sd = (struct char_session_data*)session[i]->session_data)) { - if (sd->account_id == RFIFOL(fd,2)) { - memcpy(sd->email, RFIFOP(fd,6), 40); - if (e_mail_check(sd->email) == 0) - strncpy(sd->email, "a@a.com", 40); // default e-mail - sd->expiration_time = (time_t)RFIFOL(fd,46); - break; - } - } + + // find the session with this account id + ARR_FIND( 0, fd_max, i, session[i] && (sd = (struct char_session_data*)session[i]->session_data) && sd->account_id == RFIFOL(fd,2) ); + if( i < fd_max ) + { + memcpy(sd->email, RFIFOP(fd,6), 40); + sd->expiration_time = (time_t)RFIFOL(fd,46); + sd->gmlevel = RFIFOB(fd,50); } - RFIFOSKIP(fd,50); + RFIFOSKIP(fd,51); break; // login-server alive packet @@ -2209,7 +2193,7 @@ int parse_fromlogin(int fd) if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) return 0; { //Receive account_reg2 registry, forward to map servers. - unsigned char buf[ACCOUNT_REG2_NUM*(256+32+2)+16]; + unsigned char buf[13+ACCOUNT_REG2_NUM*sizeof(struct global_reg)]; memcpy(buf,RFIFOP(fd,0), RFIFOW(fd,2)); // WBUFW(buf,0) = 0x2b11; WBUFW(buf,0) = 0x3804; //Map server can now receive all kinds of reg values with the same packet. [Skotlex] @@ -2284,33 +2268,6 @@ int parse_fromlogin(int fd) RFIFOSKIP(fd,11); break; - // Receiving GM acounts info from login-server (by [Yor]) - case 0x2732: - if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) - return 0; - { - unsigned char buf[32000]; //FIXME: this will crash - if (gm_account != NULL) - aFree(gm_account); - CREATE(gm_account, struct gm_account, (RFIFOW(fd,2) - 4)/5); - GM_num = 0; - for (i = 4; i < RFIFOW(fd,2); i = i + 5) { - gm_account[GM_num].account_id = RFIFOL(fd,i); - gm_account[GM_num].level = (int)RFIFOB(fd,i+4); - //printf("GM account: %d -> level %d\n", gm_account[GM_num].account_id, gm_account[GM_num].level); - GM_num++; - } - ShowStatus("From login-server: receiving information of %d GM accounts.\n", GM_num); - char_log("From login-server: receiving information of %d GM accounts.\n", GM_num); - // send new gm acccounts level to map-servers - memcpy(buf, RFIFOP(fd,0), RFIFOW(fd,2)); - WBUFW(buf,0) = 0x2b15; - mapif_sendall(buf, RFIFOW(fd,2)); - - RFIFOSKIP(fd,RFIFOW(fd,2)); - } - break; - // Login server request to kick a character out. [Skotlex] case 0x2734: if (RFIFOREST(fd) < 6) @@ -2634,15 +2591,6 @@ int parse_frommap(int fd) switch(RFIFOW(fd,0)) { - case 0x2af7: // request from map-server to reload GM accounts. Transmission to login-server - if (login_fd > 0) { // don't send request if no login-server - WFIFOHEAD(login_fd,2); - WFIFOW(login_fd,0) = 0x2709; - WFIFOSET(login_fd,2); - } - RFIFOSKIP(fd,2); - break; - case 0x2afa: // Receiving map names list from the map-server if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) return 0; @@ -2844,8 +2792,9 @@ int parse_frommap(int fd) char_dat[i].status.char_id == RFIFOL(fd,14)) break; } + char_data = i < char_num ? &char_dat[i].status : NULL; - //Tell the new map server about this player using Kevin's new auth packet. [Skotlex] + if (map_fd >= 0 && session[map_fd] && char_data) { //Send the map server the auth of this player. struct auth_node* node; @@ -2856,19 +2805,6 @@ int parse_frommap(int fd) char_data->last_point.y = RFIFOW(fd,22); char_data->sex = RFIFOB(fd,30); -#if 0 - // the map-server must request it [FlavioJS] - WFIFOHEAD(map_fd, 20 + sizeof(struct mmo_charstatus)); - WFIFOW(map_fd,0) = 0x2afd; - WFIFOW(map_fd,2) = 20 + sizeof(struct mmo_charstatus); - WFIFOL(map_fd,4) = RFIFOL(fd,2); //Account ID - WFIFOL(map_fd,8) = RFIFOL(fd,6); //Login1 - WFIFOL(map_fd,16) = RFIFOL(fd,10); //Login2 - WFIFOL(map_fd,12) = (unsigned long)0; //TODO: expiration_time, how do I figure it out right now? - memcpy(WFIFOP(map_fd,20), char_data, sizeof(struct mmo_charstatus)); - WFIFOSET(map_fd, WFIFOW(map_fd,2)); -#endif - // create temporary auth entry CREATE(node, struct auth_node, 1); node->account_id = RFIFOL(fd,2); @@ -2959,9 +2895,9 @@ int parse_frommap(int fd) if( login_fd <= 0 ) result = 3; // 3-login-server offline - else - if( acc != -1 && isGM(acc) < isGM(account_id) ) - result = 2; // 2-gm level too low +// else +// if( acc != -1 && isGM(acc) < isGM(account_id) ) +// result = 2; // 2-gm level too low else switch( type ) { case 1: // block @@ -3168,14 +3104,15 @@ int parse_frommap(int fd) {// auth ok cd->sex = sex; - WFIFOHEAD(fd,20 + sizeof(struct mmo_charstatus)); + WFIFOHEAD(fd,24 + sizeof(struct mmo_charstatus)); WFIFOW(fd,0) = 0x2afd; - WFIFOW(fd,2) = 20 + sizeof(struct mmo_charstatus); + WFIFOW(fd,2) = 24 + sizeof(struct mmo_charstatus); WFIFOL(fd,4) = account_id; - WFIFOL(fd,8) = login_id1; - WFIFOL(fd,12) = (uint32)node->expiration_time; // FIXME: will wrap to negative after "19-Jan-2038, 03:14:07 AM GMT" - WFIFOL(fd,16) = node->login_id2; - memcpy(WFIFOP(fd,20), cd, sizeof(struct mmo_charstatus)); + WFIFOL(fd,8) = node->login_id1; + WFIFOL(fd,12) = node->login_id2; + WFIFOL(fd,16) = (uint32)node->expiration_time; // FIXME: will wrap to negative after "19-Jan-2038, 03:14:07 AM GMT" + WFIFOL(fd,20) = node->gmlevel; + memcpy(WFIFOP(fd,24), cd, sizeof(struct mmo_charstatus)); WFIFOSET(fd, WFIFOW(fd,2)); // only use the auth once and mark user online @@ -3309,7 +3246,6 @@ int parse_char(int fd) return 0; { struct auth_node* node; - int GM_value; int account_id = RFIFOL(fd,2); uint32 login_id1 = RFIFOL(fd,6); @@ -3325,16 +3261,9 @@ int parse_char(int fd) //TODO: and perhaps send back a reply? break; } - - if( (GM_value = isGM(account_id)) != 0 ) - ShowInfo("Account Logged On; Account ID: %d (GM level %d).\n", account_id, GM_value); - else - ShowInfo("Account Logged On; Account ID: %d.\n", account_id); CREATE(session[fd]->session_data, struct char_session_data, 1); sd = (struct char_session_data*)session[fd]->session_data; - strncpy(sd->email, "no mail", 40); // put here a mail without '@' to refuse deletion if we don't receive the e-mail - sd->expiration_time = 0; // unknown or unlimited (not displaying on map-server) sd->account_id = account_id; sd->login_id1 = login_id1; sd->login_id2 = login_id2; @@ -3454,7 +3383,6 @@ int parse_char(int fd) cd->last_point.map = j; } - //Send NEW auth packet [Kevin] //FIXME: is this case even possible? [ultramage] if ((map_fd = server[i].fd) < 1 || session[map_fd] == NULL) { @@ -3474,29 +3402,13 @@ int parse_char(int fd) WFIFOW(fd,0) = 0x71; WFIFOL(fd,2) = cd->char_id; mapindex_getmapname_ext(mapindex_id2name(cd->last_point.map), (char*)WFIFOP(fd,6)); - - // Advanced subnet check [LuzZza] - subnet_map_ip = lan_subnetcheck(ipl); + subnet_map_ip = lan_subnetcheck(ipl); // Advanced subnet check [LuzZza] WFIFOL(fd,22) = htonl((subnet_map_ip) ? subnet_map_ip : server[i].ip); WFIFOW(fd,26) = ntows(htons(server[i].port)); // [!] LE byte order here [!] WFIFOSET(fd,28); ShowInfo("Character selection '%s' (account: %d, slot: %d).\n", cd->name, sd->account_id, ch); -#if 0 - // The server must request it [FlavioJS] - //Send auth ok to map server - WFIFOHEAD(map_fd,20 + sizeof(struct mmo_charstatus)); - WFIFOW(map_fd,0) = 0x2afd; - WFIFOW(map_fd,2) = 20 + sizeof(struct mmo_charstatus); - WFIFOL(map_fd,4) = sd->account_id; - WFIFOL(map_fd,8) = sd->login_id1; - WFIFOL(map_fd,16) = sd->login_id2; - WFIFOL(map_fd,12) = (unsigned long)sd->expiration_time; - memcpy(WFIFOP(map_fd,20), cd, sizeof(struct mmo_charstatus)); - WFIFOSET(map_fd, WFIFOW(map_fd,2)); -#endif - // create temporary auth entry CREATE(node, struct auth_node, 1); node->account_id = sd->account_id; @@ -3505,6 +3417,7 @@ int parse_char(int fd) node->login_id2 = sd->login_id2; node->sex = sd->sex; node->expiration_time = sd->expiration_time; + node->gmlevel = sd->gmlevel; node->ip = ipl; idb_put(auth_db, sd->account_id, node); } @@ -3706,15 +3619,6 @@ int parse_char(int fd) session[fd]->flag.server = 1; realloc_fifo(fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK); char_mapif_init(fd); - // send gm acccounts level to map-servers - WFIFOHEAD(fd,4+5*GM_num); - WFIFOW(fd,0) = 0x2b15; - for(i = 0; i < GM_num; i++) { - WFIFOL(fd,4+5*i) = gm_account[i].account_id; - WFIFOB(fd,4+5*i+4) = (unsigned char)gm_account[i].level; - } - WFIFOW(fd,2) = 4+5*GM_num; - WFIFOSET(fd,WFIFOW(fd,2)); } RFIFOSKIP(fd,60); @@ -4245,7 +4149,6 @@ void do_final(void) online_char_db->destroy(online_char_db, NULL); //dispose the db... auth_db->destroy(auth_db, NULL); - if(gm_account) aFree(gm_account); if(char_dat) aFree(char_dat); if (login_fd > 0) diff --git a/src/char/char.h b/src/char/char.h index 72077ac09..8c8d7c554 100644 --- a/src/char/char.h +++ b/src/char/char.h @@ -6,7 +6,6 @@ #include "../common/mmo.h" -#define START_CHAR_NUM 150000 #define MAX_MAP_SERVERS 30 #define DEFAULT_AUTOSAVE_INTERVAL 300*1000 diff --git a/src/char/inter.c b/src/char/inter.c index 463d2dd4d..6f6f92bf0 100644 --- a/src/char/inter.c +++ b/src/char/inter.c @@ -650,6 +650,25 @@ int mapif_parse_NameChangeRequest(int fd) //-------------------------------------------------------- +/// Returns the length of the next complete packet to process, +/// or 0 if no complete packet exists in the queue. +/// +/// @param length The minimum allowed length, or -1 for dynamic lookup +int inter_check_length(int fd, int length) +{ + if( length == -1 ) + {// variable-length packet + if( RFIFOREST(fd) < 4 ) + return 0; + length = RFIFOW(fd,2); + } + + if( (int)RFIFOREST(fd) < length ) + return 0; + + return length; +} + // map server からの通信(1パケットのみ解析すること) // エラーなら0(false)、処理できたなら1、 // パケット長が足りなければ2をかえさなければならない @@ -695,19 +714,4 @@ int inter_parse_frommap(int fd) { return 1; } -// RFIFOのパケット長確認 -// 必要パケット長があればパケット長、まだ足りなければ0 -int inter_check_length(int fd, int length) { - if (length == -1) { // 可変パケット長 - RFIFOHEAD(fd); - if (RFIFOREST(fd) < 4) // パケット長が未着 - return 0; - length = RFIFOW(fd,2); - } - - if ((int)RFIFOREST(fd) < length) // パケットが未着 - return 0; - - return length; -} #endif //TXT_SQL_CONVERT diff --git a/src/char/inter.h b/src/char/inter.h index 4752f600c..cf3eb4b2e 100644 --- a/src/char/inter.h +++ b/src/char/inter.h @@ -13,14 +13,11 @@ int inter_parse_frommap(int fd); int inter_mapif_init(int fd); int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason); -int inter_check_length(int fd,int length); - int inter_log(char *fmt,...); #define inter_cfgName "conf/inter_athena.conf" extern unsigned int party_share_level; -extern char inter_log_filename[1024]; extern char main_chat_nick[16]; //For TXT->SQL conversion diff --git a/src/char_sql/char.c b/src/char_sql/char.c index 0ce2aecf6..f11fb7896 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -69,12 +69,6 @@ char db_path[1024] = "db"; int db_use_sqldbs; -char login_db[256] = "login"; -char login_db_account_id[32] = "account_id"; -char login_db_level[32] = "level"; - -int lowest_gm_level = 1; - struct mmo_map_server { int fd; uint32 ip; @@ -135,6 +129,7 @@ struct char_session_data { int found_char[MAX_CHARS]; // ids of chars on this account char email[40]; // e-mail (default: a@a.com) by [Yor] time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) + int gmlevel; }; int char_num, char_max; @@ -164,10 +159,6 @@ unsigned int save_flag = 0; // Initial position (it's possible to set it in conf file) struct point start_point = { 0, 53, 111 }; -bool char_gm_read = false; -struct gm_account *gm_account = NULL; -int GM_num = 0; - int console = 0; //----------------------------------------------------- @@ -183,6 +174,7 @@ struct auth_node { uint32 ip; int sex; time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) + int gmlevel; }; static DBMap* auth_db; // int account_id -> struct auth_node* @@ -394,53 +386,6 @@ void set_all_offline_sql(void) Sql_ShowDebug(sql_handle); } -//---------------------------------------------------------------------- -// Determine if an account (id) is a GM account -// and returns its level (or 0 if it isn't a GM account or if not found) -//---------------------------------------------------------------------- -int isGM(int account_id) -{ - int i; - - for(i = 0; i < GM_num; i++) - if (gm_account[i].account_id == account_id) - return gm_account[i].level; - return 0; -} - -void read_gm_account(void) -{ - if(!char_gm_read) - return; - - if (gm_account != NULL) - aFree(gm_account); - GM_num = 0; - - if( SQL_ERROR == Sql_Query(lsql_handle, "SELECT `%s`,`%s` FROM `%s` WHERE `%s`>='%d'", login_db_account_id, login_db_level, login_db, login_db_level, lowest_gm_level) ) - Sql_ShowDebug(lsql_handle); - - if( Sql_NumRows(lsql_handle) > 0 ) - { - char* data; - - CREATE(gm_account, struct gm_account, (size_t)Sql_NumRows(lsql_handle)); - while( SQL_SUCCESS == Sql_NextRow(lsql_handle) ) - { - // account_id - Sql_GetData(lsql_handle, 0, &data, NULL); - gm_account[GM_num].account_id = atoi(data); - // account_id - Sql_GetData(lsql_handle, 1, &data, NULL); - gm_account[GM_num].level = atoi(data); - ++GM_num; - } - } - Sql_FreeResult(lsql_handle); - - mapif_send_gmaccounts(); -} - static void* create_charstatus(DBKey key, va_list args) { struct mmo_charstatus *cp; @@ -1636,7 +1581,7 @@ int char_family(int pl1, int pl2, int pl3) static void char_auth_ok(int fd, struct char_session_data *sd) { struct online_char_data* character; - if (max_connect_user && count_users() >= max_connect_user && isGM(sd->account_id) < gm_allow_level) + if (max_connect_user && count_users() >= max_connect_user && sd->gmlevel < gm_allow_level) { // refuse connection (over populated) WFIFOW(fd,0) = 0x6c; @@ -1742,7 +1687,7 @@ int parse_fromlogin(int fd) // acknowledgement of account authentication request case 0x2713: - if (RFIFOREST(fd) < 59) + if (RFIFOREST(fd) < 60) return 0; { int account_id = RFIFOL(fd,2); @@ -1751,6 +1696,7 @@ int parse_fromlogin(int fd) bool result = RFIFOB(fd,14); const char* email = (const char*)RFIFOP(fd,15); time_t expiration_time = (time_t)RFIFOL(fd,55); + int gmlevel = RFIFOB(fd,59); // find the session with this account id ARR_FIND( 0, fd_max, i, session[i] && (sd = (struct char_session_data*)session[i]->session_data) && @@ -1765,16 +1711,17 @@ int parse_fromlogin(int fd) } else { // success memcpy(sd->email, email, 40); sd->expiration_time = expiration_time; + sd->gmlevel = gmlevel; char_auth_ok(i, sd); } } } - RFIFOSKIP(fd,59); + RFIFOSKIP(fd,60); break; // acknowledgement of e-mail/limited time request case 0x2717: - if (RFIFOREST(fd) < 50) + if (RFIFOREST(fd) < 51) return 0; // find the session with this account id @@ -1783,8 +1730,9 @@ int parse_fromlogin(int fd) { memcpy(sd->email, RFIFOP(fd,6), 40); sd->expiration_time = (time_t)RFIFOL(fd,46); + sd->gmlevel = RFIFOB(fd,50); } - RFIFOSKIP(fd,50); + RFIFOSKIP(fd,51); break; // login-server alive packet @@ -1881,7 +1829,7 @@ int parse_fromlogin(int fd) return 0; { //Receive account_reg2 registry, forward to map servers. - unsigned char buf[ACCOUNT_REG2_NUM*(256+32+2)+16]; + unsigned char buf[13+ACCOUNT_REG2_NUM*sizeof(struct global_reg)]; memcpy(buf,RFIFOP(fd,0), RFIFOW(fd,2)); WBUFW(buf,0) = 0x3804; //Map server can now receive all kinds of reg values with the same packet. [Skotlex] mapif_sendall(buf, WBUFW(buf,2)); @@ -1910,33 +1858,6 @@ int parse_fromlogin(int fd) RFIFOSKIP(fd,11); break; - // gm account information from login server - case 0x2732: - if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) - return 0; - - if(!char_gm_read) { - unsigned char buf[32000]; //FIXME: this will crash - if (gm_account != NULL) - aFree(gm_account); - gm_account = (struct gm_account*)aCalloc(sizeof(struct gm_account) * ((RFIFOW(fd,2) - 4) / 5), 1); - GM_num = 0; - for (i = 4; i < RFIFOW(fd,2); i = i + 5) { - gm_account[GM_num].account_id = RFIFOL(fd,i); - gm_account[GM_num].level = (int)RFIFOB(fd,i+4); - //printf("GM account: %d -> level %d\n", gm_account[GM_num].account_id, gm_account[GM_num].level); - GM_num++; - } - ShowStatus("From login-server: receiving information of %d GM accounts.\n", GM_num); - // send new gm acccounts level to map-servers - memcpy(buf, RFIFOP(fd,0), RFIFOW(fd,2)); - WBUFW(buf,0) = 0x2b15; - mapif_sendall(buf, RFIFOW(fd,2)); - } - - RFIFOSKIP(fd,RFIFOW(fd,2)); - break; - // Login server request to kick a character out. [Skotlex] case 0x2734: if (RFIFOREST(fd) < 6) @@ -2214,18 +2135,6 @@ int parse_frommap(int fd) switch(RFIFOW(fd, 0)) { - case 0x2af7: // request from map-server to reload GM accounts. Transmission to login-server - if(char_gm_read) //Re-read gm accounts. - read_gm_account(); - //Send to login request to reload gm accounts. - else if (login_fd > 0) { // don't send request if no login-server - WFIFOHEAD(login_fd,2); - WFIFOW(login_fd,0) = 0x2709; - WFIFOSET(login_fd,2); - } - RFIFOSKIP(fd,2); - break; - case 0x2afa: // Receiving map names list from the map-server if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) return 0; @@ -2434,7 +2343,8 @@ int parse_frommap(int fd) node->login_id2 = login_id2; //node->sex = 0; node->ip = ntohl(ip); - node->expiration_time = 0; // unlimited/unknown time by default (not display in map-server) + //node->expiration_time = 0; // unlimited/unknown time by default (not display in map-server) + //node->gmlevel = 0; idb_put(auth_db, account_id, node); //Set char to "@ char select" in online db [Kevin] @@ -2467,7 +2377,7 @@ int parse_frommap(int fd) mmo_char_fromsql(RFIFOL(fd,14), &char_dat, true); char_data = (struct mmo_charstatus*)uidb_get(char_db_,RFIFOL(fd,14)); } - //Tell the new map server about this player using Kevin's new auth packet. [Skotlex] + if (map_fd >= 0 && session[map_fd] && char_data) { //Send the map server the auth of this player. struct auth_node* node; @@ -2478,19 +2388,6 @@ int parse_frommap(int fd) char_data->last_point.y = RFIFOW(fd,22); char_data->sex = RFIFOB(fd,30); -#if 0 - // the map-server must request it [FlavioJS] - WFIFOHEAD(map_fd, 20 + sizeof(struct mmo_charstatus)); - WFIFOW(map_fd,0) = 0x2afd; - WFIFOW(map_fd,2) = 20 + sizeof(struct mmo_charstatus); - WFIFOL(map_fd,4) = RFIFOL(fd,2); //Account ID - WFIFOL(map_fd,8) = RFIFOL(fd,6); //Login1 - WFIFOL(map_fd,16) = RFIFOL(fd,10); //Login2 - WFIFOL(map_fd,12) = (unsigned long)0; //TODO: expiration_time, how do I figure it out right now? - memcpy(WFIFOP(map_fd,20), char_data, sizeof(struct mmo_charstatus)); - WFIFOSET(map_fd, WFIFOW(map_fd,2)); -#endif - // create temporary auth entry CREATE(node, struct auth_node, 1); node->account_id = RFIFOL(fd,2); @@ -2588,9 +2485,10 @@ int parse_frommap(int fd) if( login_fd <= 0 ) result = 3; // 3-login-server offline - else - if( acc != -1 && isGM(acc) < isGM(account_id) ) - result = 2; // 2-gm level too low + //FIXME: need to move this check to login server [ultramage] +// else +// if( acc != -1 && isGM(acc) < isGM(account_id) ) +// result = 2; // 2-gm level too low else switch( type ) { case 1: // block @@ -2838,14 +2736,15 @@ int parse_frommap(int fd) {// auth ok cd->sex = sex; - WFIFOHEAD(fd,20 + sizeof(struct mmo_charstatus)); + WFIFOHEAD(fd,24 + sizeof(struct mmo_charstatus)); WFIFOW(fd,0) = 0x2afd; - WFIFOW(fd,2) = 20 + sizeof(struct mmo_charstatus); + WFIFOW(fd,2) = 24 + sizeof(struct mmo_charstatus); WFIFOL(fd,4) = account_id; - WFIFOL(fd,8) = login_id1; - WFIFOL(fd,12) = (uint32)node->expiration_time; // FIXME: will wrap to negative after "19-Jan-2038, 03:14:07 AM GMT" - WFIFOL(fd,16) = node->login_id2; - memcpy(WFIFOP(fd,20), cd, sizeof(struct mmo_charstatus)); + WFIFOL(fd,8) = node->login_id1; + WFIFOL(fd,12) = node->login_id2; + WFIFOL(fd,16) = (uint32)node->expiration_time; // FIXME: will wrap to negative after "19-Jan-2038, 03:14:07 AM GMT" + WFIFOL(fd,20) = node->gmlevel; + memcpy(WFIFOP(fd,24), cd, sizeof(struct mmo_charstatus)); WFIFOSET(fd, WFIFOW(fd,2)); // only use the auth once and mark user online @@ -2996,7 +2895,6 @@ int parse_char(int fd) CREATE(session[fd]->session_data, struct char_session_data, 1); sd = (struct char_session_data*)session[fd]->session_data; - sd->expiration_time = 0; // unknown or unlimited (not displaying on map-server) sd->account_id = account_id; sd->login_id1 = login_id1; sd->login_id2 = login_id2; @@ -3149,8 +3047,6 @@ int parse_char(int fd) WFIFOW(fd,0) = 0x71; WFIFOL(fd,2) = cp->char_id; mapindex_getmapname_ext(mapindex_id2name(cp->last_point.map), (char*)WFIFOP(fd,6)); - - // Advanced subnet check [LuzZza] subnet_map_ip = lan_subnetcheck(ipl); WFIFOL(fd,22) = htonl((subnet_map_ip) ? subnet_map_ip : server[i].ip); WFIFOW(fd,26) = ntows(htons(server[i].port)); // [!] LE byte order here [!] @@ -3164,6 +3060,7 @@ int parse_char(int fd) node->login_id2 = sd->login_id2; node->sex = sd->sex; node->expiration_time = sd->expiration_time; + node->gmlevel = sd->gmlevel; node->ip = ipl; idb_put(auth_db, sd->account_id, node); @@ -3324,15 +3221,6 @@ int parse_char(int fd) session[fd]->flag.server = 1; realloc_fifo(fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK); char_mapif_init(fd); - // send gm acccounts level to map-servers - WFIFOHEAD(fd,4+5*GM_num); - WFIFOW(fd,0) = 0x2b15; - for(i = 0; i < GM_num; i++) { - WFIFOL(fd,4+5*i) = gm_account[i].account_id; - WFIFOB(fd,4+5*i+4) = (unsigned char)gm_account[i].level; - } - WFIFOW(fd,2) = 4+5*GM_num; - WFIFOSET(fd,WFIFOW(fd,2)); } RFIFOSKIP(fd,60); @@ -3669,21 +3557,6 @@ void sql_config_read(const char* cfgName) if(!strcmpi(w1,"char_db")) strcpy(char_db,w2); -#ifndef TXT_SQL_CONVERT - else if(!strcmpi(w1,"gm_read_method")) - char_gm_read = config_switch(w2); - //custom columns for login database - else if(!strcmpi(w1,"login_db")) - strcpy(login_db,w2); - else if(!strcmpi(w1,"login_db_level")) - strcpy(login_db_level,w2); - else if(!strcmpi(w1,"login_db_account_id")) - strcpy(login_db_account_id,w2); - else if(!strcmpi(w1,"lowest_gm_level")) { - lowest_gm_level = atoi(w2); - ShowStatus("set lowest_gm_level : %s\n", w2); - } -#endif else if(!strcmpi(w1,"scdata_db")) strcpy(scdata_db,w2); else if(!strcmpi(w1,"cart_db")) @@ -3920,11 +3793,6 @@ void do_final(void) if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `ragsrvinfo") ) Sql_ShowDebug(sql_handle); - if(gm_account) { - aFree(gm_account); - gm_account = 0; - } - if (login_fd > 0) do_close(login_fd); if (char_fd > 0) @@ -3934,8 +3802,6 @@ void do_final(void) auth_db->destroy(auth_db, NULL); Sql_Free(sql_handle); - if( lsql_handle ) - Sql_Free(lsql_handle); ShowInfo("ok! all done...\n"); } @@ -3986,8 +3852,6 @@ int do_init(int argc, char **argv) online_char_db = idb_alloc(DB_OPT_RELEASE_DATA); mmo_char_sql_init(); char_read_fame_list(); //Read fame lists. - if(char_gm_read) - read_gm_account(); ShowInfo("char server initialized.\n"); set_defaultparse(parse_char); diff --git a/src/char_sql/char.h b/src/char_sql/char.h index 19c6fcba5..33c4544b2 100644 --- a/src/char_sql/char.h +++ b/src/char_sql/char.h @@ -6,7 +6,6 @@ struct mmo_charstatus; -#define START_CHAR_NUM 150000 #define MAX_MAP_SERVERS 30 #define DEFAULT_AUTOSAVE_INTERVAL 300*1000 @@ -64,13 +63,6 @@ extern char quest_obj_db[256]; extern int db_use_sqldbs; // added for sql item_db read for char server [Valaris] -extern char login_db_level[32]; -extern char login_db_account_id[32]; - -extern int lowest_gm_level; -extern int GM_num; -extern struct gm_account *gm_account; - extern int guild_exp_rate; extern int log_inter; diff --git a/src/char_sql/inter.c b/src/char_sql/inter.c index 261ed9b0d..58215d5da 100644 --- a/src/char_sql/inter.c +++ b/src/char_sql/inter.c @@ -28,7 +28,6 @@ Sql* sql_handle = NULL; -Sql* lsql_handle = NULL; int char_server_port = 3306; char char_server_ip[32] = "127.0.0.1"; @@ -37,12 +36,6 @@ char char_server_pw[32] = "ragnarok"; char char_server_db[32] = "ragnarok"; char default_codepage[32] = ""; //Feature by irmin. -int login_server_port = 3306; -char login_server_ip[32] = "127.0.0.1"; -char login_server_id[32] = "ragnarok"; -char login_server_pw[32] = "ragnarok"; -char login_server_db[32] = "ragnarok"; - #ifndef TXT_SQL_CONVERT static struct accreg *accreg_pt; @@ -71,8 +64,6 @@ struct WisData { static DBMap* wis_db = NULL; // int wis_id -> struct WisData* static int wis_dellist[WISDELLIST_MAX], wis_delnum; -int inter_sql_test (void); - #endif //TXT_SQL_CONVERT //-------------------------------------------------------- // Save registry to sql @@ -237,29 +228,6 @@ static int inter_config_read(const char* cfgName) strcpy(default_codepage,w2); ShowStatus ("set default_codepage : %s\n", w2); } - //Logins information to be read from the inter_athena.conf - //for character deletion (checks email in the loginDB) - else - if(!strcmpi(w1,"login_server_ip")) { - strcpy(login_server_ip, w2); - ShowStatus ("set login_server_ip : %s\n", w2); - } else - if(!strcmpi(w1,"login_server_port")) { - login_server_port = atoi(w2); - ShowStatus ("set login_server_port : %s\n", w2); - } else - if(!strcmpi(w1,"login_server_id")) { - strcpy(login_server_id, w2); - ShowStatus ("set login_server_id : %s\n", w2); - } else - if(!strcmpi(w1,"login_server_pw")) { - strcpy(login_server_pw, w2); - ShowStatus ("set login_server_pw : %s\n", w2); - } else - if(!strcmpi(w1,"login_server_db")) { - strcpy(login_server_db, w2); - ShowStatus ("set login_server_db : %s\n", w2); - } #ifndef TXT_SQL_CONVERT else if(!strcmpi(w1,"party_share_level")) party_share_level = atoi(w2); @@ -297,38 +265,6 @@ int inter_log(char* fmt, ...) return 0; } -/*============================================= - * Does a mysql_ping to all connection handles - *---------------------------------------------*/ -int inter_sql_ping(int tid, unsigned int tick, int id, intptr data) -{ - ShowInfo("Pinging SQL server to keep connection alive...\n"); - Sql_Ping(sql_handle); - if( char_gm_read ) - Sql_Ping(lsql_handle); - return 0; -} - - -int sql_ping_init(void) -{ - uint32 connection_timeout, connection_ping_interval; - - // set a default value first - connection_timeout = 28800; // 8 hours - - // ask the mysql server for the timeout value - if( SQL_SUCCESS == Sql_GetTimeout(sql_handle, &connection_timeout) && connection_timeout < 60 ) - connection_timeout = 60; - - // establish keepalive - connection_ping_interval = connection_timeout - 30; // 30-second reserve - add_timer_func_list(inter_sql_ping, "inter_sql_ping"); - add_timer_interval(gettick() + connection_ping_interval*1000, inter_sql_ping, 0, 0, connection_ping_interval*1000); - - return 0; -} - #endif //TXT_SQL_CONVERT // initialize @@ -348,34 +284,10 @@ int inter_init_sql(const char *file) Sql_Free(sql_handle); exit(EXIT_FAILURE); } -#ifndef TXT_SQL_CONVERT - else if (inter_sql_test()) { - ShowStatus("Connect Success! (Character Server)\n"); - } - if(char_gm_read) { - lsql_handle = Sql_Malloc(); - ShowInfo("Connect Character DB server.... (login server)\n"); - if( SQL_ERROR == Sql_Connect(lsql_handle, login_server_id, login_server_pw, login_server_ip, (uint16)login_server_port, login_server_db) ) - { - Sql_ShowDebug(lsql_handle); - Sql_Free(lsql_handle); - Sql_Free(sql_handle); - exit(EXIT_FAILURE); - } - else - { - ShowStatus ("Connect Success! (Login Server)\n"); - } - } -#endif //TXT_SQL_CONVERT if( *default_codepage ) { if( SQL_ERROR == Sql_SetEncoding(sql_handle, default_codepage) ) Sql_ShowDebug(sql_handle); -#ifndef TXT_SQL_CONVERT - if( char_gm_read && SQL_ERROR == Sql_SetEncoding(lsql_handle, default_codepage) ) - Sql_ShowDebug(lsql_handle); -#endif //TXT_SQL_CONVERT } #ifndef TXT_SQL_CONVERT @@ -389,46 +301,11 @@ int inter_init_sql(const char *file) inter_mail_sql_init(); inter_auction_sql_init(); - sql_ping_init(); #endif //TXT_SQL_CONVERT return 0; } #ifndef TXT_SQL_CONVERT -int inter_sql_test (void) -{ - const char fields[][24] = { - "father", // version 1363 - "fame", // version 1491 - }; - char buf[1024] = ""; - char* p; - size_t len; - int i; - - if( SQL_ERROR == Sql_GetColumnNames(sql_handle, char_db, buf, sizeof(buf), '\n') ) - Sql_ShowDebug(sql_handle); - - // check DB strings - for( i = 0; i < ARRAYLENGTH(fields); ++i ) - { - len = strlen(fields[i]); - p = strstr(buf, fields[i]); - while( p != NULL && p[len] != '\n' ) - p = strstr(p, fields[i]); - if( p == NULL ) - { - ShowSQL ("Field `%s` not be found in `%s`. Consider updating your database!\n", fields[i], char_db); - if( lsql_handle ) - Sql_Free(lsql_handle); - Sql_Free(sql_handle); - exit(EXIT_FAILURE); - } - } - - return 1; -} - // finalize void inter_final(void) { @@ -533,26 +410,6 @@ int mapif_account_reg_reply(int fd,int account_id,int char_id, int type) return 0; } -int mapif_send_gmaccounts() -{ - int i, len = 4; - unsigned char buf[32000]; - - // forward the gm accounts to the map server - len = 4; - WBUFW(buf,0) = 0x2b15; - - for(i = 0; i < GM_num; i++) { - WBUFL(buf,len) = gm_account[i].account_id; - WBUFB(buf,len+4) = (uint8)gm_account[i].level; - len += 5; - } - WBUFW(buf,2) = len; - mapif_sendall(buf, len); - - return 0; -} - //Request to kick char from a certain map server. [Skotlex] int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason) { @@ -815,6 +672,26 @@ int mapif_parse_NameChangeRequest(int fd) } //-------------------------------------------------------- + +/// Returns the length of the next complete packet to process, +/// or 0 if no complete packet exists in the queue. +/// +/// @param length The minimum allowed length, or -1 for dynamic lookup +int inter_check_length(int fd, int length) +{ + if( length == -1 ) + {// variable-length packet + if( RFIFOREST(fd) < 4 ) + return 0; + length = RFIFOW(fd,2); + } + + if( (int)RFIFOREST(fd) < length ) + return 0; + + return length; +} + int inter_parse_frommap(int fd) { int cmd; @@ -855,18 +732,4 @@ int inter_parse_frommap(int fd) return 1; } -// RFIFO check -int inter_check_length(int fd, int length) -{ - if(length == -1) { // v-len packet - if(RFIFOREST(fd) < 4) // packet not yet - return 0; - length = RFIFOW(fd, 2); - } - - if((int)RFIFOREST(fd) < length) // packet not yet - return 0; - - return length; -} #endif //TXT_SQL_CONVERT diff --git a/src/char_sql/inter.h b/src/char_sql/inter.h index a44ce77e1..ac2e1785f 100644 --- a/src/char_sql/inter.h +++ b/src/char_sql/inter.h @@ -14,30 +14,15 @@ int inter_mapif_init(int fd); int mapif_send_gmaccounts(void); int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason); -int inter_check_length(int fd,int length); - int inter_log(char *fmt,...); #define inter_cfgName "conf/inter_athena.conf" extern unsigned int party_share_level; -extern char inter_log_filename[1024]; extern Sql* sql_handle; extern Sql* lsql_handle; -extern int char_server_port; -extern char char_server_ip[32]; -extern char char_server_id[32]; -extern char char_server_pw[32]; -extern char char_server_db[32]; - -extern int login_db_server_port; -extern char login_db_server_ip[32]; -extern char login_db_server_id[32]; -extern char login_db_server_pw[32]; -extern char login_db_server_db[32]; - extern char main_chat_nick[16]; int inter_accreg_tosql(int account_id, int char_id, struct accreg *reg, int type); diff --git a/src/common/mmo.h b/src/common/mmo.h index 2e96e8910..9e419c65b 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -90,6 +90,7 @@ //Limits to avoid ID collision with other game objects #define START_ACCOUNT_NUM 2000000 #define END_ACCOUNT_NUM 100000000 +#define START_CHAR_NUM 150000 //Base Homun skill. #define HM_SKILLBASE 8001 @@ -344,11 +345,6 @@ struct registry { struct global_reg account2[ACCOUNT_REG2_NUM]; }; -struct gm_account { - int account_id; - int level; -}; - struct party_member { int account_id; int char_id; diff --git a/src/common/plugins.c b/src/common/plugins.c index 01a6194cd..c6c362de5 100644 --- a/src/common/plugins.c +++ b/src/common/plugins.c @@ -287,7 +287,7 @@ char *DLL_ERROR(void) { static char dllbuf[80]; DWORD dw = GetLastError(); - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw, 0, dllbuf, 80, NULL); + FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw, 0, dllbuf, 80, NULL); return dllbuf; } #endif diff --git a/src/common/plugins.h b/src/common/plugins.h index 9d93bcaa6..e71a4e8c5 100644 --- a/src/common/plugins.h +++ b/src/common/plugins.h @@ -16,7 +16,7 @@ #define WIN32_LEAN_AND_MEAN #include - #define DLL_OPEN(x) LoadLibrary(x) + #define DLL_OPEN(x) LoadLibraryA(x) #define DLL_SYM(x,y) GetProcAddress(x,y) #define DLL_CLOSE(x) FreeLibrary(x) char *DLL_ERROR(void); diff --git a/src/common/sql.c b/src/common/sql.c index 567fbb703..47ff320ea 100644 --- a/src/common/sql.c +++ b/src/common/sql.c @@ -5,6 +5,7 @@ #include "../common/malloc.h" #include "../common/showmsg.h" #include "../common/strlib.h" +#include "../common/timer.h" #include "sql.h" #ifdef WIN32 @@ -24,6 +25,7 @@ struct Sql MYSQL_RES* result; MYSQL_ROW row; unsigned long* lengths; + int keepalive; }; @@ -73,6 +75,8 @@ Sql* Sql_Malloc(void) +static int Sql_P_Keepalive(Sql* self); + /// Establishes a connection. int Sql_Connect(Sql* self, const char* user, const char* passwd, const char* host, uint16 port, const char* db) { @@ -85,6 +89,14 @@ int Sql_Connect(Sql* self, const char* user, const char* passwd, const char* hos ShowSQL("%s\n", mysql_error(&self->handle)); return SQL_ERROR; } + + self->keepalive = Sql_P_Keepalive(self); + if( self->keepalive == INVALID_TIMER ) + { + ShowSQL("Failed to establish keepalive for DB connection!\n"); + return SQL_ERROR; + } + return SQL_SUCCESS; } @@ -162,6 +174,44 @@ int Sql_Ping(Sql* self) +/// Wrapper function for Sql_Ping. +/// +/// @private +static int Sql_P_KeepaliveTimer(int tid, unsigned int tick, int id, intptr data) +{ + Sql* self = (Sql*)data; + ShowInfo("Pinging SQL server to keep connection alive...\n"); + Sql_Ping(self); + return 0; +} + + + +/// Establishes keepalive (periodic ping) on the connection. +/// +/// @return the keepalive timer id, or INVALID_TIMER +/// @private +static int Sql_P_Keepalive(Sql* self) +{ + uint32 timeout, ping_interval; + + // set a default value first + timeout = 28800; // 8 hours + + // request the timeout value from the mysql server + Sql_GetTimeout(self, &timeout); + + if( timeout < 60 ) + timeout = 60; + + // establish keepalive + ping_interval = timeout - 30; // 30-second reserve + //add_timer_func_list(Sql_P_KeepaliveTimer, "Sql_P_KeepaliveTimer"); + return add_timer_interval(gettick() + ping_interval*1000, Sql_P_KeepaliveTimer, 0, (int)self, ping_interval*1000); +} + + + /// Escapes a string. size_t Sql_EscapeString(Sql* self, char *out_to, const char *from) { @@ -356,6 +406,7 @@ void Sql_Free(Sql* self) { Sql_FreeResult(self); StringBuf_Destroy(&self->buf); + delete_timer(self->keepalive, Sql_P_KeepaliveTimer); aFree(self); } } diff --git a/src/common/utils.c b/src/common/utils.c index ce9ea56f2..c1128edb4 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -77,7 +77,7 @@ static char* checkpath(char *path, const char *srcpath) void findfile(const char *p, const char *pat, void (func)(const char*)) { - WIN32_FIND_DATA FindFileData; + WIN32_FIND_DATAA FindFileData; HANDLE hFind; char tmppath[MAX_PATH+1]; @@ -90,7 +90,7 @@ void findfile(const char *p, const char *pat, void (func)(const char*)) else strcat(tmppath, "*"); - hFind = FindFirstFile(tmppath, &FindFileData); + hFind = FindFirstFileA(tmppath, &FindFileData); if (hFind != INVALID_HANDLE_VALUE) { do @@ -111,7 +111,7 @@ void findfile(const char *p, const char *pat, void (func)(const char*)) { findfile(tmppath, pat, func); } - }while (FindNextFile(hFind, &FindFileData) != 0); + }while (FindNextFileA(hFind, &FindFileData) != 0); FindClose(hFind); } return; diff --git a/src/ladmin/ladmin.c b/src/ladmin/ladmin.c index b798ef385..56e08bde5 100644 --- a/src/ladmin/ladmin.c +++ b/src/ladmin/ladmin.c @@ -3,8 +3,6 @@ /////////////////////////////////////////////////////////////////////////// // EAthena login-server remote administration tool -// Ladamin in C by [Yor] -// if you modify this software, modify ladmin in tool too. /////////////////////////////////////////////////////////////////////////// #include "../common/cbasetypes.h" @@ -20,27 +18,6 @@ #include #include -#ifdef WIN32 -#define WIN32_LEAN_AND_MEAN -#include -void Gettimeofday(struct timeval *timenow) -{ - time_t t; - t = clock(); - timenow->tv_usec = t; - timenow->tv_sec = t / CLK_TCK; - return; -} -#define gettimeofday(timenow, dummy) Gettimeofday(timenow) -#else -#include -#include -#include // gettimeofday -#include -#include // close -#include // inet_addr -#include // gethostbyname -#endif #include #include #include @@ -54,7 +31,6 @@ void Gettimeofday(struct timeval *timenow) // IP of the login server. // Port where the login-server listens incoming packets. // Password of administration (same of config_athena.conf). -// Displayed language of the sofware (if not correct, english is used). // IMPORTANT: // Be sure that you authorize remote administration in login-server // (see login_athena.conf, 'admin_state' parameter) @@ -63,10 +39,9 @@ char loginserverip[16] = "127.0.0.1"; // IP of login-server int loginserverport = 6900; // Port of login-server char loginserveradminpassword[24] = "admin"; // Administration password int passenc = 0; // Encoding type of the password -char defaultlanguage = 'E'; // Default language (F: Fran軋is/E: English) - // (if it's not 'F', default is English) char ladmin_log_filename[1024] = "log/ladmin.log"; char date_format[32] = "%Y-%m-%d %H:%M:%S"; + //------------------------------------------------------------------------- // LIST of COMMANDs that you can type at the prompt: // To use these commands you can only type only the first letters. @@ -154,9 +129,6 @@ char date_format[32] = "%Y-%m-%d %H:%M:%S"; // kamib // Sends a broadcast message on all map-server (in blue). // -// language -// Change the language of displaying. -// // list/ls [start_id [end_id]] // Display a list of accounts. // 'start_id', 'end_id': indicate end and start identifiers. @@ -250,6 +222,7 @@ char date_format[32] = "%Y-%m-%d %H:%M:%S"; // Displays complete information of an account. // //------------------------------------------------------------------------- + int login_fd; int login_ip; int bytes_to_read = 0; // flag to know if we waiting bytes from login-server @@ -265,7 +238,7 @@ int ladmin_log(char *fmt, ...) { FILE *logfp; va_list ap; - struct timeval tv; + time_t t; char tmpstr[2048]; va_start(ap, fmt); @@ -275,9 +248,9 @@ int ladmin_log(char *fmt, ...) if (fmt[0] == '\0') // jump a line if no message fprintf(logfp, "\n"); else { - gettimeofday(&tv, NULL); - strftime(tmpstr, 24, date_format, localtime((const time_t*)&(tv.tv_sec))); - sprintf(tmpstr + strlen(tmpstr), ".%03d: %s", (int)tv.tv_usec / 1000, fmt); + t = time(NULL); + strftime(tmpstr, 24, date_format, localtime(&t)); + sprintf(tmpstr + strlen(tmpstr), ": %s", fmt); vfprintf(logfp, tmpstr, ap); } fclose(logfp); @@ -292,24 +265,15 @@ int ladmin_log(char *fmt, ...) //--------------------------------------------- char* makeordinal(int number) { - if (defaultlanguage == 'F') { - if (number == 0) - return ""; - else if (number == 1) - return "er"; + if ((number % 10) < 4 && (number % 10) != 0 && (number < 10 || number > 20)) { + if ((number % 10) == 1) + return "st"; + else if ((number % 10) == 2) + return "nd"; else - return "鑪e"; + return "rd"; } else { - if ((number % 10) < 4 && (number % 10) != 0 && (number < 10 || number > 20)) { - if ((number % 10) == 1) - return "st"; - else if ((number % 10) == 2) - return "nd"; - else - return "rd"; - } else { - return "th"; - } + return "th"; } return ""; } @@ -323,36 +287,21 @@ int verify_accountname(char* account_name) for(i = 0; account_name[i]; i++) { if (account_name[i] < 32) { - if (defaultlanguage == 'F') { - ShowMessage("Caract鑽e interdit trouv dans le nom du compte (%d%s caract鑽e).\n", i+1, makeordinal(i+1)); - ladmin_log("Caract鑽e interdit trouv dans le nom du compte (%d%s caract鑽e).\n", i+1, makeordinal(i+1)); - } else { - ShowMessage("Illegal character found in the account name (%d%s character).\n", i+1, makeordinal(i+1)); - ladmin_log("Illegal character found in the account name (%d%s character).\n", i+1, makeordinal(i+1)); - } + ShowMessage("Illegal character found in the account name (%d%s character).\n", i+1, makeordinal(i+1)); + ladmin_log("Illegal character found in the account name (%d%s character).\n", i+1, makeordinal(i+1)); return 0; } } if (strlen(account_name) < 4) { - if (defaultlanguage == 'F') { - ShowMessage("Nom du compte trop court. Entrez un nom de compte de 4-23 caract鑽es.\n"); - ladmin_log("Nom du compte trop court. Entrez un nom de compte de 4-23 caract鑽es.\n"); - } else { - ShowMessage("Account name is too short. Please input an account name of 4-23 bytes.\n"); - ladmin_log("Account name is too short. Please input an account name of 4-23 bytes.\n"); - } + ShowMessage("Account name is too short. Please input an account name of 4-23 bytes.\n"); + ladmin_log("Account name is too short. Please input an account name of 4-23 bytes.\n"); return 0; } if (strlen(account_name) > 23) { - if (defaultlanguage == 'F') { - ShowMessage("Nom du compte trop long. Entrez un nom de compte de 4-23 caract鑽es.\n"); - ladmin_log("Nom du compte trop long. Entrez un nom de compte de 4-23 caract鑽es.\n"); - } else { - ShowMessage("Account name is too long. Please input an account name of 4-23 bytes.\n"); - ladmin_log("Account name is too long. Please input an account name of 4-23 bytes.\n"); - } + ShowMessage("Account name is too long. Please input an account name of 4-23 bytes.\n"); + ladmin_log("Account name is too long. Please input an account name of 4-23 bytes.\n"); return 0; } @@ -368,50 +317,34 @@ int typepasswd(char * password) int letter; int i; - if (defaultlanguage == 'F') { - ladmin_log("Aucun mot de passe n'a 騁 donn. Demande d'un mot de passe.\n"); - } else { - ladmin_log("No password was given. Request to obtain a password.\n"); - } + ladmin_log("No password was given. Request to obtain a password.\n"); memset(password1, '\0', sizeof(password1)); memset(password2, '\0', sizeof(password2)); - if (defaultlanguage == 'F') - ShowMessage("\033[1;36m Entrez le mot de passe > \033[0;32;42m"); - else - ShowMessage("\033[1;36m Type the password > \033[0;32;42m"); - i = 0; - while ((letter = getchar()) != '\n') - password1[i++] = letter; - if (defaultlanguage == 'F') - ShowMessage("\033[0m\033[1;36m R-entrez le mot de passe > \033[0;32;42m"); - else - ShowMessage("\033[0m\033[1;36m Verify the password > \033[0;32;42m"); - i = 0; - while ((letter = getchar()) != '\n') - password2[i++] = letter; + + ShowMessage("\033[1;36m Type the password > \033[0;32;42m"); + + i = 0; + while ((letter = getchar()) != '\n') + password1[i++] = letter; + + ShowMessage("\033[0m\033[1;36m Verify the password > \033[0;32;42m"); + + i = 0; + while ((letter = getchar()) != '\n') + password2[i++] = letter; ShowMessage("\033[0m"); fflush(stdout); fflush(stdin); if (strcmp(password1, password2) != 0) { - if (defaultlanguage == 'F') { - ShowMessage("Erreur de v駻ification du mot de passe: Saisissez le m麥e mot de passe svp.\n"); - ladmin_log("Erreur de v駻ification du mot de passe: Saisissez le m麥e mot de passe svp.\n"); - ladmin_log(" Premier mot de passe: %s, second mot de passe: %s.\n", password1, password2); - } else { - ShowMessage("Password verification failed. Please input same password.\n"); - ladmin_log("Password verification failed. Please input same password.\n"); - ladmin_log(" First password: %s, second password: %s.\n", password1, password2); - } + ShowMessage("Password verification failed. Please input same password.\n"); + ladmin_log("Password verification failed. Please input same password.\n"); + ladmin_log(" First password: %s, second password: %s.\n", password1, password2); return 0; } - if (defaultlanguage == 'F') { - ladmin_log("Mot de passe saisi: %s.\n", password1); - } else { - ladmin_log("Typed password: %s.\n", password1); - } + ladmin_log("Typed password: %s.\n", password1); strcpy(password, password1); return 1; } @@ -425,36 +358,21 @@ int verify_password(char * password) for(i = 0; password[i]; i++) { if (password[i] < 32) { - if (defaultlanguage == 'F') { - ShowMessage("Caract鑽e interdit trouv dans le mot de passe (%d%s caract鑽e).\n", i+1, makeordinal(i+1)); - ladmin_log("Caract鑽e interdit trouv dans le nom du compte (%d%s caract鑽e).\n", i+1, makeordinal(i+1)); - } else { - ShowMessage("Illegal character found in the password (%d%s character).\n", i+1, makeordinal(i+1)); - ladmin_log("Illegal character found in the password (%d%s character).\n", i+1, makeordinal(i+1)); - } + ShowMessage("Illegal character found in the password (%d%s character).\n", i+1, makeordinal(i+1)); + ladmin_log("Illegal character found in the password (%d%s character).\n", i+1, makeordinal(i+1)); return 0; } } if (strlen(password) < 4) { - if (defaultlanguage == 'F') { - ShowMessage("Nom du compte trop court. Entrez un nom de compte de 4-23 caract鑽es.\n"); - ladmin_log("Nom du compte trop court. Entrez un nom de compte de 4-23 caract鑽es.\n"); - } else { - ShowMessage("Account name is too short. Please input an account name of 4-23 bytes.\n"); - ladmin_log("Account name is too short. Please input an account name of 4-23 bytes.\n"); - } + ShowMessage("Account name is too short. Please input an account name of 4-23 bytes.\n"); + ladmin_log("Account name is too short. Please input an account name of 4-23 bytes.\n"); return 0; } if (strlen(password) > 23) { - if (defaultlanguage == 'F') { - ShowMessage("Mot de passe trop long. Entrez un mot de passe de 4-23 caract鑽es.\n"); - ladmin_log("Mot de passe trop long. Entrez un mot de passe de 4-23 caract鑽es.\n"); - } else { - ShowMessage("Password is too long. Please input a password of 4-23 bytes.\n"); - ladmin_log("Password is too long. Please input a password of 4-23 bytes.\n"); - } + ShowMessage("Password is too long. Please input a password of 4-23 bytes.\n"); + ladmin_log("Password is too long. Please input a password of 4-23 bytes.\n"); return 0; } @@ -467,9 +385,7 @@ int verify_password(char * password) int check_command(char * command) { // help - if (strncmp(command, "aide", 2) == 0 && strncmp(command, "aide", strlen(command)) == 0) // not 1 letter command: 'aide' or 'add'? - strcpy(command, "aide"); - else if (strncmp(command, "help", 1) == 0 && strncmp(command, "help", strlen(command)) == 0) + if (strncmp(command, "help", 1) == 0 && strncmp(command, "help", strlen(command)) == 0) strcpy(command, "help"); // general commands else if (strncmp(command, "add", 2) == 0 && strncmp(command, "add", strlen(command)) == 0) // not 1 letter command: 'aide' or 'add'? @@ -506,9 +422,7 @@ int check_command(char * command) // strcpy(command, "kami"); // else if (strncmp(command, "kamib", 5) == 0 && strncmp(command, "kamib", strlen(command)) == 0) // only all letters command: 'kami' or 'kamib'? // strcpy(command, "kamib"); - else if ((strncmp(command, "language", 2) == 0 && strncmp(command, "language", strlen(command)) == 0)) // not 1 letter command: 'language' or 'list'? - strcpy(command, "language"); - else if ((strncmp(command, "list", 2) == 0 && strncmp(command, "list", strlen(command)) == 0) || // 'list' is default list command // not 1 letter command: 'language' or 'list'? + else if ((strncmp(command, "list", 2) == 0 && strncmp(command, "list", strlen(command)) == 0) || // 'list' is default list command // not 1 letter command: 'list'? strcmp(command, "ls") == 0) strcpy(command, "list"); else if ((strncmp(command, "listban", 5) == 0 && strncmp(command, "listban", strlen(command)) == 0) || @@ -567,7 +481,7 @@ int check_command(char * command) //----------------------------------------- // Sub-function: Display commands of ladmin //----------------------------------------- -void display_help(char* param, int language) +void display_help(char* param) { char command[1023]; int i; @@ -577,12 +491,8 @@ void display_help(char* param, int language) if (sscanf(param, "%s ", command) < 1 || strlen(command) == 0) strcpy(command, ""); // any value that is not a command - if (command[0] == '?') { - if (defaultlanguage == 'F') - strcpy(command, "aide"); - else - strcpy(command, "help"); - } + if (command[0] == '?') + strcpy(command, "help"); // lowercase for command for (i = 0; command[i]; i++) @@ -591,503 +501,242 @@ void display_help(char* param, int language) // Analyse of the command check_command(command); // give complete name to the command - if (defaultlanguage == 'F') { - ladmin_log("Affichage des commandes ou d'une commande.\n"); - } else { - ladmin_log("Displaying of the commands or a command.\n"); - } + ladmin_log("Displaying of the commands or a command.\n"); - if (language == 1) { - if (strcmp(command, "aide") == 0) { - ShowMessage("aide/help/?\n"); - ShowMessage(" Affiche la description des commandes\n"); - ShowMessage("aide/help/? [commande]\n"); - ShowMessage(" Affiche la description de la commande specifi馥\n"); - } else if (strcmp(command, "help") == 0 ) { - ShowMessage("aide/help/?\n"); - ShowMessage(" Display the description of the commands\n"); - ShowMessage("aide/help/? [command]\n"); - ShowMessage(" Display the description of the specified command\n"); + if (strcmp(command, "help") == 0 ) { + ShowMessage("aide/help/?\n"); + ShowMessage(" Display the description of the commands\n"); + ShowMessage("aide/help/? [command]\n"); + ShowMessage(" Display the description of the specified command\n"); // general commands - } else if (strcmp(command, "add") == 0) { - ShowMessage("add \n"); - ShowMessage(" Cr馥 un compte avec l'email par d馭aut (a@a.com).\n"); - ShowMessage(" Concernant le sexe, seule la premi鑽e lettre compte (F ou M).\n"); - ShowMessage(" L'e-mail est a@a.com (e-mail par d馭aut). C'est comme n'avoir aucun e-mail.\n"); - ShowMessage(" Lorsque motdepasse est omis, la saisie se fait sans que la frappe se voit.\n"); - ShowMessage(" add testname Male testpass\n"); - } else if (strcmp(command, "ban") == 0) { - ShowMessage("ban/banish aaaa/mm/jj hh:mm:ss \n"); - ShowMessage(" Change la date de fin de bannissement d'un compte.\n"); - ShowMessage(" Comme banset, mais est la fin.\n"); - } else if (strcmp(command, "banadd") == 0) { - ShowMessage("banadd \n"); - ShowMessage(" Ajoute ou soustrait du temps la date de banissement d'un compte.\n"); - ShowMessage(" Les modificateurs sont construits comme suit:\n"); - ShowMessage(" Valeur d'ajustement (-1, 1, +1, etc...)\n"); - ShowMessage(" El駑ent modifi:\n"); - ShowMessage(" a ou y: ann馥\n"); - ShowMessage(" m: mois\n"); - ShowMessage(" j ou d: jour\n"); - ShowMessage(" h: heure\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: seconde\n"); - ShowMessage(" banadd testname +1m-2mn1s-6a\n"); - ShowMessage(" Cette exemple ajoute 1 mois et une seconde, et soustrait 2 minutes\n"); - ShowMessage(" et 6 ans dans le m麥e temps.\n"); - ShowMessage("NOTE: Si vous modifez la date de banissement d'un compte non bani,\n"); - ShowMessage(" vous indiquez comme date (le moment actuel +- les ajustements)\n"); - } else if (strcmp(command, "banset") == 0) { - ShowMessage("banset aaaa/mm/jj [hh:mm:ss]\n"); - ShowMessage(" Change la date de fin de bannissement d'un compte.\n"); - ShowMessage(" Heure par d馭aut [hh:mm:ss]: 23:59:59.\n"); - ShowMessage("banset 0\n"); - ShowMessage(" D饕anni un compte (0 = de-banni).\n"); - } else if (strcmp(command, "block") == 0) { - ShowMessage("block \n"); - ShowMessage(" Place le status d'un compte 5 (You have been blocked by the GM Team).\n"); - ShowMessage(" La commande est l'駲uivalent de state 5.\n"); - } else if (strcmp(command, "check") == 0) { - ShowMessage("check \n"); - ShowMessage(" V駻ifie la validit d'un mot de passe pour un compte\n"); - ShowMessage(" NOTE: Le serveur n'enverra jamais un mot de passe.\n"); - ShowMessage(" C'est la seule m騁hode que vous poss馘ez pour savoir\n"); - ShowMessage(" si un mot de passe est le bon. L'autre m騁hode est\n"); - ShowMessage(" d'avoir un acc鑚 ('physique') au fichier des comptes.\n"); - } else if (strcmp(command, "create") == 0) { - ShowMessage("create \n"); - ShowMessage(" Comme la commande add, mais avec l'e-mail en plus.\n"); - ShowMessage(" create testname Male mon@mail.com testpass\n"); - } else if (strcmp(command, "delete") == 0) { - ShowMessage("del \n"); - ShowMessage(" Supprime un compte.\n"); - ShowMessage(" La commande demande confirmation. Apr鑚 confirmation, le compte est d騁ruit.\n"); - } else if (strcmp(command, "email") == 0) { - ShowMessage("email \n"); - ShowMessage(" Modifie l'e-mail d'un compte.\n"); - } else if (strcmp(command, "getcount") == 0) { - ShowMessage("getcount\n"); - ShowMessage(" Donne le nombre de joueurs en ligne par serveur de char.\n"); - } else if (strcmp(command, "gm") == 0) { - ShowMessage("gm [Niveau_GM]\n"); - ShowMessage(" Modifie le niveau de GM d'un compte.\n"); - ShowMessage(" Valeur par d馭aut: 0 (suppression du niveau de GM).\n"); - ShowMessage(" gm nomtest 80\n"); - } else if (strcmp(command, "id") == 0) { - ShowMessage("id \n"); - ShowMessage(" Donne l'id d'un compte.\n"); - } else if (strcmp(command, "info") == 0) { - ShowMessage("info \n"); - ShowMessage(" Affiche les informations sur un compte.\n"); - } else if (strcmp(command, "kami") == 0) { - ShowMessage("kami \n"); - ShowMessage(" Envoi un message g駭駻al sur tous les serveurs de map (en jaune).\n"); - } else if (strcmp(command, "kamib") == 0) { - ShowMessage("kamib \n"); - ShowMessage(" Envoi un message g駭駻al sur tous les serveurs de map (en bleu).\n"); - } else if (strcmp(command, "language") == 0) { - ShowMessage("language \n"); - ShowMessage(" Change la langue d'affichage.\n"); - ShowMessage(" Langues possibles: 'Fran軋is' ou 'English'.\n"); - } else if (strcmp(command, "list") == 0) { - ShowMessage("list/ls [Premier_id [Dernier_id]]\n"); - ShowMessage(" Affiche une liste de comptes.\n"); - ShowMessage(" 'Premier_id', 'Dernier_id': indique les identifiants de d駱art et de fin.\n"); - ShowMessage(" La recherche par nom n'est pas possible avec cette commande.\n"); - ShowMessage(" list 10 9999999\n"); - } else if (strcmp(command, "listban") == 0) { - ShowMessage("listBan/lsBan [Premier_id [Dernier_id]]\n"); - ShowMessage(" Comme list/ls, mais seulement pour les comptes avec statut ou bannis.\n"); - } else if (strcmp(command, "listgm") == 0) { - ShowMessage("listGM/lsGM [Premier_id [Dernier_id]]\n"); - ShowMessage(" Comme list/ls, mais seulement pour les comptes GM.\n"); - } else if (strcmp(command, "listok") == 0) { - ShowMessage("listOK/lsOK [Premier_id [Dernier_id]]\n"); - ShowMessage(" Comme list/ls, mais seulement pour les comptes sans statut et non bannis.\n"); - } else if (strcmp(command, "memo") == 0) { - ShowMessage("memo \n"); - ShowMessage(" Modifie le m駑o d'un compte.\n"); - ShowMessage(" 'memo': Il peut avoir jusqu' 253 caract鑽es (avec des espaces ou non).\n"); - } else if (strcmp(command, "name") == 0) { - ShowMessage("name \n"); - ShowMessage(" Donne le nom d'un compte.\n"); - } else if (strcmp(command, "password") == 0) { - ShowMessage("passwd \n"); - ShowMessage(" Change le mot de passe d'un compte.\n"); - ShowMessage(" Lorsque nouveaumotdepasse est omis,\n"); - ShowMessage(" la saisie se fait sans que la frappe ne se voit.\n"); - } else if (strcmp(command, "reloadgm") == 0) { - ShowMessage("reloadGM\n"); - ShowMessage(" Reload GM configuration file\n"); - } else if (strcmp(command, "search") == 0) { - ShowMessage("search \n"); - ShowMessage(" Cherche des comptes.\n"); - ShowMessage(" Affiche les comptes dont les noms correspondent.\n"); -// ShowMessage("search -r/-e/--expr/--regex \n"); -// ShowMessage(" Cherche des comptes par expression reguli鑽e.\n"); -// ShowMessage(" Affiche les comptes dont les noms correspondent.\n"); - } else if (strcmp(command, "sex") == 0) { - ShowMessage("sex \n"); - ShowMessage(" Modifie le sexe d'un compte.\n"); - ShowMessage(" sex testname Male\n"); - } else if (strcmp(command, "state") == 0) { - ShowMessage("state \n"); - ShowMessage(" Change le statut d'un compte.\n"); - ShowMessage(" 'nouveaustatut': Le statut est le m麥e que celui du packet 0x006a + 1.\n"); - ShowMessage(" les possibilit駸 sont:\n"); - ShowMessage(" 0 = Compte ok\n"); - ShowMessage(" 1 = Unregistered ID\n"); - ShowMessage(" 2 = Incorrect Password\n"); - ShowMessage(" 3 = This ID is expired\n"); - ShowMessage(" 4 = Rejected from Server\n"); - ShowMessage(" 5 = You have been blocked by the GM Team\n"); - ShowMessage(" 6 = Your Game's EXE file is not the latest version\n"); - ShowMessage(" 7 = You are Prohibited to log in until...\n"); - ShowMessage(" 8 = Server is jammed due to over populated\n"); - ShowMessage(" 9 = No MSG\n"); - ShowMessage(" 100 = This ID has been totally erased\n"); - ShowMessage(" all other values are 'No MSG', then use state 9 please.\n"); - ShowMessage(" 'message_erreur_7': message du code erreur 6 =\n"); - ShowMessage(" = Your are Prohibited to log in until... (packet 0x006a)\n"); - } else if (strcmp(command, "timeadd") == 0) { - ShowMessage("timeadd \n"); - ShowMessage(" Ajoute/soustrait du temps la limite de validit d'un compte.\n"); - ShowMessage(" Le modificateur est compos comme suit:\n"); - ShowMessage(" Valeur modificatrice (-1, 1, +1, etc...)\n"); - ShowMessage(" El駑ent modifi:\n"); - ShowMessage(" a ou y: ann馥\n"); - ShowMessage(" m: mois\n"); - ShowMessage(" j ou d: jour\n"); - ShowMessage(" h: heure\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: seconde\n"); - ShowMessage(" timeadd testname +1m-2mn1s-6a\n"); - ShowMessage(" Cette exemple ajoute 1 mois et une seconde, et soustrait 2 minutes\n"); - ShowMessage(" et 6 ans dans le m麥e temps.\n"); - ShowMessage("NOTE: Vous ne pouvez pas modifier une limite de validit illimit馥. Si vous\n"); - ShowMessage(" d駸irez le faire, c'est que vous voulez probablement cr馥r un limite de\n"); - ShowMessage(" validit limit馥. Donc, en premier, fix une limite de valitid.\n"); - } else if (strcmp(command, "timeadd") == 0) { - ShowMessage("timeset aaaa/mm/jj [hh:mm:ss]\n"); - ShowMessage(" Change la limite de validit d'un compte.\n"); - ShowMessage(" Heure par d馭aut [hh:mm:ss]: 23:59:59.\n"); - ShowMessage("timeset 0\n"); - ShowMessage(" Donne une limite de validit illimit馥 (0 = illimit馥).\n"); - } else if (strcmp(command, "unban") == 0) { - ShowMessage("unban/unbanish \n"); - ShowMessage(" Ote le banissement d'un compte.\n"); - ShowMessage(" La commande est l'駲uivalent de banset 0.\n"); - } else if (strcmp(command, "unblock") == 0) { - ShowMessage("unblock \n"); - ShowMessage(" Place le status d'un compte 0 (Compte ok).\n"); - ShowMessage(" La commande est l'駲uivalent de state 0.\n"); - } else if (strcmp(command, "version") == 0) { - ShowMessage("version\n"); - ShowMessage(" Affiche la version du login-serveur.\n"); - } else if (strcmp(command, "who") == 0) { - ShowMessage("who \n"); - ShowMessage(" Affiche les informations sur un compte.\n"); -// quit - } else if (strcmp(command, "quit") == 0 || - strcmp(command, "exit") == 0 || - strcmp(command, "end") == 0) { - ShowMessage("quit/end/exit\n"); - ShowMessage(" Fin du programme d'administration.\n"); -// unknown command - } else { - if (strlen(command) > 0) - ShowMessage("Commande inconnue [%s] pour l'aide. Affichage de toutes les commandes.\n", command); - ShowMessage(" aide/help/? -- Affiche cet aide\n"); - ShowMessage(" aide/help/? [commande] -- Affiche l'aide de la commande\n"); - ShowMessage(" add -- Cr馥 un compte (sans email)\n"); - ShowMessage(" ban/banish aaaa/mm/jj hh:mm:ss -- Fixe la date finale de banismnt\n"); - ShowMessage(" banadd/ba -- Ajout/soustrait du temps la\n"); - ShowMessage(" exemple: ba moncompte +1m-2mn1s-2y date finale de banissement\n"); - ShowMessage(" banset/bs aaaa/mm/jj [hh:mm:ss] -- Change la date fin de banisemnt\n"); - ShowMessage(" banset/bs 0 -- D-banis un compte.\n"); - ShowMessage(" block -- Mets le status d'un compte 5 (blocked by the GM Team)\n"); - ShowMessage(" check -- V駻ifie un mot de passe d'un compte\n"); - ShowMessage(" create -- Cr馥 un compte (avec email)\n"); - ShowMessage(" del -- Supprime un compte\n"); - ShowMessage(" email -- Modifie l'e-mail d'un compte\n"); - ShowMessage(" getcount -- Donne le nb de joueurs en ligne\n"); - ShowMessage(" gm [Niveau_GM] -- Modifie le niveau de GM d'un compte\n"); - ShowMessage(" id -- Donne l'id d'un compte\n"); - ShowMessage(" info -- Affiche les infos sur un compte\n"); - ShowMessage(" kami -- Envoi un message g駭駻al (en jaune)\n"); - ShowMessage(" kamib -- Envoi un message g駭駻al (en bleu)\n"); - ShowMessage(" language -- Change la langue d'affichage.\n"); - ShowMessage(" list/ls [Premier_id [Dernier_id] ] -- Affiche une liste de comptes\n"); - ShowMessage(" listBan/lsBan [Premier_id [Dernier_id] ] -- Affiche une liste de comptes\n"); - ShowMessage(" avec un statut ou bannis\n"); - ShowMessage(" listGM/lsGM [Premier_id [Dernier_id] ] -- Affiche une liste de comptes GM\n"); - ShowMessage(" listOK/lsOK [Premier_id [Dernier_id] ] -- Affiche une liste de comptes\n"); - ShowMessage(" sans status et non bannis\n"); - ShowMessage(" memo -- Modifie le memo d'un compte\n"); - ShowMessage(" name -- Donne le nom d'un compte\n"); - ShowMessage(" passwd -- Change le mot de passe d'un compte\n"); - ShowMessage(" quit/end/exit -- Fin du programme d'administation\n"); - ShowMessage(" reloadGM -- Recharger le fichier de config des GM\n"); - ShowMessage(" search -- Cherche des comptes\n"); -// ShowMessage(" search -e/-r/--expr/--regex -- Cherche des comptes par REGEX\n"); - ShowMessage(" sex -- Modifie le sexe d'un compte\n"); - ShowMessage(" state -- Change le statut d'1 compte\n"); - ShowMessage(" timeadd/ta -- Ajout/soustrait du temps la\n"); - ShowMessage(" exemple: ta moncompte +1m-2mn1s-2y limite de validit饅n"); - ShowMessage(" timeset/ts aaaa/mm/jj [hh:mm:ss] -- Change la limite de validit饅n"); - ShowMessage(" timeset/ts 0 -- limite de validit = illimit馥\n"); - ShowMessage(" unban/unbanish -- Ote le banissement d'un compte\n"); - ShowMessage(" unblock -- Mets le status d'un compte 0 (Compte ok)\n"); - ShowMessage(" version -- Donne la version du login-serveur\n"); - ShowMessage(" who -- Affiche les infos sur un compte\n"); - ShowMessage(" Note: Pour les noms de compte avec des espaces, tapez \"\" (ou ').\n"); - } - } else { - if (strcmp(command, "aide") == 0) { - ShowMessage("aide/help/?\n"); - ShowMessage(" Display the description of the commands\n"); - ShowMessage("aide/help/? [command]\n"); - ShowMessage(" Display the description of the specified command\n"); - } else if (strcmp(command, "help") == 0 ) { - ShowMessage("aide/help/?\n"); - ShowMessage(" Display the description of the commands\n"); - ShowMessage("aide/help/? [command]\n"); - ShowMessage(" Display the description of the specified command\n"); -// general commands - } else if (strcmp(command, "add") == 0) { - ShowMessage("add \n"); - ShowMessage(" Create an account with the default email (a@a.com).\n"); - ShowMessage(" Concerning the sex, only the first letter is used (F or M).\n"); - ShowMessage(" The e-mail is set to a@a.com (default e-mail). It's like to have no e-mail.\n"); - ShowMessage(" When the password is omitted,\n"); - ShowMessage(" the input is done without displaying of the pressed keys.\n"); - ShowMessage(" add testname Male testpass\n"); - } else if (strcmp(command, "ban") == 0) { - ShowMessage("ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" Changes the final date of a banishment of an account.\n"); - ShowMessage(" Like banset, but is at end.\n"); - } else if (strcmp(command, "banadd") == 0) { - ShowMessage("banadd \n"); - ShowMessage(" Adds or substracts time from the final date of a banishment of an account.\n"); - ShowMessage(" Modifier is done as follows:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" banadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ShowMessage("NOTE: If you modify the final date of a non-banished account,\n"); - ShowMessage(" you fix the final date to (actual time +- adjustments)\n"); - } else if (strcmp(command, "banset") == 0) { - ShowMessage("banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" Changes the final date of a banishment of an account.\n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ShowMessage("banset 0\n"); - ShowMessage(" Set a non-banished account (0 = unbanished).\n"); - } else if (strcmp(command, "block") == 0) { - ShowMessage("block \n"); - ShowMessage(" Set state 5 (You have been blocked by the GM Team) to an account.\n"); - ShowMessage(" This command works like state 5.\n"); - } else if (strcmp(command, "check") == 0) { - ShowMessage("check \n"); - ShowMessage(" Check the validity of a password for an account.\n"); - ShowMessage(" NOTE: Server will never send back a password.\n"); - ShowMessage(" It's the only method you have to know if a password is correct.\n"); - ShowMessage(" The other method is to have a ('physical') access to the accounts file.\n"); - } else if (strcmp(command, "create") == 0) { - ShowMessage("create \n"); - ShowMessage(" Like the 'add' command, but with e-mail moreover.\n"); - ShowMessage(" create testname Male my@mail.com testpass\n"); - } else if (strcmp(command, "delete") == 0) { - ShowMessage("del \n"); - ShowMessage(" Remove an account.\n"); - ShowMessage(" This order requires confirmation. After confirmation, the account is deleted.\n"); - } else if (strcmp(command, "email") == 0) { - ShowMessage("email \n"); - ShowMessage(" Modify the e-mail of an account.\n"); - } else if (strcmp(command, "getcount") == 0) { - ShowMessage("getcount\n"); - ShowMessage(" Give the number of players online on all char-servers.\n"); - } else if (strcmp(command, "gm") == 0) { - ShowMessage("gm [GM_level]\n"); - ShowMessage(" Modify the GM level of an account.\n"); - ShowMessage(" Default value remove GM level (GM level = 0).\n"); - ShowMessage(" gm testname 80\n"); - } else if (strcmp(command, "id") == 0) { - ShowMessage("id \n"); - ShowMessage(" Give the id of an account.\n"); - } else if (strcmp(command, "info") == 0) { - ShowMessage("info \n"); - ShowMessage(" Display complete information of an account.\n"); - } else if (strcmp(command, "kami") == 0) { - ShowMessage("kami \n"); - ShowMessage(" Sends a broadcast message on all map-server (in yellow).\n"); - } else if (strcmp(command, "kamib") == 0) { - ShowMessage("kamib \n"); - ShowMessage(" Sends a broadcast message on all map-server (in blue).\n"); - } else if (strcmp(command, "language") == 0) { - ShowMessage("language \n"); - ShowMessage(" Change the language of displaying.\n"); - ShowMessage(" Possible languages: Fran軋is or English.\n"); - } else if (strcmp(command, "list") == 0) { - ShowMessage("list/ls [start_id [end_id]]\n"); - ShowMessage(" Display a list of accounts.\n"); - ShowMessage(" 'start_id', 'end_id': indicate end and start identifiers.\n"); - ShowMessage(" Research by name is not possible with this command.\n"); - ShowMessage(" list 10 9999999\n"); - } else if (strcmp(command, "listban") == 0) { - ShowMessage("listBan/lsBan [start_id [end_id]]\n"); - ShowMessage(" Like list/ls, but only for accounts with state or banished.\n"); - } else if (strcmp(command, "listgm") == 0) { - ShowMessage("listGM/lsGM [start_id [end_id]]\n"); - ShowMessage(" Like list/ls, but only for GM accounts.\n"); - } else if (strcmp(command, "listok") == 0) { - ShowMessage("listOK/lsOK [start_id [end_id]]\n"); - ShowMessage(" Like list/ls, but only for accounts without state and not banished.\n"); - } else if (strcmp(command, "memo") == 0) { - ShowMessage("memo \n"); - ShowMessage(" Modify the memo of an account.\n"); - ShowMessage(" 'memo': it can have until 253 characters (with spaces or not).\n"); - } else if (strcmp(command, "name") == 0) { - ShowMessage("name \n"); - ShowMessage(" Give the name of an account.\n"); - } else if (strcmp(command, "password") == 0) { - ShowMessage("passwd \n"); - ShowMessage(" Change the password of an account.\n"); - ShowMessage(" When new password is omitted,\n"); - ShowMessage(" the input is done without displaying of the pressed keys.\n"); - } else if (strcmp(command, "reloadgm") == 0) { - ShowMessage("reloadGM\n"); - ShowMessage(" Reload GM configuration file\n"); - } else if (strcmp(command, "search") == 0) { - ShowMessage("search \n"); - ShowMessage(" Seek accounts.\n"); - ShowMessage(" Displays the accounts whose names correspond.\n"); + } else if (strcmp(command, "add") == 0) { + ShowMessage("add \n"); + ShowMessage(" Create an account with the default email (a@a.com).\n"); + ShowMessage(" Concerning the sex, only the first letter is used (F or M).\n"); + ShowMessage(" The e-mail is set to a@a.com (default e-mail). It's like to have no e-mail.\n"); + ShowMessage(" When the password is omitted,\n"); + ShowMessage(" the input is done without displaying of the pressed keys.\n"); + ShowMessage(" add testname Male testpass\n"); + } else if (strcmp(command, "ban") == 0) { + ShowMessage("ban/banish yyyy/mm/dd hh:mm:ss \n"); + ShowMessage(" Changes the final date of a banishment of an account.\n"); + ShowMessage(" Like banset, but is at end.\n"); + } else if (strcmp(command, "banadd") == 0) { + ShowMessage("banadd \n"); + ShowMessage(" Adds or substracts time from the final date of a banishment of an account.\n"); + ShowMessage(" Modifier is done as follows:\n"); + ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); + ShowMessage(" Modified element:\n"); + ShowMessage(" a or y: year\n"); + ShowMessage(" m: month\n"); + ShowMessage(" j or d: day\n"); + ShowMessage(" h: hour\n"); + ShowMessage(" mn: minute\n"); + ShowMessage(" s: second\n"); + ShowMessage(" banadd testname +1m-2mn1s-6y\n"); + ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); + ShowMessage(" and 6 years at the same time.\n"); + ShowMessage("NOTE: If you modify the final date of a non-banished account,\n"); + ShowMessage(" you fix the final date to (actual time +- adjustments)\n"); + } else if (strcmp(command, "banset") == 0) { + ShowMessage("banset yyyy/mm/dd [hh:mm:ss]\n"); + ShowMessage(" Changes the final date of a banishment of an account.\n"); + ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); + ShowMessage("banset 0\n"); + ShowMessage(" Set a non-banished account (0 = unbanished).\n"); + } else if (strcmp(command, "block") == 0) { + ShowMessage("block \n"); + ShowMessage(" Set state 5 (You have been blocked by the GM Team) to an account.\n"); + ShowMessage(" This command works like state 5.\n"); + } else if (strcmp(command, "check") == 0) { + ShowMessage("check \n"); + ShowMessage(" Check the validity of a password for an account.\n"); + ShowMessage(" NOTE: Server will never send back a password.\n"); + ShowMessage(" It's the only method you have to know if a password is correct.\n"); + ShowMessage(" The other method is to have a ('physical') access to the accounts file.\n"); + } else if (strcmp(command, "create") == 0) { + ShowMessage("create \n"); + ShowMessage(" Like the 'add' command, but with e-mail moreover.\n"); + ShowMessage(" create testname Male my@mail.com testpass\n"); + } else if (strcmp(command, "delete") == 0) { + ShowMessage("del \n"); + ShowMessage(" Remove an account.\n"); + ShowMessage(" This order requires confirmation. After confirmation, the account is deleted.\n"); + } else if (strcmp(command, "email") == 0) { + ShowMessage("email \n"); + ShowMessage(" Modify the e-mail of an account.\n"); + } else if (strcmp(command, "getcount") == 0) { + ShowMessage("getcount\n"); + ShowMessage(" Give the number of players online on all char-servers.\n"); + } else if (strcmp(command, "gm") == 0) { + ShowMessage("gm [GM_level]\n"); + ShowMessage(" Modify the GM level of an account.\n"); + ShowMessage(" Default value remove GM level (GM level = 0).\n"); + ShowMessage(" gm testname 80\n"); + } else if (strcmp(command, "id") == 0) { + ShowMessage("id \n"); + ShowMessage(" Give the id of an account.\n"); + } else if (strcmp(command, "info") == 0) { + ShowMessage("info \n"); + ShowMessage(" Display complete information of an account.\n"); + } else if (strcmp(command, "kami") == 0) { + ShowMessage("kami \n"); + ShowMessage(" Sends a broadcast message on all map-server (in yellow).\n"); + } else if (strcmp(command, "kamib") == 0) { + ShowMessage("kamib \n"); + ShowMessage(" Sends a broadcast message on all map-server (in blue).\n"); + } else if (strcmp(command, "list") == 0) { + ShowMessage("list/ls [start_id [end_id]]\n"); + ShowMessage(" Display a list of accounts.\n"); + ShowMessage(" 'start_id', 'end_id': indicate end and start identifiers.\n"); + ShowMessage(" Research by name is not possible with this command.\n"); + ShowMessage(" list 10 9999999\n"); + } else if (strcmp(command, "listban") == 0) { + ShowMessage("listBan/lsBan [start_id [end_id]]\n"); + ShowMessage(" Like list/ls, but only for accounts with state or banished.\n"); + } else if (strcmp(command, "listgm") == 0) { + ShowMessage("listGM/lsGM [start_id [end_id]]\n"); + ShowMessage(" Like list/ls, but only for GM accounts.\n"); + } else if (strcmp(command, "listok") == 0) { + ShowMessage("listOK/lsOK [start_id [end_id]]\n"); + ShowMessage(" Like list/ls, but only for accounts without state and not banished.\n"); + } else if (strcmp(command, "memo") == 0) { + ShowMessage("memo \n"); + ShowMessage(" Modify the memo of an account.\n"); + ShowMessage(" 'memo': it can have until 253 characters (with spaces or not).\n"); + } else if (strcmp(command, "name") == 0) { + ShowMessage("name \n"); + ShowMessage(" Give the name of an account.\n"); + } else if (strcmp(command, "password") == 0) { + ShowMessage("passwd \n"); + ShowMessage(" Change the password of an account.\n"); + ShowMessage(" When new password is omitted,\n"); + ShowMessage(" the input is done without displaying of the pressed keys.\n"); + } else if (strcmp(command, "reloadgm") == 0) { + ShowMessage("reloadGM\n"); + ShowMessage(" Reload GM configuration file\n"); + } else if (strcmp(command, "search") == 0) { + ShowMessage("search \n"); + ShowMessage(" Seek accounts.\n"); + ShowMessage(" Displays the accounts whose names correspond.\n"); // ShowMessage("search -r/-e/--expr/--regex \n"); // ShowMessage(" Seek accounts by regular expression.\n"); // ShowMessage(" Displays the accounts whose names correspond.\n"); - } else if (strcmp(command, "sex") == 0) { - ShowMessage("sex \n"); - ShowMessage(" Modify the sex of an account.\n"); - ShowMessage(" sex testname Male\n"); - } else if (strcmp(command, "state") == 0) { - ShowMessage("state \n"); - ShowMessage(" Change the state of an account.\n"); - ShowMessage(" 'new_state': state is the state of the packet 0x006a + 1.\n"); - ShowMessage(" The possibilities are:\n"); - ShowMessage(" 0 = Account ok\n"); - ShowMessage(" 1 = Unregistered ID\n"); - ShowMessage(" 2 = Incorrect Password\n"); - ShowMessage(" 3 = This ID is expired\n"); - ShowMessage(" 4 = Rejected from Server\n"); - ShowMessage(" 5 = You have been blocked by the GM Team\n"); - ShowMessage(" 6 = Your Game's EXE file is not the latest version\n"); - ShowMessage(" 7 = You are Prohibited to log in until...\n"); - ShowMessage(" 8 = Server is jammed due to over populated\n"); - ShowMessage(" 9 = No MSG\n"); - ShowMessage(" 100 = This ID has been totally erased\n"); - ShowMessage(" all other values are 'No MSG', then use state 9 please.\n"); - ShowMessage(" 'error_message_#7': message of the code error 6\n"); - ShowMessage(" = Your are Prohibited to log in until... (packet 0x006a)\n"); - } else if (strcmp(command, "timeadd") == 0) { - ShowMessage("timeadd \n"); - ShowMessage(" Adds or substracts time from the validity limit of an account.\n"); - ShowMessage(" Modifier is done as follows:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" timeadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ShowMessage("NOTE: You can not modify a unlimited validity limit.\n"); - ShowMessage(" If you want modify it, you want probably create a limited validity limit.\n"); - ShowMessage(" So, at first, you must set the validity limit to a date/time.\n"); - } else if (strcmp(command, "timeadd") == 0) { - ShowMessage("timeset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" Changes the validity limit of an account.\n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ShowMessage("timeset 0\n"); - ShowMessage(" Gives an unlimited validity limit (0 = unlimited).\n"); - } else if (strcmp(command, "unban") == 0) { - ShowMessage("unban/unbanish \n"); - ShowMessage(" Remove the banishment of an account.\n"); - ShowMessage(" This command works like banset 0.\n"); - } else if (strcmp(command, "unblock") == 0) { - ShowMessage("unblock \n"); - ShowMessage(" Set state 0 (Account ok) to an account.\n"); - ShowMessage(" This command works like state 0.\n"); - } else if (strcmp(command, "version") == 0) { - ShowMessage("version\n"); - ShowMessage(" Display the version of the login-server.\n"); - } else if (strcmp(command, "who") == 0) { - ShowMessage("who \n"); - ShowMessage(" Displays complete information of an account.\n"); + } else if (strcmp(command, "sex") == 0) { + ShowMessage("sex \n"); + ShowMessage(" Modify the sex of an account.\n"); + ShowMessage(" sex testname Male\n"); + } else if (strcmp(command, "state") == 0) { + ShowMessage("state \n"); + ShowMessage(" Change the state of an account.\n"); + ShowMessage(" 'new_state': state is the state of the packet 0x006a + 1.\n"); + ShowMessage(" The possibilities are:\n"); + ShowMessage(" 0 = Account ok\n"); + ShowMessage(" 1 = Unregistered ID\n"); + ShowMessage(" 2 = Incorrect Password\n"); + ShowMessage(" 3 = This ID is expired\n"); + ShowMessage(" 4 = Rejected from Server\n"); + ShowMessage(" 5 = You have been blocked by the GM Team\n"); + ShowMessage(" 6 = Your Game's EXE file is not the latest version\n"); + ShowMessage(" 7 = You are Prohibited to log in until...\n"); + ShowMessage(" 8 = Server is jammed due to over populated\n"); + ShowMessage(" 9 = No MSG\n"); + ShowMessage(" 100 = This ID has been totally erased\n"); + ShowMessage(" all other values are 'No MSG', then use state 9 please.\n"); + ShowMessage(" 'error_message_#7': message of the code error 6\n"); + ShowMessage(" = Your are Prohibited to log in until... (packet 0x006a)\n"); + } else if (strcmp(command, "timeadd") == 0) { + ShowMessage("timeadd \n"); + ShowMessage(" Adds or substracts time from the validity limit of an account.\n"); + ShowMessage(" Modifier is done as follows:\n"); + ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); + ShowMessage(" Modified element:\n"); + ShowMessage(" a or y: year\n"); + ShowMessage(" m: month\n"); + ShowMessage(" j or d: day\n"); + ShowMessage(" h: hour\n"); + ShowMessage(" mn: minute\n"); + ShowMessage(" s: second\n"); + ShowMessage(" timeadd testname +1m-2mn1s-6y\n"); + ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); + ShowMessage(" and 6 years at the same time.\n"); + ShowMessage("NOTE: You can not modify a unlimited validity limit.\n"); + ShowMessage(" If you want modify it, you want probably create a limited validity limit.\n"); + ShowMessage(" So, at first, you must set the validity limit to a date/time.\n"); + } else if (strcmp(command, "timeadd") == 0) { + ShowMessage("timeset yyyy/mm/dd [hh:mm:ss]\n"); + ShowMessage(" Changes the validity limit of an account.\n"); + ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); + ShowMessage("timeset 0\n"); + ShowMessage(" Gives an unlimited validity limit (0 = unlimited).\n"); + } else if (strcmp(command, "unban") == 0) { + ShowMessage("unban/unbanish \n"); + ShowMessage(" Remove the banishment of an account.\n"); + ShowMessage(" This command works like banset 0.\n"); + } else if (strcmp(command, "unblock") == 0) { + ShowMessage("unblock \n"); + ShowMessage(" Set state 0 (Account ok) to an account.\n"); + ShowMessage(" This command works like state 0.\n"); + } else if (strcmp(command, "version") == 0) { + ShowMessage("version\n"); + ShowMessage(" Display the version of the login-server.\n"); + } else if (strcmp(command, "who") == 0) { + ShowMessage("who \n"); + ShowMessage(" Displays complete information of an account.\n"); // quit - } else if (strcmp(command, "quit") == 0 || - strcmp(command, "exit") == 0 || - strcmp(command, "end") == 0) { - ShowMessage("quit/end/exit\n"); - ShowMessage(" End of the program of administration.\n"); + } else if (strcmp(command, "quit") == 0 || + strcmp(command, "exit") == 0 || + strcmp(command, "end") == 0) { + ShowMessage("quit/end/exit\n"); + ShowMessage(" End of the program of administration.\n"); // unknown command - } else { - if (strlen(command) > 0) - ShowMessage("Unknown command [%s] for help. Displaying of all commands.\n", command); - ShowMessage(" aide/help/? -- Display this help\n"); - ShowMessage(" aide/help/? [command] -- Display the help of the command\n"); - ShowMessage(" add -- Create an account with default email\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss -- Change final date of a ban\n"); - ShowMessage(" banadd/ba -- Add or substract time from the final\n"); - ShowMessage(" example: ba apple +1m-2mn1s-2y date of a banishment of an account\n"); - ShowMessage(" banset/bs yyyy/mm/dd [hh:mm:ss] -- Change final date of a ban\n"); - ShowMessage(" banset/bs 0 -- Un-banish an account\n"); - ShowMessage(" block -- Set state 5 (blocked by the GM Team) to an account\n"); - ShowMessage(" check -- Check the validity of a password\n"); - ShowMessage(" create -- Create an account with email\n"); - ShowMessage(" del -- Remove an account\n"); - ShowMessage(" email -- Modify an email of an account\n"); - ShowMessage(" getcount -- Give the number of players online\n"); - ShowMessage(" gm [GM_level] -- Modify the GM level of an account\n"); - ShowMessage(" id -- Give the id of an account\n"); - ShowMessage(" info -- Display all information of an account\n"); - ShowMessage(" kami -- Sends a broadcast message (in yellow)\n"); - ShowMessage(" kamib -- Sends a broadcast message (in blue)\n"); - ShowMessage(" language -- Change the language of displaying.\n"); - ShowMessage(" list/ls [First_id [Last_id]] -- Display a list of accounts\n"); - ShowMessage(" listBan/lsBan [First_id [Last_id] ] -- Display a list of accounts\n"); - ShowMessage(" with state or banished\n"); - ShowMessage(" listGM/lsGM [First_id [Last_id]] -- Display a list of GM accounts\n"); - ShowMessage(" listOK/lsOK [First_id [Last_id] ] -- Display a list of accounts\n"); - ShowMessage(" without state and not banished\n"); - ShowMessage(" memo -- Modify the memo of an account\n"); - ShowMessage(" name -- Give the name of an account\n"); - ShowMessage(" passwd -- Change the password of an account\n"); - ShowMessage(" quit/end/exit -- End of the program of administation\n"); - ShowMessage(" reloadGM -- Reload GM configuration file\n"); - ShowMessage(" search -- Seek accounts\n"); + } else { + if (strlen(command) > 0) + ShowMessage("Unknown command [%s] for help. Displaying of all commands.\n", command); + ShowMessage(" aide/help/? -- Display this help\n"); + ShowMessage(" aide/help/? [command] -- Display the help of the command\n"); + ShowMessage(" add -- Create an account with default email\n"); + ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss -- Change final date of a ban\n"); + ShowMessage(" banadd/ba -- Add or substract time from the final\n"); + ShowMessage(" example: ba apple +1m-2mn1s-2y date of a banishment of an account\n"); + ShowMessage(" banset/bs yyyy/mm/dd [hh:mm:ss] -- Change final date of a ban\n"); + ShowMessage(" banset/bs 0 -- Un-banish an account\n"); + ShowMessage(" block -- Set state 5 (blocked by the GM Team) to an account\n"); + ShowMessage(" check -- Check the validity of a password\n"); + ShowMessage(" create -- Create an account with email\n"); + ShowMessage(" del -- Remove an account\n"); + ShowMessage(" email -- Modify an email of an account\n"); + ShowMessage(" getcount -- Give the number of players online\n"); + ShowMessage(" gm [GM_level] -- Modify the GM level of an account\n"); + ShowMessage(" id -- Give the id of an account\n"); + ShowMessage(" info -- Display all information of an account\n"); + ShowMessage(" kami -- Sends a broadcast message (in yellow)\n"); + ShowMessage(" kamib -- Sends a broadcast message (in blue)\n"); + ShowMessage(" list/ls [First_id [Last_id]] -- Display a list of accounts\n"); + ShowMessage(" listBan/lsBan [First_id [Last_id] ] -- Display a list of accounts\n"); + ShowMessage(" with state or banished\n"); + ShowMessage(" listGM/lsGM [First_id [Last_id]] -- Display a list of GM accounts\n"); + ShowMessage(" listOK/lsOK [First_id [Last_id] ] -- Display a list of accounts\n"); + ShowMessage(" without state and not banished\n"); + ShowMessage(" memo -- Modify the memo of an account\n"); + ShowMessage(" name -- Give the name of an account\n"); + ShowMessage(" passwd -- Change the password of an account\n"); + ShowMessage(" quit/end/exit -- End of the program of administation\n"); + ShowMessage(" reloadGM -- Reload GM configuration file\n"); + ShowMessage(" search -- Seek accounts\n"); // ShowMessage(" search -e/-r/--expr/--regex -- Seek accounts by regular-expression\n"); - ShowMessage(" sex -- Modify the sex of an account\n"); - ShowMessage(" state -- Change the state\n"); - ShowMessage(" timeadd/ta -- Add or substract time from the\n"); - ShowMessage(" example: ta apple +1m-2mn1s-2y validity limit of an account\n"); - ShowMessage(" timeset/ts yyyy/mm/dd [hh:mm:ss] -- Change the validify limit\n"); - ShowMessage(" timeset/ts 0 -- Give a unlimited validity limit\n"); - ShowMessage(" unban/unbanish -- Remove the banishment of an account\n"); - ShowMessage(" unblock -- Set state 0 (Account ok) to an account\n"); - ShowMessage(" version -- Gives the version of the login-server\n"); - ShowMessage(" who -- Display all information of an account\n"); - ShowMessage(" who -- Display all information of an account\n"); - ShowMessage(" Note: To use spaces in an account name, type \"\" (or ').\n"); - } + ShowMessage(" sex -- Modify the sex of an account\n"); + ShowMessage(" state -- Change the state\n"); + ShowMessage(" timeadd/ta -- Add or substract time from the\n"); + ShowMessage(" example: ta apple +1m-2mn1s-2y validity limit of an account\n"); + ShowMessage(" timeset/ts yyyy/mm/dd [hh:mm:ss] -- Change the validify limit\n"); + ShowMessage(" timeset/ts 0 -- Give a unlimited validity limit\n"); + ShowMessage(" unban/unbanish -- Remove the banishment of an account\n"); + ShowMessage(" unblock -- Set state 0 (Account ok) to an account\n"); + ShowMessage(" version -- Gives the version of the login-server\n"); + ShowMessage(" who -- Display all information of an account\n"); + ShowMessage(" who -- Display all information of an account\n"); + ShowMessage(" Note: To use spaces in an account name, type \"\" (or ').\n"); } } @@ -1109,15 +758,9 @@ int addaccount(char* param, int emailflag) if (sscanf(param, "\"%[^\"]\" %s %[^\r\n]", name, sex, password) < 2 && // password can be void sscanf(param, "'%[^']' %s %[^\r\n]", name, sex, password) < 2 && // password can be void sscanf(param, "%s %s %[^\r\n]", name, sex, password) < 2) { // password can be void - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte, un sexe et un mot de passe svp.\n"); - ShowMessage(" add nomtest Male motdepassetest\n"); - ladmin_log("Nombre incorrect de param鑼res pour cr馥r un compte (commande 'add').\n"); - } else { - ShowMessage("Please input an account name, a sex and a password.\n"); - ShowMessage(" add testname Male testpass\n"); - ladmin_log("Incomplete parameters to create an account ('add' command).\n"); - } + ShowMessage("Please input an account name, a sex and a password.\n"); + ShowMessage(" add testname Male testpass\n"); + ladmin_log("Incomplete parameters to create an account ('add' command).\n"); return 136; } strcpy(email, "a@a.com"); // default email @@ -1125,15 +768,9 @@ int addaccount(char* param, int emailflag) if (sscanf(param, "\"%[^\"]\" %s %s %[^\r\n]", name, sex, email, password) < 3 && // password can be void sscanf(param, "'%[^']' %s %s %[^\r\n]", name, sex, email, password) < 3 && // password can be void sscanf(param, "%s %s %s %[^\r\n]", name, sex, email, password) < 3) { // password can be void - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte, un sexe et un mot de passe svp.\n"); - ShowMessage(" create nomtest Male mo@mail.com motdepassetest\n"); - ladmin_log("Nombre incorrect de param鑼res pour cr馥r un compte (commande 'create').\n"); - } else { - ShowMessage("Please input an account name, a sex and a password.\n"); - ShowMessage(" create testname Male my@mail.com testpass\n"); - ladmin_log("Incomplete parameters to create an account ('create' command).\n"); - } + ShowMessage("Please input an account name, a sex and a password.\n"); + ShowMessage(" create testname Male my@mail.com testpass\n"); + ladmin_log("Incomplete parameters to create an account ('create' command).\n"); return 136; } } @@ -1143,44 +780,24 @@ int addaccount(char* param, int emailflag) sex[0] = TOUPPER(sex[0]); if (strchr("MF", sex[0]) == NULL) { - if (defaultlanguage == 'F') { - ShowMessage("Sexe incorrect [%s]. Entrez M ou F svp.\n", sex); - ladmin_log("Sexe incorrect [%s]. Entrez M ou F svp.\n", sex); - } else { - ShowMessage("Illegal gender [%s]. Please input M or F.\n", sex); - ladmin_log("Illegal gender [%s]. Please input M or F.\n", sex); - } + ShowMessage("Illegal gender [%s]. Please input M or F.\n", sex); + ladmin_log("Illegal gender [%s]. Please input M or F.\n", sex); return 103; } if (strlen(email) < 3) { - if (defaultlanguage == 'F') { - ShowMessage("Email trop courte [%s]. Entrez une e-mail valide svp.\n", email); - ladmin_log("Email trop courte [%s]. Entrez une e-mail valide svp.\n", email); - } else { - ShowMessage("Email is too short [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Email is too short [%s]. Please input a valid e-mail.\n", email); - } + ShowMessage("Email is too short [%s]. Please input a valid e-mail.\n", email); + ladmin_log("Email is too short [%s]. Please input a valid e-mail.\n", email); return 109; } if (strlen(email) > 39) { - if (defaultlanguage == 'F') { - ShowMessage("Email trop longue [%s]. Entrez une e-mail de 39 caract鑽es maximum svp.\n", email); - ladmin_log("Email trop longue [%s]. Entrez une e-mail de 39 caract鑽es maximum svp.\n", email); - } else { - ShowMessage("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - ladmin_log("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - } + ShowMessage("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); + ladmin_log("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); return 109; } if (e_mail_check(email) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Email incorrecte [%s]. Entrez une e-mail valide svp.\n", email); - ladmin_log("Email incorrecte [%s]. Entrez une e-mail valide svp.\n", email); - } else { - ShowMessage("Invalid email [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Invalid email [%s]. Please input a valid e-mail.\n", email); - } + ShowMessage("Invalid email [%s]. Please input a valid e-mail.\n", email); + ladmin_log("Invalid email [%s]. Please input a valid e-mail.\n", email); return 109; } @@ -1191,11 +808,7 @@ int addaccount(char* param, int emailflag) if (verify_password(password) == 0) return 104; - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour cr馥r un compte.\n"); - } else { - ladmin_log("Request to login-server to create an account.\n"); - } + ladmin_log("Request to login-server to create an account.\n"); WFIFOW(login_fd,0) = 0x7930; memcpy(WFIFOP(login_fd,2), name, 24); @@ -1226,19 +839,11 @@ int banaddaccount(char* param) if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, modif) < 2 && sscanf(param, "'%[^']' %[^\r\n]", name, modif) < 2 && sscanf(param, "%s %[^\r\n]", name, modif) < 2) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte et un modificateur svp.\n"); - ShowMessage(" banadd nomtest +1m-2mn1s-6y\n"); - ShowMessage(" Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"); - ShowMessage(" et 6 ans dans le m麥e temps.\n"); - ladmin_log("Nombre incorrect de param鑼res pour modifier la fin de ban d'un compte (commande 'banadd').\n"); - } else { - ShowMessage("Please input an account name and a modifier.\n"); - ShowMessage(" : banadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("Incomplete parameters to modify the ban date/time of an account ('banadd' command).\n"); - } + ShowMessage("Please input an account name and a modifier.\n"); + ShowMessage(" : banadd testname +1m-2mn1s-6y\n"); + ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); + ShowMessage(" and 6 years at the same time.\n"); + ladmin_log("Incomplete parameters to modify the ban date/time of an account ('banadd' command).\n"); return 136; } if (verify_accountname(name) == 0) { @@ -1283,120 +888,61 @@ int banaddaccount(char* param) } } - if (defaultlanguage == 'F') { - ShowMessage(" ann馥: %d\n", year); - ShowMessage(" mois: %d\n", month); - ShowMessage(" jour: %d\n", day); - ShowMessage(" heure: %d\n", hour); - ShowMessage(" minute: %d\n", minute); - ShowMessage(" seconde: %d\n", second); - } else { - ShowMessage(" year: %d\n", year); - ShowMessage(" month: %d\n", month); - ShowMessage(" day: %d\n", day); - ShowMessage(" hour: %d\n", hour); - ShowMessage(" minute: %d\n", minute); - ShowMessage(" second: %d\n", second); - } + ShowMessage(" year: %d\n", year); + ShowMessage(" month: %d\n", month); + ShowMessage(" day: %d\n", day); + ShowMessage(" hour: %d\n", hour); + ShowMessage(" minute: %d\n", minute); + ShowMessage(" second: %d\n", second); if (year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0 && second == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Vous devez entrer un ajustement avec cette commande, svp:\n"); - ShowMessage(" Valeur d'ajustement (-1, 1, +1, etc...)\n"); - ShowMessage(" Element modifi:\n"); - ShowMessage(" a ou y: ann馥\n"); - ShowMessage(" m: mois\n"); - ShowMessage(" j ou d: jour\n"); - ShowMessage(" h: heure\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: seconde\n"); - ShowMessage(" banadd nomtest +1m-2mn1s-6y\n"); - ShowMessage(" Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"); - ShowMessage(" et 6 ans dans le m麥e temps.\n"); - ladmin_log("Aucun ajustement n'est pas un ajustement (commande 'banadd').\n"); - } else { - ShowMessage("Please give an adjustment with this command:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" banadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("No adjustment isn't an adjustment ('banadd' command).\n"); - } + ShowMessage("Please give an adjustment with this command:\n"); + ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); + ShowMessage(" Modified element:\n"); + ShowMessage(" a or y: year\n"); + ShowMessage(" m: month\n"); + ShowMessage(" j or d: day\n"); + ShowMessage(" h: hour\n"); + ShowMessage(" mn: minute\n"); + ShowMessage(" s: second\n"); + ShowMessage(" banadd testname +1m-2mn1s-6y\n"); + ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); + ShowMessage(" and 6 years at the same time.\n"); + ladmin_log("No adjustment isn't an adjustment ('banadd' command).\n"); return 137; } if (year > 127 || year < -127) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement d'ann馥s correct (de -127 127), svp.\n"); - ladmin_log("Ajustement de l'ann馥 hors norme (commande 'banadd').\n"); - } else { - ShowMessage("Please give a correct adjustment for the years (from -127 to 127).\n"); - ladmin_log("Abnormal adjustment for the year ('banadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the years (from -127 to 127).\n"); + ladmin_log("Abnormal adjustment for the year ('banadd' command).\n"); return 137; } if (month > 255 || month < -255) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement de mois correct (de -255 255), svp.\n"); - ladmin_log("Ajustement du mois hors norme (commande 'banadd').\n"); - } else { - ShowMessage("Please give a correct adjustment for the months (from -255 to 255).\n"); - ladmin_log("Abnormal adjustment for the month ('banadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the months (from -255 to 255).\n"); + ladmin_log("Abnormal adjustment for the month ('banadd' command).\n"); return 137; } if (day > 32767 || day < -32767) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement de jours correct (de -32767 32767), svp.\n"); - ladmin_log("Ajustement des jours hors norme (commande 'banadd').\n"); - } else { - ShowMessage("Please give a correct adjustment for the days (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the days ('banadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the days (from -32767 to 32767).\n"); + ladmin_log("Abnormal adjustment for the days ('banadd' command).\n"); return 137; } if (hour > 32767 || hour < -32767) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement d'heures correct (de -32767 32767), svp.\n"); - ladmin_log("Ajustement des heures hors norme (commande 'banadd').\n"); - } else { - ShowMessage("Please give a correct adjustment for the hours (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the hours ('banadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the hours (from -32767 to 32767).\n"); + ladmin_log("Abnormal adjustment for the hours ('banadd' command).\n"); return 137; } if (minute > 32767 || minute < -32767) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement de minutes correct (de -32767 32767), svp.\n"); - ladmin_log("Ajustement des minutes hors norme (commande 'banadd').\n"); - } else { - ShowMessage("Please give a correct adjustment for the minutes (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the minutes ('banadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the minutes (from -32767 to 32767).\n"); + ladmin_log("Abnormal adjustment for the minutes ('banadd' command).\n"); return 137; } if (second > 32767 || second < -32767) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement de secondes correct (de -32767 32767), svp.\n"); - ladmin_log("Ajustement des secondes hors norme (commande 'banadd').\n"); - } else { - ShowMessage("Please give a correct adjustment for the seconds (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the seconds ('banadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the seconds (from -32767 to 32767).\n"); + ladmin_log("Abnormal adjustment for the seconds ('banadd' command).\n"); return 137; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour modifier la date d'un bannissement.\n"); - } else { - ladmin_log("Request to login-server to modify a ban date/time.\n"); - } + ladmin_log("Request to login-server to modify a ban date/time.\n"); WFIFOW(login_fd,0) = 0x794c; memcpy(WFIFOP(login_fd,2), name, 24); @@ -1435,16 +981,11 @@ int bansetaccountsub(char* name, char* date, char* time) ((sscanf(date, "%d/%d/%d", &year, &month, &day) < 3 && sscanf(date, "%d-%d-%d", &year, &month, &day) < 3 && sscanf(date, "%d.%d.%d", &year, &month, &day) < 3) || - sscanf(time, "%d:%d:%d", &hour, &minute, &second) < 3)) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez une date et une heure svp (format: aaaa/mm/jj hh:mm:ss).\n"); - ShowMessage("Vous pouvez aussi mettre 0 la place si vous utilisez la commande 'banset'.\n"); - ladmin_log("Format incorrect pour la date/heure (commande'banset' ou 'ban').\n"); - } else { - ShowMessage("Please input a date and a time (format: yyyy/mm/dd hh:mm:ss).\n"); - ShowMessage("You can imput 0 instead of if you use 'banset' command.\n"); - ladmin_log("Invalid format for the date/time ('banset' or 'ban' command).\n"); - } + sscanf(time, "%d:%d:%d", &hour, &minute, &second) < 3)) + { + ShowMessage("Please input a date and a time (format: yyyy/mm/dd hh:mm:ss).\n"); + ShowMessage("You can imput 0 instead of if you use 'banset' command.\n"); + ladmin_log("Invalid format for the date/time ('banset' or 'ban' command).\n"); return 102; } @@ -1458,65 +999,35 @@ int bansetaccountsub(char* name, char* date, char* time) year = year - 1900; } if (month < 1 || month > 12) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un mois correct svp (entre 1 et 12).\n"); - ladmin_log("Mois incorrect pour la date (command 'banset' ou 'ban').\n"); - } else { - ShowMessage("Please give a correct value for the month (from 1 to 12).\n"); - ladmin_log("Invalid month for the date ('banset' or 'ban' command).\n"); - } + ShowMessage("Please give a correct value for the month (from 1 to 12).\n"); + ladmin_log("Invalid month for the date ('banset' or 'ban' command).\n"); return 102; } month = month - 1; if (day < 1 || day > 31) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un jour correct svp (entre 1 et 31).\n"); - ladmin_log("Jour incorrect pour la date (command 'banset' ou 'ban').\n"); - } else { - ShowMessage("Please give a correct value for the day (from 1 to 31).\n"); - ladmin_log("Invalid day for the date ('banset' or 'ban' command).\n"); - } + ShowMessage("Please give a correct value for the day (from 1 to 31).\n"); + ladmin_log("Invalid day for the date ('banset' or 'ban' command).\n"); return 102; } if (((month == 3 || month == 5 || month == 8 || month == 10) && day > 30) || (month == 1 && day > 29)) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un jour correct en fonction du mois (%d) svp.\n", month); - ladmin_log("Jour incorrect pour ce mois correspondant (command 'banset' ou 'ban').\n"); - } else { - ShowMessage("Please give a correct value for a day of this month (%d).\n", month); - ladmin_log("Invalid day for this month ('banset' or 'ban' command).\n"); - } + ShowMessage("Please give a correct value for a day of this month (%d).\n", month); + ladmin_log("Invalid day for this month ('banset' or 'ban' command).\n"); return 102; } if (hour < 0 || hour > 23) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez une heure correcte svp (entre 0 et 23).\n"); - ladmin_log("Heure incorrecte pour l'heure (command 'banset' ou 'ban').\n"); - } else { - ShowMessage("Please give a correct value for the hour (from 0 to 23).\n"); - ladmin_log("Invalid hour for the time ('banset' or 'ban' command).\n"); - } + ShowMessage("Please give a correct value for the hour (from 0 to 23).\n"); + ladmin_log("Invalid hour for the time ('banset' or 'ban' command).\n"); return 102; } if (minute < 0 || minute > 59) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez des minutes correctes svp (entre 0 et 59).\n"); - ladmin_log("Minute incorrecte pour l'heure (command 'banset' ou 'ban').\n"); - } else { - ShowMessage("Please give a correct value for the minutes (from 0 to 59).\n"); - ladmin_log("Invalid minute for the time ('banset' or 'ban' command).\n"); - } + ShowMessage("Please give a correct value for the minutes (from 0 to 59).\n"); + ladmin_log("Invalid minute for the time ('banset' or 'ban' command).\n"); return 102; } if (second < 0 || second > 59) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez des secondes correctes svp (entre 0 et 59).\n"); - ladmin_log("Seconde incorrecte pour l'heure (command 'banset' ou 'ban').\n"); - } else { - ShowMessage("Please give a correct value for the seconds (from 0 to 59).\n"); - ladmin_log("Invalid second for the time ('banset' or 'ban' command).\n"); - } + ShowMessage("Please give a correct value for the seconds (from 0 to 59).\n"); + ladmin_log("Invalid second for the time ('banset' or 'ban' command).\n"); return 102; } tmtime->tm_year = year; @@ -1528,26 +1039,15 @@ int bansetaccountsub(char* name, char* date, char* time) tmtime->tm_isdst = -1; // -1: no winter/summer time modification unban_time = mktime(tmtime); if (unban_time == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Date incorrecte.\n"); - ShowMessage("Entrez une date et une heure svp (format: aaaa/mm/jj hh:mm:ss).\n"); - ShowMessage("Vous pouvez aussi mettre 0 la place si vous utilisez la commande 'banset'.\n"); - ladmin_log("Date incorrecte. (command 'banset' ou 'ban').\n"); - } else { - ShowMessage("Invalid date.\n"); - ShowMessage("Please input a date and a time (format: yyyy/mm/dd hh:mm:ss).\n"); - ShowMessage("You can imput 0 instead of if you use 'banset' command.\n"); - ladmin_log("Invalid date. ('banset' or 'ban' command).\n"); - } + ShowMessage("Invalid date.\n"); + ShowMessage("Please input a date and a time (format: yyyy/mm/dd hh:mm:ss).\n"); + ShowMessage("You can imput 0 instead of if you use 'banset' command.\n"); + ladmin_log("Invalid date. ('banset' or 'ban' command).\n"); return 102; } } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour fixer un ban.\n"); - } else { - ladmin_log("Request to login-server to set a ban.\n"); - } + ladmin_log("Request to login-server to set a ban.\n"); WFIFOW(login_fd,0) = 0x794a; memcpy(WFIFOP(login_fd,2), name, 24); @@ -1572,23 +1072,13 @@ int banaccount(char* param) if (sscanf(param, "%s %s \"%[^\"]\"", date, time, name) < 3 && sscanf(param, "%s %s '%[^']'", date, time, name) < 3 && sscanf(param, "%s %s %[^\r\n]", date, time, name) < 3) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte, une date et une heure svp.\n"); - ShowMessage(": banset aaaa/mm/jj [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = d-bani)\n"); - ShowMessage(" ban/banish aaaa/mm/jj hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Heure par d馭aut [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Nombre incorrect de param鑼res pour fixer un ban (commande 'banset' ou 'ban').\n"); - } else { - ShowMessage("Please input an account name, a date and a hour.\n"); - ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = un-banished)\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a ban ('banset' or 'ban' command).\n"); - } + ShowMessage("Please input an account name, a date and a hour.\n"); + ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); + ShowMessage(" banset 0 (0 = un-banished)\n"); + ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); + ShowMessage(" unban/unbanish \n"); + ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); + ladmin_log("Incomplete parameters to set a ban ('banset' or 'ban' command).\n"); return 136; } @@ -1609,23 +1099,13 @@ int bansetaccount(char* param) if (sscanf(param, "\"%[^\"]\" %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void sscanf(param, "'%[^']' %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void sscanf(param, "%s %s %[^\r\n]", name, date, time) < 2) { // if date = 0, time can be void - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte, une date et une heure svp.\n"); - ShowMessage(": banset aaaa/mm/jj [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = d-bani)\n"); - ShowMessage(" ban/banish aaaa/mm/jj hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Heure par d馭aut [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Nombre incorrect de param鑼res pour fixer un ban (commande 'banset' ou 'ban').\n"); - } else { - ShowMessage("Please input an account name, a date and a hour.\n"); - ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = un-banished)\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a ban ('banset' or 'ban' command).\n"); - } + ShowMessage("Please input an account name, a date and a hour.\n"); + ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); + ShowMessage(" banset 0 (0 = un-banished)\n"); + ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); + ShowMessage(" unban/unbanish \n"); + ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); + ladmin_log("Incomplete parameters to set a ban ('banset' or 'ban' command).\n"); return 136; } @@ -1648,24 +1128,15 @@ int unbanaccount(char* param) (sscanf(param, "\"%[^\"]\"", name) < 1 && sscanf(param, "'%[^']'", name) < 1 && sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte svp.\n"); - ShowMessage(": banset aaaa/mm/jj [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = d-bani)\n"); - ShowMessage(" ban/banish aaaa/mm/jj hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Heure par d馭aut [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Nombre incorrect de param鑼res pour fixer un ban (commande 'unban').\n"); - } else { - ShowMessage("Please input an account name.\n"); - ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = un-banished)\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a ban ('unban' command).\n"); - } + strlen(name) == 0) + { + ShowMessage("Please input an account name.\n"); + ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); + ShowMessage(" banset 0 (0 = un-banished)\n"); + ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); + ShowMessage(" unban/unbanish \n"); + ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); + ladmin_log("Incomplete parameters to set a ban ('unban' command).\n"); return 136; } @@ -1687,15 +1158,9 @@ int checkaccount(char* param) if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, password) < 1 && // password can be void sscanf(param, "'%[^']' %[^\r\n]", name, password) < 1 && // password can be void sscanf(param, "%s %[^\r\n]", name, password) < 1) { // password can be void - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte svp.\n"); - ShowMessage(" check testname motdepasse\n"); - ladmin_log("Nombre incorrect de param鑼res pour tester le mot d'un passe d'un compte (commande 'check').\n"); - } else { - ShowMessage("Please input an account name.\n"); - ShowMessage(" check testname password\n"); - ladmin_log("Incomplete parameters to check the password of an account ('check' command).\n"); - } + ShowMessage("Please input an account name.\n"); + ShowMessage(" check testname password\n"); + ladmin_log("Incomplete parameters to check the password of an account ('check' command).\n"); return 136; } @@ -1710,11 +1175,7 @@ int checkaccount(char* param) if (verify_password(password) == 0) return 131; - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour test un mot de passe.\n"); - } else { - ladmin_log("Request to login-server to check a password.\n"); - } + ladmin_log("Request to login-server to check a password.\n"); WFIFOW(login_fd,0) = 0x793a; memcpy(WFIFOP(login_fd,2), name, 24); @@ -1742,16 +1203,11 @@ int delaccount(char* param) (sscanf(param, "\"%[^\"]\"", name) < 1 && sscanf(param, "'%[^']'", name) < 1 && sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte svp.\n"); - ShowMessage(" del nomtestasupprimer\n"); - ladmin_log("Aucun nom donn pour supprimer un compte (commande 'delete').\n"); - } else { - ShowMessage("Please input an account name.\n"); - ShowMessage(" del testnametodelete\n"); - ladmin_log("No name given to delete an account ('delete' command).\n"); - } + strlen(name) == 0) + { + ShowMessage("Please input an account name.\n"); + ShowMessage(" del testnametodelete\n"); + ladmin_log("No name given to delete an account ('delete' command).\n"); return 136; } @@ -1760,11 +1216,9 @@ int delaccount(char* param) } memset(confirm, '\0', sizeof(confirm)); - while ((confirm[0] != 'o' || defaultlanguage != 'F') && confirm[0] != 'n' && (confirm[0] != 'y' || defaultlanguage == 'F')) { - if (defaultlanguage == 'F') - ShowMessage("\033[1;36m ** Etes-vous vraiment sr de vouloir SUPPRIMER le compte [$userid]? (o/n) > \033[0m"); - else - ShowMessage("\033[1;36m ** Are you really sure to DELETE account [$userid]? (y/n) > \033[0m"); + while (confirm[0] != 'n' && confirm[0] != 'y') + { + ShowMessage("\033[1;36m ** Are you really sure to DELETE account [$userid]? (y/n) > \033[0m"); fflush(stdout); memset(confirm, '\0', sizeof(confirm)); i = 0; @@ -1773,21 +1227,12 @@ int delaccount(char* param) } if (confirm[0] == 'n') { - if (defaultlanguage == 'F') { - ShowMessage("Suppression annul馥.\n"); - ladmin_log("Suppression annul馥 par l'utilisateur (commande 'delete').\n"); - } else { - ShowMessage("Deletion canceled.\n"); - ladmin_log("Deletion canceled by user ('delete' command).\n"); - } + ShowMessage("Deletion canceled.\n"); + ladmin_log("Deletion canceled by user ('delete' command).\n"); return 121; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour d騁ruire un compte.\n"); - } else { - ladmin_log("Request to login-server to delete an acount.\n"); - } + ladmin_log("Request to login-server to delete an acount.\n"); WFIFOW(login_fd,0) = 0x7932; memcpy(WFIFOP(login_fd,2), name, 24); @@ -1811,15 +1256,9 @@ int changeemail(char* param) if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, email) < 2 && sscanf(param, "'%[^']' %[^\r\n]", name, email) < 2 && sscanf(param, "%s %[^\r\n]", name, email) < 2) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte et une email svp.\n"); - ShowMessage(" email testname nouveauemail\n"); - ladmin_log("Nombre incorrect de param鑼res pour changer l'email d'un compte (commande 'email').\n"); - } else { - ShowMessage("Please input an account name and an email.\n"); - ShowMessage(" email testname newemail\n"); - ladmin_log("Incomplete parameters to change the email of an account ('email' command).\n"); - } + ShowMessage("Please input an account name and an email.\n"); + ShowMessage(" email testname newemail\n"); + ladmin_log("Incomplete parameters to change the email of an account ('email' command).\n"); return 136; } @@ -1828,41 +1267,22 @@ int changeemail(char* param) } if (strlen(email) < 3) { - if (defaultlanguage == 'F') { - ShowMessage("Email trop courte [%s]. Entrez une e-mail valide svp.\n", email); - ladmin_log("Email trop courte [%s]. Entrez une e-mail valide svp.\n", email); - } else { - ShowMessage("Email is too short [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Email is too short [%s]. Please input a valid e-mail.\n", email); - } + ShowMessage("Email is too short [%s]. Please input a valid e-mail.\n", email); + ladmin_log("Email is too short [%s]. Please input a valid e-mail.\n", email); return 109; } if (strlen(email) > 39) { - if (defaultlanguage == 'F') { - ShowMessage("Email trop longue [%s]. Entrez une e-mail de 39 caract鑽es maximum svp.\n", email); - ladmin_log("Email trop longue [%s]. Entrez une e-mail de 39 caract鑽es maximum svp.\n", email); - } else { - ShowMessage("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - ladmin_log("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - } + ShowMessage("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); + ladmin_log("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); return 109; } if (e_mail_check(email) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Email incorrecte [%s]. Entrez une e-mail valide svp.\n", email); - ladmin_log("Email incorrecte [%s]. Entrez une e-mail valide svp.\n", email); - } else { - ShowMessage("Invalid email [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Invalid email [%s]. Please input a valid e-mail.\n", email); - } + ShowMessage("Invalid email [%s]. Please input a valid e-mail.\n", email); + ladmin_log("Invalid email [%s]. Please input a valid e-mail.\n", email); return 109; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour changer une email.\n"); - } else { - ladmin_log("Request to login-server to change an email.\n"); - } + ladmin_log("Request to login-server to change an email.\n"); WFIFOW(login_fd,0) = 0x7940; memcpy(WFIFOP(login_fd,2), name, 24); @@ -1879,11 +1299,7 @@ int changeemail(char* param) int getlogincount(void) { WFIFOHEAD(login_fd,2); - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour obtenir le nombre de joueurs en jeu.\n"); - } else { - ladmin_log("Request to login-server to obtain the # of online players.\n"); - } + ladmin_log("Request to login-server to obtain the # of online players.\n"); WFIFOW(login_fd,0) = 0x7938; WFIFOSET(login_fd,2); @@ -1907,15 +1323,9 @@ int changegmlevel(char* param) if (sscanf(param, "\"%[^\"]\" %d", name, &GM_level) < 1 && sscanf(param, "'%[^']' %d", name, &GM_level) < 1 && sscanf(param, "%s %d", name, &GM_level) < 1) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte et un niveau de GM svp.\n"); - ShowMessage(" gm nomtest 80\n"); - ladmin_log("Nombre incorrect de param鑼res pour changer le Niveau de GM d'un compte (commande 'gm').\n"); - } else { - ShowMessage("Please input an account name and a GM level.\n"); - ShowMessage(" gm testname 80\n"); - ladmin_log("Incomplete parameters to change the GM level of an account ('gm' command).\n"); - } + ShowMessage("Please input an account name and a GM level.\n"); + ShowMessage(" gm testname 80\n"); + ladmin_log("Incomplete parameters to change the GM level of an account ('gm' command).\n"); return 136; } @@ -1924,21 +1334,12 @@ int changegmlevel(char* param) } if (GM_level < 0 || GM_level > 99) { - if (defaultlanguage == 'F') { - ShowMessage("Niveau de GM incorrect [%d]. Entrez une valeur de 0 99 svp.\n", GM_level); - ladmin_log("Niveau de GM incorrect [%d]. La valeur peut 黎re de 0 99.\n", GM_level); - } else { - ShowMessage("Illegal GM level [%d]. Please input a value from 0 to 99.\n", GM_level); - ladmin_log("Illegal GM level [%d]. The value can be from 0 to 99.\n", GM_level); - } + ShowMessage("Illegal GM level [%d]. Please input a value from 0 to 99.\n", GM_level); + ladmin_log("Illegal GM level [%d]. The value can be from 0 to 99.\n", GM_level); return 103; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour changer un niveau de GM.\n"); - } else { - ladmin_log("Request to login-server to change a GM level.\n"); - } + ladmin_log("Request to login-server to change a GM level.\n"); WFIFOW(login_fd,0) = 0x793e; memcpy(WFIFOP(login_fd,2), name, 24); @@ -1963,16 +1364,11 @@ int idaccount(char* param) (sscanf(param, "\"%[^\"]\"", name) < 1 && sscanf(param, "'%[^']'", name) < 1 && sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte svp.\n"); - ShowMessage(" id nomtest\n"); - ladmin_log("Aucun nom donn pour rechecher l'id d'un compte (commande 'id').\n"); - } else { - ShowMessage("Please input an account name.\n"); - ShowMessage(" id testname\n"); - ladmin_log("No name given to search an account id ('id' command).\n"); - } + strlen(name) == 0) + { + ShowMessage("Please input an account name.\n"); + ShowMessage(" id testname\n"); + ladmin_log("No name given to search an account id ('id' command).\n"); return 136; } @@ -1980,11 +1376,7 @@ int idaccount(char* param) return 102; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour connatre l'id d'un compte.\n"); - } else { - ladmin_log("Request to login-server to know an account id.\n"); - } + ladmin_log("Request to login-server to know an account id.\n"); WFIFOW(login_fd,0) = 0x7944; memcpy(WFIFOP(login_fd,2), name, 24); @@ -2001,21 +1393,12 @@ int infoaccount(int account_id) { WFIFOHEAD(login_fd,6); if (account_id < 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un id ayant une valeur positive svp.\n"); - ladmin_log("Une valeur n馮ative a 騁 donn pour trouver le compte.\n"); - } else { - ShowMessage("Please input a positive value for the id.\n"); - ladmin_log("Negative value was given to found the account.\n"); - } + ShowMessage("Please input a positive value for the id.\n"); + ladmin_log("Negative value was given to found the account.\n"); return 136; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour obtenir le information d'un compte (par l'id).\n"); - } else { - ladmin_log("Request to login-server to obtain information about an account (by its id).\n"); - } + ladmin_log("Request to login-server to obtain information about an account (by its id).\n"); WFIFOW(login_fd,0) = 0x7954; WFIFOL(login_fd,2) = account_id; @@ -2033,23 +1416,13 @@ int sendbroadcast(short type, char* message) int len = strlen(message); WFIFOHEAD(login_fd,9+len); if (len == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un message svp.\n"); - if (type == 0) { - ShowMessage(" kami un message\n"); - } else { - ShowMessage(" kamib un message\n"); - } - ladmin_log("Le message est vide (commande 'kami(b)').\n"); + ShowMessage("Please input a message.\n"); + if (type == 0) { + ShowMessage(" kami a message\n"); } else { - ShowMessage("Please input a message.\n"); - if (type == 0) { - ShowMessage(" kami a message\n"); - } else { - ShowMessage(" kamib a message\n"); - } - ladmin_log("The message is void ('kami(b)' command).\n"); + ShowMessage(" kamib a message\n"); } + ladmin_log("The message is void ('kami(b)' command).\n"); return 136; } len++; //+'\0' @@ -2063,49 +1436,6 @@ int sendbroadcast(short type, char* message) return 0; } -//-------------------------------------------- -// Sub-function: Change language of displaying -//-------------------------------------------- -int changelanguage(char* language) -{ - if (strlen(language) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez une langue svp.\n"); - ShowMessage(" language english\n"); - ShowMessage(" language fran軋is\n"); - ladmin_log("La langue est vide (commande 'language').\n"); - } else { - ShowMessage("Please input a language.\n"); - ShowMessage(" language english\n"); - ShowMessage(" language fran軋is\n"); - ladmin_log("The language is void ('language' command).\n"); - } - return 136; - } - - language[0] = TOUPPER(language[0]); - if (language[0] == 'F' || language[0] == 'E') { - defaultlanguage = language[0]; - if (defaultlanguage == 'F') { - ShowMessage("Changement de la langue d'affichage en Fran軋is.\n"); - ladmin_log("Changement de la langue d'affichage en Fran軋is.\n"); - } else { - ShowMessage("Displaying language changed to English.\n"); - ladmin_log("Displaying language changed to English.\n"); - } - } else { - if (defaultlanguage == 'F') { - ShowMessage("Langue non param騁r馥 (langues possibles: 'Fran軋is' ou 'English').\n"); - ladmin_log("Langue non param騁r馥 (Fran軋is ou English n馗essaire).\n"); - } else { - ShowMessage("Undefined language (possible languages: Fran軋is or English).\n"); - ladmin_log("Undefined language (must be Fran軋is or English).\n"); - } - } - - return 0; -} - //-------------------------------------------------------- // Sub-function: Asking to Displaying of the accounts list //-------------------------------------------------------- @@ -2148,11 +1478,7 @@ int listaccount(char* param, int type) } } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour obtenir la liste des comptes de %d %d.\n", list_first, list_last); - } else { - ladmin_log("Request to login-server to obtain the list of accounts from %d to %d.\n", list_first, list_last); - } + ladmin_log("Request to login-server to obtain the list of accounts from %d to %d.\n", list_first, list_last); WFIFOW(login_fd,0) = 0x7920; WFIFOL(login_fd,2) = list_first; @@ -2161,11 +1487,7 @@ int listaccount(char* param, int type) bytes_to_read = 1; // 0123456789 01 01234567890123456789012301234 012345 0123456789012345678901234567 - if (defaultlanguage == 'F') { - ShowMessage(" id_compte GM nom_utilisateur sexe count statut\n"); - } else { - ShowMessage("account_id GM user_name sex count state\n"); - } + ShowMessage("account_id GM user_name sex count state\n"); ShowMessage("-------------------------------------------------------------------------------\n"); list_count = 0; @@ -2186,15 +1508,9 @@ int changememo(char* param) if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, memo) < 1 && // memo can be void sscanf(param, "'%[^']' %[^\r\n]", name, memo) < 1 && // memo can be void sscanf(param, "%s %[^\r\n]", name, memo) < 1) { // memo can be void - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte et un m駑o svp.\n"); - ShowMessage(" memo nomtest nouveau memo\n"); - ladmin_log("Nombre incorrect de param鑼res pour changer le m駑o d'un compte (commande 'email').\n"); - } else { - ShowMessage("Please input an account name and a memo.\n"); - ShowMessage(" memo testname new memo\n"); - ladmin_log("Incomplete parameters to change the memo of an account ('email' command).\n"); - } + ShowMessage("Please input an account name and a memo.\n"); + ShowMessage(" memo testname new memo\n"); + ladmin_log("Incomplete parameters to change the memo of an account ('email' command).\n"); return 136; } @@ -2203,23 +1519,13 @@ int changememo(char* param) } if (strlen(memo) > 254) { - if (defaultlanguage == 'F') { - ShowMessage("M駑o trop long (%lu caract鑽es).\n", (unsigned long)strlen(memo)); - ShowMessage("Entrez un m駑o de 254 caract鑽es maximum svp.\n"); - ladmin_log("M駑o trop long (%d caract鑽es). Entrez un m駑o de 254 caract鑽es maximum svp.\n", strlen(memo)); - } else { - ShowMessage("Memo is too long (%lu characters).\n", (unsigned long)strlen(memo)); - ShowMessage("Please input a memo of 254 bytes at the maximum.\n"); - ladmin_log("Email is too long (%d characters). Please input a memo of 254 bytes at the maximum.\n", strlen(memo)); - } + ShowMessage("Memo is too long (%lu characters).\n", (unsigned long)strlen(memo)); + ShowMessage("Please input a memo of 254 bytes at the maximum.\n"); + ladmin_log("Email is too long (%d characters). Please input a memo of 254 bytes at the maximum.\n", strlen(memo)); return 102; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour changer un m駑o.\n"); - } else { - ladmin_log("Request to login-server to change a memo.\n"); - } + ladmin_log("Request to login-server to change a memo.\n"); WFIFOW(login_fd,0) = 0x7942; memcpy(WFIFOP(login_fd,2), name, 24); @@ -2239,20 +1545,12 @@ int nameaccount(int id) { WFIFOHEAD(login_fd,6); if (id < 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un id ayant une valeur positive svp.\n"); - ladmin_log("Id n馮atif donn pour rechecher le nom d'un compte (commande 'name').\n"); - } else { - ShowMessage("Please input a positive value for the id.\n"); - ladmin_log("Negativ id given to search an account name ('name' command).\n"); - } + ShowMessage("Please input a positive value for the id.\n"); + ladmin_log("Negativ id given to search an account name ('name' command).\n"); return 136; } - if (defaultlanguage == 'F') - ladmin_log("Envoi d'un requ黎e au serveur de logins pour connatre le nom d'un compte.\n"); - else - ladmin_log("Request to login-server to know an account name.\n"); + ladmin_log("Request to login-server to know an account name.\n"); WFIFOW(login_fd,0) = 0x7946; WFIFOL(login_fd,2) = id; @@ -2277,15 +1575,9 @@ int changepasswd(char* param) if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, password) < 1 && sscanf(param, "'%[^']' %[^\r\n]", name, password) < 1 && sscanf(param, "%s %[^\r\n]", name, password) < 1) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte svp.\n"); - ShowMessage(" passwd nomtest nouveaumotdepasse\n"); - ladmin_log("Nombre incorrect de param鑼res pour changer le mot d'un passe d'un compte (commande 'password').\n"); - } else { - ShowMessage("Please input an account name.\n"); - ShowMessage(" passwd testname newpassword\n"); - ladmin_log("Incomplete parameters to change the password of an account ('password' command).\n"); - } + ShowMessage("Please input an account name.\n"); + ShowMessage(" passwd testname newpassword\n"); + ladmin_log("Incomplete parameters to change the password of an account ('password' command).\n"); return 136; } @@ -2300,11 +1592,7 @@ int changepasswd(char* param) if (verify_password(password) == 0) return 131; - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour changer un mot de passe.\n"); - } else { - ladmin_log("Request to login-server to change a password.\n"); - } + ladmin_log("Request to login-server to change a password.\n"); WFIFOW(login_fd,0) = 0x7934; memcpy(WFIFOP(login_fd,2), name, 24); @@ -2326,15 +1614,9 @@ int reloadGM(void) WFIFOSET(login_fd,2); bytes_to_read = 0; - if (defaultlanguage == 'F') { - ladmin_log("Demande de recharger le fichier de configuration des GM envoy馥.\n"); - ShowMessage("Demande de recharger le fichier de configuration des GM envoy馥.\n"); - ShowMessage("V駻ifiez les comptes GM actuels (apr鑚 rechargement):\n"); - } else { - ladmin_log("Request to reload the GM configuration file sended.\n"); - ShowMessage("Request to reload the GM configuration file sended.\n"); - ShowMessage("Check the actual GM accounts (after reloading):\n"); - } + ladmin_log("Request to reload the GM configuration file sended.\n"); + ShowMessage("Request to reload the GM configuration file sended.\n"); + ShowMessage("Check the actual GM accounts (after reloading):\n"); listaccount(parameters, 1); // 1: to list only GM return 180; @@ -2354,15 +1636,9 @@ int changesex(char* param) if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, sex) < 2 && sscanf(param, "'%[^']' %[^\r\n]", name, sex) < 2 && sscanf(param, "%s %[^\r\n]", name, sex) < 2) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte et un sexe svp.\n"); - ShowMessage(" sex nomtest Male\n"); - ladmin_log("Nombre incorrect de param鑼res pour changer le sexe d'un compte (commande 'sex').\n"); - } else { - ShowMessage("Please input an account name and a sex.\n"); - ShowMessage(" sex testname Male\n"); - ladmin_log("Incomplete parameters to change the sex of an account ('sex' command).\n"); - } + ShowMessage("Please input an account name and a sex.\n"); + ShowMessage(" sex testname Male\n"); + ladmin_log("Incomplete parameters to change the sex of an account ('sex' command).\n"); return 136; } @@ -2372,21 +1648,12 @@ int changesex(char* param) sex[0] = TOUPPER(sex[0]); if (strchr("MF", sex[0]) == NULL) { - if (defaultlanguage == 'F') { - ShowMessage("Sexe incorrect [%s]. Entrez M ou F svp.\n", sex); - ladmin_log("Sexe incorrect [%s]. Entrez M ou F svp.\n", sex); - } else { - ShowMessage("Illegal gender [%s]. Please input M or F.\n", sex); - ladmin_log("Illegal gender [%s]. Please input M or F.\n", sex); - } + ShowMessage("Illegal gender [%s]. Please input M or F.\n", sex); + ladmin_log("Illegal gender [%s]. Please input M or F.\n", sex); return 103; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour changer un sexe.\n"); - } else { - ladmin_log("Request to login-server to change a sex.\n"); - } + ladmin_log("Request to login-server to change a sex.\n"); WFIFOW(login_fd,0) = 0x793c; memcpy(WFIFOP(login_fd,2), name, 24); @@ -2410,31 +1677,18 @@ int changestatesub(char* name, int state, char* error_message7) strncpy(error_message, error_message7, sizeof(error_message)-1); if ((state < 0 || state > 9) && state != 100) { // Valid values: 0: ok, or value of the 0x006a packet + 1 - if (defaultlanguage == 'F') { - ShowMessage("Entrez une des statuts suivantes svp:\n"); - ShowMessage(" 0 = Compte ok 6 = Your Game's EXE file is not the latest version\n"); - } else { - ShowMessage("Please input one of these states:\n"); - ShowMessage(" 0 = Account ok 6 = Your Game's EXE file is not the latest version\n"); - } + ShowMessage("Please input one of these states:\n"); + ShowMessage(" 0 = Account ok 6 = Your Game's EXE file is not the latest version\n"); ShowMessage(" 1 = Unregistered ID 7 = You are Prohibited to log in until + message\n"); ShowMessage(" 2 = Incorrect Password 8 = Server is jammed due to over populated\n"); ShowMessage(" 3 = This ID is expired 9 = No MSG\n"); ShowMessage(" 4 = Rejected from Server 100 = This ID has been totally erased\n"); ShowMessage(" 5 = You have been blocked by the GM Team\n"); - if (defaultlanguage == 'F') { - ShowMessage(" state nomtest 5\n"); - ShowMessage(" state nomtest 7 fin de votre ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Valeur incorrecte pour le statut d'un compte (commande 'state', 'block' ou 'unblock').\n"); - } else { - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Invalid value for the state of an account ('state', 'block' or 'unblock' command).\n"); - } + ShowMessage(" state testname 5\n"); + ShowMessage(" state testname 7 end of your ban\n"); + ShowMessage(" block \n"); + ShowMessage(" unblock \n"); + ladmin_log("Invalid value for the state of an account ('state', 'block' or 'unblock' command).\n"); return 151; } @@ -2446,32 +1700,18 @@ int changestatesub(char* name, int state, char* error_message7) strcpy(error_message, "-"); } else { if (strlen(error_message) < 1) { - if (defaultlanguage == 'F') { - ShowMessage("Message d'erreur trop court. Entrez un message de 1-19 caract鑽es.\n"); - ladmin_log("Message d'erreur trop court. Entrez un message de 1-19 caract鑽es.\n"); - } else { - ShowMessage("Error message is too short. Please input a message of 1-19 bytes.\n"); - ladmin_log("Error message is too short. Please input a message of 1-19 bytes.\n"); - } + ShowMessage("Error message is too short. Please input a message of 1-19 bytes.\n"); + ladmin_log("Error message is too short. Please input a message of 1-19 bytes.\n"); return 102; } if (strlen(error_message) > 19) { - if (defaultlanguage == 'F') { - ShowMessage("Message d'erreur trop long. Entrez un message de 1-19 caract鑽es.\n"); - ladmin_log("Message d'erreur trop long. Entrez un message de 1-19 caract鑽es.\n"); - } else { - ShowMessage("Error message is too long. Please input a message of 1-19 bytes.\n"); - ladmin_log("Error message is too long. Please input a message of 1-19 bytes.\n"); - } + ShowMessage("Error message is too long. Please input a message of 1-19 bytes.\n"); + ladmin_log("Error message is too long. Please input a message of 1-19 bytes.\n"); return 102; } } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour changer un statut.\n"); - } else { - ladmin_log("Request to login-server to change a state.\n"); - } + ladmin_log("Request to login-server to change a state.\n"); WFIFOW(login_fd,0) = 0x7936; memcpy(WFIFOP(login_fd,2), name, 24); @@ -2497,21 +1737,12 @@ int changestate(char* param) if (sscanf(param, "\"%[^\"]\" %d %[^\r\n]", name, &state, error_message) < 2 && sscanf(param, "'%[^']' %d %[^\r\n]", name, &state, error_message) < 2 && sscanf(param, "%s %d %[^\r\n]", name, &state, error_message) < 2) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte et un statut svp.\n"); - ShowMessage(" state nomtest 5\n"); - ShowMessage(" state nomtest 7 fin de votre ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Nombre incorrect de param鑼res pour changer le statut d'un compte (commande 'state').\n"); - } else { - ShowMessage("Please input an account name and a state.\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Incomplete parameters to change the state of an account ('state' command).\n"); - } + ShowMessage("Please input an account name and a state.\n"); + ShowMessage(" state testname 5\n"); + ShowMessage(" state testname 7 end of your ban\n"); + ShowMessage(" block \n"); + ShowMessage(" unblock \n"); + ladmin_log("Incomplete parameters to change the state of an account ('state' command).\n"); return 136; } @@ -2531,22 +1762,14 @@ int unblockaccount(char* param) (sscanf(param, "\"%[^\"]\"", name) < 1 && sscanf(param, "'%[^']'", name) < 1 && sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte svp.\n"); - ShowMessage(" state nomtest 5\n"); - ShowMessage(" state nomtest 7 fin de votre ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Nombre incorrect de param鑼res pour changer le statut d'un compte (commande 'unblock').\n"); - } else { - ShowMessage("Please input an account name.\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Incomplete parameters to change the state of an account ('unblock' command).\n"); - } + strlen(name) == 0) + { + ShowMessage("Please input an account name.\n"); + ShowMessage(" state testname 5\n"); + ShowMessage(" state testname 7 end of your ban\n"); + ShowMessage(" block \n"); + ShowMessage(" unblock \n"); + ladmin_log("Incomplete parameters to change the state of an account ('unblock' command).\n"); return 136; } @@ -2566,22 +1789,14 @@ int blockaccount(char* param) (sscanf(param, "\"%[^\"]\"", name) < 1 && sscanf(param, "'%[^']'", name) < 1 && sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte svp.\n"); - ShowMessage(" state nomtest 5\n"); - ShowMessage(" state nomtest 7 fin de votre ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Nombre incorrect de param鑼res pour changer le statut d'un compte (commande 'block').\n"); - } else { - ShowMessage("Please input an account name.\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Incomplete parameters to change the state of an account ('block' command).\n"); - } + strlen(name) == 0) + { + ShowMessage("Please input an account name.\n"); + ShowMessage(" state testname 5\n"); + ShowMessage(" state testname 7 end of your ban\n"); + ShowMessage(" block \n"); + ShowMessage(" unblock \n"); + ladmin_log("Incomplete parameters to change the state of an account ('block' command).\n"); return 136; } @@ -2605,20 +1820,13 @@ int timeaddaccount(char* param) if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, modif) < 2 && sscanf(param, "'%[^']' %[^\r\n]", name, modif) < 2 && - sscanf(param, "%s %[^\r\n]", name, modif) < 2) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte et un modificateur svp.\n"); - ShowMessage(" timeadd nomtest +1m-2mn1s-6y\n"); - ShowMessage(" Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"); - ShowMessage(" et 6 ans dans le m麥e temps.\n"); - ladmin_log("Nombre incorrect de param鑼res pour modifier une date limite d'utilisation (commande 'timeadd').\n"); - } else { - ShowMessage("Please input an account name and a modifier.\n"); - ShowMessage(" : timeadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("Incomplete parameters to modify a limit time ('timeadd' command).\n"); - } + sscanf(param, "%s %[^\r\n]", name, modif) < 2) + { + ShowMessage("Please input an account name and a modifier.\n"); + ShowMessage(" : timeadd testname +1m-2mn1s-6y\n"); + ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); + ShowMessage(" and 6 years at the same time.\n"); + ladmin_log("Incomplete parameters to modify a limit time ('timeadd' command).\n"); return 136; } if (verify_accountname(name) == 0) { @@ -2663,120 +1871,61 @@ int timeaddaccount(char* param) } } - if (defaultlanguage == 'F') { - ShowMessage(" ann馥: %d\n", year); - ShowMessage(" mois: %d\n", month); - ShowMessage(" jour: %d\n", day); - ShowMessage(" heure: %d\n", hour); - ShowMessage(" minute: %d\n", minute); - ShowMessage(" seconde: %d\n", second); - } else { - ShowMessage(" year: %d\n", year); - ShowMessage(" month: %d\n", month); - ShowMessage(" day: %d\n", day); - ShowMessage(" hour: %d\n", hour); - ShowMessage(" minute: %d\n", minute); - ShowMessage(" second: %d\n", second); - } + ShowMessage(" year: %d\n", year); + ShowMessage(" month: %d\n", month); + ShowMessage(" day: %d\n", day); + ShowMessage(" hour: %d\n", hour); + ShowMessage(" minute: %d\n", minute); + ShowMessage(" second: %d\n", second); if (year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0 && second == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Vous devez entrer un ajustement avec cette commande, svp:\n"); - ShowMessage(" Valeur d'ajustement (-1, 1, +1, etc...)\n"); - ShowMessage(" El駑ent modifi:\n"); - ShowMessage(" a ou y: ann馥\n"); - ShowMessage(" m: mois\n"); - ShowMessage(" j ou d: jour\n"); - ShowMessage(" h: heure\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: seconde\n"); - ShowMessage(" timeadd nomtest +1m-2mn1s-6y\n"); - ShowMessage(" Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"); - ShowMessage(" et 6 ans dans le m麥e temps.\n"); - ladmin_log("Aucun ajustement n'est pas un ajustement (commande 'timeadd').\n"); - } else { - ShowMessage("Please give an adjustment with this command:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" timeadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("No adjustment isn't an adjustment ('timeadd' command).\n"); - } + ShowMessage("Please give an adjustment with this command:\n"); + ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); + ShowMessage(" Modified element:\n"); + ShowMessage(" a or y: year\n"); + ShowMessage(" m: month\n"); + ShowMessage(" j or d: day\n"); + ShowMessage(" h: hour\n"); + ShowMessage(" mn: minute\n"); + ShowMessage(" s: second\n"); + ShowMessage(" timeadd testname +1m-2mn1s-6y\n"); + ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); + ShowMessage(" and 6 years at the same time.\n"); + ladmin_log("No adjustment isn't an adjustment ('timeadd' command).\n"); return 137; } if (year > 127 || year < -127) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement d'ann馥s correct (de -127 127), svp.\n"); - ladmin_log("Ajustement de l'ann馥 hors norme ('timeadd' command).\n"); - } else { - ShowMessage("Please give a correct adjustment for the years (from -127 to 127).\n"); - ladmin_log("Abnormal adjustment for the year ('timeadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the years (from -127 to 127).\n"); + ladmin_log("Abnormal adjustment for the year ('timeadd' command).\n"); return 137; } if (month > 255 || month < -255) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement de mois correct (de -255 255), svp.\n"); - ladmin_log("Ajustement du mois hors norme ('timeadd' command).\n"); - } else { - ShowMessage("Please give a correct adjustment for the months (from -255 to 255).\n"); - ladmin_log("Abnormal adjustment for the month ('timeadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the months (from -255 to 255).\n"); + ladmin_log("Abnormal adjustment for the month ('timeadd' command).\n"); return 137; } if (day > 32767 || day < -32767) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement de jours correct (de -32767 32767), svp.\n"); - ladmin_log("Ajustement des jours hors norme ('timeadd' command).\n"); - } else { - ShowMessage("Please give a correct adjustment for the days (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the days ('timeadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the days (from -32767 to 32767).\n"); + ladmin_log("Abnormal adjustment for the days ('timeadd' command).\n"); return 137; } if (hour > 32767 || hour < -32767) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement d'heures correct (de -32767 32767), svp.\n"); - ladmin_log("Ajustement des heures hors norme ('timeadd' command).\n"); - } else { - ShowMessage("Please give a correct adjustment for the hours (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the hours ('timeadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the hours (from -32767 to 32767).\n"); + ladmin_log("Abnormal adjustment for the hours ('timeadd' command).\n"); return 137; } if (minute > 32767 || minute < -32767) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement de minutes correct (de -32767 32767), svp.\n"); - ladmin_log("Ajustement des minutes hors norme ('timeadd' command).\n"); - } else { - ShowMessage("Please give a correct adjustment for the minutes (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the minutes ('timeadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the minutes (from -32767 to 32767).\n"); + ladmin_log("Abnormal adjustment for the minutes ('timeadd' command).\n"); return 137; } if (second > 32767 || second < -32767) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un ajustement de secondes correct (de -32767 32767), svp.\n"); - ladmin_log("Ajustement des secondes hors norme ('timeadd' command).\n"); - } else { - ShowMessage("Please give a correct adjustment for the seconds (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the seconds ('timeadd' command).\n"); - } + ShowMessage("Please give a correct adjustment for the seconds (from -32767 to 32767).\n"); + ladmin_log("Abnormal adjustment for the seconds ('timeadd' command).\n"); return 137; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour modifier une date limite d'utilisation.\n"); - } else { - ladmin_log("Request to login-server to modify a time limit.\n"); - } + ladmin_log("Request to login-server to modify a time limit.\n"); WFIFOW(login_fd,0) = 0x7950; memcpy(WFIFOP(login_fd,2), name, 24); @@ -2813,19 +1962,11 @@ int timesetaccount(char* param) if (sscanf(param, "\"%[^\"]\" %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void sscanf(param, "'%[^']' %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void sscanf(param, "%s %s %[^\r\n]", name, date, time) < 2) { // if date = 0, time can be void - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte, une date et une heure svp.\n"); - ShowMessage(": timeset aaaa/mm/jj [hh:mm:ss]\n"); - ShowMessage(" timeset 0 (0 = illimit)\n"); - ShowMessage(" Heure par d馭aut [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Nombre incorrect de param鑼res pour fixer une date limite d'utilisation (commande 'timeset').\n"); - } else { - ShowMessage("Please input an account name, a date and a hour.\n"); - ShowMessage(": timeset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" timeset 0 (0 = unlimited)\n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a limit time ('timeset' command).\n"); - } + ShowMessage("Please input an account name, a date and a hour.\n"); + ShowMessage(": timeset yyyy/mm/dd [hh:mm:ss]\n"); + ShowMessage(" timeset 0 (0 = unlimited)\n"); + ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); + ladmin_log("Incomplete parameters to set a limit time ('timeset' command).\n"); return 136; } if (verify_accountname(name) == 0) { @@ -2840,14 +1981,10 @@ int timesetaccount(char* param) sscanf(date, "%d-%d-%d", &year, &month, &day) < 3 && sscanf(date, "%d.%d.%d", &year, &month, &day) < 3 && sscanf(date, "%d'%d'%d", &year, &month, &day) < 3) || - sscanf(time, "%d:%d:%d", &hour, &minute, &second) < 3)) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"); - ladmin_log("Format incorrect pour la date/heure ('timeset' command).\n"); - } else { - ShowMessage("Please input 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"); - ladmin_log("Invalid format for the date/time ('timeset' command).\n"); - } + sscanf(time, "%d:%d:%d", &hour, &minute, &second) < 3)) + { + ShowMessage("Please input 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"); + ladmin_log("Invalid format for the date/time ('timeset' command).\n"); return 102; } @@ -2861,65 +1998,35 @@ int timesetaccount(char* param) year = year - 1900; } if (month < 1 || month > 12) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un mois correct svp (entre 1 et 12).\n"); - ladmin_log("Mois incorrect pour la date ('timeset' command).\n"); - } else { - ShowMessage("Please give a correct value for the month (from 1 to 12).\n"); - ladmin_log("Invalid month for the date ('timeset' command).\n"); - } + ShowMessage("Please give a correct value for the month (from 1 to 12).\n"); + ladmin_log("Invalid month for the date ('timeset' command).\n"); return 102; } month = month - 1; if (day < 1 || day > 31) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un jour correct svp (entre 1 et 31).\n"); - ladmin_log("Jour incorrect pour la date ('timeset' command).\n"); - } else { - ShowMessage("Please give a correct value for the day (from 1 to 31).\n"); - ladmin_log("Invalid day for the date ('timeset' command).\n"); - } + ShowMessage("Please give a correct value for the day (from 1 to 31).\n"); + ladmin_log("Invalid day for the date ('timeset' command).\n"); return 102; } if (((month == 3 || month == 5 || month == 8 || month == 10) && day > 30) || (month == 1 && day > 29)) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un jour correct en fonction du mois (%d) svp.\n", month); - ladmin_log("Jour incorrect pour ce mois correspondant ('timeset' command).\n"); - } else { - ShowMessage("Please give a correct value for a day of this month (%d).\n", month); - ladmin_log("Invalid day for this month ('timeset' command).\n"); - } + ShowMessage("Please give a correct value for a day of this month (%d).\n", month); + ladmin_log("Invalid day for this month ('timeset' command).\n"); return 102; } if (hour < 0 || hour > 23) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez une heure correcte svp (entre 0 et 23).\n"); - ladmin_log("Heure incorrecte pour l'heure ('timeset' command).\n"); - } else { - ShowMessage("Please give a correct value for the hour (from 0 to 23).\n"); - ladmin_log("Invalid hour for the time ('timeset' command).\n"); - } + ShowMessage("Please give a correct value for the hour (from 0 to 23).\n"); + ladmin_log("Invalid hour for the time ('timeset' command).\n"); return 102; } if (minute < 0 || minute > 59) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez des minutes correctes svp (entre 0 et 59).\n"); - ladmin_log("Minute incorrecte pour l'heure ('timeset' command).\n"); - } else { - ShowMessage("Please give a correct value for the minutes (from 0 to 59).\n"); - ladmin_log("Invalid minute for the time ('timeset' command).\n"); - } + ShowMessage("Please give a correct value for the minutes (from 0 to 59).\n"); + ladmin_log("Invalid minute for the time ('timeset' command).\n"); return 102; } if (second < 0 || second > 59) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez des secondes correctes svp (entre 0 et 59).\n"); - ladmin_log("Seconde incorrecte pour l'heure ('timeset' command).\n"); - } else { - ShowMessage("Please give a correct value for the seconds (from 0 to 59).\n"); - ladmin_log("Invalid second for the time ('timeset' command).\n"); - } + ShowMessage("Please give a correct value for the seconds (from 0 to 59).\n"); + ladmin_log("Invalid second for the time ('timeset' command).\n"); return 102; } tmtime->tm_year = year; @@ -2931,24 +2038,14 @@ int timesetaccount(char* param) tmtime->tm_isdst = -1; // -1: no winter/summer time modification expiration_time = mktime(tmtime); if (expiration_time == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Date incorrecte.\n"); - ShowMessage("Ajoutez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"); - ladmin_log("Date incorrecte. ('timeset' command).\n"); - } else { - ShowMessage("Invalid date.\n"); - ShowMessage("Please add 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"); - ladmin_log("Invalid date. ('timeset' command).\n"); - } + ShowMessage("Invalid date.\n"); + ShowMessage("Please add 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"); + ladmin_log("Invalid date. ('timeset' command).\n"); return 102; } } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour fixer une date limite d'utilisation.\n"); - } else { - ladmin_log("Request to login-server to set a time limit.\n"); - } + ladmin_log("Request to login-server to set a time limit.\n"); WFIFOW(login_fd,0) = 0x7948; memcpy(WFIFOP(login_fd,2), name, 24); @@ -2973,27 +2070,18 @@ int whoaccount(char* param) (sscanf(param, "\"%[^\"]\"", name) < 1 && sscanf(param, "'%[^']'", name) < 1 && sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Entrez un nom de compte svp.\n"); - ShowMessage(" who nomtest\n"); - ladmin_log("Aucun nom n'a 騁 donn pour trouver le compte.\n"); - } else { - ShowMessage("Please input an account name.\n"); - ShowMessage(" who testname\n"); - ladmin_log("No name was given to found the account.\n"); - } + strlen(name) == 0) + { + ShowMessage("Please input an account name.\n"); + ShowMessage(" who testname\n"); + ladmin_log("No name was given to found the account.\n"); return 136; } if (verify_accountname(name) == 0) { return 102; } - if (defaultlanguage == 'F') { - ladmin_log("Envoi d'un requ黎e au serveur de logins pour obtenir le information d'un compte (par le nom).\n"); - } else { - ladmin_log("Request to login-server to obtain information about an account (by its name).\n"); - } + ladmin_log("Request to login-server to obtain information about an account (by its name).\n"); WFIFOW(login_fd,0) = 0x7952; memcpy(WFIFOP(login_fd,2), name, 24); @@ -3009,10 +2097,7 @@ int whoaccount(char* param) int checkloginversion(void) { WFIFOHEAD(login_fd,2); - if (defaultlanguage == 'F') - ladmin_log("Envoi d'un requ黎e au serveur de logins pour obtenir sa version.\n"); - else - ladmin_log("Request to login-server to obtain its version.\n"); + ladmin_log("Request to login-server to obtain its version.\n"); WFIFOW(login_fd,0) = 0x7530; WFIFOSET(login_fd,2); @@ -3042,10 +2127,7 @@ int prompt(void) // \033[0m : reset color parameter // \033[1m : use bold for font ShowMessage("\n"); - if (defaultlanguage == 'F') - ShowMessage("\033[32mPour afficher les commandes, tapez 'Entr馥'.\033[0m\n"); - else - ShowMessage("\033[32mTo list the commands, type 'enter'.\033[0m\n"); + ShowMessage("\033[32mTo list the commands, type 'enter'.\033[0m\n"); ShowMessage("\033[0;36mLadmin-> \033[0m"); ShowMessage("\033[1m"); fflush(stdout); @@ -3107,38 +2189,23 @@ int prompt(void) command[i] = TOLOWER(command[i]); if (command[0] == '?' || strlen(command) == 0) { - if (defaultlanguage == 'F') { - strcpy(buf, "aide"); - strcpy(command, "aide"); - } else { - strcpy(buf, "help"); - strcpy(command, "help"); - } + strcpy(buf, "help"); + strcpy(command, "help"); } // Analyse of the command check_command(command); // give complete name to the command if (strlen(parameters) == 0) { - if (defaultlanguage == 'F') { - ladmin_log("Commande: '%s' (sans param鑼re)\n", command, parameters); - } else { - ladmin_log("Command: '%s' (without parameters)\n", command, parameters); - } + ladmin_log("Command: '%s' (without parameters)\n", command, parameters); } else { - if (defaultlanguage == 'F') { - ladmin_log("Commande: '%s', param鑼res: '%s'\n", command, parameters); - } else { - ladmin_log("Command: '%s', parameters: '%s'\n", command, parameters); - } + ladmin_log("Command: '%s', parameters: '%s'\n", command, parameters); } // Analyse of the command // help - if (strcmp(command, "aide") == 0) { - display_help(parameters, 1); // 1: french - } else if (strcmp(command, "help") == 0 ) { - display_help(parameters, 0); // 0: english + if (strcmp(command, "help") == 0 ) { + display_help(parameters); // general commands } else if (strcmp(command, "add") == 0) { addaccount(parameters, 0); // 0: no email @@ -3170,8 +2237,6 @@ int prompt(void) sendbroadcast(0, parameters); // flag for normal } else if (strcmp(command, "kamib") == 0) { sendbroadcast(0x10, parameters); // flag for blue - } else if (strcmp(command, "language") == 0) { - changelanguage(parameters); } else if (strcmp(command, "list") == 0) { listaccount(parameters, 0); // 0: to list all } else if (strcmp(command, "listban") == 0) { @@ -3210,21 +2275,12 @@ int prompt(void) } else if (strcmp(command, "quit") == 0 || strcmp(command, "exit") == 0 || strcmp(command, "end") == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Au revoir.\n"); - } else { - ShowMessage("Bye.\n"); - } + ShowMessage("Bye.\n"); exit(EXIT_SUCCESS); // unknown command } else { - if (defaultlanguage == 'F') { - ShowMessage("Commande inconnue [%s].\n", buf); - ladmin_log("Commande inconnue [%s].\n", buf); - } else { - ShowMessage("Unknown command [%s].\n", buf); - ladmin_log("Unknown command [%s].\n", buf); - } + ShowMessage("Unknown command [%s].\n", buf); + ladmin_log("Unknown command [%s].\n", buf); } } @@ -3240,13 +2296,8 @@ int parse_fromlogin(int fd) int id; RFIFOHEAD(fd); if (session[fd]->flag.eof) { - if (defaultlanguage == 'F') { - ShowMessage("Impossible de se connecter au serveur de login [%s:%d] !\n", loginserverip, loginserverport); - ladmin_log("Impossible de se connecter au serveur de login [%s:%d] !\n", loginserverip, loginserverport); - } else { - ShowMessage("Impossible to have a connection with the login-server [%s:%d] !\n", loginserverip, loginserverport); - ladmin_log("Impossible to have a connection with the login-server [%s:%d] !\n", loginserverip, loginserverport); - } + ShowMessage("Impossible to have a connection with the login-server [%s:%d] !\n", loginserverip, loginserverport); + ladmin_log("Impossible to have a connection with the login-server [%s:%d] !\n", loginserverip, loginserverport); do_close(fd); exit(EXIT_FAILURE); } @@ -3260,34 +2311,19 @@ int parse_fromlogin(int fd) if (RFIFOREST(fd) < 3) return 0; if (RFIFOB(fd,2) != 0) { - if (defaultlanguage == 'F') { - ShowMessage("Erreur de login:\n"); - ShowMessage(" - mot de passe incorrect,\n"); - ShowMessage(" - syst鑪e d'administration non activ, ou\n"); - ShowMessage(" - IP non autoris馥.\n"); - ladmin_log("Erreur de login: mot de passe incorrect, syst鑪e d'administration non activ, ou IP non autoris馥.\n"); - } else { - ShowMessage("Error at login:\n"); - ShowMessage(" - incorrect password,\n"); - ShowMessage(" - administration system not activated, or\n"); - ShowMessage(" - unauthorised IP.\n"); - ladmin_log("Error at login: incorrect password, administration system not activated, or unauthorised IP.\n"); - } + ShowMessage("Error at login:\n"); + ShowMessage(" - incorrect password,\n"); + ShowMessage(" - administration system not activated, or\n"); + ShowMessage(" - unauthorised IP.\n"); + ladmin_log("Error at login: incorrect password, administration system not activated, or unauthorised IP.\n"); set_eof(fd); //bytes_to_read = 1; // not stop at prompt return 0; } else { - if (defaultlanguage == 'F') { - ShowMessage("Connexion 騁ablie.\n"); - ladmin_log("Connexion 騁ablie.\n"); - ShowMessage("Lecture de la version du serveur de login...\n"); - ladmin_log("Lecture de la version du serveur de login...\n"); - } else { - ShowMessage("Established connection.\n"); - ladmin_log("Established connection.\n"); - ShowMessage("Reading of the version of the login-server...\n"); - ladmin_log("Reading of the version of the login-server...\n"); - } + ShowMessage("Established connection.\n"); + ladmin_log("Established connection.\n"); + ShowMessage("Reading of the version of the login-server...\n"); + ladmin_log("Reading of the version of the login-server...\n"); //bytes_to_read = 1; // unchanged checkloginversion(); } @@ -3312,17 +2348,10 @@ int parse_fromlogin(int fd) WFIFOW(login_fd,2) = passenc; // Encrypted type memcpy(WFIFOP(login_fd,4), md5bin, 16); WFIFOSET(login_fd,20); - if (defaultlanguage == 'F') { - ShowMessage("R馗eption de la clef MD5.\n"); - ladmin_log("R馗eption de la clef MD5.\n"); - ShowMessage("Envoi du mot de passe crypt...\n"); - ladmin_log("Envoi du mot de passe crypt...\n"); - } else { - ShowMessage("Receiving of the MD5 key.\n"); - ladmin_log("Receiving of the MD5 key.\n"); - ShowMessage("Sending of the encrypted password...\n"); - ladmin_log("Sending of the encrypted password...\n"); - } + ShowMessage("Receiving of the MD5 key.\n"); + ladmin_log("Receiving of the MD5 key.\n"); + ShowMessage("Sending of the encrypted password...\n"); + ladmin_log("Sending of the encrypted password...\n"); } bytes_to_read = 1; RFIFOSKIP(fd,RFIFOW(fd,2)); @@ -3351,31 +2380,18 @@ int parse_fromlogin(int fd) if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) return 0; if (RFIFOW(fd,2) < 5) { - if (defaultlanguage == 'F') { - ladmin_log(" R馗eption d'une liste des comptes vide.\n"); - if (list_count == 0) - ShowMessage("Aucun compte trouv.\n"); - else if (list_count == 1) - ShowMessage("1 compte trouv.\n"); - else - ShowMessage("%d comptes trouv駸.\n", list_count); - } else { - ladmin_log(" Receiving of a void accounts list.\n"); - if (list_count == 0) - ShowMessage("No account found.\n"); - else if (list_count == 1) - ShowMessage("1 account found.\n"); - else - ShowMessage("%d accounts found.\n", list_count); - } + ladmin_log(" Receiving of a void accounts list.\n"); + if (list_count == 0) + ShowMessage("No account found.\n"); + else if (list_count == 1) + ShowMessage("1 account found.\n"); + else + ShowMessage("%d accounts found.\n", list_count); bytes_to_read = 0; } else { int i; WFIFOHEAD(login_fd,10); - if (defaultlanguage == 'F') - ladmin_log(" R馗eption d'une liste des comptes.\n"); - else - ladmin_log(" Receiving of a accounts list.\n"); + ladmin_log(" Receiving of a accounts list.\n"); for(i = 4; i < RFIFOW(fd,2); i += 38) { int j; char userid[24]; @@ -3398,28 +2414,16 @@ int parse_fromlogin(int fd) else ShowMessage("%2d ", (int)RFIFOB(fd,i+4)); ShowMessage("%-24s", userid); - if (defaultlanguage == 'F') { - if (RFIFOB(fd,i+29) == 0) - ShowMessage("%-5s ", "Femme"); - else if (RFIFOB(fd,i+29) == 1) - ShowMessage("%-5s ", "Male"); - else - ShowMessage("%-5s ", "Servr"); - } else { - if (RFIFOB(fd,i+29) == 0) - ShowMessage("%-5s ", "Femal"); - else if (RFIFOB(fd,i+29) == 1) - ShowMessage("%-5s ", "Male"); - else - ShowMessage("%-5s ", "Servr"); - } + if (RFIFOB(fd,i+29) == 0) + ShowMessage("%-5s ", "Femal"); + else if (RFIFOB(fd,i+29) == 1) + ShowMessage("%-5s ", "Male"); + else + ShowMessage("%-5s ", "Servr"); ShowMessage("%6d ", (int)RFIFOL(fd,i+30)); switch(RFIFOL(fd,i+34)) { case 0: - if (defaultlanguage == 'F') - ShowMessage("%-27s\n", "Compte Ok"); - else - ShowMessage("%-27s\n", "Account OK"); + ShowMessage("%-27s\n", "Account OK"); break; case 1: ShowMessage("%-27s\n", "Unregistered ID"); @@ -3457,10 +2461,7 @@ int parse_fromlogin(int fd) } } // asking of the following acounts - if (defaultlanguage == 'F') - ladmin_log("Envoi d'un requ黎e au serveur de logins pour obtenir la liste des comptes de %d %d (compl駑ent).\n", list_first, list_last); - else - ladmin_log("Request to login-server to obtain the list of accounts from %d to %d (complement).\n", list_first, list_last); + ladmin_log("Request to login-server to obtain the list of accounts from %d to %d (complement).\n", list_first, list_last); WFIFOW(login_fd,0) = 0x7920; WFIFOL(login_fd,2) = list_first; WFIFOL(login_fd,6) = list_last; @@ -3473,23 +2474,13 @@ int parse_fromlogin(int fd) case 0x7931: // Answer of login-server about an account creation if (RFIFOREST(fd) < 30) return 0; - id=RFIFOL(fd,2); - if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec la cr饌tion du compte [%s]. Un compte identique existe d駛.\n", RFIFOP(fd,6)); - ladmin_log("Echec la cr饌tion du compte [%s]. Un compte identique existe d駛.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] creation failed. Same account already exists.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] creation failed. Same account already exists.\n", RFIFOP(fd,6)); - } + id = RFIFOL(fd,2); + if (id != -1) { + ShowMessage("Account [%s] creation failed. Return code %d.\n", RFIFOP(fd,6), id); + ladmin_log("Account [%s] creation failed. Return code %d.\n", RFIFOP(fd,6), id); } else { - if (defaultlanguage == 'F') { - ShowMessage("Compte [%s] cr鳬 avec succ鑚 [id: %d].\n", RFIFOP(fd,6), id); - ladmin_log("Compte [%s] cr鳬 avec succ鑚 [id: %d].\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Account [%s] is successfully created [id: %d].\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s] is successfully created [id: %d].\n", RFIFOP(fd,6), id); - } + ShowMessage("Account [%s] is successfully created.\n", RFIFOP(fd,6)); + ladmin_log("Account [%s] is successfully created.\n", RFIFOP(fd,6)); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3499,21 +2490,11 @@ int parse_fromlogin(int fd) if (RFIFOREST(fd) < 30) return 0; if (RFIFOL(fd,2) == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec de la suppression du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Echec de la suppression du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] deletion failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] deletion failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] deletion failed. Account doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Account [%s] deletion failed. Account doesn't exist.\n", RFIFOP(fd,6)); } else { - if (defaultlanguage == 'F') { - ShowMessage("Compte [%s][id: %d] SUPPRIME avec succ鑚.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - ladmin_log("Compte [%s][id: %d] SUPPRIME avec succ鑚.\n", RFIFOP(fd,6), RFIFOL(fd,2)); - } else { - ShowMessage("Account [%s][id: %d] is successfully DELETED.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - ladmin_log("Account [%s][id: %d] is successfully DELETED.\n", RFIFOP(fd,6), RFIFOL(fd,2)); - } + ShowMessage("Account [%s][id: %d] is successfully DELETED.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); + ladmin_log("Account [%s][id: %d] is successfully DELETED.\n", RFIFOP(fd,6), RFIFOL(fd,2)); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3523,23 +2504,12 @@ int parse_fromlogin(int fd) if (RFIFOREST(fd) < 30) return 0; if (RFIFOL(fd,2) == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec de la modification du mot de passe du compte [%s].\n", RFIFOP(fd,6)); - ShowMessage("Le compte [%s] n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Echec de la modification du mot de passe du compte. Le compte [%s] n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] password changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account password changing failed. The compte [%s] doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] password changing failed.\n", RFIFOP(fd,6)); + ShowMessage("Account [%s] doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Account password changing failed. The compte [%s] doesn't exist.\n", RFIFOP(fd,6)); } else { - if (defaultlanguage == 'F') { - ShowMessage("Modification du mot de passe du compte [%s][id: %d] r騏ssie.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - ladmin_log("Modification du mot de passe du compte [%s][id: %d] r騏ssie.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - } else { - ShowMessage("Account [%s][id: %d] password successfully changed.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - ladmin_log("Account [%s][id: %d] password successfully changed.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - } + ShowMessage("Account [%s][id: %d] password successfully changed.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); + ladmin_log("Account [%s][id: %d] password successfully changed.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3549,27 +2519,14 @@ int parse_fromlogin(int fd) if (RFIFOREST(fd) < 34) return 0; if (RFIFOL(fd,2) == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec du changement du statut du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Echec du changement du statut du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] state changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] state changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] state changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Account [%s] state changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); } else { char tmpstr[256]; - if (defaultlanguage == 'F') { - sprintf(tmpstr, "Statut du compte [%s] chang avec succ鑚 en [", RFIFOP(fd,6)); - } else { - sprintf(tmpstr, "Account [%s] state successfully changed in [", RFIFOP(fd,6)); - } + sprintf(tmpstr, "Account [%s] state successfully changed in [", RFIFOP(fd,6)); switch(RFIFOL(fd,30)) { case 0: - if (defaultlanguage == 'F') - strcat(tmpstr, "0: Compte Ok"); - else - strcat(tmpstr, "0: Account OK"); - break; + strcat(tmpstr, "0: Account OK"); case 1: strcat(tmpstr, "1: Unregistered ID"); break; @@ -3616,24 +2573,12 @@ int parse_fromlogin(int fd) // Get length of the received packet int i; char name[20]; - if (defaultlanguage == 'F') { - ladmin_log(" R馗eption du nombre de joueurs en ligne.\n"); - } else { - ladmin_log(" Receiving of the number of online players.\n"); - } + ladmin_log(" Receiving of the number of online players.\n"); // Read information of the servers if (RFIFOW(fd,2) < 5) { - if (defaultlanguage == 'F') { - ShowMessage(" Aucun serveur n'est connect au login serveur.\n"); - } else { - ShowMessage(" No server is connected to the login-server.\n"); - } + ShowMessage(" No server is connected to the login-server.\n"); } else { - if (defaultlanguage == 'F') { - ShowMessage(" Nombre de joueurs en ligne (serveur: nb):\n"); - } else { - ShowMessage(" Number of online players (server: number).\n"); - } + ShowMessage(" Number of online players (server: number).\n"); // Displaying of result for(i = 4; i < RFIFOW(fd,2); i += 32) { memcpy(name, RFIFOP(fd,i+6), sizeof(name)); @@ -3651,21 +2596,11 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Le compte [%s] n'existe pas ou le mot de passe est incorrect.\n", RFIFOP(fd,6)); - ladmin_log("Le compte [%s] n'existe pas ou le mot de passe est incorrect.\n", RFIFOP(fd,6)); - } else { - ShowMessage("The account [%s] doesn't exist or the password is incorrect.\n", RFIFOP(fd,6)); - ladmin_log("The account [%s] doesn't exist or the password is incorrect.\n", RFIFOP(fd,6)); - } + ShowMessage("The account [%s] doesn't exist or the password is incorrect.\n", RFIFOP(fd,6)); + ladmin_log("The account [%s] doesn't exist or the password is incorrect.\n", RFIFOP(fd,6)); } else { - if (defaultlanguage == 'F') { - ShowMessage("Le mot de passe donn correspond bien au compte [%s][id: %d].\n", RFIFOP(fd,6), id); - ladmin_log("Le mot de passe donn correspond bien au compte [%s][id: %d].\n", RFIFOP(fd,6), id); - } else { - ShowMessage("The proposed password is correct for the account [%s][id: %d].\n", RFIFOP(fd,6), id); - ladmin_log("The proposed password is correct for the account [%s][id: %d].\n", RFIFOP(fd,6), id); - } + ShowMessage("The proposed password is correct for the account [%s][id: %d].\n", RFIFOP(fd,6), id); + ladmin_log("The proposed password is correct for the account [%s][id: %d].\n", RFIFOP(fd,6), id); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3676,23 +2611,12 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec de la modification du sexe du compte [%s].\n", RFIFOP(fd,6)); - ShowMessage("Le compte [%s] n'existe pas ou le sexe est d駛 celui demand.\n", RFIFOP(fd,6)); - ladmin_log("Echec de la modification du sexe du compte. Le compte [%s] n'existe pas ou le sexe est d駛 celui demand.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] sex changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist or the sex is already the good sex.\n", RFIFOP(fd,6)); - ladmin_log("Account sex changing failed. The compte [%s] doesn't exist or the sex is already the good sex.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] sex changing failed.\n", RFIFOP(fd,6)); + ShowMessage("Account [%s] doesn't exist or the sex is already the good sex.\n", RFIFOP(fd,6)); + ladmin_log("Account sex changing failed. The compte [%s] doesn't exist or the sex is already the good sex.\n", RFIFOP(fd,6)); } else { - if (defaultlanguage == 'F') { - ShowMessage("Sexe du compte [%s][id: %d] chang avec succ鑚.\n", RFIFOP(fd,6), id); - ladmin_log("Sexe du compte [%s][id: %d] chang avec succ鑚.\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Account [%s][id: %d] sex successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] sex successfully changed.\n", RFIFOP(fd,6), id); - } + ShowMessage("Account [%s][id: %d] sex successfully changed.\n", RFIFOP(fd,6), id); + ladmin_log("Account [%s][id: %d] sex successfully changed.\n", RFIFOP(fd,6), id); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3703,25 +2627,13 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec de la modification du niveau de GM du compte [%s].\n", RFIFOP(fd,6)); - ShowMessage("Le compte [%s] n'existe pas, le niveau de GM est d駛 celui demand饅n", RFIFOP(fd,6)); - ShowMessage("ou il est impossible de modifier le fichier des comptes GM.\n"); - ladmin_log("Echec de la modification du niveau de GM du compte. Le compte [%s] n'existe pas, le niveau de GM est d駛 celui demand ou il est impossible de modifier le fichier des comptes GM.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] GM level changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist, the GM level is already the good GM level\n", RFIFOP(fd,6)); - ShowMessage("or it's impossible to modify the GM accounts file.\n"); - ladmin_log("Account GM level changing failed. The compte [%s] doesn't exist, the GM level is already the good sex or it's impossible to modify the GM accounts file.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] GM level changing failed.\n", RFIFOP(fd,6)); + ShowMessage("Account [%s] doesn't exist, the GM level is already the good GM level\n", RFIFOP(fd,6)); + ShowMessage("or it's impossible to modify the GM accounts file.\n"); + ladmin_log("Account GM level changing failed. The compte [%s] doesn't exist, the GM level is already the good sex or it's impossible to modify the GM accounts file.\n", RFIFOP(fd,6)); } else { - if (defaultlanguage == 'F') { - ShowMessage("Niveau de GM du compte [%s][id: %d] chang avec succ鑚.\n", RFIFOP(fd,6), id); - ladmin_log("Niveau de GM du compte [%s][id: %d] chang avec succ鑚.\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Account [%s][id: %d] GM level successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] GM level successfully changed.\n", RFIFOP(fd,6), id); - } + ShowMessage("Account [%s][id: %d] GM level successfully changed.\n", RFIFOP(fd,6), id); + ladmin_log("Account [%s][id: %d] GM level successfully changed.\n", RFIFOP(fd,6), id); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3732,23 +2644,12 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec de la modification de l'e-mail du compte [%s].\n", RFIFOP(fd,6)); - ShowMessage("Le compte [%s] n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Echec de la modification de l'e-mail du compte. Le compte [%s] n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] e-mail changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account e-mail changing failed. The compte [%s] doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] e-mail changing failed.\n", RFIFOP(fd,6)); + ShowMessage("Account [%s] doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Account e-mail changing failed. The compte [%s] doesn't exist.\n", RFIFOP(fd,6)); } else { - if (defaultlanguage == 'F') { - ShowMessage("Modification de l'e-mail du compte [%s][id: %d] r騏ssie.\n", RFIFOP(fd,6), id); - ladmin_log("Modification de l'e-mail du compte [%s][id: %d] r騏ssie.\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Account [%s][id: %d] e-mail successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] e-mail successfully changed.\n", RFIFOP(fd,6), id); - } + ShowMessage("Account [%s][id: %d] e-mail successfully changed.\n", RFIFOP(fd,6), id); + ladmin_log("Account [%s][id: %d] e-mail successfully changed.\n", RFIFOP(fd,6), id); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3759,21 +2660,11 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec du changement du m駑o du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Echec du changement du m駑o du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] memo changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] memo changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] memo changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Account [%s] memo changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); } else { - if (defaultlanguage == 'F') { - ShowMessage("M駑o du compte [%s][id: %d] chang avec succ鑚.\n", RFIFOP(fd,6), id); - ladmin_log("M駑o du compte [%s][id: %d] chang avec succ鑚.\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Account [%s][id: %d] memo successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] memo successfully changed.\n", RFIFOP(fd,6), id); - } + ShowMessage("Account [%s][id: %d] memo successfully changed.\n", RFIFOP(fd,6), id); + ladmin_log("Account [%s][id: %d] memo successfully changed.\n", RFIFOP(fd,6), id); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3784,21 +2675,11 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Impossible de trouver l'id du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Impossible de trouver l'id du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Unable to find the account [%s] id. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Unable to find the account [%s] id. Account doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Unable to find the account [%s] id. Account doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Unable to find the account [%s] id. Account doesn't exist.\n", RFIFOP(fd,6)); } else { - if (defaultlanguage == 'F') { - ShowMessage("Le compte [%s] a pour id: %d.\n", RFIFOP(fd,6), id); - ladmin_log("Le compte [%s] a pour id: %d.\n", RFIFOP(fd,6), id); - } else { - ShowMessage("The account [%s] have the id: %d.\n", RFIFOP(fd,6), id); - ladmin_log("The account [%s] have the id: %d.\n", RFIFOP(fd,6), id); - } + ShowMessage("The account [%s] have the id: %d.\n", RFIFOP(fd,6), id); + ladmin_log("The account [%s] have the id: %d.\n", RFIFOP(fd,6), id); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3809,21 +2690,11 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (strcmp((const char*)RFIFOP(fd,6), "") == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Impossible de trouver le nom du compte [%d]. Le compte n'existe pas.\n", id); - ladmin_log("Impossible de trouver le nom du compte [%d]. Le compte n'existe pas.\n", id); - } else { - ShowMessage("Unable to find the account [%d] name. Account doesn't exist.\n", id); - ladmin_log("Unable to find the account [%d] name. Account doesn't exist.\n", id); - } + ShowMessage("Unable to find the account [%d] name. Account doesn't exist.\n", id); + ladmin_log("Unable to find the account [%d] name. Account doesn't exist.\n", id); } else { - if (defaultlanguage == 'F') { - ShowMessage("Le compte [id: %d] a pour nom: %s.\n", id, RFIFOP(fd,6)); - ladmin_log("Le compte [id: %d] a pour nom: %s.\n", id, RFIFOP(fd,6)); - } else { - ShowMessage("The account [id: %d] have the name: %s.\n", id, RFIFOP(fd,6)); - ladmin_log("The account [id: %d] have the name: %s.\n", id, RFIFOP(fd,6)); - } + ShowMessage("The account [id: %d] have the name: %s.\n", id, RFIFOP(fd,6)); + ladmin_log("The account [id: %d] have the name: %s.\n", id, RFIFOP(fd,6)); } bytes_to_read = 0; RFIFOSKIP(fd,30); @@ -3834,33 +2705,18 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec du changement de la validit du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Echec du changement de la validit du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); } else { time_t timestamp = RFIFOL(fd,30); if (timestamp == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Limite de validit du compte [%s][id: %d] chang馥 avec succ鑚 en [illimit饐.\n", RFIFOP(fd,6), id); - ladmin_log("Limite de validit du compte [%s][id: %d] chang馥 avec succ鑚 en [illimit饐.\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Validity Limit of the account [%s][id: %d] successfully changed to [unlimited].\n", RFIFOP(fd,6), id); - ladmin_log("Validity Limit of the account [%s][id: %d] successfully changed to [unlimited].\n", RFIFOP(fd,6), id); - } + ShowMessage("Validity Limit of the account [%s][id: %d] successfully changed to [unlimited].\n", RFIFOP(fd,6), id); + ladmin_log("Validity Limit of the account [%s][id: %d] successfully changed to [unlimited].\n", RFIFOP(fd,6), id); } else { char tmpstr[128]; strftime(tmpstr, 24, date_format, localtime(×tamp)); - if (defaultlanguage == 'F') { - ShowMessage("Limite de validit du compte [%s][id: %d] chang馥 avec succ鑚 pour 黎re jusqu'au %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Limite de validit du compte [%s][id: %d] chang馥 avec succ鑚 pour 黎re jusqu'au %s.\n", RFIFOP(fd,6), id, tmpstr); - } else { - ShowMessage("Validity Limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Validity Limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } + ShowMessage("Validity Limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); + ladmin_log("Validity Limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); } } bytes_to_read = 0; @@ -3872,33 +2728,18 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec du changement de la date finale de banissement du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Echec du changement de la date finale de banissement du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); } else { time_t timestamp = RFIFOL(fd,30); if (timestamp == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Date finale de banissement du compte [%s][id: %d] chang馥 avec succ鑚 en [d-bannie].\n", RFIFOP(fd,6), id); - ladmin_log("Date finale de banissement du compte [%s][id: %d] chang馥 avec succ鑚 en [d-bannie].\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - } + ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); + ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); } else { char tmpstr[128]; strftime(tmpstr, 24, date_format, localtime(×tamp)); - if (defaultlanguage == 'F') { - ShowMessage("Date finale de banissement du compte [%s][id: %d] chang馥 avec succ鑚 pour 黎re jusqu'au %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Date finale de banissement du compte [%s][id: %d] chang馥 avec succ鑚 pour 黎re jusqu'au %s.\n", RFIFOP(fd,6), id, tmpstr); - } else { - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } + ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); + ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); } } bytes_to_read = 0; @@ -3910,33 +2751,18 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec du changement de la date finale de banissement du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Echec du changement de la date finale de banissement du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); } else { time_t timestamp = RFIFOL(fd,30); if (timestamp == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Date finale de banissement du compte [%s][id: %d] chang馥 avec succ鑚 en [d-bannie].\n", RFIFOP(fd,6), id); - ladmin_log("Date finale de banissement du compte [%s][id: %d] chang馥 avec succ鑚 en [d-bannie].\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - } + ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); + ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); } else { char tmpstr[128]; strftime(tmpstr, 24, date_format, localtime(×tamp)); - if (defaultlanguage == 'F') { - ShowMessage("Date finale de banissement du compte [%s][id: %d] chang馥 avec succ鑚 pour 黎re jusqu'au %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Date finale de banissement du compte [%s][id: %d] chang馥 avec succ鑚 pour 黎re jusqu'au %s.\n", RFIFOP(fd,6), id, tmpstr); - } else { - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } + ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); + ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); } } bytes_to_read = 0; @@ -3947,21 +2773,11 @@ int parse_fromlogin(int fd) if (RFIFOREST(fd) < 4) return 0; if (RFIFOW(fd,2) == (unsigned short)-1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec de l'envoi du message. Aucun server de char en ligne.\n"); - ladmin_log("Echec de l'envoi du message. Aucun server de char en ligne.\n"); - } else { - ShowMessage("Message sending failed. No online char-server.\n"); - ladmin_log("Message sending failed. No online char-server.\n"); - } + ShowMessage("Message sending failed. No online char-server.\n"); + ladmin_log("Message sending failed. No online char-server.\n"); } else { - if (defaultlanguage == 'F') { - ShowMessage("Message transmis au server de logins avec succ鑚.\n"); - ladmin_log("Message transmis au server de logins avec succ鑚.\n"); - } else { - ShowMessage("Message successfully sended to login-server.\n"); - ladmin_log("Message successfully sended to login-server.\n"); - } + ShowMessage("Message successfully sended to login-server.\n"); + ladmin_log("Message successfully sended to login-server.\n"); } bytes_to_read = 0; RFIFOSKIP(fd,4); @@ -3972,37 +2788,20 @@ int parse_fromlogin(int fd) return 0; id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Echec du changement de la validit du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - ladmin_log("Echec du changement de la validit du compte [%s]. Le compte n'existe pas.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } + ShowMessage("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); + ladmin_log("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); } else { time_t timestamp = RFIFOL(fd,30); if (timestamp == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Limite de validit du compte [%s][id: %d] inchang馥.\n", RFIFOP(fd,6), id); - ShowMessage("Le compte a une validit illimit馥 ou\n"); - ShowMessage("la modification est impossible avec les ajustements demand駸.\n"); - ladmin_log("Limite de validit du compte [%s][id: %d] inchang馥. Le compte a une validit illimit馥 ou la modification est impossible avec les ajustements demand駸.\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Validity limit of the account [%s][id: %d] unchanged.\n", RFIFOP(fd,6), id); - ShowMessage("The account have an unlimited validity limit or\n"); - ShowMessage("the changing is impossible with the proposed adjustments.\n"); - ladmin_log("Validity limit of the account [%s][id: %d] unchanged. The account have an unlimited validity limit or the changing is impossible with the proposed adjustments.\n", RFIFOP(fd,6), id); - } + ShowMessage("Validity limit of the account [%s][id: %d] unchanged.\n", RFIFOP(fd,6), id); + ShowMessage("The account have an unlimited validity limit or\n"); + ShowMessage("the changing is impossible with the proposed adjustments.\n"); + ladmin_log("Validity limit of the account [%s][id: %d] unchanged. The account have an unlimited validity limit or the changing is impossible with the proposed adjustments.\n", RFIFOP(fd,6), id); } else { char tmpstr[128]; strftime(tmpstr, 24, date_format, localtime(×tamp)); - if (defaultlanguage == 'F') { - ShowMessage("Limite de validit du compte [%s][id: %d] chang馥 avec succ鑚 pour 黎re jusqu'au %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Limite de validit du compte [%s][id: %d] chang馥 avec succ鑚 pour 黎re jusqu'au %s.\n", RFIFOP(fd,6), id, tmpstr); - } else { - ShowMessage("Validity limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Validity limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } + ShowMessage("Validity limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); + ladmin_log("Validity limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); } } bytes_to_read = 0; @@ -4012,154 +2811,75 @@ int parse_fromlogin(int fd) case 0x7953: // answer of a request about informations of an account (by account name/id) if (RFIFOREST(fd) < 150 || RFIFOREST(fd) < (size_t)(150 + RFIFOW(fd,148))) return 0; - { + { char userid[24], error_message[20], lastlogin[24], last_ip[16], email[40], memo[255]; time_t unban_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban) time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) - memcpy(userid, RFIFOP(fd,7), sizeof(userid)); - userid[sizeof(userid)-1] = '\0'; - memcpy(error_message, RFIFOP(fd,40), sizeof(error_message)); - error_message[sizeof(error_message)-1] = '\0'; - memcpy(lastlogin, RFIFOP(fd,60), sizeof(lastlogin)); - lastlogin[sizeof(lastlogin)-1] = '\0'; - memcpy(last_ip, RFIFOP(fd,84), sizeof(last_ip)); - last_ip[sizeof(last_ip)-1] = '\0'; - memcpy(email, RFIFOP(fd,100), sizeof(email)); - email[sizeof(email)-1] = '\0'; + safestrncpy(userid, (char*)RFIFOP(fd,7), sizeof(userid)); + safestrncpy(error_message, (char*)RFIFOP(fd,40), sizeof(error_message)); + safestrncpy(lastlogin, (char*)RFIFOP(fd,60), sizeof(lastlogin)); + safestrncpy(last_ip, (char*)RFIFOP(fd,84), sizeof(last_ip)); + safestrncpy(email, (char*)RFIFOP(fd,100), sizeof(email)); expiration_time = (time_t)RFIFOL(fd,140); unban_time = (time_t)RFIFOL(fd,144); memset(memo, '\0', sizeof(memo)); - strncpy(memo, (const char*)RFIFOP(fd,150), RFIFOW(fd,148)); + safestrncpy(memo, (const char*)RFIFOP(fd,150), RFIFOW(fd,148)); id = RFIFOL(fd,2); if (id == -1) { - if (defaultlanguage == 'F') { - ShowMessage("Impossible de trouver le compte [%s]. Le compte n'existe pas.\n", parameters); - ladmin_log("Impossible de trouver le compte [%s]. Le compte n'existe pas.\n", parameters); - } else { - ShowMessage("Unabled to find the account [%s]. Account doesn't exist.\n", parameters); - ladmin_log("Unabled to find the account [%s]. Account doesn't exist.\n", parameters); - } + ShowMessage("Unabled to find the account [%s]. Account doesn't exist.\n", parameters); + ladmin_log("Unabled to find the account [%s]. Account doesn't exist.\n", parameters); } else if (strlen(userid) == 0) { - if (defaultlanguage == 'F') { - ShowMessage("Impossible de trouver le compte [id: %s]. Le compte n'existe pas.\n", parameters); - ladmin_log("Impossible de trouver le compte [id: %s]. Le compte n'existe pas.\n", parameters); - } else { - ShowMessage("Unabled to find the account [id: %s]. Account doesn't exist.\n", parameters); - ladmin_log("Unabled to find the account [id: %s]. Account doesn't exist.\n", parameters); - } + ShowMessage("Unabled to find the account [id: %s]. Account doesn't exist.\n", parameters); + ladmin_log("Unabled to find the account [id: %s]. Account doesn't exist.\n", parameters); } else { - if (defaultlanguage == 'F') { - ladmin_log("R馗eption d'information concernant un compte.\n"); - ShowMessage("Le compte a les caract駻istiques suivantes:\n"); - } else { - ladmin_log("Receiving information about an account.\n"); - ShowMessage("The account is set with:\n"); - } + ladmin_log("Receiving information about an account.\n"); + ShowMessage("The account is set with:\n"); if (RFIFOB(fd,6) == 0) { ShowMessage(" Id: %d (non-GM)\n", id); } else { - if (defaultlanguage == 'F') { - ShowMessage(" Id: %d (GM niveau %d)\n", id, (int)RFIFOB(fd,6)); - } else { - ShowMessage(" Id: %d (GM level %d)\n", id, (int)RFIFOB(fd,6)); - } - } - if (defaultlanguage == 'F') { - ShowMessage(" Nom: '%s'\n", userid); - if (RFIFOB(fd,31) == 0) - ShowMessage(" Sexe: Femme\n"); - else if (RFIFOB(fd,31) == 1) - ShowMessage(" Sexe: Male\n"); - else - ShowMessage(" Sexe: Serveur\n"); - } else { - ShowMessage(" Name: '%s'\n", userid); - if (RFIFOB(fd,31) == 0) - ShowMessage(" Sex: Female\n"); - else if (RFIFOB(fd,31) == 1) - ShowMessage(" Sex: Male\n"); - else - ShowMessage(" Sex: Server\n"); + ShowMessage(" Id: %d (GM level %d)\n", id, (int)RFIFOB(fd,6)); } + ShowMessage(" Name: '%s'\n", userid); + if (RFIFOB(fd,31) == 0) + ShowMessage(" Sex: Female\n"); + else if (RFIFOB(fd,31) == 1) + ShowMessage(" Sex: Male\n"); + else + ShowMessage(" Sex: Server\n"); ShowMessage(" E-mail: %s\n", email); switch(RFIFOL(fd,36)) { - case 0: - if (defaultlanguage == 'F') - ShowMessage(" Statut: 0 [Compte Ok]\n"); - else - ShowMessage(" State: 0 [Account OK]\n"); - break; - case 1: - ShowMessage(" Statut: 1 [Unregistered ID]\n"); - break; - case 2: - ShowMessage(" State: 2 [Incorrect Password]\n"); - break; - case 3: - ShowMessage(" Statut: 3 [This ID is expired]\n"); - break; - case 4: - ShowMessage(" State: 4 [Rejected from Server]\n"); - break; - case 5: - ShowMessage(" Statut: 5 [You have been blocked by the GM Team]\n"); - break; - case 6: - ShowMessage(" State: 6 [Your Game's EXE file is not the latest version]\n"); - break; - case 7: - ShowMessage(" Statut: 7 [You are Prohibited to log in until %s]\n", error_message); - break; - case 8: - ShowMessage(" State: 8 [Server is jammed due to over populated]\n"); - break; - case 9: - ShowMessage(" Statut: 9 [No MSG]\n"); - break; + case 0: ShowMessage(" State: 0 [Account OK]\n"); break; + case 1: ShowMessage(" State: 1 [Unregistered ID]\n"); break; + case 2: ShowMessage(" State: 2 [Incorrect Password]\n"); break; + case 3: ShowMessage(" State: 3 [This ID is expired]\n"); break; + case 4: ShowMessage(" State: 4 [Rejected from Server]\n"); break; + case 5: ShowMessage(" State: 5 [You have been blocked by the GM Team]\n"); break; + case 6: ShowMessage(" State: 6 [Your Game's EXE file is not the latest version]\n"); break; + case 7: ShowMessage(" State: 7 [You are Prohibited to log in until %s]\n", error_message); break; + case 8: ShowMessage(" State: 8 [Server is jammed due to over populated]\n"); break; + case 9: ShowMessage(" State: 9 [No MSG]\n"); break; default: // 100 ShowMessage(" State: %d [This ID is totally erased]\n", (int)RFIFOL(fd,36)); break; } - if (defaultlanguage == 'F') { - if (unban_time == 0) { - ShowMessage(" Banissement: non banni.\n"); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(&unban_time)); - ShowMessage(" Banissement: jusqu'au %s.\n", tmpstr); - } - if (RFIFOL(fd,32) > 1) - ShowMessage(" Compteur: %d connexions.\n", (int)RFIFOL(fd,32)); - else - ShowMessage(" Compteur: %d connexion.\n", (int)RFIFOL(fd,32)); - ShowMessage(" Derni鑽e connexion le: %s (ip: %s)\n", lastlogin, last_ip); - if (expiration_time == 0) { - ShowMessage(" Limite de validit: illimit.\n"); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(&expiration_time)); - ShowMessage(" Limite de validit: jusqu'au %s.\n", tmpstr); - } + if (unban_time == 0) { + ShowMessage(" Banishment: not banished.\n"); } else { - if (unban_time == 0) { - ShowMessage(" Banishment: not banished.\n"); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(&unban_time)); - ShowMessage(" Banishment: until %s.\n", tmpstr); - } - if (RFIFOL(fd,32) > 1) - ShowMessage(" Count: %d connections.\n", (int)RFIFOL(fd,32)); - else - ShowMessage(" Count: %d connection.\n", (int)RFIFOL(fd,32)); - ShowMessage(" Last connection at: %s (ip: %s)\n", lastlogin, last_ip); - if (expiration_time == 0) { - ShowMessage(" Validity limit: unlimited.\n"); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(&expiration_time)); - ShowMessage(" Validity limit: until %s.\n", tmpstr); - } + char tmpstr[128]; + strftime(tmpstr, 24, date_format, localtime(&unban_time)); + ShowMessage(" Banishment: until %s.\n", tmpstr); + } + if (RFIFOL(fd,32) > 1) + ShowMessage(" Count: %d connections.\n", (int)RFIFOL(fd,32)); + else + ShowMessage(" Count: %d connection.\n", (int)RFIFOL(fd,32)); + ShowMessage(" Last connection at: %s (ip: %s)\n", lastlogin, last_ip); + if (expiration_time == 0) { + ShowMessage(" Validity limit: unlimited.\n"); + } else { + char tmpstr[128]; + strftime(tmpstr, 24, date_format, localtime(&expiration_time)); + ShowMessage(" Validity limit: until %s.\n", tmpstr); } ShowMessage(" Memo: '%s'\n", memo); } @@ -4187,13 +2907,8 @@ int parse_fromlogin(int fd) //------------------------------------ int Connect_login_server(void) { - if (defaultlanguage == 'F') { - ShowMessage("Essai de connection au server de logins...\n"); - ladmin_log("Essai de connection au server de logins...\n"); - } else { - ShowMessage("Attempt to connect to login-server...\n"); - ladmin_log("Attempt to connect to login-server...\n"); - } + ShowMessage("Attempt to connect to login-server...\n"); + ladmin_log("Attempt to connect to login-server...\n"); login_fd = make_connection(login_ip, loginserverport); if (login_fd == -1) @@ -4209,25 +2924,15 @@ int Connect_login_server(void) memcpy(WFIFOP(login_fd,4), loginserveradminpassword, 24); WFIFOSET(login_fd,28); bytes_to_read = 1; - if (defaultlanguage == 'F') { - ShowMessage("Envoi du mot de passe...\n"); - ladmin_log("Envoi du mot de passe...\n"); - } else { - ShowMessage("Sending of the password...\n"); - ladmin_log("Sending of the password...\n"); - } + ShowMessage("Sending of the password...\n"); + ladmin_log("Sending of the password...\n"); } else { WFIFOHEAD(login_fd,2); WFIFOW(login_fd,0) = 0x791a; // Sending request about the coding key WFIFOSET(login_fd,2); bytes_to_read = 1; - if (defaultlanguage == 'F') { - ShowMessage("Demande de la clef MD5...\n"); - ladmin_log("Demande de la clef MD5...\n"); - } else { - ShowMessage("Request about the MD5 key...\n"); - ladmin_log("Request about the MD5 key...\n"); - } + ShowMessage("Request about the MD5 key...\n"); + ladmin_log("Request about the MD5 key...\n"); } return 0; @@ -4255,19 +2960,11 @@ int ladmin_config_read(const char *cfgName) fp = fopen(cfgName, "r"); if (fp == NULL) { - if (defaultlanguage == 'F') { - ShowMessage("\033[0mFichier de configuration (%s) non trouv.\n", cfgName); - } else { - ShowMessage("\033[0mConfiguration file (%s) not found.\n", cfgName); - } + ShowMessage("\033[0mConfiguration file (%s) not found.\n", cfgName); return 1; } - if (defaultlanguage == 'F') { - ShowMessage("\033[0m---D饕ut de lecture du fichier de configuration Ladmin (%s)\n", cfgName); - } else { - ShowMessage("\033[0m---Start reading of Ladmin configuration file (%s)\n", cfgName); - } + ShowMessage("\033[0m---Start reading of Ladmin configuration file (%s)\n", cfgName); while(fgets(line, sizeof(line), fp)) { if (line[0] == '/' && line[1] == '/') @@ -4281,11 +2978,7 @@ int ladmin_config_read(const char *cfgName) uint32 ipl = host2ip(w2); if (ipl != 0) { ip2str(ipl, loginserverip); - if (defaultlanguage == 'F') { - ShowMessage("Adresse du serveur de logins: %s -> %s\n", w2, loginserverip); - } else { - ShowMessage("Login server IP address: %s -> %s\n", w2, loginserverip); - } + ShowMessage("Login server IP address: %s -> %s\n", w2, loginserverip); } else memcpy(loginserverip, w2, 16); } else if (strcmpi(w1, "login_port") == 0) { @@ -4297,9 +2990,6 @@ int ladmin_config_read(const char *cfgName) passenc = atoi(w2); if (passenc < 0 || passenc > 2) passenc = 0; - } else if (strcmpi(w1, "defaultlanguage") == 0) { - if (w2[0] == 'F' || w2[0] == 'E') - defaultlanguage = w2[0]; } else if (strcmpi(w1, "ladmin_log_filename") == 0) { strncpy(ladmin_log_filename, w2, sizeof(ladmin_log_filename)); ladmin_log_filename[sizeof(ladmin_log_filename)-1] = '\0'; @@ -4316,11 +3006,7 @@ int ladmin_config_read(const char *cfgName) login_ip = str2ip(loginserverip); - if (defaultlanguage == 'F') { - ShowMessage("---Lecture du fichier de configuration Ladmin termin馥.\n"); - } else { - ShowMessage("---End reading of Ladmin configuration file.\n"); - } + ShowMessage("---End reading of Ladmin configuration file.\n"); return 0; } @@ -4340,13 +3026,8 @@ void do_final(void) { if (already_exit_function == 0) { - if (defaultlanguage == 'F') { - ShowMessage("\033[0m----Fin de Ladmin (fin normale avec fermeture de tous les fichiers).\n"); - ladmin_log("----Fin de Ladmin (fin normale avec fermeture de tous les fichiers).\n"); - } else { - ShowMessage("\033[0m----End of Ladmin (normal end with closing of all files).\n"); - ladmin_log("----End of Ladmin (normal end with closing of all files).\n"); - } + ShowMessage("\033[0m----End of Ladmin (normal end with closing of all files).\n"); + ladmin_log("----End of Ladmin (normal end with closing of all files).\n"); already_exit_function = 1; do_close(login_fd); @@ -4365,31 +3046,17 @@ int do_init(int argc, char **argv) ladmin_config_read((argc > 1) ? argv[1] : LADMIN_CONF_NAME); ladmin_log(""); - if (defaultlanguage == 'F') { - ladmin_log("Fichier de configuration lu.\n"); - } else { - ladmin_log("Configuration file readed.\n"); - } + ladmin_log("Configuration file readed.\n"); srand(time(NULL)); set_defaultparse(parse_fromlogin); - if (defaultlanguage == 'F') { - ShowMessage("Outil d'administration distance de eAthena.\n"); - ShowMessage("(pour eAthena version %d.%d.%d.)\n", ATHENA_MAJOR_VERSION, ATHENA_MINOR_VERSION, ATHENA_REVISION); - } else { - ShowMessage("EAthena login-server administration tool.\n"); - ShowMessage("(for eAthena version %d.%d.%d.)\n", ATHENA_MAJOR_VERSION, ATHENA_MINOR_VERSION, ATHENA_REVISION); - } + ShowMessage("EAthena login-server administration tool.\n"); + ShowMessage("(for eAthena version %d.%d.%d.)\n", ATHENA_MAJOR_VERSION, ATHENA_MINOR_VERSION, ATHENA_REVISION); - if (defaultlanguage == 'F') { - ladmin_log("Ladmin est pr黎.\n"); - ShowMessage("Ladmin est \033[1;32mpr黎\033[0m.\n\n"); - } else { - ladmin_log("Ladmin is ready.\n"); - ShowMessage("Ladmin is \033[1;32mready\033[0m.\n\n"); - } + ladmin_log("Ladmin is ready.\n"); + ShowMessage("Ladmin is \033[1;32mready\033[0m.\n\n"); Connect_login_server(); diff --git a/src/login/Makefile.in b/src/login/Makefile.in index aeb41b667..1f6080746 100644 --- a/src/login/Makefile.in +++ b/src/login/Makefile.in @@ -10,36 +10,71 @@ COMMON_H = ../common/core.h ../common/socket.h ../common/timer.h ../common/mmo.h ../common/grfio.h ../common/mapindex.h \ ../common/ers.h ../common/md5calc.h -LOGIN_OBJ = obj_txt/login.o obj_txt/admin.o -LOGIN_H = login.h +COMMON_SQL_OBJ = ../common/obj_sql/sql.o +COMMON_SQL_H = ../common/sql.h + +LOGIN_OBJ = login.o admin.o +LOGIN_TXT_OBJ = $(LOGIN_OBJ:%=obj_txt/%) \ + obj_txt/account_txt.o obj_txt/ipban_txt.o obj_txt/loginlog_txt.o +LOGIN_SQL_OBJ = $(LOGIN_OBJ:%=obj_sql/%) \ + obj_sql/account_sql.o obj_sql/ipban_sql.o obj_sql/loginlog_sql.o +LOGIN_H = login.h account.h ipban.h loginlog.h + +HAVE_MYSQL=@HAVE_MYSQL@ +ifeq ($(HAVE_MYSQL),yes) + LOGIN_SERVER_SQL_DEPENDS=obj_sql $(LOGIN_SQL_OBJ) $(COMMON_OBJ) $(COMMON_SQL_OBJ) +else + LOGIN_SERVER_SQL_DEPENDS=needs_mysql +endif @SET_MAKE@ ##################################################################### -.PHONY : all login-server clean help +.PHONY :all txt sql clean help -all: login-server +all: txt sql -login-server: obj_txt $(LOGIN_OBJ) $(COMMON_OBJ) - @CC@ @LDFLAGS@ -o ../../login-server@EXEEXT@ $(LOGIN_OBJ) $(COMMON_OBJ) @LIBS@ +txt: obj_txt login-server + +sql: obj_sql login-server_sql clean: - rm -rf *.o obj_txt ../../login-server@EXEEXT@ + rm -rf *.o obj_txt obj_sql ../../login-server@EXEEXT@ ../../login-server_sql@EXEEXT@ help: - @echo "possible targets are 'login-server' 'all' 'clean' 'help'" - @echo "'login-server' - login server (TXT version)" - @echo "'all' - builds all above targets" - @echo "'clean' - cleans builds and objects" - @echo "'help' - outputs this message" + @echo "possible targets are 'sql' 'txt' 'all' 'clean' 'help'" + @echo "'sql' - login server (SQL version)" + @echo "'txt' - login server (TXT version)" + @echo "'all' - builds all above targets" + @echo "'clean' - cleans builds and objects" + @echo "'help' - outputs this message" ##################################################################### +needs_mysql: + @echo "MySQL not found or disabled by the configure script" + @exit 1 + +# object directories obj_txt: - -mkdir obj_txt + test -d obj_txt || mkdir obj_txt +obj_sql: + test -d obj_sql || mkdir obj_sql + +#executables +login-server: $(LOGIN_TXT_OBJ) $(COMMON_OBJ) + @CC@ @LDFLAGS@ -o ../../login-server@EXEEXT@ $(LOGIN_TXT_OBJ) $(COMMON_OBJ) @LIBS@ + +login-server_sql: $(LOGIN_SERVER_SQL_DEPENDS) + @CC@ @LDFLAGS@ -o ../../login-server_sql@EXEEXT@ $(LOGIN_SQL_OBJ) $(COMMON_OBJ) $(COMMON_SQL_OBJ) @LIBS@ @MYSQL_LIBS@ + +# login object files obj_txt/%.o: %.c $(LOGIN_H) $(COMMON_H) - @CC@ @CFLAGS@ $(CUSTOM_CFLAGS) -DTXT_ONLY @CPPFLAGS@ -c $(OUTPUT_OPTION) $< + @CC@ @CFLAGS@ $(CUSTOM_CFLAGS) -DWITH_TXT @CPPFLAGS@ -c $(OUTPUT_OPTION) $< + +obj_sql/%.o: %.c $(LOGIN_H) $(COMMON_H) + @CC@ @CFLAGS@ $(CUSTOM_CFLAGS) -DWITH_SQL @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< # missing common object files ../common/obj_all/%.o: diff --git a/src/login/account.h b/src/login/account.h new file mode 100644 index 000000000..4cc9b353b --- /dev/null +++ b/src/login/account.h @@ -0,0 +1,159 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#ifndef __ACCOUNT_H_INCLUDED__ +#define __ACCOUNT_H_INCLUDED__ + +#include "../common/cbasetypes.h" +#include "../common/mmo.h" // ACCOUNT_REG2_NUM + +typedef struct AccountDB AccountDB; +typedef struct AccountDBIterator AccountDBIterator; + + +// standard engines +#ifdef WITH_TXT +AccountDB* account_db_txt(void); +#endif +#ifdef WITH_SQL +AccountDB* account_db_sql(void); +#endif +// extra engines (will probably use the other txt functions) +#define ACCOUNTDB_CONSTRUCTOR_(engine) account_db_##engine +#define ACCOUNTDB_CONSTRUCTOR(engine) ACCOUNTDB_CONSTRUCTOR_(engine) +#ifdef ACCOUNTDB_ENGINE_0 +AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_0)(void); +#endif +#ifdef ACCOUNTDB_ENGINE_1 +AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_1)(void); +#endif +#ifdef ACCOUNTDB_ENGINE_2 +AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_2)(void); +#endif +#ifdef ACCOUNTDB_ENGINE_3 +AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_3)(void); +#endif +#ifdef ACCOUNTDB_ENGINE_4 +AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_4)(void); +#endif + + +struct mmo_account +{ + int account_id; + char userid[24]; + char pass[32+1]; // 23+1 for plaintext, 32+1 for md5-ed passwords + char sex; // gender (M/F/S) + char email[40]; // e-mail (by default: a@a.com) + int level; // GM level + unsigned int state; // packet 0x006a value + 1 (0: compte OK) + time_t unban_time; // (timestamp): ban time limit of the account (0 = no ban) + time_t expiration_time; // (timestamp): validity limit of the account (0 = unlimited) + unsigned int logincount;// number of successful auth attempts + char lastlogin[24]; // date+time of last successful login + char last_ip[16]; // save of last IP of connection + int account_reg2_num; + struct global_reg account_reg2[ACCOUNT_REG2_NUM]; // account script variables (stored on login server) +}; + + +struct AccountDBIterator +{ + /// Destroys this iterator, releasing all allocated memory (including itself). + /// + /// @param self Iterator + void (*destroy)(AccountDBIterator* self); + + /// Fetches the next account in the database. + /// Fills acc with the account data. + /// @param self Iterator + /// @param acc Account data + /// @return true if successful + bool (*next)(AccountDBIterator* self, struct mmo_account* acc); +}; + + +struct AccountDB +{ + /// Initializes this database, making it ready for use. + /// Call this after setting the properties. + /// + /// @param self Database + /// @return true if successful + bool (*init)(AccountDB* self); + + /// Destroys this database, releasing all allocated memory (including itself). + /// + /// @param self Database + void (*destroy)(AccountDB* self); + + /// Gets a property from this database. + /// These read-only properties must be implemented: + /// "engine.name" -> "txt", "sql", ... + /// "engine.version" -> internal version + /// "engine.comment" -> anything (suggestion: description or specs of the engine) + /// + /// @param self Database + /// @param key Property name + /// @param buf Buffer for the value + /// @param buflen Buffer length + /// @return true if successful + bool (*get_property)(AccountDB* self, const char* key, char* buf, size_t buflen); + + /// Sets a property in this database. + /// + /// @param self Database + /// @param key Property name + /// @param value Property value + /// @return true if successful + bool (*set_property)(AccountDB* self, const char* key, const char* value); + + /// Creates a new account in this database. + /// If acc->account_id is not -1, the provided value will be used. + /// Otherwise the account_id will be auto-generated and written to acc->account_id. + /// + /// @param self Database + /// @param acc Account data + /// @return true if successful + bool (*create)(AccountDB* self, struct mmo_account* acc); + + /// Removes an account from this database. + /// + /// @param self Database + /// @param account_id Account id + /// @return true if successful + bool (*remove)(AccountDB* self, const int account_id); + + /// Modifies the data of an existing account. + /// Uses acc->account_id to identify the account. + /// + /// @param self Database + /// @param acc Account data + /// @return true if successful + bool (*save)(AccountDB* self, const struct mmo_account* acc); + + /// Finds an account with account_id and copies it to acc. + /// + /// @param self Database + /// @param acc Pointer that receives the account data + /// @param account_id Target account id + /// @return true if successful + bool (*load_num)(AccountDB* self, struct mmo_account* acc, const int account_id); + + /// Finds an account with userid and copies it to acc. + /// + /// @param self Database + /// @param acc Pointer that receives the account data + /// @param userid Target username + /// @return true if successful + bool (*load_str)(AccountDB* self, struct mmo_account* acc, const char* userid); + + /// Returns a new forward iterator. + /// + /// @param self Database + /// @return Iterator + AccountDBIterator* (*iterator)(AccountDB* self); +}; + + +#endif // __ACCOUNT_H_INCLUDED__ diff --git a/src/login/account_sql.c b/src/login/account_sql.c new file mode 100644 index 000000000..b510949fa --- /dev/null +++ b/src/login/account_sql.c @@ -0,0 +1,578 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#include "../common/malloc.h" +#include "../common/mmo.h" +#include "../common/showmsg.h" +#include "../common/sql.h" +#include "../common/strlib.h" +#include "../common/timer.h" +#include "account.h" +#include +#include + +/// global defines +#define ACCOUNT_SQL_DB_VERSION 20080417 + +/// internal structure +typedef struct AccountDB_SQL +{ + AccountDB vtable; // public interface + + Sql* accounts; // SQL accounts storage + + char db_hostname[32]; + uint16 db_port; + char db_username[32]; + char db_password[32]; + char db_database[32]; + char codepage[32]; + bool case_sensitive; + char account_db[32]; + char accreg_db[32]; + +} AccountDB_SQL; + +/// internal structure +typedef struct AccountDBIterator_SQL +{ + AccountDBIterator vtable; // public interface + + AccountDB_SQL* db; + int last_account_id; +} AccountDBIterator_SQL; + +/// internal functions +static bool account_db_sql_init(AccountDB* self); +static void account_db_sql_destroy(AccountDB* self); +static bool account_db_sql_get_property(AccountDB* self, const char* key, char* buf, size_t buflen); +static bool account_db_sql_set_property(AccountDB* self, const char* option, const char* value); +static bool account_db_sql_create(AccountDB* self, struct mmo_account* acc); +static bool account_db_sql_remove(AccountDB* self, const int account_id); +static bool account_db_sql_save(AccountDB* self, const struct mmo_account* acc); +static bool account_db_sql_load_num(AccountDB* self, struct mmo_account* acc, const int account_id); +static bool account_db_sql_load_str(AccountDB* self, struct mmo_account* acc, const char* userid); +static AccountDBIterator* account_db_sql_iterator(AccountDB* self); +static void account_db_sql_iter_destroy(AccountDBIterator* self); +static bool account_db_sql_iter_next(AccountDBIterator* self, struct mmo_account* acc); + +static bool mmo_auth_fromsql(AccountDB_SQL* db, struct mmo_account* acc, int account_id); +static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, bool is_new); + +/// public constructor +AccountDB* account_db_sql(void) +{ + AccountDB_SQL* db = (AccountDB_SQL*)aCalloc(1, sizeof(AccountDB_SQL)); + + // set up the vtable + db->vtable.init = &account_db_sql_init; + db->vtable.destroy = &account_db_sql_destroy; + db->vtable.get_property = &account_db_sql_get_property; + db->vtable.set_property = &account_db_sql_set_property; + db->vtable.save = &account_db_sql_save; + db->vtable.create = &account_db_sql_create; + db->vtable.remove = &account_db_sql_remove; + db->vtable.load_num = &account_db_sql_load_num; + db->vtable.load_str = &account_db_sql_load_str; + db->vtable.iterator = &account_db_sql_iterator; + + // initialize to default values + db->accounts = NULL; + safestrncpy(db->db_hostname, "127.0.0.1", sizeof(db->db_hostname)); + db->db_port = 3306; + safestrncpy(db->db_username, "ragnarok", sizeof(db->db_username)); + safestrncpy(db->db_password, "ragnarok", sizeof(db->db_password)); + safestrncpy(db->db_database, "ragnarok", sizeof(db->db_database)); + safestrncpy(db->codepage, "", sizeof(db->codepage)); + db->case_sensitive = false; + safestrncpy(db->account_db, "login", sizeof(db->account_db)); + safestrncpy(db->accreg_db, "global_reg_value", sizeof(db->accreg_db)); + + return &db->vtable; +} + + +/* ------------------------------------------------------------------------- */ + + +/// establishes database connection +static bool account_db_sql_init(AccountDB* self) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + Sql* sql_handle; + + db->accounts = Sql_Malloc(); + sql_handle = db->accounts; + + if( SQL_ERROR == Sql_Connect(sql_handle, db->db_username, db->db_password, db->db_hostname, db->db_port, db->db_database) ) + { + Sql_ShowDebug(sql_handle); + Sql_Free(db->accounts); + db->accounts = NULL; + return false; + } + + if( db->codepage[0] != '\0' && SQL_ERROR == Sql_SetEncoding(sql_handle, db->codepage) ) + Sql_ShowDebug(sql_handle); + + return true; +} + +/// disconnects from database +static void account_db_sql_destroy(AccountDB* self) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + + Sql_Free(db->accounts); + db->accounts = NULL; +} + +/// Gets a property from this database. +static bool account_db_sql_get_property(AccountDB* self, const char* key, char* buf, size_t buflen) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + const char* signature = "account.sql."; + + if( strcmp(key, "engine.name") == 0 ) + { + safesnprintf(buf, buflen, "sql"); + return true; + } + if( strcmp(key, "engine.version") == 0 ) + { + safesnprintf(buf, buflen, "%d", ACCOUNT_SQL_DB_VERSION); + return true; + } + if( strcmp(key, "engine.comment") == 0 ) + { + safesnprintf(buf, buflen, "SQL Account Database"); + return true; + } + + if( strncmp(key, signature, strlen(signature)) != 0 ) + return false; + + key += strlen(signature); + + if( strcmpi(key, "db_hostname") == 0 ) + safesnprintf(buf, buflen, "%s", db->db_hostname); + else + if( strcmpi(key, "db_port") == 0 ) + safesnprintf(buf, buflen, "%d", db->db_port); + else + if( strcmpi(key, "db_username") == 0 ) + safesnprintf(buf, buflen, "%s", db->db_username); + else + if( strcmpi(key, "db_password") == 0 ) + safesnprintf(buf, buflen, "%s", db->db_password); + else + if( strcmpi(key, "db_database") == 0 ) + safesnprintf(buf, buflen, "%s", db->db_database); + else + if( strcmpi(key, "codepage") == 0 ) + safesnprintf(buf, buflen, "%s", db->codepage); + else + if( strcmpi(key, "case_sensitive") == 0 ) + safesnprintf(buf, buflen, "%d", (db->case_sensitive ? 1 : 0)); + else + if( strcmpi(key, "account_db") == 0 ) + safesnprintf(buf, buflen, "%s", db->account_db); + else + if( strcmpi(key, "accreg_db") == 0 ) + safesnprintf(buf, buflen, "%s", db->accreg_db); + else + return false;// not found + + return true; +} + +/// if the option is supported, adjusts the internal state +static bool account_db_sql_set_property(AccountDB* self, const char* key, const char* value) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + const char* signature = "account.sql."; + + if( strncmp(key, signature, strlen(signature)) != 0 ) + return false; + + key += strlen(signature); + + if( strcmpi(key, "db_hostname") == 0 ) + safestrncpy(db->db_hostname, value, sizeof(db->db_hostname)); + else + if( strcmpi(key, "db_port") == 0 ) + db->db_port = (uint16)strtoul(value, NULL, 10); + else + if( strcmpi(key, "db_username") == 0 ) + safestrncpy(db->db_username, value, sizeof(db->db_username)); + else + if( strcmpi(key, "db_password") == 0 ) + safestrncpy(db->db_password, value, sizeof(db->db_password)); + else + if( strcmpi(key, "db_database") == 0 ) + safestrncpy(db->db_database, value, sizeof(db->db_database)); + else + if( strcmpi(key, "codepage") == 0 ) + safestrncpy(db->codepage, value, sizeof(db->codepage)); + else + if( strcmpi(key, "case_sensitive") == 0 ) + db->case_sensitive = config_switch(value); + else + if( strcmpi(key, "account_db") == 0 ) + safestrncpy(db->account_db, value, sizeof(db->account_db)); + else + if( strcmpi(key, "accreg_db") == 0 ) + safestrncpy(db->accreg_db, value, sizeof(db->accreg_db)); + else // no match + return false; + + return true; +} + +/// create a new account entry +/// If acc->account_id is -1, the account id will be auto-generated, +/// and its value will be written to acc->account_id if everything succeeds. +static bool account_db_sql_create(AccountDB* self, struct mmo_account* acc) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + Sql* sql_handle = db->accounts; + + // decide on the account id to assign + int account_id; + if( acc->account_id != -1 ) + {// caller specifies it manually + account_id = acc->account_id; + } + else + {// ask the database + char* data; + size_t len; + + if( SQL_SUCCESS != Sql_Query(sql_handle, "SELECT MAX(`account_id`)+1 FROM `%s`", db->account_db) ) + { + Sql_ShowDebug(sql_handle); + return false; + } + if( SQL_SUCCESS != Sql_NextRow(sql_handle) ) + { + Sql_ShowDebug(sql_handle); + Sql_FreeResult(sql_handle); + return false; + } + + Sql_GetData(sql_handle, 0, &data, &len); + account_id = ( data != NULL ) ? atoi(data) : 0; + Sql_FreeResult(sql_handle); + + if( account_id < START_ACCOUNT_NUM ) + account_id = START_ACCOUNT_NUM; + + } + + // zero value is prohibited + if( account_id == 0 ) + return false; + + // absolute maximum + if( account_id > END_ACCOUNT_NUM ) + return false; + + // insert the data into the database + acc->account_id = account_id; + return mmo_auth_tosql(db, acc, true); +} + +/// delete an existing account entry + its regs +static bool account_db_sql_remove(AccountDB* self, const int account_id) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + Sql* sql_handle = db->accounts; + bool result = false; + + if( SQL_SUCCESS != Sql_QueryStr(sql_handle, "START TRANSACTION") + || SQL_SUCCESS != Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = %d", db->account_db, account_id) + || SQL_SUCCESS != Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = %d", db->accreg_db, account_id) ) + Sql_ShowDebug(sql_handle); + else + result = true; + + result &= ( SQL_SUCCESS == Sql_QueryStr(sql_handle, (result == true) ? "COMMIT" : "ROLLBACK") ); + + return result; +} + +/// update an existing account with the provided new data (both account and regs) +static bool account_db_sql_save(AccountDB* self, const struct mmo_account* acc) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + return mmo_auth_tosql(db, acc, false); +} + +/// retrieve data from db and store it in the provided data structure +static bool account_db_sql_load_num(AccountDB* self, struct mmo_account* acc, const int account_id) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + return mmo_auth_fromsql(db, acc, account_id); +} + +/// retrieve data from db and store it in the provided data structure +static bool account_db_sql_load_str(AccountDB* self, struct mmo_account* acc, const char* userid) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + Sql* sql_handle = db->accounts; + char esc_userid[2*NAME_LENGTH+1]; + int account_id; + char* data; + + Sql_EscapeString(sql_handle, esc_userid, userid); + + // get the list of account IDs for this user ID + if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `account_id` FROM `%s` WHERE `userid`= %s '%s'", + db->account_db, (db->case_sensitive ? "BINARY" : ""), esc_userid) ) + { + Sql_ShowDebug(sql_handle); + return false; + } + + if( Sql_NumRows(sql_handle) > 1 ) + {// serious problem - duplicit account + ShowError("account_db_sql_load_str: multiple accounts found when retrieving data for account '%s'!\n", userid); + Sql_FreeResult(sql_handle); + return false; + } + + if( SQL_SUCCESS != Sql_NextRow(sql_handle) ) + {// no such entry + Sql_FreeResult(sql_handle); + return false; + } + + Sql_GetData(sql_handle, 0, &data, NULL); + account_id = atoi(data); + + return account_db_sql_load_num(self, acc, account_id); +} + + +/// Returns a new forward iterator. +static AccountDBIterator* account_db_sql_iterator(AccountDB* self) +{ + AccountDB_SQL* db = (AccountDB_SQL*)self; + AccountDBIterator_SQL* iter = (AccountDBIterator_SQL*)aCalloc(1, sizeof(AccountDBIterator_SQL)); + + // set up the vtable + iter->vtable.destroy = &account_db_sql_iter_destroy; + iter->vtable.next = &account_db_sql_iter_next; + + // fill data + iter->db = db; + iter->last_account_id = -1; + + return &iter->vtable; +} + + +/// Destroys this iterator, releasing all allocated memory (including itself). +static void account_db_sql_iter_destroy(AccountDBIterator* self) +{ + AccountDBIterator_SQL* iter = (AccountDBIterator_SQL*)self; + aFree(iter); +} + + +/// Fetches the next account in the database. +static bool account_db_sql_iter_next(AccountDBIterator* self, struct mmo_account* acc) +{ + AccountDBIterator_SQL* iter = (AccountDBIterator_SQL*)self; + AccountDB_SQL* db = (AccountDB_SQL*)iter->db; + Sql* sql_handle = db->accounts; + int account_id; + char* data; + + // get next account ID + if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `account_id` FROM `%s` WHERE `account_id` > '%d' ORDER BY `account_id` ASC LIMIT 1", + db->account_db, iter->last_account_id) ) + { + Sql_ShowDebug(sql_handle); + return false; + } + + if( SQL_SUCCESS == Sql_NextRow(sql_handle) && + SQL_SUCCESS == Sql_GetData(sql_handle, 0, &data, NULL) && + data != NULL ) + {// get account data + account_id = atoi(data); + if( mmo_auth_fromsql(db, acc, account_id) ) + { + iter->last_account_id = account_id; + Sql_FreeResult(sql_handle); + return true; + } + } + Sql_FreeResult(sql_handle); + return false; +} + + +static bool mmo_auth_fromsql(AccountDB_SQL* db, struct mmo_account* acc, int account_id) +{ + Sql* sql_handle = db->accounts; + char* data; + int i = 0; + + // retrieve login entry for the specified account + if( SQL_ERROR == Sql_Query(sql_handle, + "SELECT `account_id`,`userid`,`user_pass`,`sex`,`email`,`level`,`state`,`unban_time`,`expiration_time`,`logincount`,`lastlogin`,`last_ip` FROM `%s` WHERE `account_id` = %d", + db->account_db, account_id ) + ) { + Sql_ShowDebug(sql_handle); + return false; + } + + if( SQL_SUCCESS != Sql_NextRow(sql_handle) ) + {// no such entry + Sql_FreeResult(sql_handle); + return false; + } + + Sql_GetData(sql_handle, 0, &data, NULL); acc->account_id = atoi(data); + Sql_GetData(sql_handle, 1, &data, NULL); safestrncpy(acc->userid, data, sizeof(acc->userid)); + Sql_GetData(sql_handle, 2, &data, NULL); safestrncpy(acc->pass, data, sizeof(acc->pass)); + Sql_GetData(sql_handle, 3, &data, NULL); acc->sex = data[0]; + Sql_GetData(sql_handle, 4, &data, NULL); safestrncpy(acc->email, data, sizeof(acc->email)); + Sql_GetData(sql_handle, 5, &data, NULL); acc->level = atoi(data); + Sql_GetData(sql_handle, 6, &data, NULL); acc->state = strtoul(data, NULL, 10); + Sql_GetData(sql_handle, 7, &data, NULL); acc->unban_time = atol(data); + Sql_GetData(sql_handle, 8, &data, NULL); acc->expiration_time = atol(data); + Sql_GetData(sql_handle, 9, &data, NULL); acc->logincount = strtoul(data, NULL, 10); + Sql_GetData(sql_handle, 10, &data, NULL); safestrncpy(acc->lastlogin, data, sizeof(acc->lastlogin)); + Sql_GetData(sql_handle, 11, &data, NULL); safestrncpy(acc->last_ip, data, sizeof(acc->last_ip)); + + Sql_FreeResult(sql_handle); + + + // retrieve account regs for the specified user + if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `str`,`value` FROM `%s` WHERE `type`='1' AND `account_id`='%d'", db->accreg_db, acc->account_id) ) + { + Sql_ShowDebug(sql_handle); + return false; + } + + acc->account_reg2_num = (int)Sql_NumRows(sql_handle); + + while( SQL_SUCCESS == Sql_NextRow(sql_handle) ) + { + char* data; + Sql_GetData(sql_handle, 0, &data, NULL); safestrncpy(acc->account_reg2[i].str, data, sizeof(acc->account_reg2[i].str)); + Sql_GetData(sql_handle, 1, &data, NULL); safestrncpy(acc->account_reg2[i].value, data, sizeof(acc->account_reg2[i].value)); + ++i; + } + Sql_FreeResult(sql_handle); + + if( i != acc->account_reg2_num ) + return false; + + return true; +} + +static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, bool is_new) +{ + Sql* sql_handle = db->accounts; + SqlStmt* stmt = SqlStmt_Malloc(sql_handle); + bool result = false; + int i; + + // try + do + { + + if( SQL_SUCCESS != Sql_QueryStr(sql_handle, "START TRANSACTION") ) + { + Sql_ShowDebug(sql_handle); + break; + } + + if( is_new ) + {// insert into account table + if( SQL_SUCCESS != SqlStmt_Prepare(stmt, + "INSERT INTO `%s` (`account_id`, `userid`, `user_pass`, `sex`, `email`, `level`, `state`, `unban_time`, `expiration_time`, `logincount`, `lastlogin`, `last_ip`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + db->account_db) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 0, SQLDT_INT, (void*)&acc->account_id, sizeof(acc->account_id)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 1, SQLDT_STRING, (void*)acc->userid, strlen(acc->userid)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 2, SQLDT_STRING, (void*)acc->pass, strlen(acc->pass)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 3, SQLDT_ENUM, (void*)&acc->sex, sizeof(acc->sex)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 4, SQLDT_STRING, (void*)&acc->email, strlen(acc->email)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 5, SQLDT_INT, (void*)&acc->level, sizeof(acc->level)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 6, SQLDT_UINT, (void*)&acc->state, sizeof(acc->state)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 7, SQLDT_LONG, (void*)&acc->unban_time, sizeof(acc->unban_time)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 8, SQLDT_INT, (void*)&acc->expiration_time, sizeof(acc->expiration_time)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 9, SQLDT_UINT, (void*)&acc->logincount, sizeof(acc->logincount)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 10, SQLDT_STRING, (void*)&acc->lastlogin, strlen(acc->lastlogin)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 11, SQLDT_STRING, (void*)&acc->last_ip, strlen(acc->last_ip)) + || SQL_SUCCESS != SqlStmt_Execute(stmt) + ) { + SqlStmt_ShowDebug(stmt); + break; + } + } + else + {// update account table + stmt = SqlStmt_Malloc(sql_handle); + if( SQL_SUCCESS != SqlStmt_Prepare(stmt, "UPDATE `%s` SET `userid`=?,`user_pass`=?,`sex`=?,`email`=?,`level`=?,`state`=?,`unban_time`=?,`expiration_time`=?,`logincount`=?,`lastlogin`=?,`last_ip`=? WHERE `account_id` = '%d'", db->account_db, acc->account_id) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 0, SQLDT_STRING, (void*)acc->userid, strlen(acc->userid)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 1, SQLDT_STRING, (void*)acc->pass, strlen(acc->pass)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 2, SQLDT_ENUM, (void*)&acc->sex, sizeof(acc->sex)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 3, SQLDT_STRING, (void*)acc->email, strlen(acc->email)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 4, SQLDT_INT, (void*)&acc->level, sizeof(acc->level)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 5, SQLDT_UINT, (void*)&acc->state, sizeof(acc->state)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 6, SQLDT_LONG, (void*)&acc->unban_time, sizeof(acc->unban_time)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 7, SQLDT_LONG, (void*)&acc->expiration_time, sizeof(acc->expiration_time)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 8, SQLDT_UINT, (void*)&acc->logincount, sizeof(acc->logincount)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 9, SQLDT_STRING, (void*)&acc->lastlogin, strlen(acc->lastlogin)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 10, SQLDT_STRING, (void*)&acc->last_ip, strlen(acc->last_ip)) + || SQL_SUCCESS != SqlStmt_Execute(stmt) + ) { + SqlStmt_ShowDebug(stmt); + break; + } + } + + // remove old account regs + if( SQL_SUCCESS != Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `type`='1' AND `account_id`='%d'", db->accreg_db, acc->account_id) ) + { + Sql_ShowDebug(sql_handle); + break; + } + // insert new account regs + if( SQL_SUCCESS != SqlStmt_Prepare(stmt, "INSERT INTO `%s` (`type`, `account_id`, `str`, `value`) VALUES ( 1 , '%d' , ? , ? );", db->accreg_db, acc->account_id) ) + { + SqlStmt_ShowDebug(stmt); + break; + } + for( i = 0; i < acc->account_reg2_num; ++i ) + { + if( SQL_SUCCESS != SqlStmt_BindParam(stmt, 0, SQLDT_STRING, (void*)acc->account_reg2[i].str, strlen(acc->account_reg2[i].str)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 1, SQLDT_STRING, (void*)acc->account_reg2[i].value, strlen(acc->account_reg2[i].value)) + || SQL_SUCCESS != SqlStmt_Execute(stmt) + ) { + SqlStmt_ShowDebug(stmt); + break; + } + } + if( i < acc->account_reg2_num ) + { + result = false; + break; + } + + // if we got this far, everything was successful + result = true; + + } while(0); + // finally + + result &= ( SQL_SUCCESS == Sql_QueryStr(sql_handle, (result == true) ? "COMMIT" : "ROLLBACK") ); + SqlStmt_Free(stmt); + + return result; +} diff --git a/src/login/account_txt.c b/src/login/account_txt.c new file mode 100644 index 000000000..cfcb6fb8f --- /dev/null +++ b/src/login/account_txt.c @@ -0,0 +1,622 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#include "../common/db.h" +#include "../common/lock.h" +#include "../common/malloc.h" +#include "../common/mmo.h" +#include "../common/showmsg.h" +#include "../common/strlib.h" +#include "../common/timer.h" +#include "account.h" +#include +#include +#include + +/// global defines +#define ACCOUNT_TXT_DB_VERSION 20080409 +#define AUTHS_BEFORE_SAVE 10 // flush every 10 saves +#define AUTH_SAVING_INTERVAL 60000 // flush every 10 minutes + +/// internal structure +typedef struct AccountDB_TXT +{ + AccountDB vtable; // public interface + + DBMap* accounts; // in-memory accounts storage + int next_account_id; // auto_increment + int auths_before_save; // prevents writing to disk too often + int save_timer; // save timer id + + char account_db[1024]; // account data storage file + bool case_sensitive; // how to look up usernames + +} AccountDB_TXT; + +/// internal structure +typedef struct AccountDBIterator_TXT +{ + AccountDBIterator vtable; // public interface + + DBIterator* iter; +} AccountDBIterator_TXT; + +/// internal functions +static bool account_db_txt_init(AccountDB* self); +static void account_db_txt_destroy(AccountDB* self); +static bool account_db_txt_get_property(AccountDB* self, const char* key, char* buf, size_t buflen); +static bool account_db_txt_set_property(AccountDB* self, const char* option, const char* value); +static bool account_db_txt_create(AccountDB* self, struct mmo_account* acc); +static bool account_db_txt_remove(AccountDB* self, const int account_id); +static bool account_db_txt_save(AccountDB* self, const struct mmo_account* acc); +static bool account_db_txt_load_num(AccountDB* self, struct mmo_account* acc, const int account_id); +static bool account_db_txt_load_str(AccountDB* self, struct mmo_account* acc, const char* userid); +static AccountDBIterator* account_db_txt_iterator(AccountDB* self); +static void account_db_txt_iter_destroy(AccountDBIterator* self); +static bool account_db_txt_iter_next(AccountDBIterator* self, struct mmo_account* acc); + +static bool mmo_auth_fromstr(struct mmo_account* acc, char* str, unsigned int version); +static bool mmo_auth_tostr(const struct mmo_account* acc, char* str); +static void mmo_auth_sync(AccountDB_TXT* self); +static int mmo_auth_sync_timer(int tid, unsigned int tick, int id, intptr data); + +/// public constructor +AccountDB* account_db_txt(void) +{ + AccountDB_TXT* db = (AccountDB_TXT*)aCalloc(1, sizeof(AccountDB_TXT)); + + // set up the vtable + db->vtable.init = &account_db_txt_init; + db->vtable.destroy = &account_db_txt_destroy; + db->vtable.get_property = &account_db_txt_get_property; + db->vtable.set_property = &account_db_txt_set_property; + db->vtable.save = &account_db_txt_save; + db->vtable.create = &account_db_txt_create; + db->vtable.remove = &account_db_txt_remove; + db->vtable.load_num = &account_db_txt_load_num; + db->vtable.load_str = &account_db_txt_load_str; + db->vtable.iterator = &account_db_txt_iterator; + + // initialize to default values + db->accounts = NULL; + db->next_account_id = START_ACCOUNT_NUM; + db->auths_before_save = AUTHS_BEFORE_SAVE; + db->save_timer = INVALID_TIMER; + safestrncpy(db->account_db, "save/account.txt", sizeof(db->account_db)); + db->case_sensitive = false; + + return &db->vtable; +} + + +/* ------------------------------------------------------------------------- */ + + +/// opens accounts file, loads it, and starts a periodic saving timer +static bool account_db_txt_init(AccountDB* self) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + DBMap* accounts; + FILE* fp; + char line[2048]; + unsigned int version = 0; + + // create accounts database + db->accounts = idb_alloc(DB_OPT_RELEASE_DATA); + accounts = db->accounts; + + // open data file + fp = fopen(db->account_db, "r"); + if( fp == NULL ) + { + // no account file -> no account -> no login, including char-server (ERROR) + ShowError(CL_RED"account_db_txt_init: Accounts file [%s] not found."CL_RESET"\n", db->account_db); + return false; + } + + // load data file + while( fgets(line, sizeof(line), fp) != NULL ) + { + int account_id, n; + unsigned int v; + struct mmo_account acc; + struct mmo_account* tmp; + struct DBIterator* iter; + int (*compare)(const char* str1, const char* str2) = ( db->case_sensitive ) ? strcmp : stricmp; + + if( line[0] == '/' && line[1] == '/' ) + continue; + + if( sscanf(line, "%d%n", &v, &n) == 1 && line[n] == '\n' ) + {// format version definition + version = v; + continue; + } + + if( sscanf(line, "%d\t%%newid%%%n", &account_id, &n) == 1 && line[n] == '\n' ) + {// auto-increment + if( account_id > db->next_account_id ) + db->next_account_id = account_id; + continue; + } + + if( !mmo_auth_fromstr(&acc, line, version) ) + { + ShowError("account_db_txt_init: skipping invalid data: %s", line); + continue; + } + + // apply constraints & checks here + if( acc.sex != 'S' && (acc.account_id < START_ACCOUNT_NUM || acc.account_id > END_ACCOUNT_NUM) ) + ShowWarning("account_db_txt_init: account %d:'%s' has ID outside of the defined range for accounts (min:%d max:%d)!\n", acc.account_id, acc.userid, START_ACCOUNT_NUM, END_ACCOUNT_NUM); + + iter = accounts->iterator(accounts); + for( tmp = (struct mmo_account*)iter->first(iter,NULL); iter->exists(iter); tmp = (struct mmo_account*)iter->next(iter,NULL) ) + if( compare(acc.userid, tmp->userid) == 0 ) + break; + iter->destroy(iter); + + if( tmp != NULL ) + {// entry with identical username + ShowWarning("account_db_txt_init: account %d:'%s' has same username as account %d. The account will be inaccessible!\n", acc.account_id, acc.userid, tmp->account_id); + } + + if( idb_get(accounts, acc.account_id) != NULL ) + {// account id already occupied + ShowError("account_db_txt_init: ID collision for account id %d! Discarding data for account '%s'...\n", acc.account_id, acc.userid); + continue; + } + + // record entry in db + tmp = (struct mmo_account*)aMalloc(sizeof(struct mmo_account)); + memcpy(tmp, &acc, sizeof(struct mmo_account)); + idb_put(accounts, acc.account_id, tmp); + + if( db->next_account_id < acc.account_id) + db->next_account_id = acc.account_id + 1; + } + + // close data file + fclose(fp); + + // initialize data saving timer + add_timer_func_list(mmo_auth_sync_timer, "mmo_auth_sync_timer"); + db->save_timer = add_timer_interval(gettick() + AUTH_SAVING_INTERVAL, mmo_auth_sync_timer, 0, (int)db, AUTH_SAVING_INTERVAL); + + return true; +} + +/// flush accounts db, close savefile and deallocate structures +static void account_db_txt_destroy(AccountDB* self) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + DBMap* accounts = db->accounts; + + // stop saving timer + delete_timer(db->save_timer, mmo_auth_sync_timer); + + // write data + mmo_auth_sync(db); + + // delete accounts database + accounts->destroy(accounts, NULL); + db->accounts = NULL; + + // delete entire structure + aFree(db); +} + +/// Gets a property from this database. +static bool account_db_txt_get_property(AccountDB* self, const char* key, char* buf, size_t buflen) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + const char* signature = "account.txt."; + + if( strcmp(key, "engine.name") == 0 ) + { + safesnprintf(buf, buflen, "txt"); + return true; + } + if( strcmp(key, "engine.version") == 0 ) + { + safesnprintf(buf, buflen, "%d", ACCOUNT_TXT_DB_VERSION); + return true; + } + if( strcmp(key, "engine.comment") == 0 ) + { + safesnprintf(buf, buflen, "TXT Account Database %d", ACCOUNT_TXT_DB_VERSION); + return true; + } + + if( strncmp(key, signature, strlen(signature)) != 0 ) + return false; + + key += strlen(signature); + + if( strcmpi(key, "account_db") == 0 ) + safesnprintf(buf, buflen, "%s", db->account_db); + else if( strcmpi(key, "case_sensitive") == 0 ) + safesnprintf(buf, buflen, "%d", (db->case_sensitive ? 1 : 0)); + else + return false;// not found + + return true; +} + +/// Sets a property in this database. +static bool account_db_txt_set_property(AccountDB* self, const char* key, const char* value) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + const char* signature = "account.txt."; + + if( strncmp(key, signature, strlen(signature)) != 0 ) + return false; + + key += strlen(signature); + + if( strcmpi(key, "account_db") == 0 ) + safestrncpy(db->account_db, value, sizeof(db->account_db)); + else if( strcmpi(key, "case_sensitive") == 0 ) + db->case_sensitive = config_switch(value); + else // no match + return false; + + return true; +} + +/// Add a new entry for this account to the account db and save it. +/// If acc->account_id is -1, the account id will be auto-generated, +/// and its value will be written to acc->account_id if everything succeeds. +static bool account_db_txt_create(AccountDB* self, struct mmo_account* acc) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + DBMap* accounts = db->accounts; + struct mmo_account* tmp; + + // decide on the account id to assign + int account_id = ( acc->account_id != -1 ) ? acc->account_id : db->next_account_id; + + // absolute maximum + if( account_id > END_ACCOUNT_NUM ) + return false; + + // check if the account_id is free + tmp = idb_get(accounts, account_id); + if( tmp != NULL ) + {// error condition - entry already present + ShowError("account_db_txt_create: cannot create account %d:'%s', this id is already occupied by %d:'%s'!\n", account_id, acc->userid, account_id, tmp->userid); + return false; + } + + // copy the data and store it in the db + CREATE(tmp, struct mmo_account, 1); + memcpy(tmp, acc, sizeof(struct mmo_account)); + tmp->account_id = account_id; + idb_put(accounts, account_id, tmp); + + // increment the auto_increment value + if( account_id >= db->next_account_id ) + db->next_account_id = account_id + 1; + + // flush data + mmo_auth_sync(db); + + // write output + acc->account_id = account_id; + + return true; +} + +/// find an existing entry for this account id and delete it +static bool account_db_txt_remove(AccountDB* self, const int account_id) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + DBMap* accounts = db->accounts; + + //TODO: find out if this really works + struct mmo_account* tmp = idb_remove(accounts, account_id); + if( tmp == NULL ) + {// error condition - entry not present + ShowError("account_db_txt_remove: no such account with id %d\n", account_id); + return false; + } + + // flush data + mmo_auth_sync(db); + + return true; +} + +/// rewrite the data stored in the account_db with the one provided +static bool account_db_txt_save(AccountDB* self, const struct mmo_account* acc) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + DBMap* accounts = db->accounts; + int account_id = acc->account_id; + + // retrieve previous data + struct mmo_acount* tmp = idb_get(accounts, account_id); + if( tmp == NULL ) + {// error condition - entry not found + return false; + } + + // overwrite with new data + memcpy(tmp, acc, sizeof(struct mmo_account)); + + // modify save counter and save if needed + if( --db->auths_before_save == 0 ) + mmo_auth_sync(db); + + return true; +} + +/// retrieve data from db and store it in the provided data structure +static bool account_db_txt_load_num(AccountDB* self, struct mmo_account* acc, const int account_id) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + DBMap* accounts = db->accounts; + + // retrieve data + struct mmo_account* tmp = idb_get(accounts, account_id); + if( tmp == NULL ) + {// entry not found + return false; + } + + // store it + memcpy(acc, tmp, sizeof(struct mmo_account)); + + return true; +} + +/// retrieve data from db and store it in the provided data structure +static bool account_db_txt_load_str(AccountDB* self, struct mmo_account* acc, const char* userid) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + DBMap* accounts = db->accounts; + + // retrieve data + struct DBIterator* iter = accounts->iterator(accounts); + struct mmo_account* tmp; + int (*compare)(const char* str1, const char* str2) = ( db->case_sensitive ) ? strcmp : stricmp; + + for( tmp = (struct mmo_account*)iter->first(iter,NULL); iter->exists(iter); tmp = (struct mmo_account*)iter->next(iter,NULL) ) + if( compare(userid, tmp->userid) == 0 ) + break; + iter->destroy(iter); + + if( tmp == NULL ) + {// entry not found + return false; + } + + // store it + memcpy(acc, tmp, sizeof(struct mmo_account)); + + return true; +} + + +/// Returns a new forward iterator. +static AccountDBIterator* account_db_txt_iterator(AccountDB* self) +{ + AccountDB_TXT* db = (AccountDB_TXT*)self; + DBMap* accounts = db->accounts; + AccountDBIterator_TXT* iter = (AccountDBIterator_TXT*)aCalloc(1, sizeof(AccountDBIterator_TXT)); + + // set up the vtable + iter->vtable.destroy = &account_db_txt_iter_destroy; + iter->vtable.next = &account_db_txt_iter_next; + + // fill data + iter->iter = db_iterator(accounts); + + return &iter->vtable; +} + + +/// Destroys this iterator, releasing all allocated memory (including itself). +static void account_db_txt_iter_destroy(AccountDBIterator* self) +{ + AccountDBIterator_TXT* iter = (AccountDBIterator_TXT*)self; + dbi_destroy(iter->iter); + aFree(iter); +} + + +/// Fetches the next account in the database. +static bool account_db_txt_iter_next(AccountDBIterator* self, struct mmo_account* acc) +{ + AccountDBIterator_TXT* iter = (AccountDBIterator_TXT*)self; + struct mmo_account* tmp = (struct mmo_account*)dbi_next(iter->iter); + if( dbi_exists(iter->iter) ) + { + memcpy(acc, tmp, sizeof(struct mmo_account)); + return true; + } + return false; +} + + +/// parse input string into the provided account data structure +static bool mmo_auth_fromstr(struct mmo_account* a, char* str, unsigned int version) +{ + char* fields[32]; + int count; + char* regs; + int i, n; + + // zero out the destination first + memset(a, 0x00, sizeof(struct mmo_account)); + + // extract tab-separated columns from line + count = sv_split(str, strlen(str), 0, '\t', fields, ARRAYLENGTH(fields), SV_NOESCAPE_NOTERMINATE); + + if( version == ACCOUNT_TXT_DB_VERSION && count == 13 ) + { + a->account_id = strtol(fields[1], NULL, 10); + safestrncpy(a->userid, fields[2], sizeof(a->userid)); + safestrncpy(a->pass, fields[3], sizeof(a->pass)); + a->sex = fields[4][0]; + safestrncpy(a->email, fields[5], sizeof(a->email)); + a->level = strtoul(fields[6], NULL, 10); + a->state = strtoul(fields[7], NULL, 10); + a->unban_time = strtol(fields[8], NULL, 10); + a->expiration_time = strtol(fields[9], NULL, 10); + a->logincount = strtoul(fields[10], NULL, 10); + safestrncpy(a->lastlogin, fields[11], sizeof(a->lastlogin)); + safestrncpy(a->last_ip, fields[12], sizeof(a->last_ip)); + regs = fields[13]; + } + else + if( version == 0 && count == 14 ) + { + a->account_id = strtol(fields[1], NULL, 10); + safestrncpy(a->userid, fields[2], sizeof(a->userid)); + safestrncpy(a->pass, fields[3], sizeof(a->pass)); + safestrncpy(a->lastlogin, fields[4], sizeof(a->lastlogin)); + a->sex = fields[5][0]; + a->logincount = strtoul(fields[6], NULL, 10); + a->state = strtoul(fields[7], NULL, 10); + safestrncpy(a->email, fields[8], sizeof(a->email)); + //safestrncpy(a->error_message, fields[9], sizeof(a->error_message)); + a->expiration_time = strtol(fields[10], NULL, 10); + safestrncpy(a->last_ip, fields[11], sizeof(a->last_ip)); + //safestrncpy(a->memo, fields[12], sizeof(a->memo)); + a->unban_time = strtol(fields[13], NULL, 10); + regs = fields[14]; + } + else + if( version == 0 && count == 13 ) + { + a->account_id = strtol(fields[1], NULL, 10); + safestrncpy(a->userid, fields[2], sizeof(a->userid)); + safestrncpy(a->pass, fields[3], sizeof(a->pass)); + safestrncpy(a->lastlogin, fields[4], sizeof(a->lastlogin)); + a->sex = fields[5][0]; + a->logincount = strtoul(fields[6], NULL, 10); + a->state = strtoul(fields[7], NULL, 10); + safestrncpy(a->email, fields[8], sizeof(a->email)); + //safestrncpy(a->error_message, fields[9], sizeof(a->error_message)); + a->expiration_time = strtol(fields[10], NULL, 10); + safestrncpy(a->last_ip, fields[11], sizeof(a->last_ip)); + //safestrncpy(a->memo, fields[12], sizeof(a->memo)); + regs = fields[13]; + } + else + if( version == 0 && count == 8 ) + { + a->account_id = strtol(fields[1], NULL, 10); + safestrncpy(a->userid, fields[2], sizeof(a->userid)); + safestrncpy(a->pass, fields[3], sizeof(a->pass)); + safestrncpy(a->lastlogin, fields[4], sizeof(a->lastlogin)); + a->sex = fields[5][0]; + a->logincount = strtoul(fields[6], NULL, 10); + a->state = strtoul(fields[7], NULL, 10); + regs = fields[8]; + } + else + {// unmatched row + return false; + } + + // extract account regs + // {reg namereg value}* + n = 0; + for( i = 0; i < ACCOUNT_REG2_NUM; ++i ) + { + char key[32]; + char value[256]; + + regs += n; + + if (sscanf(regs, "%31[^\t,],%255[^\t ] %n", key, value, &n) != 2) + { + // We must check if a str is void. If it's, we can continue to read other REG2. + // Account line will have something like: str2,9 ,9 str3,1 (here, ,9 is not good) + if (regs[0] == ',' && sscanf(regs, ",%[^\t ] %n", value, &n) == 1) { + i--; + continue; + } else + break; + } + + safestrncpy(a->account_reg2[i].str, key, 32); + safestrncpy(a->account_reg2[i].value, value, 256); + } + a->account_reg2_num = i; + + return true; +} + +/// dump the contents of the account data structure into the provided string buffer +static bool mmo_auth_tostr(const struct mmo_account* a, char* str) +{ + int i; + char* str_p = str; + + str_p += sprintf(str_p, "%d\t%s\t%s\t%c\t%s\t%u\t%u\t%ld\t%ld\t%u\t%s\t%s\t", + a->account_id, a->userid, a->pass, a->sex, a->email, a->level, + a->state, (long)a->unban_time, (long)a->expiration_time, + a->logincount, a->lastlogin, a->last_ip); + + for( i = 0; i < a->account_reg2_num; ++i ) + if( a->account_reg2[i].str[0] ) + str_p += sprintf(str_p, "%s,%s ", a->account_reg2[i].str, a->account_reg2[i].value); + + return true; +} + +/// dump the entire account db to disk +static void mmo_auth_sync(AccountDB_TXT* db) +{ + int lock; + FILE *fp; + struct DBIterator* iter; + struct mmo_account* acc; + + fp = lock_fopen(db->account_db, &lock); + if( fp == NULL ) + { + return; + } + + fprintf(fp, "%d\n", ACCOUNT_TXT_DB_VERSION); // savefile version + + fprintf(fp, "// Accounts file: here are saved all information about the accounts.\n"); + fprintf(fp, "// Structure: account ID, username, password, sex, email, level, state, unban time, expiration time, # of logins, last login time, last (accepted) login ip, repeated(register key, register value)\n"); + fprintf(fp, "// where:\n"); + fprintf(fp, "// sex : M or F for normal accounts, S for server accounts\n"); + fprintf(fp, "// level : this account's gm level\n"); + fprintf(fp, "// state : 0: account is ok, 1 to 256: error code of packet 0x006a + 1\n"); + fprintf(fp, "// unban time : 0: no ban, : banned until the date (unix timestamp)\n"); + fprintf(fp, "// expiration time : 0: unlimited account, : account expires on the date (unix timestamp)\n"); + + //TODO: sort? + + iter = db->accounts->iterator(db->accounts); + for( acc = (struct mmo_account*)iter->first(iter,NULL); iter->exists(iter); acc = (struct mmo_account*)iter->next(iter,NULL) ) + { + char buf[2048]; // ought to be big enough ^^ + mmo_auth_tostr(acc, buf); + fprintf(fp, "%s\n", buf); + } + fprintf(fp, "%d\t%%newid%%\n", db->next_account_id); + iter->destroy(iter); + + lock_fclose(fp, db->account_db, &lock); + + // reset save counter + db->auths_before_save = AUTHS_BEFORE_SAVE; +} + +static int mmo_auth_sync_timer(int tid, unsigned int tick, int id, intptr data) +{ + AccountDB_TXT* db = (AccountDB_TXT*)data; + + if( db->auths_before_save < AUTHS_BEFORE_SAVE ) + mmo_auth_sync(db); // db was modified, flush it + + return 0; +} diff --git a/src/login/admin.c b/src/login/admin.c index 9bce1a02f..c4116f16d 100644 --- a/src/login/admin.c +++ b/src/login/admin.c @@ -1,3 +1,6 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + #include "../common/cbasetypes.h" #include "../common/mmo.h" #include "../common/core.h" @@ -10,6 +13,7 @@ #include "../common/version.h" #include "../common/md5calc.h" #include "../common/lock.h" +#include "account.h" #include "login.h" #include @@ -17,31 +21,72 @@ #include #include // for stat/lstat/fstat -extern struct Login_Config login_config; - #define MAX_SERVERS 30 extern struct mmo_char_server server[MAX_SERVERS]; -extern struct mmo_account* auth_dat; -extern uint32 auth_num; -extern int account_id_count; -extern char GM_account_filename[1024]; +extern AccountDB* accounts; int charif_sendallwos(int sfd, unsigned char *buf, unsigned int len); -int search_account_index(char* account_name); -int mmo_auth_new(struct mmo_account* account); -void mmo_auth_sync(void); -int mmo_auth_tostr(char* str, struct mmo_account* p); -int read_gm_account(void); -void send_GM_accounts(int fd); -int isGM(int account_id); +bool check_password(const char* md5key, int passwdenc, const char* passwd, const char* refpass); +int mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip); +int parse_admin(int fd); + + +bool ladmin_auth(struct login_session_data* sd, const char* ip) +{ + bool result = false; + + if( str2ip(ip) != host2ip(login_config.admin_allowed_host) ) + ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - IP isn't authorised (ip: %s).\n", ip); + else + if( !login_config.admin_state ) + ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - remote administration is disabled (ip: %s)\n", ip); + else + if( !check_password(sd->md5key, sd->passwdenc, sd->passwd, login_config.admin_pass) ) + ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - invalid password (ip: %s)\n", ip); + else + { + ShowNotice("'ladmin'-login: Connection in administration mode accepted (ip: %s)\n", ip); + session[sd->fd]->func_parse = parse_admin; + result = true; + } + + return result; +} //--------------------------------------- // Packet parsing for administation login +// +// List of supported operations: +// 0x7530 - request server version (response: 0x7531) +// 0x7938 - request server list (response: 0x7939) +// 0x7920 - request entire list of accounts (response: 0x7921) +// 0x794e - request message broadcast (response: 0x794f + 0x2726) + +// 0x7930 - request account creation (response: 0x7931) +// 0x7932 - request account deletion (response: 0x7933 + 0x2730) + +// 0x7934 - request account password modification (response: 0x7935) +// 0x7936 - request account state modification (response: 0x7937 + 0x2731) +// 0x793a - request password check (response: 0x793b) +// 0x793c - request account sex modification (response: 0x793d + 0x2723) +// 0x793e - request account gm-level modification (response: 0x793f) +// 0x7940 - request account email modification (response: 0x7941) +// 0x7942 - request account memo modification (response: 0x7943) +// 0x7948 - request account expiration-time modification - absolute (response: 0x7949) +// 0x7950 - request account expiration-time modification - relative (response: 0x7951) +// 0x794a - request account unban-time modification - absolute (response: 0x794b + 0x2731) +// 0x794c - request account unban-time modification - relative (response: 0x794d + 0x2731) + +// 0x7944 - request account id lookup by name (response: 0x7945) +// 0x7946 - request account name lookup by id (response: 0x7947) +// 0x7952 - request account information lookup by name (response: 0x7953) +// 0x7954 - request account information lookup by id (response: 0x7953) //--------------------------------------- int parse_admin(int fd) { unsigned int i, j; char* account_name; + struct mmo_account acc; uint32 ipl = session[fd]->client_addr; char ip[16]; @@ -75,7 +120,7 @@ int parse_admin(int fd) WFIFOSET(fd,10); RFIFOSKIP(fd,2); break; - +/* case 0x7920: // Request of an accounts list if (RFIFOREST(fd) < 10) return 0; @@ -130,158 +175,145 @@ int parse_admin(int fd) DELETE_BUFFER(id); } break; - +*/ case 0x7930: // Request for an account creation if (RFIFOREST(fd) < 91) return 0; - { - struct mmo_account ma; - safestrncpy(ma.userid, (char*)RFIFOP(fd, 2), NAME_LENGTH); - safestrncpy(ma.pass, (char*)RFIFOP(fd,26), NAME_LENGTH); - safestrncpy(ma.email, (char*)RFIFOP(fd,51), 40); - memcpy(ma.lastlogin, "-", 2); - ma.sex = RFIFOB(fd,50); - RFIFOSKIP(fd,91); - - WFIFOW(fd,0) = 0x7931; - WFIFOL(fd,2) = 0xffffffff; // invalid account id - safestrncpy((char*)WFIFOP(fd,6), ma.userid, 24); - if (strlen(ma.userid) < 4 || strlen(ma.pass) < 4) { - ShowNotice("'ladmin': Attempt to create an invalid account (account or pass is too short, ip: %s)\n", ip); - } else if (ma.sex != 'F' && ma.sex != 'M') { - ShowNotice("'ladmin': Attempt to create an invalid account (account: %s, received pass: %s, invalid sex, ip: %s)\n", ma.userid, ma.pass, ip); - } else if (account_id_count > END_ACCOUNT_NUM) { - ShowNotice("'ladmin': Attempt to create an account, but there is no more available id number (account: %s, pass: %s, sex: %c, ip: %s)\n", ma.userid, ma.pass, ma.sex, ip); - } else { - remove_control_chars(ma.userid); - remove_control_chars(ma.pass); - remove_control_chars(ma.email); - ARR_FIND( 0, auth_num, i, strncmp(auth_dat[i].userid, ma.userid, 24) == 0 ); - if( i < auth_num ) - ShowNotice("'ladmin': Attempt to create an already existing account (account: %s, pass: %s, received pass: %s, ip: %s)\n", auth_dat[i].userid, auth_dat[i].pass, ma.pass, ip); - else - { - int new_id; - new_id = mmo_auth_new(&ma); - ShowNotice("'ladmin': Account creation (account: %s (id: %d), pass: %s, sex: %c, email: %s, ip: %s)\n", ma.userid, new_id, ma.pass, ma.sex, auth_dat[i].email, ip); - WFIFOL(fd,2) = new_id; - mmo_auth_sync(); - } - } - WFIFOSET(fd,30); - } + { + struct mmo_account ma; + safestrncpy(ma.userid, (char*)RFIFOP(fd, 2), sizeof(ma.userid)); + safestrncpy(ma.pass, (char*)RFIFOP(fd,26), sizeof(ma.pass)); + ma.sex = RFIFOB(fd,50); + safestrncpy(ma.email, (char*)RFIFOP(fd,51), sizeof(ma.email)); + safestrncpy(ma.lastlogin, "-", sizeof(ma.lastlogin)); + + ShowNotice("'ladmin': Account creation request (account: %s pass: %s, sex: %c, email: %s, ip: %s)\n", ma.userid, ma.pass, ma.sex, ma.email, ip); + + WFIFOW(fd,0) = 0x7931; + WFIFOL(fd,2) = mmo_auth_new(ma.userid, ma.pass, ma.sex, ip); + safestrncpy((char*)WFIFOP(fd,6), ma.userid, 24); + WFIFOSET(fd,30); + } + RFIFOSKIP(fd,91); break; - +/* case 0x7932: // Request for an account deletion if (RFIFOREST(fd) < 26) return 0; - WFIFOW(fd,0) = 0x7933; - WFIFOL(fd,2) = 0xFFFFFFFF; - account_name = (char*)RFIFOP(fd,2); + { + struct mmo_account acc; + + char* account_name = (char*)RFIFOP(fd,2); account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { + + WFIFOW(fd,0) = 0x7933; + + if( accounts->load_str(accounts, &acc, account_name) ) + { // Char-server is notified of deletion (for characters deletion). unsigned char buf[65535]; WBUFW(buf,0) = 0x2730; - WBUFL(buf,2) = auth_dat[i].account_id; + WBUFL(buf,2) = acc.account_id; charif_sendallwos(-1, buf, 6); + // send answer - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - WFIFOL(fd,2) = auth_dat[i].account_id; - // save deleted account in log file - ShowNotice("'ladmin': Account deletion (account: %s, id: %d, ip: %s) - saved in next line:\n", auth_dat[i].userid, auth_dat[i].account_id, ip); - mmo_auth_tostr((char*)buf, &auth_dat[i]); - ShowNotice("%s\n", buf); + memcpy(WFIFOP(fd,6), acc.userid, 24); + WFIFOL(fd,2) = acc.account_id; + // delete account - memset(auth_dat[i].userid, '\0', sizeof(auth_dat[i].userid)); + memset(acc.userid, '\0', sizeof(acc.userid)); auth_dat[i].account_id = -1; mmo_auth_sync(); } else { + WFIFOL(fd,2) = -1; memcpy(WFIFOP(fd,6), account_name, 24); ShowNotice("'ladmin': Attempt to delete an unknown account (account: %s, ip: %s)\n", account_name, ip); } WFIFOSET(fd,30); + } RFIFOSKIP(fd,26); break; - +*/ case 0x7934: // Request to change a password if (RFIFOREST(fd) < 50) return 0; - WFIFOW(fd,0) = 0x7935; - WFIFOL(fd,2) = 0xFFFFFFFF; /// WTF??? an unsigned being set to a -1 - account_name = (char*)RFIFOP(fd,2); + { + struct mmo_account acc; + + char* account_name = (char*)RFIFOP(fd,2); account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - memcpy(auth_dat[i].pass, RFIFOP(fd,26), 24); - auth_dat[i].pass[23] = '\0'; - remove_control_chars(auth_dat[i].pass); - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Modification of a password (account: %s, new password: %s, ip: %s)\n", auth_dat[i].userid, auth_dat[i].pass, ip); - mmo_auth_sync(); - } else { - memcpy(WFIFOP(fd,6), account_name, 24); + + WFIFOW(fd,0) = 0x7935; + + if( accounts->load_str(accounts, &acc, account_name) ) + { + WFIFOL(fd,2) = acc.account_id; + safestrncpy((char*)WFIFOP(fd,6), acc.userid, 24); + safestrncpy(acc.pass, (char*)RFIFOP(fd,26), 24); + ShowNotice("'ladmin': Modification of a password (account: %s, new password: %s, ip: %s)\n", acc.userid, acc.pass, ip); + + accounts->save(accounts, &acc); + } + else + { + WFIFOL(fd,2) = -1; + safestrncpy((char*)WFIFOP(fd,6), account_name, 24); ShowNotice("'ladmin': Attempt to modify the password of an unknown account (account: %s, ip: %s)\n", account_name, ip); } + WFIFOSET(fd,30); + } RFIFOSKIP(fd,50); break; case 0x7936: // Request to modify a state if (RFIFOREST(fd) < 50) return 0; + { + struct mmo_account acc; + + char* account_name = (char*)RFIFOP(fd,2); + uint32 state = RFIFOL(fd,26); + account_name[23] = '\0'; + + WFIFOW(fd,0) = 0x7937; + + if( accounts->load_str(accounts, &acc, account_name) ) { - char error_message[20]; - uint32 statut; - WFIFOW(fd,0) = 0x7937; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - statut = RFIFOL(fd,26); - memcpy(error_message, RFIFOP(fd,30), 20); - error_message[19] = '\0'; - remove_control_chars(error_message); - if (statut != 7 || error_message[0] == '\0') { // 7: // 6 = Your are Prohibited to log in until %s - strcpy(error_message, "-"); - } - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - WFIFOL(fd,2) = auth_dat[i].account_id; - if (auth_dat[i].state == statut && strcmp(auth_dat[i].error_message, error_message) == 0) - ShowNotice("'ladmin': Modification of a state, but the state of the account is already the good state (account: %s, received state: %d, ip: %s)\n", account_name, statut, ip); - else { - if (statut == 7) - ShowNotice("'ladmin': Modification of a state (account: %s, new state: %d - prohibited to login until '%s', ip: %s)\n", auth_dat[i].userid, statut, error_message, ip); - else - ShowNotice("'ladmin': Modification of a state (account: %s, new state: %d, ip: %s)\n", auth_dat[i].userid, statut, ip); - if (auth_dat[i].state == 0) { - unsigned char buf[16]; - WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = auth_dat[i].account_id; - WBUFB(buf,6) = 0; // 0: change of statut, 1: ban - WBUFL(buf,7) = statut; // status or final date of a banishment - charif_sendallwos(-1, buf, 11); - } - auth_dat[i].state = statut; - memcpy(auth_dat[i].error_message, error_message, 20); - mmo_auth_sync(); + memcpy(WFIFOP(fd,6), acc.userid, 24); + WFIFOL(fd,2) = acc.account_id; + + if (acc.state == state) + ShowNotice("'ladmin': Modification of a state, but the state of the account already has this value (account: %s, received state: %d, ip: %s)\n", account_name, state, ip); + else + { + ShowNotice("'ladmin': Modification of a state (account: %s, new state: %d, ip: %s)\n", acc.userid, state, ip); + + if (acc.state == 0) { + unsigned char buf[16]; + WBUFW(buf,0) = 0x2731; + WBUFL(buf,2) = acc.account_id; + WBUFB(buf,6) = 0; // 0: change of statut, 1: ban + WBUFL(buf,7) = state; // status or final date of a banishment + charif_sendallwos(-1, buf, 11); } - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to modify the state of an unknown account (account: %s, received state: %d, ip: %s)\n", account_name, statut, ip); + acc.state = state; + accounts->save(accounts, &acc); } - WFIFOL(fd,30) = statut; } + else + { + ShowNotice("'ladmin': Attempt to modify the state of an unknown account (account: %s, received state: %d, ip: %s)\n", account_name, state, ip); + WFIFOL(fd,2) = -1; + memcpy(WFIFOP(fd,6), account_name, 24); + } + + WFIFOL(fd,30) = state; WFIFOSET(fd,34); + } RFIFOSKIP(fd,50); break; - +/* case 0x7938: // Request for servers list and # of online players { uint8 server_num = 0; @@ -312,18 +344,18 @@ int parse_admin(int fd) account_name = (char*)RFIFOP(fd,2); account_name[23] = '\0'; remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { + if( accounts->load_str(accounts, &acc, account_name) ) + { char pass[25]; memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); memcpy(pass, RFIFOP(fd,26), 24); pass[24] = '\0'; remove_control_chars(pass); - if (strcmp(auth_dat[i].pass, pass) == 0) { - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Check of password OK (account: %s, password: %s, ip: %s)\n", auth_dat[i].userid, auth_dat[i].pass, ip); + if (strcmp(acc.pass, pass) == 0) { + WFIFOL(fd,2) = acc.account_id; + ShowNotice("'ladmin': Check of password OK (account: %s, password: %s, ip: %s)\n", acc.userid, acc.pass, ip); } else { - ShowNotice("'ladmin': Failure of password check (account: %s, proposed pass: %s, ip: %s)\n", auth_dat[i].userid, pass, ip); + ShowNotice("'ladmin': Failure of password check (account: %s, proposed pass: %s, ip: %s)\n", acc.userid, pass, ip); } } else { memcpy(WFIFOP(fd,6), account_name, 24); @@ -337,7 +369,7 @@ int parse_admin(int fd) if (RFIFOREST(fd) < 27) return 0; WFIFOW(fd,0) = 0x793d; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? + WFIFOL(fd,2) = 0xFFFFFFFF; // -1 account_name = (char*)RFIFOP(fd,2); account_name[23] = '\0'; remove_control_chars(account_name); @@ -351,22 +383,25 @@ int parse_admin(int fd) else ShowNotice("'ladmin': Attempt to give an invalid sex (account: %s, received sex: 'control char', ip: %s)\n", account_name, ip); } else { - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - if (auth_dat[i].sex != ((sex == 'S' || sex == 's') ? 2 : (sex == 'M' || sex == 'm'))) { + if( accounts->load_str(accounts, &acc, account_name) ) + { + memcpy(WFIFOP(fd,6), acc.userid, 24); + if (acc.sex != sex) + { unsigned char buf[16]; - WFIFOL(fd,2) = auth_dat[i].account_id; - auth_dat[i].sex = (sex == 'S' || sex == 's') ? 2 : (sex == 'M' || sex == 'm'); - ShowNotice("'ladmin': Modification of a sex (account: %s, new sex: %c, ip: %s)\n", auth_dat[i].userid, sex, ip); - mmo_auth_sync(); + ShowNotice("'ladmin': Modification of a sex (account: %s, new sex: %c, ip: %s)\n", acc.userid, sex, ip); + + WFIFOL(fd,2) = acc.account_id; + acc.sex = sex; + accounts->save(accounts, &acc); + // send to all char-server the change WBUFW(buf,0) = 0x2723; - WBUFL(buf,2) = auth_dat[i].account_id; - WBUFB(buf,6) = auth_dat[i].sex; + WBUFL(buf,2) = acc.account_id; + WBUFB(buf,6) = acc.sex; charif_sendallwos(-1, buf, 7); } else { - ShowNotice("'ladmin': Modification of a sex, but the sex is already the good sex (account: %s, sex: %c, ip: %s)\n", auth_dat[i].userid, sex, ip); + ShowNotice("'ladmin': Modification of a sex, but the sex is already the good sex (account: %s, sex: %c, ip: %s)\n", acc.userid, sex, ip); } } else { ShowNotice("'ladmin': Attempt to modify the sex of an unknown account (account: %s, received sex: %c, ip: %s)\n", account_name, sex, ip); @@ -381,82 +416,31 @@ int parse_admin(int fd) if (RFIFOREST(fd) < 27) return 0; WFIFOW(fd,0) = 0x793f; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? + WFIFOL(fd,2) = 0xFFFFFFFF; // -1 account_name = (char*)RFIFOP(fd,2); account_name[23] = '\0'; remove_control_chars(account_name); memcpy(WFIFOP(fd,6), account_name, 24); + { + char new_gm_level; + new_gm_level = RFIFOB(fd,26); + if( new_gm_level < 0 || new_gm_level > 99 ) + ShowNotice("'ladmin': Attempt to give an invalid GM level (account: %s, received GM level: %d, ip: %s)\n", account_name, (int)new_gm_level, ip); + else + if( !accounts->load_str(accounts, &acc, account_name) ) + ShowNotice("'ladmin': Attempt to modify the GM level of an unknown account (account: %s, received GM level: %d, ip: %s)\n", account_name, (int)new_gm_level, ip); + else { - char new_gm_level; - new_gm_level = RFIFOB(fd,26); - if (new_gm_level < 0 || new_gm_level > 99) { - ShowNotice("'ladmin': Attempt to give an invalid GM level (account: %s, received GM level: %d, ip: %s)\n", account_name, (int)new_gm_level, ip); - } else { - i = search_account_index(account_name); - if (i != -1) { - int acc = auth_dat[i].account_id; - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - if (isGM(acc) != new_gm_level) { - // modification of the file - FILE *fp, *fp2; - int lock; - char line[512]; - int GM_account, GM_level; - int modify_flag; - char tmpstr[24]; - time_t raw_time; - if ((fp2 = lock_fopen(GM_account_filename, &lock)) != NULL) { - if ((fp = fopen(GM_account_filename, "r")) != NULL) { - time(&raw_time); - strftime(tmpstr, 23, login_config.date_format, localtime(&raw_time)); - modify_flag = 0; - // read/write GM file - while(fgets(line, sizeof(line), fp)) - { - while(line[0] != '\0' && (line[strlen(line)-1] == '\n' || line[strlen(line)-1] == '\r')) - line[strlen(line)-1] = '\0'; // TODO: remove this - if ((line[0] == '/' && line[1] == '/') || line[0] == '\0') - fprintf(fp2, "%s\n", line); - else { - if (sscanf(line, "%d %d", &GM_account, &GM_level) != 2 && sscanf(line, "%d: %d", &GM_account, &GM_level) != 2) - fprintf(fp2, "%s\n", line); - else if (GM_account != acc) - fprintf(fp2, "%s\n", line); - else if (new_gm_level < 1) { - fprintf(fp2, "// %s: 'ladmin' GM level removed on account %d '%s' (previous level: %d)\n//%d %d\n", tmpstr, acc, auth_dat[i].userid, GM_level, acc, new_gm_level); - modify_flag = 1; - } else { - fprintf(fp2, "// %s: 'ladmin' GM level on account %d '%s' (previous level: %d)\n%d %d\n", tmpstr, acc, auth_dat[i].userid, GM_level, acc, new_gm_level); - modify_flag = 1; - } - } - } - if (modify_flag == 0) - fprintf(fp2, "// %s: 'ladmin' GM level on account %d '%s' (previous level: 0)\n%d %d\n", tmpstr, acc, auth_dat[i].userid, acc, new_gm_level); - fclose(fp); - } else { - ShowNotice("'ladmin': Attempt to modify of a GM level - impossible to read GM accounts file (account: %s (%d), received GM level: %d, ip: %s)\n", auth_dat[i].userid, acc, (int)new_gm_level, ip); - } - if (lock_fclose(fp2, GM_account_filename, &lock) == 0) { - WFIFOL(fd,2) = acc; - ShowNotice("'ladmin': Modification of a GM level (account: %s (%d), new GM level: %d, ip: %s)\n", auth_dat[i].userid, acc, (int)new_gm_level, ip); - // read and send new GM informations - read_gm_account(); - send_GM_accounts(-1); - } else { - ShowNotice("'ladmin': Attempt to modify of a GM level - impossible to write GM accounts file (account: %s (%d), received GM level: %d, ip: %s)\n", auth_dat[i].userid, acc, (int)new_gm_level, ip); - } - } else { - ShowNotice("'ladmin': Attempt to modify of a GM level - impossible to write GM accounts file (account: %s (%d), received GM level: %d, ip: %s)\n", auth_dat[i].userid, acc, (int)new_gm_level, ip); - } - } else { - ShowNotice("'ladmin': Attempt to modify of a GM level, but the GM level is already the good GM level (account: %s (%d), GM level: %d, ip: %s)\n", auth_dat[i].userid, acc, (int)new_gm_level, ip); - } - } else { - ShowNotice("'ladmin': Attempt to modify the GM level of an unknown account (account: %s, received GM level: %d, ip: %s)\n", account_name, (int)new_gm_level, ip); - } + memcpy(WFIFOP(fd,6), acc.userid, 24); + + if (isGM(acc.account_id) == new_gm_level) + ShowNotice("'ladmin': Attempt to modify of a GM level, but the GM level is already the good GM level (account: %s (%d), GM level: %d, ip: %s)\n", acc.userid, acc.account_id, (int)new_gm_level, ip); + else + { + //TODO: change level } } + } WFIFOSET(fd,30); RFIFOSKIP(fd,27); break; @@ -739,133 +723,131 @@ int parse_admin(int fd) case 0x7950: // Request to change the validity limite (timestamp) (relative change) if (RFIFOREST(fd) < 38) return 0; - { - time_t timestamp; - struct tm *tmtime; - char tmpstr[2048]; - char tmpstr2[2048]; - WFIFOW(fd,0) = 0x7951; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - WFIFOL(fd,2) = auth_dat[i].account_id; - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - timestamp = auth_dat[i].expiration_time; - if (timestamp == 0 || timestamp < time(NULL)) - timestamp = time(NULL); - tmtime = localtime(×tamp); - tmtime->tm_year = tmtime->tm_year + (short)RFIFOW(fd,26); - tmtime->tm_mon = tmtime->tm_mon + (short)RFIFOW(fd,28); - tmtime->tm_mday = tmtime->tm_mday + (short)RFIFOW(fd,30); - tmtime->tm_hour = tmtime->tm_hour + (short)RFIFOW(fd,32); - tmtime->tm_min = tmtime->tm_min + (short)RFIFOW(fd,34); - tmtime->tm_sec = tmtime->tm_sec + (short)RFIFOW(fd,36); - timestamp = mktime(tmtime); - if (timestamp != -1) { - strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].expiration_time)); - strftime(tmpstr2, 24, login_config.date_format, localtime(×tamp)); - ShowNotice("'ladmin': Adjustment of a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %d (%s), ip: %s)\n", auth_dat[i].userid, auth_dat[i].expiration_time, (auth_dat[i].expiration_time == 0 ? "unlimited" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), timestamp, (timestamp == 0 ? "unlimited" : tmpstr2), ip); - auth_dat[i].expiration_time = timestamp; - mmo_auth_sync(); - WFIFOL(fd,30) = (unsigned long)auth_dat[i].expiration_time; - } else { - strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].expiration_time)); - ShowNotice("'ladmin': Impossible to adjust a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n", auth_dat[i].userid, auth_dat[i].expiration_time, (auth_dat[i].expiration_time == 0 ? "unlimited" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), ip); - WFIFOL(fd,30) = 0; - } + { + time_t timestamp; + struct tm *tmtime; + char tmpstr[2048]; + char tmpstr2[2048]; + WFIFOW(fd,0) = 0x7951; + WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? + account_name = (char*)RFIFOP(fd,2); + account_name[23] = '\0'; + remove_control_chars(account_name); + i = search_account_index(account_name); + if (i != -1) { + WFIFOL(fd,2) = auth_dat[i].account_id; + memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); + timestamp = auth_dat[i].expiration_time; + if (timestamp == 0 || timestamp < time(NULL)) + timestamp = time(NULL); + tmtime = localtime(×tamp); + tmtime->tm_year = tmtime->tm_year + (short)RFIFOW(fd,26); + tmtime->tm_mon = tmtime->tm_mon + (short)RFIFOW(fd,28); + tmtime->tm_mday = tmtime->tm_mday + (short)RFIFOW(fd,30); + tmtime->tm_hour = tmtime->tm_hour + (short)RFIFOW(fd,32); + tmtime->tm_min = tmtime->tm_min + (short)RFIFOW(fd,34); + tmtime->tm_sec = tmtime->tm_sec + (short)RFIFOW(fd,36); + timestamp = mktime(tmtime); + if (timestamp != -1) { + strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].expiration_time)); + strftime(tmpstr2, 24, login_config.date_format, localtime(×tamp)); + ShowNotice("'ladmin': Adjustment of a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %d (%s), ip: %s)\n", auth_dat[i].userid, auth_dat[i].expiration_time, (auth_dat[i].expiration_time == 0 ? "unlimited" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), timestamp, (timestamp == 0 ? "unlimited" : tmpstr2), ip); + auth_dat[i].expiration_time = timestamp; + mmo_auth_sync(); + WFIFOL(fd,30) = (unsigned long)auth_dat[i].expiration_time; } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to adjust the validity limit of an unknown account (account: %s, ip: %s)\n", account_name, ip); + strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].expiration_time)); + ShowNotice("'ladmin': Impossible to adjust a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n", auth_dat[i].userid, auth_dat[i].expiration_time, (auth_dat[i].expiration_time == 0 ? "unlimited" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), ip); WFIFOL(fd,30) = 0; } + } else { + memcpy(WFIFOP(fd,6), account_name, 24); + ShowNotice("'ladmin': Attempt to adjust the validity limit of an unknown account (account: %s, ip: %s)\n", account_name, ip); + WFIFOL(fd,30) = 0; } + WFIFOSET(fd,34); + } RFIFOSKIP(fd,38); break; - +*/ case 0x7952: // Request about informations of an account (by account name) if (RFIFOREST(fd) < 26) return 0; + { + struct mmo_account acc; + WFIFOW(fd,0) = 0x7953; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? + account_name = (char*)RFIFOP(fd,2); account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - WFIFOL(fd,2) = auth_dat[i].account_id; - WFIFOB(fd,6) = (unsigned char)isGM(auth_dat[i].account_id); - memcpy(WFIFOP(fd,7), auth_dat[i].userid, 24); - WFIFOB(fd,31) = auth_dat[i].sex; - WFIFOL(fd,32) = auth_dat[i].logincount; - WFIFOL(fd,36) = auth_dat[i].state; - memcpy(WFIFOP(fd,40), auth_dat[i].error_message, 20); - memcpy(WFIFOP(fd,60), auth_dat[i].lastlogin, 24); - memcpy(WFIFOP(fd,84), auth_dat[i].last_ip, 16); - memcpy(WFIFOP(fd,100), auth_dat[i].email, 40); - WFIFOL(fd,140) = (unsigned long)auth_dat[i].expiration_time; - WFIFOL(fd,144) = (unsigned long)auth_dat[i].unban_time; - WFIFOW(fd,148) = (uint16)strlen(auth_dat[i].memo); - if (auth_dat[i].memo[0]) { - memcpy(WFIFOP(fd,150), auth_dat[i].memo, strlen(auth_dat[i].memo)); - } - ShowNotice("'ladmin': Sending information of an account (request by the name; account: %s, id: %d, ip: %s)\n", auth_dat[i].userid, auth_dat[i].account_id, ip); - WFIFOSET(fd,150+strlen(auth_dat[i].memo)); - } else { - memcpy(WFIFOP(fd,7), account_name, 24); - WFIFOW(fd,148) = 0; + + if( accounts->load_str(accounts, &acc, account_name) ) + { + ShowNotice("'ladmin': Sending information of an account (request by the name; account: %s, id: %d, ip: %s)\n", acc.userid, acc.account_id, ip); + WFIFOL(fd,2) = acc.account_id; + WFIFOB(fd,6) = acc.level; + safestrncpy((char*)WFIFOP(fd,7), acc.userid, 24); + WFIFOB(fd,31) = acc.sex; + WFIFOL(fd,32) = acc.logincount; + WFIFOL(fd,36) = acc.state; + safestrncpy((char*)WFIFOP(fd,40), "-", 20); // error message (removed) + safestrncpy((char*)WFIFOP(fd,60), acc.lastlogin, 24); + safestrncpy((char*)WFIFOP(fd,84), acc.last_ip, 16); + safestrncpy((char*)WFIFOP(fd,100), acc.email, 40); + WFIFOL(fd,140) = (unsigned long)acc.expiration_time; + WFIFOL(fd,144) = (unsigned long)acc.unban_time; + WFIFOW(fd,148) = 0; // previously, this was strlen(memo), and memo went afterwards + } + else + { ShowNotice("'ladmin': Attempt to obtain information (by the name) of an unknown account (account: %s, ip: %s)\n", account_name, ip); - WFIFOSET(fd,150); + WFIFOL(fd,2) = -1; + safestrncpy((char*)WFIFOP(fd,7), account_name, 24); // not found } + + WFIFOSET(fd,150); + } RFIFOSKIP(fd,26); break; case 0x7954: // Request about information of an account (by account id) if (RFIFOREST(fd) < 6) return 0; + { + struct mmo_account acc; + + int account_id = RFIFOL(fd,2); + + WFIFOHEAD(fd,150); WFIFOW(fd,0) = 0x7953; - WFIFOL(fd,2) = RFIFOL(fd,2); - memset(WFIFOP(fd,7), '\0', 24); - for(i = 0; i < auth_num; i++) { - if (auth_dat[i].account_id == (int)RFIFOL(fd,2)) { - ShowNotice("'ladmin': Sending information of an account (request by the id; account: %s, id: %d, ip: %s)\n", auth_dat[i].userid, RFIFOL(fd,2), ip); - WFIFOB(fd,6) = (unsigned char)isGM(auth_dat[i].account_id); - memcpy(WFIFOP(fd,7), auth_dat[i].userid, 24); - WFIFOB(fd,31) = auth_dat[i].sex; - WFIFOL(fd,32) = auth_dat[i].logincount; - WFIFOL(fd,36) = auth_dat[i].state; - memcpy(WFIFOP(fd,40), auth_dat[i].error_message, 20); - memcpy(WFIFOP(fd,60), auth_dat[i].lastlogin, 24); - memcpy(WFIFOP(fd,84), auth_dat[i].last_ip, 16); - memcpy(WFIFOP(fd,100), auth_dat[i].email, 40); - WFIFOL(fd,140) = (unsigned long)auth_dat[i].expiration_time; - WFIFOL(fd,144) = (unsigned long)auth_dat[i].unban_time; - WFIFOW(fd,148) = (uint16)strlen(auth_dat[i].memo); - if (auth_dat[i].memo[0]) { - memcpy(WFIFOP(fd,150), auth_dat[i].memo, strlen(auth_dat[i].memo)); - } - WFIFOSET(fd,150+strlen(auth_dat[i].memo)); - break; - } + WFIFOL(fd,2) = account_id; + + if( accounts->load_num(accounts, &acc, account_id) ) + { + ShowNotice("'ladmin': Sending information of an account (request by the id; account: %s, id: %d, ip: %s)\n", acc.userid, account_id, ip); + WFIFOB(fd,6) = acc.level; + safestrncpy((char*)WFIFOP(fd,7), acc.userid, 24); + WFIFOB(fd,31) = acc.sex; + WFIFOL(fd,32) = acc.logincount; + WFIFOL(fd,36) = acc.state; + safestrncpy((char*)WFIFOP(fd,40), "-", 20); // error message (removed) + safestrncpy((char*)WFIFOP(fd,60), acc.lastlogin, 24); + safestrncpy((char*)WFIFOP(fd,84), acc.last_ip, 16); + safestrncpy((char*)WFIFOP(fd,100), acc.email, 40); + WFIFOL(fd,140) = (unsigned long)acc.expiration_time; + WFIFOL(fd,144) = (unsigned long)acc.unban_time; + WFIFOW(fd,148) = 0; // previously, this was strlen(memo), and memo went afterwards } - if (i == auth_num) { - ShowNotice("'ladmin': Attempt to obtain information (by the id) of an unknown account (id: %d, ip: %s)\n", RFIFOL(fd,2), ip); - strncpy((char*)WFIFOP(fd,7), "", 24); - WFIFOW(fd,148) = 0; - WFIFOSET(fd,150); + else + { + ShowNotice("'ladmin': Attempt to obtain information (by the id) of an unknown account (id: %d, ip: %s)\n", account_id, ip); + safestrncpy((char*)WFIFOP(fd,7), "", 24); // not found } - RFIFOSKIP(fd,6); - break; - case 0x7955: // Request to reload GM file (no answer) - ShowStatus("'ladmin': Request to re-load GM configuration file (ip: %s).\n", ip); - read_gm_account(); - // send GM accounts to all char-servers - send_GM_accounts(-1); - RFIFOSKIP(fd,2); + WFIFOSET(fd,150); + } + RFIFOSKIP(fd,6); break; default: diff --git a/src/login/ipban.h b/src/login/ipban.h new file mode 100644 index 000000000..b2a1a7d9e --- /dev/null +++ b/src/login/ipban.h @@ -0,0 +1,25 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#ifndef __IPBAN_H_INCLUDED__ +#define __IPBAN_H_INCLUDED__ + +#include "../common/cbasetypes.h" + +// initialize +void ipban_init(void); + +// finalize +void ipban_final(void); + +// check ip against ban list +bool ipban_check(uint32 ip); + +// increases failure count for the specified IP +void ipban_log(uint32 ip); + +// parses configuration option +bool ipban_config_read(const char* key, const char* value); + + +#endif // __IPBAN_H_INCLUDED__ diff --git a/src/login/ipban_sql.c b/src/login/ipban_sql.c new file mode 100644 index 000000000..911ae23db --- /dev/null +++ b/src/login/ipban_sql.c @@ -0,0 +1,209 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#include "../common/cbasetypes.h" +#include "../common/db.h" +#include "../common/malloc.h" +#include "../common/sql.h" +#include "../common/socket.h" +#include "../common/strlib.h" +#include "../common/timer.h" +#include "login.h" +#include "ipban.h" +#include +#include + +// database options +static char ipban_db_hostname[32] = "127.0.0.1"; +static uint16 ipban_db_port = 3306; +static char ipban_db_username[32] = "ragnarok"; +static char ipban_db_password[32] = "ragnarok"; +static char ipban_db_database[32] = "ragnarok"; +static char ipban_table[32] = "ipbanlist"; + +static char log_db_hostname[32] = "127.0.0.1"; +static uint16 log_db_port = 3306; +static char log_db_username[32] = "ragnarok"; +static char log_db_password[32] = "ragnarok"; +static char log_db_database[32] = "ragnarok"; +static char loginlog_table[32] = "loginlog"; + +static char default_codepage[32] = ""; + +// globals +static Sql* sql_handle; +static Sql* logsql_handle; +static int cleanup_timer_id = INVALID_TIMER; + +int ipban_cleanup(int tid, unsigned int tick, int id, intptr data); + + +// initialize +void ipban_init(void) +{ + // establish connections + sql_handle = Sql_Malloc(); + if( SQL_ERROR == Sql_Connect(sql_handle, ipban_db_username, ipban_db_password, ipban_db_hostname, ipban_db_port, ipban_db_database) ) + { + Sql_ShowDebug(sql_handle); + Sql_Free(sql_handle); + exit(EXIT_FAILURE); + } + if( default_codepage[0] != '\0' && SQL_ERROR == Sql_SetEncoding(sql_handle, default_codepage) ) + Sql_ShowDebug(sql_handle); + + logsql_handle = Sql_Malloc(); + if( SQL_ERROR == Sql_Connect(logsql_handle, log_db_username, log_db_password, log_db_hostname, log_db_port, log_db_database) ) + { + Sql_ShowDebug(logsql_handle); + Sql_Free(logsql_handle); + exit(EXIT_FAILURE); + } + if( default_codepage[0] != '\0' && SQL_ERROR == Sql_SetEncoding(logsql_handle, default_codepage) ) + Sql_ShowDebug(logsql_handle); + + // set up periodic cleanup of connection history and active bans + add_timer_func_list(ipban_cleanup, "ipban_cleanup"); + cleanup_timer_id = add_timer_interval(gettick()+10, ipban_cleanup, 0, 0, 60*1000); +} + +// finalize +void ipban_final(void) +{ + // release data + delete_timer(cleanup_timer_id, ipban_cleanup); + + // close connections + Sql_Free(sql_handle); + sql_handle = NULL; + Sql_Free(logsql_handle); + logsql_handle = NULL; +} + +// load configuration options +bool ipban_config_read(const char* key, const char* value) +{ + // login server settings + if( strcmpi(key, "ipban.enable") == 0 ) + login_config.ipban = (bool)config_switch(value); + else + if( strcmpi(key, "ipban.dynamic_pass_failure_ban") == 0 ) + login_config.dynamic_pass_failure_ban = (bool)config_switch(value); + else + if( strcmpi(key, "ipban.dynamic_pass_failure_ban_interval") == 0 ) + login_config.dynamic_pass_failure_ban_interval = atoi(value); + else + if( strcmpi(key, "ipban.dynamic_pass_failure_ban_limit") == 0 ) + login_config.dynamic_pass_failure_ban_limit = atoi(value); + else + if( strcmpi(key, "ipban.dynamic_pass_failure_ban_duration") == 0 ) + login_config.dynamic_pass_failure_ban_duration = atoi(value); + else + + // ipban table settings + if( strcmpi(key, "ipban.sql.db_hostname") == 0 ) + safestrncpy(ipban_db_hostname, value, sizeof(ipban_db_hostname)); + else + if( strcmpi(key, "ipban.sql.db_port") == 0 ) + ipban_db_port = (uint16)strtoul(value, NULL, 10); + else + if( strcmpi(key, "ipban.sql.db_username") == 0 ) + safestrncpy(ipban_db_username, value, sizeof(ipban_db_username)); + else + if( strcmpi(key, "ipban.sql.db_password") == 0 ) + safestrncpy(ipban_db_password, value, sizeof(ipban_db_password)); + else + if( strcmpi(key, "ipban.sql.db_database") == 0 ) + safestrncpy(ipban_db_database, value, sizeof(ipban_db_database)); + else + if( strcmpi(key, "ipban.sql.ipban_table") == 0 ) + safestrncpy(ipban_table, value, sizeof(ipban_table)); + else + + // interserver settings + if( strcmpi(key, "log_db_ip") == 0 ) + safestrncpy(log_db_hostname, value, sizeof(log_db_hostname)); + else + if( strcmpi(key, "log_db_port") == 0 ) + log_db_port = (uint16)strtoul(value, NULL, 10); + else + if( strcmpi(key, "log_db_id") == 0 ) + safestrncpy(log_db_username, value, sizeof(log_db_username)); + else + if( strcmpi(key, "log_db_pw") == 0 ) + safestrncpy(log_db_password, value, sizeof(log_db_password)); + else + if( strcmpi(key, "log_db") == 0 ) + safestrncpy(log_db_database, value, sizeof(log_db_database)); + else + if( strcmpi(key, "loginlog_db") == 0 ) + safestrncpy(loginlog_table, value, sizeof(loginlog_table)); + else + if( strcmpi(key, "default_codepage") == 0 ) + safestrncpy(default_codepage, value, sizeof(default_codepage)); + else + return false; + + return true; +} + +// check ip against active bans list +bool ipban_check(uint32 ip) +{ + uint8* p = (uint8*)&ip; + char* data = NULL; + int matches; + + if( SQL_ERROR == Sql_Query(sql_handle, "SELECT count(*) FROM `%s` WHERE `list` = '%u.*.*.*' OR `list` = '%u.%u.*.*' OR `list` = '%u.%u.%u.*' OR `list` = '%u.%u.%u.%u'", + ipban_table, p[3], p[3], p[2], p[3], p[2], p[1], p[3], p[2], p[1], p[0]) ) + { + Sql_ShowDebug(sql_handle); + // close connection because we can't verify their connectivity. + return true; + } + + if( SQL_ERROR == Sql_NextRow(sql_handle) ) + return true;// Shouldn't happen, but just in case... + + Sql_GetData(sql_handle, 0, &data, NULL); + matches = atoi(data); + Sql_FreeResult(sql_handle); + + return( matches > 0 ); +} + +// log failed attempt +void ipban_log(uint32 ip) +{ + unsigned long failures = 0; + if( SQL_ERROR == Sql_Query(logsql_handle, "SELECT count(*) FROM `%s` WHERE `ip` = '%s' AND `rcode` = '1' AND `time` > NOW() - INTERVAL %d MINUTE", + loginlog_table, ip2str(ip,NULL), login_config.dynamic_pass_failure_ban_interval) )// how many times failed account? in one ip. + Sql_ShowDebug(sql_handle); + + //check query result + if( SQL_SUCCESS == Sql_NextRow(logsql_handle) ) + { + char* data; + Sql_GetData(logsql_handle, 0, &data, NULL); + failures = strtoul(data, NULL, 10); + Sql_FreeResult(logsql_handle); + } + + // if over the limit, add a temporary ban entry + if( failures >= login_config.dynamic_pass_failure_ban_limit ) + { + uint8* p = (uint8*)&ip; + if( SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `%s`(`list`,`btime`,`rtime`,`reason`) VALUES ('%u.%u.%u.*', NOW() , NOW() + INTERVAL %d MINUTE ,'Password error ban')", + ipban_table, p[3], p[2], p[1], login_config.dynamic_pass_failure_ban_duration) ) + Sql_ShowDebug(sql_handle); + } +} + +// remove expired bans +int ipban_cleanup(int tid, unsigned int tick, int id, intptr data) +{ + if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `ipbanlist` WHERE `rtime` <= NOW()") ) + Sql_ShowDebug(sql_handle); + + return 0; +} diff --git a/src/login/ipban_txt.c b/src/login/ipban_txt.c new file mode 100644 index 000000000..6fee15c28 --- /dev/null +++ b/src/login/ipban_txt.c @@ -0,0 +1,50 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#include "../common/cbasetypes.h" +#include "../common/strlib.h" +#include "login.h" +#include "ipban.h" +#include +#include + +void ipban_init(void) +{ +} + +void ipban_final(void) +{ +} + +bool ipban_check(uint32 ip) +{ + return false; +} + +void ipban_log(uint32 ip) +{ +} + +bool ipban_config_read(const char* key, const char* value) +{ + // login server settings + if( strcmpi(key, "ipban.enable") == 0 ) + login_config.ipban = (bool)config_switch(value); + else + if( strcmpi(key, "ipban.dynamic_pass_failure_ban") == 0 ) + login_config.dynamic_pass_failure_ban = (bool)config_switch(value); + else + if( strcmpi(key, "ipban.dynamic_pass_failure_ban_interval") == 0 ) + login_config.dynamic_pass_failure_ban_interval = atoi(value); + else + if( strcmpi(key, "ipban.dynamic_pass_failure_ban_limit") == 0 ) + login_config.dynamic_pass_failure_ban_limit = atoi(value); + else + if( strcmpi(key, "ipban.dynamic_pass_failure_ban_duration") == 0 ) + login_config.dynamic_pass_failure_ban_duration = atoi(value); + else + return false; + + return true; +} + diff --git a/src/login/login.c b/src/login/login.c index b26256570..2db051807 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -1,25 +1,25 @@ // Copyright (c) Athena Dev Teams - Licensed under GNU GPL // For more information, see LICENCE in the main folder -#include "../common/cbasetypes.h" -#include "../common/mmo.h" #include "../common/core.h" -#include "../common/socket.h" #include "../common/db.h" -#include "../common/timer.h" #include "../common/malloc.h" -#include "../common/strlib.h" +#include "../common/md5calc.h" #include "../common/showmsg.h" +#include "../common/socket.h" +#include "../common/strlib.h" +#include "../common/timer.h" #include "../common/version.h" -#include "../common/md5calc.h" -#include "../common/lock.h" +#include "account.h" +#include "ipban.h" #include "login.h" +#include "loginlog.h" #include #include #include -#include // for stat/lstat/fstat +bool ladmin_auth(struct login_session_data* sd, const char* ip); struct Login_Config login_config; int login_fd; // login server socket @@ -29,6 +29,42 @@ struct mmo_char_server server[MAX_SERVERS]; // char server data #define sex_num2str(num) ( (num == 0 ) ? 'F' : (num == 1 ) ? 'M' : 'S' ) #define sex_str2num(str) ( (str == 'F' ) ? 0 : (str == 'M' ) ? 1 : 2 ) +// Account engines available +static struct{ + AccountDB* (*constructor)(void); + AccountDB* db; +} account_engines[] = { +#ifdef WITH_TXT + {account_db_txt, NULL}, +#endif +#ifdef WITH_SQL + {account_db_sql, NULL}, +#endif +#ifdef ACCOUNTDB_ENGINE_0 + {ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_0), NULL}, +#endif +#ifdef ACCOUNTDB_ENGINE_1 + {ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_1), NULL}, +#endif +#ifdef ACCOUNTDB_ENGINE_2 + {ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_2), NULL}, +#endif +#ifdef ACCOUNTDB_ENGINE_3 + {ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_3), NULL}, +#endif +#ifdef ACCOUNTDB_ENGINE_4 + {ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_4), NULL}, +#endif + // end of structure + {NULL, NULL} +}; +// account database +AccountDB* accounts = NULL; + +//Account registration flood protection [Kevin] +int allowed_regs = 1; +int time_allowed = 10; //in seconds + // Advanced subnet check [LuzZza] struct s_subnet { uint32 mask; @@ -38,45 +74,6 @@ struct s_subnet { int subnet_count = 0; -// GM account management -struct gm_account* gm_account_db = NULL; -unsigned int GM_num = 0; // number of gm accounts -char GM_account_filename[1024] = "conf/GM_account.txt"; -long creation_time_GM_account_file; // tracks the last-changed timestamp of the gm accounts file -int gm_account_filename_check_timer = 15; // Timer to check if GM_account file has been changed and reload GM account automaticaly (in seconds; default: 15) - -//Account registration flood protection [Kevin] -int allowed_regs = 1; -int time_allowed = 10; //in seconds -unsigned int new_reg_tick = 0; - - -// data handling (TXT) -char account_filename[1024] = "save/account.txt"; - -// account database -struct mmo_account* auth_dat = NULL; -unsigned int auth_num = 0, auth_max = 0; - -int account_id_count = START_ACCOUNT_NUM; - -// define the number of times that some players must authentify them before to save account file. -// it's just about normal authentication. If an account is created or modified, save is immediatly done. -// An authentication just change last connected IP and date. It already save in log file. -// set minimum auth change before save: -#define AUTH_BEFORE_SAVE_FILE 10 -// set divider of auth_num to found number of change before save -#define AUTH_SAVE_FILE_DIVIDER 50 -int auth_before_save_file = 0; // Counter. First save when 1st char-server do connection. - - -// ladmin configuration -bool admin_state = false; -char admin_pass[24] = ""; -uint32 admin_allowed_ip = 0; - -int parse_admin(int fd); - //----------------------------------------------------- // Auth database @@ -84,6 +81,7 @@ int parse_admin(int fd); #define AUTH_TIMEOUT 30000 struct auth_node { + int account_id; uint32 login_id1; uint32 login_id2; @@ -93,11 +91,12 @@ struct auth_node { static DBMap* auth_db; // int account_id -> struct auth_node* + //----------------------------------------------------- // Online User Database [Wizputer] //----------------------------------------------------- - struct online_login_data { + int account_id; int waiting_disconnect; int char_server; @@ -157,582 +156,61 @@ static int waiting_disconnect_timer(int tid, unsigned int tick, int id, intptr d return 0; } -//-------------------------------------------------------------------- -// Packet send to all char-servers, except one (wos: without our self) -//-------------------------------------------------------------------- -int charif_sendallwos(int sfd, uint8* buf, size_t len) +static int online_db_setoffline(DBKey key, void* data, va_list ap) { - int i, c; - - for( i = 0, c = 0; i < MAX_SERVERS; ++i ) + struct online_login_data* p = (struct online_login_data*)data; + int server = va_arg(ap, int); + if( server == -1 ) { - int fd = server[i].fd; - if( session_isValid(fd) && fd != sfd ) + p->char_server = -1; + if( p->waiting_disconnect != -1 ) { - WFIFOHEAD(fd,len); - memcpy(WFIFOP(fd,0), buf, len); - WFIFOSET(fd,len); - ++c; - } - } - - return c; -} - -//---------------------------------------------------------------------- -// Determine if an account (id) is a GM account -// and returns its level (or 0 if it isn't a GM account or if not found) -//---------------------------------------------------------------------- -int isGM(int account_id) -{ - unsigned int i; - ARR_FIND( 0, GM_num, i, gm_account_db[i].account_id == account_id ); - return ( i < GM_num ) ? gm_account_db[i].level : 0; -} - -//---------------------------------------------------------------------- -// Adds a new GM using acc id and level -//---------------------------------------------------------------------- -void addGM(int account_id, int level) -{ - static unsigned int GM_max = 0; - unsigned int i; - - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == account_id ); - if( i == auth_num ) - return; // no such account - - ARR_FIND( 0, GM_num, i, gm_account_db[i].account_id == account_id ); - if( i < GM_num ) - { - if (gm_account_db[i].level == level) - ShowWarning("addGM: GM account %d defined twice (same level: %d).\n", account_id, level); - else { - ShowWarning("addGM: GM account %d defined twice (levels: %d and %d).\n", account_id, gm_account_db[i].level, level); - gm_account_db[i].level = level; - } - return; // entry already present - } - - // new account - if (GM_num >= GM_max) { - GM_max += 256; - RECREATE(gm_account_db, struct gm_account, GM_max); - } - gm_account_db[GM_num].account_id = account_id; - gm_account_db[GM_num].level = level; - GM_num++; - if (GM_num >= 4000) - ShowWarning("4000 GM accounts found. Next GM accounts are not read.\n"); -} - -//------------------------------------------------------- -// Reading function of GM accounts file (and their level) -//------------------------------------------------------- -int read_gm_account(void) -{ - char line[512]; - FILE *fp; - int account_id, level; - int line_counter; - struct stat file_stat; - int start_range = 0, end_range = 0, is_range = 0, current_id = 0; - - if(gm_account_db) aFree(gm_account_db); - CREATE(gm_account_db, struct gm_account, 1); - GM_num = 0; - - // get last modify time/date - if (stat(GM_account_filename, &file_stat)) - creation_time_GM_account_file = 0; // error - else - creation_time_GM_account_file = (long)file_stat.st_mtime; - - if ((fp = fopen(GM_account_filename, "r")) == NULL) { - ShowError("read_gm_account: GM accounts file [%s] not found.\n", GM_account_filename); - return 1; - } - - line_counter = 0; - // limited to 4000, because we send information to char-servers (more than 4000 GM accounts???) - // int (id) + int (level) = 8 bytes * 4000 = 32k (limit of packets in windows) - while(fgets(line, sizeof(line), fp) && GM_num < 4000) - { - line_counter++; - if ((line[0] == '/' && line[1] == '/') || line[0] == '\0' || line[0] == '\n' || line[0] == '\r') - continue; - is_range = (sscanf(line, "%d%*[-~]%d %d",&start_range,&end_range,&level)==3); // ID Range [MC Cameri] - if (!is_range && sscanf(line, "%d %d", &account_id, &level) != 2 && sscanf(line, "%d: %d", &account_id, &level) != 2) - ShowError("read_gm_account: file [%s], invalid 'acount_id|range level' format (line #%d).\n", GM_account_filename, line_counter); - else if (level <= 0) - ShowError("read_gm_account: file [%s] %dth account (line #%d) (invalid level [0 or negative]: %d).\n", GM_account_filename, GM_num+1, line_counter, level); - else { - if (level > 99) { - ShowNotice("read_gm_account: file [%s] %dth account (invalid level, but corrected: %d->99).\n", GM_account_filename, GM_num+1, level); - level = 99; - } - if (is_range) { - if (start_range==end_range) - ShowError("read_gm_account: file [%s] invalid range, beginning of range is equal to end of range (line #%d).\n", GM_account_filename, line_counter); - else if (start_range>end_range) - ShowError("read_gm_account: file [%s] invalid range, beginning of range must be lower than end of range (line #%d).\n", GM_account_filename, line_counter); - else - for (current_id = start_range;current_id<=end_range;current_id++) - addGM(current_id,level); - } else { - addGM(account_id,level); - } + delete_timer(p->waiting_disconnect, waiting_disconnect_timer); + p->waiting_disconnect = -1; } } - fclose(fp); - - ShowStatus("read_gm_account: file '%s' read (%d GM accounts found).\n", GM_account_filename, GM_num); - + else if( p->char_server == server ) + p->char_server = -2; //Char server disconnected. return 0; } - -//----------------------------------------------- -// Search an account id -// (return account index or -1 (if not found)) -// If exact account name is not found, -// the function checks without case sensitive -// and returns index if only 1 account is found -// and similar to the searched name. -//----------------------------------------------- -int search_account_index(char* account_name) +static int online_data_cleanup_sub(DBKey key, void *data, va_list ap) { - unsigned int i, quantity; - int index; - - quantity = 0; - index = -1; - - for(i = 0; i < auth_num; i++) { - // Without case sensitive check (increase the number of similar account names found) - if (stricmp(auth_dat[i].userid, account_name) == 0) { - // Strict comparison (if found, we finish the function immediatly with correct value) - if (strcmp(auth_dat[i].userid, account_name) == 0) - return i; - quantity++; - index = i; - } - } - // Here, the exact account name is not found - // We return the found index of a similar account ONLY if there is 1 similar account - if (quantity == 1) - return index; - - // Exact account name is not found and 0 or more than 1 similar accounts have been found ==> we say not found - return -1; + struct online_login_data *character= (struct online_login_data*)data; + if (character->char_server == -2) //Unknown server.. set them offline + remove_online_user(character->account_id); + return 0; } -//-------------------------------------------------------- -// Create a string to save the account in the account file -//-------------------------------------------------------- -int mmo_auth_tostr(char* str, struct mmo_account* p) +static int online_data_cleanup(int tid, unsigned int tick, int id, intptr data) { - int i; - char *str_p = str; - - str_p += sprintf(str_p, "%d\t%s\t%s\t%s\t%c\t%d\t%u\t%s\t%s\t%ld\t%s\t%s\t%ld\t", - p->account_id, p->userid, p->pass, p->lastlogin, p->sex, - p->logincount, p->state, p->email, p->error_message, - (long)p->expiration_time, p->last_ip, p->memo, (long)p->unban_time); - - for(i = 0; i < p->account_reg2_num; i++) - if (p->account_reg2[i].str[0]) - str_p += sprintf(str_p, "%s,%s ", p->account_reg2[i].str, p->account_reg2[i].value); - + online_db->foreach(online_db, online_data_cleanup_sub); return 0; -} +} + -//--------------------------------- -// Reading of the accounts database -//--------------------------------- -int mmo_auth_init(void) +//-------------------------------------------------------------------- +// Packet send to all char-servers, except one (wos: without our self) +//-------------------------------------------------------------------- +int charif_sendallwos(int sfd, uint8* buf, size_t len) { - FILE *fp; - int account_id; - uint32 state; - int logincount, n; - uint32 i, j; - char line[2048], *p, userid[2048], pass[2048], lastlogin[2048], sex, email[2048], error_message[2048], last_ip[2048], memo[2048]; - long unban_time; - long expiration_time; - char str[2048]; - char v[2048]; - int GM_count = 0; - int server_count = 0; - - auth_max = 256; - CREATE(auth_dat, struct mmo_account, auth_max); - - if ((fp = fopen(account_filename, "r")) == NULL) { - // no account file -> no account -> no login, including char-server (ERROR) - ShowError(CL_RED"mmmo_auth_init: Accounts file [%s] not found."CL_RESET"\n", account_filename); - return 0; - } + int i, c; - while(fgets(line, sizeof(line), fp) != NULL) + for( i = 0, c = 0; i < MAX_SERVERS; ++i ) { - if (line[0] == '/' && line[1] == '/') - continue; - - p = line; - - memset(userid, 0, sizeof(userid)); - memset(pass, 0, sizeof(pass)); - memset(lastlogin, 0, sizeof(lastlogin)); - memset(email, 0, sizeof(email)); - memset(error_message, 0, sizeof(error_message)); - memset(last_ip, 0, sizeof(last_ip)); - memset(memo, 0, sizeof(memo)); - - // database version reading (v2) - if (((i = sscanf(line, "%d\t%[^\t]\t%[^\t]\t%[^\t]\t%c\t%d\t%u\t" - "%[^\t]\t%[^\t]\t%ld\t%[^\t]\t%[^\t]\t%ld%n", - &account_id, userid, pass, lastlogin, &sex, &logincount, &state, - email, error_message, &expiration_time, last_ip, memo, &unban_time, &n)) == 13 && line[n] == '\t') || - ((i = sscanf(line, "%d\t%[^\t]\t%[^\t]\t%[^\t]\t%c\t%d\t%u\t" - "%[^\t]\t%[^\t]\t%ld\t%[^\t]\t%[^\t]%n", - &account_id, userid, pass, lastlogin, &sex, &logincount, &state, - email, error_message, &expiration_time, last_ip, memo, &n)) == 12 && line[n] == '\t')) { - n = n + 1; - - // Some checks - if (account_id > END_ACCOUNT_NUM) { - ShowError(CL_RED"mmmo_auth_init: an account has an id higher than %d\n", END_ACCOUNT_NUM); - ShowError(" account id #%d -> account not read (data is lost!)."CL_RESET"\n", account_id); - continue; - } - userid[23] = '\0'; - remove_control_chars(userid); - for(j = 0; j < auth_num; j++) { - if (auth_dat[j].account_id == account_id) { - ShowError(CL_RED"mmmo_auth_init: an account has an identical id to another.\n"); - ShowError(" account id #%d -> new account not read (data is lost!)."CL_RED"\n", account_id); - break; - } else if (strcmp(auth_dat[j].userid, userid) == 0) { - ShowError(CL_RED"mmmo_auth_init: account name already exists.\n"); - ShowError(" account name '%s' -> new account not read (data is lost!)."CL_RESET"\n", userid); // 2 lines, account name can be long. - break; - } - } - if (j != auth_num) - continue; - - if (auth_num >= auth_max) { - auth_max += 256; - auth_dat = (struct mmo_account*)aRealloc(auth_dat, sizeof(struct mmo_account) * auth_max); - } - - memset(&auth_dat[auth_num], '\0', sizeof(struct mmo_account)); - - auth_dat[auth_num].account_id = account_id; - - strncpy(auth_dat[auth_num].userid, userid, 24); - - pass[32] = '\0'; - remove_control_chars(pass); - strncpy(auth_dat[auth_num].pass, pass, 32); - - lastlogin[23] = '\0'; - remove_control_chars(lastlogin); - strncpy(auth_dat[auth_num].lastlogin, lastlogin, 24); - - auth_dat[auth_num].sex = sex; - - if (logincount >= 0) - auth_dat[auth_num].logincount = logincount; - else - auth_dat[auth_num].logincount = 0; - - if (state > 255) - auth_dat[auth_num].state = 100; - else - auth_dat[auth_num].state = state; - - if (e_mail_check(email) == 0) { - ShowNotice("Account %s (%d): invalid e-mail (replaced par a@a.com).\n", auth_dat[auth_num].userid, auth_dat[auth_num].account_id); - strncpy(auth_dat[auth_num].email, "a@a.com", 40); - } else { - remove_control_chars(email); - strncpy(auth_dat[auth_num].email, email, 40); - } - - error_message[19] = '\0'; - remove_control_chars(error_message); - if (error_message[0] == '\0' || state != 7) { // 7, because state is packet 0x006a value + 1 - strncpy(auth_dat[auth_num].error_message, "-", 20); - } else { - strncpy(auth_dat[auth_num].error_message, error_message, 20); - } - - if (i == 13) - auth_dat[auth_num].unban_time = (time_t)unban_time; - else - auth_dat[auth_num].unban_time = 0; - - auth_dat[auth_num].expiration_time = (time_t)expiration_time; - - last_ip[15] = '\0'; - remove_control_chars(last_ip); - strncpy(auth_dat[auth_num].last_ip, last_ip, 16); - - memo[254] = '\0'; - remove_control_chars(memo); - strncpy(auth_dat[auth_num].memo, memo, 255); - - for(j = 0; j < ACCOUNT_REG2_NUM; j++) { - p += n; - if (sscanf(p, "%[^\t,],%[^\t ] %n", str, v, &n) != 2) { - // We must check if a str is void. If it's, we can continue to read other REG2. - // Account line will have something like: str2,9 ,9 str3,1 (here, ,9 is not good) - if (p[0] == ',' && sscanf(p, ",%[^\t ] %n", v, &n) == 1) { - j--; - continue; - } else - break; - } - str[31] = '\0'; - remove_control_chars(str); - strncpy(auth_dat[auth_num].account_reg2[j].str, str, 32); - strncpy(auth_dat[auth_num].account_reg2[j].value,v,256); - } - auth_dat[auth_num].account_reg2_num = j; - - if (isGM(account_id) > 0) - GM_count++; - if (auth_dat[auth_num].sex == 'S') - server_count++; - - auth_num++; - if (account_id >= account_id_count) - account_id_count = account_id + 1; - - // Old athena database version reading (v1) - } else if ((i = sscanf(line, "%d\t%[^\t]\t%[^\t]\t%[^\t]\t%c\t%d\t%u\t%n", - &account_id, userid, pass, lastlogin, &sex, &logincount, &state, &n)) >= 5) { - if (account_id > END_ACCOUNT_NUM) { - ShowError(CL_RED"mmmo_auth_init: an account has an id higher than %d\n", END_ACCOUNT_NUM); - ShowError(" account id #%d -> account not read (data is lost!)."CL_RESET"\n", account_id); - continue; - } - userid[23] = '\0'; - remove_control_chars(userid); - for(j = 0; j < auth_num; j++) { - if (auth_dat[j].account_id == account_id) { - ShowError(CL_RED"mmo_auth_init: an account has an identical id to another.\n"); - ShowError(" account id #%d -> new account not read (data is lost!)."CL_RESET"\n", account_id); - break; - } else if (strcmp(auth_dat[j].userid, userid) == 0) { - ShowError(CL_RED"mmo_auth_init: account name already exists.\n"); - ShowError(" account name '%s' -> new account not read (data is lost!)."CL_RESET"\n", userid); - break; - } - } - if (j != auth_num) - continue; - - if (auth_num >= auth_max) { - auth_max += 256; - RECREATE(auth_dat, struct mmo_account, auth_max); - } - - memset(&auth_dat[auth_num], '\0', sizeof(struct mmo_account)); - - auth_dat[auth_num].account_id = account_id; - - strncpy(auth_dat[auth_num].userid, userid, 24); - - pass[23] = '\0'; - remove_control_chars(pass); - strncpy(auth_dat[auth_num].pass, pass, 24); - - lastlogin[23] = '\0'; - remove_control_chars(lastlogin); - strncpy(auth_dat[auth_num].lastlogin, lastlogin, 24); - - auth_dat[auth_num].sex = sex; - - if (i >= 6) { - if (logincount >= 0) - auth_dat[auth_num].logincount = logincount; - else - auth_dat[auth_num].logincount = 0; - } else - auth_dat[auth_num].logincount = 0; - - if (i >= 7) { - if (state > 255) - auth_dat[auth_num].state = 100; - else - auth_dat[auth_num].state = state; - } else - auth_dat[auth_num].state = 0; - - // Initialization of new data - strncpy(auth_dat[auth_num].email, "a@a.com", 40); - strncpy(auth_dat[auth_num].error_message, "-", 20); - auth_dat[auth_num].unban_time = 0; - auth_dat[auth_num].expiration_time = 0; - strncpy(auth_dat[auth_num].last_ip, "-", 16); - strncpy(auth_dat[auth_num].memo, "-", 255); - - for(j = 0; j < ACCOUNT_REG2_NUM; j++) { - p += n; - if (sscanf(p, "%[^\t,],%[^\t ] %n", str, v, &n) != 2) { - // We must check if a str is void. If it's, we can continue to read other REG2. - // Account line will have something like: str2,9 ,9 str3,1 (here, ,9 is not good) - if (p[0] == ',' && sscanf(p, ",%[^\t ] %n", v, &n) == 1) { - j--; - continue; - } else - break; - } - str[31] = '\0'; - remove_control_chars(str); - strncpy(auth_dat[auth_num].account_reg2[j].str, str, 32); - strncpy(auth_dat[auth_num].account_reg2[j].value,v,256); - } - auth_dat[auth_num].account_reg2_num = j; - - if (isGM(account_id) > 0) - GM_count++; - if (auth_dat[auth_num].sex == 'S') - server_count++; - - auth_num++; - if (account_id >= account_id_count) - account_id_count = account_id + 1; - - } else { - int i = 0; - if (sscanf(line, "%d\t%%newid%%\n%n", &account_id, &i) == 1 && - i > 0 && account_id > account_id_count) - account_id_count = account_id; - } - } - fclose(fp); - - if( auth_num == 0 ) - ShowNotice("mmo_auth_init: No account found in %s.\n", account_filename); - else - if( auth_num == 1 ) - ShowStatus("mmo_auth_init: 1 account read in %s,\n", account_filename); - else - ShowStatus("mmo_auth_init: %d accounts read in %s,\n", auth_num, account_filename); - - if( GM_count == 0 ) - ShowStatus(" of which is no GM account, and \n"); - else - if( GM_count == 1 ) - ShowStatus(" of which is 1 GM account, and \n"); - else - ShowStatus(" of which is %d GM accounts, and \n", GM_count); - - if( server_count == 0 ) - ShowStatus(" no server account ('S').\n"); - else - if( server_count == 1 ) - ShowStatus(" 1 server account ('S').\n"); - else - ShowStatus(" %d server accounts ('S').\n", server_count); - - return 0; -} - -//------------------------------------------ -// Writing of the accounts database file -// (accounts are sorted by id before save) -//------------------------------------------ -void mmo_auth_sync(void) -{ - FILE *fp; - unsigned int i, j, k; - int lock; - int account_id; - CREATE_BUFFER(id, int, auth_num); - char line[65536]; - - // Sorting before save - for(i = 0; i < auth_num; i++) { - id[i] = i; - account_id = auth_dat[i].account_id; - for(j = 0; j < i; j++) { - if (account_id < auth_dat[id[j]].account_id) { - for(k = i; k > j; k--) - id[k] = id[k-1]; - id[j] = i; // id[i] - break; - } + int fd = server[i].fd; + if( session_isValid(fd) && fd != sfd ) + { + WFIFOHEAD(fd,len); + memcpy(WFIFOP(fd,0), buf, len); + WFIFOSET(fd,len); + ++c; } } - // Data save - if ((fp = lock_fopen(account_filename, &lock)) == NULL) { - //if (id) aFree(id); - DELETE_BUFFER(id); - return; - } - - fprintf(fp, "// Accounts file: here are saved all information about the accounts.\n"); - fprintf(fp, "// Structure: ID, account name, password, last login time, sex, # of logins, state, email, error message for state 7, validity time, last (accepted) login ip, memo field, ban timestamp, repeated(register text, register value)\n"); - fprintf(fp, "// Some explanations:\n"); - fprintf(fp, "// account name : between 4 to 23 char for a normal account (standard client can't send less than 4 char).\n"); - fprintf(fp, "// account password: between 4 to 23 char\n"); - fprintf(fp, "// sex : M or F for normal accounts, S for server accounts\n"); - fprintf(fp, "// state : 0: account is ok, 1 to 256: error code of packet 0x006a + 1\n"); - fprintf(fp, "// email : between 3 to 39 char (a@a.com is like no email)\n"); - fprintf(fp, "// error message : text for the state 7: 'Your are Prohibited to login until '. Max 19 char\n"); - fprintf(fp, "// valitidy time : 0: unlimited account, : date calculated by addition of 1/1/1970 + value (number of seconds since the 1/1/1970)\n"); - fprintf(fp, "// memo field : max 254 char\n"); - fprintf(fp, "// ban time : 0: no ban, : banned until the date: date calculated by addition of 1/1/1970 + value (number of seconds since the 1/1/1970)\n"); - for(i = 0; i < auth_num; i++) { - k = id[i]; // use of sorted index - if (auth_dat[k].account_id == -1) - continue; - - mmo_auth_tostr(line, &auth_dat[k]); - fprintf(fp, "%s\n", line); - } - fprintf(fp, "%d\t%%newid%%\n", account_id_count); - - lock_fclose(fp, account_filename, &lock); - - // set new counter to minimum number of auth before save - auth_before_save_file = auth_num / AUTH_SAVE_FILE_DIVIDER; // Re-initialise counter. We have save. - if (auth_before_save_file < AUTH_BEFORE_SAVE_FILE) - auth_before_save_file = AUTH_BEFORE_SAVE_FILE; - - //if (id) aFree(id); - DELETE_BUFFER(id); - - return; + return c; } -//----------------------------------------------------- -// Check if we must save accounts file or not -// every minute, we check if we must save because we -// have do some authentications without arrive to -// the minimum of authentications for the save. -// Note: all other modification of accounts (deletion, -// change of some informations excepted lastip/ -// lastlogintime, creation) are always save -// immediatly and set the minimum of -// authentications to its initialization value. -//----------------------------------------------------- -int check_auth_sync(int tid, unsigned int tick, int id, intptr data) -{ - // we only save if necessary: - // we have do some authentications without do saving - if (auth_before_save_file < AUTH_BEFORE_SAVE_FILE || - auth_before_save_file < (int)(auth_num / AUTH_SAVE_FILE_DIVIDER)) - mmo_auth_sync(); - - return 0; -} //----------------------------------------------------- // periodic ip address synchronization @@ -746,345 +224,148 @@ static int sync_ip_addresses(int tid, unsigned int tick, int id, intptr data) return 0; } -//----------------------------------------------------- -// Send GM accounts to one or all char-servers -//----------------------------------------------------- -void send_GM_accounts(int fd) -{ - unsigned int i; - uint8 buf[32767]; - uint16 len; - - len = 4; - WBUFW(buf,0) = 0x2732; - for(i = 0; i < GM_num; i++) - // send only existing accounts. We can not create a GM account when server is online. - if (gm_account_db[i].level > 0) { - WBUFL(buf,len) = gm_account_db[i].account_id; - WBUFB(buf,len+4) = (uint8)gm_account_db[i].level; - len += 5; - if (len >= 32000) { - ShowWarning("send_GM_accounts: Too many accounts! Only %d out of %d were sent.\n", i, GM_num); - break; - } - } - - WBUFW(buf,2) = len; - if (fd == -1) // send to all charservers - charif_sendallwos(-1, buf, len); - else { // send only to target - WFIFOHEAD(fd,len); - memcpy(WFIFOP(fd,0), buf, len); - WFIFOSET(fd,len); - } - - return; -} - -//----------------------------------------------------- -// Check if GM file account have been changed -//----------------------------------------------------- -int check_GM_file(int tid, unsigned int tick, int id, intptr data) -{ - struct stat file_stat; - long new_time; - - // if we would not check - if (gm_account_filename_check_timer < 1) - return 0; - - // get last modify time/date - if (stat(GM_account_filename, &file_stat)) - new_time = 0; // error - else - new_time = (long)file_stat.st_mtime; - - if (new_time != creation_time_GM_account_file) { - read_gm_account(); - send_GM_accounts(-1); - } - - return 0; -} - //----------------------------------------------------- -// encrypted/unencrypted password check +// encrypted/unencrypted password check (from eApp) //----------------------------------------------------- bool check_encrypted(const char* str1, const char* str2, const char* passwd) { char md5str[64], md5bin[32]; - snprintf(md5str, sizeof(md5str), "%s%s", str1, str2); - md5str[sizeof(md5str)-1] = '\0'; + safesnprintf(md5str, sizeof(md5str), "%s%s", str1, str2); MD5_String2binary(md5str, md5bin); return (0==memcmp(passwd, md5bin, 16)); } -bool check_password(struct login_session_data* sd, int passwdenc, const char* passwd, const char* refpass) +bool check_password(const char* md5key, int passwdenc, const char* passwd, const char* refpass) { if(passwdenc == 0) { return (0==strcmp(passwd, refpass)); } - else if(sd != NULL) + else { - // password mode set to 1 -> (md5key, refpass) enable with - // password mode set to 2 -> (refpass, md5key) enable with + // password mode set to 1 -> md5(md5key, refpass) enable with + // password mode set to 2 -> md5(refpass, md5key) enable with - return ((passwdenc&0x01) && check_encrypted(sd->md5key, refpass, passwd)) || - ((passwdenc&0x02) && check_encrypted(refpass, sd->md5key, passwd)); + return ((passwdenc&0x01) && check_encrypted(md5key, refpass, passwd)) || + ((passwdenc&0x02) && check_encrypted(refpass, md5key, passwd)); } - return false; } -//------------------------------------- -// Make new account -//------------------------------------- -int mmo_auth_new(struct mmo_account* account) -{ - static int num_regs = 0; // registration counter - unsigned int tick = gettick(); - - time_t expiration_time = 0; - unsigned int i = auth_num; - - // check if the account doesn't exist already - ARR_FIND( 0, auth_num, i, strcmp(account->userid, auth_dat[i].userid) == 0 ); - if( i < auth_num ) - { - ShowNotice("Attempt of creation of an already existant account (account: %s_%c, pass: %s, received pass: %s)\n", account->userid, account->sex, auth_dat[i].pass, account->pass); - return 1; // 1 = Incorrect Password - } - - //Account Registration Flood Protection by [Kevin] - if( DIFF_TICK(tick, new_reg_tick) < 0 && num_regs >= allowed_regs ) - { - ShowNotice("Account registration denied (registration limit exceeded)\n"); - return 3; - } - - if (auth_num >= auth_max) { - auth_max += 256; - auth_dat = (struct mmo_account*)aRealloc(auth_dat, sizeof(struct mmo_account) * auth_max); - } - - memset(&auth_dat[i], '\0', sizeof(struct mmo_account)); - - // find a suitable non-gm account id - while (isGM(account_id_count) > 0) - account_id_count++; - - auth_dat[i].account_id = account_id_count++; - safestrncpy(auth_dat[i].userid, account->userid, NAME_LENGTH); - if( login_config.use_md5_passwds ) - MD5_String(account->pass, auth_dat[i].pass); - else - safestrncpy(auth_dat[i].pass, account->pass, NAME_LENGTH); - safestrncpy(auth_dat[i].lastlogin, "-", sizeof(auth_dat[i].lastlogin)); - auth_dat[i].sex = account->sex; - auth_dat[i].logincount = 0; - auth_dat[i].state = 0; - safestrncpy(auth_dat[i].email, e_mail_check(account->email) ? account->email : "a@a.com", sizeof(auth_dat[i].email)); - safestrncpy(auth_dat[i].error_message, "-", sizeof(auth_dat[i].error_message)); - auth_dat[i].unban_time = 0; - if( login_config.start_limited_time != -1 ) - expiration_time = time(NULL) + login_config.start_limited_time; - auth_dat[i].expiration_time = expiration_time; - strncpy(auth_dat[i].last_ip, "-", 16); - strncpy(auth_dat[i].memo, "-", 255); - auth_dat[i].account_reg2_num = 0; - - ShowNotice("Account creation (account %s, id: %d, pass: %s, sex: %c)\n", account->userid, auth_num, account->pass, account->sex); - auth_num++; - - if( DIFF_TICK(tick, new_reg_tick) > 0 ) - {// Update the registration check. - num_regs = 0; - new_reg_tick = tick + time_allowed*1000; - } - ++num_regs; - - return 0; -} - //----------------------------------------------------- -// Check/authentication of a connection +// custom timestamp formatting (from eApp) //----------------------------------------------------- -int mmo_auth(struct login_session_data* sd) +const char* timestamp2string(char* str, size_t size, time_t timestamp, const char* format) { - unsigned int i; - time_t raw_time; - char tmpstr[256]; - size_t len; - char user_password[32+1]; // reserve for md5-ed pw + size_t len = strftime(str, size, format, localtime(×tamp)); + memset(str + len, '\0', size - len); + return str; +} - char ip[16]; - ip2str(session[sd->fd]->client_addr, ip); - // DNS Blacklist check - if( login_config.use_dnsbl ) - { - char r_ip[16]; - char ip_dnsbl[256]; - char* dnsbl_serv; - bool matched = false; - uint8* sin_addr = (uint8*)&session[sd->fd]->client_addr; - - sprintf(r_ip, "%u.%u.%u.%u", sin_addr[0], sin_addr[1], sin_addr[2], sin_addr[3]); +//-------------------------------------------- +// Test to know if an IP come from LAN or WAN. +//-------------------------------------------- +int lan_subnetcheck(uint32 ip) +{ + int i; + ARR_FIND( 0, subnet_count, i, (subnet[i].char_ip & subnet[i].mask) == (ip & subnet[i].mask) ); + return ( i < subnet_count ) ? subnet[i].char_ip : 0; +} - for( dnsbl_serv = strtok(login_config.dnsbl_servs,","); !matched && dnsbl_serv != NULL; dnsbl_serv = strtok(NULL,",") ) - { - sprintf(ip_dnsbl, "%s.%s", r_ip, dnsbl_serv); - if( host2ip(ip_dnsbl) ) - matched = true; - } +//---------------------------------- +// Reading Lan Support configuration +//---------------------------------- +int login_lan_config_read(const char *lancfgName) +{ + FILE *fp; + int line_num = 0; + char line[1024], w1[64], w2[64], w3[64], w4[64]; - if( matched ) - { - ShowInfo("DNSBL: (%s) Blacklisted. User Kicked.\n", r_ip); - return 3; - } + if((fp = fopen(lancfgName, "r")) == NULL) { + ShowWarning("LAN Support configuration file is not found: %s\n", lancfgName); + return 1; } - //Client Version check - if( login_config.check_client_version && sd->version != login_config.client_version_to_connect ) - return 5; - - len = strnlen(sd->userid, NAME_LENGTH); + ShowInfo("Reading the configuration file %s...\n", lancfgName); - // Account creation with _M/_F - if( login_config.new_account_flag ) + while(fgets(line, sizeof(line), fp)) { - if( len > 2 && strnlen(sd->passwd, NAME_LENGTH) > 0 && // valid user and password lengths - sd->passwdenc == 0 && // unencoded password - sd->userid[len-2] == '_' && memchr("FfMm", sd->userid[len-1], 4) && // _M/_F suffix - account_id_count <= END_ACCOUNT_NUM ) - { - struct mmo_account acc; - int result; - - len -= 2; - sd->userid[len] = '\0'; - - memset(&acc, '\0', sizeof(acc)); - safestrncpy(acc.userid, sd->userid, NAME_LENGTH); - safestrncpy(acc.pass, sd->passwd, NAME_LENGTH); - safestrncpy(acc.email, "a@a.com", sizeof(acc.email)); - acc.sex = TOUPPER(sd->userid[len+1]); - - result = mmo_auth_new(&acc); - if( result ) - return result;// Failed to make account. [Skotlex]. + line_num++; + if ((line[0] == '/' && line[1] == '/') || line[0] == '\n' || line[1] == '\n') + continue; - auth_before_save_file = 0; // Creation of an account -> save accounts file immediatly + if(sscanf(line,"%[^:]: %[^:]:%[^:]:%[^\r\n]", w1, w2, w3, w4) != 4) + { + ShowWarning("Error syntax of configuration file %s in line %d.\n", lancfgName, line_num); + continue; } - } - - // Strict account search - ARR_FIND( 0, auth_num, i, strcmp(sd->userid, auth_dat[i].userid) == 0 ); - - // if strict account search fails, we do a no sensitive case research for index - if( i < auth_num ) - { - i = search_account_index(sd->userid); - if( i == -1 ) - i = auth_num; - else - memcpy(sd->userid, auth_dat[i].userid, NAME_LENGTH); // for the possible tests/checks afterwards (copy correcte sensitive case). - } - if( i == auth_num ) - { - ShowNotice("Unknown account (account: %s, received pass: %s, ip: %s)\n", sd->userid, sd->passwd, ip); - return 0; // 0 = Unregistered ID - } - - if( login_config.use_md5_passwds ) - MD5_String(sd->passwd, user_password); - else - safestrncpy(user_password, sd->passwd, NAME_LENGTH); - - if( !check_password(sd, sd->passwdenc, user_password, auth_dat[i].pass) ) - { - ShowNotice("Invalid password (account: %s, pass: %s, received pass: %s, ip: %s)\n", sd->userid, auth_dat[i].pass, (sd->passwdenc) ? "[MD5]" : sd->passwd, ip); - return 1; // 1 = Incorrect Password - } - - if( auth_dat[i].expiration_time != 0 && auth_dat[i].expiration_time < time(NULL) ) - { - ShowNotice("Connection refused (account: %s, pass: %s, expired ID, ip: %s)\n", sd->userid, sd->passwd, ip); - return 2; // 2 = This ID is expired - } + if( strcmpi(w1, "subnet") == 0 ) + { + subnet[subnet_count].mask = str2ip(w2); + subnet[subnet_count].char_ip = str2ip(w3); + subnet[subnet_count].map_ip = str2ip(w4); - if( auth_dat[i].unban_time != 0 && auth_dat[i].unban_time > time(NULL) ) - { - strftime(tmpstr, 20, login_config.date_format, localtime(&auth_dat[i].unban_time)); - tmpstr[19] = '\0'; - ShowNotice("Connection refused (account: %s, pass: %s, banned until %s, ip: %s)\n", sd->userid, sd->passwd, tmpstr, ip); - return 6; // 6 = Your are Prohibited to log in until %s - } + if( (subnet[subnet_count].char_ip & subnet[subnet_count].mask) != (subnet[subnet_count].map_ip & subnet[subnet_count].mask) ) + { + ShowError("%s: Configuration Error: The char server (%s) and map server (%s) belong to different subnetworks!\n", lancfgName, w3, w4); + continue; + } - if( auth_dat[i].state ) - { - ShowNotice("Connection refused (account: %s, pass: %s, state: %d, ip: %s)\n", sd->userid, sd->passwd, auth_dat[i].state, ip); - return auth_dat[i].state - 1; + subnet_count++; + } } - ShowNotice("Authentication accepted (account: %s, id: %d, ip: %s)\n", sd->userid, auth_dat[i].account_id, ip); - - // auth start : time seed - time(&raw_time); - strftime(tmpstr, 24, "%Y-%m-%d %H:%M:%S",localtime(&raw_time)); + ShowStatus("Read information about %d subnetworks.\n", subnet_count); - sd->account_id = auth_dat[i].account_id; - sd->login_id1 = rand(); - sd->login_id2 = rand(); - safestrncpy(sd->lastlogin, auth_dat[i].lastlogin, 24); - sd->sex = auth_dat[i].sex; + fclose(fp); + return 0; +} - if( sd->sex != 'S' && sd->account_id < START_ACCOUNT_NUM ) - ShowWarning("Account %s has account id %d! Account IDs must be over %d to work properly!\n", sd->userid, sd->account_id, START_ACCOUNT_NUM); +//----------------------- +// Console Command Parser [Wizputer] +//----------------------- +int parse_console(char* buf) +{ + char command[256]; - safestrncpy(auth_dat[i].lastlogin, tmpstr, sizeof(auth_dat[i].lastlogin)); - safestrncpy(auth_dat[i].last_ip, ip, sizeof(auth_dat[i].last_ip)); - auth_dat[i].unban_time = 0; - auth_dat[i].logincount++; + memset(command, 0, sizeof(command)); - // Save until for change ip/time of auth is not very useful => limited save for that - // Save there informations isnot necessary, because they are saved in log file. - if (--auth_before_save_file <= 0) // Reduce counter. 0 or less, we save - mmo_auth_sync(); + sscanf(buf, "%[^\n]", command); - return -1; // account OK -} + ShowInfo("Console command :%s", command); -static int online_db_setoffline(DBKey key, void* data, va_list ap) -{ - struct online_login_data* p = (struct online_login_data*)data; - int server = va_arg(ap, int); - if( server == -1 ) - { - p->char_server = -1; - if( p->waiting_disconnect != -1 ) - { - delete_timer(p->waiting_disconnect, waiting_disconnect_timer); - p->waiting_disconnect = -1; - } + if( strcmpi("shutdown", command) == 0 || + strcmpi("exit", command) == 0 || + strcmpi("quit", command) == 0 || + strcmpi("end", command) == 0 ) + runflag = 0; + else + if( strcmpi("alive", command) == 0 || + strcmpi("status", command) == 0 ) + ShowInfo(CL_CYAN"Console: "CL_BOLD"I'm Alive."CL_RESET"\n"); + else + if( strcmpi("help", command) == 0 ) { + ShowInfo(CL_BOLD"Help of commands:"CL_RESET"\n"); + ShowInfo(" To shutdown the server:\n"); + ShowInfo(" 'shutdown|exit|quit|end'\n"); + ShowInfo(" To know if server is alive:\n"); + ShowInfo(" 'alive|status'\n"); } - else if( p->char_server == server ) - p->char_server = -2; //Char server disconnected. + return 0; } + //-------------------------------- // Packet parsing for char-servers //-------------------------------- int parse_fromchar(int fd) { - unsigned int i; int j, id; uint32 ipl; char ip[16]; @@ -1117,14 +398,6 @@ int parse_fromchar(int fd) switch( command ) { - case 0x2709: // request from map-server via char-server to reload GM accounts - RFIFOSKIP(fd,2); - ShowStatus("Char-server '%s': Request to re-load GM configuration file (ip: %s).\n", server[id].name, ip); - read_gm_account(); - // send GM accounts to all char-servers - send_GM_accounts(-1); - break; - case 0x2712: // request from char-server to authenticate an account if( RFIFOREST(fd) < 19 ) return 0; @@ -1132,8 +405,8 @@ int parse_fromchar(int fd) struct auth_node* node; int account_id = RFIFOL(fd,2); - int login_id1 = RFIFOL(fd,6); - int login_id2 = RFIFOL(fd,10); + uint32 login_id1 = RFIFOL(fd,6); + uint32 login_id2 = RFIFOL(fd,10); char sex = sex_num2str(RFIFOB(fd,14)); uint32 ip_ = ntohl(RFIFOL(fd,15)); RFIFOSKIP(fd,19); @@ -1146,51 +419,49 @@ int parse_fromchar(int fd) node->sex == sex && node->ip == ip_ ) {// found - uint32 expiration_time; - char email[40]; - unsigned int k; + struct mmo_account acc; + time_t expiration_time = 0; + const char* email = ""; + int gmlevel = 0; //ShowStatus("Char-server '%s': authentication of the account %d accepted (ip: %s).\n", server[id].name, account_id, ip); // each auth entry can only be used once idb_remove(auth_db, account_id); - // retrieve email and account expiration time - ARR_FIND( 0, auth_num, k, auth_dat[k].account_id == account_id ); - if( k < auth_num ) + // retrieve email and account expiration time and gm level + if( accounts->load_num(accounts, &acc, account_id) ) { - strcpy(email, auth_dat[k].email); - expiration_time = (uint32)auth_dat[k].expiration_time; - } - else - { - memset(email, 0, sizeof(email)); - expiration_time = 0; + email = acc.email; + expiration_time = acc.expiration_time; + gmlevel = acc.level; } // send ack - WFIFOHEAD(fd,59); + WFIFOHEAD(fd,60); WFIFOW(fd,0) = 0x2713; WFIFOL(fd,2) = account_id; WFIFOL(fd,6) = login_id1; WFIFOL(fd,10) = login_id2; WFIFOB(fd,14) = 0; - memcpy(WFIFOP(fd,15), email, 40); - WFIFOL(fd,55) = expiration_time; - WFIFOSET(fd,59); + safestrncpy((char*)WFIFOP(fd,15), email, 40); + WFIFOL(fd,55) = (uint32)expiration_time; + WFIFOB(fd,59) = gmlevel; + WFIFOSET(fd,60); } else {// authentication not found ShowStatus("Char-server '%s': authentication of the account %d REFUSED (ip: %s).\n", server[id].name, account_id, ip); - WFIFOHEAD(fd,59); + WFIFOHEAD(fd,60); WFIFOW(fd,0) = 0x2713; WFIFOL(fd,2) = account_id; WFIFOL(fd,6) = login_id1; WFIFOL(fd,10) = login_id2; WFIFOB(fd,14) = 1; - // It is unnecessary to send email - // It is unnecessary to send validity date of the account - WFIFOSET(fd,59); + //safestrncpy((char*)WFIFOP(fd,15), "", 40); + //WFIFOL(fd,55) = (uint32)0; + //WFIFOB(fd,59) = 0; + WFIFOSET(fd,60); } } break; @@ -1216,25 +487,23 @@ int parse_fromchar(int fd) if (RFIFOREST(fd) < 46) return 0; { + struct mmo_account acc; char email[40]; - int acc = RFIFOL(fd,2); + + int account_id = RFIFOL(fd,2); safestrncpy(email, (char*)RFIFOP(fd,6), 40); remove_control_chars(email); RFIFOSKIP(fd,46); if( e_mail_check(email) == 0 ) - ShowNotice("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - e-mail is invalid (account: %d, ip: %s)\n", server[id].name, acc, ip); + ShowNotice("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - e-mail is invalid (account: %d, ip: %s)\n", server[id].name, account_id, ip); else - { - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == acc && (strcmp(auth_dat[i].email, "a@a.com") == 0 || auth_dat[i].email[0] == '\0') ); - if( i == auth_num ) - ShowNotice("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - account doesn't exist or e-mail of account isn't default e-mail (account: %d, ip: %s).\n", server[id].name, acc, ip); - else - { - memcpy(auth_dat[i].email, email, 40); - ShowNotice("Char-server '%s': Create an e-mail on an account with a default e-mail (account: %d, new e-mail: %s, ip: %s).\n", server[id].name, acc, email, ip); - // Save - mmo_auth_sync(); - } + if( !accounts->load_num(accounts, &acc, account_id) || strcmp(acc.email, "a@a.com") == 0 || acc.email[0] == '\0' ) + ShowNotice("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - account doesn't exist or e-mail of account isn't default e-mail (account: %d, ip: %s).\n", server[id].name, account_id, ip); + else { + memcpy(acc.email, email, 40); + ShowNotice("Char-server '%s': Create an e-mail on an account with a default e-mail (account: %d, new e-mail: %s, ip: %s).\n", server[id].name, account_id, email, ip); + // Save + accounts->save(accounts, &acc); } } break; @@ -1243,27 +512,30 @@ int parse_fromchar(int fd) if( RFIFOREST(fd) < 6 ) return 0; { - uint32 expiration_time = 0; + struct mmo_account acc; + time_t expiration_time = 0; char email[40] = ""; + int gmlevel = 0; int account_id = RFIFOL(fd,2); RFIFOSKIP(fd,6); - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == account_id ); - if( i == auth_num ) - ShowNotice("Char-server '%s': e-mail of the account %d NOT found (ip: %s).\n", server[id].name, RFIFOL(fd,2), ip); + if( !accounts->load_num(accounts, &acc, account_id) ) + ShowNotice("Char-server '%s': e-mail of the account %d NOT found (ip: %s).\n", server[id].name, account_id, ip); else { - safestrncpy(email, auth_dat[i].email, sizeof(email)); - expiration_time = (uint32)auth_dat[i].expiration_time; + safestrncpy(email, acc.email, sizeof(email)); + expiration_time = acc.expiration_time; + gmlevel = acc.level; } - WFIFOHEAD(fd,50); + WFIFOHEAD(fd,51); WFIFOW(fd,0) = 0x2717; WFIFOL(fd,2) = account_id; safestrncpy((char*)WFIFOP(fd,6), email, 40); - WFIFOL(fd,46) = expiration_time; - WFIFOSET(fd,50); + WFIFOL(fd,46) = (uint32)expiration_time; + WFIFOB(fd,50) = gmlevel; + WFIFOSET(fd,51); } break; @@ -1282,32 +554,34 @@ int parse_fromchar(int fd) if (RFIFOREST(fd) < 86) return 0; { + struct mmo_account acc; char actual_email[40]; char new_email[40]; + int account_id = RFIFOL(fd,2); - safestrncpy(actual_email, (char*)RFIFOP(fd,6), 40); remove_control_chars(actual_email); - safestrncpy(new_email, (char*)RFIFOP(fd,46), 40); remove_control_chars(new_email); + safestrncpy(actual_email, (char*)RFIFOP(fd,6), 40); + safestrncpy(new_email, (char*)RFIFOP(fd,46), 40); RFIFOSKIP(fd, 86); if( e_mail_check(actual_email) == 0 ) ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual email is invalid (account: %d, ip: %s)\n", server[id].name, account_id, ip); - else if( e_mail_check(new_email) == 0 ) + else + if( e_mail_check(new_email) == 0 ) ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a invalid new e-mail (account: %d, ip: %s)\n", server[id].name, account_id, ip); - else if( strcmpi(new_email, "a@a.com") == 0 ) + else + if( strcmpi(new_email, "a@a.com") == 0 ) ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a default e-mail (account: %d, ip: %s)\n", server[id].name, account_id, ip); + else + if( !accounts->load_num(accounts, &acc, account_id) ) + ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but account doesn't exist (account: %d, ip: %s).\n", server[id].name, account_id, ip); + else + if( strcmpi(acc.email, actual_email) != 0 ) + ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual e-mail is incorrect (account: %d (%s), actual e-mail: %s, proposed e-mail: %s, ip: %s).\n", server[id].name, account_id, acc.userid, acc.email, actual_email, ip); else { - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == account_id ); - if( i == auth_num ) - ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but account doesn't exist (account: %d, ip: %s).\n", server[id].name, account_id, ip); - else - if( strcmpi(auth_dat[i].email, actual_email) != 0 ) - ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual e-mail is incorrect (account: %d (%s), actual e-mail: %s, proposed e-mail: %s, ip: %s).\n", server[id].name, account_id, auth_dat[i].userid, auth_dat[i].email, actual_email, ip); - else { - safestrncpy(auth_dat[i].email, new_email, 40); - ShowNotice("Char-server '%s': Modify an e-mail on an account (@email GM command) (account: %d (%s), new e-mail: %s, ip: %s).\n", server[id].name, account_id, auth_dat[i].userid, new_email, ip); - // Save - mmo_auth_sync(); - } + safestrncpy(acc.email, new_email, 40); + ShowNotice("Char-server '%s': Modify an e-mail on an account (@email GM command) (account: %d (%s), new e-mail: %s, ip: %s).\n", server[id].name, account_id, acc.userid, new_email, ip); + // Save + accounts->save(accounts, &acc); } } break; @@ -1316,18 +590,25 @@ int parse_fromchar(int fd) if (RFIFOREST(fd) < 10) return 0; { + struct mmo_account acc; + int account_id = RFIFOL(fd,2); - uint32 state = RFIFOL(fd,6); + int state = RFIFOL(fd,6); RFIFOSKIP(fd,10); - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == account_id ); - if( i == auth_num ) + if( !accounts->load_num(accounts, &acc, account_id) ) ShowNotice("Char-server '%s': Error of Status change (account: %d not found, suggested status %d, ip: %s).\n", server[id].name, account_id, state, ip); else - if( auth_dat[i].state == state ) + if( acc.state == state ) ShowNotice("Char-server '%s': Error of Status change - actual status is already the good status (account: %d, status %d, ip: %s).\n", server[id].name, account_id, state, ip); else { ShowNotice("Char-server '%s': Status change (account: %d, new status %d, ip: %s).\n", server[id].name, account_id, state, ip); + + acc.state = state; + // Save + accounts->save(accounts, &acc); + + // notify other servers if (state != 0) { uint8 buf[11]; WBUFW(buf,0) = 0x2731; @@ -1336,9 +617,6 @@ int parse_fromchar(int fd) WBUFL(buf,7) = state; // status or final date of a banishment charif_sendallwos(-1, buf, 11); } - auth_dat[i].state = state; - // Save - mmo_auth_sync(); } } break; @@ -1347,6 +625,8 @@ int parse_fromchar(int fd) if (RFIFOREST(fd) < 18) return 0; { + struct mmo_account acc; + int account_id = RFIFOL(fd,2); int year = (short)RFIFOW(fd,6); int month = (short)RFIFOW(fd,8); @@ -1356,24 +636,23 @@ int parse_fromchar(int fd) int sec = (short)RFIFOW(fd,16); RFIFOSKIP(fd,18); - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == account_id ); - if( i == auth_num ) + if( !accounts->load_num(accounts, &acc, account_id) ) ShowNotice("Char-server '%s': Error of ban request (account: %d not found, ip: %s).\n", server[id].name, account_id, ip); else { time_t timestamp; struct tm *tmtime; - if (auth_dat[i].unban_time == 0 || auth_dat[i].unban_time < time(NULL)) - timestamp = time(NULL); + if (acc.unban_time == 0 || acc.unban_time < time(NULL)) + timestamp = time(NULL); // new ban else - timestamp = auth_dat[i].unban_time; + timestamp = acc.unban_time; // add to existing ban tmtime = localtime(×tamp); tmtime->tm_year = tmtime->tm_year + year; - tmtime->tm_mon = tmtime->tm_mon + month; + tmtime->tm_mon = tmtime->tm_mon + month; tmtime->tm_mday = tmtime->tm_mday + mday; tmtime->tm_hour = tmtime->tm_hour + hour; - tmtime->tm_min = tmtime->tm_min + min; - tmtime->tm_sec = tmtime->tm_sec + sec; + tmtime->tm_min = tmtime->tm_min + min; + tmtime->tm_sec = tmtime->tm_sec + sec; timestamp = mktime(tmtime); if (timestamp == -1) ShowNotice("Char-server '%s': Error of ban request (account: %d, invalid date, ip: %s).\n", server[id].name, account_id, ip); @@ -1382,18 +661,21 @@ int parse_fromchar(int fd) ShowNotice("Char-server '%s': Error of ban request (account: %d, new date unbans the account, ip: %s).\n", server[id].name, account_id, ip); else { - unsigned char buf[16]; - char tmpstr[2048]; - strftime(tmpstr, 24, login_config.date_format, localtime(×tamp)); + uint8 buf[11]; + char tmpstr[24]; + timestamp2string(tmpstr, sizeof(tmpstr), timestamp, login_config.date_format); ShowNotice("Char-server '%s': Ban request (account: %d, new final date of banishment: %d (%s), ip: %s).\n", server[id].name, account_id, timestamp, tmpstr, ip); + + acc.unban_time = timestamp; + + // Save + accounts->save(accounts, &acc); + WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = auth_dat[i].account_id; + WBUFL(buf,2) = account_id; WBUFB(buf,6) = 1; // 0: change of status, 1: ban - WBUFL(buf,7) = (unsigned int)timestamp; // status or final date of a banishment + WBUFL(buf,7) = (uint32)timestamp; // status or final date of a banishment charif_sendallwos(-1, buf, 11); - auth_dat[i].unban_time = timestamp; - // Save - mmo_auth_sync(); } } } @@ -1403,29 +685,32 @@ int parse_fromchar(int fd) if( RFIFOREST(fd) < 6 ) return 0; { + struct mmo_account acc; + int account_id = RFIFOL(fd,2); RFIFOSKIP(fd,6); - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == account_id ); - if( i == auth_num ) + if( !accounts->load_num(accounts, &acc, account_id) ) ShowNotice("Char-server '%s': Error of sex change (account: %d not found, ip: %s).\n", server[id].name, account_id, ip); else - if( auth_dat[i].sex == 'S' ) + if( acc.sex == 'S' ) ShowNotice("Char-server '%s': Error of sex change - account to change is a Server account (account: %d, ip: %s).\n", server[id].name, account_id, ip); else { unsigned char buf[7]; - char sex = ( auth_dat[i].sex == 'M' ) ? 'F' : 'M'; //Change gender - - auth_dat[i].sex = sex; + char sex = ( acc.sex == 'M' ) ? 'F' : 'M'; //Change gender ShowNotice("Char-server '%s': Sex change (account: %d, new sex %c, ip: %s).\n", server[id].name, account_id, sex, ip); + + acc.sex = sex; + // Save + accounts->save(accounts, &acc); + + // announce to other servers WBUFW(buf,0) = 0x2723; WBUFL(buf,2) = account_id; WBUFB(buf,6) = sex_str2num(sex); charif_sendallwos(-1, buf, 7); - // Save - mmo_auth_sync(); } } break; @@ -1434,37 +719,38 @@ int parse_fromchar(int fd) if( RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2) ) return 0; { - int acc = RFIFOL(fd,4); + struct mmo_account acc; + + int account_id = RFIFOL(fd,4); - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == acc ); - if( i == auth_num ) - ShowStatus("Char-server '%s': receiving (from the char-server) of account_reg2 (account: %d not found, ip: %s).\n", server[id].name, acc, ip); + if( !accounts->load_num(accounts, &acc, account_id) ) + ShowStatus("Char-server '%s': receiving (from the char-server) of account_reg2 (account: %d not found, ip: %s).\n", server[id].name, account_id, ip); else { int len; int p; - ShowNotice("char-server '%s': receiving (from the char-server) of account_reg2 (account: %d, ip: %s).\n", server[id].name, acc, ip); - for(j=0,p=13;jsave(accounts, &acc); // Sending information towards the other char-servers. RFIFOW(fd,0) = 0x2729;// reusing read buffer charif_sendallwos(fd, RFIFOP(fd,0), RFIFOW(fd,2)); RFIFOSKIP(fd,RFIFOW(fd,2)); - - // Save - mmo_auth_sync(); } - } break; @@ -1472,19 +758,21 @@ int parse_fromchar(int fd) if( RFIFOREST(fd) < 6 ) return 0; { + struct mmo_account acc; + int account_id = RFIFOL(fd,2); RFIFOSKIP(fd,6); - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == account_id ); - if( i == auth_num ) + if( !accounts->load_num(accounts, &acc, account_id) ) ShowNotice("Char-server '%s': Error of UnBan request (account: %d not found, ip: %s).\n", server[id].name, account_id, ip); else - if( auth_dat[i].unban_time == 0 ) + if( acc.unban_time == 0 ) ShowNotice("Char-server '%s': Error of UnBan request (account: %d, no change for unban date, ip: %s).\n", server[id].name, account_id, ip); else { - auth_dat[i].unban_time = 0; ShowNotice("Char-server '%s': UnBan request (account: %d, ip: %s).\n", server[id].name, account_id, ip); + acc.unban_time = 0; + accounts->save(accounts, &acc); } } break; @@ -1531,39 +819,32 @@ int parse_fromchar(int fd) if (RFIFOREST(fd) < 10) return 0; { + struct mmo_account acc; size_t off; int account_id = RFIFOL(fd,2); int char_id = RFIFOL(fd,6); RFIFOSKIP(fd,10); - WFIFOHEAD(fd,10000); + WFIFOHEAD(fd,ACCOUNT_REG2_NUM*sizeof(struct global_reg)); WFIFOW(fd,0) = 0x2729; WFIFOL(fd,4) = account_id; WFIFOL(fd,8) = char_id; WFIFOB(fd,12) = 1; //Type 1 for Account2 registry - ARR_FIND( 0, auth_num, i, auth_dat[i].account_id == account_id ); - if( i == auth_num ) - { - //Account not found? Send at least empty data, map servers need a reply! - WFIFOW(fd,2) = 13; - WFIFOSET(fd,WFIFOW(fd,2)); - break; - } - - for( off = 13, j = 0; j < auth_dat[i].account_reg2_num && off < 9000; j++ ) + off = 13; + if( accounts->load_num(accounts, &acc, account_id) ) { - if( auth_dat[i].account_reg2[j].str[0] != '\0' ) + for( j = 0; j < acc.account_reg2_num; j++ ) { - off += sprintf((char*)WFIFOP(fd,off), "%s", auth_dat[i].account_reg2[j].str)+1; //We add 1 to consider the '\0' in place. - off += sprintf((char*)WFIFOP(fd,off), "%s", auth_dat[i].account_reg2[j].value)+1; + if( acc.account_reg2[j].str[0] != '\0' ) + { + off += sprintf((char*)WFIFOP(fd,off), "%s", acc.account_reg2[j].str)+1; //We add 1 to consider the '\0' in place. + off += sprintf((char*)WFIFOP(fd,off), "%s", acc.account_reg2[j].value)+1; + } } } - if( off >= 9000 ) - ShowWarning("Too many account2 registries for AID %d. Some registries were not sent.\n", account_id); - WFIFOW(fd,2) = (uint16)off; WFIFOSET(fd,WFIFOW(fd,2)); } @@ -1577,31 +858,194 @@ int parse_fromchar(int fd) RFIFOSKIP(fd,6); break; - case 0x2737: //Request to set all offline. - ShowInfo("Setting accounts from char-server %d offline.\n", id); - online_db->foreach(online_db, online_db_setoffline, id); - RFIFOSKIP(fd,2); - break; + case 0x2737: //Request to set all offline. + ShowInfo("Setting accounts from char-server %d offline.\n", id); + online_db->foreach(online_db, online_db_setoffline, id); + RFIFOSKIP(fd,2); + break; + + default: + ShowError("parse_fromchar: Unknown packet 0x%x from a char-server! Disconnecting!\n", command); + set_eof(fd); + return 0; + } // switch + } // while + + RFIFOSKIP(fd,RFIFOREST(fd)); + return 0; +} + + +//------------------------------------- +// Make new account +//------------------------------------- +int mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip) +{ + static int num_regs = 0; // registration counter + static unsigned int new_reg_tick = 0; + unsigned int tick = gettick(); + struct mmo_account acc; + + //Account Registration Flood Protection by [Kevin] + if( new_reg_tick == 0 ) + new_reg_tick = gettick(); + if( DIFF_TICK(tick, new_reg_tick) < 0 && num_regs >= allowed_regs ) + { + ShowNotice("Account registration denied (registration limit exceeded)\n"); + return 3; + } + + // check for invalid inputs + if( sex != 'M' && sex != 'F' ) + return 0; // 0 = Unregistered ID + + // check if the account doesn't exist already + if( accounts->load_str(accounts, &acc, userid) ) + { + ShowNotice("Attempt of creation of an already existant account (account: %s_%c, pass: %s, received pass: %s)\n", userid, sex, acc.pass, pass); + return 1; // 1 = Incorrect Password + } + + memset(&acc, '\0', sizeof(acc)); + acc.account_id = -1; // assigned by account db + safestrncpy(acc.userid, userid, sizeof(acc.userid)); + safestrncpy(acc.pass, pass, sizeof(acc.pass)); + acc.sex = sex; + safestrncpy(acc.email, "a@a.com", sizeof(acc.email)); + acc.expiration_time = ( login_config.start_limited_time != -1 ) ? time(NULL) + login_config.start_limited_time : 0; + safestrncpy(acc.lastlogin, "-", sizeof(acc.lastlogin)); + safestrncpy(acc.last_ip, last_ip, sizeof(acc.last_ip)); + + if( !accounts->create(accounts, &acc) ) + return 0; + + ShowNotice("Account creation (account %s, id: %d, pass: %s, sex: %c)\n", acc.userid, acc.account_id, acc.pass, acc.sex); + + if( DIFF_TICK(tick, new_reg_tick) > 0 ) + {// Update the registration check. + num_regs = 0; + new_reg_tick = tick + time_allowed*1000; + } + ++num_regs; + + return -1; +} + +//----------------------------------------------------- +// Check/authentication of a connection +//----------------------------------------------------- +int mmo_auth(struct login_session_data* sd) +{ + struct mmo_account acc; + int len; + + char ip[16]; + ip2str(session[sd->fd]->client_addr, ip); + + // DNS Blacklist check + if( login_config.use_dnsbl ) + { + char r_ip[16]; + char ip_dnsbl[256]; + char* dnsbl_serv; + bool matched = false; + uint8* sin_addr = (uint8*)&session[sd->fd]->client_addr; + + sprintf(r_ip, "%u.%u.%u.%u", sin_addr[0], sin_addr[1], sin_addr[2], sin_addr[3]); + + for( dnsbl_serv = strtok(login_config.dnsbl_servs,","); !matched && dnsbl_serv != NULL; dnsbl_serv = strtok(NULL,",") ) + { + sprintf(ip_dnsbl, "%s.%s", r_ip, dnsbl_serv); + if( host2ip(ip_dnsbl) ) + matched = true; + } + + if( matched ) + { + ShowInfo("DNSBL: (%s) Blacklisted. User Kicked.\n", r_ip); + return 3; + } + } + + //Client Version check + if( login_config.check_client_version && sd->version != login_config.client_version_to_connect ) + return 5; + + len = strnlen(sd->userid, NAME_LENGTH); + + // Account creation with _M/_F + if( login_config.new_account_flag ) + { + if( len > 2 && strnlen(sd->passwd, NAME_LENGTH) > 0 && // valid user and password lengths + sd->passwdenc == 0 && // unencoded password + sd->userid[len-2] == '_' && memchr("FfMm", sd->userid[len-1], 4) ) // _M/_F suffix + { + int result; + + // remove the _M/_F suffix + len -= 2; + sd->userid[len] = '\0'; + + result = mmo_auth_new(sd->userid, sd->passwd, TOUPPER(sd->userid[len+1]), ip); + if( result != -1 ) + return result;// Failed to make account. [Skotlex]. + } + } + + if( !accounts->load_str(accounts, &acc, sd->userid) ) + { + ShowNotice("Unknown account (account: %s, received pass: %s, ip: %s)\n", sd->userid, sd->passwd, ip); + return 0; // 0 = Unregistered ID + } + + if( !check_password(sd->md5key, sd->passwdenc, sd->passwd, acc.pass) ) + { + ShowNotice("Invalid password (account: '%s', pass: '%s', received pass: '%s', ip: %s)\n", sd->userid, acc.pass, sd->passwd, ip); + return 1; // 1 = Incorrect Password + } + + if( acc.expiration_time != 0 && acc.expiration_time < time(NULL) ) + { + ShowNotice("Connection refused (account: %s, pass: %s, expired ID, ip: %s)\n", sd->userid, sd->passwd, ip); + return 2; // 2 = This ID is expired + } + + if( acc.unban_time != 0 && acc.unban_time > time(NULL) ) + { + char tmpstr[24]; + timestamp2string(tmpstr, sizeof(tmpstr), acc.unban_time, login_config.date_format); + ShowNotice("Connection refused (account: %s, pass: %s, banned until %s, ip: %s)\n", sd->userid, sd->passwd, tmpstr, ip); + return 6; // 6 = Your are Prohibited to log in until %s + } + + if( acc.state != 0 ) + { + ShowNotice("Connection refused (account: %s, pass: %s, state: %d, ip: %s)\n", sd->userid, sd->passwd, acc.state, ip); + return acc.state - 1; + } + + ShowNotice("Authentication accepted (account: %s, id: %d, ip: %s)\n", sd->userid, acc.account_id, ip); + + // update session data + sd->account_id = acc.account_id; + sd->login_id1 = rand(); + sd->login_id2 = rand(); + safestrncpy(sd->lastlogin, acc.lastlogin, sizeof(sd->lastlogin)); + sd->sex = acc.sex; + sd->level = acc.level; + + // update account data + timestamp2string(acc.lastlogin, sizeof(acc.lastlogin), time(NULL), login_config.date_format); + safestrncpy(acc.last_ip, ip, sizeof(acc.last_ip)); + acc.unban_time = 0; + acc.logincount++; - default: - ShowError("parse_fromchar: Unknown packet 0x%x from a char-server! Disconnecting!\n", command); - set_eof(fd); - return 0; - } // switch - } // while + accounts->save(accounts, &acc); - RFIFOSKIP(fd,RFIFOREST(fd)); - return 0; -} + if( sd->sex != 'S' && sd->account_id < START_ACCOUNT_NUM ) + ShowWarning("Account %s has account id %d! Account IDs must be over %d to work properly!\n", sd->userid, sd->account_id, START_ACCOUNT_NUM); -//-------------------------------------------- -// Test to know if an IP come from LAN or WAN. -//-------------------------------------------- -int lan_subnetcheck(uint32 ip) -{ - int i; - ARR_FIND( 0, subnet_count, i, (subnet[i].char_ip & subnet[i].mask) == (ip & subnet[i].mask) ); - return ( i < subnet_count ) ? subnet[i].char_ip : 0; + return -1; // account OK } void login_auth_ok(struct login_session_data* sd) @@ -1614,8 +1058,6 @@ void login_auth_ok(struct login_session_data* sd) struct auth_node* node; int i; - sd->level = isGM(sd->account_id); - if( sd->level < login_config.min_level_to_connect ) { ShowStatus("Connection refused: the minimum GM level for connection is %d (account: %s, GM level: %d).\n", login_config.min_level_to_connect, sd->userid, sd->level); @@ -1673,6 +1115,8 @@ void login_auth_ok(struct login_session_data* sd) } } + login_log(ip, sd->userid, 100, "login ok"); + if( sd->level > 0 ) ShowStatus("Connection of the GM (level:%d) account '%s' accepted.\n", sd->level, sd->userid); else @@ -1728,6 +1172,42 @@ void login_auth_ok(struct login_session_data* sd) void login_auth_failed(struct login_session_data* sd, int result) { int fd = sd->fd; + uint32 ip = session[fd]->client_addr; + + if (login_config.log_login) + { + const char* error; + switch( result ) { + case 0: error = "Unregistered ID."; break; // 0 = Unregistered ID + case 1: error = "Incorrect Password."; break; // 1 = Incorrect Password + case 2: error = "Account Expired."; break; // 2 = This ID is expired + case 3: error = "Rejected from server."; break; // 3 = Rejected from Server + case 4: error = "Blocked by GM."; break; // 4 = You have been blocked by the GM Team + case 5: error = "Not latest game EXE."; break; // 5 = Your Game's EXE file is not the latest version + case 6: error = "Banned."; break; // 6 = Your are Prohibited to log in until %s + case 7: error = "Server Over-population."; break; // 7 = Server is jammed due to over populated + case 8: error = "Account limit from company"; break; // 8 = No more accounts may be connected from this company + case 9: error = "Ban by DBA"; break; // 9 = MSI_REFUSE_BAN_BY_DBA + case 10: error = "Email not confirmed"; break; // 10 = MSI_REFUSE_EMAIL_NOT_CONFIRMED + case 11: error = "Ban by GM"; break; // 11 = MSI_REFUSE_BAN_BY_GM + case 12: error = "Working in DB"; break; // 12 = MSI_REFUSE_TEMP_BAN_FOR_DBWORK + case 13: error = "Self Lock"; break; // 13 = MSI_REFUSE_SELF_LOCK + case 14: error = "Not Permitted Group"; break; // 14 = MSI_REFUSE_NOT_PERMITTED_GROUP + case 15: error = "Not Permitted Group"; break; // 15 = MSI_REFUSE_NOT_PERMITTED_GROUP + case 99: error = "Account gone."; break; // 99 = This ID has been totally erased + case 100: error = "Login info remains."; break; // 100 = Login information remains at %s + case 101: error = "Hacking investigation."; break; // 101 = Account has been locked for a hacking investigation. Please contact the GM Team for more information + case 102: error = "Bug investigation."; break; // 102 = This account has been temporarily prohibited from login due to a bug-related investigation + case 103: error = "Deleting char."; break; // 103 = This character is being deleted. Login is temporarily unavailable for the time being + case 104: error = "Deleting spouse char."; break; // 104 = This character is being deleted. Login is temporarily unavailable for the time being + default : error = "Unknown Error."; break; + } + + login_log(ip, sd->userid, result, error); + } + + if( result == 1 && login_config.dynamic_pass_failure_ban ) + ipban_log(ip); // log failed password attempt WFIFOHEAD(fd,23); WFIFOW(fd,0) = 0x6a; @@ -1736,39 +1216,54 @@ void login_auth_failed(struct login_session_data* sd, int result) memset(WFIFOP(fd,3), '\0', 20); else {// 6 = Your are Prohibited to log in until %s - char tmpstr[20]; - int i = search_account_index(sd->userid); - time_t unban_time = ( i >= 0 ) ? auth_dat[i].unban_time : 0; - strftime(tmpstr, 20, login_config.date_format, localtime(&unban_time)); - safestrncpy((char*)WFIFOP(fd,3), tmpstr, 20); // ban timestamp goes here + struct mmo_account acc; + time_t unban_time = ( accounts->load_str(accounts, &acc, sd->userid) ) ? acc.unban_time : 0; + timestamp2string((char*)WFIFOP(fd,3), 20, unban_time, login_config.date_format); } WFIFOSET(fd,23); } + //---------------------------------------------------------------------------------------- // Default packet parsing (normal players or administation/char-server connection requests) //---------------------------------------------------------------------------------------- int parse_login(int fd) { - struct login_session_data* sd = session[fd]->session_data; + struct login_session_data* sd = (struct login_session_data*)session[fd]->session_data; int result; - uint32 ipl; + char ip[16]; + uint32 ipl = session[fd]->client_addr; + ip2str(ipl, ip); if( session[fd]->flag.eof ) { + ShowInfo("Closed connection from '"CL_WHITE"%s"CL_RESET"'.\n", ip); do_close(fd); return 0; } - if( sd == NULL ) { - sd = CREATE(session[fd]->session_data, struct login_session_data, 1); + if( sd == NULL ) + { + // Perform ip-ban check + if( login_config.ipban && ipban_check(ipl) ) + { + ShowStatus("Connection refused: IP isn't authorised (deny/allow, ip: %s).\n", ip); + login_log(ipl, "unknown", -3, "ip banned"); + WFIFOHEAD(fd,23); + WFIFOW(fd,0) = 0x6a; + WFIFOB(fd,2) = 3; // 3 = Rejected from Server + WFIFOSET(fd,23); + set_eof(fd); + return 0; + } + + // create a session for this new connection + CREATE(session[fd]->session_data, struct login_session_data, 1); + sd = (struct login_session_data*)session[fd]->session_data; sd->fd = fd; } - ipl = session[fd]->client_addr; - ip2str(ipl, ip); - while( RFIFOREST(fd) >= 2 ) { uint16 command = RFIFOW(fd,0); @@ -1782,42 +1277,55 @@ int parse_login(int fd) RFIFOSKIP(fd,26); break; - case 0x0204: // New alive packet: structure: 0x204 .16B. (new ragexe from 22 june 2004) + // client md5 hash (binary) + case 0x0204: // S 0204 .16B (kRO 2004-05-31aSakexe langtype 0 and 6) if (RFIFOREST(fd) < 18) return 0; RFIFOSKIP(fd,18); break; - case 0x0064: // request client login - case 0x01dd: // request client login (encryption mode) - case 0x0277: // New login packet (kRO 2006-04-24aSakexe langtype 0) - case 0x02b0: // New login packet (kRO 2007-05-14aSakexe langtype 0) + // request client login + case 0x0064: // S 0064 .l .24B .24B .B + case 0x01dd: // S 01dd .l .24B .16B .B + case 0x0277: // S 0277 .l .24B .24B .29B .B (kRO 2006-04-24aSakexe langtype 0) + case 0x02b0: // S 02b0 .l .24B .24B .B .16S .13S .B (kRO 2007-05-14aSakexe langtype 0) { - size_t packet_len = RFIFOREST(fd); // assume no other packet was sent + size_t packet_len = RFIFOREST(fd); if( (command == 0x0064 && packet_len < 55) || (command == 0x01dd && packet_len < 47) || (command == 0x0277 && packet_len < 84) || (command == 0x02b0 && packet_len < 85) ) - return 0; - - // S 0064 .l .24B .24B .B - // S 01dd .l .24B .16B .B - // S 0277 .l .24B .24B .29B .B - // S 02b0 .l .24B .24B .30B .B - - sd->version = RFIFOL(fd,2); - safestrncpy(sd->userid, (char*)RFIFOP(fd,6), NAME_LENGTH); remove_control_chars(sd->userid); - if (command != 0x01dd) { + return 0; + } + { + int version = RFIFOL(fd,2); + char* userid = (char*)RFIFOP(fd,6); + char* passwd = (char*)RFIFOP(fd,30); + RFIFOSKIP(fd,RFIFOREST(fd)); // assume no other packet was sent + + sd->version = version; + safestrncpy(sd->userid, userid, NAME_LENGTH); + if( command != 0x01dd ) + { ShowStatus("Request for connection of %s (ip: %s).\n", sd->userid, ip); - safestrncpy(sd->passwd, (char*)RFIFOP(fd,30), NAME_LENGTH); remove_control_chars(sd->passwd); + safestrncpy(sd->passwd, passwd, NAME_LENGTH); + if( login_config.use_md5_passwds ) + MD5_String(sd->passwd, sd->passwd); sd->passwdenc = 0; - } else { + } + else + { ShowStatus("Request for connection (encryption mode) of %s (ip: %s).\n", sd->userid, ip); - memcpy(sd->passwd, RFIFOP(fd,30), 16); sd->passwd[16] = '\0'; // raw binary data here! + memcpy(sd->passwd, passwd, 16); sd->passwd[16] = '\0'; // raw binary data here! sd->passwdenc = PASSWORDENC; } - RFIFOSKIP(fd,packet_len); + + if( sd->passwdenc != 0 && login_config.use_md5_passwds ) + { + login_auth_failed(sd, 3); // send "rejected from server" + return 0; + } result = mmo_auth(sd); @@ -1852,25 +1360,26 @@ int parse_login(int fd) return 0; { char server_name[20]; + char message[256]; uint32 server_ip; uint16 server_port; uint16 maintenance; uint16 new_; - safestrncpy(sd->userid, (char*)RFIFOP(fd,2), NAME_LENGTH); //remove_control_chars(account.userid); - safestrncpy(sd->passwd, (char*)RFIFOP(fd,26), NAME_LENGTH); //remove_control_chars(account.passwd); + safestrncpy(sd->userid, (char*)RFIFOP(fd,2), NAME_LENGTH); + safestrncpy(sd->passwd, (char*)RFIFOP(fd,26), NAME_LENGTH); sd->passwdenc = 0; sd->version = login_config.client_version_to_connect; // hack to skip version check - server_ip = ntohl(RFIFOL(fd,54)); server_port = ntohs(RFIFOW(fd,58)); - - safestrncpy(server_name, (char*)RFIFOP(fd,60), 20); remove_control_chars(server_name); + safestrncpy(server_name, (char*)RFIFOP(fd,60), 20); maintenance = RFIFOW(fd,82); new_ = RFIFOW(fd,84); RFIFOSKIP(fd,86); - ShowInfo("Connection request of the char-server '%s' @ %d.%d.%d.%d:%d (account: '%s', pass: '%s', ip: '%s')\n", server_name, CONVIP(server_ip), server_port, sd->userid, sd->passwd, ip); + ShowInfo("Connection request of the char-server '%s' @ %u.%u.%u.%u:%u (account: '%s', pass: '%s', ip: '%s')\n", server_name, CONVIP(server_ip), server_port, sd->userid, sd->passwd, ip); + sprintf(message, "charserver - %s@%u.%u.%u.%u:%u", server_name, CONVIP(server_ip), server_port); + login_log(session[fd]->client_addr, sd->userid, 100, message); result = mmo_auth(sd); if( result == -1 && sd->sex == 'S' && sd->account_id < MAX_SERVERS && server[sd->account_id].fd == -1 ) @@ -1893,9 +1402,6 @@ int parse_login(int fd) WFIFOW(fd,0) = 0x2711; WFIFOB(fd,2) = 0; WFIFOSET(fd,3); - - // send GM account to char-server - send_GM_accounts(fd); } else { @@ -1926,57 +1432,25 @@ int parse_login(int fd) case 0x7918: // Request for administation login if ((int)RFIFOREST(fd) < 4 || (int)RFIFOREST(fd) < ((RFIFOW(fd,2) == 0) ? 28 : 20)) return 0; - WFIFOW(fd,0) = 0x7919; - WFIFOB(fd,2) = 1; - if( session[fd]->client_addr != admin_allowed_ip ) { - ShowNotice("'ladmin'-login: Connection in administration mode refused: IP isn't authorised (ladmin_allow, ip: %s).\n", ip); - } else { - struct login_session_data *ld = (struct login_session_data*)session[fd]->session_data; - if (RFIFOW(fd,2) == 0) { // non encrypted password - char password[25]; - memcpy(password, RFIFOP(fd,4), 24); - password[24] = '\0'; - remove_control_chars(password); - if( !admin_state ) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - remote administration is disabled (non encrypted password: %s, ip: %s)\n", password, ip); - else - if( strcmp(password, admin_pass) != 0) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - invalid password (non encrypted password: %s, ip: %s)\n", password, ip); - else { - // If remote administration is enabled and password sent by client matches password read from login server configuration file - ShowNotice("'ladmin'-login: Connection in administration mode accepted (non encrypted password: %s, ip: %s)\n", password, ip); - WFIFOB(fd,2) = 0; - session[fd]->func_parse = parse_admin; - } - } else { // encrypted password - if (!ld) - ShowError("'ladmin'-login: error! MD5 key not created/requested for an administration login.\n"); - else { - char md5str[64] = "", md5bin[32]; - if (RFIFOW(fd,2) == 1) { - sprintf(md5str, "%s%s", ld->md5key, admin_pass); // 20 24 - } else if (RFIFOW(fd,2) == 2) { - sprintf(md5str, "%s%s", admin_pass, ld->md5key); // 24 20 - } - MD5_String2binary(md5str, md5bin); - if( !admin_state ) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - remote administration is disabled (encrypted password, ip: %s)\n", ip); - else - if( memcmp(md5bin, RFIFOP(fd,4), 16) != 0 ) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - invalid password (encrypted password, ip: %s)\n", ip); - else { - // If remote administration is enabled and password hash sent by client matches hash of password read from login server configuration file - ShowNotice("'ladmin'-login: Connection in administration mode accepted (encrypted password, ip: %s)\n", ip); - ShowNotice("Connection of a remote administration accepted (encrypted password).\n"); - WFIFOB(fd,2) = 0; - session[fd]->func_parse = parse_admin; - } - } - } + { + int passwdenc = (int)RFIFOW(fd,2); + const char* passwd = (char*)RFIFOP(fd,4); + + if( passwdenc == 0 ) { // non encrypted password + safestrncpy(sd->passwd, passwd, NAME_LENGTH); + sd->passwdenc = 0; + } else { // encrypted password + memcpy(sd->passwd, passwd, 16); sd->passwd[16] = '\0'; // raw binary data here! + sd->passwdenc = passwdenc; } - WFIFOSET(fd,3); - RFIFOSKIP(fd, (RFIFOW(fd,2) == 0) ? 28 : 20); + RFIFOSKIP(fd, (passwdenc == 0) ? 28 : 20); + + WFIFOHEAD(fd,3); + WFIFOW(fd,0) = 0x7919; + WFIFOB(fd,2) = ladmin_auth(sd, ip) ? 0 : 1; + WFIFOSET(fd,3); + } break; default: @@ -1990,102 +1464,30 @@ int parse_login(int fd) return 0; } -//----------------------- -// Console Command Parser [Wizputer] -//----------------------- -int parse_console(char* buf) -{ - char command[256]; - - memset(command, 0, sizeof(command)); - - sscanf(buf, "%[^\n]", command); - - ShowInfo("Console command :%s", command); - - if( strcmpi("shutdown", command) == 0 || - strcmpi("exit", command) == 0 || - strcmpi("quit", command) == 0 || - strcmpi("end", command) == 0 ) - runflag = 0; - else - if( strcmpi("alive", command) == 0 || - strcmpi("status", command) == 0 ) - ShowInfo(CL_CYAN"Console: "CL_BOLD"I'm Alive."CL_RESET"\n"); - else - if( strcmpi("help", command) == 0 ) { - ShowInfo(CL_BOLD"Help of commands:"CL_RESET"\n"); - ShowInfo(" To shutdown the server:\n"); - ShowInfo(" 'shutdown|exit|quit|end'\n"); - ShowInfo(" To know if server is alive:\n"); - ShowInfo(" 'alive|status'\n"); - } - - return 0; -} - -static int online_data_cleanup_sub(DBKey key, void *data, va_list ap) -{ - struct online_login_data *character= (struct online_login_data*)data; - if (character->char_server == -2) //Unknown server.. set them offline - remove_online_user(character->account_id); - return 0; -} - -static int online_data_cleanup(int tid, unsigned int tick, int id, intptr data) -{ - online_db->foreach(online_db, online_data_cleanup_sub); - return 0; -} -//---------------------------------- -// Reading Lan Support configuration -//---------------------------------- -int login_lan_config_read(const char *lancfgName) +void login_set_defaults() { - FILE *fp; - int line_num = 0; - char line[1024], w1[64], w2[64], w3[64], w4[64]; - - if((fp = fopen(lancfgName, "r")) == NULL) { - ShowWarning("LAN Support configuration file is not found: %s\n", lancfgName); - return 1; - } - - ShowInfo("Reading the configuration file %s...\n", lancfgName); - - while(fgets(line, sizeof(line), fp)) - { - line_num++; - if ((line[0] == '/' && line[1] == '/') || line[0] == '\n' || line[1] == '\n') - continue; - - if(sscanf(line,"%[^:]: %[^:]:%[^:]:%[^\r\n]", w1, w2, w3, w4) != 4) - { - ShowWarning("Error syntax of configuration file %s in line %d.\n", lancfgName, line_num); - continue; - } - - if( strcmpi(w1, "subnet") == 0 ) - { - subnet[subnet_count].mask = str2ip(w2); - subnet[subnet_count].char_ip = str2ip(w3); - subnet[subnet_count].map_ip = str2ip(w4); - - if( (subnet[subnet_count].char_ip & subnet[subnet_count].mask) != (subnet[subnet_count].map_ip & subnet[subnet_count].mask) ) - { - ShowError("%s: Configuration Error: The char server (%s) and map server (%s) belong to different subnetworks!\n", lancfgName, w3, w4); - continue; - } - - subnet_count++; - } - } - - ShowStatus("Read information about %d subnetworks.\n", subnet_count); + login_config.login_ip = INADDR_ANY; + login_config.login_port = 6900; + login_config.ip_sync_interval = 0; + login_config.log_login = true; + safestrncpy(login_config.date_format, "%Y-%m-%d %H:%M:%S", sizeof(login_config.date_format)); + login_config.console = false; + login_config.new_account_flag = true; + login_config.use_md5_passwds = false; + login_config.min_level_to_connect = 0; + login_config.online_check = true; + login_config.check_client_version = false; + login_config.client_version_to_connect = 20; - fclose(fp); - return 0; + login_config.ipban = true; + login_config.dynamic_pass_failure_ban = true; + login_config.dynamic_pass_failure_ban_interval = 5; + login_config.dynamic_pass_failure_ban_limit = 7; + login_config.dynamic_pass_failure_ban_duration = 5; + login_config.use_dnsbl = false; + safestrncpy(login_config.dnsbl_servs, "", sizeof(login_config.dnsbl_servs)); + safestrncpy(login_config.account_engine, "auto", sizeof(login_config.account_engine)); } //----------------------------------- @@ -2129,26 +1531,6 @@ int login_config_read(const char* cfgName) else if(!strcmpi(w1, "log_login")) login_config.log_login = (bool)config_switch(w2); - else if (strcmpi(w1, "admin_state") == 0) { - admin_state = (bool)config_switch(w2); - } else if (strcmpi(w1, "admin_pass") == 0) { - memset(admin_pass, 0, sizeof(admin_pass)); - strncpy(admin_pass, w2, sizeof(admin_pass)); - admin_pass[sizeof(admin_pass)-1] = '\0'; - } else if (strcmpi(w1, "admin_allowed_ip") == 0) - admin_allowed_ip = host2ip(w2); - else if (strcmpi(w1, "account_filename") == 0) { - memset(account_filename, 0, sizeof(account_filename)); - strncpy(account_filename, w2, sizeof(account_filename)); - account_filename[sizeof(account_filename)-1] = '\0'; - } else if (strcmpi(w1, "gm_account_filename") == 0) { - memset(GM_account_filename, 0, sizeof(GM_account_filename)); - strncpy(GM_account_filename, w2, sizeof(GM_account_filename)); - GM_account_filename[sizeof(GM_account_filename)-1] = '\0'; - } - else if (strcmpi(w1, "gm_account_filename_check_timer") == 0) - gm_account_filename_check_timer = atoi(w2); - else if(!strcmpi(w1, "new_account")) login_config.new_account_flag = (bool)config_switch(w2); else if(!strcmpi(w1, "start_limited_time")) @@ -2165,8 +1547,6 @@ int login_config_read(const char* cfgName) safestrncpy(login_config.date_format, w2, sizeof(login_config.date_format)); else if(!strcmpi(w1, "console")) login_config.console = (bool)config_switch(w2); -// else if(!strcmpi(w1, "case_sensitive")) -// login_config.case_sensitive = config_switch(w2); else if(!strcmpi(w1, "allowed_regs")) //account flood protection system allowed_regs = atoi(w2); else if(!strcmpi(w1, "time_allowed")) @@ -2179,77 +1559,87 @@ int login_config_read(const char* cfgName) safestrncpy(login_config.dnsbl_servs, w2, sizeof(login_config.dnsbl_servs)); else if(!strcmpi(w1, "ip_sync_interval")) login_config.ip_sync_interval = (unsigned int)1000*60*atoi(w2); //w2 comes in minutes. + + else if(!strcmpi(w1, "admin_state")) + login_config.admin_state = (bool)config_switch(w2); + else if(!strcmpi(w1, "admin_pass")) + safestrncpy(login_config.admin_pass, w2, sizeof(login_config.admin_pass)); + else if(!strcmpi(w1, "admin_allowed_host")) + safestrncpy(login_config.admin_allowed_host, w2, sizeof(login_config.admin_pass)); + else if(!strcmpi(w1, "import")) login_config_read(w2); + else + if( ipban_config_read(w1, w2) ) + continue; + else if(!strcmpi(w1, "account.engine")) + safestrncpy(login_config.account_engine, w2, sizeof(login_config.account_engine)); + else + {// try the account engines + int i; + for( i = 0; account_engines[i].constructor; ++i ) + { + AccountDB* db = account_engines[i].db; + if( db && db->set_property(db, w1, w2) ) + break; + } + } } fclose(fp); ShowInfo("Finished reading %s.\n", cfgName); return 0; } -//------------------------------------- -// Displaying of configuration warnings -//------------------------------------- -void display_conf_warnings(void) +//----------------------------------- +// Reading interserver configuration file +//----------------------------------- +void inter_config_read(const char* cfgName) { - if( admin_state ) { - if (admin_pass[0] == '\0') { - ShowWarning("Administrator password is void (admin_pass).\n"); - } else if (strcmp(admin_pass, "admin") == 0) { - ShowWarning("You are using the default administrator password (admin_pass).\n"); - ShowWarning(" We highly recommend that you change it.\n"); - } - } - - if (gm_account_filename_check_timer < 0) { - ShowWarning("Invalid value for gm_account_filename_check_timer parameter. Setting to 15 sec (default).\n"); - gm_account_filename_check_timer = 15; - } else if (gm_account_filename_check_timer == 1) { - ShowWarning("Invalid value for gm_account_filename_check_timer parameter. Setting to 2 sec (minimum value).\n"); - gm_account_filename_check_timer = 2; + char line[1024], w1[1024], w2[1024]; + FILE* fp = fopen(cfgName, "r"); + if(fp == NULL) { + ShowError("file not found: %s\n", cfgName); + return; } + ShowInfo("reading configuration file %s...\n", cfgName); + while(fgets(line, sizeof(line), fp)) + { + if (line[0] == '/' && line[1] == '/') + continue; + if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) < 2) + continue; - if (login_config.min_level_to_connect < 0) { // 0: all players, 1-99 at least gm level x - ShowWarning("Invalid value for min_level_to_connect (%d) parameter -> setting 0 (any player).\n", login_config.min_level_to_connect); - login_config.min_level_to_connect = 0; - } else if (login_config.min_level_to_connect > 99) { // 0: all players, 1-99 at least gm level x - ShowWarning("Invalid value for min_level_to_connect (%d) parameter -> setting to 99 (only GM level 99)\n", login_config.min_level_to_connect); - login_config.min_level_to_connect = 99; - } + // settings common for multiple components + ipban_config_read(w1,w2); + loginlog_config_read(w1,w2); - if (login_config.start_limited_time < -1) { // -1: create unlimited account, 0 or more: additionnal sec from now to create limited time - ShowWarning("Invalid value for start_limited_time parameter\n"); - ShowWarning(" -> setting to -1 (new accounts are created with unlimited time).\n"); - login_config.start_limited_time = -1; + if (!strcmpi(w1, "import")) + inter_config_read(w2); } - - return; + fclose(fp); + ShowInfo("Done reading %s.\n", cfgName); } -void login_set_defaults() +/// Get the engine selected in the config settings. +/// Updates the config setting with the selected engine if 'auto'. +static AccountDB* get_account_engine(void) { - login_config.login_ip = INADDR_ANY; - login_config.login_port = 6900; - login_config.ip_sync_interval = 0; - login_config.log_login = true; - safestrncpy(login_config.date_format, "%Y-%m-%d %H:%M:%S", sizeof(login_config.date_format)); - login_config.console = false; - login_config.new_account_flag = true; -// login_config.case_sensitive = true; - login_config.use_md5_passwds = false; -// login_config.login_gm_read = true; - login_config.min_level_to_connect = 0; - login_config.online_check = true; - login_config.check_client_version = false; - login_config.client_version_to_connect = 20; + int i; + bool get_first = (strcmp(login_config.account_engine,"auto") == 0); -// login_config.ipban = true; -// login_config.dynamic_pass_failure_ban = true; -// login_config.dynamic_pass_failure_ban_interval = 5; -// login_config.dynamic_pass_failure_ban_limit = 7; -// login_config.dynamic_pass_failure_ban_duration = 5; - login_config.use_dnsbl = false; - safestrncpy(login_config.dnsbl_servs, "", sizeof(login_config.dnsbl_servs)); + for( i = 0; account_engines[i].constructor; ++i ) + { + char name[sizeof(login_config.account_engine)]; + AccountDB* db = account_engines[i].db; + if( db && db->get_property(db, "engine.name", name, sizeof(name)) && + (get_first || strcmp(name, login_config.account_engine) == 0) ) + { + if( get_first ) + safestrncpy(login_config.account_engine, name, sizeof(login_config.account_engine)); + return db; + } + } + return NULL; } //-------------------------------------- @@ -2258,15 +1648,28 @@ void login_set_defaults() void do_final(void) { int i, fd; + + login_log(0, "login server", 100, "login server shutdown"); ShowStatus("Terminating...\n"); - mmo_auth_sync(); + if( login_config.log_login ) + loginlog_final(); + + ipban_final(); + + for( i = 0; account_engines[i].constructor; ++i ) + {// destroy all account engines + AccountDB* db = account_engines[i].db; + if( db ) + { + db->destroy(db); + account_engines[i].db = NULL; + } + } + accounts = NULL; // destroyed in account_engines online_db->destroy(online_db, NULL); auth_db->destroy(auth_db, NULL); - if(auth_dat) aFree(auth_dat); - if(gm_account_db) aFree(gm_account_db); - for (i = 0; i < MAX_SERVERS; i++) { if ((fd = server[i].fd) >= 0) { memset(&server[i], 0, sizeof(struct mmo_char_server)); @@ -2299,20 +1702,27 @@ int do_init(int argc, char** argv) { int i; - login_set_defaults(); + // intialize engines (to accept config settings) + for( i = 0; account_engines[i].constructor; ++i ) + account_engines[i].db = account_engines[i].constructor(); // read login-server configuration + login_set_defaults(); login_config_read((argc > 1) ? argv[1] : LOGIN_CONF_NAME); - display_conf_warnings(); // not in login_config_read, because we can use 'import' option, and display same message twice or more login_lan_config_read((argc > 2) ? argv[2] : LAN_CONF_NAME); + inter_config_read(INTER_CONF_NAME); srand((unsigned int)time(NULL)); for( i = 0; i < MAX_SERVERS; i++ ) server[i].fd = -1; - // Accounts database init - mmo_auth_init(); + // initialize logging + if( login_config.log_login ) + loginlog_init(); + + // initialize static and dynamic ipban system + ipban_init(); // Online user database init online_db = idb_alloc(DB_OPT_RELEASE_DATA); @@ -2321,21 +1731,9 @@ int do_init(int argc, char** argv) // Interserver auth init auth_db = idb_alloc(DB_OPT_RELEASE_DATA); - // Read account information. - read_gm_account(); - // set default parser as parse_login function set_defaultparse(parse_login); - add_timer_func_list(check_auth_sync, "check_auth_sync"); - add_timer_interval(gettick() + 60000, check_auth_sync, 0, 0, 60000); // every 60 sec we check if we must save accounts file (only if necessary to save) - - // every x sec we check if gm file has been changed - if( gm_account_filename_check_timer ) { - add_timer_func_list(check_GM_file, "check_GM_file"); - add_timer_interval(gettick() + gm_account_filename_check_timer * 1000, check_GM_file, 0, 0, gm_account_filename_check_timer * 1000); - } - // every 10 minutes cleanup online account db. add_timer_func_list(online_data_cleanup, "online_data_cleanup"); add_timer_interval(gettick() + 600*1000, online_data_cleanup, 0, 0, 600*1000); @@ -2346,17 +1744,30 @@ int do_init(int argc, char** argv) add_timer_interval(gettick() + login_config.ip_sync_interval, sync_ip_addresses, 0, 0, login_config.ip_sync_interval); } + // Account database init + accounts = get_account_engine(); + if( accounts == NULL ) + { + ShowError("do_init: account engine '%s' not found.\n", login_config.account_engine); + runflag = 0; + return 1; + } + else + { + ShowInfo("Using account engine '%s'.\n", login_config.account_engine); + accounts->init(accounts); + } + if( login_config.console ) { //##TODO invoke a CONSOLE_START plugin event } - new_reg_tick = gettick(); - // server port open & binding login_fd = make_listen_bind(login_config.login_ip, login_config.login_port); ShowStatus("The login-server is "CL_GREEN"ready"CL_RESET" (Server is listening on the port %u).\n\n", login_config.login_port); + login_log(0, "login server", 100, "login server started"); return 0; } diff --git a/src/login/login.h b/src/login/login.h index 1147d6bb6..8ffa06eec 100644 --- a/src/login/login.h +++ b/src/login/login.h @@ -7,6 +7,7 @@ #include "../common/mmo.h" // NAME_LENGTH #define LOGIN_CONF_NAME "conf/login_athena.conf" +#define INTER_CONF_NAME "conf/inter_athena.conf" #define LAN_CONF_NAME "conf/subnet_athena.conf" // supported encryption types: 1- passwordencrypt, 2- passwordencrypt2, 3- both @@ -38,9 +39,9 @@ struct mmo_char_server { int fd; uint32 ip; uint16 port; - uint16 users; // user count on this server - uint16 maintenance; // in maintenance mode? - uint16 new_; // allows creating new chars? + uint16 users; // user count on this server + uint16 maintenance; // in maintenance mode? + uint16 new_; // should display as 'new'? }; struct Login_Config { @@ -53,42 +54,28 @@ struct Login_Config { bool console; // console input system enabled? bool new_account_flag; // autoregistration via _M/_F ? int start_limited_time; // new account expiration time (-1: unlimited) -// bool case_sensitive; // are logins case sensitive ? bool use_md5_passwds; // work with password hashes instead of plaintext passwords? -// bool login_gm_read; // should the login server handle info about gm accounts? int min_level_to_connect; // minimum level of player/GM (0: player, 1-99: GM) to connect bool online_check; // reject incoming players that are already registered as online ? bool check_client_version; // check the clientversion set in the clientinfo ? int client_version_to_connect; // the client version needed to connect (if checking is enabled) -// bool ipban; // perform IP blocking (via contents of `ipbanlist`) ? -// bool dynamic_pass_failure_ban; // automatic IP blocking due to failed login attemps ? -// unsigned int dynamic_pass_failure_ban_interval; // how far to scan the loginlog for password failures -// unsigned int dynamic_pass_failure_ban_limit; // number of failures needed to trigger the ipban -// unsigned int dynamic_pass_failure_ban_duration; // duration of the ipban + bool admin_state; // is ladmin support enabled? + char admin_pass[24]; // security password for ladmin + char admin_allowed_host[32]; // host/ip that is allowed to connect as ladmin + + bool ipban; // perform IP blocking (via contents of `ipbanlist`) ? + bool dynamic_pass_failure_ban; // automatic IP blocking due to failed login attemps ? + unsigned int dynamic_pass_failure_ban_interval; // how far to scan the loginlog for password failures + unsigned int dynamic_pass_failure_ban_limit; // number of failures needed to trigger the ipban + unsigned int dynamic_pass_failure_ban_duration; // duration of the ipban bool use_dnsbl; // dns blacklist blocking ? char dnsbl_servs[1024]; // comma-separated list of dnsbl servers + char account_engine[256]; // name of the engine to use (defaults to auto, for the first available engine) }; -struct mmo_account { - - int account_id; - char sex; - char userid[24]; - char pass[32+1]; // 23+1 for normal, 32+1 for md5-ed passwords - char lastlogin[24]; - int logincount; - uint32 state; // packet 0x006a value + 1 (0: compte OK) - char email[40]; // e-mail (by default: a@a.com) - char error_message[20]; // Message of error code #6 = Your are Prohibited to log in until %s (packet 0x006a) - time_t unban_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban) - time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) - char last_ip[16]; // save of last IP of connection - char memo[255]; // a memo field - int account_reg2_num; - struct global_reg account_reg2[ACCOUNT_REG2_NUM]; // account script variables (stored on login server) -}; +extern struct Login_Config login_config; #endif /* _LOGIN_H_ */ diff --git a/src/login/loginlog.h b/src/login/loginlog.h new file mode 100644 index 000000000..749d0fbf1 --- /dev/null +++ b/src/login/loginlog.h @@ -0,0 +1,14 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#ifndef __LOGINLOG_H_INCLUDED__ +#define __LOGINLOG_H_INCLUDED__ + + +void login_log(uint32 ip, const char* username, int rcode, const char* message); +bool loginlog_init(void); +bool loginlog_final(void); +bool loginlog_config_read(const char* w1, const char* w2); + + +#endif // __LOGINLOG_H_INCLUDED__ diff --git a/src/login/loginlog_sql.c b/src/login/loginlog_sql.c new file mode 100644 index 000000000..96bff6957 --- /dev/null +++ b/src/login/loginlog_sql.c @@ -0,0 +1,93 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#include "../common/cbasetypes.h" +#include "../common/mmo.h" +#include "../common/socket.h" +#include "../common/sql.h" +#include "../common/strlib.h" +#include +#include // exit + +char log_db_ip[32] = "127.0.0.1"; +uint16 log_db_port = 3306; +char log_db_id[32] = "ragnarok"; +char log_db_pw[32] = "ragnarok"; +char log_db_db[32] = "ragnarok"; +char log_db[32] = "log"; + +char loginlog_db[256] = "loginlog"; +Sql* sql_handle; +bool enabled = false; + + +/*============================================= + * Records an event in the login log + *---------------------------------------------*/ +void login_log(uint32 ip, const char* username, int rcode, const char* message) +{ + char esc_username[NAME_LENGTH*2+1]; + char esc_message[255*2+1]; + int retcode; + + if( !enabled ) + return; + + Sql_EscapeStringLen(sql_handle, esc_username, username, strnlen(username, NAME_LENGTH)); + Sql_EscapeStringLen(sql_handle, esc_message, message, strnlen(message, 255)); + + retcode = Sql_Query(sql_handle, + "INSERT INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%s', '%s', '%d', '%s')", + loginlog_db, ip2str(ip,NULL), esc_username, rcode, message); + + if( retcode != SQL_SUCCESS ) + Sql_ShowDebug(sql_handle); +} + +bool loginlog_init(void) +{ + sql_handle = Sql_Malloc(); + + if( SQL_ERROR == Sql_Connect(sql_handle, log_db_id, log_db_pw, log_db_ip, log_db_port, log_db_db) ) + { + Sql_ShowDebug(sql_handle); + Sql_Free(sql_handle); + exit(EXIT_FAILURE); + } + + enabled = true; + + return true; +} + +bool loginlog_final(void) +{ + Sql_Free(sql_handle); + sql_handle = NULL; + return true; +} + +bool loginlog_config_read(const char* key, const char* value) +{ + if( strcmpi(key, "log_db_ip") == 0 ) + safestrncpy(log_db_ip, value, sizeof(log_db_ip)); + else + if( strcmpi(key, "log_db_port") == 0 ) + log_db_port = (uint16)strtoul(value, NULL, 10); + else + if( strcmpi(key, "log_db_id") == 0 ) + safestrncpy(log_db_id, value, sizeof(log_db_id)); + else + if( strcmpi(key, "log_db_pw") == 0 ) + safestrncpy(log_db_pw, value, sizeof(log_db_pw)); + else + if( strcmpi(key, "log_db") == 0 ) + safestrncpy(log_db, value, sizeof(log_db)); + else + if( strcmpi(key, "loginlog_db") == 0 ) + safestrncpy(loginlog_db, value, sizeof(loginlog_db)); + else + return false; + + return true; +} diff --git a/src/login/loginlog_txt.c b/src/login/loginlog_txt.c new file mode 100644 index 000000000..d40142110 --- /dev/null +++ b/src/login/loginlog_txt.c @@ -0,0 +1,74 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#include "../common/cbasetypes.h" +#include "../common/mmo.h" +#include "../common/core.h" +#include "../common/malloc.h" +#include "../common/socket.h" +#include "../common/strlib.h" +#include "../common/showmsg.h" +#include "account.h" +#include "login.h" + +#include +#include +#include + +char login_log_filename[1024] = "log/login.log"; + + + +/*============================================= + * Records an event in the login log + *---------------------------------------------*/ +void login_log(uint32 ip, const char* username, int rcode, const char* message) +{ + FILE* log_fp; + + if( !login_config.log_login ) + return; + + log_fp = fopen(login_log_filename, "a"); + if( log_fp != NULL ) + { + char esc_username[NAME_LENGTH*4+1]; + char esc_message[255*4+1]; + time_t raw_time; + char str_time[24]; + + sv_escape_c(esc_username, username, NAME_LENGTH, NULL); + sv_escape_c(esc_message, message, 255, NULL); + + time(&raw_time); + strftime(str_time, 24, login_config.date_format, localtime(&raw_time)); + str_time[23] = '\0'; + + fprintf(log_fp, "%s\t%s\t%s\t%d\t%s\n", str_time, ip2str(ip,NULL), esc_username, rcode, esc_message); + + fclose(log_fp); + } +} + + +bool loginlog_config_read(const char* w1, const char* w2) +{ + if(!strcmpi(w1, "login_log_filename")) + safestrncpy(login_log_filename, w2, sizeof(login_log_filename)); + else + return false; + + return true; +} + + +bool loginlog_init(void) +{ + return true; +} + + +bool loginlog_final(void) +{ + return true; +} diff --git a/src/login_sql/Makefile.in b/src/login_sql/Makefile.in deleted file mode 100644 index 05bd9262e..000000000 --- a/src/login_sql/Makefile.in +++ /dev/null @@ -1,60 +0,0 @@ - -COMMON_OBJ = ../common/obj_all/core.o ../common/obj_all/socket.o ../common/obj_all/timer.o \ - ../common/obj_all/db.o ../common/obj_all/plugins.o ../common/obj_all/lock.o \ - ../common/obj_all/malloc.o ../common/obj_all/showmsg.o ../common/obj_all/utils.o \ - ../common/obj_all/strlib.o ../common/obj_all/grfio.o ../common/obj_all/mapindex.o \ - ../common/obj_all/ers.o ../common/obj_all/md5calc.o ../common/obj_sql/sql.o -COMMON_H = ../common/core.h ../common/socket.h ../common/timer.h ../common/mmo.h \ - ../common/version.h ../common/db.h ../common/plugins.h ../common/lock.h \ - ../common/malloc.h ../common/showmsg.h ../common/utils.h ../common/strlib.h \ - ../common/grfio.h ../common/mapindex.h \ - ../common/ers.h ../common/md5calc.h ../common/sql.h - -LOGIN_OBJ = obj_sql/login.o -LOGIN_H = login.h - -HAVE_MYSQL=@HAVE_MYSQL@ -ifeq ($(HAVE_MYSQL),yes) - LOGIN_SERVER_SQL_DEPENDS=obj_sql $(LOGIN_OBJ) $(COMMON_OBJ) -else - LOGIN_SERVER_SQL_DEPENDS=needs_mysql -endif - -@SET_MAKE@ - -##################################################################### -.PHONY : all login-server_sql clean help - -all: login-server_sql - -login-server_sql: $(LOGIN_SERVER_SQL_DEPENDS) - @CC@ @LDFLAGS@ -o ../../login-server_sql@EXEEXT@ $(LOGIN_OBJ) $(COMMON_OBJ) @LIBS@ @MYSQL_LIBS@ - -clean: - rm -rf *.o obj_sql ../../login-server_sql@EXEEXT@ - -help: - @echo "possible targets are 'login-server_sql' 'all' 'clean' 'help'" - @echo "'login-server_sql' - login server (SQL version)" - @echo "'all' - builds all above targets" - @echo "'clean' - cleans builds and objects" - @echo "'help' - outputs this message" - -##################################################################### - -needs_mysql: - @echo "MySQL not found or disabled by the configure script" - @exit 1 - -obj_sql: - -mkdir obj_sql - -obj_sql/%.o: %.c $(LOGIN_H) $(COMMON_H) - @CC@ @CFLAGS@ $(CUSTOM_CFLAGS) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< - -# missing common object files -../common/obj_all/%.o: - @$(MAKE) -C ../common sql - -../common/obj_sql/%.o: - @$(MAKE) -C ../common sql diff --git a/src/login_sql/login.c b/src/login_sql/login.c deleted file mode 100644 index cd53f7d4e..000000000 --- a/src/login_sql/login.c +++ /dev/null @@ -1,1982 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#include "../common/cbasetypes.h" -#include "../common/mmo.h" -#include "../common/core.h" -#include "../common/socket.h" -#include "../common/db.h" -#include "../common/timer.h" -#include "../common/malloc.h" -#include "../common/strlib.h" -#include "../common/showmsg.h" -#include "../common/version.h" -#include "../common/md5calc.h" -#include "../common/sql.h" -#include "login.h" - -#include -#include -#include -#include // for stat/lstat/fstat - -struct Login_Config login_config; - -int login_fd; // login server socket -#define MAX_SERVERS 30 -struct mmo_char_server server[MAX_SERVERS]; // char server data - -#define sex_num2str(num) ( (num == 0 ) ? 'F' : (num == 1 ) ? 'M' : 'S' ) -#define sex_str2num(str) ( (str == 'F' ) ? 0 : (str == 'M' ) ? 1 : 2 ) - -// Advanced subnet check [LuzZza] -struct s_subnet { - uint32 mask; - uint32 char_ip; - uint32 map_ip; -} subnet[16]; - -int subnet_count = 0; - -// GM account management -struct gm_account* gm_account_db = NULL; -unsigned int GM_num = 0; // number of gm accounts - -//Account registration flood protection [Kevin] -int allowed_regs = 1; -int time_allowed = 10; //in seconds -unsigned int new_reg_tick = 0; - - -// data handling (SQL) -Sql* sql_handle; - -// database parameters -uint16 login_server_port = 3306; -char login_server_ip[32] = "127.0.0.1"; -char login_server_id[32] = "ragnarok"; -char login_server_pw[32] = "ragnarok"; -char login_server_db[32] = "ragnarok"; -char default_codepage[32] = ""; - -char login_db[256] = "login"; -char loginlog_db[256] = "loginlog"; -char reg_db[256] = "global_reg_value"; - -// added to help out custom login tables, without having to recompile -// source so options are kept in the login_athena.conf or the inter_athena.conf -char login_db_account_id[256] = "account_id"; -char login_db_userid[256] = "userid"; -char login_db_user_pass[256] = "user_pass"; -char login_db_level[256] = "level"; - - -//----------------------------------------------------- -// Auth database -//----------------------------------------------------- -#define AUTH_TIMEOUT 30000 - -struct auth_node { - int account_id; - uint32 login_id1; - uint32 login_id2; - uint32 ip; - char sex; -}; - -static DBMap* auth_db; // int account_id -> struct auth_node* - -//----------------------------------------------------- -// Online User Database [Wizputer] -//----------------------------------------------------- - -struct online_login_data { - int account_id; - int waiting_disconnect; - int char_server; -}; - -static DBMap* online_db; // int account_id -> struct online_login_data* -static int waiting_disconnect_timer(int tid, unsigned int tick, int id, intptr data); - -static void* create_online_user(DBKey key, va_list args) -{ - struct online_login_data* p; - CREATE(p, struct online_login_data, 1); - p->account_id = key.i; - p->char_server = -1; - p->waiting_disconnect = -1; - return p; -} - -struct online_login_data* add_online_user(int char_server, int account_id) -{ - struct online_login_data* p; - if( !login_config.online_check ) - return NULL; - p = (struct online_login_data*)idb_ensure(online_db, account_id, create_online_user); - p->char_server = char_server; - if( p->waiting_disconnect != -1 ) - { - delete_timer(p->waiting_disconnect, waiting_disconnect_timer); - p->waiting_disconnect = -1; - } - return p; -} - -void remove_online_user(int account_id) -{ - struct online_login_data* p; - if( !login_config.online_check ) - return; - p = (struct online_login_data*)idb_get(online_db, account_id); - if( p == NULL ) - return; - if( p->waiting_disconnect != -1 ) - delete_timer(p->waiting_disconnect, waiting_disconnect_timer); - - idb_remove(online_db, account_id); -} - -static int waiting_disconnect_timer(int tid, unsigned int tick, int id, intptr data) -{ - struct online_login_data* p = (struct online_login_data*)idb_get(online_db, id); - if( p != NULL && p->waiting_disconnect == tid && p->account_id == id ) - { - p->waiting_disconnect = -1; - remove_online_user(id); - idb_remove(auth_db, id); - } - return 0; -} - -//-------------------------------------------------------------------- -// Packet send to all char-servers, except one (wos: without our self) -//-------------------------------------------------------------------- -int charif_sendallwos(int sfd, uint8* buf, size_t len) -{ - int i, c; - - for( i = 0, c = 0; i < MAX_SERVERS; ++i ) - { - int fd = server[i].fd; - if( session_isValid(fd) && fd != sfd ) - { - WFIFOHEAD(fd,len); - memcpy(WFIFOP(fd,0), buf, len); - WFIFOSET(fd,len); - ++c; - } - } - - return c; -} - -//----------------------------------------------------- -// Read GM accounts -//----------------------------------------------------- -void read_gm_account(void) -{ - if( !login_config.login_gm_read ) - return;// char server's job - - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `%s`,`%s` FROM `%s` WHERE `%s` > '0'", login_db_account_id, login_db_level, login_db, login_db_level) ) - { - Sql_ShowDebug(sql_handle); - return;// Failed to read GM list! - } - - RECREATE(gm_account_db, struct gm_account, (size_t)Sql_NumRows(sql_handle)); - - for( GM_num = 0; SQL_SUCCESS == Sql_NextRow(sql_handle); ++GM_num ) - { - char* account; - char* level; - - Sql_GetData(sql_handle, 0, &account, NULL); - Sql_GetData(sql_handle, 1, &level, NULL); - - gm_account_db[GM_num].account_id = atoi(account); - gm_account_db[GM_num].level = atoi(level); - } - - Sql_FreeResult(sql_handle); -} - -//----------------------------------------------------- -// Send GM accounts to one or all char-servers -//----------------------------------------------------- -void send_GM_accounts(int fd) -{ - unsigned int i; - uint8 buf[32767]; - uint16 len; - - if( !login_config.login_gm_read ) - return; - - len = 4; - WBUFW(buf,0) = 0x2732; - for( i = 0; i < GM_num; ++i ) - { - // send only existing accounts. We can not create a GM account when server is online. - if( gm_account_db[i].level > 0 ) - { - WBUFL(buf,len) = gm_account_db[i].account_id; - WBUFB(buf,len+4) = (uint8)gm_account_db[i].level; - len += 5; - if( len >= 32000 ) - { - ShowWarning("send_GM_accounts: Too many accounts! Only %d out of %d were sent.\n", i, GM_num); - break; - } - } - } - - WBUFW(buf,2) = len; - if( fd == -1 )// send to all charservers - charif_sendallwos(-1, buf, len); - else - {// send only to target - WFIFOHEAD(fd,len); - memcpy(WFIFOP(fd,0), buf, len); - WFIFOSET(fd,len); - } - - return; -} - -/*============================================= - * Does a mysql_ping to all connection handles - *---------------------------------------------*/ -int login_sql_ping(int tid, unsigned int tick, int id, intptr data) -{ - ShowInfo("Pinging SQL server to keep connection alive...\n"); - Sql_Ping(sql_handle); - return 0; -} - -int sql_ping_init(void) -{ - uint32 connection_timeout, connection_ping_interval; - - // set a default value first - connection_timeout = 28800; // 8 hours - - // ask the mysql server for the timeout value - if( SQL_SUCCESS == Sql_GetTimeout(sql_handle, &connection_timeout) && connection_timeout < 60 ) - connection_timeout = 60; - - // establish keepalive - connection_ping_interval = connection_timeout - 30; // 30-second reserve - add_timer_func_list(login_sql_ping, "login_sql_ping"); - add_timer_interval(gettick() + connection_ping_interval*1000, login_sql_ping, 0, 0, connection_ping_interval*1000); - - return 0; -} - -//----------------------------------------------------- -// Read Account database - mysql db -//----------------------------------------------------- -int mmo_auth_sqldb_init(void) -{ - ShowStatus("Login server init....\n"); - - sql_handle = Sql_Malloc(); - - // DB connection start - ShowStatus("Connect Login Database Server....\n"); - if( SQL_ERROR == Sql_Connect(sql_handle, login_server_id, login_server_pw, login_server_ip, login_server_port, login_server_db) ) - { - Sql_ShowDebug(sql_handle); - Sql_Free(sql_handle); - exit(EXIT_FAILURE); - } - else - { - ShowStatus("Connect success!\n"); - } - - if( default_codepage[0] != '\0' && SQL_ERROR == Sql_SetEncoding(sql_handle, default_codepage) ) - Sql_ShowDebug(sql_handle); - - if( login_config.log_login && SQL_ERROR == Sql_Query(sql_handle, "INSERT DELAYED INTO `%s` (`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '0', 'lserver','100','login server started')", loginlog_db) ) - Sql_ShowDebug(sql_handle); - - sql_ping_init(); - - return 0; -} - - -//----------------------------------------------------- -// close DB -//----------------------------------------------------- -void mmo_db_close(void) -{ - int i, fd; - - //set log. - if( login_config.log_login && SQL_ERROR == Sql_Query(sql_handle, "INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '0', 'lserver','100', 'login server shutdown')", loginlog_db) ) - Sql_ShowDebug(sql_handle); - - for( i = 0; i < MAX_SERVERS; ++i ) - { - fd = server[i].fd; - if( session_isValid(fd) ) - {// Clean only data related to servers we are connected to. [Skotlex] - if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `sstatus` WHERE `index` = '%d'", i) ) - Sql_ShowDebug(sql_handle); - do_close(fd); - } - } - Sql_Free(sql_handle); - sql_handle = NULL; - ShowStatus("close DB connect....\n"); - if( login_fd > 0 ) - do_close(login_fd); -} - -//----------------------------------------------------- -// periodic ip address synchronization -//----------------------------------------------------- -static int sync_ip_addresses(int tid, unsigned int tick, int id, intptr data) -{ - uint8 buf[2]; - ShowInfo("IP Sync in progress...\n"); - WBUFW(buf,0) = 0x2735; - charif_sendallwos(-1, buf, 2); - return 0; -} - -//----------------------------------------------------- -// encrypted/unencrypted password check -//----------------------------------------------------- -bool check_encrypted(const char* str1, const char* str2, const char* passwd) -{ - char md5str[64], md5bin[32]; - - snprintf(md5str, sizeof(md5str), "%s%s", str1, str2); - md5str[sizeof(md5str)-1] = '\0'; - MD5_String2binary(md5str, md5bin); - - return (0==memcmp(passwd, md5bin, 16)); -} - -bool check_password(struct login_session_data* ld, int passwdenc, const char* passwd, const char* refpass) -{ - if(passwdenc == 0) - { - return (0==strcmp(passwd, refpass)); - } - else if (ld) - { - // password mode set to 1 -> (md5key, refpass) enable with - // password mode set to 2 -> (refpass, md5key) enable with - - return ((passwdenc&0x01) && check_encrypted(ld->md5key, refpass, passwd)) || - ((passwdenc&0x02) && check_encrypted(refpass, ld->md5key, passwd)); - } - return false; -} - - -//----------------------------------------------------- -// Make new account -//----------------------------------------------------- -int mmo_auth_new(struct mmo_account* account) -{ - static int num_regs = 0; // registration counter - unsigned int tick = gettick(); - - char md5buf[32+1]; - time_t expiration_time = 0; - SqlStmt* stmt; - int result = 0; - - //Account Registration Flood Protection by [Kevin] - if( DIFF_TICK(tick, new_reg_tick) < 0 && num_regs >= allowed_regs ) - { - ShowNotice("Account registration denied (registration limit exceeded)\n"); - return 3; - } - - // check if the account doesn't exist already - stmt = SqlStmt_Malloc(sql_handle); - if( SQL_SUCCESS != SqlStmt_Prepare(stmt, "SELECT `%s` FROM `%s` WHERE `userid` = ?", login_db_userid, login_db) - || SQL_SUCCESS != SqlStmt_BindParam(stmt, 0, SQLDT_STRING, account->userid, strnlen(account->userid, NAME_LENGTH)) - || SQL_SUCCESS != SqlStmt_Execute(stmt) ) - { - SqlStmt_ShowDebug(stmt); - result = 1;// error - } - else if( SqlStmt_NumRows(stmt) > 0 ) - result = 1;// username already taken - SqlStmt_Free(stmt); - if( result ) - return result;// error or incorrect user - - if( login_config.start_limited_time != -1 ) - expiration_time = time(NULL) + login_config.start_limited_time; - - // insert new entry into db - //TODO: error checking - stmt = SqlStmt_Malloc(sql_handle); - SqlStmt_Prepare(stmt, "INSERT INTO `%s` (`%s`, `%s`, `sex`, `email`, `connect_until`) VALUES (?, ?, '%c', 'a@a.com', '%d')", login_db, login_db_userid, login_db_user_pass, account->sex, expiration_time); - SqlStmt_BindParam(stmt, 0, SQLDT_STRING, account->userid, strnlen(account->userid, NAME_LENGTH)); - if( login_config.use_md5_passwds ) - { - MD5_String(account->pass, md5buf); - SqlStmt_BindParam(stmt, 1, SQLDT_STRING, md5buf, 32); - } - else - SqlStmt_BindParam(stmt, 1, SQLDT_STRING, account->pass, strnlen(account->pass, NAME_LENGTH)); - SqlStmt_Execute(stmt); - - ShowNotice("Account creation (account %s, id: %d, pass: %s, sex: %c)\n", account->userid, (int)SqlStmt_LastInsertId(stmt), account->pass, account->sex); - SqlStmt_Free(stmt); - - if( DIFF_TICK(tick, new_reg_tick) > 0 ) - {// Update the registration check. - num_regs = 0; - new_reg_tick = tick + time_allowed*1000; - } - ++num_regs; - - return 0; -} - - -//----------------------------------------------------- -// Check/authentication of a connection -//----------------------------------------------------- -int mmo_auth(struct login_session_data* sd) -{ - time_t unban_time; - char esc_userid[NAME_LENGTH*2+1];// escaped username - char user_password[256], password[256]; - long expiration_time; - int state; - size_t len; - char* data; - - char ip[16]; - ip2str(session[sd->fd]->client_addr, ip); - - // DNS Blacklist check - if( login_config.use_dnsbl ) - { - char r_ip[16]; - char ip_dnsbl[256]; - char* dnsbl_serv; - bool matched = false; - uint8* sin_addr = (uint8*)&session[sd->fd]->client_addr; - - sprintf(r_ip, "%u.%u.%u.%u", sin_addr[0], sin_addr[1], sin_addr[2], sin_addr[3]); - - for( dnsbl_serv = strtok(login_config.dnsbl_servs,","); !matched && dnsbl_serv != NULL; dnsbl_serv = strtok(NULL,",") ) - { - sprintf(ip_dnsbl, "%s.%s", r_ip, dnsbl_serv); - if( host2ip(ip_dnsbl) ) - matched = true; - } - - if( matched ) - { - ShowInfo("DNSBL: (%s) Blacklisted. User Kicked.\n", r_ip); - return 3; - } - } - - //Client Version check - if( login_config.check_client_version && sd->version != login_config.client_version_to_connect ) - return 5; - - len = strnlen(sd->userid, NAME_LENGTH); - - // Account creation with _M/_F - if( login_config.new_account_flag ) - { - if( len > 2 && strnlen(sd->passwd, NAME_LENGTH) > 0 && // valid user and password lengths - sd->passwdenc == 0 && // unencoded password - sd->userid[len-2] == '_' && memchr("FfMm", sd->userid[len-1], 4) ) // _M/_F suffix - { - struct mmo_account acc; - int result; - - len -= 2; - sd->userid[len] = '\0'; - - memset(&acc, '\0', sizeof(acc)); - safestrncpy(acc.userid, sd->userid, NAME_LENGTH); - safestrncpy(acc.pass, sd->passwd, NAME_LENGTH); - safestrncpy(acc.email, "a@a.com", sizeof(acc.email)); - acc.sex = TOUPPER(sd->userid[len+1]); - - result = mmo_auth_new(&acc); - if( result ) - return result;// Failed to make account. [Skotlex]. - } - } - - // escape username - Sql_EscapeStringLen(sql_handle, esc_userid, sd->userid, len); - - // retrieve login entry for the specified username - if( SQL_ERROR == Sql_Query(sql_handle, - "SELECT `%s`,`%s`,`lastlogin`,`sex`,`connect_until`,`ban_until`,`state`,`%s` FROM `%s` WHERE `%s`= %s '%s'", - login_db_account_id, login_db_user_pass, login_db_level, - login_db, login_db_userid, (login_config.case_sensitive ? "BINARY" : ""), esc_userid) ) - Sql_ShowDebug(sql_handle); - - if( Sql_NumRows(sql_handle) == 0 ) // no such entry - { - ShowNotice("auth failed: no such account '%s'\n", esc_userid); - Sql_FreeResult(sql_handle); - return 0; - } - - Sql_NextRow(sql_handle); //TODO: error checking? - - Sql_GetData(sql_handle, 0, &data, NULL); sd->account_id = atoi(data); - Sql_GetData(sql_handle, 1, &data, &len); safestrncpy(password, data, sizeof(password)); - Sql_GetData(sql_handle, 2, &data, NULL); safestrncpy(sd->lastlogin, data, sizeof(sd->lastlogin)); - Sql_GetData(sql_handle, 3, &data, NULL); sd->sex = *data; - Sql_GetData(sql_handle, 4, &data, NULL); expiration_time = atol(data); - Sql_GetData(sql_handle, 5, &data, NULL); unban_time = atol(data); - Sql_GetData(sql_handle, 6, &data, NULL); state = atoi(data); - Sql_GetData(sql_handle, 7, &data, NULL); sd->level = atoi(data); - if( len > sizeof(password) - 1 ) - ShowDebug("mmo_auth: password buffer is too small (len=%u,buflen=%u)\n", len, sizeof(password)); - if( sd->level > 99 ) - sd->level = 99; - - Sql_FreeResult(sql_handle); - - if( login_config.use_md5_passwds ) - MD5_String(sd->passwd, user_password); - else - safestrncpy(user_password, sd->passwd, NAME_LENGTH); - - if( !check_password(sd, sd->passwdenc, user_password, password) ) - { - ShowInfo("Invalid password (account: '%s', pass: '%s', received pass: '%s', ip: %s)\n", - esc_userid, password, (sd->passwdenc) ? "[MD5]" : user_password, ip); - return 1; // 1 = Incorrect Password - } - - if( expiration_time != 0 && expiration_time < time(NULL) ) - return 2; // 2 = This ID is expired - - if( unban_time != 0 && unban_time > time(NULL) ) - return 6; // 6 = Your are Prohibited to log in until %s - - if( state ) - { - ShowInfo("Connection refused (account: %s, pass: %s, state: %d, ip: %s)\n", sd->userid, sd->passwd, state, ip); - return state - 1; - } - - sd->login_id1 = rand(); - sd->login_id2 = rand(); - - if( sd->sex != 'S' && sd->account_id < START_ACCOUNT_NUM ) - ShowWarning("Account %s has account id %d! Account IDs must be over %d to work properly!\n", sd->userid, sd->account_id, START_ACCOUNT_NUM); - - if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `lastlogin` = NOW(), `logincount`=`logincount`+1, `last_ip`='%s', `ban_until`='0', `state`='0' WHERE `%s` = '%d'", - login_db, ip, login_db_account_id, sd->account_id) ) - Sql_ShowDebug(sql_handle); - - return -1; // account OK -} - -static int online_db_setoffline(DBKey key, void* data, va_list ap) -{ - struct online_login_data* p = (struct online_login_data*)data; - int server = va_arg(ap, int); - if( server == -1 ) - { - p->char_server = -1; - if( p->waiting_disconnect != -1 ) - { - delete_timer(p->waiting_disconnect, waiting_disconnect_timer); - p->waiting_disconnect = -1; - } - } - else if( p->char_server == server ) - p->char_server = -2; //Char server disconnected. - return 0; -} - -//-------------------------------- -// Packet parsing for char-servers -//-------------------------------- -int parse_fromchar(int fd) -{ - unsigned int i; - int id; - uint32 ipl; - char ip[16]; - - ARR_FIND( 0, MAX_SERVERS, id, server[id].fd == fd ); - if( id == MAX_SERVERS ) - {// not a char server - set_eof(fd); - do_close(fd); - return 0; - } - - if( session[fd]->flag.eof ) - { - ShowStatus("Char-server '%s' has disconnected.\n", server[id].name); - online_db->foreach(online_db, online_db_setoffline, id); //Set all chars from this char server to offline. - if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `sstatus` WHERE `index`='%d'", id) ) - Sql_ShowDebug(sql_handle); - memset(&server[id], 0, sizeof(struct mmo_char_server)); - server[id].fd = -1; - do_close(fd); - return 0; - } - - ipl = server[id].ip; - ip2str(ipl, ip); - - while( RFIFOREST(fd) >= 2 ) - { - uint16 command = RFIFOW(fd,0); - - switch( command ) - { - - case 0x2709: // request from map-server via char-server to reload GM accounts - RFIFOSKIP(fd,2); - ShowStatus("Char-server '%s': Request to re-load GM configuration file (ip: %s).\n", server[id].name, ip); - if( login_config.log_login ) - { - if( SQL_ERROR == Sql_Query(sql_handle, "INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`log`) VALUES (NOW(), '%u', '%s', 'GM reload request')", loginlog_db, ipl, server[id].name) ) - Sql_ShowDebug(sql_handle); - } - read_gm_account(); - // send GM accounts to all char-servers - send_GM_accounts(-1); - break; - - case 0x2712: // request from char-server to authenticate an account - if( RFIFOREST(fd) < 19 ) - return 0; - { - struct auth_node* node; - - int account_id = RFIFOL(fd,2); - uint32 login_id1 = RFIFOL(fd,6); - uint32 login_id2 = RFIFOL(fd,10); - char sex = sex_num2str(RFIFOB(fd,14)); - uint32 ip_ = ntohl(RFIFOL(fd,15)); - RFIFOSKIP(fd,19); - - node = (struct auth_node*)idb_get(auth_db, account_id); - if( node != NULL && - node->account_id == account_id && - node->login_id1 == login_id1 && - node->login_id2 == login_id2 && - node->sex == sex && - node->ip == ip_ ) - {// found - uint32 expiration_time; - char email[40]; - - // each auth entry can only be used once - idb_remove(auth_db, account_id); - - // retrieve email and account expiration time - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `email`,`connect_until` FROM `%s` WHERE `%s`='%d'", login_db, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - if( SQL_SUCCESS == Sql_NextRow(sql_handle) ) - { - char* data = NULL; - size_t len = 0; - - Sql_GetData(sql_handle, 0, &data, &len); safestrncpy(email, data, sizeof(email)); - Sql_GetData(sql_handle, 1, &data, NULL); expiration_time = (uint32)strtoul(data, NULL, 10); - if( len > sizeof(email) ) - ShowDebug("parse_fromchar:0x2712: email is too long (len=%u,maxlen=%u)\n", len, sizeof(email)); - - Sql_FreeResult(sql_handle); - } - else - { - memset(email, 0, sizeof(email)); - expiration_time = 0; - } - - // send ack - WFIFOHEAD(fd,59); - WFIFOW(fd,0) = 0x2713; - WFIFOL(fd,2) = account_id; - WFIFOL(fd,6) = login_id1; - WFIFOL(fd,10) = login_id2; - WFIFOB(fd,14) = 0; - memcpy(WFIFOP(fd,15), email, 40); - WFIFOL(fd,55) = expiration_time; - WFIFOSET(fd,59); - } - else - {// authentication not found - ShowStatus("Char-server '%s': authentication of the account %d REFUSED (ip: %s).\n", server[id].name, account_id, ip); - WFIFOHEAD(fd,59); - WFIFOW(fd,0) = 0x2713; - WFIFOL(fd,2) = account_id; - WFIFOL(fd,6) = login_id1; - WFIFOL(fd,10) = login_id2; - WFIFOB(fd,14) = 1; - // It is unnecessary to send email - // It is unnecessary to send validity date of the account - WFIFOSET(fd,59); - } - } - break; - - case 0x2714: - if( RFIFOREST(fd) < 6 ) - return 0; - { - int users = RFIFOL(fd,2); - RFIFOSKIP(fd,6); - - // how many users on world? (update) - if( server[id].users != users ) - { - ShowStatus("set users %s : %d\n", server[id].name, users); - - server[id].users = users; - if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `sstatus` SET `user` = '%d' WHERE `index` = '%d'", server[id].users, id) ) - Sql_ShowDebug(sql_handle); - } - } - break; - - case 0x2716: // received an e-mail/limited time request, because a player comes back from a map-server to the char-server - if( RFIFOREST(fd) < 6 ) - return 0; - { - uint32 expiration_time = 0; - char email[40] = ""; - - int account_id = RFIFOL(fd,2); - RFIFOSKIP(fd,6); - - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `email`,`connect_until` FROM `%s` WHERE `%s`='%d'", login_db, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - else if( SQL_SUCCESS == Sql_NextRow(sql_handle) ) - { - char* data; - size_t len; - - Sql_GetData(sql_handle, 0, &data, &len); - safestrncpy(email, data, sizeof(email)); - - Sql_GetData(sql_handle, 1, &data, NULL); - expiration_time = (uint32)strtoul(data, NULL, 10); - - Sql_FreeResult(sql_handle); - } - - WFIFOHEAD(fd,50); - WFIFOW(fd,0) = 0x2717; - WFIFOL(fd,2) = account_id; - safestrncpy((char*)WFIFOP(fd,6), email, 40); - WFIFOL(fd,46) = expiration_time; - WFIFOSET(fd,50); - } - break; - - case 0x2719: // ping request from charserver - if( RFIFOREST(fd) < 2 ) - return 0; - RFIFOSKIP(fd,2); - - WFIFOHEAD(fd,2); - WFIFOW(fd,0) = 0x2718; - WFIFOSET(fd,2); - break; - - // Map server send information to change an email of an account via char-server - case 0x2722: // 0x2722 .L .40B .40B - if (RFIFOREST(fd) < 86) - return 0; - { - char actual_email[40]; - char new_email[40]; - int account_id = RFIFOL(fd,2); - safestrncpy(actual_email, (char*)RFIFOP(fd,6), 40); - safestrncpy(new_email, (char*)RFIFOP(fd,46), 40); - RFIFOSKIP(fd, 86); - - if( e_mail_check(actual_email) == 0 ) - ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual email is invalid (account: %d, ip: %s)\n", server[id].name, account_id, ip); - else if( e_mail_check(new_email) == 0 ) - ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a invalid new e-mail (account: %d, ip: %s)\n", server[id].name, account_id, ip); - else if( strcmpi(new_email, "a@a.com") == 0 ) - ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a default e-mail (account: %d, ip: %s)\n", server[id].name, account_id, ip); - else if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `%s`,`email` FROM `%s` WHERE `%s` = '%d'", login_db_userid, login_db, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - else if( SQL_SUCCESS == Sql_NextRow(sql_handle) ) - { - char* data; - size_t len; - - Sql_GetData(sql_handle, 1, &data, &len); - if( strncasecmp(data, actual_email, sizeof(actual_email)) == 0 ) - { - char esc_user_id[NAME_LENGTH*2+1]; - char esc_new_email[sizeof(new_email)*2+1]; - - Sql_GetData(sql_handle, 0, &data, &len); - Sql_EscapeStringLen(sql_handle, esc_user_id, data, len); - Sql_EscapeStringLen(sql_handle, esc_new_email, new_email, strnlen(new_email, sizeof(new_email))); - - if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `email` = '%s' WHERE `%s` = '%d'", login_db, esc_new_email, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - ShowInfo("Char-server '%s': Modify an e-mail on an account (@email GM command) (account: %d ('%s'), new e-mail: '%s', ip: %s).\n", server[id].name, account_id, esc_user_id, esc_new_email, ip); - } - Sql_FreeResult(sql_handle); - } - } - break; - - case 0x2724: // Receiving an account state update request from a map-server (relayed via char-server) - if (RFIFOREST(fd) < 10) - return 0; - { - int account_id = RFIFOL(fd,2); - int state = RFIFOL(fd,6); - RFIFOSKIP(fd,10); - - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `state` FROM `%s` WHERE `%s` = '%d'", login_db, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - else if( SQL_SUCCESS == Sql_NextRow(sql_handle) ) - { - char* data; - - Sql_GetData(sql_handle, 0, &data, NULL); - if( atoi(data) != state && state != 0 ) - { - uint8 buf[11]; - WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = account_id; - WBUFB(buf,6) = 0; // 0: change of state, 1: ban - WBUFL(buf,7) = state; // status or final date of a banishment - charif_sendallwos(-1, buf, 11); - } - Sql_FreeResult(sql_handle); - } - - if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `state` = '%d' WHERE `%s` = '%d'", login_db, state, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - } - break; - - case 0x2725: // Receiving of map-server via char-server a ban request - if (RFIFOREST(fd) < 18) - return 0; - { - struct tm *tmtime; - time_t tmptime = 0; - time_t timestamp = time(NULL); - - int account_id = RFIFOL(fd,2); - int year = (short)RFIFOW(fd,6); - int month = (short)RFIFOW(fd,8); - int mday = (short)RFIFOW(fd,10); - int hour = (short)RFIFOW(fd,12); - int min = (short)RFIFOW(fd,14); - int sec = (short)RFIFOW(fd,16); - RFIFOSKIP(fd,18); - - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `ban_until` FROM `%s` WHERE `%s` = '%d'", login_db, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - else if( SQL_SUCCESS == Sql_NextRow(sql_handle) ) - { - char* data; - - Sql_GetData(sql_handle, 0, &data, NULL); - tmptime = (time_t)strtoul(data, NULL, 10); - if( tmptime > time(NULL) ) - timestamp = tmptime; - } - tmtime = localtime(×tamp); - tmtime->tm_year = tmtime->tm_year + year; - tmtime->tm_mon = tmtime->tm_mon + month; - tmtime->tm_mday = tmtime->tm_mday + mday; - tmtime->tm_hour = tmtime->tm_hour + hour; - tmtime->tm_min = tmtime->tm_min + min; - tmtime->tm_sec = tmtime->tm_sec + sec; - timestamp = mktime(tmtime); - if( timestamp != (time_t)-1 ) - { - if( timestamp <= time(NULL) ) - timestamp = 0; - if( tmptime != timestamp ) - { - if( timestamp != 0 ) - { - uint8 buf[11]; - WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = account_id; - WBUFB(buf,6) = 1; // 0: change of statut, 1: ban - WBUFL(buf,7) = (uint32)timestamp; // status or final date of a banishment - charif_sendallwos(-1, buf, 11); - } - ShowNotice("Account: %d Banned until: %lu\n", account_id, (unsigned long)timestamp); - if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `ban_until` = '%lu' WHERE `%s` = '%d'", login_db, (unsigned long)timestamp, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - } - } - } - break; - - case 0x2727: // Change of sex (sex is reversed) - if( RFIFOREST(fd) < 6 ) - return 0; - { - int account_id = RFIFOL(fd,2); - RFIFOSKIP(fd,6); - - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `sex` FROM `%s` WHERE `%s` = '%d'", login_db, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - else if( SQL_SUCCESS == Sql_NextRow(sql_handle) ) - { - unsigned char buf[7]; - int sex; - char* data; - - Sql_GetData(sql_handle, 0, &data, NULL); - sex = ( *data == 'M' ) ? 'F' : 'M'; //Change gender - - if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `sex` = '%c' WHERE `%s` = '%d'", login_db, sex, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - - WBUFW(buf,0) = 0x2723; - WBUFL(buf,2) = account_id; - WBUFB(buf,6) = sex_str2num(sex); - charif_sendallwos(-1, buf, 7); - } - } - break; - - case 0x2728: // save account_reg2 - if( RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2) ) - return 0; - if( RFIFOL(fd,4) > 0 ) - { - SqlStmt* stmt; - int account_id; - size_t off; - - account_id = RFIFOL(fd,4); - - //Delete all global account variables.... - if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `type`='1' AND `account_id`='%d';", reg_db, account_id) ) - Sql_ShowDebug(sql_handle); - - //Proceed to insert them.... - stmt = SqlStmt_Malloc(sql_handle); - if( SQL_ERROR == SqlStmt_Prepare(stmt, "INSERT INTO `%s` (`type`, `account_id`, `str`, `value`) VALUES ( 1 , '%d' , ? , ?);", reg_db, account_id) ) - SqlStmt_ShowDebug(stmt); - for( i = 0, off = 13; i < ACCOUNT_REG2_NUM && off < RFIFOW(fd,2); ++i ) - { - char* p; - size_t len; - - // str - p = (char*)RFIFOP(fd,off); - len = strlen(p); - SqlStmt_BindParam(stmt, 0, SQLDT_STRING, p, len); - off += len + 1; - - // value - p = (char*)RFIFOP(fd,off); - len = strlen(p); - SqlStmt_BindParam(stmt, 1, SQLDT_STRING, p, len); - off += len + 1; - - if( SQL_ERROR == SqlStmt_Execute(stmt) ) - SqlStmt_ShowDebug(stmt); - } - SqlStmt_Free(stmt); - - // Sending information towards the other char-servers. - RFIFOW(fd,0) = 0x2729;// reusing read buffer - charif_sendallwos(fd, RFIFOP(fd,0), RFIFOW(fd,2)); - RFIFOSKIP(fd,RFIFOW(fd,2)); - } - break; - - case 0x272a: // Receiving of map-server via char-server an unban request - if( RFIFOREST(fd) < 6 ) - return 0; - { - int account_id = RFIFOL(fd,2); - RFIFOSKIP(fd,6); - - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `ban_until` FROM `%s` WHERE `%s` = '%d'", login_db, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - else if( Sql_NumRows(sql_handle) > 0 ) - {// Found a match - if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `ban_until` = '0' WHERE `%s` = '%d'", login_db, login_db_account_id, account_id) ) - Sql_ShowDebug(sql_handle); - } - } - break; - - case 0x272b: // Set account_id to online [Wizputer] - if( RFIFOREST(fd) < 6 ) - return 0; - add_online_user(id, RFIFOL(fd,2)); - RFIFOSKIP(fd,6); - break; - - case 0x272c: // Set account_id to offline [Wizputer] - if( RFIFOREST(fd) < 6 ) - return 0; - remove_online_user(RFIFOL(fd,2)); - RFIFOSKIP(fd,6); - break; - - case 0x272d: // Receive list of all online accounts. [Skotlex] - if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) - return 0; - if( login_config.online_check ) - { - struct online_login_data *p; - int aid; - uint32 i, users; - online_db->foreach(online_db, online_db_setoffline, id); //Set all chars from this char-server offline first - users = RFIFOW(fd,4); - for (i = 0; i < users; i++) { - aid = RFIFOL(fd,6+i*4); - p = (struct online_login_data*)idb_ensure(online_db, aid, create_online_user); - p->char_server = id; - if (p->waiting_disconnect != -1) - { - delete_timer(p->waiting_disconnect, waiting_disconnect_timer); - p->waiting_disconnect = -1; - } - } - } - RFIFOSKIP(fd,RFIFOW(fd,2)); - break; - - case 0x272e: //Request account_reg2 for a character. - if (RFIFOREST(fd) < 10) - return 0; - { - size_t off; - - int account_id = RFIFOL(fd,2); - int char_id = RFIFOL(fd,6); - RFIFOSKIP(fd,10); - - WFIFOHEAD(fd,10000); - WFIFOW(fd,0) = 0x2729; - WFIFOL(fd,4) = account_id; - WFIFOL(fd,8) = char_id; - WFIFOB(fd,12) = 1; //Type 1 for Account2 registry - - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `str`,`value` FROM `%s` WHERE `type`='1' AND `account_id`='%d'", reg_db, account_id) ) - Sql_ShowDebug(sql_handle); - - off = 13; - while( SQL_SUCCESS == Sql_NextRow(sql_handle) && off < 9000 ) - { - char* data; - - // str - Sql_GetData(sql_handle, 0, &data, NULL); - if( *data != '\0' ) - { - off += sprintf((char*)WFIFOP(fd,off), "%s", data)+1; //We add 1 to consider the '\0' in place. - - // value - Sql_GetData(sql_handle, 1, &data, NULL); - off += sprintf((char*)WFIFOP(fd,off), "%s", data)+1; - } - } - Sql_FreeResult(sql_handle); - - if( off >= 9000 ) - ShowWarning("Too many account2 registries for AID %d. Some registries were not sent.\n", account_id); - - WFIFOW(fd,2) = (uint16)off; - WFIFOSET(fd,WFIFOW(fd,2)); - } - break; - - case 0x2736: // WAN IP update from char-server - if( RFIFOREST(fd) < 6 ) - return 0; - server[id].ip = ntohl(RFIFOL(fd,2)); - ShowInfo("Updated IP of Server #%d to %d.%d.%d.%d.\n",id, CONVIP(server[id].ip)); - RFIFOSKIP(fd,6); - break; - - case 0x2737: //Request to set all offline. - ShowInfo("Setting accounts from char-server %d offline.\n", id); - online_db->foreach(online_db, online_db_setoffline, id); - RFIFOSKIP(fd,2); - break; - - default: - ShowError("parse_fromchar: Unknown packet 0x%x from a char-server! Disconnecting!\n", command); - set_eof(fd); - return 0; - } // switch - } // while - - RFIFOSKIP(fd,RFIFOREST(fd)); - return 0; -} - -//-------------------------------------------- -// Test to know if an IP come from LAN or WAN. -//-------------------------------------------- -int lan_subnetcheck(uint32 ip) -{ - int i; - ARR_FIND( 0, subnet_count, i, (subnet[i].char_ip & subnet[i].mask) == (ip & subnet[i].mask) ); - return ( i < subnet_count ) ? subnet[i].char_ip : 0; -} - -int login_ip_ban_check(uint32 ip) -{ - uint8* p = (uint8*)&ip; - char* data = NULL; - int matches; - - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT count(*) FROM `ipbanlist` WHERE `list` = '%u.*.*.*' OR `list` = '%u.%u.*.*' OR `list` = '%u.%u.%u.*' OR `list` = '%u.%u.%u.%u'", - p[3], p[3], p[2], p[3], p[2], p[1], p[3], p[2], p[1], p[0]) ) - { - Sql_ShowDebug(sql_handle); - // close connection because we can't verify their connectivity. - return 1; - } - - if( SQL_ERROR == Sql_NextRow(sql_handle) ) - return 1;// Shouldn't happen, but just in case... - - Sql_GetData(sql_handle, 0, &data, NULL); - matches = atoi(data); - Sql_FreeResult(sql_handle); - - if( matches == 0 ) - return 0;// No ban - - // ip ban ok. - ShowInfo("Packet from banned ip : %u.%u.%u.%u\n", CONVIP(ip)); - - if( login_config.log_login && SQL_ERROR == Sql_Query(sql_handle, "INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%u', 'unknown','-3', 'ip banned')", loginlog_db, ip) ) - Sql_ShowDebug(sql_handle); - return 1; -} - -void login_auth_ok(struct login_session_data* sd) -{ - int fd = sd->fd; - uint32 ip = session[fd]->client_addr; - - char esc_userid[NAME_LENGTH*2+1]; - uint8 server_num, n; - uint32 subnet_char_ip; - struct auth_node* node; - int i; - - Sql_EscapeStringLen(sql_handle, esc_userid, sd->userid, strlen(sd->userid)); - - if( sd->level < login_config.min_level_to_connect ) - { - ShowStatus("Connection refused: the minimum GM level for connection is %d (account: %s, GM level: %d).\n", login_config.min_level_to_connect, sd->userid, sd->level); - WFIFOHEAD(fd,3); - WFIFOW(fd,0) = 0x81; - WFIFOB(fd,2) = 1; // 01 = Server closed - WFIFOSET(fd,3); - return; - } - - server_num = 0; - for( i = 0; i < MAX_SERVERS; ++i ) - if( session_isValid(server[i].fd) ) - server_num++; - - if( server_num == 0 ) - {// if no char-server, don't send void list of servers, just disconnect the player with proper message - ShowStatus("Connection refused: there is no char-server online (account: %s).\n", sd->userid); - WFIFOHEAD(fd,3); - WFIFOW(fd,0) = 0x81; - WFIFOB(fd,2) = 1; // 01 = Server closed - WFIFOSET(fd,3); - return; - } - - if( login_config.online_check ) - { - struct online_login_data* data = (struct online_login_data*)idb_get(online_db, sd->account_id); - if( data ) - {// account is already marked as online! - if( data->char_server > -1 ) - {// Request char servers to kick this account out. [Skotlex] - uint8 buf[6]; - ShowNotice("User '%s' is already online - Rejected.\n", sd->userid); - WBUFW(buf,0) = 0x2734; - WBUFL(buf,2) = sd->account_id; - charif_sendallwos(-1, buf, 6); - if( data->waiting_disconnect == -1 ) - data->waiting_disconnect = add_timer(gettick()+AUTH_TIMEOUT, waiting_disconnect_timer, sd->account_id, 0); - - WFIFOHEAD(fd,3); - WFIFOW(fd,0) = 0x81; - WFIFOB(fd,2) = 8; // 08 = Server still recognizes your last login - WFIFOSET(fd,3); - return; - } - else - if( data->char_server == -1 ) - {// client has authed but did not access char-server yet - // wipe previous session - idb_remove(auth_db, sd->account_id); - remove_online_user(sd->account_id); - data = NULL; - } - } - } - - if( login_config.log_login && SQL_ERROR == Sql_Query(sql_handle, "INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%u', '%s','100', 'login ok')", loginlog_db, ip, esc_userid) ) - Sql_ShowDebug(sql_handle); - - if( sd->level > 0 ) - ShowStatus("Connection of the GM (level:%d) account '%s' accepted.\n", sd->level, sd->userid); - else - ShowStatus("Connection of the account '%s' accepted.\n", sd->userid); - - WFIFOHEAD(fd,47+32*server_num); - WFIFOW(fd,0) = 0x69; - WFIFOW(fd,2) = 47+32*server_num; - WFIFOL(fd,4) = sd->login_id1; - WFIFOL(fd,8) = sd->account_id; - WFIFOL(fd,12) = sd->login_id2; - WFIFOL(fd,16) = 0; // in old version, that was for ip (not more used) - //memcpy(WFIFOP(fd,20), sd->lastlogin, 24); // in old version, that was for name (not more used) - WFIFOW(fd,44) = 0; // unknown - WFIFOB(fd,46) = sex_str2num(sd->sex); - for( i = 0, n = 0; i < MAX_SERVERS; ++i ) - { - if( !session_isValid(server[i].fd) ) - continue; - - subnet_char_ip = lan_subnetcheck(ip); // Advanced subnet check [LuzZza] - WFIFOL(fd,47+n*32) = htonl((subnet_char_ip) ? subnet_char_ip : server[i].ip); - WFIFOW(fd,47+n*32+4) = ntows(htons(server[i].port)); // [!] LE byte order here [!] - memcpy(WFIFOP(fd,47+n*32+6), server[i].name, 20); - WFIFOW(fd,47+n*32+26) = server[i].users; - WFIFOW(fd,47+n*32+28) = server[i].maintenance; - WFIFOW(fd,47+n*32+30) = server[i].new_; - n++; - } - WFIFOSET(fd,47+32*server_num); - - // create temporary auth entry - CREATE(node, struct auth_node, 1); - node->account_id = sd->account_id; - node->login_id1 = sd->login_id1; - node->login_id2 = sd->login_id2; - node->sex = sd->sex; - node->ip = ip; - idb_put(auth_db, sd->account_id, node); - - if( login_config.online_check ) - { - struct online_login_data* data; - - // mark client as 'online' - data = add_online_user(-1, sd->account_id); - - // schedule deletion of this node - data->waiting_disconnect = add_timer(gettick()+AUTH_TIMEOUT, waiting_disconnect_timer, sd->account_id, 0); - } -} - -void login_auth_failed(struct login_session_data* sd, int result) -{ - int fd = sd->fd; - uint32 ip = session[fd]->client_addr; - char esc_userid[NAME_LENGTH*2+1]; - - Sql_EscapeStringLen(sql_handle, esc_userid, sd->userid, strlen(sd->userid)); - - if (login_config.log_login) - { - const char* error; - switch( result ) { - case 0: error = "Unregistered ID."; break; // 0 = Unregistered ID - case 1: error = "Incorrect Password."; break; // 1 = Incorrect Password - case 2: error = "Account Expired."; break; // 2 = This ID is expired - case 3: error = "Rejected from server."; break; // 3 = Rejected from Server - case 4: error = "Blocked by GM."; break; // 4 = You have been blocked by the GM Team - case 5: error = "Not latest game EXE."; break; // 5 = Your Game's EXE file is not the latest version - case 6: error = "Banned."; break; // 6 = Your are Prohibited to log in until %s - case 7: error = "Server Over-population."; break; // 7 = Server is jammed due to over populated - case 8: error = "Account limit from company"; break; // 8 = No more accounts may be connected from this company - case 9: error = "Ban by DBA"; break; // 9 = MSI_REFUSE_BAN_BY_DBA - case 10: error = "Email not confirmed"; break; // 10 = MSI_REFUSE_EMAIL_NOT_CONFIRMED - case 11: error = "Ban by GM"; break; // 11 = MSI_REFUSE_BAN_BY_GM - case 12: error = "Working in DB"; break; // 12 = MSI_REFUSE_TEMP_BAN_FOR_DBWORK - case 13: error = "Self Lock"; break; // 13 = MSI_REFUSE_SELF_LOCK - case 14: error = "Not Permitted Group"; break; // 14 = MSI_REFUSE_NOT_PERMITTED_GROUP - case 15: error = "Not Permitted Group"; break; // 15 = MSI_REFUSE_NOT_PERMITTED_GROUP - case 99: error = "Account gone."; break; // 99 = This ID has been totally erased - case 100: error = "Login info remains."; break; // 100 = Login information remains at %s - case 101: error = "Hacking investigation."; break; // 101 = Account has been locked for a hacking investigation. Please contact the GM Team for more information - case 102: error = "Bug investigation."; break; // 102 = This account has been temporarily prohibited from login due to a bug-related investigation - case 103: error = "Deleting char."; break; // 103 = This character is being deleted. Login is temporarily unavailable for the time being - case 104: error = "Deleting spouse char."; break; // 104 = This character is being deleted. Login is temporarily unavailable for the time being - default : error = "Unknown Error."; break; - } - - if( SQL_ERROR == Sql_Query(sql_handle, "INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%u', '%s', '%d','login failed : %s')", loginlog_db, ip, esc_userid, result, error) ) - Sql_ShowDebug(sql_handle); - } - - if( result == 1 && login_config.dynamic_pass_failure_ban && login_config.log_login ) // failed password - { - unsigned long failures = 0; - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT count(*) FROM `%s` WHERE `ip` = '%u' AND `rcode` = '1' AND `time` > NOW() - INTERVAL %d MINUTE", - loginlog_db, ip, login_config.dynamic_pass_failure_ban_interval) )// how many times failed account? in one ip. - Sql_ShowDebug(sql_handle); - - //check query result - if( SQL_SUCCESS == Sql_NextRow(sql_handle) ) - { - char* data; - Sql_GetData(sql_handle, 0, &data, NULL); - failures = strtoul(data, NULL, 10); - Sql_FreeResult(sql_handle); - } - if( failures >= login_config.dynamic_pass_failure_ban_limit ) - { - uint8* p = (uint8*)&ip; - if( SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `ipbanlist`(`list`,`btime`,`rtime`,`reason`) VALUES ('%u.%u.%u.*', NOW() , NOW() + INTERVAL %d MINUTE ,'Password error ban: %s')", p[3], p[2], p[1], login_config.dynamic_pass_failure_ban_duration, esc_userid) ) - Sql_ShowDebug(sql_handle); - } - } - - WFIFOHEAD(fd,23); - WFIFOW(fd,0) = 0x6a; - WFIFOB(fd,2) = (uint8)result; - if( result != 6 ) - memset(WFIFOP(fd,3), '\0', 20); - else - {// 6 = Your are Prohibited to log in until %s - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `ban_until` FROM `%s` WHERE `%s` = %s '%s'", login_db, login_db_userid, (login_config.case_sensitive ? "BINARY" : ""), esc_userid) ) - Sql_ShowDebug(sql_handle); - else if( SQL_SUCCESS == Sql_NextRow(sql_handle) ) - { - char* data; - time_t unban_time; - - Sql_GetData(sql_handle, 0, &data, NULL); - unban_time = (time_t)strtoul(data, NULL, 10); - Sql_FreeResult(sql_handle); - - strftime((char*)WFIFOP(fd,3), 20, login_config.date_format, localtime(&unban_time)); - } - } - WFIFOSET(fd,23); -} - -//---------------------------------------------------------------------------------------- -// Default packet parsing (normal players or administation/char-server connection requests) -//---------------------------------------------------------------------------------------- -int parse_login(int fd) -{ - struct login_session_data* sd = session[fd]->session_data; - int result; - uint32 ipl; - char ip[16]; - - if( session[fd]->flag.eof ) - { - do_close(fd); - return 0; - } - - if( sd == NULL ) { - sd = CREATE(session[fd]->session_data, struct login_session_data, 1); - sd->fd = fd; - } - - ipl = session[fd]->client_addr; - ip2str(ipl, ip); - - while( RFIFOREST(fd) >= 2 ) - { - uint16 command = RFIFOW(fd,0); - - switch( command ) - { - - case 0x0200: // New alive packet: structure: 0x200 .24B. used to verify if client is always alive. - if (RFIFOREST(fd) < 26) - return 0; - RFIFOSKIP(fd,26); - break; - - case 0x0204: // New alive packet: structure: 0x204 .16B. (new ragexe from 22 june 2004) - if (RFIFOREST(fd) < 18) - return 0; - RFIFOSKIP(fd,18); - break; - - case 0x0064: // request client login - case 0x01dd: // request client login (encryption mode) - case 0x0277: // New login packet (kRO 2006-04-24aSakexe langtype 0) - case 0x02b0: // New login packet (kRO 2007-05-14aSakexe langtype 0) - { - size_t packet_len = RFIFOREST(fd); // assume no other packet was sent - - // Perform ip-ban check - if( login_config.ipban && login_ip_ban_check(ipl) ) - { - ShowStatus("Connection refused: IP isn't authorised (deny/allow, ip: %s).\n", ip); - WFIFOHEAD(fd,23); - WFIFOW(fd,0) = 0x6a; - WFIFOB(fd,2) = 3; // 3 = Rejected from Server - WFIFOSET(fd,23); - RFIFOSKIP(fd,packet_len); - set_eof(fd); - break; - } - - if( (command == 0x0064 && packet_len < 55) - || (command == 0x01dd && packet_len < 47) - || (command == 0x0277 && packet_len < 84) - || (command == 0x02b0 && packet_len < 85) ) - return 0; - - // S 0064 .l .24B .24B .B - // S 01dd .l .24B .16B .B - // S 0277 .l .24B .24B .29B .B - // S 02b0 .l .24B .24B .30B .B - - sd->version = RFIFOL(fd,2); - safestrncpy(sd->userid, (char*)RFIFOP(fd,6), NAME_LENGTH);//## does it have to be nul-terminated? - if (command != 0x01dd) { - ShowStatus("Request for connection of %s (ip: %s).\n", sd->userid, ip); - safestrncpy(sd->passwd, (char*)RFIFOP(fd,30), NAME_LENGTH);//## does it have to be nul-terminated? - sd->passwdenc = 0; - } else { - ShowStatus("Request for connection (encryption mode) of %s (ip: %s).\n", sd->userid, ip); - memcpy(sd->passwd, RFIFOP(fd,30), 16); sd->passwd[16] = '\0'; // raw binary data here! - sd->passwdenc = PASSWORDENC; - } - RFIFOSKIP(fd,packet_len); - - result = mmo_auth(sd); - - if( result == -1 ) - login_auth_ok(sd); - else - login_auth_failed(sd, result); - } - break; - - case 0x01db: // Sending request of the coding key - RFIFOSKIP(fd,2); - { - unsigned int i; - - memset(sd->md5key, '\0', sizeof(sd->md5key)); - sd->md5keylen = (uint16)(12 + rand() % 4); - for( i = 0; i < sd->md5keylen; ++i ) - sd->md5key[i] = (char)(1 + rand() % 255); - - WFIFOHEAD(fd,4 + sd->md5keylen); - WFIFOW(fd,0) = 0x01dc; - WFIFOW(fd,2) = 4 + sd->md5keylen; - memcpy(WFIFOP(fd,4), sd->md5key, sd->md5keylen); - WFIFOSET(fd,WFIFOW(fd,2)); - } - break; - - case 0x2710: // Connection request of a char-server - if (RFIFOREST(fd) < 86) - return 0; - { - char esc_userid[NAME_LENGTH*2+1]; - char server_name[20]; - char esc_server_name[20*2+1]; - uint32 server_ip; - uint16 server_port; - uint16 maintenance; - uint16 new_; - - safestrncpy(sd->userid, (char*)RFIFOP(fd,2), NAME_LENGTH); - safestrncpy(sd->passwd, (char*)RFIFOP(fd,26), NAME_LENGTH); - sd->passwdenc = 0; - sd->version = login_config.client_version_to_connect; // hack to skip version check - server_ip = ntohl(RFIFOL(fd,54)); - server_port = ntohs(RFIFOW(fd,58)); - safestrncpy(server_name, (char*)RFIFOP(fd,60), 20); - maintenance = RFIFOW(fd,82); - new_ = RFIFOW(fd,84); - RFIFOSKIP(fd,86); - - Sql_EscapeStringLen(sql_handle, esc_server_name, server_name, strnlen(server_name, 20)); - Sql_EscapeStringLen(sql_handle, esc_userid, sd->userid, strnlen(sd->userid, NAME_LENGTH)); - - ShowInfo("Connection request of the char-server '%s' @ %d.%d.%d.%d:%d (account: '%s', pass: '%s', ip: '%s')\n", server_name, CONVIP(server_ip), server_port, sd->userid, sd->passwd, ip); - - if( login_config.log_login && SQL_ERROR == Sql_Query(sql_handle, "INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%u', '%s@%s','100', 'charserver - %s@%u.%u.%u.%u:%d')", - loginlog_db, ipl, esc_userid, esc_server_name, esc_server_name, CONVIP(server_ip), server_port) ) - Sql_ShowDebug(sql_handle); - - result = mmo_auth(sd); - if( result == -1 && sd->sex == 'S' && sd->account_id < MAX_SERVERS && server[sd->account_id].fd == -1 ) - { - ShowStatus("Connection of the char-server '%s' accepted.\n", server_name); - safestrncpy(server[sd->account_id].name, server_name, sizeof(server[sd->account_id].name)); - server[sd->account_id].fd = fd; - server[sd->account_id].ip = server_ip; - server[sd->account_id].port = server_port; - server[sd->account_id].users = 0; - server[sd->account_id].maintenance = maintenance; - server[sd->account_id].new_ = new_; - - session[fd]->func_parse = parse_fromchar; - session[fd]->flag.server = 1; - realloc_fifo(fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK); - - // send connection success - WFIFOHEAD(fd,3); - WFIFOW(fd,0) = 0x2711; - WFIFOB(fd,2) = 0; - WFIFOSET(fd,3); - - // send GM account to char-server - send_GM_accounts(fd); - - if( SQL_ERROR == Sql_Query(sql_handle, "REPLACE INTO `sstatus`(`index`,`name`,`user`) VALUES ( '%d', '%s', '%d')", sd->account_id, esc_server_name, 0) ) - Sql_ShowDebug(sql_handle); - } - else - { - ShowNotice("Connection of the char-server '%s' REFUSED.\n", server_name); - WFIFOHEAD(fd,3); - WFIFOW(fd,0) = 0x2711; - WFIFOB(fd,2) = 3; - WFIFOSET(fd,3); - } - } - return 0; // processing will continue elsewhere - - case 0x7530: // Server version information request - ShowStatus("Sending server version information to ip: %s\n", ip); - RFIFOSKIP(fd,2); - WFIFOHEAD(fd,10); - WFIFOW(fd,0) = 0x7531; - WFIFOB(fd,2) = ATHENA_MAJOR_VERSION; - WFIFOB(fd,3) = ATHENA_MINOR_VERSION; - WFIFOB(fd,4) = ATHENA_REVISION; - WFIFOB(fd,5) = ATHENA_RELEASE_FLAG; - WFIFOB(fd,6) = ATHENA_OFFICIAL_FLAG; - WFIFOB(fd,7) = ATHENA_SERVER_LOGIN; - WFIFOW(fd,8) = ATHENA_MOD_VERSION; - WFIFOSET(fd,10); - break; - - default: - ShowNotice("Abnormal end of connection (ip: %s): Unknown packet 0x%x\n", ip, command); - set_eof(fd); - return 0; - } - } - - RFIFOSKIP(fd,RFIFOREST(fd)); - return 0; -} - -//----------------------- -// Console Command Parser [Wizputer] -//----------------------- -int parse_console(char* buf) -{ - char command[256]; - - memset(command, 0, sizeof(command)); - - sscanf(buf, "%[^\n]", command); - - ShowInfo("Console command :%s", command); - - if( strcmpi("shutdown", command) == 0 || - strcmpi("exit", command) == 0 || - strcmpi("quit", command) == 0 || - strcmpi("end", command) == 0 ) - runflag = 0; - else - if( strcmpi("alive", command) == 0 || - strcmpi("status", command) == 0 ) - ShowInfo(CL_CYAN"Console: "CL_BOLD"I'm Alive."CL_RESET"\n"); - else - if( strcmpi("help", command) == 0 ) { - ShowInfo(CL_BOLD"Help of commands:"CL_RESET"\n"); - ShowInfo(" To shutdown the server:\n"); - ShowInfo(" 'shutdown|exit|quit|end'\n"); - ShowInfo(" To know if server is alive:\n"); - ShowInfo(" 'alive|status'\n"); - } - - return 0; -} - -static int online_data_cleanup_sub(DBKey key, void *data, va_list ap) -{ - struct online_login_data *character= (struct online_login_data*)data; - if (character->char_server == -2) //Unknown server.. set them offline - remove_online_user(character->account_id); - return 0; -} - -static int online_data_cleanup(int tid, unsigned int tick, int id, intptr data) -{ - online_db->foreach(online_db, online_data_cleanup_sub); - return 0; -} - -//---------------------------------- -// Reading Lan Support configuration -//---------------------------------- -int login_lan_config_read(const char *lancfgName) -{ - FILE *fp; - int line_num = 0; - char line[1024], w1[64], w2[64], w3[64], w4[64]; - - if((fp = fopen(lancfgName, "r")) == NULL) { - ShowWarning("LAN Support configuration file is not found: %s\n", lancfgName); - return 1; - } - - ShowInfo("Reading the configuration file %s...\n", lancfgName); - - while(fgets(line, sizeof(line), fp)) - { - line_num++; - if ((line[0] == '/' && line[1] == '/') || line[0] == '\n' || line[1] == '\n') - continue; - - if(sscanf(line,"%[^:]: %[^:]:%[^:]:%[^\r\n]", w1, w2, w3, w4) != 4) - { - ShowWarning("Error syntax of configuration file %s in line %d.\n", lancfgName, line_num); - continue; - } - - if( strcmpi(w1, "subnet") == 0 ) - { - subnet[subnet_count].mask = str2ip(w2); - subnet[subnet_count].char_ip = str2ip(w3); - subnet[subnet_count].map_ip = str2ip(w4); - - if( (subnet[subnet_count].char_ip & subnet[subnet_count].mask) != (subnet[subnet_count].map_ip & subnet[subnet_count].mask) ) - { - ShowError("%s: Configuration Error: The char server (%s) and map server (%s) belong to different subnetworks!\n", lancfgName, w3, w4); - continue; - } - - subnet_count++; - } - } - - ShowStatus("Read information about %d subnetworks.\n", subnet_count); - - fclose(fp); - return 0; -} - -//----------------------------------------------------- -// clear expired ip bans -//----------------------------------------------------- -int ip_ban_flush(int tid, unsigned int tick, int id, intptr data) -{ - if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `ipbanlist` WHERE `rtime` <= NOW()") ) - Sql_ShowDebug(sql_handle); - - return 0; -} - -//----------------------------------- -// Reading main configuration file -//----------------------------------- -int login_config_read(const char* cfgName) -{ - char line[1024], w1[1024], w2[1024]; - FILE* fp = fopen(cfgName, "r"); - if (fp == NULL) { - ShowError("Configuration file (%s) not found.\n", cfgName); - return 1; - } - ShowInfo("Reading configuration file %s...\n", cfgName); - while(fgets(line, sizeof(line), fp)) - { - if (line[0] == '/' && line[1] == '/') - continue; - - if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) < 2) - continue; - - if(!strcmpi(w1,"timestamp_format")) - strncpy(timestamp_format, w2, 20); - else if(!strcmpi(w1,"stdout_with_ansisequence")) - stdout_with_ansisequence = config_switch(w2); - else if(!strcmpi(w1,"console_silent")) { - ShowInfo("Console Silent Setting: %d\n", atoi(w2)); - msg_silent = atoi(w2); - } - else if( !strcmpi(w1, "bind_ip") ) { - char ip_str[16]; - login_config.login_ip = host2ip(w2); - if( login_config.login_ip ) - ShowStatus("Login server binding IP address : %s -> %s\n", w2, ip2str(login_config.login_ip, ip_str)); - } - else if( !strcmpi(w1, "login_port") ) { - login_config.login_port = (uint16)atoi(w2); - ShowStatus("set login_port : %s\n",w2); - } - else if(!strcmpi(w1, "log_login")) - login_config.log_login = (bool)config_switch(w2); - - else if(!strcmpi(w1, "ipban")) - login_config.ipban = (bool)config_switch(w2); - else if(!strcmpi(w1, "dynamic_pass_failure_ban")) - login_config.dynamic_pass_failure_ban = (bool)config_switch(w2); - else if(!strcmpi(w1, "dynamic_pass_failure_ban_interval")) - login_config.dynamic_pass_failure_ban_interval = atoi(w2); - else if(!strcmpi(w1, "dynamic_pass_failure_ban_limit")) - login_config.dynamic_pass_failure_ban_limit = atoi(w2); - else if(!strcmpi(w1, "dynamic_pass_failure_ban_duration")) - login_config.dynamic_pass_failure_ban_duration = atoi(w2); - - else if(!strcmpi(w1, "new_account")) - login_config.new_account_flag = (bool)config_switch(w2); - else if(!strcmpi(w1, "start_limited_time")) - login_config.start_limited_time = atoi(w2); - else if(!strcmpi(w1, "check_client_version")) - login_config.check_client_version = (bool)config_switch(w2); - else if(!strcmpi(w1, "client_version_to_connect")) - login_config.client_version_to_connect = atoi(w2); - else if(!strcmpi(w1, "use_MD5_passwords")) - login_config.use_md5_passwds = (bool)config_switch(w2); - else if(!strcmpi(w1, "min_level_to_connect")) - login_config.min_level_to_connect = atoi(w2); - else if(!strcmpi(w1, "date_format")) - safestrncpy(login_config.date_format, w2, sizeof(login_config.date_format)); - else if(!strcmpi(w1, "console")) - login_config.console = (bool)config_switch(w2); - else if(!strcmpi(w1, "case_sensitive")) - login_config.case_sensitive = (bool)config_switch(w2); - else if(!strcmpi(w1, "allowed_regs")) //account flood protection system - allowed_regs = atoi(w2); - else if(!strcmpi(w1, "time_allowed")) - time_allowed = atoi(w2); - else if(!strcmpi(w1, "online_check")) - login_config.online_check = (bool)config_switch(w2); - else if(!strcmpi(w1, "use_dnsbl")) - login_config.use_dnsbl = (bool)config_switch(w2); - else if(!strcmpi(w1, "dnsbl_servers")) - safestrncpy(login_config.dnsbl_servs, w2, sizeof(login_config.dnsbl_servs)); - else if(!strcmpi(w1, "ip_sync_interval")) - login_config.ip_sync_interval = (unsigned int)1000*60*atoi(w2); //w2 comes in minutes. - else if(!strcmpi(w1, "import")) - login_config_read(w2); - } - fclose(fp); - ShowInfo("Finished reading %s.\n", cfgName); - return 0; -} - -void sql_config_read(const char* cfgName) -{ - char line[1024], w1[1024], w2[1024]; - FILE* fp = fopen(cfgName, "r"); - if(fp == NULL) { - ShowError("file not found: %s\n", cfgName); - return; - } - ShowInfo("reading configuration file %s...\n", cfgName); - while(fgets(line, sizeof(line), fp)) - { - if (line[0] == '/' && line[1] == '/') - continue; - if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) < 2) - continue; - - if (!strcmpi(w1, "gm_read_method")) - login_config.login_gm_read = (atoi(w2) == 0); - else if (!strcmpi(w1, "login_db")) - strcpy(login_db, w2); - else if (!strcmpi(w1, "login_server_ip")) - strcpy(login_server_ip, w2); - else if (!strcmpi(w1, "login_server_port")) - login_server_port = (uint16)atoi(w2); - else if (!strcmpi(w1, "login_server_id")) - strcpy(login_server_id, w2); - else if (!strcmpi(w1, "login_server_pw")) - strcpy(login_server_pw, w2); - else if (!strcmpi(w1, "login_server_db")) - strcpy(login_server_db, w2); - else if (!strcmpi(w1, "default_codepage")) - strcpy(default_codepage, w2); - else if (!strcmpi(w1, "login_db_account_id")) - strcpy(login_db_account_id, w2); - else if (!strcmpi(w1, "login_db_userid")) - strcpy(login_db_userid, w2); - else if (!strcmpi(w1, "login_db_user_pass")) - strcpy(login_db_user_pass, w2); - else if (!strcmpi(w1, "login_db_level")) - strcpy(login_db_level, w2); - else if (!strcmpi(w1, "loginlog_db")) - strcpy(loginlog_db, w2); - else if (!strcmpi(w1, "reg_db")) - strcpy(reg_db, w2); - else if (!strcmpi(w1, "import")) - sql_config_read(w2); - } - fclose(fp); - ShowInfo("Done reading %s.\n", cfgName); -} - -void login_set_defaults() -{ - login_config.login_ip = INADDR_ANY; - login_config.login_port = 6900; - login_config.ip_sync_interval = 0; - login_config.log_login = true; - safestrncpy(login_config.date_format, "%Y-%m-%d %H:%M:%S", sizeof(login_config.date_format)); - login_config.console = false; - login_config.new_account_flag = true; - login_config.case_sensitive = true; - login_config.use_md5_passwds = false; - login_config.login_gm_read = true; - login_config.min_level_to_connect = 0; - login_config.online_check = true; - login_config.check_client_version = false; - login_config.client_version_to_connect = 20; - - login_config.ipban = true; - login_config.dynamic_pass_failure_ban = true; - login_config.dynamic_pass_failure_ban_interval = 5; - login_config.dynamic_pass_failure_ban_limit = 7; - login_config.dynamic_pass_failure_ban_duration = 5; - login_config.use_dnsbl = false; - safestrncpy(login_config.dnsbl_servs, "", sizeof(login_config.dnsbl_servs)); -} - -//-------------------------------------- -// Function called at exit of the server -//-------------------------------------- -void do_final(void) -{ - int i, fd; - ShowStatus("Terminating...\n"); - - mmo_db_close(); - online_db->destroy(online_db, NULL); - auth_db->destroy(auth_db, NULL); - - if(gm_account_db) aFree(gm_account_db); - - for (i = 0; i < MAX_SERVERS; i++) { - if ((fd = server[i].fd) >= 0) { - memset(&server[i], 0, sizeof(struct mmo_char_server)); - server[i].fd = -1; - do_close(fd); - } - } - do_close(login_fd); - - ShowStatus("Finished.\n"); -} - -//------------------------------ -// Function called when the server -// has received a crash signal. -//------------------------------ -void do_abort(void) -{ -} - -void set_server_type(void) -{ - SERVER_TYPE = ATHENA_SERVER_LOGIN; -} - -//------------------------------ -// Login server initialization -//------------------------------ -int do_init(int argc, char** argv) -{ - int i; - - login_set_defaults(); - - // read login-server configuration - login_config_read((argc > 1) ? argv[1] : LOGIN_CONF_NAME); - sql_config_read(SQL_CONF_NAME); - login_lan_config_read((argc > 2) ? argv[2] : LAN_CONF_NAME); - - srand((unsigned int)time(NULL)); - - for( i = 0; i < MAX_SERVERS; i++ ) - server[i].fd = -1; - - // Online user database init - online_db = idb_alloc(DB_OPT_RELEASE_DATA); - add_timer_func_list(waiting_disconnect_timer, "waiting_disconnect_timer"); - - // Auth init - auth_db = idb_alloc(DB_OPT_RELEASE_DATA); - mmo_auth_sqldb_init(); - - // Read account information. - if(login_config.login_gm_read) - read_gm_account(); - - // set default parser as parse_login function - set_defaultparse(parse_login); - - // ban deleter timer - add_timer_func_list(ip_ban_flush, "ip_ban_flush"); - add_timer_interval(gettick()+10, ip_ban_flush, 0, 0, 60*1000); - - // every 10 minutes cleanup online account db. - add_timer_func_list(online_data_cleanup, "online_data_cleanup"); - add_timer_interval(gettick() + 600*1000, online_data_cleanup, 0, 0, 600*1000); - - // add timer to detect ip address change and perform update - if (login_config.ip_sync_interval) { - add_timer_func_list(sync_ip_addresses, "sync_ip_addresses"); - add_timer_interval(gettick() + login_config.ip_sync_interval, sync_ip_addresses, 0, 0, login_config.ip_sync_interval); - } - - if( login_config.console ) - { - //##TODO invoke a CONSOLE_START plugin event - } - - new_reg_tick = gettick(); - - // server port open & binding - login_fd = make_listen_bind(login_config.login_ip, login_config.login_port); - - ShowStatus("The login-server is "CL_GREEN"ready"CL_RESET" (Server is listening on the port %u).\n\n", login_config.login_port); - - return 0; -} diff --git a/src/login_sql/login.h b/src/login_sql/login.h deleted file mode 100644 index d343c0905..000000000 --- a/src/login_sql/login.h +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#ifndef _LOGIN_SQL_H_ -#define _LOGIN_SQL_H_ - -#include "../common/mmo.h" // NAME_LENGTH - -#define LOGIN_CONF_NAME "conf/login_athena.conf" -#define SQL_CONF_NAME "conf/inter_athena.conf" -#define LAN_CONF_NAME "conf/subnet_athena.conf" - -// supported encryption types: 1- passwordencrypt, 2- passwordencrypt2, 3- both -#define PASSWORDENC 3 - -struct login_session_data { - - int account_id; - long login_id1; - long login_id2; - char sex; - - char userid[NAME_LENGTH]; - char passwd[NAME_LENGTH]; - int passwdenc; - char md5key[20]; - uint16 md5keylen; - - char lastlogin[24]; - uint8 level; - int version; - - int fd; -}; - -struct mmo_char_server { - char name[20]; - int fd; - uint32 ip; - uint16 port; - int users; - int maintenance; - int new_; -}; - -struct Login_Config { - - uint32 login_ip; // the address to bind to - uint16 login_port; // the port to bind to - unsigned int ip_sync_interval; // interval (in minutes) to execute a DNS/IP update (for dynamic IPs) - bool log_login; // whether to log login server actions or not - char date_format[32]; // date format used in messages - bool console; // console input system enabled? - bool new_account_flag; // autoregistration via _M/_F ? - int start_limited_time; // new account expiration time (-1: unlimited) - bool case_sensitive; // are logins case sensitive ? - bool use_md5_passwds; // work with password hashes instead of plaintext passwords? - bool login_gm_read; // should the login server handle info about gm accounts? - int min_level_to_connect; // minimum level of player/GM (0: player, 1-99: GM) to connect - bool online_check; // reject incoming players that are already registered as online ? - bool check_client_version; // check the clientversion set in the clientinfo ? - int client_version_to_connect; // the client version needed to connect (if checking is enabled) - - bool ipban; // perform IP blocking (via contents of `ipbanlist`) ? - bool dynamic_pass_failure_ban; // automatic IP blocking due to failed login attemps ? - unsigned int dynamic_pass_failure_ban_interval; // how far to scan the loginlog for password failures - unsigned int dynamic_pass_failure_ban_limit; // number of failures needed to trigger the ipban - unsigned int dynamic_pass_failure_ban_duration; // duration of the ipban - bool use_dnsbl; // dns blacklist blocking ? - char dnsbl_servs[1024]; // comma-separated list of dnsbl servers - -}; - -struct mmo_account { - - int account_id; - char sex; - char userid[24]; - char pass[32+1]; // 23+1 for normal, 32+1 for md5-ed passwords - char lastlogin[24]; - int logincount; - uint32 state; // packet 0x006a value + 1 (0: compte OK) - char email[40]; // e-mail (by default: a@a.com) - char error_message[20]; // Message of error code #6 = Your are Prohibited to log in until %s (packet 0x006a) - time_t unban_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban) - time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) - char last_ip[16]; // save of last IP of connection - char memo[255]; // a memo field - int account_reg2_num; - struct global_reg account_reg2[ACCOUNT_REG2_NUM]; // account script variables (stored on login server) -}; - - -#endif /* _LOGIN_SQL_H_ */ diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 91727695b..dab99cb51 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -4187,19 +4187,6 @@ int atcommand_reloadscript(const int fd, struct map_session_data* sd, const char return 0; } -/*========================================== - * @reloadgmdb - reloads gm levels from where they are stored (gm_account.txt / mysql database) - *------------------------------------------*/ -int atcommand_reloadgmdb(const int fd, struct map_session_data* sd, const char* command, const char* message) -{ - nullpo_retr(-1, sd); - chrif_reloadGMdb(); - - clif_displaymessage(fd, msg_txt(101)); // Login-server asked to reload GM accounts and their level. - - return 0; -} - /*========================================== * @mapinfo [0-3] by MC_Cameri * => Shows information about the map [map name] @@ -6632,7 +6619,7 @@ int atcommand_adjgmlvl(const int fd, struct map_session_data* sd, const char* co return -1; } - pc_set_gm_level(pl_sd->status.account_id, newlev); + sd->gmlevel = newlev; return 0; } @@ -8191,7 +8178,7 @@ int atcommand_request(const int fd, struct map_session_data* sd, const char* com } sprintf(atcmd_output, msg_txt(278), message); // (@request): %s - intif_wis_message_to_gm(sd->status.name, lowest_gm_level, atcmd_output); + intif_wis_message_to_gm(sd->status.name, battle_config.lowest_gm_level, atcmd_output); clif_disp_onlyself(sd, atcmd_output, strlen(atcmd_output)); clif_displaymessage(sd->fd,msg_txt(279)); // @request sent. return 0; @@ -8400,7 +8387,6 @@ AtCommandInfo atcommand_info[] = { { "reloadmobdb", 99, atcommand_reloadmobdb }, { "reloadskilldb", 99, atcommand_reloadskilldb }, { "reloadscript", 99, atcommand_reloadscript }, - { "reloadgmdb", 99, atcommand_reloadgmdb }, { "reloadatcommand", 99, atcommand_reloadatcommand }, { "reloadbattleconf", 99, atcommand_reloadbattleconf }, { "reloadstatusdb", 99, atcommand_reloadstatusdb }, diff --git a/src/map/battle.c b/src/map/battle.c index d7bae3c0e..98fc40062 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3395,6 +3395,7 @@ static const struct _battle_data { { "guild_max_castles", &battle_config.guild_max_castles, 0, 0, INT_MAX, }, { "guild_skill_relog_delay", &battle_config.guild_skill_relog_delay, 0, 0, 1, }, { "emergency_call", &battle_config.emergency_call, 11, 0, 31, }, + { "lowest_gm_level", &battle_config.lowest_gm_level, 1, 0, 99, }, { "atcommand_gm_only", &battle_config.atc_gmonly, 0, 0, 1, }, { "atcommand_spawn_quantity_limit", &battle_config.atc_spawn_quantity_limit, 100, 0, INT_MAX, }, { "atcommand_slave_clone_limit", &battle_config.atc_slave_clone_limit, 25, 0, INT_MAX, }, diff --git a/src/map/battle.h b/src/map/battle.h index bb7e53278..cb3b0f265 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -141,6 +141,7 @@ extern struct Battle_Config int monster_max_aspd; int view_range_rate; int chase_range_rate; + int lowest_gm_level; int atc_gmonly; int atc_spawn_quantity_limit; int atc_slave_clone_limit; diff --git a/src/map/chrif.c b/src/map/chrif.c index 725fbcc07..a46186fc1 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -36,7 +36,7 @@ static const int packet_len_table[0x3d] = { // U - used, F - free 60, 3,-1,27,10,-1, 6,-1, // 2af8-2aff: U->2af8, U->2af9, U->2afa, U->2afb, U->2afc, U->2afd, U->2afe, U->2aff 6,-1,18, 7,-1,35,30,-1, // 2b00-2b07: U->2b00, U->2b01, U->2b02, U->2b03, U->2b04, U->2b05, U->2b06, F->2b07 6,30,-1,-1,86, 7,44,34, // 2b08-2b0f: U->2b08, U->2b09, F->2b0a, F->2b0b, U->2b0c, U->2b0d, U->2b0e, U->2b0f - 11,10,10, 6,11,-1,266,10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, U->2b13, U->2b14, U->2b15, U->2b16, U->2b17 + 11,10,10, 6,11,-1,266,10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, U->2b13, U->2b14, F->2b15, U->2b16, U->2b17 2,10, 2,-1,-1,-1, 2, 7, // 2b18-2b1f: U->2b18, U->2b19, U->2b1a, U->2b1b, U->2b1c, U->2b1d, U->2b1e, U->2b1f -1,10, 8, 2, 2,14,19,19, // 2b20-2b27: U->2b20, U->2b21, U->2b22, U->2b23, U->2b24, U->2b25, U->2b26, U->2b27 }; @@ -71,7 +71,7 @@ static const int packet_len_table[0x3d] = { // U - used, F - free //2b12: Incoming, chrif_divorceack -> 'divorce chars //2b13: Incoming, chrif_accountdeletion -> 'Delete acc XX, if the player is on, kick ....' //2b14: Incoming, chrif_accountban -> 'not sure: kick the player with message XY' -//2b15: Incoming, chrif_recvgmaccounts -> 'receive gm accs from charserver (seems to be incomplete !)' +//2b15: FREE //2b16: Outgoing, chrif_ragsrvinfo -> 'sends motd / rates ....' //2b17: Outgoing, chrif_char_offline -> 'tell the charserver that the char is now offline' //2b18: Outgoing, chrif_char_reset_offline -> 'set all players OFF!' @@ -512,56 +512,58 @@ int chrif_scdata_request(int account_id, int char_id) } /*========================================== - * new auth system [Kevin] + * Request auth confirmation *------------------------------------------*/ void chrif_authreq(struct map_session_data *sd) { struct auth_node *node= chrif_search(sd->bl.id); - if(!node) { - //request data from char server and store current auth info - WFIFOHEAD(char_fd,19); - WFIFOW(char_fd,0) = 0x2b26; - WFIFOL(char_fd,2) = sd->status.account_id; - WFIFOL(char_fd,6) = sd->status.char_id; - WFIFOL(char_fd,10) = sd->login_id1; - WFIFOB(char_fd,14) = sd->status.sex; - WFIFOL(char_fd,15) = htonl(session[sd->fd]->client_addr); - WFIFOSET(char_fd,19); - chrif_sd_to_auth(sd, ST_LOGIN); + if( node != NULL ) + { + set_eof(sd->fd); return; - } else { //char already online? kick connect request and tell char server that this person is online - //This case shouldn't happen in an ideal system - pc_authfail(sd); - chrif_char_online(sd); } - return; + + WFIFOHEAD(char_fd,19); + WFIFOW(char_fd,0) = 0x2b26; + WFIFOL(char_fd,2) = sd->status.account_id; + WFIFOL(char_fd,6) = sd->status.char_id; + WFIFOL(char_fd,10) = sd->login_id1; + WFIFOB(char_fd,14) = sd->status.sex; + WFIFOL(char_fd,15) = htonl(session[sd->fd]->client_addr); + WFIFOSET(char_fd,19); + chrif_sd_to_auth(sd, ST_LOGIN); } -//character selected, insert into auth db +/*========================================== + * Auth confirmation ack + *------------------------------------------*/ void chrif_authok(int fd) { int account_id; uint32 login_id1; - time_t expiration_time; uint32 login_id2; + time_t expiration_time; + int gmlevel; struct mmo_charstatus* status; int char_id; struct auth_node *node; TBL_PC* sd; //Check if both servers agree on the struct's size - if( RFIFOW(fd,2) - 20 != sizeof(struct mmo_charstatus) ) + if( RFIFOW(fd,2) - 24 != sizeof(struct mmo_charstatus) ) { - ShowError("chrif_authok: Data size mismatch! %d != %d\n", RFIFOW(fd,2) - 20, sizeof(struct mmo_charstatus)); + ShowError("chrif_authok: Data size mismatch! %d != %d\n", RFIFOW(fd,2) - 24, sizeof(struct mmo_charstatus)); return; } account_id = RFIFOL(fd,4); login_id1 = RFIFOL(fd,8); - expiration_time = (time_t)(int32)RFIFOL(fd,12); - login_id2 = RFIFOL(fd,16); - status = (struct mmo_charstatus*)RFIFOP(fd,20); + login_id2 = RFIFOL(fd,12); + expiration_time = (time_t)(int32)RFIFOL(fd,16); + gmlevel = RFIFOL(fd,20); + status = (struct mmo_charstatus*)RFIFOP(fd,24); + char_id = status->char_id; //Check if we don't already have player data in our server @@ -569,33 +571,35 @@ void chrif_authok(int fd) if ((sd = map_id2sd(account_id)) != NULL) return; - if ((node = chrif_search(account_id))) - { //Is the character already awaiting authorization? - if (node->state != ST_LOGIN) - return; //character in logout phase, do not touch that data. - if (node->sd) - { - sd = node->sd; - if(node->char_dat == NULL && - node->account_id == account_id && - node->char_id == char_id && - node->login_id1 == login_id1 ) - { //Auth Ok - if (pc_authok(sd, login_id2, expiration_time, status)) - { - return; - } - } else { //Auth Failed - pc_authfail(sd); - } - chrif_char_offline(sd); //Set client offline - chrif_auth_delete(account_id, char_id, ST_LOGIN); - return; - } + if ((node = chrif_search(account_id)) == NULL) + return; // should not happen + + if (node->state != ST_LOGIN) + return; //character in logout phase, do not touch that data. + + if (node->sd == NULL) + { + /* //When we receive double login info and the client has not connected yet, //discard the older one and keep the new one. chrif_auth_delete(node->account_id, node->char_id, ST_LOGIN); + */ + return; // should not happen + } + + sd = node->sd; + if(node->char_dat == NULL && + node->account_id == account_id && + node->char_id == char_id && + node->login_id1 == login_id1 ) + { //Auth Ok + if (pc_authok(sd, login_id2, expiration_time, gmlevel, status)) + return; + } else { //Auth Failed + pc_authfail(sd); } + chrif_char_offline(sd); //Set him offline, the char server likely has it set as online already. + chrif_auth_delete(account_id, char_id, ST_LOGIN); } // client authentication failed @@ -1035,30 +1039,6 @@ int chrif_disconnectplayer(int fd) return 0; } -/*========================================== - * Request to reload GM accounts and their levels: send to char-server by [Yor] - *------------------------------------------*/ -int chrif_reloadGMdb(void) -{ - chrif_check(-1); - - WFIFOHEAD(char_fd,2); - WFIFOW(char_fd,0) = 0x2af7; - WFIFOSET(char_fd,2); - - return 0; -} - -/*========================================== - * Receiving GM accounts and their levels from char-server by [Yor] - *------------------------------------------*/ -int chrif_recvgmaccounts(int fd) -{ - int nAccounts = pc_read_gm_account(fd); - ShowInfo("From login-server: receiving information of '"CL_WHITE"%d"CL_RESET"' GM accounts.\n", nAccounts); - return 0; -} - /*========================================== * Request/Receive top 10 Fame character list *------------------------------------------*/ @@ -1454,7 +1434,6 @@ int chrif_parse(int fd) case 0x2b12: chrif_divorceack(RFIFOL(fd,2), RFIFOL(fd,6)); break; case 0x2b13: chrif_accountdeletion(fd); break; case 0x2b14: chrif_accountban(fd); break; - case 0x2b15: chrif_recvgmaccounts(fd); break; case 0x2b1b: chrif_recvfamelist(fd); break; case 0x2b1d: chrif_load_scdata(fd); break; case 0x2b1e: chrif_update_ip(fd); break; diff --git a/src/map/chrif.h b/src/map/chrif.h index a8487533c..9ff5b9a0e 100644 --- a/src/map/chrif.h +++ b/src/map/chrif.h @@ -44,7 +44,6 @@ int chrif_changemapserver(struct map_session_data* sd, uint32 ip, uint16 port); int chrif_searchcharid(int char_id); int chrif_changeemail(int id, const char *actual_email, const char *new_email); int chrif_char_ask_name(int acc, const char* character_name, unsigned short operation_type, int year, int month, int day, int hour, int minute, int second); -int chrif_reloadGMdb(void); int chrif_updatefamelist(struct map_session_data *sd); int chrif_buildfamelist(void); int chrif_save_scdata(struct map_session_data *sd); diff --git a/src/map/map.c b/src/map/map.c index 07d353aed..8c80644d0 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -79,8 +79,6 @@ Sql* logmysql_handle; #endif /* not TXT_ONLY */ -int lowest_gm_level = 1; - // This param using for sending mainchat // messages like whispers to this nick. [LuzZza] char main_chat_nick[16] = "Main"; @@ -2955,13 +2953,8 @@ int inter_config_read(char *cfgName) i=sscanf(line,"%[^:]: %[^\r\n]",w1,w2); if(i!=2) continue; - if(strcmpi(w1,"party_share_level")==0){ - party_share_level = config_switch(w2); - } else if(strcmpi(w1,"lowest_gm_level")==0){ - lowest_gm_level = atoi(w2); - - /* Main chat nick [LuzZza] */ - } else if(strcmpi(w1, "main_chat_nick")==0){ + + if(strcmpi(w1, "main_chat_nick")==0){ strcpy(main_chat_nick, w2); #ifndef TXT_ONLY @@ -3068,37 +3061,6 @@ int log_sql_init(void) return 0; } -/*============================================= - * Does a mysql_ping to all connection handles - *---------------------------------------------*/ -int map_sql_ping(int tid, unsigned int tick, int id, intptr data) -{ - ShowInfo("Pinging SQL server to keep connection alive...\n"); - Sql_Ping(mmysql_handle); - if (log_config.sql_logs) - Sql_Ping(logmysql_handle); - return 0; -} - -int sql_ping_init(void) -{ - uint32 connection_timeout, connection_ping_interval; - - // set a default value - connection_timeout = 28800; // 8 hours - - // ask the mysql server for the timeout value - Sql_GetTimeout(mmysql_handle, &connection_timeout); - if (connection_timeout < 60) - connection_timeout = 60; - - // establish keepalive - connection_ping_interval = connection_timeout - 30; // 30-second reserve - add_timer_func_list(map_sql_ping, "map_sql_ping"); - add_timer_interval(gettick() + connection_ping_interval*1000, map_sql_ping, 0, 0, connection_ping_interval*1000); - - return 0; -} #endif /* not TXT_ONLY */ int map_db_final(DBKey k,void *d,va_list ap) @@ -3436,8 +3398,6 @@ int do_init(int argc, char *argv[]) #ifndef TXT_ONLY /* mail system [Valaris] */ if (log_config.sql_logs) log_sql_init(); - - sql_ping_init(); #endif /* not TXT_ONLY */ npc_event_do_oninit(); // npcのOnInitイベント?行 diff --git a/src/map/map.h b/src/map/map.h index 2f46c4e3e..429370a95 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -633,7 +633,6 @@ typedef struct homun_data TBL_HOM; ( ((bl) == (struct block_list*)NULL || (bl)->type != (type_)) ? (T ## type_ *)NULL : (T ## type_ *)(bl) ) -extern int lowest_gm_level; extern char main_chat_nick[16]; #ifndef TXT_ONLY diff --git a/src/map/npc_chat.c b/src/map/npc_chat.c index 44c9ce82e..d7edf69f0 100644 --- a/src/map/npc_chat.c +++ b/src/map/npc_chat.c @@ -14,7 +14,7 @@ #include "pc.h" // struct map_session_data #include "script.h" // set_var() -#include "pcre.h" +#include #include #include diff --git a/src/map/party.c b/src/map/party.c index 28c5154e7..82cecc3ff 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -28,7 +28,6 @@ static DBMap* party_db; // int party_id -> struct party_data* -int party_share_level = 10; int party_send_xy_timer(int tid, unsigned int tick, int id, intptr data); /*========================================== diff --git a/src/map/party.h b/src/map/party.h index 65f585b10..9ad729c28 100644 --- a/src/map/party.h +++ b/src/map/party.h @@ -31,8 +31,6 @@ struct party_data { }; -extern int party_share_level; - void do_init_party(void); void do_final_party(void); struct party_data* party_search(int party_id); diff --git a/src/map/pc.c b/src/map/pc.c index 3c9d5756a..bb24b097a 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -6,7 +6,7 @@ #include "../common/malloc.h" #include "../common/nullpo.h" #include "../common/showmsg.h" -#include "../common/socket.h" // RFIFO*() +#include "../common/socket.h" // session[] #include "../common/strlib.h" // safestrncpy() #include "../common/timer.h" #include "../common/utils.h" @@ -58,9 +58,6 @@ struct fame_list taekwon_fame_list[MAX_FAME_LIST]; static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_AMMO}; -static struct gm_account *gm_account = NULL; -static int GM_num = 0; - #define MOTD_LINE_SIZE 128 char motd_text[MOTD_LINE_SIZE][256]; // Message of the day buffer [Valaris] @@ -85,34 +82,7 @@ int pc_class2idx(int class_) { int pc_isGM(struct map_session_data* sd) { - int i; - nullpo_retr(0, sd); - - if( sd->bl.type != BL_PC ) - return 99; - - ARR_FIND( 0, GM_num, i, gm_account[i].account_id == sd->status.account_id ); - return ( i < GM_num ) ? gm_account[i].level : 0; -} - -int pc_set_gm_level(int account_id, int level) -{ - int i; - - ARR_FIND( 0, GM_num, i, account_id == gm_account[i].account_id ); - if( i < GM_num ) - { - gm_account[i].level = level; - } - else - { - gm_account = (struct gm_account *) aRealloc(gm_account, (GM_num + 1) * sizeof(struct gm_account)); - gm_account[GM_num].account_id = account_id; - gm_account[GM_num].level = level; - GM_num++; - } - - return 0; + return sd->gmlevel; } static int pc_invincible_timer(int tid, unsigned int tick, int id, intptr data) @@ -709,12 +679,13 @@ int pc_isequip(struct map_session_data *sd,int n) * session idに問題無し * char鯖から送られてきたステ?タスを設定 *------------------------------------------*/ -bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_time, struct mmo_charstatus *st) +bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_time, int gmlevel, struct mmo_charstatus *st) { int i; unsigned long tick = gettick(); sd->login_id2 = login_id2; + sd->gmlevel = gmlevel; memcpy(&sd->status, st, sizeof(*st)); if (st->sex != sd->status.sex) { @@ -6925,21 +6896,6 @@ int pc_autosave(int tid, unsigned int tick, int id, intptr data) return 0; } -int pc_read_gm_account(int fd) -{ - //FIXME: this implementation is a total failure (direct reading from RFIFO) [ultramage] - int i = 0; - if (gm_account != NULL) - aFree(gm_account); - GM_num = 0; - gm_account = (struct gm_account *) aMallocA(((RFIFOW(fd,2) - 4) / 5)*sizeof(struct gm_account)); - for (i = 4; i < RFIFOW(fd,2); i += 5) { - gm_account[GM_num].account_id = RFIFOL(fd,i); - gm_account[GM_num].level = (int)RFIFOB(fd,i+4); - GM_num++; - } - return GM_num; -} static int pc_daynight_timer_sub(struct map_session_data *sd,va_list ap) { if (sd->state.night != night_flag && map[sd->bl.m].flag.nightenabled) @@ -7487,8 +7443,6 @@ int pc_read_motd(void) *------------------------------------------*/ void do_final_pc(void) { - if (gm_account) - aFree(gm_account); return; } diff --git a/src/map/pc.h b/src/map/pc.h index 81a1e9a75..d8dd582c5 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -130,6 +130,7 @@ struct map_session_data { } special_state; int login_id1, login_id2; unsigned short class_; //This is the internal job ID used by the map server to simplify comparisons/queries/etc. [Skotlex] + int gmlevel; int packet_ver; // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 9aug04/16aug04/17aug04, 10: 6sept04, 11: 21sept04, 12: 18oct04, 13: 25oct04 ... 18 struct mmo_charstatus status; @@ -498,7 +499,7 @@ int pc_setrestartvalue(struct map_session_data *sd,int type); int pc_makesavestatus(struct map_session_data *); void pc_respawn(struct map_session_data* sd, uint8 clrtype); int pc_setnewpc(struct map_session_data*,int,int,int,unsigned int,int,int); -bool pc_authok(struct map_session_data*, int, time_t, struct mmo_charstatus *); +bool pc_authok(struct map_session_data* sd, int, time_t, int gmlevel, struct mmo_charstatus* status); void pc_authfail(struct map_session_data *); int pc_reg_received(struct map_session_data *sd); @@ -655,7 +656,6 @@ struct map_session_data *pc_get_child(struct map_session_data *sd); void pc_bleeding (struct map_session_data *sd, unsigned int diff_tick); void pc_regen (struct map_session_data *sd, unsigned int diff_tick); -int pc_set_gm_level(int account_id, int level); void pc_setstand(struct map_session_data *sd); int pc_candrop(struct map_session_data *sd,struct item *item); @@ -685,7 +685,6 @@ struct sg_data { }; extern const struct sg_data sg_info[3]; -int pc_read_gm_account(int fd); void pc_setinvincibletimer(struct map_session_data* sd, int val); void pc_delinvincibletimer(struct map_session_data* sd); diff --git a/src/map/pcre.h b/src/map/pcre.h deleted file mode 100644 index e973396ba..000000000 --- a/src/map/pcre.h +++ /dev/null @@ -1,294 +0,0 @@ -/************************************************* -* Perl-Compatible Regular Expressions * -*************************************************/ - -/* This is the public header file for the PCRE library, to be #included by -applications that call the PCRE functions. - - Copyright (c) 1997-2006 University of Cambridge - ------------------------------------------------------------------------------ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of the University of Cambridge nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------ -*/ - -#ifndef _PCRE_H -#define _PCRE_H - -/* The current PCRE version information. */ - -/* NOTES FOR FUTURE MAINTAINERS: Do not use numbers with leading zeros, because -they may be treated as octal constants. The PCRE_PRERELEASE feature is for -identifying release candidates. It might be defined as -RC2, for example. In -real releases, it should be defined empty. Do not change the alignment of these -statments. The code in ./configure greps out the version numbers by using "cut" -to get values from column 29 onwards. These are substituted into pcre-config -and libpcre.pc. The values are not put into configure.ac and substituted here -(which would simplify this issue) because that makes life harder for those who -cannot run ./configure. As it now stands, this file need not be edited in that -circumstance. */ - -#define PCRE_MAJOR 7 -#define PCRE_MINOR 0 -#define PCRE_PRERELEASE -#define PCRE_DATE 18-Dec-2006 - -/* Win32 uses DLL by default; it needs special stuff for exported functions -when building PCRE. */ - -#ifdef _WIN32 -# ifdef PCRE_DEFINITION -# ifdef DLL_EXPORT -# define PCRE_DATA_SCOPE __declspec(dllexport) -# endif -# else -# ifndef PCRE_STATIC -# define PCRE_DATA_SCOPE extern __declspec(dllimport) -# endif -# endif -#endif - -/* Otherwise, we use the standard "extern". */ - -#ifndef PCRE_DATA_SCOPE -# ifdef __cplusplus -# define PCRE_DATA_SCOPE extern "C" -# else -# define PCRE_DATA_SCOPE extern -# endif -#endif - -/* Have to include stdlib.h in order to ensure that size_t is defined; -it is needed here for malloc. */ - -#include - -/* Allow for C++ users */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Options */ - -#define PCRE_CASELESS 0x00000001 -#define PCRE_MULTILINE 0x00000002 -#define PCRE_DOTALL 0x00000004 -#define PCRE_EXTENDED 0x00000008 -#define PCRE_ANCHORED 0x00000010 -#define PCRE_DOLLAR_ENDONLY 0x00000020 -#define PCRE_EXTRA 0x00000040 -#define PCRE_NOTBOL 0x00000080 -#define PCRE_NOTEOL 0x00000100 -#define PCRE_UNGREEDY 0x00000200 -#define PCRE_NOTEMPTY 0x00000400 -#define PCRE_UTF8 0x00000800 -#define PCRE_NO_AUTO_CAPTURE 0x00001000 -#define PCRE_NO_UTF8_CHECK 0x00002000 -#define PCRE_AUTO_CALLOUT 0x00004000 -#define PCRE_PARTIAL 0x00008000 -#define PCRE_DFA_SHORTEST 0x00010000 -#define PCRE_DFA_RESTART 0x00020000 -#define PCRE_FIRSTLINE 0x00040000 -#define PCRE_DUPNAMES 0x00080000 -#define PCRE_NEWLINE_CR 0x00100000 -#define PCRE_NEWLINE_LF 0x00200000 -#define PCRE_NEWLINE_CRLF 0x00300000 -#define PCRE_NEWLINE_ANY 0x00400000 - -/* Exec-time and get/set-time error codes */ - -#define PCRE_ERROR_NOMATCH (-1) -#define PCRE_ERROR_NULL (-2) -#define PCRE_ERROR_BADOPTION (-3) -#define PCRE_ERROR_BADMAGIC (-4) -#define PCRE_ERROR_UNKNOWN_OPCODE (-5) -#define PCRE_ERROR_UNKNOWN_NODE (-5) /* For backward compatibility */ -#define PCRE_ERROR_NOMEMORY (-6) -#define PCRE_ERROR_NOSUBSTRING (-7) -#define PCRE_ERROR_MATCHLIMIT (-8) -#define PCRE_ERROR_CALLOUT (-9) /* Never used by PCRE itself */ -#define PCRE_ERROR_BADUTF8 (-10) -#define PCRE_ERROR_BADUTF8_OFFSET (-11) -#define PCRE_ERROR_PARTIAL (-12) -#define PCRE_ERROR_BADPARTIAL (-13) -#define PCRE_ERROR_INTERNAL (-14) -#define PCRE_ERROR_BADCOUNT (-15) -#define PCRE_ERROR_DFA_UITEM (-16) -#define PCRE_ERROR_DFA_UCOND (-17) -#define PCRE_ERROR_DFA_UMLIMIT (-18) -#define PCRE_ERROR_DFA_WSSIZE (-19) -#define PCRE_ERROR_DFA_RECURSE (-20) -#define PCRE_ERROR_RECURSIONLIMIT (-21) -#define PCRE_ERROR_NULLWSLIMIT (-22) -#define PCRE_ERROR_BADNEWLINE (-23) - -/* Request types for pcre_fullinfo() */ - -#define PCRE_INFO_OPTIONS 0 -#define PCRE_INFO_SIZE 1 -#define PCRE_INFO_CAPTURECOUNT 2 -#define PCRE_INFO_BACKREFMAX 3 -#define PCRE_INFO_FIRSTBYTE 4 -#define PCRE_INFO_FIRSTCHAR 4 /* For backwards compatibility */ -#define PCRE_INFO_FIRSTTABLE 5 -#define PCRE_INFO_LASTLITERAL 6 -#define PCRE_INFO_NAMEENTRYSIZE 7 -#define PCRE_INFO_NAMECOUNT 8 -#define PCRE_INFO_NAMETABLE 9 -#define PCRE_INFO_STUDYSIZE 10 -#define PCRE_INFO_DEFAULT_TABLES 11 - -/* Request types for pcre_config(). Do not re-arrange, in order to remain -compatible. */ - -#define PCRE_CONFIG_UTF8 0 -#define PCRE_CONFIG_NEWLINE 1 -#define PCRE_CONFIG_LINK_SIZE 2 -#define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD 3 -#define PCRE_CONFIG_MATCH_LIMIT 4 -#define PCRE_CONFIG_STACKRECURSE 5 -#define PCRE_CONFIG_UNICODE_PROPERTIES 6 -#define PCRE_CONFIG_MATCH_LIMIT_RECURSION 7 - -/* Bit flags for the pcre_extra structure. Do not re-arrange or redefine -these bits, just add new ones on the end, in order to remain compatible. */ - -#define PCRE_EXTRA_STUDY_DATA 0x0001 -#define PCRE_EXTRA_MATCH_LIMIT 0x0002 -#define PCRE_EXTRA_CALLOUT_DATA 0x0004 -#define PCRE_EXTRA_TABLES 0x0008 -#define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0x0010 - -/* Types */ - -struct real_pcre; /* declaration; the definition is private */ -typedef struct real_pcre pcre; - -/* When PCRE is compiled as a C++ library, the subject pointer type can be -replaced with a custom type. For conventional use, the public interface is a -const char *. */ - -#ifndef PCRE_SPTR -#define PCRE_SPTR const char * -#endif - -/* The structure for passing additional data to pcre_exec(). This is defined in -such as way as to be extensible. Always add new fields at the end, in order to -remain compatible. */ - -typedef struct pcre_extra { - unsigned long int flags; /* Bits for which fields are set */ - void *study_data; /* Opaque data from pcre_study() */ - unsigned long int match_limit; /* Maximum number of calls to match() */ - void *callout_data; /* Data passed back in callouts */ - const unsigned char *tables; /* Pointer to character tables */ - unsigned long int match_limit_recursion; /* Max recursive calls to match() */ -} pcre_extra; - -/* The structure for passing out data via the pcre_callout_function. We use a -structure so that new fields can be added on the end in future versions, -without changing the API of the function, thereby allowing old clients to work -without modification. */ - -typedef struct pcre_callout_block { - int version; /* Identifies version of block */ - /* ------------------------ Version 0 ------------------------------- */ - int callout_number; /* Number compiled into pattern */ - int *offset_vector; /* The offset vector */ - PCRE_SPTR subject; /* The subject being matched */ - int subject_length; /* The length of the subject */ - int start_match; /* Offset to start of this match attempt */ - int current_position; /* Where we currently are in the subject */ - int capture_top; /* Max current capture */ - int capture_last; /* Most recently closed capture */ - void *callout_data; /* Data passed in with the call */ - /* ------------------- Added for Version 1 -------------------------- */ - int pattern_position; /* Offset to next item in the pattern */ - int next_item_length; /* Length of next item in the pattern */ - /* ------------------------------------------------------------------ */ -} pcre_callout_block; - -/* Indirection for store get and free functions. These can be set to -alternative malloc/free functions if required. Special ones are used in the -non-recursive case for "frames". There is also an optional callout function -that is triggered by the (?) regex item. For Virtual Pascal, these definitions -have to take another form. */ - -#ifndef VPCOMPAT -PCRE_DATA_SCOPE void *(*pcre_malloc)(size_t); -PCRE_DATA_SCOPE void (*pcre_free)(void *); -PCRE_DATA_SCOPE void *(*pcre_stack_malloc)(size_t); -PCRE_DATA_SCOPE void (*pcre_stack_free)(void *); -PCRE_DATA_SCOPE int (*pcre_callout)(pcre_callout_block *); -#else /* VPCOMPAT */ -PCRE_DATA_SCOPE void *pcre_malloc(size_t); -PCRE_DATA_SCOPE void pcre_free(void *); -PCRE_DATA_SCOPE void *pcre_stack_malloc(size_t); -PCRE_DATA_SCOPE void pcre_stack_free(void *); -PCRE_DATA_SCOPE int pcre_callout(pcre_callout_block *); -#endif /* VPCOMPAT */ - -/* Exported PCRE functions */ - -PCRE_DATA_SCOPE pcre *pcre_compile(const char *, int, const char **, int *, - const unsigned char *); -PCRE_DATA_SCOPE pcre *pcre_compile2(const char *, int, int *, const char **, - int *, const unsigned char *); -PCRE_DATA_SCOPE int pcre_config(int, void *); -PCRE_DATA_SCOPE int pcre_copy_named_substring(const pcre *, const char *, - int *, int, const char *, char *, int); -PCRE_DATA_SCOPE int pcre_copy_substring(const char *, int *, int, int, char *, - int); -PCRE_DATA_SCOPE int pcre_dfa_exec(const pcre *, const pcre_extra *, - const char *, int, int, int, int *, int , int *, int); -PCRE_DATA_SCOPE int pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR, - int, int, int, int *, int); -PCRE_DATA_SCOPE void pcre_free_substring(const char *); -PCRE_DATA_SCOPE void pcre_free_substring_list(const char **); -PCRE_DATA_SCOPE int pcre_fullinfo(const pcre *, const pcre_extra *, int, - void *); -PCRE_DATA_SCOPE int pcre_get_named_substring(const pcre *, const char *, - int *, int, const char *, const char **); -PCRE_DATA_SCOPE int pcre_get_stringnumber(const pcre *, const char *); -PCRE_DATA_SCOPE int pcre_get_stringtable_entries(const pcre *, const char *, - char **, char **); -PCRE_DATA_SCOPE int pcre_get_substring(const char *, int *, int, int, - const char **); -PCRE_DATA_SCOPE int pcre_get_substring_list(const char *, int *, int, - const char ***); -PCRE_DATA_SCOPE int pcre_info(const pcre *, int *, int *); -PCRE_DATA_SCOPE const unsigned char *pcre_maketables(void); -PCRE_DATA_SCOPE int pcre_refcount(pcre *, int); -PCRE_DATA_SCOPE pcre_extra *pcre_study(const pcre *, int, const char **); -PCRE_DATA_SCOPE const char *pcre_version(void); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* End of pcre.h */ diff --git a/src/map/trade.c b/src/map/trade.c index 880657ff0..aca08872a 100644 --- a/src/map/trade.c +++ b/src/map/trade.c @@ -70,7 +70,7 @@ void trade_traderequest(struct map_session_data *sd, struct map_session_data *ta } //Fixed. Only real GMs can request trade from far away! [Lupus] - if (level < lowest_gm_level && (sd->bl.m != target_sd->bl.m || + if (level < battle_config.lowest_gm_level && (sd->bl.m != target_sd->bl.m || !check_distance_bl(&sd->bl, &target_sd->bl, TRADE_DISTANCE) )) { clif_tradestart(sd, 0); // too far @@ -127,7 +127,7 @@ void trade_tradeack(struct map_session_data *sd, int type) return; //If client didn't send accept, it's a broken packet? //Copied here as well since the original character could had warped. - if (pc_isGM(tsd) < lowest_gm_level && (sd->bl.m != tsd->bl.m || + if (pc_isGM(tsd) < battle_config.lowest_gm_level && (sd->bl.m != tsd->bl.m || !check_distance_bl(&sd->bl, &tsd->bl, TRADE_DISTANCE) )) { clif_tradestart(sd, 0); // too far diff --git a/src/mysql/config-win.h b/src/mysql/config-win.h deleted file mode 100644 index b2e1c9831..000000000 --- a/src/mysql/config-win.h +++ /dev/null @@ -1,470 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -/* Defines for Win32 to make it compatible for MySQL */ - -#ifdef __WIN2000__ -/* We have to do this define before including windows.h to get the AWE API -functions */ -#define _WIN32_WINNT 0x0500 -#endif - -#if defined(_MSC_VER) && _MSC_VER >= 1400 -/* Avoid endless warnings about sprintf() etc. being unsafe. */ -#define _CRT_SECURE_NO_DEPRECATE 1 -#endif - -#include -#include -#include /* Because of rint() */ -#include -#include -#include - -#define HAVE_SMEM 1 - -#if defined(_WIN64) || defined(WIN64) -#define SYSTEM_TYPE "Win64" -#elif defined(_WIN32) || defined(WIN32) -#define SYSTEM_TYPE "Win32" -#else -#define SYSTEM_TYPE "Windows" -#endif - -#if defined(_M_IA64) -#define MACHINE_TYPE "ia64" -#elif defined(_M_IX86) -#define MACHINE_TYPE "ia32" -#elif defined(_M_ALPHA) -#define MACHINE_TYPE "axp" -#else -#define MACHINE_TYPE "unknown" /* Define to machine type name */ -#endif - -#if !(defined(_WIN64) || defined(WIN64)) -#ifndef _WIN32 -#define _WIN32 /* Compatible with old source */ -#endif -#ifndef __WIN32__ -#define __WIN32__ -#endif -#endif /* _WIN64 */ -#ifndef __WIN__ -#define __WIN__ /* To make it easier in VC++ */ -#endif - -#ifndef MAX_INDEXES -#define MAX_INDEXES 64 -#endif - -/* File and lock constants */ -#define O_SHARE 0x1000 /* Open file in sharing mode */ -#ifdef __BORLANDC__ -#define F_RDLCK LK_NBLCK /* read lock */ -#define F_WRLCK LK_NBRLCK /* write lock */ -#define F_UNLCK LK_UNLCK /* remove lock(s) */ -#else -#define F_RDLCK _LK_NBLCK /* read lock */ -#define F_WRLCK _LK_NBRLCK /* write lock */ -#define F_UNLCK _LK_UNLCK /* remove lock(s) */ -#endif - -#define F_EXCLUSIVE 1 /* We have only exclusive locking */ -#define F_TO_EOF (INT_MAX32/2) /* size for lock of all file */ -#define F_OK 0 /* parameter to access() */ -#define W_OK 2 - -#define S_IROTH S_IREAD /* for my_lib */ - -#ifdef __BORLANDC__ -#define FILE_BINARY O_BINARY /* my_fopen in binary mode */ -#define O_TEMPORARY 0 -#define O_SHORT_LIVED 0 -#define SH_DENYNO _SH_DENYNO -#else -#define O_BINARY _O_BINARY /* compability with MSDOS */ -#define FILE_BINARY _O_BINARY /* my_fopen in binary mode */ -#define O_TEMPORARY _O_TEMPORARY -#define O_SHORT_LIVED _O_SHORT_LIVED -#define SH_DENYNO _SH_DENYNO -#endif -#define NO_OPEN_3 /* For my_create() */ - -#define SIGQUIT SIGTERM /* No SIGQUIT */ - -#undef _REENTRANT /* Crashes something for win32 */ -#undef SAFE_MUTEX /* Can't be used on windows */ - -#if defined(_MSC_VER) && _MSC_VER >= 1310 -#define LL(A) A##ll -#define ULL(A) A##ull -#else -#define LL(A) ((__int64) A) -#define ULL(A) ((unsigned __int64) A) -#endif - -#define LONGLONG_MIN LL(0x8000000000000000) -#define LONGLONG_MAX LL(0x7FFFFFFFFFFFFFFF) -#define ULONGLONG_MAX ULL(0xFFFFFFFFFFFFFFFF) - -/* Type information */ - -#if defined(__EMX__) || !defined(HAVE_UINT) -#undef HAVE_UINT -#define HAVE_UINT -typedef unsigned short ushort; -typedef unsigned int uint; -#endif /* defined(__EMX__) || !defined(HAVE_UINT) */ - -typedef unsigned __int64 ulonglong; /* Microsofts 64 bit types */ -typedef __int64 longlong; -#ifndef HAVE_SIGSET_T -typedef int sigset_t; -#endif -#define longlong_defined -/* - off_t should not be __int64 because of conflicts in header files; - Use my_off_t or os_off_t instead -*/ -#ifndef HAVE_OFF_T -typedef long off_t; -#endif -typedef __int64 os_off_t; -#ifdef _WIN64 -typedef UINT_PTR rf_SetTimer; -#else -#ifndef HAVE_SIZE_T -typedef unsigned int size_t; -#endif -typedef uint rf_SetTimer; -#endif - -#define Socket_defined -#define my_socket SOCKET -#define bool BOOL -#define SIGPIPE SIGINT -#define RETQSORTTYPE void -#define QSORT_TYPE_IS_VOID -#define RETSIGTYPE void -#define SOCKET_SIZE_TYPE int -#define my_socket_defined -#define bool_defined -#define byte_defined -#define HUGE_PTR -#define STDCALL __stdcall /* Used by libmysql.dll */ -#define isnan(X) _isnan(X) -#define finite(X) _finite(X) - -#ifndef UNDEF_THREAD_HACK -#define THREAD -#endif -#define VOID_SIGHANDLER -#define SIZEOF_CHAR 1 -#define SIZEOF_LONG 4 -#define SIZEOF_LONG_LONG 8 -#define SIZEOF_OFF_T 8 -#ifdef _WIN64 -#define SIZEOF_CHARP 8 -#else -#define SIZEOF_CHARP 4 -#endif -#define HAVE_BROKEN_NETINET_INCLUDES -#ifdef __NT__ -#define HAVE_NAMED_PIPE /* We can only create pipes on NT */ -#endif - -/* ERROR is defined in wingdi.h */ -#undef ERROR - -/* We need to close files to break connections on shutdown */ -#ifndef SIGNAL_WITH_VIO_CLOSE -#define SIGNAL_WITH_VIO_CLOSE -#endif - -/* Use all character sets in MySQL */ -#define USE_MB 1 -#define USE_MB_IDENT 1 -#define USE_STRCOLL 1 - -/* All windows servers should support .sym files */ -#undef USE_SYMDIR -#define USE_SYMDIR - -/* If LOAD DATA LOCAL INFILE should be enabled by default */ -#define ENABLED_LOCAL_INFILE 1 - -/* Convert some simple functions to Posix */ - -#define my_sigset(A,B) signal((A),(B)) -#define finite(A) _finite(A) -#define sleep(A) Sleep((A)*1000) -#define popen(A,B) _popen((A),(B)) -#define pclose(A) _pclose(A) - -#ifndef __BORLANDC__ -#define access(A,B) _access(A,B) -#endif - -#if !defined(__cplusplus) -#define inline __inline -#endif /* __cplusplus */ - -inline double rint(double nr) -{ - double f = floor(nr); - double c = ceil(nr); - return (((c-nr) >= (nr-f)) ? f :c); -} - -#ifdef _WIN64 -#define ulonglong2double(A) ((double) (ulonglong) (A)) -#define my_off_t2double(A) ((double) (my_off_t) (A)) - -#else -inline double ulonglong2double(ulonglong value) -{ - longlong nr=(longlong) value; - if (nr >= 0) - return (double) nr; - return (18446744073709551616.0 + (double) nr); -} -#define my_off_t2double(A) ulonglong2double(A) -#endif /* _WIN64 */ - -#if SIZEOF_OFF_T > 4 -#define lseek(A,B,C) _lseeki64((A),(longlong) (B),(C)) -#define tell(A) _telli64(A) -#endif - -#define set_timespec(ABSTIME,SEC) { (ABSTIME).tv_sec=time((time_t*)0) + (time_t) (SEC); (ABSTIME).tv_nsec=0; } - -#define STACK_DIRECTION -1 - -/* Optimized store functions for Intel x86 */ - -#ifndef _WIN64 -#define sint2korr(A) (*((int16 *) (A))) -#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \ - (((uint32) 255L << 24) | \ - (((uint32) (uchar) (A)[2]) << 16) |\ - (((uint32) (uchar) (A)[1]) << 8) | \ - ((uint32) (uchar) (A)[0])) : \ - (((uint32) (uchar) (A)[2]) << 16) |\ - (((uint32) (uchar) (A)[1]) << 8) | \ - ((uint32) (uchar) (A)[0]))) -#define sint4korr(A) (*((long *) (A))) -#define uint2korr(A) (*((uint16 *) (A))) -/* - ATTENTION ! - - Please, note, uint3korr reads 4 bytes (not 3) ! - It means, that you have to provide enough allocated space ! -*/ -#define uint3korr(A) (long) (*((unsigned int *) (A)) & 0xFFFFFF) -#define uint4korr(A) (*((unsigned long *) (A))) -#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ - (((uint32) ((uchar) (A)[1])) << 8) +\ - (((uint32) ((uchar) (A)[2])) << 16) +\ - (((uint32) ((uchar) (A)[3])) << 24)) +\ - (((ulonglong) ((uchar) (A)[4])) << 32)) -#define uint8korr(A) (*((ulonglong *) (A))) -#define sint8korr(A) (*((longlong *) (A))) -#define int2store(T,A) *((uint16*) (T))= (uint16) (A) -#define int3store(T,A) { *(T)= (uchar) ((A));\ - *(T+1)=(uchar) (((uint) (A) >> 8));\ - *(T+2)=(uchar) (((A) >> 16)); } -#define int4store(T,A) *((long *) (T))= (long) (A) -#define int5store(T,A) { *(T)= (uchar)((A));\ - *((T)+1)=(uchar) (((A) >> 8));\ - *((T)+2)=(uchar) (((A) >> 16));\ - *((T)+3)=(uchar) (((A) >> 24)); \ - *((T)+4)=(uchar) (((A) >> 32)); } -#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A) - -#define doubleget(V,M) do { *((long *) &V) = *((long*) M); \ - *(((long *) &V)+1) = *(((long*) M)+1); } while(0) -#define doublestore(T,V) do { *((long *) T) = *((long*) &V); \ - *(((long *) T)+1) = *(((long*) &V)+1); } while(0) -#define float4get(V,M) { *((long *) &(V)) = *((long*) (M)); } -#define floatstore(T,V) memcpy((byte*)(T), (byte*)(&V), sizeof(float)) -#define floatget(V,M) memcpy((byte*)(&V), (byte*)(M), sizeof(float)) -#define float8get(V,M) doubleget((V),(M)) -#define float4store(V,M) memcpy((byte*) V,(byte*) (&M),sizeof(float)) -#define float8store(V,M) doublestore((V),(M)) -#endif /* _WIN64 */ - -#define HAVE_PERROR -#define HAVE_VFPRINT -#define HAVE_RENAME /* Have rename() as function */ -#define HAVE_BINARY_STREAMS /* Have "b" flag in streams */ -#define HAVE_LONG_JMP /* Have long jump function */ -#define HAVE_LOCKING /* have locking() call */ -#define HAVE_ERRNO_AS_DEFINE /* errno is a define */ -#define HAVE_STDLIB /* everything is include in this file */ -#define HAVE_MEMCPY -#define HAVE_MEMMOVE -#define HAVE_GETCWD -#define HAVE_TELL -#define HAVE_TZNAME -#define HAVE_PUTENV -#define HAVE_SELECT -#define HAVE_SETLOCALE -#define HAVE_SOCKET /* Giangi */ -#define HAVE_FLOAT_H -#define HAVE_LIMITS_H -#define HAVE_STDDEF_H -#define HAVE_RINT /* defined in this file */ -#define NO_FCNTL_NONBLOCK /* No FCNTL */ -#define HAVE_ALLOCA -#define HAVE_STRPBRK -#define HAVE_STRSTR -#define HAVE_COMPRESS -#define HAVE_CREATESEMAPHORE -#define HAVE_ISNAN -#define HAVE_FINITE -#define HAVE_QUERY_CACHE -#define SPRINTF_RETURNS_INT -#define HAVE_SETFILEPOINTER -#define HAVE_VIO_READ_BUFF -#define HAVE_STRNLEN - -#ifndef __NT__ -#undef FILE_SHARE_DELETE -#define FILE_SHARE_DELETE 0 /* Not implemented on Win 98/ME */ -#endif - -#ifdef NOT_USED -#define HAVE_SNPRINTF /* Gave link error */ -#define _snprintf snprintf -#endif - -#ifdef _MSC_VER -#define HAVE_LDIV /* The optimizer breaks in zortech for ldiv */ -#define HAVE_ANSI_INCLUDE -#define HAVE_SYS_UTIME_H -#define HAVE_STRTOUL -#endif -#define my_reinterpret_cast(A) reinterpret_cast -#define my_const_cast(A) const_cast - - -/* MYSQL OPTIONS */ - -#ifdef _CUSTOMCONFIG_ -#include -#else -#define DEFAULT_MYSQL_HOME "c:\\mysql" -#define PACKAGE "mysql" -#define DEFAULT_BASEDIR "C:\\" -#define SHAREDIR "share" -#define DEFAULT_CHARSET_HOME "C:/mysql/" -#endif -#ifndef DEFAULT_HOME_ENV -#define DEFAULT_HOME_ENV MYSQL_HOME -#endif -#ifndef DEFAULT_GROUP_SUFFIX_ENV -#define DEFAULT_GROUP_SUFFIX_ENV MYSQL_GROUP_SUFFIX -#endif - -/* File name handling */ - -#define FN_LIBCHAR '\\' -#define FN_ROOTDIR "\\" -#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */ -#define FN_NO_CASE_SENCE /* Files are not case-sensitive */ -#define OS_FILE_LIMIT 2048 - -#define DO_NOT_REMOVE_THREAD_WRAPPERS -#define thread_safe_increment(V,L) InterlockedIncrement((long*) &(V)) -#define thread_safe_decrement(V,L) InterlockedDecrement((long*) &(V)) -/* The following is only used for statistics, so it should be good enough */ -#ifdef __NT__ /* This should also work on Win98 but .. */ -#define thread_safe_add(V,C,L) InterlockedExchangeAdd((long*) &(V),(C)) -#define thread_safe_sub(V,C,L) InterlockedExchangeAdd((long*) &(V),-(long) (C)) -#define statistic_add(V,C,L) thread_safe_add((V),(C),(L)) -#else -#define thread_safe_add(V,C,L) \ - pthread_mutex_lock((L)); (V)+=(C); pthread_mutex_unlock((L)); -#define thread_safe_sub(V,C,L) \ - pthread_mutex_lock((L)); (V)-=(C); pthread_mutex_unlock((L)); -#define statistic_add(V,C,L) (V)+=(C) -#endif -#define statistic_increment(V,L) thread_safe_increment((V),(L)) -#define statistic_decrement(V,L) thread_safe_decrement((V),(L)) - -#define shared_memory_buffer_length 16000 -#define default_shared_memory_base_name "MYSQL" - -#ifdef CYBOZU -#define MYSQL_DEFAULT_CHARSET_NAME "utf8" -#define MYSQL_DEFAULT_COLLATION_NAME "utf8_general_cs" -#define HAVE_UTF8_GENERAL_CS 1 -#else -#define MYSQL_DEFAULT_CHARSET_NAME "latin1" -#define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci" -#endif - -#define HAVE_SPATIAL 1 -#define HAVE_RTREE_KEYS 1 - -#define HAVE_OPENSSL 1 -#define HAVE_YASSL 1 - -/* Define charsets you want */ -/* #undef HAVE_CHARSET_armscii8 */ -/* #undef HAVE_CHARSET_ascii */ -#ifndef CYBOZU -#define HAVE_CHARSET_big5 1 -#define HAVE_CHARSET_cp1250 1 -#endif -/* #undef HAVE_CHARSET_cp1251 */ -/* #undef HAVE_CHARSET_cp1256 */ -/* #undef HAVE_CHARSET_cp1257 */ -/* #undef HAVE_CHARSET_cp850 */ -/* #undef HAVE_CHARSET_cp852 */ -/* #undef HAVE_CHARSET_cp866 */ -#define HAVE_CHARSET_cp932 1 -/* #undef HAVE_CHARSET_dec8 */ -#ifndef CYBOZU -#define HAVE_CHARSET_eucjpms 1 -#define HAVE_CHARSET_euckr 1 -#define HAVE_CHARSET_gb2312 1 -#define HAVE_CHARSET_gbk 1 -#endif -/* #undef HAVE_CHARSET_greek */ -/* #undef HAVE_CHARSET_hebrew */ -/* #undef HAVE_CHARSET_hp8 */ -/* #undef HAVE_CHARSET_keybcs2 */ -/* #undef HAVE_CHARSET_koi8r */ -/* #undef HAVE_CHARSET_koi8u */ -#ifndef CYBOZU -#define HAVE_CHARSET_latin1 1 -#define HAVE_CHARSET_latin2 1 -#endif -/* #undef HAVE_CHARSET_latin5 */ -/* #undef HAVE_CHARSET_latin7 */ -/* #undef HAVE_CHARSET_macce */ -/* #undef HAVE_CHARSET_macroman */ -#define HAVE_CHARSET_sjis 1 -/* #undef HAVE_CHARSET_swe7 */ -#ifndef CYBOZU -#define HAVE_CHARSET_tis620 1 -#define HAVE_CHARSET_ucs2 1 -#define HAVE_CHARSET_ujis 1 -#endif -#define HAVE_CHARSET_utf8 1 -#define HAVE_UCA_COLLATIONS 1 - diff --git a/src/mysql/m_ctype.h b/src/mysql/m_ctype.h deleted file mode 100644 index 54ae41bf2..000000000 --- a/src/mysql/m_ctype.h +++ /dev/null @@ -1,493 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -/* - A better inplementation of the UNIX ctype(3) library. - Notes: my_global.h should be included before ctype.h -*/ - -#ifndef _m_ctype_h -#define _m_ctype_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define MY_CS_NAME_SIZE 32 -#define MY_CS_CTYPE_TABLE_SIZE 257 -#define MY_CS_TO_LOWER_TABLE_SIZE 256 -#define MY_CS_TO_UPPER_TABLE_SIZE 256 -#define MY_CS_SORT_ORDER_TABLE_SIZE 256 -#define MY_CS_TO_UNI_TABLE_SIZE 256 - -#define CHARSET_DIR "charsets/" - -#define my_wc_t ulong - -typedef struct unicase_info_st -{ - uint16 toupper; - uint16 tolower; - uint16 sort; -} MY_UNICASE_INFO; - - -extern MY_UNICASE_INFO *my_unicase_default[256]; -extern MY_UNICASE_INFO *my_unicase_turkish[256]; - - -/* wm_wc and wc_mb return codes */ -#define MY_CS_ILSEQ 0 /* Wrong by sequence: wb_wc */ -#define MY_CS_ILUNI 0 /* Cannot encode Unicode to charset: wc_mb */ -#define MY_CS_TOOSMALL -101 /* Need at least one byte: wc_mb and mb_wc */ -#define MY_CS_TOOSMALL2 -102 /* Need at least two bytes: wc_mb and mb_wc */ -#define MY_CS_TOOSMALL3 -103 /* Need at least three bytes: wc_mb and mb_wc */ -/* These following three are currently not really used */ -#define MY_CS_TOOSMALL4 -104 /* Need at least 4 bytes: wc_mb and mb_wc */ -#define MY_CS_TOOSMALL5 -105 /* Need at least 5 bytes: wc_mb and mb_wc */ -#define MY_CS_TOOSMALL6 -106 /* Need at least 6 bytes: wc_mb and mb_wc */ -/* A helper macros for "need at least n bytes" */ -#define MY_CS_TOOSMALLN(n) (-100-(n)) - -#define MY_SEQ_INTTAIL 1 -#define MY_SEQ_SPACES 2 - - /* My charsets_list flags */ -#define MY_CS_COMPILED 1 /* compiled-in sets */ -#define MY_CS_CONFIG 2 /* sets that have a *.conf file */ -#define MY_CS_INDEX 4 /* sets listed in the Index file */ -#define MY_CS_LOADED 8 /* sets that are currently loaded */ -#define MY_CS_BINSORT 16 /* if binary sort order */ -#define MY_CS_PRIMARY 32 /* if primary collation */ -#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */ -#define MY_CS_UNICODE 128 /* is a charset is full unicode */ -#define MY_CS_READY 256 /* if a charset is initialized */ -#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/ -#define MY_CS_CSSORT 1024 /* if case sensitive sort order */ -#define MY_CHARSET_UNDEFINED 0 - - -typedef struct my_uni_idx_st -{ - uint16 from; - uint16 to; - uchar *tab; -} MY_UNI_IDX; - -typedef struct -{ - uint beg; - uint end; - uint mblen; -} my_match_t; - -enum my_lex_states -{ - MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT, - MY_LEX_IDENT_SEP, MY_LEX_IDENT_START, - MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER, - MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END, - MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL, - MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE, - MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON, - MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP, - MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR, - MY_LEX_IDENT_OR_KEYWORD, - MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN, MY_LEX_IDENT_OR_NCHAR, - MY_LEX_STRING_OR_DELIMITER -}; - -struct charset_info_st; - -typedef struct my_collation_handler_st -{ - my_bool (*init)(struct charset_info_st *, void *(*alloc)(uint)); - /* Collation routines */ - int (*strnncoll)(struct charset_info_st *, - const uchar *, uint, const uchar *, uint, my_bool); - int (*strnncollsp)(struct charset_info_st *, - const uchar *, uint, const uchar *, uint, - my_bool diff_if_only_endspace_difference); - int (*strnxfrm)(struct charset_info_st *, - uchar *, uint, const uchar *, uint); - uint (*strnxfrmlen)(struct charset_info_st *, uint); - my_bool (*like_range)(struct charset_info_st *, - const char *s, uint s_length, - pchar w_prefix, pchar w_one, pchar w_many, - uint res_length, - char *min_str, char *max_str, - uint *min_len, uint *max_len); - int (*wildcmp)(struct charset_info_st *, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape,int w_one, int w_many); - - int (*strcasecmp)(struct charset_info_st *, const char *, const char *); - - uint (*instr)(struct charset_info_st *, - const char *b, uint b_length, - const char *s, uint s_length, - my_match_t *match, uint nmatch); - - /* Hash calculation */ - void (*hash_sort)(struct charset_info_st *cs, const uchar *key, uint len, - ulong *nr1, ulong *nr2); - my_bool (*propagate)(struct charset_info_st *cs, const uchar *str, uint len); -} MY_COLLATION_HANDLER; - -extern MY_COLLATION_HANDLER my_collation_mb_bin_handler; -extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler; -extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler; -extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler; - - -typedef struct my_charset_handler_st -{ - my_bool (*init)(struct charset_info_st *, void *(*alloc)(uint)); - /* Multibyte routines */ - int (*ismbchar)(struct charset_info_st *, const char *, const char *); - int (*mbcharlen)(struct charset_info_st *, uint); - uint (*numchars)(struct charset_info_st *, const char *b, const char *e); - uint (*charpos)(struct charset_info_st *, const char *b, const char *e, uint pos); - uint (*well_formed_len)(struct charset_info_st *, - const char *b,const char *e, - uint nchars, int *error); - uint (*lengthsp)(struct charset_info_st *, const char *ptr, uint length); - uint (*numcells)(struct charset_info_st *, const char *b, const char *e); - - /* Unicode convertion */ - int (*mb_wc)(struct charset_info_st *cs,my_wc_t *wc, - const unsigned char *s,const unsigned char *e); - int (*wc_mb)(struct charset_info_st *cs,my_wc_t wc, - unsigned char *s,unsigned char *e); - - /* Functions for case and sort convertion */ - void (*caseup_str)(struct charset_info_st *, char *); - void (*casedn_str)(struct charset_info_st *, char *); - uint (*caseup)(struct charset_info_st *, char *src, uint srclen, - char *dst, uint dstlen); - uint (*casedn)(struct charset_info_st *, char *src, uint srclen, - char *dst, uint dstlen); - - /* Charset dependant snprintf() */ - int (*snprintf)(struct charset_info_st *, char *to, uint n, const char *fmt, - ...); - int (*long10_to_str)(struct charset_info_st *, char *to, uint n, int radix, - long int val); - int (*longlong10_to_str)(struct charset_info_st *, char *to, uint n, - int radix, longlong val); - - void (*fill)(struct charset_info_st *, char *to, uint len, int fill); - - /* String-to-number convertion routines */ - long (*strntol)(struct charset_info_st *, const char *s, uint l, - int base, char **e, int *err); - ulong (*strntoul)(struct charset_info_st *, const char *s, uint l, - int base, char **e, int *err); - longlong (*strntoll)(struct charset_info_st *, const char *s, uint l, - int base, char **e, int *err); - ulonglong (*strntoull)(struct charset_info_st *, const char *s, uint l, - int base, char **e, int *err); - double (*strntod)(struct charset_info_st *, char *s, uint l, char **e, - int *err); - longlong (*strtoll10)(struct charset_info_st *cs, - const char *nptr, char **endptr, int *error); - ulong (*scan)(struct charset_info_st *, const char *b, const char *e, - int sq); -} MY_CHARSET_HANDLER; - -extern MY_CHARSET_HANDLER my_charset_8bit_handler; -extern MY_CHARSET_HANDLER my_charset_ucs2_handler; - - -typedef struct charset_info_st -{ - uint number; - uint primary_number; - uint binary_number; - uint state; - const char *csname; - const char *name; - const char *comment; - const char *tailoring; - uchar *ctype; - uchar *to_lower; - uchar *to_upper; - uchar *sort_order; - uint16 *contractions; - uint16 **sort_order_big; - uint16 *tab_to_uni; - MY_UNI_IDX *tab_from_uni; - MY_UNICASE_INFO **caseinfo; - uchar *state_map; - uchar *ident_map; - uint strxfrm_multiply; - uchar caseup_multiply; - uchar casedn_multiply; - uint mbminlen; - uint mbmaxlen; - uint16 min_sort_char; - uint16 max_sort_char; /* For LIKE optimization */ - uchar pad_char; - my_bool escape_with_backslash_is_dangerous; - - MY_CHARSET_HANDLER *cset; - MY_COLLATION_HANDLER *coll; - -} CHARSET_INFO; - - -extern CHARSET_INFO my_charset_bin; -extern CHARSET_INFO my_charset_big5_chinese_ci; -extern CHARSET_INFO my_charset_big5_bin; -extern CHARSET_INFO my_charset_cp932_japanese_ci; -extern CHARSET_INFO my_charset_cp932_bin; -extern CHARSET_INFO my_charset_eucjpms_japanese_ci; -extern CHARSET_INFO my_charset_eucjpms_bin; -extern CHARSET_INFO my_charset_euckr_korean_ci; -extern CHARSET_INFO my_charset_euckr_bin; -extern CHARSET_INFO my_charset_gb2312_chinese_ci; -extern CHARSET_INFO my_charset_gb2312_bin; -extern CHARSET_INFO my_charset_gbk_chinese_ci; -extern CHARSET_INFO my_charset_gbk_bin; -extern CHARSET_INFO my_charset_latin1; -extern CHARSET_INFO my_charset_latin1_german2_ci; -extern CHARSET_INFO my_charset_latin1_bin; -extern CHARSET_INFO my_charset_latin2_czech_ci; -extern CHARSET_INFO my_charset_sjis_japanese_ci; -extern CHARSET_INFO my_charset_sjis_bin; -extern CHARSET_INFO my_charset_tis620_thai_ci; -extern CHARSET_INFO my_charset_tis620_bin; -extern CHARSET_INFO my_charset_ucs2_general_ci; -extern CHARSET_INFO my_charset_ucs2_bin; -extern CHARSET_INFO my_charset_ucs2_general_uca; -extern CHARSET_INFO my_charset_ujis_japanese_ci; -extern CHARSET_INFO my_charset_ujis_bin; -extern CHARSET_INFO my_charset_utf8_general_ci; -extern CHARSET_INFO my_charset_utf8_bin; -extern CHARSET_INFO my_charset_cp1250_czech_ci; - -/* declarations for simple charsets */ -extern int my_strnxfrm_simple(CHARSET_INFO *, uchar *, uint, const uchar *, - uint); -uint my_strnxfrmlen_simple(CHARSET_INFO *, uint); -extern int my_strnncoll_simple(CHARSET_INFO *, const uchar *, uint, - const uchar *, uint, my_bool); - -extern int my_strnncollsp_simple(CHARSET_INFO *, const uchar *, uint, - const uchar *, uint, - my_bool diff_if_only_endspace_difference); - -extern void my_hash_sort_simple(CHARSET_INFO *cs, - const uchar *key, uint len, - ulong *nr1, ulong *nr2); - -extern uint my_lengthsp_8bit(CHARSET_INFO *cs, const char *ptr, uint length); - -extern uint my_instr_simple(struct charset_info_st *, - const char *b, uint b_length, - const char *s, uint s_length, - my_match_t *match, uint nmatch); - - -/* Functions for 8bit */ -extern void my_caseup_str_8bit(CHARSET_INFO *, char *); -extern void my_casedn_str_8bit(CHARSET_INFO *, char *); -extern uint my_caseup_8bit(CHARSET_INFO *, char *src, uint srclen, - char *dst, uint dstlen); -extern uint my_casedn_8bit(CHARSET_INFO *, char *src, uint srclen, - char *dst, uint dstlen); - -extern int my_strcasecmp_8bit(CHARSET_INFO * cs, const char *, const char *); - -int my_mb_wc_8bit(CHARSET_INFO *cs,my_wc_t *wc, const uchar *s,const uchar *e); -int my_wc_mb_8bit(CHARSET_INFO *cs,my_wc_t wc, uchar *s, uchar *e); - -ulong my_scan_8bit(CHARSET_INFO *cs, const char *b, const char *e, int sq); - -int my_snprintf_8bit(struct charset_info_st *, char *to, uint n, - const char *fmt, ...); - -long my_strntol_8bit(CHARSET_INFO *, const char *s, uint l, int base, - char **e, int *err); -ulong my_strntoul_8bit(CHARSET_INFO *, const char *s, uint l, int base, - char **e, int *err); -longlong my_strntoll_8bit(CHARSET_INFO *, const char *s, uint l, int base, - char **e, int *err); -ulonglong my_strntoull_8bit(CHARSET_INFO *, const char *s, uint l, int base, - char **e, int *err); -double my_strntod_8bit(CHARSET_INFO *, char *s, uint l,char **e, - int *err); -int my_long10_to_str_8bit(CHARSET_INFO *, char *to, uint l, int radix, - long int val); -int my_longlong10_to_str_8bit(CHARSET_INFO *, char *to, uint l, int radix, - longlong val); - -longlong my_strtoll10_8bit(CHARSET_INFO *cs, - const char *nptr, char **endptr, int *error); -longlong my_strtoll10_ucs2(CHARSET_INFO *cs, - const char *nptr, char **endptr, int *error); - -void my_fill_8bit(CHARSET_INFO *cs, char* to, uint l, int fill); - -my_bool my_like_range_simple(CHARSET_INFO *cs, - const char *ptr, uint ptr_length, - pbool escape, pbool w_one, pbool w_many, - uint res_length, - char *min_str, char *max_str, - uint *min_length, uint *max_length); - -my_bool my_like_range_mb(CHARSET_INFO *cs, - const char *ptr, uint ptr_length, - pbool escape, pbool w_one, pbool w_many, - uint res_length, - char *min_str, char *max_str, - uint *min_length, uint *max_length); - -my_bool my_like_range_ucs2(CHARSET_INFO *cs, - const char *ptr, uint ptr_length, - pbool escape, pbool w_one, pbool w_many, - uint res_length, - char *min_str, char *max_str, - uint *min_length, uint *max_length); - - -int my_wildcmp_8bit(CHARSET_INFO *, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape, int w_one, int w_many); - -int my_wildcmp_bin(CHARSET_INFO *, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape, int w_one, int w_many); - -uint my_numchars_8bit(CHARSET_INFO *, const char *b, const char *e); -uint my_numcells_8bit(CHARSET_INFO *, const char *b, const char *e); -uint my_charpos_8bit(CHARSET_INFO *, const char *b, const char *e, uint pos); -uint my_well_formed_len_8bit(CHARSET_INFO *, const char *b, const char *e, - uint pos, int *error); -int my_mbcharlen_8bit(CHARSET_INFO *, uint c); - - -/* Functions for multibyte charsets */ -extern void my_caseup_str_mb(CHARSET_INFO *, char *); -extern void my_casedn_str_mb(CHARSET_INFO *, char *); -extern uint my_caseup_mb(CHARSET_INFO *, char *src, uint srclen, - char *dst, uint dstlen); -extern uint my_casedn_mb(CHARSET_INFO *, char *src, uint srclen, - char *dst, uint dstlen); -extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *); - -int my_wildcmp_mb(CHARSET_INFO *, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape, int w_one, int w_many); -uint my_numchars_mb(CHARSET_INFO *, const char *b, const char *e); -uint my_numcells_mb(CHARSET_INFO *, const char *b, const char *e); -uint my_charpos_mb(CHARSET_INFO *, const char *b, const char *e, uint pos); -uint my_well_formed_len_mb(CHARSET_INFO *, const char *b, const char *e, - uint pos, int *error); -uint my_instr_mb(struct charset_info_st *, - const char *b, uint b_length, - const char *s, uint s_length, - my_match_t *match, uint nmatch); - -int my_wildcmp_unicode(CHARSET_INFO *cs, - const char *str, const char *str_end, - const char *wildstr, const char *wildend, - int escape, int w_one, int w_many, - MY_UNICASE_INFO **weights); - -extern my_bool my_parse_charset_xml(const char *bug, uint len, - int (*add)(CHARSET_INFO *cs)); - -my_bool my_propagate_simple(CHARSET_INFO *cs, const uchar *str, uint len); -my_bool my_propagate_complex(CHARSET_INFO *cs, const uchar *str, uint len); - - -#define _MY_U 01 /* Upper case */ -#define _MY_L 02 /* Lower case */ -#define _MY_NMR 04 /* Numeral (digit) */ -#define _MY_SPC 010 /* Spacing character */ -#define _MY_PNT 020 /* Punctuation */ -#define _MY_CTR 040 /* Control character */ -#define _MY_B 0100 /* Blank */ -#define _MY_X 0200 /* heXadecimal digit */ - - -#define my_isascii(c) (!((c) & ~0177)) -#define my_toascii(c) ((c) & 0177) -#define my_tocntrl(c) ((c) & 31) -#define my_toprint(c) ((c) | 64) -#define my_toupper(s,c) (char) ((s)->to_upper[(uchar) (c)]) -#define my_tolower(s,c) (char) ((s)->to_lower[(uchar) (c)]) -#define my_isalpha(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L)) -#define my_isupper(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_U) -#define my_islower(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_L) -#define my_isdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_NMR) -#define my_isxdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_X) -#define my_isalnum(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L | _MY_NMR)) -#define my_isspace(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_SPC) -#define my_ispunct(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_PNT) -#define my_isprint(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B)) -#define my_isgraph(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR)) -#define my_iscntrl(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_CTR) - -/* Some macros that should be cleaned up a little */ -#define my_isvar(s,c) (my_isalnum(s,c) || (c) == '_') -#define my_isvar_start(s,c) (my_isalpha(s,c) || (c) == '_') - -#define my_binary_compare(s) ((s)->state & MY_CS_BINSORT) -#define use_strnxfrm(s) ((s)->state & MY_CS_STRNXFRM) -#define my_strnxfrm(s, a, b, c, d) ((s)->coll->strnxfrm((s), (a), (b), (c), (d))) -#define my_strnncoll(s, a, b, c, d) ((s)->coll->strnncoll((s), (a), (b), (c), (d), 0)) -#define my_like_range(s, a, b, c, d, e, f, g, h, i, j) \ - ((s)->coll->like_range((s), (a), (b), (c), (d), (e), (f), (g), (h), (i), (j))) -#define my_wildcmp(cs,s,se,w,we,e,o,m) ((cs)->coll->wildcmp((cs),(s),(se),(w),(we),(e),(o),(m))) -#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp((s), (a), (b))) -#define my_charpos(cs, b, e, num) (cs)->cset->charpos((cs), (const char*) (b), (const char *)(e), (num)) - - -#define use_mb(s) ((s)->cset->ismbchar != NULL) -#define my_ismbchar(s, a, b) ((s)->cset->ismbchar((s), (a), (b))) -#ifdef USE_MB -#define my_mbcharlen(s, a) ((s)->cset->mbcharlen((s),(a))) -#else -#define my_mbcharlen(s, a) 1 -#endif - -#define my_caseup_str(s, a) ((s)->cset->caseup_str((s), (a))) -#define my_casedn_str(s, a) ((s)->cset->casedn_str((s), (a))) -#define my_strntol(s, a, b, c, d, e) ((s)->cset->strntol((s),(a),(b),(c),(d),(e))) -#define my_strntoul(s, a, b, c, d, e) ((s)->cset->strntoul((s),(a),(b),(c),(d),(e))) -#define my_strntoll(s, a, b, c, d, e) ((s)->cset->strntoll((s),(a),(b),(c),(d),(e))) -#define my_strntoull(s, a, b, c,d, e) ((s)->cset->strntoull((s),(a),(b),(c),(d),(e))) -#define my_strntod(s, a, b, c, d) ((s)->cset->strntod((s),(a),(b),(c),(d))) - - -/* XXX: still need to take care of this one */ -#ifdef MY_CHARSET_TIS620 -#error The TIS620 charset is broken at the moment. Tell tim to fix it. -#define USE_TIS620 -#include "t_ctype.h" -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _m_ctype_h */ diff --git a/src/mysql/my_alloc.h b/src/mysql/my_alloc.h deleted file mode 100644 index 1641b3acf..000000000 --- a/src/mysql/my_alloc.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -/* - Data structures for mysys/my_alloc.c (root memory allocator) -*/ - -#ifndef _my_alloc_h -#define _my_alloc_h - -#define ALLOC_MAX_BLOCK_TO_DROP 4096 -#define ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP 10 - -typedef struct st_used_mem -{ /* struct for once_alloc (block) */ - struct st_used_mem *next; /* Next block in use */ - unsigned int left; /* memory left in block */ - unsigned int size; /* size of block */ -} USED_MEM; - - -typedef struct st_mem_root -{ - USED_MEM *free; /* blocks with free memory in it */ - USED_MEM *used; /* blocks almost without free memory */ - USED_MEM *pre_alloc; /* preallocated block */ - /* if block have less memory it will be put in 'used' list */ - unsigned int min_malloc; - unsigned int block_size; /* initial block size */ - unsigned int block_num; /* allocated blocks counter */ - /* - first free block in queue test counter (if it exceed - MAX_BLOCK_USAGE_BEFORE_DROP block will be dropped in 'used' list) - */ - unsigned int first_block_usage; - - void (*error_handler)(void); -} MEM_ROOT; -#endif diff --git a/src/mysql/my_dbug.h b/src/mysql/my_dbug.h deleted file mode 100644 index b76a3fcc8..000000000 --- a/src/mysql/my_dbug.h +++ /dev/null @@ -1,101 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#ifndef _dbug_h -#define _dbug_h - -#ifdef __cplusplus -extern "C" { -#endif -#if !defined(DBUG_OFF) && !defined(_lint) -extern int _db_on_,_no_db_; -extern FILE *_db_fp_; -extern char *_db_process_; -extern int _db_keyword_(const char *keyword); -extern int _db_strict_keyword_(const char *keyword); -extern void _db_setjmp_(void); -extern void _db_longjmp_(void); -extern void _db_push_(const char *control); -extern void _db_pop_(void); -extern void _db_enter_(const char *_func_,const char *_file_,uint _line_, - const char **_sfunc_,const char **_sfile_, - uint *_slevel_, char ***); -extern void _db_return_(uint _line_,const char **_sfunc_,const char **_sfile_, - uint *_slevel_); -extern void _db_pargs_(uint _line_,const char *keyword); -extern void _db_doprnt_ _VARARGS((const char *format,...)); -extern void _db_dump_(uint _line_,const char *keyword,const char *memory, - uint length); -extern void _db_output_(uint flag); -extern void _db_lock_file(void); -extern void _db_unlock_file(void); - -#define DBUG_ENTER(a) const char *_db_func_, *_db_file_; uint _db_level_; \ - char **_db_framep_; \ - _db_enter_ (a,__FILE__,__LINE__,&_db_func_,&_db_file_,&_db_level_, \ - &_db_framep_) -#define DBUG_LEAVE \ - (_db_return_ (__LINE__, &_db_func_, &_db_file_, &_db_level_)) -#define DBUG_RETURN(a1) {DBUG_LEAVE; return(a1);} -#define DBUG_VOID_RETURN {DBUG_LEAVE; return;} -#define DBUG_EXECUTE(keyword,a1) \ - {if (_db_on_) {if (_db_keyword_ (keyword)) { a1 }}} -#define DBUG_PRINT(keyword,arglist) \ - {if (_db_on_) {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;}} -#define DBUG_PUSH(a1) _db_push_ (a1) -#define DBUG_POP() _db_pop_ () -#define DBUG_PROCESS(a1) (_db_process_ = a1) -#define DBUG_FILE (_db_fp_) -#define DBUG_SETJMP(a1) (_db_setjmp_ (), setjmp (a1)) -#define DBUG_LONGJMP(a1,a2) (_db_longjmp_ (), longjmp (a1, a2)) -#define DBUG_DUMP(keyword,a1,a2)\ - {if (_db_on_) {_db_dump_(__LINE__,keyword,a1,a2);}} -#define DBUG_IN_USE (_db_fp_ && _db_fp_ != stderr) -#define DEBUGGER_OFF _no_db_=1;_db_on_=0; -#define DEBUGGER_ON _no_db_=0 -#define DBUG_LOCK_FILE { _db_lock_file(); } -#define DBUG_UNLOCK_FILE { _db_unlock_file(); } -#define DBUG_OUTPUT(A) { _db_output_(A); } -#define DBUG_ASSERT(A) assert(A) -#define DBUG_EXECUTE_IF(keyword,a1) \ - {if (_db_on_) {if (_db_strict_keyword_ (keyword)) { a1 }}} -#else /* No debugger */ - -#define DBUG_ENTER(a1) -#define DBUG_RETURN(a1) return(a1) -#define DBUG_VOID_RETURN return -#define DBUG_EXECUTE(keyword,a1) {} -#define DBUG_EXECUTE_IF(keyword,a1) {} -#define DBUG_PRINT(keyword,arglist) {} -#define DBUG_PUSH(a1) {} -#define DBUG_POP() {} -#define DBUG_PROCESS(a1) {} -#define DBUG_FILE (stderr) -#define DBUG_SETJMP setjmp -#define DBUG_LONGJMP longjmp -#define DBUG_DUMP(keyword,a1,a2) {} -#define DBUG_IN_USE 0 -#define DEBUGGER_OFF -#define DEBUGGER_ON -#define DBUG_LOCK_FILE -#define DBUG_UNLOCK_FILE -#define DBUG_OUTPUT(A) -#define DBUG_ASSERT(A) {} -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/mysql/my_global.h b/src/mysql/my_global.h deleted file mode 100644 index 2417477e2..000000000 --- a/src/mysql/my_global.h +++ /dev/null @@ -1,1306 +0,0 @@ -/* Copyright (C) 2000-2003 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -/* This is the include file that should be included 'first' in every C file. */ - -#ifndef _global_h -#define _global_h - -#ifndef EMBEDDED_LIBRARY -#define HAVE_REPLICATION -#define HAVE_EXTERNAL_CLIENT -#endif - -#if defined( __EMX__) && !defined( MYSQL_SERVER) -/* moved here to use below VOID macro redefinition */ -#define INCL_BASE -#define INCL_NOPMAPI -#include -#endif /* __EMX__ */ - -#ifdef __CYGWIN__ -/* We use a Unix API, so pretend it's not Windows */ -#undef WIN -#undef WIN32 -#undef _WIN -#undef _WIN32 -#undef _WIN64 -#undef __WIN__ -#undef __WIN32__ -#define HAVE_ERRNO_AS_DEFINE -#endif /* __CYGWIN__ */ - -#if defined(__QNXNTO__) && !defined(FD_SETSIZE) -#define FD_SETSIZE 1024 /* Max number of file descriptor bits in - fd_set, used when calling 'select' - Must be defined before including - "sys/select.h" and "sys/time.h" - */ -#endif - - -/* to make command line shorter we'll define USE_PRAGMA_INTERFACE here */ -#ifdef USE_PRAGMA_IMPLEMENTATION -#define USE_PRAGMA_INTERFACE -#endif - -#if defined(i386) && !defined(__i386__) -#define __i386__ -#endif - -/* Macros to make switching between C and C++ mode easier */ -#ifdef __cplusplus -#define C_MODE_START extern "C" { -#define C_MODE_END } -#else -#define C_MODE_START -#define C_MODE_END -#endif - -#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32) -#include -#elif defined(OS2) -#include -#elif defined(__NETWARE__) -#include -#include -#if defined(__cplusplus) && defined(inline) -#undef inline /* fix configure problem */ -#endif -#else -#include -#if defined(__cplusplus) && defined(inline) -#undef inline /* fix configure problem */ -#endif -#endif /* _WIN32... */ - -/* Some defines to avoid ifdefs in the code */ -#ifndef NETWARE_YIELD -#define NETWARE_YIELD -#define NETWARE_SET_SCREEN_MODE(A) -#endif - -#include "../common/strlib.h" - -/* - The macros below are borrowed from include/linux/compiler.h in the - Linux kernel. Use them to indicate the likelyhood of the truthfulness - of a condition. This serves two purposes - newer versions of gcc will be - able to optimize for branch predication, which could yield siginficant - performance gains in frequently executed sections of the code, and the - other reason to use them is for documentation -*/ - -#if !defined(__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) -#define __builtin_expect(x, expected_value) (x) -#endif - -#define likely(x) __builtin_expect((x),1) -#define unlikely(x) __builtin_expect((x),0) - - -/* Fix problem with S_ISLNK() on Linux */ -#if defined(TARGET_OS_LINUX) -#undef _GNU_SOURCE -#define _GNU_SOURCE 1 -#endif - -/* - Temporary solution to solve bug#7156. Include "sys/types.h" before - the thread headers, else the function madvise() will not be defined -*/ -#if defined(HAVE_SYS_TYPES_H) && ( defined(sun) || defined(__sun) ) -#include -#endif - -/* The client defines this to avoid all thread code */ -#if defined(UNDEF_THREADS_HACK) -#undef THREAD -#undef HAVE_mit_thread -#undef HAVE_LINUXTHREADS -#undef HAVE_NPTL -#undef HAVE_UNIXWARE7_THREADS -#endif - -#ifdef HAVE_THREADS_WITHOUT_SOCKETS -/* MIT pthreads does not work with unix sockets */ -#undef HAVE_SYS_UN_H -#endif - -#define __EXTENSIONS__ 1 /* We want some extension */ -#ifndef __STDC_EXT__ -#define __STDC_EXT__ 1 /* To get large file support on hpux */ -#endif - -/* - Solaris 9 include file refers to X/Open document - - System Interfaces and Headers, Issue 5 - - saying we should define _XOPEN_SOURCE=500 to get POSIX.1c prototypes, - but apparently other systems (namely FreeBSD) don't agree. - - On a newer Solaris 10, the above file recognizes also _XOPEN_SOURCE=600. - Furthermore, it tests that if a program requires older standard - (_XOPEN_SOURCE<600 or _POSIX_C_SOURCE<200112L) it cannot be - run on a new compiler (that defines _STDC_C99) and issues an #error. - It's also an #error if a program requires new standard (_XOPEN_SOURCE=600 - or _POSIX_C_SOURCE=200112L) and a compiler does not define _STDC_C99. - - To add more to this mess, Sun Studio C compiler defines _STDC_C99 while - C++ compiler does not! - - So, in a desperate attempt to get correct prototypes for both - C and C++ code, we define either _XOPEN_SOURCE=600 or _XOPEN_SOURCE=500 - depending on the compiler's announced C standard support. - - Cleaner solutions are welcome. -*/ -#ifdef __sun -#if __STDC_VERSION__ - 0 >= 199901L -#define _XOPEN_SOURCE 600 -#else -#define _XOPEN_SOURCE 500 -#endif -#endif - -#if defined(THREAD) && !defined(__WIN__) && !defined(OS2) -#ifndef _POSIX_PTHREAD_SEMANTICS -#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */ -#endif - -#if !defined(SCO) -#define _REENTRANT 1 /* Some thread libraries require this */ -#endif -#if !defined(_THREAD_SAFE) && !defined(_AIX) -#define _THREAD_SAFE /* Required for OSF1 */ -#endif -#ifndef HAVE_mit_thread -#ifdef HAVE_UNIXWARE7_THREADS -#include -#else -#if defined(HPUX10) || defined(HPUX11) -C_MODE_START /* HPUX needs this, signal.h bug */ -#include -C_MODE_END -#else -#include /* AIX must have this included first */ -#endif -#endif /* HAVE_UNIXWARE7_THREADS */ -#endif /* HAVE_mit_thread */ -#if !defined(SCO) && !defined(_REENTRANT) -#define _REENTRANT 1 /* Threads requires reentrant code */ -#endif -#endif /* THREAD */ - -/* Go around some bugs in different OS and compilers */ -#ifdef _AIX /* By soren@t.dk */ -#define _H_STRINGS -#define _SYS_STREAM_H -/* #define _AIX32_CURSES */ /* XXX: this breaks AIX 4.3.3 (others?). */ -#define ulonglong2double(A) my_ulonglong2double(A) -#define my_off_t2double(A) my_ulonglong2double(A) -C_MODE_START -double my_ulonglong2double(unsigned long long A); -C_MODE_END -#endif /* _AIX */ - -#ifdef HAVE_BROKEN_SNPRINTF /* HPUX 10.20 don't have this defined */ -#undef HAVE_SNPRINTF -#endif -#ifdef HAVE_BROKEN_PREAD -/* - pread()/pwrite() are not 64 bit safe on HP-UX 11.0 without - installing the kernel patch PHKL_20349 or greater -*/ -#undef HAVE_PREAD -#undef HAVE_PWRITE -#endif -#if defined(HAVE_BROKEN_INLINE) && !defined(__cplusplus) -#undef inline -#define inline -#endif - -#ifdef UNDEF_HAVE_GETHOSTBYNAME_R /* For OSF4.x */ -#undef HAVE_GETHOSTBYNAME_R -#endif -#ifdef UNDEF_HAVE_INITGROUPS /* For AIX 4.3 */ -#undef HAVE_INITGROUPS -#endif - -/* gcc/egcs issues */ - -#if defined(__GNUC) && defined(__EXCEPTIONS) -#error "Please add -fno-exceptions to CXXFLAGS and reconfigure/recompile" -#endif - - -/* Fix a bug in gcc 2.8.0 on IRIX 6.2 */ -#if SIZEOF_LONG == 4 && defined(__LONG_MAX__) && (__GNUC__ == 2 && __GNUC_MINOR__ == 8) -#undef __LONG_MAX__ /* Is a longlong value in gcc 2.8.0 ??? */ -#define __LONG_MAX__ 2147483647 -#endif - -/* egcs 1.1.2 has a problem with memcpy on Alpha */ -#if defined(__GNUC__) && defined(__alpha__) && ! (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) -#define BAD_MEMCPY -#endif - -#if defined(_lint) && !defined(lint) -#define lint -#endif -#if SIZEOF_LONG_LONG > 4 && !defined(_LONG_LONG) -#define _LONG_LONG 1 /* For AIX string library */ -#endif - -#ifndef stdin -#include -#endif -#ifdef HAVE_STDLIB_H -#include -#endif -#ifdef HAVE_STDDEF_H -#include -#endif - -#include -#ifdef HAVE_LIMITS_H -#include -#endif -#ifdef HAVE_FLOAT_H -#include -#endif - -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_FCNTL_H -#include -#endif -#ifdef HAVE_SYS_TIMEB_H -#include /* Avoid warnings on SCO */ -#endif -#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif /* TIME_WITH_SYS_TIME */ -#ifdef HAVE_UNISTD_H -#include -#endif -#if defined(__cplusplus) && defined(NO_CPLUSPLUS_ALLOCA) -#undef HAVE_ALLOCA -#undef HAVE_ALLOCA_H -#endif -#ifdef HAVE_ALLOCA_H -#include -#endif -#ifdef HAVE_ATOMIC_ADD -#define new my_arg_new -#define need_to_restore_new 1 -C_MODE_START -#include -C_MODE_END -#ifdef need_to_restore_new /* probably safer than #ifdef new */ -#undef new -#undef need_to_restore_new -#endif -#endif -#include /* Recommended by debian */ -/* We need the following to go around a problem with openssl on solaris */ -#if defined(HAVE_CRYPT_H) -#include -#endif - -/* - A lot of our programs uses asserts, so better to always include it - This also fixes a problem when people uses DBUG_ASSERT without including - assert.h -*/ -#include - -/* Go around some bugs in different OS and compilers */ -#if defined(_HPUX_SOURCE) && defined(HAVE_SYS_STREAM_H) -#include /* HPUX 10.20 defines ulong here. UGLY !!! */ -#define HAVE_ULONG -#endif -#ifdef DONT_USE_FINITE /* HPUX 11.x has is_finite() */ -#undef HAVE_FINITE -#endif -#if defined(HPUX10) && defined(_LARGEFILE64_SOURCE) && defined(THREAD) -/* Fix bug in setrlimit */ -#undef setrlimit -#define setrlimit cma_setrlimit64 -#endif -/* Declare madvise where it is not declared for C++, like Solaris */ -#if HAVE_MADVISE && !HAVE_DECL_MADVISE && defined(__cplusplus) -extern "C" int madvise(void *addr, size_t len, int behav); -#endif - -#ifdef __QNXNTO__ -/* This has to be after include limits.h */ -#define HAVE_ERRNO_AS_DEFINE -#define HAVE_FCNTL_LOCK -#undef HAVE_FINITE -#undef LONGLONG_MIN /* These get wrongly defined in QNX 6.2 */ -#undef LONGLONG_MAX /* standard system library 'limits.h' */ -#ifdef __cplusplus -#ifndef HAVE_RINT -#define HAVE_RINT -#endif /* rint() and isnan() functions are not */ -#define rint(a) std::rint(a) /* visible in C++ scope due to an error */ -#define isnan(a) std::isnan(a) /* in the usr/include/math.h on QNX */ -#endif -#endif - -/* We can not live without the following defines */ - -#define USE_MYFUNC 1 /* Must use syscall indirection */ -#define MASTER 1 /* Compile without unireg */ -#define ENGLISH 1 /* Messages in English */ -#define POSIX_MISTAKE 1 /* regexp: Fix stupid spec error */ -#define USE_REGEX 1 /* We want the use the regex library */ -/* Do not define for ultra sparcs */ -#ifndef OS2 -#define USE_BMOVE512 1 /* Use this unless system bmove is faster */ -#endif - -#define QUOTE_ARG(x) #x /* Quote argument (before cpp) */ -#define STRINGIFY_ARG(x) QUOTE_ARG(x) /* Quote argument, after cpp */ - -/* Paranoid settings. Define I_AM_PARANOID if you are paranoid */ -#ifdef I_AM_PARANOID -#define DONT_ALLOW_USER_CHANGE 1 -#define DONT_USE_MYSQL_PWD 1 -#endif - -/* Does the system remember a signal handler after a signal ? */ -#ifndef HAVE_BSD_SIGNALS -#define DONT_REMEMBER_SIGNAL -#endif - -/* Define void to stop lint from generating "null effekt" comments */ -#ifndef DONT_DEFINE_VOID -#ifdef _lint -int __void__; -#define VOID(X) (__void__ = (int) (X)) -#else -#undef VOID -#define VOID(X) (X) -#endif -#endif /* DONT_DEFINE_VOID */ - -#if defined(_lint) || defined(FORCE_INIT_OF_VARS) -#define LINT_INIT(var) var=0 /* No uninitialize-warning */ -#else -#define LINT_INIT(var) -#endif - -#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(HAVE_purify) -#define PURIFY_OR_LINT_INIT(var) var=0 -#else -#define PURIFY_OR_LINT_INIT(var) -#endif - -/* Define some useful general macros */ -#if !defined(max) -#define max(a, b) ((a) > (b) ? (a) : (b)) -#define min(a, b) ((a) < (b) ? (a) : (b)) -#endif - -#if defined(__EMX__) || !defined(HAVE_UINT) -#undef HAVE_UINT -#define HAVE_UINT -typedef unsigned int uint; -typedef unsigned short ushort; -#endif - -#define CMP_NUM(a,b) (((a) < (b)) ? -1 : ((a) == (b)) ? 0 : 1) -#define sgn(a) (((a) < 0) ? -1 : ((a) > 0) ? 1 : 0) -#define swap_variables(t, a, b) { register t dummy; dummy= a; a= b; b= dummy; } -#define test(a) ((a) ? 1 : 0) -#define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0) -#define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0) -#define test_all_bits(a,b) (((a) & (b)) == (b)) -#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1)) -#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0]))) -#ifndef HAVE_RINT -#define rint(A) floor((A)+(((A) < 0)? -0.5 : 0.5)) -#endif - -/* Define some general constants */ -#ifndef TRUE -#define TRUE (1) /* Logical true */ -#define FALSE (0) /* Logical false */ -#endif - -#if defined(__GNUC__) -#define function_volatile volatile -#define my_reinterpret_cast(A) reinterpret_cast -#define my_const_cast(A) const_cast -#elif !defined(my_reinterpret_cast) -#define my_reinterpret_cast(A) (A) -#define my_const_cast(A) (A) -#endif -#if !defined(__attribute__) && (defined(__cplusplus) || !defined(__GNUC__) || __GNUC__ == 2 && __GNUC_MINOR__ < 8) -#define __attribute__(A) -#endif - -/* - Wen using the embedded library, users might run into link problems, - dupicate declaration of __cxa_pure_virtual, solved by declaring it a - weak symbol. -*/ -#ifdef USE_MYSYS_NEW -C_MODE_START -int __cxa_pure_virtual () __attribute__ ((weak)); -C_MODE_END -#endif - -/* From old s-system.h */ - -/* - Support macros for non ansi & other old compilers. Since such - things are no longer supported we do nothing. We keep then since - some of our code may still be needed to upgrade old customers. -*/ -#define _VARARGS(X) X -#define _STATIC_VARARGS(X) X -#define _PC(X) X - -#if defined(DBUG_ON) && defined(DBUG_OFF) -#undef DBUG_OFF -#endif - -#if defined(_lint) && !defined(DBUG_OFF) -#define DBUG_OFF -#endif - -#include - -#define MIN_ARRAY_SIZE 0 /* Zero or One. Gcc allows zero*/ -#define ASCII_BITS_USED 8 /* Bit char used */ -#define NEAR_F /* No near function handling */ - -/* Some types that is different between systems */ - -typedef int File; /* File descriptor */ -#ifndef Socket_defined -typedef int my_socket; /* File descriptor for sockets */ -#define INVALID_SOCKET -1 -#endif -/* Type for fuctions that handles signals */ -#define sig_handler RETSIGTYPE -C_MODE_START -typedef void (*sig_return)();/* Returns type from signal */ -C_MODE_END -#if defined(__GNUC__) && !defined(_lint) -typedef char pchar; /* Mixed prototypes can take char */ -typedef char puchar; /* Mixed prototypes can take char */ -typedef char pbool; /* Mixed prototypes can take char */ -typedef short pshort; /* Mixed prototypes can take short int */ -typedef float pfloat; /* Mixed prototypes can take float */ -#else -typedef int pchar; /* Mixed prototypes can't take char */ -typedef uint puchar; /* Mixed prototypes can't take char */ -typedef int pbool; /* Mixed prototypes can't take char */ -typedef int pshort; /* Mixed prototypes can't take short int */ -typedef double pfloat; /* Mixed prototypes can't take float */ -#endif -C_MODE_START -typedef int (*qsort_cmp)(const void *,const void *); -typedef int (*qsort_cmp2)(void*, const void *,const void *); -C_MODE_END -#ifdef HAVE_mit_thread -#define qsort_t void -#undef QSORT_TYPE_IS_VOID -#define QSORT_TYPE_IS_VOID -#else -#define qsort_t RETQSORTTYPE /* Broken GCC cant handle typedef !!!! */ -#endif -#ifdef HAVE_mit_thread -#define size_socket socklen_t /* Type of last arg to accept */ -#else -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -typedef SOCKET_SIZE_TYPE size_socket; -#endif - -#ifndef SOCKOPT_OPTLEN_TYPE -#define SOCKOPT_OPTLEN_TYPE size_socket -#endif - -/* file create flags */ - -#ifndef O_SHARE /* Probably not windows */ -#define O_SHARE 0 /* Flag to my_open for shared files */ -#ifndef O_BINARY -#define O_BINARY 0 /* Flag to my_open for binary files */ -#endif -#ifndef FILE_BINARY -#define FILE_BINARY O_BINARY /* Flag to my_fopen for binary streams */ -#endif -#ifdef HAVE_FCNTL -#define HAVE_FCNTL_LOCK -#define F_TO_EOF 0L /* Param to lockf() to lock rest of file */ -#endif -#endif /* O_SHARE */ - -#ifndef O_TEMPORARY -#define O_TEMPORARY 0 -#endif -#ifndef O_SHORT_LIVED -#define O_SHORT_LIVED 0 -#endif -#ifndef O_NOFOLLOW -#define O_NOFOLLOW 0 -#endif - -/* additional file share flags for win32 */ -#ifdef __WIN__ -#define _SH_DENYRWD 0x110 /* deny read/write mode & delete */ -#define _SH_DENYWRD 0x120 /* deny write mode & delete */ -#define _SH_DENYRDD 0x130 /* deny read mode & delete */ -#define _SH_DENYDEL 0x140 /* deny delete only */ -#endif /* __WIN__ */ - - -/* #define USE_RECORD_LOCK */ - - /* Unsigned types supported by the compiler */ -#define UNSINT8 /* unsigned int8 (char) */ -#define UNSINT16 /* unsigned int16 */ -#define UNSINT32 /* unsigned int32 */ - - /* General constants */ -#define SC_MAXWIDTH 256 /* Max width of screen (for error messages) */ -#define FN_LEN 256 /* Max file name len */ -#define FN_HEADLEN 253 /* Max length of filepart of file name */ -#define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */ -#define FN_REFLEN 512 /* Max length of full path-name */ -#define FN_EXTCHAR '.' -#define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */ -#define FN_CURLIB '.' /* ./ is used as abbrev for current dir */ -#define FN_PARENTDIR ".." /* Parent directory; Must be a string */ -#define FN_DEVCHAR ':' - -#ifndef FN_LIBCHAR -#ifdef __EMX__ -#define FN_LIBCHAR '\\' -#define FN_ROOTDIR "\\" -#else -#define FN_LIBCHAR '/' -#define FN_ROOTDIR "/" -#endif -#endif -#define MY_NFILE 64 /* This is only used to save filenames */ -#ifndef OS_FILE_LIMIT -#define OS_FILE_LIMIT 65535 -#endif - -/* #define EXT_IN_LIBNAME */ -/* #define FN_NO_CASE_SENCE */ -/* #define FN_UPPER_CASE TRUE */ - -/* - Io buffer size; Must be a power of 2 and a multiple of 512. May be - smaller what the disk page size. This influences the speed of the - isam btree library. eg to big to slow. -*/ -#define IO_SIZE 4096 -/* - How much overhead does malloc have. The code often allocates - something like 1024-MALLOC_OVERHEAD bytes -*/ -#ifdef SAFEMALLOC -#define MALLOC_OVERHEAD (8+24+4) -#else -#define MALLOC_OVERHEAD 8 -#endif - /* get memory in huncs */ -#define ONCE_ALLOC_INIT (uint) (4096-MALLOC_OVERHEAD) - /* Typical record cash */ -#define RECORD_CACHE_SIZE (uint) (64*1024-MALLOC_OVERHEAD) - /* Typical key cash */ -#define KEY_CACHE_SIZE (uint) (8*1024*1024-MALLOC_OVERHEAD) - /* Default size of a key cache block */ -#define KEY_CACHE_BLOCK_SIZE (uint) 1024 - - - /* Some things that this system doesn't have */ - -#define NO_HASH /* Not needed anymore */ -#ifdef __WIN__ -#define NO_DIR_LIBRARY /* Not standar dir-library */ -#define USE_MY_STAT_STRUCT /* For my_lib */ -#endif - -/* Some defines of functions for portability */ - -#undef remove /* Crashes MySQL on SCO 5.0.0 */ -#ifndef __WIN__ -#ifdef OS2 -#define closesocket(A) soclose(A) -#else -#define closesocket(A) close(A) -#endif -#ifndef ulonglong2double -#define ulonglong2double(A) ((double) (ulonglong) (A)) -#define my_off_t2double(A) ((double) (my_off_t) (A)) -#endif -#endif - -#ifndef offsetof -#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) -#endif -#define ulong_to_double(X) ((double) (ulong) (X)) -#define SET_STACK_SIZE(X) /* Not needed on real machines */ - -#if !defined(HAVE_mit_thread) && !defined(HAVE_STRTOK_R) -#define strtok_r(A,B,C) strtok((A),(B)) -#endif - -/* Remove some things that mit_thread break or doesn't support */ -#if defined(HAVE_mit_thread) && defined(THREAD) -#undef HAVE_PREAD -#undef HAVE_REALPATH -#undef HAVE_MLOCK -#undef HAVE_TEMPNAM /* Use ours */ -#undef HAVE_PTHREAD_SETPRIO -#undef HAVE_FTRUNCATE -#undef HAVE_READLINK -#endif - -/* This is from the old m-machine.h file */ - -#if SIZEOF_LONG_LONG > 4 -#define HAVE_LONG_LONG 1 -#endif - -/* - Some pre-ANSI-C99 systems like AIX 5.1 and Linux/GCC 2.95 define - ULONGLONG_MAX, LONGLONG_MIN, LONGLONG_MAX; we use them if they're defined. - Also on Windows we define these constants by hand in config-win.h. -*/ - -#if defined(HAVE_LONG_LONG) && !defined(LONGLONG_MIN) -#define LONGLONG_MIN ((long long) 0x8000000000000000LL) -#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL) -#endif - -#if defined(HAVE_LONG_LONG) && !defined(ULONGLONG_MAX) -/* First check for ANSI C99 definition: */ -#ifdef ULLONG_MAX -#define ULONGLONG_MAX ULLONG_MAX -#else -#define ULONGLONG_MAX ((unsigned long long)(~0ULL)) -#endif -#endif /* defined (HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)*/ - -#define INT_MIN32 (~0x7FFFFFFFL) -#define INT_MAX32 0x7FFFFFFFL -#define UINT_MAX32 0xFFFFFFFFL -#define INT_MIN24 (~0x007FFFFF) -#define INT_MAX24 0x007FFFFF -#define UINT_MAX24 0x00FFFFFF -#define INT_MIN16 (~0x7FFF) -#define INT_MAX16 0x7FFF -#define UINT_MAX16 0xFFFF -#define INT_MIN8 (~0x7F) -#define INT_MAX8 0x7F -#define UINT_MAX8 0xFF - -/* From limits.h instead */ -#ifndef DBL_MIN -#define DBL_MIN 4.94065645841246544e-324 -#define FLT_MIN ((float)1.40129846432481707e-45) -#endif -#ifndef DBL_MAX -#define DBL_MAX 1.79769313486231470e+308 -#define FLT_MAX ((float)3.40282346638528860e+38) -#endif - -#if !defined(HAVE_ISINF) && !defined(isinf) -#define isinf(X) 0 -#endif - -/* Define missing math constants. */ -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif -#ifndef M_E -#define M_E 2.7182818284590452354 -#endif -#ifndef M_LN2 -#define M_LN2 0.69314718055994530942 -#endif - -/* - Max size that must be added to a so that we know Size to make - adressable obj. -*/ -#if SIZEOF_CHARP == 4 -typedef long my_ptrdiff_t; -#else -typedef long long my_ptrdiff_t; -#endif - -#define MY_ALIGN(A,L) (((A) + (L) - 1) & ~((L) - 1)) -#define ALIGN_SIZE(A) MY_ALIGN((A),sizeof(double)) -/* Size to make adressable obj. */ -#define ALIGN_PTR(A, t) ((t*) MY_ALIGN((A),sizeof(t))) - /* Offset of field f in structure t */ -#define OFFSET(t, f) ((size_t)(char *)&((t *)0)->f) -#define ADD_TO_PTR(ptr,size,type) (type) ((byte*) (ptr)+size) -#define PTR_BYTE_DIFF(A,B) (my_ptrdiff_t) ((byte*) (A) - (byte*) (B)) - -#define NullS (char *) 0 -/* Nowdays we do not support MessyDos */ -#ifndef NEAR -#define NEAR /* Who needs segments ? */ -#define FAR /* On a good machine */ -#ifndef HUGE_PTR -#define HUGE_PTR -#endif -#endif -#if defined(__IBMC__) || defined(__IBMCPP__) -/* This was _System _Export but caused a lot of warnings on _AIX43 */ -#define STDCALL -#elif !defined( STDCALL) -#define STDCALL -#endif - -/* Typdefs for easyier portability */ - -#if defined(VOIDTYPE) -typedef void *gptr; /* Generic pointer */ -#else -typedef char *gptr; /* Generic pointer */ -#endif -#ifndef HAVE_INT_8_16_32 -typedef signed char int8; /* Signed integer >= 8 bits */ -typedef short int16; /* Signed integer >= 16 bits */ -#endif -#ifndef HAVE_UCHAR -typedef unsigned char uchar; /* Short for unsigned char */ -#endif -typedef unsigned char uint8; /* Short for unsigned integer >= 8 bits */ -typedef unsigned short uint16; /* Short for unsigned integer >= 16 bits */ - -#if SIZEOF_INT == 4 -#ifndef HAVE_INT_8_16_32 -typedef int int32; -#endif -typedef unsigned int uint32; /* Short for unsigned integer >= 32 bits */ -#elif SIZEOF_LONG == 4 -#ifndef HAVE_INT_8_16_32 -typedef long int32; -#endif -typedef unsigned long uint32; /* Short for unsigned integer >= 32 bits */ -#else -#error "Neither int or long is of 4 bytes width" -#endif - -#if !defined(HAVE_ULONG) && !defined(TARGET_OS_LINUX) && !defined(__USE_MISC) -typedef unsigned long ulong; /* Short for unsigned long */ -#endif -#ifndef longlong_defined -#if defined(HAVE_LONG_LONG) && SIZEOF_LONG != 8 -typedef unsigned long long int ulonglong; /* ulong or unsigned long long */ -typedef long long int longlong; -#else -typedef unsigned long ulonglong; /* ulong or unsigned long long */ -typedef long longlong; -#endif -#endif - -#if defined(NO_CLIENT_LONG_LONG) -typedef unsigned long my_ulonglong; -#elif defined (__WIN__) -typedef unsigned __int64 my_ulonglong; -#else -typedef unsigned long long my_ulonglong; -#endif - -#ifdef USE_RAID -/* - The following is done with a if to not get problems with pre-processors - with late define evaluation -*/ -#if SIZEOF_OFF_T == 4 -#define SYSTEM_SIZEOF_OFF_T 4 -#else -#define SYSTEM_SIZEOF_OFF_T 8 -#endif -#undef SIZEOF_OFF_T -#define SIZEOF_OFF_T 8 -#else -#define SYSTEM_SIZEOF_OFF_T SIZEOF_OFF_T -#endif /* USE_RAID */ - -#if SIZEOF_OFF_T > 4 -typedef ulonglong my_off_t; -#else -typedef unsigned long my_off_t; -#endif -#define MY_FILEPOS_ERROR (~(my_off_t) 0) -#if !defined(__WIN__) && !defined(OS2) -typedef off_t os_off_t; -#endif - -#if defined(__WIN__) -#define socket_errno WSAGetLastError() -#define SOCKET_EINTR WSAEINTR -#define SOCKET_EAGAIN WSAEINPROGRESS -#define SOCKET_ETIMEDOUT WSAETIMEDOUT -#define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK -#define SOCKET_EADDRINUSE WSAEADDRINUSE -#define SOCKET_ENFILE ENFILE -#define SOCKET_EMFILE EMFILE -#elif defined(OS2) -#define socket_errno sock_errno() -#define SOCKET_EINTR SOCEINTR -#define SOCKET_EAGAIN SOCEINPROGRESS -#define SOCKET_ETIMEDOUT SOCKET_EINTR -#define SOCKET_EWOULDBLOCK SOCEWOULDBLOCK -#define SOCKET_EADDRINUSE SOCEADDRINUSE -#define SOCKET_ENFILE SOCENFILE -#define SOCKET_EMFILE SOCEMFILE -#define closesocket(A) soclose(A) -#else /* Unix */ -#define socket_errno errno -#define closesocket(A) close(A) -#define SOCKET_EINTR EINTR -#define SOCKET_EAGAIN EAGAIN -#define SOCKET_ETIMEDOUT SOCKET_EINTR -#define SOCKET_EWOULDBLOCK EWOULDBLOCK -#define SOCKET_EADDRINUSE EADDRINUSE -#define SOCKET_ENFILE ENFILE -#define SOCKET_EMFILE EMFILE -#endif - -typedef uint8 int7; /* Most effective integer 0 <= x <= 127 */ -typedef short int15; /* Most effective integer 0 <= x <= 32767 */ -typedef char *my_string; /* String of characters */ -typedef unsigned long size_s; /* Size of strings (In string-funcs) */ -typedef int myf; /* Type of MyFlags in my_funcs */ -#ifndef byte_defined -typedef char byte; /* Smallest addressable unit */ -#endif -typedef char my_bool; /* Small bool */ -#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) || !defined(__cplusplus)) -typedef char bool; /* Ordinary boolean values 0 1 */ -#endif - /* Macros for converting *constants* to the right type */ -#define INT8(v) (int8) (v) -#define INT16(v) (int16) (v) -#define INT32(v) (int32) (v) -#define MYF(v) (myf) (v) - -#ifndef LL -#ifdef HAVE_LONG_LONG -#define LL(A) A ## LL -#else -#define LL(A) A ## L -#endif -#endif - -#ifndef ULL -#ifdef HAVE_LONG_LONG -#define ULL(A) A ## ULL -#else -#define ULL(A) A ## UL -#endif -#endif - -/* - Defines to make it possible to prioritize register assignments. No - longer that important with modern compilers. -*/ -#ifndef USING_X -#define reg1 register -#define reg2 register -#define reg3 register -#define reg4 register -#define reg5 register -#define reg6 register -#define reg7 register -#define reg8 register -#define reg9 register -#define reg10 register -#define reg11 register -#define reg12 register -#define reg13 register -#define reg14 register -#define reg15 register -#define reg16 register -#endif - -/* - Sometimes we want to make sure that the variable is not put into - a register in debugging mode so we can see its value in the core -*/ - -#ifndef DBUG_OFF -#define dbug_volatile volatile -#else -#define dbug_volatile -#endif - -/* Defines for time function */ -#define SCALE_SEC 100 -#define SCALE_USEC 10000 -#define MY_HOW_OFTEN_TO_ALARM 2 /* How often we want info on screen */ -#define MY_HOW_OFTEN_TO_WRITE 1000 /* How often we want info on screen */ - -#ifdef HAVE_TIMESPEC_TS_SEC -#ifndef set_timespec -#define set_timespec(ABSTIME,SEC) \ -{ \ - (ABSTIME).ts_sec=time(0) + (time_t) (SEC); \ - (ABSTIME).ts_nsec=0; \ -} -#endif /* !set_timespec */ -#ifndef set_timespec_nsec -#define set_timespec_nsec(ABSTIME,NSEC) \ -{ \ - ulonglong now= my_getsystime() + (NSEC/100); \ - (ABSTIME).ts_sec= (now / ULL(10000000)); \ - (ABSTIME).ts_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \ -} -#endif /* !set_timespec_nsec */ -#else -#ifndef set_timespec -#define set_timespec(ABSTIME,SEC) \ -{\ - struct timeval tv;\ - gettimeofday(&tv,0);\ - (ABSTIME).tv_sec=tv.tv_sec+(time_t) (SEC);\ - (ABSTIME).tv_nsec=tv.tv_usec*1000;\ -} -#endif /* !set_timespec */ -#ifndef set_timespec_nsec -#define set_timespec_nsec(ABSTIME,NSEC) \ -{\ - ulonglong now= my_getsystime() + (NSEC/100); \ - (ABSTIME).tv_sec= (now / ULL(10000000)); \ - (ABSTIME).tv_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \ -} -#endif /* !set_timespec_nsec */ -#endif /* HAVE_TIMESPEC_TS_SEC */ - -/* - Define-funktions for reading and storing in machine independent format - (low byte first) -*/ - -/* Optimized store functions for Intel x86 */ -#if defined(__i386__) && !defined(_WIN64) -#define sint2korr(A) (*((int16 *) (A))) -#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \ - (((uint32) 255L << 24) | \ - (((uint32) (uchar) (A)[2]) << 16) |\ - (((uint32) (uchar) (A)[1]) << 8) | \ - ((uint32) (uchar) (A)[0])) : \ - (((uint32) (uchar) (A)[2]) << 16) |\ - (((uint32) (uchar) (A)[1]) << 8) | \ - ((uint32) (uchar) (A)[0]))) -#define sint4korr(A) (*((long *) (A))) -#define uint2korr(A) (*((uint16 *) (A))) -#ifdef HAVE_purify -#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ - (((uint32) ((uchar) (A)[1])) << 8) +\ - (((uint32) ((uchar) (A)[2])) << 16)) -#else -/* - ATTENTION ! - - Please, note, uint3korr reads 4 bytes (not 3) ! - It means, that you have to provide enough allocated space ! -*/ -#define uint3korr(A) (long) (*((unsigned int *) (A)) & 0xFFFFFF) -#endif -#define uint4korr(A) (*((unsigned long *) (A))) -#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ - (((uint32) ((uchar) (A)[1])) << 8) +\ - (((uint32) ((uchar) (A)[2])) << 16) +\ - (((uint32) ((uchar) (A)[3])) << 24)) +\ - (((ulonglong) ((uchar) (A)[4])) << 32)) -#define uint8korr(A) (*((ulonglong *) (A))) -#define sint8korr(A) (*((longlong *) (A))) -#define int2store(T,A) *((uint16*) (T))= (uint16) (A) -#define int3store(T,A) do { *(T)= (uchar) ((A));\ - *(T+1)=(uchar) (((uint) (A) >> 8));\ - *(T+2)=(uchar) (((A) >> 16)); } while (0) -#define int4store(T,A) *((long *) (T))= (long) (A) -#define int5store(T,A) do { *(T)= (uchar)((A));\ - *((T)+1)=(uchar) (((A) >> 8));\ - *((T)+2)=(uchar) (((A) >> 16));\ - *((T)+3)=(uchar) (((A) >> 24)); \ - *((T)+4)=(uchar) (((A) >> 32)); } while(0) -#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A) - -typedef union { - double v; - long m[2]; -} doubleget_union; -#define doubleget(V,M) \ -do { doubleget_union _tmp; \ - _tmp.m[0] = *((long*)(M)); \ - _tmp.m[1] = *(((long*) (M))+1); \ - (V) = _tmp.v; } while(0) -#define doublestore(T,V) do { *((long *) T) = ((doubleget_union *)&V)->m[0]; \ - *(((long *) T)+1) = ((doubleget_union *)&V)->m[1]; \ - } while (0) -#define float4get(V,M) do { *((long *) &(V)) = *((long*) (M)); } while(0) -#define float8get(V,M) doubleget((V),(M)) -#define float4store(V,M) memcpy((byte*) V,(byte*) (&M),sizeof(float)) -#define floatstore(T,V) memcpy((byte*)(T), (byte*)(&V),sizeof(float)) -#define floatget(V,M) memcpy((byte*) &V,(byte*) (M),sizeof(float)) -#define float8store(V,M) doublestore((V),(M)) -#endif /* __i386__ */ - -#ifndef sint2korr -/* - We're here if it's not a IA-32 architecture (Win32 and UNIX IA-32 defines - were done before) -*/ -#define sint2korr(A) (int16) (((int16) ((uchar) (A)[0])) +\ - ((int16) ((int16) (A)[1]) << 8)) -#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \ - (((uint32) 255L << 24) | \ - (((uint32) (uchar) (A)[2]) << 16) |\ - (((uint32) (uchar) (A)[1]) << 8) | \ - ((uint32) (uchar) (A)[0])) : \ - (((uint32) (uchar) (A)[2]) << 16) |\ - (((uint32) (uchar) (A)[1]) << 8) | \ - ((uint32) (uchar) (A)[0]))) -#define sint4korr(A) (int32) (((int32) ((uchar) (A)[0])) +\ - (((int32) ((uchar) (A)[1]) << 8)) +\ - (((int32) ((uchar) (A)[2]) << 16)) +\ - (((int32) ((int16) (A)[3]) << 24))) -#define sint8korr(A) (longlong) uint8korr(A) -#define uint2korr(A) (uint16) (((uint16) ((uchar) (A)[0])) +\ - ((uint16) ((uchar) (A)[1]) << 8)) -#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ - (((uint32) ((uchar) (A)[1])) << 8) +\ - (((uint32) ((uchar) (A)[2])) << 16)) -#define uint4korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ - (((uint32) ((uchar) (A)[1])) << 8) +\ - (((uint32) ((uchar) (A)[2])) << 16) +\ - (((uint32) ((uchar) (A)[3])) << 24)) -#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ - (((uint32) ((uchar) (A)[1])) << 8) +\ - (((uint32) ((uchar) (A)[2])) << 16) +\ - (((uint32) ((uchar) (A)[3])) << 24)) +\ - (((ulonglong) ((uchar) (A)[4])) << 32)) -#define uint8korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ - (((uint32) ((uchar) (A)[1])) << 8) +\ - (((uint32) ((uchar) (A)[2])) << 16) +\ - (((uint32) ((uchar) (A)[3])) << 24)) +\ - (((ulonglong) (((uint32) ((uchar) (A)[4])) +\ - (((uint32) ((uchar) (A)[5])) << 8) +\ - (((uint32) ((uchar) (A)[6])) << 16) +\ - (((uint32) ((uchar) (A)[7])) << 24))) <<\ - 32)) -#define int2store(T,A) do { uint def_temp= (uint) (A) ;\ - *((uchar*) (T))= (uchar)(def_temp); \ - *((uchar*) (T)+1)=(uchar)((def_temp >> 8)); \ - } while(0) -#define int3store(T,A) do { /*lint -save -e734 */\ - *((uchar*)(T))=(uchar) ((A));\ - *((uchar*) (T)+1)=(uchar) (((A) >> 8));\ - *((uchar*)(T)+2)=(uchar) (((A) >> 16)); \ - /*lint -restore */} while(0) -#define int4store(T,A) do { *((char *)(T))=(char) ((A));\ - *(((char *)(T))+1)=(char) (((A) >> 8));\ - *(((char *)(T))+2)=(char) (((A) >> 16));\ - *(((char *)(T))+3)=(char) (((A) >> 24)); } while(0) -#define int5store(T,A) do { *((char *)(T))=((A));\ - *(((char *)(T))+1)=(((A) >> 8));\ - *(((char *)(T))+2)=(((A) >> 16));\ - *(((char *)(T))+3)=(((A) >> 24)); \ - *(((char *)(T))+4)=(((A) >> 32)); } while(0) -#define int8store(T,A) do { uint def_temp= (uint) (A), def_temp2= (uint) ((A) >> 32); \ - int4store((T),def_temp); \ - int4store((T+4),def_temp2); } while(0) -#ifdef WORDS_BIGENDIAN -#define float4store(T,A) do { *(T)= ((byte *) &A)[3];\ - *((T)+1)=(char) ((byte *) &A)[2];\ - *((T)+2)=(char) ((byte *) &A)[1];\ - *((T)+3)=(char) ((byte *) &A)[0]; } while(0) - -#define float4get(V,M) do { float def_temp;\ - ((byte*) &def_temp)[0]=(M)[3];\ - ((byte*) &def_temp)[1]=(M)[2];\ - ((byte*) &def_temp)[2]=(M)[1];\ - ((byte*) &def_temp)[3]=(M)[0];\ - (V)=def_temp; } while(0) -#define float8store(T,V) do { *(T)= ((byte *) &V)[7];\ - *((T)+1)=(char) ((byte *) &V)[6];\ - *((T)+2)=(char) ((byte *) &V)[5];\ - *((T)+3)=(char) ((byte *) &V)[4];\ - *((T)+4)=(char) ((byte *) &V)[3];\ - *((T)+5)=(char) ((byte *) &V)[2];\ - *((T)+6)=(char) ((byte *) &V)[1];\ - *((T)+7)=(char) ((byte *) &V)[0]; } while(0) - -#define float8get(V,M) do { double def_temp;\ - ((byte*) &def_temp)[0]=(M)[7];\ - ((byte*) &def_temp)[1]=(M)[6];\ - ((byte*) &def_temp)[2]=(M)[5];\ - ((byte*) &def_temp)[3]=(M)[4];\ - ((byte*) &def_temp)[4]=(M)[3];\ - ((byte*) &def_temp)[5]=(M)[2];\ - ((byte*) &def_temp)[6]=(M)[1];\ - ((byte*) &def_temp)[7]=(M)[0];\ - (V) = def_temp; } while(0) -#else -#define float4get(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(float)) -#define float4store(V,M) memcpy_fixed((byte*) V,(byte*) (&M),sizeof(float)) - -#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN) -#define doublestore(T,V) do { *(((char*)T)+0)=(char) ((byte *) &V)[4];\ - *(((char*)T)+1)=(char) ((byte *) &V)[5];\ - *(((char*)T)+2)=(char) ((byte *) &V)[6];\ - *(((char*)T)+3)=(char) ((byte *) &V)[7];\ - *(((char*)T)+4)=(char) ((byte *) &V)[0];\ - *(((char*)T)+5)=(char) ((byte *) &V)[1];\ - *(((char*)T)+6)=(char) ((byte *) &V)[2];\ - *(((char*)T)+7)=(char) ((byte *) &V)[3]; }\ - while(0) -#define doubleget(V,M) do { double def_temp;\ - ((byte*) &def_temp)[0]=(M)[4];\ - ((byte*) &def_temp)[1]=(M)[5];\ - ((byte*) &def_temp)[2]=(M)[6];\ - ((byte*) &def_temp)[3]=(M)[7];\ - ((byte*) &def_temp)[4]=(M)[0];\ - ((byte*) &def_temp)[5]=(M)[1];\ - ((byte*) &def_temp)[6]=(M)[2];\ - ((byte*) &def_temp)[7]=(M)[3];\ - (V) = def_temp; } while(0) -#endif /* __FLOAT_WORD_ORDER */ - -#define float8get(V,M) doubleget((V),(M)) -#define float8store(V,M) doublestore((V),(M)) -#endif /* WORDS_BIGENDIAN */ - -#endif /* sint2korr */ - -/* - Macro for reading 32-bit integer from network byte order (big-endian) - from unaligned memory location. -*/ -#define int4net(A) (int32) (((uint32) ((uchar) (A)[3])) |\ - (((uint32) ((uchar) (A)[2])) << 8) |\ - (((uint32) ((uchar) (A)[1])) << 16) |\ - (((uint32) ((uchar) (A)[0])) << 24)) -/* - Define-funktions for reading and storing in machine format from/to - short/long to/from some place in memory V should be a (not - register) variable, M is a pointer to byte -*/ - -#ifdef WORDS_BIGENDIAN - -#define ushortget(V,M) do { V = (uint16) (((uint16) ((uchar) (M)[1]))+\ - ((uint16) ((uint16) (M)[0]) << 8)); } while(0) -#define shortget(V,M) do { V = (short) (((short) ((uchar) (M)[1]))+\ - ((short) ((short) (M)[0]) << 8)); } while(0) -#define longget(V,M) do { int32 def_temp;\ - ((byte*) &def_temp)[0]=(M)[0];\ - ((byte*) &def_temp)[1]=(M)[1];\ - ((byte*) &def_temp)[2]=(M)[2];\ - ((byte*) &def_temp)[3]=(M)[3];\ - (V)=def_temp; } while(0) -#define ulongget(V,M) do { uint32 def_temp;\ - ((byte*) &def_temp)[0]=(M)[0];\ - ((byte*) &def_temp)[1]=(M)[1];\ - ((byte*) &def_temp)[2]=(M)[2];\ - ((byte*) &def_temp)[3]=(M)[3];\ - (V)=def_temp; } while(0) -#define shortstore(T,A) do { uint def_temp=(uint) (A) ;\ - *(((char*)T)+1)=(char)(def_temp); \ - *(((char*)T)+0)=(char)(def_temp >> 8); } while(0) -#define longstore(T,A) do { *(((char*)T)+3)=((A));\ - *(((char*)T)+2)=(((A) >> 8));\ - *(((char*)T)+1)=(((A) >> 16));\ - *(((char*)T)+0)=(((A) >> 24)); } while(0) - -#define floatget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(float)) -#define floatstore(T,V) memcpy_fixed((byte*) (T),(byte*)(&V),sizeof(float)) -#define doubleget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(double)) -#define doublestore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(double)) -#define longlongget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(ulonglong)) -#define longlongstore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(ulonglong)) - -#else - -#define ushortget(V,M) do { V = uint2korr(M); } while(0) -#define shortget(V,M) do { V = sint2korr(M); } while(0) -#define longget(V,M) do { V = sint4korr(M); } while(0) -#define ulongget(V,M) do { V = uint4korr(M); } while(0) -#define shortstore(T,V) int2store(T,V) -#define longstore(T,V) int4store(T,V) -#ifndef floatstore -#define floatstore(T,V) memcpy_fixed((byte*) (T),(byte*) (&V),sizeof(float)) -#define floatget(V,M) memcpy_fixed((byte*) &V, (byte*) (M), sizeof(float)) -#endif -#ifndef doubleget -#define doubleget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(double)) -#define doublestore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(double)) -#endif /* doubleget */ -#define longlongget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(ulonglong)) -#define longlongstore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(ulonglong)) - -#endif /* WORDS_BIGENDIAN */ - -/* sprintf does not always return the number of bytes :- */ -#ifdef SPRINTF_RETURNS_INT -#define my_sprintf(buff,args) sprintf args -#else -#ifdef SPRINTF_RETURNS_PTR -#define my_sprintf(buff,args) ((int)(sprintf args - buff)) -#else -#define my_sprintf(buff,args) ((ulong) sprintf args, (ulong) strlen(buff)) -#endif -#endif - -#ifndef THREAD -#define thread_safe_increment(V,L) (V)++ -#define thread_safe_add(V,C,L) (V)+=(C) -#define thread_safe_sub(V,C,L) (V)-=(C) -#define statistic_increment(V,L) (V)++ -#define statistic_add(V,C,L) (V)+=(C) -#endif - -#ifdef HAVE_CHARSET_utf8 -#define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8" -#else -#define MYSQL_UNIVERSAL_CLIENT_CHARSET MYSQL_DEFAULT_CHARSET_NAME -#endif - -#if defined(EMBEDDED_LIBRARY) && !defined(HAVE_EMBEDDED_PRIVILEGE_CONTROL) -#define NO_EMBEDDED_ACCESS_CHECKS -#endif - -#endif /* my_global_h */ diff --git a/src/mysql/my_list.h b/src/mysql/my_list.h deleted file mode 100644 index 92598696f..000000000 --- a/src/mysql/my_list.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#ifndef _list_h_ -#define _list_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct st_list { - struct st_list *prev,*next; - void *data; -} LIST; - -typedef int (*list_walk_action)(void *,void *); - -extern LIST *list_add(LIST *root,LIST *element); -extern LIST *list_delete(LIST *root,LIST *element); -extern LIST *list_cons(void *data,LIST *root); -extern LIST *list_reverse(LIST *root); -extern void list_free(LIST *root,unsigned int free_data); -extern unsigned int list_length(LIST *); -extern int list_walk(LIST *,list_walk_action action,gptr argument); - -#define list_rest(a) ((a)->next) -#define list_push(a,b) (a)=list_cons((b),(a)) -#define list_pop(A) {LIST *old=(A); (A)=list_delete(old,old) ; my_free((gptr) old,MYF(MY_FAE)); } - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/mysql/my_pthread.h b/src/mysql/my_pthread.h deleted file mode 100644 index 202e047dc..000000000 --- a/src/mysql/my_pthread.h +++ /dev/null @@ -1,717 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -/* Defines to make different thread packages compatible */ - -#ifndef _my_pthread_h -#define _my_pthread_h - -#include -#ifndef ETIME -#define ETIME ETIMEDOUT /* For FreeBSD */ -#endif - -#ifdef __cplusplus -#define EXTERNC extern "C" -extern "C" { -#else -#define EXTERNC -#endif /* __cplusplus */ - -#if defined(__WIN__) || defined(OS2) - -#ifdef OS2 -typedef ULONG HANDLE; -typedef ULONG DWORD; -typedef int sigset_t; -#endif - -#ifdef OS2 -typedef HMTX pthread_mutex_t; -#else -typedef CRITICAL_SECTION pthread_mutex_t; -#endif -typedef HANDLE pthread_t; -typedef struct thread_attr { - DWORD dwStackSize ; - DWORD dwCreatingFlag ; - int priority ; -} pthread_attr_t ; - -typedef struct { int dummy; } pthread_condattr_t; - -/* Implementation of posix conditions */ - -typedef struct st_pthread_link { - DWORD thread_id; - struct st_pthread_link *next; -} pthread_link; - -typedef struct { - uint32 waiting; -#ifdef OS2 - HEV semaphore; -#else - HANDLE semaphore; -#endif -} pthread_cond_t; - - -#ifndef OS2 -struct timespec { /* For pthread_cond_timedwait() */ - time_t tv_sec; - long tv_nsec; -}; -#endif - -typedef int pthread_mutexattr_t; -#define win_pthread_self my_thread_var->pthread_self -#ifdef OS2 -#define pthread_handler_t EXTERNC void * _Optlink -typedef void * (_Optlink *pthread_handler)(void *); -#else -#define pthread_handler_t EXTERNC void * __cdecl -typedef void * (__cdecl *pthread_handler)(void *); -#endif - -void win_pthread_init(void); -int win_pthread_setspecific(void *A,void *B,uint length); -int pthread_create(pthread_t *,pthread_attr_t *,pthread_handler,void *); -int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr); -int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); -int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, - struct timespec *abstime); -int pthread_cond_signal(pthread_cond_t *cond); -int pthread_cond_broadcast(pthread_cond_t *cond); -int pthread_cond_destroy(pthread_cond_t *cond); -int pthread_attr_init(pthread_attr_t *connect_att); -int pthread_attr_setstacksize(pthread_attr_t *connect_att,DWORD stack); -int pthread_attr_setprio(pthread_attr_t *connect_att,int priority); -int pthread_attr_destroy(pthread_attr_t *connect_att); -struct tm *localtime_r(const time_t *timep,struct tm *tmp); -struct tm *gmtime_r(const time_t *timep,struct tm *tmp); - - -void pthread_exit(void *a); /* was #define pthread_exit(A) ExitThread(A)*/ - -#ifndef OS2 -#define ETIMEDOUT 145 /* Win32 doesn't have this */ -#define getpid() GetCurrentThreadId() -#endif -#define pthread_self() win_pthread_self -#define HAVE_LOCALTIME_R 1 -#define _REENTRANT 1 -#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 - -#ifdef USE_TLS /* For LIBMYSQL.DLL */ -#undef SAFE_MUTEX /* This will cause conflicts */ -#define pthread_key(T,V) DWORD V -#define pthread_key_create(A,B) ((*A=TlsAlloc())==0xFFFFFFFF) -#define pthread_key_delete(A) TlsFree(A) -#define pthread_getspecific(A) (TlsGetValue(A)) -#define my_pthread_getspecific(T,A) ((T) TlsGetValue(A)) -#define my_pthread_getspecific_ptr(T,V) ((T) TlsGetValue(V)) -#define my_pthread_setspecific_ptr(T,V) (!TlsSetValue((T),(V))) -#define pthread_setspecific(A,B) (!TlsSetValue((A),(B))) -#else -#define pthread_key(T,V) __declspec(thread) T V -#define pthread_key_create(A,B) pthread_dummy(0) -#define pthread_key_delete(A) pthread_dummy(0) -#define pthread_getspecific(A) (&(A)) -#define my_pthread_getspecific(T,A) (&(A)) -#define my_pthread_getspecific_ptr(T,V) (V) -#define my_pthread_setspecific_ptr(T,V) ((T)=(V),0) -#define pthread_setspecific(A,B) win_pthread_setspecific(&(A),(B),sizeof(A)) -#endif /* USE_TLS */ - -#define pthread_equal(A,B) ((A) == (B)) -#ifdef OS2 -extern int pthread_mutex_init (pthread_mutex_t *, const pthread_mutexattr_t *); -extern int pthread_mutex_lock (pthread_mutex_t *); -extern int pthread_mutex_unlock (pthread_mutex_t *); -extern int pthread_mutex_destroy (pthread_mutex_t *); -#define my_pthread_setprio(A,B) DosSetPriority(PRTYS_THREAD,PRTYC_NOCHANGE, B, A) -#define pthread_kill(A,B) raise(B) -#define pthread_exit(A) pthread_dummy() -#else -#define pthread_mutex_init(A,B) (InitializeCriticalSection(A),0) -#define pthread_mutex_lock(A) (EnterCriticalSection(A),0) -#define pthread_mutex_trylock(A) (WaitForSingleObject((A), 0) == WAIT_TIMEOUT) -#define pthread_mutex_unlock(A) LeaveCriticalSection(A) -#define pthread_mutex_destroy(A) DeleteCriticalSection(A) -#define my_pthread_setprio(A,B) SetThreadPriority(GetCurrentThread(), (B)) -#define pthread_kill(A,B) pthread_dummy(0) -#endif /* OS2 */ - -/* Dummy defines for easier code */ -#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) -#define my_pthread_attr_setprio(A,B) pthread_attr_setprio(A,B) -#define pthread_attr_setscope(A,B) -#define pthread_detach_this_thread() -#define pthread_condattr_init(A) -#define pthread_condattr_destroy(A) - -/*Irena: compiler does not like this: */ -/*#define my_pthread_getprio(pthread_t thread_id) pthread_dummy(0) */ -#define my_pthread_getprio(thread_id) pthread_dummy(0) - -#elif defined(HAVE_UNIXWARE7_THREADS) - -#include -#include - -#ifndef _REENTRANT -#define _REENTRANT -#endif - -#define HAVE_NONPOSIX_SIGWAIT -#define pthread_t thread_t -#define pthread_cond_t cond_t -#define pthread_mutex_t mutex_t -#define pthread_key_t thread_key_t -typedef int pthread_attr_t; /* Needed by Unixware 7.0.0 */ - -#define pthread_key_create(A,B) thr_keycreate((A),(B)) -#define pthread_key_delete(A) thr_keydelete(A) - -#define pthread_handler_t EXTERNC void * -#define pthread_key(T,V) pthread_key_t V - -void * my_pthread_getspecific_imp(pthread_key_t key); -#define my_pthread_getspecific(A,B) ((A) my_pthread_getspecific_imp(B)) -#define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,V) - -#define pthread_setspecific(A,B) thr_setspecific(A,B) -#define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,V) - -#define pthread_create(A,B,C,D) thr_create(NULL,65536L,(C),(D),THR_DETACHED,(A)) -#define pthread_cond_init(a,b) cond_init((a),USYNC_THREAD,NULL) -#define pthread_cond_destroy(a) cond_destroy(a) -#define pthread_cond_signal(a) cond_signal(a) -#define pthread_cond_wait(a,b) cond_wait((a),(b)) -#define pthread_cond_timedwait(a,b,c) cond_timedwait((a),(b),(c)) -#define pthread_cond_broadcast(a) cond_broadcast(a) - -#define pthread_mutex_init(a,b) mutex_init((a),USYNC_THREAD,NULL) -#define pthread_mutex_lock(a) mutex_lock(a) -#define pthread_mutex_unlock(a) mutex_unlock(a) -#define pthread_mutex_destroy(a) mutex_destroy(a) - -#define pthread_self() thr_self() -#define pthread_exit(A) thr_exit(A) -#define pthread_equal(A,B) (((A) == (B)) ? 1 : 0) -#define pthread_kill(A,B) thr_kill((A),(B)) -#define HAVE_PTHREAD_KILL - -#define pthread_sigmask(A,B,C) thr_sigsetmask((A),(B),(C)) - -extern int my_sigwait(const sigset_t *set,int *sig); - -#define pthread_detach_this_thread() pthread_dummy(0) - -#define pthread_attr_init(A) pthread_dummy(0) -#define pthread_attr_destroy(A) pthread_dummy(0) -#define pthread_attr_setscope(A,B) pthread_dummy(0) -#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) -#define my_pthread_setprio(A,B) pthread_dummy (0) -#define my_pthread_getprio(A) pthread_dummy (0) -#define my_pthread_attr_setprio(A,B) pthread_dummy(0) - -#else /* Normal threads */ - -#ifdef HAVE_rts_threads -#define sigwait org_sigwait -#include -#undef sigwait -#endif -#include -#ifndef _REENTRANT -#define _REENTRANT -#endif -#ifdef HAVE_THR_SETCONCURRENCY -#include /* Probably solaris */ -#endif -#ifdef HAVE_SCHED_H -#include -#endif -#ifdef HAVE_SYNCH_H -#include -#endif -#if defined(__EMX__) && (!defined(EMX_PTHREAD_REV) || (EMX_PTHREAD_REV < 2)) -#error Requires at least rev 2 of EMX pthreads library. -#endif - -#ifdef __NETWARE__ -void my_pthread_exit(void *status); -#define pthread_exit(A) my_pthread_exit(A) -#endif - -extern int my_pthread_getprio(pthread_t thread_id); - -#define pthread_key(T,V) pthread_key_t V -#define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,(V)) -#define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,(void*) (V)) -#define pthread_detach_this_thread() -#define pthread_handler_t EXTERNC void * -typedef void *(* pthread_handler)(void *); - -/* Test first for RTS or FSU threads */ - -#if defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) -#define HAVE_rts_threads -extern int my_pthread_create_detached; -#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) -#define PTHREAD_CREATE_DETACHED &my_pthread_create_detached -#define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_GLOBAL -#define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_LOCAL -#define USE_ALARM_THREAD -#elif defined(HAVE_mit_thread) -#define USE_ALARM_THREAD -#undef HAVE_LOCALTIME_R -#define HAVE_LOCALTIME_R -#undef HAVE_GMTIME_R -#define HAVE_GMTIME_R -#undef HAVE_PTHREAD_ATTR_SETSCOPE -#define HAVE_PTHREAD_ATTR_SETSCOPE -#undef HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE /* If we are running linux */ -#undef HAVE_RWLOCK_T -#undef HAVE_RWLOCK_INIT -#undef HAVE_PTHREAD_RWLOCK_RDLOCK -#undef HAVE_SNPRINTF - -#define my_pthread_attr_setprio(A,B) -#endif /* defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) */ - -#if defined(_BSDI_VERSION) && _BSDI_VERSION < 199910 -int sigwait(sigset_t *set, int *sig); -#endif - -#ifndef HAVE_NONPOSIX_SIGWAIT -#define my_sigwait(A,B) sigwait((A),(B)) -#else -int my_sigwait(const sigset_t *set,int *sig); -#endif - -#ifdef HAVE_NONPOSIX_PTHREAD_MUTEX_INIT -#ifndef SAFE_MUTEX -#define pthread_mutex_init(a,b) my_pthread_mutex_init((a),(b)) -extern int my_pthread_mutex_init(pthread_mutex_t *mp, - const pthread_mutexattr_t *attr); -#endif /* SAFE_MUTEX */ -#define pthread_cond_init(a,b) my_pthread_cond_init((a),(b)) -extern int my_pthread_cond_init(pthread_cond_t *mp, - const pthread_condattr_t *attr); -#endif /* HAVE_NONPOSIX_PTHREAD_MUTEX_INIT */ - -#if defined(HAVE_SIGTHREADMASK) && !defined(HAVE_PTHREAD_SIGMASK) -#define pthread_sigmask(A,B,C) sigthreadmask((A),(B),(C)) -#endif - -#if !defined(HAVE_SIGWAIT) && !defined(HAVE_mit_thread) && !defined(HAVE_rts_threads) && !defined(sigwait) && !defined(alpha_linux_port) && !defined(HAVE_NONPOSIX_SIGWAIT) && !defined(HAVE_DEC_3_2_THREADS) && !defined(_AIX) -int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */ -#endif - - -/* - We define my_sigset() and use that instead of the system sigset() so that - we can favor an implementation based on sigaction(). On some systems, such - as Mac OS X, sigset() results in flags such as SA_RESTART being set, and - we want to make sure that no such flags are set. -*/ -#if defined(HAVE_SIGACTION) && !defined(my_sigset) -#define my_sigset(A,B) do { struct sigaction s; sigset_t set; \ - sigemptyset(&set); \ - s.sa_handler = (B); \ - s.sa_mask = set; \ - s.sa_flags = 0; \ - sigaction((A), &s, (struct sigaction *) NULL); \ - } while (0) -#elif defined(HAVE_SIGSET) && !defined(my_sigset) -#define my_sigset(A,B) sigset((A),(B)) -#elif !defined(my_sigset) -#define my_sigset(A,B) signal((A),(B)) -#endif - -#ifndef my_pthread_setprio -#if defined(HAVE_PTHREAD_SETPRIO_NP) /* FSU threads */ -#define my_pthread_setprio(A,B) pthread_setprio_np((A),(B)) -#elif defined(HAVE_PTHREAD_SETPRIO) -#define my_pthread_setprio(A,B) pthread_setprio((A),(B)) -#else -extern void my_pthread_setprio(pthread_t thread_id,int prior); -#endif -#endif - -#ifndef my_pthread_attr_setprio -#ifdef HAVE_PTHREAD_ATTR_SETPRIO -#define my_pthread_attr_setprio(A,B) pthread_attr_setprio((A),(B)) -#else -extern void my_pthread_attr_setprio(pthread_attr_t *attr, int priority); -#endif -#endif - -#if !defined(HAVE_PTHREAD_ATTR_SETSCOPE) || defined(HAVE_DEC_3_2_THREADS) -#define pthread_attr_setscope(A,B) -#undef HAVE_GETHOSTBYADDR_R /* No definition */ -#endif - -#if defined(HAVE_BROKEN_PTHREAD_COND_TIMEDWAIT) && !defined(SAFE_MUTEX) -extern int my_pthread_cond_timedwait(pthread_cond_t *cond, - pthread_mutex_t *mutex, - struct timespec *abstime); -#define pthread_cond_timedwait(A,B,C) my_pthread_cond_timedwait((A),(B),(C)) -#endif - -#if defined(OS2) -#define my_pthread_getspecific(T,A) ((T) &(A)) -#define pthread_setspecific(A,B) win_pthread_setspecific(&(A),(B),sizeof(A)) -#elif !defined( HAVE_NONPOSIX_PTHREAD_GETSPECIFIC) -#define my_pthread_getspecific(A,B) ((A) pthread_getspecific(B)) -#else -#define my_pthread_getspecific(A,B) ((A) my_pthread_getspecific_imp(B)) -void *my_pthread_getspecific_imp(pthread_key_t key); -#endif /* OS2 */ - -#ifndef HAVE_LOCALTIME_R -struct tm *localtime_r(const time_t *clock, struct tm *res); -#endif - -#ifndef HAVE_GMTIME_R -struct tm *gmtime_r(const time_t *clock, struct tm *res); -#endif - -#ifdef HAVE_PTHREAD_CONDATTR_CREATE -/* DCE threads on HPUX 10.20 */ -#define pthread_condattr_init pthread_condattr_create -#define pthread_condattr_destroy pthread_condattr_delete -#endif - -/* FSU THREADS */ -#if !defined(HAVE_PTHREAD_KEY_DELETE) && !defined(pthread_key_delete) -#define pthread_key_delete(A) pthread_dummy(0) -#endif - -#ifdef HAVE_CTHREADS_WRAPPER /* For MacOSX */ -#define pthread_cond_destroy(A) pthread_dummy(0) -#define pthread_mutex_destroy(A) pthread_dummy(0) -#define pthread_attr_delete(A) pthread_dummy(0) -#define pthread_condattr_delete(A) pthread_dummy(0) -#define pthread_attr_setstacksize(A,B) pthread_dummy(0) -#define pthread_equal(A,B) ((A) == (B)) -#define pthread_cond_timedwait(a,b,c) pthread_cond_wait((a),(b)) -#define pthread_attr_init(A) pthread_attr_create(A) -#define pthread_attr_destroy(A) pthread_attr_delete(A) -#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) -#define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D)) -#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) -#define pthread_kill(A,B) pthread_dummy(0) -#undef pthread_detach_this_thread -#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); } -#endif - -#ifdef HAVE_DARWIN5_THREADS -#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) -#define pthread_kill(A,B) pthread_dummy(0) -#define pthread_condattr_init(A) pthread_dummy(0) -#define pthread_condattr_destroy(A) pthread_dummy(0) -#undef pthread_detach_this_thread -#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(tmp); } -#endif - -#if ((defined(HAVE_PTHREAD_ATTR_CREATE) && !defined(HAVE_SIGWAIT)) || defined(HAVE_DEC_3_2_THREADS)) && !defined(HAVE_CTHREADS_WRAPPER) -/* This is set on AIX_3_2 and Siemens unix (and DEC OSF/1 3.2 too) */ -#define pthread_key_create(A,B) \ - pthread_keycreate(A,(B) ?\ - (pthread_destructor_t) (B) :\ - (pthread_destructor_t) pthread_dummy) -#define pthread_attr_init(A) pthread_attr_create(A) -#define pthread_attr_destroy(A) pthread_attr_delete(A) -#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) -#define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D)) -#ifndef pthread_sigmask -#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) -#endif -#define pthread_kill(A,B) pthread_dummy(0) -#undef pthread_detach_this_thread -#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); } -#elif !defined(__NETWARE__) /* HAVE_PTHREAD_ATTR_CREATE && !HAVE_SIGWAIT */ -#define HAVE_PTHREAD_KILL -#endif - -#endif /* defined(__WIN__) */ - -#if defined(HPUX10) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS) -#undef pthread_cond_timedwait -#define pthread_cond_timedwait(a,b,c) my_pthread_cond_timedwait((a),(b),(c)) -int my_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, - struct timespec *abstime); -#endif - -#if defined(HPUX10) -#define pthread_attr_getstacksize(A,B) my_pthread_attr_getstacksize(A,B) -void my_pthread_attr_getstacksize(pthread_attr_t *attrib, size_t *size); -#endif - -#if defined(HAVE_POSIX1003_4a_MUTEX) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS) -#undef pthread_mutex_trylock -#define pthread_mutex_trylock(a) my_pthread_mutex_trylock((a)) -int my_pthread_mutex_trylock(pthread_mutex_t *mutex); -#endif - - /* safe_mutex adds checking to mutex for easier debugging */ - -#if defined(__NETWARE__) && !defined(SAFE_MUTEX_DETECT_DESTROY) -#define SAFE_MUTEX_DETECT_DESTROY -#endif - -typedef struct st_safe_mutex_t -{ - pthread_mutex_t global,mutex; - const char *file; - uint line,count; - pthread_t thread; -#ifdef SAFE_MUTEX_DETECT_DESTROY - struct st_safe_mutex_info_t *info; /* to track destroying of mutexes */ -#endif -} safe_mutex_t; - -#ifdef SAFE_MUTEX_DETECT_DESTROY -/* - Used to track the destroying of mutexes. This needs to be a seperate - structure because the safe_mutex_t structure could be freed before - the mutexes are destroyed. -*/ - -typedef struct st_safe_mutex_info_t -{ - struct st_safe_mutex_info_t *next; - struct st_safe_mutex_info_t *prev; - const char *init_file; - uint32 init_line; -} safe_mutex_info_t; -#endif /* SAFE_MUTEX_DETECT_DESTROY */ - -int safe_mutex_init(safe_mutex_t *mp, const pthread_mutexattr_t *attr, - const char *file, uint line); -int safe_mutex_lock(safe_mutex_t *mp,const char *file, uint line); -int safe_mutex_unlock(safe_mutex_t *mp,const char *file, uint line); -int safe_mutex_destroy(safe_mutex_t *mp,const char *file, uint line); -int safe_cond_wait(pthread_cond_t *cond, safe_mutex_t *mp,const char *file, - uint line); -int safe_cond_timedwait(pthread_cond_t *cond, safe_mutex_t *mp, - struct timespec *abstime, const char *file, uint line); -void safe_mutex_global_init(void); -void safe_mutex_end(FILE *file); - - /* Wrappers if safe mutex is actually used */ -#ifdef SAFE_MUTEX -#undef pthread_mutex_init -#undef pthread_mutex_lock -#undef pthread_mutex_unlock -#undef pthread_mutex_destroy -#undef pthread_mutex_wait -#undef pthread_mutex_timedwait -#undef pthread_mutex_t -#undef pthread_cond_wait -#undef pthread_cond_timedwait -#undef pthread_mutex_trylock -#define pthread_mutex_init(A,B) safe_mutex_init((A),(B),__FILE__,__LINE__) -#define pthread_mutex_lock(A) safe_mutex_lock((A),__FILE__,__LINE__) -#define pthread_mutex_unlock(A) safe_mutex_unlock((A),__FILE__,__LINE__) -#define pthread_mutex_destroy(A) safe_mutex_destroy((A),__FILE__,__LINE__) -#define pthread_cond_wait(A,B) safe_cond_wait((A),(B),__FILE__,__LINE__) -#define pthread_cond_timedwait(A,B,C) safe_cond_timedwait((A),(B),(C),__FILE__,__LINE__) -#define pthread_mutex_trylock(A) pthread_mutex_lock(A) -#define pthread_mutex_t safe_mutex_t -#define safe_mutex_assert_owner(mp) \ - DBUG_ASSERT((mp)->count > 0 && \ - pthread_equal(pthread_self(), (mp)->thread)) -#define safe_mutex_assert_not_owner(mp) \ - DBUG_ASSERT(! (mp)->count || \ - ! pthread_equal(pthread_self(), (mp)->thread)) -#else -#define safe_mutex_assert_owner(mp) -#define safe_mutex_assert_not_owner(mp) -#endif /* SAFE_MUTEX */ - - /* READ-WRITE thread locking */ - -#ifdef HAVE_BROKEN_RWLOCK /* For OpenUnix */ -#undef HAVE_PTHREAD_RWLOCK_RDLOCK -#undef HAVE_RWLOCK_INIT -#undef HAVE_RWLOCK_T -#endif - -#if defined(USE_MUTEX_INSTEAD_OF_RW_LOCKS) -/* use these defs for simple mutex locking */ -#define rw_lock_t pthread_mutex_t -#define my_rwlock_init(A,B) pthread_mutex_init((A),(B)) -#define rw_rdlock(A) pthread_mutex_lock((A)) -#define rw_wrlock(A) pthread_mutex_lock((A)) -#define rw_tryrdlock(A) pthread_mutex_trylock((A)) -#define rw_trywrlock(A) pthread_mutex_trylock((A)) -#define rw_unlock(A) pthread_mutex_unlock((A)) -#define rwlock_destroy(A) pthread_mutex_destroy((A)) -#elif defined(HAVE_PTHREAD_RWLOCK_RDLOCK) -#define rw_lock_t pthread_rwlock_t -#define my_rwlock_init(A,B) pthread_rwlock_init((A),(B)) -#define rw_rdlock(A) pthread_rwlock_rdlock(A) -#define rw_wrlock(A) pthread_rwlock_wrlock(A) -#define rw_tryrdlock(A) pthread_rwlock_tryrdlock((A)) -#define rw_trywrlock(A) pthread_rwlock_trywrlock((A)) -#define rw_unlock(A) pthread_rwlock_unlock(A) -#define rwlock_destroy(A) pthread_rwlock_destroy(A) -#elif defined(HAVE_RWLOCK_INIT) -#ifdef HAVE_RWLOCK_T /* For example Solaris 2.6-> */ -#define rw_lock_t rwlock_t -#endif -#define my_rwlock_init(A,B) rwlock_init((A),USYNC_THREAD,0) -#else -/* Use our own version of read/write locks */ -typedef struct _my_rw_lock_t { - pthread_mutex_t lock; /* lock for structure */ - pthread_cond_t readers; /* waiting readers */ - pthread_cond_t writers; /* waiting writers */ - int state; /* -1:writer,0:free,>0:readers */ - int waiters; /* number of waiting writers */ -} my_rw_lock_t; - -#define rw_lock_t my_rw_lock_t -#define rw_rdlock(A) my_rw_rdlock((A)) -#define rw_wrlock(A) my_rw_wrlock((A)) -#define rw_tryrdlock(A) my_rw_tryrdlock((A)) -#define rw_trywrlock(A) my_rw_trywrlock((A)) -#define rw_unlock(A) my_rw_unlock((A)) -#define rwlock_destroy(A) my_rwlock_destroy((A)) - -extern int my_rwlock_init(my_rw_lock_t *, void *); -extern int my_rwlock_destroy(my_rw_lock_t *); -extern int my_rw_rdlock(my_rw_lock_t *); -extern int my_rw_wrlock(my_rw_lock_t *); -extern int my_rw_unlock(my_rw_lock_t *); -extern int my_rw_tryrdlock(my_rw_lock_t *); -extern int my_rw_trywrlock(my_rw_lock_t *); -#endif /* USE_MUTEX_INSTEAD_OF_RW_LOCKS */ - -#define GETHOSTBYADDR_BUFF_SIZE 2048 - -#ifndef HAVE_THR_SETCONCURRENCY -#define thr_setconcurrency(A) pthread_dummy(0) -#endif -#if !defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && ! defined(pthread_attr_setstacksize) -#define pthread_attr_setstacksize(A,B) pthread_dummy(0) -#endif - -/* Define mutex types, see my_thr_init.c */ -#define MY_MUTEX_INIT_SLOW NULL -#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP -extern pthread_mutexattr_t my_fast_mutexattr; -#define MY_MUTEX_INIT_FAST &my_fast_mutexattr -#else -#define MY_MUTEX_INIT_FAST NULL -#endif -#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP -extern pthread_mutexattr_t my_errorcheck_mutexattr; -#define MY_MUTEX_INIT_ERRCHK &my_errorcheck_mutexattr -#else -#define MY_MUTEX_INIT_ERRCHK NULL -#endif - -extern my_bool my_thread_global_init(void); -extern void my_thread_global_end(void); -extern my_bool my_thread_init(void); -extern void my_thread_end(void); -extern const char *my_thread_name(void); -extern long my_thread_id(void); -extern int pthread_no_free(void *); -extern int pthread_dummy(int); - -/* All thread specific variables are in the following struct */ - -#define THREAD_NAME_SIZE 10 -#ifndef DEFAULT_THREAD_STACK -#if SIZEOF_CHARP > 4 -/* - MySQL can survive with 32K, but some glibc libraries require > 128K stack - To resolve hostnames. Also recursive stored procedures needs stack. -*/ -#define DEFAULT_THREAD_STACK (256*1024L) -#else -#define DEFAULT_THREAD_STACK (192*1024) -#endif -#endif - -struct st_my_thread_var -{ - int thr_errno; - pthread_cond_t suspend; - pthread_mutex_t mutex; - pthread_mutex_t * volatile current_mutex; - pthread_cond_t * volatile current_cond; - pthread_t pthread_self; - long id; - int cmp_length; - int volatile abort; - my_bool init; - struct st_my_thread_var *next,**prev; - void *opt_info; -#ifndef DBUG_OFF - gptr dbug; - char name[THREAD_NAME_SIZE+1]; -#endif -}; - -extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const)); -#define my_thread_var (_my_thread_var()) -#define my_errno my_thread_var->thr_errno -/* - Keep track of shutdown,signal, and main threads so that my_end() will not - report errors with them -*/ -extern pthread_t shutdown_th, main_th, signal_th; - - /* statistics_xxx functions are for not essential statistic */ - -#ifndef thread_safe_increment -#ifdef HAVE_ATOMIC_ADD -#define thread_safe_increment(V,L) atomic_inc((atomic_t*) &V) -#define thread_safe_decrement(V,L) atomic_dec((atomic_t*) &V) -#define thread_safe_add(V,C,L) atomic_add((C),(atomic_t*) &V) -#define thread_safe_sub(V,C,L) atomic_sub((C),(atomic_t*) &V) -#else -#define thread_safe_increment(V,L) \ - (pthread_mutex_lock((L)), (V)++, pthread_mutex_unlock((L))) -#define thread_safe_decrement(V,L) \ - (pthread_mutex_lock((L)), (V)--, pthread_mutex_unlock((L))) -#define thread_safe_add(V,C,L) (pthread_mutex_lock((L)), (V)+=(C), pthread_mutex_unlock((L))) -#define thread_safe_sub(V,C,L) \ - (pthread_mutex_lock((L)), (V)-=(C), pthread_mutex_unlock((L))) -#endif /* HAVE_ATOMIC_ADD */ -#ifdef SAFE_STATISTICS -#define statistic_increment(V,L) thread_safe_increment((V),(L)) -#define statistic_decrement(V,L) thread_safe_decrement((V),(L)) -#define statistic_add(V,C,L) thread_safe_add((V),(C),(L)) -#else -#define statistic_decrement(V,L) (V)-- -#define statistic_increment(V,L) (V)++ -#define statistic_add(V,C,L) (V)+=(C) -#endif /* SAFE_STATISTICS */ -#endif /* thread_safe_increment */ - -#ifdef __cplusplus -} -#endif -#endif /* _my_ptread_h */ diff --git a/src/mysql/my_sys.h b/src/mysql/my_sys.h deleted file mode 100644 index 44fe383bf..000000000 --- a/src/mysql/my_sys.h +++ /dev/null @@ -1,904 +0,0 @@ -/* Copyright (C) 2000-2003 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#ifndef _my_sys_h -#define _my_sys_h -C_MODE_START - -#ifdef HAVE_AIOWAIT -#include /* Used by record-cache */ -typedef struct my_aio_result { - aio_result_t result; - int pending; -} my_aio_result; -#endif - -#ifndef THREAD -extern int NEAR my_errno; /* Last error in mysys */ -#else -#include -#endif - -#ifndef _m_ctype_h -#include /* for CHARSET_INFO */ -#endif - -#include -#include - -#define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curses; mysys_uses_curses=1; } -#define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_no_curses; mysys_uses_curses=0;} -#define MY_INIT(name); { my_progname= name; my_init(); } - -#define ERRMSGSIZE (SC_MAXWIDTH) /* Max length of a error message */ -#define NRERRBUFFS (2) /* Buffers for parameters */ -#define MY_FILE_ERROR ((uint) ~0) - - /* General bitmaps for my_func's */ -#define MY_FFNF 1 /* Fatal if file not found */ -#define MY_FNABP 2 /* Fatal if not all bytes read/writen */ -#define MY_NABP 4 /* Error if not all bytes read/writen */ -#define MY_FAE 8 /* Fatal if any error */ -#define MY_WME 16 /* Write message on error */ -#define MY_WAIT_IF_FULL 32 /* Wait and try again if disk full error */ -#define MY_IGNORE_BADFD 32 /* my_sync: ignore 'bad descriptor' errors */ -#define MY_RAID 64 /* Support for RAID */ -#define MY_FULL_IO 512 /* For my_read - loop intil I/O is complete */ -#define MY_DONT_CHECK_FILESIZE 128 /* Option to init_io_cache() */ -#define MY_LINK_WARNING 32 /* my_redel() gives warning if links */ -#define MY_COPYTIME 64 /* my_redel() copys time */ -#define MY_DELETE_OLD 256 /* my_create_with_symlink() */ -#define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */ -#define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */ -#define MY_REDEL_MAKE_BACKUP 256 -#define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */ -#define MY_DONT_WAIT 64 /* my_lock() don't wait if can't lock */ -#define MY_ZEROFILL 32 /* my_malloc(), fill array with zero */ -#define MY_ALLOW_ZERO_PTR 64 /* my_realloc() ; zero ptr -> malloc */ -#define MY_FREE_ON_ERROR 128 /* my_realloc() ; Free old ptr on error */ -#define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */ -#define MY_THREADSAFE 128 /* pread/pwrite: Don't allow interrupts */ -#define MY_DONT_OVERWRITE_FILE 1024 /* my_copy: Don't overwrite file */ - -#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */ -#define MY_GIVE_INFO 2 /* Give time info about process*/ - -#define ME_HIGHBYTE 8 /* Shift for colours */ -#define ME_NOCUR 1 /* Don't use curses message */ -#define ME_OLDWIN 2 /* Use old window */ -#define ME_BELL 4 /* Ring bell then printing message */ -#define ME_HOLDTANG 8 /* Don't delete last keys */ -#define ME_WAITTOT 16 /* Wait for errtime secs of for a action */ -#define ME_WAITTANG 32 /* Wait for a user action */ -#define ME_NOREFRESH 64 /* Dont refresh screen */ -#define ME_NOINPUT 128 /* Dont use the input libary */ -#define ME_COLOUR1 ((1 << ME_HIGHBYTE)) /* Possibly error-colours */ -#define ME_COLOUR2 ((2 << ME_HIGHBYTE)) -#define ME_COLOUR3 ((3 << ME_HIGHBYTE)) - - /* Bits in last argument to fn_format */ -#define MY_REPLACE_DIR 1 /* replace dir in name with 'dir' */ -#define MY_REPLACE_EXT 2 /* replace extension with 'ext' */ -#define MY_UNPACK_FILENAME 4 /* Unpack name (~ -> home) */ -#define MY_PACK_FILENAME 8 /* Pack name (home -> ~) */ -#define MY_RESOLVE_SYMLINKS 16 /* Resolve all symbolic links */ -#define MY_RETURN_REAL_PATH 32 /* return full path for file */ -#define MY_SAFE_PATH 64 /* Return NULL if too long path */ -#define MY_RELATIVE_PATH 128 /* name is relative to 'dir' */ - - /* My seek flags */ -#define MY_SEEK_SET 0 -#define MY_SEEK_CUR 1 -#define MY_SEEK_END 2 - - /* Some constants */ -#define MY_WAIT_FOR_USER_TO_FIX_PANIC 60 /* in seconds */ -#define MY_WAIT_GIVE_USER_A_MESSAGE 10 /* Every 10 times of prev */ -#define MIN_COMPRESS_LENGTH 50 /* Don't compress small bl. */ -#define DFLT_INIT_HITS 3 - - /* root_alloc flags */ -#define MY_KEEP_PREALLOC 1 -#define MY_MARK_BLOCKS_FREE 2 /* move used to free list and reuse them */ - - /* Internal error numbers (for assembler functions) */ -#define MY_ERRNO_EDOM 33 -#define MY_ERRNO_ERANGE 34 - - /* Bits for get_date timeflag */ -#define GETDATE_DATE_TIME 1 -#define GETDATE_SHORT_DATE 2 -#define GETDATE_HHMMSSTIME 4 -#define GETDATE_GMT 8 -#define GETDATE_FIXEDLENGTH 16 - - /* defines when allocating data */ -#ifdef SAFEMALLOC -#define my_malloc(SZ,FLAG) _mymalloc((SZ), __FILE__, __LINE__, FLAG ) -#define my_malloc_ci(SZ,FLAG) _mymalloc((SZ), sFile, uLine, FLAG ) -#define my_realloc(PTR,SZ,FLAG) _myrealloc((PTR), (SZ), __FILE__, __LINE__, FLAG ) -#define my_checkmalloc() _sanity( __FILE__, __LINE__ ) -#define my_free(PTR,FLAG) _myfree((PTR), __FILE__, __LINE__,FLAG) -#define my_memdup(A,B,C) _my_memdup((A),(B), __FILE__,__LINE__,C) -#define my_strdup(A,C) _my_strdup((A), __FILE__,__LINE__,C) -#define my_strdup_with_length(A,B,C) _my_strdup_with_length((A),(B),__FILE__,__LINE__,C) -#define TRASH(A,B) bfill(A, B, 0x8F) -#define QUICK_SAFEMALLOC sf_malloc_quick=1 -#define NORMAL_SAFEMALLOC sf_malloc_quick=0 -extern uint sf_malloc_prehunc,sf_malloc_endhunc,sf_malloc_quick; -extern ulonglong sf_malloc_mem_limit; - -#define CALLER_INFO_PROTO , const char *sFile, uint uLine -#define CALLER_INFO , __FILE__, __LINE__ -#define ORIG_CALLER_INFO , sFile, uLine -#else -#define my_checkmalloc() -#undef TERMINATE -#define TERMINATE(A) {} -#define QUICK_SAFEMALLOC -#define NORMAL_SAFEMALLOC -extern gptr my_malloc(uint Size,myf MyFlags); -#define my_malloc_ci(SZ,FLAG) my_malloc( SZ, FLAG ) -extern gptr my_realloc(gptr oldpoint,uint Size,myf MyFlags); -extern void my_no_flags_free(gptr ptr); -extern gptr my_memdup(const byte *from,uint length,myf MyFlags); -extern char *my_strdup(const char *from,myf MyFlags); -extern char *my_strdup_with_length(const byte *from, uint length, - myf MyFlags); -/* we do use FG (as a no-op) in below so that a typo on FG is caught */ -#define my_free(PTR,FG) ((void)FG,my_no_flags_free(PTR)) -#define CALLER_INFO_PROTO /* nothing */ -#define CALLER_INFO /* nothing */ -#define ORIG_CALLER_INFO /* nothing */ -#define TRASH(A,B) /* nothing */ -#endif - -#ifdef HAVE_LARGE_PAGES -extern uint my_get_large_page_size(void); -extern gptr my_large_malloc(uint size, myf my_flags); -extern void my_large_free(gptr ptr, myf my_flags); -#else -#define my_get_large_page_size() (0) -#define my_large_malloc(A,B) my_malloc_lock((A),(B)) -#define my_large_free(A,B) my_free_lock((A),(B)) -#endif /* HAVE_LARGE_PAGES */ - -#ifdef HAVE_ALLOCA -#if defined(_AIX) && !defined(__GNUC__) && !defined(_AIX43) -#pragma alloca -#endif /* _AIX */ -#if defined(__MWERKS__) -#undef alloca -#define alloca _alloca -#endif /* __MWERKS__ */ -#if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && ! defined(alloca) -#define alloca __builtin_alloca -#endif /* GNUC */ -#define my_alloca(SZ) alloca((size_t) (SZ)) -#define my_afree(PTR) {} -#else -#define my_alloca(SZ) my_malloc(SZ,MYF(0)) -#define my_afree(PTR) my_free(PTR,MYF(MY_WME)) -#endif /* HAVE_ALLOCA */ - -#ifdef MSDOS -#ifdef __ZTC__ -void * __CDECL halloc(long count,size_t length); -void __CDECL hfree(void *ptr); -#endif -#if defined(USE_HALLOC) -#if defined(_VCM_) || defined(M_IC80386) -#undef USE_HALLOC -#endif -#endif -#ifdef USE_HALLOC -#define malloc(a) halloc((long) (a),1) -#define free(a) hfree(a) -#endif -#endif /* MSDOS */ - -#ifndef errno /* did we already get it? */ -#ifdef HAVE_ERRNO_AS_DEFINE -#include /* errno is a define */ -#else -extern int errno; /* declare errno */ -#endif -#endif /* #ifndef errno */ -extern char NEAR errbuff[NRERRBUFFS][ERRMSGSIZE]; -extern char *home_dir; /* Home directory for user */ -extern const char *my_progname; /* program-name (printed in errors) */ -extern char NEAR curr_dir[]; /* Current directory for user */ -extern int (*error_handler_hook)(uint my_err, const char *str,myf MyFlags); -extern int (*fatal_error_handler_hook)(uint my_err, const char *str, - myf MyFlags); -extern uint my_file_limit; - -#ifdef HAVE_LARGE_PAGES -extern my_bool my_use_large_pages; -extern uint my_large_page_size; -#endif - -/* charsets */ -extern CHARSET_INFO *default_charset_info; -extern CHARSET_INFO *all_charsets[256]; -extern CHARSET_INFO compiled_charsets[]; - -/* statistics */ -extern ulong my_file_opened,my_stream_opened, my_tmp_file_created; -extern uint mysys_usage_id; -extern my_bool my_init_done; - - /* Point to current my_message() */ -extern void (*my_sigtstp_cleanup)(void), - /* Executed before jump to shell */ - (*my_sigtstp_restart)(void), - (*my_abort_hook)(int); - /* Executed when comming from shell */ -extern int NEAR my_umask, /* Default creation mask */ - NEAR my_umask_dir, - NEAR my_recived_signals, /* Signals we have got */ - NEAR my_safe_to_handle_signal, /* Set when allowed to SIGTSTP */ - NEAR my_dont_interrupt; /* call remember_intr when set */ -extern my_bool NEAR mysys_uses_curses, my_use_symdir; -extern ulong sf_malloc_cur_memory, sf_malloc_max_memory; - -extern ulong my_default_record_cache_size; -extern my_bool NEAR my_disable_locking,NEAR my_disable_async_io, - NEAR my_disable_flush_key_blocks, NEAR my_disable_symlinks; -extern char wild_many,wild_one,wild_prefix; -extern const char *charsets_dir; -extern char *defaults_extra_file; -extern const char *defaults_group_suffix; -extern const char *defaults_file; - -extern my_bool timed_mutexes; - -typedef struct wild_file_pack /* Struct to hold info when selecting files */ -{ - uint wilds; /* How many wildcards */ - uint not_pos; /* Start of not-theese-files */ - my_string *wild; /* Pointer to wildcards */ -} WF_PACK; - -enum loglevel { - ERROR_LEVEL, - WARNING_LEVEL, - INFORMATION_LEVEL -}; - -enum cache_type -{ - TYPE_NOT_SET= 0, READ_CACHE, WRITE_CACHE, - SEQ_READ_APPEND /* sequential read or append */, - READ_FIFO, READ_NET,WRITE_NET}; - -enum flush_type -{ - FLUSH_KEEP, FLUSH_RELEASE, FLUSH_IGNORE_CHANGED, FLUSH_FORCE_WRITE -}; - -typedef struct st_record_cache /* Used when cacheing records */ -{ - File file; - int rc_seek,error,inited; - uint rc_length,read_length,reclength; - my_off_t rc_record_pos,end_of_file; - byte *rc_buff,*rc_buff2,*rc_pos,*rc_end,*rc_request_pos; -#ifdef HAVE_AIOWAIT - int use_async_io; - my_aio_result aio_result; -#endif - enum cache_type type; -} RECORD_CACHE; - -enum file_type -{ - UNOPEN = 0, FILE_BY_OPEN, FILE_BY_CREATE, STREAM_BY_FOPEN, STREAM_BY_FDOPEN, - FILE_BY_MKSTEMP, FILE_BY_DUP -}; - -struct st_my_file_info -{ - my_string name; - enum file_type type; -#if defined(THREAD) && !defined(HAVE_PREAD) - pthread_mutex_t mutex; -#endif -}; - -extern struct st_my_file_info *my_file_info; - -typedef struct st_my_tmpdir -{ - char **list; - uint cur, max; -#ifdef THREAD - pthread_mutex_t mutex; -#endif -} MY_TMPDIR; - -typedef struct st_dynamic_array -{ - char *buffer; - uint elements,max_element; - uint alloc_increment; - uint size_of_element; -} DYNAMIC_ARRAY; - -typedef struct st_dynamic_string -{ - char *str; - uint length,max_length,alloc_increment; -} DYNAMIC_STRING; - -struct st_io_cache; -typedef int (*IO_CACHE_CALLBACK)(struct st_io_cache*); - -#ifdef THREAD -typedef struct st_io_cache_share -{ - /* to sync on reads into buffer */ - pthread_mutex_t mutex; - pthread_cond_t cond; - int count, total; - /* actual IO_CACHE that filled the buffer */ - struct st_io_cache *active; -#ifdef NOT_YET_IMPLEMENTED - /* whether the structure should be free'd */ - my_bool alloced; -#endif -} IO_CACHE_SHARE; -#endif - -typedef struct st_io_cache /* Used when cacheing files */ -{ - /* Offset in file corresponding to the first byte of byte* buffer. */ - my_off_t pos_in_file; - /* - The offset of end of file for READ_CACHE and WRITE_CACHE. - For SEQ_READ_APPEND it the maximum of the actual end of file and - the position represented by read_end. - */ - my_off_t end_of_file; - /* Points to current read position in the buffer */ - byte *read_pos; - /* the non-inclusive boundary in the buffer for the currently valid read */ - byte *read_end; - byte *buffer; /* The read buffer */ - /* Used in ASYNC_IO */ - byte *request_pos; - - /* Only used in WRITE caches and in SEQ_READ_APPEND to buffer writes */ - byte *write_buffer; - /* - Only used in SEQ_READ_APPEND, and points to the current read position - in the write buffer. Note that reads in SEQ_READ_APPEND caches can - happen from both read buffer (byte* buffer) and write buffer - (byte* write_buffer). - */ - byte *append_read_pos; - /* Points to current write position in the write buffer */ - byte *write_pos; - /* The non-inclusive boundary of the valid write area */ - byte *write_end; - - /* - Current_pos and current_end are convenience variables used by - my_b_tell() and other routines that need to know the current offset - current_pos points to &write_pos, and current_end to &write_end in a - WRITE_CACHE, and &read_pos and &read_end respectively otherwise - */ - byte **current_pos, **current_end; -#ifdef THREAD - /* - The lock is for append buffer used in SEQ_READ_APPEND cache - need mutex copying from append buffer to read buffer. - */ - pthread_mutex_t append_buffer_lock; - /* - The following is used when several threads are reading the - same file in parallel. They are synchronized on disk - accesses reading the cached part of the file asynchronously. - It should be set to NULL to disable the feature. Only - READ_CACHE mode is supported. - */ - IO_CACHE_SHARE *share; -#endif - /* - A caller will use my_b_read() macro to read from the cache - if the data is already in cache, it will be simply copied with - memcpy() and internal variables will be accordinging updated with - no functions invoked. However, if the data is not fully in the cache, - my_b_read() will call read_function to fetch the data. read_function - must never be invoked directly. - */ - int (*read_function)(struct st_io_cache *,byte *,uint); - /* - Same idea as in the case of read_function, except my_b_write() needs to - be replaced with my_b_append() for a SEQ_READ_APPEND cache - */ - int (*write_function)(struct st_io_cache *,const byte *,uint); - /* - Specifies the type of the cache. Depending on the type of the cache - certain operations might not be available and yield unpredicatable - results. Details to be documented later - */ - enum cache_type type; - /* - Callbacks when the actual read I/O happens. These were added and - are currently used for binary logging of LOAD DATA INFILE - when a - block is read from the file, we create a block create/append event, and - when IO_CACHE is closed, we create an end event. These functions could, - of course be used for other things - */ - IO_CACHE_CALLBACK pre_read; - IO_CACHE_CALLBACK post_read; - IO_CACHE_CALLBACK pre_close; - /* - Counts the number of times, when we were forced to use disk. We use it to - increase the binlog_cache_disk_use status variable. - */ - ulong disk_writes; - void* arg; /* for use by pre/post_read */ - char *file_name; /* if used with 'open_cached_file' */ - char *dir,*prefix; - File file; /* file descriptor */ - /* - seek_not_done is set by my_b_seek() to inform the upcoming read/write - operation that a seek needs to be preformed prior to the actual I/O - error is 0 if the cache operation was successful, -1 if there was a - "hard" error, and the actual number of I/O-ed bytes if the read/write was - partial. - */ - int seek_not_done,error; - /* buffer_length is memory size allocated for buffer or write_buffer */ - uint buffer_length; - /* read_length is the same as buffer_length except when we use async io */ - uint read_length; - myf myflags; /* Flags used to my_read/my_write */ - /* - alloced_buffer is 1 if the buffer was allocated by init_io_cache() and - 0 if it was supplied by the user. - Currently READ_NET is the only one that will use a buffer allocated - somewhere else - */ - my_bool alloced_buffer; -#ifdef HAVE_AIOWAIT - /* - As inidicated by ifdef, this is for async I/O, which is not currently - used (because it's not reliable on all systems) - */ - uint inited; - my_off_t aio_read_pos; - my_aio_result aio_result; -#endif -} IO_CACHE; - -typedef int (*qsort2_cmp)(const void *, const void *, const void *); - - /* defines for mf_iocache */ - - /* Test if buffer is inited */ -#define my_b_clear(info) (info)->buffer=0 -#define my_b_inited(info) (info)->buffer -#define my_b_EOF INT_MIN - -#define my_b_read(info,Buffer,Count) \ - ((info)->read_pos + (Count) <= (info)->read_end ?\ - (memcpy(Buffer,(info)->read_pos,(size_t) (Count)), \ - ((info)->read_pos+=(Count)),0) :\ - (*(info)->read_function)((info),Buffer,Count)) - -#define my_b_write(info,Buffer,Count) \ - ((info)->write_pos + (Count) <=(info)->write_end ?\ - (memcpy((info)->write_pos, (Buffer), (size_t)(Count)),\ - ((info)->write_pos+=(Count)),0) : \ - (*(info)->write_function)((info),(Buffer),(Count))) - -#define my_b_get(info) \ - ((info)->read_pos != (info)->read_end ?\ - ((info)->read_pos++, (int) (uchar) (info)->read_pos[-1]) :\ - _my_b_get(info)) - - /* my_b_write_byte dosn't have any err-check */ -#define my_b_write_byte(info,chr) \ - (((info)->write_pos < (info)->write_end) ?\ - ((*(info)->write_pos++)=(chr)) :\ - (_my_b_write(info,0,0) , ((*(info)->write_pos++)=(chr)))) - -#define my_b_fill_cache(info) \ - (((info)->read_end=(info)->read_pos),(*(info)->read_function)(info,0,0)) - -#define my_b_tell(info) ((info)->pos_in_file + \ - (uint) (*(info)->current_pos - (info)->request_pos)) - -/* tell write offset in the SEQ_APPEND cache */ -my_off_t my_b_append_tell(IO_CACHE* info); -my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */ - -#define my_b_bytes_in_cache(info) (uint) (*(info)->current_end - \ - *(info)->current_pos) - -typedef uint32 ha_checksum; - -/* Define the type of function to be passed to process_default_option_files */ -typedef int (*Process_option_func)(void *ctx, const char *group_name, - const char *option); - -#include - - /* Prototypes for mysys and my_func functions */ - -extern int my_copy(const char *from,const char *to,myf MyFlags); -extern int my_append(const char *from,const char *to,myf MyFlags); -extern int my_delete(const char *name,myf MyFlags); -extern int my_getwd(my_string buf,uint size,myf MyFlags); -extern int my_setwd(const char *dir,myf MyFlags); -extern int my_lock(File fd,int op,my_off_t start, my_off_t length,myf MyFlags); -extern gptr my_once_alloc(uint Size,myf MyFlags); -extern void my_once_free(void); -extern char *my_once_strdup(const char *src,myf myflags); -extern char *my_once_memdup(const char *src, uint len, myf myflags); -extern File my_open(const char *FileName,int Flags,myf MyFlags); -extern File my_register_filename(File fd, const char *FileName, - enum file_type type_of_file, - uint error_message_number, myf MyFlags); -extern File my_create(const char *FileName,int CreateFlags, - int AccsesFlags, myf MyFlags); -extern int my_close(File Filedes,myf MyFlags); -extern File my_dup(File file, myf MyFlags); -extern int my_mkdir(const char *dir, int Flags, myf MyFlags); -extern int my_readlink(char *to, const char *filename, myf MyFlags); -extern int my_realpath(char *to, const char *filename, myf MyFlags); -extern File my_create_with_symlink(const char *linkname, const char *filename, - int createflags, int access_flags, - myf MyFlags); -extern int my_delete_with_symlink(const char *name, myf MyFlags); -extern int my_rename_with_symlink(const char *from,const char *to,myf MyFlags); -extern int my_symlink(const char *content, const char *linkname, myf MyFlags); -extern uint my_read(File Filedes,byte *Buffer,uint Count,myf MyFlags); -extern uint my_pread(File Filedes,byte *Buffer,uint Count,my_off_t offset, - myf MyFlags); -extern int my_rename(const char *from,const char *to,myf MyFlags); -extern my_off_t my_seek(File fd,my_off_t pos,int whence,myf MyFlags); -extern my_off_t my_tell(File fd,myf MyFlags); -extern uint my_write(File Filedes,const byte *Buffer,uint Count, - myf MyFlags); -extern uint my_pwrite(File Filedes,const byte *Buffer,uint Count, - my_off_t offset,myf MyFlags); -extern uint my_fread(FILE *stream,byte *Buffer,uint Count,myf MyFlags); -extern uint my_fwrite(FILE *stream,const byte *Buffer,uint Count, - myf MyFlags); -extern my_off_t my_fseek(FILE *stream,my_off_t pos,int whence,myf MyFlags); -extern my_off_t my_ftell(FILE *stream,myf MyFlags); -extern gptr _mymalloc(uint uSize,const char *sFile, - uint uLine, myf MyFlag); -extern gptr _myrealloc(gptr pPtr,uint uSize,const char *sFile, - uint uLine, myf MyFlag); -extern gptr my_multi_malloc _VARARGS((myf MyFlags, ...)); -extern void _myfree(gptr pPtr,const char *sFile,uint uLine, myf MyFlag); -extern int _sanity(const char *sFile,unsigned int uLine); -extern gptr _my_memdup(const byte *from,uint length, - const char *sFile, uint uLine,myf MyFlag); -extern my_string _my_strdup(const char *from, const char *sFile, uint uLine, - myf MyFlag); -extern char *_my_strdup_with_length(const byte *from, uint length, - const char *sFile, uint uLine, - myf MyFlag); - -#ifdef __WIN__ -extern int my_access(const char *path, int amode); -extern File my_sopen(const char *path, int oflag, int shflag, int pmode); -#else -#define my_access access -#endif -extern int check_if_legal_filename(const char *path); - -#ifndef TERMINATE -extern void TERMINATE(FILE *file); -#endif -extern void init_glob_errs(void); -extern FILE *my_fopen(const char *FileName,int Flags,myf MyFlags); -extern FILE *my_fdopen(File Filedes,const char *name, int Flags,myf MyFlags); -extern int my_fclose(FILE *fd,myf MyFlags); -extern int my_chsize(File fd,my_off_t newlength, int filler, myf MyFlags); -extern int my_sync(File fd, myf my_flags); -extern int my_error _VARARGS((int nr,myf MyFlags, ...)); -extern int my_printf_error _VARARGS((uint my_err, const char *format, - myf MyFlags, ...) - __attribute__ ((format (printf, 2, 4)))); -extern int my_error_register(const char **errmsgs, int first, int last); -extern const char **my_error_unregister(int first, int last); -extern int my_message(uint my_err, const char *str,myf MyFlags); -extern int my_message_no_curses(uint my_err, const char *str,myf MyFlags); -extern int my_message_curses(uint my_err, const char *str,myf MyFlags); -extern my_bool my_init(void); -extern void my_end(int infoflag); -extern int my_redel(const char *from, const char *to, int MyFlags); -extern int my_copystat(const char *from, const char *to, int MyFlags); -extern my_string my_filename(File fd); - -#ifndef THREAD -extern void dont_break(void); -extern void allow_break(void); -#else -#define dont_break() -#define allow_break() -#endif - -extern my_bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist); -extern char *my_tmpdir(MY_TMPDIR *tmpdir); -extern void free_tmpdir(MY_TMPDIR *tmpdir); - -extern void my_remember_signal(int signal_number,sig_handler (*func)(int)); -extern uint dirname_part(my_string to,const char *name); -extern uint dirname_length(const char *name); -#define base_name(A) (A+dirname_length(A)) -extern int test_if_hard_path(const char *dir_name); -extern my_bool has_path(const char *name); -extern char *convert_dirname(char *to, const char *from, const char *from_end); -extern void to_unix_path(my_string name); -extern my_string fn_ext(const char *name); -extern my_string fn_same(my_string toname,const char *name,int flag); -extern my_string fn_format(my_string to,const char *name,const char *dir, - const char *form, uint flag); -extern size_s strlength(const char *str); -extern void pack_dirname(my_string to,const char *from); -extern uint unpack_dirname(my_string to,const char *from); -extern uint cleanup_dirname(my_string to,const char *from); -extern uint system_filename(my_string to,const char *from); -extern uint unpack_filename(my_string to,const char *from); -extern my_string intern_filename(my_string to,const char *from); -extern my_string directory_file_name(my_string dst, const char *src); -extern int pack_filename(my_string to, const char *name, size_s max_length); -extern my_string my_path(my_string to,const char *progname, - const char *own_pathname_part); -extern my_string my_load_path(my_string to, const char *path, - const char *own_path_prefix); -extern int wild_compare(const char *str,const char *wildstr,pbool str_is_pattern); -extern WF_PACK *wf_comp(my_string str); -extern int wf_test(struct wild_file_pack *wf_pack,const char *name); -extern void wf_end(struct wild_file_pack *buffer); -extern size_s strip_sp(my_string str); -extern void get_date(my_string to,int timeflag,time_t use_time); -extern void soundex(CHARSET_INFO *, my_string out_pntr, my_string in_pntr,pbool remove_garbage); -extern int init_record_cache(RECORD_CACHE *info,uint cachesize,File file, - uint reclength,enum cache_type type, - pbool use_async_io); -extern int read_cache_record(RECORD_CACHE *info,byte *to); -extern int end_record_cache(RECORD_CACHE *info); -extern int write_cache_record(RECORD_CACHE *info,my_off_t filepos, - const byte *record,uint length); -extern int flush_write_cache(RECORD_CACHE *info); -extern long my_clock(void); -extern sig_handler sigtstp_handler(int signal_number); -extern void handle_recived_signals(void); - -extern sig_handler my_set_alarm_variable(int signo); -extern void my_string_ptr_sort(void *base,uint items,size_s size); -extern void radixsort_for_str_ptr(uchar* base[], uint number_of_elements, - size_s size_of_element,uchar *buffer[]); -extern qsort_t qsort2(void *base_ptr, size_t total_elems, size_t size, - qsort2_cmp cmp, void *cmp_argument); -extern qsort2_cmp get_ptr_compare(uint); -void my_store_ptr(byte *buff, uint pack_length, my_off_t pos); -my_off_t my_get_ptr(byte *ptr, uint pack_length); -extern int init_io_cache(IO_CACHE *info,File file,uint cachesize, - enum cache_type type,my_off_t seek_offset, - pbool use_async_io, myf cache_myflags); -extern my_bool reinit_io_cache(IO_CACHE *info,enum cache_type type, - my_off_t seek_offset,pbool use_async_io, - pbool clear_cache); -extern void setup_io_cache(IO_CACHE* info); -extern int _my_b_read(IO_CACHE *info,byte *Buffer,uint Count); -#ifdef THREAD -extern int _my_b_read_r(IO_CACHE *info,byte *Buffer,uint Count); -extern void init_io_cache_share(IO_CACHE *info, - IO_CACHE_SHARE *s, uint num_threads); -extern void remove_io_thread(IO_CACHE *info); -#endif -extern int _my_b_seq_read(IO_CACHE *info,byte *Buffer,uint Count); -extern int _my_b_net_read(IO_CACHE *info,byte *Buffer,uint Count); -extern int _my_b_get(IO_CACHE *info); -extern int _my_b_async_read(IO_CACHE *info,byte *Buffer,uint Count); -extern int _my_b_write(IO_CACHE *info,const byte *Buffer,uint Count); -extern int my_b_append(IO_CACHE *info,const byte *Buffer,uint Count); -extern int my_b_safe_write(IO_CACHE *info,const byte *Buffer,uint Count); - -extern int my_block_write(IO_CACHE *info, const byte *Buffer, - uint Count, my_off_t pos); -extern int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock); - -#define flush_io_cache(info) my_b_flush_io_cache((info),1) - -extern int end_io_cache(IO_CACHE *info); -extern uint my_b_fill(IO_CACHE *info); -extern void my_b_seek(IO_CACHE *info,my_off_t pos); -extern uint my_b_gets(IO_CACHE *info, char *to, uint max_length); -extern my_off_t my_b_filelength(IO_CACHE *info); -extern uint my_b_printf(IO_CACHE *info, const char* fmt, ...); -extern uint my_b_vprintf(IO_CACHE *info, const char* fmt, va_list ap); -extern my_bool open_cached_file(IO_CACHE *cache,const char *dir, - const char *prefix, uint cache_size, - myf cache_myflags); -extern my_bool real_open_cached_file(IO_CACHE *cache); -extern void close_cached_file(IO_CACHE *cache); -File create_temp_file(char *to, const char *dir, const char *pfx, - int mode, myf MyFlags); -#define my_init_dynamic_array(A,B,C,D) init_dynamic_array(A,B,C,D CALLER_INFO) -#define my_init_dynamic_array_ci(A,B,C,D) init_dynamic_array(A,B,C,D ORIG_CALLER_INFO) -extern my_bool init_dynamic_array(DYNAMIC_ARRAY *array,uint element_size, - uint init_alloc,uint alloc_increment - CALLER_INFO_PROTO); -extern my_bool insert_dynamic(DYNAMIC_ARRAY *array,gptr element); -extern byte *alloc_dynamic(DYNAMIC_ARRAY *array); -extern byte *pop_dynamic(DYNAMIC_ARRAY*); -extern my_bool set_dynamic(DYNAMIC_ARRAY *array,gptr element,uint array_index); -extern void get_dynamic(DYNAMIC_ARRAY *array,gptr element,uint array_index); -extern void delete_dynamic(DYNAMIC_ARRAY *array); -extern void delete_dynamic_element(DYNAMIC_ARRAY *array, uint array_index); -extern void freeze_size(DYNAMIC_ARRAY *array); -#define dynamic_array_ptr(array,array_index) ((array)->buffer+(array_index)*(array)->size_of_element) -#define dynamic_element(array,array_index,type) ((type)((array)->buffer) +(array_index)) -#define push_dynamic(A,B) insert_dynamic(A,B) -#define reset_dynamic(array) ((array)->elements= 0) - -extern my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str, - uint init_alloc,uint alloc_increment); -extern my_bool dynstr_append(DYNAMIC_STRING *str, const char *append); -my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, - uint length); -extern my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str); -extern my_bool dynstr_realloc(DYNAMIC_STRING *str, ulong additional_size); -extern void dynstr_free(DYNAMIC_STRING *str); -#ifdef HAVE_MLOCK -extern byte *my_malloc_lock(uint length,myf flags); -extern void my_free_lock(byte *ptr,myf flags); -#else -#define my_malloc_lock(A,B) my_malloc((A),(B)) -#define my_free_lock(A,B) my_free((A),(B)) -#endif -#define alloc_root_inited(A) ((A)->min_malloc != 0) -#define ALLOC_ROOT_MIN_BLOCK_SIZE (MALLOC_OVERHEAD + sizeof(USED_MEM) + 8) -#define clear_alloc_root(A) do { (A)->free= (A)->used= (A)->pre_alloc= 0; (A)->min_malloc=0;} while(0) -extern void init_alloc_root(MEM_ROOT *mem_root, uint block_size, - uint pre_alloc_size); -extern gptr alloc_root(MEM_ROOT *mem_root,unsigned int Size); -extern gptr multi_alloc_root(MEM_ROOT *mem_root, ...); -extern void free_root(MEM_ROOT *root, myf MyFLAGS); -extern void set_prealloc_root(MEM_ROOT *root, char *ptr); -extern void reset_root_defaults(MEM_ROOT *mem_root, uint block_size, - uint prealloc_size); -extern char *strdup_root(MEM_ROOT *root,const char *str); -extern char *strmake_root(MEM_ROOT *root,const char *str,uint len); -extern char *memdup_root(MEM_ROOT *root,const char *str,uint len); -extern int get_defaults_options(int argc, char **argv, - char **defaults, char **extra_defaults, - char **group_suffix); -extern int load_defaults(const char *conf_file, const char **groups, - int *argc, char ***argv); -extern int modify_defaults_file(const char *file_location, const char *option, - const char *option_value, - const char *section_name, int remove_option); -extern int my_search_option_files(const char *conf_file, int *argc, - char ***argv, uint *args_used, - Process_option_func func, void *func_ctx); -extern void free_defaults(char **argv); -extern void my_print_default_files(const char *conf_file); -extern void print_defaults(const char *conf_file, const char **groups); -extern my_bool my_compress(byte *, ulong *, ulong *); -extern my_bool my_uncompress(byte *, ulong *, ulong *); -extern byte *my_compress_alloc(const byte *packet, ulong *len, ulong *complen); -extern ha_checksum my_checksum(ha_checksum crc, const byte *mem, uint count); -extern uint my_bit_log2(ulong value); -extern uint my_count_bits(ulonglong v); -extern uint my_count_bits_ushort(ushort v); -extern void my_sleep(ulong m_seconds); -extern ulong crc32(ulong crc, const uchar *buf, uint len); -extern uint my_set_max_open_files(uint files); -void my_free_open_file_info(void); - -ulonglong my_getsystime(void); -my_bool my_gethwaddr(uchar *to); - -#ifdef HAVE_SYS_MMAN_H -#include - -#ifndef MAP_NOSYNC -#define MAP_NOSYNC 0 -#endif - -#define my_mmap(a,b,c,d,e,f) mmap(a,b,c,d,e,f) -#ifdef HAVE_GETPAGESIZE -#define my_getpagesize() getpagesize() -#else -/* qnx ? */ -#define my_getpagesize() 8192 -#endif -#define my_munmap(a,b) munmap((a),(b)) - -#else -/* not a complete set of mmap() flags, but only those that nesessary */ -#define PROT_READ 1 -#define PROT_WRITE 2 -#define MAP_SHARED 0x0001 -#define MAP_NOSYNC 0x0800 -#define MAP_FAILED ((void *)-1) -#define MS_SYNC 0x0000 - -#ifndef __NETWARE__ -#define HAVE_MMAP -#endif - -int my_getpagesize(void); -void *my_mmap(void *, size_t, int, int, int, my_off_t); -int my_munmap(void *, size_t); -#endif - -int my_msync(int, void *, size_t, int); - -/* character sets */ -extern uint get_charset_number(const char *cs_name, uint cs_flags); -extern uint get_collation_number(const char *name); -extern const char *get_charset_name(uint cs_number); - -extern CHARSET_INFO *get_charset(uint cs_number, myf flags); -extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags); -extern CHARSET_INFO *get_charset_by_csname(const char *cs_name, - uint cs_flags, myf my_flags); -extern void free_charsets(void); -extern char *get_charsets_dir(char *buf); -extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2); -extern my_bool init_compiled_charsets(myf flags); -extern void add_compiled_collation(CHARSET_INFO *cs); -extern ulong escape_string_for_mysql(CHARSET_INFO *charset_info, - char *to, ulong to_length, - const char *from, ulong length); -#ifdef __WIN__ -#define BACKSLASH_MBTAIL -/* File system character set */ -extern CHARSET_INFO *fs_character_set(void); -#endif -extern ulong escape_quotes_for_mysql(CHARSET_INFO *charset_info, - char *to, ulong to_length, - const char *from, ulong length); - -extern void thd_increment_bytes_sent(ulong length); -extern void thd_increment_bytes_received(ulong length); -extern void thd_increment_net_big_packet_count(ulong length); - -#ifdef __WIN__ -extern my_bool have_tcpip; /* Is set if tcpip is used */ - -/* implemented in my_windac.c */ - -int my_security_attr_create(SECURITY_ATTRIBUTES **psa, const char **perror, - DWORD owner_rights, DWORD everybody_rights); - -void my_security_attr_free(SECURITY_ATTRIBUTES *sa); - -/* implemented in my_conio.c */ -char* my_cgets(char *string, unsigned long clen, unsigned long* plen); - -#endif -#ifdef __NETWARE__ -void netware_reg_user(const char *ip, const char *user, - const char *application); -#endif - -C_MODE_END -#include "raid.h" -#endif /* _my_sys_h */ diff --git a/src/mysql/mysql-5.0.20 b/src/mysql/mysql-5.0.20 deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/mysql/mysql.h b/src/mysql/mysql.h deleted file mode 100644 index 925a45253..000000000 --- a/src/mysql/mysql.h +++ /dev/null @@ -1,847 +0,0 @@ -/* Copyright (C) 2000-2003 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#ifndef _mysql_h -#define _mysql_h - -#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */ -#undef WIN -#undef _WIN -#undef _WIN32 -#undef _WIN64 -#undef __WIN__ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _global_h /* If not standard header */ -#include -#ifdef __LCC__ -#include /* For windows */ -#endif -typedef char my_bool; -#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__) -#define __WIN__ -#endif -#if !defined(__WIN__) -#define STDCALL -#else -#define STDCALL __stdcall -#endif -typedef char * gptr; - -#ifndef my_socket_defined -#ifdef __WIN__ -#define my_socket SOCKET -#else -typedef int my_socket; -#endif /* __WIN__ */ -#endif /* my_socket_defined */ -#endif /* _global_h */ - -#include "mysql_com.h" -#include "mysql_time.h" -#include "mysql_version.h" -#include "typelib.h" - -#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */ - -extern unsigned int mysql_port; -extern char *mysql_unix_port; - -#define CLIENT_NET_READ_TIMEOUT 365*24*3600 /* Timeout on read */ -#define CLIENT_NET_WRITE_TIMEOUT 365*24*3600 /* Timeout on write */ - -#ifdef __NETWARE__ -#pragma pack(push, 8) /* 8 byte alignment */ -#endif - -#define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) -#define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) -#define IS_BLOB(n) ((n) & BLOB_FLAG) -#define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR || (t) == FIELD_TYPE_NEWDECIMAL) -#define IS_NUM_FIELD(f) ((f)->flags & NUM_FLAG) -#define INTERNAL_NUM_FIELD(f) (((f)->type <= FIELD_TYPE_INT24 && ((f)->type != FIELD_TYPE_TIMESTAMP || (f)->length == 14 || (f)->length == 8)) || (f)->type == FIELD_TYPE_YEAR) - - -typedef struct st_mysql_field { - char *name; /* Name of column */ - char *org_name; /* Original column name, if an alias */ - char *table; /* Table of column if column was a field */ - char *org_table; /* Org table name, if table was an alias */ - char *db; /* Database for table */ - char *catalog; /* Catalog for table */ - char *def; /* Default value (set by mysql_list_fields) */ - unsigned long length; /* Width of column (create length) */ - unsigned long max_length; /* Max width for selected set */ - unsigned int name_length; - unsigned int org_name_length; - unsigned int table_length; - unsigned int org_table_length; - unsigned int db_length; - unsigned int catalog_length; - unsigned int def_length; - unsigned int flags; /* Div flags */ - unsigned int decimals; /* Number of decimals in field */ - unsigned int charsetnr; /* Character set */ - enum enum_field_types type; /* Type of field. See mysql_com.h for types */ -} MYSQL_FIELD; - -typedef char **MYSQL_ROW; /* return data as array of strings */ -typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */ - -#ifndef _global_h -#if defined(NO_CLIENT_LONG_LONG) -typedef unsigned long my_ulonglong; -#elif defined (__WIN__) -typedef unsigned __int64 my_ulonglong; -#else -typedef unsigned long long my_ulonglong; -#endif -#endif - -#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0) - -/* backward compatibility define - to be removed eventually */ -#define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED - -typedef struct st_mysql_rows { - struct st_mysql_rows *next; /* list of rows */ - MYSQL_ROW data; - unsigned long length; -} MYSQL_ROWS; - -typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */ - -#include "my_alloc.h" - -typedef struct embedded_query_result EMBEDDED_QUERY_RESULT; -typedef struct st_mysql_data { - my_ulonglong rows; - unsigned int fields; - MYSQL_ROWS *data; - MEM_ROOT alloc; - /* extra info for embedded library */ - struct embedded_query_result *embedded_info; -} MYSQL_DATA; - -enum mysql_option -{ - MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE, - MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, - MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE, - MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT, - MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_USE_RESULT, - MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION, - MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH, - MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT -}; - -struct st_mysql_options { - unsigned int connect_timeout, read_timeout, write_timeout; - unsigned int port, protocol; - unsigned long client_flag; - char *host,*user,*password,*unix_socket,*db; - struct st_dynamic_array *init_commands; - char *my_cnf_file,*my_cnf_group, *charset_dir, *charset_name; - char *ssl_key; /* PEM key file */ - char *ssl_cert; /* PEM cert file */ - char *ssl_ca; /* PEM CA file */ - char *ssl_capath; /* PEM directory of CA-s? */ - char *ssl_cipher; /* cipher to use */ - char *shared_memory_base_name; - unsigned long max_allowed_packet; - my_bool use_ssl; /* if to use SSL or not */ - my_bool compress,named_pipe; - /* - On connect, find out the replication role of the server, and - establish connections to all the peers - */ - my_bool rpl_probe; - /* - Each call to mysql_real_query() will parse it to tell if it is a read - or a write, and direct it to the slave or the master - */ - my_bool rpl_parse; - /* - If set, never read from a master, only from slave, when doing - a read that is replication-aware - */ - my_bool no_master_reads; -#if !defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY) - my_bool separate_thread; -#endif - enum mysql_option methods_to_use; - char *client_ip; - /* Refuse client connecting to server if it uses old (pre-4.1.1) protocol */ - my_bool secure_auth; - /* 0 - never report, 1 - always report (default) */ - my_bool report_data_truncation; - - /* function pointers for local infile support */ - int (*local_infile_init)(void **, const char *, void *); - int (*local_infile_read)(void *, char *, unsigned int); - void (*local_infile_end)(void *); - int (*local_infile_error)(void *, char *, unsigned int); - void *local_infile_userdata; -}; - -enum mysql_status -{ - MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,MYSQL_STATUS_USE_RESULT -}; - -enum mysql_protocol_type -{ - MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET, - MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY -}; -/* - There are three types of queries - the ones that have to go to - the master, the ones that go to a slave, and the adminstrative - type which must happen on the pivot connectioin -*/ -enum mysql_rpl_type -{ - MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN -}; - -typedef struct character_set -{ - unsigned int number; /* character set number */ - unsigned int state; /* character set state */ - const char *csname; /* collation name */ - const char *name; /* character set name */ - const char *comment; /* comment */ - const char *dir; /* character set directory */ - unsigned int mbminlen; /* min. length for multibyte strings */ - unsigned int mbmaxlen; /* max. length for multibyte strings */ -} MY_CHARSET_INFO; - -struct st_mysql_methods; - -typedef struct st_mysql -{ - NET net; /* Communication parameters */ - gptr connector_fd; /* ConnectorFd for SSL */ - char *host,*user,*passwd,*unix_socket,*server_version,*host_info,*info; - char *db; - struct charset_info_st *charset; - MYSQL_FIELD *fields; - MEM_ROOT field_alloc; - my_ulonglong affected_rows; - my_ulonglong insert_id; /* id if insert on table with NEXTNR */ - my_ulonglong extra_info; /* Not used */ - unsigned long thread_id; /* Id for connection in server */ - unsigned long packet_length; - unsigned int port; - unsigned long client_flag,server_capabilities; - unsigned int protocol_version; - unsigned int field_count; - unsigned int server_status; - unsigned int server_language; - unsigned int warning_count; - struct st_mysql_options options; - enum mysql_status status; - my_bool free_me; /* If free in mysql_close */ - my_bool reconnect; /* set to 1 if automatic reconnect */ - - /* session-wide random string */ - char scramble[SCRAMBLE_LENGTH+1]; - - /* - Set if this is the original connection, not a master or a slave we have - added though mysql_rpl_probe() or mysql_set_master()/ mysql_add_slave() - */ - my_bool rpl_pivot; - /* - Pointers to the master, and the next slave connections, points to - itself if lone connection. - */ - struct st_mysql* master, *next_slave; - - struct st_mysql* last_used_slave; /* needed for round-robin slave pick */ - /* needed for send/read/store/use result to work correctly with replication */ - struct st_mysql* last_used_con; - - LIST *stmts; /* list of all statements */ - const struct st_mysql_methods *methods; - void *thd; - /* - Points to boolean flag in MYSQL_RES or MYSQL_STMT. We set this flag - from mysql_stmt_close if close had to cancel result set of this object. - */ - my_bool *unbuffered_fetch_owner; -#if defined(EMBEDDED_LIBRARY) || defined(EMBEDDED_LIBRARY_COMPATIBLE) || MYSQL_VERSION_ID >= 50100 - /* needed for embedded server - no net buffer to store the 'info' */ - char *info_buffer; -#endif -} MYSQL; - -typedef struct st_mysql_res { - my_ulonglong row_count; - MYSQL_FIELD *fields; - MYSQL_DATA *data; - MYSQL_ROWS *data_cursor; - unsigned long *lengths; /* column lengths of current row */ - MYSQL *handle; /* for unbuffered reads */ - MEM_ROOT field_alloc; - unsigned int field_count, current_field; - MYSQL_ROW row; /* If unbuffered read */ - MYSQL_ROW current_row; /* buffer to current row */ - my_bool eof; /* Used by mysql_fetch_row */ - /* mysql_stmt_close() had to cancel this result */ - my_bool unbuffered_fetch_cancelled; - const struct st_mysql_methods *methods; -} MYSQL_RES; - -#define MAX_MYSQL_MANAGER_ERR 256 -#define MAX_MYSQL_MANAGER_MSG 256 - -#define MANAGER_OK 200 -#define MANAGER_INFO 250 -#define MANAGER_ACCESS 401 -#define MANAGER_CLIENT_ERR 450 -#define MANAGER_INTERNAL_ERR 500 - -#if !defined(MYSQL_SERVER) && !defined(MYSQL_CLIENT) -#define MYSQL_CLIENT -#endif - - -typedef struct st_mysql_manager -{ - NET net; - char *host,*user,*passwd; - unsigned int port; - my_bool free_me; - my_bool eof; - int cmd_status; - int last_errno; - char* net_buf,*net_buf_pos,*net_data_end; - int net_buf_size; - char last_error[MAX_MYSQL_MANAGER_ERR]; -} MYSQL_MANAGER; - -typedef struct st_mysql_parameters -{ - unsigned long *p_max_allowed_packet; - unsigned long *p_net_buffer_length; -} MYSQL_PARAMETERS; - -#if !defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY) -#define max_allowed_packet (*mysql_get_parameters()->p_max_allowed_packet) -#define net_buffer_length (*mysql_get_parameters()->p_net_buffer_length) -#endif - -/* - Set up and bring down the server; to ensure that applications will - work when linked against either the standard client library or the - embedded server library, these functions should be called. -*/ -int STDCALL mysql_server_init(int argc, char **argv, char **groups); -void STDCALL mysql_server_end(void); -/* - mysql_server_init/end need to be called when using libmysqld or - libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so - you don't need to call it explicitely; but you need to call - mysql_server_end() to free memory). The names are a bit misleading - (mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general - names which suit well whether you're using libmysqld or libmysqlclient. We - intend to promote these aliases over the mysql_server* ones. -*/ -#define mysql_library_init mysql_server_init -#define mysql_library_end mysql_server_end - -MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void); - -/* - Set up and bring down a thread; these function should be called - for each thread in an application which opens at least one MySQL - connection. All uses of the connection(s) should be between these - function calls. -*/ -my_bool STDCALL mysql_thread_init(void); -void STDCALL mysql_thread_end(void); - -/* - Functions to get information from the MYSQL and MYSQL_RES structures - Should definitely be used if one uses shared libraries. -*/ - -my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res); -unsigned int STDCALL mysql_num_fields(MYSQL_RES *res); -my_bool STDCALL mysql_eof(MYSQL_RES *res); -MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES *res, - unsigned int fieldnr); -MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res); -MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res); -MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res); - -unsigned int STDCALL mysql_field_count(MYSQL *mysql); -my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql); -my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql); -unsigned int STDCALL mysql_errno(MYSQL *mysql); -const char * STDCALL mysql_error(MYSQL *mysql); -const char *STDCALL mysql_sqlstate(MYSQL *mysql); -unsigned int STDCALL mysql_warning_count(MYSQL *mysql); -const char * STDCALL mysql_info(MYSQL *mysql); -unsigned long STDCALL mysql_thread_id(MYSQL *mysql); -const char * STDCALL mysql_character_set_name(MYSQL *mysql); -int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname); - -MYSQL * STDCALL mysql_init(MYSQL *mysql); -my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, - const char *cert, const char *ca, - const char *capath, const char *cipher); -my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, - const char *passwd, const char *db); -MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, - const char *user, - const char *passwd, - const char *db, - unsigned int port, - const char *unix_socket, - unsigned long clientflag); -int STDCALL mysql_select_db(MYSQL *mysql, const char *db); -int STDCALL mysql_query(MYSQL *mysql, const char *q); -int STDCALL mysql_send_query(MYSQL *mysql, const char *q, - unsigned long length); -int STDCALL mysql_real_query(MYSQL *mysql, const char *q, - unsigned long length); -MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql); -MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql); - -/* perform query on master */ -my_bool STDCALL mysql_master_query(MYSQL *mysql, const char *q, - unsigned long length); -my_bool STDCALL mysql_master_send_query(MYSQL *mysql, const char *q, - unsigned long length); -/* perform query on slave */ -my_bool STDCALL mysql_slave_query(MYSQL *mysql, const char *q, - unsigned long length); -my_bool STDCALL mysql_slave_send_query(MYSQL *mysql, const char *q, - unsigned long length); -void STDCALL mysql_get_character_set_info(MYSQL *mysql, - MY_CHARSET_INFO *charset); - -/* local infile support */ - -#define LOCAL_INFILE_ERROR_LEN 512 - -void -mysql_set_local_infile_handler(MYSQL *mysql, - int (*local_infile_init)(void **, const char *, - void *), - int (*local_infile_read)(void *, char *, - unsigned int), - void (*local_infile_end)(void *), - int (*local_infile_error)(void *, char*, - unsigned int), - void *); - -void -mysql_set_local_infile_default(MYSQL *mysql); - - -/* - enable/disable parsing of all queries to decide if they go on master or - slave -*/ -void STDCALL mysql_enable_rpl_parse(MYSQL* mysql); -void STDCALL mysql_disable_rpl_parse(MYSQL* mysql); -/* get the value of the parse flag */ -int STDCALL mysql_rpl_parse_enabled(MYSQL* mysql); - -/* enable/disable reads from master */ -void STDCALL mysql_enable_reads_from_master(MYSQL* mysql); -void STDCALL mysql_disable_reads_from_master(MYSQL* mysql); -/* get the value of the master read flag */ -my_bool STDCALL mysql_reads_from_master_enabled(MYSQL* mysql); - -enum mysql_rpl_type STDCALL mysql_rpl_query_type(const char* q, int len); - -/* discover the master and its slaves */ -my_bool STDCALL mysql_rpl_probe(MYSQL* mysql); - -/* set the master, close/free the old one, if it is not a pivot */ -int STDCALL mysql_set_master(MYSQL* mysql, const char* host, - unsigned int port, - const char* user, - const char* passwd); -int STDCALL mysql_add_slave(MYSQL* mysql, const char* host, - unsigned int port, - const char* user, - const char* passwd); - -int STDCALL mysql_shutdown(MYSQL *mysql, - enum mysql_enum_shutdown_level - shutdown_level); -int STDCALL mysql_dump_debug_info(MYSQL *mysql); -int STDCALL mysql_refresh(MYSQL *mysql, - unsigned int refresh_options); -int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid); -int STDCALL mysql_set_server_option(MYSQL *mysql, - enum enum_mysql_set_option - option); -int STDCALL mysql_ping(MYSQL *mysql); -const char * STDCALL mysql_stat(MYSQL *mysql); -const char * STDCALL mysql_get_server_info(MYSQL *mysql); -const char * STDCALL mysql_get_client_info(void); -unsigned long STDCALL mysql_get_client_version(void); -const char * STDCALL mysql_get_host_info(MYSQL *mysql); -unsigned long STDCALL mysql_get_server_version(MYSQL *mysql); -unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql); -MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild); -MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild); -MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql); -int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option, - const char *arg); -void STDCALL mysql_free_result(MYSQL_RES *result); -void STDCALL mysql_data_seek(MYSQL_RES *result, - my_ulonglong offset); -MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result, - MYSQL_ROW_OFFSET offset); -MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result, - MYSQL_FIELD_OFFSET offset); -MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result); -unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result); -MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result); -MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table, - const char *wild); -unsigned long STDCALL mysql_escape_string(char *to,const char *from, - unsigned long from_length); -unsigned long STDCALL mysql_hex_string(char *to,const char *from, - unsigned long from_length); -unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql, - char *to,const char *from, - unsigned long length); -void STDCALL mysql_debug(const char *debug); -char * STDCALL mysql_odbc_escape_string(MYSQL *mysql, - char *to, - unsigned long to_length, - const char *from, - unsigned long from_length, - void *param, - char * - (*extend_buffer) - (void *, char *to, - unsigned long *length)); -void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name); -unsigned int STDCALL mysql_thread_safe(void); -my_bool STDCALL mysql_embedded(void); -MYSQL_MANAGER* STDCALL mysql_manager_init(MYSQL_MANAGER* con); -MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, - const char* host, - const char* user, - const char* passwd, - unsigned int port); -void STDCALL mysql_manager_close(MYSQL_MANAGER* con); -int STDCALL mysql_manager_command(MYSQL_MANAGER* con, - const char* cmd, int cmd_len); -int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con, - char* res_buf, - int res_buf_size); -my_bool STDCALL mysql_read_query_result(MYSQL *mysql); - - -/* - The following definitions are added for the enhanced - client-server protocol -*/ - -/* statement state */ -enum enum_mysql_stmt_state -{ - MYSQL_STMT_INIT_DONE= 1, MYSQL_STMT_PREPARE_DONE, MYSQL_STMT_EXECUTE_DONE, - MYSQL_STMT_FETCH_DONE -}; - - -/* - This structure is used to define bind information, and - internally by the client library. - Public members with their descriptions are listed below - (conventionally `On input' refers to the binds given to - mysql_stmt_bind_param, `On output' refers to the binds given - to mysql_stmt_bind_result): - - buffer_type - One of the MYSQL_* types, used to describe - the host language type of buffer. - On output: if column type is different from - buffer_type, column value is automatically converted - to buffer_type before it is stored in the buffer. - buffer - On input: points to the buffer with input data. - On output: points to the buffer capable to store - output data. - The type of memory pointed by buffer must correspond - to buffer_type. See the correspondence table in - the comment to mysql_stmt_bind_param. - - The two above members are mandatory for any kind of bind. - - buffer_length - the length of the buffer. You don't have to set - it for any fixed length buffer: float, double, - int, etc. It must be set however for variable-length - types, such as BLOBs or STRINGs. - - length - On input: in case when lengths of input values - are different for each execute, you can set this to - point at a variable containining value length. This - way the value length can be different in each execute. - If length is not NULL, buffer_length is not used. - Note, length can even point at buffer_length if - you keep bind structures around while fetching: - this way you can change buffer_length before - each execution, everything will work ok. - On output: if length is set, mysql_stmt_fetch will - write column length into it. - - is_null - On input: points to a boolean variable that should - be set to TRUE for NULL values. - This member is useful only if your data may be - NULL in some but not all cases. - If your data is never NULL, is_null should be set to 0. - If your data is always NULL, set buffer_type - to MYSQL_TYPE_NULL, and is_null will not be used. - - is_unsigned - On input: used to signify that values provided for one - of numeric types are unsigned. - On output describes signedness of the output buffer. - If, taking into account is_unsigned flag, column data - is out of range of the output buffer, data for this column - is regarded truncated. Note that this has no correspondence - to the sign of result set column, if you need to find it out - use mysql_stmt_result_metadata. - error - where to write a truncation error if it is present. - possible error value is: - 0 no truncation - 1 value is out of range or buffer is too small - - Please note that MYSQL_BIND also has internals members. -*/ - -typedef struct st_mysql_bind -{ - unsigned long *length; /* output length pointer */ - my_bool *is_null; /* Pointer to null indicator */ - void *buffer; /* buffer to get/put data */ - /* set this if you want to track data truncations happened during fetch */ - my_bool *error; - enum enum_field_types buffer_type; /* buffer type */ - /* output buffer length, must be set when fetching str/binary */ - unsigned long buffer_length; - unsigned char *row_ptr; /* for the current data position */ - unsigned long offset; /* offset position for char/binary fetch */ - unsigned long length_value; /* Used if length is 0 */ - unsigned int param_number; /* For null count and error messages */ - unsigned int pack_length; /* Internal length for packed data */ - my_bool error_value; /* used if error is 0 */ - my_bool is_unsigned; /* set if integer type is unsigned */ - my_bool long_data_used; /* If used with mysql_send_long_data */ - my_bool is_null_value; /* Used if is_null is 0 */ - void (*store_param_func)(NET *net, struct st_mysql_bind *param); - void (*fetch_result)(struct st_mysql_bind *, MYSQL_FIELD *, - unsigned char **row); - void (*skip_result)(struct st_mysql_bind *, MYSQL_FIELD *, - unsigned char **row); -} MYSQL_BIND; - - -/* statement handler */ -typedef struct st_mysql_stmt -{ - MEM_ROOT mem_root; /* root allocations */ - LIST list; /* list to keep track of all stmts */ - MYSQL *mysql; /* connection handle */ - MYSQL_BIND *params; /* input parameters */ - MYSQL_BIND *bind; /* output parameters */ - MYSQL_FIELD *fields; /* result set metadata */ - MYSQL_DATA result; /* cached result set */ - MYSQL_ROWS *data_cursor; /* current row in cached result */ - /* copy of mysql->affected_rows after statement execution */ - my_ulonglong affected_rows; - my_ulonglong insert_id; /* copy of mysql->insert_id */ - /* - mysql_stmt_fetch() calls this function to fetch one row (it's different - for buffered, unbuffered and cursor fetch). - */ - int (*read_row_func)(struct st_mysql_stmt *stmt, - unsigned char **row); - unsigned long stmt_id; /* Id for prepared statement */ - unsigned long flags; /* i.e. type of cursor to open */ - unsigned long prefetch_rows; /* number of rows per one COM_FETCH */ - /* - Copied from mysql->server_status after execute/fetch to know - server-side cursor status for this statement. - */ - unsigned int server_status; - unsigned int last_errno; /* error code */ - unsigned int param_count; /* input parameter count */ - unsigned int field_count; /* number of columns in result set */ - enum enum_mysql_stmt_state state; /* statement state */ - char last_error[MYSQL_ERRMSG_SIZE]; /* error message */ - char sqlstate[SQLSTATE_LENGTH+1]; - /* Types of input parameters should be sent to server */ - my_bool send_types_to_server; - my_bool bind_param_done; /* input buffers were supplied */ - unsigned char bind_result_done; /* output buffers were supplied */ - /* mysql_stmt_close() had to cancel this result */ - my_bool unbuffered_fetch_cancelled; - /* - Is set to true if we need to calculate field->max_length for - metadata fields when doing mysql_stmt_store_result. - */ - my_bool update_max_length; -} MYSQL_STMT; - -enum enum_stmt_attr_type -{ - /* - When doing mysql_stmt_store_result calculate max_length attribute - of statement metadata. This is to be consistent with the old API, - where this was done automatically. - In the new API we do that only by request because it slows down - mysql_stmt_store_result sufficiently. - */ - STMT_ATTR_UPDATE_MAX_LENGTH, - /* - unsigned long with combination of cursor flags (read only, for update, - etc) - */ - STMT_ATTR_CURSOR_TYPE, - /* - Amount of rows to retrieve from server per one fetch if using cursors. - Accepts unsigned long attribute in the range 1 - ulong_max - */ - STMT_ATTR_PREFETCH_ROWS -}; - - -typedef struct st_mysql_methods -{ - my_bool (*read_query_result)(MYSQL *mysql); - my_bool (*advanced_command)(MYSQL *mysql, - enum enum_server_command command, - const char *header, - unsigned long header_length, - const char *arg, - unsigned long arg_length, - my_bool skip_check); - MYSQL_DATA *(*read_rows)(MYSQL *mysql,MYSQL_FIELD *mysql_fields, - unsigned int fields); - MYSQL_RES * (*use_result)(MYSQL *mysql); - void (*fetch_lengths)(unsigned long *to, - MYSQL_ROW column, unsigned int field_count); - void (*flush_use_result)(MYSQL *mysql); -#if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) - MYSQL_FIELD * (*list_fields)(MYSQL *mysql); - my_bool (*read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt); - int (*stmt_execute)(MYSQL_STMT *stmt); - int (*read_binary_rows)(MYSQL_STMT *stmt); - int (*unbuffered_fetch)(MYSQL *mysql, char **row); - void (*free_embedded_thd)(MYSQL *mysql); - const char *(*read_statistics)(MYSQL *mysql); - my_bool (*next_result)(MYSQL *mysql); - int (*read_change_user_result)(MYSQL *mysql, char *buff, const char *passwd); - int (*read_rows_from_cursor)(MYSQL_STMT *stmt); -#endif -} MYSQL_METHODS; - - -MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql); -int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, - unsigned long length); -int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt); -int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt); -int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind, - unsigned int column, - unsigned long offset); -int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt); -unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT * stmt); -my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt, - enum enum_stmt_attr_type attr_type, - const void *attr); -my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, - enum enum_stmt_attr_type attr_type, - void *attr); -my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT * stmt, MYSQL_BIND * bnd); -my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT * stmt, MYSQL_BIND * bnd); -my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt); -my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt); -my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt); -my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, - unsigned int param_number, - const char *data, - unsigned long length); -MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt); -MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt); -unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT * stmt); -const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt); -const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT * stmt); -MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT *stmt, - MYSQL_ROW_OFFSET offset); -MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_tell(MYSQL_STMT *stmt); -void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong offset); -my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt); -my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt); -my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt); -unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt); - -my_bool STDCALL mysql_commit(MYSQL * mysql); -my_bool STDCALL mysql_rollback(MYSQL * mysql); -my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode); -my_bool STDCALL mysql_more_results(MYSQL *mysql); -int STDCALL mysql_next_result(MYSQL *mysql); -void STDCALL mysql_close(MYSQL *sock); - - -/* status return codes */ -#define MYSQL_NO_DATA 100 -#define MYSQL_DATA_TRUNCATED 101 - -#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) - -#ifdef USE_OLD_FUNCTIONS -MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host, - const char *user, const char *passwd); -int STDCALL mysql_create_db(MYSQL *mysql, const char *DB); -int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB); -#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) -#endif -#define HAVE_MYSQL_REAL_CONNECT - -/* - The following functions are mainly exported because of mysqlbinlog; - They are not for general usage -*/ - -#define simple_command(mysql, command, arg, length, skip_check) \ - (*(mysql)->methods->advanced_command)(mysql, command, \ - NullS, 0, arg, length, skip_check) -unsigned long net_safe_read(MYSQL* mysql); - -#ifdef __NETWARE__ -#pragma pack(pop) /* restore alignment */ -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _mysql_h */ diff --git a/src/mysql/mysql_com.h b/src/mysql/mysql_com.h deleted file mode 100644 index ec1c13379..000000000 --- a/src/mysql/mysql_com.h +++ /dev/null @@ -1,452 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -/* -** Common definition between mysql server & client -*/ - -#ifndef _mysql_com_h -#define _mysql_com_h - -#define NAME_LEN 64 /* Field/table name length */ -#define HOSTNAME_LENGTH 60 -#define USERNAME_LENGTH 16 -#define SERVER_VERSION_LENGTH 60 -#define SQLSTATE_LENGTH 5 - -/* - USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain - username and hostname parts of the user identifier with trailing zero in - MySQL standard format: - user_name_part@host_name_part\0 -*/ -#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2 - -#define LOCAL_HOST "localhost" -#define LOCAL_HOST_NAMEDPIPE "." - - -#if defined(__WIN__) && !defined( _CUSTOMCONFIG_) -#define MYSQL_NAMEDPIPE "MySQL" -#define MYSQL_SERVICENAME "MySQL" -#endif /* __WIN__ */ - -/* - You should add new commands to the end of this list, otherwise old - servers won't be able to handle them as 'unsupported'. -*/ - -enum enum_server_command -{ - COM_SLEEP, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST, - COM_CREATE_DB, COM_DROP_DB, COM_REFRESH, COM_SHUTDOWN, COM_STATISTICS, - COM_PROCESS_INFO, COM_CONNECT, COM_PROCESS_KILL, COM_DEBUG, COM_PING, - COM_TIME, COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP, - COM_TABLE_DUMP, COM_CONNECT_OUT, COM_REGISTER_SLAVE, - COM_STMT_PREPARE, COM_STMT_EXECUTE, COM_STMT_SEND_LONG_DATA, COM_STMT_CLOSE, - COM_STMT_RESET, COM_SET_OPTION, COM_STMT_FETCH, - /* don't forget to update const char *command_name[] in sql_parse.cc */ - - /* Must be last */ - COM_END -}; - - -/* - Length of random string sent by server on handshake; this is also length of - obfuscated password, recieved from client -*/ -#define SCRAMBLE_LENGTH 20 -#define SCRAMBLE_LENGTH_323 8 -/* length of password stored in the db: new passwords are preceeded with '*' */ -#define SCRAMBLED_PASSWORD_CHAR_LENGTH (SCRAMBLE_LENGTH*2+1) -#define SCRAMBLED_PASSWORD_CHAR_LENGTH_323 (SCRAMBLE_LENGTH_323*2) - - -#define NOT_NULL_FLAG 1 /* Field can't be NULL */ -#define PRI_KEY_FLAG 2 /* Field is part of a primary key */ -#define UNIQUE_KEY_FLAG 4 /* Field is part of a unique key */ -#define MULTIPLE_KEY_FLAG 8 /* Field is part of a key */ -#define BLOB_FLAG 16 /* Field is a blob */ -#define UNSIGNED_FLAG 32 /* Field is unsigned */ -#define ZEROFILL_FLAG 64 /* Field is zerofill */ -#define BINARY_FLAG 128 /* Field is binary */ - -/* The following are only sent to new clients */ -#define ENUM_FLAG 256 /* field is an enum */ -#define AUTO_INCREMENT_FLAG 512 /* field is a autoincrement field */ -#define TIMESTAMP_FLAG 1024 /* Field is a timestamp */ -#define SET_FLAG 2048 /* field is a set */ -#define NO_DEFAULT_VALUE_FLAG 4096 /* Field doesn't have default value */ -#define NUM_FLAG 32768 /* Field is num (for clients) */ -#define PART_KEY_FLAG 16384 /* Intern; Part of some key */ -#define GROUP_FLAG 32768 /* Intern: Group field */ -#define UNIQUE_FLAG 65536 /* Intern: Used by sql_yacc */ -#define BINCMP_FLAG 131072 /* Intern: Used by sql_yacc */ - -#define REFRESH_GRANT 1 /* Refresh grant tables */ -#define REFRESH_LOG 2 /* Start on new log file */ -#define REFRESH_TABLES 4 /* close all tables */ -#define REFRESH_HOSTS 8 /* Flush host cache */ -#define REFRESH_STATUS 16 /* Flush status variables */ -#define REFRESH_THREADS 32 /* Flush thread cache */ -#define REFRESH_SLAVE 64 /* Reset master info and restart slave - thread */ -#define REFRESH_MASTER 128 /* Remove all bin logs in the index - and truncate the index */ - -/* The following can't be set with mysql_refresh() */ -#define REFRESH_READ_LOCK 16384 /* Lock tables for read */ -#define REFRESH_FAST 32768 /* Intern flag */ - -/* RESET (remove all queries) from query cache */ -#define REFRESH_QUERY_CACHE 65536 -#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */ -#define REFRESH_DES_KEY_FILE 0x40000L -#define REFRESH_USER_RESOURCES 0x80000L - -#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */ -#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */ -#define CLIENT_LONG_FLAG 4 /* Get all column flags */ -#define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */ -#define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */ -#define CLIENT_COMPRESS 32 /* Can use compression protocol */ -#define CLIENT_ODBC 64 /* Odbc client */ -#define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */ -#define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */ -#define CLIENT_PROTOCOL_41 512 /* New 4.1 protocol */ -#define CLIENT_INTERACTIVE 1024 /* This is an interactive client */ -#define CLIENT_SSL 2048 /* Switch to SSL after handshake */ -#define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ -#define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ -#define CLIENT_RESERVED 16384 /* Old flag for 4.1 protocol */ -#define CLIENT_SECURE_CONNECTION 32768 /* New 4.1 authentication */ -#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */ -#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */ -#define CLIENT_REMEMBER_OPTIONS (((ulong) 1) << 31) - -#define SERVER_STATUS_IN_TRANS 1 /* Transaction has started */ -#define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ -#define SERVER_STATUS_MORE_RESULTS 4 /* More results on server */ -#define SERVER_MORE_RESULTS_EXISTS 8 /* Multi query - next query exists */ -#define SERVER_QUERY_NO_GOOD_INDEX_USED 16 -#define SERVER_QUERY_NO_INDEX_USED 32 -/* - The server was able to fulfill the clients request and opened a - read-only non-scrollable cursor for a query. This flag comes - in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands. -*/ -#define SERVER_STATUS_CURSOR_EXISTS 64 -/* - This flag is sent when a read-only cursor is exhausted, in reply to - COM_STMT_FETCH command. -*/ -#define SERVER_STATUS_LAST_ROW_SENT 128 -#define SERVER_STATUS_DB_DROPPED 256 /* A database was dropped */ -#define SERVER_STATUS_NO_BACKSLASH_ESCAPES 512 - -#define MYSQL_ERRMSG_SIZE 512 -#define NET_READ_TIMEOUT 30 /* Timeout on read */ -#define NET_WRITE_TIMEOUT 60 /* Timeout on write */ -#define NET_WAIT_TIMEOUT 8*60*60 /* Wait for new query */ - -#define ONLY_KILL_QUERY 1 - -struct st_vio; /* Only C */ -typedef struct st_vio Vio; - -#define MAX_TINYINT_WIDTH 3 /* Max width for a TINY w.o. sign */ -#define MAX_SMALLINT_WIDTH 5 /* Max width for a SHORT w.o. sign */ -#define MAX_MEDIUMINT_WIDTH 8 /* Max width for a INT24 w.o. sign */ -#define MAX_INT_WIDTH 10 /* Max width for a LONG w.o. sign */ -#define MAX_BIGINT_WIDTH 20 /* Max width for a LONGLONG */ -#define MAX_CHAR_WIDTH 255 /* Max length for a CHAR colum */ -#define MAX_BLOB_WIDTH 8192 /* Default width for blob */ - -typedef struct st_net { -#if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY) - Vio* vio; - unsigned char *buff,*buff_end,*write_pos,*read_pos; - my_socket fd; /* For Perl DBI/dbd */ - unsigned long max_packet,max_packet_size; - unsigned int pkt_nr,compress_pkt_nr; - unsigned int write_timeout, read_timeout, retry_count; - int fcntl; - my_bool compress; - /* - The following variable is set if we are doing several queries in one - command ( as in LOAD TABLE ... FROM MASTER ), - and do not want to confuse the client with OK at the wrong time - */ - unsigned long remain_in_buf,length, buf_length, where_b; - unsigned int *return_status; - unsigned char reading_or_writing; - char save_char; - my_bool no_send_ok; /* For SPs and other things that do multiple stmts */ - my_bool no_send_eof; /* For SPs' first version read-only cursors */ - /* - Set if OK packet is already sent, and we do not need to send error - messages - */ - my_bool no_send_error; - /* - Pointer to query object in query cache, do not equal NULL (0) for - queries in cache that have not stored its results yet - */ -#endif - char last_error[MYSQL_ERRMSG_SIZE], sqlstate[SQLSTATE_LENGTH+1]; - unsigned int last_errno; - unsigned char error; - gptr query_cache_query; - my_bool report_error; /* We should report error (we have unreported error) */ - my_bool return_errno; -} NET; - -#define packet_error (~(unsigned long) 0) - -enum enum_field_types { MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY, - MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG, - MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, - MYSQL_TYPE_NULL, MYSQL_TYPE_TIMESTAMP, - MYSQL_TYPE_LONGLONG,MYSQL_TYPE_INT24, - MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, - MYSQL_TYPE_DATETIME, MYSQL_TYPE_YEAR, - MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, - MYSQL_TYPE_BIT, - MYSQL_TYPE_NEWDECIMAL=246, - MYSQL_TYPE_ENUM=247, - MYSQL_TYPE_SET=248, - MYSQL_TYPE_TINY_BLOB=249, - MYSQL_TYPE_MEDIUM_BLOB=250, - MYSQL_TYPE_LONG_BLOB=251, - MYSQL_TYPE_BLOB=252, - MYSQL_TYPE_VAR_STRING=253, - MYSQL_TYPE_STRING=254, - MYSQL_TYPE_GEOMETRY=255 - -}; - -/* For backward compatibility */ -#define CLIENT_MULTI_QUERIES CLIENT_MULTI_STATEMENTS -#define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL -#define FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL -#define FIELD_TYPE_TINY MYSQL_TYPE_TINY -#define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT -#define FIELD_TYPE_LONG MYSQL_TYPE_LONG -#define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT -#define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE -#define FIELD_TYPE_NULL MYSQL_TYPE_NULL -#define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP -#define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG -#define FIELD_TYPE_INT24 MYSQL_TYPE_INT24 -#define FIELD_TYPE_DATE MYSQL_TYPE_DATE -#define FIELD_TYPE_TIME MYSQL_TYPE_TIME -#define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME -#define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR -#define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE -#define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM -#define FIELD_TYPE_SET MYSQL_TYPE_SET -#define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB -#define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB -#define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB -#define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB -#define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING -#define FIELD_TYPE_STRING MYSQL_TYPE_STRING -#define FIELD_TYPE_CHAR MYSQL_TYPE_TINY -#define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM -#define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY -#define FIELD_TYPE_BIT MYSQL_TYPE_BIT - - -/* Shutdown/kill enums and constants */ - -/* Bits for THD::killable. */ -#define MYSQL_SHUTDOWN_KILLABLE_CONNECT (unsigned char)(1 << 0) -#define MYSQL_SHUTDOWN_KILLABLE_TRANS (unsigned char)(1 << 1) -#define MYSQL_SHUTDOWN_KILLABLE_LOCK_TABLE (unsigned char)(1 << 2) -#define MYSQL_SHUTDOWN_KILLABLE_UPDATE (unsigned char)(1 << 3) - -enum mysql_enum_shutdown_level { - /* - We want levels to be in growing order of hardness (because we use number - comparisons). Note that DEFAULT does not respect the growing property, but - it's ok. - */ - SHUTDOWN_DEFAULT = 0, - /* wait for existing connections to finish */ - SHUTDOWN_WAIT_CONNECTIONS= MYSQL_SHUTDOWN_KILLABLE_CONNECT, - /* wait for existing trans to finish */ - SHUTDOWN_WAIT_TRANSACTIONS= MYSQL_SHUTDOWN_KILLABLE_TRANS, - /* wait for existing updates to finish (=> no partial MyISAM update) */ - SHUTDOWN_WAIT_UPDATES= MYSQL_SHUTDOWN_KILLABLE_UPDATE, - /* flush InnoDB buffers and other storage engines' buffers*/ - SHUTDOWN_WAIT_ALL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1), - /* don't flush InnoDB buffers, flush other storage engines' buffers*/ - SHUTDOWN_WAIT_CRITICAL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1) + 1, - /* Now the 2 levels of the KILL command */ -#if MYSQL_VERSION_ID >= 50000 - KILL_QUERY= 254, -#endif - KILL_CONNECTION= 255 -}; - - -enum enum_cursor_type -{ - CURSOR_TYPE_NO_CURSOR= 0, - CURSOR_TYPE_READ_ONLY= 1, - CURSOR_TYPE_FOR_UPDATE= 2, - CURSOR_TYPE_SCROLLABLE= 4 -}; - - -/* options for mysql_set_option */ -enum enum_mysql_set_option -{ - MYSQL_OPTION_MULTI_STATEMENTS_ON, - MYSQL_OPTION_MULTI_STATEMENTS_OFF -}; - -#define net_new_transaction(net) ((net)->pkt_nr=0) - -#ifdef __cplusplus -extern "C" { -#endif - -my_bool my_net_init(NET *net, Vio* vio); -void my_net_local_init(NET *net); -void net_end(NET *net); -void net_clear(NET *net); -my_bool net_realloc(NET *net, unsigned long length); -my_bool net_flush(NET *net); -my_bool my_net_write(NET *net,const char *packet,unsigned long len); -my_bool net_write_command(NET *net,unsigned char command, - const char *header, unsigned long head_len, - const char *packet, unsigned long len); -int net_real_write(NET *net,const char *packet,unsigned long len); -unsigned long my_net_read(NET *net); - -/* - The following function is not meant for normal usage - Currently it's used internally by manager.c -*/ -struct sockaddr; -int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen, - unsigned int timeout); - -struct rand_struct { - unsigned long seed1,seed2,max_value; - double max_value_dbl; -}; - -#ifdef __cplusplus -} -#endif - - /* The following is for user defined functions */ - -enum Item_result {STRING_RESULT=0, REAL_RESULT, INT_RESULT, ROW_RESULT, - DECIMAL_RESULT}; - -typedef struct st_udf_args -{ - unsigned int arg_count; /* Number of arguments */ - enum Item_result *arg_type; /* Pointer to item_results */ - char **args; /* Pointer to argument */ - unsigned long *lengths; /* Length of string arguments */ - char *maybe_null; /* Set to 1 for all maybe_null args */ - char **attributes; /* Pointer to attribute name */ - unsigned long *attribute_lengths; /* Length of attribute arguments */ -} UDF_ARGS; - - /* This holds information about the result */ - -typedef struct st_udf_init -{ - my_bool maybe_null; /* 1 if function can return NULL */ - unsigned int decimals; /* for real functions */ - unsigned long max_length; /* For string functions */ - char *ptr; /* free pointer for function data */ - my_bool const_item; /* 0 if result is independent of arguments */ -} UDF_INIT; - - /* Constants when using compression */ -#define NET_HEADER_SIZE 4 /* standard header size */ -#define COMP_HEADER_SIZE 3 /* compression header extra size */ - - /* Prototypes to password functions */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - These functions are used for authentication by client and server and - implemented in sql/password.c -*/ - -void randominit(struct rand_struct *, unsigned long seed1, - unsigned long seed2); -double my_rnd(struct rand_struct *); -void create_random_string(char *to, unsigned int length, struct rand_struct *rand_st); - -void hash_password(unsigned long *to, const char *password, unsigned int password_len); -void make_scrambled_password_323(char *to, const char *password); -void scramble_323(char *to, const char *message, const char *password); -my_bool check_scramble_323(const char *, const char *message, - unsigned long *salt); -void get_salt_from_password_323(unsigned long *res, const char *password); -void make_password_from_salt_323(char *to, const unsigned long *salt); - -void make_scrambled_password(char *to, const char *password); -void scramble(char *to, const char *message, const char *password); -my_bool check_scramble(const char *reply, const char *message, - const unsigned char *hash_stage2); -void get_salt_from_password(unsigned char *res, const char *password); -void make_password_from_salt(char *to, const unsigned char *hash_stage2); -char *octet2hex(char *to, const char *str, unsigned int len); - -/* end of password.c */ - -char *get_tty_password(char *opt_message); -const char *mysql_errno_to_sqlstate(unsigned int mysql_errno); - -/* Some other useful functions */ - -my_bool my_init(void); -extern int modify_defaults_file(const char *file_location, const char *option, - const char *option_value, - const char *section_name, int remove_option); -int load_defaults(const char *conf_file, const char **groups, - int *argc, char ***argv); -my_bool my_thread_init(void); -void my_thread_end(void); - -#ifdef _global_h -ulong STDCALL net_field_length(uchar **packet); -my_ulonglong net_field_length_ll(uchar **packet); -char *net_store_length(char *pkg, ulonglong length); -#endif - -#ifdef __cplusplus -} -#endif - -#define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */ -#define MYSQL_STMT_HEADER 4 -#define MYSQL_LONG_DATA_HEADER 6 - -#endif diff --git a/src/mysql/mysql_time.h b/src/mysql/mysql_time.h deleted file mode 100644 index 5f4fc12c0..000000000 --- a/src/mysql/mysql_time.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright (C) 2004 MySQL AB & MySQL Finland AB & TCX DataKonsult AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#ifndef _mysql_time_h_ -#define _mysql_time_h_ - -/* - Time declarations shared between the server and client API: - you should not add anything to this header unless it's used - (and hence should be visible) in mysql.h. - If you're looking for a place to add new time-related declaration, - it's most likely my_time.h. See also "C API Handling of Date - and Time Values" chapter in documentation. -*/ - -enum enum_mysql_timestamp_type -{ - MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1, - MYSQL_TIMESTAMP_DATE= 0, MYSQL_TIMESTAMP_DATETIME= 1, MYSQL_TIMESTAMP_TIME= 2 -}; - - -/* - Structure which is used to represent datetime values inside MySQL. - - We assume that values in this structure are normalized, i.e. year <= 9999, - month <= 12, day <= 31, hour <= 23, hour <= 59, hour <= 59. Many functions - in server such as my_system_gmt_sec() or make_time() family of functions - rely on this (actually now usage of make_*() family relies on a bit weaker - restriction). Also functions that produce MYSQL_TIME as result ensure this. - There is one exception to this rule though if this structure holds time - value (time_type == MYSQL_TIMESTAMP_TIME) days and hour member can hold - bigger values. -*/ -typedef struct st_mysql_time -{ - unsigned int year, month, day, hour, minute, second; - unsigned long second_part; - my_bool neg; - enum enum_mysql_timestamp_type time_type; -} MYSQL_TIME; - -#endif /* _mysql_time_h_ */ diff --git a/src/mysql/mysql_version.h b/src/mysql/mysql_version.h deleted file mode 100644 index 473a19987..000000000 --- a/src/mysql/mysql_version.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright Abandoned 1996, 1999, 2001 MySQL AB - This file is public domain and comes with NO WARRANTY of any kind */ - -/* Version numbers for protocol & mysqld */ - -#ifndef _mysql_version_h -#define _mysql_version_h -#ifdef _CUSTOMCONFIG_ -#include -#else -#define PROTOCOL_VERSION 10 -#define MYSQL_SERVER_VERSION "5.0.20" -#define MYSQL_BASE_VERSION "mysqld-5.0" -#define MYSQL_SERVER_SUFFIX_DEF "-community-max-nt" -#define FRM_VER 6 -#define MYSQL_VERSION_ID 50020 -#define MYSQL_PORT 3306 -#define MYSQL_UNIX_ADDR "/tmp/mysql.sock" -#define MYSQL_CONFIG_NAME "my" -#define MYSQL_COMPILATION_COMMENT "MySQL Community Edition - Max (GPL)" - -/* mysqld compile time options */ -#endif /* _CUSTOMCONFIG_ */ - -#ifndef LICENSE -#define LICENSE GPL -#endif /* LICENSE */ - -#endif /* _mysql_version_h */ diff --git a/src/mysql/raid.h b/src/mysql/raid.h deleted file mode 100644 index c840afcba..000000000 --- a/src/mysql/raid.h +++ /dev/null @@ -1,159 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -/* Parser needs these defines always, even if USE_RAID is not defined */ -#define RAID_TYPE_0 1 /* Striping */ -#define RAID_TYPE_x 2 /* Some new modes */ -#define RAID_TYPE_y 3 - -#define RAID_DEFAULT_CHUNKS 4 -#define RAID_DEFAULT_CHUNKSIZE 256*1024 /* 256kB */ - -C_MODE_START -#define my_raid_type(raid_type) raid_type_string[(int)(raid_type)] -extern const char *raid_type_string[]; -C_MODE_END - -#ifdef DONT_USE_RAID -#undef USE_RAID -#endif -#if defined(USE_RAID) - -#include "my_dir.h" - -/* Trap all occurences of my_...() in source and use our wrapper around this function */ - -#ifdef MAP_TO_USE_RAID -#define my_read(A,B,C,D) my_raid_read(A,B,C,D) -#define my_write(A,B,C,D) my_raid_write(A,B,C,D) -#define my_pwrite(A,B,C,D,E) my_raid_pwrite(A,B,C,D,E) -#define my_pread(A,B,C,D,E) my_raid_pread(A,B,C,D,E) -#define my_chsize(A,B,C,D) my_raid_chsize(A,B,C,D) -#define my_close(A,B) my_raid_close(A,B) -#define my_tell(A,B) my_raid_tell(A,B) -#define my_seek(A,B,C,D) my_raid_seek(A,B,C,D) -#define my_lock(A,B,C,D,E) my_raid_lock(A,B,C,D,E) -#define my_fstat(A,B,C) my_raid_fstat(A,B,C) -#endif /* MAP_TO_USE_RAID */ - -#ifdef __cplusplus -extern "C" { -#endif - - void init_raid(void); - void end_raid(void); - - bool is_raid(File fd); - File my_raid_create(const char *FileName, int CreateFlags, int access_flags, - uint raid_type, uint raid_chunks, ulong raid_chunksize, - myf MyFlags); - File my_raid_open(const char *FileName, int Flags, - uint raid_type, uint raid_chunks, ulong raid_chunksize, - myf MyFlags); - int my_raid_rename(const char *from, const char *to, uint raid_chunks, - myf MyFlags); - int my_raid_delete(const char *from, uint raid_chunks, myf MyFlags); - int my_raid_redel(const char *old_name, const char *new_name, - uint raid_chunks, myf MyFlags); - - my_off_t my_raid_seek(File fd, my_off_t pos, int whence, myf MyFlags); - my_off_t my_raid_tell(File fd, myf MyFlags); - - uint my_raid_write(File,const byte *Buffer, uint Count, myf MyFlags); - uint my_raid_read(File Filedes, byte *Buffer, uint Count, myf MyFlags); - - uint my_raid_pread(File Filedes, byte *Buffer, uint Count, my_off_t offset, - myf MyFlags); - uint my_raid_pwrite(int Filedes, const byte *Buffer, uint Count, - my_off_t offset, myf MyFlags); - - int my_raid_lock(File,int locktype, my_off_t start, my_off_t length, - myf MyFlags); - int my_raid_chsize(File fd, my_off_t newlength, int filler, myf MyFlags); - int my_raid_close(File, myf MyFlags); - int my_raid_fstat(int Filedes, struct stat *buf, myf MyFlags); - -#ifdef __cplusplus -} - -#ifdef USE_PRAGMA_INTERFACE -#pragma interface /* gcc class implementation */ -#endif - -class RaidName { - public: - RaidName(const char *FileName); - ~RaidName(); - bool IsRaid(); - int Rename(const char * from, const char * to, myf MyFlags); - private: - uint _raid_type; /* RAID_TYPE_0 or RAID_TYPE_1 or RAID_TYPE_5 */ - uint _raid_chunks; /* 1..n */ - ulong _raid_chunksize; /* 1..n in bytes */ -}; - -class RaidFd { - public: - RaidFd(uint raid_type, uint raid_chunks , ulong raid_chunksize); - ~RaidFd(); - File Create(const char *FileName, int CreateFlags, int access_flags, - myf MyFlags); - File Open(const char *FileName, int Flags, myf MyFlags); - my_off_t Seek(my_off_t pos,int whence,myf MyFlags); - my_off_t Tell(myf MyFlags); - int Write(const byte *Buffer, uint Count, myf MyFlags); - int Read(const byte *Buffer, uint Count, myf MyFlags); - int Lock(int locktype, my_off_t start, my_off_t length, myf MyFlags); - int Chsize(File fd, my_off_t newlength, int filler, myf MyFlags); - int Fstat(int fd, MY_STAT *stat_area, myf MyFlags ); - int Close(myf MyFlags); - static bool IsRaid(File fd); - static DYNAMIC_ARRAY _raid_map; /* Map of RaidFD* */ - private: - - uint _raid_type; /* RAID_TYPE_0 or RAID_TYPE_1 or RAID_TYPE_5 */ - uint _raid_chunks; /* 1..n */ - ulong _raid_chunksize; /* 1..n in bytes */ - - ulong _total_block; /* We are operating with block no x (can be 0..many). */ - uint _this_block; /* can be 0.._raid_chunks */ - uint _remaining_bytes; /* Maximum bytes that can be written in this block */ - - my_off_t _position; - my_off_t _size; /* Cached file size for faster seek(SEEK_END) */ - File _fd; - File *_fd_vector; /* Array of File */ - off_t *_seek_vector; /* Array of cached seek positions */ - - inline void Calculate() - { - DBUG_ENTER("RaidFd::_Calculate"); - DBUG_PRINT("info",("_position: %lu _raid_chunksize: %d, _size: %lu", - (ulong) _position, _raid_chunksize, (ulong) _size)); - - _total_block = (ulong) (_position / _raid_chunksize); - _this_block = _total_block % _raid_chunks; /* can be 0.._raid_chunks */ - _remaining_bytes = (uint) (_raid_chunksize - - (_position - _total_block * _raid_chunksize)); - DBUG_PRINT("info", - ("_total_block: %d this_block: %d _remaining_bytes:%d", - _total_block, _this_block, _remaining_bytes)); - DBUG_VOID_RETURN; - } -}; - -#endif /* __cplusplus */ -#endif /* USE_RAID */ diff --git a/src/mysql/typelib.h b/src/mysql/typelib.h deleted file mode 100644 index 4d6a90ad5..000000000 --- a/src/mysql/typelib.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - - -#ifndef _typelib_h -#define _typelib_h - -typedef struct st_typelib { /* Different types saved here */ - unsigned int count; /* How many types */ - const char *name; /* Name of typelib */ - const char **type_names; - unsigned int *type_lengths; -} TYPELIB; - -extern int find_type(char *x,TYPELIB *typelib,unsigned int full_name); -extern void make_type(char *to,unsigned int nr,TYPELIB *typelib); -extern const char *get_type(TYPELIB *typelib,unsigned int nr); - -extern TYPELIB sql_protocol_typelib; - -#endif /* _typelib_h */ diff --git a/src/txt-converter/login-converter.c b/src/txt-converter/login-converter.c index edd59d77b..78717287d 100644 --- a/src/txt-converter/login-converter.c +++ b/src/txt-converter/login-converter.c @@ -1,157 +1,50 @@ // (c) eAthena Dev Team - Licensed under GNU GPL // For more information, see LICENCE in the main folder +#define WITH_TXT +#define WITH_SQL + #include "../common/cbasetypes.h" -#include "../common/mmo.h" +#include "../common/mmo.h" // struct mmo_account #include "../common/core.h" -#include "../common/db.h" #include "../common/showmsg.h" -#include "../common/sql.h" -#include "../common/malloc.h" - +#include "../login/account.h" #include -#include #include -char login_account_id[256]="account_id"; -char login_userid[256]="userid"; -char login_user_pass[256]="user_pass"; -char login_db[256]="login"; -char globalreg_db[256]="global_reg_value"; - -static DBMap* gm_account_db=NULL; // int account_id -> struct gm_account* +#define LOGIN_CONF_NAME "conf/login_athena.conf" -int db_server_port = 3306; -char db_server_ip[32] = "127.0.0.1"; -char db_server_id[32] = "ragnarok"; -char db_server_pw[32] = "ragnarok"; -char db_server_logindb[32] = "ragnarok"; +AccountDB* txtdb = NULL; +AccountDB* sqldb = NULL; -#define INTER_CONF_NAME "conf/inter_athena.conf" -#define GM_ACCOUNT_NAME "conf/GM_account.txt" -#define ACCOUNT_TXT_NAME "save/account.txt" //-------------------------------------------------------- -int isGM(int account_id) -{ - struct gm_account* p = (struct gm_account*)idb_get(gm_account_db,account_id); - return( p != NULL ) ? p->level : 0; -} - -int read_gm_account() -{ - char line[8192]; - struct gm_account *p; - FILE *fp; - int line_counter = 0, gm_counter = 0; - - ShowStatus("Starting reading gm_account\n"); - - if( (fp = fopen(GM_ACCOUNT_NAME,"r")) == NULL ) - return 1; - - gm_account_db = idb_alloc(DB_OPT_RELEASE_DATA); - - while(fgets(line,sizeof(line),fp)) - { - line_counter++; - if ((line[0] == '/' && line[1] == '/') || line[0] == '\0' || line[0] == '\n' || line[0] == '\r') - continue; - - p = (struct gm_account*)aMalloc(sizeof(struct gm_account)); - if(p==NULL){ - ShowFatalError("gm_account: out of memory!\n"); - exit(EXIT_FAILURE); - } - - if(sscanf(line,"%d %d",&p->account_id,&p->level) != 2 || p->level <= 0) { - ShowWarning("gm_account: unsupported data format [conf/GM_account.txt] on line %d\n", line_counter); - continue; - } - else { - if(p->level > 99) - p->level = 99; - p = (struct gm_account*)idb_put(gm_account_db,p->account_id,p); - if( p ) - aFree(p);// old entry replaced - gm_counter++; - ShowInfo("GM ID: %d Level: %d\n",p->account_id,p->level); - } - } - - fclose(fp); - ShowStatus("%d ID of gm_accounts read.\n", gm_counter); - return 0; -} - int convert_login(void) { - Sql* mysql_handle; - SqlStmt* stmt; - int line_counter = 0; - FILE *fp; - int account_id, logincount, user_level, state, n, i; - char line[2048], userid[2048], pass[2048], lastlogin[2048], sex, email[2048], error_message[2048], last_ip[2048], memo[2048]; - int unban_time, expiration_time; - char dummy[2048]; + AccountDBIterator* iter; + struct mmo_account acc; - mysql_handle = Sql_Malloc(); - if ( SQL_ERROR == Sql_Connect(mysql_handle, db_server_id, db_server_pw, db_server_ip, db_server_port, db_server_logindb) ) + if( !txtdb->init(txtdb) || !sqldb->init(sqldb) ) { - Sql_ShowDebug(mysql_handle); - Sql_Free(mysql_handle); - exit(EXIT_FAILURE); - } - ShowStatus("Connect: Success!\n"); - - ShowStatus("Convert start...\n"); - fp = fopen(ACCOUNT_TXT_NAME,"r"); - if(fp == NULL) + ShowFatalError("Initialization failed, unable to start conversion.\n"); return 0; + } - while(fgets(line,sizeof(line),fp) != NULL) - { - line_counter++; - if(line[0]=='/' && line[1]=='/') - continue; - - i = sscanf(line, "%d\t%[^\t]\t%[^\t]\t%[^\t]\t%c\t%d\t%d\t%[^\t]\t%[^\t]\t%d\t%[^\t]\t%[^\t]\t%d\t%[^\r\n]%n", - &account_id, userid, pass, lastlogin, &sex, &logincount, &state, - email, error_message, &expiration_time, last_ip, memo, &unban_time, dummy, &n); + ShowStatus("Conversion started...\n"); + //TODO: do some counting & statistics - if (i < 13) { - ShowWarning("Skipping incompatible data on line %d\n", line_counter); - continue; - } - - if (i > 13) - ShowWarning("Reading login account variables is not implemented, data will be lost! (line %d)\n", line_counter); - - user_level = isGM(account_id); - ShowInfo("Converting user (id: %d, name: %s, gm level: %d)\n", account_id, userid, user_level); - - stmt = SqlStmt_Malloc(mysql_handle); - if( SQL_ERROR == SqlStmt_Prepare(stmt, - "REPLACE INTO `login` " - "(`account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`, `error_message`, `expiration_time`, `last_ip`, `memo`, `unban_time`, `state`) " - "VALUES " - "(%d, ?, ?, '%s', '%c', %d, '%s', %d, '%s', %d, '%s', '%s', %d, %d)", - account_id, lastlogin, sex, logincount, email, user_level, error_message, expiration_time, last_ip, memo, unban_time, state) - || SQL_ERROR == SqlStmt_BindParam(stmt, 0, SQLDT_STRING, userid, strnlen(userid, 255)) - || SQL_ERROR == SqlStmt_BindParam(stmt, 1, SQLDT_STRING, pass, strnlen(pass, 32)) - || SQL_ERROR == SqlStmt_Execute(stmt) ) - { - SqlStmt_ShowDebug(stmt); - } - SqlStmt_Free(stmt); - - //TODO: parse the rest of the line to read the login-stored account variables, and import them to `global_reg_value` - // then remove the 'dummy' buffer + iter = txtdb->iterator(txtdb); + while( iter->next(iter, &acc) ) + { + ShowInfo("Converting user (id: %d, name: %s, gm level: %d)...", acc.account_id, acc.userid, acc.level); + if( sqldb->create(sqldb, &acc) ) + ShowMessage(CL_GREEN "success.\n"); + else + ShowMessage(CL_RED "failed!\n"); } - fclose(fp); - Sql_Free(mysql_handle); + iter->destroy(iter); - ShowStatus("Convert end...\n"); + ShowStatus("Conversion finished.\n"); return 0; } @@ -162,7 +55,7 @@ int login_config_read(const char* cfgName) char line[1024], w1[1024], w2[1024]; FILE *fp; - ShowStatus("Start reading interserver configuration: %s\n", cfgName); + ShowStatus("Start reading login server configuration: %s\n", cfgName); fp=fopen(cfgName,"r"); if(fp==NULL){ @@ -179,56 +72,40 @@ int login_config_read(const char* cfgName) if(i!=2) continue; - //add for DB connection - if(strcmpi(w1,"db_server_ip")==0){ - strcpy(db_server_ip, w2); - ShowStatus("set db_server_ip : %s\n",w2); - } - else if(strcmpi(w1,"db_server_port")==0){ - db_server_port=atoi(w2); - ShowStatus("set db_server_port : %s\n",w2); - } - else if(strcmpi(w1,"db_server_id")==0){ - strcpy(db_server_id, w2); - ShowStatus("set db_server_id : %s\n",w2); - } - else if(strcmpi(w1,"db_server_pw")==0){ - strcpy(db_server_pw, w2); - ShowStatus("set db_server_pw : %s\n",w2); - } - else if(strcmpi(w1,"db_server_logindb")==0){ - strcpy(db_server_logindb, w2); - ShowStatus("set db_server_logindb : %s\n",w2); - } + txtdb->set_property(txtdb, w1, w2); + sqldb->set_property(sqldb, w1, w2); + //support the import command, just like any other config - else if(strcmpi(w1,"import")==0){ + if( strcmpi(w1,"import") == 0 ) login_config_read(w2); - } } + fclose(fp); - ShowStatus("End reading interserver configuration...\n"); + ShowStatus("End reading login server configuration...\n"); return 0; } int do_init(int argc, char** argv) { int input; - login_config_read( (argc > 1) ? argv[1] : INTER_CONF_NAME ); - read_gm_account(); + + txtdb = account_db_txt(); + sqldb = account_db_sql(); + + login_config_read( (argc > 1) ? argv[1] : LOGIN_CONF_NAME ); ShowInfo("\nWarning : Make sure you backup your databases before continuing!\n"); ShowInfo("\nDo you wish to convert your Login Database to SQL? (y/n) : "); input = getchar(); + if(input == 'y' || input == 'Y') convert_login(); + return 0; } void do_final(void) { - if( gm_account_db ) - { - db_destroy(gm_account_db); - gm_account_db = NULL; - } + txtdb->destroy(txtdb); + sqldb->destroy(sqldb); } diff --git a/src/zlib/zconf.h b/src/zlib/zconf.h deleted file mode 100644 index 03a9431c8..000000000 --- a/src/zlib/zconf.h +++ /dev/null @@ -1,332 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2005 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - */ -#ifdef Z_PREFIX -# define deflateInit_ z_deflateInit_ -# define deflate z_deflate -# define deflateEnd z_deflateEnd -# define inflateInit_ z_inflateInit_ -# define inflate z_inflate -# define inflateEnd z_inflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateSetDictionary z_deflateSetDictionary -# define deflateCopy z_deflateCopy -# define deflateReset z_deflateReset -# define deflateParams z_deflateParams -# define deflateBound z_deflateBound -# define deflatePrime z_deflatePrime -# define inflateInit2_ z_inflateInit2_ -# define inflateSetDictionary z_inflateSetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateCopy z_inflateCopy -# define inflateReset z_inflateReset -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# define uncompress z_uncompress -# define adler32 z_adler32 -# define crc32 z_crc32 -# define get_crc_table z_get_crc_table -# define zError z_zError - -# define alloc_func z_alloc_func -# define free_func z_free_func -# define in_func z_in_func -# define out_func z_out_func -# define Byte z_Byte -# define uInt z_uInt -# define uLong z_uLong -# define Bytef z_Bytef -# define charf z_charf -# define intf z_intf -# define uIntf z_uIntf -# define uLongf z_uLongf -# define voidpf z_voidpf -# define voidp z_voidp -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */ -# include /* for off_t */ -# include /* for SEEK_* and off_t */ -# ifdef VMS -# include /* for off_t */ -# endif -# define z_off_t off_t -#endif -#ifndef SEEK_SET -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif -#ifndef z_off_t -# define z_off_t long -#endif - -#if defined(__OS400__) -# define NO_vsnprintf -#endif - -#if defined(__MVS__) -# define NO_vsnprintf -# ifdef FAR -# undef FAR -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) -# pragma map(deflateInit_,"DEIN") -# pragma map(deflateInit2_,"DEIN2") -# pragma map(deflateEnd,"DEEND") -# pragma map(deflateBound,"DEBND") -# pragma map(inflateInit_,"ININ") -# pragma map(inflateInit2_,"ININ2") -# pragma map(inflateEnd,"INEND") -# pragma map(inflateSync,"INSY") -# pragma map(inflateSetDictionary,"INSEDI") -# pragma map(compressBound,"CMBND") -# pragma map(inflate_table,"INTABL") -# pragma map(inflate_fast,"INFA") -# pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/src/zlib/zlib-1.2.3 b/src/zlib/zlib-1.2.3 deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/zlib/zlib.h b/src/zlib/zlib.h deleted file mode 100644 index 022817927..000000000 --- a/src/zlib/zlib.h +++ /dev/null @@ -1,1357 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.3, July 18th, 2005 - - Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt - (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.3" -#define ZLIB_VERNUM 0x1230 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed - data. This version of the library supports only one compression method - (deflation) but other algorithms will be added later and will have the same - stream interface. - - Compression can be done in a single step if the buffers are large - enough (for example if an input file is mmap'ed), or can be done by - repeated calls of the compression function. In the latter case, the - application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip streams in memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never - crash even in case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total nb of input bytes read so far */ - - Bytef *next_out; /* next output byte should be put there */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total nb of bytes output so far */ - - char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text */ - uLong adler; /* adler32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has - dropped to zero. It must update next_out and avail_out when avail_out - has dropped to zero. The application must initialize zalloc, zfree and - opaque before calling the init function. All other fields are set by the - compression library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this - if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, - pointers returned by zalloc for objects of exactly 65536 bytes *must* - have their offset normalized to zero. The default allocation function - provided by this library ensures this (see zutil.c). To reduce memory - requirements and avoid any allocation of 64K objects, at the expense of - compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or - progress reports. After compression, total_in holds the total size of - the uncompressed data and may be saved for use in the decompressor - (particularly if the decompressor wants to decompress everything in - a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative - * values are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field (though see inflate()) */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is - not compatible with the zlib.h header file used by the application. - This check is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. - If zalloc and zfree are set to Z_NULL, deflateInit updates them to - use default allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at - all (the input data is simply copied a block at a time). - Z_DEFAULT_COMPRESSION requests a default compromise between speed and - compression (currently equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if level is not a valid compression level, - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). - msg is set to null if there is no error message. deflateInit does not - perform any compression: this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce some - output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary (in interactive applications). - Some output may be provided even if flush is not set. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming - more output, and updating avail_in or avail_out accordingly; avail_out - should never be zero before the call. The application can consume the - compressed output when it wants, for example when the output buffer is full - (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK - and with zero avail_out, it must be called again after making room in the - output buffer because there might be more output pending. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumualte before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In particular - avail_in is zero after the call if enough output space has been provided - before the call.) Flushing may degrade compression for some compression - algorithms and so it should be used only when necessary. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there - was enough output space; if deflate returns with Z_OK, this function must be - called again with Z_FINISH and more output space (updated avail_out) but no - more input data, until it returns with Z_STREAM_END or an error. After - deflate has returned Z_STREAM_END, the only possible operations on the - stream are deflateReset or deflateEnd. - - Z_FINISH can be used immediately after deflateInit if all the compression - is to be done in a single step. In this case, avail_out must be at least - the value returned by deflateBound (see below). If deflate does not return - Z_STREAM_END, then it must be called again as described above. - - deflate() sets strm->adler to the adler32 checksum of all input read - so far (that is, total_in bytes). - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered - binary. This field is only for information purposes and does not affect - the compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible - (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not - fatal, and deflate() can be called again with more input and more output - space to continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any - pending output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, - msg may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. If next_in is not Z_NULL and avail_in is large enough (the exact - value depends on the compression method), inflateInit determines the - compression method from the zlib header and allocates all data structures - accordingly; otherwise the allocation will be deferred to the first call of - inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to - use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller. msg is set to null if there is no error - message. inflateInit does not perform any decompression apart from reading - the zlib header if present: this will be done by inflate(). (So next_in and - avail_in may be modified, but next_out and avail_out are unchanged.) -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in is updated and processing - will resume at this point for the next call of inflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there - is no more input data or no more space in the output buffer (see below - about the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming - more output, and updating the next_* and avail_* values accordingly. - The application can consume the uncompressed output when it wants, for - example when the output buffer is full (avail_out == 0), or after each - call of inflate(). If inflate returns Z_OK and with zero avail_out, it - must be called again after making room in the output buffer because there - might be more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, - Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() stop - if and when it gets to the next deflate block boundary. When decoding the - zlib or gzip format, this will cause inflate() to return immediately after - the header and before the first block. When doing a raw inflate, inflate() - will go ahead and process the first block, and will return when it gets to - the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - Also to assist in this, on return inflate() will set strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 - if inflate() is currently decoding the last block in the deflate stream, - plus 128 if inflate() returned immediately after decoding an end-of-block - code or decoding the complete header up to just before the first byte of the - deflate stream. The end-of-block will not be indicated until all of the - uncompressed data from that block has been written to strm->next_out. The - number of unused bits may in general be greater than seven, except when - bit 7 of data_type is set, in which case the number of unused bits will be - less than eight. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step - (a single call of inflate), the parameter flush should be set to - Z_FINISH. In this case all pending input is processed and all pending - output is flushed; avail_out must be large enough to hold all the - uncompressed data. (The size of the uncompressed data may have been saved - by the compressor for this purpose.) The next operation on this stream must - be inflateEnd to deallocate the decompression state. The use of Z_FINISH - is never required, but can be used to inform inflate that a faster approach - may be used for the single inflate() call. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the only effect of the flush parameter in this implementation - is on the return value of inflate(), as noted below, or when it returns early - because Z_BLOCK is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the adler32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the adler32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed adler32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() will decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically. Any information - contained in the gzip header is not retained, so applications that need that - information should instead use raw inflate, see inflateInit2() below, or - inflateBack() and perform their own processing of the gzip header and - trailer. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value), Z_STREAM_ERROR if the stream structure was inconsistent (for example - if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory, - Z_BUF_ERROR if no progress is possible or if there was not enough room in the - output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may then - call inflateSync() to look for a good compression block if a partial recovery - of the data is desired. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any - pending output. - - inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state - was inconsistent. In the error case, msg may be set but then points to a - static string (which must not be deallocated). -*/ - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by - the caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute an adler32 check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), - no header crc, and the operating system will be set to 255 (unknown). If a - gzip stream is being written, strm->adler is a crc32 instead of an adler32. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but - is slow and reduces compression ratio; memLevel=9 uses maximum memory - for optimal speed. The default value is 8. See zconf.h for total memory - usage as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as - Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy - parameter only affects the compression ratio but not the correctness of the - compressed output even if it is not set appropriately. Z_FIXED prevents the - use of dynamic Huffman codes, allowing for a simpler decoder for special - applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid - method). msg is set to null if there is no error message. deflateInit2 does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. This function must be called - immediately after deflateInit, deflateInit2 or deflateReset, before any - call of deflate. The compressor and decompressor must use exactly the same - dictionary (see inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size in - deflate or deflate2. Thus the strings most likely to be useful should be - put at the end of the dictionary, not at the front. In addition, the - current implementation of deflate will use at most the window size minus - 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the adler32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The adler32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - adler32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (such as NULL dictionary) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if the compression method is bsort). deflateSetDictionary does not - perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and - can consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, - but does not free and reallocate all the internal compression state. - The stream will keep the same compression level and any other attributes - that may have been set by deflateInit2. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2. This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different - strategy. If the compression level is changed, the input available so far - is compressed with the old level (and may be flushed); the new level will - take effect only at the next call of deflate(). - - Before the call of deflateParams, the stream state must be set as for - a call of deflate(), since the currently available input may have to - be compressed and flushed. In particular, strm->avail_out must be non-zero. - - deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source - stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR - if strm->avail_out was zero. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() - or deflateInit2(). This would be used to allocate an output buffer - for deflation in a single pass, and so would be called before deflate(). -*/ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the - bits leftover from a previous deflate stream when appending to it. As such, - this function can only be used for raw deflate, and must be used before the - first deflate() call after a deflateInit2() or deflateReset(). bits must be - less than or equal to 16, and that many of the least significant bits of - value will be inserted in the output. - - deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an adler32 or a crc32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is - a crc32 instead of an adler32. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg - is set to null if there is no error message. inflateInit2 does not perform - any decompression apart from reading the zlib header if present: this will - be done by inflate(). (So next_in and avail_in may be modified, but next_out - and avail_out are unchanged.) -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the adler32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called - immediately after inflateInit2() or inflateReset() and before any call of - inflate() to set the dictionary. The application must insure that the - dictionary that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (such as NULL dictionary) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect adler32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a full flush point (see above the - description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR - if no more input was provided, Z_DATA_ERROR if no flush point has been found, - or Z_STREAM_ERROR if the stream structure was inconsistent. In the success - case, the application may save the current current value of total_in which - indicates where valid compressed data was found. In the error case, the - application may repeatedly call inflateSync, providing more input each time, - until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate all the internal decompression state. - The stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being NULL). -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK can be used to - force inflate() to return immediately after header processing is complete - and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When - any of extra, name, or comment are not Z_NULL and the respective field is - not present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the paramaters are invalid, Z_MEM_ERROR if the internal state could not - be allocated, or Z_VERSION_ERROR if the version of the library does not - match the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is more efficient than inflate() for - file i/o applications in that it avoids copying between the output and the - sliding window by simply making the window itself the output buffer. This - function trusts the application to not change the output buffer passed by - the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free - the allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects - only the raw deflate stream to decompress. This is different from the - normal behavior of inflate(), which expects either a zlib or gzip header and - trailer around the deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero--buf is ignored in that - case--and inflateBack() will return a buffer error. inflateBack() will call - out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() - should return zero on success, or non-zero on failure. If out() returns - non-zero, inflateBack() will return with an error. Neither in() nor out() - are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format - error in the deflate stream (in which case strm->msg is set to indicate the - nature of the error), or Z_STREAM_ERROR if the stream was not properly - initialized. In the case of Z_BUF_ERROR, an input or output error can be - distinguished using strm->next_in which will be Z_NULL only if in() returned - an error. If strm->next is not Z_NULL, then the Z_BUF_ERROR was due to - out() returning non-zero. (in() will always be called before out(), so - strm->next_in is assured to be defined if out() returns non-zero.) Note - that inflateBack() cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - - - /* utility functions */ - -/* - The following utility functions are implemented on top of the - basic stream-oriented functions. To simplify the interface, some - default options are assumed (compression level and memory usage, - standard memory allocation functions). The source code of these - utility functions can easily be modified if you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total - size of the destination buffer, which must be at least the value returned - by compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - This function can be used to compress a whole file at once if the - input file is mmap'ed. - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before - a compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total - size of the destination buffer, which must be large enough to hold the - entire uncompressed data. (The size of the uncompressed data must have - been saved previously by the compressor and transmitted to the decompressor - by some mechanism outside the scope of this compression library.) - Upon exit, destLen is the actual size of the compressed buffer. - This function can be used to decompress a whole file at once if the - input file is mmap'ed. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. -*/ - - -typedef voidp gzFile; - -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); -/* - Opens a gzip (.gz) file for reading or writing. The mode parameter - is as in fopen ("rb" or "wb") but can also include a compression level - ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for - Huffman only compression as in "wb1h", or 'R' for run-length encoding - as in "wb1R". (See the description of deflateInit2 for more information - about the strategy parameter.) - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. - - gzopen returns NULL if the file could not be opened or if there was - insufficient memory to allocate the (de)compression state; errno - can be checked to distinguish the two cases (if errno is zero, the - zlib error is Z_MEM_ERROR). */ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen() associates a gzFile with the file descriptor fd. File - descriptors are obtained from calls like open, dup, creat, pipe or - fileno (in the file has been previously opened with fopen). - The mode parameter is as in gzopen. - The next call of gzclose on the returned gzFile will also close the - file descriptor fd, just like fclose(fdopen(fd), mode) closes the file - descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). - gzdopen returns NULL if there was insufficient memory to allocate - the (de)compression state. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. - gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not - opened for writing. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. - If the input file was not in gzip format, gzread copies the given number - of bytes into the buffer. - gzread returns the number of uncompressed bytes actually read (0 for - end of file, -1 for error). */ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes actually written - (0 in case of error). -*/ - -ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the args to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written (0 in case of error). The number of - uncompressed bytes written is limited to 4095. The caller should assure that - this limit is not exceeded. If it is exceeded, then gzprintf() will return - return an error (0) with nothing written. In this case, there may also be a - buffer overflow with unpredictable consequences, which is possible only if - zlib was compiled with the insecure functions sprintf() or vsprintf() - because the secure snprintf() or vsnprintf() functions were not available. -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or - a newline character is read and transferred to buf, or an end-of-file - condition is encountered. The string is then terminated with a null - character. - gzgets returns buf, or Z_NULL in case of error. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. - gzputc returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte - or -1 in case of end of file or error. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read again later. - Only one character of push-back is allowed. gzungetc() returns the - character pushed, or -1 on failure. gzungetc() will fail if a - character has been pushed but not read yet, or if c is -1. The pushed - character will be discarded if the stream is repositioned with gzseek() - or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter - flush is as in the deflate() function. The return value is the zlib - error number (see function gzerror below). gzflush returns Z_OK if - the flush parameter is Z_FINISH and all output could be flushed. - gzflush should be called only when strictly necessary because it can - degrade compression. -*/ - -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); -/* - Sets the starting position for the next gzread or gzwrite on the - given compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); -/* - Returns the starting position for the next gzread or gzwrite on the - given compressed file. This position represents a number of bytes in the - uncompressed data stream. - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns 1 when EOF has previously been detected reading the given - input stream, otherwise zero. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns 1 if file is being read directly without decompression, otherwise - zero. -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file - and deallocates all the (de)compression state. The return value is the zlib - error number (see function gzerror below). -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the - given compressed file. errnum is set to zlib error number. If an - error occurred in the file system and not in the compression library, - errnum is set to Z_ERRNO and the application may consult errno - to get the exact error code. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the - compression library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is NULL, this function returns - the required initial value for the checksum. - An Adler-32 checksum is almost as reliable as a CRC32 but can be computed - much faster. Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); -/* - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is NULL, this function returns the required initial - value for the for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - -/* - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) -#define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, sizeof(z_stream)) -#define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) -#define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, sizeof(z_stream)) - - -#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; /* hack for buggy compilers */ -#endif - -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z)); -ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/tools/cgi/addaccount.cgi b/tools/cgi/addaccount.cgi deleted file mode 100644 index 2134a78a3..000000000 --- a/tools/cgi/addaccount.cgi +++ /dev/null @@ -1,204 +0,0 @@ -#!/usr/bin/perl - -#========================================================================= -# addaccount.cgi ver.1.00 -# ladminをラップした、アカウントを作成するCGI。 -# ladmin ver.1.04での動作を確認。 -# -# ** 設定方法 ** -# -# - 下の$ladmin変数にladminへのパスを設定すること。 -# - UNIX系OSで使用する場合はladminと共に改行コードを変換すること、また -# ファイル先頭行をperlの正しいパスにすること。例> $ which perl -# - サーバープログラムやブラウザによっては $cgiuri にこのファイルへの -# 完全なURIをセットしなければならない場合もある。 -# - perlにパスが通っていない場合は $perl をperlへの正しいパスにすること。 -# - 他は普通のCGIと同じです。(実行権やcgi-binフォルダなど) -# -# ** その他 ** -# addaccount.cgi をブラウザで開くとサンプルHTML(そのまま使えます)が -# 開きます。また、このcgiはブラウザから送られるAccept-Languageが -# jaで始まっていればメッセージの一部を日本語に変換します。 -# (IEならインターネットオプションの言語設定で一番上に日本語を置く) -# それ以外の場合は英語のまま出力します。 -#------------------------------------------------------------------------- - -my($ladmin) = "../ladmin"; # ladminのパス(おそらく変更が必要) - -my($cgiuri) = "./addaccount.cgi"; # このファイルのURI -my($perl) = "perl"; # perlのコマンド名 - - - -#--------------------------- 設定ここまで -------------------------------- - - - - - - -use strict; -use CGI; - -my($cgi)= new CGI; -my(%langconv)=( - 'Athena login-server administration tool.*' => '', - 'logged on.*' => '', -); - -# ----- 日本語環境なら変換テーブルをセット ----- -if($ENV{'HTTP_ACCEPT_LANGUAGE'}=~/^ja/){ - my(%tmp)=( - 'Account \[(.+)\] is successfully created.*' - => 'アカウント "$1" を作成しました.', - 'Account \[(.+)\] creation failed\. same account exists.*' - => 'アカウント "$1" は既に存在します.', - 'Illeagal charactor found in UserID.*' - => 'IDの中に不正な文字があります.', - 'Illeagal charactor found in Password.*' - => 'Passwordの中に不正な文字があります.', - 'input UserID 4-24 bytes.' - => 'IDは半角4〜24文字で入力してください.', - 'input Password 4-24 bytes.' - => 'Passwordは半角4〜24文字で入力してください.', - 'Illeagal gender.*' - => '性別がおかしいです.', - 'Cant connect to login server.*' - => 'ログインサーバーに接続できません.', - 'login error.*' - => 'ログインサーバーへの管理者権限ログインに失敗しました', - "Can't execute ladmin.*" - => 'ladminの実行に失敗しました', - 'UserID "(.+)" is already used.*' - => 'ID "$1" は既に使用されています.', - 'You can use UserID \"(.+)\".*' - => 'ID "$1" は使用可能です.', - - 'account making' =>'アカウント作成', - '\>UserID' =>'>ID', - '\>Password' =>'>パスワード', - '\>Gender' =>'>性別', - '\>Male' =>'>男性', - '\>Female' =>'>女性', - '\"Make Account\"' =>'"アカウント作成"', - '\"Check UserID\"' =>'"IDのチェック"', - ); - map { $langconv{$_}=$tmp{$_}; } keys (%tmp); -} - -# ----- 追加 ----- -if( $cgi->param("addaccount") ){ - my($userid)= $cgi->param("userid"); - my($passwd)= $cgi->param("passwd"); - my($gender)= lc(substr($cgi->param("gender"),0,1)); - if(length($userid)<4 || length($userid)>24){ - HttpError("input UserID 4-24 bytes."); - } - if(length($passwd)<4 || length($passwd)>24){ - HttpError("input Password 4-24 bytes."); - } - if($userid=~/[^0-9A-Za-z\@\_\-\']/){ - HttpError("Illeagal charactor found in UserID."); - } - if($passwd=~/[\x00-\x1f\x80-\xff\']/){ - HttpError("Illeagal charactor found in Password."); - } - if($gender!~/[mf]/){ - HttpError("Gender error."); - } - open PIPE,"$perl $ladmin --add $userid $gender $passwd |" - or HttpError("Can't execute ladmin."); - my(@msg)=; - close PIPE; - HttpMsg(@msg); -} -# ----- 存在チェック ----- -elsif( $cgi->param("check") ){ - my($userid)= $cgi->param("userid"); - if(length($userid)<4 || length($userid)>24){ - HttpError("input UserID 4-24 bytes."); - } - if($userid=~/[^0-9A-Za-z\@\_\-\']/){ - HttpError("Illeagal charactor found in UserID."); - } - open PIPE,"$perl $ladmin --search --regex \\b$userid\\b |" - or HttpError("Can't execute ladmin."); - my(@msg)=; - close PIPE; - if(scalar(@msg)==6 && (split /[\s\0]+/,substr($msg[4],11,24))[0] eq $userid){ - HttpMsg("NG : UserID \"$userid\" is already used."); - }elsif(scalar(@msg)==5){ - HttpMsg("OK : You can use UserID \"$userid\""); - } - HttpError("ladmin error ?\n---output---\n",@msg); -} - -# ----- フォーム ----- -else{ - print LangConv( <<"EOM" ); -Content-type: text/html\n - - - Athena account making cgi - - -

Athena account making cgi

-
- - - - - - - - - - - - - - - - -
UserID
Password
Gender - Male - Female -
- - -
-
- - -EOM - exit; -} - -sub LangConv { - my(@lst)= @_; - my($a,$b,@out)=(); - foreach $a(@lst){ - foreach $b(keys %langconv){ - $a=~s/$b/$langconv{$b}/g; - my($rep1)=$1; - $a=~s/\$1/$rep1/g; - } - push @out,$a; - } - return @out; -} - -sub HttpMsg { - my($msg)=join("", LangConv(@_)); - $msg=~s/\n/
\n/g; - print LangConv("Content-type: text/html\n\n"),$msg; - exit; -} - -sub HttpError { - my($msg)=join("", LangConv(@_)); - $msg=~s/\n/
\n/g; - print LangConv("Content-type: text/html\n\n"),$msg; - exit; -} - diff --git a/tools/ladmin b/tools/ladmin deleted file mode 100644 index e3319d5de..000000000 --- a/tools/ladmin +++ /dev/null @@ -1,3793 +0,0 @@ -#!/usr/bin/perl -use POSIX; -########################################################################## -# EAthena login-server remote administration tool -# New ladamin by [Yor] -########################################################################## -#-------------------------------INSTRUCTIONS------------------------------ -# Set the 4 variables below: -# IP of the login server. -# Port where the login-server listens incoming packets. -# Password of administration (same of config_athena.conf). -# Displayed language of the sofware (if not correct, english is used). -# IMPORTANT: -# Be sure that you authorize remote administration in login-server -# (see login_athena.conf, 'admin_state' parameter) -#------------------------------------------------------------------------- -my($loginserverip) = "127.0.0.1"; # IP of login-server -my($loginserverport) = 6900; # Port of login-server -my($loginserveradminpassword) = "admin"; # Administration password -my($connecttimeout) = 10; # Timeout of connection (in seconds) -my($passenc) = 2; # Encoding type of the password -my($defaultlanguage) = "E"; # Default language (F: Fran軋is/E: English) - # (if it's not 'F', default is English) - -#------------------------------------------------------------------------- -# LIST of COMMANDs that you can type at the prompt: -# To use these commands you can only type only the first letters. -# You must type a minimum of letters (you can not type 'a', -# because ladmin doesn't know if it's for 'aide' or for 'add') -# q <= quit, li <= list, pass <= passwd, etc. -# -# Note: every time you must give a account_name, you can use "" or '' (spaces can be included) -# -# aide/help/? -# Display the description of the commands -# aide/help/? [command] -# Display the description of the specified command -# -# add -# Create an account with the default email (a@a.com). -# Concerning the sex, only the first letter is used (F or M). -# The e-mail is set to a@a.com (default e-mail). It's like to have no e-mail. -# When the password is omitted, the input is done without displaying of the pressed keys. -# add testname Male testpass -# -# ban/banish yyyy/mm/dd hh:mm:ss -# Changes the final date of a banishment of an account. -# Same command of banset, except that account_name is at end -# -# banadd -# Adds or substracts time from the final date of a banishment of an account. -# Modifier is done as follows: -# Adjustment value (-1, 1, +1, etc...) -# Modified element: -# a or y: year -# m: month -# j or d: day -# h: hour -# mn: minute -# s: second -# banadd testname +1m-2mn1s-6y -# this example adds 1 month and 1 second, and substracts 2 minutes and 6 years at the same time. -# NOTE: If you modify the final date of a non-banished account, -# you fix the final date to (actual time +- adjustments) -# -# banset yyyy/mm/dd [hh:mm:ss] -# Changes the final date of a banishment of an account. -# Default time: 23:59:59 -# banset 0 -# Set a non-banished account (0 = unbanished). -# -# block -# Set state 5 (You have been blocked by the GM Team) to an account. -# Same command of state 5. -# -# check -# Check the validity of a password for an account -# NOTE: Server will never sends back a password. -# It's the only method you have to know if a password is correct. -# The other method is to have a ('physical') access to the accounts file. -# -# create -# Like the 'add' command, but with e-mail moreover. -# create testname Male my@mail.com testpass -# -# del -# Remove an account. -# This order requires confirmation. After confirmation, the account is deleted. -# -# email -# Modify the e-mail of an account. -# -# getcount -# Give the number of players online on all char-servers. -# -# gm [GM_level] -# Modify the GM level of an account. -# Default value remove GM level (GM level = 0). -# gm testname 80 -# -# id -# Give the id of an account. -# -# info -# Display complete information of an account. -# -# kami -# Sends a broadcast message on all map-server (in yellow). -# kamib -# Sends a broadcast message on all map-server (in blue). -# -# language -# Change the language of displaying. -# -# list/ls [start_id [end_id]] -# Display a list of accounts. -# 'start_id', 'end_id': indicate end and start identifiers. -# Research by name is not possible with this command. -# list 10 9999999 -# -# listBan/lsBan [start_id [end_id]] -# Like list/ls, but only for accounts with state or banished -# -# listGM/lsGM [start_id [end_id]] -# Like list/ls, but only for GM accounts -# -# listOK/lsOK [start_id [end_id]] -# Like list/ls, but only for accounts without state and not banished -# -# memo -# Modify the memo of an account. -# 'memo': it can have until 253 characters (with spaces or not). -# -# name -# Give the name of an account. -# -# passwd -# Change the password of an account. -# When new password is omitted, the input is done without displaying of the pressed keys. -# -# quit/end/exit -# End of the program of administration -# -# reloadGM -# Reload GM configuration file -# -# search -# Seek accounts. -# Displays the accounts whose names correspond. -# search -r/-e/--expr/--regex -# Seek accounts by regular expression. -# Displays the accounts whose names correspond. -# -# sex -# Modify the sex of an account. -# sex testname Male -# -# state -# Change the state of an account. -# 'new_state': state is the state of the packet 0x006a + 1. The possibilities are: -# 0 = Account ok 6 = Your Game's EXE file is not the latest version -# 1 = Unregistered ID 7 = You are Prohibited to log in until %s -# 2 = Incorrect Password 8 = Server is jammed due to over populated -# 3 = This ID is expired 9 = No MSG -# 4 = Rejected from Server 100 = This ID has been totally erased -# 5 = You have been blocked by the GM Team -# all other values are 'No MSG', then use state 9 please. -# 'error_message_#7': message of the code error 6 = Your are Prohibited to log in until %s (packet 0x006a) -# -# timeadd -# Adds or substracts time from the validity limit of an account. -# Modifier is done as follows: -# Adjustment value (-1, 1, +1, etc...) -# Modified element: -# a or y: year -# m: month -# j or d: day -# h: hour -# mn: minute -# s: second -# timeadd testname +1m-2mn1s-6y -# this example adds 1 month and 1 second, and substracts 2 minutes and 6 years at the same time. -# NOTE: You can not modify a unlimited validity limit. -# If you want modify it, you want probably create a limited validity limit. -# So, at first, you must set the validity limit to a date/time. -# -# timeset yyyy/mm/dd [hh:mm:ss] -# Changes the validity limit of an account. -# Default time: 23:59:59 -# timeset 0 -# Gives an unlimited validity limit (0 = unlimited). -# -# unban/unbanish -# Unban an account. -# Same command of banset 0. -# -# unblock -# Set state 0 (Account ok) to an account. -# Same command of state 0. -# -# version -# Display the version of the login-server. -# -# who -# Displays complete information of an account. -# -#------------------------------------------------------------------------- -# Possibilities to execute ladmin in command line by usage of the software with a parameter: -# ./ladmin --mode param1 ... -# -# --makesymlink -- Create the symbolic links for a use in shell -# --add -- Create an account with the default email (or -a) -# --ban yyyy/mm/dd hh:mm:ss -- Change the final date of a banishment of an account (or -b) -# --banadd -- Add or substract time from the final date of a banishment of an account (or - ba) -# --banset yyyy/mm/dd [hh:mm:ss] -- Change the final date of a banishment of an account (or -bs) -# --banset 0 -- Unbanish an account (or -bs) -# --block -- Set state 5 to an account (or -bl) -# --check -- Check the validity of a password for an account (or -check) -# --create -- Create an account with email (or -c) -# --del -- Remove an account (or -d) -# --email -- Modify an email of an account (or -e) -# --getcount -- Give the number of players online on all char-servers (or -g) -# --gm -- Change the GM level of an account (or -gm) -# --id -- Give the id of an account (or -i) -# --info -- Display complete information of an account (or -info) -# --kami -- Sends a broadcast message on all map-server (in yellow). -# --kamib -- Sends a broadcast message on all map-server (in blue). -# --language -- Change the language of displaying (-lang). -# --list [First_id [Last_id]] -- Display a list of accounts (or -l) -# --listBan [start_id [end_id]] -- Display a list of accounts with state or banished (or -lBan) -# --listGM [First_id [Last_id]] -- Display a list of GM accounts (or -lGM) -# --listOK [start_id [end_id]] -- Display a list of accounts without state and not banished (or -lOK) -# --memo -- Modify the memo of an account (or -e) -# --name -- Give the name of an account (or -n) -# --passwd -- Change the password of an account (or -p) -# --reloadGM -- Reload GM configuration file (or -r) -# --search -- Seek accounts (or -s) -# --search -e/-r/--expr/--regex -- Seek accounts by REGEX (or -s) -# --sex -- Change the sex of an account (or -sex) -# --state -- Change the state of an account (or -t) -# --timeadd -- Add or substract time from the validity limit of an account (or - ta) -# --timeset yyyy/mm/dd [hh:mm:ss] -- Change the validify limit of an account (or -ts) -# --timeset 0 -- Give a unlimited validity limit (or -ts) -# --unban/unbanish -- Unban an account (or -uba) -# --unblock -- Set state 0 to an account (or -ubl) -# --version -- Display the version of the login-server (or -v) -# --who -- Display complete information of an account (or -w) -# -# ./ladmin --addaccount testname Male testpass -# -#------------------------------------------------------------------------- -# Possibilities to execute ladmin with symbolic links in Shell -# To create the symbolic links, execute ladmin with the '-- makesymlink' option. -# -# addaccount -- Create an account with the default email -# banaccount yyyy/mm/dd hh:mm:ss -- Change the final date of a banishment of an account -# banaddaccount -- Add or substract time from the final date of a banishment of an account -# bansetaccount yyyy/mm/dd [hh:mm:ss] -- Change the final date of a banishment of an account -# bansetaccount 0 -- Unbanish an account -# blockaccount -- Set state 5 (blocked by the GM Team) to an account -# checkaccount -- Check the validity of a password for an account -# createaccount -- Create an account with email -# delaccount -- Remove an account -# emailaccount -- Modify an email of an account -# getcount -- Give the number of players online on all char-servers -# gmaccount -- Change the GM level of an account -# idaccount -- Give the id of an account -# infoaccount -- Display complete information of an account -# kami -- Sends a broadcast message on all map-server (in yellow). -# kamib -- Sends a broadcast message on all map-server (in blue). -# ladminlanguage -- Change the language of displaying. -# listaccount [First_id [Last_id]] -- Display a list of accounts -# listBanaccount [start_id [end_id]] -- Display a list of accounts with state or banished -# listGMaccount [First_id [Last_id]] -- Display a list of GM accounts -# listOKaccount [start_id [end_id]] -- Display a list of accounts without state and not banished -# loginserverversion -- Display the version of the login-server -# memoaccount -- Modify the memo of an account -# nameaccount -- Give the name of an account -# passwdaccount -- Change the password of an account -# reloadGM -- Reload GM configuration file -# searchaccount -- Seek accounts -# searchaccount -e/-r/--expr/--regex -- Seek accounts by REGEX -# sexaccount -- Change the sex of an account (or -sex) -# stateaccount -- Change the state of an account -# timeaddaccount -- Add or substract time from the validity limit of an account -# timesetaccount yyyy/mm/dd [hh:mm:ss] -- Change the validify limit of an account -# timesetaccount 0 -- Give a unlimited validity limit -# unbanaccount -- Unban an account -# unblockaccount -- Set state 0 (Account ok) to an account -# whoaccount -- Display complete information of an account -# ./addaccount testname Male testpass -# -#------------------------------------------------------------------------- -# About the encoding: -# -# The Digest::MD5 module is necessary to use the encrypted password system. -# When the software cannot found the Digest::MD5 module, -# encoding is automatically disabled ($passenc=0), which allows -# to use this program in any cases. -# -#------------------------------------------------------------------------- -# How to use ladmin with UNIX: -# -# You excecute ladmin as a standard command. -# -# $ mv ladmin ladmin_org -# $ nkf -eLu ladmin_org > ladmin -# $ chmod 700 ladmin -# -# $ perl ladmin -# -########################################################################## - - -use strict; -use IO::Socket; -use Term::ReadLine; -eval { use POSIX qw(:termios_h); }; -eval { use Digest::MD5 qw(md5); } if $passenc; -$passenc = 0 if($@); - -my($ver) = "1.00"; - -# Start of termios -my($termios, $orgterml, $termlecho, $termlnoecho) = (); -eval{ - $termios = POSIX::Termios->new(); - $termios->getattr(fileno(STDIN)); - $orgterml = $termios->getlflag(); - $termlecho = ECHO | ECHOK | ICANON; - $termlnoecho = $orgterml & ~$termlecho; -}; - -# Modification of termios for the displaying of passwords (no displays for pressed keys) -sub cbreak() { - if ($termios) { - $termios->setlflag($termlnoecho); - $termios->setcc(VTIME, 1); - $termios->setattr(fileno(STDIN), TCSANOW); - } -} -# Modification of termios to return at the normal displaying (after input of the passwords) -sub cooked() { - if ($termios) { - $termios->setlflag($orgterml); - $termios->setcc(VTIME,0); - $termios->setattr(fileno(STDIN),TCSANOW); - } -} -END{ cooked() } - -if ($defaultlanguage eq "F") { - print "Outil d'administration distance de eAthena V.$ver\n"; -} else { - print "EAthena login-server administration tool V.$ver\n"; -} - -# Creation of the symbolic links for call of the program in line command of the shell -if ($ARGV[0] eq "--makesymlink") { - symlink $0, "loginserverversion"; - symlink $0, "addaccount"; - symlink $0, "banaccount"; - symlink $0, "banaddaccount"; - symlink $0, "bansetaccount"; - symlink $0, "blockaccount"; - symlink $0, "checkaccount"; - symlink $0, "createaccount"; - symlink $0, "delaccount"; - symlink $0, "emailaccount"; - symlink $0, "getcount"; - symlink $0, "gmaccount"; - symlink $0, "idaccount"; - symlink $0, "infoaccount"; - symlink $0, "kami"; - symlink $0, "kamib"; - symlink $0, "ladminlanguage"; - symlink $0, "listaccount"; - symlink $0, "listBanaccount"; - symlink $0, "listGMaccount"; - symlink $0, "listOKaccount"; - symlink $0, "memoaccount"; - symlink $0, "nameaccount"; - symlink $0, "passwdaccount"; - symlink $0, "reloadGM"; - symlink $0, "searchaccount"; - symlink $0, "sexaccount"; - symlink $0, "stateaccount"; - symlink $0, "timeaddaccount"; - symlink $0, "timesetaccount"; - symlink $0, "unbanaccount"; - symlink $0, "unblockaccount"; - symlink $0, "whoaccount"; - if ($defaultlanguage eq "F") { - print "Liens symbliques cr鳬s.\n"; - } else { - print "Symbolic links created.\n"; - } - exit(0); -} - -# Connection to the login-server -my($so,$er) = (); -eval{ - $so = IO::Socket::INET->new( - PeerAddr=> $loginserverip, - PeerPort=> $loginserverport, -# Proto => "tcp", - Timeout => $connecttimeout) or $er = 1; -}; -if ($er || $@) { - if ($defaultlanguage eq "F") { - print "\nImpossible de se connecter au serveur de login [${loginserverip}:$loginserverport] !\n"; - } else { - print "\nImpossible to have a connection with the login-server [${loginserverip}:$loginserverport] !\n"; - } - print "$!\n"; # Displaying of the error - exit(2); -} - -# Sending the administration password -if ($passenc == 0) { - print $so pack("v2a24",0x7918,0,$loginserveradminpassword); - $so->flush(); -} else { - print $so pack("v",0x791a); - $so->flush(); - my($buf) = readso(4); - if (unpack("v",$buf) != 0x01dc) { - if ($defaultlanguage eq "F") { - print "Erreur au login (馗hec de la cr饌tion de la clef md5).\n"; - } else { - print "Error at login (failure of the md5 key creation).\n"; - } - } - $buf = readso(unpack("x2v",$buf)-4); - my($md5bin) = md5(($passenc == 1) ? $buf.$loginserveradminpassword : $loginserveradminpassword.$buf); - print $so pack("v2a16",0x7918,$passenc,$md5bin); - $so->flush(); -} - -# Waiting of the server reply -my($buf) = readso(3); - -if (unpack("v",$buf) != 0x7919 || unpack("x2c",$buf) != 0) { - if ($defaultlanguage eq "F") { - print "Erreur de login:\n"; - print " - mot de passe incorrect,\n"; - print " - syst鑪e d'administration non activ, ou\n"; - print " - IP non autoris馥.\n"; - } else { - print "Error at login:\n"; - print " - incorrect password,\n"; - print " - administration system not activated, or\n"; - print " - unauthorised IP.\n"; - } - quit(); - exit(4); -} - -if ($defaultlanguage eq "F") { - print "Connexion 騁ablie.\n"; -} else { - print "Established connection.\n"; -} - -#------------------------------------------------------------------------- -# Here are checked the command lines with arguments and symbolic links (no prompt) - -if ($0 =~ /addaccount$/ || - (($ARGV[0] eq "-a" || $ARGV[0] eq "--add") && ((shift @ARGV), 1))) { - my($r) = addaccount($ARGV[0], $ARGV[1], $ARGV[2]); - quit(); - exit($r); -} elsif ($0 =~ /banaccount$/ || $0 =~ /banishaccount$/ || - (($ARGV[0] eq "-b" || $ARGV[0] eq "--ban" || $ARGV[0] eq "--banish") && ((shift @ARGV), 1))) { - my($r) = bansetaccount($ARGV[1], $ARGV[2], $ARGV[0]); - quit(); - exit($r); -} elsif ($0 =~ /banaddaccount$/ || - (($ARGV[0] eq "-ba" || $ARGV[0] eq "--banadd") && ((shift @ARGV), 1))) { - my($r) = banaddaccount($ARGV[0], $ARGV[1]); - quit(); - exit($r); -} elsif ($0 =~ /bansetaccount$/ || - (($ARGV[0] eq "-bs" || $ARGV[0] eq "--banset") && ((shift @ARGV), 1))) { - my($r) = bansetaccount($ARGV[0], $ARGV[1], $ARGV[2]); - quit(); - exit($r); -} elsif ($0 =~ /blockaccount$/ || - (($ARGV[0] eq "-bl" || $ARGV[0] eq "--block") && ((shift @ARGV), 1))) { - my($r) = changestate($ARGV[0], 5, ""); - quit(); - exit($r); -} elsif ($0 =~ /checkaccount$/ || - (($ARGV[0] eq "-check" || $ARGV[0] eq "--check") && ((shift @ARGV), 1))) { - my($r) = checkaccount($ARGV[0], $ARGV[1]); - quit(); - exit($r); -} elsif ($0 =~ /createaccount$/ || - (($ARGV[0] eq "-c" || $ARGV[0] eq "--create") && ((shift @ARGV), 1))) { - my($r) = createaccount($ARGV[0], $ARGV[1], $ARGV[2], $ARGV[3]); - quit(); - exit($r); -} elsif ($0 =~ /delaccount$/ || - (($ARGV[0] eq "-d" || $ARGV[0] eq "--del") && ((shift @ARGV), 1))) { - my($r) = delaccount($ARGV[0]); - quit(); - exit($r); -} elsif ($0 =~ /emailaccount$/ || - (($ARGV[0] eq "-e" || $ARGV[0] eq "--email") && ((shift @ARGV), 1))) { - my($r) = changeemail($ARGV[0], $ARGV[1]); - quit(); - exit($r); -} elsif ($0 =~ /getcount$/ || - (($ARGV[0] eq "-g" || $ARGV[0] eq "--getcount") && ((shift @ARGV), 1))) { - my($r) = getlogincount(); - quit(); - exit($r); -} elsif ($0 =~ /gmaccount$/ || - (($ARGV[0] eq "-gm" || $ARGV[0] eq "--gm") && ((shift @ARGV), 1))) { - my($r) = changegmlevel($ARGV[0], $ARGV[1]); - quit(); - exit($r); -} elsif ($0 =~ /id$/ || - (($ARGV[0] eq "-i" || $ARGV[0] eq "--id") && ((shift @ARGV), 1))) { - my($r) = idaccount($ARGV[0]); - quit(); - exit($r); -} elsif ($0 =~ /infoaccount$/ || - (($ARGV[0] eq "-info" || $ARGV[0] eq "--info") && ((shift @ARGV), 1))) { - my($r) = infoaccount($ARGV[0]); - quit(); - exit($r); -} elsif ($0 =~ /kami$/ || - (($ARGV[0] eq "-kami" || $ARGV[0] eq "--kami") && ((shift @ARGV), 1))) { - my($r) = sendbroadcast(0, $ARGV[0]); - quit(); - exit($r); -} elsif ($0 =~ /kamib$/ || - (($ARGV[0] eq "-kamib" || $ARGV[0] eq "--kamib") && ((shift @ARGV), 1))) { - my($r) = sendbroadcast(0x10, $ARGV[0]); - quit(); - exit($r); -} elsif ($0 =~ /ladminlanguage$/ || - (($ARGV[0] eq "-lang" || $ARGV[0] eq "--language") && ((shift @ARGV), 1))) { - my($r) = changelanguage($ARGV[0]); - quit(); - exit($r); -} elsif ($0 =~ /listaccount$/ || - (($ARGV[0] eq "-l" || $ARGV[0] eq "--list") && ((shift @ARGV), 1))) { - my($r) = listaccount(int($ARGV[0]), int($ARGV[1]), 0); # 0: to list all - quit(); - exit($r); -} elsif ($0 =~ /listBanaccount$/ || - (($ARGV[0] eq "-lBan" || $ARGV[0] eq "--listBan") && ((shift @ARGV), 1))) { - my($r) = listaccount(int($ARGV[0]), int($ARGV[1]), 3); # 3: to list only accounts with state or banished - quit(); - exit($r); -} elsif ($0 =~ /listGMaccount$/ || - (($ARGV[0] eq "-lGM" || $ARGV[0] eq "--listGM") && ((shift @ARGV), 1))) { - my($r) = listaccount(int($ARGV[0]), int($ARGV[1]), 1); # 1: to list only GM - quit(); - exit($r); -} elsif ($0 =~ /listOKaccount$/ || - (($ARGV[0] eq "-lOK" || $ARGV[0] eq "--listOK") && ((shift @ARGV), 1))) { - my($r) = listaccount(int($ARGV[0]), int($ARGV[1]), 4); # 4: to list only accounts without state and not banished - quit(); - exit($r); -} elsif ($0 =~ /loginserverversion$/ || - (($ARGV[0] eq "-v" || $ARGV[0] eq "--version") && ((shift @ARGV), 1))) { - my($r) = checkloginversion(); - quit(); - exit($r); -} elsif ($0 =~ /memoaccount$/ || - (($ARGV[0] eq "-m" || $ARGV[0] eq "--memo") && ((shift @ARGV), 1))) { - my($r) = changememo($ARGV[0], $ARGV[1]); - quit(); - exit($r); -} elsif ($0 =~ /nameaccount$/ || - (($ARGV[0] eq "-n" || $ARGV[0] eq "--name") && ((shift @ARGV), 1))) { - my($r) = nameaccount(int($ARGV[0])); - quit(); - exit($r); -} elsif ($0 =~ /passwdaccount$/ || - (($ARGV[0] eq "-p" || $ARGV[0] eq "--passwd") && ((shift @ARGV), 1))) { - my($r) = changepasswd($ARGV[0], $ARGV[1]); - quit(); - exit($r); -} elsif ($0 =~ /reloadGM$/ || - (($ARGV[0] eq "-r" || $ARGV[0] eq "--reloadGM") && ((shift @ARGV), 1))) { - my($r) = reloadGM(); - quit(); - exit($r); -} elsif ($0 =~ /searchaccount$/ || - (($ARGV[0] eq "-s" || $ARGV[0] eq "--search") && ((shift @ARGV), 1))) { - my($r) = searchaccount($ARGV[0], $ARGV[1]); - quit(); - exit($r); -} elsif ($0 =~ /sexaccount$/ || - (($ARGV[0] eq "-sex" || $ARGV[0] eq "--sex") && ((shift @ARGV), 1))) { - my($r) = changesex($ARGV[0], $ARGV[1]); - quit(); - exit($r); -} elsif ($0 =~ /stateaccount$/ || - (($ARGV[0] eq "-t" || $ARGV[0] eq "--state") && ((shift @ARGV), 1))) { - my($r) = changestate($ARGV[0], $ARGV[1], $ARGV[2]); - quit(); - exit($r); -} elsif ($0 =~ /timeaddaccount$/ || - (($ARGV[0] eq "-ta" || $ARGV[0] eq "--timeadd") && ((shift @ARGV), 1))) { - my($r) = timeaddaccount($ARGV[0], $ARGV[1]); - quit(); - exit($r); -} elsif ($0 =~ /timesetaccount$/ || - (($ARGV[0] eq "-ts" || $ARGV[0] eq "--timeset") && ((shift @ARGV), 1))) { - my($r) = timesetaccount($ARGV[0], $ARGV[1], $ARGV[2]); - quit(); - exit($r); -} elsif ($0 =~ /unbanaccount$/ || $0 =~ /unbanishaccount$/ || - (($ARGV[0] eq "-uba" || $ARGV[0] eq "--unban" || $ARGV[0] eq "--unbanish") && ((shift @ARGV), 1))) { - my($r) = bansetaccount($ARGV[0], 0, ""); - quit(); - exit($r); -} elsif ($0 =~ /unblockaccount$/ || - (($ARGV[0] eq "-ubl" || $ARGV[0] eq "--unblock") && ((shift @ARGV), 1))) { - my($r) = changestate($ARGV[0], 0, ""); - quit(); - exit($r); -} elsif ($0 =~ /whoaccount$/ || - (($ARGV[0] eq "-w" || $ARGV[0] eq "--who") && ((shift @ARGV), 1))) { - my($r) = whoaccount($ARGV[0]); - quit(); - exit($r); -} - -#------------------------------------------------------------------------- -if ($defaultlanguage eq "F") { - print "Lecture de la version du serveur de login...\n"; -} else { - print "Reading of the version of the login-server...\n"; -} -checkloginversion(); - -# Set the prompt line -my($term) = new Term::ReadLine "ladmin"; - -# Here begin the infinite loop to read prompts -while(1) { - # Displaying of the prompt - print "\n"; - if ($defaultlanguage eq "F") { - printf "\033[32mPour afficher les commandes, tapez 'Entr馥'.\033[0m\n"; - } else { - printf "\033[32mTo list the commands, type 'enter'.\033[0m\n"; - } - my($cmd) = $term->readline("ladmin> "); - # split and recovery of the input - chomp $cmd; # remove cariage return - $cmd =~ s/\x1b\[\d*\w//g; # remove (esc)[(number)(1alpha) = screen control sequence - $cmd =~ s/[\x00-\x1f]//g; # remove control char - my($command, $parameters) = split /\s+/,$cmd,2; # extract command and parameters - $command = lc($command); # command in lowercase - my(@paramlist) = split /\s+/,$parameters; # get list of parameters - - if ($command eq "?" || $command eq "") { - $command = "aide" if ($defaultlanguage eq "F"); - $command = "help" if ($defaultlanguage ne "F"); - } - - # Analyse of the command - eval { -# help - if ("aide" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? - displayhelp("aide", $paramlist[0]); - } elsif ("help" =~ /^\Q$command/) { - displayhelp("help", $paramlist[0]); - -# general commands - } elsif ("add" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(.*)/)) { - addaccount($paramlist[0], $paramlist[1], $paramlist[2]); # - } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { - addaccount($paramlist[0], $paramlist[1], ""); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(.*)/)) { - addaccount($paramlist[0], $paramlist[1], $paramlist[2]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { - addaccount($paramlist[0], $paramlist[1], ""); # - } else { - @paramlist = split /\s+/,$parameters; - addaccount($paramlist[0], $paramlist[1], $paramlist[2]); # - } - - } elsif ($command eq "ban" || ("banish" =~ /^\Q$command/ && length($command) >= 4)) { - if (@paramlist = ($parameters =~ m/^(\S+)\s+(\S+)\s+"(.*)"/)) { # yyyy/mm/dd hh:mm:ss - bansetaccount($paramlist[2], $paramlist[0], $paramlist[1]); # yyyy/mm/dd [hh:mm:ss] - } elsif (@paramlist = ($parameters =~ m/^(\S+)\s+(\S+)\s+'(.*)'/)) { # yyyy/mm/dd hh:mm:ss - bansetaccount($paramlist[2], $paramlist[0], $paramlist[1]); # yyyy/mm/dd [hh:mm:ss] - } else { - @paramlist = split /\s+/,$parameters,3; # yyyy/mm/dd hh:mm:ss - bansetaccount($paramlist[2], $paramlist[0], $paramlist[1]); # yyyy/mm/dd [hh:mm:ss] - } - - } elsif (("banadd" =~ /^\Q$command/ || $command eq "ba") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { - banaddaccount($paramlist[0], $paramlist[1]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { - banaddaccount($paramlist[0], $paramlist[1]); # - } else { - @paramlist = split /\s+/,$parameters; - banaddaccount($paramlist[0], $paramlist[1]); # - } - - } elsif (("banset" =~ /^\Q$command/ || $command eq "bs") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(\S+)/)) { - bansetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] - } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { - bansetaccount($paramlist[0], $paramlist[1], "23:59:59"); # yyyy/mm/dd [hh:mm:ss] - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(\S+)/)) { - bansetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { - bansetaccount($paramlist[0], $paramlist[1], "23:59:59"); # yyyy/mm/dd [hh:mm:ss] - } else { - @paramlist = split /\s+/,$parameters; - bansetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] - } - - } elsif ("block" =~ /^\Q$command/ && length($command) >= 2) { - if (@paramlist = ($parameters =~ m/^"(.*)"/)) { - changestate($paramlist[0], 5, ""); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { - changestate($paramlist[0], 5, ""); # - } else { - @paramlist = split /\s+/,$parameters,1; - changestate($paramlist[0], 5, ""); # - } - - } elsif ("check" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(.*)/)) { - checkaccount($paramlist[0], $paramlist[1]); # - } elsif (@paramlist = ($parameters =~ m/^"(.*)"/)) { - checkaccount($paramlist[0], ""); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(.*)/)) { - checkaccount($paramlist[0], $paramlist[1]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { - checkaccount($paramlist[0], ""); # - } else { - @paramlist = split /\s+/,$parameters; - checkaccount($paramlist[0], $paramlist[1]); # - } - - } elsif ("create" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(\S+)\s+(.*)/)) { - createaccount($paramlist[0], $paramlist[1], $paramlist[2], $paramlist[3]); # - } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(\S+)/)) { - createaccount($paramlist[0], $paramlist[1], $paramlist[2], ""); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(\S+)\s+(.*)/)) { - createaccount($paramlist[0], $paramlist[1], $paramlist[2], $paramlist[3]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(\S+)/)) { - createaccount($paramlist[0], $paramlist[1], $paramlist[2], ""); # - } else { - @paramlist = split /\s+/,$parameters; - createaccount($paramlist[0], $paramlist[1], $paramlist[2], $paramlist[3]); # - } - - } elsif ("del" =~ /^\Q$command/ || "delete" =~ /^\Q$command/) { - if (@paramlist = ($parameters =~ m/^"(.*)"/)) { - delaccount($paramlist[0]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { - delaccount($paramlist[0]); # - } else { - @paramlist = split /\s+/,$parameters,1; - delaccount($paramlist[0]); # - } - - } elsif ("email" =~ /^\Q$command/ && $command ne "e") { # check 1 letter command: 'email', 'end' or 'exit'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { - changeemail($paramlist[0], $paramlist[1]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { - changeemail($paramlist[0], $paramlist[1]); # - } else { - @paramlist = split /\s+/,$parameters; - changeemail($paramlist[0], $paramlist[1]); # - } - - } elsif ("getcount" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? - getlogincount(); - - } elsif ("gm" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { - changegmlevel($paramlist[0], int($paramlist[1])); # - } elsif (@paramlist = ($parameters =~ m/^"(.*)"/)) { - changegmlevel($paramlist[0], 0); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { - changegmlevel($paramlist[0], int($paramlist[1])); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { - changegmlevel($paramlist[0], 0); # - } else { - @paramlist = split /\s+/,$parameters; - changegmlevel($paramlist[0], int($paramlist[1])); # - } - - } elsif ("id" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? - if (@paramlist = ($parameters =~ m/^"(.*)"/)) { - idaccount($paramlist[0]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { - idaccount($paramlist[0]); # - } else { - @paramlist = split /\s+/,$parameters,1; - idaccount($paramlist[0]); # - } - - } elsif ("info" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? - infoaccount(int($paramlist[0])); # - - } elsif ($command eq "kami") { # check all letters command: 'kami' or 'kamib'? - @paramlist = split /\s+/,$parameters,1; - sendbroadcast(0, $paramlist[0]); # - - } elsif ($command eq "kamib") { # check all letters command: 'kami' or 'kamib'? - @paramlist = split /\s+/,$parameters,1; - sendbroadcast(0x10, $paramlist[0]); # - - } elsif ("language" =~ /^\Q$command/ && $command ne "l") { # check 1 letter command: 'list' or 'language'? - changelanguage($paramlist[0]); # - - } elsif (("list" =~ /^\Q$command/ || $command eq "ls") && $command ne "l") { # check 1 letter command: 'list' or 'language'? - listaccount(int($paramlist[0]), int($paramlist[1]), 0); # [start_id [end_id]] 0: to list all - - } elsif (("listban" =~ /^\Q$command/ || $command eq "lsban") && $command ne "l") { # need to specificaly write Ban to have this list # check 1 letter command: 'list' or 'language'? - listaccount(int($paramlist[0]), int($paramlist[1]), 3); # [start_id [end_id]] 3: to list only accounts with state or banished - - } elsif (("listgm" =~ /^\Q$command/ || $command eq "lsgm") && $command ne "l") { # need to specificaly write GM to have this list # check 1 letter command: 'list' or 'language'? - listaccount(int($paramlist[0]), int($paramlist[1]), 1); # [start_id [end_id]] 1: to list only GM - - } elsif (("listok" =~ /^\Q$command/ || $command eq "lsok") && $command ne "l") { # need to specificaly write OK to have this list # check 1 letter command: 'list' or 'language'? - listaccount(int($paramlist[0]), int($paramlist[1]), 4); # [start_id [end_id]] 4: to list only accounts without state and not banished - - } elsif ("memo" =~ /^\Q$command/) { - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(.*)/)) { - changememo($paramlist[0], $paramlist[1]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(.*)/)) { - changememo($paramlist[0], $paramlist[1]); # - } else { - @paramlist = split /\s+/,$parameters,2; - changememo($paramlist[0], $paramlist[1]); # - } - - } elsif ("name" =~ /^\Q$command/) { - nameaccount(int($paramlist[0])); # - - } elsif ("passwd" =~ /^\Q$command/ || "password" =~ /^\Q$command/) { - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(.*)/)) { - changepasswd($paramlist[0], $paramlist[1]); # - } elsif (@paramlist = ($parameters =~ m/^"(.*)"/)) { - changepasswd($paramlist[0], ""); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(.*)/)) { - changepasswd($paramlist[0], $paramlist[1]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { - changepasswd($paramlist[0], ""); # - } else { - @paramlist = split /\s+/,$parameters,2; - changepasswd($paramlist[0], $paramlist[1]); # - } - - } elsif ("reloadgm" =~ /^\Q$command/) { - reloadGM(); - - } elsif ("search" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? - $command ne "se") { # check 2 letters command: 'search' or 'sex'? - if (@paramlist = ($parameters =~ m/^(-{1,2}[re]\S*)\s+(.*)/)) { - searchaccount($paramlist[0], $paramlist[1]); # -r/-e/--expr/--regex | - } else { - @paramlist = split /\s+/,$parameters,1; - searchaccount($paramlist[0], ""); # -r/-e/--expr/--regex | - } - - } elsif ("sex" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? - $command ne "se") { # check 2 letters command: 'search' or 'sex'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { - changesex($paramlist[0], $paramlist[1]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { - changesex($paramlist[0], $paramlist[1]); # - } else { - @paramlist = split /\s+/,$parameters; - changesex($paramlist[0], $paramlist[1]); # - } - - } elsif ("state" =~ /^\Q$command/ && $command ne "s") { # check 1 letter command: 'search', 'state' or 'sex'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\d+)\s+(.*)/)) { - changestate($paramlist[0], int($paramlist[1]), $paramlist[2]); # - } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\d+)/)) { - changestate($paramlist[0], int($paramlist[1]), ""); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\d+)\s+(.*)/)) { - changestate($paramlist[0], int($paramlist[1]), $paramlist[2]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\d+)/)) { - changestate($paramlist[0], int($paramlist[1]), ""); # - } else { - @paramlist = split /\s+/,$parameters,3; - changestate($paramlist[0], int($paramlist[1]), $paramlist[2]); # - } - - } elsif (("timeadd" =~ /^\Q$command/ || $command eq "ta") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { - timeaddaccount($paramlist[0], $paramlist[1]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { - timeaddaccount($paramlist[0], $paramlist[1]); # - } else { - @paramlist = split /\s+/,$parameters; - timeaddaccount($paramlist[0], $paramlist[1]); # - } - - } elsif (("timeset" =~ /^\Q$command/ || $command eq "ts") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? - if (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)\s+(\S+)/)) { - timesetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] - } elsif (@paramlist = ($parameters =~ m/^"(.*)"\s+(\S+)/)) { - timesetaccount($paramlist[0], $paramlist[1], "23:59:59"); # yyyy/mm/dd [hh:mm:ss] - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)\s+(\S+)/)) { - timesetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] - } elsif (@paramlist = ($parameters =~ m/^'(.*)'\s+(\S+)/)) { - timesetaccount($paramlist[0], $paramlist[1], "23:59:59"); # yyyy/mm/dd [hh:mm:ss] - } else { - @paramlist = split /\s+/,$parameters; - timesetaccount($paramlist[0], $paramlist[1], $paramlist[2]); # yyyy/mm/dd [hh:mm:ss] - } - - } elsif ($command eq "unban" || ("unbanish" =~ /^\Q$command/ && length($command) >= 4)) { - if (@paramlist = ($parameters =~ m/^"(.*)"/)) { - bansetaccount($paramlist[0], 0, ""); # yyyy/mm/dd [hh:mm:ss] - } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { - bansetaccount($paramlist[0], 0, ""); # yyyy/mm/dd [hh:mm:ss] - } else { - @paramlist = split /\s+/,$parameters,1; - bansetaccount($paramlist[0], 0, ""); # yyyy/mm/dd [hh:mm:ss] - } - - } elsif ("unblock" =~ /^\Q$command/ && length($command) >= 4) { - if (@paramlist = ($parameters =~ m/^"(.*)"/)) { - changestate($paramlist[0], 0, ""); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { - changestate($paramlist[0], 0, ""); # - } else { - @paramlist = split /\s+/,$parameters,1; - changestate($paramlist[0], 0, ""); # - } - - } elsif ("version" =~ /^\Q$command/) { - checkloginversion(); - - } elsif ("who" =~ /^\Q$command/) { - if (@paramlist = ($parameters =~ m/^"(.*)"/)) { - whoaccount($paramlist[0]); # - } elsif (@paramlist = ($parameters =~ m/^'(.*)'/)) { - whoaccount($paramlist[0]); # - } else { - @paramlist = split /\s+/,$parameters,1; - whoaccount($paramlist[0]); # - } - -# quit - } elsif ("quit" =~ /^\Q$command/ || - (("end" =~ /^\Q$command/ || "exit" =~ /^\Q$command/) && $command ne "e")) { # check 1 letter command: 'email', 'end' or 'exit'? - last; - -# unknown command - } elsif ($command) { - if ($defaultlanguage eq "F") { - print "Commande inconnue [".$command."]\n"; - } else { - print "Unknown command [".$command."]\n"; - } - } -# $term->addhistory($cmd) if $command; - }; - if ($@) { - if ($defaultlanguage eq "F") { - print "Erreur [".$command."]\n$@"; - } else { - print "Error [".$command."]\n$@"; - } - } -}; - -# End of the software -quit(); - -if ($defaultlanguage eq "F") { - print "Au revoir.\n"; -} else { - print "Bye.\n"; -} -exit(0); - -#-------------------------------------------------------------------------- - -# Sub-function: Displaying of the version of the login-server -sub checkloginversion() { - print $so pack("v",30000); # 0x7530 - $so->flush(); - $buf = readso(10); - # Analyse du Packet - my($ret, $maver, $miver, $rev, $dev, $mod, $type, $mdver) = unpack("vc6v", $buf); - if ($ret != 30001) { #0x7531 - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - exit(6); - } - - print " Login-Server [$loginserverip:$loginserverport]\n"; - printf " eAthena version %s-%d.%d", ("stable", "dev")[$dev], $maver, $miver; - printf " revision %d", $rev if $rev; - printf "%s%d.\n", ("", "-mod")[$mod], $mdver; - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Displaying of the help -sub displayhelp() { - my($help, $receivedcommand) = @_; - - my($command) = lc($receivedcommand); # command in lowercase - - if ($command eq "") { - $command = "not a command"; # any value that is not a command - } - - if ($command eq "?") { - $command = "aide" if ($defaultlanguage eq "F"); - $command = "help" if ($defaultlanguage ne "F"); - } - - if ($help eq "aide") { - if ("aide" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? - printf "aide/help/?\n"; - printf " Affiche la description des commandes\n"; - printf "aide/help/? [commande]\n"; - printf " Affiche la description de la commande specifi馥\n"; - } elsif ("help" =~ /^\Q$command/) { - printf "aide/help/?\n"; - printf " Display the description of the commands\n"; - printf "aide/help/? [command]\n"; - printf " Display the description of the specified command\n"; - } elsif ("add" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? - printf "add \n"; - printf " Cr馥 un compte avec l'email par d馭aut (a\@a.com).\n"; - printf " Concernant le sexe, seule la premi鑽e lettre compte (F ou M).\n"; - printf " L'e-mail est a\@a.com (e-mail par d馭aut). C'est comme n'avoir aucun e-mail.\n"; - printf " Lorsque motdepasse est omis, la saisie se fait sans que la frappe se voit.\n"; - printf " add testname Male testpass\n"; - } elsif ($command eq "ban" || ("banish" =~ /^\Q$command/ && length($command) >= 4)) { - printf "ban/banish aaaa/mm/jj hh:mm:ss \n"; - printf " Change la date de fin de bannissement d'un compte.\n"; - printf " La diff駻ence avec banset est la position du nom du compte.\n"; - } elsif (("banadd" =~ /^\Q$command/ || $command eq "ba") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? - printf "banadd \n"; - printf " Ajoute ou soustrait du temps la date de banissement d'un compte.\n"; - printf " Les modificateurs sont construits comme suit:\n"; - printf " Valeur d'ajustement (-1, 1, +1, etc...)\n"; - printf " El駑ent modifi:\n"; - printf " a ou y: ann馥\n"; - printf " m: mois\n"; - printf " j ou d: jour\n"; - printf " h: heure\n"; - printf " mn: minute\n"; - printf " s: seconde\n"; - printf " banadd testname +1m-2mn1s-6a\n"; - printf " Cette exemple ajoute 1 mois et une seconde, et soustrait 2 minutes\n"; - printf " et 6 ans dans le m麥e temps.\n"; - printf "NOTE: Si vous modifez la date de banissement d'un compte non bani,\n"; - printf " vous indiquez comme date (le moment actuel +- les ajustements)\n"; - } elsif (("banset" =~ /^\Q$command/ || $command eq "bs") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? - printf "banset aaaa/mm/jj [hh:mm:ss]\n"; - printf " Change la date de fin de bannissement d'un compte.\n"; - printf " Heure par d馭aut: 23:59:59\n"; - printf "banset 0\n"; - printf " D饕anni un compte (0 = de-banni).\n"; - } elsif ("block" =~ /^\Q$command/ && length($command) >= 2) { - printf "block \n"; - printf " Place le status d'un compte 5 (You have been blocked by the GM Team).\n"; - printf " La commande est l'駲uivalent de state 5.\n"; - } elsif ("check" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? - printf "check \n"; - printf " V駻ifie la validit d'un mot de passe pour un compte\n"; - printf " NOTE: Le serveur n'enverra jamais un mot de passe.\n"; - printf " C'est la seule m騁hode que vous poss馘ez pour savoir\n"; - printf " si un mot de passe est le bon. L'autre m騁hode est\n"; - printf " d'avoir un acc鑚 ('physique') au fichier des comptes.\n"; - } elsif ("create" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? - printf "create \n"; - printf " Comme la commande add, mais avec l'e-mail en plus.\n"; - printf " create testname Male mon\@mail.com testpass\n"; - } elsif ("del" =~ /^\Q$command/ || "delete" =~ /^\Q$command/) { - printf "del \n"; - printf " Supprime un compte.\n"; - printf " La commande demande confirmation. Apr鑚 confirmation, le compte est d騁ruit.\n"; - } elsif ("email" =~ /^\Q$command/ && $command ne "e") { # check 1 letter command: 'email', 'end' or 'exit'? - printf "email \n"; - printf " Modifie l'e-mail d'un compte.\n"; - } elsif ("getcount" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? - printf "getcount\n"; - printf " Donne le nombre de joueurs en ligne par serveur de char.\n"; - } elsif ("gm" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? - printf "gm [Niveau_GM]\n"; - printf " Modifie le niveau de GM d'un compte.\n"; - printf " Valeur par d馭aut: 0 (suppression du niveau de GM).\n"; - printf " gm nomtest 80\n"; - } elsif ("id" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? - printf "id \n"; - printf " Donne l'id d'un compte.\n"; - } elsif ("info" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? - printf "info \n"; - printf " Affiche les informations sur un compte.\n"; - } elsif ($command eq "kami") { # check all letters command: 'kami' or 'kamib'? - printf "kami \n"; - printf " Envoi un message g駭駻al sur tous les serveurs de map (en jaune).\n"; - } elsif ($command eq "kamib") { # check all letters command: 'kami' or 'kamib'? - printf "kamib \n"; - printf " Envoi un message g駭駻al sur tous les serveurs de map (en bleu).\n"; - } elsif ("language" =~ /^\Q$command/ && $command ne "l") { # check 1 letter command: 'list' or 'language'? - printf("language \n"); - printf(" Change la langue d'affichage.\n"); - printf(" Langues possibles: 'Fran軋is' ou 'English'.\n"); - } elsif (("list" =~ /^\Q$command/ || $command eq "ls") && $command ne "l") { # check 1 letter command: 'list' or 'language'? - printf "list/ls [Premier_id [Dernier_id]]\n"; - printf " Affiche une liste de comptes.\n"; - printf " 'Premier_id', 'Dernier_id': indique les identifiants de d駱art et de fin.\n"; - printf " La recherche par nom n'est pas possible avec cette commande.\n"; - printf " list 10 9999999\n"; - } elsif (("listban" =~ /^\Q$command/ || $command eq "lsban") && $command ne "l") { # need to specificaly write Ban to have this list # check 1 letter command: 'list' or 'language'? - printf "listBan/lsBan [Premier_id [Dernier_id]]\n"; - printf " Comme list/ls, mais seulement pour les comptes GM avec un statut ou bannis.\n"; - } elsif (("listgm" =~ /^\Q$command/ || $command eq "lsgm") && $command ne "l") { # need to specificaly write GM to have this list # check 1 letter command: 'list' or 'language'? - printf "listGM/lsGM [Premier_id [Dernier_id]]\n"; - printf " Comme list/ls, mais seulement pour les comptes GM.\n"; - } elsif (("listok" =~ /^\Q$command/ || $command eq "lsok") && $command ne "l") { # need to specificaly write OK to have this list # check 1 letter command: 'list' or 'language'? - printf "listOK/lsOK [Premier_id [Dernier_id]]\n"; - printf " Comme list/ls, mais seulement pour les comptes sans statut et non bannis.\n"; - } elsif ("memo" =~ /^\Q$command/) { - printf "memo \n"; - printf " Modifie le m駑o d'un compte.\n"; - printf " 'memo': Il peut avoir jusqu' 253 caract鑽es (avec des espaces ou non).\n"; - } elsif ("name" =~ /^\Q$command/) { - printf "name \n"; - printf " Donne le nom d'un compte.\n"; - } elsif ("passwd" =~ /^\Q$command/ || "password" =~ /^\Q$command/) { - printf "passwd \n"; - printf " Change le mot de passe d'un compte.\n"; - printf " Lorsque nouveaumotdepasse est omis,\n"; - printf " la saisie se fait sans que la frappe ne se voit.\n"; - } elsif ("reloadgm" =~ /^\Q$command/) { - printf "reloadGM\n"; - printf " Reload GM configuration file\n"; - } elsif ("search" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? - $command ne "se") { # check 2 letters command: 'search' or 'sex'? - printf "search \n"; - printf " Cherche des comptes.\n"; - printf " Affiche les comptes dont les noms correspondent.\n"; - printf "search -r/-e/--expr/--regex \n"; - printf " Cherche des comptes par expression reguli鑽e.\n"; - printf " Affiche les comptes dont les noms correspondent.\n"; - } elsif ("sex" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? - $command ne "se") { # check 2 letters command: 'search' or 'sex'? - printf "sex \n"; - printf " Modifie le sexe d'un compte.\n"; - printf " sex testname Male\n"; - } elsif ("state" =~ /^\Q$command/ && $command ne "s") { # check 1 letter command: 'search', 'state' or 'sex'? - printf "state \n"; - printf " Change le statut d'un compte.\n"; - printf " 'nouveaustatut': Le statut est le m麥e que celui du packet 0x006a + 1.\n"; - printf " les possibilit駸 sont:\n"; - printf " 0 = Compte ok\n"; - printf " 1 = Unregistered ID\n"; - printf " 2 = Incorrect Password\n"; - printf " 3 = This ID is expired\n"; - printf " 4 = Rejected from Server\n"; - printf " 5 = You have been blocked by the GM Team\n"; - printf " 6 = Your Game's EXE file is not the latest version\n"; - printf " 7 = You are Prohibited to log in until...\n"; - printf " 8 = Server is jammed due to over populated\n"; - printf " 9 = No MSG\n"; - printf " 100 = This ID has been totally erased\n"; - printf " all other values are 'No MSG', then use state 9 please.\n"; - printf " 'message_erreur_7': message du code erreur 6 =\n"; - printf " = Your are Prohibited to log in until... (packet 0x006a)\n"; - } elsif (("timeadd" =~ /^\Q$command/ || $command eq "ta") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? - printf "timeadd \n"; - printf " Ajoute/soustrait du temps la limite de validit d'un compte.\n"; - printf " Le modificateur est compos comme suit:\n"; - printf " Valeur modificatrice (-1, 1, +1, etc...)\n"; - printf " El駑ent modifi:\n"; - printf " a ou y: ann馥\n"; - printf " m: mois\n"; - printf " j ou d: jour\n"; - printf " h: heure\n"; - printf " mn: minute\n"; - printf " s: seconde\n"; - printf " timeadd testname +1m-2mn1s-6a\n"; - printf " Cette exemple ajoute 1 mois et une seconde, et soustrait 2 minutes\n"; - printf " et 6 ans dans le m麥e temps.\n"; - printf "NOTE: Vous ne pouvez pas modifier une limite de validit illimit馥. Si vous\n"; - printf " d駸irez le faire, c'est que vous voulez probablement cr馥r un limite de\n"; - printf " validit limit馥. Donc, en premier, fix une limite de valitid.\n"; - } elsif (("timeset" =~ /^\Q$command/ || $command eq "ts") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? - printf "timeset aaaa/mm/jj [hh:mm:ss]\n"; - printf " Change la limite de validit d'un compte.\n"; - printf " Heure par d馭aut: 23:59:59\n"; - printf "timeset 0\n"; - printf " Donne une limite de validit illimit馥 (0 = illimit馥).\n"; - } elsif ($command eq "unban" || ("unbanish" =~ /^\Q$command/ && length($command) >= 4)) { - printf "unban/unbanish \n"; - printf " Ote le banissement d'un compte.\n"; - printf " La commande est l'駲uivalent de banset 0.\n"; - } elsif ("unblock" =~ /^\Q$command/ && length($command) >= 4) { - printf "unblock \n"; - printf " Place le status d'un compte 0 (Compte ok).\n"; - printf " La commande est l'駲uivalent de state 0.\n"; - } elsif ("version" =~ /^\Q$command/) { - printf "version\n"; - printf " Affiche la version du login-serveur.\n"; - } elsif ("who" =~ /^\Q$command/) { - printf "who \n"; - printf " Affiche les informations sur un compte.\n"; - } elsif ("quit" =~ /^\Q$command/ || - (("end" =~ /^\Q$command/ || "exit" =~ /^\Q$command/) && $command ne "e")) { # check 1 letter command: 'email', 'end' or 'exit'?\n"; - printf "quit/end/exit\n"; - printf " Fin du programme d'administration.\n"; - } else { - if ($receivedcommand ne "") { - printf "Commande inconnue [%s] pour l'aide. Affichage de toutes les commandes.\n", $receivedcommand; - } - print << "ENDOFAIDE"; - aide/help/? -- Affiche cet aide - aide/help/? [commande] -- Affiche l'aide de la commande - add -- Cr馥 un compte (sans email) - ban/banish aaaa/mm/jj hh:mm:ss -- Change la date finale de banismnt - banadd/ba -- Ajout/soustrait du temps la - exemple: ba moncompte +1m-2mn1s-2y date finale de banissement - banset/bs aaaa/mm/jj [hh:mm:ss] -- Change la date fin de banisemnt - banset/bs 0 -- D-banis un compte. - block -- Mets le status d'un compte 5 (blocked by the GM Team) - check -- V駻ifie un mot de passe d'un compte - create -- Cr馥 un compte (avec email) - del -- Supprime un compte - email -- Modifie l'e-mail d'un compte - getcount -- Donne le nb de joueurs en ligne - gm [Niveau_GM] -- Modifie le niveau de GM d'un compte - id -- Donne l'id d'un compte - info -- Affiche les infos sur un compte - kami -- Envoi un message g駭駻al (en jaune) - kamib -- Envoi un message g駭駻al (en bleu) - language -- Change la langue d'affichage. - list/ls [Premier_id [Dernier_id] ] -- Affiche une liste de comptes - listBan/lsBan [Premier_id [Dernier_id] ]-- Affiche une liste de comptes - avec un statut ou bannis - listGM/lsGM [Premier_id [Dernier_id] ] -- Affiche une liste de comptes GM - listOK/lsOK [Premier_id [Dernier_id] ] -- Affiche une liste de comptes - sans status et non bannis - memo -- Modifie le memo d'un compte - name -- Donne le nom d'un compte - passwd -- Change le mot de passe d'un compte - quit/end/exit -- Fin du programme d'administation - reloadGM -- Recharger le fichier de config des GM - search -- Cherche des comptes - search -e/-r/--expr/--regex -- Cherche des comptes par REGEX - sex -- Modifie le sexe d'un compte - state -- Change le statut d'1 compte - timeadd/ta -- Ajout/soustrait du temps la - exemple: ta moncompte +1m-2mn1s-2y limite de validit - timeset/ts aaaa/mm/jj [hh:mm:ss] -- Change la limite de validit - timeset/ts 0 -- limite de validit = illimit馥 - unban/unbanish -- Ote le banissement d'un compte - unblock -- Mets le status d'un compte 0 (Compte ok) - version -- Donne la version du login-serveur - who -- Affiche les infos sur un compte -ENDOFAIDE - printf(" Note: Pour les noms de compte avec des espaces, tapez \"\" (ou ').\n"); - } - } else { - if ("aide" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? - printf "aide/help/?\n"; - printf " Display the description of the commands\n"; - printf "aide/help/? [command]\n"; - printf " Display the description of the specified command\n"; - } elsif ("help" =~ /^\Q$command/) { - printf "aide/help/?\n"; - printf " Display the description of the commands\n"; - printf "aide/help/? [command]\n"; - printf " Display the description of the specified command\n"; - } elsif ("add" =~ /^\Q$command/ && $command ne "a") { # check 1 letter command: 'aide' or 'add'? - printf "add \n"; - printf " Create an account with the default email (a\@a.com).\n"; - printf " Concerning the sex, only the first letter is used (F or M).\n"; - printf " The e-mail is set to a\@a.com (default e-mail). It's like to have no e-mail.\n"; - printf " When the password is omitted,\n"; - printf " the input is done without displaying of the pressed keys.\n"; - printf " add testname Male testpass\n"; - } elsif ($command eq "ban" || ("banish" =~ /^\Q$command/ && length($command) >= 4)) { - printf "ban/banish yyyy/mm/dd hh:mm:ss \n"; - printf " Changes the final date of a banishment of an account.\n"; - printf " The difference with banset is the position of the account name.\n"; - } elsif (("banadd" =~ /^\Q$command/ || $command eq "ba") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? - printf "banadd \n"; - printf " Adds or substracts time from the final date of a banishment of an account.\n"; - printf " Modifier is done as follows:\n"; - printf " Adjustment value (-1, 1, +1, etc...)\n"; - printf " Modified element:\n"; - printf " a or y: year\n"; - printf " m: month\n"; - printf " j or d: day\n"; - printf " h: hour\n"; - printf " mn: minute\n"; - printf " s: second\n"; - printf " banadd testname +1m-2mn1s-6y\n"; - printf " this example adds 1 month and 1 second, and substracts 2 minutes\n"; - printf " and 6 years at the same time.\n"; - printf "NOTE: If you modify the final date of a non-banished account,\n"; - printf " you fix the final date to (actual time +- adjustments)\n"; - } elsif (("banset" =~ /^\Q$command/ || $command eq "bs") && $command ne "b") { # check 1 letter command: 'ba' or 'bs'? - printf "banset yyyy/mm/dd [hh:mm:ss]\n"; - printf " Changes the final date of a banishment of an account.\n"; - printf " Default time: 23:59:59\n"; - printf "banset 0\n"; - printf " Set a non-banished account (0 = unbanished).\n"; - } elsif ("block" =~ /^\Q$command/ && length($command) >= 2) { - printf "block \n"; - printf " Set state 5 (You have been blocked by the GM Team) to an account.\n"; - printf " Same command of state 5.\n"; - } elsif ("check" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? - printf "check \n"; - printf " Check the validity of a password for an account.\n"; - printf " NOTE: Server will never sends back a password.\n"; - printf " It's the only method you have to know if a password is correct.\n"; - printf " The other method is to have a ('physical') access to the accounts file.\n"; - } elsif ("create" =~ /^\Q$command/ && $command ne "c") { # check 1 letter command: 'check' or 'create'? - printf "create \n"; - printf " Like the 'add' command, but with e-mail moreover.\n"; - printf " create testname Male my\@mail.com testpass\n"; - } elsif ("del" =~ /^\Q$command/ || "delete" =~ /^\Q$command/) { - printf "del \n"; - printf " Remove an account.\n"; - printf " This order requires confirmation. After confirmation, the account is deleted.\n"; - } elsif ("email" =~ /^\Q$command/ && $command ne "e") { # check 1 letter command: 'email', 'end' or 'exit'? - printf "email \n"; - printf " Modify the e-mail of an account.\n"; - } elsif ("getcount" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? - printf "getcount\n"; - printf " Give the number of players online on all char-servers.\n"; - } elsif ("gm" =~ /^\Q$command/ && $command ne "g") { # check 1 letter command: 'getcount' or 'gm'? - printf "gm [GM_level]\n"; - printf " Modify the GM level of an account.\n"; - printf " Default value remove GM level (GM level = 0).\n"; - printf " gm testname 80\n"; - } elsif ("id" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? - printf "id \n"; - printf " Give the id of an account.\n"; - } elsif ("info" =~ /^\Q$command/ && $command ne "i") { # check 1 letter command: 'id' or 'info'? - printf "info \n"; - printf " Display complete information of an account.\n"; - } elsif ($command eq "kami") { # check all letters command: 'kami' or 'kamib'? - printf "kami \n"; - printf " Sends a broadcast message on all map-server (in yellow).\n"; - } elsif ($command eq "kamib") { # check all letters command: 'kami' or 'kamib'? - printf "kamib \n"; - printf " Sends a broadcast message on all map-server (in blue).\n"; - } elsif ("language" =~ /^\Q$command/ && $command ne "l") { # check 1 letter command: 'list' or 'language'? - printf("language \n"); - printf(" Change the language of displaying.\n"); - printf(" Possible languages: Fran軋is or English.\n"); - } elsif (("list" =~ /^\Q$command/ || $command eq "ls") && $command ne "l") { # check 1 letter command: 'list' or 'language'? - printf "list/ls [start_id [end_id]]\n"; - printf " Display a list of accounts.\n"; - printf " 'start_id', 'end_id': indicate end and start identifiers.\n"; - printf " Research by name is not possible with this command.\n"; - printf " list 10 9999999\n"; - } elsif (("listban" =~ /^\Q$command/ || $command eq "lsban") && $command ne "l") { # need to specificaly write Ban to have this list # check 1 letter command: 'list' or 'language'? - printf "listBan/lsBan [start_id [end_id]]\n"; - printf " Like list/ls, but only for accounts with state or banished.\n"; - } elsif (("listgm" =~ /^\Q$command/ || $command eq "lsgm") && $command ne "l") { # need to specificaly write GM to have this list # check 1 letter command: 'list' or 'language'? - printf "listGM/lsGM [start_id [end_id]]\n"; - printf " Like list/ls, but only for GM accounts.\n"; - } elsif (("listok" =~ /^\Q$command/ || $command eq "lsok") && $command ne "l") { # need to specificaly write OK to have this list # check 1 letter command: 'list' or 'language'? - printf "listOK/lsOK [start_id [end_id]]\n"; - printf " Like list/ls, but only for accounts without state and not banished.\n"; - } elsif ("memo" =~ /^\Q$command/) { - printf "memo \n"; - printf " Modify the memo of an account.\n"; - printf " 'memo': it can have until 253 characters (with spaces or not).\n"; - } elsif ("name" =~ /^\Q$command/) { - printf "name \n"; - printf " Give the name of an account.\n"; - } elsif ("passwd" =~ /^\Q$command/ || "password" =~ /^\Q$command/) { - printf "passwd \n"; - printf " Change the password of an account.\n"; - printf " When new password is omitted,\n"; - printf " the input is done without displaying of the pressed keys.\n"; - } elsif ("reloadgm" =~ /^\Q$command/) { - printf "reloadGM\n"; - printf " Reload GM configuration file\n"; - } elsif ("search" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? - $command ne "se") { # check 2 letters command: 'search' or 'sex'? - printf "search \n"; - printf " Seek accounts.\n"; - printf " Displays the accounts whose names correspond.\n"; - printf "search -r/-e/--expr/--regex \n"; - printf " Seek accounts by regular expression.\n"; - printf " Displays the accounts whose names correspond.\n"; - } elsif ("sex" =~ /^\Q$command/ && $command ne "s" && # check 1 letter command: 'search', 'state' or 'sex'? - $command ne "se") { # check 2 letters command: 'search' or 'sex'? - printf "sex \n"; - printf " Modify the sex of an account.\n"; - printf " sex testname Male\n"; - } elsif ("state" =~ /^\Q$command/ && $command ne "s") { # check 1 letter command: 'search', 'state' or 'sex'? - printf "state \n"; - printf " Change the state of an account.\n"; - printf " 'new_state': state is the state of the packet 0x006a + 1.\n"; - printf " The possibilities are:\n"; - printf " 0 = Account ok\n"; - printf " 1 = Unregistered ID\n"; - printf " 2 = Incorrect Password\n"; - printf " 3 = This ID is expired\n"; - printf " 4 = Rejected from Server\n"; - printf " 5 = You have been blocked by the GM Team\n"; - printf " 6 = Your Game's EXE file is not the latest version\n"; - printf " 7 = You are Prohibited to log in until...\n"; - printf " 8 = Server is jammed due to over populated\n"; - printf " 9 = No MSG\n"; - printf " 100 = This ID has been totally erased\n"; - printf " all other values are 'No MSG', then use state 9 please.\n"; - printf " 'error_message_#7': message of the code error 6\n"; - printf " = Your are Prohibited to log in until... (packet 0x006a)\n"; - } elsif (("timeadd" =~ /^\Q$command/ || $command eq "ta") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? - printf "timeadd \n"; - printf " Adds or substracts time from the validity limit of an account.\n"; - printf " Modifier is done as follows:\n"; - printf " Adjustment value (-1, 1, +1, etc...)\n"; - printf " Modified element:\n"; - printf " a or y: year\n"; - printf " m: month\n"; - printf " j or d: day\n"; - printf " h: hour\n"; - printf " mn: minute\n"; - printf " s: second\n"; - printf " timeadd testname +1m-2mn1s-6y\n"; - printf " this example adds 1 month and 1 second, and substracts 2 minutes\n"; - printf " and 6 years at the same time.\n"; - printf "NOTE: You can not modify a unlimited validity limit.\n"; - printf " If you want modify it, you want probably create a limited validity limit.\n"; - printf " So, at first, you must set the validity limit to a date/time.\n"; - } elsif (("timeset" =~ /^\Q$command/ || $command eq "ts") && $command ne "t") { # check 1 letter command: 'ta' or 'ts'? - printf "timeset yyyy/mm/dd [hh:mm:ss]\n"; - printf " Changes the validity limit of an account.\n"; - printf " Default time: 23:59:59\n"; - printf "timeset 0\n"; - printf " Gives an unlimited validity limit (0 = unlimited).\n"; - } elsif ($command eq "unban" || ("unbanish" =~ /^\Q$command/ && length($command) >= 4)) { - printf "unban/unbanish \n"; - printf " Remove the banishment of an account.\n"; - printf " This command works like banset 0.\n"; - } elsif ("unblock" =~ /^\Q$command/ && length($command) >= 4) { - printf "unblock \n"; - printf " Set state 0 (Account ok) to an account.\n"; - printf " This command works like state 0.\n"; - } elsif ("version" =~ /^\Q$command/) { - printf "version\n"; - printf " Display the version of the login-server.\n"; - } elsif ("who" =~ /^\Q$command/) { - printf "who \n"; - printf " Displays complete information of an account.\n"; - } elsif ("quit" =~ /^\Q$command/ || - (("end" =~ /^\Q$command/ || "exit" =~ /^\Q$command/) && $command ne "e")) { # check 1 letter command: 'email', 'end' or 'exit'?\n"; - printf "quit/end/exit\n"; - printf " End of the program of administration.\n"; - } else { - if ($receivedcommand ne "") { - printf "Unknown command [%s] for help. Displaying of all commands.\n", $receivedcommand; - } - print << "ENDOFHELP"; - aide/help/? -- Display this help - aide/help/? [command] -- Display the help of the command - add -- Create an account with default email - ban/banish yyyy/mm/dd hh:mm:ss -- Change final date of a ban - banadd/ba -- Add or substract time from the final - example: ba apple +1m-2mn1s-2y date of a banishment of an account - banset/bs yyyy/mm/dd [hh:mm:ss] -- Change final date of a ban - banset/bs 0 -- Un-banish an account - block -- Set state 5 (blocked by the GM Team) to an account - check -- Check the validity of a password - create -- Create an account with email - del -- Remove an account - email -- Modify an email of an account - getcount -- Give the number of players online - gm [GM_level] -- Modify the GM level of an account - id -- Give the id of an account - info -- Display all information of an account - kami -- Sends a broadcast message (in yellow) - kamib -- Sends a broadcast message (in blue) - language -- Change the language of displaying. - list/ls [First_id [Last_id]] -- Display a list of accounts - listBan/lsBan [First_id [Last_id]] -- Display a list of accounts - with state or banished - listGM/lsGM [First_id [Last_id]] -- Display a list of GM accounts - listOK/lsOK [First_id [Last_id]] -- Display a list of accounts - without state and not banished - memo -- Modify the memo of an account - name -- Give the name of an account - passwd -- Change the password of an account - quit/end/exit -- End of the program of administation - reloadGM -- Reload GM configuration file - search -- Seek accounts - search -e/-r/--expr/--regex -- Seek accounts by regular-expression - sex -- Modify the sex of an account - state -- Change the state - timeadd/ta -- Add or substract time from the - example: ta apple +1m-2mn1s-2y validity limit of an account - timeset/ts yyyy/mm/dd [hh:mm:ss] -- Change the validify limit - timeset/ts 0 -- Give a unlimited validity limit - unban/unbanish -- Remove the banishment of an account - unblock -- Set state 0 (Account ok) to an account - version -- Gives the version of the login-server - who -- Display all information of an account -ENDOFHELP - printf(" Note: To use spaces in an account name, type \"\" (or ').\n"); - } - } - - return 0; -} -#-------------------------------------------------------------------------- - -# Sub-function: Displaying of the accounts list -sub listaccount() { - my($st, $ed, $listflag) = @_; - my($i); - my($n) = (0); - # 0123456789 01 01234567890123456789012301234 012345 0123456789012345678901234567 - if ($defaultlanguage eq "F") { - print " id_compte GM nom_utilisateur sexe count statut\n"; - } else { - print "account_id GM user_name sex count state\n"; - } - print "-------------------------------------------------------------------------------\n"; - while(1) { - print $so pack("vV2", 0x7920, $st, $ed); - $so->flush(); - $buf = readso(4); - if (unpack("v", $buf) != 0x7921) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - exit(10); - } - my($len) = unpack("x2v", $buf); - last if ($len <= 4); - for($i = 4; $i < $len; $i += 38) { - my(@dat) = unpack("VCa24cVV", readso(38)); - $st = $dat[0] + 1; - if ($listflag == 0 || - ($listflag == 1 && $dat[1] > 0) || # check GM flag - ($listflag == 3 && $dat[5] != 0) || # check with state or banished - ($listflag == 4 && $dat[5] == 0)) { # check without state and not banished - printf "%10d %2s %-24s%-5s %6d %-27s\n", $dat[0], - ($dat[1] == 0 ? " " : $dat[1]), - $dat[2], - ($defaultlanguage eq "F" ? ("Femme","Male","Servr")[$dat[3]] : ("Femal","Male","Servr")[$dat[3]]), - $dat[4], - (($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), - "Unregistered ID", - "Incorrect Password", - "This ID is expired", - "Rejected from Server", - "Blocked by the GM Team", # You have been blocked by the GM Team - "Your EXE file is too old", # Your Game's EXE file is not the latest version - "Banishement or\n Prohibited to login until %s", # You are Prohibited to log in until %s - "Server is over populated", # Server is jammed due to over populated - "No MSG", - "This ID is totally erased")[$dat[5] == 100 ? 10 : $dat[5]]; # This ID has been totally erased - $n++; - } - } - } - if ($defaultlanguage eq "F") { - if ($n == 0) { - print "Aucun compte trouv.\n"; - } elsif ($n == 1) { - print "1 compte trouv.\n"; - } else { - print "$n comptes trouv駸.\n"; - } - } else { - if ($n == 0) { - print "No account found.\n"; - } elsif ($n == 1) { - print "1 account found.\n"; - } else { - print "$n accounts found.\n"; - } - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: add an account with the default e-mail -sub addaccount() { - my($userid, $sex, $passwd) = @_; - if ($userid eq "" || !defined($userid)) { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " add nomtest Male motdepassetest\n"; - } else { - print "Please input an account name.\n"; - print " add testname Male testpass\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } -# if ($userid =~ /[^A-Za-z0-9\@-_]/) { -# if ($defaultlanguage eq "F") { -# print "Caract鑽e interdit trouv dans le nom du compte ".$`."[${&}]${'}\n"; -# } else { -# print "Illegal character found in the account name ".$`."[${&}]${'}\n"; -# } -# return 101; -# } - $sex = uc(substr($sex, 0, 1)); - if ($sex !~ /^[MF]$/) { - if ($defaultlanguage eq "F") { - print "Sexe incorrect [$sex]. Entrez M ou F svp.\n"; - } else { - print "Illegal gender [$sex]. Please input M or F.\n"; - } - return 103; - } - if ($passwd eq "") { - return 108 if (($passwd = typepasswd()) eq ""); - } - if (verify_password($passwd) == 0) { - return 104; - } - print $so pack("va24a24a1a40", 0x7930, $userid, $passwd, $sex, ""); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7931) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 106; - } - $buf = readso(28); - if (unpack("V", $buf) == -1 || unpack("V", $buf) == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec la cr饌tion du compte [$userid]. Un compte identique existe d駛.\n"; - } else { - print "Account [$userid] creation failed. Same account already exists.\n"; - } - return 107; - } else { - if ($defaultlanguage eq "F") { - printf "Compte [$userid] cr鳬 avec succ鑚 [id: %d].\n", unpack("V",$buf); - } else { - printf "Account [$userid] is successfully created [id: %d].\n", unpack("V",$buf); - } - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: add an account with an e-mail -sub createaccount() { - my($userid, $sex, $email, $passwd) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " create nomtest Male mon\@email.com motdepassetest\n"; - } else { - print "Please input an account name.\n"; - print " create testname Male my\@mail.com testpass\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } -# if ($userid =~ /[^A-Za-z0-9\@-_]/) { -# if ($defaultlanguage eq "F") { -# print "Caract鑽e interdit trouv dans le nom du compte ".$`."[${&}]${'}\n"; -# } else { -# print "Illegal character found in the account name ".$`."[${&}]${'}\n"; -# } -# return 101; -# } - $sex = uc(substr($sex, 0, 1)); - if ($sex !~ /^[MF]$/) { - if ($defaultlanguage eq "F") { - print "Sexe incorrect [$sex]. Entrez M ou F svp.\n"; - } else { - print "Illegal gender [$sex]. Please input M or F.\n"; - } - return 103; - } - if (length($email) < 3) { - if ($defaultlanguage eq "F") { - print "Email trop courte [$email]. Entrez une e-mail valide svp.\n"; - } else { - print "Email is too short [$email]. Please input a valid e-mail.\n"; - } - return 109; - } - if (length($email) > 39) { - if ($defaultlanguage eq "F") { - print "Email trop longue [$email]. Entrez une e-mail de 39 caract鑽es maximum svp.\n"; - } else { - print "Email is too long [$email]. Please input an e-mail with 39 bytes at the most.\n"; - } - return 109; - } - if (verify_email($email) == 0) { - if ($defaultlanguage eq "F") { - print "Email incorrecte [$email]. Entrez une e-mail valide svp.\n"; - } else { - print "Invalid email [$email]. Please input a valid e-mail.\n"; - } - return 109; - } - if ($passwd eq "") { - return 108 if (($passwd = typepasswd()) eq ""); - } - if (verify_password($passwd) == 0) { - return 104; - } - print $so pack("va24a24a1a40", 0x7930, $userid, $passwd, $sex, $email); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7931) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 106; - } - $buf = readso(28); - if (unpack("V", $buf) == -1 || unpack("V", $buf) == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec la cr饌tion du compte [$userid]. Un compte identique existe d駛.\n"; - } else { - print "Account [$userid] creation failed. Same account already exists.\n"; - } - return 107; - } else { - if ($defaultlanguage eq "F") { - printf "Compte [$userid] cr鳬 avec succ鑚 [id: %d].\n", unpack("V",$buf); - } else { - printf "Account [$userid] is successfully created [id: %d].\n", unpack("V",$buf); - } - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: deletion of an account -sub delaccount() { - my($userid) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " del nomtestasupprimer\n"; - } else { - print "Please input an account name.\n"; - print " del testnametodelete\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - if ($defaultlanguage eq "F") { - print "** Etes-vous vraiment sr de vouloir SUPPRIMER le compte [$userid]? (o/n) "; - } else { - print "** Are you really sure to DELETE account [$userid]? (y/n) "; - } - if (lc(substr(, 0, 1)) !~ /[oy]/) { - if ($defaultlanguage eq "F") { - print "Suppression annul馥\n."; - } else { - print "Deletion canceled\n"; - } - return 121; - } - print $so pack("va24", 0x7932, $userid); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7933) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 122; - } - $buf = readso(28); - my($id2, $name) = unpack("Va24", $buf); - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - if ($id2 == -1 || $id2 == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec de la suppression du compte [$userid]. Le compte n'existe pas.\n"; - } else { - print "Account [$userid] deletion failed. Account doesn't exist.\n"; - } - return 123; - } else { - if ($defaultlanguage eq "F") { - print "Compte [$name][id: $id2] SUPPRIME avec succ鑚.\n"; - } else { - print "Account [$name][id: $id2] is successfully DELETED.\n"; - } - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: modification of a password -sub changepasswd() { - my($userid, $passwd) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " passwd nomtest nouveaumotdepasse\n"; - } else { - print "Please input an account name.\n"; - print " passwd testname newpassword\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - if ($passwd eq "") { - return 134 if (($passwd = typepasswd()) eq ""); - } - if (verify_password($passwd) == 0) { - return 131; - } - print $so pack("va24a24", 0x7934, $userid,$passwd); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7935) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 132; - } - $buf = readso(28); - my($id2, $name) = unpack("Va24", $buf); - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - if ($id2 == -1 || $id2 == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec de la modification du mot de passe du compte [$userid].\n"; - print "Le compte [$userid] n'existe pas.\n"; - } else { - print "Account [$userid] password changing failed.\n"; - print "Account [$userid] doesn't exist.\n"; - } - return 133; - } else { - if ($defaultlanguage eq "F") { - print "Modification du mot de passe du compte [$name][id: $id2] r騏ssie.\n"; - } else { - print "Account [$name][id: $id2] password successfully changed.\n"; - } - } - return 130; -} - -#-------------------------------------------------------------------------- - -# Sub-function: modification of an account e-mail -sub changeemail() { - my($userid, $email) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " email testname nouveauemail\n"; - } else { - print "Please input an account name.\n"; - print " email testname newemail\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - if (length($email) < 3) { - if ($defaultlanguage eq "F") { - print "Email trop courte [$email]. Entrez une e-mail valide svp.\n"; - } else { - print "Email is too short [$email]. Please input a valid e-mail.\n"; - } - return 109; - } - if (length($email) > 39) { - if ($defaultlanguage eq "F") { - print "Email trop longue [$email]. Entrez une e-mail de 39 caract鑽es maximum svp.\n"; - } else { - print "Email is too long [$email]. Please input an e-mail with 39 bytes at the most.\n"; - } - return 109; - } - if (verify_email($email) == 0) { - if ($defaultlanguage eq "F") { - print "Email incorrect [$email]. Entrez une e-mail valide svp.\n"; - } else { - print "Invalid email [$email]. Please input a valid e-mail.\n"; - } - return 109; - } - print $so pack("va24a40", 0x7940, $userid, $email); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7941) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 162; - } - $buf = readso(28); - my($id2, $name) = unpack("Va24", $buf); - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - if ($id2 == -1 || $id2 == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec de la modification de l'e-mail du compte [$userid].\n"; - print "Le compte [$userid] n'existe pas.\n"; - } else { - print "Account [$userid] e-mail changing failed.\n"; - print "Account [$userid] doesn't exist.\n"; - } - return 133; - } else { - if ($defaultlanguage eq "F") { - print "Modification de l'e-mail du compte [$name][id: $id2] r騏ssie.\n"; - } else { - print "Account [$name][id: $id2] e-mail successfully changed.\n"; - } - } - return 160; -} - -#-------------------------------------------------------------------------- - -# Sub-function: search of accounts -sub searchaccount() { - my($p1, $p2) = @_; - my($exp) = (""); - if ($p1 eq "-e" || $p1 eq "-r" || $p1 eq "--regex" || $p1 eq "--expr") { - if ($p2 eq "") { - if ($defaultlanguage eq "F") { - print "Entrez une expression r馮uli鑽e ou utilisez 'ls' pour avoir tous les comptes.\n"; - } else { - print "Input a regular expression or use 'ls' to obtain all accounts.\n"; - } - return 141; - } - $exp = $p2; - } else { - if ($p1 eq "") { - if ($defaultlanguage eq "F") { - print "Entrez une chane ou utilisez 'ls' pour avoir tous les comptes.\n"; - } else { - print "Input a string or use 'ls' to obtain all accounts.\n"; - } - return 141; - } - my($c) = 0; - $exp = lc($p1); - $exp =~ s/([\@])/\\$1/g; - $c += $exp =~ s/([\-\[\]])/\\$1/g; - $c += $exp =~ s/([\*\?])/.$1/g; - $c += $exp =~ s/\\\[(.)\\\-(.)\\\]/[$1-$2]/g; - $exp = "^$exp\$" if $c; - } - if (eval{ "" =~ /$exp/; }, $@) { - if ($defaultlanguage eq "F") { - print "Expression r馮uli鑽e non reconnue.\n"; - } else { - print "Regular-Expression compiling failed.\n"; - } - return 141; - } - my($i); - my($n, $st) = (0, 0); - # 0123456789 01 01234567890123456789012301234 012345 0123456789012345678901234567 - if ($defaultlanguage eq "F") { - print " id_compte GM nom_utilisateur sexe count statut\n"; - } else { - print "account_id GM user_name sex count state\n"; - } - print "-------------------------------------------------------------------------------\n"; - while(1) { - print $so pack("vV2", 0x7920, $st, 0); - $so->flush(); - $buf = readso(4); - if (unpack("v", $buf) != 0x7921) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - exit(10); - } - my($len) = unpack("x2v", $buf); - last if ($len <= 4); - for($i = 4; $i < $len; $i += 38) { - my(@dat) = unpack("VCa24cVV", readso(38)); - $st = $dat[0] + 1; - next if (lc($dat[2]) !~ /$exp/); - printf "%10d %2s %-24s%-5s %6d %-27s\n", $dat[0], - ($dat[1] == 0 ? " " : $dat[1]), - $dat[2], - ($defaultlanguage eq "F" ? ("Femme","Male","Servr")[$dat[3]] : ("Femal","Male","Servr")[$dat[3]]), - $dat[4], - (($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), - "Unregistered ID", - "Incorrect Password", - "This ID is expired", - "Rejected from Server", - "Blocked by the GM Team", # You have been blocked by the GM Team - "Your EXE file is too old", # Your Game's EXE file is not the latest version - "Banishement or\n Prohibited to login until %s", # You are Prohibited to log in until %s - "Server is over populated", # Server is jammed due to over populated - "No MSG", - "This ID is totally erased")[$dat[5] == 100 ? 10 : $dat[5]]; # This ID has been totally erased - $n++; - } - } - if ($defaultlanguage eq "F") { - if ($n == 0) { - print "Aucun compte trouv.\n"; - } elsif ($n == 1) { - print "1 compte trouv.\n"; - } else { - print "$n comptes trouv駸.\n"; - } - } else { - if ($n == 0) { - print "No account found.\n"; - } elsif ($n == 1) { - print "1 account found.\n"; - } else { - print "$n accounts found.\n"; - } - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: modify the sex of an account -sub changesex() { - my($userid, $sex) = @_; - if ($userid eq "" || !defined($userid)) { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " sex nomtest Male\n"; - } else { - print "Please input an account name.\n"; - print " sex testname Male\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } -# if ($userid =~ /[^A-Za-z0-9\@-_]/) { -# if ($defaultlanguage eq "F") { -# print "Caract鑽e interdit trouv dans le nom du compte ".$`."[${&}]${'}\n"; -# } else { -# print "Illegal character found in the account name ".$`."[${&}]${'}\n"; -# } -# return 101; -# } - $sex = uc(substr($sex, 0, 1)); - if ($sex !~ /^[MF]$/) { - if ($defaultlanguage eq "F") { - print "Sexe incorrect [$sex]. Entrez M ou F svp.\n"; - } else { - print "Illegal gender [$sex]. Please input M or F.\n"; - } - return 103; - } - print $so pack("va24a1", 0x793c, $userid, $sex); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x793d) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 152; - } - $buf = readso(28); - my($id2, $name) = unpack("Va24", $buf); - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - if ($id2 == -1 || $id2 == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec du changement du sexe du compte [$userid].\n"; - print "Le compte n'existe pas ou le sexe est d駛 celui demand.\n"; - } else { - print "Account [$userid] sex changing failed.\n"; - print "Account doesn't exist or the sex is already the good sex.\n"; - } - } else { - if ($defaultlanguage eq "F") { - print "Sexe du compte [$name][id: $id2] chang avec succ鑚.\n"; - } else { - print "Account [$name][id: $id2] sex successfully changed.\n"; - } - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: modify the GM level of an account -sub changegmlevel() { - my($userid, $gm_level) = @_; - if ($userid eq "" || !defined($userid)) { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " gm nomtest 80\n"; - } else { - print "Please input an account name.\n"; - print " gm testname 80\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } -# if ($userid =~ /[^A-Za-z0-9\@-_]/) { -# if ($defaultlanguage eq "F") { -# print "Caract鑽e interdit trouv dans le nom du compte ".$`."[${&}]${'}\n"; -# } else { -# print "Illegal character found in the account name ".$`."[${&}]${'}\n"; -# } -# return 101; -# } - $gm_level = int($gm_level); - if ($gm_level < 0 || $gm_level > 99) { - if ($defaultlanguage eq "F") { - print "Niveau de GM incorrect [$gm_level]. Entrez une valeur de 0 99 svp.\n"; - } else { - print "Illegal GM level [$gm_level]. Please input a value from 0 to 99.\n"; - } - return 103; - } - print $so pack("va24C", 0x793e, $userid, $gm_level); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x793f) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 152; - } - $buf = readso(28); - my($id2, $name) = unpack("Va24", $buf); - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - if ($id2 == -1 || $id2 == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec du changement du niveau de GM du compte [$userid].\n"; - print "Le compte n'existe pas, le niveau de GM est d駛 celui demand,\n"; - print "ou il est impossible de modifier le fichier des comptes GM.\n"; - } else { - print "Account [$userid] GM level changing failed.\n"; - print "Account doesn't exist, the GM level is already the good GM level,\n"; - print "or it's impossible to modify the GM accounts file.\n"; - } - } else { - if ($defaultlanguage eq "F") { - print "Niveau de GM du compte [$name][id: $id2] chang avec succ鑚.\n"; - } else { - print "Account [$name][id: $id2] GM level successfully changed.\n"; - } - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Modification of a state -sub changestate { - my($userid, $s, $error_message) = @_; - # Valid values: 0: ok, or value of the 0x006a packet + 1 - if ($s eq "" || (($s < 0 || $s > 9) && $s != 100)) { - if ($defaultlanguage eq "F") { - print "Entrez une des valeurs suivantes svp:\n"; - print " 0 = Compte ok 6 = Your Game's EXE file is not the latest version\n"; - } else { - print "Please input one of these values:\n"; - print " 0 = Account ok 6 = Your Game's EXE file is not the latest version\n"; - } - print " 1 = Unregistered ID 7 = You are Prohibited to log in until %s\n"; - print " 2 = Incorrect Password 8 = Server is jammed due to over populated\n"; - print " 3 = This ID is expired 9 = No MSG\n"; - print " 4 = Rejected from Server 100 = This ID has been totally erased\n"; - print " 5 = You have been blocked by the GM Team\n"; - if ($defaultlanguage eq "F") { - print " state nomtest 5\n"; - print " state nomtest 7 fin de votre ban\n"; - print " block \n"; - print " unblock \n"; - } else { - print " state testname 5\n"; - print " state testname 7 end of your ban\n"; - print " block \n"; - print " unblock \n"; - } - return 151; - } - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " state nomtest 5\n"; - print " state nomtest 7 fin de votre ban\n"; - print " block \n"; - print " unblock \n"; - } else { - print "Please input an account name.\n"; - print " state testname 5\n"; - print " state testname 7 end of your ban\n"; - print " block \n"; - print " unblock \n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - if ($s != 7) { - $error_message = "-"; - } else { - if (length($error_message) < 1) { - if ($defaultlanguage eq "F") { - print "Message d'erreur trop court. Entrez un message de 1-19 caract鑽es.\n"; - } else { - print "Error message is too short. Please input a message of 1-19 bytes.\n"; - } - return 102; - } - if (length($error_message) > 19) { - if ($defaultlanguage eq "F") { - print "Message d'erreur trop long. Entrez un message de 1-19 caract鑽es.\n"; - } else { - print "Error message is too long. Please input a message of 1-19 bytes.\n"; - } - return 102; - } - } - print $so pack("va24Va20", 0x7936, $userid, $s, $error_message); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7937) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 152; - } - $buf = readso(32); - my(@dat) = unpack("Va24V", $buf); - while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { - chop($dat[1]); - }; - if ($dat[0] != -1 && $dat[0] != 4294967295) { - if ($defaultlanguage eq "F") { - print "Statut du compte [$dat[1]][id: $dat[0]] chang avec succ鑚 en ["; - } else { - print "Account [$dat[1]][id: $dat[0]] state successfully changed in ["; - } - print ((($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), - "Unregistered ID", - "Incorrect Password", - "This ID is expired", - "Rejected from Server", - "You have been blocked by the GM Team", - "Your Game's EXE file is not the latest version", - "You are Prohibited to log in until %s", - "Server is jammed due to over populated", - "No MSG", - "This ID has been totally erased")[$dat[2] == 100 ? 10 : $dat[2]]); - print "].\n"; - } else { - if ($defaultlanguage eq "F") { - print "Echec du changement du statut du compte [$userid]. Le compte n'existe pas.\n"; - } else { - print "Account [$userid] state changing failed. Account doesn't exist.\n"; - } - } -} - -#-------------------------------------------------------------------------- - -# Sub-function: Displaying of the number of online players -sub getlogincount { - # Request to the login-server - print $so pack("v", 0x7938); - $so->flush(); - - $buf = readso(4); - # Connection failed - if (unpack("v", $buf) != 0x7939) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - exit(3); - } - - # Get length of the received packet - my($len) = unpack("x2v", $buf) - 4; - - # Read information of the servers - if ($len < 1) { - if ($defaultlanguage eq "F") { - printf " Aucun serveur n'est connect au login serveur.\n"; - } else { - printf " No server is connected to the login-server.\n"; - } - } else { - my(@slist) = (); - for(; $len > 0; $len -= 32) { - my($name, $count) = unpack("x6 a20 V", readso(32)); - $name = substr($name, 0, index($name, "\0")); - push @slist, [ $name, $count ]; - } - # Displaying of result - my($i); - if ($defaultlanguage eq "F") { - printf " Nombre de joueurs en ligne (serveur: nb):\n"; - } else { - printf " Number of online players (server: number).\n"; - } - foreach $i(@slist) { - printf " %-20s : %5d\n", $i->[0], $i->[1]; - } - } -} - -#-------------------------------------------------------------------------- - -# Sub-function: Modification of a memo field -sub changememo { - my($userid, $memo) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " memo nomtest nouveau memo\n"; - } else { - print "Please input an account name.\n"; - print " memo testname new memo\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - if (length($memo) > 254) { - if ($defaultlanguage eq "F") { - print "M駑o trop long (".length($memo)." caract鑽es).\n"; - print "Entrez un m駑o de 254 caract鑽es maximum svp.\n"; - } else { - print "Memo is too long (".length($memo)." characters).\n"; - print "Please input a memo of 254 bytes at the maximum.\n"; - } - return 102; - } - if (length($memo) == 0) { - print $so pack("va24v", 0x7942, $userid, 0); - } else { - print $so pack("va24va".length($memo), 0x7942, $userid, length($memo), $memo); - } - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7943) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 152; - } - $buf = readso(28); - my($id2, $name) = unpack("Va24", $buf); - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - if ($id2 == -1 || $id2 == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec du changement du m駑o du compte [$userid]. Le compte n'existe pas.\n"; - } else { - print "Account [$userid] memo changing failed. Account doesn't exist.\n"; - } - } else { - if ($defaultlanguage eq "F") { - print "M駑o du compte [$name][id: $id2] chang avec succ鑚.\n"; - } else { - print "Account [$name][id: $id2] memo successfully changed.\n"; - } - } -} - -#-------------------------------------------------------------------------- - -# Sub-function: Request to obtain an account id -sub idaccount() { - my($userid) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " id nomtest\n"; - } else { - print "Please input an account name.\n"; - print " id testname\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - print $so pack("va24", 0x7944, $userid); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7945) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 122; - } - $buf = readso(28); - my($id2, $name) = unpack("Va24", $buf); - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - if ($id2 == -1 || $id2 == 4294967295) { - if ($defaultlanguage eq "F") { - print "Impossible de trouver l'id du compte [$userid]. Le compte n'existe pas.\n"; - } else { - print "Unabled to find the account [$userid] id. Account doesn't exist.\n"; - } - return 123; - } else { - if ($defaultlanguage eq "F") { - print "Le compte [$name] a pour id: $id2.\n"; - } else { - print "The account [$name] have the id: $id2.\n"; - } - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Request to obtain an account name -sub nameaccount() { - my($id) = @_; - if ($id < 0) { - if ($defaultlanguage eq "F") { - print "Entrez un id ayant une valeur positive svp.\n"; - } else { - print "Please input a positive value for the id.\n"; - } - return 136; - } - print $so pack("vV", 0x7946, $id); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7947) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 122; - } - $buf = readso(28); - my($id2, $name) = unpack("Va24", $buf); - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - if (length($name) == 0 || $name eq "") { - if ($defaultlanguage eq "F") { - print "Impossible de trouver le nom du compte [id: $id2]. Le compte n'existe pas.\n"; - } else { - print "Unabled to find the account [id: $id2] name. Account doesn't exist.\n"; - } - return 123; - } else { - if ($defaultlanguage eq "F") { - print "Le compte [id: $id2] a pour nom: $name.\n"; - } else { - print "The account [id: $id2] have the name: $name.\n"; - } - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Set a validity limit of an account -sub timesetaccount() { - my($userid, $date, $time) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print ": timeset aaaa/mm/jj [hh:mm:ss]\n"; - print " timeset 0 (0 = illimit)\n"; - printf " Heure par d馭aut [hh:mm:ss]: 23:59:59\n"; - } else { - print "Please input an account name.\n"; - print ": timeset yyyy/mm/dd [hh:mm:ss]\n"; - print " timeset 0 (0 = unlimited)\n"; - printf " Default time [hh:mm:ss]: 23:59:59\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - my($year, $month, $day) = split(/[.\-\/]/, $date); - my($hour, $minute, $second) = split(/:/, $time); - if ($time eq "") { - $hour = 23; - $minute = 59; - $second = 59; - } - my($timestamp); - if ($year eq "" || - ($year != 0 && ($month eq "" || $day eq "" || $hour eq "" || $minute eq "" || $second eq ""))) { - if ($defaultlanguage eq "F") { - print "Entrez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"; - } else { - print "Please input 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"; - } - return 102; - } - if ($year == 0) { - $timestamp = 0; - } else { - if ($year < 70) { - $year = $year + 100; - } - if ($year >= 1900) { - $year = $year - 1900; - } - if ($month < 1 || $month > 12) { - if ($defaultlanguage eq "F") { - print "Entrez un mois correct svp (entre 1 et 12).\n"; - } else { - print "Please give a correct value for the month (from 1 to 12).\n"; - } - return 102; - } - $month = $month - 1; - if ($day < 1 || $day > 31) { - if ($defaultlanguage eq "F") { - print "Entrez un jour correct svp (entre 1 et 31).\n"; - } else { - print "Please give a correct value for the day (from 1 to 31).\n"; - } - return 102; - } - if ((($month == 3 || $month == 5 || $month == 8 || $month == 10) && $day > 30) || - ($month == 1 && $day > 29)) { - if ($defaultlanguage eq "F") { - print "Entrez un jour correct en fonction du mois svp.\n"; - } else { - print "Please give a correct value for a day of this month.\n"; - } - return 102; - } - if ($hour < 0 || $hour > 23) { - if ($defaultlanguage eq "F") { - print "Entrez une heure correcte svp (entre 0 et 23).\n"; - } else { - print "Please give a correct value for the hour (from 0 to 23).\n"; - } - return 102; - } - if ($minute < 0 || $minute > 59) { - if ($defaultlanguage eq "F") { - print "Entrez des minutes correctes svp (entre 0 et 59).\n"; - } else { - print "Please give a correct value for the minutes (from 0 to 59).\n"; - } - return 102; - } - if ($second < 0 || $second > 59) { - if ($defaultlanguage eq "F") { - print "Entrez des secondes correctes svp (entre 0 et 59).\n"; - } else { - print "Please give a correct value for the seconds (from 0 to 59).\n"; - } - return 102; - } - $timestamp = POSIX::mktime($second, $minute, $hour, $day, $month, $year, 0, 0, -1); # -1: no winter/summer time modification - if ($timestamp == undef) { - if ($defaultlanguage eq "F") { - print "Date incorrecte.\n"; - print "Ajoutez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"; - } else { - print "Invalid date.\n"; - print "Please add 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"; - } - return 102; - } - } - - print $so pack("va24V", 0x7948, $userid, $timestamp); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7949) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 152; - } - $buf = readso(32); - my(@dat) = unpack("Va24V", $buf); - while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { - chop($dat[1]); - }; - if ($dat[0] != -1 && $dat[0] != 4294967295) { - if ($defaultlanguage eq "F") { - print "Limite de validit du compte [$dat[1]][id: $dat[0]] chang馥 avec succ鑚 ". - ($dat[2] == 0 ? "en [illimit饐.\n" : "pour 黎re jusqu'au ".(POSIX::ctime($dat[2]))); - } else { - print "Validity Limit of the account [$dat[1]][id: $dat[0]] successfully changed ". - ($dat[2] == 0 ? "to [unlimited].\n" : "to be until ".(POSIX::ctime($dat[2]))); - } - # localtime($dat[2]) is also possible to display instead of POSIX::ctime. - } else { - if ($defaultlanguage eq "F") { - print "Echec du changement de la validit du compte [$userid]. Le compte n'existe pas.\n"; - } else { - print "Account [$userid] validity limit changing failed. Account doesn't exist.\n"; - } - } - - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Add/substract time to the validity limit of an account -sub timeaddaccount() { - my($userid, $modif) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " timeadd nomtest +1m-2mn1s-6y\n"; - print " Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"; - print " et 6 ans dans le m麥e temps.\n"; - } else { - print "Please input an account name.\n"; - print " timeadd testname +1m-2mn1s-6y\n"; - print " this example adds 1 month and 1 second, and substracts 2 minutes\n"; - print " and 6 years at the same time.\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - my($year, $month, $day) = (0, 0 ,0); - my($hour, $minute, $second) = (0, 0 ,0); - - $modif = lc($modif); - while (length($modif) > 0) { - my($value) = int($modif); - if ($value == 0) { - $modif = substr($modif, 1); - } else { - if (substr($modif, 0, 1) =~ /[\-\+]/) { - $modif = substr($modif, 1); - } - while (length($modif) > 0 && substr($modif, 0, 1) =~ /[0-9]/) { - $modif = substr($modif, 1); - } - if (index($modif, "s") == 0) { - $second = $value; - $modif = substr($modif, 1); - } elsif (index($modif, "mn") == 0) { - $minute = $value; - $modif = substr($modif, 2); - } elsif (index($modif, "h") == 0) { - $hour = $value; - $modif = substr($modif, 1); - } elsif (index($modif, "d") == 0 || index($modif, "j") == 0) { - $day = $value; - $modif = substr($modif, 1); - } elsif (index($modif, "m") == 0) { - $month = $value; - $modif = substr($modif, 1); - } elsif (index($modif, "y") == 0 || index($modif, "a") == 0) { - $year = $value; - $modif = substr($modif, 1); - } else { - $modif = substr($modif, 1); - } - } - } - - if ($defaultlanguage eq "F") { - print " ann馥: $year\n"; - print " mois: $month\n"; - print " jour: $day\n"; - print " heure: $hour\n"; - print " minute: $minute\n"; - print " seconde: $second\n"; - } else { - print " year: $year\n"; - print " month: $month\n"; - print " day: $day\n"; - print " hour: $hour\n"; - print " minute: $minute\n"; - print " second: $second\n"; - } - - if ($year == 0 && $month == 0 && $day == 0 && $hour == 0 && $minute == 0 && $second == 0) { - if ($defaultlanguage eq "F") { - print "Vous devez entrer un ajustement avec cette commande, svp:\n"; - print " Valeur d'ajustement (-1, 1, +1, etc...)\n"; - print " Element modifi:\n"; - print " a ou y: ann馥\n"; - print " m: mois\n"; - print " j ou d: jour\n"; - print " h: heure\n"; - print " mn: minute\n"; - print " s: seconde\n"; - print " timeadd nomtest +1m-2mn1s-6y\n"; - print " Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"; - print " et 6 ans dans le m麥e temps.\n"; - } else { - print "Please give an adjustment with this command:\n"; - print " Adjustment value (-1, 1, +1, etc...)\n"; - print " Modified element:\n"; - print " a or y: year\n"; - print " m: month\n"; - print " j or d: day\n"; - print " h: hour\n"; - print " mn: minute\n"; - print " s: second\n"; - print " timeadd testname +1m-2mn1s-6y\n"; - print " this example adds 1 month and 1 second, and substracts 2 minutes\n"; - print " and 6 years at the same time.\n"; - } - return 137; - } - if ($year > 127 || $year < -127) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement d'ann馥s correct (de -127 127), svp.\n"; - } else { - print "Please give a correct adjustment for the years (from -127 to 127).\n"; - } - return 137; - } - if ($month > 255 || $month < -255) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement de mois correct (de -255 255), svp.\n"; - } else { - print "Please give a correct adjustment for the months (from -255 to 255).\n"; - } - return 137; - } - if ($day > 32767 || $day < -32767) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement de jours correct (de -32767 32767), svp.\n"; - } else { - print "Please give a correct adjustment for the days (from -32767 to 32767).\n"; - } - return 137; - } - if ($hour > 32767 || $hour < -32767) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement d'heures correct (de -32767 32767), svp.\n"; - } else { - print "Please give a correct adjustment for the hours (from -32767 to 32767).\n"; - } - return 137; - } - if ($minute > 32767 || $minute < -32767) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement de minutes correct (de -32767 32767), svp.\n"; - } else { - print "Please give a correct adjustment for the minutes (from -32767 to 32767).\n"; - } - return 137; - } - if ($second > 32767 || $second < -32767) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement de secondes correct (de -32767 32767), svp.\n"; - } else { - print "Please give a correct adjustment for the seconds (from -32767 to 32767).\n"; - } - return 137; - } - - print $so pack("va24vvvvvv", 0x7950, $userid, $year, $month, $day, $hour, $minute, $second); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x7951) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 152; - } - $buf = readso(32); - my(@dat) = unpack("Va24V", $buf); - while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { - chop($dat[1]); - }; - if ($dat[0] == -1 || $dat[0] == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec du changement de la validit du compte [$userid]. Le compte n'existe pas.\n"; - } else { - print "Account [$userid] validity limit changing failed. Account doesn't exist.\n"; - } - } elsif ($dat[2] == 0) { - if ($defaultlanguage eq "F") { - print "Limite de validit du compte [$dat[1]][id: $dat[0]] inchang馥.\n"; - print "Le compte a une validit illimit馥 ou\n"; - print "la modification est impossible avec les ajustements demand駸.\n"; - } else { - print "Validity limit of the account [$dat[1]][id: $dat[0]] unchanged.\n"; - print "The account have an unlimited validity limit or\n"; - print "the changing is impossible with the proposed adjustments.\n"; - } - } else { - if ($defaultlanguage eq "F") { - print "Limite de validit du compte [$dat[1]][id: $dat[0]] chang馥 avec succ鑚 ". - ($dat[2] == 0 ? "en [illimit饐.\n" : "pour 黎re jusqu'au ".(POSIX::ctime($dat[2]))); - } else { - print "Validity limit of the account [$dat[1]][id: $dat[0]] successfully changed ". - ($dat[2] == 0 ? "to [unlimited].\n" : "to be until ".(POSIX::ctime($dat[2]))); - } - # localtime($dat[2]) is also possible to display instead of POSIX::ctime. - } - - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Set the final date of a banishment of an account -sub bansetaccount() { - my($userid, $date, $time) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print ": banset aaaa/mm/jj [hh:mm:ss]\n"; - print " banset 0 (0 = d-bani)\n"; - print " ban/banish aaaa/mm/jj hh:mm:ss \n"; - print " unban/unbanish \n"; - printf " Heure par d馭aut [hh:mm:ss]: 23:59:59\n"; - } else { - print "Please input an account name.\n"; - print ": banset yyyy/mm/dd [hh:mm:ss]\n"; - print " banset 0 (0 = un-banished)\n"; - print " ban/banish yyyy/mm/dd hh:mm:ss \n"; - print " unban/unbanish \n"; - printf " Default time [hh:mm:ss]: 23:59:59\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - my($year, $month, $day) = split(/[.\-\/]/, $date); - my($hour, $minute, $second) = split(/:/, $time); - if ($time eq "") { - $hour = 23; - $minute = 59; - $second = 59; - } - my($timestamp); - if ($year eq "" || - ($year != 0 && ($month eq "" || $day eq "" || $hour eq "" || $minute eq "" || $second eq ""))) { - if ($defaultlanguage eq "F") { - print "Entrez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"; - } else { - print "Please input 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"; - } - return 102; - } - if ($year == 0) { - $timestamp = 0; - } else { - if ($year < 70) { - $year = $year + 100; - } - if ($year >= 1900) { - $year = $year - 1900; - } - if ($month < 1 || $month > 12) { - if ($defaultlanguage eq "F") { - print "Entrez un mois correct svp (entre 1 et 12).\n"; - } else { - print "Please give a correct value for the month (from 1 to 12).\n"; - } - return 102; - } - $month = $month - 1; - if ($day < 1 || $day > 31) { - if ($defaultlanguage eq "F") { - print "Entrez un jour correct svp (entre 1 et 31).\n"; - } else { - print "Please give a correct value for the day (from 1 to 31).\n"; - } - return 102; - } - if ((($month == 3 || $month == 5 || $month == 8 || $month == 10) && $day > 30) || - ($month == 1 && $day > 29)) { - if ($defaultlanguage eq "F") { - print "Entrez un jour correct en fonction du mois svp.\n"; - } else { - print "Please give a correct value for a day of this month.\n"; - } - return 102; - } - if ($hour < 0 || $hour > 23) { - if ($defaultlanguage eq "F") { - print "Entrez une heure correcte svp (entre 0 et 23).\n"; - } else { - print "Please give a correct value for the hour (from 0 to 23).\n"; - } - return 102; - } - if ($minute < 0 || $minute > 59) { - if ($defaultlanguage eq "F") { - print "Entrez des minutes correctes svp (entre 0 et 59).\n"; - } else { - print "Please give a correct value for the minutes (from 0 to 59).\n"; - } - return 102; - } - if ($second < 0 || $second > 59) { - if ($defaultlanguage eq "F") { - print "Entrez des secondes correctes svp (entre 0 et 59).\n"; - } else { - print "Please give a correct value for the seconds (from 0 to 59).\n"; - } - return 102; - } - $timestamp = POSIX::mktime($second, $minute, $hour, $day, $month, $year, 0, 0, -1); # -1: no winter/summer time modification - if ($timestamp == undef) { - if ($defaultlanguage eq "F") { - print "Date incorrecte.\n"; - print "Ajoutez 0 ou une date et une heure svp (format: 0 ou aaaa/mm/jj hh:mm:ss).\n"; - } else { - print "Invalid date.\n"; - print "Please add 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"; - } - return 102; - } - } - - print $so pack("va24V", 0x794a, $userid, $timestamp); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x794b) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 152; - } - $buf = readso(32); - my(@dat) = unpack("Va24V", $buf); - while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { - chop($dat[1]); - }; - if ($dat[0] != -1 && $dat[0] != 4294967295) { - if ($defaultlanguage eq "F") { - print "Date finale de banissement du compte [$dat[1]][id: $dat[0]] chang馥 avec succ鑚 ". - ($dat[2] == 0 ? "en [d-bannie].\n" : "pour 黎re jusqu'au ".(POSIX::ctime($dat[2]))); - } else { - print "Final date of banishment of the account [$dat[1]][id: $dat[0]] successfully changed ". - ($dat[2] == 0 ? "to [unbanished].\n" : "to be until ".(POSIX::ctime($dat[2]))); - } - # localtime($dat[2]) is also possible to display instead of POSIX::ctime. - } else { - if ($defaultlanguage eq "F") { - print "Echec du changement de la date finale de banissement du compte [$userid]. Le compte n'existe pas.\n"; - } else { - print "Account [$userid] final date of banishment changing failed. Account doesn't exist.\n"; - } - } - - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Add/substract time to the final date of a banishment of an account -sub banaddaccount() { - my($userid, $modif) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " banadd nomtest +1m-2mn1s-6y\n"; - print " Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"; - print " et 6 ans dans le m麥e temps.\n"; - } else { - print "Please input an account name.\n"; - print " banadd testname +1m-2mn1s-6y\n"; - print " this example adds 1 month and 1 second, and substracts 2 minutes\n"; - print " and 6 years at the same time.\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - my($year, $month, $day) = (0, 0 ,0); - my($hour, $minute, $second) = (0, 0 ,0); - - $modif = lc($modif); - while (length($modif) > 0) { - my($value) = int($modif); - if ($value == 0) { - $modif = substr($modif, 1); - } else { - if (substr($modif, 0, 1) =~ /[\-\+]/) { - $modif = substr($modif, 1); - } - while (length($modif) > 0 && substr($modif, 0, 1) =~ /[0-9]/) { - $modif = substr($modif, 1); - } - if (index($modif, "s") == 0) { - $second = $value; - $modif = substr($modif, 1); - } elsif (index($modif, "mn") == 0) { - $minute = $value; - $modif = substr($modif, 2); - } elsif (index($modif, "h") == 0) { - $hour = $value; - $modif = substr($modif, 1); - } elsif (index($modif, "d") == 0 || index($modif, "j") == 0) { - $day = $value; - $modif = substr($modif, 1); - } elsif (index($modif, "m") == 0) { - $month = $value; - $modif = substr($modif, 1); - } elsif (index($modif, "y") == 0 || index($modif, "a") == 0) { - $year = $value; - $modif = substr($modif, 1); - } else { - $modif = substr($modif, 1); - } - } - } - - if ($defaultlanguage eq "F") { - print " ann馥: $year\n"; - print " mois: $month\n"; - print " jour: $day\n"; - print " heure: $hour\n"; - print " minute: $minute\n"; - print " seconde: $second\n"; - } else { - print " year: $year\n"; - print " month: $month\n"; - print " day: $day\n"; - print " hour: $hour\n"; - print " minute: $minute\n"; - print " second: $second\n"; - } - - if ($year == 0 && $month == 0 && $day == 0 && $hour == 0 && $minute == 0 && $second == 0) { - if ($defaultlanguage eq "F") { - print "Vous devez entrer un ajustement avec cette commande, svp:\n"; - print " Valeur d'ajustement (-1, 1, +1, etc...)\n"; - print " Element modifi:\n"; - print " a ou y: ann馥\n"; - print " m: mois\n"; - print " j ou d: jour\n"; - print " h: heure\n"; - print " mn: minute\n"; - print " s: seconde\n"; - print " banadd nomtest +1m-2mn1s-6y\n"; - print " Cette exemple ajoute 1 mois et 1 seconde, et soustrait 2 minutes\n"; - print " et 6 ans dans le m麥e temps.\n"; - } else { - print "Please give an adjustment with this command:\n"; - print " Adjustment value (-1, 1, +1, etc...)\n"; - print " Modified element:\n"; - print " a or y: year\n"; - print " m: month\n"; - print " j or d: day\n"; - print " h: hour\n"; - print " mn: minute\n"; - print " s: second\n"; - print " banadd testname +1m-2mn1s-6y\n"; - print " this example adds 1 month and 1 second, and substracts 2 minutes\n"; - print " and 6 years at the same time.\n"; - } - return 137; - } - if ($year > 127 || $year < -127) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement d'ann馥s correct (de -127 127), svp.\n"; - } else { - print "Please give a correct adjustment for the years (from -127 to 127).\n"; - } - return 137; - } - if ($month > 255 || $month < -255) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement de mois correct (de -255 255), svp.\n"; - } else { - print "Please give a correct adjustment for the months (from -255 to 255).\n"; - } - return 137; - } - if ($day > 32767 || $day < -32767) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement de jours correct (de -32767 32767), svp.\n"; - } else { - print "Please give a correct adjustment for the days (from -32767 to 32767).\n"; - } - return 137; - } - if ($hour > 32767 || $hour < -32767) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement d'heures correct (de -32767 32767), svp.\n"; - } else { - print "Please give a correct adjustment for the hours (from -32767 to 32767).\n"; - } - return 137; - } - if ($minute > 32767 || $minute < -32767) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement de minutes correct (de -32767 32767), svp.\n"; - } else { - print "Please give a correct adjustment for the minutes (from -32767 to 32767).\n"; - } - return 137; - } - if ($second > 32767 || $second < -32767) { - if ($defaultlanguage eq "F") { - print "Entrez un ajustement de secondes correct (de -32767 32767), svp.\n"; - } else { - print "Please give a correct adjustment for the seconds (from -32767 to 32767).\n"; - } - return 137; - } - - print $so pack("va24vvvvvv", 0x794c, $userid, $year, $month, $day, $hour, $minute, $second); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x794d) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 152; - } - $buf = readso(32); - my(@dat) = unpack("Va24V", $buf); - while (length($dat[1]) > 0 && substr($dat[1], length($dat[1])-1, 1) eq chr(0)) { - chop($dat[1]); - }; - if ($dat[0] == -1 || $dat[0] == 4294967295) { - if ($defaultlanguage eq "F") { - print "Echec du changement de la date finale de banissement du compte [$userid]. Le compte n'existe pas.\n"; - } else { - print "Account [$userid] final date of banishment changing failed. Account doesn't exist.\n"; - } - } else { - if ($defaultlanguage eq "F") { - print "Date finale de banissement du compte [$dat[1]][id: $dat[0]] chang馥 avec succ鑚 ". - ($dat[2] == 0 ? "en [d-bannie].\n" : "pour 黎re jusqu'au ".(POSIX::ctime($dat[2]))); - } else { - print "Final date of banishment of the account [$dat[1]][id: $dat[0]] successfully changed ". - ($dat[2] == 0 ? "to [unbanished].\n" : "to be until ".(POSIX::ctime($dat[2]))); - } - # localtime($dat[2]) is also possible to display instead of POSIX::ctime. - } - - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Request to displaying information about an account (by its name) -sub whoaccount() { - my($userid) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " who nomtest\n"; - } else { - print "Please input an account name.\n"; - print " who testname\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - - print $so pack("va24", 0x7952, $userid); - $so->flush(); - - $buf = readso(2); - if (unpack("v", $buf) != 0x7953) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 122; - } - my($id2, $GM_level, $name, $sex, $count, $status, $error_message, $last_login, $last_ip, $email, $validite, $ban_date, $memo_size) = unpack("VCa24cVVa20a24a16a40VVv", readso(148)); - my($memo) = ""; - if ($memo_size > 0) { - $memo = unpack("a".$memo_size, readso($memo_size)); - } - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - while (length($error_message) > 0 && substr($error_message, length($error_message)-1, 1) eq chr(0)) { - chop($error_message); - }; - while (length($last_login) > 0 && substr($last_login, length($last_login)-1, 1) eq chr(0)) { - chop($last_login); - }; - while (length($last_ip) > 0 && substr($last_ip, length($last_ip)-1, 1) eq chr(0)) { - chop($last_ip); - }; - while (length($email) > 0 && substr($email, length($email)-1, 1) eq chr(0)) { - chop($email); - }; - while (length($memo) > 0 && substr($memo, length($memo)-1, 1) eq chr(0)) { - chop($memo); - }; - - if ($id2 == -1 || $id2 == 4294967295) { - if ($defaultlanguage eq "F") { - print "Impossible de trouver le compte [$userid]. Le compte n'existe pas.\n"; - } else { - print "Unabled to find the account [$userid]. Account doesn't exist.\n"; - } - return 123; - } else { - if ($defaultlanguage eq "F") { - print "Le compte [$userid] a les caract駻istiques suivantes:\n"; - } else { - print "The account [$userid] is set with:\n"; - } - if ($GM_level == 0) { - print " Id: $id2 (non-GM)\n"; - } else { - if ($defaultlanguage eq "F") { - print " Id: $id2 (GM niveau $GM_level)\n"; - } else { - print " Id: $id2 (GM level $GM_level)\n"; - } - } - if ($defaultlanguage eq "F") { - print " Nom: '$name'\n"; - print " Sexe: ".("Femme", "Male", "Serveur")[$sex]."\n"; - } else { - print " Name: '$name'\n"; - print " Sex: ".("Female", "Male", "Server")[$sex]."\n"; - } - print " E-mail: $email\n"; - if ($status == 7) { - print " Statut: 7 [You are Prohibited to log in until $error_message]\n"; - } else { - print " Statut: $status [".( - ($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), - "Unregistered ID", - "Incorrect Password", - "This ID is expired", - "Rejected from Server", - "You have been blocked by the GM Team", - "Your Game's EXE file is not the latest version", - "You are Prohibited to log in until %s", - "Server is jammed due to over populated", - "No MSG", - "This ID is totally erased")[$status == 100 ? 10 : $status]."]\n"; - } - if ($defaultlanguage eq "F") { - print " Banissement: ".($ban_date == 0 ? "non banni.\n" : "jusqu'au ".(POSIX::ctime($ban_date))); - print " Compteur: $count connexion".("s", "")[$count > 1 ? 0 : 1]."\n"; - print " Derni鑽e connexion le: $last_login (ip: $last_ip)\n"; - print " Limite de validit: ".($validite == 0 ? "illimit.\n" : "jusqu'au ".(POSIX::ctime($validite))); - } else { - print " Banishment: ".($ban_date == 0 ? "not banished.\n" : "until ".(POSIX::ctime($ban_date))); - print " Count: $count connection".("s", "")[$count > 1 ? 0 : 1]."\n"; - print " Last connection at: $last_login (ip: $last_ip)\n"; - print " Validity limit: ".($validite == 0 ? "unlimited.\n" : "until ".(POSIX::ctime($validite))); - } - print " Memo: '$memo'\n"; - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Request to displaying information about an account (by its id) -sub infoaccount() { - my($id) = @_; - if ($id < 0) { - if ($defaultlanguage eq "F") { - print "Entrez un id ayant une valeur positive svp.\n"; - } else { - print "Please input a positive value for the id.\n"; - } - return 136; - } - - print $so pack("vV", 0x7954, $id); - $so->flush(); - - $buf = readso(2); - if (unpack("v", $buf) != 0x7953) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 122; - } - my($id2, $GM_level, $name, $sex, $count, $status, $error_message, $last_login, $last_ip, $email, $validite, $ban_date, $memo_size) = unpack("VCa24cVVa20a24a16a40VVv", readso(148)); - my($memo) = ""; - if ($memo_size > 0) { - $memo = unpack("a".$memo_size, readso($memo_size)); - } - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - while (length($error_message) > 0 && substr($error_message, length($error_message)-1, 1) eq chr(0)) { - chop($error_message); - }; - while (length($last_login) > 0 && substr($last_login, length($last_login)-1, 1) eq chr(0)) { - chop($last_login); - }; - while (length($last_ip) > 0 && substr($last_ip, length($last_ip)-1, 1) eq chr(0)) { - chop($last_ip); - }; - while (length($email) > 0 && substr($email, length($email)-1, 1) eq chr(0)) { - chop($email); - }; - while (length($memo) > 0 && substr($memo, length($memo)-1, 1) eq chr(0)) { - chop($memo); - }; - - if (length($name) == 0 || $name eq "") { - if ($defaultlanguage eq "F") { - print "Impossible de trouver le nom du compte [id: $id2]. Le compte n'existe pas.\n"; - } else { - print "Unabled to find the account [id: $id2] name. Account doesn't exist.\n"; - } - return 123; - } else { - if ($defaultlanguage eq "F") { - print "Le compte [id: $id2] a les caract駻istiques suivantes:\n"; - } else { - print "The account [id: $id2] is set with:\n"; - } - if ($GM_level == 0) { - print " Id: $id2 (non-GM)\n"; - } else { - if ($defaultlanguage eq "F") { - print " Id: $id2 (GM niveau $GM_level)\n"; - } else { - print " Id: $id2 (GM level $GM_level)\n"; - } - } - if ($defaultlanguage eq "F") { - print " Nom: '$name'\n"; - print " Sexe: ".("Femme", "Male", "Serveur")[$sex]."\n"; - } else { - print " Name: '$name'\n"; - print " Sex: ".("Female", "Male", "Server")[$sex]."\n"; - } - print " E-mail: $email\n"; - if ($status == 7) { - print " Statut: 7 [You are Prohibited to log in until $error_message]\n"; - } else { - print " Statut: $status [".( - ($defaultlanguage eq "F" ? "Compte Ok" : "Account OK"), - "Unregistered ID", - "Incorrect Password", - "This ID is expired", - "Rejected from Server", - "You have been blocked by the GM Team", - "Your Game's EXE file is not the latest version", - "You are Prohibited to log in until %s", - "Server is jammed due to over populated", - "No MSG", - "This ID is totally erased")[$status == 100 ? 10 : $status]."]\n"; - } - if ($defaultlanguage eq "F") { - print " Banissement: ".($ban_date == 0 ? "non banni.\n" : "jusqu'au ".(POSIX::ctime($ban_date))); - print " Compteur: $count connexion".("s", "")[$count > 1 ? 0 : 1]."\n"; - print " Derni鑽e connexion le: $last_login (ip: $last_ip)\n"; - print " Limite de validit: ".($validite == 0 ? "illimit.\n" : "jusqu'au ".(POSIX::ctime($validite))); - } else { - print " Banishment: ".($ban_date == 0 ? "not banished.\n" : "until ".(POSIX::ctime($ban_date))); - print " Count: $count connection".("s", "")[$count > 1 ? 0 : 1]."\n"; - print " Last connection at: $last_login (ip: $last_ip)\n"; - print " Validity limit: ".($validite == 0 ? "unlimited.\n" : "until ".(POSIX::ctime($validite))); - } - print " Memo: '$memo'\n"; - } - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Check the validity of a password -# (Note: never send back a password with login-server!! security of passwords) -sub checkaccount() { - my($userid, $passwd) = @_; - if ($userid eq "") { - if ($defaultlanguage eq "F") { - print "Entrez un nom de compte svp.\n"; - print " check testname motdepasse\n"; - } else { - print "Please input an account name.\n"; - print " check testname password\n"; - } - return 136; - } - if (verify_accountname($userid) == 0) { - return 102; - } - if ($passwd eq "") { - return 134 if (($passwd = typepasswd()) eq ""); - } - if (verify_password($passwd) == 0) { - return 131; - } - print $so pack("va24a24", 0x793a, $userid,$passwd); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x793b) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 132; - } - $buf = readso(28); - my($id2, $name) = unpack("Va24", $buf); - while (length($name) > 0 && substr($name, length($name)-1, 1) eq chr(0)) { - chop($name); - }; - if ($id2 == -1 || $id2 == 4294967295) { - if ($defaultlanguage eq "F") { - print "Le compte [$userid] n'existe pas ou le mot de passe est incorrect.\n"; - } else { - print "The account [$userid] doesn't exist or the password is incorrect.\n"; - } - return 133; - } else { - if ($defaultlanguage eq "F") { - print "Le mot de passe donn correspond bien au compte [$name][id: $id2].\n"; - } else { - print "The proposed password is correct for the account [$name][id: $id2].\n"; - } - } - return 130; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Request to login-server to reload GM configuration file -sub reloadGM() { - print $so pack("v", 0x7955); - $so->flush(); - if ($defaultlanguage eq "F") { - print "Demande de recharger le fichier de configuration des GM envoy馥.\n"; - print "V駻ifiez les comptes GM actuels (apr鑚 rechargement):\n"; - } else { - print "Request to reload the GM configuration file sended.\n"; - print "Check the actual GM accounts (after reloading):\n"; - } - &listaccount(0, 0, 1); # 1: to list only GM - return 180; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Send a broadcast message -sub sendbroadcast() { - my($type, $message) = @_; - if ($message eq "" || length($message) == 0) { - if ($defaultlanguage eq "F") { - print "Entrez un message svp.\n"; - if ($type == 0) { - print " kami un message\n"; - } else { - print " kamib un message\n"; - } - } else { - print "Please input a message.\n"; - if ($type == 0) { - print " kami a message\n"; - } else { - print " kamib a message\n"; - } - } - return 136; - } - - print $so pack("vvVa".length($message), 0x794e, $type, length($message), $message); - $so->flush(); - $buf = readso(2); - if (unpack("v", $buf) != 0x794f) { - if ($defaultlanguage eq "F") { - print "Probl鑪e de connexion au serveur (r駱onse incorrecte).\n"; - } else { - print "Connection error to the server (incorrect answer).\n"; - } - return 152; - } - $buf = readso(2); - my($answer) = unpack("v", $buf); - if ($answer == -1 || $answer == 65535) { - if ($defaultlanguage eq "F") { - print "Echec de l'envoi du message. Aucun server de char en ligne.\n"; - } else { - print "Message sending failed. No online char-server.\n"; - } - } else { - if ($defaultlanguage eq "F") { - print "Message transmis au server de logins avec succ鑚.\n"; - } else { - print "Message successfully sended to login-server.\n"; - } - } -} - -#-------------------------------------------------------------------------- - -# Sub-function: Change language of displaying -sub changelanguage() { - my($language) = @_; - if ($language eq "" || length($language) == 0) { - if ($defaultlanguage == 'F') { - printf("Entrez une langue svp.\n"); - printf(" language english\n"); - printf(" language fran軋is\n"); - } else { - printf("Please input a language.\n"); - printf(" language english\n"); - printf(" language fran軋is\n"); - } - return 136; - } - - $language = uc(substr($language, 0, 1)); - if ($language =~ /^[EF]$/) { - $defaultlanguage = $language; - if ($defaultlanguage == 'F') { - printf("Changement de la langue d'affichage en Fran軋is.\n"); - } else { - printf("Displaying language changed to English.\n"); - } - } else { - if ($defaultlanguage == 'F') { - printf("Langue non param騁r馥 (langues possibles: 'Fran軋is' ou 'English').\n"); - } else { - printf("Undefined language (possible languages: Fran軋is or English).\n"); - } - } - - return 0; -} - -#-------------------------------------------------------------------------- - -# Sub-function: sending 'end of connection' packet -sub quit() { - print $so pack("v", 0x7532); - $so->flush(); -} - -#-------------------------------------------------------------------------- - -# Sub-function: Get datas from the socket -sub readso() { - my($len) = shift; - my($buf); - if (read($so, $buf, $len) < $len) { - if ($defaultlanguage eq "F") { - print "Erreur de lecture sur la Socket.\n"; - } else { - print "Socket read error.\n"; - } - exit(3); - } - return $buf; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Input of a password -sub typepasswd { - my($passwd1, $passwd2); - cbreak(); - if ($defaultlanguage eq "F") { - print "Entrez le mot de passe > "; $passwd1 = ; chomp($passwd1); print "\n"; - print "R-entrez le mot de passe > "; $passwd2 = ; chomp($passwd2); print "\n"; - } else { - print "Type the password > "; $passwd1 = ; chomp($passwd1); print "\n"; - print "Verify the password > "; $passwd2 = ; chomp($passwd2); print "\n"; - } - cooked(); - if ($passwd1 ne $passwd2) { - if ($defaultlanguage eq "F") { - print "Erreur de v駻ification du mot de passe: Saisissez le m麥e mot de passe svp.\n"; - } else { - print "Password verification failed. Please input same password.\n"; - } - return ""; - } - return $passwd1; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Return ordonal text of a number -sub makeordinal { - my($c) = shift; - if ($defaultlanguage eq "F") { - if ($c < 1) { - return $c; - } - return $c.("er", "鑪e")[$c == 1 ? 0 : 1]; - } else { - if ($c % 10 < 4 && $c % 10 != 0 && ($c < 10 || $c > 20)) { - return $c.("st","nd","rd")[$c % 10 - 1]; - } - return $c."th"; - } -} - -#-------------------------------------------------------------------------- - -# Sub-function: Test of the validity of an account name (return 0 if incorrect, and 1 if ok) -sub verify_accountname { - my($account_name) = @_; # Get the account_name - if ($account_name =~ /[\x00-\x1f]/) { # remove control char - my($c) = length($`) + 1; - if ($defaultlanguage eq "F") { - print "Caract鑽e interdit trouv dans le nom du compte (".makeordinal($c)." caract鑽e).\n"; - } else { - print "Illegal character found in the account name (".makeordinal($c)." character).\n"; - } - return 0; - } - if (length($account_name) < 4) { - if ($defaultlanguage eq "F") { - print "Nom du compte trop court. Entrez un nom de compte de 4-23 caract鑽es.\n"; - } else { - print "Account name is too short. Please input an account name of 4-23 bytes.\n"; - } - return 0; - } - if (length($account_name) > 23) { - if ($defaultlanguage eq "F") { - print "Nom du compte trop long. Entrez un nom de compte de 4-23 caract鑽es.\n"; - } else { - print "Account name is too long. Please input an account name of 4-23 bytes.\n"; - } - return 0; - } - return 1; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Test of the validity of password (return 0 if incorrect, and 1 if ok) -sub verify_password { - my($password) = @_; # Get the password - if ($password =~ /[\x00-\x1f]/) { - my($c) = length($`) + 1; - if ($defaultlanguage eq "F") { - print "Caract鑽e interdit trouv dans le mot de passe (".makeordinal($c)." caract鑽e).\n"; - } else { - print "Illegal character found in the password (".makeordinal($c)." character).\n"; - } - return 0; - } - if (length($password) < 4) { - if ($defaultlanguage eq "F") { - print "Mot de passe trop court. Entrez un mot de passe de 4-23 caract鑽es.\n"; - } else { - print "Password is too short. Please input a password of 4-23 bytes.\n"; - } - return 0; - } - if (length($password) > 23) { - if ($defaultlanguage eq "F") { - print "Mot de passe trop long. Entrez un mot de passe de 4-23 caract鑽es.\n"; - } else { - print "Password is too long. Please input a password of 4-23 bytes.\n"; - } - return 0; - } - return 1; -} - -#-------------------------------------------------------------------------- - -# Sub-function: Test of the validity of an e-mail (return 0 if incorrect, and 1 if ok) -sub verify_email { - my($email) = @_; # Get the e-mail - # To ignore a '.' before the @ (wanadoo, a provider, do that) - $email =~ s/\.\@/\@/; - # If the e-mail is void, it's not correct -> return 0 - if ($email eq '') { - return(0); - } - # If the e-mail have no "@", it's not correct -> return 0 - if ($email !~ /\@/) { - return(0); - } - # If the e-mail have a ",", a space, a tab or a ";", it's not correct -> return 0 - if ($email =~ /[\,|\s|\;]/) { - return(0) - }; - # IF - # (the e-mail contains 2 "@", or ".." or "@." or starts or finishes by a ".") - # OR IF - # (the e-mail doesn't contain "@localhost" AND - # - it doesn't contain characters followed by "@" itself followed by letters itself followed by "." and 2 or more letters - # - or an IP address) - # -> so, it's not good ! (finish !) - if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/ || - ($email !~ /^.+\@localhost$/ && - $email !~ /^.+\@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) { - return(0); # non-valid email - } else { - # If not, the e-email address is correct - return(1); # valid email - } -} \ No newline at end of file diff --git a/vcproj-6/char-server_sql.dsp b/vcproj-6/char-server_sql.dsp index 25ef235af..0286dbd8f 100644 --- a/vcproj-6/char-server_sql.dsp +++ b/vcproj-6/char-server_sql.dsp @@ -1,270 +1,270 @@ -# Microsoft Developer Studio Project File - Name="char_sql" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=char_sql - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "char-server_sql.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "char-server_sql.mak" CFG="char_sql - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "char_sql - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W2 /GX /O2 /I "..\src\common" /I "..\src\mysql" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WIN32" /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/char_sql/char-server_sql.pch" /YX /Fo"tmp/char_sql/" /Fd"tmp/char_sql/" /FD /c -# ADD BASE RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 wsock32.lib libmysql.lib zdll.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/char_sql/char-server_sql.pdb" /machine:I386 /out:"../char-server_sql.exe" /libpath:"../lib" -# SUBTRACT LINK32 /pdb:none -# Begin Target - -# Name "char_sql - Win32 Release" -# Begin Group "common" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\common\cbasetypes.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mmo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugin.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\sql.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\sql.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\version.h -# End Source File -# End Group -# Begin Group "char_sql" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\char_sql\char.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\char.h -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_auction.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_auction.h -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_guild.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_guild.h -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_homun.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_homun.h -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_mail.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_mail.h -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_party.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_party.h -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_pet.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_pet.h -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_storage.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_storage.h -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_quest.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\int_quest.h -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\inter.c -# End Source File -# Begin Source File - -SOURCE=..\src\char_sql\inter.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="char_sql" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=char_sql - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "char-server_sql.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "char-server_sql.mak" CFG="char_sql - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "char_sql - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W2 /GX /O2 /I "..\3rdparty\mysql\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WIN32" /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/char_sql/char-server_sql.pch" /YX /Fo"tmp/char_sql/" /Fd"tmp/char_sql/" /FD /c +# ADD BASE RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 wsock32.lib libmysql.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/char_sql/char-server_sql.pdb" /machine:I386 /out:"../char-server_sql.exe" /libpath:"..\3rdparty\mysql\lib" +# SUBTRACT LINK32 /pdb:none +# Begin Target + +# Name "char_sql - Win32 Release" +# Begin Group "common" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\common\cbasetypes.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mmo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugin.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\sql.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\sql.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\version.h +# End Source File +# End Group +# Begin Group "char_sql" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\char_sql\char.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\char.h +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_auction.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_auction.h +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_guild.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_guild.h +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_homun.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_homun.h +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_mail.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_mail.h +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_party.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_party.h +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_pet.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_pet.h +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_quest.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_quest.h +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_storage.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\int_storage.h +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\inter.c +# End Source File +# Begin Source File + +SOURCE=..\src\char_sql\inter.h +# End Source File +# End Group +# End Target +# End Project diff --git a/vcproj-6/char-server_txt.dsp b/vcproj-6/char-server_txt.dsp index d1945db25..9fa2e55dc 100644 --- a/vcproj-6/char-server_txt.dsp +++ b/vcproj-6/char-server_txt.dsp @@ -1,246 +1,246 @@ -# Microsoft Developer Studio Project File - Name="char_txt" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=char_txt - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "char-server_txt.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "char-server_txt.mak" CFG="char_txt - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "char_txt - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W2 /GX /O2 /I "..\src\common" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WIN32" /D "TXT_ONLY" /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/char_txt/char-server_txt.pch" /YX /Fo"tmp/char_txt/" /Fd"tmp/char_txt/" /FD /c -# ADD BASE RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 wsock32.lib zdll.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/char-txt/char-server_txt.pdb" /machine:I386 /out:"../char-server_txt.exe" /libpath:"../lib" -# SUBTRACT LINK32 /pdb:none -# Begin Target - -# Name "char_txt - Win32 Release" -# Begin Group "common" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\common\cbasetypes.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mmo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugin.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\version.h -# End Source File -# End Group -# Begin Group "char" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\char\char.c -# End Source File -# Begin Source File - -SOURCE=..\src\char\char.h -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_guild.c -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_guild.h -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_homun.c -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_homun.h -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_party.c -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_party.h -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_pet.c -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_pet.h -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_status.c -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_status.h -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_storage.c -# End Source File -# Begin Source File - -SOURCE=..\src\char\int_storage.h -# End Source File -# Begin Source File - -SOURCE=..\src\char\inter.c -# End Source File -# Begin Source File - -SOURCE=..\src\char\inter.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="char_txt" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=char_txt - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "char-server_txt.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "char-server_txt.mak" CFG="char_txt - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "char_txt - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W2 /GX /O2 /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WIN32" /D "TXT_ONLY" /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/char_txt/char-server_txt.pch" /YX /Fo"tmp/char_txt/" /Fd"tmp/char_txt/" /FD /c +# ADD BASE RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 wsock32.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/char-txt/char-server_txt.pdb" /machine:I386 /out:"../char-server_txt.exe" +# SUBTRACT LINK32 /pdb:none +# Begin Target + +# Name "char_txt - Win32 Release" +# Begin Group "common" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\common\cbasetypes.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mmo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugin.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\version.h +# End Source File +# End Group +# Begin Group "char" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\char\char.c +# End Source File +# Begin Source File + +SOURCE=..\src\char\char.h +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_guild.c +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_guild.h +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_homun.c +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_homun.h +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_party.c +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_party.h +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_pet.c +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_pet.h +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_status.c +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_status.h +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_storage.c +# End Source File +# Begin Source File + +SOURCE=..\src\char\int_storage.h +# End Source File +# Begin Source File + +SOURCE=..\src\char\inter.c +# End Source File +# Begin Source File + +SOURCE=..\src\char\inter.h +# End Source File +# End Group +# End Target +# End Project diff --git a/vcproj-6/login-server_sql.dsp b/vcproj-6/login-server_sql.dsp index 07f853727..561976f4e 100644 --- a/vcproj-6/login-server_sql.dsp +++ b/vcproj-6/login-server_sql.dsp @@ -1,210 +1,238 @@ -# Microsoft Developer Studio Project File - Name="login_sql" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=login_sql - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "login-server_sql.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "login-server_sql.mak" CFG="login_sql - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "login_sql - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W2 /GX /O2 /I "..\src\common" /I "..\src\mysql" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D PACKETVER=6 /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/login_sql/login-server_sql.pch" /YX /Fo"tmp/login_sql/" /Fd"tmp/login_sql/" /FD /c -# ADD BASE RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 WSOCK32.lib libmysql.lib zdll.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/login_sql/login-server_sql.pdb" /machine:I386 /out:"../login-server_sql.exe" /libpath:"../lib" -# SUBTRACT LINK32 /pdb:none -# Begin Target - -# Name "login_sql - Win32 Release" -# Begin Group "common" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\common\cbasetypes.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\md5calc.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\md5calc.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mmo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugin.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\sql.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\sql.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\svnversion.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\version.h -# End Source File -# End Group -# Begin Group "login_sql" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\login_sql\login.c -# End Source File -# Begin Source File - -SOURCE=..\src\login_sql\login.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="login_sql" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=login_sql - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "login-server_sql.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "login-server_sql.mak" CFG="login_sql - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "login_sql - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W2 /GX /O2 /I "..\3rdparty\mysql\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D PACKETVER=6 /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /D "WITH_SQL" /Fp"tmp/login_sql/login-server_sql.pch" /YX /Fo"tmp/login_sql/" /Fd"tmp/login_sql/" /FD /c +# ADD BASE RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 WSOCK32.lib libmysql.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/login_sql/login-server_sql.pdb" /machine:I386 /out:"../login-server_sql.exe" /libpath:"..\3rdparty\mysql\lib" +# SUBTRACT LINK32 /pdb:none +# Begin Target + +# Name "login_sql - Win32 Release" +# Begin Group "common" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\common\cbasetypes.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\md5calc.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\md5calc.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mmo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugin.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\sql.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\sql.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\svnversion.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\version.h +# End Source File +# End Group +# Begin Group "login_sql" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\login\account.h +# End Source File +# Begin Source File + +SOURCE=..\src\login\account_sql.c +# End Source File +# Begin Source File + +SOURCE=..\src\login\admin.c +# End Source File +# Begin Source File + +SOURCE=..\src\login\ipban.h +# End Source File +# Begin Source File + +SOURCE=..\src\login\ipban_sql.c +# End Source File +# Begin Source File + +SOURCE=..\src\login\login.c +# End Source File +# Begin Source File + +SOURCE=..\src\login\login.h +# End Source File +# Begin Source File + +SOURCE=..\src\login\loginlog.h +# End Source File +# Begin Source File + +SOURCE=..\src\login\loginlog_sql.h +# End Source File +# End Group +# End Target +# End Project diff --git a/vcproj-6/login-server_txt.dsp b/vcproj-6/login-server_txt.dsp index c6b39002f..8f93aaa7b 100644 --- a/vcproj-6/login-server_txt.dsp +++ b/vcproj-6/login-server_txt.dsp @@ -1,202 +1,230 @@ -# Microsoft Developer Studio Project File - Name="login_txt" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=login_txt - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "login-server_txt.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "login-server_txt.mak" CFG="login_txt - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "login_txt - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W2 /GX /O2 /I "..\src\common" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "TXT_ONLY" /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/login_txt/login-server_txt.pch" /YX /Fo"tmp/login_txt/" /Fd"tmp/login_txt/" /FD /c -# ADD BASE RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 WSOCK32.lib zdll.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/login_txt/login-server_txt.pdb" /machine:I386 /out:"../login-server_txt.exe" /libpath:"../lib" -# SUBTRACT LINK32 /pdb:none -# Begin Target - -# Name "login_txt - Win32 Release" -# Begin Group "common" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\common\cbasetypes.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\md5calc.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\mmo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugin.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\svnversion.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\version.h -# End Source File -# End Group -# Begin Group "login" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\login\admin.c -# End Source File -# Begin Source File - -SOURCE=..\src\login\login.c -# End Source File -# Begin Source File - -SOURCE=..\src\login\login.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="login_txt" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=login_txt - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "login-server_txt.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "login-server_txt.mak" CFG="login_txt - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "login_txt - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W2 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /D "WITH_TXT" /D "ACCOUNTDB_ENGINE_0=rj" /Fp"tmp/login_txt/login-server_txt.pch" /YX /Fo"tmp/login_txt/" /Fd"tmp/login_txt/" /FD /c +# ADD BASE RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 WSOCK32.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/login_txt/login-server_txt.pdb" /machine:I386 /out:"../login-server_txt.exe" +# SUBTRACT LINK32 /pdb:none +# Begin Target + +# Name "login_txt - Win32 Release" +# Begin Group "common" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\common\cbasetypes.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\md5calc.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\mmo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugin.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\svnversion.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\version.h +# End Source File +# End Group +# Begin Group "login" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\login\account.h +# End Source File +# Begin Source File + +SOURCE=..\src\login\account_rj.c +# End Source File +# Begin Source File + +SOURCE=..\src\login\account_txt.c +# End Source File +# Begin Source File + +SOURCE=..\src\login\admin.c +# End Source File +# Begin Source File + +SOURCE=..\src\login\ipban.h +# End Source File +# Begin Source File + +SOURCE=..\src\login\ipban_txt.c +# End Source File +# Begin Source File + +SOURCE=..\src\login\login.c +# End Source File +# Begin Source File + +SOURCE=..\src\login\login.h +# End Source File +# Begin Source File + +SOURCE=..\src\login\loginlog.h +# End Source File +# Begin Source File + +SOURCE=..\src\login\loginlog_txt.h +# End Source File +# End Group +# End Target +# End Project diff --git a/vcproj-6/map-server_sql.dsp b/vcproj-6/map-server_sql.dsp index cfcf61a39..0fa675847 100644 --- a/vcproj-6/map-server_sql.dsp +++ b/vcproj-6/map-server_sql.dsp @@ -1,450 +1,434 @@ -# Microsoft Developer Studio Project File - Name="map_sql" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=map_sql - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "map-server_sql.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "map-server_sql.mak" CFG="map_sql - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "map_sql - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W2 /GX /O2 /I "..\src\common" /I "..\src\zlib" /I "..\src\mysql" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WIN32" /D "__WIN32" /D "PCRE_SUPPORT" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/map_sql/map-server_sql.pch" /YX /Fo"tmp/map_sql/" /Fd"tmp/map_sql/" /FD /c -# ADD BASE RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 WSOCK32.lib libmysql.lib pcre.lib zdll.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/map_sql/map-server_sql.pdb" /machine:I386 /out:"../map-server_sql.exe" /libpath:"../lib" -# SUBTRACT LINK32 /pdb:none -# Begin Target - -# Name "map_sql - Win32 Release" -# Begin Group "common" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\common\cbasetypes.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\grfio.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\grfio.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mmo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugin.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\sql.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\sql.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\svnversion.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\version.h -# End Source File -# End Group -# Begin Group "map" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\map\atcommand.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\atcommand.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\battle.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\battle.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\charcommand.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\charcommand.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\chat.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\chat.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\chrif.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\chrif.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\clif.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\clif.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\date.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\date.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\guild.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\guild.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\intif.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\intif.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\irc.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\irc.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\itemdb.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\itemdb.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\log.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\log.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\mail.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\mail.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\map.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\map.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\mercenary.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\mercenary.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\mob.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\mob.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\npc.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\npc.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\npc_chat.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\party.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\party.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\path.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\path.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\pc.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\pc.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\pcre.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\pet.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\pet.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\script.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\script.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\skill.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\skill.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\status.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\status.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\storage.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\storage.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\trade.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\trade.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\unit.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\vending.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\vending.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\quest.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\quest.h -# End Source File -# End Group -# Begin Group "zlib" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\zlib\zconf.h -# End Source File -# Begin Source File - -SOURCE=..\src\zlib\zlib.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="map_sql" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=map_sql - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "map-server_sql.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "map-server_sql.mak" CFG="map_sql - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "map_sql - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W2 /GX /O2 /I "..\3rdparty\mysql\include" /I "..\3rdparty\zlib\include" /I "..\3rdparty\pcre\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WIN32" /D "__WIN32" /D "PCRE_SUPPORT" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/map_sql/map-server_sql.pch" /YX /Fo"tmp/map_sql/" /Fd"tmp/map_sql/" /FD /c +# ADD BASE RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 WSOCK32.lib libmysql.lib zdll.lib pcre.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/map_sql/map-server_sql.pdb" /machine:I386 /out:"../map-server_sql.exe" /libpath:"..\3rdparty\mysql\lib" /libpath:"..\3rdparty\zlib\lib" /libpath:"..\3rdparty\pcre\lib" +# SUBTRACT LINK32 /pdb:none +# Begin Target + +# Name "map_sql - Win32 Release" +# Begin Group "common" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\common\cbasetypes.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\grfio.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\grfio.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mmo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugin.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\sql.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\sql.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\svnversion.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\version.h +# End Source File +# End Group +# Begin Group "map" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\map\atcommand.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\atcommand.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\battle.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\battle.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\charcommand.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\charcommand.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\chat.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\chat.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\chrif.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\chrif.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\clif.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\clif.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\date.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\date.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\guild.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\guild.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\intif.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\intif.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\irc.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\irc.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\itemdb.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\itemdb.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\log.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\log.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\mail.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\mail.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\map.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\map.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\mercenary.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\mercenary.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\mob.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\mob.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\npc.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\npc.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\npc_chat.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\party.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\party.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\path.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\path.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\pc.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\pc.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\pet.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\pet.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\quest.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\quest.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\script.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\script.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\skill.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\skill.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\status.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\status.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\storage.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\storage.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\trade.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\trade.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\unit.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\vending.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\vending.h +# End Source File +# End Group +# End Target +# End Project diff --git a/vcproj-6/map-server_txt.dsp b/vcproj-6/map-server_txt.dsp index 4f2e4409e..2bc1da93e 100644 --- a/vcproj-6/map-server_txt.dsp +++ b/vcproj-6/map-server_txt.dsp @@ -1,446 +1,430 @@ -# Microsoft Developer Studio Project File - Name="map_txt" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=map_txt - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "map-server_txt.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "map-server_txt.mak" CFG="map_txt - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "map_txt - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W2 /GX /O2 /I "..\src\common" /I "..\src\zlib" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WIN32" /D "TXT_ONLY" /D "__WIN32" /D "PCRE_SUPPORT" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/map_txt/map-server_txt.pch" /YX /Fo"tmp/map_txt/" /Fd"tmp/map_txt/" /FD /c -# ADD BASE RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 WSOCK32.lib pcre.lib zdll.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/map_txt/map-server_txt.pdb" /machine:I386 /out:"../map-server_txt.exe" /libpath:"../lib" -# SUBTRACT LINK32 /pdb:none -# Begin Target - -# Name "map_txt - Win32 Release" -# Begin Group "common" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\common\cbasetypes.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\core.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\db.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\ers.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\grfio.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\grfio.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\lock.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\malloc.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\mapindex.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\mmo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\nullpo.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugin.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\plugins.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\showmsg.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\socket.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\strlib.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\svnversion.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\timer.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.c -# End Source File -# Begin Source File - -SOURCE=..\src\common\utils.h -# End Source File -# Begin Source File - -SOURCE=..\src\common\version.h -# End Source File -# End Group -# Begin Group "map" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\map\atcommand.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\battle.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\charcommand.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\chat.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\chrif.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\clif.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\date.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\guild.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\intif.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\irc.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\itemdb.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\log.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\mail.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\map.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\mercenary.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\mob.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\npc.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\npc_chat.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\party.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\path.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\pc.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\pet.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\script.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\skill.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\status.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\storage.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\trade.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\unit.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\vending.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\atcommand.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\battle.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\charcommand.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\chat.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\chrif.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\clif.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\date.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\guild.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\intif.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\irc.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\itemdb.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\log.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\mail.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\map.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\mercenary.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\mob.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\npc.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\party.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\path.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\pc.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\pcre.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\pet.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\script.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\skill.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\status.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\storage.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\trade.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\unit.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\vending.h -# End Source File -# Begin Source File - -SOURCE=..\src\map\quest.c -# End Source File -# Begin Source File - -SOURCE=..\src\map\quest.h -# End Source File -# End Group -# Begin Group "zlib" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\src\zlib\zconf.h -# End Source File -# Begin Source File - -SOURCE=..\src\zlib\zlib.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="map_txt" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=map_txt - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "map-server_txt.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "map-server_txt.mak" CFG="map_txt - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "map_txt - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W2 /GX /O2 /I "..\3rdparty\zlib\include" /I "..\3rdparty\pcre\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WIN32" /D "TXT_ONLY" /D "__WIN32" /D "PCRE_SUPPORT" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /Fp"tmp/map_txt/map-server_txt.pch" /YX /Fo"tmp/map_txt/" /Fd"tmp/map_txt/" /FD /c +# ADD BASE RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 WSOCK32.lib zdll.lib pcre.lib ws2_32.lib /nologo /subsystem:console /pdb:"tmp/map_txt/map-server_txt.pdb" /machine:I386 /out:"../map-server_txt.exe" /libpath:"..\3rdparty\zlib\lib" /libpath:"..\3rdparty\pcre\lib" +# SUBTRACT LINK32 /pdb:none +# Begin Target + +# Name "map_txt - Win32 Release" +# Begin Group "common" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\common\cbasetypes.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\core.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\db.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\ers.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\grfio.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\grfio.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\lock.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\malloc.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\mapindex.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\mmo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\nullpo.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugin.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\plugins.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\showmsg.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\socket.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\strlib.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\svnversion.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\timer.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.c +# End Source File +# Begin Source File + +SOURCE=..\src\common\utils.h +# End Source File +# Begin Source File + +SOURCE=..\src\common\version.h +# End Source File +# End Group +# Begin Group "map" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\src\map\atcommand.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\battle.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\charcommand.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\chat.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\chrif.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\clif.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\date.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\guild.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\intif.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\irc.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\itemdb.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\log.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\mail.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\map.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\mercenary.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\mob.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\npc.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\npc_chat.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\party.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\path.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\pc.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\pet.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\quest.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\script.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\skill.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\status.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\storage.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\trade.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\unit.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\vending.c +# End Source File +# Begin Source File + +SOURCE=..\src\map\atcommand.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\battle.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\charcommand.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\chat.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\chrif.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\clif.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\date.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\guild.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\intif.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\irc.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\itemdb.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\log.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\mail.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\map.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\mercenary.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\mob.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\npc.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\party.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\path.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\pc.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\pet.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\quest.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\script.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\skill.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\status.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\storage.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\trade.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\unit.h +# End Source File +# Begin Source File + +SOURCE=..\src\map\vending.h +# End Source File +# End Group +# End Target +# End Project diff --git a/vcproj-7.1/char-server_sql.vcproj b/vcproj-7.1/char-server_sql.vcproj index 118c7b9d6..a252b9f65 100644 --- a/vcproj-7.1/char-server_sql.vcproj +++ b/vcproj-7.1/char-server_sql.vcproj @@ -20,7 +20,7 @@ + RelativePath="..\src\char_sql\int_quest.c"> + RelativePath="..\src\char_sql\int_quest.h"> + RelativePath="..\src\char_sql\int_storage.c"> + RelativePath="..\src\char_sql\int_storage.h"> diff --git a/vcproj-7.1/char-server_txt.vcproj b/vcproj-7.1/char-server_txt.vcproj index 786f0f067..f23d56be2 100644 --- a/vcproj-7.1/char-server_txt.vcproj +++ b/vcproj-7.1/char-server_txt.vcproj @@ -20,7 +20,7 @@ + RelativePath="..\src\login\account.h"> + RelativePath="..\src\login\account_sql.c"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + @@ -322,12 +325,6 @@ - - - - - - - - - - diff --git a/vcproj-7.1/map-server_txt.vcproj b/vcproj-7.1/map-server_txt.vcproj index e389684da..35a91acf3 100644 --- a/vcproj-7.1/map-server_txt.vcproj +++ b/vcproj-7.1/map-server_txt.vcproj @@ -21,7 +21,7 @@ AdditionalOptions="/wd4018 /wd4100" Optimization="0" - AdditionalIncludeDirectories="..\src\common;..\src\zlib" + AdditionalIncludeDirectories="..\3rdparty\zlib\include;..\3rdparty\pcre\include" PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;TXT_ONLY;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION" GeneratePreprocessedFile="0" MinimalRebuild="TRUE" @@ -42,10 +42,10 @@ - - + + + + @@ -322,12 +325,6 @@ - - - - - - - - - - diff --git a/vcproj-7.1/mapcache.vcproj b/vcproj-7.1/mapcache.vcproj index b0a09a288..5c5cbe8e5 100644 --- a/vcproj-7.1/mapcache.vcproj +++ b/vcproj-7.1/mapcache.vcproj @@ -1,166 +1,156 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vcproj-8/char-server_sql.vcproj b/vcproj-8/char-server_sql.vcproj index 0a11b2ab7..4d83d6c88 100644 --- a/vcproj-8/char-server_sql.vcproj +++ b/vcproj-8/char-server_sql.vcproj @@ -41,7 +41,7 @@ + + + + + + + + + + + + + + diff --git a/vcproj-8/login-server_txt.vcproj b/vcproj-8/login-server_txt.vcproj index d4611de8d..61e395b30 100644 --- a/vcproj-8/login-server_txt.vcproj +++ b/vcproj-8/login-server_txt.vcproj @@ -41,8 +41,7 @@ Name="VCCLCompilerTool" AdditionalOptions="/wd4100" Optimization="0" - AdditionalIncludeDirectories="..\src\common;..\src\zlib" - PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG;TXT_ONLY;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION" + PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION;WITH_TXT;ACCOUNTDB_ENGINE_0=rj" GeneratePreprocessedFile="0" MinimalRebuild="true" ExceptionHandling="0" @@ -67,11 +66,11 @@ /> + + + + + + + + + + @@ -215,6 +233,14 @@ RelativePath="..\src\login\login.h" > + + + + - - - - - - @@ -523,15 +511,19 @@ > + + - - - - diff --git a/vcproj-8/map-server_txt.vcproj b/vcproj-8/map-server_txt.vcproj index db7453962..e3f5d75af 100644 --- a/vcproj-8/map-server_txt.vcproj +++ b/vcproj-8/map-server_txt.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" AdditionalOptions="/wd4018 /wd4100" Optimization="0" - AdditionalIncludeDirectories="..\src\common;..\src\zlib" + AdditionalIncludeDirectories="..\3rdparty\zlib\include;..\3rdparty\pcre\include" PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;TXT_ONLY;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION" GeneratePreprocessedFile="0" MinimalRebuild="true" @@ -71,7 +71,7 @@ AdditionalDependencies="libcmtd.lib oldnames.lib ws2_32.lib zdll.lib pcre.lib" OutputFile="$(OutDir)\map-server.exe" LinkIncremental="2" - AdditionalLibraryDirectories="..\lib" + AdditionalLibraryDirectories="..\3rdparty\zlib\lib;..\3rdparty\pcre\lib" IgnoreAllDefaultLibraries="true" GenerateDebugInformation="true" ProgramDatabaseFile="$(OutDir)\map-server.pdb" @@ -136,7 +136,7 @@ OmitFramePointers="true" EnableFiberSafeOptimizations="true" WholeProgramOptimization="true" - AdditionalIncludeDirectories="..\src\common;..\src\zlib" + AdditionalIncludeDirectories="..\3rdparty\zlib\include;..\3rdparty\pcre\include" PreprocessorDefinitions="WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;TXT_ONLY;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION" StringPooling="true" RuntimeLibrary="0" @@ -162,7 +162,7 @@ AdditionalDependencies="libcmt.lib oldnames.lib ws2_32.lib zdll.lib pcre.lib" OutputFile="$(OutDir)\map-server.exe" LinkIncremental="1" - AdditionalLibraryDirectories="..\lib" + AdditionalLibraryDirectories="..\3rdparty\zlib\lib;..\3rdparty\pcre\lib" IgnoreAllDefaultLibraries="true" GenerateDebugInformation="true" ProgramDatabaseFile="$(OutDir)\map-server.pdb" @@ -370,15 +370,19 @@ > + + - - - - - - - - - - - - - - - - diff --git a/vcproj-8/txt-converter-char.vcproj b/vcproj-8/txt-converter-char.vcproj index bacd687a2..608544d68 100644 --- a/vcproj-8/txt-converter-char.vcproj +++ b/vcproj-8/txt-converter-char.vcproj @@ -41,7 +41,7 @@ + + + + + + + + + + + + + + diff --git a/vcproj-9/login-server_txt.vcproj b/vcproj-9/login-server_txt.vcproj index 78cc1d041..e5897aaaa 100644 --- a/vcproj-9/login-server_txt.vcproj +++ b/vcproj-9/login-server_txt.vcproj @@ -41,8 +41,7 @@ + + + + + + + + @@ -212,6 +226,14 @@ RelativePath="..\src\login\login.h" > + + + + - - - - - - @@ -518,10 +506,6 @@ RelativePath="..\src\map\pc.h" > - - diff --git a/vcproj-9/map-server_txt.vcproj b/vcproj-9/map-server_txt.vcproj index 5b3872dc0..779ff5f25 100644 --- a/vcproj-9/map-server_txt.vcproj +++ b/vcproj-9/map-server_txt.vcproj @@ -41,7 +41,7 @@ - - @@ -442,18 +438,6 @@ > - - - - - - diff --git a/vcproj-9/mapcache.vcproj b/vcproj-9/mapcache.vcproj index 113611965..29c07715c 100644 --- a/vcproj-9/mapcache.vcproj +++ b/vcproj-9/mapcache.vcproj @@ -41,7 +41,7 @@ - - - - - - diff --git a/vcproj-9/txt-converter-char.vcproj b/vcproj-9/txt-converter-char.vcproj index 97debfe11..31a48cc8b 100644 --- a/vcproj-9/txt-converter-char.vcproj +++ b/vcproj-9/txt-converter-char.vcproj @@ -42,7 +42,7 @@ + + + + diff --git a/vcproj-9/txt-converter-login.vcproj b/vcproj-9/txt-converter-login.vcproj index 2b2097e11..124d35715 100644 --- a/vcproj-9/txt-converter-login.vcproj +++ b/vcproj-9/txt-converter-login.vcproj @@ -42,7 +42,7 @@ + + + + @@ -259,7 +267,27 @@ RelativePath="..\src\common\strlib.h" > + + + + + + + + + + -- cgit v1.2.3-70-g09d2 From 479f5a453ef9e02a9913a994c0e74ed101edc1e6 Mon Sep 17 00:00:00 2001 From: ultramage Date: Mon, 4 Aug 2008 11:25:28 +0000 Subject: Corrected project files / makefiles that were missing newly added .c file entries. Corrected a leftover _RJ setting in the vs6/vs7/vs8 txt login server project files. Reformatted the converters makefile. Added a crude vs9->vs8 project file converter to /tools. Synchronized vs8 project files using the converter tool. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13043 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/txt-converter/Makefile.in | 99 ++++++++++++++++++++++++++++--------- src/txt-converter/login-converter.c | 3 -- tools/vs9-to-vs8.php | 43 ++++++++++++++++ vcproj-6/login-server_txt.dsp | 2 +- vcproj-7.1/login-server_txt.vcproj | 4 +- vcproj-8/char-server_sql.vcproj | 11 +---- vcproj-8/char-server_txt.vcproj | 11 +---- vcproj-8/ladmin.vcproj | 9 ---- vcproj-8/login-server_sql.vcproj | 13 ++--- vcproj-8/login-server_txt.vcproj | 16 ++---- vcproj-8/map-server_sql.vcproj | 13 +---- vcproj-8/map-server_txt.vcproj | 13 +---- vcproj-8/mapcache.vcproj | 9 ---- vcproj-8/txt-converter-char.vcproj | 11 +++-- vcproj-8/txt-converter-login.vcproj | 39 +++++++++++---- 15 files changed, 175 insertions(+), 121 deletions(-) create mode 100644 tools/vs9-to-vs8.php (limited to 'tools') diff --git a/src/txt-converter/Makefile.in b/src/txt-converter/Makefile.in index c90a6a4b2..41c773d31 100644 --- a/src/txt-converter/Makefile.in +++ b/src/txt-converter/Makefile.in @@ -1,29 +1,77 @@ - -LOGIN_CONVERTER_OBJ = obj_login/login-converter.o ../common/obj_all/minicore.o \ - ../common/obj_all/malloc.o ../common/obj_all/strlib.o ../common/obj_all/showmsg.o \ - ../common/obj_all/utils.o ../common/obj_all/ers.o ../common/obj_all/db.o \ +LOGIN_CONVERTER_OBJ = \ + obj_login/login-converter.o \ + ../login/obj_txt/account_txt.o \ + ../login/obj_sql/account_sql.o \ + ../common/obj_all/minicore.o \ + ../common/obj_all/db.o \ + ../common/obj_all/ers.o \ + ../common/obj_all/lock.o \ + ../common/obj_all/malloc.o \ + ../common/obj_all/showmsg.o \ + ../common/obj_all/strlib.o \ + ../common/obj_all/timer.o \ ../common/obj_sql/sql.o -LOGIN_CONVERTER_H = ../common/cbasetypes.h ../common/mmo.h ../common/core.h \ - ../common/malloc.h ../common/strlib.h ../common/showmsg.h \ - ../common/utils.h ../common/ers.h ../common/db.h \ +LOGIN_CONVERTER_H = \ + ../login/account.h \ + ../common/cbasetypes.h \ + ../common/mmo.h \ + ../common/core.h \ + ../common/db.h \ + ../common/ers.h \ + ../common/lock.h \ + ../common/malloc.h \ + ../common/showmsg.h \ + ../common/strlib.h \ + ../common/timer.h \ ../common/sql.h -CHAR_CONVERTER_OBJ = obj_char/char-converter.o \ - obj_char/txt-char.o obj_char/txt-int_pet.o obj_char/txt-int_storage.o obj_char/txt-inter.o \ - obj_char/txt-int_party.o obj_char/txt-int_guild.o \ - obj_char/sql-char.o obj_char/sql-int_pet.o obj_char/sql-int_storage.o \ - obj_char/sql-inter.o obj_char/sql-int_party.o obj_char/sql-int_guild.o \ +CHAR_CONVERTER_OBJ = \ + obj_char/char-converter.o \ + obj_char/txt-char.o \ + obj_char/txt-int_pet.o \ + obj_char/txt-int_storage.o \ + obj_char/txt-inter.o \ + obj_char/txt-int_party.o \ + obj_char/txt-int_guild.o \ + obj_char/sql-char.o \ + obj_char/sql-int_pet.o \ + obj_char/sql-int_storage.o \ + obj_char/sql-inter.o \ + obj_char/sql-int_party.o \ + obj_char/sql-int_guild.o \ ../common/obj_all/minicore.o \ - ../common/obj_all/malloc.o ../common/obj_all/strlib.o ../common/obj_all/showmsg.o \ - ../common/obj_all/utils.o ../common/obj_all/ers.o ../common/obj_all/mapindex.o \ + ../common/obj_all/malloc.o \ + ../common/obj_all/strlib.o \ + ../common/obj_all/showmsg.o \ + ../common/obj_all/utils.o \ + ../common/obj_all/timer.o \ + ../common/obj_all/ers.o \ + ../common/obj_all/mapindex.o \ ../common/obj_sql/sql.o -CHAR_CONVERTER_H = ../char/char.h ../char/int_pet.h ../char/int_storage.h ../char/inter.h \ - ../char/int_party.h ../char/int_guild.h \ - ../char_sql/char.h ../char_sql/int_pet.h ../char_sql/int_storage.h \ - ../char_sql/inter.h ../char_sql/int_party.h ../char_sql/int_guild.h \ - ../common/cbasetypes.h ../common/mmo.h ../common/core.h \ - ../common/malloc.h ../common/strlib.h ../common/showmsg.h \ - ../common/utils.h ../common/ers.h ../common/mapindex.h \ + +CHAR_CONVERTER_H = \ + ../char/char.h \ + ../char/int_pet.h \ + ../char/int_storage.h \ + ../char/inter.h \ + ../char/int_party.h \ + ../char/int_guild.h \ + ../char_sql/char.h \ + ../char_sql/int_pet.h \ + ../char_sql/int_storage.h \ + ../char_sql/inter.h \ + ../char_sql/int_party.h \ + ../char_sql/int_guild.h \ + ../common/cbasetypes.h \ + ../common/mmo.h \ + ../common/core.h \ + ../common/malloc.h \ + ../common/strlib.h \ + ../common/showmsg.h \ + ../common/timer.h \ + ../common/utils.h \ + ../common/ers.h \ + ../common/mapindex.h \ ../common/sql.h HAVE_MYSQL=@HAVE_MYSQL@ @@ -72,7 +120,7 @@ obj_char: -mkdir obj_char obj_login/%.o: %.c $(LOGIN_CONVERTER_H) - @CC@ @CFLAGS@ @MYSQL_CFLAGS@ @CPPFLAGS@ -DTXT_SQL_CONVERT -c $(OUTPUT_OPTION) $< + @CC@ @CFLAGS@ @MYSQL_CFLAGS@ @CPPFLAGS@ -DWITH_TXT -DWITH_SQL -c $(OUTPUT_OPTION) $< obj_char/%.o: %.c $(CHAR_CONVERTER_H) @CC@ @CFLAGS@ @MYSQL_CFLAGS@ @CPPFLAGS@ -DTXT_SQL_CONVERT -c $(OUTPUT_OPTION) $< @@ -89,3 +137,10 @@ obj_char/sql-%.o: ../char_sql/%.c $(CHAR_CONVERTER_H) ../common/obj_sql/%.o: @$(MAKE) -C ../common sql + +# missing login server files +../login/obj_txt/%.o: + @$(MAKE) -C ../login txt + +../login/obj_sql/%.o: + @$(MAKE) -C ../login sql diff --git a/src/txt-converter/login-converter.c b/src/txt-converter/login-converter.c index 78717287d..d72d35ae2 100644 --- a/src/txt-converter/login-converter.c +++ b/src/txt-converter/login-converter.c @@ -1,9 +1,6 @@ // (c) eAthena Dev Team - Licensed under GNU GPL // For more information, see LICENCE in the main folder -#define WITH_TXT -#define WITH_SQL - #include "../common/cbasetypes.h" #include "../common/mmo.h" // struct mmo_account #include "../common/core.h" diff --git a/tools/vs9-to-vs8.php b/tools/vs9-to-vs8.php new file mode 100644 index 000000000..aa88379ff --- /dev/null +++ b/tools/vs9-to-vs8.php @@ -0,0 +1,43 @@ + + diff --git a/vcproj-6/login-server_txt.dsp b/vcproj-6/login-server_txt.dsp index f1d604759..898273789 100644 --- a/vcproj-6/login-server_txt.dsp +++ b/vcproj-6/login-server_txt.dsp @@ -38,7 +38,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W2 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /D "WITH_TXT" /D "ACCOUNTDB_ENGINE_0=rj" /Fp"tmp/login_txt/login-server_txt.pch" /YX /Fo"tmp/login_txt/" /Fd"tmp/login_txt/" /FD /c +# ADD CPP /nologo /W2 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "__WIN32" /D FD_SETSIZE=4096 /D "DB_MANUAL_CAST_TO_UNION" /D "WITH_TXT" /Fp"tmp/login_txt/login-server_txt.pch" /YX /Fo"tmp/login_txt/" /Fd"tmp/login_txt/" /FD /c # ADD BASE RSC /l 0x409 BSC32=bscmake.exe # ADD BASE BSC32 /nologo diff --git a/vcproj-7.1/login-server_txt.vcproj b/vcproj-7.1/login-server_txt.vcproj index 37086403c..75c44a53b 100644 --- a/vcproj-7.1/login-server_txt.vcproj +++ b/vcproj-7.1/login-server_txt.vcproj @@ -19,7 +19,7 @@ - @@ -143,9 +140,9 @@ DefaultCharIsUnsigned="false" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="1" + DisableSpecificWarnings="4800" /> @@ -191,9 +187,6 @@ - diff --git a/vcproj-8/char-server_txt.vcproj b/vcproj-8/char-server_txt.vcproj index b18463c09..ac6529554 100644 --- a/vcproj-8/char-server_txt.vcproj +++ b/vcproj-8/char-server_txt.vcproj @@ -52,9 +52,9 @@ DefaultCharIsUnsigned="false" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="4" CompileAs="1" + DisableSpecificWarnings="4800" /> - @@ -142,9 +139,9 @@ DefaultCharIsUnsigned="false" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="1" + DisableSpecificWarnings="4800" /> @@ -189,9 +185,6 @@ - diff --git a/vcproj-8/ladmin.vcproj b/vcproj-8/ladmin.vcproj index 43bd098ad..645d75556 100644 --- a/vcproj-8/ladmin.vcproj +++ b/vcproj-8/ladmin.vcproj @@ -51,7 +51,6 @@ DefaultCharIsUnsigned="false" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="4" CompileAs="1" /> @@ -95,9 +94,6 @@ - @@ -142,7 +138,6 @@ DefaultCharIsUnsigned="false" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="1" /> @@ -167,7 +162,6 @@ SubSystem="1" OptimizeReferences="2" EnableCOMDATFolding="2" - OptimizeForWindows98="1" LinkTimeCodeGeneration="1" TargetMachine="1" /> @@ -189,9 +183,6 @@ - diff --git a/vcproj-8/login-server_sql.vcproj b/vcproj-8/login-server_sql.vcproj index 07531ce61..0afde87eb 100644 --- a/vcproj-8/login-server_sql.vcproj +++ b/vcproj-8/login-server_sql.vcproj @@ -1,7 +1,7 @@ - @@ -145,9 +142,9 @@ PrecompiledHeaderThrough="" PrecompiledHeaderFile="" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="1" + DisableSpecificWarnings="4100;4800" /> @@ -193,9 +189,6 @@ - diff --git a/vcproj-8/login-server_txt.vcproj b/vcproj-8/login-server_txt.vcproj index 4ed7a7d61..fa454831f 100644 --- a/vcproj-8/login-server_txt.vcproj +++ b/vcproj-8/login-server_txt.vcproj @@ -39,9 +39,8 @@ /> - @@ -134,15 +130,15 @@ OmitFramePointers="true" EnableFiberSafeOptimizations="true" WholeProgramOptimization="true" - PreprocessorDefinitions="WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION;WITH_TXT;ACCOUNTDB_ENGINE_0=rj" + PreprocessorDefinitions="WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION;WITH_TXT" StringPooling="true" RuntimeLibrary="0" DefaultCharIsUnsigned="false" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="1" + DisableSpecificWarnings="4100;4800" /> @@ -187,9 +182,6 @@ - diff --git a/vcproj-8/map-server_sql.vcproj b/vcproj-8/map-server_sql.vcproj index 42abca317..dede60841 100644 --- a/vcproj-8/map-server_sql.vcproj +++ b/vcproj-8/map-server_sql.vcproj @@ -39,7 +39,6 @@ /> - @@ -129,7 +125,6 @@ /> @@ -192,9 +186,6 @@ - diff --git a/vcproj-8/map-server_txt.vcproj b/vcproj-8/map-server_txt.vcproj index 0a017acdd..dbaa045c0 100644 --- a/vcproj-8/map-server_txt.vcproj +++ b/vcproj-8/map-server_txt.vcproj @@ -39,7 +39,6 @@ /> - @@ -128,7 +124,6 @@ /> @@ -191,9 +185,6 @@ - diff --git a/vcproj-8/mapcache.vcproj b/vcproj-8/mapcache.vcproj index 4e11d76d2..ca8ba377c 100644 --- a/vcproj-8/mapcache.vcproj +++ b/vcproj-8/mapcache.vcproj @@ -51,7 +51,6 @@ DefaultCharIsUnsigned="false" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="4" CompileAs="1" /> @@ -95,9 +94,6 @@ - @@ -142,7 +138,6 @@ DefaultCharIsUnsigned="false" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="1" /> @@ -167,7 +162,6 @@ SubSystem="1" OptimizeReferences="2" EnableCOMDATFolding="2" - OptimizeForWindows98="1" LinkTimeCodeGeneration="1" TargetMachine="1" /> @@ -189,9 +183,6 @@ - diff --git a/vcproj-8/txt-converter-char.vcproj b/vcproj-8/txt-converter-char.vcproj index 608544d68..a30463c22 100644 --- a/vcproj-8/txt-converter-char.vcproj +++ b/vcproj-8/txt-converter-char.vcproj @@ -52,7 +52,6 @@ DefaultCharIsUnsigned="false" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="4" CompileAs="1" /> @@ -142,7 +141,6 @@ PrecompiledHeaderThrough="" PrecompiledHeaderFile="" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="1" /> @@ -168,7 +166,6 @@ SubSystem="1" OptimizeReferences="2" EnableCOMDATFolding="2" - OptimizeForWindows98="1" LinkTimeCodeGeneration="1" TargetMachine="1" /> @@ -309,6 +306,14 @@ RelativePath="..\src\common\strlib.h" > + + + + diff --git a/vcproj-8/txt-converter-login.vcproj b/vcproj-8/txt-converter-login.vcproj index da37608c8..2fb4d62a5 100644 --- a/vcproj-8/txt-converter-login.vcproj +++ b/vcproj-8/txt-converter-login.vcproj @@ -1,7 +1,7 @@ @@ -96,9 +95,6 @@ - @@ -145,7 +141,6 @@ PrecompiledHeaderThrough="" PrecompiledHeaderFile="" WarningLevel="3" - Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="1" /> @@ -171,7 +166,6 @@ SubSystem="1" OptimizeReferences="2" EnableCOMDATFolding="2" - OptimizeForWindows98="1" LinkTimeCodeGeneration="1" TargetMachine="1" /> @@ -193,9 +187,6 @@ - @@ -231,6 +222,14 @@ RelativePath="..\src\common\ers.h" > + + + + @@ -263,7 +262,27 @@ RelativePath="..\src\common\strlib.h" > + + + + + + + + + + -- cgit v1.2.3-70-g09d2 From 360cd95996dc6706d9a0fc6ad8a1769702ac281c Mon Sep 17 00:00:00 2001 From: ultramage Date: Mon, 4 Aug 2008 12:13:05 +0000 Subject: Attempt no.2 at svn:executable (followup to r13044) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13045 54d463be-8e91-2dee-dedb-b68131a5f0ec --- athena-start | 0 charserv-sql.bat | 0 charserv.bat | 0 logserv-sql.bat | 0 logserv.bat | 0 mapserv-sql.bat | 0 mapserv.bat | 0 runserver-sql.bat | 0 runserver.bat | 0 start | 0 tools/stackdump | 0 11 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 athena-start mode change 100644 => 100755 charserv-sql.bat mode change 100644 => 100755 charserv.bat mode change 100644 => 100755 logserv-sql.bat mode change 100644 => 100755 logserv.bat mode change 100644 => 100755 mapserv-sql.bat mode change 100644 => 100755 mapserv.bat mode change 100644 => 100755 runserver-sql.bat mode change 100644 => 100755 runserver.bat mode change 100644 => 100755 start mode change 100644 => 100755 tools/stackdump (limited to 'tools') diff --git a/athena-start b/athena-start old mode 100644 new mode 100755 diff --git a/charserv-sql.bat b/charserv-sql.bat old mode 100644 new mode 100755 diff --git a/charserv.bat b/charserv.bat old mode 100644 new mode 100755 diff --git a/logserv-sql.bat b/logserv-sql.bat old mode 100644 new mode 100755 diff --git a/logserv.bat b/logserv.bat old mode 100644 new mode 100755 diff --git a/mapserv-sql.bat b/mapserv-sql.bat old mode 100644 new mode 100755 diff --git a/mapserv.bat b/mapserv.bat old mode 100644 new mode 100755 diff --git a/runserver-sql.bat b/runserver-sql.bat old mode 100644 new mode 100755 diff --git a/runserver.bat b/runserver.bat old mode 100644 new mode 100755 diff --git a/start b/start old mode 100644 new mode 100755 diff --git a/tools/stackdump b/tools/stackdump old mode 100644 new mode 100755 -- cgit v1.2.3-70-g09d2 From 75787153a7c5208b46c513828b4242f6d93d299a Mon Sep 17 00:00:00 2001 From: ultramage Date: Fri, 15 Aug 2008 11:53:49 +0000 Subject: Adjusted the vs9-to-vs8 converter so that status messages won't mix with its converted output. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13082 54d463be-8e91-2dee-dedb-b68131a5f0ec --- tools/vs9-to-vs8.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'tools') diff --git a/tools/vs9-to-vs8.php b/tools/vs9-to-vs8.php index aa88379ff..f2f840592 100644 --- a/tools/vs9-to-vs8.php +++ b/tools/vs9-to-vs8.php @@ -1,14 +1,14 @@ -- cgit v1.2.3-70-g09d2 From 9468cefcb8c8a5569db110a4ef580c79cc0b2dcf Mon Sep 17 00:00:00 2001 From: ultramage Date: Sat, 16 Aug 2008 02:10:24 +0000 Subject: Another update to the vs9->vs8 converter, to use appropriate line endings. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13084 54d463be-8e91-2dee-dedb-b68131a5f0ec --- tools/vs9-to-vs8.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'tools') diff --git a/tools/vs9-to-vs8.php b/tools/vs9-to-vs8.php index f2f840592..9cc05fb76 100644 --- a/tools/vs9-to-vs8.php +++ b/tools/vs9-to-vs8.php @@ -1,14 +1,14 @@ -- cgit v1.2.3-70-g09d2 From c4803c50bc6a9e67c0c8e9c07d546666d08af8c9 Mon Sep 17 00:00:00 2001 From: ultramage Date: Sat, 16 Aug 2008 07:17:35 +0000 Subject: Added a mapreg txt->sql converter script to /tools, because the sql mapserver doesn't read the txt mapreg savefile anymore and people will most likely want to preserve their global variables. The script is php-based and requires the php_mysql module. The script produces a series of INSERT statements, ready to be imported to the database. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13086 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 6 ++++++ tools/mapreg-converter.php | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 tools/mapreg-converter.php (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index f1932113e..41abbfb9f 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,12 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2008/08/16 + * Added a mapreg txt->sql converter script to /tools, because the sql + mapserver doesn't read the txt mapreg savefile anymore and people + will most likely want to preserve their global variables. + - script is php-based and requires the php_mysql module + - script produces a series of INSERT statements, ready to be imported 2008/08/15 * Split off mapreg code from script.c [ultramage] - new mapserver files, mapreg.h, mapreg_txt.c, mapreg_sql.c diff --git a/tools/mapreg-converter.php b/tools/mapreg-converter.php new file mode 100644 index 000000000..3d548554a --- /dev/null +++ b/tools/mapreg-converter.php @@ -0,0 +1,38 @@ + sql import file converter + // author : theultramage / Yommy + // version: 16. august 2008 +?> +sql converter".PHP_EOL); + fwrite(STDERR, "-------------------------".PHP_EOL); + if( @$_SERVER["argc"] < 2 ) + { + fwrite(STDERR, "Usage: {$_SERVER["argv"][0]} [file]".PHP_EOL); + exit(); + } + + $input = @$_SERVER["argv"][1]; + $data = file($input); + if( $data === FALSE ) + die("Invalid input file '".$input."'!"); + + if( function_exists("mysql_escape_string") === FALSE ) + die("Please enable the php_mysql extension first!"); + + fwrite(STDERR, "Converting {$input}...".PHP_EOL); + define("EOL", PHP_EOL); + + foreach( $data as $line ) + { + if( preg_match('/(.*),(\d+)\t(.*)/m', $line, $regs) ) + fwrite(STDOUT, "INSERT INTO `mapreg` (`varname`,`index`,`value`) VALUES ('".mysql_escape_string($regs[1])."',".mysql_escape_string($regs[2]).",'".mysql_escape_string(rtrim($regs[3]))."');".EOL); + else + if( preg_match('/(.*)\t(.*)/m', $line, $regs) ) + fprintf(STDOUT, "INSERT INTO `mapreg` (`varname`,`index`,`value`) VALUES ('".mysql_escape_string($regs[1])."',0,'".mysql_escape_string(rtrim($regs[2]))."');".EOL); + else + fprintf(STDERR, "Invalid data: ".$line.PHP_EOL); + } + + fprintf(STDERR, "done.".PHP_EOL); +?> \ No newline at end of file -- cgit v1.2.3-70-g09d2 From a269c22b8d92b56a6b09bc2fa8375d1803cab909 Mon Sep 17 00:00:00 2001 From: brianluau Date: Mon, 27 Jul 2009 16:56:26 +0000 Subject: - Added svn:eol-style native for some conf/css/html/pl/sql/txt files. - Added svn:executable property for several batch/shell scripts. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13972 54d463be-8e91-2dee-dedb-b68131a5f0ec --- LICENCE | 680 +++---- LICENCE_JA | 832 ++++---- conf/battle/battleground.conf | 88 +- db/mercenary_db.txt | 78 +- db/mercenary_skill_db.txt | 236 +-- doc/map_cache.txt | 134 +- npc/battleground/bg_common.txt | 2516 ++++++++++++------------ npc/battleground/bg_flavius_01.txt | 906 ++++----- npc/battleground/bg_flavius_02.txt | 906 ++++----- npc/battleground/bg_tierra_01.txt | 976 ++++----- npc/battleground/bg_tierra_02.txt | 976 ++++----- npc/cities/moscovia.txt | 270 +-- npc/events/MemorialDay_2008.txt | 1034 +++++----- npc/events/children_week.txt | 170 +- npc/events/christmas_2008.txt | 2432 +++++++++++------------ npc/events/valentinesday_2009.txt | 1566 +++++++-------- npc/guides/guides_mosk.txt | 180 +- npc/kafras/kafras_mosk.txt | 304 +-- readme.html | 698 +++---- readme/changelog.html | 272 +-- readme/faq.html | 302 +-- readme/features.html | 320 +-- readme/gmcommands.html | 278 +-- readme/npcfeatures.html | 524 ++--- readme/readme.css | 452 ++--- readme/resources.html | 300 +-- readme/setup.html | 288 +-- sql-files/upgrade_svn12581.sql | 4 +- sql-files/upgrade_svn12975.sql | 48 +- sql-files/upgrade_svn12975_log.sql | 40 +- sql-files/upgrade_svn12975_view.sql | 34 +- sql-files/upgrade_svn13025_log.sql | 10 +- sql-files/upgrade_svn13115_mercenary.sql | 28 +- sql-files/upgrade_svn13166_mercenary_owner.sql | 42 +- sql-files/upgrade_svn13370_inventory.sql | 12 +- sql-files/upgrade_svn13881.sql | 2 +- sql-files/upgrade_svn13960_questlog.sql | 38 +- tools/backup | 100 - tools/backup.pl | 100 + tools/checkversion | 85 - tools/checkversion.pl | 85 + tools/getlogincount | 122 -- tools/getlogincount.pl | 122 ++ tools/mapcheck.sh | 66 +- tools/mapchecker.sh | 112 +- 45 files changed, 9384 insertions(+), 9384 deletions(-) delete mode 100644 tools/backup create mode 100755 tools/backup.pl delete mode 100644 tools/checkversion create mode 100755 tools/checkversion.pl delete mode 100644 tools/getlogincount create mode 100755 tools/getlogincount.pl mode change 100644 => 100755 tools/mapcheck.sh mode change 100644 => 100755 tools/mapchecker.sh (limited to 'tools') diff --git a/LICENCE b/LICENCE index 45645b4b5..5b6e7c66c 100644 --- a/LICENCE +++ b/LICENCE @@ -1,340 +1,340 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/LICENCE_JA b/LICENCE_JA index 0888c67e2..d6306074a 100644 --- a/LICENCE_JA +++ b/LICENCE_JA @@ -1,416 +1,416 @@ - GNU 一般公衆利用許諾契約書 - バージョン2、1991年6月 - 日本語訳、2002年5月20日 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - この利用許諾契約書を、一字一句そのままに複製し頒布することは許可する。 - しかし変更は認めない。 - - This is an unofficial translation of the GNU General Public License - into Japanese. It was not published by the Free Software Foundation, - and does not legally state the distribution terms for software that - uses the GNU GPL--only the original English text of the GNU GPL does - that. However, we hope that this translation will help Japanese - speakers understand the GNU GPL better. - - (訳: 以下はGNU General Public Licenseの非公式な日本語訳です。これはフ - リーソフトウェア財団(the Free Software Foundataion)によって発表された - ものではなく、GNU GPLを適用したソフトウェアの頒布条件を法的に有効な形 - で述べたものではありません。頒布条件としてはGNU GPLの英語版テキストで - 指定されているもののみが有効です。しかしながら、私たちはこの翻訳が、 - 日本語を使用する人々にとってGNU GPLをより良く理解する助けとなることを - 望んでいます。) - - 翻訳は 八田真行が行った。原文は - http://www.gnu.org/licenses/gpl.txtである。誤訳の指摘や改善案を歓迎す - る。 - はじめに - -ソフトウェア向けライセンスの大半は、あなたがそのソフトウェアを共有した -り変更したりする自由を奪うように設計されています。対照的に、GNU 一般公 -衆利用許諾契約書は、あなたがフリーソフトウェアを共有したり変更したりす -る自由を保証する--すなわち、ソフトウェアがそのユーザすべてにとってフリー -であることを保証することを目的としています。この一般公衆利用許諾契約書 -はフリーソフトウェア財団のソフトウェアのほとんどに適用されており、また -GNU GPLを適用すると決めたフリーソフトウェア財団以外の作者によるプログ -ラムにも適用されています(いくつかのフリーソフトウェア財団のソフトウェ -アには、GNU GPLではなくGNU ライブラリ一般公衆利用許諾契約書が適用され -ていることもあります)。あなたもまた、ご自分のプログラムにGNU GPLを適用 -することが可能です。 - -私たちがフリーソフトウェアと言うとき、それは利用の自由について言及して -いるのであって、価格は問題にしていません。私たちの一般公衆利用許諾契約 -書は、あなたがフリーソフトウェアの複製物を頒布する自由を保証するよう設 -計されています(希望に応じてその種のサービスに手数料を課す自由も保証さ -れます)。また、あなたがソースコードを受け取るか、あるいは望めばそれを -入手することが可能であるということ、あなたがソフトウェアを変更し、その -一部を新たなフリーのプログラムで利用できるということ、そして、以上で述 -べたようなことができるということがあなたに知らされるということも保証さ -れます。 - -あなたの権利を守るため、私たちは誰かがあなたの有するこれらの権利を否定 -することや、これらの権利を放棄するよう要求することを禁止するという制限 -を加える必要があります。よって、あなたがソフトウェアの複製物を頒布した -りそれを変更したりする場合には、これらの制限のためにあなたにある種の責 -任が発生することになります。 - -例えば、あなたがフリーなプログラムの複製物を頒布する場合、有料か無料に -関わらず、あなたは自分が有する権利を全て受領者に与えなければなりません。 -また、あなたは彼らもソースコードを受け取るか手に入れることができるよう -保証しなければなりません。そして、あなたは彼らに対して以下で述べる条件 -を示し、彼らに自らの持つ権利について知らしめるようにしなければなりませ -ん。 - -私たちはあなたの権利を二段階の手順を踏んで保護します。(1) まずソフトウェ -アに対して著作権を主張し、そして (2) あなたに対して、ソフトウェアの複 -製や頒布または改変についての法的な許可を与えるこの契約書を提示します。 - -また、各作者や私たちを保護するため、私たちはこのフリーソフトウェアには -何の保証も無いということを誰もが確実に理解するようにし、またソフトウェ -アが誰か他人によって改変され、それが次々と頒布されていったとしても、そ -の受領者は彼らが手に入れたソフトウェアがオリジナルのバージョンでは無い -こと、そして原作者の名声は他人によって持ち込まれた可能性のある問題によっ -て影響されることがないということを周知させたいと思います。 - -最後に、ソフトウェア特許がいかなるフリーのプログラムの存在にも不断の脅 -威を投げかけていますが、私たちは、フリーなプログラムの再頒布者が個々に -特許ライセンスを取得することによって、事実上プログラムを独占的にしてし -まうという危険を避けたいと思います。こういった事態を予防するため、私た -ちはいかなる特許も誰もが自由に利用できるようライセンスされるか、全くラ -イセンスされないかのどちらかでなければならないことを明確にしました。 - -(訳注: 本契約書で「独占的(proprietary)」とは、ソフトウェアの利用や再頒 -布、改変が禁止されているか、許可を得ることが必要とされているか、あるい -は厳しい制限が課せられていて自由にそうすることが事実上できなくなってい -る状態のことを指す。詳しくは -http://www.gnu.org/philosophy/categories.ja.html#ProprietarySoftwareを -参照せよ。) - -複製や頒布、改変についての正確な条件と制約を以下で述べていきます。 - - GNU 一般公衆利用許諾契約書 - 複製、頒布、改変に関する条件と制約 - -0. この利用許諾契約書は、そのプログラム(またはその他の著作物)をこの一 -般公衆利用許諾契約書の定める条件の下で頒布できるという告知が著作権者に -よって記載されたプログラムまたはその他の著作物全般に適用される。以下で -は、「『プログラム』」とはそのようにしてこの契約書が適用されたプログラ -ムや著作物全般を意味し、また「『プログラム』を基にした著作物」とは『プ -ログラム』やその他著作権法の下で派生物と見なされるもの全般を指す。すな -わち、『プログラム』かその一部を、全く同一のままか、改変を加えたか、あ -るいは他の言語に翻訳された形で含む著作物のことである(「改変」という語 -の本来の意味からはずれるが、以下では翻訳も改変の一種と見なす)。それぞ -れの契約者は「あなた」と表現される。 - -複製や頒布、改変以外の活動はこの契約書ではカバーされない。それらはこの -契約書の対象外である。『プログラム』を実行する行為自体に制限はない。ま -た、そのような『プログラム』の出力結果は、その内容が『プログラム』を基 -にした著作物を構成する場合のみこの契約書によって保護される(『プログラ -ム』を実行したことによって作成されたということとは無関係である)。この -ような線引きの妥当性は、『プログラム』が何をするのかに依存する。 - -1. それぞれの複製物において適切な著作権表示と保証の否認声明(disclaimer -of warranty)を目立つよう適切に掲載し、またこの契約書および一切の保証の -不在に触れた告知すべてをそのまま残し、そしてこの契約書の複製物を『プロ -グラム』のいかなる受領者にも『プログラム』と共に頒布する限り、あなたは -『プログラム』のソースコードの複製物を、あなたが受け取った通りの形で複 -製または頒布することができる。媒体は問わない。 - -あなたは、物理的に複製物を譲渡するという行為に関して手数料を課しても良 -いし、希望によっては手数料を取って交換における保護の保証を提供しても良 -い。 - -2. あなたは自分の『プログラム』の複製物かその一部を改変して『プログラ -ム』を基にした著作物を形成し、そのような改変点や著作物を上記第1節の定 -める条件の下で複製または頒布することができる。ただし、そのためには以下 -の条件すべてを満たしていなければならない: - - a) あなたがそれらのファイルを変更したということと変更した日時が良 - く分かるよう、改変されたファイルに告示しなければならない。 - - b) 『プログラム』またはその一部を含む著作物、あるいは『プログラム』 - かその一部から派生した著作物を頒布あるいは発表する場合には、その全 - 体をこの契約書の条件に従って第三者へ無償で利用許諾しなければならな - い。 - - c) 改変されたプログラムが、通常実行する際に対話的にコマンドを読む - ようになっているならば、そのプログラムを最も一般的な方法で対話的に - 実行する際、適切な著作権表示、無保証であること(あるいはあなたが保 - 証を提供するということ)、ユーザがプログラムをこの契約書で述べた条 - 件の下で頒布することができるということ、そしてこの契約書の複製物を - 閲覧するにはどうしたらよいかというユーザへの説明を含む告知が印刷さ - れるか、あるいは画面に表示されるようにしなければならない(例外とし - て、『プログラム』そのものは対話的であっても通常そのような告知を印 - 刷しない場合には、『プログラム』を基にしたあなたの著作物にそのよう - な告知を印刷させる必要はない)。 - -以上の必要条件は全体としての改変された著作物に適用される。著作物の一部 -が『プログラム』から派生したものではないと確認でき、それら自身別の独立 -した著作物であると合理的に考えられるならば、あなたがそれらを別の著作物 -として分けて頒布する場合、そういった部分にはこの契約書とその条件は -適用されない。しかし、あなたが同じ部分を『プログラム』を基にした著作物 -全体の一部として頒布するならば、全体としての頒布物は、この契約書が -課す条件に従わなければならない。というのは、この契約書が他の契約者 -に与える許可は『プログラム』丸ごと全体に及び、誰が書いたかは関係なく各 -部分のすべてを保護するからである。 - -よって、すべてあなたによって書かれた著作物に対し、権利を主張したりあな -たの権利に異議を申し立てることはこの節の意図するところではない。むしろ、 -その趣旨は『プログラム』を基にした派生物ないし集合著作物の頒布を管理す -る権利を行使するということにある。 - -また、『プログラム』を基にしていないその他の著作物を『プログラム』(あ -るいは『プログラム』を基にした著作物)と一緒に集めただけのものを一巻の -保管装置ないし頒布媒体に収めても、その他の著作物までこの契約書が保 -護する対象になるということにはならない。 - -3. あなたは上記第1節および2節の条件に従い、『プログラム』(あるいは第2 -節における派生物)をオブジェクトコードないし実行形式で複製または頒布す -ることができる。ただし、その場合あなたは以下のうちどれか一つを実施しな -ければならない: - - a) 著作物に、『プログラム』に対応した完全かつ機械で読み取り可能な - ソースコードを添付する。ただし、ソースコードは上記第1節および2節の - 条件に従いソフトウェアの交換で習慣的に使われる媒体で頒布しなければ - ならない。あるいは、 - - b) 著作物に、いかなる第三者に対しても、『プログラム』に対応した完 - 全かつ機械で読み取り可能なソースコードを、頒布に要する物理的コスト - を上回らない程度の手数料と引き換えに提供する旨述べた少なくとも3年 - 間は有効な書面になった申し出を添える。ただし、ソースコードは上記第 - 1節および2節の条件に従いソフトウェアの交換で習慣的に使われる媒体で - 頒布しなければならない。あるいは、 - - c) 対応するソースコード頒布の申し出に際して、あなたが得た情報を一 - 緒に引き渡す(この選択肢は、営利を目的としない頒布であって、かつあ - なたが上記小節bで指定されているような申し出と共にオブジェクトコー - ドあるいは実行形式のプログラムしか入手していない場合に限り許可され - る)。 - -著作物のソースコードとは、それに対して改変を加える上で好ましいとされる -著作物の形式を意味する。ある実行形式の著作物にとって完全なソースコード -とは、それが含むモジュールすべてのソースコード全部に加え、関連するイン -ターフェース定義ファイルのすべてとライブラリのコンパイルやインストール -を制御するために使われるスクリプトをも加えたものを意味する。しかし特別 -な例外として、そのコンポーネント自体が実行形式に付随するのでは無い限り、 -頒布されるものの中に、実行形式が実行されるオペレーティングシステムの主 -要なコンポーネント(コンパイラやカーネル等)と通常一緒に(ソースかバイナ -リ形式のどちらかで)頒布されるものを含んでいる必要はないとする。 - -実行形式またはオブジェクトコードの頒布が、指定された場所からコピーする -ためのアクセス手段を提供することで為されるとして、その上でソースコード -も同等のアクセス手段によって同じ場所からコピーできるようになっているな -らば、第三者がオブジェクトコードと一緒にソースも強制的にコピーさせられ -るようになっていなくてもソースコード頒布の条件を満たしているものとする。 - -4. あなたは『プログラム』を、この契約書において明確に提示された行 -為を除き複製や改変、サブライセンス、あるいは頒布してはならない。他に -『プログラム』を複製や改変、サブライセンス、あるいは頒布する企てはすべ -て無効であり、この契約書の下でのあなたの権利を自動的に終結させるこ -とになろう。しかし、複製物や権利をこの契約書に従ってあなたから得た -人々に関しては、そのような人々がこの契約書に完全に従っている限り彼 -らのライセンスまで終結することはない。 - -5. あなたはこの契約書を受諾する必要は無い。というのは、あなたはこ -れに署名していないからである。しかし、この契約書以外にあなたに対し -て『プログラム』やその派生物を変更、頒布する許可を与えるものは存在しな -い。これらの行為は、あなたがこの契約書を受け入れない限り法によって -禁じられている。そこで、『プログラム』(あるいは『プログラム』を基にし -た著作物のすべて)を改変ないし頒布することにより、あなたは自分がそのよ -うな行為を行うためにこの契約書を受諾したということ、そして『プログ -ラム』とそれに基づく著作物の複製や頒布、改変についてこの契約書が課 -す制約と条件をすべて受け入れたということを示したものと見なす。 - -6. あなたが『プログラム』(または『プログラム』を基にした著作物全般)を -再頒布するたびに、その受領者は元々のライセンス許可者から、この契約書で -指定された条件と制約の下で『プログラム』を複製や頒布、あるいは改変する -許可を自動的に得るものとする。あなたは、受領者がここで認められた権利を -行使することに関してこれ以上他のいかなる制限も課すことができない。あな -たには、第三者がこの契約書に従うことを強制する責任はない。 - -7. 特許侵害あるいはその他の理由(特許関係に限らない)から、裁判所の判決 -あるいは申し立ての結果としてあなたに(裁判所命令や契約などにより)この契 -約書の条件と矛盾する制約が課された場合でも、あなたがこの契約書の条件を -免除されるわけではない。もしこの契約書の下であなたに課せられた責任と他 -の関連する責任を同時に満たすような形で頒布できないならば、結果としてあ -なたは『プログラム』を頒布することが全くできないということである。例え -ば特許ライセンスが、あなたから直接間接を問わずコピーを受け取った人が誰 -でも『プログラム』を使用料無料で再頒布することを認めていない場合、あな -たがその制約とこの契約書を両方とも満たすには『プログラム』の頒布を完全 -に中止するしかないだろう。 - -この節の一部分が特定の状況の下で無効ないし実施不可能な場合でも、節の残 -りの部分は適用されるよう意図されている。その他の状況では節が全体として -適用されるよう意図されている。 - -特許やその他の財産権を侵害したり、そのような権利の主張の効力に異議を唱 -えたりするようあなたを誘惑することがこの節の目的ではない。この節には、 -人々によってライセンス慣行として実現されてきた、フリーソフトウェア頒布 -のシステムの完全性を護るという目的しかない。多くの人々が、フリーソフト -ウェアの頒布システムが首尾一貫して適用されているという信頼に基づき、こ -のシステムを通じて頒布される多様なソフトウェアに寛大な貢献をしてきたの -は事実であるが、人がどのようなシステムを通じてソフトウェアを頒布したい -と思うかはあくまでも作者/寄与者次第であり、あなたが選択を押しつけるこ -とはできない。 - -この節は、この契約書のこの節以外の部分の一帰結になると考えられるケー -スを徹底的に明らかにすることを目的としている。 - -8. 『プログラム』の頒布や利用が、ある国においては特許または著作権が主 -張されたインターフェースのいずれかによって制限されている場合、『プログ -ラム』にこの契約書を適用した元の著作権者は、そういった国々を排除し -た明確な地理的頒布制限を加え、そこで排除されていない国の中やそれらの国々 -の間でのみ頒布が許可されるようにしても構わない。その場合、そのような制 -限はこの契約書本文で書かれているのと同様に見なされる。 - -9. フリーソフトウェア財団は、時によって改訂または新版の一般公衆利用許 -諾書を発表することができる。そのような新版は現在のバージョンとその精神 -においては似たものになるだろうが、新たな問題や懸念を解決するため細部で -は異なる可能性がある。 - -それぞれのバージョンには、見分けが付くようにバージョン番号が振られてい -る。『プログラム』においてそれに適用されるこの契約書のバージョン番号が -指定されていて、更に「それ以降のいかなるバージョン」も適用して良いとなっ -ていた場合、あなたは従う条件と制約として、指定のバージョンか、フリーソ -フトウェア財団によって発行された指定のバージョン以降の版のどれか一つの -どちらかを選ぶことが出来る。『プログラム』でライセンスのバージョン番号 -が指定されていないならば、あなたは今までにフリーソフトウェア財団から発 -行されたバージョンの中から好きに選んで構わない。 - -10. もしあなたが『プログラム』の一部を、その頒布条件がこの契約書と -異なる他のフリーなプログラムと統合したいならば、作者に連絡して許可を求 -めよ。フリーソフトウェア財団が著作権を保有するソフトウェアについては、 -フリーソフトウェア財団に連絡せよ。私たちは、このような場合のために特別 -な例外を設けることもある。私たちが決定を下すにあたっては、私たちのフリー -ソフトウェアの派生物すべてがフリーな状態に保たれるということと、一般的 -にソフトウェアの共有と再利用を促進するという二つの目標を規準に検討され -るであろう。 - 無保証について - -11. 『プログラム』は代価無しに利用が許可されるので、適切な法が認める限 -りにおいて、『プログラム』に関するいかなる保証も存在しない。書面で別に -述べる場合を除いて、著作権者、またはその他の団体は、『プログラム』を、 -表明されたか言外にかは問わず、商業的適性を保証するほのめかしやある特定 -の目的への適合性(に限られない)を含む一切の保証無しに「あるがまま」で提 -供する。『プログラム』の質と性能に関するリスクのすべてはあなたに帰属す -る。『プログラム』に欠陥があると判明した場合、あなたは必要な保守点検や -補修、修正に要するコストのすべてを引き受けることになる。 - -12. 適切な法か書面での同意によって命ぜられない限り、著作権者、または上 -記で許可されている通りに『プログラム』を改変または再頒布したその他の団 -体は、あなたに対して『プログラム』の利用ないし利用不能で生じた一般的、 -特別的、偶然的、必然的な損害(データの消失や不正確な処理、あなたか第三 -者が被った損失、あるいは『プログラム』が他のソフトウェアと一緒に動作し -ないという不具合などを含むがそれらに限らない)に一切の責任を負わない。 -そのような損害が生ずる可能性について彼らが忠告されていたとしても同様で -ある。 - - 条件と制約終わり - - 以上の条項をあなたの新しいプログラムに適用する方法 - -あなたが新しいプログラムを開発したとして、公衆によってそれが利用される -可能性を最大にしたいなら、そのプログラムをこの契約書の条項に従って -誰でも再頒布あるいは変更できるようフリーソフトウェアにするのが最善です。 - -そのためには、プログラムに以下のような表示を添付してください。その場合、 -保証が排除されているということを最も効果的に伝えるために、それぞれのソー -スファイルの冒頭に表示を添付すれば最も安全です。少なくとも、「著作権表 -示」という行と全文がある場所へのポインタだけは各ファイルに含めて置いて -ください。 - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - (訳: - - <プログラムの名前と、それが何をするかについての簡単な説明。> - Copyright (C) <西暦年> <作者の名前> - - このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフ - トウェア財団によって発行された GNU 一般公衆利用許諾契約書(バージョ - ン2か、希望によってはそれ以降のバージョンのうちどれか)の定める条件 - の下で再頒布または改変することができます。 - - このプログラムは有用であることを願って頒布されますが、*全くの無保 - 証* です。商業可能性の保証や特定の目的への適合性は、言外に示された - ものも含め全く存在しません。詳しくはGNU 一般公衆利用許諾契約書をご - 覧ください。 - - あなたはこのプログラムと共に、GNU 一般公衆利用許諾契約書の複製物を - 一部受け取ったはずです。もし受け取っていなければ、フリーソフトウェ - ア財団まで請求してください(宛先は the Free Software Foundation, - Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA)。 - - ) - -電子ないし紙のメールであなたに問い合わせる方法についての情報も書き加え -ましょう。 - -プログラムが対話的なものならば、対話モードで起動した際に出力として以下 -のような短い告知が表示されるようにしてください: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - - (訳: - - Gnomovision バージョン 69, Copyright (C) 年 作者の名前 - Gnomovision は*全くの無保証*で提供されます。詳しくは「show w」 - とタイプして下さい。これはフリーソフトウェアであり、ある条件の下で - 再頒布することが奨励されています。詳しくは「show c」とタイプして下 - さい。 - - ) - -ここで、仮想的なコマンド「show w」と「show c」は一般公衆利用許諾契約書 -の適切な部分を表示するようになっていなければなりません。もちろん、あな -たが使うコマンドを「show w」や「show c」と呼ぶ必然性はありませんので、 -あなたのプログラムに合わせてマウスのクリックやメニューのアイテムにして -も結構です。 - -またあなたは、必要ならば(プログラマーとして働いていたら)あなたの雇用主、 -あるいは場合によっては学校から、そのプログラムに関する「著作権放棄声明 -(copyright disclaimer)」に署名してもらうべきです。以下は例ですので、名 -前を変えてください: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - - (訳: - - Yoyodyne社はここに、James Hackerによって書かれたプログラム - 「Gnomovision」(コンパイラへ通すプログラム)に関する一切の著作権の利 - 益を放棄します。 - - 、1989年4月1日 - Ty Coon、副社長 - - ) - -この一般公衆利用許諾契約書では、あなたのプログラムを独占的なプログラム -に統合することを認めていません。あなたのプログラムがサブルーチンライブ -ラリならば、独占的なアプリケーションとあなたのライブラリをリンクするこ -とを許可したほうがより便利であると考えるかもしれません。もしこれがあな -たの望むことならば、この契約書の代わりにGNU ライブラリ一般公衆利用許諾 -契約書を適用してください。 + GNU 一般公衆利用許諾契約書 + バージョン2、1991年6月 + 日本語訳、2002年5月20日 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + この利用許諾契約書を、一字一句そのままに複製し頒布することは許可する。 + しかし変更は認めない。 + + This is an unofficial translation of the GNU General Public License + into Japanese. It was not published by the Free Software Foundation, + and does not legally state the distribution terms for software that + uses the GNU GPL--only the original English text of the GNU GPL does + that. However, we hope that this translation will help Japanese + speakers understand the GNU GPL better. + + (訳: 以下はGNU General Public Licenseの非公式な日本語訳です。これはフ + リーソフトウェア財団(the Free Software Foundataion)によって発表された + ものではなく、GNU GPLを適用したソフトウェアの頒布条件を法的に有効な形 + で述べたものではありません。頒布条件としてはGNU GPLの英語版テキストで + 指定されているもののみが有効です。しかしながら、私たちはこの翻訳が、 + 日本語を使用する人々にとってGNU GPLをより良く理解する助けとなることを + 望んでいます。) + + 翻訳は 八田真行が行った。原文は + http://www.gnu.org/licenses/gpl.txtである。誤訳の指摘や改善案を歓迎す + る。 + はじめに + +ソフトウェア向けライセンスの大半は、あなたがそのソフトウェアを共有した +り変更したりする自由を奪うように設計されています。対照的に、GNU 一般公 +衆利用許諾契約書は、あなたがフリーソフトウェアを共有したり変更したりす +る自由を保証する--すなわち、ソフトウェアがそのユーザすべてにとってフリー +であることを保証することを目的としています。この一般公衆利用許諾契約書 +はフリーソフトウェア財団のソフトウェアのほとんどに適用されており、また +GNU GPLを適用すると決めたフリーソフトウェア財団以外の作者によるプログ +ラムにも適用されています(いくつかのフリーソフトウェア財団のソフトウェ +アには、GNU GPLではなくGNU ライブラリ一般公衆利用許諾契約書が適用され +ていることもあります)。あなたもまた、ご自分のプログラムにGNU GPLを適用 +することが可能です。 + +私たちがフリーソフトウェアと言うとき、それは利用の自由について言及して +いるのであって、価格は問題にしていません。私たちの一般公衆利用許諾契約 +書は、あなたがフリーソフトウェアの複製物を頒布する自由を保証するよう設 +計されています(希望に応じてその種のサービスに手数料を課す自由も保証さ +れます)。また、あなたがソースコードを受け取るか、あるいは望めばそれを +入手することが可能であるということ、あなたがソフトウェアを変更し、その +一部を新たなフリーのプログラムで利用できるということ、そして、以上で述 +べたようなことができるということがあなたに知らされるということも保証さ +れます。 + +あなたの権利を守るため、私たちは誰かがあなたの有するこれらの権利を否定 +することや、これらの権利を放棄するよう要求することを禁止するという制限 +を加える必要があります。よって、あなたがソフトウェアの複製物を頒布した +りそれを変更したりする場合には、これらの制限のためにあなたにある種の責 +任が発生することになります。 + +例えば、あなたがフリーなプログラムの複製物を頒布する場合、有料か無料に +関わらず、あなたは自分が有する権利を全て受領者に与えなければなりません。 +また、あなたは彼らもソースコードを受け取るか手に入れることができるよう +保証しなければなりません。そして、あなたは彼らに対して以下で述べる条件 +を示し、彼らに自らの持つ権利について知らしめるようにしなければなりませ +ん。 + +私たちはあなたの権利を二段階の手順を踏んで保護します。(1) まずソフトウェ +アに対して著作権を主張し、そして (2) あなたに対して、ソフトウェアの複 +製や頒布または改変についての法的な許可を与えるこの契約書を提示します。 + +また、各作者や私たちを保護するため、私たちはこのフリーソフトウェアには +何の保証も無いということを誰もが確実に理解するようにし、またソフトウェ +アが誰か他人によって改変され、それが次々と頒布されていったとしても、そ +の受領者は彼らが手に入れたソフトウェアがオリジナルのバージョンでは無い +こと、そして原作者の名声は他人によって持ち込まれた可能性のある問題によっ +て影響されることがないということを周知させたいと思います。 + +最後に、ソフトウェア特許がいかなるフリーのプログラムの存在にも不断の脅 +威を投げかけていますが、私たちは、フリーなプログラムの再頒布者が個々に +特許ライセンスを取得することによって、事実上プログラムを独占的にしてし +まうという危険を避けたいと思います。こういった事態を予防するため、私た +ちはいかなる特許も誰もが自由に利用できるようライセンスされるか、全くラ +イセンスされないかのどちらかでなければならないことを明確にしました。 + +(訳注: 本契約書で「独占的(proprietary)」とは、ソフトウェアの利用や再頒 +布、改変が禁止されているか、許可を得ることが必要とされているか、あるい +は厳しい制限が課せられていて自由にそうすることが事実上できなくなってい +る状態のことを指す。詳しくは +http://www.gnu.org/philosophy/categories.ja.html#ProprietarySoftwareを +参照せよ。) + +複製や頒布、改変についての正確な条件と制約を以下で述べていきます。 + + GNU 一般公衆利用許諾契約書 + 複製、頒布、改変に関する条件と制約 + +0. この利用許諾契約書は、そのプログラム(またはその他の著作物)をこの一 +般公衆利用許諾契約書の定める条件の下で頒布できるという告知が著作権者に +よって記載されたプログラムまたはその他の著作物全般に適用される。以下で +は、「『プログラム』」とはそのようにしてこの契約書が適用されたプログラ +ムや著作物全般を意味し、また「『プログラム』を基にした著作物」とは『プ +ログラム』やその他著作権法の下で派生物と見なされるもの全般を指す。すな +わち、『プログラム』かその一部を、全く同一のままか、改変を加えたか、あ +るいは他の言語に翻訳された形で含む著作物のことである(「改変」という語 +の本来の意味からはずれるが、以下では翻訳も改変の一種と見なす)。それぞ +れの契約者は「あなた」と表現される。 + +複製や頒布、改変以外の活動はこの契約書ではカバーされない。それらはこの +契約書の対象外である。『プログラム』を実行する行為自体に制限はない。ま +た、そのような『プログラム』の出力結果は、その内容が『プログラム』を基 +にした著作物を構成する場合のみこの契約書によって保護される(『プログラ +ム』を実行したことによって作成されたということとは無関係である)。この +ような線引きの妥当性は、『プログラム』が何をするのかに依存する。 + +1. それぞれの複製物において適切な著作権表示と保証の否認声明(disclaimer +of warranty)を目立つよう適切に掲載し、またこの契約書および一切の保証の +不在に触れた告知すべてをそのまま残し、そしてこの契約書の複製物を『プロ +グラム』のいかなる受領者にも『プログラム』と共に頒布する限り、あなたは +『プログラム』のソースコードの複製物を、あなたが受け取った通りの形で複 +製または頒布することができる。媒体は問わない。 + +あなたは、物理的に複製物を譲渡するという行為に関して手数料を課しても良 +いし、希望によっては手数料を取って交換における保護の保証を提供しても良 +い。 + +2. あなたは自分の『プログラム』の複製物かその一部を改変して『プログラ +ム』を基にした著作物を形成し、そのような改変点や著作物を上記第1節の定 +める条件の下で複製または頒布することができる。ただし、そのためには以下 +の条件すべてを満たしていなければならない: + + a) あなたがそれらのファイルを変更したということと変更した日時が良 + く分かるよう、改変されたファイルに告示しなければならない。 + + b) 『プログラム』またはその一部を含む著作物、あるいは『プログラム』 + かその一部から派生した著作物を頒布あるいは発表する場合には、その全 + 体をこの契約書の条件に従って第三者へ無償で利用許諾しなければならな + い。 + + c) 改変されたプログラムが、通常実行する際に対話的にコマンドを読む + ようになっているならば、そのプログラムを最も一般的な方法で対話的に + 実行する際、適切な著作権表示、無保証であること(あるいはあなたが保 + 証を提供するということ)、ユーザがプログラムをこの契約書で述べた条 + 件の下で頒布することができるということ、そしてこの契約書の複製物を + 閲覧するにはどうしたらよいかというユーザへの説明を含む告知が印刷さ + れるか、あるいは画面に表示されるようにしなければならない(例外とし + て、『プログラム』そのものは対話的であっても通常そのような告知を印 + 刷しない場合には、『プログラム』を基にしたあなたの著作物にそのよう + な告知を印刷させる必要はない)。 + +以上の必要条件は全体としての改変された著作物に適用される。著作物の一部 +が『プログラム』から派生したものではないと確認でき、それら自身別の独立 +した著作物であると合理的に考えられるならば、あなたがそれらを別の著作物 +として分けて頒布する場合、そういった部分にはこの契約書とその条件は +適用されない。しかし、あなたが同じ部分を『プログラム』を基にした著作物 +全体の一部として頒布するならば、全体としての頒布物は、この契約書が +課す条件に従わなければならない。というのは、この契約書が他の契約者 +に与える許可は『プログラム』丸ごと全体に及び、誰が書いたかは関係なく各 +部分のすべてを保護するからである。 + +よって、すべてあなたによって書かれた著作物に対し、権利を主張したりあな +たの権利に異議を申し立てることはこの節の意図するところではない。むしろ、 +その趣旨は『プログラム』を基にした派生物ないし集合著作物の頒布を管理す +る権利を行使するということにある。 + +また、『プログラム』を基にしていないその他の著作物を『プログラム』(あ +るいは『プログラム』を基にした著作物)と一緒に集めただけのものを一巻の +保管装置ないし頒布媒体に収めても、その他の著作物までこの契約書が保 +護する対象になるということにはならない。 + +3. あなたは上記第1節および2節の条件に従い、『プログラム』(あるいは第2 +節における派生物)をオブジェクトコードないし実行形式で複製または頒布す +ることができる。ただし、その場合あなたは以下のうちどれか一つを実施しな +ければならない: + + a) 著作物に、『プログラム』に対応した完全かつ機械で読み取り可能な + ソースコードを添付する。ただし、ソースコードは上記第1節および2節の + 条件に従いソフトウェアの交換で習慣的に使われる媒体で頒布しなければ + ならない。あるいは、 + + b) 著作物に、いかなる第三者に対しても、『プログラム』に対応した完 + 全かつ機械で読み取り可能なソースコードを、頒布に要する物理的コスト + を上回らない程度の手数料と引き換えに提供する旨述べた少なくとも3年 + 間は有効な書面になった申し出を添える。ただし、ソースコードは上記第 + 1節および2節の条件に従いソフトウェアの交換で習慣的に使われる媒体で + 頒布しなければならない。あるいは、 + + c) 対応するソースコード頒布の申し出に際して、あなたが得た情報を一 + 緒に引き渡す(この選択肢は、営利を目的としない頒布であって、かつあ + なたが上記小節bで指定されているような申し出と共にオブジェクトコー + ドあるいは実行形式のプログラムしか入手していない場合に限り許可され + る)。 + +著作物のソースコードとは、それに対して改変を加える上で好ましいとされる +著作物の形式を意味する。ある実行形式の著作物にとって完全なソースコード +とは、それが含むモジュールすべてのソースコード全部に加え、関連するイン +ターフェース定義ファイルのすべてとライブラリのコンパイルやインストール +を制御するために使われるスクリプトをも加えたものを意味する。しかし特別 +な例外として、そのコンポーネント自体が実行形式に付随するのでは無い限り、 +頒布されるものの中に、実行形式が実行されるオペレーティングシステムの主 +要なコンポーネント(コンパイラやカーネル等)と通常一緒に(ソースかバイナ +リ形式のどちらかで)頒布されるものを含んでいる必要はないとする。 + +実行形式またはオブジェクトコードの頒布が、指定された場所からコピーする +ためのアクセス手段を提供することで為されるとして、その上でソースコード +も同等のアクセス手段によって同じ場所からコピーできるようになっているな +らば、第三者がオブジェクトコードと一緒にソースも強制的にコピーさせられ +るようになっていなくてもソースコード頒布の条件を満たしているものとする。 + +4. あなたは『プログラム』を、この契約書において明確に提示された行 +為を除き複製や改変、サブライセンス、あるいは頒布してはならない。他に +『プログラム』を複製や改変、サブライセンス、あるいは頒布する企てはすべ +て無効であり、この契約書の下でのあなたの権利を自動的に終結させるこ +とになろう。しかし、複製物や権利をこの契約書に従ってあなたから得た +人々に関しては、そのような人々がこの契約書に完全に従っている限り彼 +らのライセンスまで終結することはない。 + +5. あなたはこの契約書を受諾する必要は無い。というのは、あなたはこ +れに署名していないからである。しかし、この契約書以外にあなたに対し +て『プログラム』やその派生物を変更、頒布する許可を与えるものは存在しな +い。これらの行為は、あなたがこの契約書を受け入れない限り法によって +禁じられている。そこで、『プログラム』(あるいは『プログラム』を基にし +た著作物のすべて)を改変ないし頒布することにより、あなたは自分がそのよ +うな行為を行うためにこの契約書を受諾したということ、そして『プログ +ラム』とそれに基づく著作物の複製や頒布、改変についてこの契約書が課 +す制約と条件をすべて受け入れたということを示したものと見なす。 + +6. あなたが『プログラム』(または『プログラム』を基にした著作物全般)を +再頒布するたびに、その受領者は元々のライセンス許可者から、この契約書で +指定された条件と制約の下で『プログラム』を複製や頒布、あるいは改変する +許可を自動的に得るものとする。あなたは、受領者がここで認められた権利を +行使することに関してこれ以上他のいかなる制限も課すことができない。あな +たには、第三者がこの契約書に従うことを強制する責任はない。 + +7. 特許侵害あるいはその他の理由(特許関係に限らない)から、裁判所の判決 +あるいは申し立ての結果としてあなたに(裁判所命令や契約などにより)この契 +約書の条件と矛盾する制約が課された場合でも、あなたがこの契約書の条件を +免除されるわけではない。もしこの契約書の下であなたに課せられた責任と他 +の関連する責任を同時に満たすような形で頒布できないならば、結果としてあ +なたは『プログラム』を頒布することが全くできないということである。例え +ば特許ライセンスが、あなたから直接間接を問わずコピーを受け取った人が誰 +でも『プログラム』を使用料無料で再頒布することを認めていない場合、あな +たがその制約とこの契約書を両方とも満たすには『プログラム』の頒布を完全 +に中止するしかないだろう。 + +この節の一部分が特定の状況の下で無効ないし実施不可能な場合でも、節の残 +りの部分は適用されるよう意図されている。その他の状況では節が全体として +適用されるよう意図されている。 + +特許やその他の財産権を侵害したり、そのような権利の主張の効力に異議を唱 +えたりするようあなたを誘惑することがこの節の目的ではない。この節には、 +人々によってライセンス慣行として実現されてきた、フリーソフトウェア頒布 +のシステムの完全性を護るという目的しかない。多くの人々が、フリーソフト +ウェアの頒布システムが首尾一貫して適用されているという信頼に基づき、こ +のシステムを通じて頒布される多様なソフトウェアに寛大な貢献をしてきたの +は事実であるが、人がどのようなシステムを通じてソフトウェアを頒布したい +と思うかはあくまでも作者/寄与者次第であり、あなたが選択を押しつけるこ +とはできない。 + +この節は、この契約書のこの節以外の部分の一帰結になると考えられるケー +スを徹底的に明らかにすることを目的としている。 + +8. 『プログラム』の頒布や利用が、ある国においては特許または著作権が主 +張されたインターフェースのいずれかによって制限されている場合、『プログ +ラム』にこの契約書を適用した元の著作権者は、そういった国々を排除し +た明確な地理的頒布制限を加え、そこで排除されていない国の中やそれらの国々 +の間でのみ頒布が許可されるようにしても構わない。その場合、そのような制 +限はこの契約書本文で書かれているのと同様に見なされる。 + +9. フリーソフトウェア財団は、時によって改訂または新版の一般公衆利用許 +諾書を発表することができる。そのような新版は現在のバージョンとその精神 +においては似たものになるだろうが、新たな問題や懸念を解決するため細部で +は異なる可能性がある。 + +それぞれのバージョンには、見分けが付くようにバージョン番号が振られてい +る。『プログラム』においてそれに適用されるこの契約書のバージョン番号が +指定されていて、更に「それ以降のいかなるバージョン」も適用して良いとなっ +ていた場合、あなたは従う条件と制約として、指定のバージョンか、フリーソ +フトウェア財団によって発行された指定のバージョン以降の版のどれか一つの +どちらかを選ぶことが出来る。『プログラム』でライセンスのバージョン番号 +が指定されていないならば、あなたは今までにフリーソフトウェア財団から発 +行されたバージョンの中から好きに選んで構わない。 + +10. もしあなたが『プログラム』の一部を、その頒布条件がこの契約書と +異なる他のフリーなプログラムと統合したいならば、作者に連絡して許可を求 +めよ。フリーソフトウェア財団が著作権を保有するソフトウェアについては、 +フリーソフトウェア財団に連絡せよ。私たちは、このような場合のために特別 +な例外を設けることもある。私たちが決定を下すにあたっては、私たちのフリー +ソフトウェアの派生物すべてがフリーな状態に保たれるということと、一般的 +にソフトウェアの共有と再利用を促進するという二つの目標を規準に検討され +るであろう。 + 無保証について + +11. 『プログラム』は代価無しに利用が許可されるので、適切な法が認める限 +りにおいて、『プログラム』に関するいかなる保証も存在しない。書面で別に +述べる場合を除いて、著作権者、またはその他の団体は、『プログラム』を、 +表明されたか言外にかは問わず、商業的適性を保証するほのめかしやある特定 +の目的への適合性(に限られない)を含む一切の保証無しに「あるがまま」で提 +供する。『プログラム』の質と性能に関するリスクのすべてはあなたに帰属す +る。『プログラム』に欠陥があると判明した場合、あなたは必要な保守点検や +補修、修正に要するコストのすべてを引き受けることになる。 + +12. 適切な法か書面での同意によって命ぜられない限り、著作権者、または上 +記で許可されている通りに『プログラム』を改変または再頒布したその他の団 +体は、あなたに対して『プログラム』の利用ないし利用不能で生じた一般的、 +特別的、偶然的、必然的な損害(データの消失や不正確な処理、あなたか第三 +者が被った損失、あるいは『プログラム』が他のソフトウェアと一緒に動作し +ないという不具合などを含むがそれらに限らない)に一切の責任を負わない。 +そのような損害が生ずる可能性について彼らが忠告されていたとしても同様で +ある。 + + 条件と制約終わり + + 以上の条項をあなたの新しいプログラムに適用する方法 + +あなたが新しいプログラムを開発したとして、公衆によってそれが利用される +可能性を最大にしたいなら、そのプログラムをこの契約書の条項に従って +誰でも再頒布あるいは変更できるようフリーソフトウェアにするのが最善です。 + +そのためには、プログラムに以下のような表示を添付してください。その場合、 +保証が排除されているということを最も効果的に伝えるために、それぞれのソー +スファイルの冒頭に表示を添付すれば最も安全です。少なくとも、「著作権表 +示」という行と全文がある場所へのポインタだけは各ファイルに含めて置いて +ください。 + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + (訳: + + <プログラムの名前と、それが何をするかについての簡単な説明。> + Copyright (C) <西暦年> <作者の名前> + + このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフ + トウェア財団によって発行された GNU 一般公衆利用許諾契約書(バージョ + ン2か、希望によってはそれ以降のバージョンのうちどれか)の定める条件 + の下で再頒布または改変することができます。 + + このプログラムは有用であることを願って頒布されますが、*全くの無保 + 証* です。商業可能性の保証や特定の目的への適合性は、言外に示された + ものも含め全く存在しません。詳しくはGNU 一般公衆利用許諾契約書をご + 覧ください。 + + あなたはこのプログラムと共に、GNU 一般公衆利用許諾契約書の複製物を + 一部受け取ったはずです。もし受け取っていなければ、フリーソフトウェ + ア財団まで請求してください(宛先は the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA)。 + + ) + +電子ないし紙のメールであなたに問い合わせる方法についての情報も書き加え +ましょう。 + +プログラムが対話的なものならば、対話モードで起動した際に出力として以下 +のような短い告知が表示されるようにしてください: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + (訳: + + Gnomovision バージョン 69, Copyright (C) 年 作者の名前 + Gnomovision は*全くの無保証*で提供されます。詳しくは「show w」 + とタイプして下さい。これはフリーソフトウェアであり、ある条件の下で + 再頒布することが奨励されています。詳しくは「show c」とタイプして下 + さい。 + + ) + +ここで、仮想的なコマンド「show w」と「show c」は一般公衆利用許諾契約書 +の適切な部分を表示するようになっていなければなりません。もちろん、あな +たが使うコマンドを「show w」や「show c」と呼ぶ必然性はありませんので、 +あなたのプログラムに合わせてマウスのクリックやメニューのアイテムにして +も結構です。 + +またあなたは、必要ならば(プログラマーとして働いていたら)あなたの雇用主、 +あるいは場合によっては学校から、そのプログラムに関する「著作権放棄声明 +(copyright disclaimer)」に署名してもらうべきです。以下は例ですので、名 +前を変えてください: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + + (訳: + + Yoyodyne社はここに、James Hackerによって書かれたプログラム + 「Gnomovision」(コンパイラへ通すプログラム)に関する一切の著作権の利 + 益を放棄します。 + + 、1989年4月1日 + Ty Coon、副社長 + + ) + +この一般公衆利用許諾契約書では、あなたのプログラムを独占的なプログラム +に統合することを認めていません。あなたのプログラムがサブルーチンライブ +ラリならば、独占的なアプリケーションとあなたのライブラリをリンクするこ +とを許可したほうがより便利であると考えるかもしれません。もしこれがあな +たの望むことならば、この契約書の代わりにGNU ライブラリ一般公衆利用許諾 +契約書を適用してください。 diff --git a/conf/battle/battleground.conf b/conf/battle/battleground.conf index 80bb0477a..a91e1ddd6 100644 --- a/conf/battle/battleground.conf +++ b/conf/battle/battleground.conf @@ -1,44 +1,44 @@ -// ______ __ __ -// /\ _ \/\ \__/\ \ -// __\ \ \L\ \ \ ,_\ \ \___ __ ___ __ -// /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\ -///\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_ -//\ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\ -// \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/ -// _ _ _ _ _ _ _ _ _ _ _ _ _ -// / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ -//( e | n | g | l | i | s | h ) ( A | t | h | e | n | a ) -// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ -// -//-------------------------------------------------------------- -// eAthena Battle Configuration File -// Originally Translated by Peter Kieser -// Made in to plainer English by Ancyker -//-------------------------------------------------------------- -// Note 1: Value is a config switch (on/off, yes/no or 1/0) -// Note 2: Value is in percents (100 means 100%) -// Note 3: Value is a bit field. If no description is given, -// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun) -//-------------------------------------------------------------- - -// Melee damage adjustments (non skills) for Battleground maps (Note 2) -bg_short_attack_damage_rate: 80 - -// Ranged damage adjustments (non skills) for Battleground maps (Note 2) -bg_long_attack_damage_rate: 80 - -// Weapon skills damage adjustments for Battleground maps (Note 2) -bg_weapon_attack_damage_rate: 60 - -// Magic skills damage adjustments for Battleground maps (Note 2) -bg_magic_attack_damage_rate: 60 - -// Misc skills damage adjustments for Battleground maps (Note 2) -bg_misc_attack_damage_rate: 60 - -// Flee penalty on BG grounds. -// NOTE: It's %, not absolute, so 20 is -20% of your total flee -bg_flee_penalty: 20 - -// Interval before updating the bg-member map mini-dots (milliseconds) -bg_update_interval: 1000 +// ______ __ __ +// /\ _ \/\ \__/\ \ +// __\ \ \L\ \ \ ,_\ \ \___ __ ___ __ +// /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\ +///\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_ +//\ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\ +// \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/ +// _ _ _ _ _ _ _ _ _ _ _ _ _ +// / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +//( e | n | g | l | i | s | h ) ( A | t | h | e | n | a ) +// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ +// +//-------------------------------------------------------------- +// eAthena Battle Configuration File +// Originally Translated by Peter Kieser +// Made in to plainer English by Ancyker +//-------------------------------------------------------------- +// Note 1: Value is a config switch (on/off, yes/no or 1/0) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun) +//-------------------------------------------------------------- + +// Melee damage adjustments (non skills) for Battleground maps (Note 2) +bg_short_attack_damage_rate: 80 + +// Ranged damage adjustments (non skills) for Battleground maps (Note 2) +bg_long_attack_damage_rate: 80 + +// Weapon skills damage adjustments for Battleground maps (Note 2) +bg_weapon_attack_damage_rate: 60 + +// Magic skills damage adjustments for Battleground maps (Note 2) +bg_magic_attack_damage_rate: 60 + +// Misc skills damage adjustments for Battleground maps (Note 2) +bg_misc_attack_damage_rate: 60 + +// Flee penalty on BG grounds. +// NOTE: It's %, not absolute, so 20 is -20% of your total flee +bg_flee_penalty: 20 + +// Interval before updating the bg-member map mini-dots (milliseconds) +bg_update_interval: 1000 diff --git a/db/mercenary_db.txt b/db/mercenary_db.txt index 572228229..23bd4970d 100644 --- a/db/mercenary_db.txt +++ b/db/mercenary_db.txt @@ -1,39 +1,39 @@ -//ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion -// Monster Mercenaries -1191,MIMIC,Mimic,51,6120,100,2,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,100,972,500,288 -1506,DISGUISE,Disguise,55,7543,100,2,279,546,18,29,0,72,45,35,48,65,10,12,1,6,82,147,516,768,384 -1275,ALICE,Alice,62,10000,100,2,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,200,502,2304,480 -1965,M_WILD_ROSE,Wild Rose,38,2980,130,2,315,360,0,15,65,85,15,35,65,80,10,12,0,2,24,100,964,864,288 -1966,M_DOPPELGANGER,Doppelganger,72,249000,200,2,1340,1590,60,35,88,90,30,35,125,65,10,12,1,6,67,100,480,480,288 -1967,M_YGNIZEM,Egnigem Cenia,58,11200,320,2,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,145,576,432,288 -// Normal Mercenaries -6017,MER_ARCHER01,Mina,20,256,200,10,170,85,7,5,1,16,5,1,28,8,10,0,0,7,20,150,700,432,300 -6018,MER_ARCHER02,Dororu,30,457,70,10,228,114,11,7,1,18,8,1,40,11,10,0,0,7,20,150,700,432,300 -6019,MER_ARCHER03,Nami,40,732,93,10,260,130,15,9,3,21,12,4,52,17,10,0,0,7,20,150,700,432,300 -6020,MER_ARCHER04,Elfin,50,1092,116,10,310,155,18,11,5,33,17,6,60,23,10,0,0,7,20,150,575,432,300 -6021,MER_ARCHER05,Clara,60,2212,280,10,360,180,20,13,5,41,17,12,75,30,10,0,0,7,20,150,575,432,300 -6022,MER_ARCHER06,Dali,70,3098,353,10,424,212,21,15,11,46,24,22,83,37,10,0,0,7,20,150,575,432,300 -6023,MER_ARCHER07,Karaya,80,4051,415,10,468,234,22,16,14,55,27,26,91,44,10,0,0,7,20,150,450,432,300 -6024,MER_ARCHER08,Hiyori,90,5039,469,10,482,241,24,18,19,65,27,27,103,49,10,0,0,7,20,150,450,432,300 -6025,MER_ARCHER09,Kero,95,5572,499,10,500,250,25,20,20,71,27,28,110,51,10,0,0,7,20,150,450,432,300 -6026,MER_ARCHER10,Sukye,99,7381,642,10,816,308,49,49,21,83,27,28,123,52,10,0,0,7,20,150,450,432,300 -6027,MER_LANCER01,David,22,2071,100,2,168,84,30,1,27,1,4,1,30,2,10,0,0,7,20,150,700,432,300 -6028,MER_LANCER02,Ellen,34,2523,131,2,208,104,33,1,37,1,4,1,37,4,10,0,0,7,20,150,700,432,300 -6029,MER_LANCER03,Luise,41,3397,161,2,248,124,36,5,45,1,22,1,40,6,10,0,0,7,20,150,700,432,300 -6030,MER_LANCER04,Frank,55,4580,191,2,300,150,39,5,55,2,35,1,50,8,10,0,0,7,20,150,575,432,300 -6031,MER_LANCER05,Ryan,60,5899,221,2,350,160,42,10,65,2,39,1,60,10,10,0,0,7,20,150,575,432,300 -6032,MER_LANCER06,Paolo,72,7874,252,2,370,185,46,10,75,3,15,77,61,12,10,0,0,7,20,150,575,432,300 -6033,MER_LANCER07,Jens,81,10260,330,2,380,190,50,15,85,3,63,20,61,14,10,0,0,7,20,150,450,432,300 -6034,MER_LANCER08,Thierry,90,13167,366,2,400,200,55,20,95,20,74,20,63,16,10,0,0,7,20,150,450,432,300 -6035,MER_LANCER09,Steven,95,14648,398,2,440,220,60,25,100,25,77,25,63,18,10,0,0,7,20,150,450,432,300 -6036,MER_LANCER10,Wayne,99,18000,413,2,700,250,70,30,120,30,90,30,70,30,10,0,0,7,20,150,450,432,300 -6037,MER_SWORDMAN01,Rodin,20,502,70,2,174,87,26,0,21,27,5,1,30,3,10,0,0,7,20,150,700,432,300 -6038,MER_SWORDMAN02,Lancer,30,979,99,2,258,129,31,0,26,38,6,1,35,3,10,0,0,7,20,150,700,432,300 -6039,MER_SWORDMAN03,Nathan,40,1555,134,2,326,163,36,3,31,45,7,6,40,6,10,0,0,7,20,150,700,432,300 -6040,MER_SWORDMAN04,Roan,50,2397,162,2,382,191,39,5,37,59,8,6,40,6,10,0,0,7,20,150,575,432,300 -6041,MER_SWORDMAN05,Orizaro,60,3387,195,2,406,203,42,7,48,68,9,6,45,9,10,0,0,7,20,150,575,432,300 -6042,MER_SWORDMAN06,Thyla,70,4495,241,2,436,218,45,12,53,79,10,12,50,9,10,0,0,7,20,150,575,432,300 -6043,MER_SWORDMAN07,Ben,80,5889,279,2,468,234,47,15,59,88,11,12,55,12,10,0,0,7,20,150,450,432,300 -6044,MER_SWORDMAN08,Pinaka,90,7520,325,2,500,250,49,18,70,95,12,18,60,15,10,0,0,7,20,150,450,432,300 -6045,MER_SWORDMAN09,Kuhlmann,95,9052,348,2,524,262,51,22,80,95,18,18,60,15,10,0,0,7,20,150,450,432,300 -6046,MER_SWORDMAN10,Roux,99,12355,451,2,760,280,64,30,99,105,30,30,60,30,10,0,0,7,20,150,450,432,300 +//ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion +// Monster Mercenaries +1191,MIMIC,Mimic,51,6120,100,2,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,100,972,500,288 +1506,DISGUISE,Disguise,55,7543,100,2,279,546,18,29,0,72,45,35,48,65,10,12,1,6,82,147,516,768,384 +1275,ALICE,Alice,62,10000,100,2,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,200,502,2304,480 +1965,M_WILD_ROSE,Wild Rose,38,2980,130,2,315,360,0,15,65,85,15,35,65,80,10,12,0,2,24,100,964,864,288 +1966,M_DOPPELGANGER,Doppelganger,72,249000,200,2,1340,1590,60,35,88,90,30,35,125,65,10,12,1,6,67,100,480,480,288 +1967,M_YGNIZEM,Egnigem Cenia,58,11200,320,2,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,145,576,432,288 +// Normal Mercenaries +6017,MER_ARCHER01,Mina,20,256,200,10,170,85,7,5,1,16,5,1,28,8,10,0,0,7,20,150,700,432,300 +6018,MER_ARCHER02,Dororu,30,457,70,10,228,114,11,7,1,18,8,1,40,11,10,0,0,7,20,150,700,432,300 +6019,MER_ARCHER03,Nami,40,732,93,10,260,130,15,9,3,21,12,4,52,17,10,0,0,7,20,150,700,432,300 +6020,MER_ARCHER04,Elfin,50,1092,116,10,310,155,18,11,5,33,17,6,60,23,10,0,0,7,20,150,575,432,300 +6021,MER_ARCHER05,Clara,60,2212,280,10,360,180,20,13,5,41,17,12,75,30,10,0,0,7,20,150,575,432,300 +6022,MER_ARCHER06,Dali,70,3098,353,10,424,212,21,15,11,46,24,22,83,37,10,0,0,7,20,150,575,432,300 +6023,MER_ARCHER07,Karaya,80,4051,415,10,468,234,22,16,14,55,27,26,91,44,10,0,0,7,20,150,450,432,300 +6024,MER_ARCHER08,Hiyori,90,5039,469,10,482,241,24,18,19,65,27,27,103,49,10,0,0,7,20,150,450,432,300 +6025,MER_ARCHER09,Kero,95,5572,499,10,500,250,25,20,20,71,27,28,110,51,10,0,0,7,20,150,450,432,300 +6026,MER_ARCHER10,Sukye,99,7381,642,10,816,308,49,49,21,83,27,28,123,52,10,0,0,7,20,150,450,432,300 +6027,MER_LANCER01,David,22,2071,100,2,168,84,30,1,27,1,4,1,30,2,10,0,0,7,20,150,700,432,300 +6028,MER_LANCER02,Ellen,34,2523,131,2,208,104,33,1,37,1,4,1,37,4,10,0,0,7,20,150,700,432,300 +6029,MER_LANCER03,Luise,41,3397,161,2,248,124,36,5,45,1,22,1,40,6,10,0,0,7,20,150,700,432,300 +6030,MER_LANCER04,Frank,55,4580,191,2,300,150,39,5,55,2,35,1,50,8,10,0,0,7,20,150,575,432,300 +6031,MER_LANCER05,Ryan,60,5899,221,2,350,160,42,10,65,2,39,1,60,10,10,0,0,7,20,150,575,432,300 +6032,MER_LANCER06,Paolo,72,7874,252,2,370,185,46,10,75,3,15,77,61,12,10,0,0,7,20,150,575,432,300 +6033,MER_LANCER07,Jens,81,10260,330,2,380,190,50,15,85,3,63,20,61,14,10,0,0,7,20,150,450,432,300 +6034,MER_LANCER08,Thierry,90,13167,366,2,400,200,55,20,95,20,74,20,63,16,10,0,0,7,20,150,450,432,300 +6035,MER_LANCER09,Steven,95,14648,398,2,440,220,60,25,100,25,77,25,63,18,10,0,0,7,20,150,450,432,300 +6036,MER_LANCER10,Wayne,99,18000,413,2,700,250,70,30,120,30,90,30,70,30,10,0,0,7,20,150,450,432,300 +6037,MER_SWORDMAN01,Rodin,20,502,70,2,174,87,26,0,21,27,5,1,30,3,10,0,0,7,20,150,700,432,300 +6038,MER_SWORDMAN02,Lancer,30,979,99,2,258,129,31,0,26,38,6,1,35,3,10,0,0,7,20,150,700,432,300 +6039,MER_SWORDMAN03,Nathan,40,1555,134,2,326,163,36,3,31,45,7,6,40,6,10,0,0,7,20,150,700,432,300 +6040,MER_SWORDMAN04,Roan,50,2397,162,2,382,191,39,5,37,59,8,6,40,6,10,0,0,7,20,150,575,432,300 +6041,MER_SWORDMAN05,Orizaro,60,3387,195,2,406,203,42,7,48,68,9,6,45,9,10,0,0,7,20,150,575,432,300 +6042,MER_SWORDMAN06,Thyla,70,4495,241,2,436,218,45,12,53,79,10,12,50,9,10,0,0,7,20,150,575,432,300 +6043,MER_SWORDMAN07,Ben,80,5889,279,2,468,234,47,15,59,88,11,12,55,12,10,0,0,7,20,150,450,432,300 +6044,MER_SWORDMAN08,Pinaka,90,7520,325,2,500,250,49,18,70,95,12,18,60,15,10,0,0,7,20,150,450,432,300 +6045,MER_SWORDMAN09,Kuhlmann,95,9052,348,2,524,262,51,22,80,95,18,18,60,15,10,0,0,7,20,150,450,432,300 +6046,MER_SWORDMAN10,Roux,99,12355,451,2,760,280,64,30,99,105,30,30,60,30,10,0,0,7,20,150,450,432,300 diff --git a/db/mercenary_skill_db.txt b/db/mercenary_skill_db.txt index f0134c184..e1b8a20c1 100644 --- a/db/mercenary_skill_db.txt +++ b/db/mercenary_skill_db.txt @@ -1,118 +1,118 @@ -//MercenryID,SkillID,SkillLevel -// Archer Mercenaries Level 1-10. -// MER_ARCHER01 -6017,8207,2 //MA_DOUBLE -6017,8233,1 //MER_AUTOBERSERK -// MER_ARCHER02 -6018,8208,2 //MA_SHOWER -6018,8224,1 //MER_SIGHT -// MER_ARCHER03 -6019,8214,1 //MA_CHARGEARROW -6019,8223,1 //MER_QUICKEN -// MER_ARCHER04 -6020,8237,1 //MER_ESTIMATION -6020,8222,1 //MER_MAGNIFICAT -6020,8227,1 //MER_TENDER -// MER_ARCHER05 -6021,8207,5 //MA_DOUBLE -6021,8232,1 //MER_PROVOKE -6021,8213,1 //MA_REMOVETRAP -// MER_ARCHER06 -6022,8207,7 //MA_DOUBLE -6022,8209,3 //MA_SKIDTRAP -6022,8234,1 //MER_DECAGI -// MER_ARCHER07 -6023,8208,10 //MA_SHOWER -6023,8230,1 //MER_MENTALCURE -6023,8212,2 //MA_FREEZINGTRAP -// MER_ARCHER08 -6024,8223,2 //MER_QUICKEN -6024,8232,3 //MER_PROVOKE -6024,8211,3 //MA_SANDMAN -// MER_ARCHER09 -6025,8207,10 //MA_DOUBLE -6025,8214,1 //MA_CHARGEARROW -6025,8210,5 //MA_LANDMINE -// MER_ARCHER10 -6026,8214,1 //MA_CHARGEARROW -6026,8215,5 //MA_SHARPSHOOTING -6026,8223,5 //MER_QUICKEN -6026,8233,1 //MER_AUTOBERSERK -// Lancer Mercenaries Level 1-10. -// MER_LANCER01 -6027,8216,1 //ML_PIERCE -6027,8226,1 //MER_REGAIN -// MER_LANCER02 -6028,8217,2 //ML_BRANDISH -6028,8236,1 //MER_LEXDIVINA -// MER_LANCER03 -6029,8216,2 //ML_PIERCE -6029,8221,1 //ML_DEVOTION -6029,8229,1 //MER_RECUPERATE -// MER_LANCER04 -6030,8219,1 //ML_DEFENDER -6030,8225,4 //MER_CRASH -// MER_LANCER05 -6031,8216,5 //ML_PIERCE -6031,8220,3 //ML_AUTOGUARD -// MER_LANCER06 -6032,8223,2 //MER_QUICKEN -6032,8217,5 //ML_BRANDISH -// MER_LANCER07 -6033,8221,1 //ML_DEVOTION -6033,8233,1 //MER_AUTOBERSERK -// MER_LANCER08 -6034,8235,1 //MER_SCAPEGOAT -6034,8216,10 //ML_PIERCE -6034,8232,5 //MER_PROVOKE -// MER_LANCER09 -6035,8217,10 //ML_BRANDISH -6035,8220,7 //ML_AUTOGUARD -6035,8219,3 //ML_DEFENDER -// MER_LANCER10 -6036,8223,5 //MER_QUICKEN -6036,8220,10 //ML_AUTOGUARD -6036,8221,3 //ML_DEVOTION -6036,8218,5 //ML_SPIRALPIERCE -// Swordman Mercenaries Level 1-10. -// MER_SWORDMAN01 -6037,8201,1 //MS_BASH -6037,8234,1 //MER_DECAGI -// MER_SWORDMAN02 -6038,8232,5 //MER_PROVOKE -6038,8202,3 //MS_MAGNUM -// MER_SWORDMAN03 -6039,8223,1 //MER_QUICKEN -6039,8228,1 //MER_BENEDICTION -// MER_SWORDMAN04 -6040,8225,1 //MER_CRASH -6040,8202,5 //MS_MAGNUM -// MER_SWORDMAN05 -6041,8201,5 //MS_BASH -6041,8225,4 //MER_CRASH -6041,8228,1 //MER_BENEDICTION -// MER_SWORDMAN06 -6042,8223,5 //MER_QUICKEN -6042,8237,1 //MER_ESTIMATION -6042,8234,3 //MER_DECAGI -// MER_SWORDMAN07 -6043,8201,10 //MS_BASH -6043,8233,1 //MER_AUTOBERSERK -6043,8235,1 //MER_SCAPEGOAT -// MER_SWORDMAN08 -6044,8223,10 //MER_QUICKEN -6044,8203,5 //MS_BOWLINGABASH -6044,8231,1 //MER_COMPRESS -6044,8204,4 //MS_PARRYING -// MER_SWORDMAN09 -6045,8203,8 //MS_BOWLINGABASH -6045,8225,3 //MER_CRASH -6045,8205,5 //MS_REFLECTSHIELD -// MER_SWORDMAN10 -6046,8223,10 //MER_QUICKEN -6046,8203,10 //MS_BOWLINGABASH -6046,8201,10 //MS_BASH -6046,8206,1 //MS_BERSERK -// Monster Mercenaries -// Wild Rose -1965,8201,5 //MS_BASH +//MercenryID,SkillID,SkillLevel +// Archer Mercenaries Level 1-10. +// MER_ARCHER01 +6017,8207,2 //MA_DOUBLE +6017,8233,1 //MER_AUTOBERSERK +// MER_ARCHER02 +6018,8208,2 //MA_SHOWER +6018,8224,1 //MER_SIGHT +// MER_ARCHER03 +6019,8214,1 //MA_CHARGEARROW +6019,8223,1 //MER_QUICKEN +// MER_ARCHER04 +6020,8237,1 //MER_ESTIMATION +6020,8222,1 //MER_MAGNIFICAT +6020,8227,1 //MER_TENDER +// MER_ARCHER05 +6021,8207,5 //MA_DOUBLE +6021,8232,1 //MER_PROVOKE +6021,8213,1 //MA_REMOVETRAP +// MER_ARCHER06 +6022,8207,7 //MA_DOUBLE +6022,8209,3 //MA_SKIDTRAP +6022,8234,1 //MER_DECAGI +// MER_ARCHER07 +6023,8208,10 //MA_SHOWER +6023,8230,1 //MER_MENTALCURE +6023,8212,2 //MA_FREEZINGTRAP +// MER_ARCHER08 +6024,8223,2 //MER_QUICKEN +6024,8232,3 //MER_PROVOKE +6024,8211,3 //MA_SANDMAN +// MER_ARCHER09 +6025,8207,10 //MA_DOUBLE +6025,8214,1 //MA_CHARGEARROW +6025,8210,5 //MA_LANDMINE +// MER_ARCHER10 +6026,8214,1 //MA_CHARGEARROW +6026,8215,5 //MA_SHARPSHOOTING +6026,8223,5 //MER_QUICKEN +6026,8233,1 //MER_AUTOBERSERK +// Lancer Mercenaries Level 1-10. +// MER_LANCER01 +6027,8216,1 //ML_PIERCE +6027,8226,1 //MER_REGAIN +// MER_LANCER02 +6028,8217,2 //ML_BRANDISH +6028,8236,1 //MER_LEXDIVINA +// MER_LANCER03 +6029,8216,2 //ML_PIERCE +6029,8221,1 //ML_DEVOTION +6029,8229,1 //MER_RECUPERATE +// MER_LANCER04 +6030,8219,1 //ML_DEFENDER +6030,8225,4 //MER_CRASH +// MER_LANCER05 +6031,8216,5 //ML_PIERCE +6031,8220,3 //ML_AUTOGUARD +// MER_LANCER06 +6032,8223,2 //MER_QUICKEN +6032,8217,5 //ML_BRANDISH +// MER_LANCER07 +6033,8221,1 //ML_DEVOTION +6033,8233,1 //MER_AUTOBERSERK +// MER_LANCER08 +6034,8235,1 //MER_SCAPEGOAT +6034,8216,10 //ML_PIERCE +6034,8232,5 //MER_PROVOKE +// MER_LANCER09 +6035,8217,10 //ML_BRANDISH +6035,8220,7 //ML_AUTOGUARD +6035,8219,3 //ML_DEFENDER +// MER_LANCER10 +6036,8223,5 //MER_QUICKEN +6036,8220,10 //ML_AUTOGUARD +6036,8221,3 //ML_DEVOTION +6036,8218,5 //ML_SPIRALPIERCE +// Swordman Mercenaries Level 1-10. +// MER_SWORDMAN01 +6037,8201,1 //MS_BASH +6037,8234,1 //MER_DECAGI +// MER_SWORDMAN02 +6038,8232,5 //MER_PROVOKE +6038,8202,3 //MS_MAGNUM +// MER_SWORDMAN03 +6039,8223,1 //MER_QUICKEN +6039,8228,1 //MER_BENEDICTION +// MER_SWORDMAN04 +6040,8225,1 //MER_CRASH +6040,8202,5 //MS_MAGNUM +// MER_SWORDMAN05 +6041,8201,5 //MS_BASH +6041,8225,4 //MER_CRASH +6041,8228,1 //MER_BENEDICTION +// MER_SWORDMAN06 +6042,8223,5 //MER_QUICKEN +6042,8237,1 //MER_ESTIMATION +6042,8234,3 //MER_DECAGI +// MER_SWORDMAN07 +6043,8201,10 //MS_BASH +6043,8233,1 //MER_AUTOBERSERK +6043,8235,1 //MER_SCAPEGOAT +// MER_SWORDMAN08 +6044,8223,10 //MER_QUICKEN +6044,8203,5 //MS_BOWLINGABASH +6044,8231,1 //MER_COMPRESS +6044,8204,4 //MS_PARRYING +// MER_SWORDMAN09 +6045,8203,8 //MS_BOWLINGABASH +6045,8225,3 //MER_CRASH +6045,8205,5 //MS_REFLECTSHIELD +// MER_SWORDMAN10 +6046,8223,10 //MER_QUICKEN +6046,8203,10 //MS_BOWLINGABASH +6046,8201,10 //MS_BASH +6046,8206,1 //MS_BERSERK +// Monster Mercenaries +// Wild Rose +1965,8201,5 //MS_BASH diff --git a/doc/map_cache.txt b/doc/map_cache.txt index c235e8022..394a5c802 100644 --- a/doc/map_cache.txt +++ b/doc/map_cache.txt @@ -1,67 +1,67 @@ -//===== Athena Doc ======================================== -//= eAthena Map Cache Builder and Format Documentation -//===== By ================================================ -//= DracoRPG -//===== Version =========================================== -//= 1.0 -//========================================================= -//= 0.1 - Short howto for the initial builder version -//= 1.0 - Complete manual covering the improved version -//===== Description ======================================= -//= A complete manual for eAthena's map cache generator -//= as well as a reference on the map cache format used -//========================================================= - -Preface: -------------------------------------------------------------------------------- - -Since SVN revision ~10000, the map-server does not know how to read RO client files anymore. It reads maps from a -"map cache" file that contains all and only the useful data about the maps. A map cache containing every official -kRO Sakray map currently supported by eAthena is provided as a default. -If you have custom maps or want to minimize the size of your map cache because your server does not load all of them -(multi-map-server or light test server), you can use the map cache builder to generate a new one fitting your needs. - -Map cache builder manual: -------------------------------------------------------------------------------- - -The source code for the map cache builder is located in src/tool/. It can be built using "make tools" if you use the Makefile -or using the "mapcache" project under Visual Studio. Named "mapcache", the executable will be in your eAthena main folder. -The map cache builder needs 3 file paths : one is a list of GRFs and/or data directory containing the maps, the second -is the list of maps to add to the map cache, and the last one is the path of the map cache to generate. Default values for -those paths are "tools/mapcache/grf_files.txt", "db/map_index.txt" and "db/map_cache.dat". -The list of GRF and/or data directory must follow the format and indication of the default file: as many "grf:" entries as -you wish and optionally one only "data_dir:" entry with trailing backslash included. // comments are supported as usual. -In fact, any file with one map name per line can be used as a map list, that's why the map index list is used as a default: -we are sure it contains every map supported by the server. Anything after the map name is ignored, // comments are supported -and if the first word on the line is "map:" then the second word is used as the map name instead: that allows using -maps_athena.conf as your map list, which is handy if you want to generate a minimal map cache for each of your multiple -map-servers. -The map cache file path can point to an already existing file, as the builder adds a map only if it's not already cached. -This way, you can add custom maps to the base map cache without even needing kRO Sakray maps. If you wish to rebuild the -entire map cache, though, you can either provide a path to a non-existing file, or force the rebuild mode. - -Here are the command-line arguments you can provide to the map cache builder to customize its behavior: - -grf path/to/grf/list - Allows to specify the file containing the list of GRFs and/or data directory - -list path/to/map/list - Allows to specify the file containing the list of maps to add to the map cache - -cache path/to/map/cache - Allows to specify the path to the generated map cache - -rebuild - Allows to force the rebuild mode (map cache will be overwritten even if it already exists) - - -Map cache format reference: -------------------------------------------------------------------------------- - -The file is written as little-endian, even on big-endian systems, for cross-compatibility reasons. Appropriate conversions -are done when generating it, so don't worry about it. -The first 6 bytes are a main header: - file size - number of maps -Then maps are stored one right after another: -<12-characters-long string> map name - X size - Y size - compressed cell data length - compressed cell data +//===== Athena Doc ======================================== +//= eAthena Map Cache Builder and Format Documentation +//===== By ================================================ +//= DracoRPG +//===== Version =========================================== +//= 1.0 +//========================================================= +//= 0.1 - Short howto for the initial builder version +//= 1.0 - Complete manual covering the improved version +//===== Description ======================================= +//= A complete manual for eAthena's map cache generator +//= as well as a reference on the map cache format used +//========================================================= + +Preface: +------------------------------------------------------------------------------- + +Since SVN revision ~10000, the map-server does not know how to read RO client files anymore. It reads maps from a +"map cache" file that contains all and only the useful data about the maps. A map cache containing every official +kRO Sakray map currently supported by eAthena is provided as a default. +If you have custom maps or want to minimize the size of your map cache because your server does not load all of them +(multi-map-server or light test server), you can use the map cache builder to generate a new one fitting your needs. + +Map cache builder manual: +------------------------------------------------------------------------------- + +The source code for the map cache builder is located in src/tool/. It can be built using "make tools" if you use the Makefile +or using the "mapcache" project under Visual Studio. Named "mapcache", the executable will be in your eAthena main folder. +The map cache builder needs 3 file paths : one is a list of GRFs and/or data directory containing the maps, the second +is the list of maps to add to the map cache, and the last one is the path of the map cache to generate. Default values for +those paths are "tools/mapcache/grf_files.txt", "db/map_index.txt" and "db/map_cache.dat". +The list of GRF and/or data directory must follow the format and indication of the default file: as many "grf:" entries as +you wish and optionally one only "data_dir:" entry with trailing backslash included. // comments are supported as usual. +In fact, any file with one map name per line can be used as a map list, that's why the map index list is used as a default: +we are sure it contains every map supported by the server. Anything after the map name is ignored, // comments are supported +and if the first word on the line is "map:" then the second word is used as the map name instead: that allows using +maps_athena.conf as your map list, which is handy if you want to generate a minimal map cache for each of your multiple +map-servers. +The map cache file path can point to an already existing file, as the builder adds a map only if it's not already cached. +This way, you can add custom maps to the base map cache without even needing kRO Sakray maps. If you wish to rebuild the +entire map cache, though, you can either provide a path to a non-existing file, or force the rebuild mode. + +Here are the command-line arguments you can provide to the map cache builder to customize its behavior: + -grf path/to/grf/list + Allows to specify the file containing the list of GRFs and/or data directory + -list path/to/map/list + Allows to specify the file containing the list of maps to add to the map cache + -cache path/to/map/cache + Allows to specify the path to the generated map cache + -rebuild + Allows to force the rebuild mode (map cache will be overwritten even if it already exists) + + +Map cache format reference: +------------------------------------------------------------------------------- + +The file is written as little-endian, even on big-endian systems, for cross-compatibility reasons. Appropriate conversions +are done when generating it, so don't worry about it. +The first 6 bytes are a main header: + file size + number of maps +Then maps are stored one right after another: +<12-characters-long string> map name + X size + Y size + compressed cell data length + compressed cell data diff --git a/npc/battleground/bg_common.txt b/npc/battleground/bg_common.txt index 21eb9520f..fb33570d7 100644 --- a/npc/battleground/bg_common.txt +++ b/npc/battleground/bg_common.txt @@ -1,1258 +1,1258 @@ -// ============================================================================== -// BattleGround System - Common NPCs -// ============================================================================== - -// MapFlags -// ********************************************************************* - -bat_room mapflag nomemo -bat_room mapflag nowarpto -bat_room mapflag nobranch -bat_room mapflag nopenalty -bat_room mapflag noteleport -bat_room mapflag nosave SavePoint - -// BattleGround Warper - Entrance -// ********************************************************************* - -payon,189,104,3 script Maroll Battle Recruiter::BatRecruit 728,{ - mes "[Maroll Battle Recruiter]"; - mes "Good day, adventurer."; - mes "I'm a knight from a far country called Maroll Kingdom."; - next; - mes "[Maroll Battle Recruiter]"; - mes "The two princes of the kingdom are now battling for the throne of Maroll, and are in need of experienced soldiers like you. How would you like to lend your power to one of the princes in the Maroll Kingdom?"; - next; - if( select("Join:Don't Join") == 2 ) - { - mes "[Maroll Battle Recruiter]"; - mes "I'll always be stationed here for more soldiers. Fell free to come back whenever you're interested."; - close; - } - mes "[Maroll Battle Recruiter]"; - mes "May the war god bless you."; - close2; - warp "bat_room",155,150; - end; -} - -prontera,123,83,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit2 728 -rachel,149,138,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit3 728 -moc_ruins,75,162,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit4 728 -aldebaran,146,109,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit5 728 -lighthalzen,153,86,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit6 728 - -// BattleGround Warper - Exit -// ********************************************************************* - -bat_room,148,150,4 script Teleporter#bat 124,{ - mes "[Teleporter]"; - mes "Do you wish to leave the battlefield? Use my service to return to town."; - next; - if( select("Leave:Don't Leave") == 2 ) - { - mes "[Teleporter]"; - mes "I'll be here whenever you're in need of my service."; - close; - } - - set .@spoint$, getsavepoint(0); - set .@x, getsavepoint(1); - set .@y, getsavepoint(2); - mes "[Teleporter]"; - mes "You will be sent back to " + .@spoint$ + "."; - close2; - warp .@spoint$, .@x, .@y; - end; -} - -// Kafra -// ********************************************************************* -bat_room,148,147,4 script Kafra Staff::kaf_bat 861,{ - cutin "kafra_09",2; - callfunc "F_Kafra",0,2,1,150,0; -} - -// General Guillaume -// ********************************************************************* -bat_room,160,159,3 script General Guillaume 420,{ - cutin "bat_kiyom2",2; - mes "[General Guillaume]"; - mes "Hot-blooded adventurer, we need your ability to win this battle."; - next; - cutin "bat_kiyom1",2; - mes "[General Guillaume]"; - mes "Our great king, Marcel Marollo VII, is very sick lately. His Majesty has declared that he chosen either me or Prince Croix as the next king amongst his 9 sons."; - next; - mes "[General Guillaume]"; - mes "Two kings can't share a nation!"; - mes "Only the one victorious from His Majesty's appointed battle will be enthroned."; - next; - mes "[General Guillaume]"; - mes "This is however, not just a battle between us. This battle will determine the future of this country. I pledge on my honor to prove that I'm the one who can protect this Maroll from outside threats."; - next; - if( select("Yes, I want to join you.:End Conversation") == 2 ) - { - mes "[General Guillaume]"; - mes "I'll be the one who will capture the flag!"; - close2; - cutin "",255; - end; - } - cutin "bat_kiyom2",2; - mes "[General Guillaume]"; - mes "Welcome to my army, comrade."; - mes "Your eyes tell me that you're a soldier that I can trust."; - set Bat_Team,1; - next; - mes "[General Guillaume]"; - mes "Now, go upstairs and apply for battle with your comrades. I'm sure they'll welcome you whole-heartedly!"; - close2; - cutin "",255; - end; -} - -// General Croix -// ********************************************************************* -bat_room,160,140,3 script Prince Croix 416,{ - cutin "bat_crua1",2; - mes "[Prince Croix]"; - mes "Wise adventurer, why don't you lend us your power for victory?"; - next; - cutin "bat_crua2",2; - mes "[Prince Croix]"; - mes "I do not wish to shed blood, but I have no choice but to fight for the possibility of peace and for the sake of my people."; - next; - mes "[Prince Croix]"; - mes "General Guillaume may have an advantage in this battle as he is the great general of Maroll, but that doesn't automatically mean he'll win. I want to win this battle so that I can grant a better future for my people."; - next; - if( select("Yes, I want to join you!:End Conversation") == 2 ) - { - mes "[Prince Croix]"; - mes "For Maroll!"; - close2; - cutin "",255; - end; - } - mes "[Prince Croix]"; - mes "Thank you so much. I feel like I can win with the help of adventurers like you. Now, please go downstairs and join your comrades in sharpening their skills to fight the enemy!"; - set Bat_Team,2; - close2; - cutin "",255; - end; -} - -// Time calculation Function -// ********************************************************************* -function script Time2Str { - set .@Time_Left, getarg(0) - gettimetick(2); - - set .@Days, .@Time_Left / 86400; - set .@Time_Left, .@Time_Left - (.@Days * 86400); - set .@Hours, .@Time_Left / 3600; - set .@Time_Left, .@Time_Left - (.@Hours * 3600); - set .@Minutes, .@Time_Left / 60; - set .@Time_Left, .@Time_Left - (.@Minutes * 60); - - set .@Time$, ""; - if( .@Days > 1 ) - set .@Time$, .@Time$ + .@Days + " days, "; - else if( .@Days > 0 ) - set .@Time$, .@Time$ + .@Days + " day, "; - - if( .@Hours > 1 ) - set .@Time$, .@Time$ + .@Hours + " hours, "; - else if( .@Hours > 0 ) - set .@Time$, .@Time$ + .@Hours + " hour, "; - - if( .@Minutes > 1 ) - set .@Time$, .@Time$ + .@Minutes + " minutes, "; - else if( .@Minutes > 0 ) - set .@Time$, .@Time$ + .@Minutes + " minute, "; - - if( .@Time_Left > 1 || .@Time_Left == 0 ) - set .@Time$, .@Time$ + .@Time_Left + " seconds."; - else if( .@Time_Left == 1 ) - set .@Time$, .@Time$ + .@Time_Left + " second."; - - return .@Time$; -} - -// Guillaume Knight - Tierra Valley -// ********************************************************************* -bat_room,159,178,5 script Guillaume Knight#1 417,{ - mes "[Guillaume Knight]"; - mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; - next; - mes "[Guillaume Knight]"; - mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; - next; - mes "[Guillaume Knight]"; - mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; - mes ""; - mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Tierra Officerer - Guillaume -// ********************************************************************* -bat_room,156,178,5 script Tierra Valley Officer#1 418,{ - mes "[Tierra Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Tierra Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( Tierra_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",85,224; - end; -} - -// Croix Knight - Tierra Valley -// ********************************************************************* -bat_room,159,121,1 script Croix Knight#1 413,{ - mes "[Croix Knight]"; - mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; - next; - mes "[Croix Knight]"; - mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; - next; - mes "[Croix Knight]"; - mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; - mes ""; - mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Tierra Officer - Croix -// ********************************************************************* -bat_room,156,121,1 script Tierra Valley Officer#2 414,{ - mes "[Tierra Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Tierra Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( Tierra_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",85,208; - end; -} - -// Guillaume Knight - Tierra -// ********************************************************************* -bat_room,175,178,5 script Guillaume Knight#2 417,{ - mes "[Guillaume Knight]"; - mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; - next; - mes "[Guillaume Knight]"; - mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; - next; - mes "[Guillaume Knight]"; - mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; - mes ""; - mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Tierra Officer - Guillaume -// ********************************************************************* -bat_room,172,178,5 script Tierra Valley Officer#3 418,{ - mes "[Tierra Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Tierra Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( Tierra_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",85,94; - end; -} - -// Croix Knight - Tierra -// ********************************************************************* -bat_room,175,121,1 script Croix Knight#2 413,{ - mes "[Croix Knight]"; - mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; - next; - mes "[Croix Knight]"; - mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; - next; - mes "[Croix Knight]"; - mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; - mes ""; - mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Tierra Officer - Croix -// ********************************************************************* -bat_room,172,121,1 script Tierra Valley Officer#4 414,{ - mes "[Tierra Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Tierra Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( Tierra_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",85,77; - end; -} - -// Guillaune Knight - Flavius -// ********************************************************************* -bat_room,151,178,5 script Guillaume Knight#3 417,{ - mes "[Guillaume Knight]"; - mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; - next; - mes "[Guillaume Knight]"; - mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; - next; - mes "[Guillaume Knight]"; - mes "But they can be removed by destroying the Guardians that protect the enemy army base."; - next; - mes "[Guillaume Knight]"; - mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Flavius Officerer - Guillaume -// ********************************************************************* -bat_room,148,178,5 script Flavius Officer#1 418,{ - mes "[Flavius Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stupid Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Flavius Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( Flavius_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",253,94; - end; -} - -// Croix Knight - Flavius -// ********************************************************************* -bat_room,151,121,1 script Croix Knight#3 413,{ - mes "[Croix Knight]"; - mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; - next; - mes "[Croix Knight]"; - mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; - next; - mes "[Croix Knight]"; - mes "But they can be removed by destroying the Guardians that protect the enemy army base."; - next; - mes "[Croix Knight]"; - mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Flavius Officerer - Croix -// ********************************************************************* -bat_room,148,121,1 script Flavius Officer#2 414,{ - mes "[Flavius Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Flavius Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( Flavius_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",253,77; - end; -} - -// Guillaune Knight - Flavius -// ********************************************************************* -bat_room,167,178,5 script Guillaume Knight#4 417,{ - mes "[Guillaume Knight]"; - mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; - next; - mes "[Guillaume Knight]"; - mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; - next; - mes "[Guillaume Knight]"; - mes "But they can be removed by destroying the Guardians that protect the enemy army base."; - next; - mes "[Guillaume Knight]"; - mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Flavius Officerer - Guillaume -// ********************************************************************* -bat_room,164,178,5 script Flavius Officer#3 418,{ - mes "[Flavius Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stupid Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Flavius Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( Flavius_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",57,94; - end; -} - -// Croix Knight - Flavius -// ********************************************************************* -bat_room,167,121,1 script Croix Knight#4 413,{ - mes "[Croix Knight]"; - mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; - next; - mes "[Croix Knight]"; - mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; - next; - mes "[Croix Knight]"; - mes "But they can be removed by destroying the Guardians that protect the enemy army base."; - next; - mes "[Croix Knight]"; - mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Flavius Officerer - Croix -// ********************************************************************* -bat_room,164,121,1 script Flavius Officer#4 414,{ - mes "[Flavius Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Flavius Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( Flavius_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",57,77; - end; -} - -// Guillaume Knight - KvM -// ********************************************************************* -bat_room,143,178,5 script Guillaume Knight#5 417,{ - mes "[Guillaume Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Guillaume Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Guillaume Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officerer - Guillaume -// ********************************************************************* -bat_room,140,178,5 script KVM [80-99] Officer#1 418,{ - mes "[KVM Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( KvM_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 80 to 99."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",253,224; - end; -} - -// Croix Knight - KvM -// ********************************************************************* -bat_room,143,121,1 script Croix Knight#5 413,{ - mes "[Croix Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Croix Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Croix Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officer - Croix -// ********************************************************************* -bat_room,140,121,1 script KVM [80-99] Officer#2 414,{ - mes "[KVM Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( KvM_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; - close; - } - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 80 to 99."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",253,208; - end; -} - -// Guillaume Knight - KvM -// ********************************************************************* -bat_room,135,178,5 script Guillaume Knight#6 417,{ - mes "[Guillaume Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Guillaume Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Guillaume Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officerer - Guillaume -// ********************************************************************* -bat_room,132,178,5 script KVM [60-79] Officer#1 418,{ - mes "[KVM Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( KvM_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; - close; - } - if( BaseLevel < 60 || BaseLevel > 79 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 60 to 79."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",225,224; - end; -} - -// Croix Knight - KvM -// ********************************************************************* -bat_room,135,121,1 script Croix Knight#6 413,{ - mes "[Croix Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Croix Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Croix Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officer - Croix -// ********************************************************************* -bat_room,132,121,1 script KVM [60-79] Officer#2 414,{ - mes "[KVM Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( KvM_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; - close; - } - if( BaseLevel < 60 || BaseLevel > 79 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 60 to 79."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",225,208; - end; -} - -// Guillaume Knight - KvM -// ********************************************************************* -bat_room,127,178,5 script Guillaume Knight#7 417,{ - mes "[Guillaume Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Guillaume Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Guillaume Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officerer - Guillaume -// ********************************************************************* -bat_room,124,178,5 script KVM [1-59] Officer#1 418,{ - mes "[KVM Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( KvM_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; - close; - } - if( BaseLevel > 59 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 1 to 59."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",197,224; - end; -} - -// Croix Knight - KvM -// ********************************************************************* -bat_room,127,121,1 script Croix Knight#7 413,{ - mes "[Croix Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Croix Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Croix Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officer - Croix -// ********************************************************************* -bat_room,124,121,1 script KVM [1-59] Officer#2 414,{ - mes "[KVM Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - if( KvM_BG_Tick >= gettimetick(2) ) - { - mes "Sorry, you can't join the battle right now."; - mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; - close; - } - if( BaseLevel > 59 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 1 to 59."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",197,208; - end; -} - -// Guard Dummy -// ********************************************************************* - -bat_room,161,141,3 script Prince Croix's Aid::bat_aid 415,{ end; } -bat_room,161,139,3 duplicate(bat_aid) Prince Croix's Aid::bat_aid2 415 -bat_room,161,160,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid3 419 -bat_room,161,158,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid4 419 - -// Flags -// ********************************************************************* - -- script Guillaume camp#bat 973,{ end; } -- script Croix camp#bat 974,{ end; } - -// Exit from Registration -// ********************************************************************* -// Flavius bat_b02 -bat_room,57,81,0 warp bat1 2,2,bat_room,154,149 -bat_room,57,90,0 warp bat2 2,2,bat_room,154,149 -// Free BG -bat_room,57,220,0 warp bat3 2,2,bat_room,154,149 -bat_room,57,211,0 warp bat4 2,2,bat_room,154,149 -// Tierra Valley bat_a02 -bat_room,85,81,0 warp bat5 2,2,bat_room,154,149 -bat_room,85,90,0 warp bat6 2,2,bat_room,154,149 -// Tierra Valley bat_a01 -bat_room,85,220,0 warp bat7 2,2,bat_room,154,149 -bat_room,85,211,0 warp bat8 2,2,bat_room,154,149 -// Free BG -bat_room,113,81,0 warp bat9 2,2,bat_room,154,149 -bat_room,113,90,0 warp bat10 2,2,bat_room,154,149 -// Free BG -bat_room,113,220,0 warp bat11 2,2,bat_room,154,149 -bat_room,113,211,0 warp bat12 2,2,bat_room,154,149 -// Free BG -bat_room,141,81,0 warp bat13 2,2,bat_room,154,149 -bat_room,141,90,0 warp bat14 2,2,bat_room,154,149 -// Free BG -bat_room,141,220,0 warp bat15 2,2,bat_room,154,149 -bat_room,141,211,0 warp bat16 2,2,bat_room,154,149 -// Free BG -bat_room,169,81,0 warp bat17 2,2,bat_room,154,149 -bat_room,169,90,0 warp bat18 2,2,bat_room,154,149 -// Free BG -bat_room,169,220,0 warp bat19 2,2,bat_room,154,149 -bat_room,169,211,0 warp bat20 2,2,bat_room,154,149 -// Free BG -bat_room,197,81,0 warp bat21 2,2,bat_room,154,149 -bat_room,197,90,0 warp bat22 2,2,bat_room,154,149 -// KvM bat_c03 -bat_room,197,220,0 warp bat23 2,2,bat_room,154,149 -bat_room,197,211,0 warp bat24 2,2,bat_room,154,149 -// Free BG -bat_room,225,81,0 warp bat25 2,2,bat_room,154,149 -bat_room,225,90,0 warp bat26 2,2,bat_room,154,149 -// KvM bat_c02 -bat_room,225,220,0 warp bat27 2,2,bat_room,154,149 -bat_room,225,211,0 warp bat28 2,2,bat_room,154,149 -// Flavius bat_b01 -bat_room,253,81,0 warp bat29 2,2,bat_room,154,149 -bat_room,253,90,0 warp bat30 2,2,bat_room,154,149 -// KvM bat_c01 -bat_room,253,220,0 warp bat31 2,2,bat_room,154,149 -bat_room,253,211,0 warp bat32 2,2,bat_room,154,149 - -// Badges Repairman -// ********************************************************************* - -bat_room,138,144,5 script Repairman#bg 99,{ - callfunc "repairmain","Repairman"; - end; -} - -// Badges Exchange -// ********************************************************************* - -bat_room,160,150,3 script Erundek 109,{ - mes "[Erundek]"; - mes "Welcome, mighty warrior."; - mes "What can I do for you today ?"; - next; - switch( select("Check the Catalog","Exchange Bravery Badges","Exchange Valor Badges","Exchange Heroism Badges","Hmm, nothing I guess.") ) - { - case 1: - mes "[Erundek]"; - mes "We have many items, so please take a look and purchase deliberately."; - close2; - Readbook 11010,1; - end; - case 5: - mes "[Erundek]"; - mes "As you wish."; - mes "See you later."; - close; - case 2: // Bravery Badges - mes "[Erundek]"; - mes "So you want to exchange ^0000FFBravery Badges^000000 from the Battle of Tierra Valley."; - mes "What kind of item do you want to exchange?"; - next; - deletearray .@Item_DB[0],127; - set .@Badge, 7828; - - switch( select("Weapons:Garment:Footgear:Armor:Accessory") ) - { - case 1: setarray .@Item_DB[0],13036,13411,1425,1632,1634,1543,1924,1978,1574,1824,1183,1380,13305,1279,1739,13108,13172; set .@Value, 100; break; - case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break; - case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break; - case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break; - case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break; - } - - break; - case 3: // Valor Badges - mes "[Erundek]"; - mes "So you want to exchange ^FF0000Valor Badges^000000 from the Battle of Flavius."; - mes "What kind of item do you want to exchange?"; - next; - deletearray .@Item_DB[0],127; - set .@Badge, 7829; - - switch( select("Weapons:Garment:Footgear:Armor:Accessory") ) - { - case 1: setarray .@Item_DB[0],13037,13410,1633,1635,1542,1923,1977,1575,1823,1184,1482,1379,13306,1280,1738,13171,13173,13174; set .@Value, 100; break; - case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break; - case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break; - case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break; - case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break; - } - - break; - case 4: // Heroism Badge - mes "[Erundek]"; - mes "So you want to exchange ^FFA500Heroism Badges^000000 from the Battle of Kriger Von Midgard."; - mes "This shop is not available at the moment."; - close; - } - - mes "[Erundek]"; - mes "What item do you want to exchange?"; - mes "If you are not sure, check the catalog."; - next; - - set .@Menu$, ""; - set .@Count, getarraysize(.@Item_DB); - for( set .@i, 0; .@i < .@Count; set .@i, .@i + 1 ) - set .@Menu$, .@Menu$ + getitemname(.@Item_DB[.@i]) + ":"; - - set .@Item_ID, .@Item_DB[select(.@Menu$) - 1]; - - mes "[Erundek]"; - mes "Would you like to exchange ^FF0000" + .@Value + " " + getitemname(.@Badge) + "^000000 for a ^0000FF" + getitemname(.@Item_ID) + "^000000?"; - next; - mes "Remember, Battleground Reward Items are ^FF0000Character Bound^000000."; - mes "Are you sure you want this item?"; - next; - - if( select("Yes:No") == 2 ) - { - mes "[Erundek]"; - mes "Do you need more time to check the items?"; - close; - } - - if( countitem(.@Badge) < .@Value ) - { - mes "[Erundek]"; - mes "I'm sorry, but you don't have enough badges to exchange."; - close; - } - - delitem .@Badge,.@Value; - getitem .@Item_ID,1; - mes "[Erundek]"; - mes "Thank you for exchanging."; - close; -} +// ============================================================================== +// BattleGround System - Common NPCs +// ============================================================================== + +// MapFlags +// ********************************************************************* + +bat_room mapflag nomemo +bat_room mapflag nowarpto +bat_room mapflag nobranch +bat_room mapflag nopenalty +bat_room mapflag noteleport +bat_room mapflag nosave SavePoint + +// BattleGround Warper - Entrance +// ********************************************************************* + +payon,189,104,3 script Maroll Battle Recruiter::BatRecruit 728,{ + mes "[Maroll Battle Recruiter]"; + mes "Good day, adventurer."; + mes "I'm a knight from a far country called Maroll Kingdom."; + next; + mes "[Maroll Battle Recruiter]"; + mes "The two princes of the kingdom are now battling for the throne of Maroll, and are in need of experienced soldiers like you. How would you like to lend your power to one of the princes in the Maroll Kingdom?"; + next; + if( select("Join:Don't Join") == 2 ) + { + mes "[Maroll Battle Recruiter]"; + mes "I'll always be stationed here for more soldiers. Fell free to come back whenever you're interested."; + close; + } + mes "[Maroll Battle Recruiter]"; + mes "May the war god bless you."; + close2; + warp "bat_room",155,150; + end; +} + +prontera,123,83,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit2 728 +rachel,149,138,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit3 728 +moc_ruins,75,162,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit4 728 +aldebaran,146,109,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit5 728 +lighthalzen,153,86,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit6 728 + +// BattleGround Warper - Exit +// ********************************************************************* + +bat_room,148,150,4 script Teleporter#bat 124,{ + mes "[Teleporter]"; + mes "Do you wish to leave the battlefield? Use my service to return to town."; + next; + if( select("Leave:Don't Leave") == 2 ) + { + mes "[Teleporter]"; + mes "I'll be here whenever you're in need of my service."; + close; + } + + set .@spoint$, getsavepoint(0); + set .@x, getsavepoint(1); + set .@y, getsavepoint(2); + mes "[Teleporter]"; + mes "You will be sent back to " + .@spoint$ + "."; + close2; + warp .@spoint$, .@x, .@y; + end; +} + +// Kafra +// ********************************************************************* +bat_room,148,147,4 script Kafra Staff::kaf_bat 861,{ + cutin "kafra_09",2; + callfunc "F_Kafra",0,2,1,150,0; +} + +// General Guillaume +// ********************************************************************* +bat_room,160,159,3 script General Guillaume 420,{ + cutin "bat_kiyom2",2; + mes "[General Guillaume]"; + mes "Hot-blooded adventurer, we need your ability to win this battle."; + next; + cutin "bat_kiyom1",2; + mes "[General Guillaume]"; + mes "Our great king, Marcel Marollo VII, is very sick lately. His Majesty has declared that he chosen either me or Prince Croix as the next king amongst his 9 sons."; + next; + mes "[General Guillaume]"; + mes "Two kings can't share a nation!"; + mes "Only the one victorious from His Majesty's appointed battle will be enthroned."; + next; + mes "[General Guillaume]"; + mes "This is however, not just a battle between us. This battle will determine the future of this country. I pledge on my honor to prove that I'm the one who can protect this Maroll from outside threats."; + next; + if( select("Yes, I want to join you.:End Conversation") == 2 ) + { + mes "[General Guillaume]"; + mes "I'll be the one who will capture the flag!"; + close2; + cutin "",255; + end; + } + cutin "bat_kiyom2",2; + mes "[General Guillaume]"; + mes "Welcome to my army, comrade."; + mes "Your eyes tell me that you're a soldier that I can trust."; + set Bat_Team,1; + next; + mes "[General Guillaume]"; + mes "Now, go upstairs and apply for battle with your comrades. I'm sure they'll welcome you whole-heartedly!"; + close2; + cutin "",255; + end; +} + +// General Croix +// ********************************************************************* +bat_room,160,140,3 script Prince Croix 416,{ + cutin "bat_crua1",2; + mes "[Prince Croix]"; + mes "Wise adventurer, why don't you lend us your power for victory?"; + next; + cutin "bat_crua2",2; + mes "[Prince Croix]"; + mes "I do not wish to shed blood, but I have no choice but to fight for the possibility of peace and for the sake of my people."; + next; + mes "[Prince Croix]"; + mes "General Guillaume may have an advantage in this battle as he is the great general of Maroll, but that doesn't automatically mean he'll win. I want to win this battle so that I can grant a better future for my people."; + next; + if( select("Yes, I want to join you!:End Conversation") == 2 ) + { + mes "[Prince Croix]"; + mes "For Maroll!"; + close2; + cutin "",255; + end; + } + mes "[Prince Croix]"; + mes "Thank you so much. I feel like I can win with the help of adventurers like you. Now, please go downstairs and join your comrades in sharpening their skills to fight the enemy!"; + set Bat_Team,2; + close2; + cutin "",255; + end; +} + +// Time calculation Function +// ********************************************************************* +function script Time2Str { + set .@Time_Left, getarg(0) - gettimetick(2); + + set .@Days, .@Time_Left / 86400; + set .@Time_Left, .@Time_Left - (.@Days * 86400); + set .@Hours, .@Time_Left / 3600; + set .@Time_Left, .@Time_Left - (.@Hours * 3600); + set .@Minutes, .@Time_Left / 60; + set .@Time_Left, .@Time_Left - (.@Minutes * 60); + + set .@Time$, ""; + if( .@Days > 1 ) + set .@Time$, .@Time$ + .@Days + " days, "; + else if( .@Days > 0 ) + set .@Time$, .@Time$ + .@Days + " day, "; + + if( .@Hours > 1 ) + set .@Time$, .@Time$ + .@Hours + " hours, "; + else if( .@Hours > 0 ) + set .@Time$, .@Time$ + .@Hours + " hour, "; + + if( .@Minutes > 1 ) + set .@Time$, .@Time$ + .@Minutes + " minutes, "; + else if( .@Minutes > 0 ) + set .@Time$, .@Time$ + .@Minutes + " minute, "; + + if( .@Time_Left > 1 || .@Time_Left == 0 ) + set .@Time$, .@Time$ + .@Time_Left + " seconds."; + else if( .@Time_Left == 1 ) + set .@Time$, .@Time$ + .@Time_Left + " second."; + + return .@Time$; +} + +// Guillaume Knight - Tierra Valley +// ********************************************************************* +bat_room,159,178,5 script Guillaume Knight#1 417,{ + mes "[Guillaume Knight]"; + mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; + next; + mes "[Guillaume Knight]"; + mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; + next; + mes "[Guillaume Knight]"; + mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; + mes ""; + mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// Tierra Officerer - Guillaume +// ********************************************************************* +bat_room,156,178,5 script Tierra Valley Officer#1 418,{ + mes "[Tierra Officer]"; + if( Bat_Team == 2 ) + { + mes "Get out of here you stinky Croix!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[Tierra Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( Tierra_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",85,224; + end; +} + +// Croix Knight - Tierra Valley +// ********************************************************************* +bat_room,159,121,1 script Croix Knight#1 413,{ + mes "[Croix Knight]"; + mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; + next; + mes "[Croix Knight]"; + mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; + next; + mes "[Croix Knight]"; + mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; + mes ""; + mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// Tierra Officer - Croix +// ********************************************************************* +bat_room,156,121,1 script Tierra Valley Officer#2 414,{ + mes "[Tierra Officer]"; + if( Bat_Team == 1 ) + { + mes "Get out of here you stupid Guillaume!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[Tierra Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( Tierra_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",85,208; + end; +} + +// Guillaume Knight - Tierra +// ********************************************************************* +bat_room,175,178,5 script Guillaume Knight#2 417,{ + mes "[Guillaume Knight]"; + mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; + next; + mes "[Guillaume Knight]"; + mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; + next; + mes "[Guillaume Knight]"; + mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; + mes ""; + mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// Tierra Officer - Guillaume +// ********************************************************************* +bat_room,172,178,5 script Tierra Valley Officer#3 418,{ + mes "[Tierra Officer]"; + if( Bat_Team == 2 ) + { + mes "Get out of here you stinky Croix!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[Tierra Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( Tierra_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",85,94; + end; +} + +// Croix Knight - Tierra +// ********************************************************************* +bat_room,175,121,1 script Croix Knight#2 413,{ + mes "[Croix Knight]"; + mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; + next; + mes "[Croix Knight]"; + mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; + next; + mes "[Croix Knight]"; + mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; + mes ""; + mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// Tierra Officer - Croix +// ********************************************************************* +bat_room,172,121,1 script Tierra Valley Officer#4 414,{ + mes "[Tierra Officer]"; + if( Bat_Team == 1 ) + { + mes "Get out of here you stupid Guillaume!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[Tierra Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( Tierra_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",85,77; + end; +} + +// Guillaune Knight - Flavius +// ********************************************************************* +bat_room,151,178,5 script Guillaume Knight#3 417,{ + mes "[Guillaume Knight]"; + mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; + next; + mes "[Guillaume Knight]"; + mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; + next; + mes "[Guillaume Knight]"; + mes "But they can be removed by destroying the Guardians that protect the enemy army base."; + next; + mes "[Guillaume Knight]"; + mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// Flavius Officerer - Guillaume +// ********************************************************************* +bat_room,148,178,5 script Flavius Officer#1 418,{ + mes "[Flavius Officer]"; + if( Bat_Team == 2 ) + { + mes "Get out of here you stupid Croix!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[Flavius Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( Flavius_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",253,94; + end; +} + +// Croix Knight - Flavius +// ********************************************************************* +bat_room,151,121,1 script Croix Knight#3 413,{ + mes "[Croix Knight]"; + mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; + next; + mes "[Croix Knight]"; + mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; + next; + mes "[Croix Knight]"; + mes "But they can be removed by destroying the Guardians that protect the enemy army base."; + next; + mes "[Croix Knight]"; + mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// Flavius Officerer - Croix +// ********************************************************************* +bat_room,148,121,1 script Flavius Officer#2 414,{ + mes "[Flavius Officer]"; + if( Bat_Team == 1 ) + { + mes "Get out of here you stupid Guillaume!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[Flavius Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( Flavius_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",253,77; + end; +} + +// Guillaune Knight - Flavius +// ********************************************************************* +bat_room,167,178,5 script Guillaume Knight#4 417,{ + mes "[Guillaume Knight]"; + mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; + next; + mes "[Guillaume Knight]"; + mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; + next; + mes "[Guillaume Knight]"; + mes "But they can be removed by destroying the Guardians that protect the enemy army base."; + next; + mes "[Guillaume Knight]"; + mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// Flavius Officerer - Guillaume +// ********************************************************************* +bat_room,164,178,5 script Flavius Officer#3 418,{ + mes "[Flavius Officer]"; + if( Bat_Team == 2 ) + { + mes "Get out of here you stupid Croix!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[Flavius Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( Flavius_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",57,94; + end; +} + +// Croix Knight - Flavius +// ********************************************************************* +bat_room,167,121,1 script Croix Knight#4 413,{ + mes "[Croix Knight]"; + mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; + next; + mes "[Croix Knight]"; + mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; + next; + mes "[Croix Knight]"; + mes "But they can be removed by destroying the Guardians that protect the enemy army base."; + next; + mes "[Croix Knight]"; + mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// Flavius Officerer - Croix +// ********************************************************************* +bat_room,164,121,1 script Flavius Officer#4 414,{ + mes "[Flavius Officer]"; + if( Bat_Team == 1 ) + { + mes "Get out of here you stupid Guillaume!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[Flavius Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( Flavius_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",57,77; + end; +} + +// Guillaume Knight - KvM +// ********************************************************************* +bat_room,143,178,5 script Guillaume Knight#5 417,{ + mes "[Guillaume Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Guillaume Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Guillaume Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officerer - Guillaume +// ********************************************************************* +bat_room,140,178,5 script KVM [80-99] Officer#1 418,{ + mes "[KVM Officer]"; + if( Bat_Team == 2 ) + { + mes "Get out of here you stinky Croix!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[KVM Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( KvM_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 80 to 99."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",253,224; + end; +} + +// Croix Knight - KvM +// ********************************************************************* +bat_room,143,121,1 script Croix Knight#5 413,{ + mes "[Croix Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Croix Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Croix Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officer - Croix +// ********************************************************************* +bat_room,140,121,1 script KVM [80-99] Officer#2 414,{ + mes "[KVM Officer]"; + if( Bat_Team == 1 ) + { + mes "Get out of here you stupid Guillaume!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[KVM Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( KvM_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; + close; + } + if( BaseLevel < 80 ) + { + mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 80 to 99."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",253,208; + end; +} + +// Guillaume Knight - KvM +// ********************************************************************* +bat_room,135,178,5 script Guillaume Knight#6 417,{ + mes "[Guillaume Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Guillaume Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Guillaume Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officerer - Guillaume +// ********************************************************************* +bat_room,132,178,5 script KVM [60-79] Officer#1 418,{ + mes "[KVM Officer]"; + if( Bat_Team == 2 ) + { + mes "Get out of here you stinky Croix!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[KVM Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( KvM_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; + close; + } + if( BaseLevel < 60 || BaseLevel > 79 ) + { + mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 60 to 79."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",225,224; + end; +} + +// Croix Knight - KvM +// ********************************************************************* +bat_room,135,121,1 script Croix Knight#6 413,{ + mes "[Croix Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Croix Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Croix Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officer - Croix +// ********************************************************************* +bat_room,132,121,1 script KVM [60-79] Officer#2 414,{ + mes "[KVM Officer]"; + if( Bat_Team == 1 ) + { + mes "Get out of here you stupid Guillaume!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[KVM Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( KvM_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; + close; + } + if( BaseLevel < 60 || BaseLevel > 79 ) + { + mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 60 to 79."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",225,208; + end; +} + +// Guillaume Knight - KvM +// ********************************************************************* +bat_room,127,178,5 script Guillaume Knight#7 417,{ + mes "[Guillaume Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Guillaume Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Guillaume Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officerer - Guillaume +// ********************************************************************* +bat_room,124,178,5 script KVM [1-59] Officer#1 418,{ + mes "[KVM Officer]"; + if( Bat_Team == 2 ) + { + mes "Get out of here you stinky Croix!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[KVM Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( KvM_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; + close; + } + if( BaseLevel > 59 ) + { + mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 1 to 59."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",197,224; + end; +} + +// Croix Knight - KvM +// ********************************************************************* +bat_room,127,121,1 script Croix Knight#7 413,{ + mes "[Croix Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Croix Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Croix Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officer - Croix +// ********************************************************************* +bat_room,124,121,1 script KVM [1-59] Officer#2 414,{ + mes "[KVM Officer]"; + if( Bat_Team == 1 ) + { + mes "Get out of here you stupid Guillaume!"; + close; + } + + if( Bat_Team == 0 ) + { + mes "Please sign up for an army with Prince Croix or General Guillaume!"; + close; + } + + mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; + next; + if( select("I want to join your army!:End Conversation") == 2 ) + close; + + mes "[KVM Officer]"; + if( BG_Delay_Tick >= gettimetick(2) ) + { + mes "You are a Deserter!!"; + mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; + close; + } + if( KvM_BG_Tick >= gettimetick(2) ) + { + mes "Sorry, you can't join the battle right now."; + mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM."; + close; + } + if( BaseLevel > 59 ) + { + mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 1 to 59."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",197,208; + end; +} + +// Guard Dummy +// ********************************************************************* + +bat_room,161,141,3 script Prince Croix's Aid::bat_aid 415,{ end; } +bat_room,161,139,3 duplicate(bat_aid) Prince Croix's Aid::bat_aid2 415 +bat_room,161,160,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid3 419 +bat_room,161,158,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid4 419 + +// Flags +// ********************************************************************* + +- script Guillaume camp#bat 973,{ end; } +- script Croix camp#bat 974,{ end; } + +// Exit from Registration +// ********************************************************************* +// Flavius bat_b02 +bat_room,57,81,0 warp bat1 2,2,bat_room,154,149 +bat_room,57,90,0 warp bat2 2,2,bat_room,154,149 +// Free BG +bat_room,57,220,0 warp bat3 2,2,bat_room,154,149 +bat_room,57,211,0 warp bat4 2,2,bat_room,154,149 +// Tierra Valley bat_a02 +bat_room,85,81,0 warp bat5 2,2,bat_room,154,149 +bat_room,85,90,0 warp bat6 2,2,bat_room,154,149 +// Tierra Valley bat_a01 +bat_room,85,220,0 warp bat7 2,2,bat_room,154,149 +bat_room,85,211,0 warp bat8 2,2,bat_room,154,149 +// Free BG +bat_room,113,81,0 warp bat9 2,2,bat_room,154,149 +bat_room,113,90,0 warp bat10 2,2,bat_room,154,149 +// Free BG +bat_room,113,220,0 warp bat11 2,2,bat_room,154,149 +bat_room,113,211,0 warp bat12 2,2,bat_room,154,149 +// Free BG +bat_room,141,81,0 warp bat13 2,2,bat_room,154,149 +bat_room,141,90,0 warp bat14 2,2,bat_room,154,149 +// Free BG +bat_room,141,220,0 warp bat15 2,2,bat_room,154,149 +bat_room,141,211,0 warp bat16 2,2,bat_room,154,149 +// Free BG +bat_room,169,81,0 warp bat17 2,2,bat_room,154,149 +bat_room,169,90,0 warp bat18 2,2,bat_room,154,149 +// Free BG +bat_room,169,220,0 warp bat19 2,2,bat_room,154,149 +bat_room,169,211,0 warp bat20 2,2,bat_room,154,149 +// Free BG +bat_room,197,81,0 warp bat21 2,2,bat_room,154,149 +bat_room,197,90,0 warp bat22 2,2,bat_room,154,149 +// KvM bat_c03 +bat_room,197,220,0 warp bat23 2,2,bat_room,154,149 +bat_room,197,211,0 warp bat24 2,2,bat_room,154,149 +// Free BG +bat_room,225,81,0 warp bat25 2,2,bat_room,154,149 +bat_room,225,90,0 warp bat26 2,2,bat_room,154,149 +// KvM bat_c02 +bat_room,225,220,0 warp bat27 2,2,bat_room,154,149 +bat_room,225,211,0 warp bat28 2,2,bat_room,154,149 +// Flavius bat_b01 +bat_room,253,81,0 warp bat29 2,2,bat_room,154,149 +bat_room,253,90,0 warp bat30 2,2,bat_room,154,149 +// KvM bat_c01 +bat_room,253,220,0 warp bat31 2,2,bat_room,154,149 +bat_room,253,211,0 warp bat32 2,2,bat_room,154,149 + +// Badges Repairman +// ********************************************************************* + +bat_room,138,144,5 script Repairman#bg 99,{ + callfunc "repairmain","Repairman"; + end; +} + +// Badges Exchange +// ********************************************************************* + +bat_room,160,150,3 script Erundek 109,{ + mes "[Erundek]"; + mes "Welcome, mighty warrior."; + mes "What can I do for you today ?"; + next; + switch( select("Check the Catalog","Exchange Bravery Badges","Exchange Valor Badges","Exchange Heroism Badges","Hmm, nothing I guess.") ) + { + case 1: + mes "[Erundek]"; + mes "We have many items, so please take a look and purchase deliberately."; + close2; + Readbook 11010,1; + end; + case 5: + mes "[Erundek]"; + mes "As you wish."; + mes "See you later."; + close; + case 2: // Bravery Badges + mes "[Erundek]"; + mes "So you want to exchange ^0000FFBravery Badges^000000 from the Battle of Tierra Valley."; + mes "What kind of item do you want to exchange?"; + next; + deletearray .@Item_DB[0],127; + set .@Badge, 7828; + + switch( select("Weapons:Garment:Footgear:Armor:Accessory") ) + { + case 1: setarray .@Item_DB[0],13036,13411,1425,1632,1634,1543,1924,1978,1574,1824,1183,1380,13305,1279,1739,13108,13172; set .@Value, 100; break; + case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break; + case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break; + case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break; + case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break; + } + + break; + case 3: // Valor Badges + mes "[Erundek]"; + mes "So you want to exchange ^FF0000Valor Badges^000000 from the Battle of Flavius."; + mes "What kind of item do you want to exchange?"; + next; + deletearray .@Item_DB[0],127; + set .@Badge, 7829; + + switch( select("Weapons:Garment:Footgear:Armor:Accessory") ) + { + case 1: setarray .@Item_DB[0],13037,13410,1633,1635,1542,1923,1977,1575,1823,1184,1482,1379,13306,1280,1738,13171,13173,13174; set .@Value, 100; break; + case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break; + case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break; + case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break; + case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break; + } + + break; + case 4: // Heroism Badge + mes "[Erundek]"; + mes "So you want to exchange ^FFA500Heroism Badges^000000 from the Battle of Kriger Von Midgard."; + mes "This shop is not available at the moment."; + close; + } + + mes "[Erundek]"; + mes "What item do you want to exchange?"; + mes "If you are not sure, check the catalog."; + next; + + set .@Menu$, ""; + set .@Count, getarraysize(.@Item_DB); + for( set .@i, 0; .@i < .@Count; set .@i, .@i + 1 ) + set .@Menu$, .@Menu$ + getitemname(.@Item_DB[.@i]) + ":"; + + set .@Item_ID, .@Item_DB[select(.@Menu$) - 1]; + + mes "[Erundek]"; + mes "Would you like to exchange ^FF0000" + .@Value + " " + getitemname(.@Badge) + "^000000 for a ^0000FF" + getitemname(.@Item_ID) + "^000000?"; + next; + mes "Remember, Battleground Reward Items are ^FF0000Character Bound^000000."; + mes "Are you sure you want this item?"; + next; + + if( select("Yes:No") == 2 ) + { + mes "[Erundek]"; + mes "Do you need more time to check the items?"; + close; + } + + if( countitem(.@Badge) < .@Value ) + { + mes "[Erundek]"; + mes "I'm sorry, but you don't have enough badges to exchange."; + close; + } + + delitem .@Badge,.@Value; + getitem .@Item_ID,1; + mes "[Erundek]"; + mes "Thank you for exchanging."; + close; +} diff --git a/npc/battleground/bg_flavius_01.txt b/npc/battleground/bg_flavius_01.txt index dbfea0873..2017fc073 100644 --- a/npc/battleground/bg_flavius_01.txt +++ b/npc/battleground/bg_flavius_01.txt @@ -1,453 +1,453 @@ -// ============================================================================== -// BattleGround System - Flavius 1 -// ============================================================================== - -// Registration NPC's -// ********************************************************************* - -bat_room,253,97,4 script Registration::Fl1R_Guillaume 418,{ - end; -OnInit: - waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnGuillaumeJoin",1; - end; -OnEnterBG: - set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",390,10,"Flavius_BG1::OnGuillaumeQuit",""); - end; -} - -bat_room,253,74,0 script Registration::Fl1R_Croix 414,{ - end; -OnInit: - waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnCroixJoin",1; - end; -OnEnterBG: - set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",10,290,"Flavius_BG1::OnCroixQuit",""); - end; -} - -// Battleground Engine -// ********************************************************************* - -- script Flavius_BG1 -1,{ - end; - -OnInit: - disablenpc "Guillaume Vintenar#fl1"; - disablenpc "Croix Vintenar#fl1"; - disablenpc "Therapist in battle#fl11"; - disablenpc "Therapist in battle#fl12"; - end; - -OnGuillaumeQuit: -OnCroixQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; - end; - -OnGuillaumeJoin: -OnCroixJoin: - if( $@FlaviusBG1 == 0 ) - donpcevent "Flavius_BG1::OnReadyCheck"; - end; - -OnReadyCheck: - if( $@FlaviusBG1 ) - end; - set .@Guillaume, getwaitingroomstate(0,"Fl1R_Guillaume"); - set .@Croix, getwaitingroomstate(0,"Fl1R_Croix"); - - if( .@Guillaume < 10 || .@Croix < 10 ) - { - mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x006400; - end; - } - - // BG Variables - set $@FlaviusBG1, 1; - set $@FlaviusBG1_Victory, 0; - set .Guillaume_Score, 0; - set .Guillaume_Loss, 0; - set .Croix_Score, 0; - set .Croix_Loss, 0; - set .Match, 0; - // Prepare NPC - donpcevent "#gfl1_respawn::OnBGStart"; - donpcevent "#cfl1_respawn::OnBGStart"; - enablenpc "Therapist in battle#fl11"; - enablenpc "Therapist in battle#fl12"; - disablenpc "Guillaume Vintenar#fl1"; - disablenpc "Croix Vintenar#fl1"; - // Build and Warp Teams - donpcevent "Fl1R_Guillaume::OnEnterBG"; - donpcevent "Fl1R_Croix::OnEnterBG"; - announce "Battleground -- Flavius [80-99] has started!",0,0x006400; - initnpctimer; - // Start Match!! - -OnRoundStart: - sleep 2000; - if( $@FlaviusBG1 != 1 ) end; - - areapercentheal "bat_b01",382,2,397,17,100,100; - areapercentheal "bat_b01",2,282,17,297,100,100; - bg_warp $@FlaviusBG1_id1,"bat_b01",311,224; - bg_warp $@FlaviusBG1_id2,"bat_b01",87,75; - - sleep 2000; - if( $@FlaviusBG1 != 1 ) end; - - set .Match, .Match + 1; - // Crystal Spawn - set .Guillaume_Crystal, bg_monster($@FlaviusBG1_id1,"bat_b01",328,150,"Crystal Guillaume",1914,"Flavius_BG1::OnGuillaumeBreak"); - setwall "bat_b01",327,149,2,6,0,"gui_wall1-1"; - setwall "bat_b01",329,149,2,0,0,"gui_wall1-2"; - setwall "bat_b01",329,151,2,2,0,"gui_wall1-3"; - setwall "bat_b01",327,151,2,4,0,"gui_wall1-4"; - - set .Croix_Crystal, bg_monster($@FlaviusBG1_id2,"bat_b01",62,150,"Crystal Croix",1915,"Flavius_BG1::OnCroixBreak"); - setwall "bat_b01",61,149,2,6,0,"cro_wall1-1"; - setwall "bat_b01",63,149,2,0,0,"cro_wall1-2"; - setwall "bat_b01",63,151,2,2,0,"cro_wall1-3"; - setwall "bat_b01",61,151,2,4,0,"cro_wall1-4"; - - // Guardian Spawns - bg_monster $@FlaviusBG1_id1,"bat_b01",328,160,"Guillaume Guardian",1949,"Flavius_BG1::OnGuiGuardian"; - bg_monster $@FlaviusBG1_id1,"bat_b01",328,140,"Guillaume Guardian",1950,"Flavius_BG1::OnGuiGuardian"; - set .Guillaume_Guardian, 2; - bg_monster $@FlaviusBG1_id2,"bat_b01",62,160,"Croix Guardian",1949,"Flavius_BG1::OnCroGuardian"; - bg_monster $@FlaviusBG1_id2,"bat_b01",61,140,"Croix Guardian",1950,"Flavius_BG1::OnCroGuardian"; - set .Croix_Guardian, 2; - // Announces - mapannounce "bat_b01","The Battle of Flavius [ " + .Match + " ] Round has begun!!",1,0x006400; - end; - -OnRoundStop: - // Remove Monsters - killmonster "bat_b01","Flavius_BG1::OnGuiGuardian"; - killmonster "bat_b01","Flavius_BG1::OnCroGuardian"; - delwall "gui_wall1-1"; - delwall "gui_wall1-2"; - delwall "gui_wall1-3"; - delwall "gui_wall1-4"; - killmonster "bat_b01","Flavius_BG1::OnGuillaumeBreak"; - delwall "cro_wall1-1"; - delwall "cro_wall1-2"; - delwall "cro_wall1-3"; - delwall "cro_wall1-4"; - killmonster "bat_b01","Flavius_BG1::OnCroixBreak"; - end; - -OnGuiGuardian: - if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 ) - { - delwall "gui_wall1-1"; - delwall "gui_wall1-2"; - delwall "gui_wall1-3"; - delwall "gui_wall1-4"; - mapannounce "bat_b01","The Guillaume Crystal is vulnerable to attack!",1,0x0000FF; - } - end; - -OnCroGuardian: - if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 ) - { - delwall "cro_wall1-1"; - delwall "cro_wall1-2"; - delwall "cro_wall1-3"; - delwall "cro_wall1-4"; - mapannounce "bat_b01","The Croix Crystal is vulnerable to attack!",1,0xFF0000; - } - end; - -OnGuillaumeBreak: - donpcevent "Flavius_BG1::OnRoundStop"; - set .Guillaume_Loss, .Guillaume_Loss + 1; - if( set(.Croix_Score, .Croix_Score + 1) < 2 ) - { - bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; - mapannounce "bat_b01","The Guillaume Crystal has been destroyed!",1,0x0000FF; - donpcevent "Flavius_BG1::OnRoundStart"; - } - else - { - bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; - mapannounce "bat_b01","The Croix army has won the Battle of Flavius!",1,0xFF0000; - set $@FlaviusBG1_Victory, 2; - donpcevent "Flavius_BG1::OnMatchEnd"; - } - end; - -OnCroixBreak: - donpcevent "Flavius_BG1::OnRoundStop"; - set .Croix_Loss, .Croix_Loss + 1; - if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 ) - { - bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; - mapannounce "bat_b01","The Croix Crystal has been destroyed!",1,0xFF0000; - donpcevent "Flavius_BG1::OnRoundStart"; - } - else - { - bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; - mapannounce "bat_b01","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; - set $@FlaviusBG1_Victory, 1; - donpcevent "Flavius_BG1::OnMatchEnd"; - } - end; - -OnTimer2400000: - mapannounce "bat_b01","Battle of Flavius will ends in 5 minutes",1,0x006400; - end; -OnTimer2640000: - mapannounce "bat_b01","Battle of Flavius will ends in 1 minute",1,0x006400; - end; - -OnTimer2700000: - if( .Croix_Score > .Guillaume_Score ) - { - mapannounce "bat_b01","The Croix army has won the Battle of Flavius!",1,0xFF0000; - set $@FlaviusBG1_Victory, 2; - } - else if( .Croix_Score < .Guillaume_Score ) - { - mapannounce "bat_b01","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; - set $@FlaviusBG1_Victory, 1; - } - else - { - mapannounce "bat_b01","The Battle of Flavius is over. The time is out, this is a Tie",1,0x006400; - set $@FlaviusBG1_Victory, 3; - } - -OnMatchEnd: - set $@FlaviusBG1, 2; - stopnpctimer; - donpcevent "#gfl1_respawn::OnBGStop"; - donpcevent "#cfl1_respawn::OnBGStop"; - disablenpc "Therapist in battle#fl11"; - disablenpc "Therapist in battle#fl12"; - enablenpc "Guillaume Vintenar#fl1"; - enablenpc "Croix Vintenar#fl1"; - sleep 2000; - bg_warp $@FlaviusBG1_id1,"bat_b01",390,10; - bg_warp $@FlaviusBG1_id2,"bat_b01",10,290; - sleep 3000; - mapannounce "bat_b01","Battle of Flavius will close in 1 minute!",1,0x006400; - initnpctimer; - end; - -OnTimer30000: - if( $@FlaviusBG1 == 2 ) - mapannounce "bat_b01","Battle of Flavius will close in 30 seconds!",1,0x006400; - end; -OnTimer50000: - if( $@FlaviusBG1 == 2 ) - mapannounce "bat_b01","Battle of Flavius will close in 10 seconds!",1,0x006400; - end; - -OnTimer60000: - if( $@FlaviusBG1 != 2 ) - end; -OnReset: - stopnpctimer; - donpcevent "Flavius_BG1::OnRoundStop"; - set .Guillaume_Score, 0; - set .Guillaume_Crystal, 0; - set .Guillaume_Loss, 0; - set .Croix_Score, 0; - set .Croix_Crystal, 0; - set .Croix_Loss, 0; - set .Match, 0; - set $@FlaviusBG1_Victory, 0; - // NPC's - disablenpc "Guillaume Vintenar#fl1"; - disablenpc "Croix Vintenar#fl1"; - disablenpc "Therapist in battle#fl11"; - disablenpc "Therapist in battle#fl12"; - - if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; } - if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; } - sleep 1000; - mapwarp "bat_b01","bat_room",155,150; - sleep 2000; - maprespawnguildid "bat_b01",0,3; // Just in case someone else - sleep 2000; - bg_updatescore "bat_b01",0,0; - set $@FlaviusBG1, 0; - donpcevent "Flavius_BG1::OnReadyCheck"; - end; -} - -// Battleground rewards -// ********************************************************************* - -bat_b01,390,13,5 script Guillaume Vintenar#fl1 419,{ - if( $@FlaviusBG1_Victory ) - { - if( $@FlaviusBG1_Victory == Bat_Team ) - { // Victory - mes "[Swandery]"; - mes "Blessed Guillaume!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - set .@Reward, 9; - } - else - { // - mes "[Swandery]"; - mes "You lost, but you're dedicated to this battle."; - mes "This is a reward for your great dedication by Guillaume Marollo!"; - mes "Just take this defeat a lesson, and later you would definitely learn."; - close2; - set .@Reward, 3; - } - - set Flavius_BG_Tick, gettimetick(2) + 300; - getitem 7829, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -bat_b01,10,293,5 script Croix Vintenar#fl1 415,{ - if( $@FlaviusBG1_Victory ) - { - if( $@FlaviusBG1_Victory == Bat_Team ) - { // Victory - mes "[Swandery]"; - mes "Blessed Croax!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - set .@Reward, 9; - } - else - { // - mes "[Swandery]"; - mes "Oh, " + strcharinfo(0) + ". Don't be sad."; - mes "Even though we didn't win, we did our best."; - mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; - close2; - set .@Reward, 3; - } - - set Flavius_BG_Tick, gettimetick(2) + 300; - getitem 7829, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -// Battleground Therapist -// ********************************************************************* - -bat_b01,390,13,5 script Therapist in battle#fl12 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -bat_b01,10,293,5 script Therapist in battle#fl11 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -// Battleground Respawn -// ********************************************************************* - -bat_b01,390,10,0 script #gfl1_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer24000: - misceffect 83; - end; - -OnTimer25000: - areapercentheal "bat_b01",382,2,397,17,100,100; - areawarp "bat_b01",382,2,397,17,"bat_b01",311,224; - initnpctimer; - end; -} - -bat_b01,10,290,0 script #cfl1_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer24000: - misceffect 83; - end; - -OnTimer25000: - areapercentheal "bat_b01",2,282,17,297,100,100; - areawarp "bat_b01",2,282,17,297,"bat_b01",87,75; - initnpctimer; - end; -} - -// Flags -// ********************************************************************* - -bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat1 973 -bat_b01,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat2 973 -bat_b01,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat3 973 -bat_b01,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat4 973 -bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat5 973 -bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat6 973 -bat_b01,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat7 973 -bat_b01,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat8 973 -bat_b01,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat9 973 -bat_b01,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat19 973 -bat_b01,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat20 973 -bat_b01,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat21 973 -bat_b01,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat22 973 - -bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat1 974 -bat_b01,96,68,1 duplicate(Croix camp#bat) Croix camp#bat2 974 -bat_b01,79,81,1 duplicate(Croix camp#bat) Croix camp#bat3 974 -bat_b01,79,68,1 duplicate(Croix camp#bat) Croix camp#bat4 974 -bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat5 974 -bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat6 974 -bat_b01,59,164,1 duplicate(Croix camp#bat) Croix camp#bat7 974 -bat_b01,59,137,1 duplicate(Croix camp#bat) Croix camp#bat8 974 -bat_b01,10,296,1 duplicate(Croix camp#bat) Croix camp#bat9 974 -bat_b01,110,162,1 duplicate(Croix camp#bat) Croix camp#bat18 974 -bat_b01,110,137,1 duplicate(Croix camp#bat) Croix camp#bat19 974 -bat_b01,152,120,1 duplicate(Croix camp#bat) Croix camp#bat20 974 -bat_b01,158,114,1 duplicate(Croix camp#bat) Croix camp#bat21 974 - -// MapFlags -// ********************************************************************* - -bat_b01 mapflag battleground 2 -bat_b01 mapflag nomemo -bat_b01 mapflag nosave SavePoint -bat_b01 mapflag noteleport -bat_b01 mapflag nowarp -bat_b01 mapflag nowarpto -bat_b01 mapflag noreturn -bat_b01 mapflag nobranch -bat_b01 mapflag nopenalty +// ============================================================================== +// BattleGround System - Flavius 1 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,253,97,4 script Registration::Fl1R_Guillaume 418,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnGuillaumeJoin",1; + end; +OnEnterBG: + set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",390,10,"Flavius_BG1::OnGuillaumeQuit",""); + end; +} + +bat_room,253,74,0 script Registration::Fl1R_Croix 414,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnCroixJoin",1; + end; +OnEnterBG: + set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",10,290,"Flavius_BG1::OnCroixQuit",""); + end; +} + +// Battleground Engine +// ********************************************************************* + +- script Flavius_BG1 -1,{ + end; + +OnInit: + disablenpc "Guillaume Vintenar#fl1"; + disablenpc "Croix Vintenar#fl1"; + disablenpc "Therapist in battle#fl11"; + disablenpc "Therapist in battle#fl12"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + set BG_Delay_Tick, gettimetick(2) + 1200; + end; + +OnGuillaumeJoin: +OnCroixJoin: + if( $@FlaviusBG1 == 0 ) + donpcevent "Flavius_BG1::OnReadyCheck"; + end; + +OnReadyCheck: + if( $@FlaviusBG1 ) + end; + set .@Guillaume, getwaitingroomstate(0,"Fl1R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"Fl1R_Croix"); + + if( .@Guillaume < 10 || .@Croix < 10 ) + { + mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x006400; + end; + } + + // BG Variables + set $@FlaviusBG1, 1; + set $@FlaviusBG1_Victory, 0; + set .Guillaume_Score, 0; + set .Guillaume_Loss, 0; + set .Croix_Score, 0; + set .Croix_Loss, 0; + set .Match, 0; + // Prepare NPC + donpcevent "#gfl1_respawn::OnBGStart"; + donpcevent "#cfl1_respawn::OnBGStart"; + enablenpc "Therapist in battle#fl11"; + enablenpc "Therapist in battle#fl12"; + disablenpc "Guillaume Vintenar#fl1"; + disablenpc "Croix Vintenar#fl1"; + // Build and Warp Teams + donpcevent "Fl1R_Guillaume::OnEnterBG"; + donpcevent "Fl1R_Croix::OnEnterBG"; + announce "Battleground -- Flavius [80-99] has started!",0,0x006400; + initnpctimer; + // Start Match!! + +OnRoundStart: + sleep 2000; + if( $@FlaviusBG1 != 1 ) end; + + areapercentheal "bat_b01",382,2,397,17,100,100; + areapercentheal "bat_b01",2,282,17,297,100,100; + bg_warp $@FlaviusBG1_id1,"bat_b01",311,224; + bg_warp $@FlaviusBG1_id2,"bat_b01",87,75; + + sleep 2000; + if( $@FlaviusBG1 != 1 ) end; + + set .Match, .Match + 1; + // Crystal Spawn + set .Guillaume_Crystal, bg_monster($@FlaviusBG1_id1,"bat_b01",328,150,"Crystal Guillaume",1914,"Flavius_BG1::OnGuillaumeBreak"); + setwall "bat_b01",327,149,2,6,0,"gui_wall1-1"; + setwall "bat_b01",329,149,2,0,0,"gui_wall1-2"; + setwall "bat_b01",329,151,2,2,0,"gui_wall1-3"; + setwall "bat_b01",327,151,2,4,0,"gui_wall1-4"; + + set .Croix_Crystal, bg_monster($@FlaviusBG1_id2,"bat_b01",62,150,"Crystal Croix",1915,"Flavius_BG1::OnCroixBreak"); + setwall "bat_b01",61,149,2,6,0,"cro_wall1-1"; + setwall "bat_b01",63,149,2,0,0,"cro_wall1-2"; + setwall "bat_b01",63,151,2,2,0,"cro_wall1-3"; + setwall "bat_b01",61,151,2,4,0,"cro_wall1-4"; + + // Guardian Spawns + bg_monster $@FlaviusBG1_id1,"bat_b01",328,160,"Guillaume Guardian",1949,"Flavius_BG1::OnGuiGuardian"; + bg_monster $@FlaviusBG1_id1,"bat_b01",328,140,"Guillaume Guardian",1950,"Flavius_BG1::OnGuiGuardian"; + set .Guillaume_Guardian, 2; + bg_monster $@FlaviusBG1_id2,"bat_b01",62,160,"Croix Guardian",1949,"Flavius_BG1::OnCroGuardian"; + bg_monster $@FlaviusBG1_id2,"bat_b01",61,140,"Croix Guardian",1950,"Flavius_BG1::OnCroGuardian"; + set .Croix_Guardian, 2; + // Announces + mapannounce "bat_b01","The Battle of Flavius [ " + .Match + " ] Round has begun!!",1,0x006400; + end; + +OnRoundStop: + // Remove Monsters + killmonster "bat_b01","Flavius_BG1::OnGuiGuardian"; + killmonster "bat_b01","Flavius_BG1::OnCroGuardian"; + delwall "gui_wall1-1"; + delwall "gui_wall1-2"; + delwall "gui_wall1-3"; + delwall "gui_wall1-4"; + killmonster "bat_b01","Flavius_BG1::OnGuillaumeBreak"; + delwall "cro_wall1-1"; + delwall "cro_wall1-2"; + delwall "cro_wall1-3"; + delwall "cro_wall1-4"; + killmonster "bat_b01","Flavius_BG1::OnCroixBreak"; + end; + +OnGuiGuardian: + if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 ) + { + delwall "gui_wall1-1"; + delwall "gui_wall1-2"; + delwall "gui_wall1-3"; + delwall "gui_wall1-4"; + mapannounce "bat_b01","The Guillaume Crystal is vulnerable to attack!",1,0x0000FF; + } + end; + +OnCroGuardian: + if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 ) + { + delwall "cro_wall1-1"; + delwall "cro_wall1-2"; + delwall "cro_wall1-3"; + delwall "cro_wall1-4"; + mapannounce "bat_b01","The Croix Crystal is vulnerable to attack!",1,0xFF0000; + } + end; + +OnGuillaumeBreak: + donpcevent "Flavius_BG1::OnRoundStop"; + set .Guillaume_Loss, .Guillaume_Loss + 1; + if( set(.Croix_Score, .Croix_Score + 1) < 2 ) + { + bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b01","The Guillaume Crystal has been destroyed!",1,0x0000FF; + donpcevent "Flavius_BG1::OnRoundStart"; + } + else + { + bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b01","The Croix army has won the Battle of Flavius!",1,0xFF0000; + set $@FlaviusBG1_Victory, 2; + donpcevent "Flavius_BG1::OnMatchEnd"; + } + end; + +OnCroixBreak: + donpcevent "Flavius_BG1::OnRoundStop"; + set .Croix_Loss, .Croix_Loss + 1; + if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 ) + { + bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b01","The Croix Crystal has been destroyed!",1,0xFF0000; + donpcevent "Flavius_BG1::OnRoundStart"; + } + else + { + bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b01","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; + set $@FlaviusBG1_Victory, 1; + donpcevent "Flavius_BG1::OnMatchEnd"; + } + end; + +OnTimer2400000: + mapannounce "bat_b01","Battle of Flavius will ends in 5 minutes",1,0x006400; + end; +OnTimer2640000: + mapannounce "bat_b01","Battle of Flavius will ends in 1 minute",1,0x006400; + end; + +OnTimer2700000: + if( .Croix_Score > .Guillaume_Score ) + { + mapannounce "bat_b01","The Croix army has won the Battle of Flavius!",1,0xFF0000; + set $@FlaviusBG1_Victory, 2; + } + else if( .Croix_Score < .Guillaume_Score ) + { + mapannounce "bat_b01","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; + set $@FlaviusBG1_Victory, 1; + } + else + { + mapannounce "bat_b01","The Battle of Flavius is over. The time is out, this is a Tie",1,0x006400; + set $@FlaviusBG1_Victory, 3; + } + +OnMatchEnd: + set $@FlaviusBG1, 2; + stopnpctimer; + donpcevent "#gfl1_respawn::OnBGStop"; + donpcevent "#cfl1_respawn::OnBGStop"; + disablenpc "Therapist in battle#fl11"; + disablenpc "Therapist in battle#fl12"; + enablenpc "Guillaume Vintenar#fl1"; + enablenpc "Croix Vintenar#fl1"; + sleep 2000; + bg_warp $@FlaviusBG1_id1,"bat_b01",390,10; + bg_warp $@FlaviusBG1_id2,"bat_b01",10,290; + sleep 3000; + mapannounce "bat_b01","Battle of Flavius will close in 1 minute!",1,0x006400; + initnpctimer; + end; + +OnTimer30000: + if( $@FlaviusBG1 == 2 ) + mapannounce "bat_b01","Battle of Flavius will close in 30 seconds!",1,0x006400; + end; +OnTimer50000: + if( $@FlaviusBG1 == 2 ) + mapannounce "bat_b01","Battle of Flavius will close in 10 seconds!",1,0x006400; + end; + +OnTimer60000: + if( $@FlaviusBG1 != 2 ) + end; +OnReset: + stopnpctimer; + donpcevent "Flavius_BG1::OnRoundStop"; + set .Guillaume_Score, 0; + set .Guillaume_Crystal, 0; + set .Guillaume_Loss, 0; + set .Croix_Score, 0; + set .Croix_Crystal, 0; + set .Croix_Loss, 0; + set .Match, 0; + set $@FlaviusBG1_Victory, 0; + // NPC's + disablenpc "Guillaume Vintenar#fl1"; + disablenpc "Croix Vintenar#fl1"; + disablenpc "Therapist in battle#fl11"; + disablenpc "Therapist in battle#fl12"; + + if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; } + if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; } + sleep 1000; + mapwarp "bat_b01","bat_room",155,150; + sleep 2000; + maprespawnguildid "bat_b01",0,3; // Just in case someone else + sleep 2000; + bg_updatescore "bat_b01",0,0; + set $@FlaviusBG1, 0; + donpcevent "Flavius_BG1::OnReadyCheck"; + end; +} + +// Battleground rewards +// ********************************************************************* + +bat_b01,390,13,5 script Guillaume Vintenar#fl1 419,{ + if( $@FlaviusBG1_Victory ) + { + if( $@FlaviusBG1_Victory == Bat_Team ) + { // Victory + mes "[Swandery]"; + mes "Blessed Guillaume!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + set .@Reward, 9; + } + else + { // + mes "[Swandery]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat a lesson, and later you would definitely learn."; + close2; + set .@Reward, 3; + } + + set Flavius_BG_Tick, gettimetick(2) + 300; + getitem 7829, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +bat_b01,10,293,5 script Croix Vintenar#fl1 415,{ + if( $@FlaviusBG1_Victory ) + { + if( $@FlaviusBG1_Victory == Bat_Team ) + { // Victory + mes "[Swandery]"; + mes "Blessed Croax!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + set .@Reward, 9; + } + else + { // + mes "[Swandery]"; + mes "Oh, " + strcharinfo(0) + ". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; + close2; + set .@Reward, 3; + } + + set Flavius_BG_Tick, gettimetick(2) + 300; + getitem 7829, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +// Battleground Therapist +// ********************************************************************* + +bat_b01,390,13,5 script Therapist in battle#fl12 95,{ + mes "[Therapist in battle]"; + mes "Just close your eyes, and take a deep breathe."; + mes "You can be free from pain."; + specialeffect2 312; + close; +} + +bat_b01,10,293,5 script Therapist in battle#fl11 95,{ + mes "[Therapist in battle]"; + mes "Just close your eyes, and take a deep breathe."; + mes "You can be free from pain."; + specialeffect2 312; + close; +} + +// Battleground Respawn +// ********************************************************************* + +bat_b01,390,10,0 script #gfl1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_b01",382,2,397,17,100,100; + areawarp "bat_b01",382,2,397,17,"bat_b01",311,224; + initnpctimer; + end; +} + +bat_b01,10,290,0 script #cfl1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_b01",2,282,17,297,100,100; + areawarp "bat_b01",2,282,17,297,"bat_b01",87,75; + initnpctimer; + end; +} + +// Flags +// ********************************************************************* + +bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat1 973 +bat_b01,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat2 973 +bat_b01,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat3 973 +bat_b01,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat4 973 +bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat5 973 +bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat6 973 +bat_b01,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat7 973 +bat_b01,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat8 973 +bat_b01,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat9 973 +bat_b01,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat19 973 +bat_b01,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat20 973 +bat_b01,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat21 973 +bat_b01,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat22 973 + +bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat1 974 +bat_b01,96,68,1 duplicate(Croix camp#bat) Croix camp#bat2 974 +bat_b01,79,81,1 duplicate(Croix camp#bat) Croix camp#bat3 974 +bat_b01,79,68,1 duplicate(Croix camp#bat) Croix camp#bat4 974 +bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat5 974 +bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat6 974 +bat_b01,59,164,1 duplicate(Croix camp#bat) Croix camp#bat7 974 +bat_b01,59,137,1 duplicate(Croix camp#bat) Croix camp#bat8 974 +bat_b01,10,296,1 duplicate(Croix camp#bat) Croix camp#bat9 974 +bat_b01,110,162,1 duplicate(Croix camp#bat) Croix camp#bat18 974 +bat_b01,110,137,1 duplicate(Croix camp#bat) Croix camp#bat19 974 +bat_b01,152,120,1 duplicate(Croix camp#bat) Croix camp#bat20 974 +bat_b01,158,114,1 duplicate(Croix camp#bat) Croix camp#bat21 974 + +// MapFlags +// ********************************************************************* + +bat_b01 mapflag battleground 2 +bat_b01 mapflag nomemo +bat_b01 mapflag nosave SavePoint +bat_b01 mapflag noteleport +bat_b01 mapflag nowarp +bat_b01 mapflag nowarpto +bat_b01 mapflag noreturn +bat_b01 mapflag nobranch +bat_b01 mapflag nopenalty diff --git a/npc/battleground/bg_flavius_02.txt b/npc/battleground/bg_flavius_02.txt index 57cb79246..9f8b46c00 100644 --- a/npc/battleground/bg_flavius_02.txt +++ b/npc/battleground/bg_flavius_02.txt @@ -1,453 +1,453 @@ -// ============================================================================== -// BattleGround System - Flavius 2 -// ============================================================================== - -// Registration NPC's -// ********************************************************************* - -bat_room,57,97,4 script Registration::Fl2R_Guillaume 418,{ - end; -OnInit: - waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnGuillaumeJoin",1; - end; -OnEnterBG: - set $@FlaviusBG2_id1, waitingroom2bg("bat_b02",390,10,"Flavius_BG2::OnGuillaumeQuit",""); - end; -} - -bat_room,57,74,0 script Registration::Fl2R_Croix 414,{ - end; -OnInit: - waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnCroixJoin",1; - end; -OnEnterBG: - set $@FlaviusBG2_id2, waitingroom2bg("bat_b02",10,290,"Flavius_BG2::OnCroixQuit",""); - end; -} - -// Battleground Engine -// ********************************************************************* - -- script Flavius_BG2 -1,{ - end; - -OnInit: - disablenpc "Guillaume Vintenar#fl2"; - disablenpc "Croix Vintenar#fl2"; - disablenpc "Therapist in battle#fl21"; - disablenpc "Therapist in battle#fl22"; - end; - -OnGuillaumeQuit: -OnCroixQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; - end; - -OnGuillaumeJoin: -OnCroixJoin: - if( $@FlaviusBG2 == 0 ) - donpcevent "Flavius_BG2::OnReadyCheck"; - end; - -OnReadyCheck: - if( $@FlaviusBG2 ) - end; - set .@Guillaume, getwaitingroomstate(0,"Fl2R_Guillaume"); - set .@Croix, getwaitingroomstate(0,"Fl2R_Croix"); - - if( .@Guillaume < 10 || .@Croix < 10 ) - { - mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x808000; - end; - } - - // BG Variables - set $@FlaviusBG2, 1; - set $@FlaviusBG2_Victory, 0; - set .Guillaume_Score, 0; - set .Guillaume_Loss, 0; - set .Croix_Score, 0; - set .Croix_Loss, 0; - set .Match, 0; - // Prepare NPC - donpcevent "#gfl2_respawn::OnBGStart"; - donpcevent "#cfl2_respawn::OnBGStart"; - enablenpc "Therapist in battle#fl21"; - enablenpc "Therapist in battle#fl22"; - disablenpc "Guillaume Vintenar#fl2"; - disablenpc "Croix Vintenar#fl2"; - // Build and Warp Teams - donpcevent "Fl2R_Guillaume::OnEnterBG"; - donpcevent "Fl2R_Croix::OnEnterBG"; - announce "Battleground -- Flavius [80-99] has started!",0,0x808000; - initnpctimer; - // Start Match!! - -OnRoundStart: - sleep 2000; - if( $@FlaviusBG2 != 1 ) end; - - areapercentheal "bat_b02",382,2,397,17,100,100; - areapercentheal "bat_b02",2,282,17,297,100,100; - bg_warp $@FlaviusBG2_id1,"bat_b02",311,224; - bg_warp $@FlaviusBG2_id2,"bat_b02",87,75; - - sleep 2000; - if( $@FlaviusBG2 != 1 ) end; - - set .Match, .Match + 1; - // Crystal Spawn - set .Guillaume_Crystal, bg_monster($@FlaviusBG2_id1,"bat_b02",328,150,"Crystal Guillaume",1914,"Flavius_BG2::OnGuillaumeBreak"); - setwall "bat_b02",327,149,2,6,0,"gui_wall2-1"; - setwall "bat_b02",329,149,2,0,0,"gui_wall2-2"; - setwall "bat_b02",329,151,2,2,0,"gui_wall2-3"; - setwall "bat_b02",327,151,2,4,0,"gui_wall2-4"; - - set .Croix_Crystal, bg_monster($@FlaviusBG2_id2,"bat_b02",62,150,"Crystal Croix",1915,"Flavius_BG2::OnCroixBreak"); - setwall "bat_b02",61,149,2,6,0,"cro_wall2-1"; - setwall "bat_b02",63,149,2,0,0,"cro_wall2-2"; - setwall "bat_b02",63,151,2,2,0,"cro_wall2-3"; - setwall "bat_b02",61,151,2,4,0,"cro_wall2-4"; - - // Guardian Spawns - bg_monster $@FlaviusBG2_id1,"bat_b02",328,160,"Guillaume Guardian",1949,"Flavius_BG2::OnGuiGuardian"; - bg_monster $@FlaviusBG2_id1,"bat_b02",328,140,"Guillaume Guardian",1950,"Flavius_BG2::OnGuiGuardian"; - set .Guillaume_Guardian, 2; - bg_monster $@FlaviusBG2_id2,"bat_b02",62,160,"Croix Guardian",1949,"Flavius_BG2::OnCroGuardian"; - bg_monster $@FlaviusBG2_id2,"bat_b02",61,140,"Croix Guardian",1950,"Flavius_BG2::OnCroGuardian"; - set .Croix_Guardian, 2; - // Announces - mapannounce "bat_b02","The Battle of Flavius [ " + .Match + " ] Round has begun!!",1,0x808000; - end; - -OnRoundStop: - // Remove Monsters - killmonster "bat_b02","Flavius_BG2::OnGuiGuardian"; - killmonster "bat_b02","Flavius_BG2::OnCroGuardian"; - delwall "gui_wall2-1"; - delwall "gui_wall2-2"; - delwall "gui_wall2-3"; - delwall "gui_wall2-4"; - killmonster "bat_b02","Flavius_BG2::OnGuillaumeBreak"; - delwall "cro_wall2-1"; - delwall "cro_wall2-2"; - delwall "cro_wall2-3"; - delwall "cro_wall2-4"; - killmonster "bat_b02","Flavius_BG2::OnCroixBreak"; - end; - -OnGuiGuardian: - if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 ) - { - delwall "gui_wall2-1"; - delwall "gui_wall2-2"; - delwall "gui_wall2-3"; - delwall "gui_wall2-4"; - mapannounce "bat_b02","The Guillaume Crystal is vulnerable to attack!",1,0x0000FF; - } - end; - -OnCroGuardian: - if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 ) - { - delwall "cro_wall2-1"; - delwall "cro_wall2-2"; - delwall "cro_wall2-3"; - delwall "cro_wall2-4"; - mapannounce "bat_b02","The Croix Crystal is vulnerable to attack!",1,0xFF0000; - } - end; - -OnGuillaumeBreak: - donpcevent "Flavius_BG2::OnRoundStop"; - set .Guillaume_Loss, .Guillaume_Loss + 1; - if( set(.Croix_Score, .Croix_Score + 1) < 2 ) - { - bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; - mapannounce "bat_b02","The Guillaume Crystal has been destroyed!",1,0x0000FF; - donpcevent "Flavius_BG2::OnRoundStart"; - } - else - { - bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; - mapannounce "bat_b02","The Croix army has won the Battle of Flavius!",1,0xFF0000; - set $@FlaviusBG2_Victory, 2; - donpcevent "Flavius_BG2::OnMatchEnd"; - } - end; - -OnCroixBreak: - donpcevent "Flavius_BG2::OnRoundStop"; - set .Croix_Loss, .Croix_Loss + 1; - if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 ) - { - bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; - mapannounce "bat_b02","The Croix Crystal has been destroyed!",1,0xFF0000; - donpcevent "Flavius_BG2::OnRoundStart"; - } - else - { - bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; - mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; - set $@FlaviusBG2_Victory, 1; - donpcevent "Flavius_BG2::OnMatchEnd"; - } - end; - -OnTimer2400000: - mapannounce "bat_b02","Battle of Flavius will ends in 5 minutes",1,0x808000; - end; -OnTimer2640000: - mapannounce "bat_b02","Battle of Flavius will ends in 1 minute",1,0x808000; - end; - -OnTimer2700000: - if( .Croix_Score > .Guillaume_Score ) - { - mapannounce "bat_b02","The Croix army has won the Battle of Flavius!",1,0xFF0000; - set $@FlaviusBG2_Victory, 2; - } - else if( .Croix_Score < .Guillaume_Score ) - { - mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; - set $@FlaviusBG2_Victory, 1; - } - else - { - mapannounce "bat_b02","The Battle of Flavius is over. The time is out, this is a Tie",1,0x808000; - set $@FlaviusBG2_Victory, 3; - } - -OnMatchEnd: - set $@FlaviusBG2, 2; - stopnpctimer; - donpcevent "#gfl2_respawn::OnBGStop"; - donpcevent "#cfl2_respawn::OnBGStop"; - disablenpc "Therapist in battle#fl21"; - disablenpc "Therapist in battle#fl22"; - enablenpc "Guillaume Vintenar#fl2"; - enablenpc "Croix Vintenar#fl2"; - sleep 2000; - bg_warp $@FlaviusBG2_id1,"bat_b02",390,10; - bg_warp $@FlaviusBG2_id2,"bat_b02",10,290; - sleep 3000; - mapannounce "bat_b02","Battle of Flavius will close in 1 minute!",1,0x808000; - initnpctimer; - end; - -OnTimer30000: - if( $@FlaviusBG2 == 2 ) - mapannounce "bat_b02","Battle of Flavius will close in 30 seconds!",1,0x808000; - end; -OnTimer50000: - if( $@FlaviusBG2 == 2 ) - mapannounce "bat_b02","Battle of Flavius will close in 10 seconds!",1,0x808000; - end; - -OnTimer60000: - if( $@FlaviusBG2 != 2 ) - end; -OnReset: - stopnpctimer; - donpcevent "Flavius_BG2::OnRoundStop"; - set .Guillaume_Score, 0; - set .Guillaume_Crystal, 0; - set .Guillaume_Loss, 0; - set .Croix_Score, 0; - set .Croix_Crystal, 0; - set .Croix_Loss, 0; - set .Match, 0; - set $@FlaviusBG2_Victory, 0; - // NPC's - disablenpc "Guillaume Vintenar#fl2"; - disablenpc "Croix Vintenar#fl2"; - disablenpc "Therapist in battle#fl21"; - disablenpc "Therapist in battle#fl22"; - - if( $@FlaviusBG2_id1 ) { bg_destroy $@FlaviusBG2_id1; set $@FlaviusBG2_id1, 0; } - if( $@FlaviusBG2_id2 ) { bg_destroy $@FlaviusBG2_id2; set $@FlaviusBG2_id2, 0; } - sleep 1000; - mapwarp "bat_b02","bat_room",155,150; - sleep 2000; - maprespawnguildid "bat_b02",0,3; // Just in case someone else - sleep 2000; - bg_updatescore "bat_b02",0,0; - set $@FlaviusBG2, 0; - donpcevent "Flavius_BG2::OnReadyCheck"; - end; -} - -// Battleground rewards -// ********************************************************************* - -bat_b02,390,13,5 script Guillaume Vintenar#fl2 419,{ - if( $@FlaviusBG2_Victory ) - { - if( $@FlaviusBG2_Victory == Bat_Team ) - { // Victory - mes "[Swandery]"; - mes "Blessed Guillaume!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - set .@Reward, 9; - } - else - { // - mes "[Swandery]"; - mes "You lost, but you're dedicated to this battle."; - mes "This is a reward for your great dedication by Guillaume Marollo!"; - mes "Just take this defeat a lesson, and later you would definitely learn."; - close2; - set .@Reward, 3; - } - - set Flavius_BG_Tick, gettimetick(2) + 300; - getitem 7829, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -bat_b02,10,293,5 script Croix Vintenar#fl2 415,{ - if( $@FlaviusBG2_Victory ) - { - if( $@FlaviusBG2_Victory == Bat_Team ) - { // Victory - mes "[Swandery]"; - mes "Blessed Croax!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - set .@Reward, 9; - } - else - { // - mes "[Swandery]"; - mes "Oh, " + strcharinfo(0) + ". Don't be sad."; - mes "Even though we didn't win, we did our best."; - mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; - close2; - set .@Reward, 3; - } - - set Flavius_BG_Tick, gettimetick(2) + 300; - getitem 7829, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -// Battleground Therapist -// ********************************************************************* - -bat_b02,390,13,5 script Therapist in battle#fl22 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -bat_b02,10,293,5 script Therapist in battle#fl21 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -// Battleground Respawn -// ********************************************************************* - -bat_b02,390,10,0 script #gfl2_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer24000: - misceffect 83; - end; - -OnTimer25000: - areapercentheal "bat_b02",382,2,397,17,100,100; - areawarp "bat_b02",382,2,397,17,"bat_b02",311,224; - initnpctimer; - end; -} - -bat_b02,10,290,0 script #cfl2_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer24000: - misceffect 83; - end; - -OnTimer25000: - areapercentheal "bat_b02",2,282,17,297,100,100; - areawarp "bat_b02",2,282,17,297,"bat_b02",87,75; - initnpctimer; - end; -} - -// Flags -// ********************************************************************* - -bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat32 973 -bat_b02,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat33 973 -bat_b02,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat34 973 -bat_b02,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat35 973 -bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat36 973 -bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat37 973 -bat_b02,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat38 973 -bat_b02,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat39 973 -bat_b02,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat40 973 -bat_b02,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat41 973 -bat_b02,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat42 973 -bat_b02,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat43 973 -bat_b02,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat44 973 - -bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat30 974 -bat_b02,96,68,1 duplicate(Croix camp#bat) Croix camp#bat31 974 -bat_b02,79,81,1 duplicate(Croix camp#bat) Croix camp#bat32 974 -bat_b02,79,68,1 duplicate(Croix camp#bat) Croix camp#bat33 974 -bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat34 974 -bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat35 974 -bat_b02,59,164,1 duplicate(Croix camp#bat) Croix camp#bat36 974 -bat_b02,59,137,1 duplicate(Croix camp#bat) Croix camp#bat37 974 -bat_b02,10,296,1 duplicate(Croix camp#bat) Croix camp#bat38 974 -bat_b02,110,162,1 duplicate(Croix camp#bat) Croix camp#bat39 974 -bat_b02,110,137,1 duplicate(Croix camp#bat) Croix camp#bat40 974 -bat_b02,152,120,1 duplicate(Croix camp#bat) Croix camp#bat41 974 -bat_b02,158,114,1 duplicate(Croix camp#bat) Croix camp#bat42 974 - -// MapFlags -// ********************************************************************* - -bat_b02 mapflag battleground -bat_b02 mapflag nomemo -bat_b02 mapflag nosave SavePoint -bat_b02 mapflag noteleport -bat_b02 mapflag nowarp -bat_b02 mapflag nowarpto -bat_b02 mapflag noreturn -bat_b02 mapflag nobranch -bat_b02 mapflag nopenalty +// ============================================================================== +// BattleGround System - Flavius 2 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,57,97,4 script Registration::Fl2R_Guillaume 418,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnGuillaumeJoin",1; + end; +OnEnterBG: + set $@FlaviusBG2_id1, waitingroom2bg("bat_b02",390,10,"Flavius_BG2::OnGuillaumeQuit",""); + end; +} + +bat_room,57,74,0 script Registration::Fl2R_Croix 414,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnCroixJoin",1; + end; +OnEnterBG: + set $@FlaviusBG2_id2, waitingroom2bg("bat_b02",10,290,"Flavius_BG2::OnCroixQuit",""); + end; +} + +// Battleground Engine +// ********************************************************************* + +- script Flavius_BG2 -1,{ + end; + +OnInit: + disablenpc "Guillaume Vintenar#fl2"; + disablenpc "Croix Vintenar#fl2"; + disablenpc "Therapist in battle#fl21"; + disablenpc "Therapist in battle#fl22"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + set BG_Delay_Tick, gettimetick(2) + 1200; + end; + +OnGuillaumeJoin: +OnCroixJoin: + if( $@FlaviusBG2 == 0 ) + donpcevent "Flavius_BG2::OnReadyCheck"; + end; + +OnReadyCheck: + if( $@FlaviusBG2 ) + end; + set .@Guillaume, getwaitingroomstate(0,"Fl2R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"Fl2R_Croix"); + + if( .@Guillaume < 10 || .@Croix < 10 ) + { + mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x808000; + end; + } + + // BG Variables + set $@FlaviusBG2, 1; + set $@FlaviusBG2_Victory, 0; + set .Guillaume_Score, 0; + set .Guillaume_Loss, 0; + set .Croix_Score, 0; + set .Croix_Loss, 0; + set .Match, 0; + // Prepare NPC + donpcevent "#gfl2_respawn::OnBGStart"; + donpcevent "#cfl2_respawn::OnBGStart"; + enablenpc "Therapist in battle#fl21"; + enablenpc "Therapist in battle#fl22"; + disablenpc "Guillaume Vintenar#fl2"; + disablenpc "Croix Vintenar#fl2"; + // Build and Warp Teams + donpcevent "Fl2R_Guillaume::OnEnterBG"; + donpcevent "Fl2R_Croix::OnEnterBG"; + announce "Battleground -- Flavius [80-99] has started!",0,0x808000; + initnpctimer; + // Start Match!! + +OnRoundStart: + sleep 2000; + if( $@FlaviusBG2 != 1 ) end; + + areapercentheal "bat_b02",382,2,397,17,100,100; + areapercentheal "bat_b02",2,282,17,297,100,100; + bg_warp $@FlaviusBG2_id1,"bat_b02",311,224; + bg_warp $@FlaviusBG2_id2,"bat_b02",87,75; + + sleep 2000; + if( $@FlaviusBG2 != 1 ) end; + + set .Match, .Match + 1; + // Crystal Spawn + set .Guillaume_Crystal, bg_monster($@FlaviusBG2_id1,"bat_b02",328,150,"Crystal Guillaume",1914,"Flavius_BG2::OnGuillaumeBreak"); + setwall "bat_b02",327,149,2,6,0,"gui_wall2-1"; + setwall "bat_b02",329,149,2,0,0,"gui_wall2-2"; + setwall "bat_b02",329,151,2,2,0,"gui_wall2-3"; + setwall "bat_b02",327,151,2,4,0,"gui_wall2-4"; + + set .Croix_Crystal, bg_monster($@FlaviusBG2_id2,"bat_b02",62,150,"Crystal Croix",1915,"Flavius_BG2::OnCroixBreak"); + setwall "bat_b02",61,149,2,6,0,"cro_wall2-1"; + setwall "bat_b02",63,149,2,0,0,"cro_wall2-2"; + setwall "bat_b02",63,151,2,2,0,"cro_wall2-3"; + setwall "bat_b02",61,151,2,4,0,"cro_wall2-4"; + + // Guardian Spawns + bg_monster $@FlaviusBG2_id1,"bat_b02",328,160,"Guillaume Guardian",1949,"Flavius_BG2::OnGuiGuardian"; + bg_monster $@FlaviusBG2_id1,"bat_b02",328,140,"Guillaume Guardian",1950,"Flavius_BG2::OnGuiGuardian"; + set .Guillaume_Guardian, 2; + bg_monster $@FlaviusBG2_id2,"bat_b02",62,160,"Croix Guardian",1949,"Flavius_BG2::OnCroGuardian"; + bg_monster $@FlaviusBG2_id2,"bat_b02",61,140,"Croix Guardian",1950,"Flavius_BG2::OnCroGuardian"; + set .Croix_Guardian, 2; + // Announces + mapannounce "bat_b02","The Battle of Flavius [ " + .Match + " ] Round has begun!!",1,0x808000; + end; + +OnRoundStop: + // Remove Monsters + killmonster "bat_b02","Flavius_BG2::OnGuiGuardian"; + killmonster "bat_b02","Flavius_BG2::OnCroGuardian"; + delwall "gui_wall2-1"; + delwall "gui_wall2-2"; + delwall "gui_wall2-3"; + delwall "gui_wall2-4"; + killmonster "bat_b02","Flavius_BG2::OnGuillaumeBreak"; + delwall "cro_wall2-1"; + delwall "cro_wall2-2"; + delwall "cro_wall2-3"; + delwall "cro_wall2-4"; + killmonster "bat_b02","Flavius_BG2::OnCroixBreak"; + end; + +OnGuiGuardian: + if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 ) + { + delwall "gui_wall2-1"; + delwall "gui_wall2-2"; + delwall "gui_wall2-3"; + delwall "gui_wall2-4"; + mapannounce "bat_b02","The Guillaume Crystal is vulnerable to attack!",1,0x0000FF; + } + end; + +OnCroGuardian: + if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 ) + { + delwall "cro_wall2-1"; + delwall "cro_wall2-2"; + delwall "cro_wall2-3"; + delwall "cro_wall2-4"; + mapannounce "bat_b02","The Croix Crystal is vulnerable to attack!",1,0xFF0000; + } + end; + +OnGuillaumeBreak: + donpcevent "Flavius_BG2::OnRoundStop"; + set .Guillaume_Loss, .Guillaume_Loss + 1; + if( set(.Croix_Score, .Croix_Score + 1) < 2 ) + { + bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b02","The Guillaume Crystal has been destroyed!",1,0x0000FF; + donpcevent "Flavius_BG2::OnRoundStart"; + } + else + { + bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b02","The Croix army has won the Battle of Flavius!",1,0xFF0000; + set $@FlaviusBG2_Victory, 2; + donpcevent "Flavius_BG2::OnMatchEnd"; + } + end; + +OnCroixBreak: + donpcevent "Flavius_BG2::OnRoundStop"; + set .Croix_Loss, .Croix_Loss + 1; + if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 ) + { + bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b02","The Croix Crystal has been destroyed!",1,0xFF0000; + donpcevent "Flavius_BG2::OnRoundStart"; + } + else + { + bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; + set $@FlaviusBG2_Victory, 1; + donpcevent "Flavius_BG2::OnMatchEnd"; + } + end; + +OnTimer2400000: + mapannounce "bat_b02","Battle of Flavius will ends in 5 minutes",1,0x808000; + end; +OnTimer2640000: + mapannounce "bat_b02","Battle of Flavius will ends in 1 minute",1,0x808000; + end; + +OnTimer2700000: + if( .Croix_Score > .Guillaume_Score ) + { + mapannounce "bat_b02","The Croix army has won the Battle of Flavius!",1,0xFF0000; + set $@FlaviusBG2_Victory, 2; + } + else if( .Croix_Score < .Guillaume_Score ) + { + mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; + set $@FlaviusBG2_Victory, 1; + } + else + { + mapannounce "bat_b02","The Battle of Flavius is over. The time is out, this is a Tie",1,0x808000; + set $@FlaviusBG2_Victory, 3; + } + +OnMatchEnd: + set $@FlaviusBG2, 2; + stopnpctimer; + donpcevent "#gfl2_respawn::OnBGStop"; + donpcevent "#cfl2_respawn::OnBGStop"; + disablenpc "Therapist in battle#fl21"; + disablenpc "Therapist in battle#fl22"; + enablenpc "Guillaume Vintenar#fl2"; + enablenpc "Croix Vintenar#fl2"; + sleep 2000; + bg_warp $@FlaviusBG2_id1,"bat_b02",390,10; + bg_warp $@FlaviusBG2_id2,"bat_b02",10,290; + sleep 3000; + mapannounce "bat_b02","Battle of Flavius will close in 1 minute!",1,0x808000; + initnpctimer; + end; + +OnTimer30000: + if( $@FlaviusBG2 == 2 ) + mapannounce "bat_b02","Battle of Flavius will close in 30 seconds!",1,0x808000; + end; +OnTimer50000: + if( $@FlaviusBG2 == 2 ) + mapannounce "bat_b02","Battle of Flavius will close in 10 seconds!",1,0x808000; + end; + +OnTimer60000: + if( $@FlaviusBG2 != 2 ) + end; +OnReset: + stopnpctimer; + donpcevent "Flavius_BG2::OnRoundStop"; + set .Guillaume_Score, 0; + set .Guillaume_Crystal, 0; + set .Guillaume_Loss, 0; + set .Croix_Score, 0; + set .Croix_Crystal, 0; + set .Croix_Loss, 0; + set .Match, 0; + set $@FlaviusBG2_Victory, 0; + // NPC's + disablenpc "Guillaume Vintenar#fl2"; + disablenpc "Croix Vintenar#fl2"; + disablenpc "Therapist in battle#fl21"; + disablenpc "Therapist in battle#fl22"; + + if( $@FlaviusBG2_id1 ) { bg_destroy $@FlaviusBG2_id1; set $@FlaviusBG2_id1, 0; } + if( $@FlaviusBG2_id2 ) { bg_destroy $@FlaviusBG2_id2; set $@FlaviusBG2_id2, 0; } + sleep 1000; + mapwarp "bat_b02","bat_room",155,150; + sleep 2000; + maprespawnguildid "bat_b02",0,3; // Just in case someone else + sleep 2000; + bg_updatescore "bat_b02",0,0; + set $@FlaviusBG2, 0; + donpcevent "Flavius_BG2::OnReadyCheck"; + end; +} + +// Battleground rewards +// ********************************************************************* + +bat_b02,390,13,5 script Guillaume Vintenar#fl2 419,{ + if( $@FlaviusBG2_Victory ) + { + if( $@FlaviusBG2_Victory == Bat_Team ) + { // Victory + mes "[Swandery]"; + mes "Blessed Guillaume!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + set .@Reward, 9; + } + else + { // + mes "[Swandery]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat a lesson, and later you would definitely learn."; + close2; + set .@Reward, 3; + } + + set Flavius_BG_Tick, gettimetick(2) + 300; + getitem 7829, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +bat_b02,10,293,5 script Croix Vintenar#fl2 415,{ + if( $@FlaviusBG2_Victory ) + { + if( $@FlaviusBG2_Victory == Bat_Team ) + { // Victory + mes "[Swandery]"; + mes "Blessed Croax!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + set .@Reward, 9; + } + else + { // + mes "[Swandery]"; + mes "Oh, " + strcharinfo(0) + ". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; + close2; + set .@Reward, 3; + } + + set Flavius_BG_Tick, gettimetick(2) + 300; + getitem 7829, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +// Battleground Therapist +// ********************************************************************* + +bat_b02,390,13,5 script Therapist in battle#fl22 95,{ + mes "[Therapist in battle]"; + mes "Just close your eyes, and take a deep breathe."; + mes "You can be free from pain."; + specialeffect2 312; + close; +} + +bat_b02,10,293,5 script Therapist in battle#fl21 95,{ + mes "[Therapist in battle]"; + mes "Just close your eyes, and take a deep breathe."; + mes "You can be free from pain."; + specialeffect2 312; + close; +} + +// Battleground Respawn +// ********************************************************************* + +bat_b02,390,10,0 script #gfl2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_b02",382,2,397,17,100,100; + areawarp "bat_b02",382,2,397,17,"bat_b02",311,224; + initnpctimer; + end; +} + +bat_b02,10,290,0 script #cfl2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_b02",2,282,17,297,100,100; + areawarp "bat_b02",2,282,17,297,"bat_b02",87,75; + initnpctimer; + end; +} + +// Flags +// ********************************************************************* + +bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat32 973 +bat_b02,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat33 973 +bat_b02,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat34 973 +bat_b02,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat35 973 +bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat36 973 +bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat37 973 +bat_b02,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat38 973 +bat_b02,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat39 973 +bat_b02,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat40 973 +bat_b02,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat41 973 +bat_b02,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat42 973 +bat_b02,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat43 973 +bat_b02,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat44 973 + +bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat30 974 +bat_b02,96,68,1 duplicate(Croix camp#bat) Croix camp#bat31 974 +bat_b02,79,81,1 duplicate(Croix camp#bat) Croix camp#bat32 974 +bat_b02,79,68,1 duplicate(Croix camp#bat) Croix camp#bat33 974 +bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat34 974 +bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat35 974 +bat_b02,59,164,1 duplicate(Croix camp#bat) Croix camp#bat36 974 +bat_b02,59,137,1 duplicate(Croix camp#bat) Croix camp#bat37 974 +bat_b02,10,296,1 duplicate(Croix camp#bat) Croix camp#bat38 974 +bat_b02,110,162,1 duplicate(Croix camp#bat) Croix camp#bat39 974 +bat_b02,110,137,1 duplicate(Croix camp#bat) Croix camp#bat40 974 +bat_b02,152,120,1 duplicate(Croix camp#bat) Croix camp#bat41 974 +bat_b02,158,114,1 duplicate(Croix camp#bat) Croix camp#bat42 974 + +// MapFlags +// ********************************************************************* + +bat_b02 mapflag battleground +bat_b02 mapflag nomemo +bat_b02 mapflag nosave SavePoint +bat_b02 mapflag noteleport +bat_b02 mapflag nowarp +bat_b02 mapflag nowarpto +bat_b02 mapflag noreturn +bat_b02 mapflag nobranch +bat_b02 mapflag nopenalty diff --git a/npc/battleground/bg_tierra_01.txt b/npc/battleground/bg_tierra_01.txt index ed1e65120..9d04512e6 100644 --- a/npc/battleground/bg_tierra_01.txt +++ b/npc/battleground/bg_tierra_01.txt @@ -1,488 +1,488 @@ -// ============================================================================== -// BattleGround System - Tierra Valley 1 -// ============================================================================== - -// Registration NPC's -// ********************************************************************* - -bat_room,85,227,4 script Registration::TV1R_Guillaume 418,{ - end; -OnInit: - waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnGuillaumeJoin",1; - end; -OnEnterBG: - set $@TierraBG1_id1, waitingroom2bg("bat_a01",50,374,"Tierra_BG1::OnGuillaumeQuit",""); - end; -} - -bat_room,85,204,0 script Registration::TV1R_Croix 414,{ - end; -OnInit: - waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnCroixJoin",1; - end; -OnEnterBG: - set $@TierraBG1_id2, waitingroom2bg("bat_a01",42,16,"Tierra_BG1::OnCroixQuit",""); - end; -} - -// Battleground Engine -// ********************************************************************* - -- script Tierra_BG1 -1,{ - end; - -OnInit: - disablenpc "Croix Vintenar#tv1"; - disablenpc "Guillaume Vintenar#tv1"; - disablenpc "Therapist in battle#tv11"; - disablenpc "Therapist in battle#tv12"; - end; - -OnGuillaumeQuit: -OnCroixQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; - end; - -OnGuillaumeJoin: -OnCroixJoin: - if( $@TierraBG1 == 0 ) - donpcevent "Tierra_BG1::OnReadyCheck"; - end; - -OnReadyCheck: - if( $@TierraBG1 ) - end; - set .@Guillaume, getwaitingroomstate(0,"TV1R_Guillaume"); - set .@Croix, getwaitingroomstate(0,"TV1R_Croix"); - - if( .@Guillaume < 10 || .@Croix < 10 ) - { - mapannounce "bat_room","Battleground -- Tierra Valley [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0xFFA500; - end; - } - - set $@TierraBG1, 1; - donpcevent "TV1R_Croix::OnEnterBG"; - donpcevent "TV1R_Guillaume::OnEnterBG"; - donpcevent "Guillaume_TV1B::OnBuild"; - donpcevent "Croix_TV1B::OnBuild"; - bg_monster $@TierraBG1_id1,"bat_a01",176,345,"Food Depot",1909,"Tierra_BG1::OnGuillaumeBreak"; - bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Storage",1910,"Tierra_BG1::OnCroixBreak"; - bg_monster 0,"bat_a01",273,204,"Neutrality Flag",1911,"Tierra_BG1::OnNeutralBreak"; - - set .Neutral_Base, 0; - set $@TierraBG1_Victory, 0; - - set .Guardian_1, 0; - set .Guardian_2, 0; - set .Guardian_3, 0; - - enablenpc "Therapist in battle#tv11"; - enablenpc "Therapist in battle#tv12"; - disablenpc "Croix Vintenar#tv1"; - disablenpc "Guillaume Vintenar#tv1"; - // Respawner - donpcevent "#gtv1_respawn::OnBGStart"; - donpcevent "#ctv1_respawn::OnBGStart"; - donpcevent "#ntv1_respawn::OnBGStart"; - // Warp Teams - announce "Battleground -- Tierra Valley [80-99] has started!",0,0xFFA500; - bg_warp $@TierraBG1_id1,"bat_a01",353,344; - bg_warp $@TierraBG1_id2,"bat_a01",353,52; - // Final Messages - sleep 6000; - mapannounce "bat_a01","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF; - sleep 2000; - mapannounce "bat_a01","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000; - - initnpctimer; - end; - -OnNeutralBreak: - if( getcharid(4) == $@TierraBG1_id1 ) - { - mapannounce "bat_a01","Guillaume obtained a neurality banner, so they have an advantage.",1,0x0000FF; - bg_team_setxy $@TierraBG1_id2,42,16; - areawarp "bat_a01",52,208,61,217,"bat_a01",42,16; - } - else if( getcharid(4) == $@TierraBG1_id2 ) - { - mapannounce "bat_a01","Croix obtained a neutrality banner, so they have an advantage.",1,0xFF0000; - bg_team_setxy $@TierraBG1_id1,50,374; - areawarp "bat_a01",52,208,61,217,"bat_a01",50,374; - } - else end; - - set .Neutral_Base, getcharid(4); - bg_team_setxy .Neutral_Base,56,212; - - if( .Guardian_1 == 0 ) - set .Guardian_1, bg_monster(.Neutral_Base,"bat_a01",280,233,"Guardian",1949,"Tierra_BG1::OnGuardian1"); - else - bg_monster_set_team .Guardian_1, .Neutral_Base; - - if( .Guardian_2 == 0 ) - set .Guardian_2, bg_monster(.Neutral_Base,"bat_a01",287,203,"Guardian",1950,"Tierra_BG1::OnGuardian2"); - else - bg_monster_set_team .Guardian_2, .Neutral_Base; - - if( .Guardian_3 == 0 ) - set .Guardian_3, bg_monster(.Neutral_Base,"bat_a01",268,204,"Guardian",1949,"Tierra_BG1::OnGuardian3"); - else - bg_monster_set_team .Guardian_3, .Neutral_Base; - - sleep 10000; - if( $@TierraBG1 != 1 ) end; - - if( .Neutral_Base == $@TierraBG1_id1 ) - bg_monster .Neutral_Base,"bat_a01",273,204,"Guillaume Flag",1912,"Tierra_BG1::OnNeutralBreak"; - else if( .Neutral_Base == $@TierraBG1_id2 ) - bg_monster .Neutral_Base,"bat_a01",273,204,"Croix Flag",1913,"Tierra_BG1::OnNeutralBreak"; - end; - -OnGuardian1: set .Guardian_1, 0; end; -OnGuardian2: set .Guardian_2, 0; end; -OnGuardian3: set .Guardian_3, 0; end; - -OnGuillaumeBreak: - set $@TierraBG1_Victory, 2; - mapannounce "bat_a01","Croix Vintenar Swandery: We destroyed Guillaume's food storehause. We won that! Wow!",1,0xFF0000; - donpcevent "Tierra_BG1::OnStop"; - end; - -OnCroixBreak: - set $@TierraBG1_Victory, 1; - mapannounce "bat_a01","Guillaume Vintenar Axl Rose: We destroyed Croix's food storehause. We won that! Wow!",1,0x0000FF; - donpcevent "Tierra_BG1::OnStop"; - end; - -OnTimer2400000: - mapannounce "bat_a01","Battle of Tierra Gorge will ends in 5 minutes",1,0xFFA500; - end; -OnTimer2640000: - mapannounce "bat_a01","Battle of Tierra Gorge will ends in 1 minute",1,0xFFA500; - end; - -OnTimer2700000: - set $@TierraBG1_Victory, 3; // Draw Game - mapannounce "bat_a01","Battle of Tierra Gorge is over. The time is out, this is a Tie",1,0xFFA500; - donpcevent "Tierra_BG1::OnStop"; - end; - -OnStop: - set $@TierraBG1, 2; - disablenpc "Therapist in battle#tv11"; - disablenpc "Therapist in battle#tv12"; - donpcevent "#gtv1_respawn::OnBGStop"; - donpcevent "#ctv1_respawn::OnBGStop"; - donpcevent "#ntv1_respawn::OnBGStop"; - enablenpc "Croix Vintenar#tv1"; - enablenpc "Guillaume Vintenar#tv1"; - killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak"; - killmonster "bat_a01","Tierra_BG1::OnCroixBreak"; - killmonster "bat_a01","Tierra_BG1::OnNeutralBreak"; - killmonster "bat_a01","Tierra_BG1::OnGuardian1"; - killmonster "bat_a01","Tierra_BG1::OnGuardian2"; - killmonster "bat_a01","Tierra_BG1::OnGuardian3"; - stopnpctimer; - sleep 3000; - bg_warp $@TierraBG1_id1,"bat_a01",50,374; - bg_warp $@TierraBG1_id2,"bat_a01",42,16; - sleep 3000; - mapannounce "bat_a01","Battle of Tierra Gorge will close in 1 minute!",1,0xFFA500; - initnpctimer; - end; - -OnTimer30000: - if( $@TierraBG1 == 2 ) - mapannounce "bat_a01","Battle of Tierra Valley will close in 30 seconds!",1,0xFFA500; - end; -OnTimer50000: - if( $@TierraBG1 == 2 ) - mapannounce "bat_a01","Battle of Tierra Valley will close in 10 seconds!",1,0xFFA500; - end; - -OnTimer60000: - if( $@TierraBG1 != 2 ) - end; -OnReset: - stopnpctimer; - set .Neutral_Base, 0; - disablenpc "Croix Vintenar#tv1"; - disablenpc "Guillaume Vintenar#tv1"; - disablenpc "Therapist in battle#tv11"; - disablenpc "Therapist in battle#tv12"; - donpcevent "#gtv1_respawn::OnBGStop"; - donpcevent "#ctv1_respawn::OnBGStop"; - donpcevent "#ntv1_respawn::OnBGStop"; - - killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak"; - killmonster "bat_a01","Tierra_BG1::OnCroixBreak"; - killmonster "bat_a01","Tierra_BG1::OnNeutralBreak"; - killmonster "bat_a01","Tierra_BG1::OnGuardian1"; - killmonster "bat_a01","Tierra_BG1::OnGuardian2"; - killmonster "bat_a01","Tierra_BG1::OnGuardian3"; - donpcevent "Guillaume_TV1B::OnDestroy"; - donpcevent "Croix_TV1B::OnDestroy"; - - set $@TierraBG1_Victory, 0; - if( $@TierraBG1_id1 ) { bg_destroy $@TierraBG1_id1; set $@TierraBG1_id1, 0; } - if( $@TierraBG1_id2 ) { bg_destroy $@TierraBG1_id2; set $@TierraBG1_id2, 0; } - sleep 1000; - mapwarp "bat_a01","bat_room",155,150; - sleep 2000; - maprespawnguildid "bat_a01",0,3; // Just in case someone else - sleep 2000; - set $@TierraBG1, 0; - donpcevent "Tierra_BG1::OnReadyCheck"; // Maybe a game is ready to start - end; -} - -// MapFlags -// ********************************************************************* - -bat_a01 mapflag battleground -bat_a01 mapflag nomemo -bat_a01 mapflag nosave SavePoint -bat_a01 mapflag noteleport -bat_a01 mapflag nowarp -bat_a01 mapflag nowarpto -bat_a01 mapflag noreturn -bat_a01 mapflag nobranch -bat_a01 mapflag nopenalty - -// Other Flags -// ********************************************************************* - -bat_a01,148,85,1 duplicate(Croix camp#bat) Croix camp#bat10 974 -bat_a01,155,85,1 duplicate(Croix camp#bat) Croix camp#bat11 974 -bat_a01,357,75,1 duplicate(Croix camp#bat) Croix camp#bat12 974 -bat_a01,348,74,1 duplicate(Croix camp#bat) Croix camp#bat13 974 -bat_a01,199,49,1 duplicate(Croix camp#bat) Croix camp#bat14 974 -bat_a01,168,16,1 duplicate(Croix camp#bat) Croix camp#bat15 974 -bat_a01,138,12,1 duplicate(Croix camp#bat) Croix camp#bat16 974 -bat_a01,108,35,1 duplicate(Croix camp#bat) Croix camp#bat17 974 -bat_a01,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat10 973 -bat_a01,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat11 973 -bat_a01,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat12 973 -bat_a01,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat13 973 -bat_a01,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat14 973 -bat_a01,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat15 973 -bat_a01,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat16 973 -bat_a01,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat17 973 -bat_a01,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat18 973 - -// Barricades -// ********************************************************************* - -- script Guillaume_TV1B -1,{ - end; - -OnBuild: - for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) - bg_monster 0,"bat_a01",170+.@i,130,"Barricade",1906,"Guillaume_TV1B::OnWall"; - - setwall "bat_a01",170,130,16,6,1,"bat_a01_g1"; - set .MyMobCount,16; - end; - -OnDestroy: - killmonster "bat_a01","Guillaume_TV1B::OnWall"; - delwall "bat_a01_g1"; - set .MyMobCount,0; - end; - -OnWall: - if( set(.MyMobCount,.MyMobCount - 1) < 1 ) - { - delwall "bat_a01_g1"; - mapannounce "bat_a01","South Gate : The Gate has been Destroy!!",1,0xFFA500; - } - end; -} - -- script Croix_TV1B -1,{ - end; - -OnBuild: - for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) - bg_monster 0,"bat_a01",186+.@i,266,"Barricade",1906,"Croix_TV1B::OnWall"; - - setwall "bat_a01",186,266,16,6,1,"bat_a01_c1"; - set .MyMobCount,16; - end; - -OnDestroy: - killmonster "bat_a01","Croix_TV1B::OnWall"; - delwall "bat_a01_c1"; - set .MyMobCount,0; - end; - -OnWall: - if( set(.MyMobCount,.MyMobCount - 1) < 1 ) - { - delwall "bat_a01_c1"; - mapannounce "bat_a01","North Gate : A Gate has been Destroy!!",1,0xFFA500; - } - end; -} - -// Battleground rewards -// ********************************************************************* - -bat_a01,45,19,3 script Croix Vintenar#tv1 415,{ - if( $@TierraBG1_Victory ) - { - if( $@TierraBG1_Victory == Bat_Team ) - { // Victory - set .@Reward, 3; - mes "[Swandery]"; - mes "Blessed Croax!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 1; - mes "[Swandery]"; - mes "Oh, " + strcharinfo(0) + ". Don't be sad."; - mes "Even though we didn't win, we did our best."; - mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; - close2; - } - - set Tierra_BG_Tick, gettimetick(2) + 300; - getitem 7828, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -bat_a01,53,377,3 script Guillaume Vintenar#tv1 419,{ - if( $@TierraBG1_Victory ) - { - if( $@TierraBG1_Victory == Bat_Team ) - { // Victory - set .@Reward, 3; - mes "[Swandery]"; - mes "Blessed Guillaume!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 1; - mes "[Swandery]"; - mes "You lost, but you're dedicated to this battle."; - mes "This is a reward for your great dedication by Guillaume Marollo!"; - mes "Just take this defeat a lesson, and later you would definitely learn."; - close2; - } - - set Tierra_BG_Tick, gettimetick(2) + 300; - getitem 7828, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -// Battleground Therapist -// ********************************************************************* - -bat_a01,60,216,3 script Ghost#tv13 950,{ - mes "[Ghost in valley]"; - mes "Boo...Boo..."; - specialeffect2 312; - close; -} - -bat_a01,53,377,3 script Therapist in battle#tv12 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -bat_a01,45,18,3 script Therapist in battle#tv11 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -// Battleground Respawn -// ********************************************************************* - -bat_a01,57,213,0 script #ntv1_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer19000: - misceffect 83; - end; - -OnTimer20000: - areapercentheal "bat_a01",52,208,61,217,100,100; - areawarp "bat_a01",52,208,61,217,"bat_a01",301,208; - initnpctimer; - end; -} - -bat_a01,50,374,0 script #gtv1_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer24000: - misceffect 83; - end; - -OnTimer25000: - areapercentheal "bat_a01",46,370,54,378,100,100; - areawarp "bat_a01",46,370,54,378,"bat_a01",354,340; - initnpctimer; - end; -} - -bat_a01,42,16,0 script #ctv1_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer24000: - misceffect 83; - end; - -OnTimer25000: - areapercentheal "bat_a01",38,12,47,21,100,100; - areawarp "bat_a01",38,12,47,21,"bat_a01",354,57; - initnpctimer; - end; -} +// ============================================================================== +// BattleGround System - Tierra Valley 1 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,85,227,4 script Registration::TV1R_Guillaume 418,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnGuillaumeJoin",1; + end; +OnEnterBG: + set $@TierraBG1_id1, waitingroom2bg("bat_a01",50,374,"Tierra_BG1::OnGuillaumeQuit",""); + end; +} + +bat_room,85,204,0 script Registration::TV1R_Croix 414,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnCroixJoin",1; + end; +OnEnterBG: + set $@TierraBG1_id2, waitingroom2bg("bat_a01",42,16,"Tierra_BG1::OnCroixQuit",""); + end; +} + +// Battleground Engine +// ********************************************************************* + +- script Tierra_BG1 -1,{ + end; + +OnInit: + disablenpc "Croix Vintenar#tv1"; + disablenpc "Guillaume Vintenar#tv1"; + disablenpc "Therapist in battle#tv11"; + disablenpc "Therapist in battle#tv12"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + set BG_Delay_Tick, gettimetick(2) + 1200; + end; + +OnGuillaumeJoin: +OnCroixJoin: + if( $@TierraBG1 == 0 ) + donpcevent "Tierra_BG1::OnReadyCheck"; + end; + +OnReadyCheck: + if( $@TierraBG1 ) + end; + set .@Guillaume, getwaitingroomstate(0,"TV1R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"TV1R_Croix"); + + if( .@Guillaume < 10 || .@Croix < 10 ) + { + mapannounce "bat_room","Battleground -- Tierra Valley [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0xFFA500; + end; + } + + set $@TierraBG1, 1; + donpcevent "TV1R_Croix::OnEnterBG"; + donpcevent "TV1R_Guillaume::OnEnterBG"; + donpcevent "Guillaume_TV1B::OnBuild"; + donpcevent "Croix_TV1B::OnBuild"; + bg_monster $@TierraBG1_id1,"bat_a01",176,345,"Food Depot",1909,"Tierra_BG1::OnGuillaumeBreak"; + bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Storage",1910,"Tierra_BG1::OnCroixBreak"; + bg_monster 0,"bat_a01",273,204,"Neutrality Flag",1911,"Tierra_BG1::OnNeutralBreak"; + + set .Neutral_Base, 0; + set $@TierraBG1_Victory, 0; + + set .Guardian_1, 0; + set .Guardian_2, 0; + set .Guardian_3, 0; + + enablenpc "Therapist in battle#tv11"; + enablenpc "Therapist in battle#tv12"; + disablenpc "Croix Vintenar#tv1"; + disablenpc "Guillaume Vintenar#tv1"; + // Respawner + donpcevent "#gtv1_respawn::OnBGStart"; + donpcevent "#ctv1_respawn::OnBGStart"; + donpcevent "#ntv1_respawn::OnBGStart"; + // Warp Teams + announce "Battleground -- Tierra Valley [80-99] has started!",0,0xFFA500; + bg_warp $@TierraBG1_id1,"bat_a01",353,344; + bg_warp $@TierraBG1_id2,"bat_a01",353,52; + // Final Messages + sleep 6000; + mapannounce "bat_a01","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF; + sleep 2000; + mapannounce "bat_a01","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000; + + initnpctimer; + end; + +OnNeutralBreak: + if( getcharid(4) == $@TierraBG1_id1 ) + { + mapannounce "bat_a01","Guillaume obtained a neurality banner, so they have an advantage.",1,0x0000FF; + bg_team_setxy $@TierraBG1_id2,42,16; + areawarp "bat_a01",52,208,61,217,"bat_a01",42,16; + } + else if( getcharid(4) == $@TierraBG1_id2 ) + { + mapannounce "bat_a01","Croix obtained a neutrality banner, so they have an advantage.",1,0xFF0000; + bg_team_setxy $@TierraBG1_id1,50,374; + areawarp "bat_a01",52,208,61,217,"bat_a01",50,374; + } + else end; + + set .Neutral_Base, getcharid(4); + bg_team_setxy .Neutral_Base,56,212; + + if( .Guardian_1 == 0 ) + set .Guardian_1, bg_monster(.Neutral_Base,"bat_a01",280,233,"Guardian",1949,"Tierra_BG1::OnGuardian1"); + else + bg_monster_set_team .Guardian_1, .Neutral_Base; + + if( .Guardian_2 == 0 ) + set .Guardian_2, bg_monster(.Neutral_Base,"bat_a01",287,203,"Guardian",1950,"Tierra_BG1::OnGuardian2"); + else + bg_monster_set_team .Guardian_2, .Neutral_Base; + + if( .Guardian_3 == 0 ) + set .Guardian_3, bg_monster(.Neutral_Base,"bat_a01",268,204,"Guardian",1949,"Tierra_BG1::OnGuardian3"); + else + bg_monster_set_team .Guardian_3, .Neutral_Base; + + sleep 10000; + if( $@TierraBG1 != 1 ) end; + + if( .Neutral_Base == $@TierraBG1_id1 ) + bg_monster .Neutral_Base,"bat_a01",273,204,"Guillaume Flag",1912,"Tierra_BG1::OnNeutralBreak"; + else if( .Neutral_Base == $@TierraBG1_id2 ) + bg_monster .Neutral_Base,"bat_a01",273,204,"Croix Flag",1913,"Tierra_BG1::OnNeutralBreak"; + end; + +OnGuardian1: set .Guardian_1, 0; end; +OnGuardian2: set .Guardian_2, 0; end; +OnGuardian3: set .Guardian_3, 0; end; + +OnGuillaumeBreak: + set $@TierraBG1_Victory, 2; + mapannounce "bat_a01","Croix Vintenar Swandery: We destroyed Guillaume's food storehause. We won that! Wow!",1,0xFF0000; + donpcevent "Tierra_BG1::OnStop"; + end; + +OnCroixBreak: + set $@TierraBG1_Victory, 1; + mapannounce "bat_a01","Guillaume Vintenar Axl Rose: We destroyed Croix's food storehause. We won that! Wow!",1,0x0000FF; + donpcevent "Tierra_BG1::OnStop"; + end; + +OnTimer2400000: + mapannounce "bat_a01","Battle of Tierra Gorge will ends in 5 minutes",1,0xFFA500; + end; +OnTimer2640000: + mapannounce "bat_a01","Battle of Tierra Gorge will ends in 1 minute",1,0xFFA500; + end; + +OnTimer2700000: + set $@TierraBG1_Victory, 3; // Draw Game + mapannounce "bat_a01","Battle of Tierra Gorge is over. The time is out, this is a Tie",1,0xFFA500; + donpcevent "Tierra_BG1::OnStop"; + end; + +OnStop: + set $@TierraBG1, 2; + disablenpc "Therapist in battle#tv11"; + disablenpc "Therapist in battle#tv12"; + donpcevent "#gtv1_respawn::OnBGStop"; + donpcevent "#ctv1_respawn::OnBGStop"; + donpcevent "#ntv1_respawn::OnBGStop"; + enablenpc "Croix Vintenar#tv1"; + enablenpc "Guillaume Vintenar#tv1"; + killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak"; + killmonster "bat_a01","Tierra_BG1::OnCroixBreak"; + killmonster "bat_a01","Tierra_BG1::OnNeutralBreak"; + killmonster "bat_a01","Tierra_BG1::OnGuardian1"; + killmonster "bat_a01","Tierra_BG1::OnGuardian2"; + killmonster "bat_a01","Tierra_BG1::OnGuardian3"; + stopnpctimer; + sleep 3000; + bg_warp $@TierraBG1_id1,"bat_a01",50,374; + bg_warp $@TierraBG1_id2,"bat_a01",42,16; + sleep 3000; + mapannounce "bat_a01","Battle of Tierra Gorge will close in 1 minute!",1,0xFFA500; + initnpctimer; + end; + +OnTimer30000: + if( $@TierraBG1 == 2 ) + mapannounce "bat_a01","Battle of Tierra Valley will close in 30 seconds!",1,0xFFA500; + end; +OnTimer50000: + if( $@TierraBG1 == 2 ) + mapannounce "bat_a01","Battle of Tierra Valley will close in 10 seconds!",1,0xFFA500; + end; + +OnTimer60000: + if( $@TierraBG1 != 2 ) + end; +OnReset: + stopnpctimer; + set .Neutral_Base, 0; + disablenpc "Croix Vintenar#tv1"; + disablenpc "Guillaume Vintenar#tv1"; + disablenpc "Therapist in battle#tv11"; + disablenpc "Therapist in battle#tv12"; + donpcevent "#gtv1_respawn::OnBGStop"; + donpcevent "#ctv1_respawn::OnBGStop"; + donpcevent "#ntv1_respawn::OnBGStop"; + + killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak"; + killmonster "bat_a01","Tierra_BG1::OnCroixBreak"; + killmonster "bat_a01","Tierra_BG1::OnNeutralBreak"; + killmonster "bat_a01","Tierra_BG1::OnGuardian1"; + killmonster "bat_a01","Tierra_BG1::OnGuardian2"; + killmonster "bat_a01","Tierra_BG1::OnGuardian3"; + donpcevent "Guillaume_TV1B::OnDestroy"; + donpcevent "Croix_TV1B::OnDestroy"; + + set $@TierraBG1_Victory, 0; + if( $@TierraBG1_id1 ) { bg_destroy $@TierraBG1_id1; set $@TierraBG1_id1, 0; } + if( $@TierraBG1_id2 ) { bg_destroy $@TierraBG1_id2; set $@TierraBG1_id2, 0; } + sleep 1000; + mapwarp "bat_a01","bat_room",155,150; + sleep 2000; + maprespawnguildid "bat_a01",0,3; // Just in case someone else + sleep 2000; + set $@TierraBG1, 0; + donpcevent "Tierra_BG1::OnReadyCheck"; // Maybe a game is ready to start + end; +} + +// MapFlags +// ********************************************************************* + +bat_a01 mapflag battleground +bat_a01 mapflag nomemo +bat_a01 mapflag nosave SavePoint +bat_a01 mapflag noteleport +bat_a01 mapflag nowarp +bat_a01 mapflag nowarpto +bat_a01 mapflag noreturn +bat_a01 mapflag nobranch +bat_a01 mapflag nopenalty + +// Other Flags +// ********************************************************************* + +bat_a01,148,85,1 duplicate(Croix camp#bat) Croix camp#bat10 974 +bat_a01,155,85,1 duplicate(Croix camp#bat) Croix camp#bat11 974 +bat_a01,357,75,1 duplicate(Croix camp#bat) Croix camp#bat12 974 +bat_a01,348,74,1 duplicate(Croix camp#bat) Croix camp#bat13 974 +bat_a01,199,49,1 duplicate(Croix camp#bat) Croix camp#bat14 974 +bat_a01,168,16,1 duplicate(Croix camp#bat) Croix camp#bat15 974 +bat_a01,138,12,1 duplicate(Croix camp#bat) Croix camp#bat16 974 +bat_a01,108,35,1 duplicate(Croix camp#bat) Croix camp#bat17 974 +bat_a01,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat10 973 +bat_a01,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat11 973 +bat_a01,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat12 973 +bat_a01,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat13 973 +bat_a01,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat14 973 +bat_a01,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat15 973 +bat_a01,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat16 973 +bat_a01,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat17 973 +bat_a01,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat18 973 + +// Barricades +// ********************************************************************* + +- script Guillaume_TV1B -1,{ + end; + +OnBuild: + for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) + bg_monster 0,"bat_a01",170+.@i,130,"Barricade",1906,"Guillaume_TV1B::OnWall"; + + setwall "bat_a01",170,130,16,6,1,"bat_a01_g1"; + set .MyMobCount,16; + end; + +OnDestroy: + killmonster "bat_a01","Guillaume_TV1B::OnWall"; + delwall "bat_a01_g1"; + set .MyMobCount,0; + end; + +OnWall: + if( set(.MyMobCount,.MyMobCount - 1) < 1 ) + { + delwall "bat_a01_g1"; + mapannounce "bat_a01","South Gate : The Gate has been Destroy!!",1,0xFFA500; + } + end; +} + +- script Croix_TV1B -1,{ + end; + +OnBuild: + for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) + bg_monster 0,"bat_a01",186+.@i,266,"Barricade",1906,"Croix_TV1B::OnWall"; + + setwall "bat_a01",186,266,16,6,1,"bat_a01_c1"; + set .MyMobCount,16; + end; + +OnDestroy: + killmonster "bat_a01","Croix_TV1B::OnWall"; + delwall "bat_a01_c1"; + set .MyMobCount,0; + end; + +OnWall: + if( set(.MyMobCount,.MyMobCount - 1) < 1 ) + { + delwall "bat_a01_c1"; + mapannounce "bat_a01","North Gate : A Gate has been Destroy!!",1,0xFFA500; + } + end; +} + +// Battleground rewards +// ********************************************************************* + +bat_a01,45,19,3 script Croix Vintenar#tv1 415,{ + if( $@TierraBG1_Victory ) + { + if( $@TierraBG1_Victory == Bat_Team ) + { // Victory + set .@Reward, 3; + mes "[Swandery]"; + mes "Blessed Croax!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + } + else + { // + set .@Reward, 1; + mes "[Swandery]"; + mes "Oh, " + strcharinfo(0) + ". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; + close2; + } + + set Tierra_BG_Tick, gettimetick(2) + 300; + getitem 7828, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +bat_a01,53,377,3 script Guillaume Vintenar#tv1 419,{ + if( $@TierraBG1_Victory ) + { + if( $@TierraBG1_Victory == Bat_Team ) + { // Victory + set .@Reward, 3; + mes "[Swandery]"; + mes "Blessed Guillaume!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + } + else + { // + set .@Reward, 1; + mes "[Swandery]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat a lesson, and later you would definitely learn."; + close2; + } + + set Tierra_BG_Tick, gettimetick(2) + 300; + getitem 7828, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +// Battleground Therapist +// ********************************************************************* + +bat_a01,60,216,3 script Ghost#tv13 950,{ + mes "[Ghost in valley]"; + mes "Boo...Boo..."; + specialeffect2 312; + close; +} + +bat_a01,53,377,3 script Therapist in battle#tv12 95,{ + mes "[Therapist in battle]"; + mes "Just close your eyes, and take a deep breathe."; + mes "You can be free from pain."; + specialeffect2 312; + close; +} + +bat_a01,45,18,3 script Therapist in battle#tv11 95,{ + mes "[Therapist in battle]"; + mes "Just close your eyes, and take a deep breathe."; + mes "You can be free from pain."; + specialeffect2 312; + close; +} + +// Battleground Respawn +// ********************************************************************* + +bat_a01,57,213,0 script #ntv1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer19000: + misceffect 83; + end; + +OnTimer20000: + areapercentheal "bat_a01",52,208,61,217,100,100; + areawarp "bat_a01",52,208,61,217,"bat_a01",301,208; + initnpctimer; + end; +} + +bat_a01,50,374,0 script #gtv1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_a01",46,370,54,378,100,100; + areawarp "bat_a01",46,370,54,378,"bat_a01",354,340; + initnpctimer; + end; +} + +bat_a01,42,16,0 script #ctv1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_a01",38,12,47,21,100,100; + areawarp "bat_a01",38,12,47,21,"bat_a01",354,57; + initnpctimer; + end; +} diff --git a/npc/battleground/bg_tierra_02.txt b/npc/battleground/bg_tierra_02.txt index a69f65e2b..9cc78a4cc 100644 --- a/npc/battleground/bg_tierra_02.txt +++ b/npc/battleground/bg_tierra_02.txt @@ -1,488 +1,488 @@ -// ============================================================================== -// BattleGround System - Tierra Valley 2 -// ============================================================================== - -// Registration NPC's -// ********************************************************************* - -bat_room,85,97,4 script Registration::TV2R_Guillaume 418,{ - end; -OnInit: - waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnGuillaumeJoin",1; - end; -OnEnterBG: - set $@TierraBG2_id1, waitingroom2bg("bat_a02",50,374,"Tierra_BG2::OnGuillaumeQuit",""); - end; -} - -bat_room,85,74,0 script Registration::TV2R_Croix 414,{ - end; -OnInit: - waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnCroixJoin",1; - end; -OnEnterBG: - set $@TierraBG2_id2, waitingroom2bg("bat_a02",42,16,"Tierra_BG2::OnCroixQuit",""); - end; -} - -// Battleground Engine -// ********************************************************************* - -- script Tierra_BG2 -1,{ - end; - -OnInit: - disablenpc "Croix Vintenar#tv2"; - disablenpc "Guillaume Vintenar#tv2"; - disablenpc "Therapist in battle#tv21"; - disablenpc "Therapist in battle#tv22"; - end; - -OnGuillaumeQuit: -OnCroixQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; - end; - -OnGuillaumeJoin: -OnCroixJoin: - if( $@TierraBG2 == 0 ) - donpcevent "Tierra_BG2::OnReadyCheck"; - end; - -OnReadyCheck: - if( $@TierraBG2 ) - end; - set .@Guillaume, getwaitingroomstate(0,"TV2R_Guillaume"); - set .@Croix, getwaitingroomstate(0,"TV2R_Croix"); - - if( .@Guillaume < 10 || .@Croix < 10 ) - { - mapannounce "bat_room","Battleground -- Tierra Valley [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0xF4A460; - end; - } - - set $@TierraBG2, 1; - donpcevent "TV2R_Croix::OnEnterBG"; - donpcevent "TV2R_Guillaume::OnEnterBG"; - donpcevent "Guillaume_TV2B::OnBuild"; - donpcevent "Croix_TV2B::OnBuild"; - bg_monster $@TierraBG2_id1,"bat_a02",176,345,"Food Depot",1909,"Tierra_BG2::OnGuillaumeBreak"; - bg_monster $@TierraBG2_id2,"bat_a02",167,50,"Food Storage",1910,"Tierra_BG2::OnCroixBreak"; - bg_monster 0,"bat_a02",273,204,"Neutrality Flag",1911,"Tierra_BG2::OnNeutralBreak"; - - set .Neutral_Base, 0; - set $@TierraBG2_Victory, 0; - - set .Guardian_1, 0; - set .Guardian_2, 0; - set .Guardian_3, 0; - - enablenpc "Therapist in battle#tv21"; - enablenpc "Therapist in battle#tv22"; - disablenpc "Croix Vintenar#tv2"; - disablenpc "Guillaume Vintenar#tv2"; - // Respawner - donpcevent "#gtv2_respawn::OnBGStart"; - donpcevent "#ctv2_respawn::OnBGStart"; - donpcevent "#ntv2_respawn::OnBGStart"; - // Warp Teams - announce "Battleground -- Tierra Valley [80-99] has started!",0,0xF4A460; - bg_warp $@TierraBG2_id1,"bat_a02",353,344; - bg_warp $@TierraBG2_id2,"bat_a02",353,52; - // Final Messages - sleep 6000; - mapannounce "bat_a02","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF; - sleep 2000; - mapannounce "bat_a02","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000; - - initnpctimer; - end; - -OnNeutralBreak: - if( getcharid(4) == $@TierraBG2_id1 ) - { - mapannounce "bat_a02","Guillaume obtained a neurality banner, so they have an advantage.",1,0x0000FF; - bg_team_setxy $@TierraBG2_id2,42,16; - areawarp "bat_a02",52,208,61,217,"bat_a02",42,16; - } - else if( getcharid(4) == $@TierraBG2_id2 ) - { - mapannounce "bat_a02","Croix obtained a neutrality banner, so they have an advantage.",1,0xFF0000; - bg_team_setxy $@TierraBG2_id1,50,374; - areawarp "bat_a02",52,208,61,217,"bat_a02",50,374; - } - else end; - - set .Neutral_Base, getcharid(4); - bg_team_setxy .Neutral_Base,56,212; - - if( .Guardian_1 == 0 ) - set .Guardian_1, bg_monster(.Neutral_Base,"bat_a02",280,233,"Guardian",1949,"Tierra_BG2::OnGuardian1"); - else - bg_monster_set_team .Guardian_1, .Neutral_Base; - - if( .Guardian_2 == 0 ) - set .Guardian_2, bg_monster(.Neutral_Base,"bat_a02",287,203,"Guardian",1950,"Tierra_BG2::OnGuardian2"); - else - bg_monster_set_team .Guardian_2, .Neutral_Base; - - if( .Guardian_3 == 0 ) - set .Guardian_3, bg_monster(.Neutral_Base,"bat_a02",268,204,"Guardian",1949,"Tierra_BG2::OnGuardian3"); - else - bg_monster_set_team .Guardian_3, .Neutral_Base; - - sleep 10000; - if( $@TierraBG2 != 1 ) end; - - if( .Neutral_Base == $@TierraBG2_id1 ) - bg_monster .Neutral_Base,"bat_a02",273,204,"Guillaume Flag",1912,"Tierra_BG2::OnNeutralBreak"; - else if( .Neutral_Base == $@TierraBG2_id2 ) - bg_monster .Neutral_Base,"bat_a02",273,204,"Croix Flag",1913,"Tierra_BG2::OnNeutralBreak"; - end; - -OnGuardian1: set .Guardian_1, 0; end; -OnGuardian2: set .Guardian_2, 0; end; -OnGuardian3: set .Guardian_3, 0; end; - -OnGuillaumeBreak: - set $@TierraBG2_Victory, 2; - mapannounce "bat_a02","Croix Vintenar Swandery: We destroyed Guillaume's food storehause. We won that! Wow!",1,0xFF0000; - donpcevent "Tierra_BG2::OnStop"; - end; - -OnCroixBreak: - set $@TierraBG2_Victory, 1; - mapannounce "bat_a02","Guillaume Vintenar Axl Rose: We destroyed Croix's food storehause. We won that! Wow!",1,0x0000FF; - donpcevent "Tierra_BG2::OnStop"; - end; - -OnTimer2400000: - mapannounce "bat_a02","Battle of Tierra Gorge will ends in 5 minutes",1,0xF4A460; - end; -OnTimer2640000: - mapannounce "bat_a02","Battle of Tierra Gorge will ends in 1 minute",1,0xF4A460; - end; - -OnTimer2700000: - set $@TierraBG2_Victory, 3; // Draw Game - mapannounce "bat_a02","Battle of Tierra Gorge is over. The time is out, this is a Tie",1,0xF4A460; - donpcevent "Tierra_BG2::OnStop"; - end; - -OnStop: - set $@TierraBG2, 2; - disablenpc "Therapist in battle#tv21"; - disablenpc "Therapist in battle#tv22"; - donpcevent "#gtv2_respawn::OnBGStop"; - donpcevent "#ctv2_respawn::OnBGStop"; - donpcevent "#ntv2_respawn::OnBGStop"; - enablenpc "Croix Vintenar#tv2"; - enablenpc "Guillaume Vintenar#tv2"; - killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak"; - killmonster "bat_a02","Tierra_BG2::OnCroixBreak"; - killmonster "bat_a02","Tierra_BG2::OnNeutralBreak"; - killmonster "bat_a02","Tierra_BG2::OnGuardian1"; - killmonster "bat_a02","Tierra_BG2::OnGuardian2"; - killmonster "bat_a02","Tierra_BG2::OnGuardian3"; - stopnpctimer; - sleep 3000; - bg_warp $@TierraBG2_id1,"bat_a02",50,374; - bg_warp $@TierraBG2_id2,"bat_a02",42,16; - sleep 3000; - mapannounce "bat_a02","Battle of Tierra Gorge will close in 1 minute!",1,0xF4A460; - initnpctimer; - end; - -OnTimer30000: - if( $@TierraBG2 == 2 ) - mapannounce "bat_a02","Battle of Tierra Valley will close in 30 seconds!",1,0xF4A460; - end; -OnTimer50000: - if( $@TierraBG2 == 2 ) - mapannounce "bat_a02","Battle of Tierra Valley will close in 10 seconds!",1,0xF4A460; - end; - -OnTimer60000: - if( $@TierraBG2 != 2 ) - end; -OnReset: - stopnpctimer; - set .Neutral_Base, 0; - disablenpc "Croix Vintenar#tv2"; - disablenpc "Guillaume Vintenar#tv2"; - disablenpc "Therapist in battle#tv21"; - disablenpc "Therapist in battle#tv22"; - donpcevent "#gtv2_respawn::OnBGStop"; - donpcevent "#gtv2_respawn::OnBGStop"; - donpcevent "#ctv2_respawn::OnBGStop"; - - killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak"; - killmonster "bat_a02","Tierra_BG2::OnCroixBreak"; - killmonster "bat_a02","Tierra_BG2::OnNeutralBreak"; - killmonster "bat_a02","Tierra_BG2::OnGuardian1"; - killmonster "bat_a02","Tierra_BG2::OnGuardian2"; - killmonster "bat_a02","Tierra_BG2::OnGuardian3"; - donpcevent "Guillaume_TV2B::OnDestroy"; - donpcevent "Croix_TV2B::OnDestroy"; - - set $@TierraBG2_Victory, 0; - if( $@TierraBG2_id1 ) { bg_destroy $@TierraBG2_id1; set $@TierraBG2_id1, 0; } - if( $@TierraBG2_id2 ) { bg_destroy $@TierraBG2_id2; set $@TierraBG2_id2, 0; } - sleep 1000; - mapwarp "bat_a02","bat_room",155,150; - sleep 2000; - maprespawnguildid "bat_a02",0,3; // Just in case someone else - sleep 2000; - set $@TierraBG2, 0; - donpcevent "Tierra_BG2::OnReadyCheck"; // Maybe a game is ready to start - end; -} - -// MapFlags -// ********************************************************************* - -bat_a02 mapflag battleground -bat_a02 mapflag nomemo -bat_a02 mapflag nosave SavePoint -bat_a02 mapflag noteleport -bat_a02 mapflag nowarp -bat_a02 mapflag nowarpto -bat_a02 mapflag noreturn -bat_a02 mapflag nobranch -bat_a02 mapflag nopenalty - -// Other Flags -// ********************************************************************* - -bat_a02,148,85,1 duplicate(Croix camp#bat) Croix camp#bat22 974 -bat_a02,155,85,1 duplicate(Croix camp#bat) Croix camp#bat23 974 -bat_a02,357,75,1 duplicate(Croix camp#bat) Croix camp#bat24 974 -bat_a02,348,74,1 duplicate(Croix camp#bat) Croix camp#bat25 974 -bat_a02,199,49,1 duplicate(Croix camp#bat) Croix camp#bat26 974 -bat_a02,168,16,1 duplicate(Croix camp#bat) Croix camp#bat27 974 -bat_a02,138,12,1 duplicate(Croix camp#bat) Croix camp#bat28 974 -bat_a02,108,35,1 duplicate(Croix camp#bat) Croix camp#bat29 974 -bat_a02,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat23 973 -bat_a02,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat24 973 -bat_a02,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat25 973 -bat_a02,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat26 973 -bat_a02,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat27 973 -bat_a02,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat28 973 -bat_a02,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat29 973 -bat_a02,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat30 973 -bat_a02,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat31 973 - -// Barricades -// ********************************************************************* - -- script Guillaume_TV2B -1,{ - end; - -OnBuild: - for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) - bg_monster 0,"bat_a02",170+.@i,130,"Barricade",1906,"Guillaume_TV2B::OnWall"; - - setwall "bat_a02",170,130,16,6,1,"bat_a02_g1"; - set .MyMobCount,16; - end; - -OnDestroy: - killmonster "bat_a02","Guillaume_TV2B::OnWall"; - delwall "bat_a02_g1"; - set .MyMobCount,0; - end; - -OnWall: - if( set(.MyMobCount,.MyMobCount - 1) < 1 ) - { - delwall "bat_a02_g1"; - mapannounce "bat_a02","South Gate : The Gate has been Destroy!!",1,0xF4A460; - } - end; -} - -- script Croix_TV2B -1,{ - end; - -OnBuild: - for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) - bg_monster 0,"bat_a02",186+.@i,266,"Barricade",1906,"Croix_TV2B::OnWall"; - - setwall "bat_a02",186,266,16,6,1,"bat_a02_c1"; - set .MyMobCount,16; - end; - -OnDestroy: - killmonster "bat_a02","Croix_TV2B::OnWall"; - delwall "bat_a02_c1"; - set .MyMobCount,0; - end; - -OnWall: - if( set(.MyMobCount,.MyMobCount - 1) < 1 ) - { - delwall "bat_a02_c1"; - mapannounce "bat_a02","North Gate : A Gate has been Destroy!!",1,0xF4A460; - } - end; -} - -// Battleground rewards -// ********************************************************************* - -bat_a02,45,19,3 script Croix Vintenar#tv2 415,{ - if( $@TierraBG2_Victory ) - { - if( $@TierraBG2_Victory == Bat_Team ) - { // Victory - set .@Reward, 3; - mes "[Swandery]"; - mes "Blessed Croax!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 1; - mes "[Swandery]"; - mes "Oh, " + strcharinfo(0) + ". Don't be sad."; - mes "Even though we didn't win, we did our best."; - mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; - close2; - } - - set Tierra_BG_Tick, gettimetick(2) + 300; - getitem 7828, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -bat_a02,53,377,3 script Guillaume Vintenar#tv2 419,{ - if( $@TierraBG2_Victory ) - { - if( $@TierraBG2_Victory == Bat_Team ) - { // Victory - set .@Reward, 3; - mes "[Swandery]"; - mes "Blessed Guillaume!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 1; - mes "[Swandery]"; - mes "You lost, but you're dedicated to this battle."; - mes "This is a reward for your great dedication by Guillaume Marollo!"; - mes "Just take this defeat a lesson, and later you would definitely learn."; - close2; - } - - set Tierra_BG_Tick, gettimetick(2) + 300; - getitem 7828, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -// Battleground Therapist -// ********************************************************************* - -bat_a02,60,216,3 script Ghost#tv23 950,{ - mes "[Ghost in valley]"; - mes "Boo...Boo..."; - specialeffect2 312; - close; -} - -bat_a02,53,377,3 script Therapist in battle#tv22 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -bat_a02,45,18,3 script Therapist in battle#tv21 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -// Battleground Respawn -// ********************************************************************* - -bat_a02,57,213,0 script #ntv2_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer19000: - misceffect 83; - end; - -OnTimer20000: - areapercentheal "bat_a02",52,208,61,217,100,100; - areawarp "bat_a02",52,208,61,217,"bat_a02",301,208; - initnpctimer; - end; -} - -bat_a02,50,374,0 script #gtv2_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer24000: - misceffect 83; - end; - -OnTimer25000: - areapercentheal "bat_a02",46,370,54,378,100,100; - areawarp "bat_a02",46,370,54,378,"bat_a02",354,340; - initnpctimer; - end; -} - -bat_a02,42,16,0 script #ctv2_respawn 139,{ - end; - -OnBGStart: - initnpctimer; - end; - -OnBGStop: - stopnpctimer; - end; - -OnTimer24000: - misceffect 83; - end; - -OnTimer25000: - areapercentheal "bat_a02",38,12,47,21,100,100; - areawarp "bat_a02",38,12,47,21,"bat_a02",354,57; - initnpctimer; - end; -} +// ============================================================================== +// BattleGround System - Tierra Valley 2 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,85,97,4 script Registration::TV2R_Guillaume 418,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnGuillaumeJoin",1; + end; +OnEnterBG: + set $@TierraBG2_id1, waitingroom2bg("bat_a02",50,374,"Tierra_BG2::OnGuillaumeQuit",""); + end; +} + +bat_room,85,74,0 script Registration::TV2R_Croix 414,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnCroixJoin",1; + end; +OnEnterBG: + set $@TierraBG2_id2, waitingroom2bg("bat_a02",42,16,"Tierra_BG2::OnCroixQuit",""); + end; +} + +// Battleground Engine +// ********************************************************************* + +- script Tierra_BG2 -1,{ + end; + +OnInit: + disablenpc "Croix Vintenar#tv2"; + disablenpc "Guillaume Vintenar#tv2"; + disablenpc "Therapist in battle#tv21"; + disablenpc "Therapist in battle#tv22"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + set BG_Delay_Tick, gettimetick(2) + 1200; + end; + +OnGuillaumeJoin: +OnCroixJoin: + if( $@TierraBG2 == 0 ) + donpcevent "Tierra_BG2::OnReadyCheck"; + end; + +OnReadyCheck: + if( $@TierraBG2 ) + end; + set .@Guillaume, getwaitingroomstate(0,"TV2R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"TV2R_Croix"); + + if( .@Guillaume < 10 || .@Croix < 10 ) + { + mapannounce "bat_room","Battleground -- Tierra Valley [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0xF4A460; + end; + } + + set $@TierraBG2, 1; + donpcevent "TV2R_Croix::OnEnterBG"; + donpcevent "TV2R_Guillaume::OnEnterBG"; + donpcevent "Guillaume_TV2B::OnBuild"; + donpcevent "Croix_TV2B::OnBuild"; + bg_monster $@TierraBG2_id1,"bat_a02",176,345,"Food Depot",1909,"Tierra_BG2::OnGuillaumeBreak"; + bg_monster $@TierraBG2_id2,"bat_a02",167,50,"Food Storage",1910,"Tierra_BG2::OnCroixBreak"; + bg_monster 0,"bat_a02",273,204,"Neutrality Flag",1911,"Tierra_BG2::OnNeutralBreak"; + + set .Neutral_Base, 0; + set $@TierraBG2_Victory, 0; + + set .Guardian_1, 0; + set .Guardian_2, 0; + set .Guardian_3, 0; + + enablenpc "Therapist in battle#tv21"; + enablenpc "Therapist in battle#tv22"; + disablenpc "Croix Vintenar#tv2"; + disablenpc "Guillaume Vintenar#tv2"; + // Respawner + donpcevent "#gtv2_respawn::OnBGStart"; + donpcevent "#ctv2_respawn::OnBGStart"; + donpcevent "#ntv2_respawn::OnBGStart"; + // Warp Teams + announce "Battleground -- Tierra Valley [80-99] has started!",0,0xF4A460; + bg_warp $@TierraBG2_id1,"bat_a02",353,344; + bg_warp $@TierraBG2_id2,"bat_a02",353,52; + // Final Messages + sleep 6000; + mapannounce "bat_a02","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF; + sleep 2000; + mapannounce "bat_a02","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000; + + initnpctimer; + end; + +OnNeutralBreak: + if( getcharid(4) == $@TierraBG2_id1 ) + { + mapannounce "bat_a02","Guillaume obtained a neurality banner, so they have an advantage.",1,0x0000FF; + bg_team_setxy $@TierraBG2_id2,42,16; + areawarp "bat_a02",52,208,61,217,"bat_a02",42,16; + } + else if( getcharid(4) == $@TierraBG2_id2 ) + { + mapannounce "bat_a02","Croix obtained a neutrality banner, so they have an advantage.",1,0xFF0000; + bg_team_setxy $@TierraBG2_id1,50,374; + areawarp "bat_a02",52,208,61,217,"bat_a02",50,374; + } + else end; + + set .Neutral_Base, getcharid(4); + bg_team_setxy .Neutral_Base,56,212; + + if( .Guardian_1 == 0 ) + set .Guardian_1, bg_monster(.Neutral_Base,"bat_a02",280,233,"Guardian",1949,"Tierra_BG2::OnGuardian1"); + else + bg_monster_set_team .Guardian_1, .Neutral_Base; + + if( .Guardian_2 == 0 ) + set .Guardian_2, bg_monster(.Neutral_Base,"bat_a02",287,203,"Guardian",1950,"Tierra_BG2::OnGuardian2"); + else + bg_monster_set_team .Guardian_2, .Neutral_Base; + + if( .Guardian_3 == 0 ) + set .Guardian_3, bg_monster(.Neutral_Base,"bat_a02",268,204,"Guardian",1949,"Tierra_BG2::OnGuardian3"); + else + bg_monster_set_team .Guardian_3, .Neutral_Base; + + sleep 10000; + if( $@TierraBG2 != 1 ) end; + + if( .Neutral_Base == $@TierraBG2_id1 ) + bg_monster .Neutral_Base,"bat_a02",273,204,"Guillaume Flag",1912,"Tierra_BG2::OnNeutralBreak"; + else if( .Neutral_Base == $@TierraBG2_id2 ) + bg_monster .Neutral_Base,"bat_a02",273,204,"Croix Flag",1913,"Tierra_BG2::OnNeutralBreak"; + end; + +OnGuardian1: set .Guardian_1, 0; end; +OnGuardian2: set .Guardian_2, 0; end; +OnGuardian3: set .Guardian_3, 0; end; + +OnGuillaumeBreak: + set $@TierraBG2_Victory, 2; + mapannounce "bat_a02","Croix Vintenar Swandery: We destroyed Guillaume's food storehause. We won that! Wow!",1,0xFF0000; + donpcevent "Tierra_BG2::OnStop"; + end; + +OnCroixBreak: + set $@TierraBG2_Victory, 1; + mapannounce "bat_a02","Guillaume Vintenar Axl Rose: We destroyed Croix's food storehause. We won that! Wow!",1,0x0000FF; + donpcevent "Tierra_BG2::OnStop"; + end; + +OnTimer2400000: + mapannounce "bat_a02","Battle of Tierra Gorge will ends in 5 minutes",1,0xF4A460; + end; +OnTimer2640000: + mapannounce "bat_a02","Battle of Tierra Gorge will ends in 1 minute",1,0xF4A460; + end; + +OnTimer2700000: + set $@TierraBG2_Victory, 3; // Draw Game + mapannounce "bat_a02","Battle of Tierra Gorge is over. The time is out, this is a Tie",1,0xF4A460; + donpcevent "Tierra_BG2::OnStop"; + end; + +OnStop: + set $@TierraBG2, 2; + disablenpc "Therapist in battle#tv21"; + disablenpc "Therapist in battle#tv22"; + donpcevent "#gtv2_respawn::OnBGStop"; + donpcevent "#ctv2_respawn::OnBGStop"; + donpcevent "#ntv2_respawn::OnBGStop"; + enablenpc "Croix Vintenar#tv2"; + enablenpc "Guillaume Vintenar#tv2"; + killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak"; + killmonster "bat_a02","Tierra_BG2::OnCroixBreak"; + killmonster "bat_a02","Tierra_BG2::OnNeutralBreak"; + killmonster "bat_a02","Tierra_BG2::OnGuardian1"; + killmonster "bat_a02","Tierra_BG2::OnGuardian2"; + killmonster "bat_a02","Tierra_BG2::OnGuardian3"; + stopnpctimer; + sleep 3000; + bg_warp $@TierraBG2_id1,"bat_a02",50,374; + bg_warp $@TierraBG2_id2,"bat_a02",42,16; + sleep 3000; + mapannounce "bat_a02","Battle of Tierra Gorge will close in 1 minute!",1,0xF4A460; + initnpctimer; + end; + +OnTimer30000: + if( $@TierraBG2 == 2 ) + mapannounce "bat_a02","Battle of Tierra Valley will close in 30 seconds!",1,0xF4A460; + end; +OnTimer50000: + if( $@TierraBG2 == 2 ) + mapannounce "bat_a02","Battle of Tierra Valley will close in 10 seconds!",1,0xF4A460; + end; + +OnTimer60000: + if( $@TierraBG2 != 2 ) + end; +OnReset: + stopnpctimer; + set .Neutral_Base, 0; + disablenpc "Croix Vintenar#tv2"; + disablenpc "Guillaume Vintenar#tv2"; + disablenpc "Therapist in battle#tv21"; + disablenpc "Therapist in battle#tv22"; + donpcevent "#gtv2_respawn::OnBGStop"; + donpcevent "#gtv2_respawn::OnBGStop"; + donpcevent "#ctv2_respawn::OnBGStop"; + + killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak"; + killmonster "bat_a02","Tierra_BG2::OnCroixBreak"; + killmonster "bat_a02","Tierra_BG2::OnNeutralBreak"; + killmonster "bat_a02","Tierra_BG2::OnGuardian1"; + killmonster "bat_a02","Tierra_BG2::OnGuardian2"; + killmonster "bat_a02","Tierra_BG2::OnGuardian3"; + donpcevent "Guillaume_TV2B::OnDestroy"; + donpcevent "Croix_TV2B::OnDestroy"; + + set $@TierraBG2_Victory, 0; + if( $@TierraBG2_id1 ) { bg_destroy $@TierraBG2_id1; set $@TierraBG2_id1, 0; } + if( $@TierraBG2_id2 ) { bg_destroy $@TierraBG2_id2; set $@TierraBG2_id2, 0; } + sleep 1000; + mapwarp "bat_a02","bat_room",155,150; + sleep 2000; + maprespawnguildid "bat_a02",0,3; // Just in case someone else + sleep 2000; + set $@TierraBG2, 0; + donpcevent "Tierra_BG2::OnReadyCheck"; // Maybe a game is ready to start + end; +} + +// MapFlags +// ********************************************************************* + +bat_a02 mapflag battleground +bat_a02 mapflag nomemo +bat_a02 mapflag nosave SavePoint +bat_a02 mapflag noteleport +bat_a02 mapflag nowarp +bat_a02 mapflag nowarpto +bat_a02 mapflag noreturn +bat_a02 mapflag nobranch +bat_a02 mapflag nopenalty + +// Other Flags +// ********************************************************************* + +bat_a02,148,85,1 duplicate(Croix camp#bat) Croix camp#bat22 974 +bat_a02,155,85,1 duplicate(Croix camp#bat) Croix camp#bat23 974 +bat_a02,357,75,1 duplicate(Croix camp#bat) Croix camp#bat24 974 +bat_a02,348,74,1 duplicate(Croix camp#bat) Croix camp#bat25 974 +bat_a02,199,49,1 duplicate(Croix camp#bat) Croix camp#bat26 974 +bat_a02,168,16,1 duplicate(Croix camp#bat) Croix camp#bat27 974 +bat_a02,138,12,1 duplicate(Croix camp#bat) Croix camp#bat28 974 +bat_a02,108,35,1 duplicate(Croix camp#bat) Croix camp#bat29 974 +bat_a02,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat23 973 +bat_a02,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat24 973 +bat_a02,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat25 973 +bat_a02,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat26 973 +bat_a02,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat27 973 +bat_a02,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat28 973 +bat_a02,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat29 973 +bat_a02,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat30 973 +bat_a02,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat31 973 + +// Barricades +// ********************************************************************* + +- script Guillaume_TV2B -1,{ + end; + +OnBuild: + for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) + bg_monster 0,"bat_a02",170+.@i,130,"Barricade",1906,"Guillaume_TV2B::OnWall"; + + setwall "bat_a02",170,130,16,6,1,"bat_a02_g1"; + set .MyMobCount,16; + end; + +OnDestroy: + killmonster "bat_a02","Guillaume_TV2B::OnWall"; + delwall "bat_a02_g1"; + set .MyMobCount,0; + end; + +OnWall: + if( set(.MyMobCount,.MyMobCount - 1) < 1 ) + { + delwall "bat_a02_g1"; + mapannounce "bat_a02","South Gate : The Gate has been Destroy!!",1,0xF4A460; + } + end; +} + +- script Croix_TV2B -1,{ + end; + +OnBuild: + for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) + bg_monster 0,"bat_a02",186+.@i,266,"Barricade",1906,"Croix_TV2B::OnWall"; + + setwall "bat_a02",186,266,16,6,1,"bat_a02_c1"; + set .MyMobCount,16; + end; + +OnDestroy: + killmonster "bat_a02","Croix_TV2B::OnWall"; + delwall "bat_a02_c1"; + set .MyMobCount,0; + end; + +OnWall: + if( set(.MyMobCount,.MyMobCount - 1) < 1 ) + { + delwall "bat_a02_c1"; + mapannounce "bat_a02","North Gate : A Gate has been Destroy!!",1,0xF4A460; + } + end; +} + +// Battleground rewards +// ********************************************************************* + +bat_a02,45,19,3 script Croix Vintenar#tv2 415,{ + if( $@TierraBG2_Victory ) + { + if( $@TierraBG2_Victory == Bat_Team ) + { // Victory + set .@Reward, 3; + mes "[Swandery]"; + mes "Blessed Croax!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + } + else + { // + set .@Reward, 1; + mes "[Swandery]"; + mes "Oh, " + strcharinfo(0) + ". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; + close2; + } + + set Tierra_BG_Tick, gettimetick(2) + 300; + getitem 7828, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +bat_a02,53,377,3 script Guillaume Vintenar#tv2 419,{ + if( $@TierraBG2_Victory ) + { + if( $@TierraBG2_Victory == Bat_Team ) + { // Victory + set .@Reward, 3; + mes "[Swandery]"; + mes "Blessed Guillaume!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + } + else + { // + set .@Reward, 1; + mes "[Swandery]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat a lesson, and later you would definitely learn."; + close2; + } + + set Tierra_BG_Tick, gettimetick(2) + 300; + getitem 7828, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +// Battleground Therapist +// ********************************************************************* + +bat_a02,60,216,3 script Ghost#tv23 950,{ + mes "[Ghost in valley]"; + mes "Boo...Boo..."; + specialeffect2 312; + close; +} + +bat_a02,53,377,3 script Therapist in battle#tv22 95,{ + mes "[Therapist in battle]"; + mes "Just close your eyes, and take a deep breathe."; + mes "You can be free from pain."; + specialeffect2 312; + close; +} + +bat_a02,45,18,3 script Therapist in battle#tv21 95,{ + mes "[Therapist in battle]"; + mes "Just close your eyes, and take a deep breathe."; + mes "You can be free from pain."; + specialeffect2 312; + close; +} + +// Battleground Respawn +// ********************************************************************* + +bat_a02,57,213,0 script #ntv2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer19000: + misceffect 83; + end; + +OnTimer20000: + areapercentheal "bat_a02",52,208,61,217,100,100; + areawarp "bat_a02",52,208,61,217,"bat_a02",301,208; + initnpctimer; + end; +} + +bat_a02,50,374,0 script #gtv2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_a02",46,370,54,378,100,100; + areawarp "bat_a02",46,370,54,378,"bat_a02",354,340; + initnpctimer; + end; +} + +bat_a02,42,16,0 script #ctv2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_a02",38,12,47,21,100,100; + areawarp "bat_a02",38,12,47,21,"bat_a02",354,57; + initnpctimer; + end; +} diff --git a/npc/cities/moscovia.txt b/npc/cities/moscovia.txt index 8f23acdad..456ce2851 100644 --- a/npc/cities/moscovia.txt +++ b/npc/cities/moscovia.txt @@ -1,136 +1,136 @@ -//===== eAthena Script ======================================= -//= Moscovia Town -//===== By: ================================================== -//= Kisuka -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= eAthena SVN -//===== Description: ========================================= -//= Moscovia Town Script -//===== Additional Comments: ================================= -//= 1.0 First Version. [Kisuka] -//= 1.1 Removed villagers (they are part of a quest). [Kisuka] -//============================================================ - -// Moscovia Transportation -//============================================================ -alberta,245,66,4 script Moscovia P.R. Officer#1 960,{ - mes "[Moscovia P.R. Officer]"; - mes "Moscovia! Do you know Moscovia?"; - mes "the paradise spreading on the endless seas..."; - mes "Welcome to Moscovia"; - mes "It's adventurous and mystic."; - next; - switch(select("About Moscovia...:Go to Moscovia.:Cancel")) { - case 1: - mes "[Moscovia P.R. Officer]"; - mes "Moscovia is a beautiful kingdom"; - mes "on an island located north of Rune"; - mes "Midgarts."; - next; - mes "[Moscovia P.R. Officer]"; - mes "I'm sure that you will be"; - mes "absolutely fascinated"; - mes "by Moscovia's beautiful scenery"; - mes "and gorgeous palace."; - next; - mes "[Moscovia P.R. Officer]"; - mes "Now that our long winter has"; - mes "passed,"; - mes "I'm happy that I can now show you"; - mes "our gorgeous hometown."; - next; - mes "[Moscovia P.R. Officer]"; - mes "If you feel like visiting Moscovia"; - mes "take the chance now!"; - mes "I'll help you to have a nice trip"; - mes "to Moscovia!"; - close; - - case 2: - mes "[Moscovia P.R. Officer]"; - mes "Ok then, let us start now."; - mes "You should pay me 10,000 zeny"; - mes "to go to Moscovia."; - mes "But when you come back,"; - mes "you don't have to pay."; - next; - mes "[Moscovia P.R. Officer]"; - mes "Can we leave now?"; - next; - if (select("Let's go!:Cancel") == 2) { - mes "[Moscovia P.R. Officer]"; - mes "If you're too busy now,"; - mes "please tell me again whenever you want."; - mes "I'm always ready to guide anyone to Moscovia."; - close; - } - if (Zeny < 10000) { - mes "[Moscovia P.R. Officer]"; - mes "I'm sorry but you don't have"; - mes "enough zeny now"; - mes "You need 10,000 zeny"; - mes "to go to Moscovia"; - mes "Thank you."; - close; - }else{ - mes "[Moscovia P.R. Officer]"; - mes "Ok then, we're leaving now."; - close2; - set Zeny,Zeny - 10000; - warp "moscovia",163,55; - end; - } - case 3: - mes "[Moscovia P.R. Officer]"; - mes "If you're too busy now,"; - mes "please tell me again whenever you want."; - mes "I'm always ready to guide anyone to Moscovia."; - close; - } -} - -moscovia,166,53,4 script Moscovia P.R. Officer#2 960,{ - mes "[Moscovia P.R. Officer]"; - mes "How was your trip?"; - mes "Do you have good memories from Moscovia?"; - mes "A ship is now leaving"; - mes "for Rune Midgarts."; - next; - if (select("Return to Alberta:Cancel") == 2) { - mes "[Moscovia P.R. Officer]"; - mes "If you want to see more"; - mes "please take your time."; - close; - } - mes "[Moscovia P.R. Officer]"; - mes "Please come and visit soon."; - mes "Ok then, Let's get going."; - close2; - warp "alberta",243,67; - end; -} - -// Generic Moscovia NPCs -//============================================================ -moscovia,253,166,4 script Soldier#mosk1 966,{ - mes "[Soldier]"; - mes "Our dear Csar Alexsay III is in the palace."; - mes "He rules over Moscovia."; - mes "Please be careful not to cause him any trouble."; - close; -} - -// Moscovia Palace -//============================================================ -- script Soldier#mosk::MoscSoldier 966,{ - mes "[Soldier]"; - mes "Please be silent or the Csar will be angry."; - close; -} - -mosk_in,118,66,5 duplicate(MoscSoldier) Soldier#mosk02 966 -mosk_in,133,110,3 duplicate(MoscSoldier) Soldier#mosk03 966 -mosk_in,133,73,3 duplicate(MoscSoldier) Soldier#mosk04 966 +//===== eAthena Script ======================================= +//= Moscovia Town +//===== By: ================================================== +//= Kisuka +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +//= Moscovia Town Script +//===== Additional Comments: ================================= +//= 1.0 First Version. [Kisuka] +//= 1.1 Removed villagers (they are part of a quest). [Kisuka] +//============================================================ + +// Moscovia Transportation +//============================================================ +alberta,245,66,4 script Moscovia P.R. Officer#1 960,{ + mes "[Moscovia P.R. Officer]"; + mes "Moscovia! Do you know Moscovia?"; + mes "the paradise spreading on the endless seas..."; + mes "Welcome to Moscovia"; + mes "It's adventurous and mystic."; + next; + switch(select("About Moscovia...:Go to Moscovia.:Cancel")) { + case 1: + mes "[Moscovia P.R. Officer]"; + mes "Moscovia is a beautiful kingdom"; + mes "on an island located north of Rune"; + mes "Midgarts."; + next; + mes "[Moscovia P.R. Officer]"; + mes "I'm sure that you will be"; + mes "absolutely fascinated"; + mes "by Moscovia's beautiful scenery"; + mes "and gorgeous palace."; + next; + mes "[Moscovia P.R. Officer]"; + mes "Now that our long winter has"; + mes "passed,"; + mes "I'm happy that I can now show you"; + mes "our gorgeous hometown."; + next; + mes "[Moscovia P.R. Officer]"; + mes "If you feel like visiting Moscovia"; + mes "take the chance now!"; + mes "I'll help you to have a nice trip"; + mes "to Moscovia!"; + close; + + case 2: + mes "[Moscovia P.R. Officer]"; + mes "Ok then, let us start now."; + mes "You should pay me 10,000 zeny"; + mes "to go to Moscovia."; + mes "But when you come back,"; + mes "you don't have to pay."; + next; + mes "[Moscovia P.R. Officer]"; + mes "Can we leave now?"; + next; + if (select("Let's go!:Cancel") == 2) { + mes "[Moscovia P.R. Officer]"; + mes "If you're too busy now,"; + mes "please tell me again whenever you want."; + mes "I'm always ready to guide anyone to Moscovia."; + close; + } + if (Zeny < 10000) { + mes "[Moscovia P.R. Officer]"; + mes "I'm sorry but you don't have"; + mes "enough zeny now"; + mes "You need 10,000 zeny"; + mes "to go to Moscovia"; + mes "Thank you."; + close; + }else{ + mes "[Moscovia P.R. Officer]"; + mes "Ok then, we're leaving now."; + close2; + set Zeny,Zeny - 10000; + warp "moscovia",163,55; + end; + } + case 3: + mes "[Moscovia P.R. Officer]"; + mes "If you're too busy now,"; + mes "please tell me again whenever you want."; + mes "I'm always ready to guide anyone to Moscovia."; + close; + } +} + +moscovia,166,53,4 script Moscovia P.R. Officer#2 960,{ + mes "[Moscovia P.R. Officer]"; + mes "How was your trip?"; + mes "Do you have good memories from Moscovia?"; + mes "A ship is now leaving"; + mes "for Rune Midgarts."; + next; + if (select("Return to Alberta:Cancel") == 2) { + mes "[Moscovia P.R. Officer]"; + mes "If you want to see more"; + mes "please take your time."; + close; + } + mes "[Moscovia P.R. Officer]"; + mes "Please come and visit soon."; + mes "Ok then, Let's get going."; + close2; + warp "alberta",243,67; + end; +} + +// Generic Moscovia NPCs +//============================================================ +moscovia,253,166,4 script Soldier#mosk1 966,{ + mes "[Soldier]"; + mes "Our dear Csar Alexsay III is in the palace."; + mes "He rules over Moscovia."; + mes "Please be careful not to cause him any trouble."; + close; +} + +// Moscovia Palace +//============================================================ +- script Soldier#mosk::MoscSoldier 966,{ + mes "[Soldier]"; + mes "Please be silent or the Csar will be angry."; + close; +} + +mosk_in,118,66,5 duplicate(MoscSoldier) Soldier#mosk02 966 +mosk_in,133,110,3 duplicate(MoscSoldier) Soldier#mosk03 966 +mosk_in,133,73,3 duplicate(MoscSoldier) Soldier#mosk04 966 mosk_in,113,124,5 duplicate(MoscSoldier) Soldier#mosk05 966 \ No newline at end of file diff --git a/npc/events/MemorialDay_2008.txt b/npc/events/MemorialDay_2008.txt index cf8eaa8ad..cbecbdae8 100644 --- a/npc/events/MemorialDay_2008.txt +++ b/npc/events/MemorialDay_2008.txt @@ -1,518 +1,518 @@ -//===== eAthena Script ======================================= -//= In Memory of Heroes (iRO Memorial Day 2008) -//===== By: ================================================== -//= Kisuka -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= eAthena SVN -//===== Description: ========================================= -// -//===== Additional Comments: ================================= -//= 1.0 First version. [Kisuka] -//= 1.1 Many Many Fixes. [Kisuka] -//============================================================ - -// ================== Lauds ====================== -// =============================================== -prontera,182,214,4 script Lauds#Memorial 58,{ - if(Memorial08 < 1) { - mes "[Mad Sago Lauds]"; - mes "Hey, yo!"; - mes "What are you doing there!?"; - next; - mes "[Mad Sago Lauds]"; - mes "Do you know what day it is!?"; - mes "It's a very important date!"; - mes "A very important date to remember!"; - next; - mes "[Mad Sago Lauds]"; - mes "What is this!?"; - emotion 0; - next; - mes "[Mad Sago Lauds]"; - mes "Where is your towel!?"; - next; - mes "[" + strcharinfo(0) + "]"; - mes "My what?"; - next; - mes "[Mad Sago Lauds]"; - mes "How are you supposed to go on your trip"; - mes "without your towel!?"; - next; - mes "[Mad Sago Lauds]"; - mes "If you think this is just another"; - mes "holiday,"; - mes "I'm not going to waste my breath."; - mes "But if you like to pay a tribute to"; - mes "great soldiers,"; - mes "I will help you ready yourself"; - next; - if (select("I guess so...:Are you crazy or something?") == 2) { - mes "[Mad Sago Lauds]"; - mes "Fine, be unprepared!"; - next; - mes "[Mad Sago Lauds]"; - mes ""; - mes "^FF0000YOU WILL RUE THE DAY!^000000"; - close; - } - mes "[Mad Sago Lauds]"; - mes "Great!"; - mes "Then listen to me carefully."; - next; - mes "[Mad Sago Lauds]"; - mes "Now before you can pay tribute to"; - mes "the fallen soldiers"; - mes "you must be properly equipped"; - mes "Without your towel you will be"; - mes "lost!"; - mes "If you bring me the materials, I can make you a towel."; - next; - mes "[Mad Sago Lauds]"; - mes "Listen closely."; - mes "Bring me ^FF000030 Fabric and 20 Fluffs^000000."; - set Memorial08,1; - close; - } - - else if(Memorial08 == 1) { - if (countitem(1059) < 30 || countitem(914) < 20) { - mes "[Mad Sago Lauds]"; - mes "What are these? They aren't"; - mes "enough?!"; - mes "*Sigh* Do I really have to tell you"; - mes "again?!"; - mes "Bring me ^FF000030 Fabric and 20 Fluffs^000000."; - close; - }else{ - mes "***Mad Sago Lauds appears to be"; - mes "muttering to himself***"; - next; - mes "[Mad Sago Lauds]"; - mes "So, did you bring the towel"; - mes "materials?"; - next; - mes "[Mad Sago Lauds]"; - mes "Excellent; you've brought them"; - mes "all."; - mes "Then I shall make you a Towel of"; - mes "Memory as I promised."; - mes "Give me a moment."; - next; - mes "[Mad Sago Lauds]"; - mes "There you go!"; - delitem 1059,30; - delitem 914,20; - getitem 6025,1; - getnameditem 6025," + strcharinfo(0) + "; - set Memorial08,2; - close; - } - } - - else if(Memorial08 == 2) { - mes "[Mad Sago Lauds]"; - mes "Ah, you have fluffy new towel now"; - mes "I even put your name on it"; - next; - mes "[Mad Sago Lauds]"; - mes "Say, how do you like to go"; - mes "on a journey to pay a tribute to"; - mes "Memorial Day?"; - next; - if (select("Sure.:No, I'm Busy.") == 2) { - mes "[Mad Sago Lauds]"; - mes "Don't come crying to me"; - mes "if someone decides to"; - mes "build a highway through"; - mes "your home!"; - close; - } - mes "[Mad Sago Lauds]"; - mes "Good. By the way, do you even know"; - mes "what the towel is for?"; - next; - mes "[Mad Sago Lauds]"; - mes "It seems you're just carrying it"; - mes "without understanding its meaning."; - mes "What a shame! You should go speak"; - mes "to ^FF0000Grast in Prontera^000000."; - set Memorial08,3; - close; - } - - else if(Memorial08 == 3) { - mes "[Mad Sago Lauds]"; - mes "What are you still doing here? I"; - mes "told you to go speak to Grast in"; - mes "Prontera!"; - close; - } - - else if(Memorial08 == 4 || Memorial08 == 5 || Memorial08 == 6) { - mes "[Mad Sago Lauds]"; - mes "Go help Grast, and then come back."; - close; - } - - else if(Memorial08 == 7) { - mes "[Mad Sago Lauds]"; - mes "Oh, you've brought them all."; - mes "Hahaha!"; - mes "HAHAHAHAHAHA!!!! cough cough"; - next; - mes "[Mad Sago Lauds]"; - mes "Please give them to me. Thank you"; - mes "for your hard work, by the way."; - mes "Say, have you learned anything from the journey?"; - mes "Now is to go visit the plaque at 12"; - mes "o'clock direction in Prontera."; - next; - mes "[Mad Sago Lauds]"; - mes "What do you mean you were just"; - mes "there?"; - next; - mes "[Mad Sago Lauds]"; - mes "What? Why are you giving me your"; - mes "garbage!"; - mes "Those items are not useful to me at all"; - mes "You should be going to the plaque!"; - set Memorial08,8; - close; - } - - else if(Memorial08 == 8) { - mes "[Mad Sago Lauds]"; - mes "Stop trying to give me your garbage!"; - mes "Go to the plaque at 12 o'clock"; - mes "direction in Prontera for your journey!"; - close; - } - - else if(Memorial08 >= 9) { - set .@RandomMsg, rand(1,5); - if(.@RandomMsg == 1) { - mes "[Mad Sago Lauds]"; - mes "Don't panic!"; - emotion 0; - close; - } - else if(.@RandomMsg == 2) { - mes "[Mad Sago Lauds]"; - mes "Life... is like a grapefruit."; - mes "It's orange and squishy, and has a"; - mes "few pips in it,"; - mes "and some folks have half a one for"; - mes "breakfast."; - close; - } - else if(.@RandomMsg == 3) { - mes "[Mad Sago Lauds]"; - mes "There was a point to this story,"; - mes "but it has temporarily escaped the"; - mes "chronicler's mind."; - close; - } - else if(.@RandomMsg == 4) { - mes "[Mad Sago Lauds]"; - mes "42!"; - close; - } - else if(.@RandomMsg == 5) { - mes "[Mad Sago Lauds]"; - mes "It is a mistake to think you can"; - mes "solve any major problems just with"; - mes "potatoes."; - close; - } - } -} - -// ============== Memorial Plaque ================ -// =============================================== -prontera,153,286,4 script Memorial Plaque#Memorial 857,{ - if(Memorial08 < 8) { - mes "[" + strcharinfo(0) + "]"; - mes "- It's a dusty old plaque.-"; - close; - } - - else if(Memorial08 == 8) { - mes "[" + strcharinfo(0) + "]"; - mes "- It's a dusty old plaque.-"; - mes "'This must be what Lauds was talking about.'"; - mes "'Let's dust it off with the towel.'"; - next; - set Memorial08,9; - getexp 93750,43750; - goto L_CleanPlaque; - } - - else if(Memorial08 >= 9) { - goto L_CleanPlaque; - } - - L_CleanPlaque: - mes "- You see a message from the cleaned plaque."; - next; - mes "-Although no sculptured marble"; - mes "should rise to their memory,-"; - mes "-nor engraved stone bear record of"; - mes "their deeds,-"; - mes "-yet will their remembrance be as"; - mes "lasting as the land they honored.-"; - mes "-Daniel Webster-"; - if(Memorial08 == 9) { - getexp 93750,43750; - } - next; - mes "-There's another message.-"; - next; - mes "-I may not have gone where I"; - mes "intended to go,-"; - mes "-but I think I have ended up where"; - mes "I needed to be.-"; - mes "- Douglas Adams.-"; - if(Memorial08 == 9) { - getexp 93750,43750; - } - next; - mes "-This is the last message.-"; - next; - mes "-True heroism is remarkably sober,"; - mes "very undramatic.-"; - mes "-It is not the urge to surpass all"; - mes "others at whatever cost,-"; - mes "- but the urge to serve others at"; - mes "whatever cost. -"; - mes "- Arthur Ashe -"; - if(Memorial08 == 9) { - getexp 93750,43750; - set Memorial08,10; - } - close; -} - - -// ==================== Grast ==================== -// =============================================== -prontera,150,270,4 script Grast#Memorial 900,{ - if(Memorial08 < 3) { - mes "[Grast]"; - mes "Memorial Day is a sad and yet"; - mes "glorious day."; - mes "I wonder how many people remember"; - mes "them..."; - close; - } - - else if(Memorial08 == 3) { - mes "[Grast]"; - mes "Oh, isn't that a Towel of Memory?"; - mes "I'm so glad to meet someone who"; - mes "understands the meaning of Memorial Day."; - next; - mes "[Grast]"; - mes "It is very important to know what"; - mes "we're celebrating today, don't you think?"; - next; - mes "[Grast]"; - mes "If you like to go on a journey to"; - mes "pay a tribute to Memorial Day,"; - mes "you should bring me some materials"; - mes "I ask."; - next; - mes "[Grast]"; - mes "Please bring me ^FF0000one of each Red"; - mes "Potion, Green Potion, Awakening"; - mes "Potion, and Butterfly Wing^000000."; - mes "I'll be waiting for your return."; - set Memorial08,4; - close; - } - - else if(Memorial08 == 4) { - if (countitem(501) < 1 || countitem(506) < 1 || countitem(656) < 1 || countitem(602) < 1) { - mes "[Grast]"; - mes "Oops, you haven't brought all"; - mes "materials."; - mes "Please make sure you need to bring me"; - mes " ^FF0000one of each Red Potion, Green"; - mes "Potion, Awakening Potion, and"; - mes "Butteryfly Wing^000000."; - next; - mes "[Grast]"; - mes "You'll have to bring me more"; - mes "materials afterwards."; - mes "If you feel too burdened to gather"; - mes "them all,"; - mes "I can provide you all the"; - mes "materials."; - next; - if (select("I'll gather the rest.:Give me the materials.") == 2) { - goto L_GiveUp; - } - goto L_Continue; - }else{ - mes "[Grast]"; - mes "Oh, you've brought the materials I asked."; - next; - mes "[Grast]"; - mes "Hmm, you will need some more things still..."; - next; - mes "[Grast]"; - mes "Please bring me ^FF0000one of each Trap,"; - mes "Yggdrasil Leaf, Blue Gemstone,"; - mes "Crystal Mirror, Meat, and Carrot.^000000"; - mes "I'll be waiting for your return."; - set Memorial08,5; - close; - } - } - - else if(Memorial08 == 5) { - if (countitem(1065) < 1 || countitem(610) < 1 || countitem(717) < 1 || countitem(747) < 1 || countitem(517) < 1 || countitem(515) < 1) { - mes "[Grast]"; - mes "Oops, you haven't brought all materials."; - mes "Please make sure you'll have to bring me"; - mes " ^FF0000one of each Trap, Yggdrasil Leaf,"; - mes "Blue Gemstone, Crystal Mirror,"; - mes "Meat, and Carrot^000000."; - next; - mes "[Grast]"; - mes "You'll have to bring me more"; - mes "materials afterwards."; - mes "If you feel too burdened to gather them all,"; - mes "I can provide you all the materials."; - next; - if (select("I'll gather the rest.:Give me the materials.") == 2) { - goto L_GiveUp; - } - goto L_Continue; - }else{ - mes "[Grast]"; - mes "Oh, you've brought everything I asked."; - mes "Hmm, I think you need just a little bit more."; - next; - mes "[Grast]"; - mes "Please bring me ^FF0000one of each Pet"; - mes "Incubator, Firecracker, Poring"; - mes "Doll, and Bouquet^000000."; - set Memorial08,6; - close; - } - } - - else if(Memorial08 == 6) { - if (countitem(643) < 1 || countitem(12018) < 1 || countitem(741) < 1 || countitem(745) < 1) { - mes "[Grast]"; - mes "Oops, you haven't brought all materials."; - mes "Please make sure you need to bring me"; - mes " ^FF0000one of each Pet Incubator,"; - mes "Firecracker, Poring Doll and Bouquet"; - next; - mes "[Grast]"; - mes "They are the last batch of materials."; - mes "If you feel too burdened to gather them all,"; - mes "I can provide you all the materials."; - next; - mes "[Grast]"; - mes "If I provide you all materials, however,"; - mes "I won't have to thank you for your service."; - mes "It's your call, " + strcharinfo(0) + "."; - next; - if (select("I'll gather the rest.:Give me the materials.") == 2) { - goto L_GiveUp; - } - goto L_Continue; - }else{ - mes "[Grast]"; - mes "Have you brought the materials I asked?"; - mes "Ah, thank you for your hard work;"; - mes "you've brought all of them."; - next; - mes "[Grast]"; - mes "I hope you'll learn a valuable"; - mes "lesson while gathering these materials."; - mes "I like to give you a small gift for your service."; - next; - mes "[Grast]"; - mes "You see, I have two different gifts"; - mes "in my each hand."; - mes "A best thing would be giving you"; - mes "both of them, but..."; - mes "How do you like to test your luck, " + strcharinfo(0) + "?"; - next; - mes "[Grast]"; - mes "Okay, which hand would you like to pick?"; - next; - if (select("Left hand.:Right hand.") == 2) { - mes "[Grast]"; - mes "You've selected my right hand."; - mes "Here's the gift for you."; - mes "Now, please bring all these"; - mes "materials to Lauds."; - set Memorial08, 7; - getitem 617,1; - close; - } - mes "[Grast]"; - mes "You've selected my left hand."; - mes "Here's the gift for you."; - mes "Now, please bring all these"; - mes "materials to Lauds."; - set Memorial08, 7; - getitem 12109,1; - close; - } - } - - else if(Memorial08 == 7) { - mes "[Grast]"; - mes "Have you met Lauds?"; - mes "I hope you'll remember your freedom"; - mes "and happiness"; - mes "are built on thousands of lives"; - mes "sacrificed in war."; - close; - } - - else if(Memorial08 >= 8) { - mes "[Grast]"; - mes "A towel is about the most massively"; - mes "useful thing an adventurer can have."; - close; - } - - L_GiveUp: - mes "[Grast]"; - mes "Oh, I see. I guess you're quite"; - mes "busy nowadays, huh?"; - mes "No problem; I'll give you all the"; - mes "supplies..."; - next; - mes "[Grast]"; - mes "There you go."; - mes "I crushed all the items together"; - mes "into a more compact form for you"; - mes "You can thank me later for that"; - mes "extra service."; - mes "Please bring them to Lauds."; - set Memorial08,7; - getitem 7126,1; - next; - mes "[Grast]"; - mes "By the way, he had an unfortunate"; - mes "accident, and has kind of lost his"; - mes "mind."; - mes "Please don't be alarmed even if he"; - mes "starts babbling."; - close; - - L_Continue: - mes "[Grast]"; - mes "That's a good idea."; - mes "Then I'll be waiting for your return."; - close; +//===== eAthena Script ======================================= +//= In Memory of Heroes (iRO Memorial Day 2008) +//===== By: ================================================== +//= Kisuka +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +// +//===== Additional Comments: ================================= +//= 1.0 First version. [Kisuka] +//= 1.1 Many Many Fixes. [Kisuka] +//============================================================ + +// ================== Lauds ====================== +// =============================================== +prontera,182,214,4 script Lauds#Memorial 58,{ + if(Memorial08 < 1) { + mes "[Mad Sago Lauds]"; + mes "Hey, yo!"; + mes "What are you doing there!?"; + next; + mes "[Mad Sago Lauds]"; + mes "Do you know what day it is!?"; + mes "It's a very important date!"; + mes "A very important date to remember!"; + next; + mes "[Mad Sago Lauds]"; + mes "What is this!?"; + emotion 0; + next; + mes "[Mad Sago Lauds]"; + mes "Where is your towel!?"; + next; + mes "[" + strcharinfo(0) + "]"; + mes "My what?"; + next; + mes "[Mad Sago Lauds]"; + mes "How are you supposed to go on your trip"; + mes "without your towel!?"; + next; + mes "[Mad Sago Lauds]"; + mes "If you think this is just another"; + mes "holiday,"; + mes "I'm not going to waste my breath."; + mes "But if you like to pay a tribute to"; + mes "great soldiers,"; + mes "I will help you ready yourself"; + next; + if (select("I guess so...:Are you crazy or something?") == 2) { + mes "[Mad Sago Lauds]"; + mes "Fine, be unprepared!"; + next; + mes "[Mad Sago Lauds]"; + mes ""; + mes "^FF0000YOU WILL RUE THE DAY!^000000"; + close; + } + mes "[Mad Sago Lauds]"; + mes "Great!"; + mes "Then listen to me carefully."; + next; + mes "[Mad Sago Lauds]"; + mes "Now before you can pay tribute to"; + mes "the fallen soldiers"; + mes "you must be properly equipped"; + mes "Without your towel you will be"; + mes "lost!"; + mes "If you bring me the materials, I can make you a towel."; + next; + mes "[Mad Sago Lauds]"; + mes "Listen closely."; + mes "Bring me ^FF000030 Fabric and 20 Fluffs^000000."; + set Memorial08,1; + close; + } + + else if(Memorial08 == 1) { + if (countitem(1059) < 30 || countitem(914) < 20) { + mes "[Mad Sago Lauds]"; + mes "What are these? They aren't"; + mes "enough?!"; + mes "*Sigh* Do I really have to tell you"; + mes "again?!"; + mes "Bring me ^FF000030 Fabric and 20 Fluffs^000000."; + close; + }else{ + mes "***Mad Sago Lauds appears to be"; + mes "muttering to himself***"; + next; + mes "[Mad Sago Lauds]"; + mes "So, did you bring the towel"; + mes "materials?"; + next; + mes "[Mad Sago Lauds]"; + mes "Excellent; you've brought them"; + mes "all."; + mes "Then I shall make you a Towel of"; + mes "Memory as I promised."; + mes "Give me a moment."; + next; + mes "[Mad Sago Lauds]"; + mes "There you go!"; + delitem 1059,30; + delitem 914,20; + getitem 6025,1; + getnameditem 6025," + strcharinfo(0) + "; + set Memorial08,2; + close; + } + } + + else if(Memorial08 == 2) { + mes "[Mad Sago Lauds]"; + mes "Ah, you have fluffy new towel now"; + mes "I even put your name on it"; + next; + mes "[Mad Sago Lauds]"; + mes "Say, how do you like to go"; + mes "on a journey to pay a tribute to"; + mes "Memorial Day?"; + next; + if (select("Sure.:No, I'm Busy.") == 2) { + mes "[Mad Sago Lauds]"; + mes "Don't come crying to me"; + mes "if someone decides to"; + mes "build a highway through"; + mes "your home!"; + close; + } + mes "[Mad Sago Lauds]"; + mes "Good. By the way, do you even know"; + mes "what the towel is for?"; + next; + mes "[Mad Sago Lauds]"; + mes "It seems you're just carrying it"; + mes "without understanding its meaning."; + mes "What a shame! You should go speak"; + mes "to ^FF0000Grast in Prontera^000000."; + set Memorial08,3; + close; + } + + else if(Memorial08 == 3) { + mes "[Mad Sago Lauds]"; + mes "What are you still doing here? I"; + mes "told you to go speak to Grast in"; + mes "Prontera!"; + close; + } + + else if(Memorial08 == 4 || Memorial08 == 5 || Memorial08 == 6) { + mes "[Mad Sago Lauds]"; + mes "Go help Grast, and then come back."; + close; + } + + else if(Memorial08 == 7) { + mes "[Mad Sago Lauds]"; + mes "Oh, you've brought them all."; + mes "Hahaha!"; + mes "HAHAHAHAHAHA!!!! cough cough"; + next; + mes "[Mad Sago Lauds]"; + mes "Please give them to me. Thank you"; + mes "for your hard work, by the way."; + mes "Say, have you learned anything from the journey?"; + mes "Now is to go visit the plaque at 12"; + mes "o'clock direction in Prontera."; + next; + mes "[Mad Sago Lauds]"; + mes "What do you mean you were just"; + mes "there?"; + next; + mes "[Mad Sago Lauds]"; + mes "What? Why are you giving me your"; + mes "garbage!"; + mes "Those items are not useful to me at all"; + mes "You should be going to the plaque!"; + set Memorial08,8; + close; + } + + else if(Memorial08 == 8) { + mes "[Mad Sago Lauds]"; + mes "Stop trying to give me your garbage!"; + mes "Go to the plaque at 12 o'clock"; + mes "direction in Prontera for your journey!"; + close; + } + + else if(Memorial08 >= 9) { + set .@RandomMsg, rand(1,5); + if(.@RandomMsg == 1) { + mes "[Mad Sago Lauds]"; + mes "Don't panic!"; + emotion 0; + close; + } + else if(.@RandomMsg == 2) { + mes "[Mad Sago Lauds]"; + mes "Life... is like a grapefruit."; + mes "It's orange and squishy, and has a"; + mes "few pips in it,"; + mes "and some folks have half a one for"; + mes "breakfast."; + close; + } + else if(.@RandomMsg == 3) { + mes "[Mad Sago Lauds]"; + mes "There was a point to this story,"; + mes "but it has temporarily escaped the"; + mes "chronicler's mind."; + close; + } + else if(.@RandomMsg == 4) { + mes "[Mad Sago Lauds]"; + mes "42!"; + close; + } + else if(.@RandomMsg == 5) { + mes "[Mad Sago Lauds]"; + mes "It is a mistake to think you can"; + mes "solve any major problems just with"; + mes "potatoes."; + close; + } + } +} + +// ============== Memorial Plaque ================ +// =============================================== +prontera,153,286,4 script Memorial Plaque#Memorial 857,{ + if(Memorial08 < 8) { + mes "[" + strcharinfo(0) + "]"; + mes "- It's a dusty old plaque.-"; + close; + } + + else if(Memorial08 == 8) { + mes "[" + strcharinfo(0) + "]"; + mes "- It's a dusty old plaque.-"; + mes "'This must be what Lauds was talking about.'"; + mes "'Let's dust it off with the towel.'"; + next; + set Memorial08,9; + getexp 93750,43750; + goto L_CleanPlaque; + } + + else if(Memorial08 >= 9) { + goto L_CleanPlaque; + } + + L_CleanPlaque: + mes "- You see a message from the cleaned plaque."; + next; + mes "-Although no sculptured marble"; + mes "should rise to their memory,-"; + mes "-nor engraved stone bear record of"; + mes "their deeds,-"; + mes "-yet will their remembrance be as"; + mes "lasting as the land they honored.-"; + mes "-Daniel Webster-"; + if(Memorial08 == 9) { + getexp 93750,43750; + } + next; + mes "-There's another message.-"; + next; + mes "-I may not have gone where I"; + mes "intended to go,-"; + mes "-but I think I have ended up where"; + mes "I needed to be.-"; + mes "- Douglas Adams.-"; + if(Memorial08 == 9) { + getexp 93750,43750; + } + next; + mes "-This is the last message.-"; + next; + mes "-True heroism is remarkably sober,"; + mes "very undramatic.-"; + mes "-It is not the urge to surpass all"; + mes "others at whatever cost,-"; + mes "- but the urge to serve others at"; + mes "whatever cost. -"; + mes "- Arthur Ashe -"; + if(Memorial08 == 9) { + getexp 93750,43750; + set Memorial08,10; + } + close; +} + + +// ==================== Grast ==================== +// =============================================== +prontera,150,270,4 script Grast#Memorial 900,{ + if(Memorial08 < 3) { + mes "[Grast]"; + mes "Memorial Day is a sad and yet"; + mes "glorious day."; + mes "I wonder how many people remember"; + mes "them..."; + close; + } + + else if(Memorial08 == 3) { + mes "[Grast]"; + mes "Oh, isn't that a Towel of Memory?"; + mes "I'm so glad to meet someone who"; + mes "understands the meaning of Memorial Day."; + next; + mes "[Grast]"; + mes "It is very important to know what"; + mes "we're celebrating today, don't you think?"; + next; + mes "[Grast]"; + mes "If you like to go on a journey to"; + mes "pay a tribute to Memorial Day,"; + mes "you should bring me some materials"; + mes "I ask."; + next; + mes "[Grast]"; + mes "Please bring me ^FF0000one of each Red"; + mes "Potion, Green Potion, Awakening"; + mes "Potion, and Butterfly Wing^000000."; + mes "I'll be waiting for your return."; + set Memorial08,4; + close; + } + + else if(Memorial08 == 4) { + if (countitem(501) < 1 || countitem(506) < 1 || countitem(656) < 1 || countitem(602) < 1) { + mes "[Grast]"; + mes "Oops, you haven't brought all"; + mes "materials."; + mes "Please make sure you need to bring me"; + mes " ^FF0000one of each Red Potion, Green"; + mes "Potion, Awakening Potion, and"; + mes "Butteryfly Wing^000000."; + next; + mes "[Grast]"; + mes "You'll have to bring me more"; + mes "materials afterwards."; + mes "If you feel too burdened to gather"; + mes "them all,"; + mes "I can provide you all the"; + mes "materials."; + next; + if (select("I'll gather the rest.:Give me the materials.") == 2) { + goto L_GiveUp; + } + goto L_Continue; + }else{ + mes "[Grast]"; + mes "Oh, you've brought the materials I asked."; + next; + mes "[Grast]"; + mes "Hmm, you will need some more things still..."; + next; + mes "[Grast]"; + mes "Please bring me ^FF0000one of each Trap,"; + mes "Yggdrasil Leaf, Blue Gemstone,"; + mes "Crystal Mirror, Meat, and Carrot.^000000"; + mes "I'll be waiting for your return."; + set Memorial08,5; + close; + } + } + + else if(Memorial08 == 5) { + if (countitem(1065) < 1 || countitem(610) < 1 || countitem(717) < 1 || countitem(747) < 1 || countitem(517) < 1 || countitem(515) < 1) { + mes "[Grast]"; + mes "Oops, you haven't brought all materials."; + mes "Please make sure you'll have to bring me"; + mes " ^FF0000one of each Trap, Yggdrasil Leaf,"; + mes "Blue Gemstone, Crystal Mirror,"; + mes "Meat, and Carrot^000000."; + next; + mes "[Grast]"; + mes "You'll have to bring me more"; + mes "materials afterwards."; + mes "If you feel too burdened to gather them all,"; + mes "I can provide you all the materials."; + next; + if (select("I'll gather the rest.:Give me the materials.") == 2) { + goto L_GiveUp; + } + goto L_Continue; + }else{ + mes "[Grast]"; + mes "Oh, you've brought everything I asked."; + mes "Hmm, I think you need just a little bit more."; + next; + mes "[Grast]"; + mes "Please bring me ^FF0000one of each Pet"; + mes "Incubator, Firecracker, Poring"; + mes "Doll, and Bouquet^000000."; + set Memorial08,6; + close; + } + } + + else if(Memorial08 == 6) { + if (countitem(643) < 1 || countitem(12018) < 1 || countitem(741) < 1 || countitem(745) < 1) { + mes "[Grast]"; + mes "Oops, you haven't brought all materials."; + mes "Please make sure you need to bring me"; + mes " ^FF0000one of each Pet Incubator,"; + mes "Firecracker, Poring Doll and Bouquet"; + next; + mes "[Grast]"; + mes "They are the last batch of materials."; + mes "If you feel too burdened to gather them all,"; + mes "I can provide you all the materials."; + next; + mes "[Grast]"; + mes "If I provide you all materials, however,"; + mes "I won't have to thank you for your service."; + mes "It's your call, " + strcharinfo(0) + "."; + next; + if (select("I'll gather the rest.:Give me the materials.") == 2) { + goto L_GiveUp; + } + goto L_Continue; + }else{ + mes "[Grast]"; + mes "Have you brought the materials I asked?"; + mes "Ah, thank you for your hard work;"; + mes "you've brought all of them."; + next; + mes "[Grast]"; + mes "I hope you'll learn a valuable"; + mes "lesson while gathering these materials."; + mes "I like to give you a small gift for your service."; + next; + mes "[Grast]"; + mes "You see, I have two different gifts"; + mes "in my each hand."; + mes "A best thing would be giving you"; + mes "both of them, but..."; + mes "How do you like to test your luck, " + strcharinfo(0) + "?"; + next; + mes "[Grast]"; + mes "Okay, which hand would you like to pick?"; + next; + if (select("Left hand.:Right hand.") == 2) { + mes "[Grast]"; + mes "You've selected my right hand."; + mes "Here's the gift for you."; + mes "Now, please bring all these"; + mes "materials to Lauds."; + set Memorial08, 7; + getitem 617,1; + close; + } + mes "[Grast]"; + mes "You've selected my left hand."; + mes "Here's the gift for you."; + mes "Now, please bring all these"; + mes "materials to Lauds."; + set Memorial08, 7; + getitem 12109,1; + close; + } + } + + else if(Memorial08 == 7) { + mes "[Grast]"; + mes "Have you met Lauds?"; + mes "I hope you'll remember your freedom"; + mes "and happiness"; + mes "are built on thousands of lives"; + mes "sacrificed in war."; + close; + } + + else if(Memorial08 >= 8) { + mes "[Grast]"; + mes "A towel is about the most massively"; + mes "useful thing an adventurer can have."; + close; + } + + L_GiveUp: + mes "[Grast]"; + mes "Oh, I see. I guess you're quite"; + mes "busy nowadays, huh?"; + mes "No problem; I'll give you all the"; + mes "supplies..."; + next; + mes "[Grast]"; + mes "There you go."; + mes "I crushed all the items together"; + mes "into a more compact form for you"; + mes "You can thank me later for that"; + mes "extra service."; + mes "Please bring them to Lauds."; + set Memorial08,7; + getitem 7126,1; + next; + mes "[Grast]"; + mes "By the way, he had an unfortunate"; + mes "accident, and has kind of lost his"; + mes "mind."; + mes "Please don't be alarmed even if he"; + mes "starts babbling."; + close; + + L_Continue: + mes "[Grast]"; + mes "That's a good idea."; + mes "Then I'll be waiting for your return."; + close; } \ No newline at end of file diff --git a/npc/events/children_week.txt b/npc/events/children_week.txt index 9a8933be5..e8fcd770e 100644 --- a/npc/events/children_week.txt +++ b/npc/events/children_week.txt @@ -1,86 +1,86 @@ -//===== eAthena Script ======================================= -//= Children Week Event -//===== By: ================================================== -//= Samuray22 -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= eAthena SVN -//===== Description: ========================================= -//= [Aegis Conversion] -//= Indian Ro: Children Week Event -//===== Additional Comments: ================================= -//= 1.1 First Beta. [Samuray22] -//============================================================ - -prontera,146,91,5 script Pandit chacha#child07 61,{ - if(BaseLevel > 50) { - mes "[Pandit chacha]"; - mes "Hahaha."; - mes "It is special day, comes only one time in a year."; - mes "If you see little adventurers around you send to me~"; - mes "I will give the special gift."; - close; - } else if(BaseLevel < 20) { - mes "[Pandit chacha]"; - mes "Hahaha."; - mes "You are a baby adventurer not little adventurer."; - mes "When you more grow up, come back again. hahaha."; - close; - } else if(oversea_event9 < 1) { - mes "[Pandit chacha]"; - mes "Hahaha."; - mes "Welcome, little adventurers!"; - mes "Today is special day, isn't it~?"; - mes "I would like to give the small gift to little adventurer..."; - mes "What about you? Do you want to take it?"; - next; - if(select("No. I will take it later.","Sure, i want.") == 1) { - mes "[Pandit chacha]"; - mes "That's too bad.... hum..."; - mes "I gathered some stuffs from far a way world to make it...."; - mes "Whenever come back again if you want it..."; - close; - } - set oversea_event9,1; - getitem 11705,10; //Children's Potion - mes "[Pandit chacha]"; - mes "Look. This is a child Potion."; - mes "The weight is just 1 but recover much HP."; - mes "If you want to get more, bring the 1 Wedding Bouquet and 1 Witherless Rose."; - close; - } else if(oversea_event9 == 1) { - if(countitem(745) > 0 && countitem(748) > 0) { - mes "[Pandit chacha]"; - mes "Ahha!!"; - mes "You have remembered my beautiful composition."; - mes "You did good work."; - mes "Could you give me 1 Wedding Bouquet and 1 Witherless Rose? "; - next; - if(select("Not yet.","Sure, take it.") == 1) { - mes "[Pandit chacha]"; - mes "If you are not prepared yet, call me when you ready."; - close; - } - mes "[Pandit chacha]"; - mes "Hahaha."; - mes "Oh~ you get it."; - mes "Here, I will exchange to the 50 child potion."; - mes "Once you get this 50 child potion, I won't give any more."; - close2; - delitem 745,1; //Wedding Bouquet - delitem 748,1; //Witherless Rose - set oversea_event9,2; - getitem 11705,50; //Children's Potion - end; - } - mes "[Pandit chacha]"; - mes "Little adventurers, you should bring the 1 Wedding Bouquet and 1 Witherless Rose."; - mes "If you bring these stuffs I will exchange them for child Potion. "; - close; - } - mes "[Pandit chacha]"; - mes "Hahaha."; - mes "Are you enjoying children week~? "; - close; +//===== eAthena Script ======================================= +//= Children Week Event +//===== By: ================================================== +//= Samuray22 +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +//= [Aegis Conversion] +//= Indian Ro: Children Week Event +//===== Additional Comments: ================================= +//= 1.1 First Beta. [Samuray22] +//============================================================ + +prontera,146,91,5 script Pandit chacha#child07 61,{ + if(BaseLevel > 50) { + mes "[Pandit chacha]"; + mes "Hahaha."; + mes "It is special day, comes only one time in a year."; + mes "If you see little adventurers around you send to me~"; + mes "I will give the special gift."; + close; + } else if(BaseLevel < 20) { + mes "[Pandit chacha]"; + mes "Hahaha."; + mes "You are a baby adventurer not little adventurer."; + mes "When you more grow up, come back again. hahaha."; + close; + } else if(oversea_event9 < 1) { + mes "[Pandit chacha]"; + mes "Hahaha."; + mes "Welcome, little adventurers!"; + mes "Today is special day, isn't it~?"; + mes "I would like to give the small gift to little adventurer..."; + mes "What about you? Do you want to take it?"; + next; + if(select("No. I will take it later.","Sure, i want.") == 1) { + mes "[Pandit chacha]"; + mes "That's too bad.... hum..."; + mes "I gathered some stuffs from far a way world to make it...."; + mes "Whenever come back again if you want it..."; + close; + } + set oversea_event9,1; + getitem 11705,10; //Children's Potion + mes "[Pandit chacha]"; + mes "Look. This is a child Potion."; + mes "The weight is just 1 but recover much HP."; + mes "If you want to get more, bring the 1 Wedding Bouquet and 1 Witherless Rose."; + close; + } else if(oversea_event9 == 1) { + if(countitem(745) > 0 && countitem(748) > 0) { + mes "[Pandit chacha]"; + mes "Ahha!!"; + mes "You have remembered my beautiful composition."; + mes "You did good work."; + mes "Could you give me 1 Wedding Bouquet and 1 Witherless Rose? "; + next; + if(select("Not yet.","Sure, take it.") == 1) { + mes "[Pandit chacha]"; + mes "If you are not prepared yet, call me when you ready."; + close; + } + mes "[Pandit chacha]"; + mes "Hahaha."; + mes "Oh~ you get it."; + mes "Here, I will exchange to the 50 child potion."; + mes "Once you get this 50 child potion, I won't give any more."; + close2; + delitem 745,1; //Wedding Bouquet + delitem 748,1; //Witherless Rose + set oversea_event9,2; + getitem 11705,50; //Children's Potion + end; + } + mes "[Pandit chacha]"; + mes "Little adventurers, you should bring the 1 Wedding Bouquet and 1 Witherless Rose."; + mes "If you bring these stuffs I will exchange them for child Potion. "; + close; + } + mes "[Pandit chacha]"; + mes "Hahaha."; + mes "Are you enjoying children week~? "; + close; } \ No newline at end of file diff --git a/npc/events/christmas_2008.txt b/npc/events/christmas_2008.txt index 8e3e4e788..bb08b13a3 100644 --- a/npc/events/christmas_2008.txt +++ b/npc/events/christmas_2008.txt @@ -1,1217 +1,1217 @@ -//===== eAthena Script ======================================= -//= iRO 2008 Christmas Event -//===== By: ================================================== -//= Kisuka -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= eAthena SVN -//===== Description: ========================================= -//= iRO Christmas Event. (2008) -//= Create Music Box and Cake. -//= Play card game with Santa. -//= Create Santa Suits. -//========================================== -//= Must enable X-mas08 items in item_db2 (not in databases). -//= Must have 'Christmas Carol' skill (not in databases). -//= Must enable X-mas08 mobs in mob_avail (not in databases). -//===== Additional Comments: ================================= -//= 1.0 First version. [Kisuka] -//============================================================ - -// ============== Carolling - Music Box ================ -// ===================================================== -prontera,226,306,4 script Carolling#iROxmas08 79,{ - if (iROxmas08carol < 1 || iROxmas08carol == 3) { - if (iROxmas08carol == 3) { - mes "[Carolling]"; - mes "Jingle Bells! Jingle Bells! Jingle"; - mes "all the way!"; - mes "O' what fun it is to ride in a"; - mes "one-horse open sleeeigh, Hey!"; - next; - mes "[Carolling]"; - mes "Merry Christmas!"; - mes "Hey! You! What comes to mind when"; - mes "you think about Christmas?"; - next; - }else{ - mes "[Carolling]"; - mes "Jingle Bells! Jingle Bells! Jingle all the way!"; - next; - specialeffect 75; - mes "[Carolling]"; - mes "O' what fun it is to ride in a one-horse open sleigh!"; - next; - mes "[Carolling]"; - mes "Merry Christmas!"; - if (Sex) { - mes "Hey, boy! What comes to mind when"; - }else{ - mes "Hey, girl! What comes to mind when"; - } - mes "you think about Christmas?"; - next; - } - switch(select("Santa Claus:Gift Boxes:Carols:Santa Costumes:Fake Santa Antonio")) { - - case 1: - mes "[Carolling]"; - mes "Santa Claus!"; - mes "You're so innocent!!"; - mes "Ah!"; - next; - mes "[Carolling]"; - mes "Here's a secret!"; - mes "There's a rumor that Santa Claus"; - mes "lives in a certain village all"; - mes "throughout the year."; - next; - mes "[Carolling]"; - mes "But now!!!"; - mes "In this Christmas season!!"; - mes "You guys can meet Santa on either"; - mes "of the five possible villages"; - mes "throughout Rune-Midgerts!"; - next; - mes "[Carolling]"; - mes "If you win over Santa, you can get"; - mes "a gift. Would you go for it?"; - next; - emotion 18; - mes "[Carolling]"; - mes "Carolling's hot news! Ha!"; - mes "Isn't that big news?"; - close; - - case 2: - mes "[Carolling]"; - mes "Gift boxes?! All right!"; - mes "Isn't it thrilling to open gifts"; - mes "over your head!!"; - next; - mes "[Carolling]"; - mes "Anyway, did you know..."; - mes "Some villain, a fake Santa robbed"; - mes "some gifts from the good Santa!"; - next; - mes "[Carolling]"; - mes "Furthermore, he has put bad magic"; - mes "on the gifts so that they become"; - mes "monsters!"; - next; - emotion 18; - mes "[Carolling]"; - mes "Carolling's hot news! Ha!"; - mes "Isn't it amazing?"; - close; - - case 3: - if (iROxmas08carol == 3) { - mes "[Carolling]"; - mes "Ah, a music box is useful."; - next; - mes "[Carolling]"; - mes "Though we can't all play it around"; - mes "the village as we planned, it's"; - mes "cool that you carry it."; - next; - mes "[Carolling]"; - mes "We want to enjoy carols all"; - mes "together... I hope to get Crystal"; - mes "Pieces!"; - next; - mes "[Carolling]"; - mes "If you can get ^0000FFSinging Crystal"; - mes "Pieces^000000, give them to me please?"; - next; - select("Why not? Sure, I can give you some."); - if (countitem(6092) < 6) { - mes "[Carolling]"; - mes "Yes, please."; - next; - mes "[Carolling]"; - mes "If you can get ^0000FFSinging Crystal"; - mes "Pieces^000000, give them to me please?"; - close; - }else{ - mes "[Carolling]"; - mes "Wow, you have them."; - next; - mes "[Carolling]"; - mes "I can bake you a cake,"; - mes "and I can carve your name on the"; - mes "cake, if you want!"; - next; - if (select("No, thanks.:Please name it for me.") == 2) { - mes "[Carolling]"; - mes "Thank for your help!"; - next; - mes "[Carolling]"; - mes "Many people live in the giant"; - mes "world!"; - mes "So many people hope to hear"; - mes "carolling, yet I always lack"; - mes "Crystal pieces."; - next; - mes "[Carolling]"; - mes "If you can get ^0000FFSinging Crystal Pieces^000000, give them to me please?"; - next; - emotion 18; - delitem 6092,6; - getnameditem 12354,"+strcharinfo(0)+"; - mes "[Carolling]"; - mes "Let's care about others around you"; - mes "on this Christmas season!"; - close; - }else{ - mes "[Carolling]"; - mes "Oh!"; - mes "Shyness!"; - next; - mes "[Carolling]"; - mes "Anyway, thanks a lot for your"; - mes "help."; - next; - mes "[Carolling]"; - mes "Many people live in the giant"; - mes "world!"; - mes "So many people hope to hear"; - mes "carolling, yet I always lack"; - mes "Crystal pieces."; - next; - mes "[Carolling]"; - mes "If you can get ^0000FFSinging Crystal Pieces^000000, give them to me please?"; - next; - emotion 18; - delitem 6092,6; - getitem 12354,1; - mes "[Carolling]"; - mes "Let's care about others around you"; - mes "on this Christmas season!"; - close; - } - } - } - mes "[Carolling]"; - mes "You know about Christmas!"; - mes "Talking about Christmas..."; - mes "...it's carols!!!"; - mes "I've been waiting for this for when"; - mes "Christmas comes around!"; - next; - mes "[Carolling]"; - mes "But there's been no caroling here"; - mes "and there like before, so we can't"; - mes "feel the Christmas spirit."; - next; - mes "[Carolling]"; - mes "So, I installed a Singing Crystal"; - mes "in Prontera..."; - next; - mes "[Carolling]"; - mes "but that jerk Antonio broke the"; - mes "crystal!"; - next; - mes "[Carolling]"; - mes "The gift boxes have been changing"; - mes "into monsters since Antonio placed"; - mes "some magic on them, so the monsters"; - mes "ate up the crystal fragments!"; - next; - mes "[Carolling]"; - mes "I am so devastated, since the"; - mes "Singing Crystal has been the hope"; - mes "of many children around the villages."; - next; - if (select("There's no other way to carol?:You can hear carols in Lutie.") == 2) { - mes "[Carolling]"; - mes "And just stay there, every"; - mes "Christmas, for your whole life?"; - next; - mes "["+strcharinfo(0)+"]"; - mes "What? What do you mean?"; - next; - mes "[Carolling]"; - mes "Oh, nevermind."; - mes "Ah..."; - close; - } - mes "[Carolling]"; - mes "Maybe, it's quite hard to make a"; - mes "jukebox for the villages, but a"; - mes "music box might be possible."; - next; - mes "[Carolling]"; - mes "We need the ^0000FFSinging Crystal Pieces^000000"; - mes "that the monsters ate up."; - next; - mes "[Carolling]"; - mes "Please bring me ^0000FF6 Singing Crystal"; - mes "Pieces^000000, and you will be rewarded"; - mes "with presents!"; - next; - mes "[Carolling]"; - mes "Sounds cool, huh!!"; - next; - select("........................"); - mes "[Carolling]"; - mes "...Why are you staring at me like"; - mes "that?"; - next; - mes "[Carolling]"; - mes "You're thinking that we are always"; - mes "getting our plans spoiled, aren't"; - mes "you?"; - next; - mes "[Carolling]"; - mes "I know that we are not good at"; - mes "controlling stuff, but our rewards"; - mes "are good, right?"; - next; - select("........................"); - mes "[Carolling]"; - mes "Hey, we treat you good..."; - next; - select("........................"); - mes "[Carolling]"; - mes "You are so cruel to me!"; - mes "Bad! Bad!"; - next; - mes "[Carolling]"; - mes "Please, for our children's"; - mes "hope!!!?"; - mes "Please bring me 6 Singing Crystal"; - mes "Pieces from ^0000FFViolent Gift Boxes^000000!"; - next; - emotion 33; - mes "[Carolling]"; - mes "They're definitely as"; - mes "harsh as their name."; - mes "Go on please!"; - set iROxmas08carol,1; - close; - - case 4: - mes "[Carolling]"; - mes "Santa costumes!!"; - mes "You know, the santa costumes that"; - mes "the monsters are wearing now aren't"; - mes "genuine!"; - next; - mes "[Carolling]"; - mes "The rumor 'round here is, Lutie's"; - mes "designer made these costumes."; - next; - mes "[Carolling]"; - mes "Every year, adventurers challenge"; - mes "to attack Antonio the fake Santa,"; - mes "but there's no way to catch up to"; - mes "him due to his hat and costume!"; - next; - mes "[Carolling]"; - mes "Are there some spcial abilities"; - mes "within them?"; - mes "There's still the designer in the"; - mes "Christmas village... How about"; - mes "asking her to make that costume?"; - next; - emotion 18; - mes "[Carolling]"; - mes "Carolling's hot news! Ha!"; - mes "It's hot, huh?"; - close; - - - case 5: - mes "[Carolling]"; - mes "A-N-T-O-N-I-O!!!"; - mes "As I heard, this Antonio is quite"; - mes "different from before."; - next; - mes "[Carolling]"; - mes "He seems to be quite resolved with"; - mes "himself since he ran away from"; - mes "people before."; - next; - mes "[Carolling]"; - mes "And he isn't alone anymore... is"; - mes "what I heard..."; - next; - emotion 18; - mes "[Carolling]"; - mes "Carolling's hot news! Ha!"; - mes "Hotness, right?"; - close; - } - } - - if (iROxmas08carol == 1) { - if (countitem(6092) < 6) { - mes "[Carolling]"; - mes "Maybe, it's quite hard to make a"; - mes "jukebox for the villages, but a"; - mes "music box might be possible."; - next; - mes "[Carolling]"; - mes "We need the ^0000FFSinging Crystal Pieces^000000"; - mes "that the monsters ate up."; - next; - mes "[Carolling]"; - mes "Please bring me ^0000FF6 Singing Crystal Pieces^000000, and you will be rewarded with presents!"; - next; - mes "[Carolling]"; - mes "For all of the children of this"; - mes "world!!!"; - mes "Please bring me ^0000FF6Singing Crystal"; - mes "Pieces^000000 from ^0000FFViolent Gift Boxes^000000!"; - next; - emotion 33; - mes "[Carolling]"; - mes "Be careful!"; - mes "They're definitely as"; - mes "harsh as their name."; - mes "Take care!!!"; - close; - }else{ - specialeffect 75; - mes "[Carolling]"; - mes "Don't cry, don't cry!"; - mes "Santa won't give you a"; - mes "gift if you're crying."; - next; - mes "[Carolling]"; - select("I got them!"); - mes "[Carolling]"; - mes "Wow, you got them!"; - mes "They are so cruel, aren't they?"; - mes "I'm happy to see you again."; - next; - mes "[Carolling]"; - mes "Let's count together!"; - mes "... ..."; - mes "Six!!"; - next; - mes "[Carolling]"; - mes "All right! We can start to make our"; - mes "music box with crystal fragments."; - next; - mes "[Carolling]"; - mes "We would amplify the sounds of the"; - mes "crystal fragments to sound through"; - mes "the music box."; - next; - mes "[Carolling]"; - mes "You know, a music box that sounds"; - mes "like a jukebox!"; - next; - mes "[Carolling]"; - mes "It's handy. You can carry it, as"; - mes "well as listen to sweet carols"; - mes "anywhere. Doesn't that sound"; - mes "cool!?"; - next; - mes "[Carolling]"; - mes "So, we need more of some"; - mes "materials."; - mes "^0000FF10 Wooden Block, 1 Hammer Of"; - mes "Blacksmith, 1 Jubilee, 10 Sticky"; - mes "Mucus, 3-karat Diamond^000000!"; - next; - delitem 6092,6; - emotion 33; - set iROxmas08carol,2; - mes "[Carolling]"; - mes "Those are all needed."; - mes "Isn't that easy?"; - close; - } - } - - if (iROxmas08carol == 2) { - if (countitem(1019) < 10 || countitem(1005) < 1 || countitem(7312) < 1 || countitem(938) < 10 || countitem(732) < 1) { - mes "[Carolling]"; - mes "We can make a music box"; - mes "with Singing Crystal Pieces."; - mes "It's handy, you can hear carols"; - mes "anywhere. Sounds cool?"; - next; - mes "[Carolling]"; - mes "So, we need more of some materials."; - mes "^0000FF10 Wooden Block, 1 Hammer Of"; - mes "Blacksmith, 1 Jubilee, 10 Sticky"; - mes "Mucus, 3-karat Diamond^000000!"; - next; - emotion 33; - mes "[Carolling]"; - mes "That's all we need."; - mes "Isn't that easy?"; - close; - }else{ - specialeffect 75; - mes "[Carolling]"; - mes "Jingle bells, jingle bells,"; - mes "jingle all the way!"; - mes "O what fun it is to ride, in a"; - mes "one... horse... o-pen... sleigh!!!"; - next; - mes "[Carolling]"; - mes "Wow!"; - mes "You came back!"; - mes "Did you bring all the"; - mes "materials?"; - next; - mes "[Carolling]"; - mes "Good!"; - mes "No need to hesitate! Let's get"; - mes "started to make our music box."; - next; - mes "[Carolling]"; - specialeffect 101; - mes "Blacksmith hammers on wooden"; - mes "block... and we shape the frame."; - next; - mes "[Carolling]"; - //(effect - stones from ground?) - mes "Please use the Singing Crystal"; - mes "Pieces for a column, the Diamond as"; - mes "a prop, and the Sticky Mucus as"; - mes "glue."; - next; - mes "[Carolling]"; - specialeffect 1; - mes "And now..."; - mes "we decorate with a Jubilee..."; - next; - mes "[Carolling]"; - specialeffect 88; - mes "The last step...!"; - mes "Breating life into it!"; - next; - mes "[Carolling]"; - mes "It's done now!!!"; - next; - mes "[Carolling]"; - mes "It's so cool! Isn't it cute!!?!"; - next; - mes "[Carolling]"; - mes "You did as I requested, so I will"; - mes "give you gifts, as promised."; - next; - mes "[Carolling]"; - mes "One, is this music box."; - mes "Please play this music box all over"; - mes "the villages!"; - next; - mes "[Carolling]"; - mes "Another present is a Christmas cake"; - mes "especially shaped like your name!"; - mes "I made this cake shaped like your"; - mes "name!"; - next; - mes "[Carolling]"; - mes "Don't worry, it tastes good."; - next; - emotion 33; - getitem 2784,1; - getnameditem 12354,"+strcharinfo(0)+"; - delitem 1019,10; - delitem 1005,1; - delitem 7312,1; - delitem 938,10; - delitem 732,1; - set iROxmas08carol,3; - mes "[Carolling]"; - mes "Thanks a lot."; - mes "Merry Christmas!"; - mes "Have a good holiday season!"; - close; - } - } -} - -// ============= Santa Claus - Card Game =============== -// ===================================================== -- script Santa Claus#iROxmas08::08santa 718,{ - mes "[Santa Claus]"; - mes "Wow! Were you naughty or nice this"; - mes "year?"; - mes "All right, what comes to your mind"; - mes "when you think about Christmas?"; - next; - switch(select("Carolling:Santa Claus:Gift Boxes:Santa Costume:Not much really...")) { - - case 1: - mes "[Santa Claus]"; - mes "Carolling! That's good!"; - mes "A sweet carol always makes"; - mes "Christmas more happy!!!"; - next; - mes "[Santa Claus]"; - mes "Yes indeed Carolling spreads Joy"; - mes "throughout the world?"; - close; - - case 2: - mes "[Santa Claus]"; - if (Sex) { - mes "Ho ho ho! What a good boy!"; - }else{ - mes "Ho ho ho! What a good girl!"; - } - next; - mes "[Santa Claus]"; - mes "But you should be wary of a fake"; - mes "Santa romaing around."; - mes "Have you heard of Antonio, who"; - mes "invades villages every Christmas?"; - next; - mes "[Santa Claus]"; - mes "He has stolen my gifts, as well as"; - mes "attacked adventurers around Toy and"; - mes "Lutie field."; - next; - mes "[Santa Claus]"; - mes "A bad Santa ruins us good Santa's"; - mes "reputations!"; - mes "The World Santa Organization is"; - mes "considering this a grave"; - mes "situation."; - close; - - case 3: - mes "[Santa Claus]"; - mes "A gift box! That sounds good!"; - mes "It's so exciting to open gift boxes"; - mes "when you wake up on Christmas"; - mes "morning!!!"; - next; - mes "[Santa Claus]"; - mes "But we have very little gifts now,"; - mes "since Santa Antonio has stolen my"; - mes "gift bag."; - next; - mes "[Santa Claus]"; - mes "Many adventurers try to catch up"; - mes "to him, but he is not easy to catch."; - next; - mes "[Santa Claus]"; - mes "Anyway let those adventurers try to"; - mes "catch him, I have a small game for"; - mes "you."; - next; - mes "[Santa Claus]"; - mes "I will give you a small gift if you"; - mes "beat me!"; - next; - mes "[Santa Claus]"; - mes "Do you want to play a game with"; - mes "me?"; - next; - if (select("No, thanks.:Yes, I would.") == 1) { - mes "[Santa Claus]"; - mes "Aww, don't be afraid. If you've"; - mes "been a little naughty this year I"; - mes "won't stuff your stockings with"; - mes "coal."; - next; - mes "[Santa Claus]"; - mes "I will stay here throughout the"; - mes "Christmas season, just visit me"; - mes "when you change your mind."; - close; - } - if (gettimetick(2) < SantaCardTime) { - mes "[Santa Claus]"; - mes "Um... You've played the game"; - mes "recently haven't you?"; - next; - mes "[Santa Claus]"; - mes "You can try the game once a hour."; - mes "Please visit me after the one hour"; - mes "has passed."; - close; - } - set .@SantaCardTurn,0; - set .@SantaCardWins,0; - mes "[Santa Claus]"; - mes "Wow! You're so cool!"; - next; - mes "[Santa Claus]"; - mes "Let me explain how to play this"; - mes "game."; - next; - mes "[Santa Claus]"; - mes "It's quite simple. I will pick one"; - mes "of three cards: Poring Card,"; - mes "Ghostring Card, and Angeling Card."; - mes "Guess which card I pick and"; - mes "you're a winner!"; - next; - mes "[Santa Claus]"; - mes "If you guess right 3 times out of"; - mes "5, I will give you a gift."; - mes "Let's get started!"; - next; - while(.@SantaCardTurn != 5) { - emotion 56; - mes "[Santa Claus]"; - mes "First let me shuffle up these"; - mes "cards... Ok!!!"; - next; - specialeffect 0; - mes "[Santa Claus]"; - mes "One!"; - next; - specialeffect 1; - mes "[Santa Claus]"; - mes "Two!"; - next; - specialeffect 2; - mes "[Santa Claus]"; - mes "Three!"; - next; - specialeffect 18; - mes "[Santa Claus]"; - mes "I'm picking up only one!"; - next; - cutin "sorry",4; - mes "[Santa Claus]"; - mes "I'm picking up only one!"; - mes "Please guess what is is."; - next; - switch(select("Poring:Angeling:Ghostring")) { - case 1: - mes "["+strcharinfo(0)+"]"; - mes "Um...I choose Poring!"; - set .@SantaCardP,1; - next; - break; - - case 2: - mes "["+strcharinfo(0)+"]"; - mes "Um...I choose Angeling!"; - set .@SantaCardP,2; - next; - break; - - case 3: - mes "["+strcharinfo(0)+"]"; - mes "Um...I choose Ghostring!"; - set .@SantaCardP,3; - next; - } - mes "[Santa Claus]"; - mes "Let's see!!"; - mes "One! Two! Three!"; - set .@SantaCardNpc, rand(1,3); - next; - mes "[Santa Claus]"; - mes "Let's see!!"; - mes "One! Two! Three!"; - if (.@SantaCardNpc == 1) { - cutin "ニクオトォオ",4; - } - else if (.@SantaCardNpc == 2) { - cutin "ソ」チゥクオトォオ",4; - } - else if (.@SantaCardNpc == 3) { - cutin "ースコニョクオトォオ",4; - } - next; - set .@SantaCardTurn,.@SantaCardTurn+1; - if (.@SantaCardP == .@SantaCardNpc) { - set .@SantaCardWins,.@SantaCardWins+1; - emotion 0; - emotion 5,1; - cutin "",255; - mes "[Santa Claus]"; - mes "You're lucky."; - mes "Can you guess the right card the"; - mes "next time around?"; - next; - }else{ - emotion 0; - emotion 23,1; - cutin "",255; - mes "[Santa Claus]"; - mes "Aww maybe next time..."; - next; - } - } - if (.@SantaCardWins < 3) { - mes "["+strcharinfo(0)+"]"; - mes "This is just luck. Let me try"; - mes "again!!"; - next; - mes "[Santa Claus]"; - mes "Whenever you want."; - close; - }else{ - mes "[Santa Claus]"; - mes "You're so good!"; - next; - mes "[Santa Claus]"; - mes "Now this gift is for you. Put your"; - mes "hand into the bag and pick only"; - mes "one."; - set .@SantaCardPrize, rand(1,12); - next; - if (.@SantaCardPrize == 1) { - getitem 12354,2; - } - else if (.@SantaCardPrize == 2) { - getitem 595,3; - } - else if (.@SantaCardPrize == 3) { - getitem 593,3; - } - else if (.@SantaCardPrize == 4) { - getitem 12236,3; - } - else if (.@SantaCardPrize == 5) { - getitem 538,10; - } - else if (.@SantaCardPrize == 6) { - getitem 14546,10; - } - else if (.@SantaCardPrize == 7) { - getitem 5136,1; - } - else if (.@SantaCardPrize == 8) { - getitem 603,1; - } - else if (.@SantaCardPrize == 9) { - getitem 12130,1; - } - else if (.@SantaCardPrize == 10) { - getitem 14550,10; - } - else if (.@SantaCardPrize == 11) { - getitem 12132,3; - } - else if (.@SantaCardPrize == 12) { - getitem 594,3; - } - set SantaCardTime,gettimetick(2)+3600; - mes "[Santa Claus]"; - mes "Good job! Thanks for playing the"; - mes "card game with me! Merry"; - mes "Christmas!"; - close; - } - - case 4: - mes "[Santa Claus]"; - mes "Do you mean that ever so"; - mes "fashionable costume for Santa's and"; - mes "youngsters!?!"; - mes "Light-weight, fashionable, and"; - mes "keeps you warm!"; - next; - mes "[Santa Claus]"; - mes "There used to be designer who"; - mes "visited my house to make my Santa"; - mes "costumes. Do you have any ideas?"; - close; - - case 5: - mes "[Santa Claus]"; - mes "........................"; - next; - mes "[Santa Claus]"; - mes "........................"; - if (Sex) { - mes "Oh! Poor boy..."; - }else{ - mes "Oh! Poor girl..."; - } - next; - mes "[Santa Claus]"; - mes "........................"; - if (Sex) { - mes "Oh! Poor boy..."; - }else{ - mes "Oh! Poor girl..."; - } - mes "..."; - next; - mes "[Santa Claus]"; - mes "You should open your heart to the"; - mes "spirit of Christmas!"; - mes "Once you do, I know you'll be able"; - mes "to think of something."; - close; - } -} - -payon,171,109,4 duplicate(08santa) Santa Claus#0801 718 -prontera,156,285,4 duplicate(08santa) Santa Claus#0802 718 -alberta,117,66,4 duplicate(08santa) Santa Claus#0803 718 -geffen,119,70,4 duplicate(08santa) Santa Claus#0804 718 -morocc,158,104,4 duplicate(08santa) Santa Claus#0805 718 - - -// ============= Louise Kim - Santa Suit =============== -// ===================================================== -xmas_in,89,92,4 script Louise Kim#iROxmas08 714,{ - mes "[Louise Kim]"; - mes "I always thought about how boring"; - mes "Santa Claus is wearing a too boring"; - mes "costume. Too boring!"; - next; - mes "[Louise Kim]"; - mes "I could make a glamorous style for"; - mes "him!"; - next; - mes "[Louise Kim]"; - mes "I once made a costume for"; - mes "the notorious figure Antonio!"; - mes "The reason catching up to him"; - mes "is so hard, is that his clothes"; - mes "have been given strong power!"; - mes "I blessed them with good luck!"; - next; - emotion 3; - mes "[Louise Kim]"; - mes "Preta Porter!!"; - mes "Which is quite luxurious"; - mes "but sold at good price ~"; - next; - mes "[Louise Kim]"; - mes "Hey loosers! You can share my sense"; - mes "of fashion and wear my look if you"; - mes "run a light mission for me."; - next; - mes "[Louise Kim]"; - mes "Are you interested?"; - next; - if (select("Nope.:Yes, please.") == 1) { - mes "[Louise Kim]"; - mes "Ah!"; - mes "You're silly! You lost your big"; - mes "chance!"; - next; - emotion 18; - mes "[Louise Kim]"; - mes "Come to me later if you"; - mes "want to get the mission."; - mes "I, Louise Kim, am generous"; - mes "enough to accept you next time."; - close; - } - mes "[Louise Kim]"; - mes "You're so cool."; - next; - mes "[Louise Kim]"; - mes "Don't worry about this mission."; - mes "It's not that difficult."; - mes "I'm only in need of some"; - mes "materials. Things that are"; - mes "beyond my ability..."; - next; - mes "[Louise Kim]"; - mes "Anyway, can you bring me some"; - mes "stuff?"; - next; - if (select("Why not? What do you need?:Sorry, no time.") == 2) { - emotion 18; - mes "[Louise Kim]"; - mes "What?"; - mes "You will definitely regret it."; - mes "No more chances later."; - close; - } - mes "[Louise Kim]"; - mes "All right, you're cool!!"; - mes "You need to bring me: ^0000FFCotton Shirt,"; - mes "3 Red Potion, Holy Water, 4 Wrapping"; - mes "Paper, Wrapping Lace^000000.."; - next; - mes "[Louise Kim]"; - mes "If you bring me all that stuff, I"; - mes "can make you a glamorous Santa"; - mes "costume."; - next; - if (countitem(2301) < 1 || countitem(501) < 3 || countitem(523) < 1 || countitem(7175) < 4 || countitem(7174) < 1) { - mes "[Louise Kim]"; - mes "If you were to bring me all the"; - mes "stuff, I would make you a wonderful"; - mes "costume, for free..."; - next; - emotion 3; - mes "[Louise Kim]"; - mes "Please see me again if you are"; - mes "interested."; - close; - }else{ - select("Here you are."); - emotion 33; - mes "[Louise Kim]"; - mes "Oh! Good!"; - mes "Let's not delay."; - mes "I will show you my limitless"; - mes "ability."; - next; - mes "-She pours everything in a pot-"; - mes "-even the shirt goes in!-"; - mes "-She takes it out with skill-"; - mes "-and many blessings she sings.-"; - next; - specialeffect 42; - emotion 2; - mes "[Louise Kim]"; - mes "By artist, Louise Kim!"; - mes "All over the world will be blessed"; - mes "tonight!"; - next; - mes "-Pour red potion in another pot-"; - mes "-then stir all of its parts.-"; - mes "-Put the cotton shirts in-"; - mes "-and dye it for grateful hearts.-"; - mes "-Thread by thread-"; - mes "-String by string-"; - mes "-Count your blessings and sing!-"; - next; - specialeffect 75; - emotion 2; - mes "[Louise Kim]"; - mes "By artist, Louise Kim!"; - mes "All over the world will be blessed"; - mes "tonight!"; - next; - mes "-She is knitting clothes-"; - mes "-with a hooked needle-"; - mes "-with her great skill.-"; - mes "Spread your blessings,-"; - mes "cheer and goodwill!-"; - next; - specialeffect 91; - emotion 3; - mes "[Louise Kim]"; - mes "This is miraculous!"; - mes "I am a genius of the world."; - mes "Artist, Louise Kim!!!"; - next; - mes "[Louise Kim]"; - mes "All right! Isn't it wonderful?"; - mes "You can call it what you wish."; - mes "My fashion is radiant."; - mes "I ain't envious of Designer"; - mes "Pierre."; - next; - emotion 18; - mes "[Louise Kim]"; - mes "I am supposed to get paid well,"; - mes "however I will just let it"; - mes "be free, since this is Christmas!"; - next; - delitem 2301,1; - delitem 501,3; - delitem 523,1; - delitem 7175,4; - delitem 7174,1; - getitem 12132,1; - mes "[Louise Kim]"; - mes "Go brag about these wonderful"; - mes "clothes. There wouldn't be"; - mes "any without me, Louise Kim."; - close; - } -} - -//XMAS MOBS -prt_fild00,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild00,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild00,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild00,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild01,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild01,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild01,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild01,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild02,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild02,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild02,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild02,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild03,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild03,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild03,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild03,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild04,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild04,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild04,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild04,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild05,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild05,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild05,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild05,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild06,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild06,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild06,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild06,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild07,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild07,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild07,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild07,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild08,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild08,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild08,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild08,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild09,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild09,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild09,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild09,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild10,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild10,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild10,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild10,0,0,0,0 monster Antonio 1247,1,0,0,0 - -prt_fild11,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -prt_fild11,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -prt_fild11,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -prt_fild11,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild01,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild01,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild01,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild01,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild02,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild02,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild02,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild02,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild03,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild03,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild03,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild03,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild04,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild04,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild04,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild04,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild05,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild05,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild05,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild05,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild06,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild06,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild06,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild06,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild07,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild07,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild07,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild07,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild08,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild08,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild08,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild08,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild09,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild09,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild09,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild09,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild10,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild10,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild10,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild10,0,0,0,0 monster Antonio 1247,1,0,0,0 - -pay_fild11,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -pay_fild11,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -pay_fild11,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -pay_fild11,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild00,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild00,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild00,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild00,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild01,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild01,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild01,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild01,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild02,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild02,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild02,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild02,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild03,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild03,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild03,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild03,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild04,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild04,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild04,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild04,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild05,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild05,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild05,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild05,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild06,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild06,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild06,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild06,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild07,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild07,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild07,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild07,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild08,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild08,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild08,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild08,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild09,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild09,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild09,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild09,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild10,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild10,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild10,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild10,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild11,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild11,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild11,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild11,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild12,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild12,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild12,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild12,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild13,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild13,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild13,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild13,0,0,0,0 monster Antonio 1247,1,0,0,0 - -gef_fild14,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -gef_fild14,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -gef_fild14,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 -gef_fild14,0,0,0,0 monster Antonio 1247,1,0,0,0 - -xmas_fild01,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 -xmas_fild01,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 -xmas_fild01,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +//===== eAthena Script ======================================= +//= iRO 2008 Christmas Event +//===== By: ================================================== +//= Kisuka +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +//= iRO Christmas Event. (2008) +//= Create Music Box and Cake. +//= Play card game with Santa. +//= Create Santa Suits. +//========================================== +//= Must enable X-mas08 items in item_db2 (not in databases). +//= Must have 'Christmas Carol' skill (not in databases). +//= Must enable X-mas08 mobs in mob_avail (not in databases). +//===== Additional Comments: ================================= +//= 1.0 First version. [Kisuka] +//============================================================ + +// ============== Carolling - Music Box ================ +// ===================================================== +prontera,226,306,4 script Carolling#iROxmas08 79,{ + if (iROxmas08carol < 1 || iROxmas08carol == 3) { + if (iROxmas08carol == 3) { + mes "[Carolling]"; + mes "Jingle Bells! Jingle Bells! Jingle"; + mes "all the way!"; + mes "O' what fun it is to ride in a"; + mes "one-horse open sleeeigh, Hey!"; + next; + mes "[Carolling]"; + mes "Merry Christmas!"; + mes "Hey! You! What comes to mind when"; + mes "you think about Christmas?"; + next; + }else{ + mes "[Carolling]"; + mes "Jingle Bells! Jingle Bells! Jingle all the way!"; + next; + specialeffect 75; + mes "[Carolling]"; + mes "O' what fun it is to ride in a one-horse open sleigh!"; + next; + mes "[Carolling]"; + mes "Merry Christmas!"; + if (Sex) { + mes "Hey, boy! What comes to mind when"; + }else{ + mes "Hey, girl! What comes to mind when"; + } + mes "you think about Christmas?"; + next; + } + switch(select("Santa Claus:Gift Boxes:Carols:Santa Costumes:Fake Santa Antonio")) { + + case 1: + mes "[Carolling]"; + mes "Santa Claus!"; + mes "You're so innocent!!"; + mes "Ah!"; + next; + mes "[Carolling]"; + mes "Here's a secret!"; + mes "There's a rumor that Santa Claus"; + mes "lives in a certain village all"; + mes "throughout the year."; + next; + mes "[Carolling]"; + mes "But now!!!"; + mes "In this Christmas season!!"; + mes "You guys can meet Santa on either"; + mes "of the five possible villages"; + mes "throughout Rune-Midgerts!"; + next; + mes "[Carolling]"; + mes "If you win over Santa, you can get"; + mes "a gift. Would you go for it?"; + next; + emotion 18; + mes "[Carolling]"; + mes "Carolling's hot news! Ha!"; + mes "Isn't that big news?"; + close; + + case 2: + mes "[Carolling]"; + mes "Gift boxes?! All right!"; + mes "Isn't it thrilling to open gifts"; + mes "over your head!!"; + next; + mes "[Carolling]"; + mes "Anyway, did you know..."; + mes "Some villain, a fake Santa robbed"; + mes "some gifts from the good Santa!"; + next; + mes "[Carolling]"; + mes "Furthermore, he has put bad magic"; + mes "on the gifts so that they become"; + mes "monsters!"; + next; + emotion 18; + mes "[Carolling]"; + mes "Carolling's hot news! Ha!"; + mes "Isn't it amazing?"; + close; + + case 3: + if (iROxmas08carol == 3) { + mes "[Carolling]"; + mes "Ah, a music box is useful."; + next; + mes "[Carolling]"; + mes "Though we can't all play it around"; + mes "the village as we planned, it's"; + mes "cool that you carry it."; + next; + mes "[Carolling]"; + mes "We want to enjoy carols all"; + mes "together... I hope to get Crystal"; + mes "Pieces!"; + next; + mes "[Carolling]"; + mes "If you can get ^0000FFSinging Crystal"; + mes "Pieces^000000, give them to me please?"; + next; + select("Why not? Sure, I can give you some."); + if (countitem(6092) < 6) { + mes "[Carolling]"; + mes "Yes, please."; + next; + mes "[Carolling]"; + mes "If you can get ^0000FFSinging Crystal"; + mes "Pieces^000000, give them to me please?"; + close; + }else{ + mes "[Carolling]"; + mes "Wow, you have them."; + next; + mes "[Carolling]"; + mes "I can bake you a cake,"; + mes "and I can carve your name on the"; + mes "cake, if you want!"; + next; + if (select("No, thanks.:Please name it for me.") == 2) { + mes "[Carolling]"; + mes "Thank for your help!"; + next; + mes "[Carolling]"; + mes "Many people live in the giant"; + mes "world!"; + mes "So many people hope to hear"; + mes "carolling, yet I always lack"; + mes "Crystal pieces."; + next; + mes "[Carolling]"; + mes "If you can get ^0000FFSinging Crystal Pieces^000000, give them to me please?"; + next; + emotion 18; + delitem 6092,6; + getnameditem 12354,"+strcharinfo(0)+"; + mes "[Carolling]"; + mes "Let's care about others around you"; + mes "on this Christmas season!"; + close; + }else{ + mes "[Carolling]"; + mes "Oh!"; + mes "Shyness!"; + next; + mes "[Carolling]"; + mes "Anyway, thanks a lot for your"; + mes "help."; + next; + mes "[Carolling]"; + mes "Many people live in the giant"; + mes "world!"; + mes "So many people hope to hear"; + mes "carolling, yet I always lack"; + mes "Crystal pieces."; + next; + mes "[Carolling]"; + mes "If you can get ^0000FFSinging Crystal Pieces^000000, give them to me please?"; + next; + emotion 18; + delitem 6092,6; + getitem 12354,1; + mes "[Carolling]"; + mes "Let's care about others around you"; + mes "on this Christmas season!"; + close; + } + } + } + mes "[Carolling]"; + mes "You know about Christmas!"; + mes "Talking about Christmas..."; + mes "...it's carols!!!"; + mes "I've been waiting for this for when"; + mes "Christmas comes around!"; + next; + mes "[Carolling]"; + mes "But there's been no caroling here"; + mes "and there like before, so we can't"; + mes "feel the Christmas spirit."; + next; + mes "[Carolling]"; + mes "So, I installed a Singing Crystal"; + mes "in Prontera..."; + next; + mes "[Carolling]"; + mes "but that jerk Antonio broke the"; + mes "crystal!"; + next; + mes "[Carolling]"; + mes "The gift boxes have been changing"; + mes "into monsters since Antonio placed"; + mes "some magic on them, so the monsters"; + mes "ate up the crystal fragments!"; + next; + mes "[Carolling]"; + mes "I am so devastated, since the"; + mes "Singing Crystal has been the hope"; + mes "of many children around the villages."; + next; + if (select("There's no other way to carol?:You can hear carols in Lutie.") == 2) { + mes "[Carolling]"; + mes "And just stay there, every"; + mes "Christmas, for your whole life?"; + next; + mes "["+strcharinfo(0)+"]"; + mes "What? What do you mean?"; + next; + mes "[Carolling]"; + mes "Oh, nevermind."; + mes "Ah..."; + close; + } + mes "[Carolling]"; + mes "Maybe, it's quite hard to make a"; + mes "jukebox for the villages, but a"; + mes "music box might be possible."; + next; + mes "[Carolling]"; + mes "We need the ^0000FFSinging Crystal Pieces^000000"; + mes "that the monsters ate up."; + next; + mes "[Carolling]"; + mes "Please bring me ^0000FF6 Singing Crystal"; + mes "Pieces^000000, and you will be rewarded"; + mes "with presents!"; + next; + mes "[Carolling]"; + mes "Sounds cool, huh!!"; + next; + select("........................"); + mes "[Carolling]"; + mes "...Why are you staring at me like"; + mes "that?"; + next; + mes "[Carolling]"; + mes "You're thinking that we are always"; + mes "getting our plans spoiled, aren't"; + mes "you?"; + next; + mes "[Carolling]"; + mes "I know that we are not good at"; + mes "controlling stuff, but our rewards"; + mes "are good, right?"; + next; + select("........................"); + mes "[Carolling]"; + mes "Hey, we treat you good..."; + next; + select("........................"); + mes "[Carolling]"; + mes "You are so cruel to me!"; + mes "Bad! Bad!"; + next; + mes "[Carolling]"; + mes "Please, for our children's"; + mes "hope!!!?"; + mes "Please bring me 6 Singing Crystal"; + mes "Pieces from ^0000FFViolent Gift Boxes^000000!"; + next; + emotion 33; + mes "[Carolling]"; + mes "They're definitely as"; + mes "harsh as their name."; + mes "Go on please!"; + set iROxmas08carol,1; + close; + + case 4: + mes "[Carolling]"; + mes "Santa costumes!!"; + mes "You know, the santa costumes that"; + mes "the monsters are wearing now aren't"; + mes "genuine!"; + next; + mes "[Carolling]"; + mes "The rumor 'round here is, Lutie's"; + mes "designer made these costumes."; + next; + mes "[Carolling]"; + mes "Every year, adventurers challenge"; + mes "to attack Antonio the fake Santa,"; + mes "but there's no way to catch up to"; + mes "him due to his hat and costume!"; + next; + mes "[Carolling]"; + mes "Are there some spcial abilities"; + mes "within them?"; + mes "There's still the designer in the"; + mes "Christmas village... How about"; + mes "asking her to make that costume?"; + next; + emotion 18; + mes "[Carolling]"; + mes "Carolling's hot news! Ha!"; + mes "It's hot, huh?"; + close; + + + case 5: + mes "[Carolling]"; + mes "A-N-T-O-N-I-O!!!"; + mes "As I heard, this Antonio is quite"; + mes "different from before."; + next; + mes "[Carolling]"; + mes "He seems to be quite resolved with"; + mes "himself since he ran away from"; + mes "people before."; + next; + mes "[Carolling]"; + mes "And he isn't alone anymore... is"; + mes "what I heard..."; + next; + emotion 18; + mes "[Carolling]"; + mes "Carolling's hot news! Ha!"; + mes "Hotness, right?"; + close; + } + } + + if (iROxmas08carol == 1) { + if (countitem(6092) < 6) { + mes "[Carolling]"; + mes "Maybe, it's quite hard to make a"; + mes "jukebox for the villages, but a"; + mes "music box might be possible."; + next; + mes "[Carolling]"; + mes "We need the ^0000FFSinging Crystal Pieces^000000"; + mes "that the monsters ate up."; + next; + mes "[Carolling]"; + mes "Please bring me ^0000FF6 Singing Crystal Pieces^000000, and you will be rewarded with presents!"; + next; + mes "[Carolling]"; + mes "For all of the children of this"; + mes "world!!!"; + mes "Please bring me ^0000FF6Singing Crystal"; + mes "Pieces^000000 from ^0000FFViolent Gift Boxes^000000!"; + next; + emotion 33; + mes "[Carolling]"; + mes "Be careful!"; + mes "They're definitely as"; + mes "harsh as their name."; + mes "Take care!!!"; + close; + }else{ + specialeffect 75; + mes "[Carolling]"; + mes "Don't cry, don't cry!"; + mes "Santa won't give you a"; + mes "gift if you're crying."; + next; + mes "[Carolling]"; + select("I got them!"); + mes "[Carolling]"; + mes "Wow, you got them!"; + mes "They are so cruel, aren't they?"; + mes "I'm happy to see you again."; + next; + mes "[Carolling]"; + mes "Let's count together!"; + mes "... ..."; + mes "Six!!"; + next; + mes "[Carolling]"; + mes "All right! We can start to make our"; + mes "music box with crystal fragments."; + next; + mes "[Carolling]"; + mes "We would amplify the sounds of the"; + mes "crystal fragments to sound through"; + mes "the music box."; + next; + mes "[Carolling]"; + mes "You know, a music box that sounds"; + mes "like a jukebox!"; + next; + mes "[Carolling]"; + mes "It's handy. You can carry it, as"; + mes "well as listen to sweet carols"; + mes "anywhere. Doesn't that sound"; + mes "cool!?"; + next; + mes "[Carolling]"; + mes "So, we need more of some"; + mes "materials."; + mes "^0000FF10 Wooden Block, 1 Hammer Of"; + mes "Blacksmith, 1 Jubilee, 10 Sticky"; + mes "Mucus, 3-karat Diamond^000000!"; + next; + delitem 6092,6; + emotion 33; + set iROxmas08carol,2; + mes "[Carolling]"; + mes "Those are all needed."; + mes "Isn't that easy?"; + close; + } + } + + if (iROxmas08carol == 2) { + if (countitem(1019) < 10 || countitem(1005) < 1 || countitem(7312) < 1 || countitem(938) < 10 || countitem(732) < 1) { + mes "[Carolling]"; + mes "We can make a music box"; + mes "with Singing Crystal Pieces."; + mes "It's handy, you can hear carols"; + mes "anywhere. Sounds cool?"; + next; + mes "[Carolling]"; + mes "So, we need more of some materials."; + mes "^0000FF10 Wooden Block, 1 Hammer Of"; + mes "Blacksmith, 1 Jubilee, 10 Sticky"; + mes "Mucus, 3-karat Diamond^000000!"; + next; + emotion 33; + mes "[Carolling]"; + mes "That's all we need."; + mes "Isn't that easy?"; + close; + }else{ + specialeffect 75; + mes "[Carolling]"; + mes "Jingle bells, jingle bells,"; + mes "jingle all the way!"; + mes "O what fun it is to ride, in a"; + mes "one... horse... o-pen... sleigh!!!"; + next; + mes "[Carolling]"; + mes "Wow!"; + mes "You came back!"; + mes "Did you bring all the"; + mes "materials?"; + next; + mes "[Carolling]"; + mes "Good!"; + mes "No need to hesitate! Let's get"; + mes "started to make our music box."; + next; + mes "[Carolling]"; + specialeffect 101; + mes "Blacksmith hammers on wooden"; + mes "block... and we shape the frame."; + next; + mes "[Carolling]"; + //(effect - stones from ground?) + mes "Please use the Singing Crystal"; + mes "Pieces for a column, the Diamond as"; + mes "a prop, and the Sticky Mucus as"; + mes "glue."; + next; + mes "[Carolling]"; + specialeffect 1; + mes "And now..."; + mes "we decorate with a Jubilee..."; + next; + mes "[Carolling]"; + specialeffect 88; + mes "The last step...!"; + mes "Breating life into it!"; + next; + mes "[Carolling]"; + mes "It's done now!!!"; + next; + mes "[Carolling]"; + mes "It's so cool! Isn't it cute!!?!"; + next; + mes "[Carolling]"; + mes "You did as I requested, so I will"; + mes "give you gifts, as promised."; + next; + mes "[Carolling]"; + mes "One, is this music box."; + mes "Please play this music box all over"; + mes "the villages!"; + next; + mes "[Carolling]"; + mes "Another present is a Christmas cake"; + mes "especially shaped like your name!"; + mes "I made this cake shaped like your"; + mes "name!"; + next; + mes "[Carolling]"; + mes "Don't worry, it tastes good."; + next; + emotion 33; + getitem 2784,1; + getnameditem 12354,"+strcharinfo(0)+"; + delitem 1019,10; + delitem 1005,1; + delitem 7312,1; + delitem 938,10; + delitem 732,1; + set iROxmas08carol,3; + mes "[Carolling]"; + mes "Thanks a lot."; + mes "Merry Christmas!"; + mes "Have a good holiday season!"; + close; + } + } +} + +// ============= Santa Claus - Card Game =============== +// ===================================================== +- script Santa Claus#iROxmas08::08santa 718,{ + mes "[Santa Claus]"; + mes "Wow! Were you naughty or nice this"; + mes "year?"; + mes "All right, what comes to your mind"; + mes "when you think about Christmas?"; + next; + switch(select("Carolling:Santa Claus:Gift Boxes:Santa Costume:Not much really...")) { + + case 1: + mes "[Santa Claus]"; + mes "Carolling! That's good!"; + mes "A sweet carol always makes"; + mes "Christmas more happy!!!"; + next; + mes "[Santa Claus]"; + mes "Yes indeed Carolling spreads Joy"; + mes "throughout the world?"; + close; + + case 2: + mes "[Santa Claus]"; + if (Sex) { + mes "Ho ho ho! What a good boy!"; + }else{ + mes "Ho ho ho! What a good girl!"; + } + next; + mes "[Santa Claus]"; + mes "But you should be wary of a fake"; + mes "Santa romaing around."; + mes "Have you heard of Antonio, who"; + mes "invades villages every Christmas?"; + next; + mes "[Santa Claus]"; + mes "He has stolen my gifts, as well as"; + mes "attacked adventurers around Toy and"; + mes "Lutie field."; + next; + mes "[Santa Claus]"; + mes "A bad Santa ruins us good Santa's"; + mes "reputations!"; + mes "The World Santa Organization is"; + mes "considering this a grave"; + mes "situation."; + close; + + case 3: + mes "[Santa Claus]"; + mes "A gift box! That sounds good!"; + mes "It's so exciting to open gift boxes"; + mes "when you wake up on Christmas"; + mes "morning!!!"; + next; + mes "[Santa Claus]"; + mes "But we have very little gifts now,"; + mes "since Santa Antonio has stolen my"; + mes "gift bag."; + next; + mes "[Santa Claus]"; + mes "Many adventurers try to catch up"; + mes "to him, but he is not easy to catch."; + next; + mes "[Santa Claus]"; + mes "Anyway let those adventurers try to"; + mes "catch him, I have a small game for"; + mes "you."; + next; + mes "[Santa Claus]"; + mes "I will give you a small gift if you"; + mes "beat me!"; + next; + mes "[Santa Claus]"; + mes "Do you want to play a game with"; + mes "me?"; + next; + if (select("No, thanks.:Yes, I would.") == 1) { + mes "[Santa Claus]"; + mes "Aww, don't be afraid. If you've"; + mes "been a little naughty this year I"; + mes "won't stuff your stockings with"; + mes "coal."; + next; + mes "[Santa Claus]"; + mes "I will stay here throughout the"; + mes "Christmas season, just visit me"; + mes "when you change your mind."; + close; + } + if (gettimetick(2) < SantaCardTime) { + mes "[Santa Claus]"; + mes "Um... You've played the game"; + mes "recently haven't you?"; + next; + mes "[Santa Claus]"; + mes "You can try the game once a hour."; + mes "Please visit me after the one hour"; + mes "has passed."; + close; + } + set .@SantaCardTurn,0; + set .@SantaCardWins,0; + mes "[Santa Claus]"; + mes "Wow! You're so cool!"; + next; + mes "[Santa Claus]"; + mes "Let me explain how to play this"; + mes "game."; + next; + mes "[Santa Claus]"; + mes "It's quite simple. I will pick one"; + mes "of three cards: Poring Card,"; + mes "Ghostring Card, and Angeling Card."; + mes "Guess which card I pick and"; + mes "you're a winner!"; + next; + mes "[Santa Claus]"; + mes "If you guess right 3 times out of"; + mes "5, I will give you a gift."; + mes "Let's get started!"; + next; + while(.@SantaCardTurn != 5) { + emotion 56; + mes "[Santa Claus]"; + mes "First let me shuffle up these"; + mes "cards... Ok!!!"; + next; + specialeffect 0; + mes "[Santa Claus]"; + mes "One!"; + next; + specialeffect 1; + mes "[Santa Claus]"; + mes "Two!"; + next; + specialeffect 2; + mes "[Santa Claus]"; + mes "Three!"; + next; + specialeffect 18; + mes "[Santa Claus]"; + mes "I'm picking up only one!"; + next; + cutin "sorry",4; + mes "[Santa Claus]"; + mes "I'm picking up only one!"; + mes "Please guess what is is."; + next; + switch(select("Poring:Angeling:Ghostring")) { + case 1: + mes "["+strcharinfo(0)+"]"; + mes "Um...I choose Poring!"; + set .@SantaCardP,1; + next; + break; + + case 2: + mes "["+strcharinfo(0)+"]"; + mes "Um...I choose Angeling!"; + set .@SantaCardP,2; + next; + break; + + case 3: + mes "["+strcharinfo(0)+"]"; + mes "Um...I choose Ghostring!"; + set .@SantaCardP,3; + next; + } + mes "[Santa Claus]"; + mes "Let's see!!"; + mes "One! Two! Three!"; + set .@SantaCardNpc, rand(1,3); + next; + mes "[Santa Claus]"; + mes "Let's see!!"; + mes "One! Two! Three!"; + if (.@SantaCardNpc == 1) { + cutin "ニクオトォオ",4; + } + else if (.@SantaCardNpc == 2) { + cutin "ソ」チゥクオトォオ",4; + } + else if (.@SantaCardNpc == 3) { + cutin "ースコニョクオトォオ",4; + } + next; + set .@SantaCardTurn,.@SantaCardTurn+1; + if (.@SantaCardP == .@SantaCardNpc) { + set .@SantaCardWins,.@SantaCardWins+1; + emotion 0; + emotion 5,1; + cutin "",255; + mes "[Santa Claus]"; + mes "You're lucky."; + mes "Can you guess the right card the"; + mes "next time around?"; + next; + }else{ + emotion 0; + emotion 23,1; + cutin "",255; + mes "[Santa Claus]"; + mes "Aww maybe next time..."; + next; + } + } + if (.@SantaCardWins < 3) { + mes "["+strcharinfo(0)+"]"; + mes "This is just luck. Let me try"; + mes "again!!"; + next; + mes "[Santa Claus]"; + mes "Whenever you want."; + close; + }else{ + mes "[Santa Claus]"; + mes "You're so good!"; + next; + mes "[Santa Claus]"; + mes "Now this gift is for you. Put your"; + mes "hand into the bag and pick only"; + mes "one."; + set .@SantaCardPrize, rand(1,12); + next; + if (.@SantaCardPrize == 1) { + getitem 12354,2; + } + else if (.@SantaCardPrize == 2) { + getitem 595,3; + } + else if (.@SantaCardPrize == 3) { + getitem 593,3; + } + else if (.@SantaCardPrize == 4) { + getitem 12236,3; + } + else if (.@SantaCardPrize == 5) { + getitem 538,10; + } + else if (.@SantaCardPrize == 6) { + getitem 14546,10; + } + else if (.@SantaCardPrize == 7) { + getitem 5136,1; + } + else if (.@SantaCardPrize == 8) { + getitem 603,1; + } + else if (.@SantaCardPrize == 9) { + getitem 12130,1; + } + else if (.@SantaCardPrize == 10) { + getitem 14550,10; + } + else if (.@SantaCardPrize == 11) { + getitem 12132,3; + } + else if (.@SantaCardPrize == 12) { + getitem 594,3; + } + set SantaCardTime,gettimetick(2)+3600; + mes "[Santa Claus]"; + mes "Good job! Thanks for playing the"; + mes "card game with me! Merry"; + mes "Christmas!"; + close; + } + + case 4: + mes "[Santa Claus]"; + mes "Do you mean that ever so"; + mes "fashionable costume for Santa's and"; + mes "youngsters!?!"; + mes "Light-weight, fashionable, and"; + mes "keeps you warm!"; + next; + mes "[Santa Claus]"; + mes "There used to be designer who"; + mes "visited my house to make my Santa"; + mes "costumes. Do you have any ideas?"; + close; + + case 5: + mes "[Santa Claus]"; + mes "........................"; + next; + mes "[Santa Claus]"; + mes "........................"; + if (Sex) { + mes "Oh! Poor boy..."; + }else{ + mes "Oh! Poor girl..."; + } + next; + mes "[Santa Claus]"; + mes "........................"; + if (Sex) { + mes "Oh! Poor boy..."; + }else{ + mes "Oh! Poor girl..."; + } + mes "..."; + next; + mes "[Santa Claus]"; + mes "You should open your heart to the"; + mes "spirit of Christmas!"; + mes "Once you do, I know you'll be able"; + mes "to think of something."; + close; + } +} + +payon,171,109,4 duplicate(08santa) Santa Claus#0801 718 +prontera,156,285,4 duplicate(08santa) Santa Claus#0802 718 +alberta,117,66,4 duplicate(08santa) Santa Claus#0803 718 +geffen,119,70,4 duplicate(08santa) Santa Claus#0804 718 +morocc,158,104,4 duplicate(08santa) Santa Claus#0805 718 + + +// ============= Louise Kim - Santa Suit =============== +// ===================================================== +xmas_in,89,92,4 script Louise Kim#iROxmas08 714,{ + mes "[Louise Kim]"; + mes "I always thought about how boring"; + mes "Santa Claus is wearing a too boring"; + mes "costume. Too boring!"; + next; + mes "[Louise Kim]"; + mes "I could make a glamorous style for"; + mes "him!"; + next; + mes "[Louise Kim]"; + mes "I once made a costume for"; + mes "the notorious figure Antonio!"; + mes "The reason catching up to him"; + mes "is so hard, is that his clothes"; + mes "have been given strong power!"; + mes "I blessed them with good luck!"; + next; + emotion 3; + mes "[Louise Kim]"; + mes "Preta Porter!!"; + mes "Which is quite luxurious"; + mes "but sold at good price ~"; + next; + mes "[Louise Kim]"; + mes "Hey loosers! You can share my sense"; + mes "of fashion and wear my look if you"; + mes "run a light mission for me."; + next; + mes "[Louise Kim]"; + mes "Are you interested?"; + next; + if (select("Nope.:Yes, please.") == 1) { + mes "[Louise Kim]"; + mes "Ah!"; + mes "You're silly! You lost your big"; + mes "chance!"; + next; + emotion 18; + mes "[Louise Kim]"; + mes "Come to me later if you"; + mes "want to get the mission."; + mes "I, Louise Kim, am generous"; + mes "enough to accept you next time."; + close; + } + mes "[Louise Kim]"; + mes "You're so cool."; + next; + mes "[Louise Kim]"; + mes "Don't worry about this mission."; + mes "It's not that difficult."; + mes "I'm only in need of some"; + mes "materials. Things that are"; + mes "beyond my ability..."; + next; + mes "[Louise Kim]"; + mes "Anyway, can you bring me some"; + mes "stuff?"; + next; + if (select("Why not? What do you need?:Sorry, no time.") == 2) { + emotion 18; + mes "[Louise Kim]"; + mes "What?"; + mes "You will definitely regret it."; + mes "No more chances later."; + close; + } + mes "[Louise Kim]"; + mes "All right, you're cool!!"; + mes "You need to bring me: ^0000FFCotton Shirt,"; + mes "3 Red Potion, Holy Water, 4 Wrapping"; + mes "Paper, Wrapping Lace^000000.."; + next; + mes "[Louise Kim]"; + mes "If you bring me all that stuff, I"; + mes "can make you a glamorous Santa"; + mes "costume."; + next; + if (countitem(2301) < 1 || countitem(501) < 3 || countitem(523) < 1 || countitem(7175) < 4 || countitem(7174) < 1) { + mes "[Louise Kim]"; + mes "If you were to bring me all the"; + mes "stuff, I would make you a wonderful"; + mes "costume, for free..."; + next; + emotion 3; + mes "[Louise Kim]"; + mes "Please see me again if you are"; + mes "interested."; + close; + }else{ + select("Here you are."); + emotion 33; + mes "[Louise Kim]"; + mes "Oh! Good!"; + mes "Let's not delay."; + mes "I will show you my limitless"; + mes "ability."; + next; + mes "-She pours everything in a pot-"; + mes "-even the shirt goes in!-"; + mes "-She takes it out with skill-"; + mes "-and many blessings she sings.-"; + next; + specialeffect 42; + emotion 2; + mes "[Louise Kim]"; + mes "By artist, Louise Kim!"; + mes "All over the world will be blessed"; + mes "tonight!"; + next; + mes "-Pour red potion in another pot-"; + mes "-then stir all of its parts.-"; + mes "-Put the cotton shirts in-"; + mes "-and dye it for grateful hearts.-"; + mes "-Thread by thread-"; + mes "-String by string-"; + mes "-Count your blessings and sing!-"; + next; + specialeffect 75; + emotion 2; + mes "[Louise Kim]"; + mes "By artist, Louise Kim!"; + mes "All over the world will be blessed"; + mes "tonight!"; + next; + mes "-She is knitting clothes-"; + mes "-with a hooked needle-"; + mes "-with her great skill.-"; + mes "Spread your blessings,-"; + mes "cheer and goodwill!-"; + next; + specialeffect 91; + emotion 3; + mes "[Louise Kim]"; + mes "This is miraculous!"; + mes "I am a genius of the world."; + mes "Artist, Louise Kim!!!"; + next; + mes "[Louise Kim]"; + mes "All right! Isn't it wonderful?"; + mes "You can call it what you wish."; + mes "My fashion is radiant."; + mes "I ain't envious of Designer"; + mes "Pierre."; + next; + emotion 18; + mes "[Louise Kim]"; + mes "I am supposed to get paid well,"; + mes "however I will just let it"; + mes "be free, since this is Christmas!"; + next; + delitem 2301,1; + delitem 501,3; + delitem 523,1; + delitem 7175,4; + delitem 7174,1; + getitem 12132,1; + mes "[Louise Kim]"; + mes "Go brag about these wonderful"; + mes "clothes. There wouldn't be"; + mes "any without me, Louise Kim."; + close; + } +} + +//XMAS MOBS +prt_fild00,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild00,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild00,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild00,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild01,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild01,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild01,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild01,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild02,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild02,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild02,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild02,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild03,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild03,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild03,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild03,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild04,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild04,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild04,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild04,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild05,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild05,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild05,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild05,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild06,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild06,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild06,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild06,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild07,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild07,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild07,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild07,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild08,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild08,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild08,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild08,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild09,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild09,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild09,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild09,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild10,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild10,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild10,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild10,0,0,0,0 monster Antonio 1247,1,0,0,0 + +prt_fild11,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +prt_fild11,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +prt_fild11,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +prt_fild11,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild01,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild01,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild01,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild01,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild02,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild02,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild02,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild02,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild03,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild03,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild03,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild03,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild04,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild04,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild04,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild04,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild05,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild05,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild05,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild05,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild06,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild06,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild06,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild06,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild07,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild07,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild07,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild07,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild08,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild08,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild08,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild08,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild09,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild09,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild09,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild09,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild10,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild10,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild10,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild10,0,0,0,0 monster Antonio 1247,1,0,0,0 + +pay_fild11,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +pay_fild11,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +pay_fild11,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +pay_fild11,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild00,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild00,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild00,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild00,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild01,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild01,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild01,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild01,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild02,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild02,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild02,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild02,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild03,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild03,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild03,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild03,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild04,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild04,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild04,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild04,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild05,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild05,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild05,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild05,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild06,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild06,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild06,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild06,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild07,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild07,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild07,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild07,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild08,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild08,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild08,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild08,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild09,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild09,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild09,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild09,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild10,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild10,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild10,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild10,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild11,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild11,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild11,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild11,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild12,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild12,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild12,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild12,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild13,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild13,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild13,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild13,0,0,0,0 monster Antonio 1247,1,0,0,0 + +gef_fild14,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +gef_fild14,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +gef_fild14,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 +gef_fild14,0,0,0,0 monster Antonio 1247,1,0,0,0 + +xmas_fild01,0,0,0,0 monster Christmas Jakk 1244,5,0,0,0 +xmas_fild01,0,0,0,0 monster Christmas Goblin 1245,5,0,0,0 +xmas_fild01,0,0,0,0 monster Christmas Cookie 1246,5,0,0,0 xmas_fild01,0,0,0,0 monster Antonio 1247,1,0,0,0 \ No newline at end of file diff --git a/npc/events/valentinesday_2009.txt b/npc/events/valentinesday_2009.txt index 0ecb45896..02845d3e2 100644 --- a/npc/events/valentinesday_2009.txt +++ b/npc/events/valentinesday_2009.txt @@ -1,784 +1,784 @@ -//===== eAthena Script ======================================= -//= iRO Valentine's Day Event (2009) -//===== By: ================================================== -//= Kisuka -//===== Current Version: ===================================== -//= 1.2 -//===== Compatible With: ===================================== -//= eAthena SVN -//===== Description: ========================================= -//= iRO Valentine's Day Event. (2009) -//= Make Chocolate/Chocolate Boxes/Home-Made Chocolate. -//= Make Valentine's Rings/Boxes. -//= Trade rings to those of opposite gender. -//= Register rings you have gotten for votes. -//= -//= The male and female with the most votes at the end of -//= the event will receive item (14466) from GM team. -//= -//= Must enable the event items in item_db2 and item_trade! -//===== Additional Comments: ================================= -//= 1.0 First version. [Kisuka] -//= 1.1-1.2 Fixed exploits with unlimited rings and non deleting choco [Lupus] -//============================================================ - -// Marco Bassinio (Chocolate/Chocolate Box maker) -prontera,164,174,4 script Trader#Val09 58,{ - mes "[Marco Bassinio]"; - mes "Hey, folks! Here's something you don't see everyday!"; - mes "Something you can never find in Rune-Midgarts!"; - mes "Something that makes you happy with just one bite!"; - next; - mes "[Marco Bassinio]"; - mes "It's the perfect dessert and the perfect gift for loved ones."; - mes "High-quality, traditional homemade chocolate only 5000z each!"; - next; - switch(select("I'll take it, please!:I want to wrap the chocolate!:End trading.")) { - case 1: - mes "[Marco Bassinio]"; - mes "Ahaha, my dear."; - mes "This chocolate is"; - mes "nothing like others."; - mes "Every piece bears the"; - mes "devotion of the person"; - mes "who made it!"; - next; - mes "[Marco Bassinio]"; - mes "So, that's why I can't sell"; - mes "more than 5 of them at a time."; - mes "If you really really want more,"; - mes "then talk to me again."; - mes "How many do you want anyway?"; - next; - while(.@input <= 0 || .@input > 5) { - input .@input; - if (.@input < 1) { - mes "[Marco Bassinio]"; - mes "Oh, it's such a shame!"; - mes "I'm sure you'll miss"; - mes "this opportunity and"; - mes "regret you didn't buy it."; - next; - mes "[Marco Bassinio]"; - mes "Remember, you can never"; - mes "find this anywhere else!"; - mes "Come back anytime,"; - mes "when you change your mind."; - close; - } - if (.@val09choco > 5) { - mes "[Marco Bassinio]"; - mes "Ugh.. Didn't I tell you?"; - mes "5 is the maximum!"; - mes "I can't sell more than"; - mes "that to the same person."; - next; - mes "[Marco Bassinio]"; - mes "And you know it's not"; - mes "like an everyday meal."; - mes "Eating too much is not"; - mes "really good for you."; - next; - } - } - if (!checkweight(558, .@input)) { - mes "[Marco Bassinio]"; - mes "You're carrying too many items."; - mes "Please use the Kafra Services."; - close; - } - set .@price, .@input * 5000; - if (Zeny < .@price) { - mes "[Marco Bassinio]"; - mes "Looks like you don't have"; - mes "enough zeny with ya."; - mes "Maybe you should borrow"; - mes "some zeny from a friend."; - mes "Cuz, I'm not gonna"; - mes "be here everyday."; - close; - }else{ - mes "[Marco Bassinio]"; - mes "Good for you!"; - mes "It's also perfect as a gift!"; - mes "You know you can't get this"; - mes "kind of chocolate normally."; - next; - mes "[Marco Bassinio]"; - mes "If you want more,"; - mes "you should come back."; - mes "Might be a good idea to"; - mes "buy some more while"; - mes "you have a chance...!"; - set Zeny,Zeny - .@price; - getitem 558,.@input; - close; - } - case 2: - mes "[Marco Bassinio]"; - mes "If you want to gift-wrap"; - mes "the chocolate, of course,"; - mes "you need chocolate,"; - mes "plus, wrapping paper,"; - mes "wrapping strap and a box."; - next; - mes "[Marco Bassinio]"; - mes "You also need to pay"; - mes "500 zeny to carve your"; - mes "name on the box."; - mes "Are you all prepared...?"; - next; - if(countitem(7175) < 1 || countitem(7174) < 1 || countitem(7948) < 1 || Zeny < 500) { - mes "[Marco Bassinio]"; - mes "Hmm.. Looks like you don't"; - mes "have enough materials to"; - mes "decorate the gift box.."; - mes "You can't just put your gift"; - mes "into some plain looking box.."; - mes "Don't you think?"; - next; - mes "[Marco Bassinio]"; - mes "You need to bring some"; - mes "wrapping paper,"; - mes "wrapping strap, and a box."; - mes "Oh, also bring 500 zeny,"; - mes "and don't forget to bring your"; - mes "true loving heart with you!!"; - close; - } - if(countitem(558) < 1) { - mes "[Marco Bassinio]"; - mes "Hey, look, adventurer!"; - mes "I can't create something right away!"; - mes "You know I'm not an alchemist or anything."; - next; - mes "[Marco Bassinio]"; - mes "You're not saying that you"; - mes "want an empty chocolate box"; - mes "without any chocolate in it,"; - mes "am I right?"; - close; - } - if (!checkweight(12744,1)) { - mes "[Marco Bassinio]"; - mes "You're carrying too many items."; - mes "Please use the Kafra Services."; - close; - } - mes "[Marco Bassinio]"; - mes "Here, look!"; - mes "It's your chocolate box"; - mes "with your name on it."; - mes "Isn't it fabulous?"; - mes "See, your name looks"; - mes "great on the box!"; - next; - delitem 558,1; - delitem 7175,1; - delitem 7174,1; - delitem 7948,1; - set Zeny,Zeny-500; - getnameditem 12744,strcharinfo(0); - mes "[Marco Bassinio]"; - mes "Happy Valentine's Day!"; - mes "Valentine's the reason I came back."; - close; - case 3: - mes "[Marco Bassinio]"; - mes "Oh, it's such a shame!"; - mes "I'm sure you'll miss"; - mes "this opportunity and"; - mes "regret you didn't buy it."; - next; - mes "[Marco Bassinio]"; - mes "Remember, you can never"; - mes "find this anywhere else!"; - mes "Come back anytime,"; - mes "when you change your mind."; - close; - } -} - -// Packs Trader (Sells Wrapping Paper, Lace, and Box) -prontera,147,171,5 script Packs Trader#Val09 58,{ - mes "[Packs Trader]"; - mes "Hello."; - mes "I am a Packs Trader,"; - mes "I sell paper boxes and"; - mes "supplies for packing presents."; - next; - while(1) { - mes "[Packs Trader]"; - mes "Do you have something to buy?"; - next; - switch(select("Packing Paper:Packing Ribbon:Box:Cancel.")) { - case 1: - mes "[Packs Trader]"; - mes "It's 200 zeny for"; - mes "1 Packing Paper."; - mes "How many do you want?"; - mes "You can't buy more"; - mes "than 10 items at once."; - next; - input .@input; - if (.@input <= 0) { - mes "[Packs Trader]"; - mes "Nothing to buy."; - mes "Come back when"; - mes "you need something."; - close; - } - if (.@input > 10) { - mes "[Packs Trader]"; - mes "I told you not to buy more than 10..."; - next; - break; - } - if (!checkweight(7175,.@input)) { - mes "[Packs Trader]"; - mes "You're carrying too many items."; - mes "Please use the Kafra Services."; - close; - } - set .@price, .@input * 200; - if (Zeny < .@price) { - mes "[Packs Trader]"; - mes "You don't have enough money."; - mes "Please check your wallet."; - next; - break; - }else{ - mes "[Packs Trader]"; - mes "Here they are."; - mes "Hope it makes your"; - mes "Valentine's Day"; - mes "more pleasing!"; - set Zeny,Zeny-.@price; - getitem 7175,.@input; - next; - break; - } - case 2: - mes "[Packs Trader]"; - mes "It's 200 zeny for"; - mes "1 Packing Ribbon."; - mes "How many do you want?"; - mes "You can't buy more"; - mes "than 10 items at once."; - next; - input .@input; - if (.@input <= 0) { - mes "[Packs Trader]"; - mes "Nothing to buy."; - mes "Come back when"; - mes "you need something."; - close; - } - if (.@input > 10) { - mes "[Packs Trader]"; - mes "I told you not to buy more than 10..."; - next; - break; - } - if (!checkweight(7174,.@input)) { - mes "[Packs Trader]"; - mes "You're carrying too many items."; - mes "Please use the Kafra Services."; - close; - } - set .@price, .@input * 200; - if (Zeny < .@price) { - mes "[Packs Trader]"; - mes "You don't have enough money."; - mes "Please check your wallet."; - next; - break; - }else{ - mes "[Packs Trader]"; - mes "Here they are."; - mes "Hope it makes your"; - mes "Valentine's Day"; - mes "more pleasing!"; - set Zeny,Zeny-.@price; - getitem 7174,.@input; - next; - break; - } - case 3: - mes "[Packs Trader]"; - mes "It's 600 zeny for"; - mes "1 Box."; - mes "How many do you want?"; - mes "You can't buy more"; - mes "than 10 items at once."; - next; - input .@input; - if (.@input <= 0) { - mes "[Packs Trader]"; - mes "Nothing to buy."; - mes "Come back when"; - mes "you need something."; - close; - } - if (.@input > 10) { - mes "[Packs Trader]"; - mes "I told you not to buy more than 10..."; - next; - break; - } - if (!checkweight(7948,.@input)) { - mes "[Packs Trader]"; - mes "You're carrying too many items."; - mes "Please use the Kafra Services."; - close; - } - set .@price, .@input * 600; - if (Zeny < .@price) { - mes "[Packs Trader]"; - mes "You don't have enough money."; - mes "Please check your wallet."; - next; - break; - }else{ - mes "[Packs Trader]"; - mes "Here they are."; - mes "Hope it makes your"; - mes "Valentine's Day"; - mes "more pleasing!"; - set Zeny,Zeny-.@price; - getitem 7948,.@input; - next; - break; - } - case 4: - mes "[Packs Trader]"; - mes "Goodbye!"; - mes "And enjoy your"; - mes "Valentine's Day."; - close; - } - } -} - -// Event Ring Maker (Makes ring for players) -prontera,154,185,5 script Event Ring Maker#Val09 721,{ - if (BaseLevel < 75) { - mes "[Event Ring Maker]"; - mes "Hello, I only make the"; - mes "Valentine rings to those"; - mes "experienced adventurers"; - mes "Level 75 or above."; - next; - mes "[Event Ring Maker]"; - mes "You're not fully"; - mes "experienced yet."; - mes "Come back when you're"; - mes "experienced enough to"; - mes "handle the quests."; - close; - } - - if (iROval09ring >= 1) { - mes "[Event Ring Maker]"; - mes "The box with the ring,"; - mes "carved with your name,"; - mes "is for the one you love."; - next; - mes "[Event Ring Maker]"; - mes "As for the rings that you"; - mes "receive from others, they"; - mes "should all be registered"; - mes "with the Vote Manager."; - mes "She is standing near"; - mes "the Prontera Fountain."; - next; - mes "[Event Ring Maker]"; - mes "Only the most popular"; - mes "male and female are"; - mes "subjected to getting rewards."; - mes "Be aware, and always"; - mes "try to stay popular!"; - close; - } - - mes "[Event Ring Maker]"; - mes "Hi, there, how are ya?"; - mes "Come to me if you're"; - mes "interested in the event,"; - mes "'Who's Valentine's Hottest?'"; - next; - mes "[Event Ring Maker]"; - mes "I make the most precious"; - mes "rings that you can give"; - mes "to your sweethearts."; - mes "Those rings are very special"; - mes "because I carve"; - mes "your names on them!"; - next; - mes "[Event Ring Maker]"; - mes "Isn't it exciting?"; - mes "Isn't it such a brilliant idea?"; - mes "Give these special rings"; - mes "to your sweethearts!"; - next; - mes "[Event Ring Maker]"; - mes "You should hurry 'cuz"; - mes "this event will only"; - mes "last for two weeks."; - mes "Give that special someone"; - mes "a gift of a Valentine's ring."; - next; - mes "[Event Ring Maker]"; - mes "Remember, you can only"; - mes "generate the ring once."; - mes "You also need Wrapping Paper,"; - mes "Wrapping Strap and a Box"; - mes "to make the ring."; - next; - mes "[Event Ring Maker]"; - mes "So you better be sure"; - mes "of who you give this to."; - mes "By the way,"; - mes "It costs 1,000 zeny."; - mes "Would you like to make one?"; - next; - if(select("Hmm.. I gotta give it a second thought...:Sure.") == 1) { - mes "[Event Ring Maker]"; - mes "Alrighty!"; - mes "You can't put a rush"; - mes "on such a thing like this."; - mes "Think about what"; - mes "you truly want."; - mes "Just follow your heart!"; - close; - } - if(countitem(7175) < 1 || countitem(7174) < 1 || countitem(7948) < 1 || Zeny < 1000) { - mes "[Event Ring Maker]"; - mes "Well, you don't have"; - mes "enough materials"; - mes "to make a gift box."; - mes "Check what you have,"; - mes "and come back later"; - mes "with all the materials."; - close; - } - mes "[Event Ring Maker]"; - mes "Okie Dokie!"; - mes "I'll make it right away."; - next; - delitem 7175,1; - delitem 7174,1; - delitem 7948,1; - set Zeny,Zeny-1000; - set iROval09ring,1; - if (Sex) { - getnameditem 12742,strcharinfo(0); - }else{ - getnameditem 12743,strcharinfo(0); - } - mes "[Event Ring Maker]"; - mes "Here, the most precious"; - mes "ring in the world!"; - mes "Don't forget, you can never"; - mes "make this ring again."; - next; - mes "[Event Ring Maker]"; - mes "You must pick out the one"; - mes "that you really really love,"; - mes "and give this ring"; - mes "to that person."; - next; - mes "[Event Ring Maker]"; - mes "Of course, you've got to"; - mes "get rings from others,"; - mes "that's the way you can"; - mes "participate in the voting, right?"; - mes "Challenge yourself to become"; - mes "Valentine's Hottest!"; - close; -} - -// Valentine Vote Manager (Registers votes) -prontera,157,185,4 script Valentine Vote Manager#v 113,{ - mes "[Valentine Vote Manager]"; - mes "Hello, I'm the Valentine's"; - mes "Vote Manager."; - mes "I'm in charge of collecting"; - mes "rings for this event!"; - next; - mes "[Valentine Vote Manager]"; - mes "I register the rings"; - mes "you get from others"; - mes "and I calculate the"; - mes "total number of rings."; - next; - mes "[Valentine Vote Manager]"; - mes "You know what I do besides"; - mes "just counting those rings?"; - mes "I can tell you the adventurer's"; - mes "name who's got the"; - mes "most number of votes."; - next; - mes "[Valentine Vote Manager]"; - mes "Plus, you can also find out how"; - mes "many votes he/she got."; - next; - while (1) { - mes "[Valentine Vote Manager]"; - mes "So, what do you want?"; - next; - switch(select("Please register my rings.:Please count my votes.:Nothing, for now.")) { - case 1: - mes "[Valentine Vote Manager]"; - mes "Please tell me how many"; - mes "rings you want to register."; - next; - mes "[Valentine Vote Manager]"; - mes "When you write the"; - mes "number of the rings,"; - mes "the number shouldn't be"; - mes "larger than the number of"; - mes "rings you actually have."; - mes "'0', cancels everything."; - next; - input .@input; - - if (.@input <= 0) { - mes "[Valentine Vote Manager]"; - mes "You have entered 0."; - mes "Registration is cancelled."; - next; - break; - } - - if (Sex) { - if (countitem(7947) > .@input) { - mes "[Valentine Vote Manager]"; - mes "Seems like the value you entered is too small."; - mes "I know you've got more. Be honest, dear."; - next; - break; - } - - if (countitem(7947) < .@input) { - mes "[Valentine Vote Manager]"; - mes "Seems like the value you entered is too large."; - mes "I know you've got less. Be honest, dear."; - next; - break; - } - - mes "[Valentine Vote Manager]"; - mes "I'll take those silver rings,"; - mes "and count the votes for you."; - mes "Thank you for participating."; - delitem 7947,.@input; - set Val09Rings,Val09Rings+.@input; - if (Val09Rings > $Val09votes_M) { - set $Val09votes_M,Val09Rings; - set $Val09name_M$,strcharinfo(0); - } - next; - break; - }else{ - if (countitem(7946) > .@input) { - mes "[Valentine Vote Manager]"; - mes "Seems like the value you entered is too small."; - mes "I know you've got more. Be honest, dear."; - next; - break; - } - - if (countitem(7946) < .@input) { - mes "[Valentine Vote Manager]"; - mes "Seems like the value you entered is too large."; - mes "I know you've got less. Be honest, dear."; - next; - break; - } - - mes "[Valentine Vote Manager]"; - mes "I'll take those gold rings,"; - mes "and count the votes for you."; - mes "Thank you for participating."; - delitem 7946,.@input; - set Val09Rings,Val09Rings+.@input; - if (Val09Rings > $Val09votes_F) { - set $Val09votes_F,Val09Rings; - set $Val09name_F$,strcharinfo(0); - } - next; - break; - } - case 2: - mes "[Valentine Vote Manager]"; - mes "Let's see..."; - mes "You have registered.."; - mes ".."+Val09Rings+" rings so far."; - mes "and..."; - next; - mes "[Valentine Vote Manager]"; - mes "The current record shows... "+$Val09name_M$+" is the male vote leader who's registered the total of "+$Val09votes_M+" rings."; - next; - mes "[Valentine Vote Manager]"; - mes "The current record shows... "+$Val09name_F$+" is the female vote leader who's registered the total of "+$Val09votes_F+" rings."; - next; - break; - - case 3: - mes "[Valentine Vote Manager]"; - mes "Hey, you can be popular too!"; - mes "Anyone can... really!"; - mes "Though you have to try a lot"; - mes "harder, but still~ Hahaha!"; - close; - } - } -} - -// Charles Orleans (Makes Home-Made Chocolates) -prt_castle,42,35,3 script Dessert Manager#Val09 47,{ - if (Sex) { - mes "[Charles Orleans]"; - mes "Monsieur~! What brings"; - mes "you to my beautiful atelier?"; - mes "What is it that you want?"; - mes "Well, my sparkling eyes"; - mes "get dried and lose their shine"; - mes "if not for the pretty little lady."; - next; - mes "[Charles Orleans]"; - mes "Please leave me alone unless"; - mes "you have business with me."; - mes "Haaaa~ I'm a busy person."; - mes "Don't bother me...."; - mes "Annoying, annoying, annoying~~!"; - close; - } - - mes "[Charles Orleans]"; - mes "Oh, Mademoiselle!"; - mes "This little trifling space"; - mes "felt like heaven the"; - mes "minute you walked in!"; - mes "Can I help you with"; - mes "anything, if it's alright?"; - next; - if(select("Please, make me some chocolate.:Don't bother. I'm just passing by.") == 2) { - mes "[Charles Orleans]"; - mes "Ahhh, this is so heartbreaking."; - mes "How could you say that?"; - mes "You're just so mean."; - mes "Don't bother? Just passing by?"; - next; - mes "[Charles Orleans]"; - mes "What can I do to make you"; - mes "pay a little attention to me?"; - mes "Please.. I feel like my soul is lost.."; - close; - } - if(countitem(558) < 3) { - mes "[Charles Orleans]"; - mes "Ahhh, Mademoiselle."; - mes "I'm not an alchemist,"; - mes "or a magician."; - mes "I don't just make chocolate"; - mes "out of anything."; - next; - mes "[Charles Orleans]"; - mes "I always think of making"; - mes "chocolate as artistic work."; - mes "You see, I'm no ordinary cook..."; - mes "I make chocolate with feelings.."; - mes "messages of loving hearts.."; - next; - mes "[Charles Orleans]"; - mes "I make masterpieces."; - mes "No one can imitate"; - mes "the looks and the taste."; - mes "Yes, it's nothing like"; - mes "ordinary chocolate!"; - next; - mes "[Charles Orleans]"; - mes "I'm afraid I can't make it"; - mes "and prove it to you now."; - mes "This is really a shame!"; - next; - mes "[Charles Orleans]"; - mes "I really want to thank"; - mes "you for visiting me"; - mes "and if you only bring"; - mes "^3152ff3 Chocolates^000000,"; - mes "I'll make you chocolate"; - mes "like you've never seen..."; - next; - mes "[Charles Orleans]"; - mes "never tasted before..."; - mes "Mademoiselle, with your spirit,"; - mes "I'm sure you can bring"; - mes "3 pieces of chocolate."; - mes "I have no doubt at all."; - next; - mes "[Charles Orleans]"; - mes "So... what do you think?"; - mes "Can you bring ^3152ff3 Chocolates^000000?"; - mes "I could get them myself,"; - mes "but I'm tied up with so much"; - mes "work as you see right now."; - next; - mes "[Charles Orleans]"; - mes "Adios, Mademoiselle....."; - mes "I'll be waiting for you."; - close; - }else{ - if (!checkweight(559,1)) { - mes "[Charles Orleans]"; - mes "You're carrying too many items."; - mes "Please use the Kafra Services."; - close; - } - mes "[Charles Orleans]"; - mes "Oh, Mademoiselle!"; - mes "I'll make the best chocolate"; - mes "with the pieces you've brought."; - mes "I'm going to put the light of"; - mes "your eyes into this chocolate"; - mes "that no one can resist."; - next; - mes "[Charles Orleans]"; - mes "It'll be stronger than a"; - mes "sweet sweet love potion....."; - next; - mes "[Charles Orleans]"; - mes "Un, Deux, Trois, Quatre....."; - mes "Just like the ugly duckling that"; - mes "turned to a beautiful swan-"; - mes "Ordinary chocolate pieces are"; - mes "becoming a piece of art!"; - next; - mes "[Charles Orleans]"; - mes "They're changing!"; - mes "They're getting warm,"; - mes "softly changing the shape,"; - mes "getting stronger again!"; - mes "Oh, is it a master piece or"; - mes "what...!!"; - next; - mes "[Charles Orleans]"; - mes "Here you go, Mademoiselle!"; - mes "Ahahahaha, just look at this!"; - mes "I can't believe I made this."; - mes "Oh, I can't take my eyes off..!!"; - delitem 558,3; - getitem 559,1; - next; - mes "[Charles Orleans]"; - mes "Alright. Mademoiselle,"; - mes "I hope this is just"; - mes "what you wanted,"; - mes "for it bears your"; - mes "beautiful heart inside."; - close; - } - +//===== eAthena Script ======================================= +//= iRO Valentine's Day Event (2009) +//===== By: ================================================== +//= Kisuka +//===== Current Version: ===================================== +//= 1.2 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +//= iRO Valentine's Day Event. (2009) +//= Make Chocolate/Chocolate Boxes/Home-Made Chocolate. +//= Make Valentine's Rings/Boxes. +//= Trade rings to those of opposite gender. +//= Register rings you have gotten for votes. +//= +//= The male and female with the most votes at the end of +//= the event will receive item (14466) from GM team. +//= +//= Must enable the event items in item_db2 and item_trade! +//===== Additional Comments: ================================= +//= 1.0 First version. [Kisuka] +//= 1.1-1.2 Fixed exploits with unlimited rings and non deleting choco [Lupus] +//============================================================ + +// Marco Bassinio (Chocolate/Chocolate Box maker) +prontera,164,174,4 script Trader#Val09 58,{ + mes "[Marco Bassinio]"; + mes "Hey, folks! Here's something you don't see everyday!"; + mes "Something you can never find in Rune-Midgarts!"; + mes "Something that makes you happy with just one bite!"; + next; + mes "[Marco Bassinio]"; + mes "It's the perfect dessert and the perfect gift for loved ones."; + mes "High-quality, traditional homemade chocolate only 5000z each!"; + next; + switch(select("I'll take it, please!:I want to wrap the chocolate!:End trading.")) { + case 1: + mes "[Marco Bassinio]"; + mes "Ahaha, my dear."; + mes "This chocolate is"; + mes "nothing like others."; + mes "Every piece bears the"; + mes "devotion of the person"; + mes "who made it!"; + next; + mes "[Marco Bassinio]"; + mes "So, that's why I can't sell"; + mes "more than 5 of them at a time."; + mes "If you really really want more,"; + mes "then talk to me again."; + mes "How many do you want anyway?"; + next; + while(.@input <= 0 || .@input > 5) { + input .@input; + if (.@input < 1) { + mes "[Marco Bassinio]"; + mes "Oh, it's such a shame!"; + mes "I'm sure you'll miss"; + mes "this opportunity and"; + mes "regret you didn't buy it."; + next; + mes "[Marco Bassinio]"; + mes "Remember, you can never"; + mes "find this anywhere else!"; + mes "Come back anytime,"; + mes "when you change your mind."; + close; + } + if (.@val09choco > 5) { + mes "[Marco Bassinio]"; + mes "Ugh.. Didn't I tell you?"; + mes "5 is the maximum!"; + mes "I can't sell more than"; + mes "that to the same person."; + next; + mes "[Marco Bassinio]"; + mes "And you know it's not"; + mes "like an everyday meal."; + mes "Eating too much is not"; + mes "really good for you."; + next; + } + } + if (!checkweight(558, .@input)) { + mes "[Marco Bassinio]"; + mes "You're carrying too many items."; + mes "Please use the Kafra Services."; + close; + } + set .@price, .@input * 5000; + if (Zeny < .@price) { + mes "[Marco Bassinio]"; + mes "Looks like you don't have"; + mes "enough zeny with ya."; + mes "Maybe you should borrow"; + mes "some zeny from a friend."; + mes "Cuz, I'm not gonna"; + mes "be here everyday."; + close; + }else{ + mes "[Marco Bassinio]"; + mes "Good for you!"; + mes "It's also perfect as a gift!"; + mes "You know you can't get this"; + mes "kind of chocolate normally."; + next; + mes "[Marco Bassinio]"; + mes "If you want more,"; + mes "you should come back."; + mes "Might be a good idea to"; + mes "buy some more while"; + mes "you have a chance...!"; + set Zeny,Zeny - .@price; + getitem 558,.@input; + close; + } + case 2: + mes "[Marco Bassinio]"; + mes "If you want to gift-wrap"; + mes "the chocolate, of course,"; + mes "you need chocolate,"; + mes "plus, wrapping paper,"; + mes "wrapping strap and a box."; + next; + mes "[Marco Bassinio]"; + mes "You also need to pay"; + mes "500 zeny to carve your"; + mes "name on the box."; + mes "Are you all prepared...?"; + next; + if(countitem(7175) < 1 || countitem(7174) < 1 || countitem(7948) < 1 || Zeny < 500) { + mes "[Marco Bassinio]"; + mes "Hmm.. Looks like you don't"; + mes "have enough materials to"; + mes "decorate the gift box.."; + mes "You can't just put your gift"; + mes "into some plain looking box.."; + mes "Don't you think?"; + next; + mes "[Marco Bassinio]"; + mes "You need to bring some"; + mes "wrapping paper,"; + mes "wrapping strap, and a box."; + mes "Oh, also bring 500 zeny,"; + mes "and don't forget to bring your"; + mes "true loving heart with you!!"; + close; + } + if(countitem(558) < 1) { + mes "[Marco Bassinio]"; + mes "Hey, look, adventurer!"; + mes "I can't create something right away!"; + mes "You know I'm not an alchemist or anything."; + next; + mes "[Marco Bassinio]"; + mes "You're not saying that you"; + mes "want an empty chocolate box"; + mes "without any chocolate in it,"; + mes "am I right?"; + close; + } + if (!checkweight(12744,1)) { + mes "[Marco Bassinio]"; + mes "You're carrying too many items."; + mes "Please use the Kafra Services."; + close; + } + mes "[Marco Bassinio]"; + mes "Here, look!"; + mes "It's your chocolate box"; + mes "with your name on it."; + mes "Isn't it fabulous?"; + mes "See, your name looks"; + mes "great on the box!"; + next; + delitem 558,1; + delitem 7175,1; + delitem 7174,1; + delitem 7948,1; + set Zeny,Zeny-500; + getnameditem 12744,strcharinfo(0); + mes "[Marco Bassinio]"; + mes "Happy Valentine's Day!"; + mes "Valentine's the reason I came back."; + close; + case 3: + mes "[Marco Bassinio]"; + mes "Oh, it's such a shame!"; + mes "I'm sure you'll miss"; + mes "this opportunity and"; + mes "regret you didn't buy it."; + next; + mes "[Marco Bassinio]"; + mes "Remember, you can never"; + mes "find this anywhere else!"; + mes "Come back anytime,"; + mes "when you change your mind."; + close; + } +} + +// Packs Trader (Sells Wrapping Paper, Lace, and Box) +prontera,147,171,5 script Packs Trader#Val09 58,{ + mes "[Packs Trader]"; + mes "Hello."; + mes "I am a Packs Trader,"; + mes "I sell paper boxes and"; + mes "supplies for packing presents."; + next; + while(1) { + mes "[Packs Trader]"; + mes "Do you have something to buy?"; + next; + switch(select("Packing Paper:Packing Ribbon:Box:Cancel.")) { + case 1: + mes "[Packs Trader]"; + mes "It's 200 zeny for"; + mes "1 Packing Paper."; + mes "How many do you want?"; + mes "You can't buy more"; + mes "than 10 items at once."; + next; + input .@input; + if (.@input <= 0) { + mes "[Packs Trader]"; + mes "Nothing to buy."; + mes "Come back when"; + mes "you need something."; + close; + } + if (.@input > 10) { + mes "[Packs Trader]"; + mes "I told you not to buy more than 10..."; + next; + break; + } + if (!checkweight(7175,.@input)) { + mes "[Packs Trader]"; + mes "You're carrying too many items."; + mes "Please use the Kafra Services."; + close; + } + set .@price, .@input * 200; + if (Zeny < .@price) { + mes "[Packs Trader]"; + mes "You don't have enough money."; + mes "Please check your wallet."; + next; + break; + }else{ + mes "[Packs Trader]"; + mes "Here they are."; + mes "Hope it makes your"; + mes "Valentine's Day"; + mes "more pleasing!"; + set Zeny,Zeny-.@price; + getitem 7175,.@input; + next; + break; + } + case 2: + mes "[Packs Trader]"; + mes "It's 200 zeny for"; + mes "1 Packing Ribbon."; + mes "How many do you want?"; + mes "You can't buy more"; + mes "than 10 items at once."; + next; + input .@input; + if (.@input <= 0) { + mes "[Packs Trader]"; + mes "Nothing to buy."; + mes "Come back when"; + mes "you need something."; + close; + } + if (.@input > 10) { + mes "[Packs Trader]"; + mes "I told you not to buy more than 10..."; + next; + break; + } + if (!checkweight(7174,.@input)) { + mes "[Packs Trader]"; + mes "You're carrying too many items."; + mes "Please use the Kafra Services."; + close; + } + set .@price, .@input * 200; + if (Zeny < .@price) { + mes "[Packs Trader]"; + mes "You don't have enough money."; + mes "Please check your wallet."; + next; + break; + }else{ + mes "[Packs Trader]"; + mes "Here they are."; + mes "Hope it makes your"; + mes "Valentine's Day"; + mes "more pleasing!"; + set Zeny,Zeny-.@price; + getitem 7174,.@input; + next; + break; + } + case 3: + mes "[Packs Trader]"; + mes "It's 600 zeny for"; + mes "1 Box."; + mes "How many do you want?"; + mes "You can't buy more"; + mes "than 10 items at once."; + next; + input .@input; + if (.@input <= 0) { + mes "[Packs Trader]"; + mes "Nothing to buy."; + mes "Come back when"; + mes "you need something."; + close; + } + if (.@input > 10) { + mes "[Packs Trader]"; + mes "I told you not to buy more than 10..."; + next; + break; + } + if (!checkweight(7948,.@input)) { + mes "[Packs Trader]"; + mes "You're carrying too many items."; + mes "Please use the Kafra Services."; + close; + } + set .@price, .@input * 600; + if (Zeny < .@price) { + mes "[Packs Trader]"; + mes "You don't have enough money."; + mes "Please check your wallet."; + next; + break; + }else{ + mes "[Packs Trader]"; + mes "Here they are."; + mes "Hope it makes your"; + mes "Valentine's Day"; + mes "more pleasing!"; + set Zeny,Zeny-.@price; + getitem 7948,.@input; + next; + break; + } + case 4: + mes "[Packs Trader]"; + mes "Goodbye!"; + mes "And enjoy your"; + mes "Valentine's Day."; + close; + } + } +} + +// Event Ring Maker (Makes ring for players) +prontera,154,185,5 script Event Ring Maker#Val09 721,{ + if (BaseLevel < 75) { + mes "[Event Ring Maker]"; + mes "Hello, I only make the"; + mes "Valentine rings to those"; + mes "experienced adventurers"; + mes "Level 75 or above."; + next; + mes "[Event Ring Maker]"; + mes "You're not fully"; + mes "experienced yet."; + mes "Come back when you're"; + mes "experienced enough to"; + mes "handle the quests."; + close; + } + + if (iROval09ring >= 1) { + mes "[Event Ring Maker]"; + mes "The box with the ring,"; + mes "carved with your name,"; + mes "is for the one you love."; + next; + mes "[Event Ring Maker]"; + mes "As for the rings that you"; + mes "receive from others, they"; + mes "should all be registered"; + mes "with the Vote Manager."; + mes "She is standing near"; + mes "the Prontera Fountain."; + next; + mes "[Event Ring Maker]"; + mes "Only the most popular"; + mes "male and female are"; + mes "subjected to getting rewards."; + mes "Be aware, and always"; + mes "try to stay popular!"; + close; + } + + mes "[Event Ring Maker]"; + mes "Hi, there, how are ya?"; + mes "Come to me if you're"; + mes "interested in the event,"; + mes "'Who's Valentine's Hottest?'"; + next; + mes "[Event Ring Maker]"; + mes "I make the most precious"; + mes "rings that you can give"; + mes "to your sweethearts."; + mes "Those rings are very special"; + mes "because I carve"; + mes "your names on them!"; + next; + mes "[Event Ring Maker]"; + mes "Isn't it exciting?"; + mes "Isn't it such a brilliant idea?"; + mes "Give these special rings"; + mes "to your sweethearts!"; + next; + mes "[Event Ring Maker]"; + mes "You should hurry 'cuz"; + mes "this event will only"; + mes "last for two weeks."; + mes "Give that special someone"; + mes "a gift of a Valentine's ring."; + next; + mes "[Event Ring Maker]"; + mes "Remember, you can only"; + mes "generate the ring once."; + mes "You also need Wrapping Paper,"; + mes "Wrapping Strap and a Box"; + mes "to make the ring."; + next; + mes "[Event Ring Maker]"; + mes "So you better be sure"; + mes "of who you give this to."; + mes "By the way,"; + mes "It costs 1,000 zeny."; + mes "Would you like to make one?"; + next; + if(select("Hmm.. I gotta give it a second thought...:Sure.") == 1) { + mes "[Event Ring Maker]"; + mes "Alrighty!"; + mes "You can't put a rush"; + mes "on such a thing like this."; + mes "Think about what"; + mes "you truly want."; + mes "Just follow your heart!"; + close; + } + if(countitem(7175) < 1 || countitem(7174) < 1 || countitem(7948) < 1 || Zeny < 1000) { + mes "[Event Ring Maker]"; + mes "Well, you don't have"; + mes "enough materials"; + mes "to make a gift box."; + mes "Check what you have,"; + mes "and come back later"; + mes "with all the materials."; + close; + } + mes "[Event Ring Maker]"; + mes "Okie Dokie!"; + mes "I'll make it right away."; + next; + delitem 7175,1; + delitem 7174,1; + delitem 7948,1; + set Zeny,Zeny-1000; + set iROval09ring,1; + if (Sex) { + getnameditem 12742,strcharinfo(0); + }else{ + getnameditem 12743,strcharinfo(0); + } + mes "[Event Ring Maker]"; + mes "Here, the most precious"; + mes "ring in the world!"; + mes "Don't forget, you can never"; + mes "make this ring again."; + next; + mes "[Event Ring Maker]"; + mes "You must pick out the one"; + mes "that you really really love,"; + mes "and give this ring"; + mes "to that person."; + next; + mes "[Event Ring Maker]"; + mes "Of course, you've got to"; + mes "get rings from others,"; + mes "that's the way you can"; + mes "participate in the voting, right?"; + mes "Challenge yourself to become"; + mes "Valentine's Hottest!"; + close; +} + +// Valentine Vote Manager (Registers votes) +prontera,157,185,4 script Valentine Vote Manager#v 113,{ + mes "[Valentine Vote Manager]"; + mes "Hello, I'm the Valentine's"; + mes "Vote Manager."; + mes "I'm in charge of collecting"; + mes "rings for this event!"; + next; + mes "[Valentine Vote Manager]"; + mes "I register the rings"; + mes "you get from others"; + mes "and I calculate the"; + mes "total number of rings."; + next; + mes "[Valentine Vote Manager]"; + mes "You know what I do besides"; + mes "just counting those rings?"; + mes "I can tell you the adventurer's"; + mes "name who's got the"; + mes "most number of votes."; + next; + mes "[Valentine Vote Manager]"; + mes "Plus, you can also find out how"; + mes "many votes he/she got."; + next; + while (1) { + mes "[Valentine Vote Manager]"; + mes "So, what do you want?"; + next; + switch(select("Please register my rings.:Please count my votes.:Nothing, for now.")) { + case 1: + mes "[Valentine Vote Manager]"; + mes "Please tell me how many"; + mes "rings you want to register."; + next; + mes "[Valentine Vote Manager]"; + mes "When you write the"; + mes "number of the rings,"; + mes "the number shouldn't be"; + mes "larger than the number of"; + mes "rings you actually have."; + mes "'0', cancels everything."; + next; + input .@input; + + if (.@input <= 0) { + mes "[Valentine Vote Manager]"; + mes "You have entered 0."; + mes "Registration is cancelled."; + next; + break; + } + + if (Sex) { + if (countitem(7947) > .@input) { + mes "[Valentine Vote Manager]"; + mes "Seems like the value you entered is too small."; + mes "I know you've got more. Be honest, dear."; + next; + break; + } + + if (countitem(7947) < .@input) { + mes "[Valentine Vote Manager]"; + mes "Seems like the value you entered is too large."; + mes "I know you've got less. Be honest, dear."; + next; + break; + } + + mes "[Valentine Vote Manager]"; + mes "I'll take those silver rings,"; + mes "and count the votes for you."; + mes "Thank you for participating."; + delitem 7947,.@input; + set Val09Rings,Val09Rings+.@input; + if (Val09Rings > $Val09votes_M) { + set $Val09votes_M,Val09Rings; + set $Val09name_M$,strcharinfo(0); + } + next; + break; + }else{ + if (countitem(7946) > .@input) { + mes "[Valentine Vote Manager]"; + mes "Seems like the value you entered is too small."; + mes "I know you've got more. Be honest, dear."; + next; + break; + } + + if (countitem(7946) < .@input) { + mes "[Valentine Vote Manager]"; + mes "Seems like the value you entered is too large."; + mes "I know you've got less. Be honest, dear."; + next; + break; + } + + mes "[Valentine Vote Manager]"; + mes "I'll take those gold rings,"; + mes "and count the votes for you."; + mes "Thank you for participating."; + delitem 7946,.@input; + set Val09Rings,Val09Rings+.@input; + if (Val09Rings > $Val09votes_F) { + set $Val09votes_F,Val09Rings; + set $Val09name_F$,strcharinfo(0); + } + next; + break; + } + case 2: + mes "[Valentine Vote Manager]"; + mes "Let's see..."; + mes "You have registered.."; + mes ".."+Val09Rings+" rings so far."; + mes "and..."; + next; + mes "[Valentine Vote Manager]"; + mes "The current record shows... "+$Val09name_M$+" is the male vote leader who's registered the total of "+$Val09votes_M+" rings."; + next; + mes "[Valentine Vote Manager]"; + mes "The current record shows... "+$Val09name_F$+" is the female vote leader who's registered the total of "+$Val09votes_F+" rings."; + next; + break; + + case 3: + mes "[Valentine Vote Manager]"; + mes "Hey, you can be popular too!"; + mes "Anyone can... really!"; + mes "Though you have to try a lot"; + mes "harder, but still~ Hahaha!"; + close; + } + } +} + +// Charles Orleans (Makes Home-Made Chocolates) +prt_castle,42,35,3 script Dessert Manager#Val09 47,{ + if (Sex) { + mes "[Charles Orleans]"; + mes "Monsieur~! What brings"; + mes "you to my beautiful atelier?"; + mes "What is it that you want?"; + mes "Well, my sparkling eyes"; + mes "get dried and lose their shine"; + mes "if not for the pretty little lady."; + next; + mes "[Charles Orleans]"; + mes "Please leave me alone unless"; + mes "you have business with me."; + mes "Haaaa~ I'm a busy person."; + mes "Don't bother me...."; + mes "Annoying, annoying, annoying~~!"; + close; + } + + mes "[Charles Orleans]"; + mes "Oh, Mademoiselle!"; + mes "This little trifling space"; + mes "felt like heaven the"; + mes "minute you walked in!"; + mes "Can I help you with"; + mes "anything, if it's alright?"; + next; + if(select("Please, make me some chocolate.:Don't bother. I'm just passing by.") == 2) { + mes "[Charles Orleans]"; + mes "Ahhh, this is so heartbreaking."; + mes "How could you say that?"; + mes "You're just so mean."; + mes "Don't bother? Just passing by?"; + next; + mes "[Charles Orleans]"; + mes "What can I do to make you"; + mes "pay a little attention to me?"; + mes "Please.. I feel like my soul is lost.."; + close; + } + if(countitem(558) < 3) { + mes "[Charles Orleans]"; + mes "Ahhh, Mademoiselle."; + mes "I'm not an alchemist,"; + mes "or a magician."; + mes "I don't just make chocolate"; + mes "out of anything."; + next; + mes "[Charles Orleans]"; + mes "I always think of making"; + mes "chocolate as artistic work."; + mes "You see, I'm no ordinary cook..."; + mes "I make chocolate with feelings.."; + mes "messages of loving hearts.."; + next; + mes "[Charles Orleans]"; + mes "I make masterpieces."; + mes "No one can imitate"; + mes "the looks and the taste."; + mes "Yes, it's nothing like"; + mes "ordinary chocolate!"; + next; + mes "[Charles Orleans]"; + mes "I'm afraid I can't make it"; + mes "and prove it to you now."; + mes "This is really a shame!"; + next; + mes "[Charles Orleans]"; + mes "I really want to thank"; + mes "you for visiting me"; + mes "and if you only bring"; + mes "^3152ff3 Chocolates^000000,"; + mes "I'll make you chocolate"; + mes "like you've never seen..."; + next; + mes "[Charles Orleans]"; + mes "never tasted before..."; + mes "Mademoiselle, with your spirit,"; + mes "I'm sure you can bring"; + mes "3 pieces of chocolate."; + mes "I have no doubt at all."; + next; + mes "[Charles Orleans]"; + mes "So... what do you think?"; + mes "Can you bring ^3152ff3 Chocolates^000000?"; + mes "I could get them myself,"; + mes "but I'm tied up with so much"; + mes "work as you see right now."; + next; + mes "[Charles Orleans]"; + mes "Adios, Mademoiselle....."; + mes "I'll be waiting for you."; + close; + }else{ + if (!checkweight(559,1)) { + mes "[Charles Orleans]"; + mes "You're carrying too many items."; + mes "Please use the Kafra Services."; + close; + } + mes "[Charles Orleans]"; + mes "Oh, Mademoiselle!"; + mes "I'll make the best chocolate"; + mes "with the pieces you've brought."; + mes "I'm going to put the light of"; + mes "your eyes into this chocolate"; + mes "that no one can resist."; + next; + mes "[Charles Orleans]"; + mes "It'll be stronger than a"; + mes "sweet sweet love potion....."; + next; + mes "[Charles Orleans]"; + mes "Un, Deux, Trois, Quatre....."; + mes "Just like the ugly duckling that"; + mes "turned to a beautiful swan-"; + mes "Ordinary chocolate pieces are"; + mes "becoming a piece of art!"; + next; + mes "[Charles Orleans]"; + mes "They're changing!"; + mes "They're getting warm,"; + mes "softly changing the shape,"; + mes "getting stronger again!"; + mes "Oh, is it a master piece or"; + mes "what...!!"; + next; + mes "[Charles Orleans]"; + mes "Here you go, Mademoiselle!"; + mes "Ahahahaha, just look at this!"; + mes "I can't believe I made this."; + mes "Oh, I can't take my eyes off..!!"; + delitem 558,3; + getitem 559,1; + next; + mes "[Charles Orleans]"; + mes "Alright. Mademoiselle,"; + mes "I hope this is just"; + mes "what you wanted,"; + mes "for it bears your"; + mes "beautiful heart inside."; + close; + } + } \ No newline at end of file diff --git a/npc/guides/guides_mosk.txt b/npc/guides/guides_mosk.txt index 92d246d09..b4b0fc655 100644 --- a/npc/guides/guides_mosk.txt +++ b/npc/guides/guides_mosk.txt @@ -1,91 +1,91 @@ -//===== eAthena Script ======================================= -//= Moscovia Guides -//===== By: ================================================== -//= Kisuka -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= eAthena SVN -//===== Description: ========================================= -//= Guides for the town of Moscovia. -//===== Additional Comments: ================================= -//= 1.0 First Version. [Kisuka] -//============================================================ - -moscovia,161,76,4 script Moscovia Guide#mosk 959,{ - mes "[Moscovia Guide]"; - mes "Welcome to Moscovia"; - mes "Here is the paradise spreading on"; - mes "the endless seas"; - mes "You'll be happy with the beautiful"; - mes "scenery and the sunlight!"; - next; - mes "[Moscovia Guide]"; - mes "I was sent from Moscovia Palace"; - mes "to guide tourists and to give them"; - mes "information on this town."; - mes "If you have some questions, please ask me."; - next; - switch(select("Ask where you can go.:Delete all the marks on the mini-map.:Cancel.")) { - case 1: - mes "[Moscovia Guide]"; - mes "Where would you like to go?"; - next; - switch(select("The Palace:Armor Shop:Tool Shop:An Inn:Cancel")) { - case 1: - mes "[Moscovia Guide]"; - mes "The Palace can be found ^ff0000+^000000 at the"; - mes "end of the North sea from"; - mes "Rune-Midgarts."; - mes "There resides our Lord the Czar of"; - mes "Moscovia and his retainers."; - close2; - viewpoint 1,257,138,1,0xFF0000; - end; - case 2: - viewpoint 1,185,187,2,0x00FF00; - mes "[Moscovia Guide]"; - mes "The Armor Shop is located at the"; - mes "southwest corner of town.."; - mes "You can buy armor made by the best"; - mes "craftsmen of Moscovia there."; - close; - case 3: - mes "[Moscovia Guide]"; - mes "The Tool Shop is located just south"; - mes "from the center of town."; - mes "You can find all sorts of things"; - mes "you need for your travels."; - close2; - viewpoint 1,223,174,3,0x00FF00; - end; - case 4: - mes "[Moscovia Guide]"; - mes "The Inn 'Sticky Herb Tree' is just"; - mes "north from the center of town."; - mes "If you need to rest, there is no"; - mes "better place to stay."; - close2; - viewpoint 1,229,208,4,0x3355FF; - end; - case 5: - close; - } - case 2: - mes "[Moscovia Guide]"; - mes "I've deleted all marks on the mini-map."; - mes "Whenever you'd like to put marks"; - mes "there, you can ask me."; - viewpoint 2,257,138,1,0xFF0000; - viewpoint 2,185,187,2,0x00FF00; - viewpoint 2,223,174,3,0x00FF00; - viewpoint 2,229,208,4,0x3355FF; - close; - - case 3: - mes "[Moscovia Guide]"; - mes "It'd be great to walk about alone."; - mes "Take care."; - close; - } +//===== eAthena Script ======================================= +//= Moscovia Guides +//===== By: ================================================== +//= Kisuka +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +//= Guides for the town of Moscovia. +//===== Additional Comments: ================================= +//= 1.0 First Version. [Kisuka] +//============================================================ + +moscovia,161,76,4 script Moscovia Guide#mosk 959,{ + mes "[Moscovia Guide]"; + mes "Welcome to Moscovia"; + mes "Here is the paradise spreading on"; + mes "the endless seas"; + mes "You'll be happy with the beautiful"; + mes "scenery and the sunlight!"; + next; + mes "[Moscovia Guide]"; + mes "I was sent from Moscovia Palace"; + mes "to guide tourists and to give them"; + mes "information on this town."; + mes "If you have some questions, please ask me."; + next; + switch(select("Ask where you can go.:Delete all the marks on the mini-map.:Cancel.")) { + case 1: + mes "[Moscovia Guide]"; + mes "Where would you like to go?"; + next; + switch(select("The Palace:Armor Shop:Tool Shop:An Inn:Cancel")) { + case 1: + mes "[Moscovia Guide]"; + mes "The Palace can be found ^ff0000+^000000 at the"; + mes "end of the North sea from"; + mes "Rune-Midgarts."; + mes "There resides our Lord the Czar of"; + mes "Moscovia and his retainers."; + close2; + viewpoint 1,257,138,1,0xFF0000; + end; + case 2: + viewpoint 1,185,187,2,0x00FF00; + mes "[Moscovia Guide]"; + mes "The Armor Shop is located at the"; + mes "southwest corner of town.."; + mes "You can buy armor made by the best"; + mes "craftsmen of Moscovia there."; + close; + case 3: + mes "[Moscovia Guide]"; + mes "The Tool Shop is located just south"; + mes "from the center of town."; + mes "You can find all sorts of things"; + mes "you need for your travels."; + close2; + viewpoint 1,223,174,3,0x00FF00; + end; + case 4: + mes "[Moscovia Guide]"; + mes "The Inn 'Sticky Herb Tree' is just"; + mes "north from the center of town."; + mes "If you need to rest, there is no"; + mes "better place to stay."; + close2; + viewpoint 1,229,208,4,0x3355FF; + end; + case 5: + close; + } + case 2: + mes "[Moscovia Guide]"; + mes "I've deleted all marks on the mini-map."; + mes "Whenever you'd like to put marks"; + mes "there, you can ask me."; + viewpoint 2,257,138,1,0xFF0000; + viewpoint 2,185,187,2,0x00FF00; + viewpoint 2,223,174,3,0x00FF00; + viewpoint 2,229,208,4,0x3355FF; + close; + + case 3: + mes "[Moscovia Guide]"; + mes "It'd be great to walk about alone."; + mes "Take care."; + close; + } } \ No newline at end of file diff --git a/npc/kafras/kafras_mosk.txt b/npc/kafras/kafras_mosk.txt index 5d4710087..eef44d058 100644 --- a/npc/kafras/kafras_mosk.txt +++ b/npc/kafras/kafras_mosk.txt @@ -1,153 +1,153 @@ -//===== eAthena Script ======================================= -//= Moscovia Kafras -//===== By: ================================================== -//= Kisuka -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= eAthena SVN -//===== Description: ========================================= -//= Kafras for the town of Moscovia. -//===== Additional Comments: ================================= -//= 1.0 First Version. [Kisuka] -//============================================================ - -moscovia,223,191,4 script Kafra Staff#mosk 114,{ - cutin "kafra_04",2; - mes "[Kafra Staff]"; - mes "Welcome to the"; - mes "Kafra Corporation."; - mes "The Kafra services"; - mes "are always on your side."; - mes "How may I assist you?"; - next; - switch(select("Save:Use Storage:Rent a Pushcart:Check Other Information:Cancel")) { - case 1: - mes "[Kafra Staff]"; - mes "Your Respawn Point has"; - mes "been saved in the city of"; - mes "Moscovia. Thank you for"; - mes "using the Kafra Service."; - savepoint "moscovia",221,194; - close2; - cutin "", 255; - end; - case 2: - if(basicskillcheck() && getskilllv("NV_BASIC") < 6){ - mes "[Kafra Staff]"; - mes "I'm sorry, but you"; - mes "need the Novice's"; - mes "Basic Skill Level 6 to"; - mes "use the Storage Service."; - close2; - cutin "", 255; - end; - } - if(countitem(7059)) delitem 7059,1; - else { - if(Zeny<80){ - mes "[Kafra Staff]"; - mes "I'm sorry, but you don't"; - mes "have enough zeny to use"; - mes "the Storage Service. Our"; - mes "Storage access fee is 80 zeny."; - close2; - cutin "", 255; - end; - } - set Zeny, Zeny-80; - set RESRVPTS, RESRVPTS + (80/5); - } - mes "[Kafra Staff]"; - mes "Here, let me open"; - mes "your Storage for you."; - mes "Thank you for using"; - mes "the Kafra Service."; - - callfunc("F_CheckKafCode"); //check your storage password, if set - - close2; - openstorage; - cutin "", 255; - end; - case 3: - if(baseClass != Job_Merchant){ - mes "[Kafra Staff]"; - mes "I'm sorry, but the"; - mes "Pushcart rental service"; - mes "is only available to Merchants,"; - mes "Blacksmiths, Master Smiths,"; - mes "Alchemists and Biochemists."; - close2; - cutin "", 255; - end; - } - - else if(checkcart() == 1){ - mes "[Kafra Staff]"; - mes "You already have"; - mes "a Pushcart equipped."; - mes "Unfortunately, we can't"; - mes "rent more than one to"; - mes "each customer at a time."; - close2; - cutin "", 255; - end; - } - - if(countitem(7061) > 0) delitem 7061,1; - else { - mes "[Kafra Staff]"; - mes "The Pushcart rental"; - mes "fee is 700 zeny. Would"; - mes "you like to rent a Pushcart?"; - next; - if(select("Rent a Pushcart.:Cancel.") == 1) { - if(Zeny<700){ - mes "[Kafra Staff]"; - mes "I'm sorry, but you"; - mes "don't have enough"; - mes "zeny to pay the Pushcart"; - mes "rental fee of 700 zeny."; - close2; - cutin "", 255; - end; - } - set Zeny,Zeny-700; - set RESRVPTS, RESRVPTS + 48; - }else{ - close2; - cutin "", 255; - end; - } - } - setcart; - close2; - cutin "", 255; - end; - case 4: - if(select("Check Special Reserve Points.:Cancel") == 2) { - cutin "", 255; - close; - } - mes "[Kafra Staff]"; - mes strcharinfo(0) + ", you have a total of"; - mes RESRVPTS+ " Special Reserve Points."; - next; - mes "[Kafra Staff]"; - mes "You can exchange your"; - mes "Special Reserve Points for"; - mes "rewards at the Kafra Main Office in Al De Baran. Please use our"; - mes "convenient services to see the benefits of our rewards program."; - close2; - cutin "", 255; - end; - case 5: - mes "[Kafra Staff]"; - mes "We, here at Kafra Corporation,"; - mes "are always endeavoring to provide you with the best services. We hope that we meet your adventuring needs and standards of excellence."; - close2; - cutin "", 255; - end; - } +//===== eAthena Script ======================================= +//= Moscovia Kafras +//===== By: ================================================== +//= Kisuka +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +//= Kafras for the town of Moscovia. +//===== Additional Comments: ================================= +//= 1.0 First Version. [Kisuka] +//============================================================ + +moscovia,223,191,4 script Kafra Staff#mosk 114,{ + cutin "kafra_04",2; + mes "[Kafra Staff]"; + mes "Welcome to the"; + mes "Kafra Corporation."; + mes "The Kafra services"; + mes "are always on your side."; + mes "How may I assist you?"; + next; + switch(select("Save:Use Storage:Rent a Pushcart:Check Other Information:Cancel")) { + case 1: + mes "[Kafra Staff]"; + mes "Your Respawn Point has"; + mes "been saved in the city of"; + mes "Moscovia. Thank you for"; + mes "using the Kafra Service."; + savepoint "moscovia",221,194; + close2; + cutin "", 255; + end; + case 2: + if(basicskillcheck() && getskilllv("NV_BASIC") < 6){ + mes "[Kafra Staff]"; + mes "I'm sorry, but you"; + mes "need the Novice's"; + mes "Basic Skill Level 6 to"; + mes "use the Storage Service."; + close2; + cutin "", 255; + end; + } + if(countitem(7059)) delitem 7059,1; + else { + if(Zeny<80){ + mes "[Kafra Staff]"; + mes "I'm sorry, but you don't"; + mes "have enough zeny to use"; + mes "the Storage Service. Our"; + mes "Storage access fee is 80 zeny."; + close2; + cutin "", 255; + end; + } + set Zeny, Zeny-80; + set RESRVPTS, RESRVPTS + (80/5); + } + mes "[Kafra Staff]"; + mes "Here, let me open"; + mes "your Storage for you."; + mes "Thank you for using"; + mes "the Kafra Service."; + + callfunc("F_CheckKafCode"); //check your storage password, if set + + close2; + openstorage; + cutin "", 255; + end; + case 3: + if(baseClass != Job_Merchant){ + mes "[Kafra Staff]"; + mes "I'm sorry, but the"; + mes "Pushcart rental service"; + mes "is only available to Merchants,"; + mes "Blacksmiths, Master Smiths,"; + mes "Alchemists and Biochemists."; + close2; + cutin "", 255; + end; + } + + else if(checkcart() == 1){ + mes "[Kafra Staff]"; + mes "You already have"; + mes "a Pushcart equipped."; + mes "Unfortunately, we can't"; + mes "rent more than one to"; + mes "each customer at a time."; + close2; + cutin "", 255; + end; + } + + if(countitem(7061) > 0) delitem 7061,1; + else { + mes "[Kafra Staff]"; + mes "The Pushcart rental"; + mes "fee is 700 zeny. Would"; + mes "you like to rent a Pushcart?"; + next; + if(select("Rent a Pushcart.:Cancel.") == 1) { + if(Zeny<700){ + mes "[Kafra Staff]"; + mes "I'm sorry, but you"; + mes "don't have enough"; + mes "zeny to pay the Pushcart"; + mes "rental fee of 700 zeny."; + close2; + cutin "", 255; + end; + } + set Zeny,Zeny-700; + set RESRVPTS, RESRVPTS + 48; + }else{ + close2; + cutin "", 255; + end; + } + } + setcart; + close2; + cutin "", 255; + end; + case 4: + if(select("Check Special Reserve Points.:Cancel") == 2) { + cutin "", 255; + close; + } + mes "[Kafra Staff]"; + mes strcharinfo(0) + ", you have a total of"; + mes RESRVPTS+ " Special Reserve Points."; + next; + mes "[Kafra Staff]"; + mes "You can exchange your"; + mes "Special Reserve Points for"; + mes "rewards at the Kafra Main Office in Al De Baran. Please use our"; + mes "convenient services to see the benefits of our rewards program."; + close2; + cutin "", 255; + end; + case 5: + mes "[Kafra Staff]"; + mes "We, here at Kafra Corporation,"; + mes "are always endeavoring to provide you with the best services. We hope that we meet your adventuring needs and standards of excellence."; + close2; + cutin "", 255; + end; + } } \ No newline at end of file diff --git a/readme.html b/readme.html index 8bb8bf72d..4fee74ee7 100644 --- a/readme.html +++ b/readme.html @@ -1,349 +1,349 @@ -eAthena - Introduction - - -
-
-
-
-
- - - - - - - -
- - - - - - - -
-
- -
-
- - -
-
- - - - - - - -
-
- -
-
- - - - - - +eAthena - Introduction + + +
+
+
+
+
+ + + + + + + +
+ + + + + + + +
+
+ +
+
+ + +
+
+ + + + + + + +
+
+ +
+
+ + + + + + diff --git a/readme/changelog.html b/readme/changelog.html index 0969a6a9e..ced251806 100644 --- a/readme/changelog.html +++ b/readme/changelog.html @@ -1,136 +1,136 @@ -eAthena - Changelog - - - - -
-
-
-
-
- - - - - - - - -
- - - - - - - -
-
- -
-
- - - - -
-
- - - - - - - -
-
- -
-
-
- +eAthena - Changelog + + + + +
+
+
+
+
+ + + + + + + + +
+ + + + + + + +
+
+ +
+
+ + + + +
+
+ + + + + + + +
+
+ +
+
+
+ diff --git a/readme/faq.html b/readme/faq.html index 956b7d566..fc18e377c 100644 --- a/readme/faq.html +++ b/readme/faq.html @@ -1,151 +1,151 @@ -eAthena - FAQ - - - - -
-
-
-
-
- - - - - - - - -
- - - - - - - -
-
- -
-
- - - - -
-
- - - - - - - -
-
- -
-
-
- +eAthena - FAQ + + + + +
+
+
+
+
+ + + + + + + + +
+ + + + + + + +
+
+ +
+
+ + + + +
+
+ + + + + + + +
+
+ +
+
+
+ diff --git a/readme/features.html b/readme/features.html index 78137d65e..aeffbab23 100644 --- a/readme/features.html +++ b/readme/features.html @@ -1,160 +1,160 @@ -eAthena - Features - - - - -
-
-
-
-
- - - - - - - - -
- - - - - - - -
-
- -
-
- - - - -
-
- - - - - - - -
-
- -
-
-
- +eAthena - Features + + + + +
+
+
+
+
+ + + + + + + + +
+ + + + + + + +
+
+ +
+
+ + + + +
+
+ + + + + + + +
+
+ +
+
+
+ diff --git a/readme/gmcommands.html b/readme/gmcommands.html index 44b9ea554..29de48135 100644 --- a/readme/gmcommands.html +++ b/readme/gmcommands.html @@ -1,139 +1,139 @@ -eAthena - GM Commands - - - - -
-
-
-
-
- - - - - - - - -
- - - - - - - -
-
- -
-
- - - - -
-
- - - - - - - -
-
- -
-
-
- +eAthena - GM Commands + + + + +
+
+
+
+
+ + + + + + + + +
+ + + + + + + +
+
+ +
+
+ + + + +
+
+ + + + + + + +
+
+ +
+
+
+ diff --git a/readme/npcfeatures.html b/readme/npcfeatures.html index 380ce7bfd..67b816b87 100644 --- a/readme/npcfeatures.html +++ b/readme/npcfeatures.html @@ -1,262 +1,262 @@ -eAthena - NPC Features - - - - -
-
-
-
-
- - - - - - - - -
- - - - - - - -
-
- -
-
- - - - -
-
- - - - - - - -
-
- -
-
-
- +eAthena - NPC Features + + + + +
+
+
+
+
+ + + + + + + + +
+ + + + + + + +
+
+ +
+
+ + + + +
+
+ + + + + + + +
+
+ +
+
+
+ diff --git a/readme/readme.css b/readme/readme.css index eb64703a4..63742c60c 100644 --- a/readme/readme.css +++ b/readme/readme.css @@ -1,227 +1,227 @@ -/* Go away, Troll */ - -A, -A:link, -A:visited, -A:active, -A:hover { - -color: #000; - -text-decoration: underline; - -background-color : inherit; - -} - - -html { - - margin: 0px; - - padding: 0px; - -} - -body { - - background: url(./images/bg.gif); - - margin: 0px 0px 0px 0px; - - padding: 0px 0px 0px 0px; - - font: 14px Arial, arial; - - color: #000; - -} - -h1 { - - width : 100%; - - height : 40px; - - text-align : bottom; - - font : 30px Arial Black, arial black, helvetica, sans-serif; - -} - -.w800 { - - width: 800px; - -} - -#dleftbg, -#drightbg { - - position: absolute; - - width: 50%; - - overflow: hidden; - - height: 69px; - - z-index: 0; - -} - -#dleftbg { - - top: 66px; - - left: 0px; - - background: url(./images/leftbg.gif); - -} - -#drightbg { - - top: 105px; - - right: 0px; - - background: url(./images/rightbg.gif); - -} - -#canvas { - - position: absolute; - - z-index: 1; - - width: 100%; - - height: 100%; - -} - -#ea { - - height: 100%; - -} - - -#leftborderspacer, -#leftbgspacer { - - height: 66px; - -} - -#rightborderspacer { - - height: 106px; - -} - - -#leftborder, -#rightborder { - - background: #000; - - width: 1px; - -} - -.vspacer { - - - -} - -#middle { - - background: url(./images/textbg.gif); - - width: 800px; - - height: 100%; - -} - -#logo { - - background: url(./images/logo.gif) no-repeat top left; - - height: 100%; - -} - -#title { - - font : 30px Arial Black, arial black, helvetica, sans-serif; - - height: 54px; - -} - -.navi { - - font : 14px Arial Black, arial black, helvetica, sans-serif; - - height: 88px; - -} - -#btmborder { - - background: url(./images/btmborderbg.gif); - - height: 2px; - -} - -.left, -#lefttext, -#leftbtmborder { - - width: 327px; - -} - -#midtext, -#midbtmborder { - - width: 44px; - -} - -.right, -#righttext, -#rightbtmborder { - - width: 429px; - -} - -#content { - - height: 100px; - -} - -#lefttext, -#righttext { - - background: url(./images/textbg.gif); - - height: 100%; - -} - -#midtext { - - background: url(./images/logobtm.gif); - - height: 100%; - +/* Go away, Troll */ + +A, +A:link, +A:visited, +A:active, +A:hover { + +color: #000; + +text-decoration: underline; + +background-color : inherit; + +} + + +html { + + margin: 0px; + + padding: 0px; + +} + +body { + + background: url(./images/bg.gif); + + margin: 0px 0px 0px 0px; + + padding: 0px 0px 0px 0px; + + font: 14px Arial, arial; + + color: #000; + +} + +h1 { + + width : 100%; + + height : 40px; + + text-align : bottom; + + font : 30px Arial Black, arial black, helvetica, sans-serif; + +} + +.w800 { + + width: 800px; + +} + +#dleftbg, +#drightbg { + + position: absolute; + + width: 50%; + + overflow: hidden; + + height: 69px; + + z-index: 0; + +} + +#dleftbg { + + top: 66px; + + left: 0px; + + background: url(./images/leftbg.gif); + +} + +#drightbg { + + top: 105px; + + right: 0px; + + background: url(./images/rightbg.gif); + +} + +#canvas { + + position: absolute; + + z-index: 1; + + width: 100%; + + height: 100%; + +} + +#ea { + + height: 100%; + +} + + +#leftborderspacer, +#leftbgspacer { + + height: 66px; + +} + +#rightborderspacer { + + height: 106px; + +} + + +#leftborder, +#rightborder { + + background: #000; + + width: 1px; + +} + +.vspacer { + + + +} + +#middle { + + background: url(./images/textbg.gif); + + width: 800px; + + height: 100%; + +} + +#logo { + + background: url(./images/logo.gif) no-repeat top left; + + height: 100%; + +} + +#title { + + font : 30px Arial Black, arial black, helvetica, sans-serif; + + height: 54px; + +} + +.navi { + + font : 14px Arial Black, arial black, helvetica, sans-serif; + + height: 88px; + +} + +#btmborder { + + background: url(./images/btmborderbg.gif); + + height: 2px; + +} + +.left, +#lefttext, +#leftbtmborder { + + width: 327px; + +} + +#midtext, +#midbtmborder { + + width: 44px; + +} + +.right, +#righttext, +#rightbtmborder { + + width: 429px; + +} + +#content { + + height: 100px; + +} + +#lefttext, +#righttext { + + background: url(./images/textbg.gif); + + height: 100%; + +} + +#midtext { + + background: url(./images/logobtm.gif); + + height: 100%; + } \ No newline at end of file diff --git a/readme/resources.html b/readme/resources.html index 70d111168..83aeb22d7 100644 --- a/readme/resources.html +++ b/readme/resources.html @@ -1,150 +1,150 @@ -eAthena - Resources - - - - -
-
-
-
-
- - - - - - - - -
- - - - - - - -
-
- -
-
- - - - -
-
- - - - - - - -
-
- -
-
-
- +eAthena - Resources + + + + +
+
+
+
+
+ + + + + + + + +
+ + + + + + + +
+
+ +
+
+ + + + +
+
+ + + + + + + +
+
+ +
+
+
+ diff --git a/readme/setup.html b/readme/setup.html index 321748d88..72b06c40e 100644 --- a/readme/setup.html +++ b/readme/setup.html @@ -1,144 +1,144 @@ -eAthena - Setup - - - - -
-
-
-
-
- - - - - - - - -
- - - - - - - -
-
- -
-
- - - - -
-
- - - - - - - -
-
- -
-
-
- +eAthena - Setup + + + + +
+
+
+
+
+ + + + + + + + +
+ + + + + + + +
+
+ +
+
+ + + + +
+
+ + + + + + + +
+
+ +
+
+
+ diff --git a/sql-files/upgrade_svn12581.sql b/sql-files/upgrade_svn12581.sql index ce2ffd989..9b487d5e1 100644 --- a/sql-files/upgrade_svn12581.sql +++ b/sql-files/upgrade_svn12581.sql @@ -1,3 +1,3 @@ -ALTER TABLE `quest_objective` ADD COLUMN `char_id` INTEGER UNSIGNED NOT NULL AFTER `num`, - DROP PRIMARY KEY, +ALTER TABLE `quest_objective` ADD COLUMN `char_id` INTEGER UNSIGNED NOT NULL AFTER `num`, + DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(`quest_id`, `num`, `char_id`); \ No newline at end of file diff --git a/sql-files/upgrade_svn12975.sql b/sql-files/upgrade_svn12975.sql index a8f5e3818..26d78178e 100644 --- a/sql-files/upgrade_svn12975.sql +++ b/sql-files/upgrade_svn12975.sql @@ -1,24 +1,24 @@ -START TRANSACTION; - --- delete columns -ALTER TABLE `login` DROP `error_message`; -ALTER TABLE `login` DROP `memo`; - --- rename columns -ALTER TABLE `login` CHANGE `connect_until` `expiration_time` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'; -ALTER TABLE `login` CHANGE `ban_until` `unban_time` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'; - --- reorder columns -ALTER TABLE `login` MODIFY `sex` enum('M','F','S') NOT NULL default 'M' AFTER `user_pass`; -ALTER TABLE `login` MODIFY `email` varchar(39) NOT NULL default '' AFTER `sex`; -ALTER TABLE `login` MODIFY `level` tinyint(3) NOT NULL default '0' AFTER `email`; -ALTER TABLE `login` MODIFY `state` int(11) unsigned NOT NULL default '0' AFTER `level`; -ALTER TABLE `login` MODIFY `unban_time` int(11) unsigned NOT NULL default '0' AFTER `state`; -ALTER TABLE `login` MODIFY `expiration_time` int(11) unsigned NOT NULL default '0' AFTER `unban_time`; -ALTER TABLE `login` MODIFY `logincount` mediumint(9) unsigned NOT NULL default '0' AFTER `expiration_time`; - --- change ip format -ALTER TABLE `loginlog` CHANGE `ip` `ip` VARCHAR( 15 ) NOT NULL default ''; -UPDATE `loginlog` SET `ip` = inet_ntoa(`ip`); - -COMMIT; +START TRANSACTION; + +-- delete columns +ALTER TABLE `login` DROP `error_message`; +ALTER TABLE `login` DROP `memo`; + +-- rename columns +ALTER TABLE `login` CHANGE `connect_until` `expiration_time` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'; +ALTER TABLE `login` CHANGE `ban_until` `unban_time` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'; + +-- reorder columns +ALTER TABLE `login` MODIFY `sex` enum('M','F','S') NOT NULL default 'M' AFTER `user_pass`; +ALTER TABLE `login` MODIFY `email` varchar(39) NOT NULL default '' AFTER `sex`; +ALTER TABLE `login` MODIFY `level` tinyint(3) NOT NULL default '0' AFTER `email`; +ALTER TABLE `login` MODIFY `state` int(11) unsigned NOT NULL default '0' AFTER `level`; +ALTER TABLE `login` MODIFY `unban_time` int(11) unsigned NOT NULL default '0' AFTER `state`; +ALTER TABLE `login` MODIFY `expiration_time` int(11) unsigned NOT NULL default '0' AFTER `unban_time`; +ALTER TABLE `login` MODIFY `logincount` mediumint(9) unsigned NOT NULL default '0' AFTER `expiration_time`; + +-- change ip format +ALTER TABLE `loginlog` CHANGE `ip` `ip` VARCHAR( 15 ) NOT NULL default ''; +UPDATE `loginlog` SET `ip` = inet_ntoa(`ip`); + +COMMIT; diff --git a/sql-files/upgrade_svn12975_log.sql b/sql-files/upgrade_svn12975_log.sql index c6900e606..3c9aa5cff 100644 --- a/sql-files/upgrade_svn12975_log.sql +++ b/sql-files/upgrade_svn12975_log.sql @@ -1,20 +1,20 @@ --- NOTE: change `ragnarok` and `log` to whatever your database names are. - -START TRANSACTION; - -CREATE TABLE `log`.`loginlog` ( - `time` datetime NOT NULL default '0000-00-00 00:00:00', - `ip` varchar( 15 ) NOT NULL , - `user` varchar( 23 ) NOT NULL default '', - `rcode` tinyint( 4 ) NOT NULL default '0', - `log` varchar( 255 ) NOT NULL default '', - KEY `ip` ( `ip` ) -) ENGINE = MYISAM; - -INSERT INTO `log`.`loginlog` - SELECT * - FROM `ragnarok`.`loginlog` ; - -DROP TABLE `ragnarok`.`loginlog` ; - -COMMIT; +-- NOTE: change `ragnarok` and `log` to whatever your database names are. + +START TRANSACTION; + +CREATE TABLE `log`.`loginlog` ( + `time` datetime NOT NULL default '0000-00-00 00:00:00', + `ip` varchar( 15 ) NOT NULL , + `user` varchar( 23 ) NOT NULL default '', + `rcode` tinyint( 4 ) NOT NULL default '0', + `log` varchar( 255 ) NOT NULL default '', + KEY `ip` ( `ip` ) +) ENGINE = MYISAM; + +INSERT INTO `log`.`loginlog` + SELECT * + FROM `ragnarok`.`loginlog` ; + +DROP TABLE `ragnarok`.`loginlog` ; + +COMMIT; diff --git a/sql-files/upgrade_svn12975_view.sql b/sql-files/upgrade_svn12975_view.sql index a3d64f97e..2d65afd18 100644 --- a/sql-files/upgrade_svn12975_view.sql +++ b/sql-files/upgrade_svn12975_view.sql @@ -1,17 +1,17 @@ --- The statements below will create a 'view' (virtual table) that mimics --- the previous `login` table layout. You can use this hack to make your db --- compatible with older eathena servers or control panels. --- Note: also adjust the account.sql.account_db setting in login_athena.conf. --- Note: if your CP does not have a config setting for the `login` table name --- you'll have to either modify its code or do some table renaming. - -START TRANSACTION; - --- create dummy columns, needed to make the view insertable -ALTER TABLE `login` ADD `error_message` SMALLINT UNSIGNED NOT NULL DEFAULT '0'; -ALTER TABLE `login` ADD `memo` SMALLINT UNSIGNED NOT NULL DEFAULT '0'; - --- create the view -CREATE VIEW `login_view` ( `account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`, `error_message`, `connect_until`, `last_ip`, `memo`, `ban_until`, `state` ) AS SELECT `account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`, `error_message`, `expiration_time`, `last_ip`, `memo`, `unban_time`, `state` FROM `login`; - -COMMIT; +-- The statements below will create a 'view' (virtual table) that mimics +-- the previous `login` table layout. You can use this hack to make your db +-- compatible with older eathena servers or control panels. +-- Note: also adjust the account.sql.account_db setting in login_athena.conf. +-- Note: if your CP does not have a config setting for the `login` table name +-- you'll have to either modify its code or do some table renaming. + +START TRANSACTION; + +-- create dummy columns, needed to make the view insertable +ALTER TABLE `login` ADD `error_message` SMALLINT UNSIGNED NOT NULL DEFAULT '0'; +ALTER TABLE `login` ADD `memo` SMALLINT UNSIGNED NOT NULL DEFAULT '0'; + +-- create the view +CREATE VIEW `login_view` ( `account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`, `error_message`, `connect_until`, `last_ip`, `memo`, `ban_until`, `state` ) AS SELECT `account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`, `error_message`, `expiration_time`, `last_ip`, `memo`, `unban_time`, `state` FROM `login`; + +COMMIT; diff --git a/sql-files/upgrade_svn13025_log.sql b/sql-files/upgrade_svn13025_log.sql index 702b30224..7d3084dd9 100644 --- a/sql-files/upgrade_svn13025_log.sql +++ b/sql-files/upgrade_svn13025_log.sql @@ -1,5 +1,5 @@ -START TRANSACTION; - -ALTER TABLE `zenylog` MODIFY COLUMN `type` enum('M','T','V','S','N','A','E') NOT NULL default 'S'; - -COMMIT; +START TRANSACTION; + +ALTER TABLE `zenylog` MODIFY COLUMN `type` enum('M','T','V','S','N','A','E') NOT NULL default 'S'; + +COMMIT; diff --git a/sql-files/upgrade_svn13115_mercenary.sql b/sql-files/upgrade_svn13115_mercenary.sql index bcb7cff31..70356b361 100644 --- a/sql-files/upgrade_svn13115_mercenary.sql +++ b/sql-files/upgrade_svn13115_mercenary.sql @@ -1,14 +1,14 @@ --- --- Table structure for table `mercenary` --- - -CREATE TABLE IF NOT EXISTS `mercenary` ( - `mer_id` int(11) unsigned NOT NULL auto_increment, - `char_id` int(11) NOT NULL, - `class` mediumint(9) unsigned NOT NULL default '0', - `hp` int(12) NOT NULL default '1', - `sp` int(12) NOT NULL default '1', - `kill_counter` int(11) NOT NULL, - `life_time` int(11) NOT NULL default '0', - PRIMARY KEY (`mer_id`) -) ENGINE=MyISAM; +-- +-- Table structure for table `mercenary` +-- + +CREATE TABLE IF NOT EXISTS `mercenary` ( + `mer_id` int(11) unsigned NOT NULL auto_increment, + `char_id` int(11) NOT NULL, + `class` mediumint(9) unsigned NOT NULL default '0', + `hp` int(12) NOT NULL default '1', + `sp` int(12) NOT NULL default '1', + `kill_counter` int(11) NOT NULL, + `life_time` int(11) NOT NULL default '0', + PRIMARY KEY (`mer_id`) +) ENGINE=MyISAM; diff --git a/sql-files/upgrade_svn13166_mercenary_owner.sql b/sql-files/upgrade_svn13166_mercenary_owner.sql index da7728cbe..29ecf8bf2 100644 --- a/sql-files/upgrade_svn13166_mercenary_owner.sql +++ b/sql-files/upgrade_svn13166_mercenary_owner.sql @@ -1,21 +1,21 @@ --- Removes mer_id from Char DB - -ALTER TABLE `char` DROP COLUMN `mer_id`; - --- Clean mercenary DB - -TRUNCATE TABLE `mercenary`; - --- Table structure for table `mercenary_owner` - -CREATE TABLE IF NOT EXISTS `mercenary_owner` ( - `char_id` int(11) NOT NULL, - `merc_id` int(11) NOT NULL default '0', - `arch_calls` int(11) NOT NULL default '0', - `arch_faith` int(11) NOT NULL default '0', - `spear_calls` int(11) NOT NULL default '0', - `spear_faith` int(11) NOT NULL default '0', - `sword_calls` int(11) NOT NULL default '0', - `sword_faith` int(11) NOT NULL default '0', - PRIMARY KEY (`char_id`) -) ENGINE=MyISAM; +-- Removes mer_id from Char DB + +ALTER TABLE `char` DROP COLUMN `mer_id`; + +-- Clean mercenary DB + +TRUNCATE TABLE `mercenary`; + +-- Table structure for table `mercenary_owner` + +CREATE TABLE IF NOT EXISTS `mercenary_owner` ( + `char_id` int(11) NOT NULL, + `merc_id` int(11) NOT NULL default '0', + `arch_calls` int(11) NOT NULL default '0', + `arch_faith` int(11) NOT NULL default '0', + `spear_calls` int(11) NOT NULL default '0', + `spear_faith` int(11) NOT NULL default '0', + `sword_calls` int(11) NOT NULL default '0', + `sword_faith` int(11) NOT NULL default '0', + PRIMARY KEY (`char_id`) +) ENGINE=MyISAM; diff --git a/sql-files/upgrade_svn13370_inventory.sql b/sql-files/upgrade_svn13370_inventory.sql index dc4d5ff8a..6a118ca4d 100644 --- a/sql-files/upgrade_svn13370_inventory.sql +++ b/sql-files/upgrade_svn13370_inventory.sql @@ -1,6 +1,6 @@ --- Creates expire_time column on Inventory - -ALTER TABLE `inventory` ADD COLUMN `expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0'; -ALTER TABLE `cart_inventory` ADD COLUMN `expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0'; -ALTER TABLE `storage` ADD COLUMN `expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0'; -ALTER TABLE `guild_storage` ADD COLUMN `expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0'; +-- Creates expire_time column on Inventory + +ALTER TABLE `inventory` ADD COLUMN `expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0'; +ALTER TABLE `cart_inventory` ADD COLUMN `expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0'; +ALTER TABLE `storage` ADD COLUMN `expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0'; +ALTER TABLE `guild_storage` ADD COLUMN `expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0'; diff --git a/sql-files/upgrade_svn13881.sql b/sql-files/upgrade_svn13881.sql index a3ccad4b8..aae8962d2 100644 --- a/sql-files/upgrade_svn13881.sql +++ b/sql-files/upgrade_svn13881.sql @@ -1 +1 @@ -DELETE FROM `global_reg_value` WHERE `str`='COOKING_ATTEMPT'; +DELETE FROM `global_reg_value` WHERE `str`='COOKING_ATTEMPT'; diff --git a/sql-files/upgrade_svn13960_questlog.sql b/sql-files/upgrade_svn13960_questlog.sql index c7a42960f..f176c5a6e 100644 --- a/sql-files/upgrade_svn13960_questlog.sql +++ b/sql-files/upgrade_svn13960_questlog.sql @@ -1,20 +1,20 @@ --- --- Table structure for table `questlog` --- - -CREATE TABLE IF NOT EXISTS `questlog` ( - `char_id` int(11) unsigned NOT NULL default '0', - `quest_id` int(10) unsigned NOT NULL, - `state` enum('2','1','0') NOT NULL default '0', - `time` int(11) unsigned NOT NULL default '0', - `mob1` mediumint(9) unsigned NOT NULL default '0', - `count1` mediumint(8) unsigned NOT NULL default '0', - `mob2` mediumint(9) unsigned NOT NULL default '0', - `count2` mediumint(8) unsigned NOT NULL default '0', - `mob3` mediumint(9) unsigned NOT NULL default '0', - `count3` mediumint(8) unsigned NOT NULL default '0', - PRIMARY KEY USING BTREE (`char_id`,`quest_id`) -) ENGINE=MyISAM; - -DROP TABLE `quest_objective`; +-- +-- Table structure for table `questlog` +-- + +CREATE TABLE IF NOT EXISTS `questlog` ( + `char_id` int(11) unsigned NOT NULL default '0', + `quest_id` int(10) unsigned NOT NULL, + `state` enum('2','1','0') NOT NULL default '0', + `time` int(11) unsigned NOT NULL default '0', + `mob1` mediumint(9) unsigned NOT NULL default '0', + `count1` mediumint(8) unsigned NOT NULL default '0', + `mob2` mediumint(9) unsigned NOT NULL default '0', + `count2` mediumint(8) unsigned NOT NULL default '0', + `mob3` mediumint(9) unsigned NOT NULL default '0', + `count3` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY USING BTREE (`char_id`,`quest_id`) +) ENGINE=MyISAM; + +DROP TABLE `quest_objective`; DROP TABLE `quest`; \ No newline at end of file diff --git a/tools/backup b/tools/backup deleted file mode 100644 index 2b5a95814..000000000 --- a/tools/backup +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/perl - -########################################################################## -# Athena用データバックアップツール -# -#  Athenaの各種データファイル*.txtをバックアップするツール -# -#------------------------------------------------------------------------- -# 設定方法 -#  実行する時のカレントフォルダからのデータへのパス、ファイルのリストを -#  正しく設定します。バックアップ先のフォルダは自動作成されないので、 -#  自分で作成しておく必要があります。 -#  フォルダの最後の「/」は省略できません。 -# -#  フォルダは引数でも指定できます。例>./backup ../save/ ./backup_data/ -#  フォルダの最後の「/」は省略できません。 -# -#  実行するとバックアップ先のフォルダへ、ファイル名に現在の日付と時刻を -#  つけてファイルをコピーします。 -# -# * toolフォルダ内にbackup_dataフォルダを作成し、 -#   athena.shの中に「./tool/backup ./save/ ./tool/backup_data/」 -# という行を追加すると、athenaを起動するたびにバックアップが取れます -# -# 復元するときは引数に「-r 日付と時刻」を指定します。 -#  またその後ろにフォルダを指定することも出来ます -#  例1> ./backup -r 200309191607 -#  例2> ./backup -r 200309191607 ../save ./backup_data/ -#  この例では2003/09/19の16:07分にバックアップしたデータを復元しています -# -#  復元するとき、Athenaディレクトリにあるデータは *.bak に名前を変更して -#  残しているので、いらない場合は rm *.bak などで消してください。 -# -########################################################################## - -$sdir="../save/"; #バックアップ元(Athenaのディレクトリ/save/) -$tdir="./backup_data/"; #バックアップ先 - -@files=( #ファイルのリスト - "account","athena","storage","party","guild","castle","pet" -); - - -#-------------------------------設定ここまで----------------------------- - - - - - - - - - - - -if($ARGV[0]=~/^\-r$/i || $ARGV[0]=~/\-\-(recover|restore)/i){ - #復元処理 - - $file=$ARGV[1]; - $sdir=$ARGV[2]||$sdir; - $tdir=$ARGV[3]||$tdir; - &restorecopy($_) foreach @files; - exit(0); -} - -#バックアップ処理 -$sdir=$ARGV[0]||$sdir; -$tdir=$ARGV[1]||$tdir; - -unless( -d $tdir ){ - print "$0: \"$tdir\" : No such directory\n"; - exit(1); -} - -(undef,$min,$hour,$day,$month,$year)=localtime; - -$file=sprintf("%04d%02d%02d%02d%02d", - $year+1900, $month+1, $day, $hour, $min ); - -&backupcopy($_) foreach @files; -exit(0); - -sub backupcopy { - my($name)= @_; - system("cp $sdir$name.txt $tdir$name$file.txt"); -} - -sub restorecopy { - my($name)= @_; - unless( -f "$sdir$name.txt" ){ - printf("$0: \"$sdir$name.txt\" not found!\n"); - return 0; - } - unless( -f "$tdir$name$file.txt" ){ - printf("$0: \"$tdir$name$file.txt\" not found!\n"); - return 0; - } - rename "$sdir$name.txt","$sdir$name.bak"; - system("cp $tdir$name$file.txt $sdir$name.txt"); -} diff --git a/tools/backup.pl b/tools/backup.pl new file mode 100755 index 000000000..939c7eee7 --- /dev/null +++ b/tools/backup.pl @@ -0,0 +1,100 @@ +#!/usr/bin/perl + +########################################################################## +# Athena用データバックアップツール +# +#  Athenaの各種データファイル*.txtをバックアップするツール +# +#------------------------------------------------------------------------- +# 設定方法 +#  実行する時のカレントフォルダからのデータへのパス、ファイルのリストを +#  正しく設定します。バックアップ先のフォルダは自動作成されないので、 +#  自分で作成しておく必要があります。 +#  フォルダの最後の「/」は省略できません。 +# +#  フォルダは引数でも指定できます。例>./backup ../save/ ./backup_data/ +#  フォルダの最後の「/」は省略できません。 +# +#  実行するとバックアップ先のフォルダへ、ファイル名に現在の日付と時刻を +#  つけてファイルをコピーします。 +# +# * toolフォルダ内にbackup_dataフォルダを作成し、 +#   athena.shの中に「./tool/backup ./save/ ./tool/backup_data/」 +# という行を追加すると、athenaを起動するたびにバックアップが取れます +# +# 復元するときは引数に「-r 日付と時刻」を指定します。 +#  またその後ろにフォルダを指定することも出来ます +#  例1> ./backup -r 200309191607 +#  例2> ./backup -r 200309191607 ../save ./backup_data/ +#  この例では2003/09/19の16:07分にバックアップしたデータを復元しています +# +#  復元するとき、Athenaディレクトリにあるデータは *.bak に名前を変更して +#  残しているので、いらない場合は rm *.bak などで消してください。 +# +########################################################################## + +$sdir="../save/"; #バックアップ元(Athenaのディレクトリ/save/) +$tdir="./backup_data/"; #バックアップ先 + +@files=( #ファイルのリスト + "account","athena","storage","party","guild","castle","pet" +); + + +#-------------------------------設定ここまで----------------------------- + + + + + + + + + + + +if($ARGV[0]=~/^\-r$/i || $ARGV[0]=~/\-\-(recover|restore)/i){ + #復元処理 + + $file=$ARGV[1]; + $sdir=$ARGV[2]||$sdir; + $tdir=$ARGV[3]||$tdir; + &restorecopy($_) foreach @files; + exit(0); +} + +#バックアップ処理 +$sdir=$ARGV[0]||$sdir; +$tdir=$ARGV[1]||$tdir; + +unless( -d $tdir ){ + print "$0: \"$tdir\" : No such directory\n"; + exit(1); +} + +(undef,$min,$hour,$day,$month,$year)=localtime; + +$file=sprintf("%04d%02d%02d%02d%02d", + $year+1900, $month+1, $day, $hour, $min ); + +&backupcopy($_) foreach @files; +exit(0); + +sub backupcopy { + my($name)= @_; + system("cp $sdir$name.txt $tdir$name$file.txt"); +} + +sub restorecopy { + my($name)= @_; + unless( -f "$sdir$name.txt" ){ + printf("$0: \"$sdir$name.txt\" not found!\n"); + return 0; + } + unless( -f "$tdir$name$file.txt" ){ + printf("$0: \"$tdir$name$file.txt\" not found!\n"); + return 0; + } + rename "$sdir$name.txt","$sdir$name.bak"; + system("cp $tdir$name$file.txt $sdir$name.txt"); +} diff --git a/tools/checkversion b/tools/checkversion deleted file mode 100644 index 135165236..000000000 --- a/tools/checkversion +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/perl -w - -########################################################################## -# INFORMATION TOOL ABOUT THE SERVERS VERSION OF ATHENA -# -# By connection on a server, this software display the version of the -# designed server. -#------------------------------------------------------------------------- -# Usages: -# ./checkversion IP:port -# ./checkversion IP port -# perl checkversion IP:port -# perl checkversion IP port -# -# note: default port: 6900 -# -# When successfull, the software return the value 0. -# -########################################################################## - -#------------------------- start of configuration ------------------------ - -$connecttimeout = 10; # Connection Timeout (in seconds) - -#-------------------------- End of configuration ------------------------- - -use IO::Socket; - -unless($ARGV[0]) { - print "USAGE: $0 server_ip:port\n"; - exit(1); -} - -$server = $ARGV[0]; -$port = $ARGV[1]; -$port = $1 if ($server =~ s/:(\d+)//); -$port ||= 6900; - -# Connection to the server -my($so,$er) = (); -eval{ - $so = IO::Socket::INET->new( - PeerAddr=> $server, - PeerPort=> $port, - Proto => "tcp", - Timeout => $connecttimeout) or $er = 1; -}; - -if($er || $@) { - print "Can't not connect to server [$server:$port] !\n"; - exit(2); -} - -# Request for the server version -print $so pack("v",30000); # 0x7530 -$so->flush(); - -# Receiving of the answer of the server -if (read($so,$buf,10) < 10) { - print "Invalid answer. It isn't an athena server or it is a too old version.\n"; - exit(5); -} - -# Sending end of connection to the server -print $so pack("v",30002); # 0x7532 -$so->flush(); - -# Analyse of the answer -my($ret,$maver,$miver,$rev,$dev,$mod,$type,$mdver) = unpack("v c6 v",$buf); - -if ($ret != 30001) { # 0x7531 - print "Invalid answer. It isn't an athena server or it is a too old version.\n"; - exit(6); -} - -my(@stype) = (); -foreach $i(0..3) { - push @stype,(("login","char","inter","map")[$i]) if( $type & (1<<$i) ); -} -print " ".join("/",@stype)." server [$server:$port].\n"; -printf " Athena version %s-%d.%d", ("stable","dev")[$dev], $maver,$miver; -printf " revision %d",$rev if $rev; -printf "%s%d\n",("","-mod")[$mod],$mdver; - -exit(0); diff --git a/tools/checkversion.pl b/tools/checkversion.pl new file mode 100755 index 000000000..e13b7370c --- /dev/null +++ b/tools/checkversion.pl @@ -0,0 +1,85 @@ +#!/usr/bin/perl -w + +########################################################################## +# INFORMATION TOOL ABOUT THE SERVERS VERSION OF ATHENA +# +# By connection on a server, this software display the version of the +# designed server. +#------------------------------------------------------------------------- +# Usages: +# ./checkversion.pl IP:port +# ./checkversion.pl IP port +# perl checkversion.pl IP:port +# perl checkversion.pl IP port +# +# note: default port: 6900 +# +# When successfull, the software return the value 0. +# +########################################################################## + +#------------------------- start of configuration ------------------------ + +$connecttimeout = 10; # Connection Timeout (in seconds) + +#-------------------------- End of configuration ------------------------- + +use IO::Socket; + +unless($ARGV[0]) { + print "USAGE: $0 server_ip:port\n"; + exit(1); +} + +$server = $ARGV[0]; +$port = $ARGV[1]; +$port = $1 if ($server =~ s/:(\d+)//); +$port ||= 6900; + +# Connection to the server +my($so,$er) = (); +eval{ + $so = IO::Socket::INET->new( + PeerAddr=> $server, + PeerPort=> $port, + Proto => "tcp", + Timeout => $connecttimeout) or $er = 1; +}; + +if($er || $@) { + print "Can't not connect to server [$server:$port] !\n"; + exit(2); +} + +# Request for the server version +print $so pack("v",30000); # 0x7530 +$so->flush(); + +# Receiving of the answer of the server +if (read($so,$buf,10) < 10) { + print "Invalid answer. It isn't an athena server or it is a too old version.\n"; + exit(5); +} + +# Sending end of connection to the server +print $so pack("v",30002); # 0x7532 +$so->flush(); + +# Analyse of the answer +my($ret,$maver,$miver,$rev,$dev,$mod,$type,$mdver) = unpack("v c6 v",$buf); + +if ($ret != 30001) { # 0x7531 + print "Invalid answer. It isn't an athena server or it is a too old version.\n"; + exit(6); +} + +my(@stype) = (); +foreach $i(0..3) { + push @stype,(("login","char","inter","map")[$i]) if( $type & (1<<$i) ); +} +print " ".join("/",@stype)." server [$server:$port].\n"; +printf " Athena version %s-%d.%d", ("stable","dev")[$dev], $maver,$miver; +printf " revision %d",$rev if $rev; +printf "%s%d\n",("","-mod")[$mod],$mdver; + +exit(0); diff --git a/tools/getlogincount b/tools/getlogincount deleted file mode 100644 index 6a209924f..000000000 --- a/tools/getlogincount +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/perl -w - -########################################################################## -# INFORMATION TOOL ABOUT THE # OF ONLINE PLAYERS ON ATHENA SERVERS -# -# By connection on the athena login-server, this software displays the -# number of online players. -# -#------------------------------------------------------------------------- -# Software usage: -# Configure the IP, the port and a valid account of the server. -# After, use at your choice: -# ./getlogincount - display the number of online players on all servers. -# ./getlogincount --premier or -# ./getlogincount --first -- display the number of online players of the -# first server in the received list. -# ./getlogincount [servername] -- display the number of online players -# of the specified server. -# -# If successfull, the software return the value 0. -# -########################################################################## - -#------------------------------ CONFIGURATION ---------------------------- - -$loginserverip = "127.0.0.1"; # IP of the login-server -$loginserverport = 6900; # port of the login-server -$loginaccount = "s1"; # a valid account name -$loginpasswd = "p1"; # the password of the valid account name - -$connecttimeout = 10; # Connection timeout (in seconds) - -#------------------------------------------------------------------------- - -use IO::Socket; - -my($sname) = $ARGV[0]; -if (!defined($sname)) { - $sname = ""; -} - -# Connection to the login-server -my($so,$er) = (); -eval{ - $so = IO::Socket::INET->new( - PeerAddr=> $loginserverip, - PeerPort=> $loginserverport, - Proto => "tcp", - Timeout => $connecttimeout) or $er=1; -}; -if($er || $@){ - print "Can't not connect to the login-server [${loginserverip}:$loginserverport] !\n"; - exit(2); -} - -# Request to connect on login-server -print $so pack("v V a24 a24 C",0x0064,9,$loginaccount,$loginpasswd,3); -$so->flush(); - -# Fail to connect -if(unpack("v", &soread(\$so,2)) != 0x0069) { - print "Login error.\n"; - exit(3); -} - -# Get length of the received packet -my($plen) = unpack("v",&soread(\$so,2))-4; - -# Suppress information of the account (we need only information about the servers) -&soread(\$so,43); -$plen -= 43; - -# Check about the number of online servers -if ($plen < 32) { - printf "No server is connected to login-server.\n"; - exit(1); -} - -# Read information of the servers -my(@slist) = (); -for(;$plen > 0;$plen -= 32) { - my($name,$count) = unpack("x6 a20 V",&soread(\$so,32)); - $name = substr($name,0,index($name,"\0")); - push @slist, [ $name, $count ]; -} - -# Display the result -if($sname eq "--first" || $sname eq "--premier") { # If we ask only for the first server - printf "%-20s : %5d\n",$slist[0][0],$slist[0][1]; -} elsif ($sname eq "") { # If we ask for all servers - foreach $i(@slist) { - printf "%-20s : %5d\n",$i->[0],$i->[1]; - } -} else { # If we ask for a specified server (by its name) - my($flag) = 1; - foreach $i(@slist) { - if($i->[0] eq $sname) { - printf "%-20s : %5d\n",$i->[0],$i->[1]; - $flag = 0; - } - } - if($flag) { # If the server doesn't exist - printf "The server [$sname] doesn't exist.\n"; - exit(1); - } -} - -# End of the software -$so->shutdown(2); -$so->close(); -exit(0); - -# Sub-function: get data from the socket -sub soread { - my($so,$len) = @_; - my($sobuf); - if(read($$so,$sobuf,$len) < $len) { - print "Socket read error.\n"; - exit(5); - } - return $sobuf; -}; diff --git a/tools/getlogincount.pl b/tools/getlogincount.pl new file mode 100755 index 000000000..de075ed22 --- /dev/null +++ b/tools/getlogincount.pl @@ -0,0 +1,122 @@ +#!/usr/bin/perl -w + +########################################################################## +# INFORMATION TOOL ABOUT THE # OF ONLINE PLAYERS ON ATHENA SERVERS +# +# By connection on the athena login-server, this software displays the +# number of online players. +# +#------------------------------------------------------------------------- +# Software usage: +# Configure the IP, the port and a valid account of the server. +# After, use at your choice: +# ./getlogincount.pl - display the number of online players on all servers. +# ./getlogincount.pl --premier or +# ./getlogincount.pl --first -- display the number of online players of the +# first server in the received list. +# ./getlogincount.pl [servername] -- display the number of online players +# of the specified server. +# +# If successfull, the software return the value 0. +# +########################################################################## + +#------------------------------ CONFIGURATION ---------------------------- + +$loginserverip = "127.0.0.1"; # IP of the login-server +$loginserverport = 6900; # port of the login-server +$loginaccount = "s1"; # a valid account name +$loginpasswd = "p1"; # the password of the valid account name + +$connecttimeout = 10; # Connection timeout (in seconds) + +#------------------------------------------------------------------------- + +use IO::Socket; + +my($sname) = $ARGV[0]; +if (!defined($sname)) { + $sname = ""; +} + +# Connection to the login-server +my($so,$er) = (); +eval{ + $so = IO::Socket::INET->new( + PeerAddr=> $loginserverip, + PeerPort=> $loginserverport, + Proto => "tcp", + Timeout => $connecttimeout) or $er=1; +}; +if($er || $@){ + print "Can't not connect to the login-server [${loginserverip}:$loginserverport] !\n"; + exit(2); +} + +# Request to connect on login-server +print $so pack("v V a24 a24 C",0x0064,9,$loginaccount,$loginpasswd,3); +$so->flush(); + +# Fail to connect +if(unpack("v", &soread(\$so,2)) != 0x0069) { + print "Login error.\n"; + exit(3); +} + +# Get length of the received packet +my($plen) = unpack("v",&soread(\$so,2))-4; + +# Suppress information of the account (we need only information about the servers) +&soread(\$so,43); +$plen -= 43; + +# Check about the number of online servers +if ($plen < 32) { + printf "No server is connected to login-server.\n"; + exit(1); +} + +# Read information of the servers +my(@slist) = (); +for(;$plen > 0;$plen -= 32) { + my($name,$count) = unpack("x6 a20 V",&soread(\$so,32)); + $name = substr($name,0,index($name,"\0")); + push @slist, [ $name, $count ]; +} + +# Display the result +if($sname eq "--first" || $sname eq "--premier") { # If we ask only for the first server + printf "%-20s : %5d\n",$slist[0][0],$slist[0][1]; +} elsif ($sname eq "") { # If we ask for all servers + foreach $i(@slist) { + printf "%-20s : %5d\n",$i->[0],$i->[1]; + } +} else { # If we ask for a specified server (by its name) + my($flag) = 1; + foreach $i(@slist) { + if($i->[0] eq $sname) { + printf "%-20s : %5d\n",$i->[0],$i->[1]; + $flag = 0; + } + } + if($flag) { # If the server doesn't exist + printf "The server [$sname] doesn't exist.\n"; + exit(1); + } +} + +# End of the software +$so->shutdown(2); +$so->close(); +exit(0); + +# Sub-function: get data from the socket +sub soread { + my($so,$len) = @_; + my($sobuf); + if(read($$so,$sobuf,$len) < $len) { + print "Socket read error.\n"; + exit(5); + } + return $sobuf; +}; diff --git a/tools/mapcheck.sh b/tools/mapcheck.sh old mode 100644 new mode 100755 index 54cdd0765..337884c43 --- a/tools/mapcheck.sh +++ b/tools/mapcheck.sh @@ -1,34 +1,34 @@ -#!/bin/sh -echo "============================================" -echo "= map server status checker... =" -echo "============================================" -./map-server.exe & -sleep 40 - -while [ 0 ] -do - pcpu=` top -n 1| grep map-server | awk '{print $9}' | awk 'BEGIN{FS="."} {print $1}' ` - if [ "$pcpu" -gt 80 ];then - echo "============================================" - echo "map server is more than 80% (now $pcpu%)" - echo "============================================" - ppid=` ps -a | grep map-server | awk '{print $1}' ` - kill $ppid - ./map-server.exe & - sleep 40 - else - pmapct=` ps -a| grep map-server | wc -l ` - if [ "$pmapct" -eq 0 ];then - echo "============================================" - echo "map server is not running..." - echo "restart map server..." - echo "============================================" - ./map-server.exe & - sleep 40 - #echo "test" - else - echo "map server is ok (now $pcpu%)..." - sleep 5 - fi - fi +#!/bin/sh +echo "============================================" +echo "= map server status checker... =" +echo "============================================" +./map-server.exe & +sleep 40 + +while [ 0 ] +do + pcpu=` top -n 1| grep map-server | awk '{print $9}' | awk 'BEGIN{FS="."} {print $1}' ` + if [ "$pcpu" -gt 80 ];then + echo "============================================" + echo "map server is more than 80% (now $pcpu%)" + echo "============================================" + ppid=` ps -a | grep map-server | awk '{print $1}' ` + kill $ppid + ./map-server.exe & + sleep 40 + else + pmapct=` ps -a| grep map-server | wc -l ` + if [ "$pmapct" -eq 0 ];then + echo "============================================" + echo "map server is not running..." + echo "restart map server..." + echo "============================================" + ./map-server.exe & + sleep 40 + #echo "test" + else + echo "map server is ok (now $pcpu%)..." + sleep 5 + fi + fi done \ No newline at end of file diff --git a/tools/mapchecker.sh b/tools/mapchecker.sh old mode 100644 new mode 100755 index 5f26c9d4b..7250c342e --- a/tools/mapchecker.sh +++ b/tools/mapchecker.sh @@ -1,56 +1,56 @@ -#!/bin/bash - -athena_dir="/home/athena/658/" - -while [ true ] ; do - -if [ ` ps fauxw | grep map-server | grep -v grep | wc -l ` -eq 0 ];then - #echo `date` " -- map-server crashed - restarting" - echo `date` " -- map-server crashed - restarting" >> /var/log/athena_status.log - killall -9 map-server - cd $athena_dir - nohup ./map-server ./conf/map_athena.conf ./inter_athena.conf & - sleep 240 - #sleep 40 #for fast pc's remove the "#" at the beginning of the line and delete the line above -fi - - -if [ ` ps fauxw | grep map-server | grep -v grep | awk '{print $3}' | awk 'BEGIN{FS="."} {print $1}' ` -gt 10 ];then - #echo `date` " -- mapserver cpuload over 10 - restarting" - echo `date` " -- mapserver cpuload over 10 - restarting" >> /var/log/athena_status.log - killall -9 map-server - cd $athena_dir - nohup ./map-server ./conf/map_athena.conf ./inter_athena.conf & - sleep 240 - #sleep 40 #for fast pc's remove the "#" at the beginning of the line and delete the line above - #echo `date` " -- restarted" - echo `date` " -- restarted" >> /var/log/athena_status.log -fi - -if [ ` ps fauxw | grep char-server | grep -v grep | wc -l ` -eq 0 ];then - #echo `date` " -- char server crashed - restarting" - echo `date` " -- char server crashed - restarting" >> /var/log/athena_status.log - killall -9 char-server - cd $athena_dir - nohup ./char-server ./conf/char_athena.conf ./conf/inter_athena.conf & - #echo `date` " -- restarted" - echo `date` " -- restarted" >> /var/log/athena_status.log - -fi - -if [ ` ps fauxw | grep login-server | grep -v grep | wc -l ` -eq 0 ];then - #echo `date` " -- login server crashed - restarting" - echo `date` " -- login server crashed - restarting" >> /var/log/athena_status.log - killall -9 login-server - cd $athena_dir - nohup ./login-server ./conf/login_athena.conf & - #echo `date` " -- restarted" - echo `date` " -- restarted" >> /var/log/athena_status.log - -fi - - -#echo `date` " -- everything is fine" -echo `date` " -- everything is fine" >> /var/log/athena_status.log -sleep 30 -done +#!/bin/bash + +athena_dir="/home/athena/658/" + +while [ true ] ; do + +if [ ` ps fauxw | grep map-server | grep -v grep | wc -l ` -eq 0 ];then + #echo `date` " -- map-server crashed - restarting" + echo `date` " -- map-server crashed - restarting" >> /var/log/athena_status.log + killall -9 map-server + cd $athena_dir + nohup ./map-server ./conf/map_athena.conf ./inter_athena.conf & + sleep 240 + #sleep 40 #for fast pc's remove the "#" at the beginning of the line and delete the line above +fi + + +if [ ` ps fauxw | grep map-server | grep -v grep | awk '{print $3}' | awk 'BEGIN{FS="."} {print $1}' ` -gt 10 ];then + #echo `date` " -- mapserver cpuload over 10 - restarting" + echo `date` " -- mapserver cpuload over 10 - restarting" >> /var/log/athena_status.log + killall -9 map-server + cd $athena_dir + nohup ./map-server ./conf/map_athena.conf ./inter_athena.conf & + sleep 240 + #sleep 40 #for fast pc's remove the "#" at the beginning of the line and delete the line above + #echo `date` " -- restarted" + echo `date` " -- restarted" >> /var/log/athena_status.log +fi + +if [ ` ps fauxw | grep char-server | grep -v grep | wc -l ` -eq 0 ];then + #echo `date` " -- char server crashed - restarting" + echo `date` " -- char server crashed - restarting" >> /var/log/athena_status.log + killall -9 char-server + cd $athena_dir + nohup ./char-server ./conf/char_athena.conf ./conf/inter_athena.conf & + #echo `date` " -- restarted" + echo `date` " -- restarted" >> /var/log/athena_status.log + +fi + +if [ ` ps fauxw | grep login-server | grep -v grep | wc -l ` -eq 0 ];then + #echo `date` " -- login server crashed - restarting" + echo `date` " -- login server crashed - restarting" >> /var/log/athena_status.log + killall -9 login-server + cd $athena_dir + nohup ./login-server ./conf/login_athena.conf & + #echo `date` " -- restarted" + echo `date` " -- restarted" >> /var/log/athena_status.log + +fi + + +#echo `date` " -- everything is fine" +echo `date` " -- everything is fine" >> /var/log/athena_status.log +sleep 30 +done -- cgit v1.2.3-70-g09d2 From 129002e2da0595c164839a2ea7d07aab1b806e69 Mon Sep 17 00:00:00 2001 From: ai4rei Date: Thu, 13 Jan 2011 11:42:12 +0000 Subject: * Removed ladmin (remote administration tool), all related support code and the checkversion.pl tool with it's support code, which was shared with ladmin (topic:262934, related bugreport:1147, bugreport:1889, r9408 and r9610). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14667 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 1 + Makefile.in | 13 +- conf/Changelog.txt | 2 + conf/import-tmpl/ladmin_conf.txt | 0 conf/ladmin_athena.conf | 31 - conf/login_athena.conf | 10 - configure | 3 +- configure.in | 2 +- eAthena-10.sln | 12 - eAthena-8.sln | 12 - eAthena-9.sln | 12 - readme/features.html | 1 - src/char/char.c | 130 -- src/char_sql/char.c | 16 - src/ladmin/Makefile.in | 45 - src/ladmin/ladmin.c | 3074 ------------------------------------ src/ladmin/ladmin.h | 9 - src/login/Makefile.in | 2 +- src/login/admin.c | 857 ---------- src/login/login.c | 51 +- src/login/login.h | 4 - src/map/chrif.c | 31 +- tools/checkversion.pl | 85 - vcproj-10/ladmin.vcxproj | 149 -- vcproj-10/login-server_sql.vcxproj | 1 - vcproj-10/login-server_txt.vcxproj | 1 - vcproj-6/login-server_sql.dsp | 4 - vcproj-6/login-server_txt.dsp | 4 - vcproj-7.1/login-server_sql.vcproj | 3 - vcproj-7.1/login-server_txt.vcproj | 3 - vcproj-8/ladmin.vcproj | 285 ---- vcproj-8/login-server_sql.vcproj | 4 - vcproj-8/login-server_txt.vcproj | 4 - vcproj-9/ladmin.vcproj | 290 ---- vcproj-9/login-server_sql.vcproj | 4 - vcproj-9/login-server_txt.vcproj | 4 - 36 files changed, 12 insertions(+), 5147 deletions(-) delete mode 100644 conf/import-tmpl/ladmin_conf.txt delete mode 100644 conf/ladmin_athena.conf delete mode 100644 src/ladmin/Makefile.in delete mode 100644 src/ladmin/ladmin.c delete mode 100644 src/ladmin/ladmin.h delete mode 100644 src/login/admin.c delete mode 100755 tools/checkversion.pl delete mode 100644 vcproj-10/ladmin.vcxproj delete mode 100644 vcproj-8/ladmin.vcproj delete mode 100644 vcproj-9/ladmin.vcproj (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 733ca5485..5041c57c2 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -1,6 +1,7 @@ Date Added 2011/01/13 + * Removed ladmin (remote administration tool), all related support code and the checkversion.pl tool with it's support code, which was shared with ladmin (topic:262934, related bugreport:1147, bugreport:1889, r9408 and r9610). [Ai4rei] * Fixed chrif-packet processing considering free/unused packet IDs incorrectly as variable length packets (-1 = variable length, 0 = disabled packet). [Ai4rei] * Added support for creating account through the console-plugin on login-server (replaces ladmin functionality unavailable through atcommands). [Ai4rei] * Reformatting and minor cleanups to console-plugin related code. [Ai4rei] diff --git a/Makefile.in b/Makefile.in index 2afeda0f5..5b51affa4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2,7 +2,7 @@ HAVE_MYSQL=@HAVE_MYSQL@ ifeq ($(HAVE_MYSQL),yes) - ALL_DEPENDS=common common_sql login login_sql char char_sql map map_sql ladmin tools converters plugins import save + ALL_DEPENDS=common common_sql login login_sql char char_sql map map_sql tools converters plugins import save SQL_DEPENDS=common_sql login_sql char_sql map_sql import save COMMON_SQL_DEPENDS= LOGIN_SQL_DEPENDS=common_sql @@ -10,7 +10,7 @@ ifeq ($(HAVE_MYSQL),yes) MAP_SQL_DEPENDS=common_sql CONVERTERS_DEPENDS=common_sql else - ALL_DEPENDS=common login char map ladmin tools plugins import save + ALL_DEPENDS=common login char map tools plugins import save SQL_DEPENDS=needs_mysql COMMON_SQL_DEPENDS=needs_mysql LOGIN_SQL_DEPENDS=needs_mysql @@ -25,7 +25,7 @@ endif login login_sql \ char char_sql \ map map_sql \ - ladmin tools converters plugins addons import save \ + tools converters plugins addons import save \ clean help all: $(ALL_DEPENDS) @@ -60,9 +60,6 @@ map: common map_sql: $(MAP_SQL_DEPENDS) @$(MAKE) -C src/map sql -ladmin: common - @$(MAKE) -C src/ladmin - tools: @$(MAKE) -C src/tool @@ -96,7 +93,6 @@ clean: @$(MAKE) -C src/char $@ @$(MAKE) -C src/char_sql $@ @$(MAKE) -C src/map $@ - @$(MAKE) -C src/ladmin $@ @$(MAKE) -C src/plugins $@ @$(MAKE) -C src/tool $@ @$(MAKE) -C src/txt-converter $@ @@ -112,7 +108,6 @@ help: @echo "'char_sql' - builds char server (SQL version)" @echo "'map' - builds map server (TXT version)" @echo "'map_sql' - builds map server (SQL version)" - @echo "'ladmin' - builds remote administration tool" @echo "'tools' - builds all the tools in src/tools" @echo "'converters' - builds the login/char converters" @echo "'plugins' - builds all the plugins in src/plugins" @@ -148,7 +143,6 @@ install: conf/%.conf conf/%.txt $(shell mv npc /opt/eathena/etc/eathena/npc) $(shell mv log/* /opt/eathena/var/log/eathena/) $(shell cp *-server* /opt/eathena/bin/) - $(shell cp ladmin /opt/eathena/bin/) $(shell ln -s /opt/eathena/etc/eathena/save/ /opt/eathena/bin/) $(shell ln -s /opt/eathena/etc/eathena/db/ /opt/eathena/bin/) $(shell ln -s /opt/eathena/etc/eathena/conf/ /opt/eathena/bin/) @@ -159,7 +153,6 @@ bin-clean: $(shell rm /opt/eathena/bin/login-server*) $(shell rm /opt/eathena/bin/char-server*) $(shell rm /opt/eathena/bin/map-server*) - $(shell rm /opt/eathena/bin/ladmin) uninstall: $(shell read -p "WARNING: This target does not work properly yet. Press Ctrl+C to cancel or Enter to continue.") diff --git a/conf/Changelog.txt b/conf/Changelog.txt index fd6148e37..8061c8929 100644 --- a/conf/Changelog.txt +++ b/conf/Changelog.txt @@ -1,5 +1,7 @@ Date Added +2011/01/13 + * Rev. 14667 Removed ladmin settings (ladmin_athena.conf) and login-server settings for ladmin (login_athena.conf) (topic:262934). [Ai4rei] 2010/12/30 * Rev. 14643 Updated mapcache up to 2010-12-01. Adds Bifrost, Dewata and Malangdo maps. [Ai4rei] 2010/12/12 diff --git a/conf/import-tmpl/ladmin_conf.txt b/conf/import-tmpl/ladmin_conf.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/conf/ladmin_athena.conf b/conf/ladmin_athena.conf deleted file mode 100644 index 5c4257af7..000000000 --- a/conf/ladmin_athena.conf +++ /dev/null @@ -1,31 +0,0 @@ -// Athena Ladmin configuration file. - -// Login Server IP -login_ip:127.0.0.1 -// Login Server Port -login_port: 6900 - -// Administrative password, used to connect remotely to server. -// NOTICE: If you enable remote administration, you should change its value for security -admin_pass: admin - -// Encoding type of the password -// 0: not encoded -// 1: key+password -// 2: password+key -passenc: 2 - -// Log Filename. All operations done by the software are logged in this file. -ladmin_log_filename: log/ladmin.log - -// Indicate how to display date in logs, to players, etc. -// 0: 31-12-2004 23:59:59 -// 1: 12-31-2004 23:59:59 -// 2: 2004-31-12 23:59:59 -// 3: 2004-12-31 23:59:59 (default) -date_format: 3 - -//If redirected output contains escape sequences (color codes) -stdout_with_ansisequence: no - -import: conf/import/ladmin_conf.txt diff --git a/conf/login_athena.conf b/conf/login_athena.conf index cf7883cfa..7f1f40d4b 100644 --- a/conf/login_athena.conf +++ b/conf/login_athena.conf @@ -35,16 +35,6 @@ stdout_with_ansisequence: no //Example: "console_silent: 7" Hides information, status and notice messages (1+2+4) console_silent: 0 -// Whether remote administration is enabled or disabled -admin_state: no - -// Administrative password, used by ladmin to connect remotely to server. -// NOTICE: you should change this value for security if you use ladmin. -admin_pass: admin - -// Indicate the IP/host that the server accepts for remote administration. -admin_allowed_host: 127.0.0.1 - // Console Commands // Allow for console commands to be used on/off // This prevents usage of >& log.file diff --git a/configure b/configure index 70a12eb59..3a5c7274c 100755 --- a/configure +++ b/configure @@ -1333,7 +1333,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_files="$ac_config_files Makefile src/common/Makefile" - ac_config_files="$ac_config_files src/char/Makefile src/login/Makefile src/ladmin/Makefile" + ac_config_files="$ac_config_files src/char/Makefile src/login/Makefile" ac_config_files="$ac_config_files src/char_sql/Makefile src/txt-converter/Makefile" @@ -5628,7 +5628,6 @@ do "src/common/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/common/Makefile" ;; "src/char/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/char/Makefile" ;; "src/login/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/login/Makefile" ;; - "src/ladmin/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/ladmin/Makefile" ;; "src/char_sql/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/char_sql/Makefile" ;; "src/txt-converter/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/txt-converter/Makefile" ;; "src/map/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/map/Makefile" ;; diff --git a/configure.in b/configure.in index 4892ee141..bf3c97374 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_REVISION($Revision$) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([src/common/cbasetypes.h]) AC_CONFIG_FILES([Makefile src/common/Makefile]) -AC_CONFIG_FILES([src/char/Makefile src/login/Makefile src/ladmin/Makefile]) +AC_CONFIG_FILES([src/char/Makefile src/login/Makefile]) AC_CONFIG_FILES([src/char_sql/Makefile src/txt-converter/Makefile]) AC_CONFIG_FILES([src/map/Makefile src/plugins/Makefile src/tool/Makefile]) diff --git a/eAthena-10.sln b/eAthena-10.sln index a372960d3..991395305 100644 --- a/eAthena-10.sln +++ b/eAthena-10.sln @@ -14,8 +14,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_sql", "vcproj-10 EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-10\mapcache.vcxproj", "{D356871D-58E1-450B-967A-E7E9646175AF}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ladmin", "vcproj-10\ladmin.vcxproj", "{D356871D-58E1-450B-967A-E8E9646175AF}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-login", "vcproj-10\txt-converter-login.vcxproj", "{D356871D-58E1-450B-967A-E9E9646175AF}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-char", "vcproj-10\txt-converter-char.vcxproj", "{D356871D-58E1-450B-967A-EAE9646175AF}" @@ -102,16 +100,6 @@ Global {D356871D-58E1-450B-967A-E7E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32 {D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32 {D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.ActiveCfg = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.Build.0 = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32 {D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 {D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 {D356871D-58E1-450B-967A-E9E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32 diff --git a/eAthena-8.sln b/eAthena-8.sln index 1afd083d4..b06382a1b 100644 --- a/eAthena-8.sln +++ b/eAthena-8.sln @@ -14,8 +14,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_sql", "vcproj-8\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-8\mapcache.vcproj", "{D356871D-58E1-450B-967A-E7E9646175AF}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ladmin", "vcproj-8\ladmin.vcproj", "{D356871D-58E1-450B-967A-E8E9646175AF}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-login", "vcproj-8\txt-converter-login.vcproj", "{D356871D-58E1-450B-967A-E9E9646175AF}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-char", "vcproj-8\txt-converter-char.vcproj", "{D356871D-58E1-450B-967A-EAE9646175AF}" @@ -108,16 +106,6 @@ Global {D356871D-58E1-450B-967A-E7E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32 {D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32 {D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.ActiveCfg = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.Build.0 = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32 {D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 {D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 {D356871D-58E1-450B-967A-E9E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32 diff --git a/eAthena-9.sln b/eAthena-9.sln index 2a9201785..555af8e10 100644 --- a/eAthena-9.sln +++ b/eAthena-9.sln @@ -14,8 +14,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_sql", "vcproj-9\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-9\mapcache.vcproj", "{D356871D-58E1-450B-967A-E7E9646175AF}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ladmin", "vcproj-9\ladmin.vcproj", "{D356871D-58E1-450B-967A-E8E9646175AF}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-login", "vcproj-9\txt-converter-login.vcproj", "{D356871D-58E1-450B-967A-E9E9646175AF}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-char", "vcproj-9\txt-converter-char.vcproj", "{D356871D-58E1-450B-967A-EAE9646175AF}" @@ -108,16 +106,6 @@ Global {D356871D-58E1-450B-967A-E7E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32 {D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32 {D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.ActiveCfg = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.Build.0 = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32 - {D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32 {D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 {D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 {D356871D-58E1-450B-967A-E9E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32 diff --git a/readme/features.html b/readme/features.html index aeffbab23..99b183c79 100644 --- a/readme/features.html +++ b/readme/features.html @@ -109,7 +109,6 @@ so we will focus mainly on stability for the time being, not new features.
  • 2-2 Jobs (Alternate 2nd Jobs)
  • Super Novice (Alternate 1st Job)
  • WoE (War of Emperium)
  • -
  • Remote administration of accounts (ladmin)
  • Weddings
  • Pet equipped mobs
  • Management of day/night
  • diff --git a/src/char/char.c b/src/char/char.c index c0788f64e..f1b430150 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -2176,72 +2176,6 @@ int parse_fromlogin(int fd) } break; - case 0x2726: // Request to send a broadcast message (no answer) - if (RFIFOREST(fd) < 8 || RFIFOREST(fd) < (8 + RFIFOL(fd,4))) - return 0; - if (RFIFOL(fd,4) < 1) - char_log("Receiving a message for broadcast, but message is void.\n"); - else - { - // at least 1 map-server - ARR_FIND( 0, MAX_MAP_SERVERS, i, server[i].fd >= 0 ); - if (i == MAX_MAP_SERVERS) - char_log("'ladmin': Receiving a message for broadcast, but no map-server is online.\n"); - else { - unsigned char buf[128]; - char message[4096]; // +1 to add a null terminated if not exist in the packet - int lp; - char *p; - memset(message, '\0', sizeof(message)); - memcpy(message, RFIFOP(fd,8), RFIFOL(fd,4)); - message[sizeof(message)-1] = '\0'; - remove_control_chars(message); - // remove all first spaces - p = message; - while(p[0] == ' ') - p++; - // if message is only composed of spaces - if (p[0] == '\0') - char_log("Receiving a message for broadcast, but message is only a lot of spaces.\n"); - // else send message to all map-servers - else { - if (RFIFOW(fd,2) == 0) { - char_log("'ladmin': Receiving a message for broadcast (message (in yellow): %s)\n", - message); - lp = 4; - } else { - char_log("'ladmin': Receiving a message for broadcast (message (in blue): %s)\n", - message); - lp = 8; - } - // split message to max 80 char - while(p[0] != '\0') { // if not finish - if (p[0] == ' ') // jump if first char is a space - p++; - else { - char split[80]; - char* last_space; - sscanf(p, "%79[^\t]", split); // max 79 char, any char (\t is control char and control char was removed before) - split[sizeof(split)-1] = '\0'; // last char always \0 - if ((last_space = strrchr(split, ' ')) != NULL) { // searching space from end of the string - last_space[0] = '\0'; // replace it by NULL to have correct length of split - p++; // to jump the new NULL - } - p += strlen(split); - // send broadcast to all map-servers - WBUFW(buf,0) = 0x3800; - WBUFW(buf,2) = lp + strlen(split) + 1; - WBUFL(buf,4) = 0x65756c62; // only write if in blue (lp = 8) - memcpy(WBUFP(buf,lp), split, strlen(split) + 1); - mapif_sendall(buf, WBUFW(buf,2)); - } - } - } - } - } - RFIFOSKIP(fd,8 + RFIFOL(fd,4)); - break; - // reply to an account_reg2 registry request case 0x2729: if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) @@ -2256,54 +2190,6 @@ int parse_fromlogin(int fd) } break; - // Account deletion notification (from login-server) - case 0x2730: - if (RFIFOREST(fd) < 6) - return 0; - // Deletion of all characters of the account - for(i = 0; i < char_num; i++) { - if (char_dat[i].status.account_id == RFIFOL(fd,2)) { - char_delete(&char_dat[i].status); - if (i < char_num - 1) { - memcpy(&char_dat[i], &char_dat[char_num-1], sizeof(struct character_data)); - // if moved character owns to deleted account, check again it's character - if (char_dat[i].status.account_id == RFIFOL(fd,2)) { - i--; - // Correct moved character reference in the character's owner by [Yor] - } else { - int j, k; - struct char_session_data *sd2; - for (j = 0; j < fd_max; j++) { - if (session[j] && (sd2 = (struct char_session_data*)session[j]->session_data) && - sd2->account_id == char_dat[char_num-1].status.account_id) { - for (k = 0; k < MAX_CHARS; k++) { - if (sd2->found_char[k] == char_num-1) { - sd2->found_char[k] = i; - break; - } - } - break; - } - } - } - } - char_num--; - } - } - // Deletion of the storage - inter_storage_delete(RFIFOL(fd,2)); - // send to all map-servers to disconnect the player - { - unsigned char buf[6]; - WBUFW(buf,0) = 0x2b13; - WBUFL(buf,2) = RFIFOL(fd,2); - mapif_sendall(buf, 6); - } - // disconnect player if online on char-server - disconnect_player(RFIFOL(fd,2)); - RFIFOSKIP(fd,6); - break; - // State change of account/ban notification (from login-server) case 0x2731: if (RFIFOREST(fd) < 11) @@ -3750,22 +3636,6 @@ int parse_char(int fd) } return 0; // avoid processing of followup packets here - // Athena info get - case 0x7530: - WFIFOHEAD(fd,10); - WFIFOW(fd,0) = 0x7531; - WFIFOB(fd,2) = ATHENA_MAJOR_VERSION; - WFIFOB(fd,3) = ATHENA_MINOR_VERSION; - WFIFOB(fd,4) = ATHENA_REVISION; - WFIFOB(fd,5) = ATHENA_RELEASE_FLAG; - WFIFOB(fd,6) = ATHENA_OFFICIAL_FLAG; - WFIFOB(fd,7) = ATHENA_SERVER_INTER | ATHENA_SERVER_CHAR; - WFIFOW(fd,8) = ATHENA_MOD_VERSION; - WFIFOSET(fd,10); - - RFIFOSKIP(fd,2); - break; - // unknown packet received default: ShowError("parse_char: Received unknown packet "CL_WHITE"0x%x"CL_RESET" from ip '"CL_WHITE"%s"CL_RESET"'! Disconnecting!\n", RFIFOW(fd,0), ip2str(ipl, NULL)); diff --git a/src/char_sql/char.c b/src/char_sql/char.c index fd012e419..d8c710dd5 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -3429,22 +3429,6 @@ int parse_char(int fd) } return 0; // avoid processing of followup packets here - // Athena info get - case 0x7530: - WFIFOHEAD(fd,10); - WFIFOW(fd,0) = 0x7531; - WFIFOB(fd,2) = ATHENA_MAJOR_VERSION; - WFIFOB(fd,3) = ATHENA_MINOR_VERSION; - WFIFOB(fd,4) = ATHENA_REVISION; - WFIFOB(fd,5) = ATHENA_RELEASE_FLAG; - WFIFOB(fd,6) = ATHENA_OFFICIAL_FLAG; - WFIFOB(fd,7) = ATHENA_SERVER_INTER | ATHENA_SERVER_CHAR; - WFIFOW(fd,8) = ATHENA_MOD_VERSION; - WFIFOSET(fd,10); - - RFIFOSKIP(fd,2); - break; - // unknown packet received default: ShowError("parse_char: Received unknown packet "CL_WHITE"0x%x"CL_RESET" from ip '"CL_WHITE"%s"CL_RESET"'! Disconnecting!\n", RFIFOW(fd,0), ip2str(ipl, NULL)); diff --git a/src/ladmin/Makefile.in b/src/ladmin/Makefile.in deleted file mode 100644 index 4703dded1..000000000 --- a/src/ladmin/Makefile.in +++ /dev/null @@ -1,45 +0,0 @@ - -COMMON_OBJ = ../common/obj_all/minicore.o ../common/obj_all/minisocket.o ../common/obj_all/timer.o \ - ../common/obj_all/malloc.o ../common/obj_all/showmsg.o ../common/obj_all/strlib.o \ - ../common/obj_all/utils.o ../common/obj_all/md5calc.o -COMMON_H = ../common/core.h ../common/socket.h ../common/timer.h ../common/mmo.h \ - ../common/version.h ../common/malloc.h ../common/showmsg.h ../common/strlib.h \ - ../common/utils.h ../common/md5calc.h ../common/cbasetypes.h - -LADMIN_OBJ = obj_all/ladmin.o -LADMIN_H = ladmin.h - -@SET_MAKE@ - -##################################################################### -.PHONY : all ladmin clean help - -all: ladmin - -ladmin: obj_all $(LADMIN_OBJ) $(COMMON_OBJ) - @CC@ @LDFLAGS@ -o ../../ladmin@EXEEXT@ $(LADMIN_OBJ) $(COMMON_OBJ) @LIBS@ - -clean: - rm -rf *.o obj_all ../../ladmin@EXEEXT@ - -help: - @echo "possible targets are 'ladmin' 'all' 'clean' 'help'" - @echo "'ladmin' - remote administration tool" - @echo "'all' - builds all above targets" - @echo "'clean' - cleans builds and objects" - @echo "'help' - outputs this message" - -##################################################################### - -obj_all: - -mkdir obj_all - -obj_all/%.o: %.c $(LADMIN_H) $(COMMON_H) - @CC@ @CFLAGS@ @LDFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< - -# missing common object files -../common/obj_all/%.o: - @$(MAKE) -C ../common txt - -../common/obj_all/mini%.o: - @$(MAKE) -C ../common txt diff --git a/src/ladmin/ladmin.c b/src/ladmin/ladmin.c deleted file mode 100644 index d7a78c119..000000000 --- a/src/ladmin/ladmin.c +++ /dev/null @@ -1,3074 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -/////////////////////////////////////////////////////////////////////////// -// EAthena login-server remote administration tool -/////////////////////////////////////////////////////////////////////////// - -#include "../common/cbasetypes.h" -#include "../common/core.h" -#include "../common/strlib.h" -#include "../common/socket.h" -#include "../common/timer.h" -#include "../common/version.h" -#include "../common/mmo.h" -#include "../common/md5calc.h" -#include "../common/showmsg.h" -#include "ladmin.h" - -#include -#include -#include -#include -#include -#include -#include // str* -#include // valist - - -//-------------------------------INSTRUCTIONS------------------------------ -// Set the variables below: -// IP of the login server. -// Port where the login-server listens incoming packets. -// Password of administration (same of config_athena.conf). -// IMPORTANT: -// Be sure that you authorize remote administration in login-server -// (see login_athena.conf, 'admin_state' parameter) -//------------------------------------------------------------------------- -char loginserverip[16] = "127.0.0.1"; // IP of login-server -int loginserverport = 6900; // Port of login-server -char loginserveradminpassword[24] = "admin"; // Administration password -int passenc = 0; // Encoding type of the password -char ladmin_log_filename[1024] = "log/ladmin.log"; -char date_format[32] = "%Y-%m-%d %H:%M:%S"; - -//------------------------------------------------------------------------- -// LIST of COMMANDs that you can type at the prompt: -// To use these commands you can only type only the first letters. -// You must type a minimum of letters (you can not type 'a', -// because ladmin doesn't know if it's for 'aide' or for 'add') -// q <= quit, li <= list, pass <= passwd, etc. -// -// Note: every time you must give a account_name, you can use "" or '' (spaces can be included) -// -// aide/help/? -// Display the description of the commands -// aide/help/? [command] -// Display the description of the specified command -// -// add -// Create an account with the default email (a@a.com). -// Concerning the sex, only the first letter is used (F or M). -// The e-mail is set to a@a.com (default e-mail). It's like to have no e-mail. -// When the password is omitted, the input is done without displaying of the pressed keys. -// add testname Male testpass -// -// ban/banish yyyy/mm/dd hh:mm:ss -// Changes the final date of a banishment of an account. -// Like banset, but is at end. -// -// banadd -// Adds or substracts time from the final date of a banishment of an account. -// Modifier is done as follows: -// Adjustment value (-1, 1, +1, etc...) -// Modified element: -// a or y: year -// m: month -// j or d: day -// h: hour -// mn: minute -// s: second -// banadd testname +1m-2mn1s-6y -// this example adds 1 month and 1 second, and substracts 2 minutes and 6 years at the same time. -// NOTE: If you modify the final date of a non-banished account, -// you fix the final date to (actual time +- adjustments) -// -// banset yyyy/mm/dd [hh:mm:ss] -// Changes the final date of a banishment of an account. -// Default time [hh:mm:ss]: 23:59:59. -// banset 0 -// Set a non-banished account (0 = unbanished). -// -// block -// Set state 5 (You have been blocked by the GM Team) to an account. -// Like state 5. -// -// check -// Check the validity of a password for an account -// NOTE: Server will never send back a password. -// It's the only method you have to know if a password is correct. -// The other method is to have a ('physical') access to the accounts file. -// -// create -// Like the 'add' command, but with e-mail moreover. -// create testname Male my@mail.com testpass -// -// del -// Remove an account. -// This order requires confirmation. After confirmation, the account is deleted. -// -// email -// Modify the e-mail of an account. -// -// getcount -// Give the number of players online on all char-servers. -// -// gm [GM_level] -// Modify the GM level of an account. -// Default value remove GM level (GM level = 0). -// gm testname 80 -// -// id -// Give the id of an account. -// -// info -// Display complete information of an account. -// -// kami -// Sends a broadcast message on all map-server (in yellow). -// kamib -// Sends a broadcast message on all map-server (in blue). -// -// list/ls [start_id [end_id]] -// Display a list of accounts. -// 'start_id', 'end_id': indicate end and start identifiers. -// Research by name is not possible with this command. -// list 10 9999999 -// -// listBan/lsBan [start_id [end_id]] -// Like list/ls, but only for accounts with state or banished -// -// listGM/lsGM [start_id [end_id]] -// Like list/ls, but only for GM accounts -// -// listOK/lsOK [start_id [end_id]] -// Like list/ls, but only for accounts without state and not banished -// -// memo -// Modify the memo of an account. -// 'memo': it can have until 253 characters (with spaces or not). -// -// name -// Give the name of an account. -// -// passwd -// Change the password of an account. -// When new password is omitted, the input is done without displaying of the pressed keys. -// -// quit/end/exit -// End of the program of administration -// -// reloadGM -// Reload GM configuration file -// -// search -// Seek accounts. -// Displays the accounts whose names correspond. -// search -r/-e/--expr/--regex -// Seek accounts by regular expression. -// Displays the accounts whose names correspond. -// -// sex -// Modify the sex of an account. -// sex testname Male -// -// state -// Change the state of an account. -// 'new_state': state is the state of the packet 0x006a + 1. The possibilities are: -// 0 = Account ok 6 = Your Game's EXE file is not the latest version -// 1 = Unregistered ID 7 = You are Prohibited to log in until %s -// 2 = Incorrect Password 8 = Server is jammed due to over populated -// 3 = This ID is expired 9 = No MSG -// 4 = Rejected from Server 100 = This ID has been totally erased -// 5 = You have been blocked by the GM Team -// all other values are 'No MSG', then use state 9 please. -// 'error_message_#7': message of the code error 6 = Your are Prohibited to log in until %s (packet 0x006a) -// -// timeadd -// Adds or substracts time from the validity limit of an account. -// Modifier is done as follows: -// Adjustment value (-1, 1, +1, etc...) -// Modified element: -// a or y: year -// m: month -// j or d: day -// h: hour -// mn: minute -// s: second -// timeadd testname +1m-2mn1s-6y -// this example adds 1 month and 1 second, and substracts 2 minutes and 6 years at the same time. -// NOTE: You can not modify a unlimited validity limit. -// If you want modify it, you want probably create a limited validity limit. -// So, at first, you must set the validity limit to a date/time. -// -// timeset yyyy/mm/dd [hh:mm:ss] -// Changes the validity limit of an account. -// Default time [hh:mm:ss]: 23:59:59. -// timeset 0 -// Gives an unlimited validity limit (0 = unlimited). -// -// unban/unbanish -// Unban an account. -// Like banset 0. -// -// unblock -// Set state 0 (Account ok) to an account. -// Like state 0. -// -// version -// Display the version of the login-server. -// -// who -// Displays complete information of an account. -// -//------------------------------------------------------------------------- - -int login_fd; -int login_ip; -int bytes_to_read = 0; // flag to know if we waiting bytes from login-server -char command[1024]; -char parameters[1024]; -int list_first, list_last, list_type, list_count; // parameter to display a list of accounts -int already_exit_function = 0; // sometimes, the exit function is called twice... so, don't log twice the message - -//------------------------------ -// Writing function of logs file -//------------------------------ -int ladmin_log(char *fmt, ...) -{ - FILE *logfp; - va_list ap; - time_t t; - char tmpstr[2048]; - - va_start(ap, fmt); - - logfp = fopen(ladmin_log_filename, "a"); - if (logfp) { - if (fmt[0] == '\0') // jump a line if no message - fprintf(logfp, "\n"); - else { - t = time(NULL); - strftime(tmpstr, 24, date_format, localtime(&t)); - sprintf(tmpstr + strlen(tmpstr), ": %s", fmt); - vfprintf(logfp, tmpstr, ap); - } - fclose(logfp); - } - - va_end(ap); - return 0; -} - -//--------------------------------------------- -// Function to return ordinal text of a number. -//--------------------------------------------- -char* makeordinal(int number) -{ - if ((number % 10) < 4 && (number % 10) != 0 && (number < 10 || number > 20)) { - if ((number % 10) == 1) - return "st"; - else if ((number % 10) == 2) - return "nd"; - else - return "rd"; - } else { - return "th"; - } -} - -//----------------------------------------------------------------------------------------- -// Function to test of the validity of an account name (return 0 if incorrect, and 1 if ok) -//----------------------------------------------------------------------------------------- -int verify_accountname(char* account_name) -{ - int i; - - for(i = 0; account_name[i]; i++) { - if (account_name[i] < 32) { - ShowMessage("Illegal character found in the account name (%d%s character).\n", i+1, makeordinal(i+1)); - ladmin_log("Illegal character found in the account name (%d%s character).\n", i+1, makeordinal(i+1)); - return 0; - } - } - - if (strlen(account_name) < 4) { - ShowMessage("Account name is too short. Please input an account name of 4-23 bytes.\n"); - ladmin_log("Account name is too short. Please input an account name of 4-23 bytes.\n"); - return 0; - } - - if (strlen(account_name) > 23) { - ShowMessage("Account name is too long. Please input an account name of 4-23 bytes.\n"); - ladmin_log("Account name is too long. Please input an account name of 4-23 bytes.\n"); - return 0; - } - - return 1; -} - -//---------------------------------- -// Sub-function: Input of a password -//---------------------------------- -int typepasswd(char * password) -{ - char password1[1023], password2[1023]; - int letter; - int i; - - ladmin_log("No password was given. Request to obtain a password.\n"); - - memset(password1, '\0', sizeof(password1)); - memset(password2, '\0', sizeof(password2)); - - ShowMessage("\033[1;36m Type the password > \033[0;32;42m"); - - i = 0; - while ((letter = getchar()) != '\n') - password1[i++] = letter; - - ShowMessage("\033[0m\033[1;36m Verify the password > \033[0;32;42m"); - - i = 0; - while ((letter = getchar()) != '\n') - password2[i++] = letter; - - ShowMessage("\033[0m"); - fflush(stdout); - fflush(stdin); - - if (strcmp(password1, password2) != 0) { - ShowMessage("Password verification failed. Please input same password.\n"); - ladmin_log("Password verification failed. Please input same password.\n"); - ladmin_log(" First password: %s, second password: %s.\n", password1, password2); - return 0; - } - ladmin_log("Typed password: %s.\n", password1); - strcpy(password, password1); - return 1; -} - -//------------------------------------------------------------------------------------ -// Sub-function: Test of the validity of password (return 0 if incorrect, and 1 if ok) -//------------------------------------------------------------------------------------ -int verify_password(char * password) -{ - int i; - - for(i = 0; password[i]; i++) { - if (password[i] < 32) { - ShowMessage("Illegal character found in the password (%d%s character).\n", i+1, makeordinal(i+1)); - ladmin_log("Illegal character found in the password (%d%s character).\n", i+1, makeordinal(i+1)); - return 0; - } - } - - if (strlen(password) < 4) { - ShowMessage("Account name is too short. Please input an account name of 4-23 bytes.\n"); - ladmin_log("Account name is too short. Please input an account name of 4-23 bytes.\n"); - return 0; - } - - if (strlen(password) > 23) { - ShowMessage("Password is too long. Please input a password of 4-23 bytes.\n"); - ladmin_log("Password is too long. Please input a password of 4-23 bytes.\n"); - return 0; - } - - return 1; -} - -//------------------------------------------------------------------ -// Sub-function: Check the name of a command (return complete name) -//----------------------------------------------------------------- -int check_command(char * command) -{ -// help - if (strncmp(command, "help", 1) == 0 && strncmp(command, "help", strlen(command)) == 0) - strcpy(command, "help"); -// general commands - else if (strncmp(command, "add", 2) == 0 && strncmp(command, "add", strlen(command)) == 0) // not 1 letter command: 'aide' or 'add'? - strcpy(command, "add"); - else if ((strncmp(command, "ban", 3) == 0 && strncmp(command, "ban", strlen(command)) == 0) || - (strncmp(command, "banish", 4) == 0 && strncmp(command, "banish", strlen(command)) == 0)) - strcpy(command, "ban"); - else if ((strncmp(command, "banadd", 4) == 0 && strncmp(command, "banadd", strlen(command)) == 0) || // not 1 letter command: 'ba' or 'bs'? 'banadd' or 'banset' ? - strcmp(command, "ba") == 0) - strcpy(command, "banadd"); - else if ((strncmp(command, "banset", 4) == 0 && strncmp(command, "banset", strlen(command)) == 0) || // not 1 letter command: 'ba' or 'bs'? 'banadd' or 'banset' ? - strcmp(command, "bs") == 0) - strcpy(command, "banset"); - else if (strncmp(command, "block", 2) == 0 && strncmp(command, "block", strlen(command)) == 0) - strcpy(command, "block"); - else if (strncmp(command, "check", 2) == 0 && strncmp(command, "check", strlen(command)) == 0) // not 1 letter command: 'check' or 'create'? - strcpy(command, "check"); - else if (strncmp(command, "create", 2) == 0 && strncmp(command, "create", strlen(command)) == 0) // not 1 letter command: 'check' or 'create'? - strcpy(command, "create"); - else if (strncmp(command, "delete", 1) == 0 && strncmp(command, "delete", strlen(command)) == 0) - strcpy(command, "delete"); - else if ((strncmp(command, "email", 2) == 0 && strncmp(command, "email", strlen(command)) == 0) || // not 1 letter command: 'email', 'end' or 'exit'? - (strncmp(command, "e-mail", 2) == 0 && strncmp(command, "e-mail", strlen(command)) == 0)) - strcpy(command, "email"); - else if (strncmp(command, "getcount", 2) == 0 && strncmp(command, "getcount", strlen(command)) == 0) // not 1 letter command: 'getcount' or 'gm'? - strcpy(command, "getcount"); -// else if (strncmp(command, "gm", 2) == 0 && strncmp(command, "gm", strlen(command)) == 0) // not 1 letter command: 'getcount' or 'gm'? -// strcpy(command, "gm"); -// else if (strncmp(command, "id", 2) == 0 && strncmp(command, "id", strlen(command)) == 0) // not 1 letter command: 'id' or 'info'? -// strcpy(command, "id"); - else if (strncmp(command, "info", 2) == 0 && strncmp(command, "info", strlen(command)) == 0) // not 1 letter command: 'id' or 'info'? - strcpy(command, "info"); -// else if (strncmp(command, "kami", 4) == 0 && strncmp(command, "kami", strlen(command)) == 0) // only all letters command: 'kami' or 'kamib'? -// strcpy(command, "kami"); -// else if (strncmp(command, "kamib", 5) == 0 && strncmp(command, "kamib", strlen(command)) == 0) // only all letters command: 'kami' or 'kamib'? -// strcpy(command, "kamib"); - else if ((strncmp(command, "list", 2) == 0 && strncmp(command, "list", strlen(command)) == 0) || // 'list' is default list command // not 1 letter command: 'list'? - strcmp(command, "ls") == 0) - strcpy(command, "list"); - else if ((strncmp(command, "listban", 5) == 0 && strncmp(command, "listban", strlen(command)) == 0) || - (strncmp(command, "lsban", 3) == 0 && strncmp(command, "lsban", strlen(command)) == 0) || - strcmp(command, "lb") == 0) - strcpy(command, "listban"); - else if ((strncmp(command, "listgm", 5) == 0 && strncmp(command, "listgm", strlen(command)) == 0) || - (strncmp(command, "lsgm", 3) == 0 && strncmp(command, "lsgm", strlen(command)) == 0) || - strcmp(command, "lg") == 0) - strcpy(command, "listgm"); - else if ((strncmp(command, "listok", 5) == 0 && strncmp(command, "listok", strlen(command)) == 0) || - (strncmp(command, "lsok", 3) == 0 && strncmp(command, "lsok", strlen(command)) == 0) || - strcmp(command, "lo") == 0) - strcpy(command, "listok"); - else if (strncmp(command, "memo", 1) == 0 && strncmp(command, "memo", strlen(command)) == 0) - strcpy(command, "memo"); - else if (strncmp(command, "name", 1) == 0 && strncmp(command, "name", strlen(command)) == 0) - strcpy(command, "name"); - else if ((strncmp(command, "password", 1) == 0 && strncmp(command, "password", strlen(command)) == 0) || - strcmp(command, "passwd") == 0) - strcpy(command, "password"); - else if (strncmp(command, "reloadgm", 1) == 0 && strncmp(command, "reloadgm", strlen(command)) == 0) - strcpy(command, "reloadgm"); - else if (strncmp(command, "search", 3) == 0 && strncmp(command, "search", strlen(command)) == 0) // not 1 letter command: 'search', 'state' or 'sex'? - strcpy(command, "search"); // not 2 letters command: 'search' or 'sex'? -// else if (strncmp(command, "sex", 3) == 0 && strncmp(command, "sex", strlen(command)) == 0) // not 1 letter command: 'search', 'state' or 'sex'? -// strcpy(command, "sex"); // not 2 letters command: 'search' or 'sex'? - else if (strncmp(command, "state", 2) == 0 && strncmp(command, "state", strlen(command)) == 0) // not 1 letter command: 'search', 'state' or 'sex'? - strcpy(command, "state"); - else if ((strncmp(command, "timeadd", 5) == 0 && strncmp(command, "timeadd", strlen(command)) == 0) || // not 1 letter command: 'ta' or 'ts'? 'timeadd' or 'timeset'? - strcmp(command, "ta") == 0) - strcpy(command, "timeadd"); - else if ((strncmp(command, "timeset", 5) == 0 && strncmp(command, "timeset", strlen(command)) == 0) || // not 1 letter command: 'ta' or 'ts'? 'timeadd' or 'timeset'? - strcmp(command, "ts") == 0) - strcpy(command, "timeset"); - else if ((strncmp(command, "unban", 5) == 0 && strncmp(command, "unban", strlen(command)) == 0) || - (strncmp(command, "unbanish", 4) == 0 && strncmp(command, "unbanish", strlen(command)) == 0)) - strcpy(command, "unban"); - else if (strncmp(command, "unblock", 4) == 0 && strncmp(command, "unblock", strlen(command)) == 0) - strcpy(command, "unblock"); - else if (strncmp(command, "version", 1) == 0 && strncmp(command, "version", strlen(command)) == 0) - strcpy(command, "version"); - else if (strncmp(command, "who", 1) == 0 && strncmp(command, "who", strlen(command)) == 0) - strcpy(command, "who"); -// quit - else if (strncmp(command, "quit", 1) == 0 && strncmp(command, "quit", strlen(command)) == 0) - strcpy(command, "quit"); - else if (strncmp(command, "exit", 2) == 0 && strncmp(command, "exit", strlen(command)) == 0) // not 1 letter command: 'email', 'end' or 'exit'? - strcpy(command, "exit"); - else if (strncmp(command, "end", 2) == 0 && strncmp(command, "end", strlen(command)) == 0) // not 1 letter command: 'email', 'end' or 'exit'? - strcpy(command, "end"); - - return 0; -} - -//----------------------------------------- -// Sub-function: Display commands of ladmin -//----------------------------------------- -void display_help(char* param) -{ - char command[1023]; - int i; - - memset(command, '\0', sizeof(command)); - - if (sscanf(param, "%s ", command) < 1 || strlen(command) == 0) - strcpy(command, ""); // any value that is not a command - - if (command[0] == '?') - strcpy(command, "help"); - - // lowercase for command - for (i = 0; command[i]; i++) - command[i] = TOLOWER(command[i]); - - // Analyse of the command - check_command(command); // give complete name to the command - - ladmin_log("Displaying of the commands or a command.\n"); - - if (strcmp(command, "help") == 0 ) { - ShowMessage("aide/help/?\n"); - ShowMessage(" Display the description of the commands\n"); - ShowMessage("aide/help/? [command]\n"); - ShowMessage(" Display the description of the specified command\n"); -// general commands - } else if (strcmp(command, "add") == 0) { - ShowMessage("add \n"); - ShowMessage(" Create an account with the default email (a@a.com).\n"); - ShowMessage(" Concerning the sex, only the first letter is used (F or M).\n"); - ShowMessage(" The e-mail is set to a@a.com (default e-mail). It's like to have no e-mail.\n"); - ShowMessage(" When the password is omitted,\n"); - ShowMessage(" the input is done without displaying of the pressed keys.\n"); - ShowMessage(" add testname Male testpass\n"); - } else if (strcmp(command, "ban") == 0) { - ShowMessage("ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" Changes the final date of a banishment of an account.\n"); - ShowMessage(" Like banset, but is at end.\n"); - } else if (strcmp(command, "banadd") == 0) { - ShowMessage("banadd \n"); - ShowMessage(" Adds or substracts time from the final date of a banishment of an account.\n"); - ShowMessage(" Modifier is done as follows:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" banadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ShowMessage("NOTE: If you modify the final date of a non-banished account,\n"); - ShowMessage(" you fix the final date to (actual time +- adjustments)\n"); - } else if (strcmp(command, "banset") == 0) { - ShowMessage("banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" Changes the final date of a banishment of an account.\n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ShowMessage("banset 0\n"); - ShowMessage(" Set a non-banished account (0 = unbanished).\n"); - } else if (strcmp(command, "block") == 0) { - ShowMessage("block \n"); - ShowMessage(" Set state 5 (You have been blocked by the GM Team) to an account.\n"); - ShowMessage(" This command works like state 5.\n"); - } else if (strcmp(command, "check") == 0) { - ShowMessage("check \n"); - ShowMessage(" Check the validity of a password for an account.\n"); - ShowMessage(" NOTE: Server will never send back a password.\n"); - ShowMessage(" It's the only method you have to know if a password is correct.\n"); - ShowMessage(" The other method is to have a ('physical') access to the accounts file.\n"); - } else if (strcmp(command, "create") == 0) { - ShowMessage("create \n"); - ShowMessage(" Like the 'add' command, but with e-mail moreover.\n"); - ShowMessage(" create testname Male my@mail.com testpass\n"); - } else if (strcmp(command, "delete") == 0) { - ShowMessage("del \n"); - ShowMessage(" Remove an account.\n"); - ShowMessage(" This order requires confirmation. After confirmation, the account is deleted.\n"); - } else if (strcmp(command, "email") == 0) { - ShowMessage("email \n"); - ShowMessage(" Modify the e-mail of an account.\n"); - } else if (strcmp(command, "getcount") == 0) { - ShowMessage("getcount\n"); - ShowMessage(" Give the number of players online on all char-servers.\n"); - } else if (strcmp(command, "gm") == 0) { - ShowMessage("gm [GM_level]\n"); - ShowMessage(" Modify the GM level of an account.\n"); - ShowMessage(" Default value remove GM level (GM level = 0).\n"); - ShowMessage(" gm testname 80\n"); - } else if (strcmp(command, "id") == 0) { - ShowMessage("id \n"); - ShowMessage(" Give the id of an account.\n"); - } else if (strcmp(command, "info") == 0) { - ShowMessage("info \n"); - ShowMessage(" Display complete information of an account.\n"); - } else if (strcmp(command, "kami") == 0) { - ShowMessage("kami \n"); - ShowMessage(" Sends a broadcast message on all map-server (in yellow).\n"); - } else if (strcmp(command, "kamib") == 0) { - ShowMessage("kamib \n"); - ShowMessage(" Sends a broadcast message on all map-server (in blue).\n"); - } else if (strcmp(command, "list") == 0) { - ShowMessage("list/ls [start_id [end_id]]\n"); - ShowMessage(" Display a list of accounts.\n"); - ShowMessage(" 'start_id', 'end_id': indicate end and start identifiers.\n"); - ShowMessage(" Research by name is not possible with this command.\n"); - ShowMessage(" list 10 9999999\n"); - } else if (strcmp(command, "listban") == 0) { - ShowMessage("listBan/lsBan [start_id [end_id]]\n"); - ShowMessage(" Like list/ls, but only for accounts with state or banished.\n"); - } else if (strcmp(command, "listgm") == 0) { - ShowMessage("listGM/lsGM [start_id [end_id]]\n"); - ShowMessage(" Like list/ls, but only for GM accounts.\n"); - } else if (strcmp(command, "listok") == 0) { - ShowMessage("listOK/lsOK [start_id [end_id]]\n"); - ShowMessage(" Like list/ls, but only for accounts without state and not banished.\n"); - } else if (strcmp(command, "memo") == 0) { - ShowMessage("memo \n"); - ShowMessage(" Modify the memo of an account.\n"); - ShowMessage(" 'memo': it can have until 253 characters (with spaces or not).\n"); - } else if (strcmp(command, "name") == 0) { - ShowMessage("name \n"); - ShowMessage(" Give the name of an account.\n"); - } else if (strcmp(command, "password") == 0) { - ShowMessage("passwd \n"); - ShowMessage(" Change the password of an account.\n"); - ShowMessage(" When new password is omitted,\n"); - ShowMessage(" the input is done without displaying of the pressed keys.\n"); - } else if (strcmp(command, "reloadgm") == 0) { - ShowMessage("reloadGM\n"); - ShowMessage(" Reload GM configuration file\n"); - } else if (strcmp(command, "search") == 0) { - ShowMessage("search \n"); - ShowMessage(" Seek accounts.\n"); - ShowMessage(" Displays the accounts whose names correspond.\n"); -// ShowMessage("search -r/-e/--expr/--regex \n"); -// ShowMessage(" Seek accounts by regular expression.\n"); -// ShowMessage(" Displays the accounts whose names correspond.\n"); - } else if (strcmp(command, "sex") == 0) { - ShowMessage("sex \n"); - ShowMessage(" Modify the sex of an account.\n"); - ShowMessage(" sex testname Male\n"); - } else if (strcmp(command, "state") == 0) { - ShowMessage("state \n"); - ShowMessage(" Change the state of an account.\n"); - ShowMessage(" 'new_state': state is the state of the packet 0x006a + 1.\n"); - ShowMessage(" The possibilities are:\n"); - ShowMessage(" 0 = Account ok\n"); - ShowMessage(" 1 = Unregistered ID\n"); - ShowMessage(" 2 = Incorrect Password\n"); - ShowMessage(" 3 = This ID is expired\n"); - ShowMessage(" 4 = Rejected from Server\n"); - ShowMessage(" 5 = You have been blocked by the GM Team\n"); - ShowMessage(" 6 = Your Game's EXE file is not the latest version\n"); - ShowMessage(" 7 = You are Prohibited to log in until...\n"); - ShowMessage(" 8 = Server is jammed due to over populated\n"); - ShowMessage(" 9 = No MSG\n"); - ShowMessage(" 100 = This ID has been totally erased\n"); - ShowMessage(" all other values are 'No MSG', then use state 9 please.\n"); - ShowMessage(" 'error_message_#7': message of the code error 6\n"); - ShowMessage(" = Your are Prohibited to log in until... (packet 0x006a)\n"); - } else if (strcmp(command, "timeadd") == 0) { - ShowMessage("timeadd \n"); - ShowMessage(" Adds or substracts time from the validity limit of an account.\n"); - ShowMessage(" Modifier is done as follows:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" timeadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ShowMessage("NOTE: You can not modify a unlimited validity limit.\n"); - ShowMessage(" If you want modify it, you want probably create a limited validity limit.\n"); - ShowMessage(" So, at first, you must set the validity limit to a date/time.\n"); - } else if (strcmp(command, "timeadd") == 0) { - ShowMessage("timeset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" Changes the validity limit of an account.\n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ShowMessage("timeset 0\n"); - ShowMessage(" Gives an unlimited validity limit (0 = unlimited).\n"); - } else if (strcmp(command, "unban") == 0) { - ShowMessage("unban/unbanish \n"); - ShowMessage(" Remove the banishment of an account.\n"); - ShowMessage(" This command works like banset 0.\n"); - } else if (strcmp(command, "unblock") == 0) { - ShowMessage("unblock \n"); - ShowMessage(" Set state 0 (Account ok) to an account.\n"); - ShowMessage(" This command works like state 0.\n"); - } else if (strcmp(command, "version") == 0) { - ShowMessage("version\n"); - ShowMessage(" Display the version of the login-server.\n"); - } else if (strcmp(command, "who") == 0) { - ShowMessage("who \n"); - ShowMessage(" Displays complete information of an account.\n"); -// quit - } else if (strcmp(command, "quit") == 0 || - strcmp(command, "exit") == 0 || - strcmp(command, "end") == 0) { - ShowMessage("quit/end/exit\n"); - ShowMessage(" End of the program of administration.\n"); -// unknown command - } else { - if (strlen(command) > 0) - ShowMessage("Unknown command [%s] for help. Displaying of all commands.\n", command); - ShowMessage(" aide/help/? -- Display this help\n"); - ShowMessage(" aide/help/? [command] -- Display the help of the command\n"); - ShowMessage(" add -- Create an account with default email\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss -- Change final date of a ban\n"); - ShowMessage(" banadd/ba -- Add or substract time from the final\n"); - ShowMessage(" example: ba apple +1m-2mn1s-2y date of a banishment of an account\n"); - ShowMessage(" banset/bs yyyy/mm/dd [hh:mm:ss] -- Change final date of a ban\n"); - ShowMessage(" banset/bs 0 -- Un-banish an account\n"); - ShowMessage(" block -- Set state 5 (blocked by the GM Team) to an account\n"); - ShowMessage(" check -- Check the validity of a password\n"); - ShowMessage(" create -- Create an account with email\n"); - ShowMessage(" del -- Remove an account\n"); - ShowMessage(" email -- Modify an email of an account\n"); - ShowMessage(" getcount -- Give the number of players online\n"); - ShowMessage(" gm [GM_level] -- Modify the GM level of an account\n"); - ShowMessage(" id -- Give the id of an account\n"); - ShowMessage(" info -- Display all information of an account\n"); - ShowMessage(" kami -- Sends a broadcast message (in yellow)\n"); - ShowMessage(" kamib -- Sends a broadcast message (in blue)\n"); - ShowMessage(" list/ls [First_id [Last_id]] -- Display a list of accounts\n"); - ShowMessage(" listBan/lsBan [First_id [Last_id] ] -- Display a list of accounts\n"); - ShowMessage(" with state or banished\n"); - ShowMessage(" listGM/lsGM [First_id [Last_id]] -- Display a list of GM accounts\n"); - ShowMessage(" listOK/lsOK [First_id [Last_id] ] -- Display a list of accounts\n"); - ShowMessage(" without state and not banished\n"); - ShowMessage(" memo -- Modify the memo of an account\n"); - ShowMessage(" name -- Give the name of an account\n"); - ShowMessage(" passwd -- Change the password of an account\n"); - ShowMessage(" quit/end/exit -- End of the program of administation\n"); - ShowMessage(" reloadGM -- Reload GM configuration file\n"); - ShowMessage(" search -- Seek accounts\n"); -// ShowMessage(" search -e/-r/--expr/--regex -- Seek accounts by regular-expression\n"); - ShowMessage(" sex -- Modify the sex of an account\n"); - ShowMessage(" state -- Change the state\n"); - ShowMessage(" timeadd/ta -- Add or substract time from the\n"); - ShowMessage(" example: ta apple +1m-2mn1s-2y validity limit of an account\n"); - ShowMessage(" timeset/ts yyyy/mm/dd [hh:mm:ss] -- Change the validify limit\n"); - ShowMessage(" timeset/ts 0 -- Give a unlimited validity limit\n"); - ShowMessage(" unban/unbanish -- Remove the banishment of an account\n"); - ShowMessage(" unblock -- Set state 0 (Account ok) to an account\n"); - ShowMessage(" version -- Gives the version of the login-server\n"); - ShowMessage(" who -- Display all information of an account\n"); - ShowMessage(" who -- Display all information of an account\n"); - ShowMessage(" Note: To use spaces in an account name, type \"\" (or ').\n"); - } -} - -//----------------------------- -// Sub-function: add an account -//----------------------------- -int addaccount(char* param, int emailflag) -{ - char name[1023], sex[1023], email[1023], password[1023]; -// int i; - WFIFOHEAD(login_fd,91); - - memset(name, '\0', sizeof(name)); - memset(sex, '\0', sizeof(sex)); - memset(email, '\0', sizeof(email)); - memset(password, '\0', sizeof(password)); - - if (emailflag == 0) { // add command - if (sscanf(param, "\"%[^\"]\" %s %[^\r\n]", name, sex, password) < 2 && // password can be void - sscanf(param, "'%[^']' %s %[^\r\n]", name, sex, password) < 2 && // password can be void - sscanf(param, "%s %s %[^\r\n]", name, sex, password) < 2) { // password can be void - ShowMessage("Please input an account name, a sex and a password.\n"); - ShowMessage(" add testname Male testpass\n"); - ladmin_log("Incomplete parameters to create an account ('add' command).\n"); - return 136; - } - strcpy(email, "a@a.com"); // default email - } else { // 1: create command - if (sscanf(param, "\"%[^\"]\" %s %s %[^\r\n]", name, sex, email, password) < 3 && // password can be void - sscanf(param, "'%[^']' %s %s %[^\r\n]", name, sex, email, password) < 3 && // password can be void - sscanf(param, "%s %s %s %[^\r\n]", name, sex, email, password) < 3) { // password can be void - ShowMessage("Please input an account name, a sex and a password.\n"); - ShowMessage(" create testname Male my@mail.com testpass\n"); - ladmin_log("Incomplete parameters to create an account ('create' command).\n"); - return 136; - } - } - if (verify_accountname(name) == 0) { - return 102; - } - - sex[0] = TOUPPER(sex[0]); - if (strchr("MF", sex[0]) == NULL) { - ShowMessage("Illegal gender [%s]. Please input M or F.\n", sex); - ladmin_log("Illegal gender [%s]. Please input M or F.\n", sex); - return 103; - } - - if (strlen(email) < 3) { - ShowMessage("Email is too short [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Email is too short [%s]. Please input a valid e-mail.\n", email); - return 109; - } - if (strlen(email) > 39) { - ShowMessage("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - ladmin_log("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - return 109; - } - if (e_mail_check(email) == 0) { - ShowMessage("Invalid email [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Invalid email [%s]. Please input a valid e-mail.\n", email); - return 109; - } - - if (strlen(password) == 0) { - if (typepasswd(password) == 0) - return 108; - } - if (verify_password(password) == 0) - return 104; - - ladmin_log("Request to login-server to create an account.\n"); - - WFIFOW(login_fd,0) = 0x7930; - memcpy(WFIFOP(login_fd,2), name, 24); - memcpy(WFIFOP(login_fd,26), password, 24); - WFIFOB(login_fd,50) = sex[0]; - memcpy(WFIFOP(login_fd,51), email, 40); - WFIFOSET(login_fd,91); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------------------------------------------------- -// Sub-function: Add/substract time to the final date of a banishment of an account -//--------------------------------------------------------------------------------- -int banaddaccount(char* param) -{ - char name[1023], modif[1023]; - int year, month, day, hour, minute, second; - char * p_modif; - int value, i; - WFIFOHEAD(login_fd,38); - - memset(name, '\0', sizeof(name)); - memset(modif, '\0', sizeof(modif)); - year = month = day = hour = minute = second = 0; - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, modif) < 2 && - sscanf(param, "'%[^']' %[^\r\n]", name, modif) < 2 && - sscanf(param, "%s %[^\r\n]", name, modif) < 2) { - ShowMessage("Please input an account name and a modifier.\n"); - ShowMessage(" : banadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("Incomplete parameters to modify the ban date/time of an account ('banadd' command).\n"); - return 136; - } - if (verify_accountname(name) == 0) { - return 102; - } - - // lowercase for modif - for (i = 0; modif[i]; i++) - modif[i] = TOLOWER(modif[i]); - p_modif = modif; - while (strlen(p_modif) > 0) { - value = atoi(p_modif); - if (value == 0) { - p_modif++; - } else { - if (p_modif[0] == '-' || p_modif[0] == '+') - p_modif++; - while (strlen(p_modif) > 0 && p_modif[0] >= '0' && p_modif[0] <= '9') { - p_modif++; - } - if (p_modif[0] == 's') { - second = value; - p_modif++; - } else if (p_modif[0] == 'm' && p_modif[1] == 'n') { - minute = value; - p_modif += 2; - } else if (p_modif[0] == 'h') { - hour = value; - p_modif++; - } else if (p_modif[0] == 'd' || p_modif[0] == 'j') { - day = value; - p_modif += 2; - } else if (p_modif[0] == 'm') { - month = value; - p_modif++; - } else if (p_modif[0] == 'y' || p_modif[0] == 'a') { - year = value; - p_modif++; - } else { - p_modif++; - } - } - } - - ShowMessage(" year: %d\n", year); - ShowMessage(" month: %d\n", month); - ShowMessage(" day: %d\n", day); - ShowMessage(" hour: %d\n", hour); - ShowMessage(" minute: %d\n", minute); - ShowMessage(" second: %d\n", second); - - if (year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0 && second == 0) { - ShowMessage("Please give an adjustment with this command:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" banadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("No adjustment isn't an adjustment ('banadd' command).\n"); - return 137; - } - if (year > 127 || year < -127) { - ShowMessage("Please give a correct adjustment for the years (from -127 to 127).\n"); - ladmin_log("Abnormal adjustment for the year ('banadd' command).\n"); - return 137; - } - if (month > 255 || month < -255) { - ShowMessage("Please give a correct adjustment for the months (from -255 to 255).\n"); - ladmin_log("Abnormal adjustment for the month ('banadd' command).\n"); - return 137; - } - if (day > 32767 || day < -32767) { - ShowMessage("Please give a correct adjustment for the days (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the days ('banadd' command).\n"); - return 137; - } - if (hour > 32767 || hour < -32767) { - ShowMessage("Please give a correct adjustment for the hours (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the hours ('banadd' command).\n"); - return 137; - } - if (minute > 32767 || minute < -32767) { - ShowMessage("Please give a correct adjustment for the minutes (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the minutes ('banadd' command).\n"); - return 137; - } - if (second > 32767 || second < -32767) { - ShowMessage("Please give a correct adjustment for the seconds (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the seconds ('banadd' command).\n"); - return 137; - } - - ladmin_log("Request to login-server to modify a ban date/time.\n"); - - WFIFOW(login_fd,0) = 0x794c; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOW(login_fd,26) = (short)year; - WFIFOW(login_fd,28) = (short)month; - WFIFOW(login_fd,30) = (short)day; - WFIFOW(login_fd,32) = (short)hour; - WFIFOW(login_fd,34) = (short)minute; - WFIFOW(login_fd,36) = (short)second; - WFIFOSET(login_fd,38); - bytes_to_read = 1; - - return 0; -} - -//----------------------------------------------------------------------- -// Sub-function of sub-function banaccount, unbanaccount or bansetaccount -// Set the final date of a banishment of an account -//----------------------------------------------------------------------- -int bansetaccountsub(char* name, char* date, char* time) -{ - int year, month, day, hour, minute, second; - time_t unban_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban) - struct tm *tmtime; - WFIFOHEAD(login_fd,30); - - year = month = day = hour = minute = second = 0; - unban_time = 0; - tmtime = localtime(&unban_time); // initialize - - if (verify_accountname(name) == 0) { - return 102; - } - - if (atoi(date) != 0 && - ((sscanf(date, "%d/%d/%d", &year, &month, &day) < 3 && - sscanf(date, "%d-%d-%d", &year, &month, &day) < 3 && - sscanf(date, "%d.%d.%d", &year, &month, &day) < 3) || - sscanf(time, "%d:%d:%d", &hour, &minute, &second) < 3)) - { - ShowMessage("Please input a date and a time (format: yyyy/mm/dd hh:mm:ss).\n"); - ShowMessage("You can imput 0 instead of if you use 'banset' command.\n"); - ladmin_log("Invalid format for the date/time ('banset' or 'ban' command).\n"); - return 102; - } - - if (atoi(date) == 0) { - unban_time = 0; - } else { - if (year < 70) { - year = year + 100; - } - if (year >= 1900) { - year = year - 1900; - } - if (month < 1 || month > 12) { - ShowMessage("Please give a correct value for the month (from 1 to 12).\n"); - ladmin_log("Invalid month for the date ('banset' or 'ban' command).\n"); - return 102; - } - month = month - 1; - if (day < 1 || day > 31) { - ShowMessage("Please give a correct value for the day (from 1 to 31).\n"); - ladmin_log("Invalid day for the date ('banset' or 'ban' command).\n"); - return 102; - } - if (((month == 3 || month == 5 || month == 8 || month == 10) && day > 30) || - (month == 1 && day > 29)) { - ShowMessage("Please give a correct value for a day of this month (%d).\n", month); - ladmin_log("Invalid day for this month ('banset' or 'ban' command).\n"); - return 102; - } - if (hour < 0 || hour > 23) { - ShowMessage("Please give a correct value for the hour (from 0 to 23).\n"); - ladmin_log("Invalid hour for the time ('banset' or 'ban' command).\n"); - return 102; - } - if (minute < 0 || minute > 59) { - ShowMessage("Please give a correct value for the minutes (from 0 to 59).\n"); - ladmin_log("Invalid minute for the time ('banset' or 'ban' command).\n"); - return 102; - } - if (second < 0 || second > 59) { - ShowMessage("Please give a correct value for the seconds (from 0 to 59).\n"); - ladmin_log("Invalid second for the time ('banset' or 'ban' command).\n"); - return 102; - } - tmtime->tm_year = year; - tmtime->tm_mon = month; - tmtime->tm_mday = day; - tmtime->tm_hour = hour; - tmtime->tm_min = minute; - tmtime->tm_sec = second; - tmtime->tm_isdst = -1; // -1: no winter/summer time modification - unban_time = mktime(tmtime); - if (unban_time == -1) { - ShowMessage("Invalid date.\n"); - ShowMessage("Please input a date and a time (format: yyyy/mm/dd hh:mm:ss).\n"); - ShowMessage("You can imput 0 instead of if you use 'banset' command.\n"); - ladmin_log("Invalid date. ('banset' or 'ban' command).\n"); - return 102; - } - } - - ladmin_log("Request to login-server to set a ban.\n"); - - WFIFOW(login_fd,0) = 0x794a; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOL(login_fd,26) = (int)unban_time; - WFIFOSET(login_fd,30); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------------------------------------- -// Sub-function: Set the final date of a banishment of an account (ban) -//--------------------------------------------------------------------- -int banaccount(char* param) -{ - char name[1023], date[1023], time[1023]; - - memset(name, '\0', sizeof(name)); - memset(date, '\0', sizeof(date)); - memset(time, '\0', sizeof(time)); - - if (sscanf(param, "%s %s \"%[^\"]\"", date, time, name) < 3 && - sscanf(param, "%s %s '%[^']'", date, time, name) < 3 && - sscanf(param, "%s %s %[^\r\n]", date, time, name) < 3) { - ShowMessage("Please input an account name, a date and a hour.\n"); - ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = un-banished)\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a ban ('banset' or 'ban' command).\n"); - return 136; - } - - return bansetaccountsub(name, date, time); -} - -//------------------------------------------------------------------------ -// Sub-function: Set the final date of a banishment of an account (banset) -//------------------------------------------------------------------------ -int bansetaccount(char* param) -{ - char name[1023], date[1023], time[1023]; - - memset(name, '\0', sizeof(name)); - memset(date, '\0', sizeof(date)); - memset(time, '\0', sizeof(time)); - - if (sscanf(param, "\"%[^\"]\" %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void - sscanf(param, "'%[^']' %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void - sscanf(param, "%s %s %[^\r\n]", name, date, time) < 2) { // if date = 0, time can be void - ShowMessage("Please input an account name, a date and a hour.\n"); - ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = un-banished)\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a ban ('banset' or 'ban' command).\n"); - return 136; - } - - if (time[0] == '\0') - strcpy(time, "23:59:59"); - - return bansetaccountsub(name, date, time); -} - -//------------------------------------------------- -// Sub-function: unbanishment of an account (unban) -//------------------------------------------------- -int unbanaccount(char* param) -{ - char name[1023]; - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = un-banished)\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a ban ('unban' command).\n"); - return 136; - } - - return bansetaccountsub(name, "0", ""); -} - -//--------------------------------------------------------- -// Sub-function: Asking to check the validity of a password -// (Note: never send back a password with login-server!! security of passwords) -//--------------------------------------------------------- -int checkaccount(char* param) -{ - char name[1023], password[1023]; - WFIFOHEAD(login_fd,50); - - memset(name, '\0', sizeof(name)); - memset(password, '\0', sizeof(password)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, password) < 1 && // password can be void - sscanf(param, "'%[^']' %[^\r\n]", name, password) < 1 && // password can be void - sscanf(param, "%s %[^\r\n]", name, password) < 1) { // password can be void - ShowMessage("Please input an account name.\n"); - ShowMessage(" check testname password\n"); - ladmin_log("Incomplete parameters to check the password of an account ('check' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (strlen(password) == 0) { - if (typepasswd(password) == 0) - return 134; - } - if (verify_password(password) == 0) - return 131; - - ladmin_log("Request to login-server to check a password.\n"); - - WFIFOW(login_fd,0) = 0x793a; - memcpy(WFIFOP(login_fd,2), name, 24); - memcpy(WFIFOP(login_fd,26), password, 24); - WFIFOSET(login_fd,50); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------ -// Sub-function: Asking for deletion of an account -//------------------------------------------------ -int delaccount(char* param) -{ - char name[1023]; - char letter; - char confirm[1023]; - int i; - WFIFOHEAD(login_fd,26); - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" del testnametodelete\n"); - ladmin_log("No name given to delete an account ('delete' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - memset(confirm, '\0', sizeof(confirm)); - while (confirm[0] != 'n' && confirm[0] != 'y') - { - ShowMessage("\033[1;36m ** Are you really sure to DELETE account [$userid]? (y/n) > \033[0m"); - fflush(stdout); - memset(confirm, '\0', sizeof(confirm)); - i = 0; - while ((letter = getchar()) != '\n') - confirm[i++] = letter; - } - - if (confirm[0] == 'n') { - ShowMessage("Deletion canceled.\n"); - ladmin_log("Deletion canceled by user ('delete' command).\n"); - return 121; - } - - ladmin_log("Request to login-server to delete an acount.\n"); - - WFIFOW(login_fd,0) = 0x7932; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOSET(login_fd,26); - bytes_to_read = 1; - - return 0; -} - -//---------------------------------------------------------- -// Sub-function: Asking to modification of an account e-mail -//---------------------------------------------------------- -int changeemail(char* param) -{ - char name[1023], email[1023]; - WFIFOHEAD(login_fd,66); - - memset(name, '\0', sizeof(name)); - memset(email, '\0', sizeof(email)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, email) < 2 && - sscanf(param, "'%[^']' %[^\r\n]", name, email) < 2 && - sscanf(param, "%s %[^\r\n]", name, email) < 2) { - ShowMessage("Please input an account name and an email.\n"); - ShowMessage(" email testname newemail\n"); - ladmin_log("Incomplete parameters to change the email of an account ('email' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (strlen(email) < 3) { - ShowMessage("Email is too short [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Email is too short [%s]. Please input a valid e-mail.\n", email); - return 109; - } - if (strlen(email) > 39) { - ShowMessage("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - ladmin_log("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - return 109; - } - if (e_mail_check(email) == 0) { - ShowMessage("Invalid email [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Invalid email [%s]. Please input a valid e-mail.\n", email); - return 109; - } - - ladmin_log("Request to login-server to change an email.\n"); - - WFIFOW(login_fd,0) = 0x7940; - memcpy(WFIFOP(login_fd,2), name, 24); - memcpy(WFIFOP(login_fd,26), email, 40); - WFIFOSET(login_fd,66); - bytes_to_read = 1; - - return 0; -} - -//----------------------------------------------------- -// Sub-function: Asking of the number of online players -//----------------------------------------------------- -int getlogincount(void) -{ - WFIFOHEAD(login_fd,2); - ladmin_log("Request to login-server to obtain the # of online players.\n"); - - WFIFOW(login_fd,0) = 0x7938; - WFIFOSET(login_fd,2); - bytes_to_read = 1; - - return 0; -} - -//---------------------------------------------------------- -// Sub-function: Asking to modify the GM level of an account -//---------------------------------------------------------- -int changegmlevel(char* param) -{ - char name[1023]; - int GM_level; - WFIFOHEAD(login_fd,27); - - memset(name, '\0', sizeof(name)); - GM_level = 0; - - if (sscanf(param, "\"%[^\"]\" %d", name, &GM_level) < 1 && - sscanf(param, "'%[^']' %d", name, &GM_level) < 1 && - sscanf(param, "%s %d", name, &GM_level) < 1) { - ShowMessage("Please input an account name and a GM level.\n"); - ShowMessage(" gm testname 80\n"); - ladmin_log("Incomplete parameters to change the GM level of an account ('gm' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (GM_level < 0 || GM_level > 99) { - ShowMessage("Illegal GM level [%d]. Please input a value from 0 to 99.\n", GM_level); - ladmin_log("Illegal GM level [%d]. The value can be from 0 to 99.\n", GM_level); - return 103; - } - - ladmin_log("Request to login-server to change a GM level.\n"); - - WFIFOW(login_fd,0) = 0x793e; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOB(login_fd,26) = GM_level; - WFIFOSET(login_fd,27); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------------- -// Sub-function: Asking to obtain an account id -//--------------------------------------------- -int idaccount(char* param) -{ - char name[1023]; - WFIFOHEAD(login_fd,26); - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" id testname\n"); - ladmin_log("No name given to search an account id ('id' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - ladmin_log("Request to login-server to know an account id.\n"); - - WFIFOW(login_fd,0) = 0x7944; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOSET(login_fd,26); - bytes_to_read = 1; - - return 0; -} - -//---------------------------------------------------------------------------- -// Sub-function: Asking to displaying information about an account (by its id) -//---------------------------------------------------------------------------- -int infoaccount(int account_id) -{ - WFIFOHEAD(login_fd,6); - if (account_id < 0) { - ShowMessage("Please input a positive value for the id.\n"); - ladmin_log("Negative value was given to found the account.\n"); - return 136; - } - - ladmin_log("Request to login-server to obtain information about an account (by its id).\n"); - - WFIFOW(login_fd,0) = 0x7954; - WFIFOL(login_fd,2) = account_id; - WFIFOSET(login_fd,6); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------- -// Sub-function: Send a broadcast message -//--------------------------------------- -int sendbroadcast(short type, char* message) -{ - int len = strlen(message); - WFIFOHEAD(login_fd,9+len); - if (len == 0) { - ShowMessage("Please input a message.\n"); - if (type == 0) { - ShowMessage(" kami a message\n"); - } else { - ShowMessage(" kamib a message\n"); - } - ladmin_log("The message is void ('kami(b)' command).\n"); - return 136; - } - len++; //+'\0' - WFIFOW(login_fd,0) = 0x794e; - WFIFOW(login_fd,2) = type; - WFIFOL(login_fd,4) = len; - memcpy(WFIFOP(login_fd,8), message, len); - WFIFOSET(login_fd,8+len); - bytes_to_read = 1; - - return 0; -} - -//-------------------------------------------------------- -// Sub-function: Asking to Displaying of the accounts list -//-------------------------------------------------------- -int listaccount(char* param, int type) -{ -//int list_first, list_last, list_type; // parameter to display a list of accounts - int i; - WFIFOHEAD(login_fd,10); - - list_type = type; - - // set default values - list_first = 0; - list_last = 0; - - if (list_type == 1) { // if listgm - // get all accounts = use default - } else if (list_type == 2) { // if search - for (i = 0; param[i]; i++) - param[i] = TOLOWER(param[i]); - // get all accounts = use default - } else if (list_type == 3) { // if listban - // get all accounts = use default - } else if (list_type == 4) { // if listok - // get all accounts = use default - } else { // if list (list_type == 0) - switch(sscanf(param, "%d %d", &list_first, &list_last)) { - case 0: - // get all accounts = use default - break; - case 1: - list_last = 0; - // use tests of the following value - default: - if (list_first < 0) - list_first = 0; - if (list_last < list_first || list_last < 0) - list_last = 0; - break; - } - } - - ladmin_log("Request to login-server to obtain the list of accounts from %d to %d.\n", list_first, list_last); - - WFIFOW(login_fd,0) = 0x7920; - WFIFOL(login_fd,2) = list_first; - WFIFOL(login_fd,6) = list_last; - WFIFOSET(login_fd,10); - bytes_to_read = 1; - - // 0123456789 01 01234567890123456789012301234 012345 0123456789012345678901234567 - ShowMessage("account_id GM user_name sex count state\n"); - ShowMessage("-------------------------------------------------------------------------------\n"); - list_count = 0; - - return 0; -} - -//-------------------------------------------- -// Sub-function: Asking to modify a memo field -//-------------------------------------------- -int changememo(char* param) -{ - char name[1023], memo[1023]; - WFIFOHEAD(login_fd,28+255); - - memset(name, '\0', sizeof(name)); - memset(memo, '\0', sizeof(memo)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, memo) < 1 && // memo can be void - sscanf(param, "'%[^']' %[^\r\n]", name, memo) < 1 && // memo can be void - sscanf(param, "%s %[^\r\n]", name, memo) < 1) { // memo can be void - ShowMessage("Please input an account name and a memo.\n"); - ShowMessage(" memo testname new memo\n"); - ladmin_log("Incomplete parameters to change the memo of an account ('email' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (strlen(memo) > 254) { - ShowMessage("Memo is too long (%lu characters).\n", (unsigned long)strlen(memo)); - ShowMessage("Please input a memo of 254 bytes at the maximum.\n"); - ladmin_log("Email is too long (%d characters). Please input a memo of 254 bytes at the maximum.\n", strlen(memo)); - return 102; - } - - ladmin_log("Request to login-server to change a memo.\n"); - - WFIFOW(login_fd,0) = 0x7942; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOW(login_fd,26) = strlen(memo); - if (strlen(memo) > 0) - memcpy(WFIFOP(login_fd,28), memo, strlen(memo)); - WFIFOSET(login_fd,28+strlen(memo)); - bytes_to_read = 1; - - return 0; -} - -//----------------------------------------------- -// Sub-function: Asking to obtain an account name -//----------------------------------------------- -int nameaccount(int id) -{ - WFIFOHEAD(login_fd,6); - if (id < 0) { - ShowMessage("Please input a positive value for the id.\n"); - ladmin_log("Negativ id given to search an account name ('name' command).\n"); - return 136; - } - - ladmin_log("Request to login-server to know an account name.\n"); - - WFIFOW(login_fd,0) = 0x7946; - WFIFOL(login_fd,2) = id; - WFIFOSET(login_fd,6); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------ -// Sub-function: Asking to modify a password -// (Note: never send back a password with login-server!! security of passwords) -//------------------------------------------ -int changepasswd(char* param) -{ - char name[1023], password[1023]; - WFIFOHEAD(login_fd,50); - - memset(name, '\0', sizeof(name)); - memset(password, '\0', sizeof(password)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, password) < 1 && - sscanf(param, "'%[^']' %[^\r\n]", name, password) < 1 && - sscanf(param, "%s %[^\r\n]", name, password) < 1) { - ShowMessage("Please input an account name.\n"); - ShowMessage(" passwd testname newpassword\n"); - ladmin_log("Incomplete parameters to change the password of an account ('password' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (strlen(password) == 0) { - if (typepasswd(password) == 0) - return 134; - } - if (verify_password(password) == 0) - return 131; - - ladmin_log("Request to login-server to change a password.\n"); - - WFIFOW(login_fd,0) = 0x7934; - memcpy(WFIFOP(login_fd,2), name, 24); - memcpy(WFIFOP(login_fd,26), password, 24); - WFIFOSET(login_fd,50); - bytes_to_read = 1; - - return 0; -} - -//---------------------------------------------------------------------- -// Sub-function: Request to login-server to reload GM configuration file -// this function have no answer -//---------------------------------------------------------------------- -int reloadGM(void) -{ - WFIFOHEAD(login_fd,2); - WFIFOW(login_fd,0) = 0x7955; - WFIFOSET(login_fd,2); - bytes_to_read = 0; - - ladmin_log("Request to reload the GM configuration file sended.\n"); - ShowMessage("Request to reload the GM configuration file sended.\n"); - ShowMessage("Check the actual GM accounts (after reloading):\n"); - listaccount(parameters, 1); // 1: to list only GM - - return 180; -} - -//----------------------------------------------------- -// Sub-function: Asking to modify the sex of an account -//----------------------------------------------------- -int changesex(char* param) -{ - char name[1023], sex[1023]; - WFIFOHEAD(login_fd,27); - - memset(name, '\0', sizeof(name)); - memset(sex, '\0', sizeof(sex)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, sex) < 2 && - sscanf(param, "'%[^']' %[^\r\n]", name, sex) < 2 && - sscanf(param, "%s %[^\r\n]", name, sex) < 2) { - ShowMessage("Please input an account name and a sex.\n"); - ShowMessage(" sex testname Male\n"); - ladmin_log("Incomplete parameters to change the sex of an account ('sex' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - sex[0] = TOUPPER(sex[0]); - if (strchr("MF", sex[0]) == NULL) { - ShowMessage("Illegal gender [%s]. Please input M or F.\n", sex); - ladmin_log("Illegal gender [%s]. Please input M or F.\n", sex); - return 103; - } - - ladmin_log("Request to login-server to change a sex.\n"); - - WFIFOW(login_fd,0) = 0x793c; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOB(login_fd,26) = sex[0]; - WFIFOSET(login_fd,27); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------------------------------- -// Sub-function of sub-function changestate, blockaccount or unblockaccount -// Asking to modify the state of an account -//------------------------------------------------------------------------- -int changestatesub(char* name, int state, char* error_message7) -{ - char error_message[1023]; // need to use, because we can modify error_message7 - WFIFOHEAD(login_fd,50); - - memset(error_message, '\0', sizeof(error_message)); - strncpy(error_message, error_message7, sizeof(error_message)-1); - - if ((state < 0 || state > 9) && state != 100) { // Valid values: 0: ok, or value of the 0x006a packet + 1 - ShowMessage("Please input one of these states:\n"); - ShowMessage(" 0 = Account ok 6 = Your Game's EXE file is not the latest version\n"); - ShowMessage(" 1 = Unregistered ID 7 = You are Prohibited to log in until + message\n"); - ShowMessage(" 2 = Incorrect Password 8 = Server is jammed due to over populated\n"); - ShowMessage(" 3 = This ID is expired 9 = No MSG\n"); - ShowMessage(" 4 = Rejected from Server 100 = This ID has been totally erased\n"); - ShowMessage(" 5 = You have been blocked by the GM Team\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Invalid value for the state of an account ('state', 'block' or 'unblock' command).\n"); - return 151; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (state != 7) { - strcpy(error_message, "-"); - } else { - if (strlen(error_message) < 1) { - ShowMessage("Error message is too short. Please input a message of 1-19 bytes.\n"); - ladmin_log("Error message is too short. Please input a message of 1-19 bytes.\n"); - return 102; - } - if (strlen(error_message) > 19) { - ShowMessage("Error message is too long. Please input a message of 1-19 bytes.\n"); - ladmin_log("Error message is too long. Please input a message of 1-19 bytes.\n"); - return 102; - } - } - - ladmin_log("Request to login-server to change a state.\n"); - - WFIFOW(login_fd,0) = 0x7936; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOL(login_fd,26) = state; - memcpy(WFIFOP(login_fd,30), error_message, 20); - WFIFOSET(login_fd,50); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------------- -// Sub-function: Asking to modify the state of an account -//------------------------------------------------------- -int changestate(char* param) -{ - char name[1023], error_message[1023]; - int state; - - memset(name, '\0', sizeof(name)); - memset(error_message, '\0', sizeof(error_message)); - - if (sscanf(param, "\"%[^\"]\" %d %[^\r\n]", name, &state, error_message) < 2 && - sscanf(param, "'%[^']' %d %[^\r\n]", name, &state, error_message) < 2 && - sscanf(param, "%s %d %[^\r\n]", name, &state, error_message) < 2) { - ShowMessage("Please input an account name and a state.\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Incomplete parameters to change the state of an account ('state' command).\n"); - return 136; - } - - return changestatesub(name, state, error_message); -} - -//------------------------------------------- -// Sub-function: Asking to unblock an account -//------------------------------------------- -int unblockaccount(char* param) -{ - char name[1023]; - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Incomplete parameters to change the state of an account ('unblock' command).\n"); - return 136; - } - - return changestatesub(name, 0, "-"); // state 0, no error message -} - -//------------------------------------------- -// Sub-function: Asking to unblock an account -//------------------------------------------- -int blockaccount(char* param) -{ - char name[1023]; - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Incomplete parameters to change the state of an account ('block' command).\n"); - return 136; - } - - return changestatesub(name, 5, "-"); // state 5, no error message -} - -//--------------------------------------------------------------------- -// Sub-function: Add/substract time to the validity limit of an account -//--------------------------------------------------------------------- -int timeaddaccount(char* param) -{ - char name[1023], modif[1023]; - int year, month, day, hour, minute, second; - char * p_modif; - int value, i; - WFIFOHEAD(login_fd,38); - - memset(name, '\0', sizeof(name)); - memset(modif, '\0', sizeof(modif)); - year = month = day = hour = minute = second = 0; - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, modif) < 2 && - sscanf(param, "'%[^']' %[^\r\n]", name, modif) < 2 && - sscanf(param, "%s %[^\r\n]", name, modif) < 2) - { - ShowMessage("Please input an account name and a modifier.\n"); - ShowMessage(" : timeadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("Incomplete parameters to modify a limit time ('timeadd' command).\n"); - return 136; - } - if (verify_accountname(name) == 0) { - return 102; - } - - // lowercase for modif - for (i = 0; modif[i]; i++) - modif[i] = TOLOWER(modif[i]); - p_modif = modif; - while (strlen(p_modif) > 0) { - value = atoi(p_modif); - if (value == 0) { - p_modif++; - } else { - if (p_modif[0] == '-' || p_modif[0] == '+') - p_modif++; - while (strlen(p_modif) > 0 && p_modif[0] >= '0' && p_modif[0] <= '9') { - p_modif++; - } - if (p_modif[0] == 's') { - second = value; - p_modif++; - } else if (p_modif[0] == 'm' && p_modif[1] == 'n') { - minute = value; - p_modif += 2; - } else if (p_modif[0] == 'h') { - hour = value; - p_modif++; - } else if (p_modif[0] == 'd' || p_modif[0] == 'j') { - day = value; - p_modif += 2; - } else if (p_modif[0] == 'm') { - month = value; - p_modif++; - } else if (p_modif[0] == 'y' || p_modif[0] == 'a') { - year = value; - p_modif++; - } else { - p_modif++; - } - } - } - - ShowMessage(" year: %d\n", year); - ShowMessage(" month: %d\n", month); - ShowMessage(" day: %d\n", day); - ShowMessage(" hour: %d\n", hour); - ShowMessage(" minute: %d\n", minute); - ShowMessage(" second: %d\n", second); - - if (year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0 && second == 0) { - ShowMessage("Please give an adjustment with this command:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" timeadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("No adjustment isn't an adjustment ('timeadd' command).\n"); - return 137; - } - if (year > 127 || year < -127) { - ShowMessage("Please give a correct adjustment for the years (from -127 to 127).\n"); - ladmin_log("Abnormal adjustment for the year ('timeadd' command).\n"); - return 137; - } - if (month > 255 || month < -255) { - ShowMessage("Please give a correct adjustment for the months (from -255 to 255).\n"); - ladmin_log("Abnormal adjustment for the month ('timeadd' command).\n"); - return 137; - } - if (day > 32767 || day < -32767) { - ShowMessage("Please give a correct adjustment for the days (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the days ('timeadd' command).\n"); - return 137; - } - if (hour > 32767 || hour < -32767) { - ShowMessage("Please give a correct adjustment for the hours (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the hours ('timeadd' command).\n"); - return 137; - } - if (minute > 32767 || minute < -32767) { - ShowMessage("Please give a correct adjustment for the minutes (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the minutes ('timeadd' command).\n"); - return 137; - } - if (second > 32767 || second < -32767) { - ShowMessage("Please give a correct adjustment for the seconds (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the seconds ('timeadd' command).\n"); - return 137; - } - - ladmin_log("Request to login-server to modify a time limit.\n"); - - WFIFOW(login_fd,0) = 0x7950; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOW(login_fd,26) = (short)year; - WFIFOW(login_fd,28) = (short)month; - WFIFOW(login_fd,30) = (short)day; - WFIFOW(login_fd,32) = (short)hour; - WFIFOW(login_fd,34) = (short)minute; - WFIFOW(login_fd,36) = (short)second; - WFIFOSET(login_fd,38); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------- -// Sub-function: Set a validity limit of an account -//------------------------------------------------- -int timesetaccount(char* param) -{ - char name[1023], date[1023], time[1023]; - int year, month, day, hour, minute, second; - time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) - struct tm *tmtime; - WFIFOHEAD(login_fd,30); - - memset(name, '\0', sizeof(name)); - memset(date, '\0', sizeof(date)); - memset(time, '\0', sizeof(time)); - year = month = day = hour = minute = second = 0; - expiration_time = 0; - tmtime = localtime(&expiration_time); // initialize - - if (sscanf(param, "\"%[^\"]\" %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void - sscanf(param, "'%[^']' %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void - sscanf(param, "%s %s %[^\r\n]", name, date, time) < 2) { // if date = 0, time can be void - ShowMessage("Please input an account name, a date and a hour.\n"); - ShowMessage(": timeset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" timeset 0 (0 = unlimited)\n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a limit time ('timeset' command).\n"); - return 136; - } - if (verify_accountname(name) == 0) { - return 102; - } - - if (time[0] == '\0') - strcpy(time, "23:59:59"); - - if (atoi(date) != 0 && - ((sscanf(date, "%d/%d/%d", &year, &month, &day) < 3 && - sscanf(date, "%d-%d-%d", &year, &month, &day) < 3 && - sscanf(date, "%d.%d.%d", &year, &month, &day) < 3 && - sscanf(date, "%d'%d'%d", &year, &month, &day) < 3) || - sscanf(time, "%d:%d:%d", &hour, &minute, &second) < 3)) - { - ShowMessage("Please input 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"); - ladmin_log("Invalid format for the date/time ('timeset' command).\n"); - return 102; - } - - if (atoi(date) == 0) { - expiration_time = 0; - } else { - if (year < 70) { - year = year + 100; - } - if (year >= 1900) { - year = year - 1900; - } - if (month < 1 || month > 12) { - ShowMessage("Please give a correct value for the month (from 1 to 12).\n"); - ladmin_log("Invalid month for the date ('timeset' command).\n"); - return 102; - } - month = month - 1; - if (day < 1 || day > 31) { - ShowMessage("Please give a correct value for the day (from 1 to 31).\n"); - ladmin_log("Invalid day for the date ('timeset' command).\n"); - return 102; - } - if (((month == 3 || month == 5 || month == 8 || month == 10) && day > 30) || - (month == 1 && day > 29)) { - ShowMessage("Please give a correct value for a day of this month (%d).\n", month); - ladmin_log("Invalid day for this month ('timeset' command).\n"); - return 102; - } - if (hour < 0 || hour > 23) { - ShowMessage("Please give a correct value for the hour (from 0 to 23).\n"); - ladmin_log("Invalid hour for the time ('timeset' command).\n"); - return 102; - } - if (minute < 0 || minute > 59) { - ShowMessage("Please give a correct value for the minutes (from 0 to 59).\n"); - ladmin_log("Invalid minute for the time ('timeset' command).\n"); - return 102; - } - if (second < 0 || second > 59) { - ShowMessage("Please give a correct value for the seconds (from 0 to 59).\n"); - ladmin_log("Invalid second for the time ('timeset' command).\n"); - return 102; - } - tmtime->tm_year = year; - tmtime->tm_mon = month; - tmtime->tm_mday = day; - tmtime->tm_hour = hour; - tmtime->tm_min = minute; - tmtime->tm_sec = second; - tmtime->tm_isdst = -1; // -1: no winter/summer time modification - expiration_time = mktime(tmtime); - if (expiration_time == -1) { - ShowMessage("Invalid date.\n"); - ShowMessage("Please add 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"); - ladmin_log("Invalid date. ('timeset' command).\n"); - return 102; - } - } - - ladmin_log("Request to login-server to set a time limit.\n"); - - WFIFOW(login_fd,0) = 0x7948; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOL(login_fd,26) = (int)expiration_time; - WFIFOSET(login_fd,30); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------------------------------------ -// Sub-function: Asking to displaying information about an account (by its name) -//------------------------------------------------------------------------------ -int whoaccount(char* param) -{ - char name[1023]; - WFIFOHEAD(login_fd,26); - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" who testname\n"); - ladmin_log("No name was given to found the account.\n"); - return 136; - } - if (verify_accountname(name) == 0) { - return 102; - } - - ladmin_log("Request to login-server to obtain information about an account (by its name).\n"); - - WFIFOW(login_fd,0) = 0x7952; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOSET(login_fd,26); - bytes_to_read = 1; - - return 0; -} - -//-------------------------------------------------------- -// Sub-function: Asking of the version of the login-server -//-------------------------------------------------------- -int checkloginversion(void) -{ - WFIFOHEAD(login_fd,2); - ladmin_log("Request to login-server to obtain its version.\n"); - - WFIFOW(login_fd,0) = 0x7530; - WFIFOSET(login_fd,2); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------------- -// Prompt function -// this function wait until user type a command -// and analyse the command. -//--------------------------------------------- -int prompt(void) -{ - int i, j; - char buf[1024]; - char *p; - - // while we don't wait new packets - while (bytes_to_read == 0) { - // for help with the console colors look here: - // http://www.edoceo.com/liberum/?doc=printf-with-color - // some code explanation (used here): - // \033[2J : clear screen and go up/left (0, 0 position) - // \033[K : clear line from actual position to end of the line - // \033[0m : reset color parameter - // \033[1m : use bold for font - ShowMessage("\n"); - ShowMessage("\033[32mTo list the commands, type 'enter'.\033[0m\n"); - ShowMessage("\033[0;36mLadmin-> \033[0m"); - ShowMessage("\033[1m"); - fflush(stdout); - - // get command and parameter - memset(buf, '\0', sizeof(buf)); - fflush(stdin); - fgets(buf, sizeof(buf), stdin); - - ShowMessage("\033[0m"); - fflush(stdout); - - // remove final \n - if((p = strrchr(buf, '\n')) != NULL) - p[0] = '\0'; - // remove all control char - for (i = 0; buf[i]; i++) - if (buf[i] < 32) { - // remove cursor control. - if (buf[i] == 27 && buf[i+1] == '[' && - (buf[i+2] == 'H' || // home position (cursor) - buf[i+2] == 'J' || // clear screen - buf[i+2] == 'A' || // up 1 line - buf[i+2] == 'B' || // down 1 line - buf[i+2] == 'C' || // right 1 position - buf[i+2] == 'D' || // left 1 position - buf[i+2] == 'G')) { // center cursor (windows) - for (j = i; buf[j]; j++) - buf[j] = buf[j+3]; - } else if (buf[i] == 27 && buf[i+1] == '[' && buf[i+2] == '2' && buf[i+3] == 'J') { // clear screen - for (j = i; buf[j]; j++) - buf[j] = buf[j+4]; - } else if (buf[i] == 27 && buf[i+1] == '[' && buf[i+3] == '~' && - (buf[i+2] == '1' || // home (windows) - buf[i+2] == '2' || // insert (windows) - buf[i+2] == '3' || // del (windows) - buf[i+2] == '4' || // end (windows) - buf[i+2] == '5' || // pgup (windows) - buf[i+2] == '6')) { // pgdown (windows) - for (j = i; buf[j]; j++) - buf[j] = buf[j+4]; - } else { - // remove other control char. - for (j = i; buf[j]; j++) - buf[j] = buf[j+1]; - } - i--; - } - - // extract command name and parameters - memset(command, '\0', sizeof(command)); - memset(parameters, '\0', sizeof(parameters)); - sscanf(buf, "%1023s %[^\n]", command, parameters); - command[1023] = '\0'; - parameters[1023] = '\0'; - - // lowercase for command line - for (i = 0; command[i]; i++) - command[i] = TOLOWER(command[i]); - - if (command[0] == '?' || strlen(command) == 0) { - strcpy(buf, "help"); - strcpy(command, "help"); - } - - // Analyse of the command - check_command(command); // give complete name to the command - - if (strlen(parameters) == 0) { - ladmin_log("Command: '%s' (without parameters)\n", command, parameters); - } else { - ladmin_log("Command: '%s', parameters: '%s'\n", command, parameters); - } - - // Analyse of the command -// help - if (strcmp(command, "help") == 0 ) { - display_help(parameters); -// general commands - } else if (strcmp(command, "add") == 0) { - addaccount(parameters, 0); // 0: no email - } else if (strcmp(command, "ban") == 0) { - banaccount(parameters); - } else if (strcmp(command, "banadd") == 0) { - banaddaccount(parameters); - } else if (strcmp(command, "banset") == 0) { - bansetaccount(parameters); - } else if (strcmp(command, "block") == 0) { - blockaccount(parameters); - } else if (strcmp(command, "check") == 0) { - checkaccount(parameters); - } else if (strcmp(command, "create") == 0) { - addaccount(parameters, 1); // 1: with email - } else if (strcmp(command, "delete") == 0) { - delaccount(parameters); - } else if (strcmp(command, "email") == 0) { - changeemail(parameters); - } else if (strcmp(command, "getcount") == 0) { - getlogincount(); - } else if (strcmp(command, "gm") == 0) { - changegmlevel(parameters); - } else if (strcmp(command, "id") == 0) { - idaccount(parameters); - } else if (strcmp(command, "info") == 0) { - infoaccount(atoi(parameters)); - } else if (strcmp(command, "kami") == 0) { - sendbroadcast(0, parameters); // flag for normal - } else if (strcmp(command, "kamib") == 0) { - sendbroadcast(0x10, parameters); // flag for blue - } else if (strcmp(command, "list") == 0) { - listaccount(parameters, 0); // 0: to list all - } else if (strcmp(command, "listban") == 0) { - listaccount(parameters, 3); // 3: to list only accounts with state or bannished - } else if (strcmp(command, "listgm") == 0) { - listaccount(parameters, 1); // 1: to list only GM - } else if (strcmp(command, "listok") == 0) { - listaccount(parameters, 4); // 4: to list only accounts without state and not bannished - } else if (strcmp(command, "memo") == 0) { - changememo(parameters); - } else if (strcmp(command, "name") == 0) { - nameaccount(atoi(parameters)); - } else if (strcmp(command, "password") == 0) { - changepasswd(parameters); - } else if (strcmp(command, "reloadgm") == 0) { - reloadGM(); - } else if (strcmp(command, "search") == 0) { // no regex in C version - listaccount(parameters, 2); // 2: to list with pattern - } else if (strcmp(command, "sex") == 0) { - changesex(parameters); - } else if (strcmp(command, "state") == 0) { - changestate(parameters); - } else if (strcmp(command, "timeadd") == 0) { - timeaddaccount(parameters); - } else if (strcmp(command, "timeset") == 0) { - timesetaccount(parameters); - } else if (strcmp(command, "unban") == 0) { - unbanaccount(parameters); - } else if (strcmp(command, "unblock") == 0) { - unblockaccount(parameters); - } else if (strcmp(command, "version") == 0) { - checkloginversion(); - } else if (strcmp(command, "who") == 0) { - whoaccount(parameters); -// quit - } else if (strcmp(command, "quit") == 0 || - strcmp(command, "exit") == 0 || - strcmp(command, "end") == 0) { - ShowMessage("Bye.\n"); - exit(EXIT_SUCCESS); -// unknown command - } else { - ShowMessage("Unknown command [%s].\n", buf); - ladmin_log("Unknown command [%s].\n", buf); - } - } - - return 0; -} - -//------------------------------------------------------------- -// Function: Parse receiving informations from the login-server -//------------------------------------------------------------- -int parse_fromlogin(int fd) -{ - struct char_session_data *sd; - int id; - RFIFOHEAD(fd); - if (session[fd]->flag.eof) { - ShowMessage("Impossible to have a connection with the login-server [%s:%d] !\n", loginserverip, loginserverport); - ladmin_log("Impossible to have a connection with the login-server [%s:%d] !\n", loginserverip, loginserverport); - do_close(fd); - exit(EXIT_FAILURE); - } - -// ShowMessage("parse_fromlogin : %d %d %d\n", fd, RFIFOREST(fd), RFIFOW(fd,0)); - sd = (struct char_session_data*)session[fd]->session_data; - - while(RFIFOREST(fd) >= 2) { - switch(RFIFOW(fd,0)) { - case 0x7919: // answer of a connection request - if (RFIFOREST(fd) < 3) - return 0; - if (RFIFOB(fd,2) != 0) { - ShowMessage("Error at login:\n"); - ShowMessage(" - incorrect password,\n"); - ShowMessage(" - administration system not activated, or\n"); - ShowMessage(" - unauthorised IP.\n"); - ladmin_log("Error at login: incorrect password, administration system not activated, or unauthorised IP.\n"); - set_eof(fd); - //bytes_to_read = 1; // not stop at prompt - return 0; - } else { - ShowMessage("Established connection.\n"); - ladmin_log("Established connection.\n"); - ShowMessage("Reading of the version of the login-server...\n"); - ladmin_log("Reading of the version of the login-server...\n"); - //bytes_to_read = 1; // unchanged - checkloginversion(); - } - RFIFOSKIP(fd,3); - break; - - case 0x01dc: // answer of a coding key request - if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) - return 0; - { - char md5str[64] = "", md5bin[32]; - WFIFOHEAD(login_fd, 20); - if (passenc == 1) { - strncpy(md5str, (const char*)RFIFOP(fd,4), RFIFOW(fd,2) - 4); - strcat(md5str, loginserveradminpassword); - } else if (passenc == 2) { - strncpy(md5str, loginserveradminpassword, sizeof(loginserveradminpassword)); - strcat(md5str, (const char*)RFIFOP(fd,4)); - } - MD5_Binary(md5str, md5bin); - WFIFOW(login_fd,0) = 0x7918; // Request for administation login (encrypted password) - WFIFOW(login_fd,2) = passenc; // Encrypted type - memcpy(WFIFOP(login_fd,4), md5bin, 16); - WFIFOSET(login_fd,20); - ShowMessage("Receiving of the MD5 key.\n"); - ladmin_log("Receiving of the MD5 key.\n"); - ShowMessage("Sending of the encrypted password...\n"); - ladmin_log("Sending of the encrypted password...\n"); - } - bytes_to_read = 1; - RFIFOSKIP(fd,RFIFOW(fd,2)); - break; - - case 0x7531: // Displaying of the version of the login-server - if (RFIFOREST(fd) < 10) - return 0; - ShowMessage(" Login-Server [%s:%d]\n", loginserverip, loginserverport); - if (((int)RFIFOB(login_fd,5)) == 0) { - ShowMessage(" eAthena version stable-%d.%d", (int)RFIFOB(login_fd,2), (int)RFIFOB(login_fd,3)); - } else { - ShowMessage(" eAthena version dev-%d.%d", (int)RFIFOB(login_fd,2), (int)RFIFOB(login_fd,3)); - } - if (((int)RFIFOB(login_fd,4)) == 0) - ShowMessage(" revision %d", (int)RFIFOB(login_fd,4)); - if (((int)RFIFOB(login_fd,6)) == 0) - ShowMessage("%d.\n", RFIFOW(login_fd,8)); - else - ShowMessage("-mod%d.\n", RFIFOW(login_fd,8)); - bytes_to_read = 0; - RFIFOSKIP(fd,10); - break; - - case 0x7921: // Displaying of the list of accounts - if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) - return 0; - if (RFIFOW(fd,2) < 5) { - ladmin_log(" Receiving of a void accounts list.\n"); - if (list_count == 0) - ShowMessage("No account found.\n"); - else if (list_count == 1) - ShowMessage("1 account found.\n"); - else - ShowMessage("%d accounts found.\n", list_count); - bytes_to_read = 0; - } else { - int i; - WFIFOHEAD(login_fd,10); - ladmin_log(" Receiving of a accounts list.\n"); - for(i = 4; i < RFIFOW(fd,2); i += 38) { - int j; - char userid[24]; - char lower_userid[24]; - memcpy(userid, RFIFOP(fd,i + 5), sizeof(userid)); - userid[sizeof(userid)-1] = '\0'; - memset(lower_userid, '\0', sizeof(lower_userid)); - for (j = 0; userid[j]; j++) - lower_userid[j] = TOLOWER(userid[j]); - list_first = RFIFOL(fd,i) + 1; - // here are checks... - if (list_type == 0 || - (list_type == 1 && RFIFOB(fd,i+4) > 0) || - (list_type == 2 && strstr(lower_userid, parameters) != NULL) || - (list_type == 3 && RFIFOL(fd,i+34) != 0) || - (list_type == 4 && RFIFOL(fd,i+34) == 0)) { - ShowMessage("%10d ", (int)RFIFOL(fd,i)); - if (RFIFOB(fd,i+4) == 0) - ShowMessage(" "); - else - ShowMessage("%2d ", (int)RFIFOB(fd,i+4)); - ShowMessage("%-24s", userid); - if (RFIFOB(fd,i+29) == 0) - ShowMessage("%-5s ", "Femal"); - else if (RFIFOB(fd,i+29) == 1) - ShowMessage("%-5s ", "Male"); - else - ShowMessage("%-5s ", "Servr"); - ShowMessage("%6d ", (int)RFIFOL(fd,i+30)); - switch(RFIFOL(fd,i+34)) { - case 0: - ShowMessage("%-27s\n", "Account OK"); - break; - case 1: - ShowMessage("%-27s\n", "Unregistered ID"); - break; - case 2: - ShowMessage("%-27s\n", "Incorrect Password"); - break; - case 3: - ShowMessage("%-27s\n", "This ID is expired"); - break; - case 4: - ShowMessage("%-27s\n", "Rejected from Server"); - break; - case 5: - ShowMessage("%-27s\n", "Blocked by the GM Team"); // You have been blocked by the GM Team - break; - case 6: - ShowMessage("%-27s\n", "Your EXE file is too old"); // Your Game's EXE file is not the latest version - break; - case 7: - ShowMessage("%-27s\n", "Banishement or"); - ShowMessage(" Prohibited to login until...\n"); // You are Prohibited to log in until %s - break; - case 8: - ShowMessage("%-27s\n", "Server is over populated"); - break; - case 9: - ShowMessage("%-27s\n", "No MSG"); - break; - default: // 100 - ShowMessage("%-27s\n", "This ID is totally erased"); // This ID has been totally erased - break; - } - list_count++; - } - } - // asking of the following acounts - ladmin_log("Request to login-server to obtain the list of accounts from %d to %d (complement).\n", list_first, list_last); - WFIFOW(login_fd,0) = 0x7920; - WFIFOL(login_fd,2) = list_first; - WFIFOL(login_fd,6) = list_last; - WFIFOSET(login_fd,10); - bytes_to_read = 1; - } - RFIFOSKIP(fd,RFIFOW(fd,2)); - break; - - case 0x7931: // Answer of login-server about an account creation - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id != -1) { - ShowMessage("Account [%s] creation failed. Return code %d.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s] creation failed. Return code %d.\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Account [%s] is successfully created.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] is successfully created.\n", RFIFOP(fd,6)); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7933: // Answer of login-server about an account deletion - if (RFIFOREST(fd) < 30) - return 0; - if (RFIFOL(fd,2) == -1) { - ShowMessage("Account [%s] deletion failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] deletion failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] is successfully DELETED.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - ladmin_log("Account [%s][id: %d] is successfully DELETED.\n", RFIFOP(fd,6), RFIFOL(fd,2)); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7935: // answer of the change of an account password - if (RFIFOREST(fd) < 30) - return 0; - if (RFIFOL(fd,2) == -1) { - ShowMessage("Account [%s] password changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account password changing failed. The compte [%s] doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] password successfully changed.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - ladmin_log("Account [%s][id: %d] password successfully changed.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7937: // answer of the change of an account state - if (RFIFOREST(fd) < 34) - return 0; - if (RFIFOL(fd,2) == -1) { - ShowMessage("Account [%s] state changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] state changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - char tmpstr[256]; - sprintf(tmpstr, "Account [%s] state successfully changed in [", RFIFOP(fd,6)); - switch(RFIFOL(fd,30)) { - case 0: - strcat(tmpstr, "0: Account OK"); - case 1: - strcat(tmpstr, "1: Unregistered ID"); - break; - case 2: - strcat(tmpstr, "2: Incorrect Password"); - break; - case 3: - strcat(tmpstr, "3: This ID is expired"); - break; - case 4: - strcat(tmpstr, "4: Rejected from Server"); - break; - case 5: - strcat(tmpstr, "5: You have been blocked by the GM Team"); - break; - case 6: - strcat(tmpstr, "6: [Your Game's EXE file is not the latest version"); - break; - case 7: - strcat(tmpstr, "7: You are Prohibited to log in until..."); - break; - case 8: - strcat(tmpstr, "8: Server is jammed due to over populated"); - break; - case 9: - strcat(tmpstr, "9: No MSG"); - break; - default: // 100 - strcat(tmpstr, "100: This ID is totally erased"); - break; - } - strcat(tmpstr, "]"); - ShowMessage("%s\n", tmpstr); - ladmin_log("%s\n", tmpstr); - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x7939: // answer of the number of online players - if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) - return 0; - { - // Get length of the received packet - int i; - char name[20]; - ladmin_log(" Receiving of the number of online players.\n"); - // Read information of the servers - if (RFIFOW(fd,2) < 5) { - ShowMessage(" No server is connected to the login-server.\n"); - } else { - ShowMessage(" Number of online players (server: number).\n"); - // Displaying of result - for(i = 4; i < RFIFOW(fd,2); i += 32) { - memcpy(name, RFIFOP(fd,i+6), sizeof(name)); - name[sizeof(name) - 1] = '\0'; - ShowMessage(" %-20s : %5d\n", name, RFIFOW(fd,i+26)); - } - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,RFIFOW(fd,2)); - break; - - case 0x793b: // answer of the check of a password - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("The account [%s] doesn't exist or the password is incorrect.\n", RFIFOP(fd,6)); - ladmin_log("The account [%s] doesn't exist or the password is incorrect.\n", RFIFOP(fd,6)); - } else { - ShowMessage("The proposed password is correct for the account [%s][id: %d].\n", RFIFOP(fd,6), id); - ladmin_log("The proposed password is correct for the account [%s][id: %d].\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x793d: // answer of the change of an account sex - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] sex changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist or the sex is already the good sex.\n", RFIFOP(fd,6)); - ladmin_log("Account sex changing failed. The compte [%s] doesn't exist or the sex is already the good sex.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] sex successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] sex successfully changed.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x793f: // answer of the change of an account GM level - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] GM level changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist, the GM level is already the good GM level\n", RFIFOP(fd,6)); - ShowMessage("or it's impossible to modify the GM accounts file.\n"); - ladmin_log("Account GM level changing failed. The compte [%s] doesn't exist, the GM level is already the good sex or it's impossible to modify the GM accounts file.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] GM level successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] GM level successfully changed.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7941: // answer of the change of an account email - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] e-mail changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account e-mail changing failed. The compte [%s] doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] e-mail successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] e-mail successfully changed.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7943: // answer of the change of an account memo - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] memo changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] memo changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] memo successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] memo successfully changed.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7945: // answer of an account id search - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Unable to find the account [%s] id. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Unable to find the account [%s] id. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("The account [%s] have the id: %d.\n", RFIFOP(fd,6), id); - ladmin_log("The account [%s] have the id: %d.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7947: // answer of an account name search - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (strcmp((const char*)RFIFOP(fd,6), "") == 0) { - ShowMessage("Unable to find the account [%d] name. Account doesn't exist.\n", id); - ladmin_log("Unable to find the account [%d] name. Account doesn't exist.\n", id); - } else { - ShowMessage("The account [id: %d] have the name: %s.\n", id, RFIFOP(fd,6)); - ladmin_log("The account [id: %d] have the name: %s.\n", id, RFIFOP(fd,6)); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7949: // answer of an account validity limit set - if (RFIFOREST(fd) < 34) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - time_t timestamp = RFIFOL(fd,30); - if (timestamp == 0) { - ShowMessage("Validity Limit of the account [%s][id: %d] successfully changed to [unlimited].\n", RFIFOP(fd,6), id); - ladmin_log("Validity Limit of the account [%s][id: %d] successfully changed to [unlimited].\n", RFIFOP(fd,6), id); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(×tamp)); - ShowMessage("Validity Limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Validity Limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x794b: // answer of an account ban set - if (RFIFOREST(fd) < 34) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - time_t timestamp = RFIFOL(fd,30); - if (timestamp == 0) { - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(×tamp)); - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x794d: // answer of an account ban date/time changing - if (RFIFOREST(fd) < 34) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - time_t timestamp = RFIFOL(fd,30); - if (timestamp == 0) { - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(×tamp)); - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x794f: // answer of a broadcast - if (RFIFOREST(fd) < 4) - return 0; - if (RFIFOW(fd,2) == (unsigned short)-1) { - ShowMessage("Message sending failed. No online char-server.\n"); - ladmin_log("Message sending failed. No online char-server.\n"); - } else { - ShowMessage("Message successfully sended to login-server.\n"); - ladmin_log("Message successfully sended to login-server.\n"); - } - bytes_to_read = 0; - RFIFOSKIP(fd,4); - break; - - case 0x7951: // answer of an account validity limit changing - if (RFIFOREST(fd) < 34) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - time_t timestamp = RFIFOL(fd,30); - if (timestamp == 0) { - ShowMessage("Validity limit of the account [%s][id: %d] unchanged.\n", RFIFOP(fd,6), id); - ShowMessage("The account have an unlimited validity limit or\n"); - ShowMessage("the changing is impossible with the proposed adjustments.\n"); - ladmin_log("Validity limit of the account [%s][id: %d] unchanged. The account have an unlimited validity limit or the changing is impossible with the proposed adjustments.\n", RFIFOP(fd,6), id); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(×tamp)); - ShowMessage("Validity limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Validity limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x7953: // answer of a request about informations of an account (by account name/id) - if (RFIFOREST(fd) < 150 || RFIFOREST(fd) < (size_t)(150 + RFIFOW(fd,148))) - return 0; - { - char userid[24], error_message[20], lastlogin[24], last_ip[16], email[40], memo[255]; - time_t unban_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban) - time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) - safestrncpy(userid, (char*)RFIFOP(fd,7), sizeof(userid)); - safestrncpy(error_message, (char*)RFIFOP(fd,40), sizeof(error_message)); - safestrncpy(lastlogin, (char*)RFIFOP(fd,60), sizeof(lastlogin)); - safestrncpy(last_ip, (char*)RFIFOP(fd,84), sizeof(last_ip)); - safestrncpy(email, (char*)RFIFOP(fd,100), sizeof(email)); - expiration_time = (time_t)RFIFOL(fd,140); - unban_time = (time_t)RFIFOL(fd,144); - memset(memo, '\0', sizeof(memo)); - safestrncpy(memo, (const char*)RFIFOP(fd,150), RFIFOW(fd,148)); - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Unabled to find the account [%s]. Account doesn't exist.\n", parameters); - ladmin_log("Unabled to find the account [%s]. Account doesn't exist.\n", parameters); - } else if (strlen(userid) == 0) { - ShowMessage("Unabled to find the account [id: %s]. Account doesn't exist.\n", parameters); - ladmin_log("Unabled to find the account [id: %s]. Account doesn't exist.\n", parameters); - } else { - ladmin_log("Receiving information about an account.\n"); - ShowMessage("The account is set with:\n"); - if (RFIFOB(fd,6) == 0) { - ShowMessage(" Id: %d (non-GM)\n", id); - } else { - ShowMessage(" Id: %d (GM level %d)\n", id, (int)RFIFOB(fd,6)); - } - ShowMessage(" Name: '%s'\n", userid); - if (RFIFOB(fd,31) == 0) - ShowMessage(" Sex: Female\n"); - else if (RFIFOB(fd,31) == 1) - ShowMessage(" Sex: Male\n"); - else - ShowMessage(" Sex: Server\n"); - ShowMessage(" E-mail: %s\n", email); - switch(RFIFOL(fd,36)) { - case 0: ShowMessage(" State: 0 [Account OK]\n"); break; - case 1: ShowMessage(" State: 1 [Unregistered ID]\n"); break; - case 2: ShowMessage(" State: 2 [Incorrect Password]\n"); break; - case 3: ShowMessage(" State: 3 [This ID is expired]\n"); break; - case 4: ShowMessage(" State: 4 [Rejected from Server]\n"); break; - case 5: ShowMessage(" State: 5 [You have been blocked by the GM Team]\n"); break; - case 6: ShowMessage(" State: 6 [Your Game's EXE file is not the latest version]\n"); break; - case 7: ShowMessage(" State: 7 [You are Prohibited to log in until %s]\n", error_message); break; - case 8: ShowMessage(" State: 8 [Server is jammed due to over populated]\n"); break; - case 9: ShowMessage(" State: 9 [No MSG]\n"); break; - default: // 100 - ShowMessage(" State: %d [This ID is totally erased]\n", (int)RFIFOL(fd,36)); - break; - } - if (unban_time == 0) { - ShowMessage(" Banishment: not banished.\n"); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(&unban_time)); - ShowMessage(" Banishment: until %s.\n", tmpstr); - } - if (RFIFOL(fd,32) > 1) - ShowMessage(" Count: %d connections.\n", (int)RFIFOL(fd,32)); - else - ShowMessage(" Count: %d connection.\n", (int)RFIFOL(fd,32)); - ShowMessage(" Last connection at: %s (ip: %s)\n", lastlogin, last_ip); - if (expiration_time == 0) { - ShowMessage(" Validity limit: unlimited.\n"); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(&expiration_time)); - ShowMessage(" Validity limit: until %s.\n", tmpstr); - } - ShowMessage(" Memo: '%s'\n", memo); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,150 + RFIFOW(fd,148)); - break; - - default: - ShowMessage("Remote administration has been disconnected (unknown packet).\n"); - ladmin_log("'End of connection, unknown packet.\n"); - set_eof(fd); - return 0; - } - } - - // if we don't wait new packets, do the prompt - prompt(); - - return 0; -} - -//------------------------------------ -// Function to connect to login-server -//------------------------------------ -int Connect_login_server(void) -{ - ShowMessage("Attempt to connect to login-server...\n"); - ladmin_log("Attempt to connect to login-server...\n"); - - login_fd = make_connection(login_ip, loginserverport); - if (login_fd == -1) - { //Might not be the most elegant way to handle this, but I've never used ladmin so I dunno what else you could do. [Skotlex] - ShowMessage("Error: Failed to connect to Login Server\n"); - exit(EXIT_FAILURE); - } - session[login_fd]->flag.server = 1; - if (passenc == 0) { - WFIFOHEAD(login_fd,28); - WFIFOW(login_fd,0) = 0x7918; // Request for administation login - WFIFOW(login_fd,2) = 0; // no encrypted - memcpy(WFIFOP(login_fd,4), loginserveradminpassword, 24); - WFIFOSET(login_fd,28); - bytes_to_read = 1; - ShowMessage("Sending of the password...\n"); - ladmin_log("Sending of the password...\n"); - } else { - WFIFOHEAD(login_fd,2); - WFIFOW(login_fd,0) = 0x791a; // Sending request about the coding key - WFIFOSET(login_fd,2); - bytes_to_read = 1; - ShowMessage("Request about the MD5 key...\n"); - ladmin_log("Request about the MD5 key...\n"); - } - - return 0; -} - -// sends a ping packet to login server (will receive pong 0x2718) -int ping_login_server(int tid, unsigned int tick, int id, intptr data) -{ - if (login_fd > 0 && session[login_fd] != NULL) - { - WFIFOHEAD(login_fd,2); - WFIFOW(login_fd,0) = 0x2719; - WFIFOSET(login_fd,2); - } - return 0; -} - -//----------------------------------- -// Reading general configuration file -//----------------------------------- -int ladmin_config_read(const char *cfgName) -{ - char line[1024], w1[1024], w2[1024]; - FILE *fp; - - fp = fopen(cfgName, "r"); - if (fp == NULL) { - ShowMessage("\033[0mConfiguration file (%s) not found.\n", cfgName); - return 1; - } - - ShowMessage("\033[0m---Start reading of Ladmin configuration file (%s)\n", cfgName); - while(fgets(line, sizeof(line), fp)) - { - if (line[0] == '/' && line[1] == '/') - continue; - - if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) == 2) { - remove_control_chars(w1); - remove_control_chars(w2); - - if(strcmpi(w1,"login_ip")==0) { - uint32 ipl = host2ip(w2); - if (ipl != 0) { - ip2str(ipl, loginserverip); - ShowMessage("Login server IP address: %s -> %s\n", w2, loginserverip); - } else - memcpy(loginserverip, w2, 16); - } else if (strcmpi(w1, "login_port") == 0) { - loginserverport = atoi(w2); - } else if (strcmpi(w1, "admin_pass") == 0) { - strncpy(loginserveradminpassword, w2, sizeof(loginserveradminpassword)); - loginserveradminpassword[sizeof(loginserveradminpassword)-1] = '\0'; - } else if (strcmpi(w1, "passenc") == 0) { - passenc = atoi(w2); - if (passenc < 0 || passenc > 2) - passenc = 0; - } else if (strcmpi(w1, "ladmin_log_filename") == 0) { - strncpy(ladmin_log_filename, w2, sizeof(ladmin_log_filename)); - ladmin_log_filename[sizeof(ladmin_log_filename)-1] = '\0'; - } else if (strcmpi(w1, "date_format") == 0) { - strncpy(date_format, w2, sizeof(date_format)); - } else if(strcmpi(w1,"stdout_with_ansisequence") == 0) { - stdout_with_ansisequence = config_switch(w2); - } else if (strcmpi(w1, "import") == 0) { - ladmin_config_read(w2); - } - } - } - fclose(fp); - - login_ip = str2ip(loginserverip); - - ShowMessage("---End reading of Ladmin configuration file.\n"); - - return 0; -} - -//------------------------------ -// Function called when the server -// has received a crash signal. -//------------------------------ -void do_abort(void) -{ -} - -//-------------------------------------- -// Function called at exit of the server -//-------------------------------------- -void do_final(void) -{ - if (already_exit_function == 0) { - - ShowMessage("\033[0m----End of Ladmin (normal end with closing of all files).\n"); - ladmin_log("----End of Ladmin (normal end with closing of all files).\n"); - - already_exit_function = 1; - do_close(login_fd); - } -} - -//------------------------ -// Main function of ladmin -//------------------------ -int do_init(int argc, char **argv) -{ - int next; - socket_init(); - - // read ladmin configuration - ladmin_config_read((argc > 1) ? argv[1] : LADMIN_CONF_NAME); - - ladmin_log(""); - ladmin_log("Configuration file readed.\n"); - - srand(time(NULL)); - - set_defaultparse(parse_fromlogin); - - ShowMessage("EAthena login-server administration tool.\n"); - ShowMessage("(for eAthena version %d.%d.%d.)\n", ATHENA_MAJOR_VERSION, ATHENA_MINOR_VERSION, ATHENA_REVISION); - - ladmin_log("Ladmin is ready.\n"); - ShowMessage("Ladmin is \033[1;32mready\033[0m.\n\n"); - - Connect_login_server(); - - // keep the char-login connection alive - add_timer_func_list(ping_login_server, "ping_login_server"); - add_timer_interval(gettick() + 1000, ping_login_server, 0, 0, ((int)stall_time-2) * 1000); - - // minimalist core doesn't have sockets parsing, - // so we have to do this ourselves - while (runflag) { - next = do_timer(gettick_nocache()); - do_sockets(next); - } - - return 0; -} diff --git a/src/ladmin/ladmin.h b/src/ladmin/ladmin.h deleted file mode 100644 index 824407af7..000000000 --- a/src/ladmin/ladmin.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#ifndef _LADMIN_H_ -#define _LADMIN_H_ - -#define LADMIN_CONF_NAME "conf/ladmin_athena.conf" - -#endif /* _LADMIN_H_ */ diff --git a/src/login/Makefile.in b/src/login/Makefile.in index 611ca385b..c153d95b3 100644 --- a/src/login/Makefile.in +++ b/src/login/Makefile.in @@ -13,7 +13,7 @@ COMMON_H = ../common/core.h ../common/socket.h ../common/timer.h ../common/mmo.h COMMON_SQL_OBJ = ../common/obj_sql/sql.o COMMON_SQL_H = ../common/sql.h -LOGIN_OBJ = login.o admin.o +LOGIN_OBJ = login.o LOGIN_TXT_OBJ = $(LOGIN_OBJ:%=obj_txt/%) \ obj_txt/account_txt.o obj_txt/ipban_txt.o obj_txt/loginlog_txt.o LOGIN_SQL_OBJ = $(LOGIN_OBJ:%=obj_sql/%) \ diff --git a/src/login/admin.c b/src/login/admin.c deleted file mode 100644 index 1e2e851ac..000000000 --- a/src/login/admin.c +++ /dev/null @@ -1,857 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#include "../common/cbasetypes.h" -#include "../common/mmo.h" -#include "../common/core.h" -#include "../common/socket.h" -#include "../common/db.h" -#include "../common/timer.h" -#include "../common/malloc.h" -#include "../common/strlib.h" -#include "../common/showmsg.h" -#include "../common/version.h" -#include "../common/md5calc.h" -#include "../common/lock.h" -#include "account.h" -#include "login.h" - -#include -#include -#include -#include // for stat/lstat/fstat - -extern AccountDB* accounts; - -int charif_sendallwos(int sfd, unsigned char *buf, unsigned int len); -bool check_password(const char* md5key, int passwdenc, const char* passwd, const char* refpass); -int mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip); -int parse_admin(int fd); - - -bool ladmin_auth(struct login_session_data* sd, const char* ip) -{ - bool result = false; - - if( str2ip(ip) != host2ip(login_config.admin_allowed_host) ) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - IP isn't authorised (ip: %s).\n", ip); - else - if( !login_config.admin_state ) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - remote administration is disabled (ip: %s)\n", ip); - else - if( !check_password(sd->md5key, sd->passwdenc, sd->passwd, login_config.admin_pass) ) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - invalid password (ip: %s)\n", ip); - else - { - ShowNotice("'ladmin'-login: Connection in administration mode accepted (ip: %s)\n", ip); - session[sd->fd]->func_parse = parse_admin; - result = true; - } - - return result; -} - -//--------------------------------------- -// Packet parsing for administation login -// -// List of supported operations: -// 0x7530 - request server version (response: 0x7531) -// 0x7938 - request server list (response: 0x7939) -// 0x7920 - request entire list of accounts (response: 0x7921) -// 0x794e - request message broadcast (response: 0x794f + 0x2726) - -// 0x7930 - request account creation (response: 0x7931) -// 0x7932 - request account deletion (response: 0x7933 + 0x2730) - -// 0x7934 - request account password modification (response: 0x7935) -// 0x7936 - request account state modification (response: 0x7937 + 0x2731) -// 0x793a - request password check (response: 0x793b) -// 0x793c - request account sex modification (response: 0x793d + 0x2723) -// 0x793e - request account gm-level modification (response: 0x793f) -// 0x7940 - request account email modification (response: 0x7941) -// 0x7942 - request account memo modification (response: 0x7943) -// 0x7948 - request account expiration-time modification - absolute (response: 0x7949) -// 0x7950 - request account expiration-time modification - relative (response: 0x7951) -// 0x794a - request account unban-time modification - absolute (response: 0x794b + 0x2731) -// 0x794c - request account unban-time modification - relative (response: 0x794d + 0x2731) - -// 0x7944 - request account id lookup by name (response: 0x7945) -// 0x7946 - request account name lookup by id (response: 0x7947) -// 0x7952 - request account information lookup by name (response: 0x7953) -// 0x7954 - request account information lookup by id (response: 0x7953) -//--------------------------------------- -int parse_admin(int fd) -{ - char* account_name; - - uint32 ipl = session[fd]->client_addr; - char ip[16]; - ip2str(ipl, ip); - - if( session[fd]->flag.eof ) - { - do_close(fd); - ShowInfo("Remote administration has disconnected (session #%d).\n", fd); - return 0; - } - - while( RFIFOREST(fd) >= 2 ) - { - uint16 command = RFIFOW(fd,0); - - switch( command ) - { - - case 0x7530: // Request of the server version - ShowStatus("'ladmin': Sending of the server version (ip: %s)\n", ip); - WFIFOHEAD(fd,10); - WFIFOW(fd,0) = 0x7531; - WFIFOB(fd,2) = ATHENA_MAJOR_VERSION; - WFIFOB(fd,3) = ATHENA_MINOR_VERSION; - WFIFOB(fd,4) = ATHENA_REVISION; - WFIFOB(fd,5) = ATHENA_RELEASE_FLAG; - WFIFOB(fd,6) = ATHENA_OFFICIAL_FLAG; - WFIFOB(fd,7) = ATHENA_SERVER_LOGIN; - WFIFOW(fd,8) = ATHENA_MOD_VERSION; - WFIFOSET(fd,10); - RFIFOSKIP(fd,2); - break; -/* - case 0x7920: // Request of an accounts list - if (RFIFOREST(fd) < 10) - return 0; - { - int st, ed; - uint16 len; - CREATE_BUFFER(id, int, auth_num); - st = RFIFOL(fd,2); - ed = RFIFOL(fd,6); - RFIFOSKIP(fd,10); - WFIFOW(fd,0) = 0x7921; - if (st < 0) - st = 0; - if (ed > END_ACCOUNT_NUM || ed < st || ed <= 0) - ed = END_ACCOUNT_NUM; - ShowStatus("'ladmin': Sending an accounts list (ask: from %d to %d, ip: %s)\n", st, ed, ip); - // Sort before send - for(i = 0; i < auth_num; i++) { - unsigned int k; - id[i] = i; - for(j = 0; j < i; j++) { - if (auth_dat[id[i]].account_id < auth_dat[id[j]].account_id) { - for(k = i; k > j; k--) { - id[k] = id[k-1]; - } - id[j] = i; // id[i] - break; - } - } - } - // Sending accounts information - len = 4; - for(i = 0; i < auth_num && len < 30000; i++) { - int account_id = auth_dat[id[i]].account_id; // use sorted index - if (account_id >= st && account_id <= ed) { - j = id[i]; - WFIFOL(fd,len) = account_id; - WFIFOB(fd,len+4) = (unsigned char)isGM(account_id); - memcpy(WFIFOP(fd,len+5), auth_dat[j].userid, 24); - WFIFOB(fd,len+29) = auth_dat[j].sex; - WFIFOL(fd,len+30) = auth_dat[j].logincount; - if (auth_dat[j].state == 0 && auth_dat[j].unban_time != 0) // if no state and banished - WFIFOL(fd,len+34) = 7; // 6 = Your are Prohibited to log in until %s - else - WFIFOL(fd,len+34) = auth_dat[j].state; - len += 38; - } - } - WFIFOW(fd,2) = len; - WFIFOSET(fd,len); - //if (id) free(id); - DELETE_BUFFER(id); - } - break; -*/ - case 0x7930: // Request for an account creation - if (RFIFOREST(fd) < 91) - return 0; - { - struct mmo_account ma; - safestrncpy(ma.userid, (char*)RFIFOP(fd, 2), sizeof(ma.userid)); - safestrncpy(ma.pass, (char*)RFIFOP(fd,26), sizeof(ma.pass)); - ma.sex = RFIFOB(fd,50); - safestrncpy(ma.email, (char*)RFIFOP(fd,51), sizeof(ma.email)); - safestrncpy(ma.lastlogin, "-", sizeof(ma.lastlogin)); - - ShowNotice("'ladmin': Account creation request (account: %s pass: %s, sex: %c, email: %s, ip: %s)\n", ma.userid, ma.pass, ma.sex, ma.email, ip); - - WFIFOW(fd,0) = 0x7931; - WFIFOL(fd,2) = mmo_auth_new(ma.userid, ma.pass, ma.sex, ip); - safestrncpy((char*)WFIFOP(fd,6), ma.userid, 24); - WFIFOSET(fd,30); - } - RFIFOSKIP(fd,91); - break; -/* - case 0x7932: // Request for an account deletion - if (RFIFOREST(fd) < 26) - return 0; - { - struct mmo_account acc; - - char* account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - - WFIFOW(fd,0) = 0x7933; - - if( accounts->load_str(accounts, &acc, account_name) ) - { - // Char-server is notified of deletion (for characters deletion). - unsigned char buf[65535]; - WBUFW(buf,0) = 0x2730; - WBUFL(buf,2) = acc.account_id; - charif_sendallwos(-1, buf, 6); - - // send answer - memcpy(WFIFOP(fd,6), acc.userid, 24); - WFIFOL(fd,2) = acc.account_id; - - // delete account - memset(acc.userid, '\0', sizeof(acc.userid)); - auth_dat[i].account_id = -1; - mmo_auth_sync(); - } else { - WFIFOL(fd,2) = -1; - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to delete an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - WFIFOSET(fd,30); - } - RFIFOSKIP(fd,26); - break; -*/ - case 0x7934: // Request to change a password - if (RFIFOREST(fd) < 50) - return 0; - { - struct mmo_account acc; - - char* account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - - WFIFOW(fd,0) = 0x7935; - - if( accounts->load_str(accounts, &acc, account_name) ) - { - WFIFOL(fd,2) = acc.account_id; - safestrncpy((char*)WFIFOP(fd,6), acc.userid, 24); - safestrncpy(acc.pass, (char*)RFIFOP(fd,26), 24); - ShowNotice("'ladmin': Modification of a password (account: %s, new password: %s, ip: %s)\n", acc.userid, acc.pass, ip); - - accounts->save(accounts, &acc); - } - else - { - WFIFOL(fd,2) = -1; - safestrncpy((char*)WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to modify the password of an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - - WFIFOSET(fd,30); - } - RFIFOSKIP(fd,50); - break; - - case 0x7936: // Request to modify a state - if (RFIFOREST(fd) < 50) - return 0; - { - struct mmo_account acc; - - char* account_name = (char*)RFIFOP(fd,2); - uint32 state = RFIFOL(fd,26); - account_name[23] = '\0'; - - WFIFOW(fd,0) = 0x7937; - - if( accounts->load_str(accounts, &acc, account_name) ) - { - memcpy(WFIFOP(fd,6), acc.userid, 24); - WFIFOL(fd,2) = acc.account_id; - - if (acc.state == state) - ShowNotice("'ladmin': Modification of a state, but the state of the account already has this value (account: %s, received state: %d, ip: %s)\n", account_name, state, ip); - else - { - ShowNotice("'ladmin': Modification of a state (account: %s, new state: %d, ip: %s)\n", acc.userid, state, ip); - - if (acc.state == 0) { - unsigned char buf[16]; - WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = acc.account_id; - WBUFB(buf,6) = 0; // 0: change of statut, 1: ban - WBUFL(buf,7) = state; // status or final date of a banishment - charif_sendallwos(-1, buf, 11); - } - acc.state = state; - accounts->save(accounts, &acc); - } - } - else - { - ShowNotice("'ladmin': Attempt to modify the state of an unknown account (account: %s, received state: %d, ip: %s)\n", account_name, state, ip); - WFIFOL(fd,2) = -1; - memcpy(WFIFOP(fd,6), account_name, 24); - } - - WFIFOL(fd,30) = state; - WFIFOSET(fd,34); - } - RFIFOSKIP(fd,50); - break; -/* - case 0x7938: // Request for servers list and # of online players - { - uint8 server_num = 0; - ShowStatus("'ladmin': Sending of servers list (ip: %s)\n", ip); - for(i = 0; i < MAX_SERVERS; i++) { - if (server[i].fd >= 0) { - WFIFOL(fd,4+server_num*32) = htonl(server[i].ip); - WFIFOW(fd,4+server_num*32+4) = htons(server[i].port); - memcpy(WFIFOP(fd,4+server_num*32+6), server[i].name, 20); - WFIFOW(fd,4+server_num*32+26) = server[i].users; - WFIFOW(fd,4+server_num*32+28) = server[i].maintenance; - WFIFOW(fd,4+server_num*32+30) = server[i].new_; - server_num++; - } - } - WFIFOW(fd,0) = 0x7939; - WFIFOW(fd,2) = 4 + 32 * server_num; - WFIFOSET(fd,4+32*server_num); - RFIFOSKIP(fd,2); - break; - } - - case 0x793a: // Request to password check - if (RFIFOREST(fd) < 50) - return 0; - WFIFOW(fd,0) = 0x793b; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - if( accounts->load_str(accounts, &acc, account_name) ) - { - char pass[25]; - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - memcpy(pass, RFIFOP(fd,26), 24); - pass[24] = '\0'; - remove_control_chars(pass); - if (strcmp(acc.pass, pass) == 0) { - WFIFOL(fd,2) = acc.account_id; - ShowNotice("'ladmin': Check of password OK (account: %s, password: %s, ip: %s)\n", acc.userid, acc.pass, ip); - } else { - ShowNotice("'ladmin': Failure of password check (account: %s, proposed pass: %s, ip: %s)\n", acc.userid, pass, ip); - } - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to check the password of an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,50); - break; - - case 0x793c: // Request to modify sex - if (RFIFOREST(fd) < 27) - return 0; - WFIFOW(fd,0) = 0x793d; - WFIFOL(fd,2) = 0xFFFFFFFF; // -1 - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - memcpy(WFIFOP(fd,6), account_name, 24); - { - char sex; - sex = RFIFOB(fd,26); - if (sex != 'F' && sex != 'M') { - if (sex > 31) - ShowNotice("'ladmin': Attempt to give an invalid sex (account: %s, received sex: %c, ip: %s)\n", account_name, sex, ip); - else - ShowNotice("'ladmin': Attempt to give an invalid sex (account: %s, received sex: 'control char', ip: %s)\n", account_name, ip); - } else { - if( accounts->load_str(accounts, &acc, account_name) ) - { - memcpy(WFIFOP(fd,6), acc.userid, 24); - if (acc.sex != sex) - { - unsigned char buf[16]; - ShowNotice("'ladmin': Modification of a sex (account: %s, new sex: %c, ip: %s)\n", acc.userid, sex, ip); - - WFIFOL(fd,2) = acc.account_id; - acc.sex = sex; - accounts->save(accounts, &acc); - - // send to all char-server the change - WBUFW(buf,0) = 0x2723; - WBUFL(buf,2) = acc.account_id; - WBUFB(buf,6) = acc.sex; - charif_sendallwos(-1, buf, 7); - } else { - ShowNotice("'ladmin': Modification of a sex, but the sex is already the good sex (account: %s, sex: %c, ip: %s)\n", acc.userid, sex, ip); - } - } else { - ShowNotice("'ladmin': Attempt to modify the sex of an unknown account (account: %s, received sex: %c, ip: %s)\n", account_name, sex, ip); - } - } - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,27); - break; - - case 0x793e: // Request to modify GM level - if (RFIFOREST(fd) < 27) - return 0; - WFIFOW(fd,0) = 0x793f; - WFIFOL(fd,2) = 0xFFFFFFFF; // -1 - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - memcpy(WFIFOP(fd,6), account_name, 24); - { - char new_gm_level; - new_gm_level = RFIFOB(fd,26); - if( new_gm_level < 0 || new_gm_level > 99 ) - ShowNotice("'ladmin': Attempt to give an invalid GM level (account: %s, received GM level: %d, ip: %s)\n", account_name, (int)new_gm_level, ip); - else - if( !accounts->load_str(accounts, &acc, account_name) ) - ShowNotice("'ladmin': Attempt to modify the GM level of an unknown account (account: %s, received GM level: %d, ip: %s)\n", account_name, (int)new_gm_level, ip); - else - { - memcpy(WFIFOP(fd,6), acc.userid, 24); - - if (isGM(acc.account_id) == new_gm_level) - ShowNotice("'ladmin': Attempt to modify of a GM level, but the GM level is already the good GM level (account: %s (%d), GM level: %d, ip: %s)\n", acc.userid, acc.account_id, (int)new_gm_level, ip); - else - { - //TODO: change level - } - } - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,27); - break; - - case 0x7940: // Request to modify e-mail - if (RFIFOREST(fd) < 66) - return 0; - WFIFOW(fd,0) = 0x7941; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - memcpy(WFIFOP(fd,6), account_name, 24); - { - char email[40]; - memcpy(email, RFIFOP(fd,26), 40); - if (e_mail_check(email) == 0) { - ShowNotice("'ladmin': Attempt to give an invalid e-mail (account: %s, ip: %s)\n", account_name, ip); - } else { - remove_control_chars(email); - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - memcpy(auth_dat[i].email, email, 40); - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Modification of an email (account: %s, new e-mail: %s, ip: %s)\n", auth_dat[i].userid, email, ip); - mmo_auth_sync(); - } else { - ShowNotice("'ladmin': Attempt to modify the e-mail of an unknown account (account: %s, received e-mail: %s, ip: %s)\n", account_name, email, ip); - } - } - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,66); - break; - - case 0x7942: // Request to modify memo field - if ((int)RFIFOREST(fd) < 28 || (int)RFIFOREST(fd) < (28 + RFIFOW(fd,26))) - return 0; - WFIFOW(fd,0) = 0x7943; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - int size_of_memo = sizeof(auth_dat[i].memo); - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - memset(auth_dat[i].memo, '\0', size_of_memo); - if (RFIFOW(fd,26) == 0) { - strncpy(auth_dat[i].memo, "-", size_of_memo); - } else if (RFIFOW(fd,26) > size_of_memo - 1) { - memcpy(auth_dat[i].memo, RFIFOP(fd,28), size_of_memo - 1); - } else { - memcpy(auth_dat[i].memo, RFIFOP(fd,28), RFIFOW(fd,26)); - } - auth_dat[i].memo[size_of_memo - 1] = '\0'; - remove_control_chars(auth_dat[i].memo); - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Modification of a memo field (account: %s, new memo: %s, ip: %s)\n", auth_dat[i].userid, auth_dat[i].memo, ip); - mmo_auth_sync(); - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to modify the memo field of an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,28 + RFIFOW(fd,26)); - break; - - case 0x7944: // Request to found an account id - if (RFIFOREST(fd) < 26) - return 0; - WFIFOW(fd,0) = 0x7945; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Request (by the name) of an account id (account: %s, id: %d, ip: %s)\n", auth_dat[i].userid, auth_dat[i].account_id, ip); - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': ID request (by the name) of an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,26); - break; - - case 0x7946: // Request to found an account name - if (RFIFOREST(fd) < 6) - return 0; - WFIFOW(fd,0) = 0x7947; - WFIFOL(fd,2) = RFIFOL(fd,2); - memset(WFIFOP(fd,6), '\0', 24); - for(i = 0; i < auth_num; i++) { - if (auth_dat[i].account_id == (int)RFIFOL(fd,2)) { - strncpy((char*)WFIFOP(fd,6), auth_dat[i].userid, 24); - ShowNotice("'ladmin': Request (by id) of an account name (account: %s, id: %d, ip: %s)\n", auth_dat[i].userid, RFIFOL(fd,2), ip); - break; - } - } - if (i == auth_num) { - ShowNotice("'ladmin': Name request (by id) of an unknown account (id: %d, ip: %s)\n", RFIFOL(fd,2), ip); - strncpy((char*)WFIFOP(fd,6), "", 24); - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,6); - break; - - case 0x7948: // Request to change the validity limit (timestamp) (absolute value) - if (RFIFOREST(fd) < 30) - return 0; - { - time_t timestamp; - char tmpstr[2048]; - WFIFOW(fd,0) = 0x7949; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - timestamp = (time_t)RFIFOL(fd,26); - strftime(tmpstr, 24, login_config.date_format, localtime(×tamp)); - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - ShowNotice("'ladmin': Change of a validity limit (account: %s, new validity: %d (%s), ip: %s)\n", auth_dat[i].userid, timestamp, (timestamp == 0 ? "unlimited" : tmpstr), ip); - auth_dat[i].expiration_time = timestamp; - WFIFOL(fd,2) = auth_dat[i].account_id; - mmo_auth_sync(); - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to change the validity limit of an unknown account (account: %s, received validity: %d (%s), ip: %s)\n", account_name, timestamp, (timestamp == 0 ? "unlimited" : tmpstr), ip); - } - WFIFOL(fd,30) = (unsigned int)timestamp; - } - WFIFOSET(fd,34); - RFIFOSKIP(fd,30); - break; - - case 0x794a: // Request to change the final date of a banishment (timestamp) (absolute value) - if (RFIFOREST(fd) < 30) - return 0; - { - time_t timestamp; - char tmpstr[2048]; - WFIFOW(fd,0) = 0x794b; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - timestamp = (time_t)RFIFOL(fd,26); - if (timestamp <= time(NULL)) - timestamp = 0; - strftime(tmpstr, 24, login_config.date_format, localtime(×tamp)); - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Change of the final date of a banishment (account: %s, new final date of banishment: %d (%s), ip: %s)\n", auth_dat[i].userid, timestamp, (timestamp == 0 ? "no banishment" : tmpstr), ip); - if (auth_dat[i].unban_time != timestamp) { - if (timestamp != 0) { - unsigned char buf[16]; - WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = auth_dat[i].account_id; - WBUFB(buf,6) = 1; // 0: change of statut, 1: ban - WBUFL(buf,7) = (unsigned int)timestamp; // status or final date of a banishment - charif_sendallwos(-1, buf, 11); - } - auth_dat[i].unban_time = timestamp; - mmo_auth_sync(); - } - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to change the final date of a banishment of an unknown account (account: %s, received final date of banishment: %d (%s), ip: %s)\n", account_name, timestamp, (timestamp == 0 ? "no banishment" : tmpstr), ip); - } - WFIFOL(fd,30) = (unsigned int)timestamp; - } - WFIFOSET(fd,34); - RFIFOSKIP(fd,30); - break; - - case 0x794c: // Request to change the final date of a banishment (timestamp) (relative change) - if (RFIFOREST(fd) < 38) - return 0; - { - time_t timestamp; - struct tm *tmtime; - char tmpstr[2048]; - WFIFOW(fd,0) = 0x794d; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - WFIFOL(fd,2) = auth_dat[i].account_id; - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - if (auth_dat[i].unban_time == 0 || auth_dat[i].unban_time < time(NULL)) - timestamp = time(NULL); - else - timestamp = auth_dat[i].unban_time; - tmtime = localtime(×tamp); - tmtime->tm_year = tmtime->tm_year + (short)RFIFOW(fd,26); - tmtime->tm_mon = tmtime->tm_mon + (short)RFIFOW(fd,28); - tmtime->tm_mday = tmtime->tm_mday + (short)RFIFOW(fd,30); - tmtime->tm_hour = tmtime->tm_hour + (short)RFIFOW(fd,32); - tmtime->tm_min = tmtime->tm_min + (short)RFIFOW(fd,34); - tmtime->tm_sec = tmtime->tm_sec + (short)RFIFOW(fd,36); - timestamp = mktime(tmtime); - if (timestamp != -1) { - if (timestamp <= time(NULL)) - timestamp = 0; - strftime(tmpstr, 24, login_config.date_format, localtime(×tamp)); - ShowNotice("'ladmin': Adjustment of a final date of a banishment (account: %s, (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %d (%s), ip: %s)\n", auth_dat[i].userid, (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), timestamp, (timestamp == 0 ? "no banishment" : tmpstr), ip); - if (auth_dat[i].unban_time != timestamp) { - if (timestamp != 0) { - unsigned char buf[16]; - WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = auth_dat[i].account_id; - WBUFB(buf,6) = 1; // 0: change of statut, 1: ban - WBUFL(buf,7) = (unsigned int)timestamp; // status or final date of a banishment - charif_sendallwos(-1, buf, 11); - } - auth_dat[i].unban_time = timestamp; - mmo_auth_sync(); - } - } else { - strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].unban_time)); - ShowNotice("'ladmin': Impossible to adjust the final date of a banishment (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n", auth_dat[i].userid, auth_dat[i].unban_time, (auth_dat[i].unban_time == 0 ? "no banishment" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), ip); - } - WFIFOL(fd,30) = (unsigned long)auth_dat[i].unban_time; - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to adjust the final date of a banishment of an unknown account (account: %s, ip: %s)\n", account_name, ip); - WFIFOL(fd,30) = 0; - } - } - WFIFOSET(fd,34); - RFIFOSKIP(fd,38); - break; - - case 0x794e: // Request to send a broadcast message - if (RFIFOREST(fd) < 8 || RFIFOREST(fd) < (8 + RFIFOL(fd,4))) - return 0; - WFIFOW(fd,0) = 0x794f; - WFIFOW(fd,2) = 0xFFFF; // WTF??? - if (RFIFOL(fd,4) < 1) { - ShowNotice("'ladmin': Receiving a message for broadcast, but message is void (ip: %s)\n", ip); - } else { - // at least 1 char-server - for(i = 0; i < MAX_SERVERS; i++) - if (server[i].fd >= 0) - break; - if (i == MAX_SERVERS) { - ShowNotice("'ladmin': Receiving a message for broadcast, but no char-server is online (ip: %s)\n", ip); - } else { - unsigned char buf[32000]; - char message[32000]; - WFIFOW(fd,2) = 0; - memset(message, '\0', sizeof(message)); - memcpy(message, RFIFOP(fd,8), RFIFOL(fd,4)); - message[sizeof(message)-1] = '\0'; - remove_control_chars(message); - if (RFIFOW(fd,2) == 0) - ShowNotice("'ladmin': Receiving a message for broadcast (message (in yellow): %s, ip: %s)\n", message, ip); - else - ShowNotice("'ladmin': Receiving a message for broadcast (message (in blue): %s, ip: %s)\n", message, ip); - // send same message to all char-servers (no answer) - memcpy(WBUFP(buf,0), RFIFOP(fd,0), 8 + RFIFOL(fd,4)); - WBUFW(buf,0) = 0x2726; - charif_sendallwos(-1, buf, 8 + RFIFOL(fd,4)); - } - } - WFIFOSET(fd,4); - RFIFOSKIP(fd,8 + RFIFOL(fd,4)); - break; - - case 0x7950: // Request to change the validity limite (timestamp) (relative change) - if (RFIFOREST(fd) < 38) - return 0; - { - time_t timestamp; - struct tm *tmtime; - char tmpstr[2048]; - char tmpstr2[2048]; - WFIFOW(fd,0) = 0x7951; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - WFIFOL(fd,2) = auth_dat[i].account_id; - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - timestamp = auth_dat[i].expiration_time; - if (timestamp == 0 || timestamp < time(NULL)) - timestamp = time(NULL); - tmtime = localtime(×tamp); - tmtime->tm_year = tmtime->tm_year + (short)RFIFOW(fd,26); - tmtime->tm_mon = tmtime->tm_mon + (short)RFIFOW(fd,28); - tmtime->tm_mday = tmtime->tm_mday + (short)RFIFOW(fd,30); - tmtime->tm_hour = tmtime->tm_hour + (short)RFIFOW(fd,32); - tmtime->tm_min = tmtime->tm_min + (short)RFIFOW(fd,34); - tmtime->tm_sec = tmtime->tm_sec + (short)RFIFOW(fd,36); - timestamp = mktime(tmtime); - if (timestamp != -1) { - strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].expiration_time)); - strftime(tmpstr2, 24, login_config.date_format, localtime(×tamp)); - ShowNotice("'ladmin': Adjustment of a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %d (%s), ip: %s)\n", auth_dat[i].userid, auth_dat[i].expiration_time, (auth_dat[i].expiration_time == 0 ? "unlimited" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), timestamp, (timestamp == 0 ? "unlimited" : tmpstr2), ip); - auth_dat[i].expiration_time = timestamp; - mmo_auth_sync(); - WFIFOL(fd,30) = (unsigned long)auth_dat[i].expiration_time; - } else { - strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].expiration_time)); - ShowNotice("'ladmin': Impossible to adjust a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n", auth_dat[i].userid, auth_dat[i].expiration_time, (auth_dat[i].expiration_time == 0 ? "unlimited" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), ip); - WFIFOL(fd,30) = 0; - } - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to adjust the validity limit of an unknown account (account: %s, ip: %s)\n", account_name, ip); - WFIFOL(fd,30) = 0; - } - - WFIFOSET(fd,34); - } - RFIFOSKIP(fd,38); - break; -*/ - case 0x7952: // Request about informations of an account (by account name) - if (RFIFOREST(fd) < 26) - return 0; - { - struct mmo_account acc; - - WFIFOW(fd,0) = 0x7953; - - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - - if( accounts->load_str(accounts, &acc, account_name) ) - { - ShowNotice("'ladmin': Sending information of an account (request by the name; account: %s, id: %d, ip: %s)\n", acc.userid, acc.account_id, ip); - WFIFOL(fd,2) = acc.account_id; - WFIFOB(fd,6) = acc.level; - safestrncpy((char*)WFIFOP(fd,7), acc.userid, 24); - WFIFOB(fd,31) = acc.sex; - WFIFOL(fd,32) = acc.logincount; - WFIFOL(fd,36) = acc.state; - safestrncpy((char*)WFIFOP(fd,40), "-", 20); // error message (removed) - safestrncpy((char*)WFIFOP(fd,60), acc.lastlogin, 24); - safestrncpy((char*)WFIFOP(fd,84), acc.last_ip, 16); - safestrncpy((char*)WFIFOP(fd,100), acc.email, 40); - WFIFOL(fd,140) = (unsigned long)acc.expiration_time; - WFIFOL(fd,144) = (unsigned long)acc.unban_time; - WFIFOW(fd,148) = 0; // previously, this was strlen(memo), and memo went afterwards - } - else - { - ShowNotice("'ladmin': Attempt to obtain information (by the name) of an unknown account (account: %s, ip: %s)\n", account_name, ip); - WFIFOL(fd,2) = -1; - safestrncpy((char*)WFIFOP(fd,7), account_name, 24); // not found - } - - WFIFOSET(fd,150); - } - RFIFOSKIP(fd,26); - break; - - case 0x7954: // Request about information of an account (by account id) - if (RFIFOREST(fd) < 6) - return 0; - { - struct mmo_account acc; - - int account_id = RFIFOL(fd,2); - - WFIFOHEAD(fd,150); - WFIFOW(fd,0) = 0x7953; - WFIFOL(fd,2) = account_id; - - if( accounts->load_num(accounts, &acc, account_id) ) - { - ShowNotice("'ladmin': Sending information of an account (request by the id; account: %s, id: %d, ip: %s)\n", acc.userid, account_id, ip); - WFIFOB(fd,6) = acc.level; - safestrncpy((char*)WFIFOP(fd,7), acc.userid, 24); - WFIFOB(fd,31) = acc.sex; - WFIFOL(fd,32) = acc.logincount; - WFIFOL(fd,36) = acc.state; - safestrncpy((char*)WFIFOP(fd,40), "-", 20); // error message (removed) - safestrncpy((char*)WFIFOP(fd,60), acc.lastlogin, 24); - safestrncpy((char*)WFIFOP(fd,84), acc.last_ip, 16); - safestrncpy((char*)WFIFOP(fd,100), acc.email, 40); - WFIFOL(fd,140) = (unsigned long)acc.expiration_time; - WFIFOL(fd,144) = (unsigned long)acc.unban_time; - WFIFOW(fd,148) = 0; // previously, this was strlen(memo), and memo went afterwards - } - else - { - ShowNotice("'ladmin': Attempt to obtain information (by the id) of an unknown account (id: %d, ip: %s)\n", account_id, ip); - safestrncpy((char*)WFIFOP(fd,7), "", 24); // not found - } - - WFIFOSET(fd,150); - } - RFIFOSKIP(fd,6); - break; - - default: - ShowStatus("'ladmin': End of connection, unknown packet (ip: %s)\n", ip); - set_eof(fd); - return 0; - } - } - - return 0; -} diff --git a/src/login/login.c b/src/login/login.c index 567bbddf3..be6efb137 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -19,7 +19,6 @@ #include #include -bool ladmin_auth(struct login_session_data* sd, const char* ip); struct Login_Config login_config; int login_fd; // login server socket @@ -1224,7 +1223,7 @@ void login_auth_failed(struct login_session_data* sd, int result) //---------------------------------------------------------------------------------------- -// Default packet parsing (normal players or administation/char-server connection requests) +// Default packet parsing (normal players or char-server connection requests) //---------------------------------------------------------------------------------------- int parse_login(int fd) { @@ -1358,7 +1357,6 @@ int parse_login(int fd) break; case 0x01db: // Sending request of the coding key - case 0x791a: // Sending request of the coding key (administration packet) RFIFOSKIP(fd,2); { memset(sd->md5key, '\0', sizeof(sd->md5key)); @@ -1434,45 +1432,6 @@ int parse_login(int fd) } return 0; // processing will continue elsewhere - case 0x7530: // Server version information request - ShowStatus("Sending server version information to ip: %s\n", ip); - RFIFOSKIP(fd,2); - WFIFOHEAD(fd,10); - WFIFOW(fd,0) = 0x7531; - WFIFOB(fd,2) = ATHENA_MAJOR_VERSION; - WFIFOB(fd,3) = ATHENA_MINOR_VERSION; - WFIFOB(fd,4) = ATHENA_REVISION; - WFIFOB(fd,5) = ATHENA_RELEASE_FLAG; - WFIFOB(fd,6) = ATHENA_OFFICIAL_FLAG; - WFIFOB(fd,7) = ATHENA_SERVER_LOGIN; - WFIFOW(fd,8) = ATHENA_MOD_VERSION; - WFIFOSET(fd,10); - break; - - case 0x7918: // Request for administation login - if ((int)RFIFOREST(fd) < 4 || (int)RFIFOREST(fd) < ((RFIFOW(fd,2) == 0) ? 28 : 20)) - return 0; - { - int passwdenc = (int)RFIFOW(fd,2); - const char* passwd = (char*)RFIFOP(fd,4); - - if( passwdenc == 0 ) { // non encrypted password - safestrncpy(sd->passwd, passwd, NAME_LENGTH); - sd->passwdenc = 0; - } else { // encrypted password - memcpy(sd->passwd, passwd, 16); sd->passwd[16] = '\0'; // raw binary data here! - sd->passwdenc = passwdenc; - } - - RFIFOSKIP(fd, (passwdenc == 0) ? 28 : 20); - - WFIFOHEAD(fd,3); - WFIFOW(fd,0) = 0x7919; - WFIFOB(fd,2) = ladmin_auth(sd, ip) ? 0 : 1; - WFIFOSET(fd,3); - } - break; - default: ShowNotice("Abnormal end of connection (ip: %s): Unknown packet 0x%x\n", ip, command); set_eof(fd); @@ -1578,14 +1537,6 @@ int login_config_read(const char* cfgName) login_config.ipban_cleanup_interval = (unsigned int)atoi(w2); else if(!strcmpi(w1, "ip_sync_interval")) login_config.ip_sync_interval = (unsigned int)1000*60*atoi(w2); //w2 comes in minutes. - - else if(!strcmpi(w1, "admin_state")) - login_config.admin_state = (bool)config_switch(w2); - else if(!strcmpi(w1, "admin_pass")) - safestrncpy(login_config.admin_pass, w2, sizeof(login_config.admin_pass)); - else if(!strcmpi(w1, "admin_allowed_host")) - safestrncpy(login_config.admin_allowed_host, w2, sizeof(login_config.admin_pass)); - else if(!strcmpi(w1, "import")) login_config_read(w2); else diff --git a/src/login/login.h b/src/login/login.h index 807caaed6..f338a09e1 100644 --- a/src/login/login.h +++ b/src/login/login.h @@ -60,10 +60,6 @@ struct Login_Config { bool check_client_version; // check the clientversion set in the clientinfo ? uint32 client_version_to_connect; // the client version needed to connect (if checking is enabled) - bool admin_state; // is ladmin support enabled? - char admin_pass[24]; // security password for ladmin - char admin_allowed_host[32]; // host/ip that is allowed to connect as ladmin - bool ipban; // perform IP blocking (via contents of `ipbanlist`) ? bool dynamic_pass_failure_ban; // automatic IP blocking due to failed login attemps ? unsigned int dynamic_pass_failure_ban_interval; // how far to scan the loginlog for password failures diff --git a/src/map/chrif.c b/src/map/chrif.c index 262214ae4..135c464c4 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -38,7 +38,7 @@ static const int packet_len_table[0x3d] = { // U - used, F - free 60, 3,-1,27,10,-1, 6,-1, // 2af8-2aff: U->2af8, U->2af9, U->2afa, U->2afb, U->2afc, U->2afd, U->2afe, U->2aff 6,-1,18, 7,-1,35,30, 0, // 2b00-2b07: U->2b00, U->2b01, U->2b02, U->2b03, U->2b04, U->2b05, U->2b06, F->2b07 6,30, 0, 0,86, 7,44,34, // 2b08-2b0f: U->2b08, U->2b09, F->2b0a, F->2b0b, U->2b0c, U->2b0d, U->2b0e, U->2b0f - 11,10,10, 6,11, 0,266,10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, U->2b13, U->2b14, F->2b15, U->2b16, U->2b17 + 11,10,10, 0,11, 0,266,10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, F->2b13, U->2b14, F->2b15, U->2b16, U->2b17 2,10, 2,-1,-1,-1, 2, 7, // 2b18-2b1f: U->2b18, U->2b19, U->2b1a, U->2b1b, U->2b1c, U->2b1d, U->2b1e, U->2b1f -1,10, 8, 2, 2,14,19,19, // 2b20-2b27: U->2b20, U->2b21, U->2b22, U->2b23, U->2b24, U->2b25, U->2b26, U->2b27 }; @@ -71,7 +71,7 @@ static const int packet_len_table[0x3d] = { // U - used, F - free //2b10: Outgoing, chrif_updatefamelist -> 'Update the fame ranking lists and send them' //2b11: Outgoing, chrif_divorce -> 'tell the charserver to do divorce' //2b12: Incoming, chrif_divorceack -> 'divorce chars -//2b13: Incoming, chrif_accountdeletion -> 'Delete acc XX, if the player is on, kick ....' +//2b13: FREE //2b14: Incoming, chrif_accountban -> 'not sure: kick the player with message XY' //2b15: FREE //2b16: Outgoing, chrif_ragsrvinfo -> 'sends base / job / drop rates ....' @@ -942,32 +942,6 @@ int chrif_deadopt(int father_id, int mother_id, int child_id) return 0; } -/*========================================== - * Disconnection of a player (account has been deleted in login-server) by [Yor] - *------------------------------------------*/ -int chrif_accountdeletion(int fd) -{ - int acc; - struct map_session_data *sd; - - acc = RFIFOL(fd,2); - if (battle_config.etc_log) - ShowNotice("chrif_accountdeletion %d.\n", acc); - sd = map_id2sd(acc); - if (acc > 0) { - if (sd != NULL) { - sd->login_id1++; // change identify, because if player come back in char within the 5 seconds, he can change its characters - clif_displaymessage(sd->fd, "Your account has been deleted (disconnection)..."); - set_eof(sd->fd); // forced to disconnect for the change - map_quit(sd); // Remove leftovers (e.g. autotrading) [Paradox924X] - } - } else { - if (sd != NULL) - ShowError("chrif_accountdeletion failed - player not online.\n"); - } - - return 0; -} /*========================================== * Disconnection of a player (account has been banned of has a status, from login-server) by [Yor] @@ -1426,7 +1400,6 @@ int chrif_parse(int fd) case 0x2b0d: chrif_changedsex(fd); break; case 0x2b0f: chrif_char_ask_name_answer(RFIFOL(fd,2), (char*)RFIFOP(fd,6), RFIFOW(fd,30), RFIFOW(fd,32)); break; case 0x2b12: chrif_divorceack(RFIFOL(fd,2), RFIFOL(fd,6)); break; - case 0x2b13: chrif_accountdeletion(fd); break; case 0x2b14: chrif_accountban(fd); break; case 0x2b1b: chrif_recvfamelist(fd); break; case 0x2b1d: chrif_load_scdata(fd); break; diff --git a/tools/checkversion.pl b/tools/checkversion.pl deleted file mode 100755 index e13b7370c..000000000 --- a/tools/checkversion.pl +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/perl -w - -########################################################################## -# INFORMATION TOOL ABOUT THE SERVERS VERSION OF ATHENA -# -# By connection on a server, this software display the version of the -# designed server. -#------------------------------------------------------------------------- -# Usages: -# ./checkversion.pl IP:port -# ./checkversion.pl IP port -# perl checkversion.pl IP:port -# perl checkversion.pl IP port -# -# note: default port: 6900 -# -# When successfull, the software return the value 0. -# -########################################################################## - -#------------------------- start of configuration ------------------------ - -$connecttimeout = 10; # Connection Timeout (in seconds) - -#-------------------------- End of configuration ------------------------- - -use IO::Socket; - -unless($ARGV[0]) { - print "USAGE: $0 server_ip:port\n"; - exit(1); -} - -$server = $ARGV[0]; -$port = $ARGV[1]; -$port = $1 if ($server =~ s/:(\d+)//); -$port ||= 6900; - -# Connection to the server -my($so,$er) = (); -eval{ - $so = IO::Socket::INET->new( - PeerAddr=> $server, - PeerPort=> $port, - Proto => "tcp", - Timeout => $connecttimeout) or $er = 1; -}; - -if($er || $@) { - print "Can't not connect to server [$server:$port] !\n"; - exit(2); -} - -# Request for the server version -print $so pack("v",30000); # 0x7530 -$so->flush(); - -# Receiving of the answer of the server -if (read($so,$buf,10) < 10) { - print "Invalid answer. It isn't an athena server or it is a too old version.\n"; - exit(5); -} - -# Sending end of connection to the server -print $so pack("v",30002); # 0x7532 -$so->flush(); - -# Analyse of the answer -my($ret,$maver,$miver,$rev,$dev,$mod,$type,$mdver) = unpack("v c6 v",$buf); - -if ($ret != 30001) { # 0x7531 - print "Invalid answer. It isn't an athena server or it is a too old version.\n"; - exit(6); -} - -my(@stype) = (); -foreach $i(0..3) { - push @stype,(("login","char","inter","map")[$i]) if( $type & (1<<$i) ); -} -print " ".join("/",@stype)." server [$server:$port].\n"; -printf " Athena version %s-%d.%d", ("stable","dev")[$dev], $maver,$miver; -printf " revision %d",$rev if $rev; -printf "%s%d\n",("","-mod")[$mod],$mdver; - -exit(0); diff --git a/vcproj-10/ladmin.vcxproj b/vcproj-10/ladmin.vcxproj deleted file mode 100644 index 4865159bf..000000000 --- a/vcproj-10/ladmin.vcxproj +++ /dev/null @@ -1,149 +0,0 @@ -サソ - - - - Debug - Win32 - - - Release - Win32 - - - - {D356871D-58E1-450B-967A-E8E9646175AF} - ladmin - Win32Proj - - - - Application - MultiByte - true - - - Application - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - ..\ - $(ProjectName)\$(Configuration)\ - true - ..\ - $(ProjectName)\$(Configuration)\ - false - - - - Disabled - ..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories) - WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;MINICORE;FD_SETSIZE=4096;%(PreprocessorDefinitions) - false - false - true - - - EnableFastChecks - MultiThreadedDebug - true - - - - - Level3 - EditAndContinue - CompileAsC - - - /FIXED:NO %(AdditionalOptions) - libcmtd.lib;oldnames.lib;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)ladmin.exe - %(AdditionalLibraryDirectories) - true - true - $(OutDir)$(ProjectName).pdb - Console - false - - - MachineX86 - - - - - MaxSpeed - AnySuitable - true - Speed - true - true - true - ..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories) - WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;MINICORE;FD_SETSIZE=4096;%(PreprocessorDefinitions) - true - MultiThreaded - false - - - - - Level3 - ProgramDatabase - CompileAsC - - - libcmt.lib;oldnames.lib;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)ladmin.exe - %(AdditionalLibraryDirectories) - true - true - $(OutDir)$(ProjectName).pdb - Console - true - true - UseLinkTimeCodeGeneration - false - - - MachineX86 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vcproj-10/login-server_sql.vcxproj b/vcproj-10/login-server_sql.vcxproj index e8d91e186..6570350ac 100644 --- a/vcproj-10/login-server_sql.vcxproj +++ b/vcproj-10/login-server_sql.vcxproj @@ -153,7 +153,6 @@ - diff --git a/vcproj-10/login-server_txt.vcxproj b/vcproj-10/login-server_txt.vcxproj index c82e5e30d..09bb22a38 100644 --- a/vcproj-10/login-server_txt.vcxproj +++ b/vcproj-10/login-server_txt.vcxproj @@ -144,7 +144,6 @@ - diff --git a/vcproj-6/login-server_sql.dsp b/vcproj-6/login-server_sql.dsp index 7348d3361..0a52185e1 100644 --- a/vcproj-6/login-server_sql.dsp +++ b/vcproj-6/login-server_sql.dsp @@ -207,10 +207,6 @@ SOURCE=..\src\login\account_sql.c # End Source File # Begin Source File -SOURCE=..\src\login\admin.c -# End Source File -# Begin Source File - SOURCE=..\src\login\ipban.h # End Source File # Begin Source File diff --git a/vcproj-6/login-server_txt.dsp b/vcproj-6/login-server_txt.dsp index ee54b5b76..ecb083269 100644 --- a/vcproj-6/login-server_txt.dsp +++ b/vcproj-6/login-server_txt.dsp @@ -195,10 +195,6 @@ SOURCE=..\src\login\account_txt.c # End Source File # Begin Source File -SOURCE=..\src\login\admin.c -# End Source File -# Begin Source File - SOURCE=..\src\login\ipban.h # End Source File # Begin Source File diff --git a/vcproj-7.1/login-server_sql.vcproj b/vcproj-7.1/login-server_sql.vcproj index 8c5001fa6..a86f8246b 100644 --- a/vcproj-7.1/login-server_sql.vcproj +++ b/vcproj-7.1/login-server_sql.vcproj @@ -150,9 +150,6 @@ - - diff --git a/vcproj-7.1/login-server_txt.vcproj b/vcproj-7.1/login-server_txt.vcproj index 8181e4fd5..24fc249d7 100644 --- a/vcproj-7.1/login-server_txt.vcproj +++ b/vcproj-7.1/login-server_txt.vcproj @@ -153,9 +153,6 @@ - - diff --git a/vcproj-8/ladmin.vcproj b/vcproj-8/ladmin.vcproj deleted file mode 100644 index bcca6c327..000000000 --- a/vcproj-8/ladmin.vcproj +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vcproj-8/login-server_sql.vcproj b/vcproj-8/login-server_sql.vcproj index e47f77eeb..2509f8f29 100644 --- a/vcproj-8/login-server_sql.vcproj +++ b/vcproj-8/login-server_sql.vcproj @@ -208,10 +208,6 @@ RelativePath="..\src\login\account_sql.c" > - - diff --git a/vcproj-8/login-server_txt.vcproj b/vcproj-8/login-server_txt.vcproj index 50508f5bd..35cf7639c 100644 --- a/vcproj-8/login-server_txt.vcproj +++ b/vcproj-8/login-server_txt.vcproj @@ -203,10 +203,6 @@ RelativePath="..\src\login\account_txt.c" > - - diff --git a/vcproj-9/ladmin.vcproj b/vcproj-9/ladmin.vcproj deleted file mode 100644 index c17252b73..000000000 --- a/vcproj-9/ladmin.vcproj +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vcproj-9/login-server_sql.vcproj b/vcproj-9/login-server_sql.vcproj index f15a9cd64..4adaa8d34 100644 --- a/vcproj-9/login-server_sql.vcproj +++ b/vcproj-9/login-server_sql.vcproj @@ -213,10 +213,6 @@ RelativePath="..\src\login\account_sql.c" > - - diff --git a/vcproj-9/login-server_txt.vcproj b/vcproj-9/login-server_txt.vcproj index 82ac7669c..6c0faa66c 100644 --- a/vcproj-9/login-server_txt.vcproj +++ b/vcproj-9/login-server_txt.vcproj @@ -208,10 +208,6 @@ RelativePath="..\src\login\account_txt.c" > - - -- cgit v1.2.3-70-g09d2 From 138dc7f32a3c64cc87bf83d4ac9d1bc83036e49b Mon Sep 17 00:00:00 2001 From: ai4rei Date: Sun, 6 Feb 2011 00:08:50 +0000 Subject: * Removed unnecessary getlogincount.pl, mapcheck.sh and mapchecker.sh tools (topic:262934). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14693 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 2 + tools/getlogincount.pl | 122 ------------------------------------------------- tools/mapcheck.sh | 34 -------------- tools/mapchecker.sh | 56 ----------------------- 4 files changed, 2 insertions(+), 212 deletions(-) delete mode 100755 tools/getlogincount.pl delete mode 100755 tools/mapcheck.sh delete mode 100755 tools/mapchecker.sh (limited to 'tools') diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 499d2b7e1..b95452366 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -1,5 +1,7 @@ Date Added +2011/02/05 + * Removed unnecessary getlogincount.pl, mapcheck.sh and mapchecker.sh tools (topic:262934). [Ai4rei] 2011/02/02 * Fixed non-windows 'findfile' utils function missing a 'closedir' call (bugreport:4739, since r1629). [Ai4rei] 2011/01/31 diff --git a/tools/getlogincount.pl b/tools/getlogincount.pl deleted file mode 100755 index de075ed22..000000000 --- a/tools/getlogincount.pl +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/perl -w - -########################################################################## -# INFORMATION TOOL ABOUT THE # OF ONLINE PLAYERS ON ATHENA SERVERS -# -# By connection on the athena login-server, this software displays the -# number of online players. -# -#------------------------------------------------------------------------- -# Software usage: -# Configure the IP, the port and a valid account of the server. -# After, use at your choice: -# ./getlogincount.pl - display the number of online players on all servers. -# ./getlogincount.pl --premier or -# ./getlogincount.pl --first -- display the number of online players of the -# first server in the received list. -# ./getlogincount.pl [servername] -- display the number of online players -# of the specified server. -# -# If successfull, the software return the value 0. -# -########################################################################## - -#------------------------------ CONFIGURATION ---------------------------- - -$loginserverip = "127.0.0.1"; # IP of the login-server -$loginserverport = 6900; # port of the login-server -$loginaccount = "s1"; # a valid account name -$loginpasswd = "p1"; # the password of the valid account name - -$connecttimeout = 10; # Connection timeout (in seconds) - -#------------------------------------------------------------------------- - -use IO::Socket; - -my($sname) = $ARGV[0]; -if (!defined($sname)) { - $sname = ""; -} - -# Connection to the login-server -my($so,$er) = (); -eval{ - $so = IO::Socket::INET->new( - PeerAddr=> $loginserverip, - PeerPort=> $loginserverport, - Proto => "tcp", - Timeout => $connecttimeout) or $er=1; -}; -if($er || $@){ - print "Can't not connect to the login-server [${loginserverip}:$loginserverport] !\n"; - exit(2); -} - -# Request to connect on login-server -print $so pack("v V a24 a24 C",0x0064,9,$loginaccount,$loginpasswd,3); -$so->flush(); - -# Fail to connect -if(unpack("v", &soread(\$so,2)) != 0x0069) { - print "Login error.\n"; - exit(3); -} - -# Get length of the received packet -my($plen) = unpack("v",&soread(\$so,2))-4; - -# Suppress information of the account (we need only information about the servers) -&soread(\$so,43); -$plen -= 43; - -# Check about the number of online servers -if ($plen < 32) { - printf "No server is connected to login-server.\n"; - exit(1); -} - -# Read information of the servers -my(@slist) = (); -for(;$plen > 0;$plen -= 32) { - my($name,$count) = unpack("x6 a20 V",&soread(\$so,32)); - $name = substr($name,0,index($name,"\0")); - push @slist, [ $name, $count ]; -} - -# Display the result -if($sname eq "--first" || $sname eq "--premier") { # If we ask only for the first server - printf "%-20s : %5d\n",$slist[0][0],$slist[0][1]; -} elsif ($sname eq "") { # If we ask for all servers - foreach $i(@slist) { - printf "%-20s : %5d\n",$i->[0],$i->[1]; - } -} else { # If we ask for a specified server (by its name) - my($flag) = 1; - foreach $i(@slist) { - if($i->[0] eq $sname) { - printf "%-20s : %5d\n",$i->[0],$i->[1]; - $flag = 0; - } - } - if($flag) { # If the server doesn't exist - printf "The server [$sname] doesn't exist.\n"; - exit(1); - } -} - -# End of the software -$so->shutdown(2); -$so->close(); -exit(0); - -# Sub-function: get data from the socket -sub soread { - my($so,$len) = @_; - my($sobuf); - if(read($$so,$sobuf,$len) < $len) { - print "Socket read error.\n"; - exit(5); - } - return $sobuf; -}; diff --git a/tools/mapcheck.sh b/tools/mapcheck.sh deleted file mode 100755 index 337884c43..000000000 --- a/tools/mapcheck.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -echo "============================================" -echo "= map server status checker... =" -echo "============================================" -./map-server.exe & -sleep 40 - -while [ 0 ] -do - pcpu=` top -n 1| grep map-server | awk '{print $9}' | awk 'BEGIN{FS="."} {print $1}' ` - if [ "$pcpu" -gt 80 ];then - echo "============================================" - echo "map server is more than 80% (now $pcpu%)" - echo "============================================" - ppid=` ps -a | grep map-server | awk '{print $1}' ` - kill $ppid - ./map-server.exe & - sleep 40 - else - pmapct=` ps -a| grep map-server | wc -l ` - if [ "$pmapct" -eq 0 ];then - echo "============================================" - echo "map server is not running..." - echo "restart map server..." - echo "============================================" - ./map-server.exe & - sleep 40 - #echo "test" - else - echo "map server is ok (now $pcpu%)..." - sleep 5 - fi - fi -done \ No newline at end of file diff --git a/tools/mapchecker.sh b/tools/mapchecker.sh deleted file mode 100755 index 7250c342e..000000000 --- a/tools/mapchecker.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash - -athena_dir="/home/athena/658/" - -while [ true ] ; do - -if [ ` ps fauxw | grep map-server | grep -v grep | wc -l ` -eq 0 ];then - #echo `date` " -- map-server crashed - restarting" - echo `date` " -- map-server crashed - restarting" >> /var/log/athena_status.log - killall -9 map-server - cd $athena_dir - nohup ./map-server ./conf/map_athena.conf ./inter_athena.conf & - sleep 240 - #sleep 40 #for fast pc's remove the "#" at the beginning of the line and delete the line above -fi - - -if [ ` ps fauxw | grep map-server | grep -v grep | awk '{print $3}' | awk 'BEGIN{FS="."} {print $1}' ` -gt 10 ];then - #echo `date` " -- mapserver cpuload over 10 - restarting" - echo `date` " -- mapserver cpuload over 10 - restarting" >> /var/log/athena_status.log - killall -9 map-server - cd $athena_dir - nohup ./map-server ./conf/map_athena.conf ./inter_athena.conf & - sleep 240 - #sleep 40 #for fast pc's remove the "#" at the beginning of the line and delete the line above - #echo `date` " -- restarted" - echo `date` " -- restarted" >> /var/log/athena_status.log -fi - -if [ ` ps fauxw | grep char-server | grep -v grep | wc -l ` -eq 0 ];then - #echo `date` " -- char server crashed - restarting" - echo `date` " -- char server crashed - restarting" >> /var/log/athena_status.log - killall -9 char-server - cd $athena_dir - nohup ./char-server ./conf/char_athena.conf ./conf/inter_athena.conf & - #echo `date` " -- restarted" - echo `date` " -- restarted" >> /var/log/athena_status.log - -fi - -if [ ` ps fauxw | grep login-server | grep -v grep | wc -l ` -eq 0 ];then - #echo `date` " -- login server crashed - restarting" - echo `date` " -- login server crashed - restarting" >> /var/log/athena_status.log - killall -9 login-server - cd $athena_dir - nohup ./login-server ./conf/login_athena.conf & - #echo `date` " -- restarted" - echo `date` " -- restarted" >> /var/log/athena_status.log - -fi - - -#echo `date` " -- everything is fine" -echo `date` " -- everything is fine" >> /var/log/athena_status.log -sleep 30 -done -- cgit v1.2.3-70-g09d2 From 03efbcc40b314aea24622a8b4a409418efc953cc Mon Sep 17 00:00:00 2001 From: brianluau Date: Tue, 1 Mar 2011 00:37:13 +0000 Subject: - Updated SQL item/mob databases to latest. (thanks Peter) - Updated item/mob txt-to-sql converter scripts to append a blank line at EOF. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14727 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/mob_db.txt | 1 - npc/merchants/buying_shops.txt | 494 +++---- sql-files/item_db.sql | 2852 ++++++++++++++++++++++------------------ sql-files/mob_db.sql | 596 ++++----- tools/item_db.pl | 1 + tools/mob_db.pl | 2 + 6 files changed, 2140 insertions(+), 1806 deletions(-) (limited to 'tools') diff --git a/db/mob_db.txt b/db/mob_db.txt index 61c7f8890..cef387db8 100644 --- a/db/mob_db.txt +++ b/db/mob_db.txt @@ -1179,4 +1179,3 @@ //2123,EL_TERA_S,Tera,Tera,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //2124,EL_TERA_M,Tera,Tera,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //2125,EL_TERA_L,Tera,Tera,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - diff --git a/npc/merchants/buying_shops.txt b/npc/merchants/buying_shops.txt index a5911fb52..b58eb33fc 100644 --- a/npc/merchants/buying_shops.txt +++ b/npc/merchants/buying_shops.txt @@ -1,248 +1,248 @@ -//===== eAthena Script ======================================= -//= Buying Shop Licenses -//===== By: ================================================== -//= Kisuka -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= eAthena SVN -//===== Description: ========================================= -//= Buying Shop Licenses -//===== Additional Comments: ================================= -//= 1.0 First version. [Kisuka] -//============================================================ - -// Black Marketeer (Buy Licenses - Non-Merchant Classes) -//============================================================ -que_job01,68,84,1 script Black Marketeer#Buying 881,{ - if(getskilllv("ALL_BUYING_STORE") == 1) { - mes "[Mr. Jass]"; - mes "Hey, you already made a contract with Hugh."; - mes "I don't have any business with you."; - close; - }else{ - mes "[Mr. Jass]"; - mes "You must need something badly to come to find me."; - mes "What do you want?"; - next; - switch(select("Bulk Buyer Shop License:Who are you?:Nothing, nothing!")) { - case 1: - mes "[Mr. Jass]"; - mes "I knew it!"; - mes "Sure, I can make it for you."; - mes "Mine looks just like the authentic one that Merchants get from that bastard Mr. Hugh!"; - next; - mes "[Mr. Jass]"; - mes "And my license is better 'cuz you don't need ta' learn any skills."; - mes "How many do you want?"; - next; - mes "[Mr. Jass]"; - mes "Just so you know, I can only make them in small quantities, up to 10 at a time."; - mes "It'll cost 500 zeny for each one."; - next; - while(1) { - input .@input; - mes "[Mr. Jass]"; - if(.@input == 0) { - mes "Don't you need those licenses?"; - close; - } - else if(.@input > 10) { - mes "I can only make up to 10 at a time, you know."; - next; - } - else { - mes "It'll cost "+(.@input*500)+" zeny."; - if(Zeny < (.@input*500)) { - mes "but you don't have enough money."; - next; - mes "[Mr. Jass]"; - mes "Don't you know the basics of business? Everything has a price."; - mes "If you want something, you gotta pay for it."; - }else{ - mes "Ha... Ha ha ha!"; - mes "Mr. Hugh, I'll take over your license business. You'll see!"; - mes "*Giggle Giggle*"; - getitem 12548,.@input; // Shabby_Purchase_Street - set Zeny,Zeny-(.@input*500); - } - close; - } - } - - case 2: - mes "[Mr. Jass]"; - mes "I left my hometown a long time ago."; - mes "It's meaningless to ask who I am because all I've got left now is my hatred."; - next; - mes "[Mr. Jass]"; - mes "..."; - mes "Hugh is a corrupt merchant with no sense of business ethics."; - mes "My sole purpose in life is to destroy Hugh."; - next; - mes "[Mr. Jass]"; - mes "Aw, I drank too much... (*Hic*)"; - mes "That's just the alohol talking."; - mes "Please forget anything I said."; - close; - case 3: - mes "[Mr. Jass]"; - mes "Alright, alright! You don't have to yell."; - mes "Just leave me alone if you've got no business with me."; - close; - } - } -} - -// Purchasing Team (Learn Skill - Merchant Classes) -//============================================================ -alberta_in,58,52,4 script Purchasing Team#Buying 59,{ - if(BaseClass == Job_Merchant && getskilllv("MC_VENDING") >= 1) { - if(getskilllv("ALL_BUYING_STORE") == 1) { - mes "[Mr. Hugh]"; - mes "I'm Hugh from the Purchasing Team."; - mes "How may I help you today?"; - next; - if(select("Purchase Bulk Buyer Shop License:Quit") == 2) { - mes "[Mr. Hugh]"; - mes "Please feel free to ask me if you need any Bulk Buyer Shop Licenses."; - mes "Come again~"; - close; - } - mes "[Mr. Hugh]"; - mes "It's 200 zeny for each Bulk Buyer Shop License, and you may purchase up to 50 at a time."; - mes "How many licenses do you need?"; - next; - while(1) { - input .@input; - mes "[Mr. Hugh]"; - if(.@input == 0) { - mes "You have cancelled the trade."; - mes "Have a good day."; - close; - } - if(.@input > 50) { - mes "Please enter a value of 50 or less."; - next; - } - else{ - mes "It'll cost "+(.@input*200)+" zeny for "+.@input+" licenses."; - if(Zeny < (.@input*200)) { - mes "but you don't seem to have enough money."; - }else{ - mes "Thank you for your patronage."; - getitem 6377,.@input; // Buy_Stall_Permit - set Zeny,Zeny-(.@input*200); - } - close; - } - } - }else{ - mes "[Mr. Hugh]"; - mes "I'm Hugh from the Purchasing Team at the Alberta Merchant Guild."; - mes "You're..."; - next; - mes "[Mr. Hugh]"; - mes "Did you know? Our guild has issued a license to allow individuals to buy goods from others."; - next; - select("I've never had problems buying items..."); - mes "[Mr. Hugh]"; - mes "You're right, but think about it:"; - mes "haven't you had a hard time buying in bulk?"; - mes "You'd have to find and talk to everyone that has an item you want."; - mes "Pretty inconvenient, isn't it?"; - next; - mes "[Mr. Hugh]"; - mes "Since buying in bulk is an important issue to us Merchants,"; - mes "I've proposed an innovative plan to our guild, based on my 10 years of experience in making purchases."; - next; - mes "[Mr. Hugh]"; - mes "'Let Individuals Open"; - mes "a Bulk Buyer Shop!'"; - mes "That's the title of my proposal."; - mes "You'll see, when you read it..."; - next; - mes "[Mr. Hugh]"; - mes "..."; - mes "...(Mr. Hugh yammers on and on with all the details.)"; - next; - select("Alright, what's your point?"); - mes "[Mr. Hugh]"; - mes "Oh, yes. In summary,"; - mes "you can buy certain items in bulk through Vending."; - next; - mes "[Mr. Hugh]"; - mes "In order to open a Bulk Buyer Shop, you need a license issued from the Merchant Guild."; - next; - mes "[Mr. Hugh]"; - mes "You need it every time you open the shop. We're expecting a significant increase in profits through this new kind of licensing."; - next; - mes "[Mr. Hugh]"; - mes "That's the point of my proposal!"; - mes "Our president was so happy to hear that we're going to make big bucks!"; - next; - mes "["+strcharinfo(0)+"]"; - mes "Please get to the point already!"; - next; - mes "[Mr. Hugh]"; - mes "Don't be so impatient, alright?"; - mes "My point is, we can let you open the Bulk Buyer Shop if you've learned Vending."; - next; - mes "[Mr. Hugh]"; - mes "Of course, we charge 10,000 zeny as a one-time registration fee."; - mes "You will need the ^4A4AFFBulk Buyer Shop License^000000 every time you open the shop."; - next; - mes "[Mr. Hugh]"; - mes "Say, would you like to register now?"; - mes "If you do, I'll teach you how to open the Bulk Buyer Shop."; - next; - if(select("Learn how to open Bulk Buyer Shop:Cancel") == 2) { - mes "[Mr. Hugh]"; - mes "Man, that's disappointing!"; - mes "Using this bulk buyer option can benefit your business in many ways, but it's your call."; - mes "I'm always open for consultation!"; - close; - } - mes "[Mr. Hugh]"; - if(Zeny < 10000) { - mes "The registration fee is 10,000 zeny."; - mes "Please have the fee ready first."; - close; - }else{ - mes "You've made a good decision."; - mes "Please give me the registration fee, and sign right here...."; - next; - input .@name$; - mes "[Mr. Hugh]"; - mes .@name$+"...."; - mes "I like your handwriting."; - mes "Okay, you're now approved to open the Bulk Buyer Shop."; - set Zeny,Zeny-10000; - getitem 6377,5; // Buy_Stall_Permit - skill "ALL_BUYING_STORE",1,0; - next; - mes "[Mr. Hugh]"; - mes "Currently, only normal items ^8C2121EXCEPT^000000 equipment, certain potions, and hand-crafted items can be purchased in bulk, but this can still be very beneficial to you, depending on how you use it."; - next; - mes "[Mr. Hugh]"; - mes "Oh, and you need at least one of the item that you want to buy in your inventory because you have to show it to other through your shop."; - next; - mes "[Mr. Hugh]"; - mes "Your skill should now be registered in your skill window. If you can't see it you probably have to minimize your Skill List and check the 3rd Job Tab."; - next; - mes "[Mr. Hugh]"; - mes "I've given you 5 Bulk Buyer Shop Licenses for your trial."; - mes "Enjoy shopping!"; - close; - } - } - }else{ - mes "[Mr. Hugh]"; - mes "I'm Hugh from the Purchasing Team at the Alberta Merchant Guild."; - mes "I'd love to chat, but I'm too busy at the moment."; - next; - mes "[Mr. Hugh]"; - mes "My time is solely dedicated to our customers in the Merchant industry."; - close; - } +//===== eAthena Script ======================================= +//= Buying Shop Licenses +//===== By: ================================================== +//= Kisuka +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +//= Buying Shop Licenses +//===== Additional Comments: ================================= +//= 1.0 First version. [Kisuka] +//============================================================ + +// Black Marketeer (Buy Licenses - Non-Merchant Classes) +//============================================================ +que_job01,68,84,1 script Black Marketeer#Buying 881,{ + if(getskilllv("ALL_BUYING_STORE") == 1) { + mes "[Mr. Jass]"; + mes "Hey, you already made a contract with Hugh."; + mes "I don't have any business with you."; + close; + }else{ + mes "[Mr. Jass]"; + mes "You must need something badly to come to find me."; + mes "What do you want?"; + next; + switch(select("Bulk Buyer Shop License:Who are you?:Nothing, nothing!")) { + case 1: + mes "[Mr. Jass]"; + mes "I knew it!"; + mes "Sure, I can make it for you."; + mes "Mine looks just like the authentic one that Merchants get from that bastard Mr. Hugh!"; + next; + mes "[Mr. Jass]"; + mes "And my license is better 'cuz you don't need ta' learn any skills."; + mes "How many do you want?"; + next; + mes "[Mr. Jass]"; + mes "Just so you know, I can only make them in small quantities, up to 10 at a time."; + mes "It'll cost 500 zeny for each one."; + next; + while(1) { + input .@input; + mes "[Mr. Jass]"; + if(.@input == 0) { + mes "Don't you need those licenses?"; + close; + } + else if(.@input > 10) { + mes "I can only make up to 10 at a time, you know."; + next; + } + else { + mes "It'll cost "+(.@input*500)+" zeny."; + if(Zeny < (.@input*500)) { + mes "but you don't have enough money."; + next; + mes "[Mr. Jass]"; + mes "Don't you know the basics of business? Everything has a price."; + mes "If you want something, you gotta pay for it."; + }else{ + mes "Ha... Ha ha ha!"; + mes "Mr. Hugh, I'll take over your license business. You'll see!"; + mes "*Giggle Giggle*"; + getitem 12548,.@input; // Shabby_Purchase_Street + set Zeny,Zeny-(.@input*500); + } + close; + } + } + + case 2: + mes "[Mr. Jass]"; + mes "I left my hometown a long time ago."; + mes "It's meaningless to ask who I am because all I've got left now is my hatred."; + next; + mes "[Mr. Jass]"; + mes "..."; + mes "Hugh is a corrupt merchant with no sense of business ethics."; + mes "My sole purpose in life is to destroy Hugh."; + next; + mes "[Mr. Jass]"; + mes "Aw, I drank too much... (*Hic*)"; + mes "That's just the alohol talking."; + mes "Please forget anything I said."; + close; + case 3: + mes "[Mr. Jass]"; + mes "Alright, alright! You don't have to yell."; + mes "Just leave me alone if you've got no business with me."; + close; + } + } +} + +// Purchasing Team (Learn Skill - Merchant Classes) +//============================================================ +alberta_in,58,52,4 script Purchasing Team#Buying 59,{ + if(BaseClass == Job_Merchant && getskilllv("MC_VENDING") >= 1) { + if(getskilllv("ALL_BUYING_STORE") == 1) { + mes "[Mr. Hugh]"; + mes "I'm Hugh from the Purchasing Team."; + mes "How may I help you today?"; + next; + if(select("Purchase Bulk Buyer Shop License:Quit") == 2) { + mes "[Mr. Hugh]"; + mes "Please feel free to ask me if you need any Bulk Buyer Shop Licenses."; + mes "Come again~"; + close; + } + mes "[Mr. Hugh]"; + mes "It's 200 zeny for each Bulk Buyer Shop License, and you may purchase up to 50 at a time."; + mes "How many licenses do you need?"; + next; + while(1) { + input .@input; + mes "[Mr. Hugh]"; + if(.@input == 0) { + mes "You have cancelled the trade."; + mes "Have a good day."; + close; + } + if(.@input > 50) { + mes "Please enter a value of 50 or less."; + next; + } + else{ + mes "It'll cost "+(.@input*200)+" zeny for "+.@input+" licenses."; + if(Zeny < (.@input*200)) { + mes "but you don't seem to have enough money."; + }else{ + mes "Thank you for your patronage."; + getitem 6377,.@input; // Buy_Stall_Permit + set Zeny,Zeny-(.@input*200); + } + close; + } + } + }else{ + mes "[Mr. Hugh]"; + mes "I'm Hugh from the Purchasing Team at the Alberta Merchant Guild."; + mes "You're..."; + next; + mes "[Mr. Hugh]"; + mes "Did you know? Our guild has issued a license to allow individuals to buy goods from others."; + next; + select("I've never had problems buying items..."); + mes "[Mr. Hugh]"; + mes "You're right, but think about it:"; + mes "haven't you had a hard time buying in bulk?"; + mes "You'd have to find and talk to everyone that has an item you want."; + mes "Pretty inconvenient, isn't it?"; + next; + mes "[Mr. Hugh]"; + mes "Since buying in bulk is an important issue to us Merchants,"; + mes "I've proposed an innovative plan to our guild, based on my 10 years of experience in making purchases."; + next; + mes "[Mr. Hugh]"; + mes "'Let Individuals Open"; + mes "a Bulk Buyer Shop!'"; + mes "That's the title of my proposal."; + mes "You'll see, when you read it..."; + next; + mes "[Mr. Hugh]"; + mes "..."; + mes "...(Mr. Hugh yammers on and on with all the details.)"; + next; + select("Alright, what's your point?"); + mes "[Mr. Hugh]"; + mes "Oh, yes. In summary,"; + mes "you can buy certain items in bulk through Vending."; + next; + mes "[Mr. Hugh]"; + mes "In order to open a Bulk Buyer Shop, you need a license issued from the Merchant Guild."; + next; + mes "[Mr. Hugh]"; + mes "You need it every time you open the shop. We're expecting a significant increase in profits through this new kind of licensing."; + next; + mes "[Mr. Hugh]"; + mes "That's the point of my proposal!"; + mes "Our president was so happy to hear that we're going to make big bucks!"; + next; + mes "["+strcharinfo(0)+"]"; + mes "Please get to the point already!"; + next; + mes "[Mr. Hugh]"; + mes "Don't be so impatient, alright?"; + mes "My point is, we can let you open the Bulk Buyer Shop if you've learned Vending."; + next; + mes "[Mr. Hugh]"; + mes "Of course, we charge 10,000 zeny as a one-time registration fee."; + mes "You will need the ^4A4AFFBulk Buyer Shop License^000000 every time you open the shop."; + next; + mes "[Mr. Hugh]"; + mes "Say, would you like to register now?"; + mes "If you do, I'll teach you how to open the Bulk Buyer Shop."; + next; + if(select("Learn how to open Bulk Buyer Shop:Cancel") == 2) { + mes "[Mr. Hugh]"; + mes "Man, that's disappointing!"; + mes "Using this bulk buyer option can benefit your business in many ways, but it's your call."; + mes "I'm always open for consultation!"; + close; + } + mes "[Mr. Hugh]"; + if(Zeny < 10000) { + mes "The registration fee is 10,000 zeny."; + mes "Please have the fee ready first."; + close; + }else{ + mes "You've made a good decision."; + mes "Please give me the registration fee, and sign right here...."; + next; + input .@name$; + mes "[Mr. Hugh]"; + mes .@name$+"...."; + mes "I like your handwriting."; + mes "Okay, you're now approved to open the Bulk Buyer Shop."; + set Zeny,Zeny-10000; + getitem 6377,5; // Buy_Stall_Permit + skill "ALL_BUYING_STORE",1,0; + next; + mes "[Mr. Hugh]"; + mes "Currently, only normal items ^8C2121EXCEPT^000000 equipment, certain potions, and hand-crafted items can be purchased in bulk, but this can still be very beneficial to you, depending on how you use it."; + next; + mes "[Mr. Hugh]"; + mes "Oh, and you need at least one of the item that you want to buy in your inventory because you have to show it to other through your shop."; + next; + mes "[Mr. Hugh]"; + mes "Your skill should now be registered in your skill window. If you can't see it you probably have to minimize your Skill List and check the 3rd Job Tab."; + next; + mes "[Mr. Hugh]"; + mes "I've given you 5 Bulk Buyer Shop Licenses for your trial."; + mes "Enjoy shopping!"; + close; + } + } + }else{ + mes "[Mr. Hugh]"; + mes "I'm Hugh from the Purchasing Team at the Alberta Merchant Guild."; + mes "I'd love to chat, but I'm too busy at the moment."; + next; + mes "[Mr. Hugh]"; + mes "My time is solely dedicated to our customers in the Merchant industry."; + close; + } } \ No newline at end of file diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index 93da9605c..25f81e601 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -523,8 +523,8 @@ REPLACE INTO `item_db` VALUES (1138,'Mysteltainn_','Mysteltainn',4,20,NULL,1000, REPLACE INTO `item_db` VALUES (1139,'Tale_Fing_','Tirfing',4,20,NULL,1000,200,NULL,1,0,0x000654E2,7,2,2,4,40,1,2,'bonus bAtkEle,Ele_Dark; bonus2 bHPLossRate,35,10000;',NULL,NULL); REPLACE INTO `item_db` VALUES (1140,'Byeorrun_Gum','Byeollungum',4,20,NULL,900,150,NULL,1,0,0x000654E2,7,2,2,4,40,1,2,'bonus2 bSubRace,RC_NonBoss,-10; bonus2 bAddRace,RC_Boss,50; bonus bAllStats,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (1141,'Immaterial_Sword','Immaterial Sword',4,20,NULL,900,140,NULL,1,0,0x000654E2,7,2,2,4,40,1,2,'bonus bAtkEle,Ele_Ghost; bonus2 bSPVanishRate,30,30; bonus bSPDrainValue,-1; bonus bUnbreakableWeapon,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (1142,'Jewel_Sword','Jeweled Sword',4,20,NULL,2200,104,NULL,1,0,0x000654E2,7,2,2,3,68,1,2,'bonus2 bAddMonsterDropItemGroup,IG_Jewel,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (1143,'Gaia_Sword','Gaia Sword',4,20,NULL,2500,140,NULL,1,0,0x000654E2,7,2,2,3,74,1,2,'bonus2 bAddMonsterDropItemGroup,IG_Ore,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (1142,'Jewel_Sword','Jeweled Sword',4,20,NULL,2200,104,NULL,1,0,0x000654E2,7,2,2,3,68,1,2,'bonus2 bAddMonsterDropItemGroup,IG_Jewel,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (1143,'Gaia_Sword','Gaia Sword',4,20,NULL,2500,140,NULL,1,0,0x000654E2,7,2,2,3,74,1,2,'bonus2 bAddMonsterDropItemGroup,IG_Ore,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (1144,'Sasimi','Sashimi',4,20,NULL,1400,75,NULL,1,0,0x000654E2,7,2,2,3,48,1,2,'bonus bAtkEle,Ele_Wind; bonus3 bAddMonsterDropItem,544,RC_Fish,4000;',NULL,NULL); REPLACE INTO `item_db` VALUES (1145,'Holy_Avenger','Holy Avenger',4,450000,NULL,1350,125,NULL,1,0,0x00004000,7,2,2,3,75,1,2,'bonus bAtkEle,Ele_Holy; bonus bVit,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (1146,'Town_Sword','Town Sword',4,42000,NULL,800,100,NULL,1,1,0x00000001,7,2,2,3,30,1,2,NULL,NULL,NULL); @@ -556,7 +556,7 @@ REPLACE INTO `item_db` VALUES (1171,'Zweihander_','Zweihander',4,20,NULL,2200,20 REPLACE INTO `item_db` VALUES (1172,'Claymore_','Claymore',4,74000,NULL,2500,180,NULL,1,2,0x00004080,7,2,34,3,33,1,3,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1173,'Muramasa_C','Muramasa',4,1,NULL,0,204,NULL,1,0,0x00004082,7,2,34,4,1,0,3,'bonus bCritical,30; bonus bAspdRate,8;',NULL,NULL); REPLACE INTO `item_db` VALUES (1174,'Executioner_C','Executioner',4,2,NULL,0,190,NULL,1,0,0x00004082,7,2,34,4,1,0,3,'bonus bIgnoreDefRace,RC_DemiHuman; bonus2 bAddRace,RC_DemiHuman,20; bonus2 bSubRace,RC_DemiHuman,-10; bonus bAtkEle,Ele_Dark;',NULL,NULL); -REPLACE INTO `item_db` VALUES (1175,'Altas_Weapon','Atlas Weapon',4,20,NULL,2000,200,NULL,1,1,0x00004082,2,2,34,4,55,1,3,'bonus bCritical,10; if(readparam(bStr)>=80) bonus bBreakArmorRate,500;',NULL,NULL); +REPLACE INTO `item_db` VALUES (1175,'Altas_Weapon','Atlas Weapon',4,20,NULL,3500,200,NULL,1,1,0x00004082,2,2,34,4,55,1,3,'bonus bCritical,10; if(readparam(bStr)>=80) bonus bBreakArmorRate,500;',NULL,NULL); REPLACE INTO `item_db` VALUES (1176,'Muscle_Cutter','Muscle Cutter',4,20,NULL,2200,160,NULL,1,2,0x00004082,2,2,34,4,55,1,3,'bonus2 bAddEff,Eff_Bleeding,800; bonus3 bAutoSpell,\"AL_DECAGI\",1,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (1177,'Muramash','Muramash',4,20,NULL,0,120,NULL,1,0,0x00004082,7,2,34,1,1,0,3,'bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50;',NULL,NULL); REPLACE INTO `item_db` VALUES (1178,'Schweizersabel_','Schweizersabel',4,20,NULL,1600,160,NULL,1,2,0x00004082,7,2,34,4,48,1,3,'bonus bAtkEle,Ele_Wind; bonus bDef,1; bonus3 bAutoSpell,\"MG_LIGHTNINGBOLT\",3,100;',NULL,NULL); @@ -572,6 +572,10 @@ REPLACE INTO `item_db` VALUES (1187,'Krieger_Twohand_Sword1','Glorious Claymore' REPLACE INTO `item_db` VALUES (1188,'Veteran_Sword','Veteran Sword',4,20,NULL,2000,180,NULL,1,1,0x00004082,7,2,34,4,80,1,3,'if(getskilllv(\"SM_BASH\")==10) { bonus2 bSkillAtk,\"SM_BASH\",50; } if(getskilllv(\"KN_BOWLINGBASH\")==10) { bonus2 bSkillAtk,\"KN_BOWLINGBASH\",50; } bonus bStr,1; bonus bDex,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (1189,'Krasnaya','Krasnaya',4,20,NULL,3800,200,NULL,1,3,0x00004082,2,2,34,2,50,1,3,'if(readparam(bStr)>=95) { bonus bAtk,20; }',NULL,NULL); REPLACE INTO `item_db` VALUES (1190,'Claymore_C','Claymore',4,20,NULL,0,220,NULL,1,0,0x00004080,7,2,34,3,1,0,3,'bonus2 bAddSize,0,40; bonus2 bAddSize,1,40; bonus2 bAddSize,2,40;',NULL,NULL); +# 1191,Alca_Bringer, +# REPLACE INTO `item_db` VALUES (1192,'P_Slayer1','Eden Slayer I',4,0,NULL,0,162,NULL,1,0,0x00004082,7,2,34,2,26,0,3,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (1193,'P_Slayer2','Eden Slayer II',4,0,NULL,0,185,NULL,1,0,0x00004082,7,2,34,2,40,0,3,NULL,NULL,NULL); +# 1194,Executioner, # Daggers REPLACE INTO `item_db` VALUES (1201,'Knife','Knife',4,50,NULL,400,17,NULL,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1202,'Knife_','Knife',4,50,NULL,400,17,NULL,1,4,0xFE9F7EEF,7,2,2,1,1,1,1,NULL,NULL,NULL); @@ -658,8 +662,9 @@ REPLACE INTO `item_db` VALUES (1281,'Krieger_Katar1','Glorious Bloody Roar',4,0, REPLACE INTO `item_db` VALUES (1282,'Krieger_Katar2','Glorious Jamadhar',4,0,NULL,0,140,NULL,1,0,0x00001000,7,2,34,4,80,1,16,'bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus bCritAtkRate,5; } if(getrefine() > 8) autobonus \"{ bonus bAspdRate,100; }\",70,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";',NULL,NULL); REPLACE INTO `item_db` VALUES (1283,'Katar_Of_Speed','Katar Of Speed',4,0,NULL,0,175,NULL,1,0,0x00001000,7,2,34,4,0,1,16,'bonus2 bSkillAtk,\"AS_SONICBLOW\",25; bonus bAspdRate,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (1284,'Krishna','Krishna',4,0,NULL,1200,120,NULL,1,2,0x00001000,2,2,34,3,50,1,16,'bonus2 bSkillAtk,\"AS_GRIMTOOTH\",10; if(getskilllv(\"AS_SONICBLOW\")) { bonus3 bAutoSpell,\"AS_SONICBLOW\",getskilllv(\"AS_SONICBLOW\"),5; }else{ bonus3 bAutoSpell,\"AS_SONICBLOW\",1,5; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (1285,'Chakram','Chakram',4,0,NULL,1000,130,NULL,1,2,0x00001000,2,2,34,3,50,1,16,'if(getskilllv(\"AS_KATAR\")==10) { bonus bHit,10; } bonus2 bSkillAtk,\"ASC_METEORASSAULT\",20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (1285,'Cakram','Chakram',4,0,NULL,1000,130,NULL,1,2,0x00001000,2,2,34,3,50,1,16,'if(getskilllv(\"AS_KATAR\")==10) { bonus bHit,10; } bonus2 bSkillAtk,\"ASC_METEORASSAULT\",20;',NULL,NULL); REPLACE INTO `item_db` VALUES (1286,'Jamadhar_C','Jamadhar',4,1,NULL,0,200,NULL,1,0,0x00001000,7,2,34,3,1,0,16,'bonus2 bAddSize,0,40; bonus2 bAddSize,1,40; bonus2 bAddSize,2,40;',NULL,NULL); +# 1287,Durga, # 1-Handed Axes REPLACE INTO `item_db` VALUES (1301,'Axe','Axe',4,500,NULL,800,38,NULL,1,3,0x000654E3,7,2,2,1,3,1,6,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1302,'Axe_','Axe',4,500,NULL,800,38,NULL,1,4,0x000654E3,7,2,2,1,3,1,6,NULL,NULL,NULL); @@ -673,6 +678,8 @@ REPLACE INTO `item_db` VALUES (1309,'Orcish_Axe_','Orcish Axe',4,20,NULL,1500,75 REPLACE INTO `item_db` VALUES (1310,'Krieger_Onehand_Axe1','Glorious Cleaver',4,0,NULL,0,130,NULL,1,0,0x000444A2,7,2,2,4,80,1,6,'bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus bAspdRate,5; } if(getrefine() > 8) { bonus bAspdRate,5; bonus3 bAutoSpell,\"NPC_CRITICALWOUND\",1,50; bonus4 bAutoSpellOnSkill,\"MC_MAMMONITE\",\"NPC_CRITICALWOUND\",2,200; }',NULL,NULL); REPLACE INTO `item_db` VALUES (1311,'Vecer_Axe','Vecer Axe',4,0,NULL,1500,140,NULL,1,2,0x000444A2,2,2,2,3,50,1,6,'if(readparam(bLuk)>=90) { bonus bAtk,20; } if(readparam(bDex)>=90) { bonus bCritical,5; } if(readparam(bDex)>=90 || readparam(bLuk)>=90) { bonus2 bSkillAtk,\"MC_MAMMONITE\",15; }',NULL,NULL); REPLACE INTO `item_db` VALUES (1312,'Orcish_Axe_C','Orcish Axe',4,0,NULL,0,110,NULL,1,0,0x000454A3,7,2,2,3,1,0,6,'bonus2 bAddSize,0,70; bonus2 bAddSize,1,70; bonus2 bAddSize,2,70;',NULL,NULL); +# 1314,Tomahawk, +# 1315,Right_Epsilon, # 2-Handed Axes REPLACE INTO `item_db` VALUES (1351,'Battle_Axe','Battle Axe',4,5400,NULL,1500,80,NULL,1,3,0x000444A2,7,2,34,1,3,1,7,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1352,'Battle_Axe_','Battle Axe',4,5400,NULL,1500,80,NULL,1,4,0x000444A2,7,2,34,1,3,1,7,NULL,NULL,NULL); @@ -708,9 +715,9 @@ REPLACE INTO `item_db` VALUES (1381,'N_Battle_Axe','Novice Battle Axe',4,1,NULL, REPLACE INTO `item_db` VALUES (1382,'Krieger_Twohand_Axe1','Glorious Two-Handed Axe',4,0,NULL,0,220,NULL,1,0,0x000444A2,7,2,34,4,80,1,7,'bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-3)*(getrefine()-3); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus3 bAutoSpell,\"NPC_CRITICALWOUND\",1,50; } if(getrefine() > 8) { bonus3 bAutoSpell,\"NPC_CRITICALWOUND\",1,100; bonus4 bAutoSpellOnSkill,\"MC_MAMMONITE\",\"NPC_CRITICALWOUND\",2,200; bonus4 bAutoSpellOnSkill,\"WS_CARTTERMINATION\",\"NPC_CRITICALWOUND\",2,200; }',NULL,NULL); REPLACE INTO `item_db` VALUES (1383,'Holy_Celestial_Axe','Celestial Axe',4,0,NULL,1500,250,NULL,1,0,0x000444A2,7,2,34,4,60,1,7,'bonus2 bAddRace,RC_Undead,10; bonus3 bAutoSpell,\"AL_BLESSING\",5,50;',NULL,NULL); REPLACE INTO `item_db` VALUES (1384,'Veteran_Axe','Veteran Axe',4,0,NULL,3000,250,NULL,1,2,0x000444A2,7,2,34,3,80,1,7,'if(getskilllv(\"BS_DAGGER\")==3) { bonus bAtk,10; } if(getskilllv(\"BS_SWORD\")==3) { bonus bAtk,10; } if(getskilllv(\"BS_TWOHANDSWORD\")==3) { bonus bAtk,10; } if(getskilllv(\"BS_KNUCKLE\")==3) { bonus bAtk,10; } if(getskilllv(\"BS_SPEAR\")==3) { bonus bAtk,10; } if(getskilllv(\"BS_AXE\")==3) { bonus bAtk,10; } if(getskilllv(\"BS_MACE\")==3) { bonus bAtk,10; } bonus bVit,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (1385,'Bradium_Stonehammer','Bradium Stone Hammer',4,0,NULL,2700,210,NULL,1,0,0x000444A2,2,2,34,4,75,1,7,'bonus3 bAddEffOnSkill,\"BS_HAMMERFALL\",Eff_Stun,50+(20*getrefine());',NULL,NULL); +REPLACE INTO `item_db` VALUES (1385,'Bradium_Stonehammer','Bradium Stone Hammer',4,0,NULL,2700,210,NULL,1,0,0x000444A2,2,2,34,4,75,1,7,'bonus3 bAddEffOnSkill,\"BS_HAMMERFALL\",Eff_Stun,500+(200*getrefine());',NULL,NULL); REPLACE INTO `item_db` VALUES (1386,'Doom_Slayer_I','Doom Slayer',4,20,NULL,0,20,NULL,1,0,0x000444A2,7,2,34,4,0,0,7,'if(readparam(bStr)>=95){ bonus bBaseAtk,400; bonus2 bAddEff,Eff_Stun,3000; bonus bAspdRate,-25; bonus bUseSPrate,100; bonus bBreakArmorRate,500; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (1387,'Giant_Axe','Giant Axe',4,0,NULL,4000,330,NULL,1,1,0x000444A2,2,2,34,3,50,1,6,'bonus2 bSkillAtk,\"WS_CARTTERMINATION\",15; if(readparam(bStr)>=95) { bonus bHit,10; bonus bAspdRate,3; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (1387,'Giant_Axe','Giant Axe',4,0,NULL,4000,330,NULL,1,1,0x000444A2,2,2,34,3,50,1,7,'bonus2 bSkillAtk,\"WS_CARTTERMINATION\",15; if(readparam(bStr)>=95) { bonus bHit,10; bonus bAspdRate,3; }',NULL,NULL); REPLACE INTO `item_db` VALUES (1388,'Two_Handed_Axe_C','Two-Handed Axe',4,0,NULL,0,220,NULL,1,0,0x000444A2,7,2,34,3,1,0,7,'bonus2 bAddSize,0,40; bonus2 bAddSize,1,40; bonus2 bAddSize,2,40;',NULL,NULL); # 1-Handed Spears REPLACE INTO `item_db` VALUES (1401,'Javelin','Javelin',4,150,NULL,700,28,NULL,3,3,0x00004082,7,2,2,1,4,1,4,NULL,NULL,NULL); @@ -743,6 +750,7 @@ REPLACE INTO `item_db` VALUES (1427,'Spear_Of_Excellent','Spear Of Excellent',4, REPLACE INTO `item_db` VALUES (1428,'Long_Horn_M','Long Horn',4,20,NULL,1000,150,NULL,3,1,0x00004082,2,2,2,4,65,1,4,'bonus bAtkEle,Ele_Holy; bonus2 bAddEff,Eff_Bleeding,500; skill \"TF_DETOXIFY\",1; bonus bUnbreakableWeapon,0; if(isequipped(2115)) bonus3 bAutoSpellWhenHit,\"HP_ASSUMPTIO\",2,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (1429,'Hunting_Spear_M','Hunting Spear',4,0,NULL,4200,180,NULL,3,1,0x00004082,2,2,34,4,60,1,4,'bonus bIgnoreDefRace,RC_Brute; bonus3 bAddMonsterDropItem,517,RC_Brute,1000; bonus3 bAutoSpell,\"LK_JOINTBEAT\",3,500;',NULL,NULL); REPLACE INTO `item_db` VALUES (1430,'Pike_C','Pike',4,0,NULL,0,74,NULL,3,0,0x00004082,7,2,2,1,1,0,4,'bonus2 bAddSize,0,70; bonus2 bAddSize,1,70; bonus2 bAddSize,2,70;',NULL,NULL); +# 1431,Pole_Axe, # 2-Handed Spears REPLACE INTO `item_db` VALUES (1451,'Guisarme','Guisarme',4,13000,NULL,1000,84,NULL,3,2,0x00004082,7,2,34,2,18,1,5,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1452,'Guisarme_','Guisarme',4,13000,NULL,1000,84,NULL,3,3,0x00004082,7,2,34,2,18,1,5,NULL,NULL,NULL); @@ -831,7 +839,7 @@ REPLACE INTO `item_db` VALUES (1544,'Lunakaligo','Lunakaligo',4,20,NULL,700,110, REPLACE INTO `item_db` VALUES (1545,'N_Mace','Novice Mace',4,1,NULL,0,57,NULL,1,3,0x0004C5B3,7,2,2,1,2,0,8,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1546,'Krieger_Onehand_Mace1','Glorious Morning Star',4,0,NULL,0,130,NULL,1,0,0x0004C5B3,7,2,2,4,80,1,8,'bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus bAspdRate,5; } if(getrefine() > 8) { bonus2 bAddEff,Eff_Stun,2000; bonus bAspdRate,5; }',NULL,NULL); REPLACE INTO `item_db` VALUES (1547,'Mace_Of_Madness','Mace Of Madness',4,0,NULL,0,150,NULL,1,0,0x0004C5B2,7,2,2,2,1,0,8,'bonus2 bSkillAtk,\"MC_CARTREVOLUTION\",25; bonus bStr,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (1548,'Veteran_Hammer','Veteran Hammer',4,0,NULL,1800,160,NULL,1,2,0x00008110,7,2,2,3,80,1,8,'bonus2 bSkillAtk,\"AL_HEAL\",getskilllv(\"AL_DP\"); bonus bCriticalRate,getskilllv(\"PR_MACEMASTERY\")*2; bonus bInt,1; bonus bLuk,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (1548,'Veteran_Hammer','Veteran Hammer',4,0,NULL,1800,160,NULL,1,2,0x00008110,7,2,2,3,80,1,8,'bonus bHealPower,getskilllv(\"AL_DP\"); bonus bCritical,getskilllv(\"PR_MACEMASTERY\")*2; bonus bInt,1; bonus bLuk,1;',NULL,NULL); # 1549,Pilebuncker # Books REPLACE INTO `item_db` VALUES (1550,'Book','Book',4,30000,NULL,600,85,NULL,1,3,0x00410100,7,2,2,2,14,1,15,NULL,NULL,NULL); @@ -865,6 +873,7 @@ REPLACE INTO `item_db` VALUES (1577,'Krieger_Book2','Glorious Apocalypse',4,0,NU REPLACE INTO `item_db` VALUES (1578,'Book_Of_Prayer','Book Of Prayer',4,0,NULL,0,140,NULL,1,0,0x00410100,7,2,2,3,1,0,15,'bonus bVit,2; bonus bMdef,2; bonus bMaxSPrate,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (1579,'Death_Note_M','Book of the Dead',4,0,NULL,1000,137,NULL,1,2,0x00410100,7,2,2,4,85,1,15,'bonus bMatkRate,15; bonus bStr,3; bonus bInt,3; bonus bLuk,-20; bonus2 bWeaponComaRace,RC_DemiHuman,10; bonus bAspdRate,getrefine(); if(BaseJob == Job_Sage) bonus3 bAutoSpell,\"NPC_HELLJUDGEMENT\",5,20;',NULL,NULL); REPLACE INTO `item_db` VALUES (1580,'Encyclopedia_C','Giant Encyclopedia',4,0,NULL,0,145,NULL,1,0,0x00410100,7,2,2,3,0,0,15,'bonus bMatkRate,15; bonus bInt,3; bonus bDex,2; bonus bCritical,20+((readparam(bLuk)*2)/10); bonus2 bAddSize,0,40; bonus2 bAddSize,1,40; bonus2 bAddSize,2,40;',NULL,NULL); +# 1581,Diary_Of_Great_Sage, REPLACE INTO `item_db` VALUES (1599,'Angra_Manyu','Angra Manyu',4,1,NULL,10,200,NULL,2,0,0xFFFFFFFF,7,2,2,1,1,1,8,'bonus bAllStats,50; bonus bBaseAtk,3800; bonus bMatkRate,200; bonus2 bHPDrainRate,1000,100; bonus2 bSPDrainRate,1000,20; bonus bHealPower,200; bonus2 bAddRace,RC_NonBoss,100; bonus2 bAddRace,RC_Boss,100; skill \"WZ_STORMGUST\",10; Skill \"WZ_METEOR\",10; Skill \"WZ_VERMILION\",10; /*skill \"GM_SANDMAN\",1;*/',NULL,NULL); # Staffs REPLACE INTO `item_db` VALUES (1601,'Rod','Rod',4,50,NULL,400,15,NULL,1,3,0x00818315,7,2,2,1,1,1,10,'bonus bMatkRate,15;',NULL,NULL); @@ -915,7 +924,9 @@ REPLACE INTO `item_db` VALUES (1645,'Lich_Bone_Wand_M','Lich\'s Bone Wand',4,0,N REPLACE INTO `item_db` VALUES (1646,'La\'cryma_Stick','La\'cryma Stick',4,0,NULL,500,30,NULL,1,2,0x00010204,2,2,2,3,50,1,10,'bonus bInt,4; bonus bMatkRate,15; bonus bMDef,1; bonus2 bSkillAtk,\"WZ_STORMGUST\",getrefine(); if (getrefine() > 9) bonus2 bCastRate,\"WZ_STORMGUST\",-8;',NULL,NULL); REPLACE INTO `item_db` VALUES (1647,'Croce_Staff','Croce Staff',4,20,NULL,400,10,NULL,1,1,0x00008110,2,2,2,3,50,1,10,'bonus bAtkEle,Ele_Holy; bonus bMatkRate,15; bonus bInt,4; bonus4 bAutoSpellOnSkill,\"AL_HEAL\",\"AL_BLESSING\",getskilllv(\"AL_BLESSING\")>1?getskilllv(\"AL_BLESSING\"):1,20;',NULL,NULL); REPLACE INTO `item_db` VALUES (1648,'Staff_Of_Bordeaux','Staff Of Bordeaux',4,0,NULL,500,30,NULL,1,0,0x00010204,2,2,2,4,50,1,10,'bonus bMatkRate,15; bonus bInt,2; bonus bDex,1; if(getskilllv(\"SA_DRAGONOLOGY\") == 5) { bonus bUseSPrate,-15; bonus bInt,3; }',NULL,NULL); - +# 1649,Rafini_Staff, +# REPLACE INTO `item_db` VALUES (1650,'P_Staff1','Eden Staff I',4,0,NULL,0,69,NULL,1,0,0x00818314,7,2,2,2,26,0,10,'bonus bInt,1; bonus bMatkRate,15;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (1651,'P_Staff2','Eden Staff II',4,0,NULL,0,60,NULL,1,0,0x00818314,7,2,2,2,40,0,10,'bonus bInt,2; bonus bMatkRate,15;',NULL,NULL); # Bows REPLACE INTO `item_db` VALUES (1701,'Bow','Bow',4,1000,NULL,500,15,NULL,5,3,0x000A0848,7,2,34,1,4,1,11,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1702,'Bow_','Bow',4,1000,NULL,500,15,NULL,5,4,0x000A0848,7,2,34,1,4,1,11,NULL,NULL,NULL); @@ -961,6 +972,9 @@ REPLACE INTO `item_db` VALUES (1742,'N_Composite_Bow','Novice Composite Bow',4,1 REPLACE INTO `item_db` VALUES (1743,'Krieger_Bow1','Glorious Hunter Bow',4,0,NULL,0,100,NULL,5,0,0x001A0848,7,2,34,4,80,1,11,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bCritAtkRate,getrefine() * 2; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine() > 8) bonus2 bSkillAtk,\"AC_DOUBLE\",20;',NULL,NULL); REPLACE INTO `item_db` VALUES (1744,'Bow_Of_Evil','Bow Of Evil',4,0,NULL,0,170,NULL,5,0,0x000A0848,7,2,34,4,1,0,11,'bonus2 bSkillAtk,\"AC_DOUBLE\",25; bonus bDex,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (1745,'Falken_Blitz','Falken Blitz',4,0,NULL,1000,100,NULL,5,2,0x00080808,2,2,34,3,50,1,11,'bonus2 bSkillAtk,\"SN_SHARPSHOOTING\",10; bonus2 bSkillAtk,\"AC_DOUBLE\",10; bonus2 bSkillAtk,\"AC_CHARGEARROW\",10;',NULL,NULL); +# 1746,Elven_Bow, +# REPLACE INTO `item_db` VALUES (1747,'P_Bow1','Eden Bow I',4,0,NULL,0,82,NULL,5,3,0x000A0848,7,2,34,2,26,0,11,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (1748,'P_Bow2','Eden Bow II',4,0,NULL,0,120,NULL,5,3,0x000A0848,7,2,34,2,40,0,11,NULL,NULL,NULL); # Arrows REPLACE INTO `item_db` VALUES (1750,'Arrow','Arrow',10,1,NULL,1,25,NULL,NULL,NULL,0x000A1848,7,2,32768,NULL,1,NULL,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (1751,'Silver_Arrow','Silver Arrow',10,3,NULL,2,30,NULL,NULL,NULL,0x000A1848,7,2,32768,NULL,1,NULL,1,'bonus bAtkEle,Ele_Holy;',NULL,NULL); @@ -1041,7 +1055,7 @@ REPLACE INTO `item_db` VALUES (1922,'Oriental_Lute_','Oriental Lute',4,20,NULL,1 REPLACE INTO `item_db` VALUES (1923,'BF_Instrument1','Valorous Battlefield Guitar',4,0,NULL,0,50,NULL,1,0,0x00080000,7,1,2,3,80,1,13,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (1924,'BF_Instrument2','Brave Battlefield Guitar',4,0,NULL,0,50,NULL,1,0,0x00080000,7,1,2,3,80,1,13,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bSkillAtk,\"CG_ARROWVULCAN\",20; bonus bUnbreakableWeapon,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (1925,'Chello','Cello',4,20,NULL,700,110,NULL,1,3,0x00080000,2,1,002,3,70,1,13,'bonus bAgi,2; bonus bDex,3; bonus2 bAddSkillBlow,\"BA_MUSICALSTRIKE\",2; bonus2 bAddSkillBlow,\"CG_ARROWVULCAN\",3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (1926,'Harp_Of_Nepenthes','Harp of Nepenthes',4,20,NULL,1000,120,NULL,1,2,0x00080000,2,1,2,4,60,1,13,'bonus bInt,2; bonus3 bAddEffOnSkill,\"BA_MUSICALSTRIKE\",Eff_Stun,100; if( getrefine() > 9 ) { bonus3 bAddEffOnSkill,\"BA_MUSICALSTRIKE\",Eff_Stun,200; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (1926,'Harp_Of_Nepenthes','Harp of Nepenthes',4,20,NULL,1000,120,NULL,1,2,0x00080000,2,1,2,4,60,1,13,'bonus bInt,2; if( getrefine() > 9 ) { bonus3 bAddEffOnSkill,\"BA_MUSICALSTRIKE\",Eff_Stun,2000; } else { bonus3 bAddEffOnSkill,\"BA_MUSICALSTRIKE\",Eff_Stun,1000; }',NULL,NULL); REPLACE INTO `item_db` VALUES (1927,'Krieger_Instrument1','Glorious Guitar',4,0,NULL,0,50,NULL,1,0,0x00180000,7,1,2,4,80,1,13,'bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine() > 8) bonus4 bAutoSpellOnSkill,\"CG_ARROWVULCAN\",\"CG_TAROTCARD\",5,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (1928,'Berserk_Guitar_I','Spirited Guitar',4,0,NULL,0,40,NULL,1,0,0x00080000,2,1,2,4,0,1,13,'bonus bAspdRate,100; bonus bHPrecovRate,-100; bonus2 bHPLossRate,50,5000; bonus bDex,-readparam(bDex);',NULL,NULL); REPLACE INTO `item_db` VALUES (1929,'Guitar_C','Guitar',4,0,NULL,0,177,NULL,1,0,0x00080000,7,1,2,3,1,0,13,'bonus2 bAddSize,0,40; bonus2 bAddSize,1,40; bonus2 bAddSize,2,40;',NULL,NULL); @@ -1075,7 +1089,7 @@ REPLACE INTO `item_db` VALUES (1975,'Queen_Is_Whip','Queen Is Whip',4,20,NULL,0, REPLACE INTO `item_db` VALUES (1976,'Queen\'s_Whip_','Queen\'s Whip',4,20,NULL,1100,150,NULL,2,2,0x00080000,7,0,2,4,65,1,14,'bonus2 bSkillAtk,\"CG_ARROWVULCAN\",10; bonus2 bSkillAtk,\"DC_THROWARROW\",10;',NULL,NULL); REPLACE INTO `item_db` VALUES (1977,'BF_Whip1','Valorous Battle Lariat',4,0,NULL,0,50,NULL,2,0,0x00080000,7,0,2,3,80,1,14,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (1978,'BF_Whip2','Brave Battle Lariat',4,0,NULL,0,50,NULL,2,0,0x00080000,7,0,2,3,80,1,14,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bSkillAtk,\"CG_ARROWVULCAN\",20; bonus bUnbreakableWeapon,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (1979,'Stem_Of_Nepenthes','Stem of Nepenthes',4,20,NULL,1000,120,NULL,1,2,0x00080000,2,0,2,4,60,1,14,'bonus bInt,2; bonus3 bAddEffOnSkill,\"DC_THROWARROW\",Eff_Freeze,100; if( getrefine() >= 9 ) { bonus3 bAddEffOnSkill,\"DC_THROWARROW\",Eff_Freeze,200; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (1979,'Stem_Of_Nepenthes','Stem of Nepenthes',4,20,NULL,1000,120,NULL,1,2,0x00080000,2,0,2,4,60,1,14,'bonus bInt,2; if( getrefine() >= 9 ) { bonus3 bAddEffOnSkill,\"DC_THROWARROW\",Eff_Freeze,2000; } else { bonus3 bAddEffOnSkill,\"DC_THROWARROW\",Eff_Freeze,1000; }',NULL,NULL); REPLACE INTO `item_db` VALUES (1980,'Whip_Of_Balance','Whip of Balance',4,20,NULL,700,110,NULL,1,3,0x00080000,2,0,2,3,70,1,14,'bonus bAgi,2; bonus bDex,3; bonus2 bAddSkillBlow,\"DC_THROWARROW\",2; bonus2 bAddSkillBlow,\"CG_ARROWVULCAN\",3;',NULL,NULL); REPLACE INTO `item_db` VALUES (1981,'Krieger_Whip1','Glorious Lariat',4,0,NULL,0,50,NULL,2,0,0x00180000,7,0,2,4,80,1,14,'bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine() > 8) bonus4 bAutoSpellOnSkill,\"CG_ARROWVULCAN\",\"CG_TAROTCARD\",5,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (1982,'Phenomena_Whip','Phenomena Whip',4,0,NULL,0,160,NULL,2,0,0x00080000,7,0,2,4,1,0,14,'bonus2 bSkillAtk,\"DC_THROWARROW\",25;',NULL,NULL); @@ -1117,11 +1131,11 @@ REPLACE INTO `item_db` VALUES (2125,'Strong_Shield','Strong Shield',5,20,NULL,25 REPLACE INTO `item_db` VALUES (2126,'Guyak_Shield','Guyak Shield',5,20,NULL,700,NULL,3,NULL,0,0xFFFFFFFE,7,2,32,NULL,75,1,1,'bonus bMDef,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (2127,'Secular_Mission','Secular Mission',5,20,NULL,0,NULL,10,NULL,0,0xFFFFFFFF,7,2,32,1,1,0,1,'bonus2 bSubRace,RC_NonBoss,25; bonus2 bSubRace,RC_Boss,25;',NULL,NULL); REPLACE INTO `item_db` VALUES (2128,'Herald_Of_GOD_','Sacred Mission',5,128000,NULL,1600,NULL,5,NULL,1,0x00004000,7,2,32,NULL,83,1,3,'bonus bVit,3; bonus bInt,2; bonus bMdef,3; bonus bUnbreakableShield,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2129,'Exorcism_Bible','Exorcism Bible',5,20,NULL,600,NULL,5,NULL,0,0x00008100,7,2,32,NULL,50,1,1,'bonus bHPrecovRate,3; bonus bSPrecovRate,3; bonus bInt,1; if(isequipped(1631)) bonus2 bSkillAtk,\"PR_MAGNUS\",20; bonus3 bAutoSpellWhenHit,\"PR_TURNUNDEAD\",1,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2129,'Exorcism_Bible','Exorcism Bible',5,20,NULL,600,NULL,5,NULL,0,0x00008100,7,2,32,NULL,50,1,1,'bonus bHPrecovRate,3; bonus bSPrecovRate,3; bonus bInt,1; if(isequipped(1631)) { bonus2 bSkillAtk,\"PR_MAGNUS\",20; bonus3 bAutoSpellWhenHit,\"PR_TURNUNDEAD\",1,20; }',NULL,NULL); REPLACE INTO `item_db` VALUES (2130,'Cross_Shield','Cross Shield',5,20,NULL,2000,NULL,6,NULL,1,0x00004000,7,2,32,NULL,80,1,1,'bonus bStr,1; bonus2 bSkillAtk,\"PA_SHIELDCHAIN\",30; bonus2 bSkillAtk,\"CR_SHIELDBOOMERANG\",30; bonus bUseSPrate,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (2131,'Magic_Study_Vol1','Magic Bible Vol1',5,20,NULL,1000,NULL,2,NULL,1,0x00010204,2,2,32,NULL,70,1,1,'bonus bMDef,3; bonus bInt,2; bonus2 bAddEffWhenHit,Eff_Stun,1000;',NULL,NULL); REPLACE INTO `item_db` VALUES (2132,'Shelter_Resistance','Shell Of Resistance',5,0,NULL,0,NULL,9,NULL,0,0xFFFFFFFF,2,2,32,NULL,0,0,1,'bonus2 bSubEle,Ele_Neutral,20; bonus2 bSubEle,Ele_Water,20; bonus2 bSubEle,Ele_Earth,20; bonus2 bSubEle,Ele_Fire,20; bonus2 bSubEle,Ele_Wind,20; bonus2 bSubEle,Ele_Poison,20; bonus2 bSubEle,Ele_Holy,20; bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Ghost,20; bonus2 bSubEle,Ele_Undead,20; bonus bShortWeaponDamageReturn,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2133,'Tournament_Shield','Tournament Shield',5,20,NULL,1000,NULL,5,NULL,1,0x00004082,2,2,32,NULL,50,1,3,'bonus bAtkRate,1; if( Class == Job_Lord_Knight ) bonus bAspdRate,-5; if( isequipped(1420) || isequipped(1421) || isequipped(1422) ) { bonus bAtkRate,4; bonus bDef,2; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (2133,'Tournament_Shield','Tournament Shield',5,20,NULL,1000,NULL,5,NULL,1,0x00004082,2,2,32,NULL,50,1,3,'bonus2 bAddRace,RC_NonBoss,1; bonus2 bAddRace,RC_Boss,1; if( Class == Job_Lord_Knight ) bonus bAspdRate,-5; if( isequipped(1420) || isequipped(1421) || isequipped(1422) ) { bonus2 bAddRace,RC_NonBoss,4; bonus2 bAddRace,RC_Boss,4; bonus bDef,2; }',NULL,NULL); REPLACE INTO `item_db` VALUES (2134,'Shield_Of_Naga','Shield of Naga',5,20,NULL,500,NULL,3,NULL,1,0x00CFFF80,2,2,32,NULL,70,1,3,'bonus bMdef,3; autobonus2 \"{ bonus bShortWeaponDamageReturn,(getrefine()*3); }\",10,5000,BF_WEAPON,\"{ specialeffect2 EF_GUARD; }\";',NULL,NULL); REPLACE INTO `item_db` VALUES (2135,'Shadow_Guard','Shadow Guard',5,20,NULL,800,NULL,4,NULL,1,0x00020000,2,2,32,NULL,70,1,3,'if( isequipped(2426) ) { bonus2 bAddEff,Eff_Blind,500; autobonus \"{ bonus bFlee,20; }\",200,10000,BF_WEAPON,\"{ specialeffect2 EF_INCAGILITY; }\"; }',NULL,NULL); REPLACE INTO `item_db` VALUES (2136,'Cracked_Buckler','Cracked Buckler',5,0,NULL,0,NULL,5,NULL,0,0xFFFFFFFF,2,2,32,NULL,0,1,2,'bonus bAgi,2; bonus2 bAddEle,Ele_Neutral,-10; bonus3 bAutoSpellWhenHit,\"PR_KYRIE\",1,50; bonus bMdef,1;',NULL,NULL); @@ -1134,6 +1148,9 @@ REPLACE INTO `item_db` VALUES (2140,'Energy_Rune_Guard','Energy Rune Guard',5,0, # 2143,Freya_Soul_Shield # 2144,Freya_Soul_Shield # 2145,Guardian_Shield +# 2146,Siver_Guard, +# 2147,Round_Buckler, +# 2148,Rosa_Shield, REPLACE INTO `item_db` VALUES (2199,'Ahura_Mazda','Ahura Mazdah',5,1,NULL,10,NULL,100,NULL,0,0xFFFFFFFF,7,2,32,NULL,1,1,0,'bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; skill \"CR_FULLPROTECTION\",5; Skill \"WZ_ESTIMATION\",1; Skill \"ST_FULLSTRIP\",5; Skill \"HW_MAGICPOWER\", 10; bonus bMaxHPRate,200; bonus bNoGemStone,0; bonus bSpeedRate,25;','sc_start4 SC_ENDURE,60000,10,0,0,1;','sc_end SC_ENDURE;'); # Headgears # =================================================================== @@ -1311,27 +1328,27 @@ REPLACE INTO `item_db` VALUES (2370,'Used_Mage_Coat','Used Mage Coat',5,0,NULL,0 REPLACE INTO `item_db` VALUES (2371,'G_Strings_','Pantie',5,1000,NULL,100,NULL,4,NULL,1,0xFFFFFFFF,7,2,16,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2372,'Mage_Coat_','Mage Coat',5,20,NULL,600,NULL,5,NULL,1,0x00810204,7,2,16,NULL,50,1,0,'bonus bMdef,5; bonus bInt,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2373,'Holy_Robe_','Holy Robe',5,20,NULL,1700,NULL,7,NULL,1,0x00008110,7,2,16,NULL,60,1,0,'bonus bMdef,5; bonus2 bSubRace,RC_Demon,15; bonus2 bSubEle,Ele_Dark,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2374,'Diabolus_Robe','Diabolus Robe',5,20,NULL,300,NULL,6,NULL,1,0x00098B1C,2,2,16,NULL,55,1,0,'bonus bMaxSP,150; bonus bMdef,5; bonus bHealPower,6; bonus bDelayRate,-10; if (isequipped(2729)) { bonus bAtkRate,3; bonus bMatkRate,3; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (2375,'Diabolus_Armor','Diabolus Armor',5,20,NULL,600,NULL,7,NULL,1,0x000654E2,2,2,16,NULL,55,1,0,'bonus bStr,2; bonus bDex,1; bonus bMaxHP,150; bonus2 bResEff,Eff_Stun,500; bonus2 bResEff,Eff_Stone,500; if (isequipped(2729)) { bonus bAtkRate,3; bonus bMatkRate,3; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (2376,'Assaulter_Plate','Assaulter Plate',5,0,NULL,0,NULL,7,NULL,1,0x006444A2,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2538,2435)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bVit,3; bonus bMaxHPRate,12; bonus2 bSkillHeal2,\"AL_HEAL\",10; bonus2 bAddItemHealRate,IG_Recovery,10; autobonus2 \"{ bonus2 bHPRegenRate,600,1000; }\",5,10000,BF_WEAPON,\"{ specialeffect2 EF_HEAL; }\"; };',NULL,NULL); +REPLACE INTO `item_db` VALUES (2374,'Diabolus_Robe','Diabolus Robe',5,20,NULL,300,NULL,6,NULL,1,0x00098B1C,2,2,16,NULL,55,1,0,'bonus bMaxSP,150; bonus bMdef,5; bonus bHealPower,6; bonus bDelayRate,-10; if (isequipped(2729)) { bonus2 bAddRace,RC_NonBoss,3; bonus2 bAddRace,RC_Boss,3; bonus bMatkRate,3; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (2375,'Diabolus_Armor','Diabolus Armor',5,20,NULL,600,NULL,7,NULL,1,0x000654E2,2,2,16,NULL,55,1,0,'bonus bStr,2; bonus bDex,1; bonus bMaxHP,150; bonus2 bResEff,Eff_Stun,500; bonus2 bResEff,Eff_Stone,500; if (isequipped(2729)) { bonus2 bAddRace,RC_NonBoss,3; bonus2 bAddRace,RC_Boss,3; bonus bMatkRate,3; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (2376,'Assaulter_Plate','Assaulter Plate',5,0,NULL,0,NULL,7,NULL,1,0x006444A2,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2538,2435)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bVit,3; bonus bMaxHPRate,12; bonus bHealpower2,10; bonus bAddItemHealRate,10; autobonus2 \"{ bonus2 bHPRegenRate,600,1000; }\",5,10000,BF_WEAPON,\"{ specialeffect2 EF_HEAL; }\"; };',NULL,NULL); REPLACE INTO `item_db` VALUES (2377,'Elite_Engineer_Armor','Elite Engineer Armor',5,0,NULL,0,NULL,7,NULL,1,0x00040420,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2538,2435)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bStr,3; bonus bMaxHPRate,12; bonus2 bSkillAtk,\"MC_MAMMONITE\",20; bonus2 bSkillHeal,\"AM_POTIONPITCHER\",10; bonus2 bSkillHeal2,\"AM_POTIONPITCHER\",10; bonus2 bSkillHeal2,\"AL_HEAL\",10; bonus bUnbreakableArmor,0; };',NULL,NULL); REPLACE INTO `item_db` VALUES (2378,'Assassin_Robe','Assassin Robe',5,0,NULL,0,NULL,7,NULL,1,0x02021040,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2538,2435)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bAgi,3; bonus bMaxHPRate,12; bonus bCritical,5; bonus bAspdRate,5; autobonus \"{ bonus2 bHPRegenRate,300,1000; }\",10,10000,BF_WEAPON,\"{ specialeffect2 EF_HEAL; }\"; };',NULL,NULL); REPLACE INTO `item_db` VALUES (2379,'Warlock_Battle_Robe','Warlock\'s Battle Robe',5,0,NULL,0,NULL,3,NULL,1,0x00810204,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539,2436)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bInt,3; bonus bMaxHPRate,12; bonus2 bResEff,Eff_Stun,2000; autobonus2 \"{ bonus bDefEle,Ele_Ghost; }\",30,10000,BF_WEAPON,\"{ specialeffect2 EF_ENERGYCOAT; }\"; };',NULL,NULL); REPLACE INTO `item_db` VALUES (2380,'Medic_Robe','Medic\'s Robe',5,0,NULL,0,NULL,3,NULL,1,0x00008110,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539,2436)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bInt,3; bonus bMaxHPRate,12; bonus2 bCastrate,156,-50; bonus bHealPower,6; autobonus2 \"{ bonus bDefEle,Ele_Ghost; }\",30,10000,BF_WEAPON,\"{ specialeffect2 EF_ENERGYCOAT; }\"; };',NULL,NULL); REPLACE INTO `item_db` VALUES (2381,'Elite_Archer_Suit','Elite Archer Suit',5,0,NULL,0,NULL,3,NULL,1,0x00080808,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539,2436)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bDex,3; bonus bMaxHPRate,12; bonus bLongAtkDef,10; bonus bDelayRate,-25; };',NULL,NULL); REPLACE INTO `item_db` VALUES (2382,'Elite_Shooter_Suit','Elite Shooter Suit',5,0,NULL,0,NULL,3,NULL,1,0x01000000,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2540,2437)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bDex,3; bonus bMaxHPRate,12; bonus bLongAtkDef,10; bonus bDelayRate,-25; };',NULL,NULL); -REPLACE INTO `item_db` VALUES (2383,'Brynhild','Brynhild',5,0,NULL,400,NULL,NULL,NULL,0,0xFFFFFFFF,7,2,16,NULL,94,0,0,'bonus bMdef,10; bonus bMaxHP,20*BaseLevel; bonus bMaxSP,5*BaseLevel; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; bonus bUnbreakableArmor,0; bonus bNoKnockback,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2383,'Brynhild','Brynhild',5,0,NULL,400,NULL,10,NULL,0,0xFFFFFFFF,7,2,16,NULL,94,0,0,'bonus bMdef,10; bonus bMaxHP,20*BaseLevel; bonus bMaxSP,5*BaseLevel; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; bonus bUnbreakableArmor,0; bonus bNoKnockback,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (2384,'Spritual_Tunic','Spiritual Tunic',5,20,NULL,0,NULL,10,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,0,0,'bonus bMaxHP,800; bonus2 bResEff,Eff_Freeze,10000; bonus2 bSubEle,Ele_Earth,20; bonus2 bSubEle,Ele_Fire,20; bonus2 bSubEle,Ele_Wind,20; bonus2 bSubEle,Ele_Poison,20; bonus2 bSubEle,Ele_Holy,20; bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Ghost,20; bonus2 bSubEle,Ele_Undead,20;',NULL,NULL); REPLACE INTO `item_db` VALUES (2385,'Recuperative_Armor','Recuperative Armor',5,20,NULL,0,NULL,12,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,0,0,'bonus bNoRegen,1; bonus bNoRegen,2; bonus bHPGainValue,60; bonus bSPGainValue,6; bonus bMagicHPGainValue,60; bonus bMagicSPGainValue,6;',NULL,'heal 0,-100;'); REPLACE INTO `item_db` VALUES (2386,'Chameleon_Armor','Chameleon Armor',5,20,NULL,1700,NULL,5,NULL,0,0x000FDF80,2,2,16,NULL,70,1,0,'bonus bMaxHP,(BaseLevel*7); bonus bMaxSP,(BaseLevel/2); autobonus2 \"{ bonus bNoMagicDamage,100; }\",10,2000,BF_MAGIC,\"{ specialeffect2 EF_ENERGYCOAT; }\"; if( BaseClass == Job_Mage || BaseClass == Job_Archer || BaseClass == Job_Acolyte ) bonus bMdef,5; else if( BaseClass == Job_Swordman || BaseClass == Job_Merchant || BaseClass == Job_Thief ) bonus bDef,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2387,'Sprint_Mail','Sprint Mail',5,20,NULL,1000,NULL,3,NULL,1,0x000FDF80,2,2,16,NULL,70,1,0,'bonus bVit,1; bonus bHPrecovRate,5; bonus2 bAddItemHealRate,IG_Recovery,3; bonus2 bSkillHeal,\"AL_HEAL\",3; if( isequipped(2440,2744) ) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bCastrate,-3; bonus bDelayrate,-15; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (2387,'Sprint_Mail','Sprint Mail',5,20,NULL,1000,NULL,3,NULL,1,0x000FDF80,2,2,16,NULL,70,1,0,'bonus bVit,1; bonus bHPrecovRate,5; bonus bAddItemHealRate,3; bonus2 bSkillHeal,\"AL_HEAL\",3; if( isequipped(2440,2744) ) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bCastrate,-3; bonus bDelayrate,-15; }',NULL,NULL); REPLACE INTO `item_db` VALUES (2388,'Kandura','Kandura',5,20,NULL,300,NULL,4,NULL,1,0x00001000,2,2,16,NULL,70,1,0,'bonus bAgi,1; bonus bFlee,5; bonus bAspdRate,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (2389,'Armor_Of_Naga','Armor of Naga',5,20,NULL,1000,NULL,5,NULL,1,0x00CFDF80,2,2,16,NULL,70,1,0,'bonus bMdef,2; autobonus \"{ bonus bBaseAtk,20; }\",10,10000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\";',NULL,NULL); REPLACE INTO `item_db` VALUES (2390,'Improved_Tights','Improved Tights',5,20,NULL,400,NULL,6,NULL,1,0x00080808,2,2,16,NULL,75,1,0,'bonus bMdef,2; bonus bFlee2,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (2391,'Life_Link','Life Link',5,20,NULL,3500,NULL,9,NULL,1,0x00004082,2,2,16,NULL,82,1,0,'bonus bVit,2; bonus bMdef,5; bonus bHPrecovRate,50;',NULL,NULL); REPLACE INTO `item_db` VALUES (2392,'Old_Pant','Old Green Pantie',5,0,NULL,0,NULL,10,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,1,0,'bonus bStr,2; bonus bVit,2; bonus bMaxHP,200; bonus3 bAutoSpellWhenHit,\"MO_CALLSPIRITS\",5,20; bonus bMdef,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2393,'N_Adventurer\'s_Suit','Novice Adventurer\'s Suit',5,1,NULL,0,NULL,8,NULL,1,0x00000001,7,2,16,NULL,0,0,0,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (2394,'Krieger_Suit1','Glorious Suit',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,16,NULL,81,1,0,'bonus bMaxHPRate,20; bonus2 bSubRace,RC_DemiHuman,7; if( isequipped(2444,2549) ) { bonus bAtkRate,5; bonus bMatkRate,5; bonus2 bResEff,Eff_Freeze,10000; bonus2 bSkillHeal2,\"AM_POTIONPITCHER\",3; bonus2 bSkillHeal2,\"AL_HEAL\",3; bonus2 bSkillHeal2,\"PR_SANCTUARY\",3; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (2394,'Krieger_Suit1','Glorious Suit',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,16,NULL,81,1,0,'bonus bMaxHPRate,20; bonus2 bSubRace,RC_DemiHuman,7; if( isequipped(2444,2549) ) { bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus2 bResEff,Eff_Freeze,10000; bonus2 bSkillHeal2,\"AM_POTIONPITCHER\",3; bonus2 bSkillHeal2,\"AL_HEAL\",3; bonus2 bSkillHeal2,\"PR_SANCTUARY\",3; }',NULL,NULL); REPLACE INTO `item_db` VALUES (2395,'Krieger_Suit2','Glorious Popularized Suit',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,16,NULL,61,1,0,'bonus bMaxHP,600; bonus bSPrecovRate,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (2396,'Krieger_Suit3','Glorious Mass-Production Suit',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,16,NULL,61,1,0,'bonus bMaxHP,500;',NULL,NULL); REPLACE INTO `item_db` VALUES (2397,'Incredible_Coat','Incredible Event Resignation Coat',5,0,NULL,900,NULL,2,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,1,0,NULL,NULL,NULL); @@ -1382,18 +1399,21 @@ REPLACE INTO `item_db` VALUES (2440,'Sprint_Shoes','Sprint Shoes',5,20,NULL,300, REPLACE INTO `item_db` VALUES (2441,'Beach_Sandal','Beach Sandals',5,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,7,2,64,NULL,0,1,0,'bonus bStr,1; bonus bInt,1; bonus bAgi,1; bonus2 bSubEle,Ele_Fire,10; if (isequipped(2546)) bonus bFlee,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (2442,'Boots_Perforated','Red Stocking Boots',5,0,NULL,0,NULL,7,NULL,0,0xFFFFFFFF,7,2,64,NULL,0,1,0,'bonus bLuk,2; bonus bHPrecovRate,10; bonus bSPrecovRate,10; bonus3 bAutoSpellWhenHit,\"WZ_QUAGMIRE\",3,20; bonus bMdef,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2443,'Fish_Shoes','Fisher\'s Boots',5,0,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,7,2,64,NULL,0,1,0,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (2444,'Krieger_Shoes1','Glorious Shoes',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,64,NULL,81,1,0,'bonus bMaxHPRate,10; bonus2 bSubRace,RC_DemiHuman,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2444,'Krieger_Shoes1','Glorious Shoes',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,64,NULL,81,1,0,'bonus bMaxHPRate,10; bonus2 bSubRace,RC_DemiHuman,4; bonus3 bAutoSpellWhenHit,\"AL_INCAGI\",1,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (2445,'Krieger_Shoes2','Glorious Popularized Shoes',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,64,NULL,61,1,0,'bonus bMaxHPRate,5; bonus bMaxSPRate,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (2446,'Krieger_Shoes3','Glorious Mass-Production Shoes',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,64,NULL,61,1,0,'bonus bMaxHPRate,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (2447,'Military_Boots','Army Boots',5,0,NULL,1000,NULL,5,NULL,0,0xFFFFFFFE,7,2,64,NULL,0,1,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2448,'Air_Boss','Air Boss',5,0,NULL,500,NULL,2,NULL,0,0xFFFFFFFF,7,2,64,NULL,0,1,0,'bonus bAgi,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2449,'Variant_Shoes_M','Variant Shoes',5,10000,NULL,500,NULL,3,NULL,0,0xFFFFFFFE,2,2,64,NULL,85,1,0,'bonus bMaxHPRate,20-getrefine(); bonus bMaxSPRate,20-getrefine(); bonus bDef,getrefine()/2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2450,'Vital_Tree_Shoes','Vital Tree Shoes',5,0,NULL,500,NULL,4,NULL,0,0xFFFFFFFE,7,2,64,NULL,60,1,0,'bonus bMaxHPrate,10; bonus2 bHPRegenRate,30,10000; bonus2 bSkillHeal,\"AL_HEAL\",5; bonus2 bAddItemHealRate,IG_Recovery,5; bonus bMdef,3; bonus bVit,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2450,'Vital_Tree_Shoes','Vital Tree Shoes',5,0,NULL,500,NULL,4,NULL,0,0xFFFFFFFE,7,2,64,NULL,60,1,0,'bonus bMaxHPrate,10; bonus2 bHPRegenRate,30,10000; bonus bHealpower2,5; bonus bAddItemHealRate,5; bonus bMdef,3; bonus bVit,2;',NULL,NULL); # 2451,Freya_Spirit_Sandals1,Freya Spirit Sandals, # 2452,Freya_Spirit_Sandals2,Freya Spirit Sandals, # 2453,Freya_Spirit_Sandals3,Freya Spirit Sandals, # 2454,Freya_Spirit_Sandals4,Freya Spirit Sandals, # 2455,Guardian_Boots,Guardian Boots, +# REPLACE INTO `item_db` VALUES (2456,'Para_Team_Boots1','Eden Team Boots I',5,0,NULL,0,NULL,12,NULL,0,0xFFFFFFFF,7,2,64,NULL,12,0,0,'bonus bHPrecovRate,10; bonus bSPrecovRate,2;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (2457,'Para_Team_Boots2','Eden Team Boots II',5,0,NULL,0,NULL,16,NULL,0,0xFFFFFFFF,7,2,64,NULL,26,0,0,'bonus bHPrecovRate,12; bonus bSPrecovRate,4;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (2458,'Para_Team_Boots3','Eden Team Boots III',5,0,NULL,0,NULL,18,NULL,0,0xFFFFFFFF,7,2,64,NULL,40,0,0,'bonus bHPrecovRate,14; bonus bSPrecovRate,6;',NULL,NULL); # Garments # =================================================================== REPLACE INTO `item_db` VALUES (2501,'Hood','Hood',5,1000,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,4,NULL,0,1,0,NULL,NULL,NULL); @@ -1436,7 +1456,7 @@ REPLACE INTO `item_db` VALUES (2537,'Diabolus_Manteau','Diabolus Manteau',5,20,N REPLACE INTO `item_db` VALUES (2538,'Commander_Manteau','Captain\'s Manteau',5,0,NULL,0,NULL,4,NULL,1,0x026654E2,7,2,4,NULL,80,1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2539,'Commander_Manteau_','Commander\'s Manteau',5,0,NULL,0,NULL,3,NULL,1,0x00898B1C,7,2,4,NULL,80,1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2540,'Sheriff_Manteau','Sheriff\'s Manteau',5,0,NULL,0,NULL,3,NULL,1,0x01000000,7,2,4,NULL,80,1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2541,'Asprika','Asprika',5,0,NULL,400,NULL,5,NULL,0,0xFFFFFFFF,7,2,4,NULL,94,0,0,'bonus bMdef,5; bonus2 bSubEle,Ele_Neutral,30; bonus2 bSubEle,Ele_Water,30; bonus2 bSubEle,Ele_Earth,30; bonus2 bSubEle,Ele_Fire,30; bonus2 bSubEle,Ele_Wind,30; bonus2 bSubEle,Ele_Poison,30; bonus2 bSubEle,Ele_Holy,30; bonus2 bSubEle,Ele_Dark,30; bonus2 bSubEle,Ele_Ghost,30; bonus2 bSubEle,Ele_Undead,30; bonus bFlee,30; skill \"AL_TELEPORT\",1; bonus bUnbreakableGarment,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2541,'Asprika','Asprika',5,0,NULL,400,NULL,5,NULL,0,0xFFFFFFFF,7,2,4,NULL,94,0,0,'bonus bMdef,5; bonus3 bSubEle,Ele_Neutral,30,BF_SHORT; bonus3 bSubEle,Ele_Water,30,BF_SHORT; bonus3 bSubEle,Ele_Earth,30,BF_SHORT; bonus3 bSubEle,Ele_Fire,30,BF_SHORT; bonus3 bSubEle,Ele_Wind,30,BF_SHORT; bonus3 bSubEle,Ele_Poison,30,BF_SHORT; bonus3 bSubEle,Ele_Holy,30,BF_SHORT; bonus3 bSubEle,Ele_Dark,30,BF_SHORT; bonus3 bSubEle,Ele_Ghost,30,BF_SHORT; bonus3 bSubEle,Ele_Undead,30,BF_SHORT; bonus bFlee,30; skill \"AL_TELEPORT\",1; bonus bUnbreakableGarment,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (2542,'Flame_Manteau','Flame Manteau of Naght Sieger',5,20,NULL,70,NULL,4,NULL,1,0xFFFFFFFE,2,2,4,NULL,70,1,0,'bonus bMaxHPRate,5; bonus bMdef,2; bonus bMatkRate,1; bonus2 bAddEle,Ele_Fire,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (2543,'Sylphid_Manteau','Sylphid Manteau',5,20,NULL,0,NULL,9,NULL,0,0xFFFFFFFF,7,2,4,NULL,0,0,0,'bonus bFlee,13; bonus2 bSubEle,Ele_Neutral,13; bonus bFlee2,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2544,'Leather_Of_Tendrilion','Leather of Tendrilion',5,20,NULL,300,NULL,3,NULL,1,0x00CFDF80,2,2,4,NULL,0,1,0,'bonus2 bSubEle,Ele_Water,5; bonus2 bSubEle,Ele_Earth,5; bonus2 bSubRace,RC_Plant,5; bonus2 bSubRace,RC_Brute,5;',NULL,NULL); @@ -1455,6 +1475,7 @@ REPLACE INTO `item_db` VALUES (2554,'Piece_Of_Angent_Skin','Nydhorgg\'s Shadow G # 2557,Freya_Soul_Scarf3,Freya Soul Scarf, # 2558,Freya_Soul_Scarf4,Freya Soul Scarf, # 2559,Guardian_Manteau,Guardian Manteau, +# REPLACE INTO `item_db` VALUES (2560,'Para_Team_Manteau','Eden Team Manteau',5,0,NULL,0,NULL,14,NULL,0,0xFFFFFFFF,7,2,4,NULL,12,0,0,'bonus2 bSubEle,Ele_Neutral,10;',NULL,NULL); # Accessories # =================================================================== REPLACE INTO `item_db` VALUES (2601,'Ring','Ring',5,30000,NULL,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,20,0,0,'bonus bStr,2;',NULL,NULL); @@ -1499,7 +1520,7 @@ REPLACE INTO `item_db` VALUES (2640,'Kafra_Ring','Kafra Ring',5,40000,NULL,200,N REPLACE INTO `item_db` VALUES (2641,'Fashionable_Sack','Fashion Hip Sack',5,20,NULL,700,NULL,0,NULL,0,0x00040420,7,2,136,NULL,50,0,0,'bonus bStr,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (2642,'Serin\'s_Gold_Ring','Serin\'s Gold Ring',5,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2643,'Serin\'s_Gold_Ring_','Serin\'s Gold Ring',5,45000,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (2644,'The_Sign_','The Sign',5,2,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus2 bAddRace2,5,5; bonus bMatkRate,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2644,'The_Sign_','The Sign',5,2,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (2645,'Moonlight_Ring','Moonlight Ring',5,40000,NULL,200,NULL,0,NULL,0,0x02021040,7,2,136,NULL,60,0,0,'bonus bMdef,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (2646,'Bunch_Of_Carnation','Bunch of Carnations',5,2,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2647,'Nile_Rose','Nile Rose',5,2,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus bMaxHP,10;',NULL,NULL); @@ -1558,7 +1579,7 @@ REPLACE INTO `item_db` VALUES (2699,'Vesper_Core04_C','Vesper Core 04',5,1,NULL, REPLACE INTO `item_db` VALUES (2700,'Red_Silk_Seal','Red Silk Seal',5,10000,NULL,100,NULL,0,NULL,0,0x00004082,2,2,136,NULL,0,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2701,'Orleans_Glove','Orleans\'s Glove',5,10000,NULL,100,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,90,0,0,'bonus bDex,2; bonus bMatkRate,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (2702,'Bison_Horn','Bison Horn',5,10000,NULL,100,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,90,0,0,'bonus bAgi,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2703,'Expert_Ring','Expert Ring',5,10000,NULL,150,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,90,0,0,'bonus bDelayRate,-5; bonus bUseSPrate,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2703,'Expert_Ring','Expert Ring',5,10000,NULL,150,NULL,0,NULL,1,0xFFFFFFFE,2,2,136,NULL,50,0,0,'bonus bDelayRate,-5; bonus bUseSPrate,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (2704,'Golden_Accessory','Golden Accessories',5,20,NULL,100,NULL,4,NULL,0,0xFFFFFFFF,7,2,136,NULL,NULL,NULL,NULL,'bonus bMdef,4;',NULL,NULL); REPLACE INTO `item_db` VALUES (2705,'Golden_Accessory2','Golden Accessories',5,20,NULL,100,NULL,4,NULL,0,0xFFFFFFFF,7,2,136,NULL,NULL,NULL,NULL,'bonus2 bAddMonsterDropItem,12018,500;',NULL,NULL); REPLACE INTO `item_db` VALUES (2706,'Handcuff','Arrest Handcuffs',5,20,NULL,10,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,0,0,0,NULL,NULL,NULL); @@ -1575,27 +1596,27 @@ REPLACE INTO `item_db` VALUES (2716,'Librarian_Glove','Librarian Glove',5,20,NUL REPLACE INTO `item_db` VALUES (2717,'Pocket_Watch_','Pocket Watch',5,20,NULL,200,NULL,0,NULL,0,0x00010204,7,2,136,NULL,80,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2718,'Lunatic_Brooch','Lunatic Brooch',5,20,NULL,200,NULL,0,NULL,1,0x00080808,7,2,136,NULL,65,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2719,'Iron_Wrist','Iron Wrist',5,20,NULL,700,NULL,1,NULL,0,0x000444A2,7,2,136,NULL,50,0,0,'bonus2 bSkillAtk,\"SM_BASH\",6; bonus2 bSkillAtk,\"MC_MAMMONITE\",6;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2720,'Medal_Swordman','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00404082,7,2,136,NULL,70,0,0,'bonus bAtkRate,5; bonus bMatkRate,5; bonus bHit,10; bonus bMaxHP,500; bonus bMaxSP,50; bonus3 bAddEff,Eff_Stun,100,ATF_SHORT;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2721,'Medal_Thief','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x02021040,7,2,136,NULL,70,0,0,'bonus bAtkRate,5; bonus bMatkRate,5; bonus bFlee,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Poison,100,ATF_SHORT;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2722,'Medal_Acolyte','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00008110,7,2,136,NULL,70,0,0,'bonus bAtkRate,5; bonus bMatkRate,5; bonus bMdef,6; bonus bMaxHP,600; bonus3 bAddEff,Eff_Silence,100,ATF_SHORT;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2723,'Medal_Mage','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00810204,7,2,136,NULL,70,0,0,'bonus bAtkRate,5; bonus bMatkRate,5; bonus bMdef,6; bonus bMaxHP,600; bonus2 bAddEffWhenHit,Eff_Stone,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2724,'Medal_Archer','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00080808,7,2,136,NULL,70,0,0,'bonus bAtkRate,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2725,'Medal_Merchant','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00040420,7,2,136,NULL,70,0,0,'bonus bAtkRate,5; bonus bMatkRate,5; bonus bAspdRate,10; bonus bMaxHP,500; bonus bMaxSP,50; bonus3 bAddEff,Eff_Curse,100,ATF_SHORT;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2720,'Medal_Swordman','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00404082,7,2,136,NULL,70,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bHit,10; bonus bMaxHP,500; bonus bMaxSP,50; bonus3 bAddEff,Eff_Stun,100,ATF_SHORT;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2721,'Medal_Thief','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x02021040,7,2,136,NULL,70,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bFlee,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Poison,100,ATF_SHORT;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2722,'Medal_Acolyte','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00008110,7,2,136,NULL,70,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bMdef,6; bonus bMaxHP,600; bonus3 bAddEff,Eff_Silence,100,ATF_SHORT;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2723,'Medal_Mage','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00810204,7,2,136,NULL,70,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bMdef,6; bonus bMaxHP,600; bonus2 bAddEffWhenHit,Eff_Stone,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2724,'Medal_Archer','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00080808,7,2,136,NULL,70,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2725,'Medal_Merchant','Medal of Honor',5,0,NULL,0,NULL,1,NULL,0,0x00040420,7,2,136,NULL,70,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bAspdRate,10; bonus bMaxHP,500; bonus bMaxSP,50; bonus3 bAddEff,Eff_Curse,100,ATF_SHORT;',NULL,NULL); REPLACE INTO `item_db` VALUES (2726,'Icarus_Wing','Icarus Wings',5,20,NULL,100,NULL,0,NULL,0,0x00000800,2,2,136,NULL,70,0,0,'bonus bMaxSP,50; bonus bDex,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2727,'Bowman_Scarf','Bowman Scarf',5,20,NULL,200,NULL,0,NULL,0,0x00000800,2,2,136,NULL,0,0,0,'bonus bMaxSP,50; bonus bDex,3; if (isequipped(2726)) bonus bUseSPrate,-25;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2727,'Bowman_Scarf','Bowman Scarf',5,20,NULL,200,NULL,0,NULL,0,0x00000800,2,2,136,NULL,70,0,0,'bonus bMaxSP,50; bonus bDex,3; if (isequipped(2726)) bonus bUseSPrate,-25;',NULL,NULL); REPLACE INTO `item_db` VALUES (2728,'Cursed_Hand','Cursed Hand',5,0,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,80,0,0,'bonus3 bAutoSpell,\"NPC_CRITICALWOUND\",1,30; bonus bHit,10; bonus bHPrecovRate,20;',NULL,NULL); REPLACE INTO `item_db` VALUES (2729,'Diabolus_Ring','Diabolus Ring',5,0,NULL,50,NULL,0,NULL,1,0x000FDF80,2,2,136,NULL,0,0,0,'bonus bMaxHP,100; bonus bMaxSP,100; bonus bHealPower,5; bonus2 bAddDamageClass,1916,10; bonus2 bAddDamageClass,1917,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (2730,'Morroc_Seal','Seal of Continental Guard',5,0,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,80,0,0,'bonus bMaxHP,50; bonus bAspdRate,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (2731,'Morroc_Charm_Stone','Rune Spellstone',5,0,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,80,0,0,'bonus bMaxSP,50; bonus bCastRate,-1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2732,'Morroc_Ring','Death Loop',5,0,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,80,0,0,'bonus bCritical,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2733,'Medal_Gunner','Sheriff Badge',5,0,NULL,0,NULL,1,NULL,0,0x01000000,7,2,136,NULL,80,0,0,'bonus bAtkRate,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,1000,ATF_LONG;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2733,'Medal_Gunner','Sheriff Badge',5,0,NULL,0,NULL,1,NULL,0,0x01000000,7,2,136,NULL,80,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,1000,ATF_LONG;',NULL,NULL); REPLACE INTO `item_db` VALUES (2734,'Directive_A','Directive',5,0,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2735,'Directive_B','Directive',5,0,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2736,'Navel_Ring','Navel Ring',5,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,75,0,0,'bonus bDex,3; bonus bLuk,3; bonus bMdef,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (2737,'Foot_Ring','Foot Ring',5,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,75,0,0,'bonus bVit,3; bonus bMaxHPRate,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2738,'Shiny_Coin','Shiny Coin',5,0,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,'bonus bAtkRate,6; bonus bMatkRate,6;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2739,'Ordinary_Coin','Ordinary Coin',5,0,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,'bonus bAtkRate,5; bonus bMatkRate,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2740,'Rusty_Coin','Rusty Coin',5,0,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,'bonus bAtkRate,3; bonus bMatkRate,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2738,'Shiny_Coin','Shiny Coin',5,0,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,'bonus2 bAddRace,RC_NonBoss,6; bonus2 bAddRace,RC_Boss,6; bonus bMatkRate,6;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2739,'Ordinary_Coin','Ordinary Coin',5,0,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2740,'Rusty_Coin','Rusty Coin',5,0,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,'bonus2 bAddRace,RC_NonBoss,3; bonus2 bAddRace,RC_Boss,3; bonus bMatkRate,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (2741,'All_In_One_Ring','All In One Ring',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus bAllStats,1; bonus bNoCastCancel,0; bonus bCastRate,10; skill \"AL_HEAL\",1; skill \"AL_TELEPORT\",1;',NULL,NULL); # REPLACE INTO `item_db` VALUES (2742,'Lucky_Clip','Lucky Clip',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2743,'Angelic_Ring','Angelic Ring',5,0,NULL,100,NULL,0,NULL,0,0xFDF80,2,2,136,NULL,70,0,0,'bonus bInt,2; bonus bDex,1; bonus bMdef,2; autobonus3 \"{ bonus bHealPower,20; }\",50,2000,\"AL_HEAL\"; autobonus3 \"{ bonus bHealPower,20; }\",50,2000,\"AM_POTIONPITCHER\"; autobonus3 \"{ bonus bHealPower,20; }\",50,2000,\"PR_SANCTUARY\";',NULL,NULL); @@ -1607,7 +1628,7 @@ REPLACE INTO `item_db` VALUES (2748,'Cursed_Star','Cursed Star',5,0,NULL,200,NUL REPLACE INTO `item_db` VALUES (2749,'Linen_Glove','Linen Glove',5,0,NULL,120,NULL,1,NULL,1,0xFDF80,2,2,136,NULL,90,0,0,'bonus bMdef,2; bonus bAgi,2; bonus bDex,1; if( isequipped(2390) ) bonus bFlee2,5;',NULL,NULL); # REPLACE INTO `item_db` VALUES (2750,'Summer_Night_Dream','Summer Night Dream',5,0,NULL,0,NULL,0,NULL,0,0x18315,7,2,136,NULL,0,0,0,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (2751,'Academy_Badge','Academy Of Badge',5,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'if(BaseLevel < 80) { bonus bMaxHP,400; bonus bMaxSP,200; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (2752,'Praxinus_C','Praccsinos',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,1,0,0,'bonus bAtkRate,5; bonus bMatkrate,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2752,'Praxinus_C','Praccsinos',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,1,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkrate,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (2753,'Beholder_Ring','Beholder Ring',5,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus2 bExpAddRace,RC_Formless,15;',NULL,NULL); REPLACE INTO `item_db` VALUES (2754,'Hallow_Ring','Hallow Ring',5,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus2 bExpAddRace,RC_undead,15;',NULL,NULL); REPLACE INTO `item_db` VALUES (2755,'Clamorous_Ring','Clamorous Ring',5,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus2 bExpAddRace,RC_Brute,15;',NULL,NULL); @@ -1627,7 +1648,7 @@ REPLACE INTO `item_db` VALUES (2768,'Mage_Figure','Mage Figure',5,0,NULL,0,NULL, REPLACE INTO `item_db` VALUES (2769,'Archer_Figure','Archer Figure',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus bDex,1; if(Class == Job_Archer) bonus bBaseAtk,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (2770,'Thief_Figure','Thief Figure',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus bAgi,1; if(Class == Job_Thief) bonus bAspdRate,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (2771,'Merchant_Figure','Merchant Figure',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus bStr,1; if(Class == Job_Merchant) bonus bCritical,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2772,'Krieger_Ring1','Glorious Ring',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,81,0,0,'bonus bMaxHP,300; bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Wind,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Fire,10; bonus bAspdRate,5; bonus bCastrate,-3; bonus bHealPower,5; if( isequipped(2720) || isequipped(2721) || isequipped(2722) || isequipped(2723) || isequipped(2724) || isequipped(2725) || isequipped(2733) ) { bonus bAtkRate,5; bonus bMatkRate,3; bonus bHealPower,5; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (2772,'Krieger_Ring1','Glorious Ring',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,81,0,0,'bonus bMaxHP,300; bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Wind,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Fire,10; bonus bAspdRate,5; bonus bCastrate,-3; bonus bHealPower,5; if( isequipped(2720) || isequipped(2721) || isequipped(2722) || isequipped(2723) || isequipped(2724) || isequipped(2725) || isequipped(2733) ) { bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,3; bonus bHealPower,5; }',NULL,NULL); REPLACE INTO `item_db` VALUES (2773,'Krieger_Ring2','Glorious Mass-Production Ring',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,61,0,0,'bonus bAllStats,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (2774,'Krieger_Ring3','Glorious Popularized Ring',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,61,0,0,'bonus bAllStats,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2775,'Lure','Lure',5,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,0,0,0,NULL,NULL,NULL); @@ -1644,7 +1665,7 @@ REPLACE INTO `item_db` VALUES (2785,'Orleans_Glove_M','Orlean\'s Gloves',5,10000 REPLACE INTO `item_db` VALUES (2786,'Spiritual_Ring_M','Spiritual Ring',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,1,0,0,'bonus bInt,2; bonus bDex,1; if(isequipped(2607) || isequipped(2608) || isequipped(2626)) { bonus2 bSkillAtk,\"AL_HEAL\",50; bonus2 bSkillAtk,\"PR_MAGNUS\",30; bonus bSPrecovRate,9; }',NULL,NULL); REPLACE INTO `item_db` VALUES (2787,'Waterdrop_Brooch','Waterdrop Brooch',5,0,NULL,200,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,75,0,0,'bonus2 bSubEle,Ele_Water,5; bonus bMaxHP,80; bonus bMdef,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (2788,'Bradium_Earing','Bradium Earring',5,0,NULL,200,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,60,0,0,'bonus bMatkRate,2; bonus bInt,1; bonus bDex,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (2789,'Bradium_Ring','Bradium Ring',5,0,NULL,200,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,60,0,0,'bonus bAtkRate,2; bonus bStr,1; bonus bVit,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2789,'Bradium_Ring','Bradium Ring',5,0,NULL,200,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,60,0,0,'bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bStr,1; bonus bVit,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2790,'Bradium_Brooch','Bradium Brooch',5,0,NULL,200,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,60,0,0,'bonus bFlee,4; bonus bAspdRate,2; bonus bAgi,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2791,'Just_Got_Fish','Fresh Fish',5,0,NULL,0,NULL,0,NULL,1,0xFFFFFFFF,7,2,136,NULL,0,0,0,'bonus bHit,3;',NULL,NULL); # REPLACE INTO `item_db` VALUES (2792,'Ring_Of_Flame_Lord_I','Ring of Flame Lord',5,20,NULL,0,NULL,0,NULL,0,0x00CFDF80,2,2,136,NULL,1,0,0,'bonus bStr,2; bonus bVit,1; bonus bBaseAtk,15; bonus2 bSubEle,Ele_Fire,10; bonus3 bAutoSpell,\"CH_SOULCOLLECT\",1,30; bonus3 bAutoSpell,\"MO_EXPLOSIONSPIRITS\",1,10; bonus3 bAutoSpell,\"PA_PRESSURE\",2,30; bonus3 bAutoSpell,\"MG_FIREBALL\",1,150; bonus3 bAutoSpell,\"KN_BOWLINGBASH\",5,20; if(isequipped(2679)) { bonus4 bAutoSpell,\"MO_EXTREMITYFIST\",1,3,1; bonus3 bAutoSpell,\"PR_LEXAETERNA\",1,20; bonus3 bAutoSpell,\"AS_SONICBLOW\",5,50; bonus3 bAutoSpell,\"MO_INVESTIGATE\",5,20; bonus3 bAutoSpell,\"ASC_METEORASSAULT\",2,50; }',NULL,NULL); @@ -1674,12 +1695,12 @@ REPLACE INTO `item_db` VALUES (2799,'Kuirpenring','Kuirpenring',5,0,NULL,100,NUL # 2816,Radar_Ring1,Radar Ring, # 2817,Radar_Ring2,Radar Ring, # 2818,Radar_Ring3,Radar Ring, -# 2819,Swordsman_Tutorial,Swordsman Tutorial, -# 2820,Thief_Tutorial,Thief Tutorial, -# 2821,Acolyte_Tutorial,Acolyte Tutorial, -# 2822,Archer_Tutorial,Archer Tutorial, -# 2823,Merchant_Tutorial,Merchant Tutorial, -# 2824,Magician_Tutorial,Magician Tutorial, +REPLACE INTO `item_db` VALUES (2819,'Swordsman_Manual','Swordsman Manual',5,NULL,NULL,100,NULL,0,NULL,0,0x00000001,7,2,136,NULL,1,0,0,'bonus bMaxSP,100; skill \"SM_BASH\",1; skill \"SM_PROVOKE\",1; skill \"SM_MAGNUM\",1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2820,'Thief_Manual','Thief Manual',5,NULL,NULL,100,NULL,0,NULL,0,0x00000001,7,2,136,NULL,1,0,0,'bonus bMaxSP,100; skill \"TF_DOUBLE\",3; skill \"TF_STEAL\",1; skill \"TF_HIDING\",1; skill \"TF_POISON\",1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2821,'Acolyte_Manual','Acolyte Manual',5,NULL,NULL,100,NULL,0,NULL,0,0x00000001,7,2,136,NULL,1,0,0,'bonus bMaxSP,100; skill \"AL_HEAL\",1; skill \"AL_INCAGI\",1; skill \"AL_BLESSING\",1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2822,'Archer_Manual','Archer Manual',5,NULL,NULL,100,NULL,0,NULL,0,0x00000001,7,2,136,NULL,1,0,0,'bonus bMaxSP,100; skill \"AC_OWL\",1; skill \"AC_CONCENTRATION\",1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2823,'Merchant_Manual','Merchant Manual',5,NULL,NULL,100,NULL,0,NULL,0,0x00000001,7,2,136,NULL,1,0,0,'bonus bMaxSP,100; skill \"MC_DISCOUNT\",1; skill \"MC_OVERCHARGE\",10; skill \"MC_IDENTIFY\",1; skill \"MC_MAMMONITE\",1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (2824,'Mage_Manual','Mage Manual',5,NULL,NULL,100,NULL,0,NULL,0,0x00000001,7,2,136,NULL,1,0,0,'bonus bMaxSP,100; skill \"MG_SRECOVERY\",1; skill \"MG_COLDBOLT\",1; skill \"MG_FIREWALL\",1; skill \"MG_FIREBOLT\",1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2825,'Shaman_Earrings_','Shaman Earrings',5,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,136,NULL,1,0,0,'bonus bInt,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (2826,'Dark_Knight_Belt_','Dark Knight Belt',5,0,NULL,500,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,'bonus bDex,2; bonus bAgi,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (2827,'Dark_Knight_Glove_','Dark Knight Glove',5,0,NULL,500,NULL,1,NULL,0,0xFFFFFFFF,7,2,136,NULL,80,0,0,'autobonus \"{ bonus bMaxHPRate,10; }\",10,10000,0,\"{ specialeffect2 EF_POTION_BERSERK; }\";',NULL,NULL); @@ -1843,7 +1864,7 @@ REPLACE INTO `item_db` VALUES (4148,'Pharaoh_Card','Pharaoh Card',6,20,NULL,10,N REPLACE INTO `item_db` VALUES (4149,'Gargoyle_Card','Gargoyle Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAddMonsterDropItem,12028,RC_Insect,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (4150,'Goat_Card','Goat Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'if(getrefine()<6) { bonus bDef,2; bonus bMdef,5; }',NULL,NULL); REPLACE INTO `item_db` VALUES (4151,'Gajomart_Card','Gajomart Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus2 bSubRace,RC_Plant,-20; bonus2 bExpAddRace,RC_Plant,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (4152,'Galapago_Card','Galapago Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddItemHealRate,IG_Juice,50; bonus3 bAddMonsterDropItemGroup,IG_Juice,RC_Insect,900;',NULL,NULL); +REPLACE INTO `item_db` VALUES (4152,'Galapago_Card','Galapago Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddItemHealRate,IG_Juice,50; bonus3 bAddMonsterDropItem,531,RC_Insect,300; bonus3 bAddMonsterDropItem,532,RC_Insect,300; bonus3 bAddMonsterDropItem,533,RC_Insect,300;',NULL,NULL); REPLACE INTO `item_db` VALUES (4153,'Crab_Card','Crab Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,5; bonus2 bAddDamageClass,1266,30; if(isequipped(4247,4273)) { bonus3 bAddMonsterDropItem,544,RC_Fish,3000; bonus2 bAddEle,Ele_Water,30; }',NULL,NULL); REPLACE INTO `item_db` VALUES (4154,'Rice_Cake_Boy_Card','Dumpling Child Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddItemHealRate,IG_Candy,50; bonus3 bAddMonsterDropItem,529,RC_DemiHuman,300; bonus3 bAddMonsterDropItem,530,RC_DemiHuman,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (4155,'Goblin_Leader_Card','Goblin Leader Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bAddRace2,1,30;',NULL,NULL); @@ -1906,11 +1927,11 @@ REPLACE INTO `item_db` VALUES (4211,'Vocal_Card','Vocal Card',6,20,NULL,10,NULL, REPLACE INTO `item_db` VALUES (4212,'Bon_Gun_Card','Bongun Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAutoSpell,\"SM_BASH\",1,20; bonus2 bAddSkillBlow,\"SM_BASH\",5; bonus2 bAddDefClass,1026,-100;',NULL,NULL); REPLACE INTO `item_db` VALUES (4213,'Brilight_Card','Brilight Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bAddEffWhenHit,Eff_Silence,600;',NULL,NULL); REPLACE INTO `item_db` VALUES (4214,'Bloody_Murderer_Card','Bloody Murderer Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bCritAtkRate,10; bonus2 bCriticalAddRace,RC_Insect,7;',NULL,NULL); -REPLACE INTO `item_db` VALUES (4215,'Blazzer_Card','Blazer Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddMonsterDropItemGroup,IG_Food,500;',NULL,NULL); +REPLACE INTO `item_db` VALUES (4215,'Blazzer_Card','Blazer Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddMonsterDropItemGroup,IG_Food,600;',NULL,NULL); REPLACE INTO `item_db` VALUES (4216,'Sasquatch_Card','Sasquatch Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bAddEffWhenHit,Eff_Freeze,600;',NULL,NULL); REPLACE INTO `item_db` VALUES (4217,'Live_Peach_Tree_Card','Enchanted Peach Tree Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus3 bAutoSpell,\"AL_HEAL\",1+9*(getskilllv(\"AL_HEAL\")==10),20; if(isequipped(4280,4185,4293,4312)) { bonus bVit,10; bonus bCastrate,-10; bonus bUseSPRate,-10; if(BaseClass == Job_Acolyte) { bonus2 bExpAddRace,RC_Undead,5; bonus2 bExpAddRace,RC_Demon,5; bonus2 bSubRace,RC_Undead,30; bonus2 bSubRace,RC_Demon,30; } }',NULL,NULL); REPLACE INTO `item_db` VALUES (4218,'Succubus_Card','Succubus Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bMaxHP,1000; if (isequipped(4269)) { bonus bVit,1; bonus bHPrecovRate,10; } else { bonus bVit,-3; bonus bHPrecovRate,-20; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (4219,'Sageworm_Card','Sage Worm Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddMonsterDropItemGroup,IG_Gemstone,90;',NULL,NULL); +REPLACE INTO `item_db` VALUES (4219,'Sageworm_Card','Sage Worm Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddMonsterDropItem,715,30; bonus2 bAddMonsterDropItem,716,30; bonus2 bAddMonsterDropItem,717,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (4220,'Solider_Card','Solider Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bDef,2; bonus bMdef,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (4221,'Skeleton_General_Card','Skeleton General Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus2 bSubRace,RC_Insect,-20; bonus2 bExpAddRace,RC_Insect,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (4222,'Skel_Prisoner_Card','Skeleton Prisoner Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bAddEffWhenHit,Eff_Sleep,300+600*(isequipped(4025));',NULL,NULL); @@ -1918,7 +1939,7 @@ REPLACE INTO `item_db` VALUES (4223,'Stalactic_Golem_Card','Stalactic Golem Card REPLACE INTO `item_db` VALUES (4224,'Stem_Worm_Card','Stem Worm Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAddMonsterDropItem,12032,RC_Brute,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (4225,'Stone_Shooter_Card','Stone Shooter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,10; bonus bHit,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (4226,'Sting_Card','Sting Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus bDef,2; if(getrefine()>8) bonus bMdef,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (4227,'Spring_Rabbit_Card','Spring Rabbit Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddItemHealRate,IG_Meat,50; bonus3 bAddMonsterDropItemGroup,IG_Meat,RC_Brute,400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (4227,'Spring_Rabbit_Card','Spring Rabbit Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddItemHealRate,IG_Meat,50; bonus3 bAddMonsterDropItem,517,RC_Brute,200; bonus3 bAddMonsterDropItem,528,RC_Brute,200;',NULL,NULL); REPLACE INTO `item_db` VALUES (4228,'Sleeper_Card','Sleeper Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAddMonsterDropItem,12031,RC_Fish,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (4229,'C_Tower_Manager_Card','Tower Keeper Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bInt,1; bonus bCastrate,-5; if(isequipped(4244,4299,4313)) { bonus bDef,3; bonus bMdef,3; }',NULL,NULL); REPLACE INTO `item_db` VALUES (4230,'Shinobi_Card','Shinobi Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus bAgi,1; bonus3 bAutoSpellWhenHit,\"AS_CLOAKING\",5,100;',NULL,NULL); @@ -1973,7 +1994,7 @@ REPLACE INTO `item_db` VALUES (4278,'Gibbet_Card','Gibbet Card',6,20,NULL,10,NUL REPLACE INTO `item_db` VALUES (4279,'Deleter_Card','Earth Deleter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bSPrecovRate,-100; bonus bSPGainValue,10;',NULL,'heal 0,-100;'); REPLACE INTO `item_db` VALUES (4280,'Geographer_Card','Geographer Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus3 bAutoSpellWhenHit,\"AL_BLESSING\",2+8*(getskilllv(\"AL_BLESSING\")==10),30;',NULL,NULL); REPLACE INTO `item_db` VALUES (4281,'Zipper_Bear_Card','Zipper Bear Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,30; bonus2 bSPDrainValue,-1,0; if(BaseClass == Job_Merchant) bonus bUnbreakableWeapon,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (4282,'Tengu_Card','Tengu Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddMonsterDropItemGroup,IG_Recovery,500;',NULL,NULL); +REPLACE INTO `item_db` VALUES (4282,'Tengu_Card','Tengu Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddMonsterDropItemGroup,IG_Recovery,600;',NULL,NULL); REPLACE INTO `item_db` VALUES (4283,'Greatest_General_Card','Greatest General Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAutoSpell,\"MO_CALLSPIRITS\",5,2+18*(BaseClass == Job_Acolyte);',NULL,NULL); REPLACE INTO `item_db` VALUES (4284,'Chepet_Card','Chepet Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus4 bAutoSpell,\"AL_HEAL\",5,50,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (4285,'Choco_Card','Choco Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bFlee2,5; bonus bFlee,10;',NULL,NULL); @@ -1996,7 +2017,7 @@ REPLACE INTO `item_db` VALUES (4301,'Killer_Mantis_Card','Killer Mantis Card',6, REPLACE INTO `item_db` VALUES (4302,'Tao_Gunka_Card','Tao Gunka Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bMaxHPrate,100; bonus bDef,-50; bonus bMdef,-50;',NULL,NULL); REPLACE INTO `item_db` VALUES (4303,'Whisper_Boss_Card','Giant Whisper Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bFlee,10; if(readparam(bStr)>=80) bonus bBaseAtk,20; if(readparam(bVit)>=80) bonus bMaxHPrate,3; if(readparam(bLuk)>=80) bonus bCritical,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (4304,'Tamruan_Card','Tamruan Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus bDef,2; bonus2 bSkillAtk,\"CR_SHIELDCHARGE\",10; bonus2 bSkillAtk,\"CR_SHIELDBOOMERANG\",10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (4305,'Turtle_General_Card','Turtle General Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bAddRace,RC_NonBoss,20; bonus2 bAddRace,RC_Boss,20; bonus2 bAddRace2,5,20; bonus3 bAutoSpell,\"SM_MAGNUM\",10,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (4305,'Turtle_General_Card','Turtle General Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bAddRace,RC_NonBoss,20; bonus2 bAddRace,RC_Boss,20; bonus3 bAutoSpell,\"SM_MAGNUM\",10,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (4306,'Toad_Card','Toad Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bFlee2,1; if(isequipped(4014)) bonus bFlee,18;',NULL,NULL); REPLACE INTO `item_db` VALUES (4307,'Kind_Of_Beetle_Card','Beetle King Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bSPGainRace,RC_Fish,5;',NULL,'heal 0,-5;'); REPLACE INTO `item_db` VALUES (4308,'Tri_Joint_Card','Tri Joint Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bSPGainRace,RC_Formless,5;',NULL,'heal 0,-5;'); @@ -2017,7 +2038,7 @@ REPLACE INTO `item_db` VALUES (4322,'High_Orc_Card','High Orc Card',6,20,NULL,10 REPLACE INTO `item_db` VALUES (4323,'Garm_Baby_Card','Hatii Babe Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus3 bAutoSpell,\"MG_FROSTDIVER\",3,50+250*isequipped(4324);',NULL,NULL); REPLACE INTO `item_db` VALUES (4324,'Garm_Card','Hatii Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bAddEffWhenHit,Eff_Freeze,5000;',NULL,NULL); REPLACE INTO `item_db` VALUES (4325,'Harpy_Card','Harpy Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus2 bSubEle,Ele_Neutral,15; bonus2 bSkillAtk,\"MG_NAPALMBEAT\",5; if(isequipped(4191,4208,4258,4309,4327)) { bonus bMaxHP,500; bonus bDef,5; bonus bMDef,5; bonus2 bSkillAtk,14,10; bonus2 bSkillAtk,19,10; bonus2 bSkillAtk,20,10; if(BaseClass == Job_Mage) { bonus bMatkRate,3; bonus bCastrate,-15; } }',NULL,NULL); -REPLACE INTO `item_db` VALUES (4326,'See_Otter_Card','Sea-Otter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddItemHealRate,IG_Fish,50; bonus3 bAddMonsterDropItemGroup,IG_Fish,RC_Fish,600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (4326,'See_Otter_Card','Sea-Otter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddItemHealRate,IG_Fish,50; bonus3 bAddMonsterDropItem,551,RC_Fish,300; bonus3 bAddMonsterDropItem,544,RC_Fish,300;',NULL,NULL); REPLACE INTO `item_db` VALUES (4327,'Blood_Butterfly_Card','Bloody Butterfly Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus bCastrate,30; bonus bNoCastCancel,0; bonus2 bSkillAtk,18,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (4328,'Hyegun_Card','Yao Jun Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bFlee,15; bonus bCritical,1; if(isequipped(4090,4212)) bonus bAllStats,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (4329,'Phendark_Card','Phendark Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bSPGainRace,RC_DemiHuman,5;',NULL,'heal 0,-5;'); @@ -2066,7 +2087,7 @@ REPLACE INTO `item_db` VALUES (4371,'Archdam_Card','Archdam Card',6,20,NULL,10,N REPLACE INTO `item_db` VALUES (4372,'Bacsojin_Card','White Lady Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bHealPower,30; bonus bUseSPrate,15;',NULL,NULL); REPLACE INTO `item_db` VALUES (4373,'Chung_E_Card','Green Maiden Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bLuk,getrefine()-5; bonus bCritical,getrefine();',NULL,NULL); REPLACE INTO `item_db` VALUES (4374,'Apocalips_H_Card','Vesper Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bDex,2; bonus2 bIgnoreMdefRate,RC_Boss,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (4375,'Orc_Baby_Card_Card','Orc Baby Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'if(getrefine()>=9) { bonus2 bSubEle,Ele_Neutral,15; bonus bFlee,15; } else { bonus2 bSubEle,Ele_Neutral,10; bonus bFlee,10; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (4375,'Orc_Baby_Card','Orc Baby Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'if(getrefine()>=9) { bonus2 bSubEle,Ele_Neutral,15; bonus bFlee,15; } else { bonus2 bSubEle,Ele_Neutral,10; bonus bFlee,10; }',NULL,NULL); REPLACE INTO `item_db` VALUES (4376,'Lady_Tanee_Card','Lady Tanee Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus bMaxHPrate,-40; bonus bMaxSPrate,50; bonus2 bAddMonsterDropItem,513,200; bonus2 bAddItemHealRate,513,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (4377,'Green_Iguana_Card','Grove Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAddMonsterDropItem,12063,RC_Formless,50;',NULL,NULL); REPLACE INTO `item_db` VALUES (4378,'Acidus_Card','Gold Acidus Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'if(getrefine()<=4) { bonus bMaxHPrate,8; bonus bMaxSPrate,8; bonus bHPrecovRate,5; bonus bSPrecovRate,5; } else { bonus bMaxHPrate,4; bonus bMaxSPrate,4; }',NULL,NULL); @@ -2426,7 +2447,7 @@ REPLACE INTO `item_db` VALUES (5207,'Gold_Spirit_Chain','Angel Blessing',5,20,NU REPLACE INTO `item_db` VALUES (5208,'Rideword_Hat','Rideword Hat',5,20,NULL,300,NULL,2,NULL,1,0xFFFFFFFE,7,2,256,NULL,40,1,262,'bonus2 bHPDrainRate,50,8; bonus2 bSPDrainRate,10,4; bonus2 bHPLossRate,10,5000;',NULL,NULL); REPLACE INTO `item_db` VALUES (5209,'Yellow_Baseball_Cap','Love Dad Cap',5,20,NULL,300,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,1,263,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5210,'Flying_Angel','Flapping Angel Wing',5,20,NULL,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,264,'bonus bCastrate,-3; bonus bAspdRate,3; bonus bInt,1; bonus bAgi,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5211,'Dress_Hat','Dress Hat',5,0,NULL,200,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,20,1,265,'bonus bMdef,7; bonus bStr,1; bonus bInt,1; if(getrefine() >= 7) {bonus bAtkRate,3; bonus bMAtkRate,3; bonus2 bSkillHeal,\"AL_HEAL\",6;} else { bonus bAtkRate,2; bonus bMAtkRate,2; bonus2 bSkillHeal,\"AL_HEAL\",5;}',NULL,NULL); +REPLACE INTO `item_db` VALUES (5211,'Dress_Hat','Dress Hat',5,0,NULL,200,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,20,1,265,'bonus bMdef,7; bonus bStr,1; bonus bInt,1; bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bMAtkRate,2; bonus bHealPower,5; if(getrefine() >= 7) { bonus2 bAddRace,RC_NonBoss,1; bonus2 bAddRace,RC_Boss,1; bonus bMAtkRate,1; bonus bHealPower,1; }',NULL,NULL); REPLACE INTO `item_db` VALUES (5212,'Satellite_Hairband','Satellite Hairband',5,0,NULL,1000,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,1,266,'bonus bMaxHP,50; bonus bMaxSP,10; skill \"AL_RUWACH\",1;',NULL,'sc_end SC_RUWACH;'); REPLACE INTO `item_db` VALUES (5213,'Black_Bunny_Band','Sheila Hairnet',5,0,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,267,'bonus bAgi,2; bonus bMdef,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5214,'Moonlight_Flower_Hat','Moonlight Flower Hat',5,0,NULL,200,NULL,3,NULL,0,0xFFFFFFFF,7,2,768,NULL,0,1,268,'bonus bDex,2; bonus3 bAutoSpell,\"AL_INCAGI\",1,50;',NULL,NULL); @@ -2510,7 +2531,7 @@ REPLACE INTO `item_db` VALUES (5291,'Kettle_Hat','Kettle Hat',5,20,NULL,600,NULL REPLACE INTO `item_db` VALUES (5292,'Dragon_Skull','Dragon Skull',5,20,NULL,800,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,319,'bonus2 bSubRace,RC_Dragon,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5293,'Ramen_Hat','Ramen Hat',5,20,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,320,'bonus bDex,4; bonus4 bAutoSpellWhenHit,\"AL_DECAGI\",1,30,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5294,'Whisper_Mask','Whisper Mask',5,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,769,NULL,0,0,321,'bonus bAgi,3; bonus2 bSubEle,Ele_Ghost,-10;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (5295,'Golden_Bandana','Golden Bandana',5,20,NULL,2400,NULL,4,NULL,0,0xFFFFFFFF,7,2,768,NULL,NULL,1,138,'bonus bMdef,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5295,'Golden_Bandana','Golden Bandana',5,20,NULL,2400,NULL,4,NULL,0,0xFFFFFFFF,7,2,768,NULL,NULL,1,138,'bonus bMdef,4;',NULL,NULL); REPLACE INTO `item_db` VALUES (5296,'Drooping_Nine_Tail_','Drooping Nine Tail',5,20,NULL,300,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,296,'bonus bAgi,1; bonus bCritical,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5297,'Soulless_Wing_','Soul Wing',5,20,NULL,300,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,301,'bonus bAllStats,1; bonus2 bSPRegenRate,2,10000;',NULL,NULL); REPLACE INTO `item_db` VALUES (5298,'Marvelous_Wig_','Dokebi\'s Wig',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,768,NULL,0,0,302,'bonus2 bSubEle,Ele_Neutral,5; bonus2 bSubEle,Ele_Fire,-5; bonus2 bSubEle,Ele_Water,-5;',NULL,NULL); @@ -2522,22 +2543,22 @@ REPLACE INTO `item_db` VALUES (5303,'Flower_Coronet','Flower Crown',5,20,NULL,30 REPLACE INTO `item_db` VALUES (5304,'Cap_Of_Blindness','Cap Of Blindness',5,20,NULL,800,NULL,4,NULL,1,0xFFFFFFFF,7,2,769,NULL,50,1,326,'bonus2 bResEff,Eff_Curse,700; bonus2 bResEff,Eff_Blind,10000;',NULL,NULL); REPLACE INTO `item_db` VALUES (5305,'Pirate_Dagger','Pirate Dagger',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,327,'bonus bBaseAtk,5;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5306,'Freyja_Crown','Freya\'s Crown',5,0,NULL,500,NULL,12,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,0,328,'bonus2 bSubRace,RC_DemiHuman,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5307,'Carmen_Miranda\'s_Hat','Carmen Miranda\'s Hat',5,20,NULL,400,NULL,3,NULL,0,0xFFFFFFFF,7,0,256,NULL,0,1,329,'bonus bMdef,3; bonus3 bAutoSpellWhenHit,\"DC_WINKCHARM\",1,50;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5307,'Carmen_Miranda\'s_Hat','Carmen Miranda\'s Hat',5,20,NULL,400,NULL,3,NULL,0,0xFFFFFFFF,7,0,256,NULL,0,1,329,'bonus bMdef,3; bonus3 bAutoSpellWhenHit,\"DC_WINKCHARM\",1,50;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5308,'Brazilian_Flag_Hat','Brazil National Flag Hat',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,0,256,NULL,0,1,330,'bonus bSpeedAddRate,25;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5309,'Mahican','Wool Mask',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,0,769,NULL,0,1,331,'skill \"RG_GRAFFITI\",1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5310,'Bulb_Hairband','Shining Electric Bulb Hairband',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,332,'bonus2 bSubEle,Ele_Dark,10; skill \"MG_SIGHT\",1;',NULL,'sc_end SC_SIGHT;'); -REPLACE INTO `item_db` VALUES (5311,'Large_Hibiscus','Large Hisbiscus',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,333,'bonus bMdef,15;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5310,'Bulb_Hairband','Shining Electric Bulb Hairband',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,332,'bonus2 bSubEle,Ele_Dark,10; skill \"MG_SIGHT\",1;',NULL,'sc_end SC_SIGHT;'); +# REPLACE INTO `item_db` VALUES (5311,'Large_Hibiscus','Large Hisbiscus',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,333,'bonus bMdef,15;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5312,'Ayothaya_Hat','Ayothaya King\'s Hat',5,20,NULL,100,NULL,5,NULL,1,0x000654E2,7,2,256,NULL,0,1,334,'bonus bStr,1; bonus2 bAddRace,RC_DemiHuman,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5313,'Diadem','Diadem',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,768,NULL,0,1,335,'bonus bInt,1; bonus bMatkRate,3; bonus bCastrate,-3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5314,'Hockey_Mask','Hockey Mask',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,513,NULL,50,0,336,'bonus2 bAddRace,RC_DemiHuman,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5315,'Observer','Observer',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,35,0,337,'skill \"WZ_ESTIMATION\",1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5316,'Umbrella_Hat','Umbrella Hat',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,338,'bonus2 bSubEle,Ele_Water,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5316,'Umbrella_Hat','Umbrella Hat',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,338,'bonus2 bSubEle,Ele_Water,3;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5317,'Fisherman_Hat','Fisherman\'s Hat',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,339,'bonus3 bAutoSpell,\"WZ_WATERBALL\",3,50;',NULL,NULL); REPLACE INTO `item_db` VALUES (5318,'Poring_Party_Hat','Poring Party Hat',5,20,NULL,700,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,340,'bonus bAllStats,3;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5319,'Hellomother_Hat','Hello Mother Hat',5,20,NULL,200,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,10,1,341,'bonus bLuk,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5320,'Champion_Wreath','Champion Wreath',5,20,NULL,500,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,261,'bonus bAllStats,2; bonus4 bAutoSpellWhenHit,\"AL_HEAL\",1,50,0;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5321,'Indonesian_Bandana','Bandana Merah Putih',5,20,NULL,500,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,342,'bonus2 bAddMonsterDropItem,518,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5322,'Scarf','Kerchief',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,24,0,343,'bonus bFlee,5; bonus bMdef,2;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5322,'Scarf','Kerchief',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,24,0,343,'bonus bFlee,5; bonus bMdef,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5323,'Misstrance_Crown','Misstrance Crown',5,20,NULL,0,NULL,10,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,0,165,'bonus bAllStats,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5324,'Little_Angel_Doll','Little Angel Doll',5,20,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,0,344,'bonus bDex,3; bonus4 bAutoSpellWhenHit,\"CR_GRANDCROSS\",3,30,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (5325,'Robo_Eye','Robo Eye',5,20,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,512,NULL,10,0,345,'bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bMatkRate,2; bonus bDex,1;',NULL,NULL); @@ -2550,7 +2571,7 @@ REPLACE INTO `item_db` VALUES (5331,'Corsair_C','Corsair C',5,1,NULL,500,NULL,10 REPLACE INTO `item_db` VALUES (5332,'Loki_Mask','Loki Mask',5,0,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,7,2,513,NULL,1,0,346,'bonus bFlee2,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5333,'Radio_Antenna','Radio Antenna',5,0,NULL,1500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,0,347,'bonus bMdef,5; bonus bCritical,5; bonus bFlee,5; skill \"MG_LIGHTNINGBOLT\",1; bonus4 bAutoSpellWhenHit,\"MG_THUNDERSTORM\",5,30,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5334,'Angeling_Wanna_Fly','Flapping Angeling',5,0,NULL,700,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,38,1,348,'bonus bLuk,2; bonus bMdef,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5335,'Jumping_Poring','Jumping Poring',5,0,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,349,'bonus bLuk,1; bonus bUnbreakableHelm,0;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5335,'Jumping_Poring','Jumping Poring',5,0,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,349,'bonus bLuk,1; bonus bUnbreakableHelm,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (5336,'Guildsman_Recruiter','Guildsman Recruiter Hat',5,NULL,NULL,0,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,350,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5337,'Party_Recruiter_Hat','Party Recruiter Hat',5,0,NULL,0,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,351,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5338,'Bf_Recruiter_Hat','Bf Recruiter Hat',5,0,NULL,0,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,352,NULL,NULL,NULL); @@ -2573,7 +2594,7 @@ REPLACE INTO `item_db` VALUES (5354,'Muslim_Hat_M','Muslim Hat M',5,20,NULL,100, REPLACE INTO `item_db` VALUES (5355,'Muslim_Hat_F','Selendang',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFE,7,0,256,NULL,0,1,363,'bonus bCastrate,-5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5356,'Pumpkin_Hat_H','Festival Pumpkin Hat',5,20,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,206,'bonus2 bSubRace,RC_Demon,5; bonus2 bAddRace,RC_Demon,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5357,'Wings_Of_Victory','Wings Of Victory',5,20,NULL,0,NULL,10,NULL,0,0xFFFFFFFF,7,2,768,NULL,0,1,365,'bonus bMdef,10; bonus bUnbreakableHelm,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5358,'Pecopeco_Wing_Ears','Peco Ears',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,70,0,366,'bonus bAgi,1; bonus bMdef,2;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5358,'Pecopeco_Wing_Ears','Peco Ears',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,70,0,366,'bonus bAgi,1; bonus bMdef,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5359,'J_Captain_Hat','Ship Captain Hat',5,20,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,1,367,'bonus bLongAtkRate,7; bonus bMaxHP,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (5360,'Whikebain_Ears','Hyuke\'s Black Cat Ears',5,20,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,45,1,368,'bonus bFlee,10; bonus bCritical,3; bonus2 bCriticalAddRace,RC_Boss,10; bonus2 bCriticalAddRace,RC_NonBoss,10; bonus bDefRate,-50; bonus bDef2Rate,-50;',NULL,NULL); REPLACE INTO `item_db` VALUES (5361,'Gang_Scarf','Gangster Scarf',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,60,0,369,'bonus bBaseAtk,5; if(BaseJob == Job_Rogue) skill \"RG_GANGSTER\",1;',NULL,NULL); @@ -2582,17 +2603,17 @@ REPLACE INTO `item_db` VALUES (5363,'Helm_Of_Abyss','Helm Of Abyss',5,20,NULL,10 REPLACE INTO `item_db` VALUES (5364,'Dark_Snake_Lord_Hat','Evil Snake Lord Hat',5,20,NULL,500,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,60,1,372,'bonus bStr,1; bonus bInt,1; bonus bAgi,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5365,'Fried_Egg','Magnolia Hat',5,20,NULL,1000,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,373,'bonus2 bResEff,Eff_Stun,500; skill \"HT_FLASHER\",1;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5366,'Hat_0f_King','Love Dad Bandana',5,20,NULL,200,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,374,'bonus bStr,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5367,'Hyegun_Hat','Hyegun Hat',5,20,NULL,100,NULL,5,NULL,1,0xFFFFFFFF,7,2,769,NULL,10,0,375,'bonus bMdef,3; bonus2 bSubRace,RC_Demon,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5367,'Hyegun_Hat','Hyegun Hat',5,20,NULL,100,NULL,5,NULL,1,0xFFFFFFFF,7,2,769,NULL,10,0,375,'bonus bMdef,3; bonus2 bSubRace,RC_Demon,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (5368,'White_Wing','White Wing',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,1,38,'bonus2 bAddMonsterDropItem,12280,300;',NULL,NULL); REPLACE INTO `item_db` VALUES (5369,'Dark_Wing','Dark Wing',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,1,39,'bonus2 bAddMonsterDropItem,12279,300;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5370,'Orchid_Hairband','Orchid Hairband',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,376,'bonus bInt,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5371,'Hat_Of_Judge','Judge Hat',5,20,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,377,'bonus bLuk,1; bonus bMaxSP,30;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5370,'Orchid_Hairband','Orchid Hairband',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,376,'bonus bInt,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5371,'Hat_Of_Judge','Judge Hat',5,20,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,377,'bonus bLuk,1; bonus bMaxSP,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (5372,'Drooping_White_Kitty','Koneko Hat',5,20,NULL,500,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,378,'bonus bInt,1; bonus bDelayRate,-3; bonus bMatkRate,3; bonus bMaxSPrate,3; bonus bMdef,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5373,'Darkness_Helm','Dark Randgris Helm',5,20,NULL,300,NULL,2,NULL,1,0xFFFFFFFF,7,2,768,NULL,0,1,379,'bonus bDex,4; bonus bMdef,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5374,'L_Magestic_Goat','Gigantic Majestic Goat',5,20,NULL,800,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,380,'bonus2 bAddRace,RC_DemiHuman,12; bonus bBaseAtk,(JobLevel*2)/7;',NULL,NULL); REPLACE INTO `item_db` VALUES (5375,'L_Orc_Hero_Helm','Orc Hero Headdress',5,20,NULL,900,NULL,5,NULL,1,0xFFFFFFFF,7,2,768,NULL,0,1,381,'bonus bStr,3; bonus3 bAutoSpellWhenHit,\"BS_WEAPONPERFECT\",3,10;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5376,'Satanic_Chain_P','Flying Evil Wing',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,382,'bonus bMaxSP,120; bonus3 bAddEffWhenHit,Eff_Curse,100,ATF_SELF;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5377,'Antique_Pipe','Gentleman\'s Pipe',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,383,'bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5377,'Antique_Pipe','Gentleman\'s Pipe',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,383,'bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5378,'Rabbit_Ear_Hat','Bunny Top Hat',5,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,384,'bonus bAgi,3; bonus3 bAutoSpellWhenHit,\"AL_INCAGI\",5,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (5379,'Balloon_Hat','Tam',5,20,NULL,800,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,385,'bonus bMatkRate,2+(getrefine()/2);',NULL,NULL); REPLACE INTO `item_db` VALUES (5380,'Fish_Head_Hat','Fish Head Hat',5,20,NULL,400,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,386,'bonus3 bAutoSpell,\"SA_FROSTWEAPON\",1,5;',NULL,NULL); @@ -2600,12 +2621,12 @@ REPLACE INTO `item_db` VALUES (5381,'Santa_Poring_Hat','Santa Poring Hat',5,20,N REPLACE INTO `item_db` VALUES (5382,'Bell_Ribbon','Bell Ribbon',5,20,NULL,200,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,388,'bonus bVit,1; skill \"AL_ANGELUS\",1;',NULL,'sc_end SC_ANGELUS;'); REPLACE INTO `item_db` VALUES (5383,'Hunting_Cap','Hunter\'s Cap',5,20,NULL,250,NULL,3,NULL,1,0xFFFFFFFE,7,2,256,NULL,50,1,389,'bonus bLuk,1; bonus2 bAddRace,RC_Brute,10; bonus2 bAddRace,RC_DemiHuman,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5384,'Santa_Hat_1','Twin Pompom By JB',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFE,7,2,256,NULL,0,1,390,'bonus bAllStats,1; skill \"WZ_ESTIMATION\",1; bonus3 bAutoSpell,\"AL_INCAGI\",1,500;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5385,'Yoyo_Hat','Yoyo Hat',5,20,NULL,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,20,1,391,'skill \"TF_HIDING\",1;',NULL,'sc_end SC_HIDING;'); +# REPLACE INTO `item_db` VALUES (5385,'Yoyo_Hat','Yoyo Hat',5,20,NULL,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,20,1,391,'skill \"TF_HIDING\",1;',NULL,'sc_end SC_HIDING;'); REPLACE INTO `item_db` VALUES (5386,'Ayam_','Ayam',5,20,NULL,70,NULL,7,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,228,'bonus bMdef,7; bonus bFlee,7; bonus2 bAddMonsterDropItem,12198,200;',NULL,NULL); REPLACE INTO `item_db` VALUES (5387,'Neko_Mimi_Kafra','Neko Mimi Kafra',5,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,1,392,'bonus bMdef,5;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5388,'Snake_Head','Snake Head Hat',5,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFE,7,2,256,NULL,30,1,393,'bonus bDoubleRate,25;',NULL,NULL); REPLACE INTO `item_db` VALUES (5389,'Angel_Spirit','Angel Spirit',5,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFE,7,2,512,NULL,30,0,394,'bonus bHit,15;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5390,'Santa_Hat_2','Frozen Twin Pompom',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,1,395,'bonus2 bResEff,Eff_Freeze,3000;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5390,'Santa_Hat_2','Frozen Twin Pompom',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,1,395,'bonus2 bResEff,Eff_Freeze,3000;',NULL,NULL); REPLACE INTO `item_db` VALUES (5391,'Toast_C','Toast',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,1,NULL,0,0,188,'bonus bMaxHP,100; bonus2 bAddMonsterDropItem,617,10;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5392,'Louyang_Cap','Louyang NewYear Hat',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFE,7,2,256,NULL,0,1,396,'bonus bLuk,2; bonus2 bAddMonsterDropItem,668,3;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5393,'Valentine_Hat','Love Valentine\'s Hat',5,20,NULL,200,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,0,397,'bonus bMaxSPrate,7; bonus bMaxHPrate,7;',NULL,NULL); @@ -2616,40 +2637,40 @@ REPLACE INTO `item_db` VALUES (5396,'Jasper_Crest','Jasper Crest',5,20,NULL,700, REPLACE INTO `item_db` VALUES (5398,'Bone_Head','Bone Head',5,20,NULL,1200,NULL,5,NULL,1,0x000444A2,2,2,256,NULL,85,1,401,'bonus bStr,2; bonus bMdef,5; bonus2 bResEff,Eff_Stun,500; bonus2 bResEff,Eff_Bleeding,500;',NULL,NULL); REPLACE INTO `item_db` VALUES (5399,'Mandragora_Cap','Mandragora Cap',5,20,NULL,300,NULL,1,NULL,1,0xFFFFFFFF,2,2,256,NULL,85,0,402,'bonus bVit,3; bonus3 bAutoSpellWhenHit,\"DC_SCREAM\",5,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (5400,'Fox_Hat','Fox Hat',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,0,769,NULL,0,1,403,'bonus bLuk,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5401,'Black_Glasses','Black Frame Glasses',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,70,0,404,'bonus bInt,1; bonus bMdef,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5402,'Mischievous_Fairy','Mischievous Fairy',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,70,0,405,'bonus bFlee2,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5401,'Black_Glasses','Black Frame Glasses',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,70,0,404,'bonus bInt,1; bonus bMdef,2;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5402,'Mischievous_Fairy','Mischievous Fairy',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,70,0,405,'bonus bFlee2,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5403,'Fish_In_Mouth','Fish In Mouth',5,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,30,0,406,'bonus2 bAddMonsterDropItem,579,500; bonus2 bAddItemHealRate,579,25;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5404,'Blue_Ribbon','Blue Ribbon',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,45,1,407,'bonus4 bAutoSpellWhenHit,\"AC_CONCENTRATION\",2,7,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5405,'Filir_Hat','Filir Hat',5,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,80,0,408,'bonus bShortWeaponDamageReturn,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5406,'Academy_Freshman_Hat','Academy Freshman Hat',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,0,256,NULL,0,NULL,409,'bonus bMaxHP,80; bonus bMaxSP,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5407,'Academy_Graduating_Cap','Academy Completion Hat',5,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,0,256,NULL,0,NULL,410,'bonus bMaxSP,30;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5404,'Blue_Ribbon','Blue Ribbon',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,45,1,407,'bonus4 bAutoSpellWhenHit,\"AC_CONCENTRATION\",2,7,0;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5405,'Filir_Hat','Filir Hat',5,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,80,0,408,'bonus bShortWeaponDamageReturn,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5406,'Academy_Freshman_Hat','Academy Freshman Hat',5,20,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,0,256,NULL,0,NULL,409,'bonus bMaxHP,80; bonus bMaxSP,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5407,'Academy_Graduating_Cap','Academy Completion Hat',5,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,0,256,NULL,0,NULL,410,'bonus bMaxSP,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (5408,'Old_Bandanna','Old Bandana',5,20,NULL,200,NULL,5,NULL,0,0xFFFFFFFF,7,0,256,NULL,0,NULL,6,'bonus bInt,2; bonus bMaxSP,50; bonus bCastrate,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (5409,'New_Cowboy_Hat','Purple Cowboy Hat',5,20,NULL,500,NULL,4,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,411,'bonus bMaxSP,50; bonus bInt,2; bonus bVit,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5410,'Bread_Bag2','Brown Paperbag Hat',5,20,NULL,200,NULL,6,NULL,0,0xFFFFFFFF,7,2,769,NULL,0,1,412,'bonus bMaxHP,100; bonus2 bResEff,Eff_Stun,400; bonus2 bSubRace,RC_DemiHuman,4;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5410,'Bread_Bag2','Brown Paperbag Hat',5,20,NULL,200,NULL,6,NULL,0,0xFFFFFFFF,7,2,769,NULL,0,1,412,'bonus bMaxHP,100; bonus2 bResEff,Eff_Stun,400; bonus2 bSubRace,RC_DemiHuman,4;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5411,'White_Snake_Hat','White Snake Hat',5,20,NULL,500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,413,'bonus bDex,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5412,'Sweet_Candy','Sweet Candy',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,414,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5412,'Sweet_Candy','Sweet Candy',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,414,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5413,'Popcorn_Hat','Pop Corn Hat',5,20,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,415,'bonus2 bSubEle,Ele_Wind,10;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5414,'Campfire_Hat','Camp Fire Hat',5,20,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,416,'bonus4 bAutoSpellWhenHit,\"MG_FIREBALL\",5,100,1; bonus2 bSubEle,Ele_Fire,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (5415,'Poring_Cake_Cap','Poring Cake Hat',5,20,NULL,1000,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,40,1,417,'bonus bMdef,5; bonus bCritical,5; bonus bFlee,5; bonus bFlee2,5; bonus bAspdRate,5; bonus bCastrate,-5; bonus bDelayRate,-5;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5416,'Beer_Cap','Beer Hat',5,20,NULL,600,NULL,2,NULL,0,0xFFFFFFFE,7,2,256,NULL,18,1,418,'bonus bFlee2,5; skill \"SM_RECOVERY\",3; skill \"MG_SRECOVERY\",3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5417,'Crown_Parrot','Crown Parrots',5,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,419,'bonus2 bResEff,Eff_Silence,10000; bonus3 bAutoSpell,\"DC_SCREAM\",1,50; bonus bInt,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5418,'Soldier_Hat','Legionnaire Hat',5,20,NULL,400,NULL,4,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,420,'bonus bStr,1; bonus2 bAddRace,RC_NonBoss,3; bonus2 bAddRace,RC_Boss,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5417,'Crown_Parrot','Crown Parrots',5,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,0,419,'bonus2 bResEff,Eff_Silence,10000; bonus3 bAutoSpell,\"DC_SCREAM\",1,50; bonus bInt,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5418,'Soldier_Hat','Legionnaire Hat',5,20,NULL,400,NULL,4,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,420,'bonus bStr,1; bonus2 bAddRace,RC_NonBoss,3; bonus2 bAddRace,RC_Boss,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5419,'Evolved_Leaf','Leaves Of Grass',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,57,'bonus bVit,1; bonus2 bSubRace,RC_Plant,5;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (5420,'Mask_Of_Ifrit','Mask Of Ifrit',5,NULL,NULL,0,NULL,8,NULL,0,0xFFFFFFFE,7,2,769,NULL,70,0,421,'bonus bStr,1; bonus bInt,1; bonus bMdef,5; bonus2 bSubEle,Ele_Fire,10; bonus2 bSubEle,Ele_Water,-10; skill \"MG_SIGHT\",1; bonus3 bAutoSpellWhenHit,\"WZ_METEOR\",3,50; bonus3 bAutoSpell,\"MG_FIREBOLT\",3,50;',NULL,'sc_end SC_SIGHT;'); +REPLACE INTO `item_db` VALUES (5420,'Mask_Of_Ifrit','Mask Of Ifrit',5,NULL,NULL,0,NULL,8,NULL,0,0xFFFFFFFE,7,2,769,NULL,70,0,421,'bonus bStr,1; bonus bInt,1; bonus bMdef,5; bonus2 bSubEle,Ele_Fire,10; bonus2 bSubEle,Ele_Water,-10; skill \"MG_SIGHT\",1; bonus3 bAutoSpellWhenHit,\"WZ_METEOR\",3,50; bonus3 bAutoSpell,\"MG_FIREBOLT\",3,50;',NULL,'sc_end SC_SIGHT;'); REPLACE INTO `item_db` VALUES (5421,'Ifrit\'s_Ear','Ears Of Ifrit',5,NULL,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,512,NULL,70,0,422,'bonus bStr,1; bonus bMdef,3; bonus2 bSkillAtk,\"MG_FIREBOLT\",2; bonus2 bSkillAtk,\"WZ_FIREPILLAR\",2; bonus2 bSkillAtk,\"WZ_METEOR\",2; bonus2 bSkillAtk,\"SM_BASH\",2; bonus2 bSkillAtk,\"SM_MAGNUM\",2; bonus2 bSkillAtk,\"KN_PIERCE\",2; bonus2 bSubEle,Ele_Fire,5; bonus2 bSubEle,Ele_Water,-5;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5422,'Linguistic_Book_Cap','Linguistic Book Hat',5,NULL,NULL,70,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,423,'bonus bInt,1; bonus bMdef,2;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5423,'Lovecap_China','I Love China',5,NULL,NULL,250,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,424,'bonus bDex,3; bonus2 bSubRace,RC_DemiHuman,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5424,'Fanta_Orange_Can','Fanta Orange Can Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,425,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5425,'Fanta_Grape_Can','Fanta Grape Can Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,426,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5426,'Karada_Meguri_Tea_Hat','Karada Meguricha Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,427,'bonus bLuk,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5427,'Royal_Milk_Tea_Hat','Black Tea Kochakaden Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,428,'bonus bAgi,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5424,'Fanta_Orange_Can','Fanta Orange Can Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,425,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5425,'Fanta_Grape_Can','Fanta Grape Can Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,426,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5426,'Karada_Meguri_Tea_Hat','Karada Meguricha Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,427,'bonus bLuk,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5427,'Royal_Milk_Tea_Hat','Black Tea Kochakaden Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,428,'bonus bAgi,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5428,'Bread_Bag1','RWC Anniversary Bread Envelope',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,769,NULL,0,1,429,'bonus2 bSubRace,RC_DemiHuman,12;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5429,'Bogy_Cap','Bogy Cap',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,430,'bonus bHPrecovRate,5; bonus bSPrecovRate,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5430,'Sacred_Torch_Coronet','Torch Cap',5,NULL,NULL,250,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,431,'bonus2 bSubEle,Ele_Fire,20; skill \"MG_FIREBOLT\",5;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5430,'Sacred_Torch_Coronet','Torch Cap',5,NULL,NULL,250,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,431,'bonus2 bSubEle,Ele_Fire,20; skill \"MG_FIREBOLT\",5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5431,'Chicken_Hat','Chicken Hat',5,NULL,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,0,432,'bonus3 bAutoSpell,\"MC_LOUD\",1,30; bonus bAspdRate,5;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5432,'Brazil_Baseball_Cap','bRO 4th Anniversary Hat',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,433,'bonus bAllStats,4;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5433,'Golden_Wreath','Golden Laurel',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,434,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5434,'Coke_Hat','Coca Cola Can Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,435,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5434,'Coke_Hat','Coca Cola Can Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,435,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5435,'Red_Minstrel_Hat','Red Minstrel Hat',5,NULL,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,40,1,436,'bonus bInt,1; bonus bMaxSP,80; bonus bMdef,3; if(getrefine()>5) { bonus bMdef,getrefine()-5; bonus bMaxSP,(getrefine()-5)*10; }',NULL,NULL); REPLACE INTO `item_db` VALUES (5436,'Bride\'s_Corolla','Bride\'s Corolla',5,NULL,NULL,200,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,437,'bonus bLuk,3; bonus bMdef,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5437,'Flower_Of_Fairy','Fairy Flower',5,NULL,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,438,'bonus bInt,1; bonus bMdef,1; bonus2 bSubRace,RC_Insect,5;',NULL,NULL); @@ -2666,46 +2687,46 @@ REPLACE INTO `item_db` VALUES (5447,'Frog_Cap','Frog Hat',5,NULL,NULL,500,NULL,3 REPLACE INTO `item_db` VALUES (5448,'Solo_Play_Box1','Soloplay Box1',5,NULL,NULL,300,NULL,0,NULL,1,0xFFFFFFFF,7,2,769,NULL,0,1,449,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5449,'Solo_Play_Box2','Soloplay Box2',5,NULL,NULL,300,NULL,0,NULL,1,0xFFFFFFFF,7,2,769,NULL,0,1,450,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5450,'Sun_Cap','Solar Hat',5,NULL,NULL,1000,NULL,0,NULL,0,0xFFFFFFFE,7,2,256,NULL,20,1,451,NULL,NULL,NULL); -# REPLACE INTO `item_db` VALUES (5451,'Dragonhelm_Gold','RWC 2008 Dragon Helm Gold',5,NULL,NULL,2500,NULL,7,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,452,'bonus bAspdRate,10; bonus bAllStats,3; bonus2 bAddRace,RC_DemiHuman,5;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (5452,'Dragonhelm_Silver','RWC 2008 Dragon Helm Silver',5,NULL,NULL,2500,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,453,'bonus bAspdRate,7; bonus bAllStats,2; bonus2 bAddRace,RC_DemiHuman,3;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (5453,'Dragonhelm_Copper','RWC 2008 Dragon Helm Copper',5,NULL,NULL,2500,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,454,'bonus bAspdRate,5; bonus bAllStats,2; bonus2 bAddRace,RC_DemiHuman,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5451,'Dragonhelm_Gold','RWC 2008 Dragon Helm Gold',5,NULL,NULL,2500,NULL,7,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,452,'bonus bAspdRate,10; bonus bAllStats,3; bonus2 bAddRace,RC_DemiHuman,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5452,'Dragonhelm_Silver','RWC 2008 Dragon Helm Silver',5,NULL,NULL,2500,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,453,'bonus bAspdRate,7; bonus bAllStats,2; bonus2 bAddRace,RC_DemiHuman,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5453,'Dragonhelm_Copper','RWC 2008 Dragon Helm Copper',5,NULL,NULL,2500,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,454,'bonus bAspdRate,5; bonus bAllStats,2; bonus2 bAddRace,RC_DemiHuman,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5454,'Dog_Cap_','Puppy Hat',5,NULL,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,234,'autobonus \"{ bonus bCritical,100; }\",10,3000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\"; autobonus \"{ bonus bIgnoreMdefRate,100; }\",10,3000,BF_MAGIC,\"{ specialeffect2 EF_MAGICALATTHIT; }\";',NULL,NULL); REPLACE INTO `item_db` VALUES (5455,'Geographer_Band_','Decorative Geographer',5,NULL,NULL,500,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,238,'bonus3 bAutoSpell,\"AL_HEAL\",5,50; bonus3 bAutoSpellWhenHit,\"AL_HEAL\",5,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (5456,'Vacation_Hat_','Summer Hat',5,NULL,NULL,200,NULL,0,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,315,'bonus bHPrecovRate,20; bonus bSPrecovRate,15;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5457,'Spring_Rabbit_Hat','Moon Rabbit Hat',5,NULL,NULL,300,NULL,2,NULL,1,0xFFFFFFFE,7,2,256,NULL,0,1,455,'bonus bAgi,3; bonus bAtkRate,5; bonus bMatkRate,5; if (getrefine()>4) { bonus bAtkRate,getrefine()-4; bonus bMatkRate,getrefine()-4; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5458,'Pinwheel_Cap','Pinwheel Hat',5,NULL,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,456,'bonus bHPrecovRate,5; bonus bHPrecovRate,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5457,'Spring_Rabbit_Hat','Moon Rabbit Hat',5,NULL,NULL,300,NULL,2,NULL,1,0xFFFFFFFE,7,2,256,NULL,0,1,455,'bonus bAgi,3; bonus bBaseAtk,5; bonus bMatkRate,5; if (getrefine()>4) { bonus bBaseAtk,getrefine()-4; bonus bMatkRate,getrefine()-4; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5458,'Pinwheel_Cap','Pinwheel Hat',5,NULL,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,456,'bonus bHPrecovRate,5; bonus bHPrecovRate,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5459,'Drooping_Bunny_Chusuk','Drooping Bunny',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,249,'bonus bDex,1; bonus bFlee,2;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5460,'Adv_Dragon_Skull','Evolved Dragon Skull Hat',5,NULL,NULL,1000,NULL,7,NULL,0,0xFFFFFFFF,7,2,256,NULL,60,1,457,'bonus bAllStats,2; bonus bMaxHPrate,3;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5461,'Adv_Whisper_Mask','Evolved Whisper Mask',5,NULL,NULL,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,769,NULL,50,1,458,'bonus bDex,3; bonus2 bSubEle,Ele_Ghost,20;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (5462,'Spiked_Scarf','Spiked Scarf',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,90,1,459,'bonus bVit,1; bonus2 bAddRace,RC_DemiHuman,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (5463,'Rainbow_Scarf','Rainbow Scarf',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,90,1,460,'bonus bInt,1; bonus bMdef,2; bonus bMatkRate,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5462,'Spiked_Scarf','Spiked Scarf',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,90,0,459,'bonus bVit,1; bonus2 bAddRace,RC_DemiHuman,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5463,'Rainbow_Scarf','Rainbow Scarf',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,90,0,460,'bonus bInt,1; bonus bMdef,2; bonus bMatkRate,1;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5464,'Zaha_Doll_Hat','Zaha Doll Hat',5,NULL,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,0,461,'bonus bInt,2; skill \"PR_MAGNIFICAT\",3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5465,'Celestial_Hat','Hat Of Fortune',5,NULL,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,40,1,462,'bonus bLuk,2; bonus bMdef,5; if(getrefine()>4) bonus bLuk,getrefine()-4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5466,'Wind_Milestone','Wind Milestone',5,NULL,NULL,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,463,'bonus bAgi,2; skill \"AL_TELEPORT\",1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5467,'Helm_Of_Dragoon','Helm Of Dragon',5,NULL,NULL,200,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,464,'bonus2 bAddRace,RC_Dragon,20; bonus3 bAutoSpell,\"NPC_DRAGONFEAR\",1,30;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5465,'Celestial_Hat','Hat Of Fortune',5,NULL,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,40,1,462,'bonus bLuk,2; bonus bMdef,5; if(getrefine()>4) bonus bLuk,getrefine()-4;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5466,'Wind_Milestone','Wind Milestone',5,NULL,NULL,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,463,'bonus bAgi,2; skill \"AL_TELEPORT\",1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5467,'Helm_Of_Dragoon','Helm Of Dragon',5,NULL,NULL,200,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,464,'bonus2 bAddRace,RC_Dragon,20; bonus3 bAutoSpell,\"NPC_DRAGONFEAR\",1,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (5468,'Parade_Cap','Parade Hat',5,NULL,NULL,800,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,465,'bonus bDelayRate,-5; bonus bMdef,2; if(getrefine()>5) bonus bCastrate,-(getrefine()-5);',NULL,NULL); -REPLACE INTO `item_db` VALUES (5469,'Noble_Hat','Musketeer Hat',5,NULL,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,466,'bonus bStr,2; bonus3 bAutoSpellWhenHit,\"BS_ADRENALINE\",1,7;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5470,'Eyes_Of_Darkness','Eye Of Darkness',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,50,1,467,'bonus bDex,1; bonus2 bResEff,Eff_Blind,10000;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5471,'Hairband_Of_Reginleif','Hairband Of Reginleif',5,NULL,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,50,1,468,'bonus2 bSubEle,Ele_Water,3; bonus2 bSubEle,Ele_Fire,3; bonus2 bSubEle,Ele_Undead,3; bonus2 bSubEle,Ele_Ghost,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5472,'Red_White_Hat','Red Hat',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,469,'bonus3 bAddMonsterDropItem,550,RC_DemiHuman,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5473,'Forceps_Hairpin','Nipper Crab Hairpin',5,NULL,NULL,500,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,470,'bonus3 bAutoSpellWhenHit,\"MG_COLDBOLT\",1,100; bonus3 bAddMonsterDropItem,991,RC_Fish,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5474,'Notice_Board','AFK Hat',5,NULL,NULL,700,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,471,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5475,'Cube_Mask','Mask Cube',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,513,NULL,0,1,472,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5469,'Noble_Hat','Musketeer Hat',5,NULL,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,466,'bonus bStr,2; bonus3 bAutoSpellWhenHit,\"BS_ADRENALINE\",1,7;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5470,'Eyes_Of_Darkness','Eye Of Darkness',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,50,0,467,'bonus bDex,1; bonus2 bResEff,Eff_Blind,10000;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5471,'Hairband_Of_Reginleif','Hairband Of Reginleif',5,NULL,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,50,0,468,'bonus2 bSubEle,Ele_Water,3; bonus2 bSubEle,Ele_Fire,3; bonus2 bSubEle,Ele_Undead,3; bonus2 bSubEle,Ele_Ghost,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5472,'Red_White_Hat','Red Hat',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,469,'bonus3 bAddMonsterDropItem,550,RC_DemiHuman,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5473,'Forceps_Hairpin','Nipper Crab Hairpin',5,NULL,NULL,500,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,470,'bonus3 bAutoSpellWhenHit,\"MG_COLDBOLT\",1,100; bonus3 bAddMonsterDropItem,991,RC_Fish,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5474,'Notice_Board','AFK Hat',5,NULL,NULL,700,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,471,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5475,'Cube_Mask','Mask Cube',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,513,NULL,0,1,472,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5476,'Hairband_Of_Grandpeco','Grand Peco Hairband',5,NULL,NULL,800,NULL,2,NULL,0,0xFFFFFFFF,7,2,768,NULL,30,1,473,'bonus bStr,2; bonus bMaxHPrate,-10; bonus2 bAddRace2,3,15;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5477,'Bro_Flag','Brazilian Flag Hat',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,474,'skill \"SM_BASH\",1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5478,'Classic_Hat','Classic Hat',5,NULL,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,475,'bonus bStr,2; bonus bMaxHP,300;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5478,'Classic_Hat','Classic Hat',5,NULL,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,475,'bonus bStr,2; bonus bMaxHP,300;',NULL,NULL); REPLACE INTO `item_db` VALUES (5479,'Shaman\'s_Hair_Ornament','Shaman\'s Hair Decoration',5,NULL,NULL,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,476,'bonus bMdef,3; bonus bMaxHP,50; bonus2 bSubEle,Ele_Neutral,5; if(isequipped(2777,2778)) { bonus bMaxHP,300; bonus bMatkRate,5; bonus2 bSubEle,Ele_Neutral,5; }',NULL,NULL); REPLACE INTO `item_db` VALUES (5480,'Bizofnil_Wing_Deco','Bijofnil Wings',5,NULL,NULL,1000,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,1,477,'bonus3 bAutoSpell,\"PR_IMPOSITIO\",3,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5481,'Hermose_Cap','Hermode Cap',5,NULL,NULL,1000,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,1,1,478,'bonus bAspdRate,10; bonus bBaseAtk,-20; bonus bMatkRate,-10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5482,'Dark_Knight_Mask','Dark Knight Mask',5,NULL,NULL,3000,NULL,5,NULL,0,0xFFFFFFFF,7,2,769,NULL,80,1,479,'bonus bStr,3; if(isequipped(2779,2780)) { bonus bMatkRate,10; bonus bInt,5; bonus2 bSubRace,RG_Angel,10; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5483,'Odin_Mask','Odin Mask',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFE,7,2,512,NULL,50,1,480,'bonus bHit,-10; bonus2 bAddRace,RC_Demihuman,6;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5482,'Dark_Knight_Mask','Dark Knight Mask',5,NULL,NULL,3000,NULL,5,NULL,0,0xFFFFFFFF,7,2,769,NULL,80,1,479,'bonus bStr,3; if(isequipped(2779,2780)) { bonus bMatkRate,10; bonus bInt,5; bonus2 bSubRace,RC_Angel,10; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (5483,'Odin_Mask','Odin Mask',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFE,7,2,513,NULL,50,0,480,'bonus bHit,-10; bonus2 bAddRace,RC_Demihuman,6;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5484,'Taiwan_Flag_Hat','Holidays Hat',5,NULL,NULL,500,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,482,'bonus bAllStats,5; bonus2 bResEff,Eff_Stun,500;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5485,'Tiger_Face','Tiger Face',5,NULL,NULL,1000,NULL,3,NULL,0,0xFFFFFFFF,7,2,769,NULL,60,1,483,'bonus2 bSubRace,RC_Brute,5; bonus2 bAddRace,RC_Brute,5; bonus2 bMagicAddRace,RC_Brute,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5486,'J_Anniversary_Hat','Anniversary Hat',5,NULL,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,395,'bonus bAllStats,2;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5485,'Tiger_Face','Tiger Face',5,NULL,NULL,1000,NULL,3,NULL,0,0xFFFFFFFF,7,2,769,NULL,60,1,483,'bonus2 bSubRace,RC_Brute,5; bonus2 bAddRace,RC_Brute,5; bonus2 bMagicAddRace,RC_Brute,5;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5486,'J_Anniversary_Hat','Anniversary Hat',5,NULL,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,395,'bonus bAllStats,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5487,'J_Poringcake_Hat','Poring Cake Hat',5,NULL,NULL,500,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,417,'bonus bLuk,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5488,'J_Twin_Santahat','Twin Santa Hat',5,NULL,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,390,'bonus bLuk,1; bonus bMdef,1;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5489,'Love_Daddy','Love Daddy Hat',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,484,'bonus bDex,2;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (5490,'Anubis_Helm','Anubis Helm',5,NULL,NULL,0,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,485,'bonus2 bSubRace,RC_Boss,10; bonus2 bSkillHeal2,\"AL_HEAL\",10; bonus2 bAddItemHealRate,IG_Recovery,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5490,'Anubis_Helm','Anubis Helm',5,NULL,NULL,0,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,485,'bonus2 bSubRace,RC_Boss,10; bonus bHealpower2,10; bonus bAddItemHealRate,10;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5491,'Hat_Of_Outlaw','Bandit Hat',5,NULL,NULL,800,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,486,'bonus bStr,2; bonus2 bSubEle,Ele_Fire,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (5492,'Boy\'s_Cap_I','Student Cap',5,0,NULL,0,NULL,5,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,1,102,'bonus2 bAddRace,RC_DemiHuman,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5493,'Ulle_Cap_I','Ulle\'s Cap',5,0,NULL,0,NULL,3,NULL,0,0xFFFFFFFE,7,2,256,NULL,0,1,254,'bonus bDex,2; bonus bAgi,1; if(isequipped(2353) && readparam(bDex)>=70) bonus bUseSPrate,-10;',NULL,NULL); @@ -2713,48 +2734,48 @@ REPLACE INTO `item_db` VALUES (5494,'Spinx_Helm_I','Sphinx Hat',5,0,NULL,0,NULL, # REPLACE INTO `item_db` VALUES (5495,'Power_Of_Thor','Power Of Thor',5,0,NULL,500,NULL,6,NULL,1,0xFFFFFFFF,7,2,256,NULL,75,0,493,'bonus bFlee,5; bonus bAllStats,1;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5496,'Dice_Hat','Dice Hat',5,0,NULL,500,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,0,494,'bonus bLuk,4;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5497,'King_Tiger_Doll_Hat','King Tiger Doll Hat',5,0,NULL,400,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,0,495,'bonus bStr,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5498,'Wondering_Wolf_King_Hel','Wandering Wolf Hat',5,NULL,NULL,600,NULL,5,NULL,0,0xFFFFFFFE,7,2,768,NULL,50,0,490,'bonus bFlee,10; bonus bVit,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5499,'Pizza_Hat','Pizza Hat',5,20,NULL,6000,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,487,'skill \"SM_PROVOKE\",1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5500,'Icecream_Hat','Icecream Hat',5,20,NULL,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,488,'skill \"MG_FROSTDIVER\",3; bonus bMdef,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5501,'Pirate\'s_Pride','Pirate\'s Pride',5,20,NULL,100,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,496,'bonus2 bAddRace2,6,5; bonus2 bSubRace2,6,5;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5498,'Wondering_Wolf_King_Hel','Wandering Wolf Hat',5,NULL,NULL,600,NULL,5,NULL,0,0xFFFFFFFE,7,2,768,NULL,50,0,490,'bonus bFlee,10; bonus bVit,5;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5499,'Pizza_Hat','Pizza Hat',5,20,NULL,6000,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,487,'skill \"SM_PROVOKE\",1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5500,'Icecream_Hat','Icecream Hat',5,20,NULL,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,30,1,488,'skill \"MG_FROSTDIVER\",3; bonus bMdef,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5501,'Pirate\'s_Pride','Pirate\'s Pride',5,20,NULL,100,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,10,1,496,'bonus2 bAddRace2,6,5; bonus2 bSubRace2,6,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5502,'Necromencer\'s_Hood','Necromancer\'s Hood',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,768,NULL,10,1,491,'bonus5 bAutoSpellWhenHit,\"NPC_DARKSTRIKE\",5,5,BF_WEAPON|BF_MAGIC,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5503,'Rabbit_Magic_Hat','Magic Rabit Hat',5,20,NULL,800,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,'bonus bDex,2; bonus bAgi,2; bonus bMDef,1; bonus bMaxSP,50; bonus3 bAutoSpellWhenHit,\"MG_FIREBOLT\",1,10; bonus3 bAutoSpellWhenHit,\"MG_COLDBOLT\",1,10; bonus3 bAutoSpellWhenHit,\"MG_LIGHTNINGBOLT\",1,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5504,'China_Wedding_Veil','Wedding Weil',5,20,NULL,500,NULL,1,NULL,0,0xFFFFFFFF,7,2,768,NULL,70,1,489,'bonus bMDef,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5504,'China_Wedding_Veil','Wedding Weil',5,20,NULL,500,NULL,1,NULL,0,0xFFFFFFFF,7,2,768,NULL,70,1,489,'bonus bMDef,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (5505,'Asara_Fairy_Hat','Asara Fairy Hat',5,20,NULL,500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,492,'skill \"DC_DONTFORGETME\",1; bonus bDex,2; bonus bLuk,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5506,'Blue_Pajamas_Hat','Blue Night Cap',5,20,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,501,'bonus bBaseAtk,5; bonus bMatkRate,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5507,'Pink_Pajamas_Hat','Pink Night Cap',5,20,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,502,'bonus bBaseAtk,5; bonus bMatkRate,5;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5506,'Blue_Pajamas_Hat','Blue Night Cap',5,20,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,501,'bonus bBaseAtk,5; bonus bMatkRate,5;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5507,'Pink_Pajamas_Hat','Pink Night Cap',5,20,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,502,'bonus bBaseAtk,5; bonus bMatkRate,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5508,'Shark_Hat','Shark Hat',5,NULL,NULL,500,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,503,'bonus bStr,1; bonus bAgi,2; bonus bMdef,1; bonus2 bAddEle,Ele_Water,5; bonus2 bSubEle,Ele_Water,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (5509,'Sting_Hat','Sting hat',5,20,NULL,100,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,504,'bonus bStr,2; bonus bVit,1; bonus bMDef,3; bonus2 bAddEle,Ele_fire,5; bonus2 bSubEle,Ele_earth,5; bonus3 bAutoSpell,\"WZ_EARTHSPIKE\",1,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5510,'Shower_Cap','Shower Cap',5,20,NULL,0,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,507,'bonus bMdef,3; bonus bFlee,3; bonus2 bAddEle,Ele_Water,10; bonus2 bSubRace,rc_fish,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5510,'Shower_Cap','Shower Cap',5,20,NULL,0,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,507,'bonus bMdef,3; bonus bFlee,3; bonus2 bAddEle,Ele_Water,10; bonus2 bSubRace,rc_fish,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (5511,'Samambaia','Samambaia',5,NULL,NULL,1000,NULL,5,NULL,1,0xFFFFFFFF,7,2,768,NULL,30,1,508,'bonus bSPrecovRate,8;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5512,'Aquarius_Diadem','Aquarius Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,509,'bonus bStr,2; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5513,'Aquarius_Crown','Aquarius Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,510,'bonus bStr,2; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5514,'Pisces_Diadem','Pisces Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,511,'bonus bInt,2; bonus bMDef,5; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bMatkRate,2; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5515,'Pisces_Crown','Pisces Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,512,'bonus bInt,2; bonus bMDef,5; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bMatkRate,2; }',NULL,NULL); -# REPLACE INTO `item_db` VALUES (5516,'Hawk_Eyes01','hawk Eyes',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,NULL,NULL,NULL); -# REPLACE INTO `item_db` VALUES (5517,'Hawk_Eyes02','Hawk Eyes',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5518,'L_Magestic_Goat2','Gigantic Majestic Goat',5,20,NULL,800,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,513,'bonus2 bSubRace,RC_DemiHuman,12; bonus bBaseAtk,(JobLevel*2)/7;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5519,'Peacock_Feather','Peacock Feather',5,20,NULL,800,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,514,'bonus bInt,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5520,'Rabbit_Earplug','Rabbit Earplugs',5,NULL,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,7,2,768,NULL,1,1,515,'bonus bAtkRate,4; bonus bMatkRate,4;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5512,'Aquarius_Diadem','Aquarius Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,509,'bonus bStr,2; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5513,'Aquarius_Crown','Aquarius Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,510,'bonus bStr,2; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5514,'Pisces_Diadem','Pisces Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,511,'bonus bInt,2; bonus bMDef,5; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bMatkRate,2; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5515,'Pisces_Crown','Pisces Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,512,'bonus bInt,2; bonus bMDef,5; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bMatkRate,2; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (5516,'Hawk_Eyes01','hawk Eyes',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5517,'Hawk_Eyes02','Hawk Eyes',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5518,'L_Magestic_Goat2','Gigantic Majestic Goat',5,20,NULL,800,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,513,'bonus2 bSubRace,RC_DemiHuman,12; bonus bBaseAtk,(JobLevel*2)/7;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5519,'Peacock_Feather','Peacock Feather',5,20,NULL,800,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,514,'bonus bInt,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5520,'Rabbit_Earplug','Rabbit Earplugs',5,NULL,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,7,2,768,NULL,1,1,515,'bonus2 bAddRace,RC_NonBoss,4; bonus2 bAddRace,RC_Boss,4; bonus bMatkRate,4;',NULL,NULL); REPLACE INTO `item_db` VALUES (5521,'Angry_Mouth_C','Angry Mouth',5,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,0,194,'bonus bDelayRate,-3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5522,'Fanta_Zero_Lemon_Hat','Fanta Zero Lemon Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,516,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5523,'Sakura_Mist_Hat','Sakura Mist Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,517,'bonus bDex,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5524,'Sakura_Milk_Tea_Hat','Sakura Milk Tea Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,518,'bonus bVit,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5525,'First_Leaf_Tea_Hat','Flower Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,519,'bonus bMaxHP,80; bonus bMaxSP,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5526,'Lady_Tanee_Doll','Tanigumi Girl Doll',5,NULL,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,60,1,520,'bonus bAgi,2; bonus bFlee,3; bonus2 bAddEle,Ele_Wind,-5; bonus2 bAddMonsterDropItem,513,200;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5522,'Fanta_Zero_Lemon_Hat','Fanta Zero Lemon Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,516,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5523,'Sakura_Mist_Hat','Sakura Mist Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,517,'bonus bDex,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5524,'Sakura_Milk_Tea_Hat','Sakura Milk Tea Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,518,'bonus bVit,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5525,'First_Leaf_Tea_Hat','Flower Hat',5,NULL,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,519,'bonus bMaxHP,80; bonus bMaxSP,20;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5526,'Lady_Tanee_Doll','Tanigumi Girl Doll',5,NULL,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,60,1,520,'bonus bAgi,2; bonus bFlee,3; bonus2 bAddEle,Ele_Wind,-5; bonus2 bAddMonsterDropItem,513,200;',NULL,NULL); REPLACE INTO `item_db` VALUES (5527,'Lunatic_Hat','Lunatic Hat',5,NULL,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,521,'bonus bLuk,5; bonus bMdef,2; bonus bFlee2,5; bonus2 bAddMonsterDropItem,622,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5528,'King_Frog_Hat','Frog King Hat',5,NULL,NULL,500,NULL,2,NULL,1,0xFFFFFFFE,7,2,256,NULL,30,1,522,'bonus bAgi,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5528,'King_Frog_Hat','Frog King Hat',5,NULL,NULL,500,NULL,2,NULL,1,0xFFFFFFFE,7,2,256,NULL,30,1,522,'bonus bAgi,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5529,'Evil\'s_Bone_Hat','Satanic Bone Helm',5,20,NULL,600,NULL,6,NULL,1,0xFFFFFFFF,7,2,256,NULL,70,1,523,'bonus bDex,3; bonus2 bSubEle,Ele_Neutral,5; skill \"WZ_FROSTNOVA\",1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5530,'Raven_Cap','Raven Cap',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,1,524,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5531,'B_Dragon_Hat','Baby Dragon Hat',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,525,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5532,'Pirate_Dagger_J','Pirate Dagger',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,1,327,'bonus bShortWeaponDamageReturn,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5533,'Emperor_Wreath_J','Emperor Wreath',5,NULL,NULL,800,NULL,3,NULL,1,0xFFFFFFFF,7,2,1,NULL,80,1,261,'bonus bAllStats,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5530,'Raven_Cap','Raven Cap',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,1,524,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5531,'B_Dragon_Hat','Baby Dragon Hat',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,525,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5532,'Pirate_Dagger_J','Pirate Dagger',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,1,327,'bonus bShortWeaponDamageReturn,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (5533,'Emperor_Wreath_J','Emperor Wreath',5,NULL,NULL,800,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,80,1,261,'bonus bAllStats,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5534,'Fox_Hat_J','Fox Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,0,769,NULL,70,1,403,'bonus bAgi,1; bonus bFlee2,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5535,'Side_Cap','Side Cap',5,20,NULL,500,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,529,'bonus2 bSubRace,RC_DemiHuman,5; bonus2 bAddRace,RC_DemiHuman,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5536,'Spare_Card','Spare Card',5,20,NULL,10,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,10,1,526,'bonus2 bAddMonsterDropItem,6187,1000;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5537,'Kwati_Hat','Kwati Hat',5,20,NULL,700,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,45,0,527,'bonus bAgi,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5538,'Tucano_Hat','Tucano Hat',5,20,NULL,600,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,45,0,528,'bonus bDex,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5539,'Jaguar_Hat','Jaguar Hat',5,20,NULL,400,NULL,4,NULL,1,0xFFFFFFFF,7,2,769,NULL,25,1,530,'bonus bMdef,2; skill \"MC_LOUD\",1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5537,'Kwati_Hat','Kwati Hat',5,20,NULL,700,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,45,0,527,'bonus bAgi,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5538,'Tucano_Hat','Tucano Hat',5,20,NULL,600,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,45,0,528,'bonus bDex,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5539,'Jaguar_Hat','Jaguar Hat',5,20,NULL,400,NULL,4,NULL,1,0xFFFFFFFF,7,2,769,NULL,25,1,530,'bonus bMdef,2; skill \"MC_LOUD\",1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5540,'Freya_Soul_Circlet1','Freya Soul Circlet',5,20,NULL,700,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,20,1,18,'bonus bStr,1; bonus bint,1; bonus bDex,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5541,'Freya_Soul_Circlet2','Freya Soul Circlet',5,20,NULL,700,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,20,1,18,'bonus bStr,1; bonus bint,1; bonus bDex,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5542,'Freya_Soul_Circlet3','Freya Soul Circlet',5,20,NULL,700,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,20,1,18,'bonus bStr,1; bonus bint,1; bonus bDex,1;',NULL,NULL); @@ -2762,68 +2783,68 @@ REPLACE INTO `item_db` VALUES (5543,'Freya_Soul_Circlet4','Freya Soul Circlet',5 REPLACE INTO `item_db` VALUES (5544,'Guardian_Hat','Guardian Hat',5,20,NULL,400,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,240,'bonus bInt,1; bonus bMaxSP,50;',NULL,NULL); REPLACE INTO `item_db` VALUES (5545,'Aries_Diadem','Aries Diadem',5,20,NULL,400,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,531,'bonus bVit,2; bonus2 bSubEle,Ele_fire,5; if(getrefine()>6) { bonus bDef,1; bonus bVit,1; }',NULL,NULL); REPLACE INTO `item_db` VALUES (5546,'Aries_Crown','Aries Crown',5,20,NULL,100,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,532,'bonus bVit,2; bonus2 bSubEle,Ele_fire,5; if(getrefine()>6) { bonus bDef,1; bonus bVit,1; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5547,'RJC_Katyusha_Flower','RJC Katyusha Flower',5,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,533,'bonus2 bSkillAtk,\"WZ_HEAVENSDRIVE\",15+getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillAtk,\"WZ_HEAVENSDRIVE\",15+getequiprefinerycnt(EQI_HAND_R); bonus bCastRate,-25;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5548,'Rose_Of_Crimson','Rose Of Crimson',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,50,1,534,'bonus bLuk,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5549,'Taurus_Diadem','Taurus Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,535,'bonus bDex,2; bonus bDelayRate,-2; bonus2 bSubEle,Ele_earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5550,'Taurus_Crown','Taurus Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,536,'bonus bDex,2; bonus bDelayRate,-2; bonus2 bSubEle,Ele_earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5547,'RJC_Katyusha_Flower','RJC Katyusha Flower',5,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,533,'bonus2 bSkillAtk,\"WZ_HEAVENDRIVE\",15+getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillAtk,\"WZ_HEAVENDRIVE\",15+getequiprefinerycnt(EQI_HAND_R); bonus bCastRate,-25;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5548,'Rose_Of_Crimson','Rose Of Crimson',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,50,1,534,'bonus bLuk,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5549,'Taurus_Diadem','Taurus Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,535,'bonus bDex,2; bonus bDelayRate,-2; bonus2 bSubEle,Ele_earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5550,'Taurus_Crown','Taurus Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,536,'bonus bDex,2; bonus bDelayRate,-2; bonus2 bSubEle,Ele_earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; }',NULL,NULL); # REPLACE INTO `item_db` VALUES (5551,'Holy_Egg_Hat','Holy Egg Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,537,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5552,'Festival_Grand_Circlet','Festival Grand Circlet',5,20,NULL,0,NULL,8,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,93,'bonus bStr,3; bonus bInt,3; bonus bMDef,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5553,'Festival_Bunny_Band','Festival Bunny Band',5,20,NULL,0,NULL,7,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,15,'bonus bMDef,4; bonus2 bSubRace,RC_DemiHuman,9;',NULL,NULL); REPLACE INTO `item_db` VALUES (5554,'Octopus_Hat','Octopus Hat',5,20,NULL,200,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,20,1,538,'bonus3 bAutoSpell,\"SM_PROVOKE\",5,10; bonus bUnbreakableHelm,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (5555,'Leaf_Cat_Hat','Leaf Cat Hat',5,20,NULL,100,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,539,'bonus bAgi,1; bonus3 bAutoSpellWhenHit,\"AL_HEAL\",3,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (5556,'Seal_Hat','Seal Hat',5,20,NULL,500,NULL,3,NULL,0,0xFFFFFFFF,7,2,769,NULL,55,1,540,'bonus bInt,1; bonus3 bAutoSpell,\"WZ_FROSTNOVA\",1,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5557,'Wild_Rose_Hat','Wild Rose Hat',5,20,NULL,500,NULL,3,NULL,1,0xFFFFFFFE,7,2,256,NULL,20,1,541,'bonus bAgi,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5558,'Luxury_Hat','Luxury Hat',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,1,542,'bonus3 bAddMonsterDropItem,511,RC_Plant,500;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5557,'Wild_Rose_Hat','Wild Rose Hat',5,20,NULL,500,NULL,3,NULL,1,0xFFFFFFFE,7,2,256,NULL,20,1,541,'bonus bAgi,3;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5558,'Luxury_Hat','Luxury Hat',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,30,1,542,'bonus3 bAddMonsterDropItem,510,RC_Plant,500;',NULL,NULL); REPLACE INTO `item_db` VALUES (5559,'Piece_Of_White_Cloth','Piece Of White Cloth',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,543,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5560,'Bullock_Helm_','Bullock Helm',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,75,1,322,'bonus bMaxHP,100; bonus bNoKnockback,0; bonus2 bSubEle,Ele_Neutral,-20; bonus2 bSubEle,Ele_Fire,-20; bonus2 bSubEle,Ele_Water,-20; bonus2 bSubEle,Ele_Wind,-20; bonus2 bSubEle,Ele_Earth,-20; bonus2 bSubEle,Ele_Dark,-20; bonus2 bSubEle,Ele_Holy,-20; bonus2 bSubEle,Ele_Ghost,-20;',NULL,NULL); REPLACE INTO `item_db` VALUES (5561,'Magic_Rabbit_Hat','Magic Rabbit Hat',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,'bonus bInt,1; bonus bMaxSP,50; bonus4 bAutoSpellWhenHit,\"MG_FIREBOLT\",3,10,3; bonus4 bAutoSpellWhenHit,\"MG_COLDBOLT\",3,10,3; bonus4 bAutoSpellWhenHit,\"MG_LIGHTNINGBOLT\",3,10,3; bonus3 bAutoSpellWhenHit,\"AL_HEAL\",1,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5562,'Luxurious_Wedding_Veil','Luxurious Wedding Veil',5,20,NULL,500,NULL,1,NULL,0,0xFFFFFFFF,7,2,768,NULL,45,1,489,'bonus bCastRate,-3; bonus bDelayRate,-3; bonus bMDef,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5562,'Luxurious_Wedding_Veil','Luxurious Wedding Veil',5,20,NULL,500,NULL,1,NULL,0,0xFFFFFFFF,7,2,768,NULL,45,1,489,'bonus bCastRate,-3; bonus bDelayRate,-3; bonus bMDef,10;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5563,'Dolor_Hat','Dolor Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,547,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5564,'Crown_of_Deceit','Crown of Deceit',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,2,768,NULL,85,1,525,'bonus bInt,4; bonus bMDef,4; bonus bCastRate,-10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5565,'Dragon_Arhat_Mask','Dragon Arhat Mask',5,20,NULL,0,NULL,5,NULL,0,0xFFFFFFFF,7,2,769,NULL,0,1,545,'bonus2 bAddRace,RC_DemiHuman,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5566,'Tiger_Arhat_Mask','Tiger Arhat Mask',5,20,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,769,NULL,0,1,546,'bonus2 bAddRace,RC_DemiHuman,2;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5564,'Crown_of_Deceit','Crown of Deceit',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,2,768,NULL,85,1,544,'bonus bInt,4; bonus bMDef,4; bonus bCastRate,-10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5565,'Dragon_Arhat_Mask','Dragon Arhat Mask',5,20,NULL,0,NULL,5,NULL,0,0xFFFFFFFF,7,2,769,NULL,0,1,545,'bonus2 bAddRace,RC_DemiHuman,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5566,'Tiger_Arhat_Mask','Tiger Arhat Mask',5,20,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,769,NULL,0,1,546,'bonus2 bAddRace,RC_DemiHuman,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5567,'Bright_Fury','Bright Fury',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,548,'bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bAspdRate,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5568,'Rabbit_Bonnet','Rabbit Bonnet',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,549,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5569,'Gemini_Diadem','Gemini Diadem',5,20,NULL,300,NULL,4,NULL,1,0xFFFFFFFF,7,2,256,NULL,70,1,550,'bonus bMatkRate,2; if(getrefine()>6) { bonus bMDef,7; bonus bMAtkRate,8; bonus2 bSubEle,Ele_Wind,5; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5570,'Gemini_Crown','Gemini Crown',5,20,NULL,300,NULL,4,NULL,1,0xFFFFFFFF,7,2,256,NULL,70,1,550,'bonus bAtk,2; bonus bMDef,5; if(getrefine()>6) { bonus bDef,1; bonus bMAtk,15; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (5570,'Gemini_Crown','Gemini Crown',5,20,NULL,300,NULL,4,NULL,1,0xFFFFFFFF,7,2,256,NULL,70,1,551,'bonus bAtk,2; bonus bMDef,5; if(getrefine()>6) { bonus bDef,1; bonus bMAtk,15; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; }',NULL,NULL); # REPLACE INTO `item_db` VALUES (5571,'Rasta_Wig','Rasta_Wig',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,552,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5572,'Savage_Babe_Hat','Savage Babe Hat',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,553,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5573,'Dokebi_Horn','Dokebi Horn',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,554,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5574,'Pencil_in_Mouth','Well-Chewed Pencil',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,10,0,555,'bonus bdex,2; bonus bHitRate,3;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5575,'Oingiri_Hat','Rice Ball Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,556,NULL,NULL,NULL); -# REPLACE INTO `item_db` VALUES (5576,'Sake_Bottle','Wine Cup',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,557,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5577,'Dark_Knight_Mask_','Dark Knight Mask',5,NULL,NULL,3000,NULL,5,NULL,0,0xFFFFFFFF,7,2,769,NULL,80,1,479,'bonus bStr,3; if(isequipped(2779,2780)) { bonus bMatkRate,10; bonus bInt,5; bonus2 bSubRace,RG_Angel,10; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5576,'Sake_Bottle','Wine Cup',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,1,557,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5577,'Dark_Knight_Mask_','Dark Knight Mask',5,NULL,NULL,3000,NULL,5,NULL,0,0xFFFFFFFF,7,2,769,NULL,80,1,479,'bonus bStr,3; if(isequipped(2779,2780)) { bonus bMatkRate,10; bonus bInt,5; bonus2 bSubRace,RC_Angel,10; }',NULL,NULL); REPLACE INTO `item_db` VALUES (5578,'Voyage_Hat','Voyage_Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,236,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5579,'Satgat','Wanderer\'s Sakkat',5,20,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,768,NULL,70,1,558,'bonus bAgi,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5580,'Red_Beret','Red Beret',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,559,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5581,'Cancer_Crown','Cancer Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,560,'bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bHealPower,3; bonus bFlee,10; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5582,'Cancer_Diadem','Cancer Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,561,'bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bMDef,1; bonus bHealPower,3; bonus bMatkRate,2; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5583,'Paradise_Hat','Paradise Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,1,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5580,'Red_Beret','Red Beret',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,559,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5581,'Cancer_Diadem','Cancer Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,561,'bonus bInt,2; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bMDef,1; bonus bHealPower,3; bonus bMatkRate,2; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5582,'Cancer_Crown','Cancer Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,560,'bonus bStr,2; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bHealPower,3; bonus bFlee,10; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5583,'Para_Team_Hat','Eden Team Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,465,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5584,'Majestic_Evil_Horn','Majestic Evil Horns',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,562,'bonus2 bSubRace,RC_Demon,3; bonus2 bHPDrainRate,3,15; bonus2 bSPDrainRate,1,7;',NULL,NULL); REPLACE INTO `item_db` VALUES (5585,'Rune_Cloth_Circlet','Rune Cloth Circlet',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,564,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5586,'Mogikiller','Mosquito Coil',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,563,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5587,'Mogikiller_','Mosquito Coil',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,563,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5588,'Leo_Crown','Leo Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,565,'bonus bStr,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bDef,1; bonus bFlee,10; bonus3 bAutoSpell,\"TK_SEVENWIND\",4,50; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5589,'Leo_Diadem','Leo Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,566,'bonus bDex,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bFlee,10; bonus bAspdRate,3; autobonus \"{ bonus bSplashRange,1; }\",10,10000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\"; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5588,'Leo_Crown','Leo Crown',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,565,'bonus bStr,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bDef,1; bonus bFlee,10; bonus3 bAutoSpell,\"TK_SEVENWIND\",4,50; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5589,'Leo_Diadem','Leo Diadem',5,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,7,2,256,NULL,70,1,566,'bonus bDex,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bFlee,10; bonus bAspdRate,3; autobonus \"{ bonus bSplashRange,1; }\",10,10000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\"; }',NULL,NULL); REPLACE INTO `item_db` VALUES (5590,'Poring_Cake_Hat','Poring Cake Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,417,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5591,'Desert_Prince','Desert Prince',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,567,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5591,'Desert_Prince','Desert Prince',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,567,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5592,'Sigrun\'s_Wings','Sigrun\'s Wings',5,20,NULL,100,NULL,2,NULL,0,0xFFFFFFFF,7,2,512,NULL,80,1,568,'if(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief||(BaseJob==Job_Taekwon&&Class!=Job_Soul_Linker)) bonus bStr,1; else if(BaseClass==Job_Mage||BaseClass==Job_Acolyte||class==Job_Ninja||class==Job_Soul_Linker) bonus bInt,1; else if(BaseClass==Job_Archer||BaseClass==Job_Gunslinger) bonus bDex,1; else if (BaseJob==Job_Novice||BaseJob==Job_SuperNovice) { bonus bMaxHP,80; bonus bMaxSP,30; }',NULL,NULL); REPLACE INTO `item_db` VALUES (5593,'Rabbit_Bonnet_','Rabbit Bonnet',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,549,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5594,'Donut_In_Mouth','Donut In Mouth',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,1,569,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5595,'Yuno_Eye','Juno Eye',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,570,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5596,'4_Leaf_Clover_In_Mouth_R','4 Leaf Clover In Mouth',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,1,571,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5597,'Chewing_Bubblegum_R','Chewing Bubblegum_R',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,1,NULL,0,1,572,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5598,'Virgo_Crown','Virgo Crown',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,70,1,573,'bonus bDex,2; bonus bAspdRate,1; if(getrefine()>6) { bonus2 bSubEle,Ele_Earth,5; autobonus \"{ bonus bDex,20; }\",10,6000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\"; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5599,'Virgo_Diadem','Virgo Diadem',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,70,1,574,'bonus bAspdRate,3; bonus2 bSubEle,Ele_Earth,5; if(getrefine()>6) bonus3 bAutoSpell,\"MO_BALKYOUNG\",1,50;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5598,'Virgo_Crown','Virgo Crown',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,70,1,573,'bonus bDex,2; bonus bAspdRate,1; if(getrefine()>6) { bonus2 bSubEle,Ele_Earth,5; autobonus \"{ bonus bDex,20; }\",10,6000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\"; }',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5599,'Virgo_Diadem','Virgo Diadem',5,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,70,1,574,'bonus bAspdRate,3; bonus2 bSubEle,Ele_Earth,5; if(getrefine()>6) bonus3 bAutoSpell,\"MO_BALKYOUNG\",1,50;',NULL,NULL); REPLACE INTO `item_db` VALUES (5600,'Brazil_Twin_Ribbon','Brazil Twin Ribbon',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,575,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5601,'Banana_Beret','Banana Beret',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,576,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5603,'RTC_Winner_Only','RTC First Place',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,577,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5604,'RTC_Second_Best','RTC Second Place',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,578,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5605,'RTC_Third_Best','RTC Third Place',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,579,NULL,NULL,NULL); -# REPLACE INTO `item_db` VALUES (5606,'Hat_02','...',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,NULL,NULL,NULL); -# REPLACE INTO `item_db` VALUES (5609,'Chung_Hairpin','Chung_Hairpin',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,NULL,NULL,NULL); -# REPLACE INTO `item_db` VALUES (5610,'Ice_Ear_Wing','Ice_Ear_Wing',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,NULL,NULL,NULL); -# REPLACE INTO `item_db` VALUES (5611,'Turtle_Hat_M','Turtle_Hat',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5606,'Hat_02','Champune Hat',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,580,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5609,'Chung_Hairpin','Chung_Hairpin',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,583,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5610,'Ice_Ear_Wing','Ice_Ear_Wing',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,512,NULL,0,1,584,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5611,'Turtle_Hat_M','Turtle_Hat',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,585,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5612,'Blue_Drooping_Kitty_M','Blue Drooping Cat',5,20,NULL,500,NULL,1,NULL,0,0xFFFFFFFE,7,2,256,NULL,1,1,277,'bonus2 bResEff,Eff_Curse,3000; bonus bMdef,15;',NULL,NULL); REPLACE INTO `item_db` VALUES (5613,'Flying_Angel_M','Flapping Angel Wing',5,20,NULL,300,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,264,'bonus bCastrate,-3; bonus bAspdRate,3; bonus bInt,1; bonus bAgi,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5614,'Smoking_Pipe_M','Pipe',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,1,NULL,1,0,55,'bonus bVit,1; bonus2 bSubRace,RC_Brute,5;',NULL,NULL); @@ -2847,12 +2868,12 @@ REPLACE INTO `item_db` VALUES (5631,'Water_Lily_Crown_M','Water Lily Crown',5,20 REPLACE INTO `item_db` VALUES (5632,'Vanilmirth_Hat_M','Vanilmirth Hat',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,0,317,'bonus bUnbreakableHelm,0; bonus3 bAutoSpell,MG_FIREBOLT,1,10; bonus3 bAutoSpell,MG_COLDBOLT,1,10; bonus3 bAutoSpell,MG_LIGHTNINGBOLT,1,10; bonus bMdef,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5633,'Drooping_Bunny_M','Drooping Bunny',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,249,'bonus bDex,1; bonus bFlee,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (5634,'Kettle_Hat_M','Kettle Hat',5,20,NULL,600,NULL,4,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,318,'bonus4 bAutoSpell,SA_DELUGE,2,10,0; bonus3 bAutoSpell,WZ_WATERBALL,3,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5635,'Dragon_Skull_M','Dragon Skull',5,20,NULL,800,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,319,'bonus2 bSubRace,RC_Dragon,5;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5635,'Dragon_Skull_M','Dragon Skull',5,20,NULL,800,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,319,'bonus2 bSubRace,RC_Dragon,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (5636,'Ramen_Hat_M','Ramen Hat',5,20,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,320,'bonus bDex,4; bonus4 bAutoSpellWhenHit,AL_DECAGI,1,30,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5637,'Pink_Fur_Hat_M','Pink Beanie',5,20,NULL,350,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,281,'bonus bLuk,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5638,'Puppy_Hat_M','Puppy Hat',5,20,NULL,500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,0,234,'bonus bAgi,1; bonus3 bAutoSpell,PR_GLORIA,1,10+20*(readparam(bAgi)>=77);',NULL,NULL); REPLACE INTO `item_db` VALUES (5639,'Magic_Eyes_M','Magic Eyes',5,20,NULL,300,NULL,1,NULL,0,0x00810204,7,2,256,NULL,1,1,209,'bonus bMdef,5; bonus bCastrate,-10; bonus bUseSPrate,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5640,'Jumping_Poring_M','Jumping Poring',5,0,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,349,'bonus bLuk,1; bonus bUnbreakableHelm,0;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5640,'Jumping_Poring_M','Jumping Poring',5,0,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,349,'bonus bLuk,1; bonus bUnbreakableHelm,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (5641,'Robo_Eye_M','Robo Eye',5,20,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,7,2,512,NULL,1,0,345,'bonus2 bAddRace,RC_NonBoss,3; bonus2 bAddRace,RC_Boss,3; bonus bMatkRate,3; bonus bDex,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5642,'Yellow_Wizardry_Hat_M','Yellow Mage Hat',5,20,NULL,300,NULL,1,NULL,0,0x810204,7,2,256,NULL,1,1,286,'bonus bInt,2; bonus bMaxSP,150;',NULL,NULL); REPLACE INTO `item_db` VALUES (5643,'Crescent_Helm_M','Crescent Helm',5,20,NULL,3000,NULL,8,NULL,0,0x000444A2,7,2,768,NULL,1,1,213,'bonus bVit,1; bonus2 bSubRace,RC_DemiHuman,5;',NULL,NULL); @@ -2866,10 +2887,10 @@ REPLACE INTO `item_db` VALUES (5650,'Elven_Ears_M','Elven Ears',5,1,NULL,0,NULL, REPLACE INTO `item_db` VALUES (5651,'Brooch_M','Brooch',5,1,NULL,0,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,1,0,1,'bonus bAgi,4;',NULL,NULL); REPLACE INTO `item_db` VALUES (5652,'Magestic_Goat_M_','Baphomet Horns',5,2,NULL,0,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,0,41,'bonus bStr,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5653,'Darkness_Helm_J','Darkness Helm',5,NULL,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,7,2,256,NULL,70,1,586,'if(isequipped(5074)) { bonus bStr,1; bonus bAspdRate,2; } else if(isequipped(5068)) { bonus bStr,1; bonus bAtkRate,5; } else if(isequipped(5358)) { bonus bAgi,1; bonus bFlee,3; } else if(isequipped(5401)) { bonus bInt,1; bonus bMatkRate,2; } else if(isequipped(5470)) { bonus bDex,1; bonus bLongAtkRate,3; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5654,'Red_Marcher_Hat','Red Marcher Hat',5,NULL,NULL,200,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,10,1,587,'bonus bStr,2; bonus3 bAutoSpell,\"PR_ASPERSIO\",2,30;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5654,'Red_Marcher_Hat','Red Marcher Hat',5,NULL,NULL,200,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,10,1,587,'bonus bStr,2; bonus3 bAutoSpell,\"PR_ASPERSIO\",2,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (5655,'Evil_Snake_Lord_Hat_J','Evil Snake Lord Hat',5,NULL,NULL,500,NULL,2,NULL,0,0xFFFFFFFF,7,2,256,NULL,50,1,372,'bonus bInt,2; bonus bAgi,2; bonus bDex,-2; autobonus \"{ bonus bCastrate,-50; bonus bFlee,30; }\",50,5000,BF_MAGIC,\"{ specialeffect2 EF_SUFFRAGIUM; }\";',NULL,NULL); REPLACE INTO `item_db` VALUES (5656,'Scooter_Helmet','Scooter Helmet',5,NULL,NULL,1000,NULL,7,NULL,1,0xFFFFFFFF,7,2,256,NULL,50,1,588,'bonus bUnbreakableHelm,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (5657,'Captain\'s_Pipe','Captain\'s Pipe',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,30,1,383,'if(isequipped(5184)) bonus bLongAtkRate,getrefine();',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5657,'Captain\'s_Pipe','Captain\'s Pipe',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,1,NULL,30,1,383,'if(isequipped(5184)) bonus bLongAtkRate,getrefine();',NULL,NULL); # # REPLACE INTO `item_db` VALUES (5661,'Red_Pirate_Bandana','Red Pirate Banada',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,592,'bonus bAspdRate,2; bonus bCastRate,-2; bonus3 bAutoSpell,\"MO_EXTREMITYFIST\",1,30;',NULL,NULL); # REPLACE INTO `item_db` VALUES (5662,'Libra_Crown','Libra Crown',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,593,NULL,NULL,NULL); @@ -2883,7 +2904,7 @@ REPLACE INTO `item_db` VALUES (5668,'Weird_Pumpkin_Hat','Weird Pumpkin Hat',5,NU # REPLACE INTO `item_db` VALUES (5676,'Scorpio_Crown','Scorpio Crown',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,605,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5677,'Scorpio_Diadem','Scorpio Diadem',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,606,NULL,NULL,NULL); # -# REPLACE INTO `item_db` VALUES (5678,'Musical_Note_Headband','Musical_Note_Headband',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,497,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5678,'Musical_Note_Headband','Musical_Note_Headband',5,20,NULL,800,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,607,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5681,'Ribbon_Green_','Green Ribbon',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,0,256,NULL,0,1,244,'bonus bMdef,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5682,'Triangle_Rune_Cap','Triangle Rune Cap',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,610,NULL,NULL,NULL); @@ -2893,9 +2914,9 @@ REPLACE INTO `item_db` VALUES (5685,'Prontera_Army_Cap_','Army Cap',5,20,NULL,10 REPLACE INTO `item_db` VALUES (5686,'Nice_Hat_Feather','Nice Hat Feather',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,104,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5687,'Angle_Helm_Light','Angle_Helm_Light',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,86,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5688,'2009_Love_Dad','2009_Love_Dad',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,611,NULL,NULL,NULL); -# REPLACE INTO `item_db` VALUES (5689,'Ant_Queen_Crown','Ant_Queen_Crown',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,612,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5689,'Ant_Queen_Crown','Ant_Queen_Crown',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,612,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5690,'Red_Wing_Hat','Red Wing Hat',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,608,'if (getrefine()>6) { bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bMatkRate,2; } if (getrefine()>8) { bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bMatkRate,2; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (5691,'Sailor\'s_Bandana','Sailor\'s_Bandana',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,542,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (5691,'Sailor\'s_Bandana','Sailor\'s_Bandana',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,542,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5692,'Sea_Cat_Hat','Sea_Cat_Hat',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,539,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5693,'NoFear_Underwear','NoFear_Underwear',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,614,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5694,'NoFear_Headband','NoFear_Headband',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,614,NULL,NULL,NULL); @@ -2908,20 +2929,21 @@ REPLACE INTO `item_db` VALUES (5742,'Rudolp_Santa_Hat','Rudolp_Santa_Hat',5,20,N # # REPLACE INTO `item_db` VALUES (5744,'Capricorn_Crown','Capricorn Crown',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,621,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5745,'Capricorn_Diadem','Capricorn Diadem',5,NULL,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,622,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5746,'Rune_Circlet','Rune_Circlet',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,623,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5746,'Rune_Circlet','Rune Circlet',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,623,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (5747,'Mitra','Mitra',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,1,1,624,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5748,'Sniper_Goggles','Sniper_Goggles',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,625,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5749,'Driver_Band','Driver_Band',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,626,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5750,'Shadow_Crown','Shadow_Crown',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,627,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5751,'Minstrel_Song_Hat','Minstrel_Song_Hat',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,628,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5752,'Midas_Whispers','Midas_Whispers',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,629,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5753,'Magic_Stone_Hat','Magic_Stone_Hat',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,630,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5754,'Burning_Spirit','Burning_Spirit',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,631,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5755,'Silence_Enforcer','Silence_Enforcer',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,632,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5756,'Wispers_Of_Wind','Wispers_Of_Wind',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,633,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5757,'Reissue_Schmitz_Helm','Reissue_Schmitz_Helm',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,634,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5758,'Resting_Swan','Resting_Swan',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,635,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (5760,'Driver_Band_','Driver_Band',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,637,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5748,'Sniper_Goggles','Sniper Goggles',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,625,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5749,'Driver_Band','Driver Band',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,626,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5750,'Shadow_Crown','Shadow Handicraft',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,627,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5751,'Minstrel_Song_Hat','Minstrel Song Hat',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,628,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5752,'Midas_Whisper','Midas Whisper',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,629,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5753,'Magic_Stone_Hat','Magic Stone Hat',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,630,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5754,'Burning_Spirit','Blazing Soul',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,631,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5755,'Silence_Enforcer','Silence Executer',5,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,632,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5756,'Wispers_Of_Wind','Wind Whisper',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,633,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5757,'Reissue_Schmitz_Helm','Dip Schmidt Helm',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,634,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (5758,'Resting_Swan','Dying Swan',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,635,NULL,NULL,NULL); +# +REPLACE INTO `item_db` VALUES (5760,'Driver_Band_','Driver Band',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,637,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (5800,'Blush_Of_Groom','Blush of Groom',5,20,NULL,50,NULL,0,NULL,0,0xFFFFFFFF,7,2,512,NULL,0,0,125,'bonus2 bSubRace,RC_DemiHuman,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (5801,'Ribbon_Of_Bride','Red Tailed Ribbon',5,20,NULL,100,NULL,5,NULL,0,0xFFFFFFFF,7,2,256,NULL,0,1,167,'bonus bAllStats,2; bonus2 bSubRace,RC_DemiHuman,10; if (getskilllv(\"AL_HEAL\") == 10) { bonus3 bAutoSpellWhenHit,\"AL_HEAL\",10,20; } else { bonus3 bAutoSpellWhenHit,\"AL_HEAL\",5,20; }',NULL,NULL); @@ -2938,7 +2960,7 @@ REPLACE INTO `item_db` VALUES (5811,'Santa_Beard','Santa\'s Beard',5,20,NULL,100 # 5812,Hat_Of_Expert # 5813,Red_Ph.D_Hat # 5814,Ati_Atihan_Hat3 -REPLACE INTO `item_db` VALUES (5815,'Classic_Hat_J','Classic Hat',5,NULL,NULL,500,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,475,'bonus2 bAddSize,0,5; bonus2 bAddSize,1,5; bonus2 bAddSize,2,5; bonus bStr,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (5815,'Classic_Hat_J','Classic Hat',5,NULL,NULL,500,NULL,1,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,475,'bonus2 bAddSize,0,5; bonus2 bAddSize,1,5; bonus2 bAddSize,2,5; bonus bStr,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (5816,'Cowboy_Hat_J','Purple Cowboy Hat',5,NULL,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,7,2,256,NULL,0,1,411,'bonus bAtk,15; bonus bFlee,-5;',NULL,NULL); # 5817,Valentine_Pledge # 5818,Carnival_Hat @@ -2955,16 +2977,16 @@ REPLACE INTO `item_db` VALUES (5816,'Cowboy_Hat_J','Purple Cowboy Hat',5,NULL,NU # 5852,Easter_Egg_Shell # More Etc Items # =================================================================== -REPLACE INTO `item_db` VALUES (6000,'Dark_Ashes','Ashes of Darkness',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6001,'Essence_Of_Fire','Essence of Fire',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6002,'Token_Of_Apostle','Token of Apostle',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6003,'Soul_Pendant','Pendant of Spirit',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6004,'Bapho_Doll','Cursed Baphomet Doll',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6000,'Dark_Ashes','Ashes of Darkness',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6001,'Essence_Of_Fire','Essence of Fire',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6002,'Token_Of_Apostle','Token of Apostle',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6003,'Soul_Pendant','Pendant of Spirit',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6004,'Bapho_Doll','Cursed Baphomet Doll',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6005,'New_Year_Rice_Cake','New Year Rice Cake',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6006,'Rice_Cake_Delivery_Box','Rice Cake Delivery Box',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6007,'New_Year_Rice_Cake_Soup','New Year Rice Cake Soup',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6008,'Wood','Wood',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6009,'Large_Magical_Fan','Big Fan Of Magic',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6009,'Large_Magical_Fan','Big Fan Of Magic',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6010,'Pickaxe','Hoe',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6011,'Blue_Card_B','Blue B Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6012,'Blue_Card_C','Blue C Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2978,7 +3000,7 @@ REPLACE INTO `item_db` VALUES (6020,'Fur','Fur',3,704,NULL,10,NULL,NULL,NULL,NUL REPLACE INTO `item_db` VALUES (6021,'Peaked_Hat','Peaked Hat',3,432,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6022,'Hard_Skin','Hard Skin',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6023,'Mystic_Horn','Mystic Horn',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6024,'17Carat_Dia','17Carat Diamond',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6024,'17_Carat_Diamond','17Carat Diamond',3,0,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6025,'Towel_Of_Memory','Towel of Memory',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6026,'Marriage_Covenant','Written Oath Of Marriage',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6027,'Crystal_Of_Feardoom','Crystal Of Feardom',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -2994,14 +3016,14 @@ REPLACE INTO `item_db` VALUES (6036,'Invite_To_Meeting','Meeting Invitation',3,0 REPLACE INTO `item_db` VALUES (6037,'Rough_File','Messy File',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6038,'Neat_Report','Neat Report',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6039,'Piece_Of_Fish','Piece of Fish',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6040,'Some_Of_Report','Part of a Report',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6040,'Some_Of_Report','Part of a Report',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6041,'Strong_Bine','Strong Vine',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6042,'Ordinary_Branch','Ordinary Branch',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6043,'Letter_From_Lugen','Letter from Lugen',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6044,'Letter_From_Otto','Letter from Otto',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6045,'Supply_Box','Supply Box',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6046,'Clothing_Dye_Coupon','New Clothing Dye Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6047,'Clothing_Dye_Coupon2','Original Clothing Dye Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6046,'Clothing_Dye_Coupon','New Clothing Dye Coupon',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6047,'Clothing_Dye_Coupon2','Original Clothing Dye Coupon',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6048,'Unidentified_Mineral','Unidentified Mineral',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6049,'Marlin','Marlin',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6050,'Mercenary_Contract','Mercenary Contract',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3058,15 +3080,15 @@ REPLACE INTO `item_db` VALUES (6100,'Damp_Darkness','Damp Darkness',3,0,NULL,10, REPLACE INTO `item_db` VALUES (6101,'Attendance_Card','Attendance Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6102,'Report_On_Splendide','Report On Splendide',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6103,'Report_On_Manuk','Report On Manuk',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6104,'Big_Cell','Big Cell',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6105,'Morning_Dew','Morning Dew',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6106,'Well_Ripened_Berry','Well Ripened Berry',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6107,'Sunset_On_The_Rock','Sunset On The Rock',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6108,'Apple_Pudding','Apple Pudding',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6109,'Plant_Neutrient','Plant Neutrient',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6110,'Vital_Flower','Vital Flower',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6111,'Mystic_Stone','Mystic Stone',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6112,'Fresh_Plant','Fresh Plant',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6104,'Big_Cell','Big Cell',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6105,'Morning_Dew','Morning Dew',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6106,'Well_Ripened_Berry','Well Ripened Berry',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6107,'Sunset_On_The_Rock','Sunset On The Rock',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6108,'Apple_Pudding','Apple Pudding',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6109,'Plant_Neutrient','Plant Neutrient',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6110,'Vital_Flower','Vital Flower',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6111,'Mystic_Stone','Mystic Stone',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6112,'Fresh_Plant','Fresh Plant',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6113,'Vital_Flower_','Vital Flower',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6114,'Flame_Gemstone','Flame Gemstone',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6115,'Bun_','Bun',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3075,7 +3097,7 @@ REPLACE INTO `item_db` VALUES (6117,'Imp_Pet_Coupon','Imp Pet Exchange Coupon',3 REPLACE INTO `item_db` VALUES (6118,'Chung_E_Pet_Coupon','Chung E Exchange Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6119,'Natural_Leather','Cow Leather',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6120,'Face_Paint','Face Paint',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6121,'Makeover_Brush','Disguise Brush',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6121,'Makeover_Brush','Makeover Brush',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6122,'Paint_Brush','Paint Brush',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6123,'Surface_Paint','Surface Paint',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6124,'Wolf\'s_Flute','Wolf Flute',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3098,17 +3120,17 @@ REPLACE INTO `item_db` VALUES (6140,'Ticket_Dullahan','Dullahan Exchange Coupon' REPLACE INTO `item_db` VALUES (6141,'Ticket_Shinobi','Shinobi Exchange Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6142,'Ticket_Golem','Golem Exchange Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6143,'Ticket_Civil_Servant','Civil Servant Exchange Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6144,'Heartbroken_Tears','Painful Tear',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6144,'Heartbroken_Tears','Regrettable Tears',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6145,'Vulcan_Bullet','Vulcan Bullet',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6146,'Magic_Gear_Fuel','Fuel Canister',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6147,'Liquid_Condensed_Bullet','Liquid Cold Bullet',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6146,'Magic_Gear_Fuel','Magic Gear Fuel',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6147,'Liquid_Condensed_Bullet','Liquid Condensed Bullet',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6148,'Chocolate_Of_Eternity','Eternity Of Chocolate',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6149,'Plain_Chocolate','Simple Chocolate',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6150,'Key_Of_The_Mansion','Keys Of House',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6151,'Peice_Of_Great_Bradium','Huge Bradium',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6152,'Glittering_Crystal','Crystal Shine',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6150,'Key_Of_The_Mansion','Key of The Mansion',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6151,'Peice_Of_Great_Bradium','Giant Bradium Fragment',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6152,'Glittering_Crystal','Glittering Crystal',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6153,'Special_Exchange_Coupon','Special Exchange Ticket',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (6154,'Broken_Horn_Pipe','Hisui\'s Horn',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6154,'Broken_Horn_Pipe','Broken Horn Pipe',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6155,'Coke_Membership_Card','Member Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6156,'Approval_Report','Approval Report',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6157,'Poring_Ticket','Poring Exchange Ticket',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3143,28 +3165,102 @@ REPLACE INTO `item_db` VALUES (6185,'Alice_Ticket','Alice Exchange Ticket',3,0,N REPLACE INTO `item_db` VALUES (6186,'Monkey_Wrench','Monkey Wrench',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (6187,'Blank_Card','Blank Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # 6188,Slotting_Advertisement,Slotting Advertisement, -# 6189,Magic_Book_(Fire_Bolt),Magic Book (Fire Bolt), -# 6190,Magic_Book_(Cold_Bolt),Magic Book (Cold Bolt), -# 6191,Magic_Book_(Lightening_Bolt),Magic Book (Lightening Bolt), -# 6192,Magic_Book_(Storm_Gust),Magic Book (Storm Gust), -# 6193,Magic_Book_(Lord_Of_Vermilion),Magic Book (Lord Of Vermilion), -# 6194,Magic_Book_(Meteor_Storm),Magic Book (Meteor Storm), -# 6195,Magic_Book_(Comet),Magic Book (Comet), -# 6196,Magic_Book_(Tetra_Vortex),Magic Book (Tetra Vortex), -# 6197,Magic_Book_(Thunder_Storm),Magic Book (Thunder Storm), -# 6198,Magic_Book_(Jupitel_Thunder),Magic Book (Jupitel Thunder), -# 6199,Magic_Book_(Water_Ball),Magic Book (Water Ball), -# 6200,Magic_Book_(Heaven's_Drive),Magic Book (Heaven's Drive), -# 6201,Magic_Book_(Earth_Spike),Magic Book (Earth Spike), -# 6202,Magic_Book_(Earth_Strain),Magic Book (Earth Strain), -# 6203,Magic_Book_(Chain_Lightning),Magic Book (Chain Lightning), -# 6204,Magic_Book_(Crimson_Rock),Magic Book (Crimson Rock), -# 6205,Magic_Book_(Drain_Life),Magic Book (Drain Life), +# 6189,Spell_Book_(Fire_Bolt),Spell Book (Fire Bolt), +# 6190,Spell_Book_(Cold_Bolt),Spell Book (Cold Bolt), +# 6191,Spell_Book_(Lightening_Bolt),Spell Book (Lightening Bolt), +# 6192,Spell_Book_(Storm_Gust),Spell Book (Storm Gust), +# 6193,Spell_Book_(Lord_Of_Vermilion),Spell Book (Lord Of Vermilion), +# 6194,Spell_Book_(Meteor_Storm),Spell Book (Meteor Storm), +# 6195,Spell_Book_(Comet),Spell Book (Comet), +# 6196,Spell_Book_(Tetra_Vortex),Spell Book (Tetra Vortex), +# 6197,Spell_Book_(Thunder_Storm),Spell Book (Thunder Storm), +# 6198,Spell_Book_(Jupitel_Thunder),Spell Book (Jupitel Thunder), +# 6199,Spell_Book_(Water_Ball),Spell Book (Water Ball), +# 6200,Spell_Book_(Heaven's_Drive),Spell Book (Heaven's Drive), +# 6201,Spell_Book_(Earth_Spike),Spell Book (Earth Spike), +# 6202,Spell_Book_(Earth_Strain),Spell Book (Earth Strain), +# 6203,Spell_Book_(Chain_Lightning),Spell Book (Chain Lightning), +# 6204,Spell_Book_(Crimson_Rock),Spell Book (Crimson Rock), +# 6205,Spell_Book_(Drain_Life),Spell Book (Drain Life), # 6206,I_Love_You,I Love You, # 6207,Thanks,Thanks, # 6208,Respect,Respect, # 6209,Knight_Of_Honor,Knight Of Honor, +# REPLACE INTO `item_db` VALUES (6210,'Seed_Of_Thorny_Plant','Seed Of Thorny Plant',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6211,'Bloodsuck_Plant_Seed','Bloodsuck Plant Seed',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6212,'Bomb_Mushroom_Spore','Bomb Mushroom Spore',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6213,'Explosive_Powder','Explosive Powder',3,500,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6214,'Smokes_Powder','Smokes Powder',3,500,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6215,'Tear_Gas','Tear Gas',3,500,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6216,'Oil_Bottle','Oil Bottle',3,1000,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6217,'Mandragora_Flowerpot','Mandragora Flowerpot',3,2000,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6218,'Disin_Delivery_Box','Delivery_Daishin_Box',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6219,'Para_Team_Mark','Eden Group Mark',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 6220,Mysterious_Dyestuffs +# 6221,Mystic_Leaf_Cat_Ball +# 6222,Sparkling_Bead +REPLACE INTO `item_db` VALUES (6223,'Carnium','Carnium',3,2000,NULL,150,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6224,'Bradium','Bradium',3,2000,NULL,150,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6225,'HD_Carnium','HD Carnium',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6226,'HD_Bradium','HD Bradium',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 6228 +# 6229 +# 6230 +# 6231 +# 6232 +# 6233 +# 6234 +# 6235 +# 6236,Blue_7_Card +# 6237,Guarana_Fruit +# 6238 +# 6239 +REPLACE INTO `item_db` VALUES (6240,'Purified_Oridecon','Purified Oridecon',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (6241,'Purified_Elunium','Purified Elunium',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 6242,Midgard_Coin # 6243,WPS_Point_Token +# REPLACE INTO `item_db` VALUES (6244,'Dark_Powder','Gun Powder',3,10,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6245,'Black_Powder','Black Powder',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6246,'Yellow_Powder','Yellow Powder',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6247,'White_Powder','White Powder',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6248,'Chowder_Pot','Melange Pot',3,600,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6249,'Savage_Meat','Savage Meat',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6250,'Iron_Cooking_Skewer','Cooking Skewer',3,300,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6251,'Black_Charcoal','Black Charcoal',3,300,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6252,'Wolf\'s_Blood','Blood Of Wolf',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6253,'Cold_Ice','Cold Ice',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6254,'Seasoned_Tough_Meat','Beef Head',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6255,'Large_Pan','Large Cookpot',3,500,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6256,'Powdered_Ice','Ice Piece',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6257,'Ice_Crystal','Ice Crystal',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6258,'Comodo_Tropical_Fruit','Comodo Tropical Fruit',3,800,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6259,'Drosera_Feeler','Drosera Tentacle',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6260,'Petite_Tail','Petite\'s Tail',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6261,'Fine_Noodles','Fine Noodles',3,500,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6262,'Cold_Broth','Cool Gravy',3,400,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6263,'Coconut','Coconut Fruit',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6264,'Melon','Melon',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6265,'Pineapple','Pineapple',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6266,'Deception_Of_Keys','Key Of Deception',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6267,'Illussion_Of_Keys','Key Of Illusion',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6268,'Pleasure_Of_Keys','Key Of Gaiety',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6269,'Scene_Of_Brush','A Master\'s Blush',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6270,'Minstrel_Song_Photo','A Picture Of Minstrel Song',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6271,'Receipts','Receipt',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6272,'Experimental_Seed','Seed For Experiment',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6273,'Experimental_Seed_','Seed For Experiment',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6274,'Out_Of_Saint_Clothes','A Piece Of Cloth Of A Saint',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6275,'King_Shield','Shield Of King',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6276,'Transparent_Reagents','Clear Reagent',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6277,'Red_Reagents','Red Reagent',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6278,'Black_Reagents','Black Reagent',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6279,'Apple_Bomb_Guidebook','Apple Bomb Guidebook',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6280,'Pineapple_Bomb_Guidebook','Pineapple Bomb Guidebook',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6281,'Coconut_Bomb_Guidebook','Coconut Fruit Bomb Guidebook',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6282,'Melon_Bomb_Guidebook','Melon Bomb Guidebook',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6283,'Banana_Bomb_Guidebook','Banana Bomb Guidebook',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6284,'Plant_Genetic_Cultivation_Guide','How To Grow Plant Genes',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6285,'Improved_Potion_Creation_Manual','Manual: How To Make High Quality Potion',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # 6286,Gym_Pass # 6287,New_Clothing_Dye_Coupon # 6288,Summer_Happy_Box @@ -3175,9 +3271,79 @@ REPLACE INTO `item_db` VALUES (6187,'Blank_Card','Blank Card',3,0,NULL,10,NULL,N # 6293,Token_Of_Siegfried # 6294,Marriage_Covenant # 6295,Original_Clothing_Dye_Coupon +# 6296,Reserve_Notice +REPLACE INTO `item_db` VALUES (6297,'Empty_Potion_Bottle','Throwing Bottle',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # 6298,Crushed_Pumpkin # 6299,Worn_Fabric +# 6302,GM_Son_Letter +# REPLACE INTO `item_db` VALUES (6304,'Proof_Of_Sapha\'s_Honor','Proof Of Sapha\'s Honor',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6305,'Frozen_Piece_Of_Skin','Frozen Piece Of Skin',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6306,'Hard_Bloodstain','Hard Bloodstain',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6307,'Cursed_Magical_Stone','Cursed Magical Stone',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6308,'Unidentified_Relic','Unidentified Relic',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6319,'Tiny_Bradium','Tiny Bradium',3,324,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 6320,Premium_Reset_Stone +# REPLACE INTO `item_db` VALUES (6321,'Rake_Helmet','Rake Helmet',3,822,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6322,'Antler_Helmet','Antler Helmet',3,800,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6323,'Two-Horn_Helmet','Two-Horn Helmet',3,728,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6324,'One-Horn_Helmet','One-Horn Helmet',3,702,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6325,'White_Spider_Legs','White Spider Legs',3,1004,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6326,'Queen_Scraba_Shell','Queen Scraba Shell',3,2000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6328,'January_Calendar','January Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6329,'February_Calendar','February Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6330,'March_Calendar','March Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6331,'April_Calendar','April Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6332,'May_Calendar','May Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6333,'June_Calendar','June Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6334,'July_Calendar','July Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6335,'August_Calendar','August Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6336,'September_Calendar','September Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6337,'October_Calendar','October Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6338,'November_Calendar','November Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6339,'December_Calendar','December Calendar',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6340,'Light_Faded_Music(Green)','Light Faded Music(Green)',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6341,'Light_Faded_Music(Red)','Light Faded Music(Red)',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6342,'Light_Faded_Music(Violet)','Light Faded Music(Violet)',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6343,'Light_Faded_Music(Blue)','Light Faded Music(Blue)',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 6345 +# 6347 +# 6348 +# 6349 +# 6350 +# 6351 +# 6352 +# 6353 +# 6354 +# 6355 +# 6356 +# 6357 +# 6358 +# 6359 +# REPLACE INTO `item_db` VALUES (6360,'Scarlet_Point','Scarlet Point',3,100,NULL,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6361,'Indigo_Point','Indigo Point',3,100,NULL,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6362,'Yellow_Wish_Point','Yellow Wish Point',3,100,NULL,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6363,'Lime_Green_Point','Lime Green Point',3,100,NULL,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # 6376,KVM_Badge +REPLACE INTO `item_db` VALUES (6377,'Buy_Stall_Permit','Purchase Street Stall License',3,200,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 6378 +# 6379 +# 6380 +# 6381 +# 6382 +# REPLACE INTO `item_db` VALUES (6383,'Ropewa_Clues','Ropewa Clues',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 6384 +# 6385 +# REPLACE INTO `item_db` VALUES (6386,'Bathroom_Sample','Bathroom Sample',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6387,'Teeth_Sample','Teeth Sample',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6388,'Scale_Sample','Scale Sample',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6389,'Pool_Sample','Pool Sample',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 6390 +# 6391 +# REPLACE INTO `item_db` VALUES (6392,'Bradium_Box','Bradium Box',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6393,'Round_Feather','Round Feather',3,700,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6394,'Golden_Hair2','Golden Hair',3,650,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (6395,'Magic_Fairy_Dust','Magic Fairy Dust',3,820,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 6396 REPLACE INTO `item_db` VALUES (7001,'Mould_Powder','Mould Powder',3,466,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7002,'Ogre_Tooth','Ogre Tooth',3,658,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7003,'Anolian_Skin','Anolian Skin',3,968,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3236,9 +3402,9 @@ REPLACE INTO `item_db` VALUES (7055,'Animal_Pooopoo','Animal Poop',3,100,NULL,50 REPLACE INTO `item_db` VALUES (7056,'Payroll_Of_Kafra','Payment Statement for Kafra Employee',3,1,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7057,'Gallar_Horn','Gjallar',3,1,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7058,'Gullraifnir','Gleipnir',3,1,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7059,'Cargo_Free_Ticket','Free Ticket for Kafra Storage',3,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7060,'Warp_Free_Ticket','Free Ticket for Kafra Transportation',3,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7061,'Cart_Free_Ticket','Free Ticket for the Cart Service',3,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7059,'Cargo_Free_Ticket','Free Ticket for Kafra Storage',3,1,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7060,'Warp_Free_Ticket','Free Ticket for Kafra Transportation',3,1,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7061,'Cart_Free_Ticket','Free Ticket for the Cart Service',3,1,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7062,'Broken_Turtle_Shell','Broken Turtle Shell',3,280,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7063,'Soft_Feather','Soft Feather',3,280,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7064,'Dragon_Fly_Wing','Wing of Dragonfly',3,520,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3376,7 +3542,7 @@ REPLACE INTO `item_db` VALUES (7195,'Air_Rifle','Slingshot',3,210,NULL,10,NULL,N REPLACE INTO `item_db` VALUES (7196,'Shoulder_Protection','Shoulder Protector',3,230,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7197,'Tough_Vines','Tough Vines',3,500,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7198,'Great_Leaf','Huge Leaf',3,610,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7199,'Coupon','Unknown Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7199,'Coupon','Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7200,'Flexible_String','Elastic Band',3,380,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7201,'Log','Log',3,250,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7202,'Beetle_Nipper','Pincher of Beetle',3,290,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3799,18 +3965,24 @@ REPLACE INTO `item_db` VALUES (7619,'Enriched_Elunium','Enriched Elunium',3,2,NU REPLACE INTO `item_db` VALUES (7620,'Enriched_Oridecon','Enriched Oridecon',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7621,'Token_Of_Siegfried','Token Of Siegfried',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7622,'New_Style_Coupon','Hairstyle Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7623,'Name_Change_Coupon','Ticket Of Identification',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# +REPLACE INTO `item_db` VALUES (7623,'Name_Change_Coupon','Ticket Of Identification',3,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 7625 +# 7626 +# 7627 +# 7628 +# 7629 +# 7630 +# 7631 REPLACE INTO `item_db` VALUES (7701,'Dragon_Spirit','Soul',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7702,'Special_Cogwheel','Special Cogwheel',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7703,'Piece_Of_Cogwheel','Piece of Cogwheel',3,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7703,'Piece_Of_Cogwheel','Piece of Cogwheel',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7704,'Broken_Thermometer','Broken Thermometer',3,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7705,'Note_Of_Geologist','Note of Geologist',3,20,NULL,40,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7705,'Note_Of_Geologist','Note of Geologist',3,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7706,'Spoiled_Carrot_Juice','Broken Carrot Juice',3,20,NULL,40,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7707,'Spoiled_Banana_Juice','Broken Banana Juice',3,20,NULL,40,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7708,'Spoiled_Apple_Juice','Broken Apple Juice',3,20,NULL,40,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7709,'Spoiled_Grape_Juice','Broken Grape Juice',3,600,NULL,30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7710,'Black_Gemstone','Black Gemstone',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7709,'Spoiled_Grape_Juice','Broken Grape Juice',3,20,NULL,40,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7710,'Black_Gemstone','Black Gemstone',3,600,NULL,30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7711,'Update_Ticket','Event Ticket',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7712,'Nokia5500','Nokia 5500',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7713,'BlueCard_A_','Blue A(2) Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3819,7 +3991,7 @@ REPLACE INTO `item_db` VALUES (7715,'Handmade_Choco_Recipe','Handmade Chocolate REPLACE INTO `item_db` VALUES (7716,'Strawberry_Choco_Recipe','Chocolate Strawberry Recipe',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7717,'Choco_Tart_Recipe','Chocolate Tart Recipe',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7718,'Cacao_Bean','Cacao Bean',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7719,'BlueCard_G','Blue G Card',3,0,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7719,'BlueCard_G','Blue G Card',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7720,'Gold_Coin_US','Gold Coin',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7721,'Treasure_Box_','Treasure Box',3,100,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7722,'Debt_Note','Debt Note',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3873,7 +4045,7 @@ REPLACE INTO `item_db` VALUES (7769,'Egg_Yolk','Egg Yolk',3,0,NULL,10,NULL,NULL, REPLACE INTO `item_db` VALUES (7770,'Sweet_Rice','Sweet Rice',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7771,'Lotus_Leaf','Lotus Leaf',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7772,'String','String',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7773,'War_Badge','Wat Badge',3,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7773,'War_Badge','Wat Badge',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7774,'Chung_E_Ticket','Green Maiden Ticket',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7775,'Spring_Rabbit_Ticket','Spring Rabbit Ticket',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7776,'Max_Weight_Up_Scroll','Gym Pass',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3894,7 +4066,7 @@ REPLACE INTO `item_db` VALUES (7790,'Fawner_Coupon7','Free Coupon 7',3,0,NULL,10 REPLACE INTO `item_db` VALUES (7791,'Fawner_Coupon8','Free Coupon 8',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7792,'Guyak','Guyak',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7793,'Golden_Apple','Golden Apple',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7794,'Fate_Of_Crow','The Crow of Destiny',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7794,'Fate_Of_Crow','The Crow of Destiny',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7795,'Mami_Photo_Album','Mammi\'s Photo Album',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7796,'Author_Autograph','Author\'s Autograph',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7797,'Author_Memo','Author\'s Memo',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3927,9 +4099,9 @@ REPLACE INTO `item_db` VALUES (7823,'Meat_Veg_Skewer','Meat Veg Skewer',3,20,NUL REPLACE INTO `item_db` VALUES (7824,'Spirit_Liquor','Spirit Liquor',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7825,'Heroic_Stone','Heroic Stone',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7826,'Continental_Guard_Paper','Continental Guard Paper',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7827,'Mineral_Report','Mineral Evals',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7828,'BF_Badge1','Bravery Badge',3,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7829,'BF_Badge2','Valor Badge',3,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7827,'Mineral_Report','Mineral Evals',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7828,'BF_Badge1','Bravery Badge',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7829,'BF_Badge2','Valor Badge',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7830,'Goddess_Tear','Goddess Tear',3,1,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7831,'Valkyrie_Token','Valkyrie\'s Token',3,1,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7832,'Brynhild_Armor_Piece','Brynhild Armor Piece',3,1,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3939,12 +4111,12 @@ REPLACE INTO `item_db` VALUES (7835,'Dusk_Glow','Dusk Glow',3,1,NULL,500,NULL,NU REPLACE INTO `item_db` VALUES (7836,'Dawn_Essence','Dawn Essence',3,1,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7837,'Cold_Moonlight','Cold Moonlight',3,1,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7838,'Hazy_Starlight','Hazy Starlight',3,1,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7839,'Crystal_Key','Crystal Key',3,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7840,'Valkyrie_Gift','Valkyrie\'s Gift',3,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7841,'Spotted_Paper','Stained Piece Of Paper',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7842,'Torn_Paper','Torn Piece Of Paper',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7843,'Old_Paper','Old Piece Of Paper',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7844,'Burnt_Paper','Burnt Pieces Of Paper',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7839,'Crystal_Key','Crystal Key',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7840,'Valkyrie_Gift','Valkyrie\'s Gift',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7841,'Spotted_Paper','Stained Piece Of Paper',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7842,'Torn_Paper','Torn Piece Of Paper',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7843,'Old_Paper','Old Piece Of Paper',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7844,'Burnt_Paper','Burnt Pieces Of Paper',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7845,'Copy_Of_Spotted_Paper','Copy Of Spotted Paper',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7846,'Copy_Of_Torn_Paper','Copy Of Torn Paper',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7847,'Copy_Of_Old_Paper','Copy Of Old Paper',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3991,31 +4163,31 @@ REPLACE INTO `item_db` VALUES (7887,'Dried_Fruit_Box','Dried Fruit Box',3,0,NULL REPLACE INTO `item_db` VALUES (7888,'Bag_Of_Nuts','Bag of Nuts',3,0,NULL,30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7889,'Chicken_Feed','Chicken Feed',3,0,NULL,20,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7891,'Mug','Mug',3,2,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7892,'Charcoal','Charcoal',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7893,'Sulfur','Sulphur',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7894,'Nitrate','Nitrogen Acid',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7895,'TRO_Memory_Book01','Rama5 Book',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7896,'TRO_Memory_Book02','Loykrathong Book',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7897,'TRO_Memory_Book03','Constitution Book',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7898,'VVS_Balmung','VV Strong Balmung',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7899,'Spiritualist_Dagger','Dagger Of Psychic',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7892,'Charcoal','Charcoal',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7893,'Sulfur','Sulphur',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7894,'Nitrate','Nitrogen Acid',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7895,'TRO_Memory_Book01','Rama5 Book',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7896,'TRO_Memory_Book02','Loykrathong Book',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7897,'TRO_Memory_Book03','Constitution Book',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7898,'VVS_Balmung','VV Strong Balmung',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7899,'Spiritualist_Dagger','Dagger Of Psychic',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7900,'Jenoss_Ring1','Jonathan Family Ring',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7901,'Jenoss_Ring2','Jillberriel Family Ring',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7902,'Jenoss_Ring3','Jessur Family Ring',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7903,'Jenoss_Ring4','Jenoss Family Ring',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7904,'Piano_Key','Piano Key',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7905,'Rok_Star_Badge_','Rok Star Badge',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7905,'Rok_Star_Badge_','Rok Star Badge',3,20,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7906,'Poppy_Wreath','Poppy Wreath',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7907,'Bobbin_Of_Goddess','Bobbin Of Goddess',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7907,'Bobbin_Of_Goddess','Bobbin Of Goddess',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7908,'Louise_Beauty_Coupon','Louise\'s Beauty Coupon',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7909,'Stolen_Cookie','Stolen Cookie',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7910,'Stolen_Candy','Stolen Candy',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7911,'Yulia_Hat','Yulia\'s Hat',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7912,'Portable_Snowman','Portable Snowman Machine',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7913,'Test_Certificate','Battle Test Certificate',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7914,'Ancient_Document_TW','Ancient Language Document',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7915,'Copper_Coin_','Bronze Coin',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7916,'Silver_Coin_','Silver Coin',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7912,'Portable_Snowman','Portable Snowman Machine',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7913,'Test_Certificate','Battle Test Certificate',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7914,'Ancient_Document_TW','Ancient Language Document',3,10,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7915,'Copper_Coin_','Bronze Coin',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7916,'Silver_Coin_','Silver Coin',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7917,'Magic_Potion','Magic Potion',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7918,'Particle_Of_Memory','Fragment Of Memory',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7919,'Festival_Ticket','Festival Ticket',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -4026,15 +4198,15 @@ REPLACE INTO `item_db` VALUES (7923,'KRATHONG_','Krathong',3,0,NULL,10,NULL,NULL REPLACE INTO `item_db` VALUES (7928,'Brazilian_Flag_','Brazil National Flag',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7929,'Golden_Coin_','Gold Coin',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7930,'Cowking\'s_Nose_Ring','Devil\'s Cattle Ring',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7931,'Poison_Kit','Poison Manufacture Kit',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7932,'Poison_Herb_Nerium','Nerium',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7933,'Poison_Herb_Rantana','Lantana',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7934,'Poison_Herb_Makulata','Makulrata',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7935,'Poison_Herb_Seratum','Celatom',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7936,'Poison_Herb_Scopolia','Scoforia',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7937,'Poison_Herb_Amoena','Amoena',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7938,'Light_Granule','Particle Of Light',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (7939,'Elder_Branch','Elder\'s Branch',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7931,'Poison_Kit','Poison Kit',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7932,'Poison_Herb_Nerium','Poison Herb Nerium',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7933,'Poison_Herb_Rantana','Poison Herb Rantana',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7934,'Poison_Herb_Makulata','Poison Herb Makulata',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7935,'Poison_Herb_Seratum','Poison Herb Seratum',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7936,'Poison_Herb_Scopolia','Poison Herb Scoporia',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7937,'Poison_Herb_Amoena','Poison Herb Amoena',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7938,'Light_Granule','Light Granule',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (7939,'Elder_Branch','Elder Branch',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7940,'Special_Alloy_Trap','Special Alloy Trap',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7941,'Halloween_Ticket','Halloween Ticket',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7942,'Letter_From_Chico','Chico Cesar Letter',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -4050,7 +4222,25 @@ REPLACE INTO `item_db` VALUES (7951,'Gold_Tulip','Golden Tulip Flower',3,0,NULL, REPLACE INTO `item_db` VALUES (7952,'Gift_From_Romiros','Gift Of Lomi Ross',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (7953,'Gift_From_Juliedge','Gift Of Juliet',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # 7954,Summer_Festival_Ticket,Summer Festival Ticket, +# 7955,Forgotten_Card_1 +# 7956,Forgotten_Card_2 +# 7957,Forgotten_Card_3 +# 7958,Forgotten_Card_4 # 7959,UP_Coin +# 7960,Ancient_Silver +# 7961,Weapon_Exchange_Ticket +# 7962,Treasure_Map1 +# 7963,Treasure_Map2 +# 7964,Treasure_Map3 +# 7965,Treasure_Map4 +# 7966 +# 7967 +# 7968 +# 7969 +# 7970 +# 7971 +# 7972 +# 7973,Eternal_Eggs # 7974,Misty's_Illusion_Piece # 7975,Cupid's_Chocolate # Pet Eggs @@ -4162,7 +4352,7 @@ REPLACE INTO `item_db` VALUES (11005,'Tyrant_Schmidt','Rune Royal Family Book',3 REPLACE INTO `item_db` VALUES (11006,'Blood_Flower01','Blood Flower Vol.1',3,8000,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11007,'Blood_Flower02','Blood Flower Vol.2',3,8000,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11008,'Barmund','Biographical Dictionary Copy Edition',3,10000,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (11009,'Adventure_Story02','Adventure Story Vol.2',3,8000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (11009,'Adventure_Story02','Adventure Story Vol.2',3,8000,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11010,'Reward_List_Book','Battlegrounds Catalog',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11011,'Barmund_Note','Varmunt\'s Note',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11012,'Expedition_Report','Expedition Report',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -4173,6 +4363,12 @@ REPLACE INTO `item_db` VALUES (11016,'Expedition_Report_Vol4','Expedition Report REPLACE INTO `item_db` VALUES (11017,'Reward_List_Book2','KVM Reward Items Catalog',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11018,'Splendide_Selling_Item','Splendide Selling Item',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11019,'Manuk_Selling_Item','Manuk Selling Item',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 11020,Japanese_Book1 +# 11021,Japanese_Book2 +# REPLACE INTO `item_db` VALUES (11022,'Mix_Cooking_Ingredient_Book_1','Cooking Book: Mix Cooking 1',3,10,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (11023,'Vitality_Boost_Research_Book','Study On How To Explosively Increase Stamina',3,10,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (11024,'Energy_Drink_Formula','How To Vital Drink',3,10,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 11056,Spiritualism_Guide, # More Usable Items # =================================================================== REPLACE INTO `item_db` VALUES (11500,'Light_Yellow_Pot','Light Yellow Potion',0,500,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(175,235),0;',NULL,NULL); @@ -4188,6 +4384,8 @@ REPLACE INTO `item_db` VALUES (11509,'Royal_Milk_Tea','Black Tea Kochakaden',0,0 REPLACE INTO `item_db` VALUES (11510,'Coke_Zero','Coca Cola Zero',0,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11511,'Coke_No_Cal','Diet Coca Cola',0,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (11512,'Coca_Cola','Coca Cola',0,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 11513,Neck_Protection_Candy, +# 11514,Enriched_Slim_Potion, REPLACE INTO `item_db` VALUES (11515,'Coconut','Coconut',0,1500,NULL,1200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(275,305),0;',NULL,NULL); REPLACE INTO `item_db` VALUES (11516,'Acai_Fruit','Acai Fruit',0,15,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(65,95),0;',NULL,NULL); REPLACE INTO `item_db` VALUES (11701,'Girl_Bunch_Of_Flower','Girl\'s Bouquet',2,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(105,145),0;',NULL,NULL); @@ -4243,66 +4441,66 @@ REPLACE INTO `item_db` VALUES (12037,'Lotto_Box03','Lotto Box 03',2,0,NULL,20,NU REPLACE INTO `item_db` VALUES (12038,'Lotto_Box04','Lotto Box 04',2,0,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_LottoBox),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12039,'Lotto_Box05','Lotto Box 05',2,0,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem rand(7542,7546),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12040,'Stone_Of_Intelligence_','Stone of Sage',2,100000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'homevolution;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12041,'Str_Dish01','Fried Grasshopper Legs',0,2000,NULL,60,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 1; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12042,'Str_Dish02','Seasoned Sticky Webfoot',0,4000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 2; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12043,'Str_Dish03','Bomber Steak',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 3; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12044,'Str_Dish04','Herb Marinade Beef',0,8000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 4; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12045,'Str_Dish05','Lutie Lady\'s Pancake',0,10000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 5; percentheal 10,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12046,'Int_Dish01','Grape Juice Herbal Tea',0,2000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 1; percentheal 0,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12047,'Int_Dish02','Autumn Red Tea',0,4000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 2; percentheal 0,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12048,'Int_Dish03','Honey Herbal Tea',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 3; percentheal 0,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12049,'Int_Dish04','Morroc Fruit Wine',0,8000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 4; percentheal 0,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12050,'Int_Dish05','Mastela Fruit Wine',0,10000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 5; percentheal 0,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12051,'Vit_Dish01','Steamed Crab Nippers',0,2000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 1; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12052,'Vit_Dish02','Assorted Seafood',0,4000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 2; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12053,'Vit_Dish03','Clam Soup',0,6000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 3; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12054,'Vit_Dish04','Seasoned Jellyfish',0,8000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 4; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12055,'Vit_Dish05','Spicy Fried Bao',0,10000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 5; percentheal 10,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12056,'Agi_Dish01','Frog Egg Squid Ink Soup',0,2000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 1; percentheal 3,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12057,'Agi_Dish02','Smooth Noodle',0,4000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 2; percentheal 3,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12058,'Agi_Dish03','Tentacle Cheese Gratin',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 3; percentheal 3,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12059,'Agi_Dish04','Lutie Cold Noodle',0,8000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 4; percentheal 3,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12060,'Agi_Dish05','Steamed Bat Wing in Pumpkin',0,10000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 5; percentheal 6,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12061,'Dex_Dish01','Honey Grape Juice',0,2000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 1; percentheal 2,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12062,'Dex_Dish02','Chocolate Mousse Cake',0,4000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 2; percentheal 2,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12063,'Dex_Dish03','Fruit Mix',0,6000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 3; percentheal 2,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12064,'Dex_Dish04','Cream Sandwich',0,8000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 4; percentheal 2,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12065,'Dex_Dish05','Green Salad',0,10000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 5; percentheal 5,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12066,'Luk_Dish01','Fried Monkey Tails',0,2000,NULL,60,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 1; percentheal 3,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12067,'Luk_Dish02','Mixed Juice',0,4000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 2; percentheal 3,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12068,'Luk_Dish03','Fried Sweet Potato',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 3; percentheal 4,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12069,'Luk_Dish04','Steamed Ancient Lips',0,8000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 4; percentheal 4,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12070,'Luk_Dish05','Fried Scorpion Tails',0,10000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 5; percentheal 5,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12071,'Str_Dish06','Shiny Marinade Beef',0,20000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 6; percentheal 10,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12072,'Str_Dish07','Whole Roast',0,40000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 7; percentheal 10,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12073,'Str_Dish08','Bearfoot Special',0,60000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 8; percentheal 15,6;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12074,'Str_Dish09','Tendon Satay',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 9; percentheal 15,8;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12075,'Str_Dish10','Steamed Tongue',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 10; percentheal 20,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12076,'Int_Dish06','Red Mushroom Wine',0,20000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 6; percentheal 2,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12077,'Int_Dish07','Special Royal Jelly Herbal Tea',0,40000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 7; percentheal 4,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12078,'Int_Dish08','Royal Family Tea',0,60000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 8; percentheal 6,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12079,'Int_Dish09','Tristan XII',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 9; percentheal 8,15;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12080,'Int_Dish10','Dragon Breath Cocktail',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 10; percentheal 10,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12081,'Vit_Dish06','Awfully Bitter Bracer',0,20000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 6; percentheal 13,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12082,'Vit_Dish07','Sumptuous Feast',0,40000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 7; percentheal 16,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12083,'Vit_Dish08','Giant Burito',0,60000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 8; percentheal 19,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12084,'Vit_Dish09','Ascending Dragon Soup',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 9; percentheal 22,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12085,'Vit_Dish10','Immortal Stew',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 10; percentheal 25,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12086,'Agi_Dish06','Chile Shrimp Gratin',0,20000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 6; percentheal 7,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12087,'Agi_Dish07','Steamed Alligator with Vegetable',0,40000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 7; percentheal 8,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12088,'Agi_Dish08','Incredibly Spicy Curry',0,60000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 8; percentheal 9,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12089,'Agi_Dish09','Special Meat Stew',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 9; percentheal 10,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12090,'Agi_Dish10','Steamed Desert Scorpions',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 10; percentheal 15,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12091,'Dex_Dish06','Peach Cake',0,20000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 6; percentheal 5,6;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12092,'Dex_Dish07','Soul Haunted Bread',0,40000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 7; percentheal 5,7;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12093,'Dex_Dish08','Special Toast',0,60000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 8; percentheal 5,8;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12094,'Dex_Dish09','Heavenly Fruit Juice',0,80000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 9; percentheal 5,9;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12095,'Dex_Dish10','Hwergelmir\'s Tonic',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 10; percentheal 10,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12096,'Luk_Dish06','Lucky Soup',0,20000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 6; percentheal 6,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12097,'Luk_Dish07','Assorted Shish Kebob',0,40000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 7; percentheal 7,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12098,'Luk_Dish08','Strawberry Flavored Rice Ball',0,60000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 8; percentheal 9,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12099,'Luk_Dish09','Blood Flavored Soda',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 9; percentheal 10,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12100,'Luk_Dish10','Cooked Nine Tail\'s Tails',0,100000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 10; percentheal 14,8;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12041,'Str_Dish01','Fried Grasshopper Legs',0,2000,NULL,60,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 1; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12042,'Str_Dish02','Seasoned Sticky Webfoot',0,4000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 2; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12043,'Str_Dish03','Bomber Steak',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 3; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12044,'Str_Dish04','Herb Marinade Beef',0,8000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 4; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12045,'Str_Dish05','Lutie Lady\'s Pancake',0,10000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 5; percentheal 10,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12046,'Int_Dish01','Grape Juice Herbal Tea',0,2000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 1; percentheal 0,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12047,'Int_Dish02','Autumn Red Tea',0,4000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 2; percentheal 0,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12048,'Int_Dish03','Honey Herbal Tea',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 3; percentheal 0,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12049,'Int_Dish04','Morroc Fruit Wine',0,8000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 4; percentheal 0,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12050,'Int_Dish05','Mastela Fruit Wine',0,10000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 5; percentheal 0,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12051,'Vit_Dish01','Steamed Crab Nippers',0,2000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 1; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12052,'Vit_Dish02','Assorted Seafood',0,4000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 2; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12053,'Vit_Dish03','Clam Soup',0,6000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 3; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12054,'Vit_Dish04','Seasoned Jellyfish',0,8000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 4; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12055,'Vit_Dish05','Spicy Fried Bao',0,10000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 5; percentheal 10,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12056,'Agi_Dish01','Frog Egg Squid Ink Soup',0,2000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 1; percentheal 3,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12057,'Agi_Dish02','Smooth Noodle',0,4000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 2; percentheal 3,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12058,'Agi_Dish03','Tentacle Cheese Gratin',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 3; percentheal 3,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12059,'Agi_Dish04','Lutie Cold Noodle',0,8000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 4; percentheal 3,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12060,'Agi_Dish05','Steamed Bat Wing in Pumpkin',0,10000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 5; percentheal 6,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12061,'Dex_Dish01','Honey Grape Juice',0,2000,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 1; percentheal 2,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12062,'Dex_Dish02','Chocolate Mousse Cake',0,4000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 2; percentheal 2,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12063,'Dex_Dish03','Fruit Mix',0,6000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 3; percentheal 2,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12064,'Dex_Dish04','Cream Sandwich',0,8000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 4; percentheal 2,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12065,'Dex_Dish05','Green Salad',0,10000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 5; percentheal 5,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12066,'Luk_Dish01','Fried Monkey Tails',0,2000,NULL,60,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 1; percentheal 3,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12067,'Luk_Dish02','Mixed Juice',0,4000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 2; percentheal 3,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12068,'Luk_Dish03','Fried Sweet Potato',0,6000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 3; percentheal 4,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12069,'Luk_Dish04','Steamed Ancient Lips',0,8000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 4; percentheal 4,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12070,'Luk_Dish05','Fried Scorpion Tails',0,10000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 5; percentheal 5,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12071,'Str_Dish06','Shiny Marinade Beef',0,20000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 6; percentheal 10,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12072,'Str_Dish07','Whole Roast',0,40000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 7; percentheal 10,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12073,'Str_Dish08','Bearfoot Special',0,60000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 8; percentheal 15,6;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12074,'Str_Dish09','Tendon Satay',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 9; percentheal 15,8;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12075,'Str_Dish10','Steamed Tongue',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 10; percentheal 20,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12076,'Int_Dish06','Red Mushroom Wine',0,20000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 6; percentheal 2,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12077,'Int_Dish07','Special Royal Jelly Herbal Tea',0,40000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 7; percentheal 4,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12078,'Int_Dish08','Royal Family Tea',0,60000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 8; percentheal 6,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12079,'Int_Dish09','Tristan XII',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 9; percentheal 8,15;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12080,'Int_Dish10','Dragon Breath Cocktail',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 10; percentheal 10,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12081,'Vit_Dish06','Awfully Bitter Bracer',0,20000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 6; percentheal 13,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12082,'Vit_Dish07','Sumptuous Feast',0,40000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 7; percentheal 16,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12083,'Vit_Dish08','Giant Burito',0,60000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 8; percentheal 19,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12084,'Vit_Dish09','Ascending Dragon Soup',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 9; percentheal 22,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12085,'Vit_Dish10','Immortal Stew',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 10; percentheal 25,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12086,'Agi_Dish06','Chile Shrimp Gratin',0,20000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 6; percentheal 7,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12087,'Agi_Dish07','Steamed Alligator with Vegetable',0,40000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 7; percentheal 8,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12088,'Agi_Dish08','Incredibly Spicy Curry',0,60000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 8; percentheal 9,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12089,'Agi_Dish09','Special Meat Stew',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 9; percentheal 10,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12090,'Agi_Dish10','Steamed Desert Scorpions',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 10; percentheal 15,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12091,'Dex_Dish06','Peach Cake',0,20000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 6; percentheal 5,6;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12092,'Dex_Dish07','Soul Haunted Bread',0,40000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 7; percentheal 5,7;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12093,'Dex_Dish08','Special Toast',0,60000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 8; percentheal 5,8;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12094,'Dex_Dish09','Heavenly Fruit Juice',0,80000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 9; percentheal 5,9;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12095,'Dex_Dish10','Hwergelmir\'s Tonic',0,100000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 10; percentheal 10,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12096,'Luk_Dish06','Lucky Soup',0,20000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 6; percentheal 6,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12097,'Luk_Dish07','Assorted Shish Kebob',0,40000,NULL,800,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 7; percentheal 7,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12098,'Luk_Dish08','Strawberry Flavored Rice Ball',0,60000,NULL,400,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 8; percentheal 9,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12099,'Luk_Dish09','Blood Flavored Soda',0,80000,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 9; percentheal 10,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12100,'Luk_Dish10','Cooked Nine Tail\'s Tails',0,100000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 10; percentheal 14,8;',NULL,NULL); REPLACE INTO `item_db` VALUES (12101,'Citron','Citron',0,20,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12102,'Meat_Skewer','Grilled Skewer',0,20,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12103,'Bloody_Dead_Branch','Bloody Branch',2,10000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'monster \"this\",-1,-1,\"--ja--\",-3,1,\"\";',NULL,NULL); @@ -4324,9 +4522,9 @@ REPLACE INTO `item_db` VALUES (12118,'Resist_Fire','Fireproof Potion',2,2,NULL,1 REPLACE INTO `item_db` VALUES (12119,'Resist_Water','Coldproof Potion',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start4 SC_ARMOR_ELEMENT,1200000,20,0,0,-15;',NULL,NULL); REPLACE INTO `item_db` VALUES (12120,'Resist_Earth','Earthproof Potion',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start4 SC_ARMOR_ELEMENT,1200000,0,20,-15,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12121,'Resist_Wind','Thunderproof Potion',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start4 SC_ARMOR_ELEMENT,1200000,0,-15,0,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12122,'Sesame_Pastry','Sesame Pastry',0,2,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_HitFood,1200000,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12123,'Honey_Pastry','Honey Pastry',0,2,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FleeFood,1200000,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12124,'Rainbow_Cake','Rainbow Cake',0,2,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_BATKFood,1200000,10; sc_start SC_MATKFood,120000,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12122,'Sesame_Pastry','Sesame Pastry',0,2,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_HITFOOD,1200000,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12123,'Honey_Pastry','Honey Pastry',0,2,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FLEEFOOD,1200000,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12124,'Rainbow_Cake','Rainbow Cake',0,2,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_BATKFOOD,1200000,10; sc_start SC_MATKFOOD,120000,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12125,'Outdoor_Cooking_Kits','Outdoor Cooking Kit',2,500,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'cooking 11;',NULL,NULL); REPLACE INTO `item_db` VALUES (12126,'Indoor_Cooking_Kits','Home Cooking Kit',2,1000,NULL,30,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'cooking 12;',NULL,NULL); REPLACE INTO `item_db` VALUES (12127,'High_end_Cooking_Kits','Professional Cooking Kit',2,2000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'cooking 13;',NULL,NULL); @@ -4344,7 +4542,7 @@ REPLACE INTO `item_db` VALUES (12138,'2nd_Stage_Prize','Second Stage Prize',2,0, REPLACE INTO `item_db` VALUES (12139,'3rd_Stage_Prize','Third Stage Prize',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12140,'4th_Stage_Prize','Fourth Stage Prize',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12141,'5th_Stage_Prize','Fifth Stage Prize',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12142,'Magic_Book','Book of Magic',2,0,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1800000, 10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12142,'Magic_Book','Book of Magic',2,0,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1800000, 10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12143,'Red_Can','Red Can',2,50000,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12144,'Sphere_Case_Wind','Lightning Sphere Pack',2,2,NULL,350,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13204,500;',NULL,NULL); REPLACE INTO `item_db` VALUES (12145,'Sphere_Case_Darkness','Blind Sphere Pack',2,2,NULL,350,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13206,500;',NULL,NULL); @@ -4405,15 +4603,15 @@ REPLACE INTO `item_db` VALUES (12199,'Rice_Scroll','Scroll of Magic',2,0,NULL,0, REPLACE INTO `item_db` VALUES (12200,'Event_Cake','X-mas Cake',2,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"PR_MAGNIFICAT\",3;',NULL,NULL); REPLACE INTO `item_db` VALUES (12201,'Red_Box_C','Commonplace Red Box',2,20,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # Cash Shop Usable Items -REPLACE INTO `item_db` VALUES (12202,'Str_Dish10_','Steamed Tongue',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood,1800000, 10; percentheal 15,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12203,'Agi_Dish10_','Steamed Scorpion',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood,1800000, 10; percentheal 15,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12204,'Int_Dish10_','Dragon Breath Cocktail',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood,1800000, 10; percentheal 15,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12205,'Dex_Dish10_','Hwergelmir\'s Tonic',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood,1800000, 10; percentheal 15,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12206,'Luk_Dish10_','Cooked Nine Tail\'s Tails',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood,1800000, 10; percentheal 15,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12207,'Vit_Dish10_','Stew Of Immortality',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood,1800000, 10; percentheal 15,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12202,'Str_Dish10_','Steamed Tongue',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FOOD_STR_CASH,1800000,10; percentheal 15,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12203,'Agi_Dish10_','Steamed Scorpion',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FOOD_AGI_CASH,1800000,10; percentheal 15,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12204,'Int_Dish10_','Dragon Breath Cocktail',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FOOD_INT_CASH,1800000,10; percentheal 15,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12205,'Dex_Dish10_','Hwergelmir\'s Tonic',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FOOD_DEX_CASH,1800000,10; percentheal 15,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12206,'Luk_Dish10_','Cooked Nine Tail\'s Tails',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FOOD_LUK_CASH,1800000,10; percentheal 15,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12207,'Vit_Dish10_','Stew Of Immortality',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FOOD_VIT_CASH,1800000,10; percentheal 15,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (12208,'Battle_Manual','Battle Manual',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_EXPBOOST,1800000,50;',NULL,NULL); REPLACE INTO `item_db` VALUES (12209,'Insurance','Life Insurance',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LIFEINSURANCE,1800000,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12210,'Bubble_Gum','Bubble Gum',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMBOOST,1800000,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12210,'Bubble_Gum','Bubble Gum',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMBOOST,1800000,200;',NULL,NULL); REPLACE INTO `item_db` VALUES (12211,'Kafra_Card','Kafra Card',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashStore\";',NULL,NULL); REPLACE INTO `item_db` VALUES (12212,'Giant_Fly_Wing','Giant Fly Wing',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashPartyCall\";',NULL,NULL); REPLACE INTO `item_db` VALUES (12213,'Neuralizer','Neuralizer',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashReset\";',NULL,NULL); @@ -4426,12 +4624,12 @@ REPLACE INTO `item_db` VALUES (12219,'Wind_Walk_10_Scroll','LV10 Wind Walker Scr REPLACE INTO `item_db` VALUES (12220,'Adrenaline_Scroll','LV5 Adrenaline Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(isequipped(1301,1302,1303)) skilleffect \"BS_ADRENALINE\",0; sc_start SC_ADRENALINE,150000,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (12221,'Megaphone_','Megaphone',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'input @Megaphone$; announce strcharinfo(0) + \": \" + @megaphone$,bc_all,0xFF0000; end;',NULL,NULL); REPLACE INTO `item_db` VALUES (12225,'Sweet_Candy_Striper','Sweet Candy Cane',2,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1245;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12226,'Examination1','Examination 1',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFood,5400000,10; sc_start SC_DEXFood,5400000,5; sc_start SC_ATKPOTION,5400000,22; sc_start SC_MATKFood,5400000,15;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12227,'Examination2','Examination 2',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_INTFood,5400000,8; sc_start SC_VITFood,5400000,7; sc_start SC_LUKFood,5400000,7; sc_start SC_ATKPOTION,5400000,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12228,'Examination3','Examination 3',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_AGIFood,5400000,15; sc_start SC_ATKPOTION,5400000,52; sc_start SC_MATKFood,5400000,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12229,'Examination4','Examination 4',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFood,5400000,3; sc_start SC_AGIFood,5400000,5; sc_start SC_VITFood,5400000,10; sc_start SC_MATKFood,5400000,52;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12230,'Examination5','Examination 5',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_INTFood,5400000,3; sc_start SC_DEXFood,5400000,12; sc_start SC_ATKPOTION,5400000,20; sc_start SC_MATKFood,5400000,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12231,'Examination6','Examination 6',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 100,100; sc_start SC_SpeedUp0,5400000,0; sc_start SC_STRFood,5400000,6; sc_start SC_DEXFood,5400000,6; sc_start SC_AGIFood,5400000,6; sc_start SC_INTFood,5400000,6; sc_start SC_VITFood,5400000,6; sc_start SC_LUKFood,5400000,6; sc_start SC_ATKPOTION,5400000,24; sc_start SC_MATKFood,5400000,24;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12226,'Examination1','Examination 1',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFOOD,5400000,10; sc_start SC_DEXFOOD,5400000,5; sc_start SC_ATKPOTION,5400000,22; sc_start SC_MATKFOOD,5400000,15;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12227,'Examination2','Examination 2',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_INTFOOD,5400000,8; sc_start SC_VITFOOD,5400000,7; sc_start SC_LUKFOOD,5400000,7; sc_start SC_ATKPOTION,5400000,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12228,'Examination3','Examination 3',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_AGIFOOD,5400000,15; sc_start SC_ATKPOTION,5400000,52; sc_start SC_MATKFOOD,5400000,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12229,'Examination4','Examination 4',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFOOD,5400000,3; sc_start SC_AGIFOOD,5400000,5; sc_start SC_VITFOOD,5400000,10; sc_start SC_MATKFOOD,5400000,52;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12230,'Examination5','Examination 5',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_INTFOOD,5400000,3; sc_start SC_DEXFOOD,5400000,12; sc_start SC_ATKPOTION,5400000,20; sc_start SC_MATKFOOD,5400000,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12231,'Examination6','Examination 6',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 100,100; sc_start SC_SpeedUp0,5400000,0; sc_start SC_STRFOOD,5400000,6; sc_start SC_DEXFOOD,5400000,6; sc_start SC_AGIFOOD,5400000,6; sc_start SC_INTFOOD,5400000,6; sc_start SC_VITFOOD,5400000,6; sc_start SC_LUKFOOD,5400000,6; sc_start SC_ATKPOTION,5400000,24; sc_start SC_MATKFOOD,5400000,24;',NULL,NULL); REPLACE INTO `item_db` VALUES (12232,'Gingerbread','Ginger Bread',0,20,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12233,'Kvass','Kvass',0,20,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 100,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (12234,'Cacao99','Fierce Cacao 99%',0,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 25,0;',NULL,NULL); @@ -4450,29 +4648,29 @@ REPLACE INTO `item_db` VALUES (12246,'Magic_Card_Album','Mystical Card Album',2, REPLACE INTO `item_db` VALUES (12247,'Halohalo','Halo-Halo',2,2,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,20,NULL,NULL,'sc_start SC_INCALLSTATUS,600000,3;',NULL,NULL); REPLACE INTO `item_db` VALUES (12248,'Masquerade_Ball_Box','Fancy Ball Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_Masquerade),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12249,'Payroll_Of_Kafra_','Payment Statement for Kafra Employee',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12250,'Str_Dish10_M','Steamed Tongue',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood,3600000,10; percentheal 20,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12251,'Agi_Dish10_M','Steamed Desert Scorpions',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood,3600000,10; percentheal 15,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12252,'Int_Dish10_M','Dragon Breath Cocktail',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood,3600000,10; percentheal 10,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12253,'Dex_Dish10_M','Hwergelmir\'s Tonic',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood,3600000,10; percentheal 10,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12254,'Luk_Dish10_M','Cooked Nine Tail',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood,3600000,10; percentheal 14,8;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12255,'Vit_Dish10_M','Immortal Stew',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood,3600000,10; percentheal 25,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12250,'Str_Dish10_M','Steamed Tongue',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD,3600000,10; percentheal 20,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12251,'Agi_Dish10_M','Steamed Desert Scorpions',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD,3600000,10; percentheal 15,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12252,'Int_Dish10_M','Dragon Breath Cocktail',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD,3600000,10; percentheal 10,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12253,'Dex_Dish10_M','Hwergelmir\'s Tonic',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD,3600000,10; percentheal 10,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12254,'Luk_Dish10_M','Cooked Nine Tail',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD,3600000,10; percentheal 14,8;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12255,'Vit_Dish10_M','Immortal Stew',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD,3600000,10; percentheal 25,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12256,'PRO_Gift_Box','PRO Gift Box',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12257,'Cold_Medicine','Cold Medicine',2,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,50,NULL,NULL,'percentheal 25,25;',NULL,NULL); REPLACE INTO `item_db` VALUES (12258,'Bombring_Box','Bomb Poring Box',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'monster \"this\",-1,-1,\"--ja--\",1904,1,\"\";',NULL,NULL); -REPLACE INTO `item_db` VALUES (12259,'Miracle_Medicine','Miracle Tonic',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12259,'Miracle_Medicine','Miracle Tonic',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getexp 3000000,1500000;',NULL,NULL); REPLACE INTO `item_db` VALUES (12260,'Cool_Summer_Outfit','Cool Summer Outfit',2,0,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_Summer,600000,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12261,'Secret_Medicine','Leap of Fantasy',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12261,'Secret_Medicine','Leap of Fantasy',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getexp 2000000,1000000;',NULL,NULL); REPLACE INTO `item_db` VALUES (12262,'Inspector_Certificate_','Authoritative Badge',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,180000,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12263,'Comp_Battle_Manual','Field Manual',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_EXPBOOST,1800000,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12264,'Comp_Bubble_Gum','Bubble Gum',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMBOOST,1800000,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12264,'Comp_Bubble_Gum','Bubble Gum',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMBOOST,1800000,200;',NULL,NULL); REPLACE INTO `item_db` VALUES (12265,'Comp_Insurance','Life Insurrance',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LIFEINSURANCE,1800000,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12266,'Sesame_Pastry_','Sesame Pastry',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_HitFood,1200000,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12267,'Honey_Pastry_','Honey Pastry',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FleeFood,1200000,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12268,'Rainbow_Cake_','Rainbow Cake',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ATKPOTION,60000,10; sc_start SC_MATKFood,120000,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12266,'Sesame_Pastry_','Sesame Pastry',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_HITFOOD,1200000,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12267,'Honey_Pastry_','Honey Pastry',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FLEEFOOD,1200000,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12268,'Rainbow_Cake_','Rainbow Cake',2,2,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ATKPOTION,60000,10; sc_start SC_MATKFOOD,120000,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12269,'Tasty_Colonel','Tasty Pink Ration',0,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ATKPOTION,600000,15;',NULL,NULL); REPLACE INTO `item_db` VALUES (12270,'Tasty_Major','Tasty White Ration',0,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_MATKPOTION,600000,15;',NULL,NULL); REPLACE INTO `item_db` VALUES (12271,'Mre_A','Military Ration A',0,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12272,'Mre_B','Military Ration B',0,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCHIT,600000,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12272,'Mre_B','Military Ration B',0,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCHIT,600000,33;',NULL,NULL); REPLACE INTO `item_db` VALUES (12273,'Mre_C','Military Ration C',0,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCFLEE,600000,33;',NULL,NULL); REPLACE INTO `item_db` VALUES (12274,'Gold_Pill_1','Daehwandan',0,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCMHPRATE,36000000,5; percentheal 10,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12275,'Gold_Pill_2','Taecheongdan',0,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCMSPRATE,36000000,5; percentheal 0,10;',NULL,NULL); @@ -4481,12 +4679,12 @@ REPLACE INTO `item_db` VALUES (12277,'Disguise_Summon_Book','Disguise Scroll',2, REPLACE INTO `item_db` VALUES (12278,'Alice_Summon_Book','Alice Contract',2,2,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'mercenary_create 1275,1800000;',NULL,NULL); REPLACE INTO `item_db` VALUES (12279,'Undead_Element_Scroll','Undead Elemental Scroll',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start4 SC_ARMOR_RESIST,300000,20,20,20,20;',NULL,NULL); REPLACE INTO `item_db` VALUES (12280,'Holy_Element_Scroll','Holy Elemental Scroll',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_BENEDICTIO; sc_start SC_BENEDICTIO,300000,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12281,'Tresure_Box_WoE','Event Treasure Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12281,'Tresure_Box_WoE','Event Treasure Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_Tresure_Box_WoE),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12282,'Internet_Cafe1','Internet Cafe1',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCALLSTATUS,5400000,3; sc_start SC_ATKPOTION,5400000,15; sc_start SC_MATKPOTION,5400000,15;',NULL,NULL); REPLACE INTO `item_db` VALUES (12283,'Internet_Cafe2','Internet Cafe2',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCSTR,5400000,8; sc_start SC_INCDEX,5400000,4; sc_start SC_INCAGI,5400000,6; sc_start SC_ATKPOTION,5400000,32; sc_start SC_INCFLEE,5400000,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (12284,'Internet_Cafe3','Internet Cafe3',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCINT,5400000,8; sc_start SC_INCVIT,5400000,4; sc_start SC_INCDEX,5400000,6; sc_start SC_MATKPOTION,5400000,40;',NULL,NULL); REPLACE INTO `item_db` VALUES (12285,'Internet_Cafe4','Internet Cafe4',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCDEX,5400000,8; sc_start SC_INCLUK,5400000,4; sc_start SC_INCAGI,5400000,6; sc_start SC_ATKPOTION,5400000,24; sc_start SC_MATKPOTION,5400000,24;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12286,'Masquerade_Ball_Box2','Masquerade Ball Box2',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12286,'Masquerade_Ball_Box2','Masquerade Ball Box2',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_Masquerade_2),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12287,'Love_Angel','Love Angel Magic Powder',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'setfont 1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12288,'Squirrel','Squirrel Magic Powder',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'setfont 2;',NULL,NULL); REPLACE INTO `item_db` VALUES (12289,'Gogo','Gogo Magic Powder',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'setfont 3;',NULL,NULL); @@ -4523,23 +4721,23 @@ REPLACE INTO `item_db` VALUES (12319,'Strawberry_Cake','Rune Strawberry Cake',0, REPLACE INTO `item_db` VALUES (12320,'Pineapple_Juice','Schwartzwald Pine Jubilee',0,0,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCHIT,600000,10; sc_start SC_INCFLEE2,600000,20;',NULL,NULL); REPLACE INTO `item_db` VALUES (12321,'Spicy_Sandwich','Arunafeltz Desert Sandwich',0,0,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCCRI,600000,7;',NULL,NULL); REPLACE INTO `item_db` VALUES (12322,'Chocolate_Pie','Chocolate Pie',0,0,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 5,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12323,'N_Fly_Wing','Novice Fly Wing',11,1,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"AL_TELEPORT\",1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12324,'N_Butterfly_Wing','Novice Butterfly Wing',11,1,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"AL_TELEPORT\",3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12325,'N_Magnifier','Novice Magnifier',11,1,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"MC_IDENTIFY\",1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12323,'N_Fly_Wing','Novice Fly Wing',11,1,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"AL_TELEPORT\",1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12324,'N_Butterfly_Wing','Novice Butterfly Wing',11,1,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"AL_TELEPORT\",3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12325,'N_Magnifier','Novice Magnifier',11,1,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"MC_IDENTIFY\",1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12326,'J_Firecracker','Large Firecracker',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12327,'Charm_Of_Luck','Charm Of Luck',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12328,'Charm_Of_Happiness','Charm Of Happiness',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCLUK,3600000,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12329,'Recall_MaleGM','Summon Male GameMaster Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12330,'Recall_FemaleGM','Summon Female GameMaster Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12329,'Recall_MaleGM','Summon Male GameMaster Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'mercenary_create 2000,1800000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12330,'Recall_FemaleGM','Summon Female GameMaster Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'mercenary_create 2001,1800000;',NULL,NULL); REPLACE INTO `item_db` VALUES (12331,'Ginseng','Ginseng',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 6,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12332,'Fruit_Juice','Fruit Juice',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 0,6;',NULL,NULL); REPLACE INTO `item_db` VALUES (12333,'Ansila','Ancilla',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12334,'Cherish_Box','Treasure Edition Helm Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12334,'Cherish_Box','Treasure Edition Helm Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_Cherish_Box),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12335,'Yummy_Skewered_Dish','Grilled Delicious Skewer',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 60,60;',NULL,NULL); REPLACE INTO `item_db` VALUES (12336,'Baked_Mushroom','Grilled Mushroom',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 30,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (12337,'Grilled_Sausage','Grilled Sausages',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 20,20;',NULL,NULL); REPLACE INTO `item_db` VALUES (12338,'Grilled_Corn','Grilled Corn',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCSTR,180000,2; sc_start SC_INCINT,180000,2; sc_start SC_INCAGI,180000,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12339,'Cherish_Box_Ori','Treasure Edition Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12339,'Cherish_Box_Ori','Treasure Edition Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_Cherish_Box_Ori),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12340,'Mysterious_Rice_Powder','Chewy Rice Powder',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1815;',NULL,NULL); REPLACE INTO `item_db` VALUES (12341,'Special_Alloy_Trap_Box','Special Alloy Trap Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12342,'Manuk\'s_Opportunity','Manuk\'s Opportunity',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_POTION_BERSERK; sc_start SC_MANU_ATK,600000,10;',NULL,NULL); @@ -4555,8 +4753,8 @@ REPLACE INTO `item_db` VALUES (12351,'Shout_Megaphone','Scream Megaphone',2,0,NU REPLACE INTO `item_db` VALUES (12352,'Dun_Tele_Scroll3','Dungeon Teleport Scroll 3',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12353,'Tiny_Waterbottle','Small Bottle',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_WATERWEAPON,90000,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12354,'Buche_De_Noel','Buche De Noel',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_ANGELUS; sc_start SC_INCMHPRATE,600000,3; sc_start SC_INCMSPRATE,600000,3; sc_start SC_INCHITRATE,600000,3; sc_start SC_INCCRI,600000,7;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12355,'Xmas_Gift','Xmas Gift',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12356,'Louise_Costume_Box','Louise Costume Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12355,'Xmas_Gift','Xmas Gift',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_Xmas_Gift),1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12356,'Louise_Costume_Box','Louise Costume Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_Louise_Costume_Box),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12357,'Shiny_Wing_Gown','Shiny Wing Gown',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1002;',NULL,NULL); REPLACE INTO `item_db` VALUES (12358,'Fan_Of_Wind','Fan Of Wind',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1513;',NULL,NULL); REPLACE INTO `item_db` VALUES (12359,'Very_Soft_Plant','Very Soft Plant',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1586;',NULL,NULL); @@ -4580,17 +4778,17 @@ REPLACE INTO `item_db` VALUES (12376,'Mysterious_Can2','Mysterious Can2',2,0,NUL REPLACE INTO `item_db` VALUES (12377,'Mysterious_PET_Bottle2','Mysterious PET Bottle2',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12378,'2009_Rice_Cake_Soup','Rice Cake Soup',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12379,'Pope\'s_Cookie','Pope Cookie',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12380,'Desert_Wolf_Babe_Scroll','Desert Wolf Babe Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12380,'Desert_Wolf_Babe_Scroll','Job Change Flute',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12381,'ValkyrieA_Scroll','Ancient Languages Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12382,'ValkyrieB_Scroll','Ancient Languages Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12383,'Vulcan_Bullet_Magazine','Vulcan Bullet Magazine',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12384,'Rainbow_Ruby_Water','Ray Ball B',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12385,'Rainbow_Ruby_Fire','Ray Ball B',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12386,'Rainbow_Ruby_Wind','Ray Ball B',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12387,'Rainbow_Ruby_Earth','Ray Ball B',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12388,'Runstone_Crush','Runstone Crush',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12389,'Runstone_Storm','Runstone Storm',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12390,'Runstone_Millennium','Runstone Millennium',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12384,'Rainbow_Ruby_Water','Rainbow Ruby',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12385,'Rainbow_Ruby_Fire','Rainbow Ruby',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12386,'Rainbow_Ruby_Wind','Rainbow Ruby',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12387,'Rainbow_Ruby_Earth','Rainbow Ruby',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12388,'Runstone_Crush','Rhydo Runestone For Apprentice',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12389,'Runstone_Storm','Pertz Runestone For Apprentice',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12390,'Runstone_Millennium','Verkana Runestone For Apprentice',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12391,'Lucky_Egg_C','Lucky Egg',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12392,'RepairA','Repair A',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12393,'RepairB','Repair B',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -4598,8 +4796,71 @@ REPLACE INTO `item_db` VALUES (12394,'RepairC','Repair C',2,0,NULL,0,NULL,NULL,N REPLACE INTO `item_db` VALUES (12395,'Tantanmen','Tantan Noodle',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12396,'Fools_Day_Box','Gift Box?',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill \"AL_TELEPORT\",1; else if(rand(1,10)==2) itemskill \"AL_TELEPORT\",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill \"ALL_REVERSEORCISH\",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12397,'Fools_Day_Box2','Gift Box?',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill \"TF_DETOXIFY\",1; else if(rand(1,10)==2) itemskill \"TF_PICKSTONE\",1; else if(rand(1,10)==3) itemskill \"BA_FROSTJOKER\",1; else if(rand(1,10)==4) itemskill \"DC_SCREAM\",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill \"AL_RUWACH\",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196;',NULL,NULL); +# 12409,1st_Class_Pork_Belly, +# 12410,Thick_Pork_Belly, REPLACE INTO `item_db` VALUES (12411,'HE_Battle_Manual','HE Battle Manual',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_EXPBOOST,900000,200;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12412,'HE_Bubble_Gum','HE Bubble Gum',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMBOOST,900000,200;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12412,'HE_Bubble_Gum','HE Bubble Gum',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMBOOST,900000,300;',NULL,NULL); +# 12418,Full_SwingK, +# 12419,Mana_+, +# 12422,HP_Increase_Potion(Small), +# 12423,HP_Increase_Potion(Mid), +# 12424,HP_Increase_Potion(Large), +# 12425,SP_Increase_Potion(Small), +# 12426,SP_Increase_Potion(Mid), +# 12427,SP_Increase_Potion(Large), +# 12428,Enriched_White_PotionZ, +# 12429,Savage_BBQ, +# 12430,Wug_Blood_Cocktail, +# 12431,Minor_Brisket, +# 12432,Siroma_Icetea, +# 12433,Drosera_Herb_Stew, +# 12434,Petite_Tail_Noodle, +# 12435,Black_Thing, +# 12436,Vitata500, +# 12437,Enrich_Celermine_Juice, +# 12438,Giant_Fly_Wing, +# 12439,Battle_Manual, +# 12440,Insurance, +# 12441,Bubble_Gum, +# 12442,Kafra_Card, +# 12443,Neuralizer, +# 12444,WoE_Teleport_Scroll, +# 12445,Steamed_Tongue, +# 12446,Steamed_Desert_Scorpions, +# 12447,Dragon_Breath_Cocktail, +# 12448,Hwergelmir's_Tonic, +# 12449,Nine_Tail, +# 12450,Stew_Of_Immortality, +# 12451,Yellow_Butterfly_Wing, +# 12452,Green_Butterfly_Wing, +# 12453,Red_Butterfly_Wing, +# 12454,Blue_Butterfly_Wing, +# 12455,WoE_Teleport_Scroll, +# 12456,Greed_Scroll, +# 12457,Glass_Of_Illusion, +# 12458,Abrasive, +# 12459,Medium_Life_Potion, +# 12460,Small_Life_Potion, +# 12461,Regeneration_Potion, +# 12462,Big_Magic_Defense_Potion, +# 12463,Small_Magic_Defense_Potion, +# 12464,Big_Defense_Potion, +# 12465,Small_Defense_Potion, +# 12466,LV10_Blessing_Scroll, +# 12467,LV10_Agil_Scroll, +# 12468,LV5_Aspersio_Scroll, +# 12469,LV5_Assumptio_Scroll, +# 12470,LV10_Wind_Walker_Scroll, +# 12471,LV5_Adrenaline_Scroll, +# 12472,Convex_Mirror, +# 12475,Cure_Free, +REPLACE INTO `item_db` VALUES (12548,'Shabby_Purchase_Street_Stall_License','Shabby Purchase Street Stall License',2,500,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'buyingstore 2;',NULL,NULL); +# 12553,Brysingamen_Piece_Box, +# 12554,Asprika_Piece_Box, +# 12555,Brynhild_Piece_Box, +# 12556,Sleipnir_Piece_Box, +# 12557,Mjolnir_Piece_Box, +# 12558,Megingiorde_Piece_Box, REPLACE INTO `item_db` VALUES (12701,'Old_Blue_Box_F','Old Blue Box',2,NULL,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12702,'Old_Bleu_Box','Old Navy Box',2,0,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_BleuBox),1; getitem groupranditem(IG_BleuBox),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12703,'Holy_Egg_2','Holy Egg',11,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -4613,137 +4874,139 @@ REPLACE INTO `item_db` VALUES (12710,'Guyak_Pudding','Guyak Pudding',2,0,NULL,20 REPLACE INTO `item_db` VALUES (12711,'Pretzel','Pretzel',2,2,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12712,'Green_Beer','Green Beer',2,2,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12713,'Monster_Extract','Monster Extract',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12714,'Easter_Scroll','Easter Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12714,'Easter_Scroll','Easter Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_Easter_Scroll),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12715,'Black_Treasure_Chest','Black Treasure Chest',2,0,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12716,'Indian_Rice_Cake','Indian Rice Cake',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12717,'Poison_Paralysis','Paralyze',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12717,'Poison_Paralysis','Paralysis',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12718,'Poison_Leech','Leech End',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12719,'Poison_Oblivion','Oblivion Curse',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12720,'Poison_Contamination','Disheart',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12720,'Poison_Contamination','Death Hurt',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12721,'Poison_Numb','Toxin',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12722,'Poison_Fever','Pyrexia',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12723,'Poison_Laughing','Magic Mushroom',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12724,'Poison_Fatigue','Venom Bleed',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12725,'Runstone_Nosiege','Nauthiz Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12726,'Runstone_Rhydo','Raido Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12727,'Runstone_Verkana','Berkana Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12728,'Runstone_Isia','Isa Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12729,'Runstone_Asir','Othila Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12730,'Runstone_Urj','Uruz Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12731,'Runstone_Turisus','Thurisaz Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12732,'Runstone_Pertz','Wyrd Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12733,'Runstone_Hagalas','Hagalaz Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12734,'Runstone_Quality','Luxurious Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12735,'Runstone_Ancient','Ancient Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12736,'Runstone_Mystic','Mystic Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12737,'Runstone_Ordinary','General Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12738,'Runstone_Rare','Rare Rune',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12725,'Runstone_Nosiege','Nosiege Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12726,'Runstone_Rhydo','Rhydo Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12727,'Runstone_Verkana','Verkana Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12728,'Runstone_Isia','Isia Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12729,'Runstone_Asir','Asir Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12730,'Runstone_Urj','Urj Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12731,'Runstone_Turisus','Turisus Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12732,'Runstone_Pertz','Pertz Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12733,'Runstone_Hagalas','Hagalas Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12734,'Runstone_Quality','Quality Rough Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12735,'Runstone_Ancient','Ancient Rough Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12736,'Runstone_Mystic','Mystic Rough Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12737,'Runstone_Ordinary','General Rough Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12738,'Runstone_Rare','Rare Rough Runestone',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12739,'Snow_Flower','Snow Flowers',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12740,'Inc_Str_Scroll','Amplification Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12741,'Inc_Int_Scroll','Intellect Amplification Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12742,'Valentine_Gift_Box1','Valentine Gift Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12743,'Valentine_Gift_Box2','Valentine Gift Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12744,'Chocotate_Box','Chocolate Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12900,'Battle_Manual_Box','Battle Manual Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12901,'Insurance_Package','Insurance Package',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12902,'Bubble_Gum_Box','Bubble Gum Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12903,'Str_Dish_Box','Steamed Tongue Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12904,'Agi_Dish_Box','Steamed Scorpion Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12905,'Int_Dish_Box','Dragon Breath Cocktail Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12906,'Dex_Dish_Box','Hwergelmir\'s Tonic Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12907,'Luk_Dish_Box','Nine Tail Dish Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12908,'Vit_Dish_Box','Stew Of Immortality Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12909,'Kafra_Card_Box','Kafra Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12910,'Giant_Fly_Wing_Box','Giant Fly Wing Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12911,'Neuralizer_Box','Neuralizer Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12213,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12912,'Convex_Mirror_Box','Convex Mirror Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12913,'Blessing_10_Scroll_Box','Blessing 10 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12914,'Inc_Agi_10_Scroll_Box','Increase AGI 10 scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12915,'Aspersio_5_Scroll_Box','Aspersio 5 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12916,'Assumptio_5_Scroll_Box','Assumptio 5 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12917,'Wind_Walk_10_Scroll_Box','Wind Walk 10 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12918,'Adrenaline_Scroll_Box','Adrenaline 5 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12919,'Megaphone_Box','Megaphone Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12920,'Enriched_Elunium_Box','Enriched Elunium Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7619,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12921,'Enriched_Oridecon_Box','Enriched Oridecon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7620,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12922,'Token_Of_Siegfried_Box','Token of Siegfried Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12923,'Pet_Egg_Scroll_Box1','December Lucky Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12925,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12924,'Pet_Egg_Scroll_Box2','Pet Egg Box 2',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12926,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12925,'Pet_Egg_Scroll1','Kafra Item Mall Prize Package',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12926,'Pet_Egg_Scroll2','December Lucky Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12927,'J_Aspersio_5_Scroll_Box','Aspersio Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12928,10;',NULL,NULL); +# 12745,Vivid Notation, +# 12746,Curious Snowball, +REPLACE INTO `item_db` VALUES (12900,'Battle_Manual_Box','Battle Manual Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12901,'Insurance_Package','Insurance Package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12902,'Bubble_Gum_Box','Bubble Gum Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12903,'Str_Dish_Box','Steamed Tongue Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12904,'Agi_Dish_Box','Steamed Scorpion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12905,'Int_Dish_Box','Dragon Breath Cocktail Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12906,'Dex_Dish_Box','Hwergelmir\'s Tonic Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12907,'Luk_Dish_Box','Nine Tail Dish Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12908,'Vit_Dish_Box','Stew Of Immortality Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12909,'Kafra_Card_Box','Kafra Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12910,'Giant_Fly_Wing_Box','Giant Fly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12911,'Neuralizer_Box','Neuralizer Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12213,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12912,'Convex_Mirror_Box','Convex Mirror Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12913,'Blessing_10_Scroll_Box','Blessing 10 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12914,'Inc_Agi_10_Scroll_Box','Increase AGI 10 scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12915,'Aspersio_5_Scroll_Box','Aspersio 5 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12916,'Assumptio_5_Scroll_Box','Assumptio 5 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12917,'Wind_Walk_10_Scroll_Box','Wind Walk 10 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12918,'Adrenaline_Scroll_Box','Adrenaline 5 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12919,'Megaphone_Box','Megaphone Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12920,'Enriched_Elunium_Box','Enriched Elunium Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7619,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12921,'Enriched_Oridecon_Box','Enriched Oridecon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7620,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12922,'Token_Of_Siegfried_Box','Token of Siegfried Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12923,'Pet_Egg_Scroll_Box1','December Lucky Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12925,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12924,'Pet_Egg_Scroll_Box2','Pet Egg Box 2',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12926,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12925,'Pet_Egg_Scroll1','Kafra Item Mall Prize Package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12926,'Pet_Egg_Scroll2','December Lucky Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12927,'J_Aspersio_5_Scroll_Box','Aspersio Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12928,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12928,'J_Aspersio_5_Scroll','Sacred Scroll',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"PR_ASPERSIO\",5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12929,'Pet_Egg_Scroll_Box3','Pet Egg Box 3',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12932,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12930,'Pet_Egg_Scroll_Box4','Pet Egg Box 4',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12933,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12931,'Pet_Egg_Scroll_Box5','Pet Egg Box 5',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12934,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12932,'Pet_Egg_Scroll3','Episode 13.2 Key Package',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12933,'Pet_Egg_Scroll4','Summer Hat Pack',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12934,'Pet_Egg_Scroll5','Pet Egg Scroll5',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12935,'Infiltrator_Box','Infiltrator Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1267,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12936,'Muramasa_Box','Muramasa Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1173,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12937,'Excalibur_Box','Excalibur Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13401,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12938,'Combat_Knife_Box','Combat Knife Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13021,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12939,'Counter_Dagger_Box','Dagger of Counter Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13022,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12940,'Kaiser_Knuckle_Box','Kaiser Knuckle Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1817,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12941,'Pole_Axe_Box','Poll Axe Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1419,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12942,'Mighty_Staff_Box','Mighty Staff Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1623,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12943,'Right_Epsilon_Box','Light Epsilon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1372,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12944,'Balistar_Box','Ballista Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1728,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12945,'Diary_Of_Great_Sage_Box','Sage\'s Diary Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1563,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12946,'Asura_Box','Asura Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13023,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12947,'Apple_Of_Archer_Box','Apple of Archer Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5265,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12948,'Bunny_Band_Box','Bunny Band Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5266,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12949,'Sahkkat_Box','Sakkat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5267,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12950,'Lord_Circlet_Box','Grand Circlet Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5268,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12951,'Elven_Ears_Box','Elven Ears Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2686,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12952,'Steel_Flower_Box','Steel Flower Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2687,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12953,'Critical_Ring_Box','Critical Ring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2688,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12954,'Earring_Box','Earring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2689,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12955,'Ring_Box','Ring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2690,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12956,'Necklace_Box','Necklace Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2691,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12957,'Glove_Box','Glove Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2692,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12958,'Brooch_Box','Brooch Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2693,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12959,'Rosary_Box','Rosary Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2694,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12960,'Safety_Ring_Box','Safety Ring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2695,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12961,'Vesper_Core01_Box','Vesper Core 01 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2696,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12962,'Vesper_Core02_Box','Vesper Core 02 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2697,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12963,'Vesper_Core03_Box','Vesper Core 03 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2698,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12964,'Vesper_Core04_Box','Vesper Core 04 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2699,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12965,'Emergency_Box1','Emergency Level 1 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12968,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12966,'Emergency_Box2','Emergency Level 2 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12969,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12967,'Emergency_Box3','Emergency Level 3 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12970,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12929,'Pet_Egg_Scroll_Box3','Pet Egg Box 3',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12932,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12930,'Pet_Egg_Scroll_Box4','Pet Egg Box 4',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12933,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12931,'Pet_Egg_Scroll_Box5','Pet Egg Box 5',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12934,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12932,'Pet_Egg_Scroll3','Episode 13.2 Key Package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12933,'Pet_Egg_Scroll4','Summer Hat Pack',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12934,'Pet_Egg_Scroll5','Pet Egg Scroll5',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12935,'Infiltrator_Box','Infiltrator Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1267,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12936,'Muramasa_Box','Muramasa Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1173,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12937,'Excalibur_Box','Excalibur Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13401,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12938,'Combat_Knife_Box','Combat Knife Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13021,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12939,'Counter_Dagger_Box','Dagger of Counter Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13022,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12940,'Kaiser_Knuckle_Box','Kaiser Knuckle Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1817,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12941,'Pole_Axe_Box','Poll Axe Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1419,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12942,'Mighty_Staff_Box','Mighty Staff Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1623,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12943,'Right_Epsilon_Box','Light Epsilon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1372,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12944,'Balistar_Box','Ballista Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1728,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12945,'Diary_Of_Great_Sage_Box','Sage\'s Diary Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1563,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12946,'Asura_Box','Asura Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13023,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12947,'Apple_Of_Archer_Box','Apple of Archer Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5265,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12948,'Bunny_Band_Box','Bunny Band Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5266,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12949,'Sahkkat_Box','Sakkat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5267,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12950,'Lord_Circlet_Box','Grand Circlet Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5268,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12951,'Elven_Ears_Box','Elven Ears Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2686,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12952,'Steel_Flower_Box','Steel Flower Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2687,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12953,'Critical_Ring_Box','Critical Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2688,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12954,'Earring_Box','Earring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2689,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12955,'Ring_Box','Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2690,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12956,'Necklace_Box','Necklace Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2691,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12957,'Glove_Box','Glove Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2692,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12958,'Brooch_Box','Brooch Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2693,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12959,'Rosary_Box','Rosary Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2694,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12960,'Safety_Ring_Box','Safety Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2695,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12961,'Vesper_Core01_Box','Vesper Core 01 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2696,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12962,'Vesper_Core02_Box','Vesper Core 02 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2697,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12963,'Vesper_Core03_Box','Vesper Core 03 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2698,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12964,'Vesper_Core04_Box','Vesper Core 04 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2699,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12965,'Emergency_Box1','Emergency Level 1 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12968,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12966,'Emergency_Box2','Emergency Level 2 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12969,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12967,'Emergency_Box3','Emergency Level 3 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12970,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12968,'Emergency_Scroll1','Emergency Level 1 Scroll',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"GD_EMERGENCYCALL\",1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12969,'Emergency_Scroll2','Emergency Level 2 Scroll',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"GD_EMERGENCYCALL\",1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12970,'Emergency_Scroll3','Emergency Level 3 Scroll',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"GD_EMERGENCYCALL\",1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12971,'Teleport_Box1','Teleport Scroll Box 1',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12977,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12972,'Teleport_Box2','Teleport Scroll Box 2',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12978,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12973,'Teleport_Box3','Teleport Scroll Box 3',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12979,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12974,'Teleport_Box4','Teleport Scroll Box 4',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12980,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12975,'Teleport_Box5','Teleport Scroll Box 5',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12981,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12976,'Teleport_Box6','Teleport Scroll Box 6',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12982,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12971,'Teleport_Box1','Teleport Scroll Box 1',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12977,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12972,'Teleport_Box2','Teleport Scroll Box 2',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12978,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12973,'Teleport_Box3','Teleport Scroll Box 3',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12979,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12974,'Teleport_Box4','Teleport Scroll Box 4',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12980,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12975,'Teleport_Box5','Teleport Scroll Box 5',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12981,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12976,'Teleport_Box6','Teleport Scroll Box 6',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12982,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12977,'Teleport_Scroll1','Teleport Scroll 1',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashTele\",1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12978,'Teleport_Scroll2','Teleport Scroll 2',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashTele\",2;',NULL,NULL); REPLACE INTO `item_db` VALUES (12979,'Teleport_Scroll3','Teleport Scroll 3',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashTele\",3;',NULL,NULL); REPLACE INTO `item_db` VALUES (12980,'Teleport_Scroll4','Teleport Scroll 4',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashTele\",4;',NULL,NULL); REPLACE INTO `item_db` VALUES (12981,'Teleport_Scroll5','Teleport Scroll 5',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashTele\",5;',NULL,NULL); REPLACE INTO `item_db` VALUES (12982,'Teleport_Scroll6','Teleport Scroll 6',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashTele\",6;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12983,'Pet_Egg_Scroll_Box6','Pet Egg Scroll Box 6',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12989,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12984,'Pet_Egg_Scroll_Box7','Pet Egg Scroll Box 7',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12990,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12985,'Pet_Egg_Scroll_Box8','Pet Egg Scroll Box 8',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12991,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12986,'Pet_Egg_Scroll_Box9','Adventurer Pack Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12992,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12987,'Pet_Egg_Scroll_Box10','Pet Egg Scroll Box 10',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12993,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12988,'Pet_Egg_Scroll_Box11','Pet Egg Scroll Box 11',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12994,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12983,'Pet_Egg_Scroll_Box6','Pet Egg Scroll Box 6',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12989,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12984,'Pet_Egg_Scroll_Box7','Pet Egg Scroll Box 7',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12990,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12985,'Pet_Egg_Scroll_Box8','Pet Egg Scroll Box 8',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12991,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12986,'Pet_Egg_Scroll_Box9','Adventurer Pack Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12992,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12987,'Pet_Egg_Scroll_Box10','Pet Egg Scroll Box 10',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12993,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12988,'Pet_Egg_Scroll_Box11','Pet Egg Scroll Box 11',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12994,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12989,'Pet_Egg_Scroll6','Pet Egg Scroll 6',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12990,'Pet_Egg_Scroll7','Pet Egg Scroll 7',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12991,'Pet_Egg_Scroll8','Party Hard Pack',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12992,'Pet_Egg_Scroll9','Adventurer Pack',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12993,'Pet_Egg_Scroll10','Pet Egg Scroll 10',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12994,'Pet_Egg_Scroll11','Pet Egg Scroll 11',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12995,'White_Herb_Box','White Herb Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 509,15;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12996,'Blue_Herb_Box','Blue Herb Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 510,15;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12997,'Elunium_Box','Elunium Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 985,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12998,'Oridecon_Box','Oridecon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 984,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12999,'Branch_Of_Dead_Tree_Box','Dead Branch Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 604,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12995,'White_Herb_Box','White Herb Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 509,15;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12996,'Blue_Herb_Box','Blue Herb Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 510,15;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12997,'Elunium_Box','Elunium Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 985,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12998,'Oridecon_Box','Oridecon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 984,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12999,'Branch_Of_Dead_Tree_Box','Dead Branch Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 604,3;',NULL,NULL); # More Weapons # =================================================================== # Daggers and Ninja Weapons @@ -4785,7 +5048,7 @@ REPLACE INTO `item_db` VALUES (13034,'Twilight_Desert','Desert Twilight',4,20,NU REPLACE INTO `item_db` VALUES (13035,'Sandstorm','Sandstorm',4,20,NULL,600,50,NULL,1,4,0x00001000,2,2,2,2,70,1,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13036,'BF_Dagger1','Brave Assassin\'s Damascus',4,0,NULL,0,120,NULL,1,0,0x028F5EEF,7,2,2,3,80,1,1,'bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if (Class == Job_Ninja || Class == Job_Rogue || Class == Job_Stalker) bonus bMatkRate,15;',NULL,NULL); REPLACE INTO `item_db` VALUES (13037,'BF_Dagger2','Valorous Assassin\'s Damascus',4,0,NULL,0,120,NULL,1,0,0x029E7CEB,7,2,2,3,80,1,1,'bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bUnbreakableWeapon,0; autobonus \"{ bonus bDefRatioAtkRace,RC_Boss; bonus bDefRatioAtkRace,RC_NonBoss; }\",10,6000,BF_WEAPON,\"{ specialeffect2 EF_HASTEUP; }\"; if (Class == Job_Ninja || Class == Job_Rogue || Class == Job_Stalker) bonus bMatkRate,15;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13038,'Dagger_Of_Hunter','Dagger of Hunter',4,20,NULL,700,120,NULL,1,3,0x00020000,2,2,2,3,70,1,1,'bonus bStr,1; bonus bAgi,2; bonus bDex,1; bonus4 bAutoSpellOnSkill,\"RG_BACKSTAP\",\"SM_BASH\",100,10; bonus2 bSkillAtk,\"RG_BACKSTAP\",20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13038,'Dagger_Of_Hunter','Dagger of Hunter',4,20,NULL,700,120,NULL,1,3,0x00020000,2,2,2,3,70,1,1,'bonus bStr,1; bonus bAgi,2; bonus bDex,1; bonus4 bAutoSpellOnSkill,\"RG_BACKSTAP\",\"SM_BASH\",10,100; bonus2 bSkillAtk,\"RG_BACKSTAP\",20;',NULL,NULL); REPLACE INTO `item_db` VALUES (13039,'Ivory_Knife','Ivory Knife',4,20,NULL,700,130,NULL,1,2,0x000F5EEE,2,2,2,3,50,1,1,'bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,\"NPC_CRITICALWOUNDS\",1,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (13040,'N_Cutter','Novice Cutter',4,1,NULL,0,50,NULL,1,3,0xFE9F7EEF,7,2,2,1,1,0,1,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13041,'N_Main_Gauche','Novice Main Gauche',4,1,NULL,0,65,NULL,1,3,0xFE9F7EEF,7,2,2,1,1,0,1,NULL,NULL,NULL); @@ -4793,9 +5056,15 @@ REPLACE INTO `item_db` VALUES (13042,'Krieger_Dagger1','Glorious Gladius',4,0,NU # 13043,Fortune_Sword_I # 13044,House_Auger_I # 13045,Kamaitachi_I -REPLACE INTO `item_db` VALUES (13046,'Krieg','Krierg',4,20,NULL,500,110,NULL,1,3,0x00000040,2,2,2,2,50,1,1,'bonus3 bAddEffOnSkill,\"RG_BACKSTAP\",Eff_Bleeding,100; bonus2 bSkillAtk,\"RG_BACKSTAP\",15;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13047,'Weihna','Weihna',4,20,NULL,500,135,NULL,1,2,0x00000040,2,2,2,2,50,1,1,'bonus3 bAddEffOnSkill,\"RG_RAID\",Eff_Poison,100; autobonus \"{ bonus bAtkRate,10; }\",5,5000,BF_WEAPON|BF_SHORT,\"{ specialeffect2 EF_POTION_BERSERK; }\";',NULL,NULL); +REPLACE INTO `item_db` VALUES (13046,'Krieg','Krierg',4,20,NULL,500,110,NULL,1,3,0x00021040,2,2,2,2,50,1,1,'bonus3 bAddEffOnSkill,\"RG_BACKSTAP\",Eff_Bleeding,1000; bonus2 bSkillAtk,\"RG_BACKSTAP\",15;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13047,'Weihna','Weihna',4,20,NULL,500,135,NULL,1,2,0x00021040,2,2,2,3,50,1,1,'bonus3 bAddEffOnSkill,\"RG_RAID\",Eff_Poison,1000; autobonus \"{ bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; }\",5,5000,BF_WEAPON|BF_SHORT,\"{ specialeffect2 EF_POTION_BERSERK; }\";',NULL,NULL); # 13048,Damascus_C +# REPLACE INTO `item_db` VALUES (13050,'P_Dagger1','Eden Dagger I',4,0,NULL,0,124,NULL,1,0,0xFE9F7EEF,7,2,2,2,26,0,1,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (13051,'P_Dagger2','Eden Dagger II',4,0,NULL,0,158,NULL,1,0,0xFE9F7EEF,7,2,2,2,40,0,1,NULL,NULL,NULL); +# 13053,Moonlight_Sword, +# 13054,Combat_Knife, +# 13055,Asura, +# 13056,Counter_Dagger, # Guns REPLACE INTO `item_db` VALUES (13100,'Six_Shooter','Six Shooter',4,4500,NULL,400,30,NULL,7,1,0x01000000,7,2,34,1,10,1,17,'bonus bHit,-10;',NULL,NULL); REPLACE INTO `item_db` VALUES (13101,'Six_Shooter_','Six Shooter',4,4500,NULL,400,30,NULL,7,2,0x01000000,7,2,34,1,10,1,17,'bonus bHit,-10;',NULL,NULL); @@ -4809,6 +5078,8 @@ REPLACE INTO `item_db` VALUES (13108,'BF_Pistol1','Soldier Revolver',4,0,NULL,0, # 13109,Wasteland_Outlaw_C REPLACE INTO `item_db` VALUES (13110,'Krieger_Pistol1','Glorious Pistol',4,0,NULL,0,80,NULL,7,0,0x01000000,7,2,34,4,80,1,17,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine() > 5) bonus2 bIgnoreDefRate,RC_DemiHuman,5; if(getrefine() > 8) { bonus4 bAutoSpellOnSkill,\"GS_RAPIDSHOWER\",\"GS_GLITTERING\",1,1000; bonus2 bSkillAtk,\"GS_RAPIDSHOWER\",getrefine()*2; }',NULL,NULL); # 13111,Sharpshooter_Revolver +# REPLACE INTO `item_db` VALUES (13112,'P_Revolver1','Eden Revlover I',4,0,NULL,0,4,NULL,7,0,0x01000000,7,2,34,1,26,0,17,'bonus bHit,-5;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13113,'P_Revolver2','Eden Revlover II',4,0,NULL,0,60,NULL,7,0,0x01000000,7,2,34,1,40,0,17,'bonus bHit,-5;',NULL,NULL); REPLACE INTO `item_db` VALUES (13150,'Branch','Branch',4,3000,NULL,500,50,NULL,9,3,0x01000000,7,2,34,1,1,1,18,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13151,'The_Cyclone','Cyclone',4,17500,NULL,700,120,NULL,9,1,0x01000000,7,2,34,2,24,1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (13152,'The_Cyclone_','Cyclone',4,17500,NULL,700,120,NULL,9,2,0x01000000,7,2,34,2,24,1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL); @@ -4832,13 +5103,13 @@ REPLACE INTO `item_db` VALUES (13169,'Thunder_P_','Thunder P',4,76000,NULL,700,8 REPLACE INTO `item_db` VALUES (13170,'Lever_Action_Rifle','Lever Action Rifle',4,20,NULL,770,138,NULL,9,2,0x01000000,7,2,34,3,70,1,18,'bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5;',NULL,NULL); REPLACE INTO `item_db` VALUES (13171,'BF_Rifle1','Soldier Rifle',4,0,NULL,0,50,NULL,9,0,0x01000000,7,2,34,3,80,1,18,'bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bCastRate,512,-25; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (13172,'BF_Gatling_Gun1','Soldier Gatling Gun',4,0,NULL,0,80,NULL,9,0,0x01000000,7,2,34,3,80,1,19,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus \"{ bonus bBaseAtk,80; bonus2 bHPLossRate,120,1000; }\",10,6000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13173,'BF_Shotgun1','Soldier Shotgun',4,0,NULL,0,100,NULL,9,0,0x01000000,7,2,34,3,80,1,20,'bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus \"{ bonus bBaseAtk,80; bonus bHPLossRate,100,1000,0,0; }\",30,6000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13174,'BF_Launcher1','Soldier Grenade Launcher',4,0,NULL,0,300,NULL,9,0,0x01000000,7,2,34,3,80,1,21,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus \"{ bonus bBaseAtk,300; bonus bHPLossRate,120,1000,0,0; }\",30,9000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13173,'BF_Shotgun1','Soldier Shotgun',4,0,NULL,0,100,NULL,9,0,0x01000000,7,2,34,3,80,1,20,'bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus \"{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }\",30,6000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13174,'BF_Launcher1','Soldier Grenade Launcher',4,0,NULL,0,300,NULL,9,0,0x01000000,7,2,34,3,80,1,21,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus \"{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }\",30,9000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;',NULL,NULL); # 13175,Lever_Action_Rifle_C REPLACE INTO `item_db` VALUES (13176,'Krieger_Rifle1','Glorious Rifle',4,0,NULL,0,90,NULL,9,0,0x01000000,7,2,34,4,80,1,18,'bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,\"GS_TRIPLEACTION\",30; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine() > 8) { bonus2 bCastrate,\"GS_TRACKING\",25; bonus2 bSkillAtk,\"GS_TRACKING\",getrefine() * 3; }',NULL,NULL); REPLACE INTO `item_db` VALUES (13177,'Krieger_Gatling1','Glorious Gatling Gun',4,0,NULL,0,90,NULL,9,0,0x01000000,7,2,34,4,80,1,19,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus2 bSkillAtk,\"GS_TRIPLEACTION\",30; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine() > 8) {bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); }',NULL,NULL); -REPLACE INTO `item_db` VALUES (13178,'Krieger_Shotgun1','Glorious Shotgun',4,0,NULL,0,110,NULL,9,0,0x01000000,7,2,34,4,80,1,20,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,\"GS_TRIPLEACTION\",30; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine() > 8) { bonus2 bSkillAtk,\"GS_SPREADATTACK\",getrefine() * 2; bonus3 bAddEffOnSkill,\"GS_SPREADATTACK\",Eff_Stun,200; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (13179,'Krieger_Launcher1','Glorious Grenade Launcher',4,0,NULL,0,330,NULL,9,0,0x01000000,7,2,34,4,80,1,21,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,\"GS_TRIPLEACTION\",30; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine() > 8) { bonus2 bSkillAtk,\"GS_GROUNDDRIFT\",getrefine() * 2; bonus3 bAddEffOnSkill,\"GS_SPREADATTACK\",Eff_Stun,200; autobonus \"{ bonus bAspdRate,20; }\",200,20000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (13178,'Krieger_Shotgun1','Glorious Shotgun',4,0,NULL,0,110,NULL,9,0,0x01000000,7,2,34,4,80,1,20,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,\"GS_TRIPLEACTION\",30; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine() > 8) { bonus2 bSkillAtk,\"GS_SPREADATTACK\",getrefine() * 2; bonus3 bAddEffOnSkill,\"GS_SPREADATTACK\",Eff_Stun,2000; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (13179,'Krieger_Launcher1','Glorious Grenade Launcher',4,0,NULL,0,330,NULL,9,0,0x01000000,7,2,34,4,80,1,21,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,\"GS_TRIPLEACTION\",30; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine() > 8) { bonus2 bSkillAtk,\"GS_GROUNDDRIFT\",getrefine() * 2; bonus3 bAddEffOnSkill,\"GS_SPREADATTACK\",Eff_Stun,2000; autobonus \"{ bonus bAspdRate,20; }\",200,20000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; }',NULL,NULL); # Bullets REPLACE INTO `item_db` VALUES (13200,'Bullet','Bullet',10,1,NULL,2,10,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,3,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13201,'Silver_Bullet','Silver Bullet',10,15,NULL,2,15,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,3,'bonus bAtkEle,Ele_Holy;',NULL,NULL); @@ -4859,6 +5130,34 @@ REPLACE INTO `item_db` VALUES (13256,'Kunai_Of_Black_Soil','Black Earth Kunai',1 REPLACE INTO `item_db` VALUES (13257,'Kunai_Of_Furious_Wind','High Wind Kunai',10,10,NULL,20,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,7,'bonus bAtkEle,Ele_Wind;',NULL,NULL); REPLACE INTO `item_db` VALUES (13258,'Kunai_Of_Fierce_Flame','Heat Wave Kunai',10,10,NULL,20,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,7,'bonus bAtkEle,Ele_Fire;',NULL,NULL); REPLACE INTO `item_db` VALUES (13259,'Kunai_Of_Deadly_Poison','Fell Poison Kunai',10,10,NULL,20,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,7,'bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500;',NULL,NULL); +# 13260,Apple_Bomb, +# 13261,Coconut_Bomb, +# 13262,Melon_Bomb, +# 13263,Pineapple_Bomb, +# 13264,Banana_Bomb, +# 13265,Black_Lump, +# 13266,Black_Hard_Lump, +# 13267,Very_Hard_Lump, +# 13268,Mysterious_Powder, +# 13270,Full_SwingK_Throw, +# 13271,Mana_+_Throw, +# 13272,Cure_Free_Throw, +# 13275,HP_Increase_Potion(Small)_Throw, +# 13276,HP_Increase_Potion(Mid)_Throw, +# 13277,HP_Increase_Potion(Large)_Throw, +# 13278,HP_Increase_Potion(Small)_Throw, +# 13279,SP_Increase_Potion(Mid)_Throw, +# 13280,SP_Increase_Potion(Large)_Throw, +# 13281,Enriched_White_PotionZ_Throw, +# 13282,Vitata50_Throw0, +# 13283,Enrich_Celermine_Juice_Throw, +# 13284,Savage_BBQ_Throw, +# 13285,Wug_Cocktail_To_Throw, +# 13286,M_Brisket_To_Throw, +# 13287,Siroma_Iced_Tea_To_Throw, +# 13288,Drosera_Stew_To_Throw, +# 13289,Petite_Noodle_To_Throw, +# 13290,Black_Thing_To_Throw, # Ninja Fuuma Shurikens REPLACE INTO `item_db` VALUES (13300,'Huuma_Bird_Wing','Huuma Wing Shuriken',4,90000,NULL,3000,150,NULL,1,0,0x02000000,7,2,34,4,65,1,22,'bonus bAtkEle,Ele_Wind; bonus bAgi,-1; bonus bDex,-2;',NULL,NULL); REPLACE INTO `item_db` VALUES (13301,'Huuma_Giant_Wheel','Huuma Giant Wheel Shuriken',4,40000,NULL,2500,50,NULL,1,3,0x02000000,7,2,34,4,42,1,22,'bonus2 bAddEff,Eff_Bleeding,100;',NULL,NULL); @@ -4893,67 +5192,69 @@ REPLACE INTO `item_db` VALUES (13418,'Krieger_Onehand_Sword3','Glorious Holy Ave # 13420,Honglyun's_Sword REPLACE INTO `item_db` VALUES (13421,'Ruber','Ruber',4,20,NULL,1500,170,NULL,1,1,0x000444A2,2,2,2,3,50,1,2,'autobonus \"{ bonus2 bSkillAtk,\\\"KN_BOWLINGBASH\\\",20; bonus2 bSkillAtk,\\\"SM_BASH\\\",20; }\",5,15000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\";',NULL,NULL); # 13422,Flamberge_C +# REPLACE INTO `item_db` VALUES (13423,'P_Sabre1','Eden Sabre I',4,0,NULL,0,147,NULL,1,0,0x000654E2,7,2,2,2,26,0,2,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (13424,'P_Sabre2','Eden Sabre II',4,0,NULL,0,170,NULL,1,0,0x000654E2,7,2,2,2,40,0,2,NULL,NULL,NULL); # 13426,Cutlas_C # 13427,Solar_Sword_C # More Cash Shop Items -REPLACE INTO `item_db` VALUES (13500,'Insurance60_Package','Life Insurrance Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14500,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13501,'Assorted_Scroll_Box','Experience Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13502,'Drooping_Kitty_Box','Refined Drooping Cat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5279,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13503,'Magestic_Goat_Box','Baphomet Horns Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5280,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13504,'Deviruchi_Cap_Box','Refined Deviruchi Hat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5281,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13505,'Executioner_Box','Executioner Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1174,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13506,'Brood_Axe_Box','Refined Bloody Axe Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1373,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13507,'Tomahawk_Box','Tomahawk Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1374,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13508,'Bow_Of_Rudra_Box','Rudra Bow Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1729,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13509,'Cutlas_Box','Cutlas Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13402,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13510,'Solar_Sword_Box','Solar Sword Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13403,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13511,'Sword_Breaker_Box','Refined Swordbreaker Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13024,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13512,'Mail_Breaker_Box','Refined Mailbreaker Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13025,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13513,'Moonlight_Sword_Box','Moonlight Dagger Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13026,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13514,'Spanner_Box','Wrench Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1534,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13515,'Grape_Box','Grape Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 514,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13516,'Royal_Jelly_Box','Royal Jelly Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 526,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13517,'Yggdrasilberry_Box','Yggdrasil Berry Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 607,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13518,'Weapon_Card_Scroll_Box','Weapon Card Pet Egg Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13558,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13519,'Armor_Card_Scroll_Box','Armor Card Pet Egg Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13559,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13520,'Helmet_Card_Scroll_Box','Helmet Card Pet Egg Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13560,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13521,'Garment_Card_Scroll_Box','Garment Card Pet Egg Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13561,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13522,'Shield_Card_Scroll_Box','Shield Card Pet Egg Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13562,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13523,'Shoes_Card_Scroll_Box','Shoes Card Pet Egg Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13563,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13524,'Accy_Card_Scroll_Box','Accessory Card Pet Egg Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13564,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13525,'Zeny_Scroll_Box','Zeny Pet Egg Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14508,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13526,'Pet_Egg_Scroll_Box1_','Pet Egg Scroll Box 12',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12925,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13527,'Pet_Egg_Scroll_Box2_','Pet Egg Scroll Box 13',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12926,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13528,'Pet_Egg_Scroll_Box3_','Pet Egg Scroll Box 14',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12932,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13529,'Pet_Egg_Scroll_Box4_','Pet Egg Scroll Box 15',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12933,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13530,'Pet_Egg_Scroll_Box5_','Pet Egg Scroll Box 16',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12934,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13531,'Light_Red_Pot_Box','Light Red Potion Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 598,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13532,'Light_Orange_Pot_Box','Light Orange Potion Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 599,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13533,'Light_Yellow_Pot_Box','Light Yellow Potion Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11500,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13534,'Light_White_Pot_Box','Light White Potion Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11501,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13535,'Light_Center_Pot_Box','Light Concentration Potion Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14509,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13536,'Light_Awakening_Pot_Box','Light Awakening Potion Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14510,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13537,'Light_Berserk_Pot_Box','Light Berserk Potion Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14511,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13538,'Meteor_10_Scroll_Box','Meteor Storm Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14512,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13539,'Storm_10_Scroll_Box','Storm Gust Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14513,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13540,'Vermilion_10_Scroll_Box','Lord of Vermilion Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14514,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13541,'Lex_Aeterna_Scroll_Box','Lex Aeterna Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14515,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13542,'Magnificat_5_Scroll_Box','Magnificat Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14516,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13543,'CP_Helm_Scroll_Box','Chemical Protection Helm Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14517,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13544,'CP_Shield_Scroll_Box','Chemical Protection Shield Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14518,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13545,'CP_Armor_Scroll_Box','Chemical Protection Armor Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14519,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13546,'CP_Weapon_Scroll_Box','Chemical Protection Weapon Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14520,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13547,'Repair_Scroll_Box','Repair Weapon Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14521,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13548,'Big_Bun_Box','Big Bun Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14522,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13549,'Pill__Box','Pill Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14523,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13550,'Superb_Fish_Slice_Box','Fish Slice Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14524,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13551,'Chewy_Ricecake_Box','Chewy Ricecake Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14525,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13552,'Oriental_Pastry_Box','Pastry Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14526,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13553,'Dun_Tele_Scroll1_Box','Dungeon Teleport Scroll 5 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14527,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13554,'Weapon_Card_Scroll_Box2','Weapon Card Pet Egg Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13565,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13555,'Weapon_Card_Scroll_Box3','Weapon Card Pet Egg Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13566,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13556,'Armor_Card_Scroll_Box2','Armor Card Pet Egg Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13567,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13557,'Accy_Card_Scroll_Box2','Accessory Card Pet Egg Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13568,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13500,'Insurance60_Package','Life Insurrance Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14500,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13501,'Assorted_Scroll_Box','Experience Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (13502,'Drooping_Kitty_Box','Refined Drooping Cat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5279,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13503,'Magestic_Goat_Box','Baphomet Horns Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5280,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13504,'Deviruchi_Cap_Box','Refined Deviruchi Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5281,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13505,'Executioner_Box','Executioner Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1174,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13506,'Brood_Axe_Box','Refined Bloody Axe Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1373,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13507,'Tomahawk_Box','Tomahawk Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1374,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13508,'Bow_Of_Rudra_Box','Rudra Bow Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1729,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13509,'Cutlas_Box','Cutlas Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13402,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13510,'Solar_Sword_Box','Solar Sword Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13403,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13511,'Sword_Breaker_Box','Refined Swordbreaker Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13024,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13512,'Mail_Breaker_Box','Refined Mailbreaker Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13025,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13513,'Moonlight_Sword_Box','Moonlight Dagger Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13026,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13514,'Spanner_Box','Wrench Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1534,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13515,'Grape_Box','Grape Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 514,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13516,'Royal_Jelly_Box','Royal Jelly Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 526,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13517,'Yggdrasilberry_Box','Yggdrasil Berry Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 607,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13518,'Weapon_Card_Scroll_Box','Weapon Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13558,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13519,'Armor_Card_Scroll_Box','Armor Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13559,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13520,'Helmet_Card_Scroll_Box','Helmet Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13560,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13521,'Garment_Card_Scroll_Box','Garment Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13561,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13522,'Shield_Card_Scroll_Box','Shield Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13562,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13523,'Shoes_Card_Scroll_Box','Shoes Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13563,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13524,'Accy_Card_Scroll_Box','Accessory Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13564,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13525,'Zeny_Scroll_Box','Zeny Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14508,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13526,'Pet_Egg_Scroll_Box1_','Pet Egg Scroll Box 12',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12925,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13527,'Pet_Egg_Scroll_Box2_','Pet Egg Scroll Box 13',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12926,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13528,'Pet_Egg_Scroll_Box3_','Pet Egg Scroll Box 14',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12932,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13529,'Pet_Egg_Scroll_Box4_','Pet Egg Scroll Box 15',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12933,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13530,'Pet_Egg_Scroll_Box5_','Pet Egg Scroll Box 16',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12934,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13531,'Light_Red_Pot_Box','Light Red Potion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 598,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13532,'Light_Orange_Pot_Box','Light Orange Potion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 599,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13533,'Light_Yellow_Pot_Box','Light Yellow Potion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11500,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13534,'Light_White_Pot_Box','Light White Potion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11501,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13535,'Light_Center_Pot_Box','Light Concentration Potion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14509,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13536,'Light_Awakening_Pot_Box','Light Awakening Potion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14510,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13537,'Light_Berserk_Pot_Box','Light Berserk Potion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14511,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13538,'Meteor_10_Scroll_Box','Meteor Storm Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14512,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13539,'Storm_10_Scroll_Box','Storm Gust Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14513,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13540,'Vermilion_10_Scroll_Box','Lord of Vermilion Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14514,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13541,'Lex_Aeterna_Scroll_Box','Lex Aeterna Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14515,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13542,'Magnificat_5_Scroll_Box','Magnificat Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14516,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13543,'CP_Helm_Scroll_Box','Chemical Protection Helm Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14517,10; getitem 7139,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13544,'CP_Shield_Scroll_Box','Chemical Protection Shield Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14518,10; getitem 7139,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13545,'CP_Armor_Scroll_Box','Chemical Protection Armor Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14519,10; getitem 7139,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13546,'CP_Weapon_Scroll_Box','Chemical Protection Weapon Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14520,10; getitem 7139,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13547,'Repair_Scroll_Box','Repair Weapon Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14587,5; getitem 1002,5; getitem 998,5; getitem 756,5; getitem 999,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13548,'Big_Bun_Box','Big Bun Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14522,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13549,'Pill__Box','Pill Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14523,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13550,'Superb_Fish_Slice_Box','Fish Slice Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14524,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13551,'Chewy_Ricecake_Box','Chewy Ricecake Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14525,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13552,'Oriental_Pastry_Box','Pastry Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14526,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13553,'Dun_Tele_Scroll1_Box','Dungeon Teleport Scroll 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14527,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13554,'Weapon_Card_Scroll_Box2','Weapon Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13565,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13555,'Weapon_Card_Scroll_Box3','Weapon Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13566,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13556,'Armor_Card_Scroll_Box2','Armor Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13567,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13557,'Accy_Card_Scroll_Box2','Accessory Card Pet Egg Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13568,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (13558,'Weapon_Card_Scroll','Weapon Card Pet Egg Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13559,'Armor_Card_Scroll','Armor Card Pet Egg Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13560,'Helmet_Card_Scroll','Helmet Card Pet Egg Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -4965,138 +5266,138 @@ REPLACE INTO `item_db` VALUES (13565,'Weapon_Card_Scroll2','Weapon Card Pet Egg REPLACE INTO `item_db` VALUES (13566,'Weapon_Card_Scroll3','Weapon Card Pet Egg Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13567,'Armor_Card_Scroll2','Armor Card Pet Egg Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13568,'Accy_Card_Scroll2','Accessory Card Pet Egg Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13569,'PVP_Tele_Scroll_Box','PVP Teleport Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14528,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13570,'Giant_Fly_Wing_Box50','Giant Fly Wing 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13571,'Giant_Fly_Wing_Box100','Giant Fly Wing 100 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13572,'Dex_Dish_Box30','Hwergelmir\'s Tonic 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13573,'Dex_Dish_Box50','Hwergelmir\'s Tonic 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13574,'Luk_Dish_Box30','Nine Tail Dish 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13575,'Luk_Dish_Box50','Nine Tail Dish 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13576,'Inc_Agi_10_Box30','Increase Agility Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13577,'Inc_Agi_10_Box50','Increase Agility Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13578,'Vit_Dish_Box30','Stew of Immortality 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13579,'Vit_Dish_Box50','Stew of Immortality 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13580,'Insurance_Package30','Life Insurrance 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13581,'Insurance_Package50','Life Insurrance 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13582,'Convex_Mirror_Box5','Convex Mirror 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13583,'Convex_Mirror_Box30','Convex Mirror 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13584,'Blessing10_Box30','Blessing Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13585,'Blessing10_Box50','Blessing Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13586,'Adrenaline10_Box30','Adrenaline Rush Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13587,'Adrenaline10_Box50','Adrenaline Rush Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13588,'Assumptio_5_Box30','Assumptio Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13589,'Assumptio_5_Box50','Assumptio Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13590,'Aspersio_5_Box30','Aspersio Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13591,'Aspersio_5_Box50','Aspersio Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13592,'Agi_Dish_Box30','Steamed Scorpion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13593,'Agi_Dish_Box50','Steamed Scorpion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13594,'Wind_Walk10_Box30','Wind Walk Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13595,'Wind_Walk10_Box50','Wind Walk Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13596,'Int_Dish_Box30','Dragon Breath Cocktail 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13597,'Int_Dish_Box50','Dragon Breath Cocktail 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13598,'Battle_Manual_Box1','Field Manual Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13599,'Battle_Manual_Box5','Field Manual 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13600,'Siegfried_Box5','Token of Siegfried 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13601,'Siegfried_Box20','Token of Siegfried 20 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13602,'Kafra_Card_Box30','Kafra Card 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13603,'Kafra_Card_Box50','Kafra Card 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13604,'Str_Dish_Box30','Steamed Tongue 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13605,'Str_Dish_Box50','Steamed Tongue 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13606,'Bubble_Gum_Box1','Bubble Gum Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13607,'Bubble_Gum_Box5','Bubble Gum 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13608,'Megaphone_Box1','Megaphone Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13609,'Megaphone_Box5','Megaphone 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13610,'Enriched_Elunium_Box5','Enriched Elunium 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7619,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13611,'Enriched_Oridecon_Box5','Enriched Oridecon 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7620,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13612,'Handcuff_Box','Arrest Handcuffs Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2706,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13613,'Super_Pet_Egg_Box1','Super Pet Egg Box 1',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13617,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13614,'Super_Pet_Egg_Box2','Super Pet Egg Box 2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13618,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13615,'Super_Pet_Egg_Box3','Super Pet Egg Box 3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13619,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13616,'Super_Pet_Egg_Box4','Super Pet Egg Box 4',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13620,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13569,'PVP_Tele_Scroll_Box','PVP Teleport Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14528,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13570,'Giant_Fly_Wing_Box50','Giant Fly Wing 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13571,'Giant_Fly_Wing_Box100','Giant Fly Wing 100 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13572,'Dex_Dish_Box30','Hwergelmir\'s Tonic 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13573,'Dex_Dish_Box50','Hwergelmir\'s Tonic 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13574,'Luk_Dish_Box30','Nine Tail Dish 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13575,'Luk_Dish_Box50','Nine Tail Dish 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13576,'Inc_Agi_10_Box30','Increase Agility Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13577,'Inc_Agi_10_Box50','Increase Agility Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13578,'Vit_Dish_Box30','Stew of Immortality 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13579,'Vit_Dish_Box50','Stew of Immortality 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13580,'Insurance_Package30','Life Insurrance 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13581,'Insurance_Package50','Life Insurrance 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13582,'Convex_Mirror_Box5','Convex Mirror 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13583,'Convex_Mirror_Box30','Convex Mirror 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13584,'Blessing10_Box30','Blessing Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13585,'Blessing10_Box50','Blessing Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13586,'Adrenaline10_Box30','Adrenaline Rush Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13587,'Adrenaline10_Box50','Adrenaline Rush Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13588,'Assumptio_5_Box30','Assumptio Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13589,'Assumptio_5_Box50','Assumptio Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13590,'Aspersio_5_Box30','Aspersio Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13591,'Aspersio_5_Box50','Aspersio Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13592,'Agi_Dish_Box30','Steamed Scorpion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13593,'Agi_Dish_Box50','Steamed Scorpion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13594,'Wind_Walk10_Box30','Wind Walk Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13595,'Wind_Walk10_Box50','Wind Walk Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13596,'Int_Dish_Box30','Dragon Breath Cocktail 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13597,'Int_Dish_Box50','Dragon Breath Cocktail 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13598,'Battle_Manual_Box1','Field Manual Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13599,'Battle_Manual_Box5','Field Manual 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13600,'Siegfried_Box5','Token of Siegfried 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13601,'Siegfried_Box20','Token of Siegfried 20 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13602,'Kafra_Card_Box30','Kafra Card 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13603,'Kafra_Card_Box50','Kafra Card 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13604,'Str_Dish_Box30','Steamed Tongue 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13605,'Str_Dish_Box50','Steamed Tongue 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13606,'Bubble_Gum_Box1','Bubble Gum Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13607,'Bubble_Gum_Box5','Bubble Gum 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13608,'Megaphone_Box1','Megaphone Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13609,'Megaphone_Box5','Megaphone 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13610,'Enriched_Elunium_Box5','Enriched Elunium 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7619,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13611,'Enriched_Oridecon_Box5','Enriched Oridecon 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7620,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13612,'Handcuff_Box','Arrest Handcuffs Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2706,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13613,'Super_Pet_Egg_Box1','Super Pet Egg Box 1',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13617,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13614,'Super_Pet_Egg_Box2','Super Pet Egg Box 2',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13618,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13615,'Super_Pet_Egg_Box3','Super Pet Egg Box 3',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13619,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13616,'Super_Pet_Egg_Box4','Super Pet Egg Box 4',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13620,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (13617,'Super_Pet_Egg1','Super Pet Egg 1',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13618,'Super_Pet_Egg2','Super Pet Egg 2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13619,'Super_Pet_Egg3','Super Pet Egg 3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13620,'Super_Pet_Egg4','Super Pet Egg 4',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13621,'Greed_Box30','Greed Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14529,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13622,'Greed_Box50','Greed Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14529,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13623,'Greed_Box100','Greed Scroll 100 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14529,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13624,'Flee_30_Scroll_Box','Evasion Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14530,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13625,'Accuracy_30_Scroll_Box','Concentration Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14531,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13626,'Super_Card_Pet_Egg_Box1','Super Card Pet Egg Box 1',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13630,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13627,'Super_Card_Pet_Egg_Box2','Super Card Pet Egg Box 2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13631,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13628,'Super_Card_Pet_Egg_Box3','Super Card Pet Egg Box 3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13632,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13629,'Super_Card_Pet_Egg_Box4','Super Card Pet Egg Box 4',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13633,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13621,'Greed_Box30','Greed Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14529,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13622,'Greed_Box50','Greed Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14529,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13623,'Greed_Box100','Greed Scroll 100 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14529,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13624,'Flee_30_Scroll_Box','Evasion Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14530,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13625,'Accuracy_30_Scroll_Box','Concentration Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14531,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13626,'Super_Card_Pet_Egg_Box1','Super Card Pet Egg Box 1',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13630,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13627,'Super_Card_Pet_Egg_Box2','Super Card Pet Egg Box 2',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13631,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13628,'Super_Card_Pet_Egg_Box3','Super Card Pet Egg Box 3',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13632,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13629,'Super_Card_Pet_Egg_Box4','Super Card Pet Egg Box 4',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13633,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (13630,'Super_Card_Pet_Egg1','Super Card Pet Egg 1',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13631,'Super_Card_Pet_Egg2','Super Card Pet Egg 2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13632,'Super_Card_Pet_Egg3','Super Card Pet Egg 3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13633,'Super_Card_Pet_Egg4','Super Card Pet Egg 4',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13634,'Vigorgra_Package1','1 Hour Package Vol. 1',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13635,'Vigorgra_Package2','1 Hour Package Vol. 2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12255,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13636,'Vigorgra_Package3','1 Hour Package Vol. 3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12253,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13637,'Vigorgra_Package4','1 Hour Package Vol. 4',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12255,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13638,'Vigorgra_Package5','1 Hour Package Vol. 5',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12250,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13639,'Vigorgra_Package6','1 Hour Package Vol. 6',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 12215,15; getitem 12217,20; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13640,'Vigorgra_Package7','2 Hour Package Vol. 1',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13641,'Vigorgra_Package8','2 Hour Package Vol. 2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13642,'Vigorgra_Package9','2 Hour Package Vol. 3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12253,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13643,'Vigorgra_Package10','2 Hour Package Vol. 4',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13644,'Vigorgra_Package11','2 Hour Package Vol. 5',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12250,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13645,'Vigorgra_Package12','2 Hour Package Vol. 6',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12217,40; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13646,'Infiltrator_Box1','Refined Infiltrator Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1267,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13647,'Muramasa_Box1','Refined Muramasa Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1173,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13648,'Excalibur_Box1','Refined Excalibur Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13401,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13649,'Combat_Knife_Box1','Refined Combat Knife Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13021,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13650,'Counter_Dagger_Box1','Refined Dagger of Counter Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13022,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13651,'Kaiser_Knuckle_Box1','Refined Kaiser Knuckle Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1817,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13652,'Pole_Axe_Box1','Refined Pole Axe Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1419,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13653,'Mighty_Staff_Box1','Refined Mighty Staff Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1623,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13654,'Right_Epsilon_Box1','Refined Light Epsilon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1372,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13655,'Balistar_Box1','Refined Ballista Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1728,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13656,'Diary_Of_Sage_Box1','Refined Sage\'s Diary Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1563,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13657,'Asura_Box1','Refined Ashura Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13023,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13658,'Apple_Of_Archer_Box1','Refined Apple of Archer Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5265,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13659,'Bunny_Band_Box1','Refined Bunny Band Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5266,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13660,'Sahkkat_Box1','Refined Sakkat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5267,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13661,'Lord_Circlet_Box1','Refined Grand Circlet Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5268,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13662,'Elven_Ears_Box1','Refined Elven Ears Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2686,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13663,'Steel_Flower_Box1','Refined Romantic Flower Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2687,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13664,'Critical_Ring_Box1','Refined Critical Ring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2688,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13665,'Earring_Box1','Refined Earring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2689,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13666,'Ring_Box1','Refined Ring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2690,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13667,'Necklace_Box1','Refined Necklace Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2691,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13668,'Glove_Box1','Refined Glove Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2692,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13669,'Brooch_Box1','Refined Brooch Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2693,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13670,'Rosary_Box1','Refined Rosary Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2694,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13671,'Safety_Ring_Box1','Refined Safety Ring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2695,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13672,'Vesper_Core01_Box1','Refined Vesper Core 01 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2696,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13673,'Vesper_Core02_Box1','Refined Vesper Core 02 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2697,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13674,'Vesper_Core03_Box1','Refined Vesper Core 03 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2698,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13675,'Vesper_Core04_Box1','Refined Vesper Core 04 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2699,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13676,'Drooping_Kitty_Box1','Refined Drooping Cat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5279,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13677,'Magestic_Goat_Box1','Refined Majestic Goat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5280,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13678,'Deviruchi_Cap_Box1','Refined Deviruchi Hat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5281,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13679,'Executioner_Box1','Refined Executioner Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1174,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13680,'Brood_Axe_Box1','Refined Bloody Axe Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1373,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13681,'Tomahawk_Box1','Refined Tomahawk Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1374,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13682,'Bow_Of_Rudra_Box1','Refined Rudra Bow Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1729,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13683,'Cutlas_Box1','Refined Cutlus Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13402,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13684,'Solar_Sword_Box1','Refined Solar Sword Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13403,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13685,'Sword_Breaker_Box1','Refined Swordbreaker Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13024,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13686,'Mail_Breaker_Box1','Refined Mailbreaker Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13025,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13687,'Moonlight_Sword_Box1','Refined Moonlight Dagger Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13026,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13688,'Spanner_Box1','Refined Wrench Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1534,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13689,'Bok_Choy_Box','Bok Choy Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7766,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13690,'Chung_E_Cake_Box','Green Maiden Cake Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7767,10;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13691,'Freyja_Overcoat_Box','Freya\'s Clothes Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2369,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13692,'Freyja_Boots_Box','Freya\'s Boots Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2428,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13693,'Freyja_Cape_Box','Freya\'s Manteau Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2533,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13694,'Freyja_Crown_Box','Freya\'s Crown Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5306,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13695,'Battle_Manual25_Box','Field Manual 25% Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14532,25;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13696,'Battle_Manual100_Box','Field Manual 100% Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14533,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13697,'J_Blessing10_Box','Blessing Scroll 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13698,'J_Inc_Agi10_Box','Increase Agility Scroll 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13699,'J_Wind_Walk10_Box','Wind Walk Scroll 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13700,'J_Adrenaline10_Box','Adrenaline Rush Scroll 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13634,'Vigorgra_Package1','1 Hour Package Vol. 1',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13635,'Vigorgra_Package2','1 Hour Package Vol. 2',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12255,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13636,'Vigorgra_Package3','1 Hour Package Vol. 3',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12253,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13637,'Vigorgra_Package4','1 Hour Package Vol. 4',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12255,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13638,'Vigorgra_Package5','1 Hour Package Vol. 5',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12250,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13639,'Vigorgra_Package6','1 Hour Package Vol. 6',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 12215,15; getitem 12217,20; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13640,'Vigorgra_Package7','2 Hour Package Vol. 1',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13641,'Vigorgra_Package8','2 Hour Package Vol. 2',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13642,'Vigorgra_Package9','2 Hour Package Vol. 3',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12253,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13643,'Vigorgra_Package10','2 Hour Package Vol. 4',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13644,'Vigorgra_Package11','2 Hour Package Vol. 5',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12250,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13645,'Vigorgra_Package12','2 Hour Package Vol. 6',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12217,40; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13646,'Infiltrator_Box1','Refined Infiltrator Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1267,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13647,'Muramasa_Box1','Refined Muramasa Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1173,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13648,'Excalibur_Box1','Refined Excalibur Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13401,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13649,'Combat_Knife_Box1','Refined Combat Knife Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13021,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13650,'Counter_Dagger_Box1','Refined Dagger of Counter Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13022,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13651,'Kaiser_Knuckle_Box1','Refined Kaiser Knuckle Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1817,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13652,'Pole_Axe_Box1','Refined Pole Axe Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1419,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13653,'Mighty_Staff_Box1','Refined Mighty Staff Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1623,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13654,'Right_Epsilon_Box1','Refined Light Epsilon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1372,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13655,'Balistar_Box1','Refined Ballista Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1728,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13656,'Diary_Of_Sage_Box1','Refined Sage\'s Diary Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1563,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13657,'Asura_Box1','Refined Ashura Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13023,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13658,'Apple_Of_Archer_Box1','Refined Apple of Archer Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5265,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13659,'Bunny_Band_Box1','Refined Bunny Band Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5266,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13660,'Sahkkat_Box1','Refined Sakkat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5267,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13661,'Lord_Circlet_Box1','Refined Grand Circlet Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5268,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13662,'Elven_Ears_Box1','Refined Elven Ears Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2686,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13663,'Steel_Flower_Box1','Refined Romantic Flower Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2687,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13664,'Critical_Ring_Box1','Refined Critical Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2688,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13665,'Earring_Box1','Refined Earring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2689,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13666,'Ring_Box1','Refined Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2690,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13667,'Necklace_Box1','Refined Necklace Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2691,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13668,'Glove_Box1','Refined Glove Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2692,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13669,'Brooch_Box1','Refined Brooch Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2693,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13670,'Rosary_Box1','Refined Rosary Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2694,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13671,'Safety_Ring_Box1','Refined Safety Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2695,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13672,'Vesper_Core01_Box1','Refined Vesper Core 01 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2696,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13673,'Vesper_Core02_Box1','Refined Vesper Core 02 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2697,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13674,'Vesper_Core03_Box1','Refined Vesper Core 03 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2698,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13675,'Vesper_Core04_Box1','Refined Vesper Core 04 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2699,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13676,'Drooping_Kitty_Box1','Refined Drooping Cat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5279,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13677,'Magestic_Goat_Box1','Refined Majestic Goat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5280,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13678,'Deviruchi_Cap_Box1','Refined Deviruchi Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5281,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13679,'Executioner_Box1','Refined Executioner Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1174,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13680,'Brood_Axe_Box1','Refined Bloody Axe Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1373,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13681,'Tomahawk_Box1','Refined Tomahawk Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1374,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13682,'Bow_Of_Rudra_Box1','Refined Rudra Bow Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1729,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13683,'Cutlas_Box1','Refined Cutlus Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13402,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13684,'Solar_Sword_Box1','Refined Solar Sword Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13403,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13685,'Sword_Breaker_Box1','Refined Swordbreaker Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13024,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13686,'Mail_Breaker_Box1','Refined Mailbreaker Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13025,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13687,'Moonlight_Sword_Box1','Refined Moonlight Dagger Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13026,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13688,'Spanner_Box1','Refined Wrench Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1534,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13689,'Bok_Choy_Box','Bok Choy Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7766,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13690,'Chung_E_Cake_Box','Green Maiden Cake Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7767,100;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13691,'Freyja_Overcoat_Box','Freya\'s Clothes Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2369,1,604800;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13692,'Freyja_Boots_Box','Freya\'s Boots Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2428,1,604800;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13693,'Freyja_Cape_Box','Freya\'s Manteau Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2533,1,604800;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13694,'Freyja_Crown_Box','Freya\'s Crown Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5306,1,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13695,'Battle_Manual25_Box','Field Manual 25% Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14532,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13696,'Battle_Manual100_Box','Field Manual 100% Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14533,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13697,'J_Blessing10_Box','Blessing Scroll 10 Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13698,'J_Inc_Agi10_Box','Increase Agility Scroll 10 Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13699,'J_Wind_Walk10_Box','Wind Walk Scroll 10 Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13700,'J_Adrenaline10_Box','Adrenaline Rush Scroll 10 Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (13701,'Pet_Egg_Scroll12','Pet Egg Scroll 12',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13702,'Pet_Egg_Scroll13','Pet Egg Scroll 13',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13703,'Pet_Egg_Scroll14','Pet Egg Scroll 14',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -5106,121 +5407,121 @@ REPLACE INTO `item_db` VALUES (13706,'Super_Pet_Egg7','Super Pet Egg 7',2,20,NUL REPLACE INTO `item_db` VALUES (13707,'Super_Pet_Egg8','Super Pet Egg 8',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13708,'Pet_Egg_Scroll_E','Pet Egg Scroll E',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13709,'BRO_Package_1','BRO Package Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13710,'Max_Weight_Up_Box','Gym Pass Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7776,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13711,'Small_Life_Potion_Box','Small Life Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13712,'Small_Life_Potion_Box30','Small Life Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13713,'Small_Life_Potion_Box50','Small Life Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13714,'Med_Life_Potion_Box','Medium Life Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13715,'Med_Life_Potion_Box30','Medium Life Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13716,'Med_Life_Potion_Box50','Medium Life Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13717,'Abrasive_Box5','Abrasive 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14536,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13718,'Abrasive_Box10','Abrasive 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14536,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13719,'Regeneration_Box5','Regeneration Potion 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14537,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13720,'Regeneration_Box10','Regeneration 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14537,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13721,'Dun_Tele_Scroll_Box10','Dungeon Teleport Scroll 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14527,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13722,'Pecopeco_Hairband_Box','Peco Peco Hairband Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5286,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13723,'Red_Glasses_Box','Red Glasses Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5288,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13724,'Whisper_Mask_Box','Whisper Mask Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5294,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13725,'Ramen_Hat_Box','Ramen Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5293,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13726,'Gold_Box_','Golden Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7777,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13727,'Silver_Box_','Silver Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7778,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13728,'Gold_Key1_Box','Golden Key 1 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7779,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13729,'Gold_Key5_Box','Golden Key 5 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7779,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13730,'Silver_Key1_Box','Silver Key 1 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7780,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13731,'Silver_Key5_Box','Silver Key 5 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7780,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13710,'Max_Weight_Up_Box','Gym Pass Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7776,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13711,'Small_Life_Potion_Box','Small Life Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13712,'Small_Life_Potion_Box30','Small Life Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13713,'Small_Life_Potion_Box50','Small Life Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13714,'Med_Life_Potion_Box','Medium Life Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13715,'Med_Life_Potion_Box30','Medium Life Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13716,'Med_Life_Potion_Box50','Medium Life Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13717,'Abrasive_Box5','Abrasive 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14536,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13718,'Abrasive_Box10','Abrasive 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14536,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13719,'Regeneration_Box5','Regeneration Potion 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14537,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13720,'Regeneration_Box10','Regeneration 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14537,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13721,'Dun_Tele_Scroll_Box10','Dungeon Teleport Scroll 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14527,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13722,'Pecopeco_Hairband_Box','Peco Peco Hairband Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5286,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13723,'Red_Glasses_Box','Red Glasses Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5288,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13724,'Whisper_Mask_Box','Whisper Mask Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5294,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13725,'Ramen_Hat_Box','Ramen Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5293,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13726,'Gold_Box_','Golden Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7777,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13727,'Silver_Box_','Silver Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7778,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13728,'Gold_Key1_Box','Golden Key 1 Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7779,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13729,'Gold_Key5_Box','Golden Key 5 Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7779,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13730,'Silver_Key1_Box','Silver Key 1 Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7780,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13731,'Silver_Key5_Box','Silver Key 5 Box',18,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7780,5;',NULL,NULL); # # -REPLACE INTO `item_db` VALUES (13734,'Pecopeco_Hairband_Box1','Peco Peco Hairband Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5286,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13735,'Red_Glasses_Box1','Red Glasses Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5288,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13736,'Whisper_Mask_Box1','Whisper Mask Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5294,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13737,'Ramen_Hat_Box1','Ramen Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5293,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13738,'Glass_Of_Illusion_Box5','Glass of Illusion 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14538,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13739,'Glass_Of_Illusion_Box10','Glass of Illusion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14538,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13740,'Shadow_Armor_S_Box5','Shadow Armor Scroll 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13741,'Shadow_Armor_S_Box10','Shadow Armor Scroll 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13742,'Shadow_Armor_S_Box30','Shadow Armor Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13743,'Holy_Armor_S_Box5','Holy Armor Scroll 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13744,'Holy_Armor_S_Box10','Holy Armor Scroll 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13745,'Holy_Armor_S_Box30','Holy Armor Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13746,'S_Def_Potion_Box10','Small Defense Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13747,'S_Def_Potion_Box30','Small Defense Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13748,'S_Def_Potion_Box50','Small Defense Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13749,'B_Def_Potion_Box10','Big Defense Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13750,'B_Def_Potion_Box30','Big Defense Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13751,'B_Def_Potion_Box50','Big Defense Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13752,'S_Mdef_Potion_Box10','Small Magic Defense Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13753,'S_Mdef_Potion_Box30','Small Magic Defense Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13754,'S_Mdef_Potion_Box50','Small Magic Defense Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13755,'B_Mdef_Potion_Box10','Big Magic Defense Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13756,'B_Mdef_Potion_Box30','Big Magic Defense Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13757,'B_Mdef_Potion_Box50','Big Magic Defense Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13758,'Battle_Manual_X3_Box','Field Manual 300% Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14545,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13759,'In_Blue_Herb_Box','Blue Herb Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 510,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13760,'Honey_Box','Honey Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 518,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13761,'Empty_Bottle_Box','Empty Bottle Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 713,500;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13762,'In_Royal_Jelly_Box','Royal Jelly Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 526,70;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13763,'5_Anniversary_Coin_Box','Coin Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2709,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13764,'Battle_Manual_Box_TW','Beginner\'s Field Manual 5 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7803,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13765,'Certificate_TW_Box','Certificate Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7804,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13766,'Nagan_Box','Refined Nagan Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13407,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13767,'Skewer_Box','Refined Brocca Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1424,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13768,'Survival_Rod_Box','Refined Survivor\'s Rod Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1628,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13769,'Quadrille_Box','Refined Quadrille Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1537,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13770,'Great_Axe_Box','Refined Great Axe Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1378,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13771,'Bloody_Roar_Box','Refined Bloody Roar Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1273,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13772,'Hardback_Box','Refined Hardcover Book Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1567,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13773,'Fire_Brand_Box','Refined Fireblend Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13408,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13774,'Immaterial_Sword_Box','Refined Immaterial Sword Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13409,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13775,'Unholy_Touch_Box','Refined Unholy Touch Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1274,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13776,'Cloak_Of_Survival_Box','Refined Survivor\'s Manteau Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2535,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13777,'Masquerade_Box','Refined Masquerade Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5326,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13778,'Orc_Hero_Helm_Box','Refined Helmet of Orc Hero Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5327,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13779,'Evil_Wing_Ears_Box','Refined Wing of Diablo Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5328,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13780,'Dark_Blindfold_Box','Refined Dark Blinder Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5329,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13781,'kRO_Drooping_Kitty_Box','Refined Drooping Cat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5330,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13782,'Corsair_Box','Refined Corsair Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5331,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13783,'Bloody_Iron_Ball_Box','Refined Bloodied Shackle Ball Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2710,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13784,'Spiritual_Ring_Box','Refined Spiritual Ring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2711,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13785,'Nagan_Box1','Refined Nagan Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13407,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13786,'Skewer_Box1','Refined Brocca Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1424,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13787,'Survival_Rod_Box1','Refined Survivor\'s Rod Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1628,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13788,'Quadrille_Box1','Refined Quadrille Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1537,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13789,'Great_Axe_Box1','Refined Great Axe Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1378,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13790,'Bloody_Roar_Box1','Refined Bloody Roar Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1273,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13791,'Hardback_Box1','Refined Hardcover Book Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1567,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13792,'Fire_Brand_Box1','Refined Fireblend Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13408,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13793,'Immaterial_Sword_Box1','Refined Immaterial Sword Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13409,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13794,'Unholy_Touch_Box1','Refined Unholy Touch Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1274,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13795,'Cloak_Of_Survival_Box1','Refined Survivor\'s Manteau Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2535,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13796,'Masquerade_Box1','Refined Masquerade Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5326,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13797,'Orc_Hero_Helm_Box1','Refined Helmet of Orc Hero Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5327,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13798,'Evil_Wing_Ears_Box1','Refined Wing of Diablo Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5328,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13799,'Dark_Blindfold_Box1','Refined Dark Blinder Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5329,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13800,'kRO_Drooping_Kitty_Box1','Refined Drooping Cat Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5330,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13801,'Corsair_Box1','Refined Corsair Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5331,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13802,'Bloody_Iron_Ball_Box1','Refined Bloodied Shackle Ball Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2710,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13803,'Spiritual_Ring_Box1','Refined Spiritual Ring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2711,86400;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13804,'Fire_Cracker_Love_Box','I Love You Firecracker Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14546,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13805,'Fire_Cracker_Wday_Box','Whiteday Firecracker Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14547,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13806,'Fire_Cracker_Vday_Box','Valentine\'s Day Firecracker Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14548,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13807,'Fire_Cracker_Bday_Box','Birthday Firecracker Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14549,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13808,'Fire_Cracker_Xmas_Box','Xmas Firecracker Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14550,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13809,'Blue_Gemstone_Box','Blue Gemstone Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 717,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13810,'Blue_Potion_Box','Blue Potion Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 505,25;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13811,'Food_Box_Lv1','Food Box Vol 1',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14551,1; getitem 14554,1; getitem 14557,1; getitem 14560,1; getitem 14563,1; getitem 14566,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13812,'Food_Box_Lv2','Food Box Vol 2',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14552,1; getitem 14555,1; getitem 14558,1; getitem 14561,1; getitem 14564,1; getitem 14567,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13813,'Food_Box_Lv3','Food Box Vol 3',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14553,1; getitem 14556,1; getitem 14559,1; getitem 14562,1; getitem 14565,1; getitem 14568,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13814,'Indonesia_Box','Healing Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13815,'Knife_Goblin_Box','Knife Goblin Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14569,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13816,'Flail_Goblin_Box','Flail Goblin Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14570,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13817,'Hammer_Goblin_Box','Hammer Goblin Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14571,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13818,'Red_Deleter_Box','Red Deleter Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14572,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13819,'Diabolic_Box','Diabolic Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14573,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13820,'Wanderer_Box','Wanderer Taming Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14574,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13821,'Green_Apple_Box','Green Apple Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7821,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13822,'Whole_Barbecue_Box','Barbeque Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7822,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13823,'Meat_Veg_Skewer_Box','Meat Skewer Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7823,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13824,'Spirit_Liquor_Box','Spirit Liquor Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7824,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13734,'Pecopeco_Hairband_Box1','Peco Peco Hairband Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5286,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13735,'Red_Glasses_Box1','Red Glasses Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5288,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13736,'Whisper_Mask_Box1','Whisper Mask Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5294,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13737,'Ramen_Hat_Box1','Ramen Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5293,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13738,'Glass_Of_Illusion_Box5','Glass of Illusion 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14538,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13739,'Glass_Of_Illusion_Box10','Glass of Illusion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14538,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13740,'Shadow_Armor_S_Box5','Shadow Armor Scroll 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13741,'Shadow_Armor_S_Box10','Shadow Armor Scroll 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13742,'Shadow_Armor_S_Box30','Shadow Armor Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13743,'Holy_Armor_S_Box5','Holy Armor Scroll 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13744,'Holy_Armor_S_Box10','Holy Armor Scroll 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13745,'Holy_Armor_S_Box30','Holy Armor Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13746,'S_Def_Potion_Box10','Small Defense Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13747,'S_Def_Potion_Box30','Small Defense Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13748,'S_Def_Potion_Box50','Small Defense Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13749,'B_Def_Potion_Box10','Big Defense Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13750,'B_Def_Potion_Box30','Big Defense Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13751,'B_Def_Potion_Box50','Big Defense Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13752,'S_Mdef_Potion_Box10','Small Magic Defense Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13753,'S_Mdef_Potion_Box30','Small Magic Defense Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13754,'S_Mdef_Potion_Box50','Small Magic Defense Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13755,'B_Mdef_Potion_Box10','Big Magic Defense Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13756,'B_Mdef_Potion_Box30','Big Magic Defense Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13757,'B_Mdef_Potion_Box50','Big Magic Defense Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13758,'Battle_Manual_X3_Box','Field Manual 300% Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14545,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13759,'In_Blue_Herb_Box','Blue Herb Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 510,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13760,'Honey_Box','Honey Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 518,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13761,'Empty_Bottle_Box','Empty Bottle Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 713,500;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13762,'In_Royal_Jelly_Box','Royal Jelly Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 526,70;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13763,'5_Anniversary_Coin_Box','Coin Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2709,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13764,'Battle_Manual_Box_TW','Beginner\'s Field Manual 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7803,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13765,'Certificate_TW_Box','Certificate Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7804,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13766,'Nagan_Box','Refined Nagan Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13407,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13767,'Skewer_Box','Refined Brocca Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1424,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13768,'Survival_Rod_Box','Refined Survivor\'s Rod Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1628,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13769,'Quadrille_Box','Refined Quadrille Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1537,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13770,'Great_Axe_Box','Refined Great Axe Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1378,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13771,'Bloody_Roar_Box','Refined Bloody Roar Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1273,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13772,'Hardback_Box','Refined Hardcover Book Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1567,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13773,'Fire_Brand_Box','Refined Fireblend Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13408,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13774,'Immaterial_Sword_Box','Refined Immaterial Sword Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13409,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13775,'Unholy_Touch_Box','Refined Unholy Touch Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1274,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13776,'Cloak_Of_Survival_Box','Refined Survivor\'s Manteau Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2535,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13777,'Masquerade_Box','Refined Masquerade Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5326,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13778,'Orc_Hero_Helm_Box','Refined Helmet of Orc Hero Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5327,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13779,'Evil_Wing_Ears_Box','Refined Wing of Diablo Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5328,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13780,'Dark_Blindfold_Box','Refined Dark Blinder Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5329,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13781,'kRO_Drooping_Kitty_Box','Refined Drooping Cat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5330,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13782,'Corsair_Box','Refined Corsair Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5331,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13783,'Bloody_Iron_Ball_Box','Refined Bloodied Shackle Ball Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2710,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13784,'Spiritual_Ring_Box','Refined Spiritual Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2711,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13785,'Nagan_Box1','Refined Nagan Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13407,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13786,'Skewer_Box1','Refined Brocca Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1424,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13787,'Survival_Rod_Box1','Refined Survivor\'s Rod Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1628,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13788,'Quadrille_Box1','Refined Quadrille Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1537,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13789,'Great_Axe_Box1','Refined Great Axe Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1378,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13790,'Bloody_Roar_Box1','Refined Bloody Roar Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1273,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13791,'Hardback_Box1','Refined Hardcover Book Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1567,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13792,'Fire_Brand_Box1','Refined Fireblend Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13408,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13793,'Immaterial_Sword_Box1','Refined Immaterial Sword Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13409,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13794,'Unholy_Touch_Box1','Refined Unholy Touch Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1274,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13795,'Cloak_Of_Survival_Box1','Refined Survivor\'s Manteau Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2535,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13796,'Masquerade_Box1','Refined Masquerade Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5326,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13797,'Orc_Hero_Helm_Box1','Refined Helmet of Orc Hero Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5327,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13798,'Evil_Wing_Ears_Box1','Refined Wing of Diablo Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5328,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13799,'Dark_Blindfold_Box1','Refined Dark Blinder Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5329,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13800,'kRO_Drooping_Kitty_Box1','Refined Drooping Cat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5330,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13801,'Corsair_Box1','Refined Corsair Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5331,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13802,'Bloody_Iron_Ball_Box1','Refined Bloodied Shackle Ball Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2710,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13803,'Spiritual_Ring_Box1','Refined Spiritual Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2711,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13804,'Fire_Cracker_Love_Box','I Love You Firecracker Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14546,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13805,'Fire_Cracker_Wday_Box','Whiteday Firecracker Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14547,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13806,'Fire_Cracker_Vday_Box','Valentine\'s Day Firecracker Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14548,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13807,'Fire_Cracker_Bday_Box','Birthday Firecracker Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14549,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13808,'Fire_Cracker_Xmas_Box','Xmas Firecracker Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14550,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13809,'Blue_Gemstone_Box','Blue Gemstone Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 717,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13810,'Blue_Potion_Box','Blue Potion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11502,25;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13811,'Food_Box_Lv1','Food Box Vol 1',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14551,1; getitem 14554,1; getitem 14557,1; getitem 14560,1; getitem 14563,1; getitem 14566,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13812,'Food_Box_Lv2','Food Box Vol 2',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14552,1; getitem 14555,1; getitem 14558,1; getitem 14561,1; getitem 14564,1; getitem 14567,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13813,'Food_Box_Lv3','Food Box Vol 3',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14553,1; getitem 14556,1; getitem 14559,1; getitem 14562,1; getitem 14565,1; getitem 14568,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13814,'Indonesia_Box','Healing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (13815,'Knife_Goblin_Box','Knife Goblin Taming Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14569,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13816,'Flail_Goblin_Box','Flail Goblin Taming Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14570,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13817,'Hammer_Goblin_Box','Hammer Goblin Taming Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14571,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13818,'Red_Deleter_Box','Red Deleter Taming Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14572,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13819,'Diabolic_Box','Diabolic Taming Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14573,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13820,'Wanderer_Box','Wanderer Taming Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14574,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13821,'Green_Apple_Box','Green Apple Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7821,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13822,'Whole_Barbecue_Box','Barbeque Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7822,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13823,'Meat_Veg_Skewer_Box','Meat Skewer Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7823,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13824,'Spirit_Liquor_Box','Spirit Liquor Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7824,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (13825,'Green_Box_','Old Green Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (13826,'Power_Box1','Power Box 1',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 682,1; getitem 12123,1; getitem 12122,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (13827,'Power_Box2','Power Box 2',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 683,1; getitem 12123,1; getitem 12122,1;',NULL,NULL); @@ -5230,463 +5531,463 @@ REPLACE INTO `item_db` VALUES (13830,'Stat_Boost1','Stat Boost 1',2,NULL,NULL,10 REPLACE INTO `item_db` VALUES (13831,'Stat_Boost2','Stat Boost 2',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCINT,60000,5; sc_start SC_INCLUK,60000,5; sc_start SC_INCDEX,60000,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (13832,'Stat_Boost3','Stat Boost 3',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCAGI,60000,5; sc_start SC_INCVIT,60000,5; sc_start SC_INCDEX,60000,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (13833,'Stat_Boost4','Stat Boost 4',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCINT,60000,5; sc_start SC_INCVIT,60000,5; sc_start SC_INCDEX,60000,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13834,'Dun_Tele_Scroll2_Box5','Dungeon Teleport Scroll II 5 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14581,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13835,'Dun_Tele_Scroll2_Box10','Dungeon Teleport Scroll II 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14581,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13836,'Mbl_Str_Dish_Box','Steamed Tongue Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13837,'Mbl_Agi_Dish_Box','Steamed Desert Scorpions Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12251,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13838,'Mbl_Int_Dish_Box','Dragon Breath Cocktail Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13839,'Mbl_Dex_Dish_Box','Hwergelmir\'s Tonic Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12253,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13840,'Mbl_Luk_Dish_Box','Cooked Nine Tail Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12254,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13841,'Mbl_Vit_Dish_Box','Immortal Stew Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12255,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13842,'Mbl_Kafra_Card_Box','Payment Statement for Kafra Employee Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12249,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13843,'Mbl_Battle_Manual_Box','Field Manual Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14532,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13844,'Heroic_Stone_Box','Heroic Stone Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7825,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13845,'Mysterious_Travel_Sack1','Mystery Travel Sack A',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13846,'Mysterious_Travel_Sack2','Mystery Travel Sack B',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13847,'Mysterious_Travel_Sack3','Mystery Travel Sack C',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13848,'Mysterious_Travel_Sack4','Mystery Travel Sack D',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13849,'WOB_Box_Rune5','Yellow Butterfly Wing 5 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14582,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13850,'WOB_Box_Rune10','Yellow Butterfly Wing Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14582,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13851,'WOB_Box_Schawaltz5','Green Butterfly Wing 5 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14583,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13852,'WOB_Box_Schawaltz10','Green Butterfly Wing Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14583,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13853,'WOB_Box_Rachel5','Red Butterfly Wing 5 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14584,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13854,'WOB_Box_Rachel10','Red Butterfly Wing Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14584,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13855,'WOB_Box_Local5','Blue Butterfly Wing 5 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14585,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13856,'WOB_Box_Local10','Blue Butterfly Wing Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14585,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13857,'Spark_Candy_Box5','Candy 5 Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13858,'Spark_Candy_Box10','Candy 10 Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13859,'Directive_A_Envelope','Directive Envelope A',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2734,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13860,'Directive_B_Envelope','Directive Envelope B',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2735,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13861,'Mini_Battle_Manual_Box','Small Field Manual Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13862,'Trial_Box','Trial Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13863,'Repair_Scroll_Box10','Repair Weapon Scroll 10 Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14521,10;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13864,'Hockey_Mask_Box','Hockey Mask Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5314,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13865,'Observer_Box','Observer Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5315,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13866,'Flying_Angel_Box','Flying Angel Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5210,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13867,'Neko_Mimi_Box','Neko Mimi Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5099,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13868,'MFH_Box','Moonlight Flower Hat Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5214,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13869,'Chick_Hat_Box','Baby Chick Hat Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5283,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13870,'New_Style_Box','Beauty Gift Certificate Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7622,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13871,'Magician_Card_Box','Mage Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4327,1; getitem 4309,1; getitem 4325,1; getitem 4208,1; getitem 4258,1; getitem 4191,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13872,'Acolyte_Card_Box','Acolyte Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4185,1; getitem 4312,1; getitem 4217,1; getitem 4280,1; getitem 4293,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13873,'Archer_Card_Box','Archer Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4297,1; getitem 4234,1; getitem 4199,1; getitem 4178,1; getitem 4252,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13874,'Swordman_Card_Box','Swordman Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4319,1; getitem 4331,1; getitem 4220,1; getitem 4311,1; getitem 4246,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13875,'Thief_Card_Box','Thief Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4230,1; getitem 4210,1; getitem 4257,1; getitem 4172,1; getitem 4272,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13876,'Merchant_Card_Box','Merchant Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4206,1; getitem 4281,1; getitem 4186,1; getitem 4233,1; getitem 4321,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13877,'Clock_Tower_Card_Box','Clock Tower Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4244,1; getitem 4299,1; getitem 4313,1; getitem 4229,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13878,'Geffenia_Card_Box','Geffenia Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4218,1; getitem 4269,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13879,'Owl_Card_Box','Owl Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4237,1; getitem 4238,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13880,'Ghost_Card_Box','Ghost Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4193,1; getitem 4294,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13881,'Nightmare_Card_Box','Nightmare Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4127,1; getitem 4166,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13882,'Curse_Card_Box','Curse Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4076,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13883,'Sleep_Card_Box','Sleep Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4024,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13884,'Freeze_Card_Box','Freeze Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4055,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13885,'Stun_Card_Box','Stun Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4017,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13886,'Silence_Card_Box','Silence Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4057,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13887,'Blind_Card_Box','Blind Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4020,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13888,'Chaos_Card_Box','Chaos Card Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4104,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13889,'Elunium_Box_','Elunium Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 985,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13890,'Oridecon_Box_','Oridecon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 984,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13891,'Fire_Converter_Box','Fire Converter Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12114,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13892,'Water_Converter_Box','Water Converter Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12115,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13893,'Wind_Converter_Box','Wind Converter Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12117,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13894,'Earth_Converter_Box','Earth Converter Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12116,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13895,'Starter_Pack','Starter Pack',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13896,'Mimic_Summon_Box5','Mimic Summoning 5 Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13897,'Disguise_Summon_Box5','Disguise Summoning 5 Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13898,'Alice_Summon_Box5','Alice Summoning 5 Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13899,'Mimic_Summon_Box10','Mimic Summoning 10 Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13900,'Disguise_Summon_Box10','Disguise Summoning 10 Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13901,'Alice_Summon_Box10','Alice Summoning 10 Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13902,'Fish_Head_Hat_Box','Fish Head Hat Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5380,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13903,'Santa_Poring_Hat_Box','Santa Poring Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5381,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13904,'Bell_Ribbon_Box','Bell Ribbon Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5382,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13905,'Hard_Core_Set_Box','XM Hardcore Set Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,10; getitem 12209,10; getitem 12210,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13906,'Kitty_Set_Box','XM Kitty Set Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5230,1; getitem 5231,1; getitem 5232,1; getitem 5233,1; getitem 5234,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13907,'Soft_Core_Set_Box','XM Softcore Set Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,5; getitem 12209,5; getitem 12210,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13908,'Deviruchi_Set_Box','XM Deviruchi Set Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5227,1; getitem 5228,1; getitem 5229,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13909,'MVP_Hunt_Box','MVP Hunting Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,1; getitem 12210,1; getitem 12221,1; getitem 12214,3;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13910,'Brewing_Box','XM Brewing Set Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,10; getitem 12205,10; getitem 12206,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13834,'Dun_Tele_Scroll2_Box5','Dungeon Teleport Scroll II 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14581,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13835,'Dun_Tele_Scroll2_Box10','Dungeon Teleport Scroll II 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14581,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13836,'Mbl_Str_Dish_Box','Steamed Tongue Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13837,'Mbl_Agi_Dish_Box','Steamed Desert Scorpions Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12251,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13838,'Mbl_Int_Dish_Box','Dragon Breath Cocktail Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13839,'Mbl_Dex_Dish_Box','Hwergelmir\'s Tonic Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12253,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13840,'Mbl_Luk_Dish_Box','Cooked Nine Tail Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12254,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13841,'Mbl_Vit_Dish_Box','Immortal Stew Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12255,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13842,'Mbl_Kafra_Card_Box','Payment Statement for Kafra Employee Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12249,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13843,'Mbl_Battle_Manual_Box','Field Manual Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14532,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13844,'Heroic_Stone_Box','Heroic Stone Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7825,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13845,'Mysterious_Travel_Sack1','Mystery Travel Sack A',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (13846,'Mysterious_Travel_Sack2','Mystery Travel Sack B',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (13847,'Mysterious_Travel_Sack3','Mystery Travel Sack C',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (13848,'Mysterious_Travel_Sack4','Mystery Travel Sack D',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (13849,'WOB_Box_Rune5','Yellow Butterfly Wing 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14582,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13850,'WOB_Box_Rune10','Yellow Butterfly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14582,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13851,'WOB_Box_Schawaltz5','Green Butterfly Wing 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14583,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13852,'WOB_Box_Schawaltz10','Green Butterfly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14583,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13853,'WOB_Box_Rachel5','Red Butterfly Wing 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14584,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13854,'WOB_Box_Rachel10','Red Butterfly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14584,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13855,'WOB_Box_Local5','Blue Butterfly Wing 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14585,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13856,'WOB_Box_Local10','Blue Butterfly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14585,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13857,'Spark_Candy_Box5','Candy 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14586,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13858,'Spark_Candy_Box10','Candy 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14586,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13859,'Directive_A_Envelope','Directive Envelope A',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2734,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13860,'Directive_B_Envelope','Directive Envelope B',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2735,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13861,'Mini_Battle_Manual_Box','Small Field Manual Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13862,'Trial_Box','Trial Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,2; getitem 12215,15; getitem 12216,15;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13863,'Repair_Scroll_Box10','Repair Weapon Scroll 10 Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14521,10; getitem 1002,10; getitem 998,10; getitem 756,10; getitem 999,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13864,'Hockey_Mask_Box','Hockey Mask Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5314,604800;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13865,'Observer_Box','Observer Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5315,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13866,'Flying_Angel_Box','Flying Angel Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5210,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13867,'Neko_Mimi_Box','Neko Mimi Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5099,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13868,'MFH_Box','Moonlight Flower Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5214,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13869,'Chick_Hat_Box','Baby Chick Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5283,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13870,'New_Style_Box','Beauty Gift Certificate Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7622,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13871,'Magician_Card_Box','Mage Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4327,1; getitem 4309,1; getitem 4325,1; getitem 4208,1; getitem 4258,1; getitem 4191,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13872,'Acolyte_Card_Box','Acolyte Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4185,1; getitem 4312,1; getitem 4217,1; getitem 4280,1; getitem 4293,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13873,'Archer_Card_Box','Archer Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4297,1; getitem 4234,1; getitem 4199,1; getitem 4178,1; getitem 4252,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13874,'Swordman_Card_Box','Swordman Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4319,1; getitem 4331,1; getitem 4220,1; getitem 4311,1; getitem 4246,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13875,'Thief_Card_Box','Thief Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4230,1; getitem 4210,1; getitem 4257,1; getitem 4172,1; getitem 4272,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13876,'Merchant_Card_Box','Merchant Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4206,1; getitem 4281,1; getitem 4186,1; getitem 4233,1; getitem 4321,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13877,'Clock_Tower_Card_Box','Clock Tower Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4244,1; getitem 4299,1; getitem 4313,1; getitem 4229,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13878,'Geffenia_Card_Box','Geffenia Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4218,1; getitem 4269,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13879,'Owl_Card_Box','Owl Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4237,1; getitem 4238,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13880,'Ghost_Card_Box','Ghost Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4193,1; getitem 4294,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13881,'Nightmare_Card_Box','Nightmare Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4127,1; getitem 4166,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13882,'Curse_Card_Box','Curse Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4076,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13883,'Sleep_Card_Box','Sleep Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4024,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13884,'Freeze_Card_Box','Freeze Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4055,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13885,'Stun_Card_Box','Stun Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4017,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13886,'Silence_Card_Box','Silence Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4057,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13887,'Blind_Card_Box','Blind Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4020,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13888,'Chaos_Card_Box','Chaos Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4104,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13889,'Elunium_Box_','Elunium Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 985,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13890,'Oridecon_Box_','Oridecon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 984,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13891,'Fire_Converter_Box','Fire Converter Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12114,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13892,'Water_Converter_Box','Water Converter Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12115,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13893,'Wind_Converter_Box','Wind Converter Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12117,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13894,'Earth_Converter_Box','Earth Converter Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12116,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13895,'Starter_Pack','Starter Pack',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7229,2; getitem 569,300; getitem 504,20; getitem 505,20; getitem 7060,30; getitem 2403,1; getitem 5039,1; getitem 2503,1; getitem 2307,1; getitem 616,1; getitem 603,1; getitem 617,1; getitem 610,5; getitem 604,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13896,'Mimic_Scroll_Box5','Mimic Summoning 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12276,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13897,'Disguise_Croll_Box5','Disguise Summoning 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12277,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13898,'Alice_Scroll_Box5','Alice Summoning 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12278,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13899,'Mimic_Scroll_Box10','Mimic Summoning 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12276,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13900,'Disguise_Croll_Box10','Disguise Summoning 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12277,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13901,'Alice_Scroll_Box10','Alice Summoning 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12278,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13902,'Fish_Head_Hat_Box','Fish Head Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5380,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13903,'Santa_Poring_Hat_Box','Santa Poring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5381,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13904,'Bell_Ribbon_Box','Bell Ribbon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5382,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13905,'Hard_Core_Set_Box','XM Hardcore Set Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,10; getitem 12209,10; getitem 12210,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13906,'Kitty_Set_Box','XM Kitty Set Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5230,1; getitem 5231,1; getitem 5232,1; getitem 5233,1; getitem 5234,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13907,'Soft_Core_Set_Box','XM Softcore Set Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,5; getitem 12209,5; getitem 12210,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13908,'Deviruchi_Set_Box','XM Deviruchi Set Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5227,1; getitem 5228,1; getitem 5229,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13909,'MVP_Hunt_Box','MVP Hunting Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,1; getitem 12210,1; getitem 12221,1; getitem 12214,3;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13910,'Brewing_Box','XM Brewing Set Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,10; getitem 12205,10; getitem 12206,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (13911,'Christmas_Pet_Scroll','Christmas Pet Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13912,'Pty_Blessing_Box','Party Blessing 10 Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14588,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13913,'Pty_Inc_Agi_Box','Party Increase Agi 10 Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14589,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13914,'Pty_Assumptio_Box','Party Assumptio 5 Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14590,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13915,'Love_Angel_Box','Love Angel Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12287,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13916,'Squirrel_Box','Squirrel Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12288,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13917,'Gogo_Box','Gogo Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12289,604800;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13918,'Drooping_W_Kitty_Box','Koneko Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5372,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13919,'L_Magestic_Goat_Box','Baphomet Horns Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5374,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13920,'Satanic_Chain_P_Box','Flying Evil Wing Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5376,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13921,'Antique_Pipe_Box','Gentleman\'s Pipe Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5377,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13922,'Rabbit_Ear_Hat_Box','Bunny Top Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5378,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13923,'Darkness_Helm_Box','Dark Randgris Helm Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5373,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13924,'L_Orc_Hero_Helm_Box','Orc Hero Headdress Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5375,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13912,'Pty_Blessing_Box','Party Blessing 10 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14588,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13913,'Pty_Inc_Agi_Box','Party Increase Agi 10 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14589,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13914,'Pty_Assumptio_Box','Party Assumptio 5 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14590,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13915,'Love_Angel_Box','Love Angel Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12287,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13916,'Squirrel_Box','Squirrel Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12288,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13917,'Gogo_Box','Gogo Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12289,604800;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13918,'Drooping_W_Kitty_Box','Koneko Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5372,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13919,'L_Magestic_Goat_Box','Baphomet Horns Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5374,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13920,'Satanic_Chain_P_Box','Flying Evil Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5376,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13921,'Antique_Pipe_Box','Gentleman\'s Pipe Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5377,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13922,'Rabbit_Ear_Hat_Box','Bunny Top Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5378,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13923,'Darkness_Helm_Box','Dark Randgris Helm Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5373,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13924,'L_Orc_Hero_Helm_Box','Orc Hero Headdress Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5375,1;',NULL,NULL); # REPLACE INTO `item_db` VALUES (13925,'Year_Of_Mouse_Scroll','... GoodLuck Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13926,'Crusader_Card_Box','Crusader Card Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4371,1; getitem 4311,1; getitem 4319,1; getitem 4331,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13927,'Alchemist_Card_Box','Alchemist Card Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4281,1; getitem 4233,1; getitem 4343,1; getitem 4186,1; getitem 4036,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13928,'Rogue_Card_Box','Bard Dancer Card Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4039,1; getitem 4210,1; getitem 4257,1; getitem 4230,1; getitem 4348,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13929,'Bard_Dancer_Card_Box','Rogue Card Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4297,1; getitem 4234,1; getitem 4178,1; getitem 4381,1; getitem 4252,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13930,'Sage_Card_Box','Sage card box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4382,1; getitem 4258,1; getitem 4325,1; getitem 4208,1; getitem 4327,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13931,'Monk_Card_Box','Monk Card Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4312,1; getitem 4332,1; getitem 4185,1; getitem 4293,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13932,'Sylph_Box','Sylph Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4345,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13933,'Undine_Box','Undine Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4350,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13934,'Salamander_Box','Salamander Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4380,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13935,'Soul_Box','Soul Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4388,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13936,'Noum_Bpx','Gnome Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4335,4;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13937,'Robo_Eye_Box','Robo Eye Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5325,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13938,'Twin_Ribbon_Box','Maiden\'s Twin Ribbon Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5187,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13939,'Diadem_Box','Diadem Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5313,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13940,'Siege_Tele_Scroll_Box','WoE Teleport Scroll 100 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14591,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13941,'TW_Valentine_Scroll','Taiwan Valentine Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13942,'Love_Angel_Box_1m','Love Angel Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14009,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13943,'Squirrel_Box_1m','Squirrel Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14010,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13944,'Gogo_Box_1m','Gogo Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14011,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13945,'BRO_SM_Package','Brazil Swordsman Package',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2317,1; getitem 2106,1; getitem 2406,1; getitem 2506,1; getitem 4003,1; getitem 4133,1; getitem 2607,2; getitem 2229,1; getitem 2266,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13946,'BRO_MG_Package','Brazil Magician Package',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2322,1; getitem 2102,1; getitem 2104,1; getitem 2504,1; getitem 4003,1; getitem 4077,1; getitem 2607,2; getitem 5027,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13947,'BRO_AC_Package','Brazil Acolyte Package',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2326,1; getitem 2104,1; getitem 2104,1; getitem 2504,1; getitem 4003,1; getitem 4100,1; getitem 2607,2; getitem 2217,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13948,'BRO_AR_Package','Brazil Archer package',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2317,1; getitem 1716,1; getitem 2406,1; getitem 2504,1; getitem 4064,1; getitem 4102,1; getitem 2607,2; getitem 2285,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13949,'BRO_MC_Package','Brazil Merchant Package',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2315,1; getitem 2104,1; getitem 2406,1; getitem 2506,1; getitem 4003,1; getitem 4133,1; getitem 2607,2; getitem 5021,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13950,'BRO_TF_Package','Brazil Thief Package',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2336,1; getitem 2104,1; getitem 2406,1; getitem 2506,1; getitem 4097,1; getitem 4102,1; getitem 2607,2; getitem 2274,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13951,'Wasteland_Outlaw_Box','Western Outlaw Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13107,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13952,'Lever_Action_Rifle_Box','Lever Action Rifle Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13170,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13953,'All_In_One_Ring_Box','All In One Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2741,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13954,'Spiritual_Tunic_Box','Spiritual Tunic Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2384,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13955,'Recuperative_Armor_Box','Recuvative Armor Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2385,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13956,'Shelter_Resistance_Box','Shell Of Resistance Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2132,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13957,'Sylphid_Manteau_Box','Silf Manteau Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2543,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13958,'Refresh_Shoes_Box','Refresh Shoes Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2439,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13959,'Toast_Box','Crunch Toast Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5391,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13960,'Name_Change_Coupon_Box','Identification Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13961,'Mojji_Box','Mochi Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13962,'Deprotai_Doll_Hat_Box','Defolty Doll Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5340,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13963,'Claris_Doll_Hat_Box','Glaris Doll Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5341,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13964,'Sorin_Doll_Hat_Box','Sorin Doll Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5342,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13965,'Tayelin_Doll_Hat_Box','Tailring Doll Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5343,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13966,'Binit_Doll_Hat_Box','Vinit Doll Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5344,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13967,'Debril_Doll_Hat_Box','W Doll Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5345,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (13968,'Bubblegum_Lower_Box','Bubble Gum Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# REPLACE INTO `item_db` VALUES (13969,'Lucky_Clip_Box','Lucky Clip Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2742,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13970,'Iron_10_Box','Iron Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 998,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13971,'Steel_10_Box','Steel Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 999,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13972,'Coal_10_Box','Coal Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1003,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13973,'Poison_Bottle_30_Box','Poison Bottle Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 678,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13926,'Crusader_Card_Box','Crusader Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4371,1; getitem 4311,1; getitem 4319,1; getitem 4331,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13927,'Alchemist_Card_Box','Alchemist Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4281,1; getitem 4233,1; getitem 4343,1; getitem 4186,1; getitem 4036,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13928,'Rogue_Card_Box','Bard Dancer Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4039,1; getitem 4210,1; getitem 4257,1; getitem 4230,1; getitem 4348,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13929,'Bard_Dancer_Card_Box','Rogue Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4297,1; getitem 4234,1; getitem 4178,1; getitem 4381,1; getitem 4252,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13930,'Sage_Card_Box','Sage card box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4382,1; getitem 4258,1; getitem 4325,1; getitem 4208,1; getitem 4327,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13931,'Monk_Card_Box','Monk Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4312,1; getitem 4332,1; getitem 4185,1; getitem 4293,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13932,'Sylph_Box','Sylph Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4345,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13933,'Undine_Box','Undine Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4350,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13934,'Salamander_Box','Salamander Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4380,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13935,'Soul_Box','Soul Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4388,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13936,'Noum_Bpx','Gnome Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 4335,4;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13937,'Robo_Eye_Box','Robo Eye Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5325,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13938,'Twin_Ribbon_Box','Maiden\'s Twin Ribbon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5187,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13939,'Diadem_Box','Diadem Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5313,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13940,'Siege_Tele_Scroll_Box','WoE Teleport Scroll 100 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14591,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13941,'TW_Valentine_Scroll','Taiwan Valentine Scroll',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (13942,'Love_Angel_Box_1m','Love Angel Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14009,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13943,'Squirrel_Box_1m','Squirrel Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14010,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13944,'Gogo_Box_1m','Gogo Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14011,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13945,'BRO_SM_Package','Brazil Swordsman Package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2317,1; getitem 2106,1; getitem 2406,1; getitem 2506,1; getitem 4003,1; getitem 4133,1; getitem 2607,2; getitem 2229,1; getitem 2266,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13946,'BRO_MG_Package','Brazil Magician Package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2322,1; getitem 2102,1; getitem 2104,1; getitem 2504,1; getitem 4003,1; getitem 4077,1; getitem 2607,2; getitem 5027,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13947,'BRO_AC_Package','Brazil Acolyte Package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2326,1; getitem 2104,1; getitem 2104,1; getitem 2504,1; getitem 4003,1; getitem 4100,1; getitem 2607,2; getitem 2217,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13948,'BRO_AR_Package','Brazil Archer package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2317,1; getitem 1716,1; getitem 2406,1; getitem 2504,1; getitem 4064,1; getitem 4102,1; getitem 2607,2; getitem 2285,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13949,'BRO_MC_Package','Brazil Merchant Package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2315,1; getitem 2104,1; getitem 2406,1; getitem 2506,1; getitem 4003,1; getitem 4133,1; getitem 2607,2; getitem 5021,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13950,'BRO_TF_Package','Brazil Thief Package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2336,1; getitem 2104,1; getitem 2406,1; getitem 2506,1; getitem 4097,1; getitem 4102,1; getitem 2607,2; getitem 2274,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13951,'Wasteland_Outlaw_Box','Western Outlaw Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13107,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13952,'Lever_Action_Rifle_Box','Lever Action Rifle Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13170,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13953,'All_In_One_Ring_Box','All In One Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2741,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13954,'Spiritual_Tunic_Box','Spiritual Tunic Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2384,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13955,'Recuperative_Armor_Box','Recuvative Armor Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2385,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13956,'Shelter_Resistance_Box','Shell Of Resistance Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2132,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13957,'Sylphid_Manteau_Box','Silf Manteau Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2543,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13958,'Refresh_Shoes_Box','Refresh Shoes Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2439,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13959,'Toast_Box','Crunch Toast Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5391,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13960,'Name_Change_Coupon_Box','Identification Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7623,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13961,'Mojji_Box','Mochi Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 554,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13962,'Deprotai_Doll_Hat_Box','Defolty Doll Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5340,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13963,'Claris_Doll_Hat_Box','Glaris Doll Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5341,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13964,'Sorin_Doll_Hat_Box','Sorin Doll Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5342,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13965,'Tayelin_Doll_Hat_Box','Tailring Doll Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5343,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13966,'Binit_Doll_Hat_Box','Vinit Doll Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5344,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13967,'Debril_Doll_Hat_Box','W Doll Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5345,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13968,'Bubblegum_Lower_Box','Bubble Gum Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5394,86400;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (13969,'Lucky_Clip_Box','Lucky Clip Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2742,86400;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13970,'Iron_10_Box','Iron Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 998,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13971,'Steel_10_Box','Steel Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 999,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13972,'Coal_10_Box','Coal Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1003,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13973,'Poison_Bottle_30_Box','Poison Bottle Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 678,30;',NULL,NULL); REPLACE INTO `item_db` VALUES (13974,'TW_Scroll01','Fisherman Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (13975,'Picture_Diary_Box','Diary Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12304,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13976,'Mini_Heart_Box','Mini Heart Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12305,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13977,'Newcomer_Box','Freshman Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12306,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13978,'Kid_Box','Kid Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12307,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13979,'Magic_Castle_Box','Magic Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12308,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13980,'Bulging_Head_Box','JJangu Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12309,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13981,'Picture_Diary_Box_1m','Diary Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12304,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13982,'Mini_Heart_Box_1m','Mini Heart Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12305,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13983,'Newcomer_Box_1m','Freshman Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12306,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13984,'Kid_Box_1m','Kid Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12307,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13985,'Magic_Castle_Box_1m','Magic Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12308,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13986,'Bulging_Head_Box_1m','JJangu Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12309,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13987,'Ori_Stone_5_Box','Rough Oridecon 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 756,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13988,'Ori_Stone_50_Box','Rough Oridecon 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 756,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13989,'Acidbomb_10_Box','Acid Bomb 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7135,10; getitem 7136,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13990,'Job_Manual50_Box','JOB Battle Manual Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14592,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13991,'Tiger_Mask_Box','Tiger Mask Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5098,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13992,'Cat_Hat_Box','Pussy Cat Bell Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5051,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13993,'Alice_Doll_Box','Alice Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5137,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13994,'Speed_Up_Potion_Box5','Speed Potion 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12016,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13995,'Speed_Up_Potion_Box10','Speed Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12016,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13996,'Big_Bun_Box100','Big Bun 100 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14522,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13997,'Big_Bun_Box500','Big Bun 500 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14522,500;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13998,'Giant_Fly_Wing_Box500','Giant Fly Wing 500 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,500;',NULL,NULL); -REPLACE INTO `item_db` VALUES (13999,'Pill__Box100','Pill 100 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14523,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14000,'Pill__Box500','Pill 500 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14523,500;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14001,'Basic_Siege_Supply_Box','Recruit Siege Supply Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11503,25; getitem 11504,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14002,'Adv_Siege_Supply_Box','Veteran Siege Supply Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11503,50; getitem 11504,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14003,'Elite_Siege_Supply_Box','Elite Siege Supply Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11503,100; getitem 11504,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14004,'Poison_Bottle_10_Box','Poison Bottle 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 678,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14005,'Poison_Bottle_5_Box','Poison Bottle 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 678,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14006,'F_Drooping_W_Kitty_Box','Evolved Drooping Cat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5219,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14007,'F_Rabbit_Ear_Hat_Box','Evolved Rabbits Headband Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5218,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14008,'F_L_Orc_Hero_Helm_Box','Evolved Helmet Of Orc Hero Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5224,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14009,'F_Love_Angel_Box','Love Angel Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12287,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14010,'F_Squirrel_Box','Squillroll Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12288,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14011,'F_Gogo_Box','Gogo Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12289,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14012,'F_Love_Angel_Box_1m','Love Angel Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13915,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14013,'F_Squirrel_Box_1m','Squillroll Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13916,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14014,'F_Gogo_Box_1m','Gogo Magic Powder Box 30 Days',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13917,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14015,'F_Wasteland_Outlaw_Box','Western Outlaw Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13107,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14016,'F_Lever_Action_Rifle_Bo','Lever Action Rifle Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13170,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14017,'F_All_In_One_Ring_Box','All In One Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2741,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14018,'F_Spritual_Tunic_Box','Spiritual Tunic Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2384,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14019,'F_Recuperative_Box','Recuvative Armor Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2385,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14020,'F_Shelter_Resist_Box','Shell Of Resistance Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2132,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14021,'F_Sylphid_Manteau_Box','Silf Manteau Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2543,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14022,'F_Refresh_Shoes_Box','Refresh Shoes Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2439,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14023,'F_Toast_Box','Crunch Toast Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5107,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14024,'F_Robo_Eye_Box','Robo Eye Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5325,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14025,'F_Twin_Ribbon_Box','Maiden\'s Twin Ribbon Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5187,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (14026,'F_Diadem_Box','Diadem Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5313,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14027,'F_Fish_Head_Hat_Box','Fish Head Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5380,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14028,'F_Santa_Poring_Hat_Box','SantaPoring Cap Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5381,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14029,'F_Bell_Ribbon_Box','Bell Ribbon Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5382,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14030,'F_Mimic_Scroll_Box5','Mimic Summoning 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12276,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14031,'F_Disguise_Scroll_Box5','Disguise Summoning 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12277,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14032,'F_Alice_Scroll_Box5','Alice Summoning 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12278,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14033,'F_Mimic_Scroll_Box10','Mimic Summoning 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12276,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14034,'F_Disguise_Scroll_Box10','Disguise Summoning 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12277,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14035,'F_Alice_Scroll_Box10','Alice Summoning 10 Box)',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12278,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14036,'F_New_Style_Coupon_Box','New Style Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7622,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14037,'F_Repair_Scroll_Box','Repair Weapon Scroll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14521,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14038,'F_Repair_Scroll_Box10','Repair Weapon Scroll 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14521,10;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (14039,'F_Hockey_Mask_Box','Hockey Mask Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5314,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (14040,'F_Observer_Box','Observer Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5315,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14041,'F_WOB_Rune_Box5','Yellow Butterfly Wing 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14582,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14042,'F_WOB_Rune_Box10','Yellow Butterfly Wing Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14582,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14043,'F_WOB_Schwaltz_Box5','Green Butterfly Wing 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14583,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14044,'F_WOB_Schwaltz_Box10','Green Butterfly Wing Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14583,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14045,'F_WOB_Rachel_Box5','Red Butterfly Wing 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14584,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14046,'F_WOB_Rachel_Box10','Red Butterfly Wing Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14584,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14047,'F_WOB_Local_Box5','Blue Butterfly Wing 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14585,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14048,'F_WOB_Local_Box10','Blue Butterfly Wing Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14585,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14049,'F_Spark_Candy_Box5','Candy 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 529,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14050,'F_Spark_Candy_Box10','Candy 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 529,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14051,'F_Dun_Tel_Scroll2_Box5','Dungeon Teleport Scroll II 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14581,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14052,'F_Dun_Tel_Scroll2_Box10','Dungeon Teleport Scroll II 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14581,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14053,'F_Little_Angel_Doll_Box','Little Angel Doll Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5324,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14054,'F_Triple_Poring_Hat_Box','Poring 3 Hats Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5255,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14055,'F_Nagan_Box','Refined Nagan Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13407,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14056,'F_Skewer_Box','Refined Brocca Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1424,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14057,'F_Survival_Rod_Box','Refined Survivor\'s Rod Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1628,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14058,'F_Quadrille_Box','Refined Quadrille Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1537,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14059,'F_Great_Axe_Box','Refined Great Axe Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1378,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14060,'F_Bloody_Roar_Box','Refined Bloody Roar Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1273,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14061,'F_Hardback_Box','Refined Hardcover Book Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1567,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14062,'F_Fire_Brand_Box','Refined Fireblend Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13408,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14063,'F_Immaterial_Sword_Box','Refined Immaterial Sword Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13409,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14064,'F_Unholy_Touch_Box','Refined Unholy Touch Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1274,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14065,'F_Clack_Of_Servival_Box','Refined Survivor\'s Manteau Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2535,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14066,'F_Masquerade_Box','Refined Masquerade Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5326,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14067,'F_Orc_Hero_Helm_Box','Refined Helmet of Orc Hero Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5327,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14068,'F_Ear_Of_Devil_Wing_Box','Refined Wing of Diablo Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5328,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14069,'F_Dark_Blindfold_Box','Refined Dark Blinder Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5329,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14070,'F_K_Drooping_Kitty_Box','Refined Drooping Cat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5330,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14071,'F_Corsair_Box','Refined Corsair Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5331,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14072,'F_Bloody_Iron_Ball_Box','Refined Bloodied Shackle Ball Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2710,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14073,'F_Spiritual_Ring_Box','Refined Spiritual Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2711,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14074,'F_G_O_I_Box5','Wine Glass of Illusion 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14538,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14075,'F_G_O_I_Box10','Glass Of Illusion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14538,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14076,'F_Shadow_Armor_S_Box5','Scroll of Shadow Armor 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14077,'F_Shadow_Armor_S_Box10','Scroll of Shadow Armor 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14078,'F_Shadow_Armor_S_Box30','Scroll of Shadow Armor 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14079,'F_Holy_Armor_S_Box5','Scroll of Holy Armor 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14080,'F_Holy_Armor_S_Box10','Scroll of Holy Armor 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14081,'F_Holy_Armor_S_Box30','Scroll of Holy Armor 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14082,'FS_Def_Potion_Box10','Small Defense Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14083,'FS_Def_Potion_Box30','Small Physical Defense Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14084,'FS_Def_Potion_Box50','Small Physical Defense Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14085,'FB_Def_Potion_Box10','Big Defense Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14086,'FB_Def_Potion_Box30','Large Physical Defense Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14087,'FB_Def_Potion_Box50','Large Physical Defense Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14088,'FS_Mdef_Potion_Box10','Small Magic Defense Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14089,'FS_Mdef_Potion_Box30','Small Magical Defense Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14090,'FS_Mdef_Potion_Box50','Small Magical Defense Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14091,'FB_Mdef_Potion_Box10','Big Magic Defense Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14092,'FB_Mdef_Potion_Box30','Large Magical Defense Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14093,'FB_Mdef_Potion_Box50','Large Magical Defense Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14094,'F_Flying_Angel_Box','Flying Angel Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5210,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14095,'F_Cat_Hat_Box','Neko Mimi Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5099,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14096,'F_M_F_H_Box','Moonlight Flower Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5214,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14097,'F_Chick_Hat_Box','Baby Chick Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5283,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14098,'F_Pecopeco_Hairband_Box','Peco Peco Hairband Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5286,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14099,'F_Red_Glasses_Box','Red Glasses Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5288,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14100,'F_Whisper_Mask_Box','Whisper Mask Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5294,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14101,'F_Ramen_Hat_Box','Ramen Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5293,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14102,'F_Dun_Tele_Scroll1_Box','Dungeon Teleport Scroll 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14527,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14103,'F_Max_Weight_Up_Box','Gym Membership Card Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7776,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14104,'F_S_Life_Potion_Box','Small Life Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14105,'F_S_Life_Potion_Box30','Small Life Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14106,'F_S_Life_Potion_Box50','Small Life Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14107,'F_M_Life_Potion_Box','Medium Life Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14108,'F_M_Life_Potion_Box30','Large Life Potion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14109,'F_M_Life_Potion_Box50','Large Life Potion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14110,'F_Abrasive_Box5','Abrasive 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14536,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14111,'F_Abrasive_Box10','Abrasive 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14536,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14112,'F_Regeneration_Box5','Regeneration Potion 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14537,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14113,'F_Regeneration_Box10','Regeneration Potion 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14537,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14114,'F_Dun_Tele_Scroll_Box10','Dungeon Teleport Scroll 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14527,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14115,'F_Infiltrator_Box','Refined Infiltrator Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1267,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14116,'F_Muramasa_Box','Refined Muramasa Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1173,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14117,'F_Excalibur_Box','Refined Excalibur Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13401,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14118,'F_Combat_Knife_Box','Combat Knife Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13021,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14119,'F_Counter_Dagger_Box','Counter Dagger Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13022,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14120,'F_Kaiser_Knuckle_Box','Refined Kaiser Knuckle Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1817,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14121,'F_Mighty_Staff_Box','Refined Mighty Staff Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1623,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14122,'F_Right_Epsilon_Box','Light Epsilon Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1372,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14123,'F_Balistar_Box','Refined Ballista Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1728,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14124,'F_Diary_Of_Great_Sage','Sage\'s Diary Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1563,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14125,'F_Asura_Box','Asura Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13023,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14126,'F_Apple_Of_Archer_Box','Apple of Archer Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5265,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14127,'F_Bunny_Band_Box','Bunny Band Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5266,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14128,'F_Sahkkat_Box','Refined Sakkat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5267,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14129,'F_Lord_Circlet_Box','Refined Grand Circlet Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5268,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14130,'F_Elven_Ears_Box','Elven Ears Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2686,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14131,'F_Steel_Flower_Box','Steel Flower Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2687,1209600;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14132,'F_Critical_Ring_Box','Critical Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2688,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14133,'F_Earring_Box','Earring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2689,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14134,'F_Ring_Box','Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2690,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14135,'F_Necklace_Box','Necklace Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2691,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14136,'F_Glove_Box','Glove Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2692,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14137,'F_Brooch_Box','Brooch Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2693,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14138,'F_Rosary_Box','Rosary Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2694,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14139,'F_Safety_Ring_Box','Safety Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2695,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14140,'F_Vesper_Core_Box01','Refined Vesper Core 01 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2696,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14141,'F_Vesper_Core_Box02','Refined Vesper Core 02 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2697,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14142,'F_Vesper_Core_Box03','Refined Vesper Core 03 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2698,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14143,'F_Vesper_Core_Box04','Refined Vesper Core 04 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2699,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14144,'F_Vigorgra_Package1','Vigorgra Box1',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14145,'F_Vigorgra_Package2','Vigorgra Box2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12255,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14146,'F_Vigorgra_Package3','Vigorgra Box3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12253,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14147,'F_Vigorgra_Package4','Vigorgra Box4',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12255,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14148,'F_Vigorgra_Package5','Vigorgra Box5',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12250,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14149,'F_Vigorgra_Package6','Vigorgra Box6',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 12215,15; getitem 12217,20; getitem 12211,1; getitem 7621,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14150,'F_Vigorgra_Package7','Vigorgra Box7',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14151,'F_Vigorgra_Package8','Vigorgra Box8',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14152,'F_Vigorgra_Package9','Start your Journey Pack',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12253,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14153,'F_Vigorgra_Package10','Siege Mode Pack',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14154,'F_Vigorgra_Package11','1 Hour Survival Pack',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12250,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14155,'F_Vigorgra_Package12','Weekend Hunting Pack',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12217,40; getitem 12211,2; getitem 7621,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14156,'F_Battle_Manual_Box','Battle Manual Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14157,'F_Insurance_Package','Insurance Package',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14158,'F_Bubble_Gum_Box','Bubble Gum Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14159,'F_Str_Dish_Box','Steamed Tongue Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14160,'F_Agi_Dish_Box','Steamed Scorpion Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14161,'F_Int_Dish_Box','Dragon Breath Cocktail Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14162,'F_Dex_Dish_Box','Hwergelmir\'s Tonic Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14163,'F_Luk_Dish_Box','Nine Tail Dish Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14164,'F_Vit_Dish_Box','Stew Of Immortality Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14165,'F_Kafra_Card_Box','Kafra Card Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14166,'F_Giant_Fly_Wing_Box','Giant Fly Wing Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14167,'F_Neuralizer_Box','Neuralizer Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12213,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14168,'F_Convex_Mirror_Box','Convex Mirror Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14169,'F_Blessing_10_Scroll_Bo','Blessing 10 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14170,'F_Inc_Agi_10_Scroll_Box','Increase AGI 10 scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14171,'F_Aspersio_5_Scroll_Box','Aspersio 5 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14172,'F_Assumptio_5_Scroll_Bo','Assumptio 5 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14173,'F_Wind_Walk_10_Scroll_B','Wind Walk 10 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14174,'F_Adrenaline_Scroll_Box','Adrenaline 5 Scroll Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14175,'F_Megaphone_Box','Megaphone 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14176,'F_Enriched_Elunium_Box','Enriched Elunium Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7619,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14177,'F_Enriched_Oridecon_Box','Enriched Oridecon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7620,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14178,'F_Token_Of_Siegfried_Bo','Token of Siegfried Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14179,'F_Giant_Fly_Wing_Box50','Giant Fly Wing 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14180,'F_Giant_Fly_Wing_Box100','Giant Fly Wing 100 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14181,'F_Dex_Dish_Box30','Hwergelmir\'s Tonic 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14182,'F_Dex_Dish_Box50','Hwergelmir\'s Tonic 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14183,'F_Luk_Dish_Box30','Nine Tail Dish 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14184,'F_Luk_Dish_Box50','Nine Tail Dish 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14185,'F_Inc_Agi_10_Box30','Increase Agility Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14186,'F_Inc_Agi_10_Box50','Increase Agility Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14187,'F_Vit_Dish_Box30','Stew of Immortality 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14188,'F_Vit_Dish_Box50','Stew of Immortality 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14189,'F_Insurance_Package30','Life Insurrance 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14190,'F_Insurance_Package50','Life Insurrance 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14191,'F_Convex_Mirror_Box5','Convex Mirror 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14192,'F_Convex_Mirror_Box30','Convex Mirror 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14193,'F_Blessing10_Box30','Blessing Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14194,'F_Blessing10_Box50','Lv10 Blessing Scroll Box 50',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14195,'F_Adrenaline10_Box30','Adrenaline Rush Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14196,'F_Adrenaline10_Box50','Adrenaline Rush Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14197,'F_Assumptio_5_Box30','Assumptio Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14198,'F_Assumptio_5_Box50','Lv5 Assumptio Scroll Box 50',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14199,'F_Aspersio_5_Box30','Aspersio Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14200,'F_Aspersio_5_Box50','Aspersio Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14201,'F_Agi_Dish_Box30','Steamed Scorpion 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14202,'F_Agi_Dish_Box50','Steamed Scorpion 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14203,'F_Wind_Walk10_Box30','Wind Walk Scroll 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14204,'F_Wind_Walk10_Box50','Wind Walk Scroll 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14205,'F_Int_Dish_Box30','Dragon Breath Cocktail 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,40;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14206,'F_Int_Dish_Box50','Dragon Breath Cocktail 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14207,'F_Battle_Manual_Box1','Field Manual Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14208,'F_Battle_Manual_Box5','Battle Manual 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14209,'F_Siegfried_Box5','Token of Siegfried 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14210,'F_Siegfried_Box20','Token of Siegfried 20 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14211,'F_Kafra_Card_Box30','Kafra Card 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14212,'F_Kafra_Card_Box50','Kafra Card 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14213,'F_Str_Dish_Box30','Steamed Tongue 30 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14214,'F_Str_Dish_Box50','Steamed Tongue 50 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14215,'F_Bubble_Gum_Box1','Bubble Gum Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14216,'F_Bubble_Gum_Box5','Bubble Gum 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14217,'F_Megaphone_Box1','Megaphone Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14218,'F_Megaphone_Box5','Megaphone 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14219,'F_Enriched_Elunium_Box5','Enriched Elunium 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7619,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14220,'FEnriched_Oridecon_Box5','Enriched Oridecon 5 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7620,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14221,'MP_Scroll_Box','Mystical Amplification Scroll 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14222,'MP_Scroll_Box30','Mystical Amplification Scroll 30 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14223,'MP_Scroll_Box50','Mystical Amplification Scroll 50 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14224,'Quagmire_Scroll_Box','Quagmire Scroll 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14225,'Quagmire_Scroll_Box30','Quagmire Scroll 30 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14226,'Quagmire_Scroll_Box50','Quagmire Scroll 50 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14227,'Healing_Staff_Box','Healing Staff Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1638,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (14228,'Praxinus_Box','Praccsinos Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2752,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13975,'Picture_Diary_Box','Diary Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12304,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13976,'Mini_Heart_Box','Mini Heart Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12305,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13977,'Newcomer_Box','Freshman Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12306,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13978,'Kid_Box','Kid Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12307,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13979,'Magic_Castle_Box','Magic Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12308,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13980,'Bulging_Head_Box','JJangu Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12309,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13981,'Picture_Diary_Box_1m','Diary Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12304,2592000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13982,'Mini_Heart_Box_1m','Mini Heart Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12305,2592000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13983,'Newcomer_Box_1m','Freshman Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12306,2592000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13984,'Kid_Box_1m','Kid Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12307,2592000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13985,'Magic_Castle_Box_1m','Magic Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12308,2592000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13986,'Bulging_Head_Box_1m','JJangu Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12309,2592000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13987,'Ori_Stone_5_Box','Rough Oridecon 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 756,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13988,'Ori_Stone_50_Box','Rough Oridecon 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 756,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13989,'Acidbomb_10_Box','Acid Bomb 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7135,10; getitem 7136,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13990,'Job_Manual50_Box','JOB Battle Manual Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14592,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13991,'Tiger_Mask_Box','Tiger Mask Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5098,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13992,'Cat_Hat_Box','Pussy Cat Bell Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5099,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13993,'Alice_Doll_Box','Alice Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5137,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13994,'Speed_Up_Potion_Box5','Speed Potion 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12016,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13995,'Speed_Up_Potion_Box10','Speed Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12016,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13996,'Big_Bun_Box100','Big Bun 100 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14522,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13997,'Big_Bun_Box500','Big Bun 500 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14522,500;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13998,'Giant_Flywing_Box500','Giant Fly Wing 500 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,500;',NULL,NULL); +REPLACE INTO `item_db` VALUES (13999,'Pill_Box100','Pill 100 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14523,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14000,'Pill_Box500','Pill 500 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14523,500;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14001,'Basic_Siege_Supply_Box','Recruit Siege Supply Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11503,25; getitem 11504,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14002,'Adv_Siege_Supply_Box','Veteran Siege Supply Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11503,50; getitem 11504,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14003,'Elite_Siege_Supply_Box','Elite Siege Supply Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 11503,100; getitem 11504,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14004,'Poison_Bottle_10_Box','Poison Bottle 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 678,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14005,'Poison_Bottle_5_Box','Poison Bottle 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 678,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14006,'F_Drooping_W_Kitty_Box','Evolved Drooping Cat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5372,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14007,'F_Rabbit_Ear_Hat_Box','Evolved Rabbits Headband Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5378,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14008,'F_L_Orc_Hero_Helm_Box','Evolved Helmet Of Orc Hero Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5375,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14009,'F_Love_Angel_Box','Love Angel Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12287,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14010,'F_Squirrel_Box','Squillroll Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12288,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14011,'F_Gogo_Box','Gogo Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12289,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14012,'F_Love_Angel_Box_1m','Love Angel Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13915,2592000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14013,'F_Squirrel_Box_1m','Squillroll Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13916,2592000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14014,'F_Gogo_Box_1m','Gogo Magic Powder Box 30 Days',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13917,2592000;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14015,'F_Wasteland_Outlaw_Box','Western Outlaw Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13107,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14016,'F_Lever_Action_Rifle_Bo','Lever Action Rifle Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13170,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14017,'F_All_In_One_Ring_Box','All In One Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2741,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14018,'F_Spritual_Tunic_Box','Spiritual Tunic Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2384,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14019,'F_Recuperative_Box','Recuvative Armor Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2385,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14020,'F_Shelter_Resist_Box','Shell Of Resistance Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2132,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14021,'F_Sylphid_Manteau_Box','Silf Manteau Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2543,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14022,'F_Refresh_Shoes_Box','Refresh Shoes Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2439,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14023,'F_Toast_Box','Crunch Toast Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5391,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14024,'F_Robo_Eye_Box','Robo Eye Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5325,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14025,'F_Twin_Ribbon_Box','Maiden\'s Twin Ribbon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5187,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (14026,'F_Diadem_Box','Diadem Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5313,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14027,'F_Fish_Head_Hat_Box','Fish Head Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5380,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14028,'F_Santa_Poring_Hat_Box','SantaPoring Cap Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5381,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14029,'F_Bell_Ribbon_Box','Bell Ribbon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5382,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14030,'F_Mimic_Scroll_Box5','Mimic Summoning 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12276,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14031,'F_Disguise_Scroll_Box5','Disguise Summoning 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12277,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14032,'F_Alice_Scroll_Box5','Alice Summoning 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12278,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14033,'F_Mimic_Scroll_Box10','Mimic Summoning 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12276,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14034,'F_Disguise_Scroll_Box10','Disguise Summoning 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12277,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14035,'F_Alice_Scroll_Box10','Alice Summoning 10 Box)',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12278,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14036,'F_New_Style_Coupon_Box','New Style Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7622,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14037,'F_Repair_Scroll_Box','Repair Weapon Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14521,5; getitem 1002,5; getitem 998,5; getitem 756,5; getitem 999,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14038,'F_Repair_Scroll_Box10','Repair Weapon Scroll 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14521,10; getitem 1002,10; getitem 998,10; getitem 756,10; getitem 999,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (14039,'F_Hockey_Mask_Box','Hockey Mask Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5314,604800;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (14040,'F_Observer_Box','Observer Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5315,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14041,'F_WOB_Rune_Box5','Yellow Butterfly Wing 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14582,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14042,'F_WOB_Rune_Box10','Yellow Butterfly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14582,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14043,'F_WOB_Schwaltz_Box5','Green Butterfly Wing 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14583,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14044,'F_WOB_Schwaltz_Box10','Green Butterfly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14583,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14045,'F_WOB_Rachel_Box5','Red Butterfly Wing 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14584,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14046,'F_WOB_Rachel_Box10','Red Butterfly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14584,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14047,'F_WOB_Local_Box5','Blue Butterfly Wing 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14585,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14048,'F_WOB_Local_Box10','Blue Butterfly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14585,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14049,'F_Spark_Candy_Box5','Candy 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14586,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14050,'F_Spark_Candy_Box10','Candy 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14586,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14051,'F_Dun_Tel_Scroll2_Box5','Dungeon Teleport Scroll II 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14581,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14052,'F_Dun_Tel_Scroll2_Box10','Dungeon Teleport Scroll II 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14581,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14053,'F_Little_Angel_Doll_Box','Little Angel Doll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5324,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14054,'F_Triple_Poring_Hat_Box','Poring 3 Hats Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5255,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14055,'F_Nagan_Box','Refined Nagan Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13407,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14056,'F_Skewer_Box','Refined Brocca Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1424,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14057,'F_Survival_Rod_Box','Refined Survivor\'s Rod Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1628,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14058,'F_Quadrille_Box','Refined Quadrille Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1537,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14059,'F_Great_Axe_Box','Refined Great Axe Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1378,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14060,'F_Bloody_Roar_Box','Refined Bloody Roar Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1273,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14061,'F_Hardback_Box','Refined Hardcover Book Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1567,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14062,'F_Fire_Brand_Box','Refined Fireblend Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13408,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14063,'F_Immaterial_Sword_Box','Refined Immaterial Sword Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13409,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14064,'F_Unholy_Touch_Box','Refined Unholy Touch Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1274,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14065,'F_Clack_Of_Servival_Box','Refined Survivor\'s Manteau Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2535,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14066,'F_Masquerade_Box','Refined Masquerade Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5326,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14067,'F_Orc_Hero_Helm_Box','Refined Helmet of Orc Hero Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5327,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14068,'F_Ear_Of_Devil_Wing_Box','Refined Wing of Diablo Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5328,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14069,'F_Dark_Blindfold_Box','Refined Dark Blinder Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5329,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14070,'F_K_Drooping_Kitty_Box','Refined Drooping Cat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5330,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14071,'F_Corsair_Box','Refined Corsair Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5331,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14072,'F_Bloody_Iron_Ball_Box','Refined Bloodied Shackle Ball Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2710,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14073,'F_Spiritual_Ring_Box','Refined Spiritual Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2711,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14074,'F_G_O_I_Box5','Wine Glass of Illusion 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14538,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14075,'F_G_O_I_Box10','Glass Of Illusion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14538,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14076,'F_Shadow_Armor_S_Box5','Scroll of Shadow Armor 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14077,'F_Shadow_Armor_S_Box10','Scroll of Shadow Armor 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14078,'F_Shadow_Armor_S_Box30','Scroll of Shadow Armor 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14539,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14079,'F_Holy_Armor_S_Box5','Scroll of Holy Armor 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14080,'F_Holy_Armor_S_Box10','Scroll of Holy Armor 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14081,'F_Holy_Armor_S_Box30','Scroll of Holy Armor 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14540,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14082,'FS_Def_Potion_Box10','Small Defense Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14083,'FS_Def_Potion_Box30','Small Physical Defense Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14084,'FS_Def_Potion_Box50','Small Physical Defense Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14541,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14085,'FB_Def_Potion_Box10','Big Defense Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14086,'FB_Def_Potion_Box30','Large Physical Defense Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14087,'FB_Def_Potion_Box50','Large Physical Defense Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14542,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14088,'FS_Mdef_Potion_Box10','Small Magic Defense Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14089,'FS_Mdef_Potion_Box30','Small Magical Defense Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14090,'FS_Mdef_Potion_Box50','Small Magical Defense Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14543,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14091,'FB_Mdef_Potion_Box10','Big Magic Defense Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14092,'FB_Mdef_Potion_Box30','Large Magical Defense Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14093,'FB_Mdef_Potion_Box50','Large Magical Defense Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14544,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14094,'F_Flying_Angel_Box','Flying Angel Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5210,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14095,'F_Cat_Hat_Box','Neko Mimi Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5099,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14096,'F_M_F_H_Box','Moonlight Flower Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5214,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14097,'F_Chick_Hat_Box','Baby Chick Hat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5283,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14098,'F_Pecopeco_Hairband_Box','Peco Peco Hairband Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5286,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14099,'F_Red_Glasses_Box','Red Glasses Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5288,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14100,'F_Whisper_Mask_Box','Whisper Mask Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5294,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14101,'F_Ramen_Hat_Box','Ramen Hat Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5293,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14102,'F_Dun_Tele_Scroll1_Box','Dungeon Teleport Scroll 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14527,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14103,'F_Max_Weight_Up_Box','Gym Membership Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7776,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14104,'F_S_Life_Potion_Box','Small Life Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14105,'F_S_Life_Potion_Box30','Small Life Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14106,'F_S_Life_Potion_Box50','Small Life Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14534,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14107,'F_M_Life_Potion_Box','Medium Life Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14108,'F_M_Life_Potion_Box30','Large Life Potion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14109,'F_M_Life_Potion_Box50','Large Life Potion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14535,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14110,'F_Abrasive_Box5','Abrasive 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14536,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14111,'F_Abrasive_Box10','Abrasive 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14536,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14112,'F_Regeneration_Box5','Regeneration Potion 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14537,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14113,'F_Regeneration_Box10','Regeneration Potion 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14537,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14114,'F_Dun_Tele_Scroll_Box10','Dungeon Teleport Scroll 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14527,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14115,'F_Infiltrator_Box','Refined Infiltrator Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1267,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14116,'F_Muramasa_Box','Refined Muramasa Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1173,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14117,'F_Excalibur_Box','Refined Excalibur Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13401,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14118,'F_Combat_Knife_Box','Combat Knife Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13021,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14119,'F_Counter_Dagger_Box','Counter Dagger Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13022,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14120,'F_Kaiser_Knuckle_Box','Refined Kaiser Knuckle Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1817,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14121,'F_Mighty_Staff_Box','Refined Mighty Staff Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1623,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14122,'F_Right_Epsilon_Box','Light Epsilon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1372,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14123,'F_Balistar_Box','Refined Ballista Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1728,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14124,'F_Diary_Of_Great_Sage','Sage\'s Diary Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1563,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14125,'F_Asura_Box','Asura Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13023,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14126,'F_Apple_Of_Archer_Box','Apple of Archer Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5265,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14127,'F_Bunny_Band_Box','Bunny Band Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5266,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14128,'F_Sahkkat_Box','Refined Sakkat Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5267,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14129,'F_Lord_Circlet_Box','Refined Grand Circlet Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 5268,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14130,'F_Elven_Ears_Box','Elven Ears Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2686,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14131,'F_Steel_Flower_Box','Steel Flower Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2687,1209600;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14132,'F_Critical_Ring_Box','Critical Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2688,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14133,'F_Earring_Box','Earring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2689,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14134,'F_Ring_Box','Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2690,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14135,'F_Necklace_Box','Necklace Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2691,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14136,'F_Glove_Box','Glove Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2692,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14137,'F_Brooch_Box','Brooch Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2693,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14138,'F_Rosary_Box','Rosary Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2694,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14139,'F_Safety_Ring_Box','Safety Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2695,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14140,'F_Vesper_Core_Box01','Refined Vesper Core 01 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2696,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14141,'F_Vesper_Core_Box02','Refined Vesper Core 02 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2697,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14142,'F_Vesper_Core_Box03','Refined Vesper Core 03 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2698,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14143,'F_Vesper_Core_Box04','Refined Vesper Core 04 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2699,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14144,'F_Vigorgra_Package1','Vigorgra Box1',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14145,'F_Vigorgra_Package2','Vigorgra Box2',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12255,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14146,'F_Vigorgra_Package3','Vigorgra Box3',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12253,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14147,'F_Vigorgra_Package4','Vigorgra Box4',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12255,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14148,'F_Vigorgra_Package5','Vigorgra Box5',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,2; getitem 12250,2; getitem 12208,2; getitem 12215,15; getitem 12216,15; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14149,'F_Vigorgra_Package6','Vigorgra Box6',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,2; getitem 12251,2; getitem 12208,2; getitem 12215,15; getitem 12217,20; getitem 12211,1; getitem 7621,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14150,'F_Vigorgra_Package7','Vigorgra Box7',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14151,'F_Vigorgra_Package8','Vigorgra Box8',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14152,'F_Vigorgra_Package9','Start your Journey Pack',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12253,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14153,'F_Vigorgra_Package10','Siege Mode Pack',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12255,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14154,'F_Vigorgra_Package11','1 Hour Survival Pack',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12252,4; getitem 12250,4; getitem 12208,4; getitem 12215,30; getitem 12216,30; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14155,'F_Vigorgra_Package12','Weekend Hunting Pack',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12250,4; getitem 12251,4; getitem 12208,4; getitem 12215,30; getitem 12217,40; getitem 12211,2; getitem 7621,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14156,'F_Battle_Manual_Box','Battle Manual Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14157,'F_Insurance_Package','Insurance Package',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14158,'F_Bubble_Gum_Box','Bubble Gum Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14159,'F_Str_Dish_Box','Steamed Tongue Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14160,'F_Agi_Dish_Box','Steamed Scorpion Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14161,'F_Int_Dish_Box','Dragon Breath Cocktail Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14162,'F_Dex_Dish_Box','Hwergelmir\'s Tonic Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14163,'F_Luk_Dish_Box','Nine Tail Dish Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14164,'F_Vit_Dish_Box','Stew Of Immortality Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14165,'F_Kafra_Card_Box','Kafra Card Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14166,'F_Giant_Fly_Wing_Box','Giant Fly Wing Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14167,'F_Neuralizer_Box','Neuralizer Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12213,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14168,'F_Convex_Mirror_Box','Convex Mirror Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14169,'F_Blessing_10_Scroll_Box','Blessing 10 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14170,'F_Inc_Agi_10_Scroll_Box','Increase AGI 10 scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14171,'F_Aspersio_5_Scroll_Box','Aspersio 5 Scroll Box',18,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,10; getitem 523,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14172,'F_Assumptio_5_Scroll_Box','Assumptio 5 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14173,'F_Wind_Walk_10_Scroll_Box','Wind Walk 10 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14174,'F_Adrenaline_Scroll_Box','Adrenaline 5 Scroll Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14175,'F_Megaphone_Box','Megaphone 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14176,'F_Enriched_Elunium_Box','Enriched Elunium Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7619,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14177,'F_Enriched_Oridecon_Box','Enriched Oridecon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7620,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14178,'F_Token_Of_Siegfried_Box','Token of Siegfried Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14179,'F_Giant_Fly_Wing_Box50','Giant Fly Wing 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14180,'F_Giant_Fly_Wing_Box100','Giant Fly Wing 100 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12212,100;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14181,'F_Dex_Dish_Box30','Hwergelmir\'s Tonic 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14182,'F_Dex_Dish_Box50','Hwergelmir\'s Tonic 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14183,'F_Luk_Dish_Box30','Nine Tail Dish 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14184,'F_Luk_Dish_Box50','Nine Tail Dish 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14185,'F_Inc_Agi_10_Box30','Increase Agility Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14186,'F_Inc_Agi_10_Box50','Increase Agility Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12216,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14187,'F_Vit_Dish_Box30','Stew of Immortality 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14188,'F_Vit_Dish_Box50','Stew of Immortality 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14189,'F_Insurance_Package30','Life Insurrance 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14190,'F_Insurance_Package50','Life Insurrance 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12209,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14191,'F_Convex_Mirror_Box5','Convex Mirror 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14192,'F_Convex_Mirror_Box30','Convex Mirror 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12214,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14193,'F_Blessing10_Box30','Blessing Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14194,'F_Blessing10_Box50','Lv10 Blessing Scroll Box 50',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12215,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14195,'F_Adrenaline10_Box30','Adrenaline Rush Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14196,'F_Adrenaline10_Box50','Adrenaline Rush Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12220,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14197,'F_Assumptio_5_Box30','Assumptio Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14198,'F_Assumptio_5_Box50','Lv5 Assumptio Scroll Box 50',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12218,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14199,'F_Aspersio_5_Box30','Aspersio Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,30; getitem 523,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14200,'F_Aspersio_5_Box50','Aspersio Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12217,50; getitem 523,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14201,'F_Agi_Dish_Box30','Steamed Scorpion 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14202,'F_Agi_Dish_Box50','Steamed Scorpion 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14203,'F_Wind_Walk10_Box30','Wind Walk Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14204,'F_Wind_Walk10_Box50','Wind Walk Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12219,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14205,'F_Int_Dish_Box30','Dragon Breath Cocktail 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14206,'F_Int_Dish_Box50','Dragon Breath Cocktail 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14207,'F_Battle_Manual_Box1','Field Manual Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14208,'F_Battle_Manual_Box5','Battle Manual 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14209,'F_Siegfried_Box5','Token of Siegfried 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14210,'F_Siegfried_Box20','Token of Siegfried 20 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7621,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14211,'F_Kafra_Card_Box30','Kafra Card 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14212,'F_Kafra_Card_Box50','Kafra Card 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12211,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14213,'F_Str_Dish_Box30','Steamed Tongue 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14214,'F_Str_Dish_Box50','Steamed Tongue 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14215,'F_Bubble_Gum_Box1','Bubble Gum Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14216,'F_Bubble_Gum_Box5','Bubble Gum 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12210,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14217,'F_Megaphone_Box1','Megaphone Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14218,'F_Megaphone_Box5','Megaphone 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12221,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14219,'F_Enriched_Elunium_Box5','Enriched Elunium 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7619,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14220,'FEnriched_Oridecon_Box5','Enriched Oridecon 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 7620,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14221,'MP_Scroll_Box','Mystical Amplification Scroll 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14222,'MP_Scroll_Box30','Mystical Amplification Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14223,'MP_Scroll_Box50','Mystical Amplification Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14224,'Quagmire_Scroll_Box','Quagmire Scroll 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14225,'Quagmire_Scroll_Box30','Quagmire Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14226,'Quagmire_Scroll_Box50','Quagmire Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14227,'Healing_Staff_Box','Healing Staff Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1638,604800;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (14228,'Praxinus_Box','Praccsinos Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 2752,604800;',NULL,NULL); # REPLACE INTO `item_db` VALUES (14229,'Cherry_Blossom_Scroll','Cherry Blossom Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # REPLACE INTO `item_db` VALUES (14230,'Note_Headphones_Box','Note Headphones Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 5151,1;',NULL,NULL); # REPLACE INTO `item_db` VALUES (14231,'Novice_Breastplate_Boxes','Novice Breastplate Boxes',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14232,'Yggdrasilberry_Box_','Yggdrasil Berry 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 607,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14233,'Dead_Branch_Box_10','Dead Branch 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 604,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14234,'Dead_Branch_Box_25','Dead Branch 25 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 604,25;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14235,'Field_Manual_Box_2','Field Manual 2 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14236,'Steamed_Tongue_Box_20','Steamed Tongue 20 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14237,'Steamed_Desert_Scorpions_Box_20','Steamed Desert Scorpions Box(20)',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14238,'Stew_Of_Immortality_Box_20','Immortal Stew 20 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14239,'Dragon_Breath_Cocktail_Box_20','Dragon Breath Cocktail 20 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14240,'Hwergelmir\'s_Tonic_Box_20','Hwergelmir\'s Tonic 20 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14241,'Nine_Tail_Dish_Box_20','Nine Tail Dish 20 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,20;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14242,'Beholder_Ring_Box','Beholder Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2753,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14243,'Hallow_Ring_Box','Hallow Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2754,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14244,'Clamorous_Ring_Box','Clamorous Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2755,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14245,'Chemical_Ring_Box','Chemical Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2756,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14246,'Insecticide_Ring_Box','Insecticide Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2757,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14247,'Fisher_Ring_Box','Fisher Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2758,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14248,'Decussate_Ring_Box','Decussate Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2759,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14249,'Bloody_Ring_Box','Bloody Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2760,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14250,'Satanic_Ring_Box','Satanic Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2761,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14251,'Dragoon_Ring_Box','Dragon Ring Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2762,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14252,'Beholder_Ring_Box2','Beholder Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2753,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14253,'Hallow_Ring_Box2','Hallow Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2754,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14254,'Clamorous_Ring_Box2','Clamorous Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2755,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14255,'Chemical_Ring_Box2','Chemical Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2756,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14256,'Insecticide_Ring_Box2','Insecticide Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2757,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14257,'Fisher_Ring_Box2','Fisher Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2758,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14258,'Decussate_Ring_Box2','Decussate Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2759,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14259,'Bloody_Ring_Box2','Bloody Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2760,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14260,'Satanic_Ring_Box2','Satanic Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2761,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14261,'Dragoon_Ring_Box2','Dragon Ring Box II',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2762,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14262,'Diary_Magic_Powder_Box','Diary Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12304,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14263,'Mini_Heart_Magic_Powder_Box','Mini Heart Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12305,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14264,'Freshman_Magic_Powder_Box','Freshman Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12306,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14265,'Kid_Magic_Powder_Box','Kid Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12307,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14266,'Magic_Magic_Powder_Box','Magic Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12308,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14267,'JJangu_Magic_Powder_Box','JJangu Magic Powder Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12309,604800;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14268,'Diary_Magic_Powder_Box4','Diary Magic Powder Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14269,'Mini_Heart_Magic_Powder_Box4','Mini_Heart_Magic Powder Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14270,'Freshman_Magic_Powder_Box4','Freshman Magic Powder Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14271,'Kid_Magic_Powder_Box4','Kid Magic Powder Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14272,'Magic_Magic_Powder_Box4','Magic Magic Powder Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14273,'JJangu_Magic_Powder_Box4','JJangu Magic Powder Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (14274,'Amplification_10_Scroll_Box2','Mystical Amplification Scroll 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14275,'Amplification_30_Scroll_Box2','Mystical Amplification Scroll 30 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14276,'Amplification_50_Scroll_Box2','Mystical Amplification Scroll 50 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14277,'Quagmire_10_Scroll_Box2','Quagmire Scroll 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14278,'Quagmire_30_Scroll_Box2','Quagmire Scroll 30 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,30;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14279,'Quagmire_50_Scroll_Box2','Quagmire Scroll 50 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,50;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14280,'Healing_Staff_Box2','Healing Staff Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1638,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (14281,'Praccsinos_Box','Praccsinos_Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2752,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14282,'Emperium_Box','Emperium Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 714,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14283,'Marriage_Certificate_Box','Written Oath Of Marriage Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6026,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (14284,'Muffler_Box','Muffler Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2548,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (14285,'Balkiriah_Shield_Box','Balkiriah Shield Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2137,1;',NULL,NULL); -# REPLACE INTO `item_db` VALUES (14286,'Skull_Ring_Box','Skull Ring Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2763,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14287,'Baricade_Repair_Kit','Barricade Repair Kit',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1019,30; getitem 999,10; getitem 1011,10; getitem 984,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14288,'Guardian_Stone_Repair_Kit','Guardian Stone Repair Kit',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 984,1; getitem 985,1; getitem 7049,30; getitem 717,5; getitem 716,5; getitem 715,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14289,'Cloth_Dye_Coupon_Box','New Clothing Dye Coupon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6046,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14290,'Cloth_Dye_Coupon2_Box','Original Clothing Dye Coupon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6047,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14232,'Yggdrasilberry_Box_','Yggdrasil Berry 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 607,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14233,'Dead_Branch_Box_10','Dead Branch 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 604,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14234,'Dead_Branch_Box_25','Dead Branch 25 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 604,25;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14235,'Field_Manual_Box_2','Field Manual 2 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12208,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14236,'Steamed_Tongue_Box_20','Steamed Tongue 20 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12202,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14237,'Steamed_Desert_Scorpions_Box_20','Steamed Desert Scorpions Box(20)',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12203,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14238,'Stew_Of_Immortality_Box_20','Immortal Stew 20 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12207,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14239,'Dragon_Breath_Cocktail_Box_20','Dragon Breath Cocktail 20 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12204,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14240,'Hwergelmir\'s_Tonic_Box_20','Hwergelmir\'s Tonic 20 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12205,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14241,'Nine_Tail_Dish_Box_20','Nine Tail Dish 20 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12206,20;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14242,'Beholder_Ring_Box','Beholder Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2753,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14243,'Hallow_Ring_Box','Hallow Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2754,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14244,'Clamorous_Ring_Box','Clamorous Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2755,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14245,'Chemical_Ring_Box','Chemical Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2756,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14246,'Insecticide_Ring_Box','Insecticide Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2757,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14247,'Fisher_Ring_Box','Fisher Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2758,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14248,'Decussate_Ring_Box','Decussate Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2759,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14249,'Bloody_Ring_Box','Bloody Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2760,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14250,'Satanic_Ring_Box','Satanic Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2761,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14251,'Dragoon_Ring_Box','Dragon Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2762,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14252,'Beholder_Ring_Box2','Beholder Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2753,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14253,'Hallow_Ring_Box2','Hallow Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2754,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14254,'Clamorous_Ring_Box2','Clamorous Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2755,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14255,'Chemical_Ring_Box2','Chemical Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2756,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14256,'Insecticide_Ring_Box2','Insecticide Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2757,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14257,'Fisher_Ring_Box2','Fisher Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2758,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14258,'Decussate_Ring_Box2','Decussate Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2759,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14259,'Bloody_Ring_Box2','Bloody Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2760,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14260,'Satanic_Ring_Box2','Satanic Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2761,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14261,'Dragoon_Ring_Box2','Dragon Ring Box II',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2762,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14262,'Diary_Magic_Powder_Box','Diary Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12304,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14263,'Mini_Heart_Magic_Powder_Box','Mini Heart Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12305,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14264,'Freshman_Magic_Powder_Box','Freshman Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12306,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14265,'Kid_Magic_Powder_Box','Kid Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12307,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14266,'Magic_Magic_Powder_Box','Magic Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12308,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14267,'JJangu_Magic_Powder_Box','JJangu Magic Powder Box',18,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 12309,604800;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14268,'Diary_Magic_Powder_Box4','Diary Magic Powder Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14269,'Mini_Heart_Magic_Powder_Box4','Mini_Heart_Magic Powder Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14270,'Freshman_Magic_Powder_Box4','Freshman Magic Powder Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14271,'Kid_Magic_Powder_Box4','Kid Magic Powder Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14272,'Magic_Magic_Powder_Box4','Magic Magic Powder Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14273,'JJangu_Magic_Powder_Box4','JJangu Magic Powder Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14274,'Amplification_10_Scroll_Box2','Mystical Amplification Scroll 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14275,'Amplification_30_Scroll_Box2','Mystical Amplification Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14276,'Amplification_50_Scroll_Box2','Mystical Amplification Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14593,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14277,'Quagmire_10_Scroll_Box2','Quagmire Scroll 10 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14278,'Quagmire_30_Scroll_Box2','Quagmire Scroll 30 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,30;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14279,'Quagmire_50_Scroll_Box2','Quagmire Scroll 50 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 14594,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14280,'Healing_Staff_Box2','Healing Staff Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1638,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (14281,'Praccsinos_Box','Praccsinos_Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2752,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14282,'Emperium_Box','Emperium Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 714,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14283,'Marriage_Certificate_Box','Written Oath Of Marriage Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6026,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (14284,'Muffler_Box','Muffler Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2548,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (14285,'Balkiriah_Shield_Box','Balkiriah Shield Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2137,1;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (14286,'Skull_Ring_Box','Skull Ring Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2763,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14287,'Baricade_Repair_Kit','Barricade Repair Kit',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1019,30; getitem 999,10; getitem 1011,10; getitem 984,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14288,'Guardian_Stone_Repair_Kit','Guardian Stone Repair Kit',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 984,1; getitem 985,1; getitem 7049,30; getitem 717,5; getitem 716,5; getitem 715,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14289,'Clothing_Dye_Coupon_Box','New Clothing Dye Coupon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6046,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14290,'Clothing_Dye_Coupon2_Box','Original Clothing Dye Coupon Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6047,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (14291,'Cloth_Dye_Coupon3_Box','Clothing Dye Coupon Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6046,1;',NULL,NULL); REPLACE INTO `item_db` VALUES (14292,'Cloth_Dye_Coupon4_Box','Clothing Dye Coupon Box II',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6047,1;',NULL,NULL); # REPLACE INTO `item_db` VALUES (14293,'Mercenary_Contract_Box','Mercenary Contract Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6050,1;',NULL,NULL); @@ -5765,36 +6066,36 @@ REPLACE INTO `item_db` VALUES (14547,'Fire_Cracker_Wday','Whiteday Firecracker', REPLACE INTO `item_db` VALUES (14548,'Fire_Cracker_Valentine','Valentine\'s Day Firecracker',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'end;',NULL,NULL); REPLACE INTO `item_db` VALUES (14549,'Fire_Cracker_Bday','Birthday Firecracker',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'end;',NULL,NULL); REPLACE INTO `item_db` VALUES (14550,'Fire_Cracker_Xmas','Xmas Firecracker',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'end;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14551,'Str_Dish01_','Fried Grasshopper Legs',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 1; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14552,'Str_Dish02_','Seasoned Sticky Webfoot',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 2; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14553,'Str_Dish03_','Bomber Steak',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 3; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14554,'Int_Dish01_','Grape Juice Herbal Tea',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 1; percentheal 0,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14555,'Int_Dish02_','Autumn Red Tea',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 2; percentheal 0,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14556,'Int_Dish03_','Honey Herbal Tea',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 3; percentheal 0,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14557,'Vit_Dish01_','Steamed Crab Nippers',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 1; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14558,'Vit_Dish02_','Assorted Seafood',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 2; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14559,'Vit_Dish03_','Clam Soup',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 3; percentheal 5,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14560,'Agi_Dish01_','Frog Egg Squid Ink Soup',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 1; percentheal 3,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14561,'Agi_Dish02_','Smooth Noodle',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 2; percentheal 3,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14562,'Agi_Dish03_','Tentacle Cheese Gratin',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 3; percentheal 3,1;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14563,'Dex_Dish01_','Honey Grape Juice',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 1; percentheal 2,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14564,'Dex_Dish02_','Chocolate Mousse Cake',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 2; percentheal 2,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14565,'Dex_Dish03_','Fruit Mix',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 3; percentheal 2,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14566,'Luk_Dish01_','Fried Monkey Tails',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 1; percentheal 3,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14567,'Luk_Dish02_','Mixed Juice',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 2; percentheal 3,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14568,'Luk_Dish03_','Fried Sweet Potato',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 3; percentheal 4,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14551,'Str_Dish01_','Fried Grasshopper Legs',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 1; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14552,'Str_Dish02_','Seasoned Sticky Webfoot',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 2; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14553,'Str_Dish03_','Bomber Steak',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 3; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14554,'Int_Dish01_','Grape Juice Herbal Tea',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 1; percentheal 0,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14555,'Int_Dish02_','Autumn Red Tea',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 2; percentheal 0,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14556,'Int_Dish03_','Honey Herbal Tea',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 3; percentheal 0,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14557,'Vit_Dish01_','Steamed Crab Nippers',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 1; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14558,'Vit_Dish02_','Assorted Seafood',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 2; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14559,'Vit_Dish03_','Clam Soup',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 3; percentheal 5,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14560,'Agi_Dish01_','Frog Egg Squid Ink Soup',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 1; percentheal 3,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14561,'Agi_Dish02_','Smooth Noodle',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 2; percentheal 3,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14562,'Agi_Dish03_','Tentacle Cheese Gratin',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 3; percentheal 3,1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14563,'Dex_Dish01_','Honey Grape Juice',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 1; percentheal 2,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14564,'Dex_Dish02_','Chocolate Mousse Cake',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 2; percentheal 2,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14565,'Dex_Dish03_','Fruit Mix',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 3; percentheal 2,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14566,'Luk_Dish01_','Fried Monkey Tails',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 1; percentheal 3,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14567,'Luk_Dish02_','Mixed Juice',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 2; percentheal 3,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14568,'Luk_Dish03_','Fried Sweet Potato',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 3; percentheal 4,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (14569,'Knife_Goblin_Ring','Knife Goblin Ring',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1122;',NULL,NULL); REPLACE INTO `item_db` VALUES (14570,'Flail_Goblin_Ring','Flail Goblin Ring',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1123;',NULL,NULL); REPLACE INTO `item_db` VALUES (14571,'Hammer_Goblin_Ring','Hammer Goblin Ring',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1125;',NULL,NULL); REPLACE INTO `item_db` VALUES (14572,'Holy_Marble','Holy Marble',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1385;',NULL,NULL); REPLACE INTO `item_db` VALUES (14573,'Red_Burning_Stone','Red Burning Stone',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1382;',NULL,NULL); REPLACE INTO `item_db` VALUES (14574,'Skull_Of_Vagabond','Vagabond\'s Skull',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1208;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14575,'Str_Dish05_','Lutie Lady\'s Pancake',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFood, 1200000, 5; percentheal 10,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14576,'Int_Dish05_','Mastela Fruit Wine',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFood, 1200000, 5; percentheal 0,10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14577,'Vit_Dish05_','Spicy Fried Bao',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFood, 1200000, 5; percentheal 10,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14578,'Agi_Dish05_','Steamed Bat Wing in Pumpkin',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFood, 1200000, 5; percentheal 6,2;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14579,'Dex_Dish05_','Green Salad',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFood, 1200000, 5; percentheal 5,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14580,'Luk_Dish05_','Fried Scorpion Tails',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFood, 1200000, 5; percentheal 5,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14575,'Str_Dish05_','Lutie Lady\'s Pancake',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_STRFOOD, 1200000, 5; percentheal 10,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14576,'Int_Dish05_','Mastela Fruit Wine',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD, 1200000, 5; percentheal 0,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14577,'Vit_Dish05_','Spicy Fried Bao',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_VITFOOD, 1200000, 5; percentheal 10,0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14578,'Agi_Dish05_','Steamed Bat Wing in Pumpkin',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD, 1200000, 5; percentheal 6,2;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14579,'Dex_Dish05_','Green Salad',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD, 1200000, 5; percentheal 5,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (14580,'Luk_Dish05_','Fried Scorpion Tails',0,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD, 1200000, 5; percentheal 5,2;',NULL,NULL); REPLACE INTO `item_db` VALUES (14581,'Dun_Tele_Scroll2','Dungeon Teleport Scroll II',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashDungeon\";',NULL,NULL); REPLACE INTO `item_db` VALUES (14582,'WOB_Rune','Yellow Butterfly Wing',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashCity\",1;',NULL,NULL); REPLACE INTO `item_db` VALUES (14583,'WOB_Schwaltz','Green Butterfly Wing',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'callfunc \"F_CashCity\",2;',NULL,NULL); @@ -5810,7 +6111,7 @@ REPLACE INTO `item_db` VALUES (14592,'Job_Manual50','JOB Battle Manual',2,2,NULL REPLACE INTO `item_db` VALUES (14593,'Magic_Power_Scroll','Mystical Amplification Scroll',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"HW_MAGICPOWER\",10;',NULL,NULL); REPLACE INTO `item_db` VALUES (14594,'Quagmire_Scroll','Quagmire Scroll',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill \"WZ_QUAGMIRE\",5;',NULL,NULL); REPLACE INTO `item_db` VALUES (14595,'Unsealed_Magic_Spell','Unsealed Magic Spell',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'warp \"yuno_fild09\",255,127;',NULL,NULL); -REPLACE INTO `item_db` VALUES (14596,'Pierre_Treasurebox','Pierre\'s Treasure Box',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (14596,'Pierre_Treasurebox','Pierre\'s Treasure Box',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem groupranditem(IG_Pierre_Treasurebox),1; getitem groupranditem(IG_Pierre_Treasurebox),1; getitem groupranditem(IG_Pierre_Treasurebox),1; getitem groupranditem(IG_Pierre_Treasurebox),1; getitem groupranditem(IG_Pierre_Treasurebox),1; getitem groupranditem(IG_Pierre_Treasurebox),1;',NULL,NULL); REPLACE INTO `item_db` VALUES (14597,'PhreeoniS','Phreeoni Scroll',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMSCRIPT,180000,4121;',NULL,NULL); REPLACE INTO `item_db` VALUES (14598,'GhostringS','Ghostring Scroll',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMSCRIPT,60000,4047;',NULL,NULL); REPLACE INTO `item_db` VALUES (14599,'Greed_Scroll_C','Greed Scroll',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -5827,20 +6128,45 @@ REPLACE INTO `item_db` VALUES (14609,'Spoiled_Cuisine','Spoiled Cuisine',2,0,NUL REPLACE INTO `item_db` VALUES (15000,'Bone_Plate','Bone Plate',5,20,NULL,1000,NULL,7,NULL,1,0x00021040,2,2,16,NULL,85,1,0,'bonus bStr,1; bonus bMDef,3; bonus2 bIgnoreDefRate,RC_DemiHuman,10; bonus2 bIgnoreDefRate,RC_Brute,10; bonus3 bAutoSpellWhenHit,\"NPC_WIDEBLEEDING\",1,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (15001,'Odin\'s_Blessing_I','Odin\'s Blessing',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (15002,'Rune_Plate','Rune Plate',2,0,NULL,0,NULL,NULL,NULL,1,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (15009,'Para_Team_Uniform1','Eden Team Uniform I',5,0,NULL,0,NULL,35,NULL,0,0xFFFFFFFF,7,2,16,NULL,12,0,0,'bonus bMaxHP,100; bonus bMaxSP,10;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (15010,'Para_Team_Uniform2','Eden Team Uniform II',5,0,NULL,0,NULL,46,NULL,0,0xFFFFFFFF,7,2,16,NULL,26,0,0,'bonus bMaxHP,200; bonus bMaxSP,20;',NULL,NULL); +# REPLACE INTO `item_db` VALUES (15011,'Para_Team_Uniform3','Eden Team Uniform III',5,0,NULL,0,NULL,58,NULL,0,0xFFFFFFFF,7,2,16,NULL,40,0,0,'bonus bMaxHP,300; bonus bMaxSP,30; bonus bMDef,5;',NULL,NULL); +# 15012,Puente_Robe, +# 15013,Claire_Suits, +# 15014,Ebone_Armor, REPLACE INTO `item_db` VALUES (16000,'Erde','Erde',4,20,NULL,500,130,NULL,NULL,2,0x0004C5B2,2,2,2,4,50,1,8,'bonus2 bSkillAtk,\"AM_ACIDTERROR\",20; bonus2 bSkillAtk,\"AM_DEMONSTRATION\",20; bonus bMaxSP,50; bonus bHealPower,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (16001,'Red_Square_Bag','Red Square Bag',4,20,NULL,500,130,NULL,NULL,2,0x0004C5B2,2,2,2,4,50,1,8,'bonus bMaxHP,200; bonus2 bSkillAtk,\"AM_ACIDTERROR\",20; bonus2 bSkillAtk,\"AM_DEMONSTRATION\",20; bonus2 bAddMonsterDropItem,501,50; bonus2 bAddMonsterDropItem,502,20; bonus2 bAddMonsterDropItem,503,20; bonus2 bAddMonsterDropItem,504,20; bonus2 bAddMonsterDropItem,505,10; if(readparam(bStr)>=95) bonus2 bAddEff,Eff_Stun,500;',NULL,NULL); REPLACE INTO `item_db` VALUES (16002,'Stunner_C','Stunner',2,20,NULL,2000,140,NULL,1,0,0x00008110,7,2,2,3,27,1,8,'bonus2 bAddEff,Eff_Stun,1000; bonus2 bAddSize,0,40; bonus2 bAddSize,1,40; bonus2 bAddSize,2,40;',NULL,NULL); +# 16003,Carga_Mace, +# REPLACE INTO `item_db` VALUES (16004,'P_Mace1','Eden Mace I',4,0,NULL,0,142,NULL,1,0,0x0004C5B2,7,2,2,2,26,0,8,NULL,NULL,NULL); +# REPLACE INTO `item_db` VALUES (16005,'P_Mace2','Eden Mace II',4,0,NULL,0,163,NULL,1,0,0x0004C5B2,7,2,2,2,40,0,8,NULL,NULL,NULL); +# 16008,Spanner, REPLACE INTO `item_db` VALUES (16134,'King_Frog_Hat_Box','Frog King Hat Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (16135,'Evil\'s_Bone_Hat_Box','Satanic Bone Helm Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +# 16186,Baby_Dragon_Hat_Box, +# 16226,Aries_Diadem_Box, +# 16227,Aries_Crown_Box, +# 16230,Taurus_Diadem_Box, +# 16231,Taurus_Crown_Box, +# 16246,Crown_of_Deceit_Box, REPLACE INTO `item_db` VALUES (16247,'Dragon_Arhat_Mask_Box','Dragon Arhat Mask Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (16248,'Tiger_Arhat_Mask_Box','Tiger Arhat Mask Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # 16249,Knight's_Gift_Box # 16250,Valkyrie's_Gift_Box # 16251,Gemini_Diadem_Box # 16252,Gemini_Crown_Box +# 16258,HD_Bradium_5_Box, +# 16259,HD_Carnium_5_Box, +# 16260,HD_Bradium_10_Box, +# 16261,HD_Carnium_10_Box, +# 16262,HD_Bradium_5_Box, +# 16263,HD_Carnium_5_Box, +# 16264,HD_Bradium_10_Box, +# 16265,HD_Carnium_10_Box, # 16267,HE_Battle_Manual_Box # 16268,HE_Bubble_Gum_Box # 16269,Cancer_Diadem_Box +# 16270,Cancer_Crown_Box, # 16343,Leo_Crown_Box # 16344,Leo_Diadem_Box # 16345,Leo_Crown_Box diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index 8f134a8be..5f7592248 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -108,8 +108,8 @@ REPLACE INTO `mob_db` VALUES (1034,'THARA_FROG','Thara Frog','Thara Frog',22,215 REPLACE INTO `mob_db` VALUES (1035,'HUNTER_FLY','Hunter Fly','Hunter Fly',42,5242,0,1517,952,1,246,333,25,15,33,105,32,15,72,30,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1); REPLACE INTO `mob_db` VALUES (1036,'GHOUL','Ghoul','Ghoul',40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1); REPLACE INTO `mob_db` VALUES (1037,'SIDE_WINDER','Side Winder','Side Winder',43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1); -REPLACE INTO `mob_db` VALUES (1038,'OSIRIS','Osiris','Osiris',78,415400,0,71500,28600,1,780,2880,10,25,1,75,30,37,86,40,10,12,1,1,89,0x37B5,100,1072,672,384,35750,10000,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,984,3783,0,0,0,0,4144,1); -REPLACE INTO `mob_db` VALUES (1039,'BAPHOMET','Baphomet','Baphomet',81,668000,0,107250,37895,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,53625,10000,607,2000,750,500,923,5000,1466,400,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1); +REPLACE INTO `mob_db` VALUES (1038,'OSIRIS','Osiris','Osiris',78,415400,0,71500,28600,1,780,2880,10,25,1,75,30,37,86,40,10,12,1,1,89,0x37B5,100,1072,672,384,35750,10000,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1); +REPLACE INTO `mob_db` VALUES (1039,'BAPHOMET','Baphomet','Baphomet',81,668000,0,107250,37895,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,53625,10000,607,2000,750,500,923,5000,1466,200,2256,200,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1); REPLACE INTO `mob_db` VALUES (1040,'GOLEM','Golem','Golem',25,3900,0,465,94,1,175,187,40,0,1,15,25,0,15,0,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,1003,210,715,200,998,350,0,0,0,0,4072,1); REPLACE INTO `mob_db` VALUES (1041,'MUMMY','Mummy','Mummy',37,5176,0,800,602,1,305,360,0,10,28,19,32,0,63,20,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1); REPLACE INTO `mob_db` VALUES (1042,'STEEL_CHONCHON','Steel Chonchon','Steel Chonchon',17,530,0,109,71,1,54,65,15,0,1,43,17,5,33,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1); @@ -129,10 +129,10 @@ REPLACE INTO `mob_db` VALUES (1055,'MUKA','Muka','Muka',17,610,0,273,120,1,40,49 REPLACE INTO `mob_db` VALUES (1056,'SMOKIE','Smokie','Smokie',18,641,0,134,86,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1); REPLACE INTO `mob_db` VALUES (1057,'YOYO','Yoyo','Yoyo',21,879,0,280,111,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1); REPLACE INTO `mob_db` VALUES (1058,'METALLER','Metaller','Metaller',22,926,0,241,152,1,131,159,15,30,1,22,22,20,49,50,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1); -REPLACE INTO `mob_db` VALUES (1059,'MISTRESS','Mistress','Mistress',74,212000,0,39325,27170,1,880,1110,40,60,50,165,60,95,70,130,10,12,0,4,84,0x37B5,100,1148,648,300,19662,10000,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,10,0,0,0,0,4132,1); +REPLACE INTO `mob_db` VALUES (1059,'MISTRESS','Mistress','Mistress',74,212000,0,39325,27170,1,880,1110,40,60,50,165,60,95,70,130,10,12,0,4,84,0x37B5,100,1148,648,300,19662,10000,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1); REPLACE INTO `mob_db` VALUES (1060,'BIGFOOT','Bigfoot','Bigfoot',25,1619,0,310,188,1,198,220,10,0,1,25,55,15,20,25,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1); REPLACE INTO `mob_db` VALUES (1061,'NIGHTMARE','Nightmare','Nightmare',49,4437,0,1912,1912,1,447,529,0,40,1,74,25,15,64,10,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1); -REPLACE INTO `mob_db` VALUES (1062,'PORING_','Santa Poring','Santa Poring',3,69,0,4,5,1,12,16,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,741,10,0,0,0,0,0,0,4005,1); +REPLACE INTO `mob_db` VALUES (1062,'PORING_','Santa Poring','Santa Poring',3,69,0,4,5,1,12,16,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1); REPLACE INTO `mob_db` VALUES (1063,'LUNATIC','Lunatic','Lunatic',3,60,0,6,2,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,0,0,0,0,4006,1); REPLACE INTO `mob_db` VALUES (1064,'MEGALODON','Megalodon','Megalodon',24,1648,0,215,132,1,155,188,0,15,1,12,24,0,26,5,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1); REPLACE INTO `mob_db` VALUES (1065,'STROUF','Strouf','Strouf',48,11990,0,3080,2098,1,200,1250,5,50,1,40,45,92,43,65,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,0,951,5335,756,115,2241,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1); @@ -145,7 +145,7 @@ REPLACE INTO `mob_db` VALUES (1071,'PIRATE_SKEL','Pirate Skeleton','Pirate Skele REPLACE INTO `mob_db` VALUES (1072,'KAHO','Kaho','Kaho',60,8409,0,3990,450,1,110,760,5,50,1,55,43,88,80,46,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1); REPLACE INTO `mob_db` VALUES (1073,'CRAB','Crab','Crab',20,2451,0,163,101,1,71,81,35,0,18,20,15,0,36,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1); REPLACE INTO `mob_db` VALUES (1074,'SHELLFISH','Shellfish','Shellfish',15,920,0,66,44,1,35,42,35,0,1,12,8,0,32,5,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1); -REPLACE INTO `mob_db` VALUES (1075,'TURTLE','Turtle','Turtle',3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (1075,'TURTLE','Turtle','Turtle',3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1076,'SKELETON','Skeleton','Skeleton',10,234,0,18,14,1,39,47,10,10,1,5,10,0,12,0,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1); REPLACE INTO `mob_db` VALUES (1077,'POISON_SPORE','Poison Spore','Poison Spore',19,665,0,186,93,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1); REPLACE INTO `mob_db` VALUES (1078,'RED_PLANT','Red Plant','Red Plant',1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,906,300,914,500,708,50,2269,2,0,0,0,0); @@ -157,7 +157,7 @@ REPLACE INTO `mob_db` VALUES (1083,'SHINING_PLANT','Shining Plant','Shining Plan REPLACE INTO `mob_db` VALUES (1084,'BLACK_MUSHROOM','Black Mushroom','Black Mushroom',1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,7033,5500,0,0,0,0); REPLACE INTO `mob_db` VALUES (1085,'RED_MUSHROOM','Red Mushroom','Red Mushroom',1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,7033,5500,0,0,0,0); REPLACE INTO `mob_db` VALUES (1086,'GOLDEN_BUG','Golden Thief Bug','Golden Thief Bug',64,126000,0,14300,7150,1,870,1145,60,45,65,75,35,45,85,150,10,12,2,4,43,0x11AB,100,768,768,480,7150,10000,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1); -REPLACE INTO `mob_db` VALUES (1087,'ORK_HERO','Orc Hero','Orc Hero',77,585700,0,58630,32890,1,2257,2542,40,45,1,91,30,70,105,90,10,12,2,7,42,0x37B5,150,1678,780,648,29315,10000,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,10,0,0,0,0,4143,1); +REPLACE INTO `mob_db` VALUES (1087,'ORK_HERO','Orc Hero','Orc Hero',77,585700,0,58630,32890,1,2257,2542,40,45,1,91,30,70,105,90,10,12,2,7,42,0x37B5,150,1678,780,648,29315,10000,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1); REPLACE INTO `mob_db` VALUES (1088,'VOCAL','Vocal','Vocal',18,3016,0,110,88,1,71,82,10,30,77,28,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,645,700,1917,10,0,0,0,0,4211,1); REPLACE INTO `mob_db` VALUES (1089,'TOAD','Toad','Toad',10,5065,0,100,50,1,26,32,0,0,1,5,10,10,10,25,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,746,1500,970,100,971,100,5125,1000,0,0,0,0,4306,1); REPLACE INTO `mob_db` VALUES (1090,'MASTERING','Mastering','Mastering',2,2415,0,30,10,1,18,24,0,10,1,2,2,0,17,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,512,8000,512,8000,531,4000,0,0,0,0,4197,1); @@ -168,7 +168,7 @@ REPLACE INTO `mob_db` VALUES (1094,'AMBERNITE','Ambernite','Ambernite',13,495,0, REPLACE INTO `mob_db` VALUES (1095,'ANDRE','Andre','Andre',17,688,0,109,71,1,60,71,10,0,1,17,24,20,26,20,10,12,0,4,22,0x118B,300,1288,288,384,0,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1); REPLACE INTO `mob_db` VALUES (1096,'ANGELING','Angeling','Angeling',20,55000,0,163,144,1,120,195,0,70,1,50,20,75,68,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1); REPLACE INTO `mob_db` VALUES (1097,'ANT_EGG','Ant Egg','Ant Egg',4,420,0,5,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1); -REPLACE INTO `mob_db` VALUES (1098,'ANUBIS','Anubis','Anubis',75,38000,0,28000,22000,1,530,1697,35,31,5,65,10,82,77,33,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,0,930,3000,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1); +REPLACE INTO `mob_db` VALUES (1098,'ANUBIS','Anubis','Anubis',75,38000,0,28000,22000,1,530,1697,25,31,5,65,10,82,77,33,10,12,2,7,49,0x3695,150,1250,768,360,0,0,0,0,0,0,0,0,930,3000,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1); REPLACE INTO `mob_db` VALUES (1099,'ARGIOPE','Argiope','Argiope',41,4382,0,1797,849,1,395,480,30,0,1,41,31,10,56,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1); REPLACE INTO `mob_db` VALUES (1100,'ARGOS','Argos','Argos',25,1117,0,388,188,1,158,191,15,0,1,25,25,5,32,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1); REPLACE INTO `mob_db` VALUES (1101,'BAPHOMET_','Baphomet Jr.','Baphomet Jr.',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1); @@ -182,10 +182,10 @@ REPLACE INTO `mob_db` VALUES (1108,'DEVIACE','Deviace','Deviace',47,20090,0,9988 REPLACE INTO `mob_db` VALUES (1109,'DEVIRUCHI','Deviruchi','Deviruchi',46,6666,0,2662,1278,1,475,560,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1); REPLACE INTO `mob_db` VALUES (1110,'DOKEBI','Dokebi','Dokebi',33,2697,0,889,455,1,197,249,0,10,50,50,40,35,69,40,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1); REPLACE INTO `mob_db` VALUES (1111,'DRAINLIAR','Drainliar','Drainliar',24,1162,0,431,176,1,74,84,0,0,1,36,24,0,78,0,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1); -REPLACE INTO `mob_db` VALUES (1112,'DRAKE','Drake','Drake',70,326666,0,28600,22880,1,1800,2100,20,35,85,80,49,75,79,50,10,12,1,1,29,0x37B5,400,620,420,360,14300,10000,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,10,0,0,0,0,4137,1); +REPLACE INTO `mob_db` VALUES (1112,'DRAKE','Drake','Drake',70,326666,0,28600,22880,1,1800,2100,20,35,85,80,49,75,79,50,10,12,1,1,29,0x37B5,400,620,420,360,14300,10000,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1); REPLACE INTO `mob_db` VALUES (1113,'DROPS','Drops','Drops',3,55,0,4,3,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1); REPLACE INTO `mob_db` VALUES (1114,'DUSTINESS','Dustiness','Dustiness',21,1044,0,218,140,1,80,102,0,10,1,53,17,0,38,5,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1); -REPLACE INTO `mob_db` VALUES (1115,'EDDGA','Eddga','Eddga',65,152000,0,25025,12870,1,1215,1565,15,15,78,70,85,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,12512,10000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,10,0,0,0,0,4123,1); +REPLACE INTO `mob_db` VALUES (1115,'EDDGA','Eddga','Eddga',65,152000,0,25025,12870,1,1215,1565,15,15,78,70,85,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,12512,10000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1); REPLACE INTO `mob_db` VALUES (1116,'EGGYRA','Eggyra','Eggyra',24,633,0,215,220,1,85,107,20,25,1,36,24,0,32,0,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1); REPLACE INTO `mob_db` VALUES (1117,'EVIL_DRUID','Evil Druid','Evil Druid',58,16506,0,2890,1827,1,420,670,5,60,1,29,58,80,68,30,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1); REPLACE INTO `mob_db` VALUES (1118,'FLORA','Flora','Flora',26,2092,0,357,226,3,242,273,10,35,1,26,35,5,43,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1); @@ -204,8 +204,8 @@ REPLACE INTO `mob_db` VALUES (1130,'JAKK','Jakk','Jakk',38,3581,0,1408,880,1,315 REPLACE INTO `mob_db` VALUES (1131,'JOKER','Joker','Joker',57,12450,0,3706,2362,1,621,738,10,35,1,143,47,75,98,175,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1); REPLACE INTO `mob_db` VALUES (1132,'KHALITZBURG','Khalitzburg','Khalitzburg',63,19276,0,4378,2750,1,875,1025,45,10,58,65,48,5,73,40,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,509,2000,1127,2,0,0,0,0,4136,1); REPLACE INTO `mob_db` VALUES (1133,'KOBOLD_1','Kobold','Kobold',36,3893,0,988,625,1,265,318,15,10,1,90,36,30,52,20,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); -REPLACE INTO `mob_db` VALUES (1134,'KOBOLD_2','Kobold','Kobold',31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,1508,5,0,0,0,0,4091,1); -REPLACE INTO `mob_db` VALUES (1135,'KOBOLD_3','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,0,0,2104,3,508,100,0,0,0,0,4091,1); +REPLACE INTO `mob_db` VALUES (1134,'KOBOLD_2','Kobold','Kobold',31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1); +REPLACE INTO `mob_db` VALUES (1135,'KOBOLD_3','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1); # REPLACE INTO `mob_db` VALUES (1136,'KOBOLD_4','Kobold','Kobold',31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1); # REPLACE INTO `mob_db` VALUES (1137,'KOBOLD_5','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1); REPLACE INTO `mob_db` VALUES (1138,'MAGNOLIA','Magnolia','Magnolia',26,3195,0,393,248,1,120,151,5,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1); @@ -217,10 +217,10 @@ REPLACE INTO `mob_db` VALUES (1143,'MARIONETTE','Marionette','Marionette',41,322 REPLACE INTO `mob_db` VALUES (1144,'MARSE','Marse','Marse',31,5034,0,586,370,1,211,252,0,5,1,31,25,5,52,30,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1); REPLACE INTO `mob_db` VALUES (1145,'MARTIN','Martin','Martin',18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1); REPLACE INTO `mob_db` VALUES (1146,'MATYR','Matyr','Matyr',31,2585,0,967,407,1,134,160,0,0,1,47,38,5,64,5,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1); -REPLACE INTO `mob_db` VALUES (1147,'MAYA','Maya','Maya',81,169000,0,42900,17875,1,1800,2070,60,25,95,97,76,95,82,105,10,12,2,4,82,0x37B5,100,864,1000,480,21450,10000,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,10,0,0,0,0,4146,1); +REPLACE INTO `mob_db` VALUES (1147,'MAYA','Maya','Maya',81,169000,0,42900,17875,1,1800,2070,60,25,95,97,76,95,82,105,10,12,2,4,82,0x37B5,100,864,1000,480,21450,10000,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1); REPLACE INTO `mob_db` VALUES (1148,'MEDUSA','Medusa','Medusa',79,16408,0,6876,4697,1,827,1100,28,18,1,74,50,57,77,69,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,967,3500,1007,3,0,0,0,0,4124,1); REPLACE INTO `mob_db` VALUES (1149,'MINOROUS','Minorous','Minorous',52,7431,0,2750,1379,1,590,770,15,5,65,42,61,66,52,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,516,1500,1301,200,568,300,0,0,0,0,4126,1); -REPLACE INTO `mob_db` VALUES (1150,'MOONLIGHT','Moonlight Flower','Moonlight Flower',67,120000,0,27500,14300,1,1200,1700,10,55,55,99,55,82,95,120,10,12,1,6,63,0x37B5,150,1276,576,288,13750,10000,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,10,0,0,0,0,4131,1); +REPLACE INTO `mob_db` VALUES (1150,'MOONLIGHT','Moonlight Flower','Moonlight Flower',67,120000,0,27500,14300,1,1200,1700,10,55,55,99,55,82,95,120,10,12,1,6,63,0x37B5,150,1276,576,288,13750,10000,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1); REPLACE INTO `mob_db` VALUES (1151,'MYST','Myst','Myst',38,3745,0,1391,688,1,365,445,0,40,1,38,18,0,53,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,514,35,0,0,0,0,4108,1); REPLACE INTO `mob_db` VALUES (1152,'ORC_SKELETON','Orc Skeleton','Orc Skeleton',28,2278,0,315,194,1,190,236,10,10,1,14,18,0,30,15,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1); REPLACE INTO `mob_db` VALUES (1153,'ORC_ZOMBIE','Orc Zombie','Orc Zombie',24,1568,0,196,120,1,151,184,5,10,1,12,24,0,24,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1); @@ -229,7 +229,7 @@ REPLACE INTO `mob_db` VALUES (1155,'PETIT','Petite','Petite',44,6881,0,1677,1034 REPLACE INTO `mob_db` VALUES (1156,'PETIT_','Petite','Petite',45,5747,0,1758,1075,1,300,355,20,45,1,113,45,55,73,80,10,12,1,9,24,0x3095,150,1420,1080,528,0,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1); REPLACE INTO `mob_db` VALUES (1157,'PHARAOH','Pharaoh','Pharaoh',93,445997,0,114990,41899,1,2267,3015,67,70,1,93,100,104,89,112,10,12,2,7,67,0x37B5,125,868,768,288,57495,10000,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1); REPLACE INTO `mob_db` VALUES (1158,'PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,0,88,75,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1); -REPLACE INTO `mob_db` VALUES (1159,'PHREEONI','Phreeoni','Phreeoni',69,188000,0,32175,16445,1,880,1530,10,20,1,85,78,35,130,60,10,12,2,2,60,0x37B5,200,1020,1020,288,16087,10000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,10,0,0,0,0,4121,1); +REPLACE INTO `mob_db` VALUES (1159,'PHREEONI','Phreeoni','Phreeoni',69,188000,0,32175,16445,1,880,1530,10,20,1,85,78,35,130,60,10,12,2,2,60,0x37B5,200,1020,1020,288,16087,10000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1); REPLACE INTO `mob_db` VALUES (1160,'PIERE','Piere','Piere',18,733,0,122,78,1,64,75,15,0,1,18,26,20,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1); REPLACE INTO `mob_db` VALUES (1161,'PLANKTON','Plankton','Plankton',10,354,0,23,18,1,26,31,0,5,1,10,10,0,15,0,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1); REPLACE INTO `mob_db` VALUES (1162,'RAFFLESIA','Rafflesia','Rafflesia',17,1333,0,333,333,3,105,127,0,2,1,18,24,11,37,10,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1); @@ -254,14 +254,14 @@ REPLACE INTO `mob_db` VALUES (1180,'NINE_TAIL','Nine Tail','Nine Tail',51,7766,0 # REPLACE INTO `mob_db` VALUES (1181,'ZOMBIE_DRAGON','Zombie Dragon','Zombie Dragon',1,1000,0,49500,1650,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1182,'THIEF_MUSHROOM','Thief Mushroom','Thief Mushroom',1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1183,'CHONCHON_','Chonchon','Chonchon',4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1); -REPLACE INTO `mob_db` VALUES (1184,'FABRE_','Fabre','Fabre',1,30,0,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,4002,0); -REPLACE INTO `mob_db` VALUES (1185,'WHISPER_','Whisper','Whisper',34,1796,0,537,545,1,198,239,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,0,1001,10,1059,100,2282,0,2333,1,0,0,0,0,0,0,0,0,0,0,4102,0); +REPLACE INTO `mob_db` VALUES (1184,'FABRE_','Fabre','Fabre',1,30,0,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1185,'WHISPER_','Whisper','Whisper',34,1796,0,537,545,1,198,239,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,0,1001,10,1059,100,0,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1186,'WHISPER_BOSS','Giant Whisper','Giant Whisper',34,5040,0,537,545,1,198,239,0,45,1,51,14,0,60,0,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1); REPLACE INTO `mob_db` VALUES (1187,'SWITCH','Switch','Switch',1,2,0,1,1,1,1,2,0,0,1,1,1,0,1,0,1,12,1,0,20,0x0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1188,'BON_GUN','Bongun','Bongun',32,3520,0,424,242,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1); REPLACE INTO `mob_db` VALUES (1189,'ORC_ARCHER','Orc Archer','Orc Archer',49,7440,0,1729,1787,9,310,390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1); -REPLACE INTO `mob_db` VALUES (1190,'ORC_LORD','Orc Lord','Orc Lord',74,783000,0,62205,8580,1,3700,4150,40,5,85,82,30,70,110,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,10000,968,5500,617,2000,0,0,1363,400,2621,400,5007,400,1371,400,617,1000,985,4268,16000,10,0,0,0,0,4135,1); -REPLACE INTO `mob_db` VALUES (1191,'MIMIC','Mimic','Mimic',51,6120,0,165,165,1,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,714,3,2626,1,757,270,0,0,0,0,4205,1); +REPLACE INTO `mob_db` VALUES (1190,'ORC_LORD','Orc Lord','Orc Lord',74,783000,0,62205,8580,1,3700,4150,40,5,85,82,30,70,110,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,10000,968,5500,617,2000,0,0,1363,200,2601,500,5007,150,1371,400,617,1000,985,4268,16000,3100,0,0,0,0,4135,1); +REPLACE INTO `mob_db` VALUES (1191,'MIMIC','Mimic','Mimic',51,6120,182,165,165,1,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,714,3,2626,1,757,270,0,0,0,0,4205,1); REPLACE INTO `mob_db` VALUES (1192,'WRAITH','Wraith','Wraith',53,10999,0,2199,1099,1,580,760,5,30,1,95,30,65,95,35,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1); REPLACE INTO `mob_db` VALUES (1193,'ALARM','Alarm','Alarm',58,10647,0,3987,2300,1,480,600,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1); REPLACE INTO `mob_db` VALUES (1194,'ARCLOUSE','Arclouse','Arclouze',59,6075,0,860,1000,1,570,640,10,15,1,75,5,5,75,50,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1); @@ -287,21 +287,21 @@ REPLACE INTO `mob_db` VALUES (1213,'HIGH_ORC','High Orc','High Orc',52,6890,0,36 REPLACE INTO `mob_db` VALUES (1214,'CHOCO','Choco','Choco',43,4278,0,1265,1265,1,315,402,5,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1); REPLACE INTO `mob_db` VALUES (1215,'STEM_WORM','Stem Worm','Stem Worm',40,6136,0,1452,939,2,290,375,5,10,1,30,26,15,79,35,10,12,1,3,24,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1); REPLACE INTO `mob_db` VALUES (1216,'PENOMENA','Penomena','Penomena',57,7256,0,2870,2200,7,415,565,5,50,1,5,35,15,136,30,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1); -REPLACE INTO `mob_db` VALUES (1219,'KNIGHT_OF_ABYSS','Knight of Abyss','Abysmal Knight',79,36140,0,8469,6268,1,1600,2150,55,50,66,68,64,25,135,50,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,20,1162,1,985,369,984,259,0,0,0,0,4140,1); +REPLACE INTO `mob_db` VALUES (1219,'KNIGHT_OF_ABYSS','Knight of Abyss','Abysmal Knight',79,36140,0,8469,6268,1,1600,2150,55,50,66,68,64,25,135,50,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,984,259,0,0,0,0,4140,1); REPLACE INTO `mob_db` VALUES (1220,'M_DESERT_WOLF','Desert Wolf','Desert Wolf',27,1716,0,388,242,1,169,208,0,10,1,27,45,15,56,10,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1); REPLACE INTO `mob_db` VALUES (1221,'M_SAVAGE','Savage','Savage',26,2092,0,357,226,1,146,177,10,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1); -REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1); +# REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1); # REPLACE INTO `mob_db` VALUES (1223,'L_ORC','Orc','Orc',24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); -REPLACE INTO `mob_db` VALUES (1224,'L_POISON_SPORE','Poison Spore','Poison Spore',19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1); -REPLACE INTO `mob_db` VALUES (1225,'L_CHOCO','Choco','Choco',43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1); -REPLACE INTO `mob_db` VALUES (1226,'L_KOBOLD','Kobold','Kobold',36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); -REPLACE INTO `mob_db` VALUES (1227,'L_GOBLIN','Goblin','Goblin',25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1); -REPLACE INTO `mob_db` VALUES (1228,'L_PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1); +# REPLACE INTO `mob_db` VALUES (1224,'L_POISON_SPORE','Poison Spore','Poison Spore',19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1); +# REPLACE INTO `mob_db` VALUES (1225,'L_CHOCO','Choco','Choco',43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1); +# REPLACE INTO `mob_db` VALUES (1226,'L_KOBOLD','Kobold','Kobold',36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); +# REPLACE INTO `mob_db` VALUES (1227,'L_GOBLIN','Goblin','Goblin',25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1); +# REPLACE INTO `mob_db` VALUES (1228,'L_PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1); REPLACE INTO `mob_db` VALUES (1229,'META_FABRE','Fabre','Fabre',2,63,0,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1); REPLACE INTO `mob_db` VALUES (1230,'META_PUPA','Pupa','Pupa',2,427,0,2,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1); REPLACE INTO `mob_db` VALUES (1231,'META_CREAMY','Creamy','Creamy',16,595,0,96,64,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1); REPLACE INTO `mob_db` VALUES (1232,'META_PECOPECO_EGG','Peco Peco Egg','Peco Peco Egg',3,420,0,4,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1); -REPLACE INTO `mob_db` VALUES (1233,'CONCEIVE_PECOPECO','Peco Peco','Peco Peco',19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1); +# REPLACE INTO `mob_db` VALUES (1233,'CONCEIVE_PECOPECO','Peco Peco','Peco Peco',19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1); REPLACE INTO `mob_db` VALUES (1234,'PROVOKE_YOYO','Yoyo','Yoyo',19,879,0,135,85,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1); REPLACE INTO `mob_db` VALUES (1235,'SMOKING_ORC','Smoking Orc','Smoking Orc',24,1400,0,261,160,1,114,136,10,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); REPLACE INTO `mob_db` VALUES (1236,'META_ANT_EGG','Ant Egg','Ant Egg',4,420,0,5,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1); @@ -330,20 +330,20 @@ REPLACE INTO `mob_db` VALUES (1258,'GOBLIN_ARCHER','Goblin Archer','Goblin Arche REPLACE INTO `mob_db` VALUES (1259,'GRYPHON','Gryphon','Gryphon',72,27800,0,5896,4400,1,880,1260,35,35,68,95,78,65,115,75,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1); REPLACE INTO `mob_db` VALUES (1260,'DARK_FRAME','Dark Frame','Dark Frame',59,7500,0,3652,3271,1,960,1210,10,45,1,72,42,45,85,25,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1); REPLACE INTO `mob_db` VALUES (1261,'WILD_ROSE','Wild Rose','Wild Rose',38,2980,0,1113,688,1,315,360,0,15,65,85,15,35,65,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,1767,3000,624,35,528,600,2244,2,0,0,0,0,4257,1); -REPLACE INTO `mob_db` VALUES (1262,'MUTANT_DRAGON','Mutant Dragon','Mutant Dragonoid',65,62600,0,4730,3536,4,2400,3400,15,20,75,47,30,68,45,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,100,7296,1500,2527,50,0,0,0,0,4203,1); +REPLACE INTO `mob_db` VALUES (1262,'MUTANT_DRAGON','Mutant Dragon','Mutant Dragonoid',65,62600,0,4730,3536,4,2400,3400,15,20,75,47,30,68,45,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,400,7296,1500,2527,50,0,0,0,0,4203,1); REPLACE INTO `mob_db` VALUES (1263,'WIND_GHOST','Wind Ghost','Wind Ghost',51,4820,0,2424,1488,2,489,639,0,45,1,89,15,90,85,25,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1); REPLACE INTO `mob_db` VALUES (1264,'MERMAN','Merman','Merman',53,14690,0,4500,3000,2,482,964,10,35,72,45,46,35,60,55,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,0,1054,1300,523,300,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1); -REPLACE INTO `mob_db` VALUES (1265,'COOKIE','Cookie','Cookie',25,950,0,310,188,1,130,145,0,25,1,35,20,53,37,90,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,0,538,1000,530,150,979,1,645,280,2402,30,12001,100,529,320,0,0,0,0,4293,1); +REPLACE INTO `mob_db` VALUES (1265,'COOKIE','Cookie','Cookie',25,950,0,310,188,1,130,145,0,25,1,35,20,53,37,90,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,0,538,1000,530,150,979,1,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1); REPLACE INTO `mob_db` VALUES (1266,'ASTER','Aster','Aster',18,1372,0,122,78,1,56,64,0,10,1,19,15,0,34,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1); REPLACE INTO `mob_db` VALUES (1267,'CARAT','Carat','Carat',51,5200,0,1926,1353,1,330,417,0,25,1,41,45,5,85,155,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1); REPLACE INTO `mob_db` VALUES (1268,'BLOODY_KNIGHT','Bloody Knight','Bloody Knight',82,57870,0,10120,6820,3,2150,3030,60,50,88,75,70,77,125,55,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,985,433,0,0,0,0,4320,1); REPLACE INTO `mob_db` VALUES (1269,'CLOCK','Clock','Clock',60,11050,0,3410,2904,1,720,909,15,10,1,70,50,25,90,50,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1); REPLACE INTO `mob_db` VALUES (1270,'C_TOWER_MANAGER','Clock Tower Manager','Clock Tower Manager',63,18600,0,4378,2850,3,880,1180,35,30,1,75,20,64,75,60,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1); REPLACE INTO `mob_db` VALUES (1271,'ALLIGATOR','Alligator','Alligator',42,6962,0,1379,866,1,315,360,2,5,1,45,50,10,69,65,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1); -REPLACE INTO `mob_db` VALUES (1272,'DARK_LORD','Dark Lord','Dark Lord',80,720000,0,65780,45045,2,2800,3320,30,70,1,120,30,118,99,60,10,12,2,6,89,0x37B5,100,868,768,480,32890,10000,7005,6000,5093,500,617,2000,1615,800,5017,550,1237,300,2334,300,2507,100,2004,10,5162,10,0,0,0,0,4168,1); +REPLACE INTO `mob_db` VALUES (1272,'DARK_LORD','Dark Lord','Dark Lord',80,720000,0,65780,45045,2,2800,3320,30,70,1,120,30,118,99,60,10,12,2,6,89,0x37B5,100,868,768,480,32890,10000,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,984,3977,0,0,0,0,4168,1); REPLACE INTO `mob_db` VALUES (1273,'ORC_LADY','Orc Lady','Orc Lady',31,2000,0,644,407,1,135,170,10,10,35,42,25,15,69,55,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,0,7053,4656,998,300,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1); REPLACE INTO `mob_db` VALUES (1274,'MEGALITH','Megalith','Megalith',45,5300,0,1758,1075,9,264,314,50,25,1,45,60,5,95,5,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1); -REPLACE INTO `mob_db` VALUES (1275,'ALICE','Alice','Alice',62,10000,0,3583,2400,1,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,0x91,200,502,2304,480,0,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,739,30,5085,1,12128,10,12002,100,0,0,0,0,4253,1); +REPLACE INTO `mob_db` VALUES (1275,'ALICE','Alice','Alice',62,10000,221,3583,2400,1,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,0x91,200,502,2304,480,0,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,739,30,5085,1,12128,10,12002,100,0,0,0,0,4253,1); REPLACE INTO `mob_db` VALUES (1276,'RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',52,5250,0,3025,2125,9,415,500,35,5,15,25,22,5,145,35,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,1701,150,1764,2000,1715,3,985,106,0,0,0,0,4187,1); REPLACE INTO `mob_db` VALUES (1277,'GREATEST_GENERAL','Greatest General','Greatest General',40,3632,0,1238,752,3,350,400,15,15,1,20,60,55,82,140,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1); REPLACE INTO `mob_db` VALUES (1278,'STALACTIC_GOLEM','Stalactic Golem','Stalactic Golem',60,18700,0,5808,2695,1,950,1260,50,5,73,45,85,5,90,25,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,0,0,985,163,0,0,0,0,4223,1); @@ -392,53 +392,53 @@ REPLACE INTO `mob_db` VALUES (1320,'OWL_DUKE','Owl Duke','Owl Duke',75,26623,0,7 REPLACE INTO `mob_db` VALUES (1321,'DRAGON_TAIL','Dragon Tail','Dragon Tail',61,8368,0,3587,1453,1,520,715,25,19,10,68,15,5,67,67,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1); REPLACE INTO `mob_db` VALUES (1322,'SPRING_RABBIT','Spring Rabbit','Spring Rabbit',58,9045,0,3982,1766,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1); REPLACE INTO `mob_db` VALUES (1323,'SEE_OTTER','Sea Otter','Sea Otter',59,9999,0,3048,1642,1,650,813,33,35,5,36,40,25,82,65,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1); -REPLACE INTO `mob_db` VALUES (1324,'TREASURE_BOX1','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1325,'TREASURE_BOX2','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7073,80,658,500,604,10000,984,4850,985,7275,1239,1500,5027,75,1165,8,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1326,'TREASURE_BOX3','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1327,'TREASURE_BOX4','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7074,80,658,500,604,10000,984,4850,985,7275,2108,1000,1306,75,5022,2,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1328,'TREASURE_BOX5','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1329,'TREASURE_BOX6','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7075,80,658,500,604,10000,984,4850,985,7275,2102,834,5019,100,5002,9,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1330,'TREASURE_BOX7','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1331,'TREASURE_BOX8','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7076,80,658,500,604,10000,984,4850,985,7275,2616,500,2334,125,2622,9,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1332,'TREASURE_BOX9','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1333,'TREASURE_BOX10','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7077,80,658,500,604,10000,984,4850,985,7275,2104,500,2331,150,2623,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1334,'TREASURE_BOX11','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1335,'TREASURE_BOX12','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7078,80,658,500,604,10000,984,4850,985,7275,2270,500,1716,150,2256,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1336,'TREASURE_BOX13','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1337,'TREASURE_BOX14','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7079,80,658,500,604,10000,984,4850,985,7275,1238,375,1531,150,2318,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1338,'TREASURE_BOX15','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1339,'TREASURE_BOX16','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7080,80,658,500,604,10000,984,4850,985,7275,2626,300,1472,167,2327,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1340,'TREASURE_BOX17','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1341,'TREASURE_BOX18','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7081,80,658,500,604,10000,984,4850,985,7275,1143,250,1237,188,2235,12,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1342,'TREASURE_BOX19','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1343,'TREASURE_BOX20','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7082,80,658,500,604,10000,984,4850,985,7275,617,250,1144,188,5007,19,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1344,'TREASURE_BOX21','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1345,'TREASURE_BOX22','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7083,80,658,500,604,10000,984,4850,985,7275,2508,1000,2336,69,2621,20,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1346,'TREASURE_BOX23','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1347,'TREASURE_BOX24','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7084,80,658,500,604,10000,984,4850,985,7275,2106,1000,1164,50,5025,24,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1348,'TREASURE_BOX25','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1349,'TREASURE_BOX26','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7085,80,658,500,604,10000,984,4850,985,7275,2231,750,2624,46,2286,25,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1350,'TREASURE_BOX27','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1351,'TREASURE_BOX28','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7086,80,658,500,604,10000,984,4850,985,7275,2283,500,2615,41,2234,32,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1352,'TREASURE_BOX29','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1353,'TREASURE_BOX30','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7087,80,658,500,604,10000,984,4850,985,7275,2507,500,2625,38,5045,34,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1354,'TREASURE_BOX31','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1355,'TREASURE_BOX32','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7088,80,658,500,604,10000,984,4850,985,7275,2407,429,2269,250,2317,35,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1356,'TREASURE_BOX33','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1357,'TREASURE_BOX34','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7089,80,658,500,604,10000,984,4850,985,7275,2109,300,2406,273,2258,38,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1358,'TREASURE_BOX35','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1359,'TREASURE_BOX36','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7090,80,658,500,604,10000,984,4850,985,7275,1142,215,2255,60,5017,38,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1360,'TREASURE_BOX37','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1361,'TREASURE_BOX38','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7091,80,658,500,604,10000,984,4850,985,7275,1417,50,5053,50,2229,50,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1362,'TREASURE_BOX39','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1363,'TREASURE_BOX40','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1324,'TREASURE_BOX1','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1325,'TREASURE_BOX2','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7073,80,658,500,604,10000,984,4850,985,7275,1239,1500,5027,75,1165,8,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1326,'TREASURE_BOX3','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1327,'TREASURE_BOX4','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7074,80,658,500,604,10000,984,4850,985,7275,2108,1000,1306,75,5022,2,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1328,'TREASURE_BOX5','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1329,'TREASURE_BOX6','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7075,80,658,500,604,10000,984,4850,985,7275,2102,834,5019,100,5002,9,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1330,'TREASURE_BOX7','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1331,'TREASURE_BOX8','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7076,80,658,500,604,10000,984,4850,985,7275,2616,500,2334,125,2622,9,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1332,'TREASURE_BOX9','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1333,'TREASURE_BOX10','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7077,80,658,500,604,10000,984,4850,985,7275,2104,500,2331,150,2623,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1334,'TREASURE_BOX11','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1335,'TREASURE_BOX12','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7078,80,658,500,604,10000,984,4850,985,7275,2270,500,1716,150,2256,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1336,'TREASURE_BOX13','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1337,'TREASURE_BOX14','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7079,80,658,500,604,10000,984,4850,985,7275,1238,375,1531,150,2318,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1338,'TREASURE_BOX15','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1339,'TREASURE_BOX16','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7080,80,658,500,604,10000,984,4850,985,7275,2626,300,1472,167,2327,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1340,'TREASURE_BOX17','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1341,'TREASURE_BOX18','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7081,80,658,500,604,10000,984,4850,985,7275,1143,250,1237,188,2235,12,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1342,'TREASURE_BOX19','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1343,'TREASURE_BOX20','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7082,80,658,500,604,10000,984,4850,985,7275,617,250,1144,188,5007,19,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1344,'TREASURE_BOX21','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1345,'TREASURE_BOX22','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7083,80,658,500,604,10000,984,4850,985,7275,2508,1000,2336,69,2621,20,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1346,'TREASURE_BOX23','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1347,'TREASURE_BOX24','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7084,80,658,500,604,10000,984,4850,985,7275,2106,1000,1164,50,5025,24,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1348,'TREASURE_BOX25','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1349,'TREASURE_BOX26','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7085,80,658,500,604,10000,984,4850,985,7275,2231,750,2624,46,2286,25,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1350,'TREASURE_BOX27','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1351,'TREASURE_BOX28','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7086,80,658,500,604,10000,984,4850,985,7275,2283,500,2615,41,2234,32,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1352,'TREASURE_BOX29','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1353,'TREASURE_BOX30','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7087,80,658,500,604,10000,984,4850,985,7275,2507,500,2625,38,5045,34,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1354,'TREASURE_BOX31','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1355,'TREASURE_BOX32','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7088,80,658,500,604,10000,984,4850,985,7275,2407,429,2269,250,2317,35,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1356,'TREASURE_BOX33','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1357,'TREASURE_BOX34','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7089,80,658,500,604,10000,984,4850,985,7275,2109,300,2406,273,2258,38,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1358,'TREASURE_BOX35','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1359,'TREASURE_BOX36','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7090,80,658,500,604,10000,984,4850,985,7275,1142,215,2255,60,5017,38,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1360,'TREASURE_BOX37','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1361,'TREASURE_BOX38','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7091,80,658,500,604,10000,984,4850,985,7275,1417,50,5053,50,2229,50,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1362,'TREASURE_BOX39','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1363,'TREASURE_BOX40','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0); REPLACE INTO `mob_db` VALUES (1364,'G_ASSULTER','Assaulter','Assaulter',59,12853,0,0,0,2,152,177,35,36,85,55,10,35,145,100,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1365,'APOCALIPS','Apocalypse','Apocalypse',66,22880,0,6540,4935,2,1030,1370,62,49,1,48,120,48,66,85,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,999,2500,0,0,0,0,4242,1); REPLACE INTO `mob_db` VALUES (1366,'LAVA_GOLEM','Lava Golem','Lava Golem',77,24324,0,6470,3879,1,1541,2049,65,50,1,57,115,70,76,68,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,0,0,0,0,0,0,4184,1); REPLACE INTO `mob_db` VALUES (1367,'BLAZZER','Blazer','Blazer',43,8252,0,3173,1871,2,533,709,50,40,1,52,50,39,69,40,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1); REPLACE INTO `mob_db` VALUES (1368,'GEOGRAPHER','Geographer','Geographer',56,8071,0,2715,2000,3,467,621,28,26,1,66,47,60,68,44,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1); REPLACE INTO `mob_db` VALUES (1369,'GRAND_PECO','Grand Peco','Grand Peco',58,8054,0,2387,1361,2,444,565,37,30,1,66,66,50,71,51,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1); -REPLACE INTO `mob_db` VALUES (1370,'SUCCUBUS','Succubus','Succubus',85,16955,0,5357,4322,2,1268,1686,54,48,1,97,95,103,89,87,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,522,1500,2407,3,12373,20,2613,150,5066,1,1472,1,505,1000,0,0,0,0,4218,1); +REPLACE INTO `mob_db` VALUES (1370,'SUCCUBUS','Succubus','Succubus',85,16955,0,5357,4322,2,1268,1686,54,48,1,97,95,103,89,87,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1); REPLACE INTO `mob_db` VALUES (1371,'FAKE_ANGEL','Fake Angel','False Angel',65,16845,0,3371,1949,2,513,682,50,35,1,64,57,70,61,88,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,0,0,0,0,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1); REPLACE INTO `mob_db` VALUES (1372,'GOAT','Goat','Goat',69,11077,0,3357,2015,1,457,608,44,25,1,58,66,62,67,43,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1); REPLACE INTO `mob_db` VALUES (1373,'LORD_OF_DEATH','Lord of Death','Lord of the Dead',94,603383,0,131343,43345,3,3430,4232,77,73,1,99,30,109,100,106,10,12,2,6,67,0x37B5,180,1446,1296,360,65671,10000,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1); @@ -463,11 +463,11 @@ REPLACE INTO `mob_db` VALUES (1391,'GALAPAGO','Galapago','Galapago',61,9145,0,32 REPLACE INTO `mob_db` VALUES (1392,'ROTAR_ZAIRO','Rotar Zairo','Rotar Zairo',25,1209,0,351,215,10,109,137,4,34,1,62,45,26,55,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1); REPLACE INTO `mob_db` VALUES (1393,'G_MUMMY','Mummy','Mummy',37,5176,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1394,'G_ZOMBIE','Zombie','Zombie',15,534,0,0,0,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1395,'CRYSTAL_1','Wind Crystal','Wind Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,5097,7000,532,6500,558,5000,607,200,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1396,'CRYSTAL_2','Earth Crystal','Earth Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,5097,7000,531,6500,558,5000,608,250,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1397,'CRYSTAL_3','Fire Crystal','Fire Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,5097,7000,534,6500,558,5000,604,300,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1398,'CRYSTAL_4','Water Crystal','Water Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,5097,7000,533,6500,558,5000,603,100,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1399,'EVENT_BAPHO','Baphomet','Baphomet',68,1264000,0,87250,27895,3,1847,2267,35,45,1,152,96,85,120,95,10,12,2,6,67,0x37B5,130,768,768,576,43625,10000,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,2256,1550,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1395,'CRYSTAL_1','Wind Crystal','Wind Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,5097,7000,532,6500,558,5000,607,200,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1396,'CRYSTAL_2','Earth Crystal','Earth Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,5097,7000,531,6500,558,5000,608,250,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1397,'CRYSTAL_3','Fire Crystal','Fire Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,5097,7000,534,6500,558,5000,604,300,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1398,'CRYSTAL_4','Water Crystal','Water Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,5097,7000,533,6500,558,5000,603,100,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1399,'EVENT_BAPHO','Baphomet','Baphomet',68,1264000,0,261750,83685,3,1847,2267,35,45,1,152,96,85,120,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,10000,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,2256,1550,0,0,0,0); REPLACE INTO `mob_db` VALUES (1400,'KARAKASA','Karakasa','Karakasa',30,3092,0,489,322,1,141,183,1,5,1,45,12,20,49,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1); REPLACE INTO `mob_db` VALUES (1401,'SHINOBI','Shinobi','Shinobi',69,12700,0,4970,3010,2,460,1410,34,21,85,85,25,25,100,100,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,7156,5335,2337,2,7053,2200,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1); REPLACE INTO `mob_db` VALUES (1402,'POISON_TOAD','Poison Toad','Poison Toad',46,6629,0,1929,1457,3,288,408,5,10,20,34,19,14,66,55,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1); @@ -576,9 +576,9 @@ REPLACE INTO `mob_db` VALUES (1502,'PORING_V','Pori Pori','Bring it on!',99,9500 # Niflheim REPLACE INTO `mob_db` VALUES (1503,'GIBBET','Gibbet','Gibbet',58,6841,0,4011,1824,1,418,656,28,31,0,42,42,27,46,28,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,0,0,0,0,0,0,4278,1); -REPLACE INTO `mob_db` VALUES (1504,'DULLAHAN','Dullahan','Dullahan',62,12437,0,4517,2963,2,647,1065,47,38,0,30,5,45,62,22,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,2,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1); +REPLACE INTO `mob_db` VALUES (1504,'DULLAHAN','Dullahan','Dullahan',62,12437,0,4517,2963,2,647,1065,47,38,0,30,5,45,62,22,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1); REPLACE INTO `mob_db` VALUES (1505,'LOLI_RURI','Loli Ruri','Loli Ruri',71,23470,0,6641,4314,2,1476,2317,39,44,0,66,54,74,81,43,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,0,0,0,0,0,0,4191,1); -REPLACE INTO `mob_db` VALUES (1506,'DISGUISE','Disguise','Disguise',55,7543,0,2815,1919,2,279,546,18,29,0,72,45,35,48,65,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,0,7216,4850,7221,3686,2502,50,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1); +REPLACE INTO `mob_db` VALUES (1506,'DISGUISE','Disguise','Disguise',55,7543,180,2815,1919,2,279,546,18,29,0,72,45,35,48,65,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,0,7216,4850,7221,3686,2502,50,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1); REPLACE INTO `mob_db` VALUES (1507,'BLOODY_MURDERER','Bloody Murderer','Bloody Murderer',72,27521,0,9742,3559,2,864,1081,37,41,0,30,90,15,52,12,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1); REPLACE INTO `mob_db` VALUES (1508,'QUVE','Quve','Quve',40,4559,0,414,306,1,299,469,12,12,0,61,24,19,37,24,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,0,0,0,0,0,0,0,0,4294,1); REPLACE INTO `mob_db` VALUES (1509,'LUDE','Lude','Lude',36,3214,0,392,247,2,287,451,14,10,0,59,21,18,36,21,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,0,0,0,0,0,0,4193,1); @@ -670,9 +670,9 @@ REPLACE INTO `mob_db` VALUES (1587,'KRABEN','Kraben','Kraben',50,5880,0,206,1322 REPLACE INTO `mob_db` VALUES (1588,'ORC_XMAS','Christmas Orc','Christmas Orc',24,1400,0,261,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1); REPLACE INTO `mob_db` VALUES (1589,'G_MANDRAGORA','Mandragora','Mandragora',12,405,0,0,0,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1590,'G_GEOGRAPHER','Geographer','Geographer',56,8071,0,0,0,3,467,621,28,26,1,66,47,60,68,44,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1591,'A_LUNATIC','Lunatic','Lunatic',29,2334,0,0,0,1,221,245,10,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1592,'A_MOBSTER','Gangster','Gangster',40,8000,0,0,0,1,300,355,20,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,7049,0,7049,0,7049,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1593,'A_ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',52,8613,0,0,0,1,830,930,40,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1591,'A_LUNATIC','Lunatic','Lunatic',29,2334,0,0,0,1,221,245,10,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1592,'A_MOBSTER','Gangster','Gangster',40,8000,0,0,0,1,300,355,20,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1593,'A_ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',52,8613,0,0,0,1,830,930,40,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1594,'G_FREEZER','Freezer','Freezer',72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1595,'G_MARIN','Marin','Marin',15,742,0,0,0,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1596,'G_TAMRUAN','Tamruan','Tamruan',52,10234,0,0,0,1,489,534,15,35,80,62,38,75,72,15,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -689,9 +689,9 @@ REPLACE INTO `mob_db` VALUES (1606,'G_GARM_BABY','Garm Baby','Garm Baby',61,2019 REPLACE INTO `mob_db` VALUES (1607,'G_GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,0,0,0,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1608,'G_THIEF_BUG__','Thief Bug Male','Thief Bug Male',19,583,0,0,0,1,76,88,15,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1609,'G_DANCING_DRAGON','Dancing Dragon','Zhu Po Long',54,9136,0,3030,769,2,550,789,39,10,55,62,55,25,72,22,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,668,100,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1610,'A_MUNAK','Munak','Munak',30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1611,'A_BON_GUN','Bongun','Bongun',32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1612,'A_HYEGUN','Hyegun','Yao Jun',56,9981,0,0,0,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,0,508,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1610,'A_MUNAK','Munak','Munak',30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1611,'A_BON_GUN','Bongun','Bongun',32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1612,'A_HYEGUN','Hyegun','Yao Jun',56,9981,0,0,0,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0); # Einbroch REPLACE INTO `mob_db` VALUES (1613,'METALING','Metaling','Metaling',26,889,0,492,249,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1); @@ -704,7 +704,7 @@ REPLACE INTO `mob_db` VALUES (1619,'PORCELLIO','Porcellio','Porcellio',28,1654,0 REPLACE INTO `mob_db` VALUES (1620,'NOXIOUS','Noxious','Noxious',35,2038,0,698,698,1,299,400,0,60,12,41,10,30,44,2,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,0,0,0,0,603,1,0,0,0,0,4334,1); REPLACE INTO `mob_db` VALUES (1621,'VENOMOUS','Venomous','Venomous',42,4653,0,1780,1280,1,422,844,0,49,12,60,17,19,60,1,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,0,0,0,0,603,1,0,0,0,0,4333,1); REPLACE INTO `mob_db` VALUES (1622,'TEDDY_BEAR','Teddy Bear','Teddy Bear',71,8109,0,5891,3455,1,621,1432,19,32,5,155,32,41,121,26,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1); -REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',86,560733,0,31010,32011,1,2740,5620,39,41,85,51,30,25,93,84,10,12,2,0,60,0x37B5,220,128,1104,240,15505,10000,607,5500,5104,3500,732,5500,7093,6000,1230,5,13017,1,617,1000,7327,5000,1242,100,1531,40,0,0,0,0,4342,1); +REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',86,560733,0,31010,32011,1,2740,5620,39,41,85,51,30,25,93,84,10,12,2,0,60,0x37B5,220,128,1104,240,15505,10000,607,5500,5104,3500,732,5500,7093,6000,1230,10,13017,1,617,1000,7327,5000,1242,50,1531,20,0,0,0,0,4342,1); REPLACE INTO `mob_db` VALUES (1624,'G_WASTE_STOVE','Waste Stove','Old Stove',68,15895,0,0,0,1,500,889,23,10,20,69,55,5,79,77,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1625,'G_PORCELLIO','Porcellio','Porcellio',43,5523,0,1024,693,1,164,494,0,8,0,31,21,50,64,85,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -715,16 +715,16 @@ REPLACE INTO `mob_db` VALUES (1626,'G_DARK_PRIEST','Hellion Revenant','Hellion R REPLACE INTO `mob_db` VALUES (1627,'ANOPHELES','Anopheles','Anopheles',23,100,0,99,55,1,48,63,0,90,1,200,4,5,120,5,10,12,0,4,64,0x3985,200,140,864,430,0,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1); REPLACE INTO `mob_db` VALUES (1628,'MOLE','Mole','Holden',36,2209,0,268,172,9,52,63,0,5,24,18,23,30,45,5,10,12,0,2,42,0x1089,300,140,960,504,0,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1); REPLACE INTO `mob_db` VALUES (1629,'HILL_WIND','Hill Wind','Hill Wind',43,3189,0,1800,1100,3,290,480,10,15,21,42,31,50,41,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1); -REPLACE INTO `mob_db` VALUES (1630,'BACSOJIN_','Bacsojin','White Lady',85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x39A5,130,576,960,480,22625,10000,607,5500,2513,2000,617,5000,1020,5500,603,5000,617,3000,7165,3000,7166,1000,2700,10,2234,10,0,0,0,0,4372,1); -REPLACE INTO `mob_db` VALUES (1631,'CHUNG_E_','Chung E','Green Maiden',59,23900,0,4256,920,2,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,0,0,0,0,5042,50,0,0,0,0,4373,1); +REPLACE INTO `mob_db` VALUES (1630,'BACSOJIN_','Bacsojin','White Lady',85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x39A5,130,576,960,480,22625,10000,607,5500,2513,2000,617,5000,1020,5500,603,5000,12395,50,7165,3000,7166,1000,2700,100,2234,10,0,0,0,0,4372,1); +REPLACE INTO `mob_db` VALUES (1631,'CHUNG_E_','Chung E','Green Maiden',59,23900,0,4256,920,2,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,12395,10,0,0,5042,50,0,0,0,0,4373,1); REPLACE INTO `mob_db` VALUES (1632,'GREMLIN','Gremlin','Gremlin',53,9280,0,4355,1768,1,329,762,29,25,80,41,59,75,62,15,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1); REPLACE INTO `mob_db` VALUES (1633,'BEHOLDER','Beholder','Beholder',56,7950,0,4821,3822,6,723,812,17,30,60,62,25,59,85,32,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1); # Normal advanced class mobs -REPLACE INTO `mob_db` VALUES (1634,'SEYREN','Seyren','Seyren Windsor',91,88402,0,100000,116460,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,603,30,2229,12,2317,1,1155,250,0,0,0,0,4358,1); -REPLACE INTO `mob_db` VALUES (1635,'EREMES','Eremes','Eremes Guile',87,60199,0,100000,99800,1,2020,2320,23,12,45,138,31,19,99,30,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,0,7347,2000,603,50,2514,1,1262,3,1264,30,678,110,2336,2,0,0,0,0,4360,1); -REPLACE INTO `mob_db` VALUES (1636,'HARWORD','Harword','Howard Alt-Eisen',83,78690,0,100000,112540,1,1890,2390,59,10,90,62,99,35,98,66,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,2514,1,2406,5,1361,110,2104,10,2318,1,603,50,0,0,0,0,4362,1); -REPLACE INTO `mob_db` VALUES (1637,'MAGALETA','Magaleta','Margaretha Sorin',90,61282,0,100000,117800,1,1300,2053,35,60,1,9,97,145,88,40,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,0,7347,2000,2607,20,1602,200,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1); -REPLACE INTO `mob_db` VALUES (1638,'SHECIL','Shecil','Cecil Damon',82,58900,0,100000,118260,14,1226,1854,25,15,1,145,27,32,134,80,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,603,50,2502,60,0,0,0,0,4368,1); +REPLACE INTO `mob_db` VALUES (1634,'SEYREN','Seyren','Seyren Windsor',91,88402,0,100000,116460,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,603,30,2229,12,2317,1,13421,1,0,0,0,0,4358,1); +REPLACE INTO `mob_db` VALUES (1635,'EREMES','Eremes','Eremes Guile',87,60199,0,100000,99800,1,2020,2320,23,12,45,138,31,19,99,30,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,0,7347,2000,1284,1,2514,1,1262,3,1264,30,678,110,2336,2,0,0,0,0,4360,1); +REPLACE INTO `mob_db` VALUES (1636,'HARWORD','Harword','Howard Alt-Eisen',83,78690,0,100000,112540,1,1890,2390,59,10,90,62,99,35,98,66,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,2514,1,1311,1,1361,110,2104,10,2318,1,603,50,0,0,0,0,4362,1); +REPLACE INTO `mob_db` VALUES (1637,'MAGALETA','Magaleta','Margaretha Sorin',90,61282,0,100000,117800,1,1300,2053,35,60,1,9,97,145,88,40,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,0,7347,2000,1647,2,1602,200,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1); +REPLACE INTO `mob_db` VALUES (1638,'SHECIL','Shecil','Cecil Damon',82,58900,0,100000,118260,14,1226,1854,25,15,1,145,27,32,134,80,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,603,50,1745,1,0,0,0,0,4368,1); REPLACE INTO `mob_db` VALUES (1639,'KATRINN','Katrinn','Kathryne Keyron',92,47280,0,100000,116470,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,7345,3000,603,50,1646,1,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1); # MVP Slaves REPLACE INTO `mob_db` VALUES (1640,'G_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,347590,0,18000,10000,1,4238,5040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0); @@ -741,8 +741,8 @@ REPLACE INTO `mob_db` VALUES (1649,'B_MAGALETA','High Priest Magaleta','High Pri REPLACE INTO `mob_db` VALUES (1650,'B_SHECIL','Sniper Shecil','Sniper Cecil',99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,2046500,10000,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1); REPLACE INTO `mob_db` VALUES (1651,'B_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,2004100,10000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1); # 1'st Class Mobs -REPLACE INTO `mob_db` VALUES (1652,'YGNIZEM','Ygnizem','Egnigem Cenia',58,11200,0,4870,98,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,7347,1000,2317,1,1158,20,1127,20,2313,10,1152,80,1170,1,0,0,0,0,4346,1); -REPLACE INTO `mob_db` VALUES (1653,'WHIKEBAIN','Whikebain','Wickebine Tres',62,7320,0,4204,21,1,693,889,9,8,1,102,34,20,83,30,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,1,13004,10,0,0,0,0,4348,1); +REPLACE INTO `mob_db` VALUES (1652,'YGNIZEM','Ygnizem','Egnigem Cenia',58,11200,0,4870,98,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1); +REPLACE INTO `mob_db` VALUES (1653,'WHIKEBAIN','Whikebain','Wickebine Tres',62,7320,0,4204,21,1,693,889,9,8,1,102,34,20,83,30,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,2,13004,10,0,0,0,0,4348,1); REPLACE INTO `mob_db` VALUES (1654,'ARMAIA','Armaia','Armeyer Dinze',66,7110,0,4008,35,1,750,913,42,6,5,36,50,15,89,60,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1); REPLACE INTO `mob_db` VALUES (1655,'EREND','Erend','Errende Ebecee',59,6980,0,4501,67,1,896,1159,14,30,1,31,41,93,67,30,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1); REPLACE INTO `mob_db` VALUES (1656,'KAVAC','Kavac','Kavach Icarus',60,7899,0,4090,86,9,684,904,12,5,48,100,10,15,118,40,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1); @@ -755,20 +755,21 @@ REPLACE INTO `mob_db` VALUES (1661,'G_EREND','Erend','Errende Ebecee',59,6980,0, REPLACE INTO `mob_db` VALUES (1662,'G_KAVAC','Kavac','Kavach Icarus',60,7899,0,0,0,9,584,804,12,5,48,100,10,20,118,40,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1663,'G_RAWREL','Rawrel','Laurell Weinder',61,6168,0,0,0,1,330,417,8,48,1,41,5,100,45,10,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Juperos REPLACE INTO `mob_db` VALUES (1664,'POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,3900,1800,9,800,900,10,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1665,'POTON_CANON_1','Photon Cannon','Photon Cannon',67,7500,0,4300,2000,9,700,800,15,30,1,40,30,40,86,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1666,'POTON_CANON_2','Photon Cannon','Photon Cannon',64,7100,0,3100,2700,9,800,900,8,30,1,40,21,29,80,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1667,'POTON_CANON_3','Photon Cannon','Photon Cannon',65,7800,0,3800,2300,9,700,800,15,30,1,40,23,30,90,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1668,'ARCHDAM','Archdam','Archdam',79,25000,0,8000,5000,3,1000,2000,15,15,65,65,35,75,75,15,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1); -REPLACE INTO `mob_db` VALUES (1669,'DIMIK','Dimik','Dimik',77,10000,0,0,0,5,1040,1880,45,28,15,35,40,15,120,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1669,'DIMIK','Dimik','Dimik',77,10000,0,0,0,5,1040,1880,45,28,15,35,40,15,120,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1); REPLACE INTO `mob_db` VALUES (1670,'DIMIK_1','Dimik','Dimik',79,16000,0,6400,3500,7,1140,1980,45,28,15,88,20,20,120,40,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7352,50,999,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1); REPLACE INTO `mob_db` VALUES (1671,'DIMIK_2','Dimik','Dimik',89,29000,0,8000,5000,5,1440,2280,45,28,15,40,30,30,150,70,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1); REPLACE INTO `mob_db` VALUES (1672,'DIMIK_3','Dimik','Dimik',80,19000,0,5900,2800,5,1240,2080,68,28,15,30,78,20,120,30,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1); REPLACE INTO `mob_db` VALUES (1673,'DIMIK_4','Dimik','Dimik',82,13900,0,5800,4500,5,1840,2840,45,28,15,20,20,10,120,30,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1); -REPLACE INTO `mob_db` VALUES (1674,'MONEMUS','Monemus','Monemus',88,80000,0,0,0,5,2000,3000,54,25,0,1,90,24,144,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,0,7049,2000,953,1000,7049,0,7049,0,7049,0,7049,0,7049,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1675,'VENATU','Venatu','Venatu',77,8000,0,0,0,2,1200,1800,35,20,5,26,24,5,75,40,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1674,'MONEMUS','Monemus','Monemus',88,80000,0,0,0,5,2000,3000,54,25,0,1,90,24,144,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1675,'VENATU','Venatu','Venatu',77,8000,0,0,0,2,1200,1800,35,20,5,26,24,5,75,40,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1); REPLACE INTO `mob_db` VALUES (1676,'VENATU_1','Venatu','Venatu',72,8900,0,4000,2000,2,800,1400,30,20,5,26,24,5,82,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7356,350,999,300,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1); -REPLACE INTO `mob_db` VALUES (1677,'VENATU_2','Venatu','Venatu',80,9000,0,4000,2000,2,900,1500,30,20,5,82,32,5,105,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,5,985,10,12127,100,0,0,0,0,4369,1); +REPLACE INTO `mob_db` VALUES (1677,'VENATU_2','Venatu','Venatu',80,9000,0,4000,2000,2,900,1500,30,20,5,82,32,5,105,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1); REPLACE INTO `mob_db` VALUES (1678,'VENATU_3','Venatu','Venatu',78,9500,0,4500,2000,2,800,1400,30,20,5,26,68,5,95,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1); REPLACE INTO `mob_db` VALUES (1679,'VENATU_4','Venatu','Venatu',75,12300,0,4000,2000,2,800,1400,30,20,5,26,24,5,100,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1); REPLACE INTO `mob_db` VALUES (1680,'HILL_WIND_1','Hill Wind','Hill Wind',45,4233,0,2132,1722,3,320,510,10,15,21,42,31,50,67,23,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1); @@ -776,12 +777,12 @@ REPLACE INTO `mob_db` VALUES (1681,'GEMINI','Gemini-S58','Gemini-S58',72,57870,0 REPLACE INTO `mob_db` VALUES (1682,'REMOVAL','Removal','Remover',55,10289,0,3831,1278,1,558,797,5,20,1,20,56,35,57,20,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1); REPLACE INTO `mob_db` VALUES (1683,'G_POTON_CANON','Photon Cannon','Photon Cannon',46,7000,0,0,0,9,560,570,5,10,1,36,36,20,56,30,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1684,'G_ARCHDAM','Archdam','Archdam',57,11000,0,0,0,3,600,700,15,15,65,65,35,75,75,15,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1685,'APOCALIPS_H','Vesper','Vesper',97,640700,0,200000,100000,3,4000,10000,50,54,100,50,30,70,160,150,10,12,2,2,46,0x37B5,180,504,912,432,100000,10000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,4374,1); +REPLACE INTO `mob_db` VALUES (1685,'APOCALIPS_H','Vesper','Vesper',97,640700,0,200000,100000,3,4000,10000,50,54,100,50,30,70,160,150,10,12,2,2,46,0x37B5,180,504,912,432,100000,10000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1); REPLACE INTO `mob_db` VALUES (1686,'ORC_BABY','Orc Baby','Orc Baby',21,912,0,220,220,1,135,270,10,10,30,15,10,18,35,2,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1); REPLACE INTO `mob_db` VALUES (1687,'GREEN_IGUANA','Green Iguana','Grove',54,6444,0,2400,2050,1,550,650,0,10,1,52,64,5,98,14,10,12,1,2,42,0x83,200,720,528,432,0,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,511,1,0,0,0,0,4377,1); REPLACE INTO `mob_db` VALUES (1688,'LADY_TANEE','Lady Tanee','Lady Tanee',89,493000,0,64995,43222,14,450,2170,20,44,1,125,48,78,210,38,10,12,2,3,64,0x1A4,100,576,432,360,32497,10000,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1); REPLACE INTO `mob_db` VALUES (1689,'G_BACSOJIN','Bacsojin','White Lady',85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1690,'G_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',12,15,0,0,0,1,0,0,100,99,1,1,1,1,1,1,10,12,1,2,42,0xC3,160,1120,552,511,0,0,0,0,0,0,0,0,12123,5000,12122,5000,12124,5000,663,5000,12123,5000,12122,5000,12124,5000,663,5000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1690,'G_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',12,15,0,0,0,1,0,0,100,99,1,1,1,1,1,1,10,12,1,2,42,0xC3,160,1120,552,511,0,0,0,0,0,0,0,0,12194,100,12706,300,12708,300,7888,5000,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1691,'G_KRABEN','Kraben','Kraben',70,10880,0,0,0,1,125,765,5,42,50,155,1,66,112,60,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0); # Thanatos Tower & Abyss @@ -791,7 +792,7 @@ REPLACE INTO `mob_db` VALUES (1694,'PLASMA_R','Plasma','Plasma',43,5700,0,2000,1 REPLACE INTO `mob_db` VALUES (1695,'PLASMA_G','Plasma','Plasma',47,7600,0,2000,1000,3,300,700,0,30,1,30,5,61,90,30,10,12,0,0,82,0x3885,150,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1); REPLACE INTO `mob_db` VALUES (1696,'PLASMA_P','Plasma','Plasma',49,5900,0,2000,1000,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x3885,150,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1); REPLACE INTO `mob_db` VALUES (1697,'PLASMA_B','Plasma','Plasma',44,8200,0,2000,1000,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x3885,150,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1); -REPLACE INTO `mob_db` VALUES (1698,'DEATHWORD','Deathword','Death Word',65,18990,0,2986,4912,1,622,1102,10,40,50,75,10,20,140,45,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,0,1097,4000,7015,300,1006,20,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1); +REPLACE INTO `mob_db` VALUES (1698,'DEATHWORD','Deathword','Death Word',65,18990,0,2986,4912,1,622,1102,10,40,50,75,10,20,140,45,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1); REPLACE INTO `mob_db` VALUES (1699,'ANCIENT_MIMIC','Ancient Mimic','Ancient Mimic',60,8080,0,2950,2650,1,530,1697,20,40,50,100,30,40,150,110,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1); REPLACE INTO `mob_db` VALUES (1700,'OBSERVATION','Observation','Dame of Sentinel',81,65111,0,39872,33120,2,1666,2609,55,55,30,74,56,126,145,114,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1); REPLACE INTO `mob_db` VALUES (1701,'SHELTER','Shelter','Mistress of Shelter',80,38000,0,29010,25110,2,1871,1971,22,63,12,67,34,167,157,120,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1); @@ -815,7 +816,7 @@ REPLACE INTO `mob_db` VALUES (1718,'NOVUS_','Novus','Novus',43,5830,0,1411,1100, REPLACE INTO `mob_db` VALUES (1719,'DETALE','Detale','Detardeurus',90,960000,0,291850,123304,3,4560,5548,66,59,100,90,30,136,140,56,10,12,2,9,67,0x37B5,250,432,936,360,145925,10000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1); REPLACE INTO `mob_db` VALUES (1720,'HYDRO','Hydro','Hydrolancer',89,308230,0,83450,2480,3,2554,3910,52,62,1,96,110,86,94,32,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1); REPLACE INTO `mob_db` VALUES (1721,'DRAGON_EGG','Dragon Egg','Dragon Egg',43,18322,0,6740,0,0,1,2,78,60,1,1,56,67,1,63,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1); -REPLACE INTO `mob_db` VALUES (1722,'EVENT_JAKK','Jakk','Jakk',99,10310,0,103,100,1,115,182,5,11,1,28,18,13,35,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1722,'EVENT_JAKK','Jakk','Jakk',99,10310,0,103,100,1,115,182,5,11,1,28,18,13,35,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,0,0,0,0,5134,10000); REPLACE INTO `mob_db` VALUES (1723,'A_SHECIL','Shecil Damon','Cecil Damon',82,30000,0,0,0,14,600,900,25,15,1,145,27,32,134,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1724,'A_POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,0,0,9,1000,1300,10,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1725,'R_PORING','Poring','Poring',1,50,0,0,0,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -825,13 +826,13 @@ REPLACE INTO `mob_db` VALUES (1728,'R_DESERT_WOLF_B','Desert Wolf Baby','Baby De REPLACE INTO `mob_db` VALUES (1729,'R_BAPHOMET_','Baphomet Jr.','Baphomet Jr.',50,8578,0,0,0,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1730,'R_DEVIRUCHI','Deviruchi','Deviruchi',46,7360,0,0,0,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1731,'G_DOPPELGANGER','Doppelganger','Doppelganger',72,12000000,0,3000000,2000000,1,5000,10000,99,99,88,180,70,75,180,65,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1732,'G_TREASURE_BOX','Treasure Chest','Treasure Chest',98,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1732,'G_TREASURE_BOX','Treasure Chest','Treasure Chest',98,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # Kiel Dungeon monsters REPLACE INTO `mob_db` VALUES (1733,'KIEL','Kiel','Kiehl',90,523000,0,36500,23405,3,1682,3311,28,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',90,1523000,0,2356200,512602,3,3280,6560,28,32,100,130,30,160,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,1178100,10000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1); REPLACE INTO `mob_db` VALUES (1735,'ALICEL','Alicel','Alicel',75,37520,0,8890,5420,2,1800,2770,30,30,50,58,50,51,92,40,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,0,7512,2000,7507,3000,999,200,7317,500,1270,5,985,10,2517,20,0,0,0,0,4401,1); -REPLACE INTO `mob_db` VALUES (1736,'ALIOT','Aliot','Aliot',75,48290,0,13020,4006,2,950,2470,35,15,50,32,87,12,68,19,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,7317,500,1408,10,985,10,13405,15,0,0,0,0,4402,1); +REPLACE INTO `mob_db` VALUES (1736,'ALIOT','Aliot','Aliot',75,48290,0,13020,4006,2,950,2470,35,15,50,32,87,12,68,19,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,7317,500,1810,10,985,10,13405,15,0,0,0,0,4402,1); REPLACE INTO `mob_db` VALUES (1737,'ALIZA','Aliza','Aliza',69,19000,0,6583,3400,1,750,1100,8,5,74,74,52,35,110,140,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1); REPLACE INTO `mob_db` VALUES (1738,'CONSTANT','Constant','Constant',55,10000,0,3230,116,1,460,580,12,12,50,28,26,47,66,14,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1739,'G_ALICEL','Alicel','Alicel',75,37520,0,0,0,2,1600,2570,30,30,50,60,50,51,92,40,10,12,1,6,60,0x318D,150,1080,480,504,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -848,7 +849,7 @@ REPLACE INTO `mob_db` VALUES (1749,'G_MEDUSA','Medusa','Medusa',79,22408,0,0,0,1 REPLACE INTO `mob_db` VALUES (1750,'G_RED_PLANT','Red Plant','Red Plant',1,100,0,0,0,1,100,200,100,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # Odin monsters -REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',99,3567200,0,2854900,3114520,3,5560,9980,25,42,100,120,30,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,1427450,10000,617,5500,603,5000,616,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,0,0,0,0,0,0,4407,1); +REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',99,3567200,0,2854900,3114520,3,5560,9980,25,42,100,120,30,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,1427450,10000,617,5500,603,5000,616,2000,7510,5000,2357,800,2524,1500,2421,1500,2229,2500,7024,2500,0,0,0,0,0,0,4407,1); REPLACE INTO `mob_db` VALUES (1752,'SKOGUL','Skogul','Skogul',70,87544,0,27620,10,2,1110,1930,20,15,1,69,70,50,67,52,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1); REPLACE INTO `mob_db` VALUES (1753,'FRUS','Frus','Frus',69,83422,0,20620,10,2,1110,1780,20,15,1,69,60,50,76,52,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1); REPLACE INTO `mob_db` VALUES (1754,'SKEGGIOLD','Skeggiold','Skeggiold',81,295200,0,91100,10,1,1400,2020,12,24,80,100,50,72,90,50,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1); @@ -869,8 +870,8 @@ REPLACE INTO `mob_db` VALUES (1767,'EM_DEVILING','Deviling','Deviling',99,128430 # Rachel / Ice Dungeon monsters REPLACE INTO `mob_db` VALUES (1768,'GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',89,2298000,0,962175,276445,3,5880,9516,10,20,100,115,98,78,111,50,10,12,2,0,68,0x37B5,200,1344,2880,576,481087,10000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1); REPLACE INTO `mob_db` VALUES (1769,'AGAV','Agav','Agav',73,29620,0,9780,6622,1,103,1109,15,35,1,32,27,132,69,15,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,0,0,0,0,0,0,4409,1); -REPLACE INTO `mob_db` VALUES (1770,'ECHIO','Echio','Echio',69,34900,0,13560,4300,1,750,1800,33,11,74,74,52,35,59,56,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,20,12183,20,7563,100,2366,20,0,0,0,0,4410,1); -REPLACE INTO `mob_db` VALUES (1771,'VANBERK','Vanberk','Vanberk',59,9988,0,4203,901,1,230,660,24,6,69,66,39,29,51,41,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,10,0,0,7563,100,0,0,0,0,0,0,4411,1); +REPLACE INTO `mob_db` VALUES (1770,'ECHIO','Echio','Echio',69,34900,0,13560,4300,1,750,1800,33,11,74,74,52,35,59,56,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,500,12183,20,7563,100,2366,20,0,0,0,0,4410,1); +REPLACE INTO `mob_db` VALUES (1771,'VANBERK','Vanberk','Vanberk',59,9988,0,4203,901,1,230,660,24,6,69,66,39,29,51,41,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,10,13027,5,7563,100,0,0,0,0,0,0,4411,1); REPLACE INTO `mob_db` VALUES (1772,'ISILLA','Isilla','Isilla',62,8297,0,3001,3001,1,89,733,11,19,1,28,12,97,57,12,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,0,0,0,0,0,0,4412,1); REPLACE INTO `mob_db` VALUES (1773,'HODREMLIN','Hodremlin','Hodremlin',61,12180,0,6782,2022,1,845,1678,29,25,80,41,81,56,62,11,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1); REPLACE INTO `mob_db` VALUES (1774,'SEEKER','Seeker','Seeker',65,10090,0,5671,4278,6,723,852,17,30,60,52,34,143,107,27,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1); @@ -880,7 +881,7 @@ REPLACE INTO `mob_db` VALUES (1777,'ICE_TITAN','Ice Titan','Ice Titan',60,38200, REPLACE INTO `mob_db` VALUES (1778,'GAZETI','Gazeti','Gazeti',55,12300,0,5758,2075,10,512,612,65,25,1,12,20,60,101,5,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,0,0,0,0,0,0,0,0,0,0,4418,1); REPLACE INTO `mob_db` VALUES (1779,'KTULLANUX','Ktullanux','Ktullanux',98,4417000,0,2720050,1120020,3,1680,10360,40,42,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,1360025,10000,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1); REPLACE INTO `mob_db` VALUES (1780,'MUSCIPULAR','Muscipular','Muscipular',57,4332,0,1706,1706,3,521,726,12,12,1,53,39,25,92,51,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,0,0,0,0,0,0,4420,1); -REPLACE INTO `mob_db` VALUES (1781,'DROSERA','Drosera','Drosera',46,7221,0,2612,1022,7,389,589,10,13,1,30,27,17,76,41,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,0,7565,3000,938,3000,1032,3000,1033,2000,621,3,905,1000,0,0,0,0,0,0,4421,1); +REPLACE INTO `mob_db` VALUES (1781,'DROSERA','Drosera','Drosera',46,7221,0,2612,1022,7,389,589,10,13,1,30,27,17,76,41,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,0,7565,3000,938,3000,1032,2000,1033,2000,621,3,905,1000,0,0,0,0,0,0,4421,1); REPLACE INTO `mob_db` VALUES (1782,'ROWEEN','Roween','Roween',31,5716,0,1669,1266,1,298,377,0,7,51,39,48,18,67,19,10,12,1,2,24,0x108B,200,412,840,300,0,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1); REPLACE INTO `mob_db` VALUES (1783,'GALION','Galion','Galion',44,32240,0,10020,3368,1,336,441,11,12,51,52,59,25,72,32,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1); REPLACE INTO `mob_db` VALUES (1784,'STAPO','Stapo','Stapo',23,666,0,332,221,1,135,370,90,5,12,11,15,12,23,1,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1); @@ -888,37 +889,37 @@ REPLACE INTO `mob_db` VALUES (1785,'ATROCE','Atroce','Atroce',82,1008420,0,29555 REPLACE INTO `mob_db` VALUES (1786,'G_AGAV','Agav','Agav',73,25620,0,0,0,1,103,909,15,35,1,32,27,132,69,15,10,12,1,7,40,0x3295,300,768,360,360,0,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1787,'G_ECHIO','Echio','Echio',69,36900,0,0,0,1,750,1500,33,11,74,74,52,35,59,56,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1788,'G_ICE_TITAN','Ice Titan','Ice Titan',60,32900,0,0,0,1,1090,1570,71,15,99,34,88,10,79,29,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1789,'ICEICLE','Iceicle','Iceicle',38,10,0,5,5,3,241,1082,0,10,1,10,10,10,172,5,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,7066,1000,7066,500,7066,500,7066,500,7066,500,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1789,'ICEICLE','Iceicle','Iceicle',38,10,0,5,5,3,241,1082,0,10,1,10,10,10,172,5,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,7066,1000,7066,500,7066,500,7066,500,7066,500,0,0,0,0,7066,500); REPLACE INTO `mob_db` VALUES (1790,'G_RAFFLESIA','Rafflesia','Rafflesia',17,1333,0,0,0,3,105,127,0,2,1,18,24,11,37,10,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1791,'G_GALION','Galion','Galion',44,32240,0,0,0,1,336,441,11,12,51,52,59,25,72,32,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1792,'SOCCER_BALL','Soccer Ball','Soccer Ball',1,1000,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1793,'G_MEGALITH','Megalith','Megalith',45,5300,0,0,0,9,264,314,50,25,1,45,60,5,95,5,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1794,'G_ROWEEN','Roween','Roween',31,5716,0,0,0,1,298,377,0,7,51,39,48,18,67,19,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1795,'BLOODY_KNIGHT_','Bloody Knight','Bloody Knight',82,800000,0,0,0,3,10000,30000,60,60,88,121,100,100,125,55,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,7578,10000,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1796,'AUNOE','Aunoe','Aunoe',62,21297,0,7102,5102,1,1500,2144,11,19,1,28,12,91,57,12,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,0,2109,1,2545,1,7568,2500,2422,1,7563,1000,2610,10,2601,3,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1797,'FANAT','Fanat','Fanat',62,21297,0,7102,5102,1,1500,2144,11,19,1,28,12,91,57,12,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,0,2109,1,2388,1,7568,2500,526,10,7563,1000,5172,10,13027,10,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1796,'AUNOE','Aunoe','Aunoe',62,21297,0,7102,5102,1,1500,2144,11,19,1,28,12,91,57,12,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2109,1,12183,50,7563,100,2545,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1797,'FANAT','Fanat','Fanat',62,21297,0,7102,5102,1,1500,2144,11,19,1,28,12,91,57,12,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,0,2388,1,2422,1,7563,1000,2109,1,12183,10,7568,2500,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1798,'TREASURE_BOX_','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1799,'G_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',99,347590,0,18000,10000,1,4238,5040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1800,'G_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',99,211230,0,18000,10000,1,3189,5289,27,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1801,'G_HARWORD_','Whitesmith Harword','Mastersmith Howard',99,310000,0,18000,10000,1,4822,5033,66,36,100,73,112,35,136,60,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1802,'G_MAGALETA_','High Priest Magaleta','High Priest Margaretha',99,182910,0,18000,10000,1,1688,2580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1803,'G_SHECIL_','Sniper Shecil','Sniper Cecil',99,209000,0,18000,10000,14,1892,5113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1804,'G_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',99,189920,0,18000,10000,1,497,2094,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1805,'B_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,4835600,1569970,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1806,'B_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,4083400,1592380,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1807,'B_HARWORD_','Whitesmith Harword','Mastersmith Howard',99,1460000,0,4002340,1421000,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1808,'B_MAGALETA_','High Priest Magaleta','High Priest Margaretha',99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1809,'B_SHECIL_','Sniper Shecil','Sniper Cecil',99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1810,'B_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1811,'G_SMOKIE_','Smokie','Bandit',18,641,0,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1812,'EVENT_LUDE','Lude','Delightful Lude',99,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1813,'EVENT_HYDRO','Hydro','Hydrolancer',99,1880000,0,4000000,2000000,3,15000,47767,60,55,1,142,200,250,189,32,10,12,2,8,28,0x37B5,100,972,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1798,'TREASURE_BOX_','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1799,'G_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',99,347590,0,18000,10000,1,4238,5040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1800,'G_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',99,211230,0,18000,10000,1,3189,5289,27,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1801,'G_HARWORD_','Whitesmith Harword','Mastersmith Howard',99,310000,0,18000,10000,1,4822,5033,66,36,100,73,112,35,136,60,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1802,'G_MAGALETA_','High Priest Magaleta','High Priest Margaretha',99,182910,0,18000,10000,1,1688,2580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1803,'G_SHECIL_','Sniper Shecil','Sniper Cecil',99,209000,0,18000,10000,14,1892,5113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1804,'G_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',99,189920,0,18000,10000,1,497,2094,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1805,'B_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,4835600,1569970,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1806,'B_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,4083400,1592380,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1807,'B_HARWORD_','Whitesmith Harword','Mastersmith Howard',99,1460000,0,4002340,1421000,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1808,'B_MAGALETA_','High Priest Magaleta','High Priest Margaretha',99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1809,'B_SHECIL_','Sniper Shecil','Sniper Cecil',99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1810,'B_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1811,'G_SMOKIE_','Smokie','Bandit',18,641,0,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1812,'EVENT_LUDE','Lude','Delightful Lude',99,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1813,'EVENT_HYDRO','Hydro','Hydrolancer',99,1880000,0,4000000,2000000,3,15000,47767,60,55,1,142,200,250,189,32,10,12,2,8,28,0x37B5,100,972,672,432,0,0,0,0,0,0,0,0,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1814,'EVENT_MOON','Moonlight Flower','Moonlight Flower',80,30000,0,30000,30000,1,500,800,50,50,1,35,45,112,69,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1815,'EVENT_RICECAKE','Rice Cake','Rice Cake',12,20,0,0,0,1,1,2,100,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,1320,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1816,'EVENT_GOURD','Gourd','Gourd',12,1000,0,0,0,1,1,2,100,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1817,'EVENT_DETALE','Detale','Detarderous',99,8880000,0,4500000,2500000,3,32767,65534,65,65,1,142,200,250,189,50,10,12,2,8,48,0x37B5,100,972,936,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1818,'EVENT_ALARM','Alarm','Alarm',58,10647,0,0,0,0,1,1,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000); +REPLACE INTO `mob_db` VALUES (1815,'EVENT_RICECAKE','Rice Cake','Rice Cake',12,20,0,0,0,1,1,2,100,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,1320,0,300,0,0,0,0,0,0,0,0,7613,10000,7613,10000,7613,10000,7613,10000,7613,10000,7613,5000,7613,4000,0,0,0,0,7613,3000); +REPLACE INTO `mob_db` VALUES (1816,'EVENT_GOURD','Gourd','Gourd',12,1000,0,0,0,1,1,2,100,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,0,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1817,'EVENT_DETALE','Detale','Detarderous',99,8880000,0,4500000,2500000,3,32767,65534,65,65,1,142,200,250,189,50,10,12,2,8,48,0x37B5,100,972,936,360,0,0,0,0,0,0,0,0,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1818,'EVENT_ALARM','Alarm','Alarm',58,10647,0,0,0,0,1,2,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000); REPLACE INTO `mob_db` VALUES (1819,'EVENT_BATHORY','Bathory','Bathory',44,5415,0,0,0,1,198,398,0,60,1,76,24,85,65,15,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1820,'EVENT_BIGFOOT','Bigfoot','Bigfoot',25,1619,0,0,0,1,198,220,10,0,1,25,55,15,20,25,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1821,'EVENT_DESERT_WOLF','Desert Wolf','Desert Wolf',27,1716,0,0,0,1,169,208,0,10,56,27,45,15,56,10,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -927,7 +928,7 @@ REPLACE INTO `mob_db` VALUES (1823,'EVENT_FREEZER','Freezer','Freezer',72,8636,0 REPLACE INTO `mob_db` VALUES (1824,'EVENT_GARM_BABY','Garm Baby','Garm Baby',61,20199,0,0,0,1,680,1179,34,13,45,30,56,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1825,'EVENT_GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,0,0,0,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1826,'EVENT_MYST','Myst','Myst',38,3745,0,0,0,1,365,445,0,40,1,38,18,0,53,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1827,'EVENT_SASQUATCH','Sasquatch','Sasquatch',30,3163,0,0,0,1,250,280,5,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1827,'EVENT_SASQUATCH','Sasquatch','Sasquatch',30,3163,0,0,0,1,250,280,5,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1828,'EVENT_GULLINBURSTI','Gullinbrusti','Gullinbrusti',20,20,0,0,0,1,59,72,100,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1829,'SWORD_GUARDIAN','Sword Guardian','Sword Master',86,152533,0,155013,122604,2,7590,9140,60,33,110,40,54,65,125,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,0,0,0,0,0,0,4427,1); REPLACE INTO `mob_db` VALUES (1830,'BOW_GUARDIAN','Bow Guardian','Bow Master',80,80404,0,50149,23006,12,1840,2520,40,62,95,80,33,90,165,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,0,0,0,0,0,0,4428,1); @@ -939,19 +940,19 @@ REPLACE INTO `mob_db` VALUES (1835,'G_KASA','Kasa','Kasa',85,80375,0,0,0,2,3030, REPLACE INTO `mob_db` VALUES (1836,'MAGMARING','Magmaring','Magmaring',40,5300,0,2110,1910,1,550,700,25,24,40,60,30,10,60,17,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1); REPLACE INTO `mob_db` VALUES (1837,'IMP','Imp','Fire Imp',76,46430,0,25200,11077,1,1059,1509,27,50,37,76,30,150,99,10,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,0,7122,3000,13303,3,7098,2500,1376,10,1972,25,12374,20,0,0,0,0,0,0,4433,1); REPLACE INTO `mob_db` VALUES (1838,'KNOCKER','Knocker','Knocker',50,7755,0,2202,4023,1,889,990,28,50,25,44,50,62,65,60,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2208,10,2124,3,1732,5,0,0,0,0,4434,1); -REPLACE INTO `mob_db` VALUES (1839,'BYORGUE','Byorgue','Byorgue',86,38133,0,19000,9500,2,1340,2590,20,13,25,80,12,30,70,10,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,100,603,40,2530,1,7110,4365,0,0,0,0,4426,1); -REPLACE INTO `mob_db` VALUES (1840,'GOLDEN_SAVAGE','Golden Savage','Golden Savage',99,500,0,1,1,1,500,700,100,99,0,1,1,50,120,1,10,12,2,2,42,0xF1,150,1960,960,384,0,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1839,'BYORGUE','Byorgue','Byorgue',86,38133,0,19000,9500,2,1340,2590,20,13,25,80,12,30,70,10,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,500,603,40,2530,1,7110,4365,0,0,0,0,4426,1); +REPLACE INTO `mob_db` VALUES (1840,'GOLDEN_SAVAGE','Golden Savage','Golden Savage',99,500,0,1,1,1,500,700,100,99,0,1,1,50,120,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,12239,3000,0,0,0,0); REPLACE INTO `mob_db` VALUES (1841,'G_SNAKE_','Snake Lord\'s Minion','Snake Lord\'s Minion',15,10,0,1,1,1,46,55,100,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,0,7720,2000,12245,200,7721,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1842,'G_ANACONDAQ_','Snake Lord\'s Minion','Snake Lord\'s Minion',23,15,0,1,1,1,124,157,100,99,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,0,7720,3500,12245,400,7721,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1843,'G_SIDE_WINDER_','Snake Lord\'s Minion','Snake Lord\'s Minion',43,18,0,1,1,1,240,320,100,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,7720,7000,12245,600,7721,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1844,'G_ISIS_','Snake Lord\'s Minion','Snake Lord\'s Minion',47,25,0,1,1,1,423,507,100,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,336,768,0,0,0,0,0,0,0,0,7720,8000,12245,800,7721,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1845,'G_TREASURE_BOX_','Treasure Box','Treasure Box',98,0,0,0,0,0,0,10,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1846,'DREAMMETAL','Dream Metal','Dream Metal',90,999,0,1,1,1,1,1,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1844,'G_ISIS_','Snake Lord\'s Minion','Snake Lord\'s Minion',47,25,0,1,1,1,423,507,100,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,7720,8000,12245,800,7721,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1845,'G_TREASURE_BOX_','Treasure Box','Treasure Box',98,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,0,0,0,0,12245,2500); +REPLACE INTO `mob_db` VALUES (1846,'DREAMMETAL','Dream Metal','Dream Metal',90,999,0,1,1,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1847,'EVENT_PORING','Poring','Poring',98,10000000,0,1000000,1000000,1,15000,20000,60,60,1,60,120,120,160,30,10,12,1,8,28,0x37B5,100,76,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1848,'EVENT_BAPHOMET','Baphomet','Baphomet',50,45000,0,1000,1000,2,1500,1500,10,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1848,'EVENT_BAPHOMET','Baphomet','Baphomet',50,45000,0,1000,1000,2,1500,3000,10,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1849,'EVENT_OSIRIS','Osiris','Osiris',60,125000,0,2000,2000,1,3500,5000,20,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1850,'EVENT_ORCHERO','Orc Hero','Orc Hero',50,175000,0,3000,3000,1,4000,5500,25,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1851,'EVENT_MOBSTER','Mobster','Mobster',61,7991,0,2,2,1,500,500,45,35,90,255,20,35,76,55,10,12,1,7,20,0x3695,250,1100,580,560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1851,'EVENT_MOBSTER','Mobster','Mobster',61,7991,0,2,2,1,500,1000,45,35,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1852,'G_EM_ANGELING','Angeling','Angeling',99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1853,'G_EM_DEVILING','Deviling','Deviling',99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1854,'E_MUKA','Muka','Muka',17,610,0,273,120,1,40,49,5,5,15,15,30,5,20,10,10,12,2,3,22,0x83,300,1960,960,384,0,0,0,0,0,0,0,0,993,70,952,9000,713,2000,7742,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1); @@ -964,23 +965,25 @@ REPLACE INTO `mob_db` VALUES (1860,'E_COCO','Coco','Coco',17,817,0,120,78,1,56,6 REPLACE INTO `mob_db` VALUES (1861,'E_CHOCO','Choco','Choco',43,4278,0,1265,1265,1,315,402,5,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,7749,1000,607,25,0,0,0,0,4285,1); REPLACE INTO `mob_db` VALUES (1862,'E_MARTIN','Martin','Martin',18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,0,1017,9000,7750,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1); REPLACE INTO `mob_db` VALUES (1863,'E_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',25,4500,0,0,0,1,292,406,14,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); + # Cursed Abbey -REPLACE INTO `mob_db` VALUES (1864,'ZOMBIE_SLAUGHTER','Zombie Slaughter','Zombie Slaughter',77,43000,0,12000,8500,1,855,1655,35,45,1,30,50,1,75,35,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,0,0,0,0,0,0,0,0,4435,1); +REPLACE INTO `mob_db` VALUES (1864,'ZOMBIE_SLAUGHTER','Zombie Slaughter','Zombie Slaughter',77,43000,0,12000,8500,1,1055,1655,35,45,1,30,50,1,75,35,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,0,0,0,0,0,0,0,0,4435,1); REPLACE INTO `mob_db` VALUES (1865,'RAGGED_ZOMBIE','Ragged Zombie','Ragged Zombie',75,25000,0,8500,5500,9,1200,1500,25,35,1,77,25,10,101,50,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,0,0,0,0,0,0,4436,1); REPLACE INTO `mob_db` VALUES (1866,'HELL_POODLE','Hell Poodle','Hell Poodle',71,9000,0,4000,3000,1,400,600,35,20,5,26,14,5,39,10,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1); -REPLACE INTO `mob_db` VALUES (1867,'BANSHEE','Banshee','Banshee',81,35111,0,17000,12000,1,1666,2609,30,55,30,74,1,120,75,1,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4438,1); -REPLACE INTO `mob_db` VALUES (1868,'G_BANSHEE','Banshee','Banshee',81,35111,0,0,0,1,1666,2609,30,55,30,74,1,120,75,1,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1869,'FLAME_SKULL','Flame Skull','Flame Skull',60,10800,0,3000,2600,1,100,1200,20,40,50,100,30,40,140,110,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1); +REPLACE INTO `mob_db` VALUES (1867,'BANSHEE','Banshee','Banshee',81,35111,0,17000,12000,1,1666,2609,30,55,30,74,1,120,75,1,10,12,1,6,47,0x3795,150,576,504,504,0,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4438,1); +REPLACE INTO `mob_db` VALUES (1868,'G_BANSHEE','Banshee','Banshee',81,35111,0,0,0,1,1666,2609,30,55,30,74,1,120,120,1,10,12,1,6,47,0x3795,150,576,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1869,'FLAME_SKULL','Flame Skull','Flame Skull',60,10080,0,3000,2600,1,100,1200,20,40,50,100,30,40,140,110,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1); REPLACE INTO `mob_db` VALUES (1870,'NECROMANCER','Necromancer','Necromancer',88,98000,0,45000,35000,1,3500,4000,0,40,1,50,1,190,166,10,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1); -REPLACE INTO `mob_db` VALUES (1871,'FALLINGBISHOP','Fallen Bishop','Fallen Bishop Hibram',80,3333333,0,1111111,1111111,1,3220,5040,50,0,1,80,15,126,120,20,10,12,1,6,47,0x37B5,150,432,432,360,555555,10000,607,5500,617,5000,617,5000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,0,0,0,0,0,0,4441,1); +REPLACE INTO `mob_db` VALUES (1871,'FALLINGBISHOP','Fallen Bishop','Fallen Bishop Hibram',80,3333333,0,1111111,1111111,1,3220,5040,50,0,1,80,15,126,120,20,10,12,1,6,47,0x37B5,150,432,1152,360,555555,10000,607,5500,617,5000,617,5000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,0,0,0,0,0,0,4441,1); REPLACE INTO `mob_db` VALUES (1872,'BEELZEBUB_FLY','Hell Fly','Hell Fly',66,500000,0,0,0,1,1200,2000,25,15,33,105,60,15,72,30,10,12,0,4,84,0x37B5,100,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1873,'BEELZEBUB','Beelzebub','Beelzebub',98,6666666,0,0,0,1,4100,4960,40,35,6,110,200,250,120,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1874,'BEELZEBUB_','Beelzebub','Beelzebub',98,6666666,0,6666666,6666666,2,10000,13410,40,40,6,110,200,250,166,66,10,12,2,6,88,0x37B5,100,212,504,432,3333333,10000,607,5500,617,5000,617,5000,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,985,5432,742,5500,0,0,0,0,4145,1); REPLACE INTO `mob_db` VALUES (1875,'TRISTAN_3RD','Tristan III','Dead King',80,43000,0,1,1,2,1366,1626,25,30,5,10,10,69,70,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1876,'E_LORD_OF_DEATH','Lord of the Dead','Lord of the Dead',99,99000000,0,131343,43345,3,3430,4232,75,73,120,120,120,169,150,106,10,12,2,6,67,0x37B5,180,1446,1296,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1877,'CRYSTAL_5','Crystal','Crystal',1,15,0,0,0,0,0,10,100,99,1,1,1,1,255,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1878,'E_SHINING_PLANT','Shining Plant','Shining Plant',1,20,0,0,0,1,1,1,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1877,'CRYSTAL_5','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,7863,10,644,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1878,'E_SHINING_PLANT','Shining Plant','Shining Plant',1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1879,'ECLIPSE_P','Eclipse Pet','Eclipse',6,1800,0,0,0,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); + # Moscovia monsters REPLACE INTO `mob_db` VALUES (1880,'WOOD_GOBLIN','Wood Goblin','Wood Goblin',42,6982,0,2201,1552,1,600,620,32,3,1,5,45,45,55,155,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1881,'LES','Les','Les',39,3080,0,1521,912,1,102,113,0,17,1,33,12,32,52,38,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0); @@ -989,15 +992,16 @@ REPLACE INTO `mob_db` VALUES (1883,'UZHAS','Uzhas','Uzhas',61,13707,0,4002,3003, REPLACE INTO `mob_db` VALUES (1884,'MAVKA','Mavka','Mavka',63,19200,0,8301,6353,7,589,623,32,19,1,42,55,35,89,177,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1885,'GOPINICH','Gopinich','Gopinich',85,299321,0,45250,16445,3,1868,6124,20,42,50,65,55,103,152,35,10,12,2,2,62,0x37B5,150,1536,864,432,22625,10000,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1886,'G_MAVKA','Mavka','Mavka',63,19200,0,0,0,7,589,623,32,19,1,42,55,35,89,177,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); + # Additional Monsters -REPLACE INTO `mob_db` VALUES (1887,'FREEZER_R','Freezer','Freezer',72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1887,'FREEZER_R','Freezer','Freezer',72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1888,'GARM_BABY_R','Hatii Baby','Hatii Baby',61,15199,0,100,100,1,680,1580,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1889,'GARM_R','Marozka\'s Guard','Marozka\'s Guard',73,100000,0,1000,1000,3,900,2200,20,23,85,126,10,50,95,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1890,'GOPINICH_R','The Immortal Koshei','The Immortal Koshei',85,299321,0,1000,1000,3,1868,6124,20,42,50,65,55,50,152,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1891,'G_RANDGRIS_','Valkyrie','Valkyrie',99,1567200,0,0,0,3,5560,9980,25,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1892,'G_LOLI_RURI','Lolo Ruri','Lolo Ruri',71,23470,0,0,0,2,1476,2317,39,44,0,66,54,74,81,43,10,12,2,6,87,0x3985,125,747,576,1632,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1893,'G_KNIGHT_OF_ABYSS','Knight of the Abyss','Abysmal Knight',79,36140,0,0,0,1,1600,2150,55,50,66,68,64,25,135,50,10,12,2,7,87,0x3695,300,1500,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1894,'POURING','Pouring','Pouring',50,100000,0,0,0,1,550,1450,20,50,45,30,36,55,85,30,0,0,0,3,61,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1892,'G_LOLI_RURI','Lolo Ruri','Lolo Ruri',71,23470,0,0,0,2,1476,2317,39,44,0,66,54,74,81,43,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1893,'G_KNIGHT_OF_ABYSS','Knight of the Abyss','Abysmal Knight',79,36140,0,0,0,1,1600,2150,55,50,66,68,64,25,135,50,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1894,'POURING','Pouring','Pouring',50,100000,0,0,0,1,550,1450,20,50,45,30,36,55,85,30,0,0,0,3,68,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,12257,8335,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1895,'EVENT_SEYREN','Seyren','Seyren Windsor',91,88402,0,0,0,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3295,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1896,'EVENT_KATRINN','Katrinn','Kathryne Keyron',92,47280,0,0,0,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1897,'EVENT_BAPHOMET_','Baphomet','Baphomet',81,668000,0,0,0,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -1005,157 +1009,159 @@ REPLACE INTO `mob_db` VALUES (1898,'EVENT_ZOMBIE','Zombie','Zombie',12,434,0,0,0 REPLACE INTO `mob_db` VALUES (1899,'SWORD_GUARDIAN_','Sword Guardian','Sword Guardian',86,152533,0,0,0,2,7590,9140,60,33,110,40,54,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (1900,'BOW_GUARDIAN_','Archer Guardian','Archer Guardian',80,80404,0,0,0,12,1840,2520,40,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1901,'E_CONDOR','Condor','Condor',5,8000,0,100,100,1,200,400,10,15,1,13,10,25,95,10,10,12,0,8,26,0x1089,150,1148,648,480,0,0,0,0,0,0,0,0,7781,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1902,'E_TREASURE1','Treasure Box','Treasure Box',99,49,0,0,0,0,0,10,100,0,0,0,0,0,2,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1903,'E_TREASURE2','Treasure Box','Treasure Box',99,49,0,0,0,0,0,10,100,0,0,0,0,0,255,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1902,'E_TREASURE1','Treasure Box','Treasure Box',99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1903,'E_TREASURE2','Treasure Box','Treasure Box',99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1904,'BOMBPORING','Bomb Poring','Bomb Poring',28,1000000,0,461,284,1,120,320,100,99,1,28,28,0,33,50,10,12,0,0,20,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); + # WoE Second Edition; Battle Fields -REPLACE INTO `mob_db` VALUES (1905,'BARRICADE','Barricade','Barricade',98,600000,0,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1905,'BARRICADE','Barricade','Barricade',98,120000,0,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1906,'BARRICADE_','Barricade','Barricade',98,150,0,0,0,1,0,0,100,99,1,17,1,80,126,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1907,'S_EMPEL_1','Guardian Stone','Guardian Stone',90,120000,0,0,0,0,1,1,40,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1908,'S_EMPEL_2','Guardian Stone','Guardian Stone',90,120000,0,0,0,0,1,1,40,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1909,'OBJ_A','Food Storage','Food Storage',90,1000,0,0,0,0,1,1,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1910,'OBJ_B','Food Depot','Food Depot',90,1000,0,0,0,0,1,1,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1911,'OBJ_NEUTRAL','Neutrality Flag','Neutrality Flag',90,200,0,0,0,0,1,1,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1912,'OBJ_FLAG_A','Lion Flag','Lion Flag',90,200,0,0,0,0,1,1,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1913,'OBJ_FLAG_B','Eagle Flag','Eagle Flag',90,200,0,0,0,0,1,1,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1914,'OBJ_A2','Blue Crystal','Blue Crystal',90,1000,0,0,0,0,1,1,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1915,'OBJ_B2','Pink Crystal','Pink Crystal',90,1000,0,0,0,0,1,1,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1907,'S_EMPEL_1','Guardian Stone','Guardian Stone',90,120000,0,0,0,0,1,2,40,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1908,'S_EMPEL_2','Guardian Stone','Guardian Stone',90,120000,0,0,0,0,1,2,40,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1909,'OBJ_A','Food Storage','Food Storage',90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1910,'OBJ_B','Food Depot','Food Depot',90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1911,'OBJ_NEUTRAL','Neutrality Flag','Neutrality Flag',90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1912,'OBJ_FLAG_A','Lion Flag','Lion Flag',90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1913,'OBJ_FLAG_B','Eagle Flag','Eagle Flag',90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1914,'OBJ_A2','Blue Crystal','Blue Crystal',90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1915,'OBJ_B2','Pink Crystal','Pink Crystal',90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); + # Satan Morroc -REPLACE INTO `mob_db` VALUES (1916,'MOROCC','Satan Morroc','Satan Morroc',99,20000000,0,6700000,4500000,2,32000,32001,29,65,140,160,30,250,180,50,10,12,2,6,87,0x37B5,100,76,540,432,0,0,0,0,0,0,0,0,5808,1500,2374,7000,2375,7000,2433,7000,7799,9000,7798,9000,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1917,'MOROCC_','Wounded Morroc','Wounded Morroc',99,15000000,0,3600000,3000000,2,15000,18000,29,65,140,160,30,250,180,40,10,12,2,6,87,0x37B5,100,76,540,432,3600000,5000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1918,'MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',97,190000,0,61000,140000,2,7000,8600,20,35,150,152,30,180,186,70,10,12,2,8,27,0x37B5,110,576,540,432,0,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1916,'MOROCC','Satan Morroc','Satan Morroc',99,8388607,0,6700000,4500000,2,32000,32001,29,65,140,160,30,250,180,50,10,12,2,6,87,0x37B5,100,76,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1917,'MOROCC_','Wounded Morroc','Wounded Morroc',99,8388607,0,3600000,3000000,2,15000,18000,29,65,140,160,30,250,180,40,10,12,2,6,87,0x37B5,100,576,540,432,3600000,5000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1918,'MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',97,190000,0,61000,140000,1,7000,8600,20,35,150,152,30,180,186,70,10,12,2,8,27,0x37B5,110,576,540,432,0,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1919,'MOROCC_2','Incarnation of Morroc','Incarnation of Morroc',97,190000,0,65000,120000,1,3500,5100,20,5,120,83,20,10,166,50,10,12,1,6,67,0x37B5,150,576,540,432,0,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1920,'MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',96,143000,0,50000,80000,1,3400,5000,15,37,40,200,20,60,100,37,10,12,1,6,69,0x37B5,150,212,540,432,0,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1920,'MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',96,143000,0,50000,80000,2,3400,5000,15,37,40,200,20,60,100,37,10,12,1,6,69,0x37B5,150,212,540,432,0,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1921,'MOROCC_4','Incarnation of Morroc','Incarnation of Morroc',98,150000,0,51000,70000,1,3000,4025,18,54,60,60,30,220,125,20,10,12,1,6,68,0x37B5,150,1536,540,432,0,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1922,'G_MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',97,120000000,0,0,0,2,7000,8600,20,35,150,152,30,180,186,70,10,12,2,8,27,0x37B5,110,576,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1923,'G_MOROCC_2','Incarnation of Morroc','Incarnation of Morroc',97,120000000,0,0,0,1,3500,5100,20,5,120,83,20,10,166,50,10,12,1,6,67,0x37B5,150,576,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1924,'G_MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',96,120000000,0,0,0,1,3400,5000,15,37,40,200,20,60,100,37,10,12,1,6,69,0x37B5,150,212,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1925,'G_MOROCC_4','Incarnation of Morroc','Incarnation of Morroc',98,120000000,0,0,0,1,3000,4025,18,54,60,60,30,220,125,20,10,12,1,6,68,0x37B5,150,1536,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1922,'G_MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',97,1200000,0,0,0,1,16000,16001,20,35,150,152,30,180,186,70,10,12,2,8,27,0x37B5,110,576,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1923,'G_MOROCC_2','Incarnation of Morroc','Incarnation of Morroc',97,1200000,0,0,0,1,16000,16001,20,5,120,83,20,10,166,50,10,12,1,6,67,0x37B5,150,576,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1924,'G_MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',96,1200000,0,0,0,2,16000,16001,15,37,40,200,20,60,100,37,10,12,1,6,69,0x37B5,150,212,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1925,'G_MOROCC_4','Incarnation of Morroc','Incarnation of Morroc',98,1200000,0,0,0,1,16000,16001,18,54,60,60,30,220,125,20,10,12,1,6,68,0x37B5,150,1536,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # God Item Creation (WoE SE); Catacombs -REPLACE INTO `mob_db` VALUES (1926,'JAKK_H','Jakk','Jakk',38,300,0,0,0,1,5,5,5,30,1,38,38,43,75,45,10,12,1,0,43,0x3695,200,1180,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1927,'WHISPER_H','Whisper','Whisper',34,100,0,0,0,1,5,5,0,45,1,51,14,0,60,0,10,12,0,6,68,0x3195,150,1960,504,960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1928,'DEVIRUCHI_H','Deviruchi','Deviruchi',46,500,0,0,0,1,5,5,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,384,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1929,'I_BAPHOMET','Great Demon Baphomet','Great Demon Baphomet',98,4520000,0,4520000,2520000,1,16000,16001,35,45,1,152,5,85,200,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1); -REPLACE INTO `mob_db` VALUES (1930,'PIAMETTE','Piamette','Piamette',90,3000000,0,0,0,1,15000,20000,35,35,1,1,5,100,1,30,10,12,0,7,20,0x37B5,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1931,'WISH_MAIDEN','Wish Maiden','Wish Maiden',98,3567200,0,0,0,1,32000,32001,25,42,1,1,30,130,1,30,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1932,'GARDEN_KEEPER','Garden Keeper','Garden Keeper',80,200,0,0,0,1,1,2,100,99,1,1,1,1,1,1,10,12,1,3,42,0xE1,140,512,756,360,0,0,0,0,0,0,0,0,7839,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1933,'GARDEN_WATCHER','Garden Watcher','Garden Watcher',81,300000,0,0,0,1,1666,2609,55,55,1,1,56,150,1,30,10,12,1,3,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1934,'BLUE_FLOWER','Blue Flower','Blue Flower',98,10000,0,0,0,1,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1935,'RED_FLOWER','Red Flower','Red Flower',98,10000,0,0,0,1,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1936,'YELL_FLOWER','Yellow Flower','Yellow Flower',98,10000,0,0,0,1,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1937,'CONSTANT_','Constant','Constant',55,10000,0,3230,116,1,460,580,12,12,50,28,26,47,66,14,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1938,'TREASURE_BOX41','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7830,80,658,500,12999,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1939,'TREASURE_BOX42','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7831,80,658,500,12999,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1940,'TREASURE_BOX43','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7832,80,658,500,12999,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1941,'TREASURE_BOX44','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7833,80,658,500,12999,10000,984,4850,985,7275,13404,150,1730,150,0,50,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1942,'TREASURE_BOX45','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7834,80,658,500,12999,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1943,'TREASURE_BOX46','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7835,80,658,500,12999,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1944,'TREASURE_BOX47','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7836,80,658,500,12999,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1945,'TREASURE_BOX48','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7837,80,658,500,12999,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1946,'TREASURE_BOX49','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7838,80,658,500,12999,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1947,'G_PIAMETTE','Piamette','Piamette',90,500000,0,0,0,1,5000,6000,35,35,1,1,5,100,1,30,10,12,0,7,20,0x37B5,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1926,'JAKK_H','Jakk','Jakk',38,300,0,0,0,1,5,10,5,30,1,38,38,43,75,45,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,0,1062,3000,1062,3000,0,0,535,3000,535,3000,535,3000,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1927,'WHISPER_H','Whisper','Whisper',34,100,0,0,0,1,5,10,0,45,1,51,14,0,60,0,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,0,1059,5000,1059,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1928,'DEVIRUCHI_H','Deviruchi','Deviruchi',46,500,0,0,0,1,5,10,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1929,'BAPHOMET_I','Great Demon Baphomet','Great Demon Baphomet',98,4520000,0,4520000,2520000,2,16000,16001,35,45,1,152,5,85,200,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1); +REPLACE INTO `mob_db` VALUES (1930,'PIAMETTE','Piamette','Piamette',90,3000000,0,0,0,2,15000,20000,35,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1931,'WISH_MAIDEN','Wish Maiden','Wish Maiden',98,3567200,0,0,0,3,32000,32001,25,42,100,120,30,120,220,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1932,'GARDEN_KEEPER','Garden Keeper','Garden Keeper',80,100,0,0,0,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1933,'GARDEN_WATCHER','Garden Watcher','Garden Watcher',81,300000,0,0,0,1,1666,2609,55,55,30,74,56,126,145,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1934,'BLUE_FLOWER','Blue Flower','Blue Flower',98,10000,0,0,0,0,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1935,'RED_FLOWER','Red Flower','Red Flower',98,10000,0,0,0,0,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1936,'YELL_FLOWER','Yellow Flower','Yellow Flower',98,10000,0,0,0,0,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1937,'CONSTANT_','Constant','Constant',55,10000,0,0,0,1,460,580,12,12,50,28,26,47,66,14,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1938,'TREASURE_BOX41','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7830,80,658,500,12999,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1939,'TREASURE_BOX42','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7831,80,658,500,12999,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1940,'TREASURE_BOX43','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7832,80,658,500,12999,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1941,'TREASURE_BOX44','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7833,80,658,500,12999,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1942,'TREASURE_BOX45','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7834,80,658,500,12999,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1943,'TREASURE_BOX46','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7835,80,658,500,12999,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1944,'TREASURE_BOX47','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7836,80,658,500,12999,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1945,'TREASURE_BOX48','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7837,80,658,500,12999,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1946,'TREASURE_BOX49','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7838,80,658,500,12999,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1947,'PIAMETTE_','Piamette','Piamette',90,500000,0,0,0,2,5000,6000,35,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db` VALUES (1948,'G_YGNIZEM','Ygnizem','Egnigem Cenia',58,11200,0,0,0,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1949,'B_S_GUARDIAN_','Camp Guardian','Camp Guardian',86,152533,0,0,0,2,7590,1550,60,33,110,40,54,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1950,'B_B_GUARDIAN_','Camp Guardian','Camp Guardian',80,80404,0,0,0,12,1840,680,40,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1949,'B_S_GUARDIAN','Camp Guardian','Camp Guardian',86,457599,0,0,0,2,7590,9140,60,33,110,40,5,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1950,'B_B_GUARDIAN','Camp Guardian','Camp Guardian',80,241212,0,0,0,12,1840,2520,40,62,95,80,5,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # Ravies Sister's 'Valyrie's Gift' monsters. -REPLACE INTO `mob_db` VALUES (1951,'CRYSTAL_6','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,607,200,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1952,'CRYSTAL_7','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,608,250,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1953,'CRYSTAL_8','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,604,300,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1954,'CRYSTAL_9','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,255,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,603,100,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1951,'CRYSTAL_6','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,607,200,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1952,'CRYSTAL_7','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,608,250,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1953,'CRYSTAL_8','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,604,300,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1954,'CRYSTAL_9','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,603,100,0,0,0,0); # ? -REPLACE INTO `mob_db` VALUES (1955,'TREASURE_BOX_I','Treasure Chest','Treasure Chest',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1955,'TREASURE_BOX_I','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,0,12281,3000,7849,4000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # Endless Tower -REPLACE INTO `mob_db` VALUES (1956,'NAGHT_SIEGER','Naght Sieger','Naght Sieger',99,8000000,0,4000000,2000000,1,32000,64000,60,40,1,50,80,220,220,30,10,12,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1957,'ENTWEIHEN','Entweihen Crothen','Entweihen Crothen',90,5400000,0,2700000,1350000,12,32000,40000,44,66,1,70,40,250,220,30,10,12,1,6,87,0x1A4,100,140,540,576,0,0,0,0,0,0,0,0,1631,9000,1636,9000,1624,9000,1618,9000,2513,9000,616,9000,7291,9000,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1958,'G_ENTWEIHEN_R','Thorny Skeleton','Thorny Skeleton',89,5400000,0,0,0,12,4040,4720,44,66,1,35,33,180,125,30,10,12,0,6,87,0x1A4,100,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1959,'G_ENTWEIHEN_H','Thorn of Recovery','Thorn of Recovery',89,350000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,10,12,0,6,87,0x1A4,100,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1960,'G_ENTWEIHEN_M','Thorn of Magic','Thorn of Magic',89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,10,12,0,6,87,0x1A4,100,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1961,'G_ENTWEIHEN_S','Thorn of Purification','Thorn of Purification',89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,10,12,0,6,87,0x1A4,100,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1956,'NAGHT_SIEGER','Naght Sieger','Naght Sieger',99,8000000,0,4000000,2000000,2,32000,64000,60,40,1,50,80,220,220,30,10,12,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1957,'ENTWEIHEN','Entweihen Crothen','Entweihen Crothen',90,5400000,0,2700000,1350000,12,32000,40000,44,66,1,70,40,250,220,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1); +REPLACE INTO `mob_db` VALUES (1958,'G_ENTWEIHEN_R','Thorny Skeleton','Thorny Skeleton',89,5400000,0,0,0,12,4040,4720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1959,'G_ENTWEIHEN_H','Thorn of Recovery','Thorn of Recovery',89,350000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1960,'G_ENTWEIHEN_M','Thorn of Magic','Thorn of Magic',89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1961,'G_ENTWEIHEN_S','Thorn of Purification','Thorn of Purification',89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # Additional Monsters -REPLACE INTO `mob_db` VALUES (1962,'ANTONIO_','Christmas Thief','Christmas Thief',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1963,'P_CHUNG_E','New Year Doll','New Year Doll',49,23900,0,2396,993,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,0,0,0,0,0,0,5042,2,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1964,'NIGHTMARE_T','Nightmare','Nightmare',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1965,'M_WILD_RoSE','Wild Rose','Wild Rose',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1966,'M_DOPPELGANGER','Doppelganger','Doppelganger',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1967,'M_YGNIZEM','Ygnizem','Egnigem Cenia',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1968,'E_STROUF','Strouf','Strouf',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1969,'E_MARC','Marc','Marc',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1970,'E_OBEUNE','Obeune','Obeune',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1971,'E_VADON','Vadon','Vadon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1972,'E_MARINA','Marina','Marina',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1973,'E_PORING','Poring','Poring',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1962,'ANTONIO_','Christmas Thief','Christmas Thief',10,15,0,0,0,1,13,20,100,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1963,'P_CHUNG_E','New Year Doll','New Year Doll',49,23900,0,2396,993,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1964,'NIGHTMARE_T','Nightmare','Nightmare',30,2000,0,512,387,1,100,200,0,40,1,100,1,1,100,1,10,12,2,2,68,0x120,150,1816,816,432,0,0,0,0,0,0,0,0,505,2000,510,3000,7913,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1965,'M_WILD_ROSE','Wild Rose','Wild Rose',38,4000,50,0,0,1,100,145,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1966,'M_DOPPELGANGER','Doppelganger','Doppelganger',72,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1967,'M_YGNIZEM','Ygnizem','Egnigem Cenia',79,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1968,'E_STROUF','Strouf','Strouf',48,11990,0,6160,4196,1,200,1250,5,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1); +REPLACE INTO `mob_db` VALUES (1969,'E_MARC','Marc','Marc',36,6900,0,1976,1250,1,220,280,5,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1); +REPLACE INTO `mob_db` VALUES (1970,'E_OBEAUNE','Obeune','Obeune',31,3952,0,1288,814,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1); +REPLACE INTO `mob_db` VALUES (1971,'E_VADON','Vadon','Vadon',19,1017,0,270,170,1,74,85,20,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1); +REPLACE INTO `mob_db` VALUES (1972,'E_MARINA','Marina','Marina',21,2087,0,436,280,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1); +REPLACE INTO `mob_db` VALUES (1973,'E_PORING','Poring','Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,938,400,512,1000,713,1500,12303,3000,0,0,0,0,0,0,0,0,0,0); # WoE SE Guild Dungeon -REPLACE INTO `mob_db` VALUES (1974,'BANSHEE_MASTER','Banshee Master','Banshee Master',84,47222,0,23611,14167,1,2666,3609,20,40,1,74,1,180,105,1,10,12,2,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,7751,3000,2365,10,2748,2,2528,10,934,1500,7054,5335,2135,2,13027,10,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1975,'BEHOLDER_MASTER','Beholder Master','Beholder master',70,24150,0,12075,7245,6,1723,2300,17,30,1,62,25,89,85,32,10,12,2,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,1,2749,1,603,2,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1976,'COBALT_MINERAL','Cobalt Mineral','Cobalt Mineral',72,29665,0,9866,7899,1,1446,1979,40,30,72,77,35,57,77,32,10,12,2,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,0,7321,3000,728,500,13414,1,984,80,1011,800,715,100,969,2,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1977,'HEAVY_METALING','Heavy Metaling','Heavy Metaling',73,28433,0,9320,7529,1,1350,1700,40,30,73,65,28,40,77,2,10,12,1,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,1,7312,5000,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1978,'HELL_APOCALIPS','Hell Apocalips','Hell Apocalypse',86,65433,0,39260,19630,2,5733,6073,62,23,86,48,30,98,110,85,10,12,2,0,40,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,2391,1,1484,1,999,25,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1979,'ZUKDAM','Zukadam','Zakudam',82,43699,0,21850,13110,3,2000,3227,30,30,82,65,35,75,80,15,10,12,2,7,40,0x3885,180,580,288,360,0,0,0,0,0,0,0,0,2390,1,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1980,'KUBLIN','Kubkin','Kublin',85,576000,0,100000,100000,1,1180,1400,10,20,1,1,40,85,6,30,10,12,2,7,22,0x37B5,100,1120,620,240,100000,5000,6010,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1974,'BANSHEE_MASTER','Banshee Master','Banshee Master',84,47222,0,30000,24000,2,2666,3609,20,40,30,74,1,180,105,1,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,7054,5335,7751,3000,2365,10,2748,2,2528,10,934,1500,2135,20,0,0,0,0,4450,1); +REPLACE INTO `mob_db` VALUES (1975,'BEHOLDER_MASTER','Beholder Master','Beholder master',70,24150,0,9000,11400,6,1723,2300,17,30,60,62,25,89,85,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,603,2,2749,2,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1976,'COBALT_MINERAL','Cobalt Mineral','Cobalt Mineral',72,29665,0,12332,10379,1,1446,2979,40,30,60,77,35,57,77,32,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,714,2); +REPLACE INTO `mob_db` VALUES (1977,'HEAVY_METALING','Heavy Metaling','Heavy Metaling',73,28433,0,9320,8831,1,1350,1700,40,30,30,65,28,40,77,2,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1978,'HELL_APOCALIPS','Hell Apocalips','Hell Apocalypse',86,65433,0,46666,32000,2,5733,6073,62,23,1,48,30,98,110,85,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,0,7095,5335,999,2500,7094,2400,7093,2200,2506,20,985,5,2391,1,0,0,0,0,1484,1); +REPLACE INTO `mob_db` VALUES (1979,'ZAKUDAM','Zukadam','Zakudam',82,43699,0,27213,16300,3,2000,3227,30,30,65,65,35,75,80,15,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1980,'KUBLIN','Kubkin','Kublin',85,1176000,0,100000,100000,1,1180,1400,20,10,1,106,25,40,72,20,10,12,1,7,22,0x37B5,100,964,648,300,100000,5000,6010,10000,0,0,0,0,998,270,911,9000,756,43,2297,3,0,0,0,0,507,1800,0,0,0,0,0,0); # Orc Dungeon Instance -REPLACE INTO `mob_db` VALUES (1981,'I_HIGH_ORC','Safeguard Chief','Safeguard Chief',88,96980,0,3618,1639,1,1428,1533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1982,'I_ORC_ARCHER','Orc Sniper','Orc Sniper',85,60901,0,196,120,9,1151,1184,10,5,1,12,24,0,24,5,10,12,1,1,29,0x3095,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1983,'I_ORC_SKELETON','Depraved Orc Spirit','Depraved Orc Spirit',87,80078,0,1729,1787,1,1310,1390,30,44,1,44,25,20,125,20,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1984,'I_ORC_LADY','Shaman Cargalache','Shaman Cargalache',80,50058,0,644,407,1,1135,1170,35,10,35,42,25,15,69,55,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1981,'I_HIGH_ORC','Safeguard Chief','Safeguard Chief',88,111111,0,3618,1639,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1982,'I_ORC_ARCHER','Orc Sniper','Orc Sniper',85,62000,0,1729,1787,9,1310,1390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1983,'I_ORC_SKELETON','Depraved Orc Spirit','Depraved Orc Spirit',87,80087,0,4501,67,1,896,1159,14,30,1,31,41,93,67,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1984,'I_ORC_LADY','Shaman Cargalache','Shaman Cargalache',58,50058,0,4870,98,1,823,1212,35,10,60,35,52,18,79,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # Another World (13.1) -REPLACE INTO `mob_db` VALUES (1985,'DANDELION','Dandelion Member','Dandelion Member',88,28890,0,8650,3879,2,780,1560,30,35,10,85,4,88,60,30,10,12,1,7,80,0x3695,150,900,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1986,'TATACHO','Tatacho','Tatacho',106,39311,0,23700,13825,1,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,900,672,480,0,0,0,0,0,0,0,0,6020,4000,579,3000,516,3000,6021,3000,1544,20,1925,10,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1987,'CENTIPEDE','Centipede','Centipede',110,45662,0,27397,15982,1,15000,16000,40,25,112,43,30,5,131,12,10,12,1,4,45,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,955,9000,1042,5335,912,5000,943,2500,1741,10,2746,2,2747,2,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1988,'NEPENTHES','Nepenthes','Nepenthes',75,10350,0,4140,2587,10,415,565,25,10,75,20,30,5,65,5,10,12,1,3,45,0x84,200,637,768,576,0,0,0,0,0,0,0,0,905,9000,6041,3000,993,50,5399,1,1979,1,1926,1,1740,1,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1989,'HILLSRION','Hillslion','Hillslion',105,34600,0,20760,12110,1,5000,5500,28,15,105,60,30,15,115,5,10,12,0,2,22,0x308D,100,672,500,192,0,0,0,0,0,0,0,0,7054,4850,6032,3000,6020,2000,7063,120,1825,20,1268,10,2440,10,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1990,'HARDROCK_MOMMOTH','Hardrock Mammoth','Hardrock Mammoth',115,4137000,0,827400,413700,1,30000,36000,50,60,115,35,1,30,150,15,10,12,2,2,62,0x37B5,300,608,408,336,0,0,0,0,0,0,0,0,985,9000,6022,9000,1483,500,13039,400,2133,200,5398,100,2257,20,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1991,'TENDRILRION','Tendrillion','Tendrilion',113,3657330,0,734166,365733,1,20000,24000,33,30,113,60,1,45,147,13,10,12,2,2,42,0x37B5,135,608,408,336,0,0,0,0,0,0,0,0,6033,9000,7197,5335,7008,4850,6020,4000,1637,100,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1992,'CORNUS','Cornus','Cornus',108,39391,0,30854,4427,1,12000,13000,35,80,110,45,80,200,105,10,10,12,1,2,46,0x1089,150,900,672,480,0,0,0,0,0,0,0,0,944,6000,6023,4000,7063,3000,2257,2,2387,10,1420,1,2743,1,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1993,'NAGA','Naga','Naga',111,46708,0,30360,16348,1,8000,8800,38,15,113,42,30,108,122,13,10,12,1,2,42,0x3695,150,900,672,480,0,0,0,0,0,0,0,0,926,5000,936,3500,954,2000,1408,20,1485,10,2134,10,2389,10,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1994,'LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',104,25103,0,13040,11410,1,9000,9900,29,5,104,56,30,20,116,4,10,12,1,4,24,0x7795,100,672,500,192,0,0,0,0,0,0,0,0,939,9000,955,9000,943,3000,518,300,526,200,992,160,2744,2,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1995,'PINGUICULA','Pinguicula','Pinguicula',80,13680,0,5472,3420,1,600,720,25,5,102,23,30,10,86,2,10,12,0,3,62,0x308D,150,864,500,192,0,0,0,0,0,0,0,0,7100,5000,7188,3000,7198,2000,712,1000,2270,10,1980,10,2745,1,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1996,'BACSOJIN_T','Bacsojin','White Lady',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1997,'G_TATACHO','Tatacho','Tatacho',106,39311,0,0,0,1,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,900,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1998,'G_HILLSRION','Hillslion','Hillslion',105,34600,0,0,0,1,5000,5500,28,15,105,60,30,15,115,5,10,12,0,2,22,0x308D,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (1999,'CENTIPEDE_LARVA','Centipede Larva','Centipede Larva',80,12000,0,3600,4800,1,948,1145,20,20,80,33,15,3,75,10,10,12,0,4,45,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,955,9000,1042,5335,912,5000,943,2500,732,50,2406,9,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2000,'M_GAMEMASTER','Male Game Master','Game Master',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2001,'F_GAMEMASTER','Female Game Master','Game Master',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2002,'T_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2003,'T_BACSOJIN','White Lady','White Lady',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x3695,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2004,'T_WICKED_NYMPH','Evil Nymph','Evil Nymph',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x3695,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2005,'T_PLASMA_B','Plasma','Plasma',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2006,'T_PLASMA_P','Plasma','Plasma',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2007,'T_PLASMA_R','Plasma','Plasma',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2008,'WOOMAWANG','Woomawang','Woomawang',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x3695,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2009,'WOOMAWANG_','Woomawang','Woomawang',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x3695,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2010,'G_MAJORUROS','Ox','Ox',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2011,'E_GHOUL','Ghoul','Ghoul',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2012,'E_ZOMBIE','Zombie','Zombie',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1985,'DANDELION','Dandelion Member','Dandelion Member',37,5176,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1986,'TATACHO','Tatacho','Tatacho',106,39500,0,23700,13825,2,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,1000,768,360,0,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,516,3000,0,0,0,0,0,0,4442,1); +REPLACE INTO `mob_db` VALUES (1987,'CENTIPEDE','Centipede','Centipede',110,45662,0,27397,15982,2,15000,16000,40,25,112,43,30,5,131,12,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4447,1); +REPLACE INTO `mob_db` VALUES (1988,'NEPENTHES','Nepenthes','Nepenthes',75,10350,0,5175,2587,7,415,565,25,10,75,20,30,5,65,5,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1989,'HILLSRION','Hillslion','Hillslion',105,34600,0,20760,12110,1,5000,5500,28,15,105,60,30,15,115,5,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7063,120,7054,4850,0,0,0,0,4453,1); +REPLACE INTO `mob_db` VALUES (1990,'HARDROCK_MOMMOTH','Hardrock Mammoth','Hardrock Mammoth',115,4137000,0,827400,413700,2,30000,36000,50,60,115,35,1,30,150,15,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1991,'TENDRILRION','Tendrillion','Tendrilion',113,3657330,0,731466,365733,2,20000,24000,33,30,113,60,1,45,147,13,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6020,4000,7197,5335,7008,4850,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1992,'CORNUS','Cornus','Cornus',108,41220,0,30854,4427,2,12000,13000,35,80,110,45,80,200,105,10,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,944,6000,2257,2,1420,1,0,0,0,0,4448,1); +REPLACE INTO `mob_db` VALUES (1993,'NAGA','Naga','Naga',111,46708,0,30360,16348,3,8000,8800,38,15,113,42,30,108,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,926,5000,936,3500,954,2000,1408,20,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1994,'LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',104,32600,0,16300,11410,1,9000,9900,29,5,104,56,30,20,116,4,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,2744,2,955,9000,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1); +REPLACE INTO `mob_db` VALUES (1995,'PINGUICULA','Pinguicula','Pinguicula',80,13680,0,6840,3420,1,600,720,25,5,102,23,30,10,86,2,10,12,1,3,62,0x308D,150,700,600,360,0,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,712,1000,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (1996,'BACSOJIN_T','Bacsojin','White Lady',85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,5411,500,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1997,'G_TATACHO','Tatacho','Tatacho',106,39500,0,0,0,2,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1998,'G_HILLSRION','Hillslion','Hillslion',105,34600,0,0,0,1,5000,5500,28,15,105,60,30,15,115,5,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1999,'CENTIPEDE_LARVA','Centipede Larva','Centipede Larva',80,12000,0,3600,4800,2,948,1115,20,20,80,33,15,3,75,10,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1); +# REPLACE INTO `mob_db` VALUES (2000,'M_GAMEMASTER','Male Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2001,'F_GAMEMASTER','Female Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2002,'T_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',50,8000,0,3982,1766,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,0,12190,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2003,'T_BACSOJIN','White Lady','White Lady',72,56380,0,0,0,2,560,1446,10,15,38,65,34,80,102,35,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2004,'T_WICKED_NYMPH','Evil Nymph','Evil Nymph',63,16029,0,0,0,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2005,'T_PLASMA_B','Plasma','Plasma',44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2006,'T_PLASMA_P','Plasma','Plasma',49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2007,'T_PLASMA_R','Plasma','Plasma',43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2008,'WOOMAWANG','Woomawang','Woomawang',82,4000000,0,100000,100000,3,8000,10000,40,40,60,110,200,250,166,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2009,'WOOMAWANG_','Woomawang','Woomawang',82,2000000,0,100000,100000,1,16000,20000,40,40,60,110,200,250,166,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2010,'G_MAJORUROS','Ox','Ox',66,500000,0,10,10,1,1200,3200,25,15,65,50,20,20,85,48,10,12,2,6,28,0x120,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2011,'E_GHOUL','Ghoul','Ghoul',40,99999,0,1088,622,1,2100,2500,100,20,1,20,29,0,180,20,10,12,1,1,49,0x120,100,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2012,'E_ZOMBIE','Zombie','Zombie',15,99999,0,50,33,1,335,395,100,10,1,8,7,0,60,0,10,12,1,1,29,0x120,150,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # Another World (13.2) -REPLACE INTO `mob_db` VALUES (2013,'DRACO','Draco','Draco',82,18300,0,6100,4100,1,410,710,10,5,1,23,30,34,62,2,10,12,1,9,22,0x1089,200,151,288,360,0,0,0,0,0,0,0,0,6073,3000,1035,100,1036,1000,7123,100,1037,1000,518,500,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2014,'DRACO_EGG','Draco Egg','Draco Egg',67,9822,0,1200,1600,1,0,0,56,40,1,1,56,34,1,63,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2015,'PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',83,8780,0,7740,5200,1,600,1450,15,5,1,23,22,12,89,2,10,12,0,3,45,0x308D,250,879,672,576,0,0,0,0,0,0,0,0,7100,5000,7188,3000,6086,1000,7198,2000,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2016,'AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',83,33220,0,5430,15300,1,400,1600,8,12,1,23,19,87,77,2,10,12,2,0,81,0x3095,250,879,672,576,0,0,0,0,0,0,0,0,6075,1000,12353,100,7326,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2017,'RATA','Rata','Rata',107,216600,0,70012,34000,1,8000,15000,32,52,1,51,22,132,99,15,10,12,1,7,22,0x3295,150,580,288,360,0,0,0,0,0,0,0,0,12346,5000,6089,500,1026,5000,1548,100,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2018,'DUNEYRR','Duneyrr','Duneyrr',107,265100,0,83030,52000,1,16000,19000,39,35,1,60,45,89,105,15,10,12,2,7,62,0x3295,160,1446,1296,360,0,0,0,0,0,0,0,0,515,5000,6089,500,1188,10,6020,4000,2783,2,1384,100,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2019,'ANCIENT_TREE','Ancient Tree','Ancient Tree',102,30030,0,11020,8900,1,13200,17400,39,43,1,30,73,58,45,30,10,12,2,3,62,0x308D,200,1264,864,288,0,0,0,0,0,0,0,0,7197,1000,7201,5000,2450,30,7198,1000,1643,10,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2020,'RHYNCHO','Rhyncho','Rhyncho',85,18900,0,2040,6000,1,350,2350,5,19,1,56,12,35,89,10,10,12,0,0,61,0x308D,150,1120,620,240,0,0,0,0,0,0,0,0,7326,5000,6087,500,972,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2021,'PHYLLA','Phylla','Phylla',85,23880,0,2040,6600,1,350,2250,8,22,1,59,15,25,99,10,10,12,0,0,61,0x2085,150,1320,620,240,0,0,0,0,0,0,0,0,7326,5000,6088,500,971,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2022,'S_NYDHOG','Nidhoggr\'s Shadow','Nidhoggr\'s Shadow',117,3450000,0,4800000,3900000,1,17000,49000,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,100,76,384,288,2400000,1000,0,0,0,0,0,0,7444,5000,1484,500,1417,500,2610,5000,1170,500,2554,2000,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2023,'DARK_SHADOW','Dark Shadow','Dark Shadow',114,42900,0,21000,14000,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,87,0x3195,180,1732,1332,540,0,0,0,0,0,0,0,0,7205,5000,13038,5,2783,5,2609,1000,6089,1000,1385,10,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2024,'BRADIUM_GOLEM','Bradium Golem','Bradium Golem',101,45200,0,14000,18920,1,12000,13000,78,22,1,10,82,25,60,12,10,12,2,0,62,0x3295,400,2190,2040,336,0,0,0,0,0,0,0,0,7067,3000,6090,500,953,5000,2138,10,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2025,'MYSTCASE_EVENT','Mystcase','Mystcase',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2026,'DANDELION_','Runaway Dandelion Member','Runaway Dandelion Member',90,552500,0,58650,53879,2,780,1560,40,35,10,55,44,88,60,30,10,12,1,7,80,0x3695,150,900,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2027,'G_DARK_SHADOW','Dark Shadow','Dark Shadow',114,42900,0,0,0,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,87,0x3795,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2028,'E_MINOROUS','Minorous','Minorous',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2029,'E_MINOROUS_','Minorous','Minorous',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2030,'HIDEN_PRIEST','Hiden Priest','Hiden Priest',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2031,'DANDELION_H','Dandelion','Dandelion',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2032,'GUARDAN_FOREST','Forest Guardian','Forest Guardian',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2033,'GOLDEN_TULIP','Golden Tulip','Golden Tulip',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2034,'M_DESERT_WOLF_B','Baby Desert Wolf','Baby Desert Wolf',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2035,'NIHILITY_ZEM','Nihility Zem','Nihility Zem',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2036,'VALKYRIE_N','Valkyrie Randgris','Valkyrie Randgris',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2037,'VALKYRIE_A','Valkyrie Randgris','Valkyrie Randgris',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2038,'VALKYRIE_B','Valkyrie Randgris','Valkyrie Randgris',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2039,'EXECUTIONER_R','Executioner','Executioner',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2040,'TIRFING_R','Tirfing','Ogretooth',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2041,'MYSTELTAINN_R','Mysteltainn','Mysteltainn',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2013,'DRACO','Draco','Draco',82,18300,0,6100,4100,1,410,710,10,5,1,23,30,34,62,2,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,0,0,0,0,0,0,4444,1); +REPLACE INTO `mob_db` VALUES (2014,'DRACO_EGG','Draco Egg','Draco Egg',67,9822,0,1200,1600,0,1,2,56,40,1,1,56,34,1,63,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2015,'PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',83,8780,0,7740,5200,1,600,1450,15,5,1,23,22,12,89,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2016,'AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',83,33220,0,5430,15300,1,400,1600,8,12,1,23,19,87,77,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,4443,1); +REPLACE INTO `mob_db` VALUES (2017,'RATA','Rata','Rata',107,216600,0,70012,34000,1,8000,15000,32,52,1,51,22,132,99,15,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2018,'DUNEYRR','Duneyrr','Duneyrr',107,265100,0,83030,52000,1,16000,19000,39,35,1,60,45,89,105,15,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2019,'ANCIENT_TREE','Ancient Tree','Ancient Tree',102,30030,0,11020,8900,1,13200,17400,39,43,1,30,73,58,45,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2020,'RHYNCHO','Rhyncho','Rhyncho',85,18900,0,2040,6000,1,350,2300,5,19,1,56,12,35,89,10,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2021,'PHYLLA','Phylla','Phylla',85,23880,0,3040,6600,10,350,2550,8,22,1,59,15,25,99,10,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2022,'S_NYDHOG','Nidhoggr\'s Shadow','Nidhoggr\'s Shadow',117,3450000,0,4800000,3900000,2,17000,49000,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2400000,1000,0,0,0,0,0,0,6091,5000,7444,5000,2610,5000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2023,'DARK_SHADOW','Dark Shadow','Dark Shadow',114,42900,0,21000,14000,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2024,'BRADIUM_GOLEM','Bradium Golem','Bradium Golem',101,45200,0,14000,18920,1,12000,13000,78,22,0,10,82,25,60,12,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2025,'MYSTCASE_EVENT','Mystcase','Mystcase',10,15,0,0,0,1,160,360,99,99,65,50,25,5,48,75,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,0,14550,5000,14546,5000,12355,50,6092,2000,7175,2000,7174,2000,529,3000,0,0,0,0,530,3000); +REPLACE INTO `mob_db` VALUES (2026,'DANDELION_','Runaway Dandelion Member','Runaway Dandelion Member',90,552000,0,50000,25000,1,3050,4300,25,35,1,66,66,45,88,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,0,0,0,0,902,2000); +REPLACE INTO `mob_db` VALUES (2027,'G_DARK_SHADOW','Dark Shadow','Dark Shadow',114,42900,0,0,0,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2028,'E_MINOROUS','Minorous','Minorous',1,741,0,0,0,1,30,48,2,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2029,'E_MINOROUS_','Minorous','Minorous',10,15,0,10,0,1,100,150,100,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,0,941,10,11708,2000,11708,4000,11708,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1); +# REPLACE INTO `mob_db` VALUES (2030,'HIDEN_PRIEST','Hiden Priest','Hiden Priest',90,240000,0,0,0,2,1300,1983,0,30,1,32,40,100,82,40,10,12,2,6,89,0x120,150,432,432,360,0,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2031,'DANDELION_H','Dandelion','Dandelion',80,120000,0,0,0,1,305,610,0,10,1,19,32,0,63,20,10,12,1,7,47,0x120,250,1772,72,384,0,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2032,'GUARDIAN_FOREST','Forest Guardian','Forest Guardian',50,8578,0,0,0,1,1000,1103,15,25,1,75,55,1,93,45,10,12,0,6,27,0x120,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2033,'GOLDEN_TULIP','Golden Tulip','Golden Tulip',1,299,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2034,'M_DESERT_WOLF_B','Baby Desert Wolf','Baby Desert Wolf',9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2035,'NIHILITY_ZEM','Nihility Zem','Nihility Zem',90,200000,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x120,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2036,'VALKYRIE_N','Valkyrie Randgris','Valkyrie Randgris',53,11280,0,0,0,1,780,930,10,20,1,24,39,0,72,25,10,12,1,1,69,0x120,170,576,576,480,0,0,0,0,0,0,0,0,6154,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2037,'VALKYRIE_A','Valkyrie Randgris','Valkyrie Randgris',90,5000,15,0,0,1,10,160,10,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2038,'VALKYRIE_B','Valkyrie Randgris','Valkyrie Randgris',90,10000,15,0,0,1,300,450,10,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2039,'EXECUTIONER_R','Executioner','Executioner',65,28980,0,0,0,2,570,950,35,35,64,85,40,25,88,60,10,12,2,0,47,0x120,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2040,'TIRFING_R','Tirfing','Ogretooth',71,29900,0,0,0,1,950,1146,30,35,58,87,55,35,132,65,10,12,1,0,67,0x120,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2041,'MYSTELTAINN_R','Mysteltainn','Mysteltainn',76,33350,0,0,0,2,1160,1440,30,30,77,139,80,35,159,65,10,12,2,0,87,0x120,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2042,'SILVERSNIPER','Silver Sniper','Silver Sniper',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2043,'MAGICDECOY_FIRE','Magic Decoy','Magic Decoy',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2044,'MAGICDECOY_WATER','Magic Decoy','Magic Decoy',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -1165,7 +1171,7 @@ REPLACE INTO `mob_db` VALUES (2027,'G_DARK_SHADOW','Dark Shadow','Dark Shadow',1 # REPLACE INTO `mob_db` VALUES (2048,'W_PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2049,'W_BRADIUM_GOLEM','Bradium Golem','Bradium Golem',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2050,'W_AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2051,'E_BAPHOMET','Baphomet','Baphomet',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2051,'E_BAPHOMET','Baphomet','Baphomet',1,1,0,0,0,1,1,2,1,0,1,1,1,1,1,1,10,12,2,6,20,0x120,100,768,768,576,0,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2052,'E_DARK_LORD','Dark Lord','Dark Lord',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2053,'NC_DIMIK','Dimik','Dimik',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2054,'E_BATHORY','Bathory','Bathory',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -1182,13 +1188,13 @@ REPLACE INTO `mob_db` VALUES (2027,'G_DARK_SHADOW','Dark Shadow','Dark Shadow',1 # REPLACE INTO `mob_db` VALUES (2065,'E_METALING','Metaling','Metaling',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2066,'E_ANOPHELES','Anopheles','Anopheles',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2067,'E_ANOPHELES_','Anopheles','Anopheles',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2068,'BOITATA','Boitata','Boitata',93,1296924,0,74288,77950,1,962,1060,33,66,140,99,30,109,100,90,10,12,2,2,63,0x37B5,200,1020,1020,288,37144,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2069,'IARA','Iara','Iara',79,18952,0,4689,1500,1,99,171,0,76,140,14,41,60,69,20,10,12,1,5,61,0x81,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2070,'PIRANHA','Piranha','Piranha',75,4131,0,2445,2023,1,41,182,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,1968,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2071,'HEADLESS_MULE','Headless Mule','Headless Mule',80,16645,0,6666,4111,1,57,210,33,44,68,5,50,35,67,20,10,12,2,6,63,0x3395,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2072,'JAGUAR','Jaguar','Jaguar',71,12590,0,1820,1012,1,210,267,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2073,'TOUCAN','Toucan','Toucan',70,10555,0,1002,1552,1,35,166,12,12,54,14,40,35,44,10,10,12,1,2,44,0x81,150,1148,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2074,'CURUPIRA','Curupira','Curupira',68,8669,0,1209,850,1,35,140,42,12,32,23,38,20,45,10,10,12,1,7,22,0x91,150,1960,960,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2068,'BOITATA','Boitata','Boitata',93,1283990,0,74288,77950,2,1060,2022,7,36,140,99,30,109,100,90,10,12,2,0,63,0x37B5,200,1150,1150,288,37144,10000,0,0,0,0,0,0,7444,5000,985,1000,984,1000,607,500,1377,100,1422,100,1471,100,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2069,'IARA','Iara','Iara',79,5890,0,1070,890,1,171,270,0,39,69,14,41,60,69,20,10,12,1,5,61,0x91,200,672,380,288,0,0,0,0,0,0,0,0,950,9000,951,500,747,100,748,50,710,10,995,5,2334,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2070,'PIRANHA','Piranha','Piranha',75,4522,0,899,1023,1,182,223,2,10,69,45,30,30,66,35,10,12,1,5,61,0x3295,200,768,768,384,0,0,0,0,0,0,0,0,963,9000,956,600,1053,500,1054,500,995,5,1249,5,13027,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2071,'HEADLESS_MULE','Headless Mule','Headless Mule',80,6620,0,1011,1120,1,210,267,7,27,68,51,50,35,67,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,7120,4000,7097,1000,7122,1000,2317,5,1255,2,1269,1,2317,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2072,'JAGUAR','Jaguar','Jaguar',71,3914,0,720,512,1,192,234,9,12,69,30,45,5,59,5,10,12,1,2,42,0x3885,150,1250,580,360,0,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2073,'TOUCAN','Toucan','Toucan',70,3640,0,659,544,1,166,201,3,10,54,14,40,35,44,10,10,12,0,2,44,0x3885,155,1450,960,480,0,0,0,0,0,0,0,0,917,3000,7053,1000,2612,200,508,100,510,50,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2074,'CURUPIRA','Curupira','Curupira',68,3096,0,622,450,1,140,175,9,10,32,23,38,20,45,10,10,12,1,6,22,0x118B,250,530,530,384,0,0,0,0,0,0,0,0,517,3000,7267,500,757,250,1505,100,1011,10,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2075,'E_VADON_X','Vadon','Vadon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2076,'S_WIND_GHOST','Wind Ghost','Wind Ghost',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2077,'S_SKOGUL','Skogul','Skogul',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -1196,7 +1202,7 @@ REPLACE INTO `mob_db` VALUES (2074,'CURUPIRA','Curupira','Curupira',68,8669,0,12 # REPLACE INTO `mob_db` VALUES (2079,'CRYSTAL_H','Crystal','Crystal',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2080,'CRYSTAL_L','Crystal','Crystal',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2081,'E_HYDRA','Hydra','Hydra',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db` VALUES (2082,'F_PIRANHA','Piranha','Piranha',75,4131,0,0,0,1,41,182,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,1968,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2082,'G_PIRANHA','Piranha','Piranha',75,4522,0,0,0,1,182,223,2,10,69,45,30,30,66,35,10,12,1,5,61,0x3295,200,768,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2083,'HORN_SCARABA','Scaraba','Scaraba',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2084,'HORN_SCARABA2','Scaraba','Scaraba',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2085,'ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -1216,7 +1222,7 @@ REPLACE INTO `mob_db` VALUES (2082,'F_PIRANHA','Piranha','Piranha',75,4131,0,0,0 # REPLACE INTO `mob_db` VALUES (2099,'E_MISTRESS','Mistress','Mistress',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2100,'E_BAPHOMET2','Baphomet','Baphomet',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2101,'E_LORD_OF_DEATH2','Lord of Death','Lord of the Dead',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db` VALUES (2102,'E_DARK_LORD','Dark Lord','Dark Lord',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2102,'E_DARKLORD','Dark Lord','Dark Lord',1,1,0,0,0,1,1,2,1,0,1,1,1,1,1,1,10,12,2,6,20,0x120,100,868,768,480,0,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # 2103,E_KTULLANUX,Ktullanux,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 # REPLACE INTO `mob_db` VALUES (2104,'E_DARK_SNAKE_LORD','Dark Snake Lord','Evil Snake Lord',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # REPLACE INTO `mob_db` VALUES (2105,'E_TURTLE_GENERAL','Turtle General','Turtle General',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); diff --git a/tools/item_db.pl b/tools/item_db.pl index 38ffe5d0a..1cbe2b9a3 100755 --- a/tools/item_db.pl +++ b/tools/item_db.pl @@ -65,6 +65,7 @@ while ($ligne=) } } } +print("\n"); sub printField { diff --git a/tools/mob_db.pl b/tools/mob_db.pl index ebcf2b74b..38f851b73 100755 --- a/tools/mob_db.pl +++ b/tools/mob_db.pl @@ -95,6 +95,8 @@ while ($ligne=) } } } +print("\n"); + sub printField { my ($str, $suffix, $idCol) = @_; -- cgit v1.2.3-70-g09d2 From de678dc8a2d4450a91f9b4c2a205b294a8b678eb Mon Sep 17 00:00:00 2001 From: Gepard Date: Fri, 15 Apr 2011 09:50:13 +0000 Subject: * Fixed some `mob_db` columns being too small for currently used values (bugreport:4866, since r14727). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14794 54d463be-8e91-2dee-dedb-b68131a5f0ec --- sql-files/mob_db.sql | 12 ++++++------ sql-files/mob_db2.sql | 12 ++++++------ tools/mob_db.pl | 12 ++++++------ 3 files changed, 18 insertions(+), 18 deletions(-) (limited to 'tools') diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index 5f7592248..65630e76b 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -18,12 +18,12 @@ CREATE TABLE `mob_db` ( `ATK2` smallint(6) unsigned NOT NULL default '0', `DEF` smallint(6) unsigned NOT NULL default '0', `MDEF` smallint(6) unsigned NOT NULL default '0', - `STR` tinyint(4) unsigned NOT NULL default '0', - `AGI` tinyint(4) unsigned NOT NULL default '0', - `VIT` tinyint(4) unsigned NOT NULL default '0', - `INT` tinyint(4) unsigned NOT NULL default '0', - `DEX` tinyint(4) unsigned NOT NULL default '0', - `LUK` tinyint(4) unsigned NOT NULL default '0', + `STR` smallint(6) unsigned NOT NULL default '0', + `AGI` smallint(6) unsigned NOT NULL default '0', + `VIT` smallint(6) unsigned NOT NULL default '0', + `INT` smallint(6) unsigned NOT NULL default '0', + `DEX` smallint(6) unsigned NOT NULL default '0', + `LUK` smallint(6) unsigned NOT NULL default '0', `Range2` tinyint(4) unsigned NOT NULL default '0', `Range3` tinyint(4) unsigned NOT NULL default '0', `Scale` tinyint(4) unsigned NOT NULL default '0', diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql index d23483f7e..188aa4c1f 100644 --- a/sql-files/mob_db2.sql +++ b/sql-files/mob_db2.sql @@ -18,12 +18,12 @@ CREATE TABLE `mob_db2` ( `ATK2` smallint(6) unsigned NOT NULL default '0', `DEF` smallint(6) unsigned NOT NULL default '0', `MDEF` smallint(6) unsigned NOT NULL default '0', - `STR` tinyint(4) unsigned NOT NULL default '0', - `AGI` tinyint(4) unsigned NOT NULL default '0', - `VIT` tinyint(4) unsigned NOT NULL default '0', - `INT` tinyint(4) unsigned NOT NULL default '0', - `DEX` tinyint(4) unsigned NOT NULL default '0', - `LUK` tinyint(4) unsigned NOT NULL default '0', + `STR` smallint(6) unsigned NOT NULL default '0', + `AGI` smallint(6) unsigned NOT NULL default '0', + `VIT` smallint(6) unsigned NOT NULL default '0', + `INT` smallint(6) unsigned NOT NULL default '0', + `DEX` smallint(6) unsigned NOT NULL default '0', + `LUK` smallint(6) unsigned NOT NULL default '0', `Range2` tinyint(4) unsigned NOT NULL default '0', `Range3` tinyint(4) unsigned NOT NULL default '0', `Scale` tinyint(4) unsigned NOT NULL default '0', diff --git a/tools/mob_db.pl b/tools/mob_db.pl index 38f851b73..a5d287839 100755 --- a/tools/mob_db.pl +++ b/tools/mob_db.pl @@ -22,12 +22,12 @@ CREATE TABLE `mob_db` ( `ATK2` smallint(6) unsigned NOT NULL default '0', `DEF` smallint(6) unsigned NOT NULL default '0', `MDEF` smallint(6) unsigned NOT NULL default '0', - `STR` tinyint(4) unsigned NOT NULL default '0', - `AGI` tinyint(4) unsigned NOT NULL default '0', - `VIT` tinyint(4) unsigned NOT NULL default '0', - `INT` tinyint(4) unsigned NOT NULL default '0', - `DEX` tinyint(4) unsigned NOT NULL default '0', - `LUK` tinyint(4) unsigned NOT NULL default '0', + `STR` smallint(6) unsigned NOT NULL default '0', + `AGI` smallint(6) unsigned NOT NULL default '0', + `VIT` smallint(6) unsigned NOT NULL default '0', + `INT` smallint(6) unsigned NOT NULL default '0', + `DEX` smallint(6) unsigned NOT NULL default '0', + `LUK` smallint(6) unsigned NOT NULL default '0', `Range2` tinyint(4) unsigned NOT NULL default '0', `Range3` tinyint(4) unsigned NOT NULL default '0', `Scale` tinyint(4) unsigned NOT NULL default '0', -- cgit v1.2.3-70-g09d2 From 93c79a7017522d87e06b67af1959ecccff32cb7e Mon Sep 17 00:00:00 2001 From: gepard1984 Date: Tue, 31 Jan 2012 20:06:57 +0000 Subject: * Fixes and improvements related to MVP rewards (bugreport:1259): - removed obsolete (since r1!) ExpPer column from mob_db - official way to drop MVP rewards (always starts from first slot) - added MAX_MVP_DROP as define for max possible MVP reward slots * Updated mob_db SQL scripts. * Removed some renewal only monsters from pre-RE mob_db (were commented out anyway). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15531 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/mob_db2.txt | 52 +- db/pre-re/mob_db.txt | 2205 +++++++++++++++--------------- db/re/mob_db.txt | 2732 ++++++++++++++++++------------------- sql-files/mob_db.sql | 2688 +++++++++++++++++++----------------- sql-files/mob_db2.sql | 64 +- sql-files/upgrade_svn15531_db.sql | 4 + src/map/atcommand.c | 4 +- src/map/mob.c | 23 +- src/map/mob.h | 5 +- tools/mob_db.pl | 3 +- 10 files changed, 3975 insertions(+), 3805 deletions(-) create mode 100644 sql-files/upgrade_svn15531_db.sql (limited to 'tools') diff --git a/db/mob_db2.txt b/db/mob_db2.txt index 4f9d94ddf..a2567f33f 100644 --- a/db/mob_db2.txt +++ b/db/mob_db2.txt @@ -1,51 +1,51 @@ // Monsters Additional Database // // Structure of Database : -// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper +// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper // Easter Event Monsters -//1920,EASTER_EGG,Easter Egg,Easter Egg,3,300,0,4,4,0,1,2,20,20,1,1,1,1,1,20,10,12,0,0,60,128,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,250,935,500,558,300,501,200,501,200,713,800,558,300,558,300,0,0,0,0 -//1921,EASTER_BUNNY,Easter Bunny,Easter Bunny,6,1800,0,60,55,1,20,26,0,40,1,36,6,1,11,80,10,10,0,2,60,181,200,1456,456,336,0,0,0,0,0,0,0,0,2250,200,515,8000,727,1200,746,1500,706,30,622,50,534,5000,0,0,0,0,4006,70 +//1920,EASTER_EGG,Easter Egg,Easter Egg,3,300,0,4,4,0,1,2,20,20,1,1,1,1,1,20,10,12,0,0,60,128,1000,1001,1,1,0,0,0,0,0,0,0,1010,250,935,500,558,300,501,200,501,200,713,800,558,300,558,300,0,0,0,0 +//1921,EASTER_BUNNY,Easter Bunny,Easter Bunny,6,1800,0,60,55,1,20,26,0,40,1,36,6,1,11,80,10,10,0,2,60,181,200,1456,456,336,0,0,0,0,0,0,0,2250,200,515,8000,727,1200,746,1500,706,30,622,50,534,5000,0,0,0,0,4006,70 // rAthena Dev Team -//1900,VALARIS,Valaris,Valaris,99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1 -//1901,VALARIS_WORSHIPPER,Valaris's Worshipper,Valaris's Worshipper,50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1685,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1 -//1902,MC_CAMERI,MC Cameri,MC Cameri,99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1 -//1903,POKI,Poki#3,Poki#3,99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,1973,120,500,672,480,92100,7000,603,5500,617,3000,1723,1000,1228,100,1236,500,617,2500,1234,75,1237,125,1722,250,1724,100,1720,50,0,0,0,0 -//1904,SENTRY,Sentry,Sentry,99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1 +//1900,VALARIS,Valaris,Valaris,99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1 +//1901,VALARIS_WORSHIPPER,Valaris's Worshipper,Valaris's Worshipper,50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1685,100,868,480,120,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1 +//1902,MC_CAMERI,MC Cameri,MC Cameri,99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1 +//1903,POKI,Poki#3,Poki#3,99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,1973,120,500,672,480,92100,603,5500,617,3000,1723,1000,1228,100,1236,500,617,2500,1234,75,1237,125,1722,250,1724,100,1720,50,0,0,0,0 +//1904,SENTRY,Sentry,Sentry,99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1 //Custom Hollow Poring (overrrides/collides with META_ANDRE) -//1237,HOLLOW_PORING,Hollow Poring,Hollow Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,10 +//1237,HOLLOW_PORING,Hollow Poring,Hollow Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,10 //Custom Fire Poring. Warning, Colides with META_DENIRO -//1239,FIRE_PORING,Fire Poring,Fire Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20 +//1239,FIRE_PORING,Fire Poring,Fire Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20 //Lunar New Year 2008 Event Monster overrides //Uncomment if event is enabled, as these drops modifications are nessecary. -//1145,MARTIN,Martin,Martin,18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,7869,1500,0,0,4046,1 -//1175,TAROU,Tarou,Tarou,11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,7869,2500,0,0,0,0,0,0,4028,1 -//1209,CRAMP,Cramp,Cramp,56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,7869,1500,0,0,4296,1 +//1145,MARTIN,Martin,Martin,18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,7869,1500,0,0,4046,1 +//1175,TAROU,Tarou,Tarou,11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,7869,2500,0,0,0,0,0,0,4028,1 +//1209,CRAMP,Cramp,Cramp,56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,7869,1500,0,0,4296,1 //iRO St. Patricks Day 2008 Event Monster overrides //Uncomment if event is enabled, as these drops modifications are nessecary. -//1841,G_SNAKE_,Snake Lord's Minon,Snake Lord's Minon,15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0 -//1842,G_ANACONDAQ_,Snake Lord's Minon,Snake Lord's Minon,23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0 -//1843,SIDE_WINDER_,Snake Lord's Minon,Snake Lord's Minon,43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0 -//1844,G_ISIS_,Snake Lord's Minon,Snake Lord's Minon,47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,8,0,0,0,0,0,0,0,0,0,0,0,0 +//1841,G_SNAKE_,Snake Lord's Minon,Snake Lord's Minon,15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0 +//1842,G_ANACONDAQ_,Snake Lord's Minon,Snake Lord's Minon,23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0 +//1843,SIDE_WINDER_,Snake Lord's Minon,Snake Lord's Minon,43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0 +//1844,G_ISIS_,Snake Lord's Minon,Snake Lord's Minon,47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,8,0,0,0,0,0,0,0,0,0,0,0,0 //iRO Christmas 2008 Event //Uncomment if event is enabled, as these drops modifications are nessecary. -//1244,JAKK_XMAS,Christmas Jakk,Christmas Jakk,38,3581,0,1113,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0 -//1245,GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,282,171,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0 -//1246,COOKIE_XMAS,Christmas Cookie,Christmas Cookie,28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0 -//1247,ANTONIO,Antonio,Antonio,10,10,0,3,2,1,13,20,100,0,1,1,1,50,100,100,10,12,1,3,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,0,604,500,12354,500,14550,500,5136,500,12132,500,12225,500,5811,500,0,0,0,0,4243,1 +//1244,JAKK_XMAS,Christmas Jakk,Christmas Jakk,38,3581,0,1113,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0 +//1245,GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,282,171,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0 +//1246,COOKIE_XMAS,Christmas Cookie,Christmas Cookie,28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0 +//1247,ANTONIO,Antonio,Antonio,10,10,0,3,2,1,13,20,100,0,1,1,1,50,100,100,10,12,1,3,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,604,500,12354,500,14550,500,5136,500,12132,500,12225,500,5811,500,0,0,0,0,4243,1 //iRO Halloween 2009 Event //Uncomment if event is enabled. Uncomment the skills for Halloween Whisper in mob_skill_db2. -//3014,HALLOWEEN_WHISPER,Halloween Whisper,Halloween Whisper,1,800,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,0,6,68,0x81,150,1960,960,504,0,0,0,0,0,0,0,0,12396,150,6299,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//3015,HALLOWEEN_DARK_LORD,Halloween Dark Lord,Halloween Dark Lord,1,45,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,2,6,89,0x81,100,868,768,480,0,0,0,0,0,0,0,0,12396,800,12397,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//3014,HALLOWEEN_WHISPER,Halloween Whisper,Halloween Whisper,1,800,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,0,6,68,0x81,150,1960,960,504,0,0,0,0,0,0,0,12396,150,6299,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//3015,HALLOWEEN_DARK_LORD,Halloween Dark Lord,Halloween Dark Lord,1,45,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,2,6,89,0x81,100,868,768,480,0,0,0,0,0,0,0,12396,800,12397,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //iRO Halloween 2008 Event //Uncomment if event is enabled. -//3000,ZOMBIE,Zombie,Zombie,15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1 -//3001,GHOUL,Ghoul,Ghoul,40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1 -//3002,ZOMBIE_MASTER,Zombie Master,Zombie Master,62,14211,0,7610,2826,1,824,1084,37,26,25,20,30,5,77,35,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1 +//3000,ZOMBIE,Zombie,Zombie,15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1 +//3001,GHOUL,Ghoul,Ghoul,40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1 +//3002,ZOMBIE_MASTER,Zombie Master,Zombie Master,62,14211,0,7610,2826,1,824,1084,37,26,25,20,30,5,77,35,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1 diff --git a/db/pre-re/mob_db.txt b/db/pre-re/mob_db.txt index 67b2b072b..dc760b8bf 100644 --- a/db/pre-re/mob_db.txt +++ b/db/pre-re/mob_db.txt @@ -1,1185 +1,1142 @@ // Monster Database // // Structure of Database : -// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper +// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper // Note: Keep the Sprite_Name field as it is (in the game client). You may change Name,JName field tough -1001,SCORPION,Scorpion,Scorpion,24,1109,0,287,176,1,80,135,30,0,1,24,24,5,52,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1 -1002,PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1 -//1003,TESTEGG,Test Egg,Test Egg,2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1004,HORNET,Hornet,Hornet,8,169,0,19,15,1,22,27,5,5,6,20,8,10,17,5,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1 -1005,FARMILIAR,Familiar,Familiar,8,155,0,28,15,1,20,28,0,0,1,12,8,5,28,0,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1 -//1006,THIEF_BUG_LARVA,Thief Bug Larva,Thief Bug Larva,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1007,FABRE,Fabre,Fabre,2,63,0,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1 -1008,PUPA,Pupa,Pupa,2,427,0,2,4,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1 -1009,CONDOR,Condor,Condor,5,92,0,6,5,1,11,14,0,0,1,13,5,0,13,10,10,12,1,2,24,0x1089,150,1148,648,480,0,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1 -1010,WILOW,Willow,Willow,4,95,0,5,4,1,9,12,5,15,1,4,8,30,9,10,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1 -1011,CHONCHON,Chonchon,Chonchon,4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1 -1012,RODA_FROG,Roda Frog,Roda Frog,5,133,0,6,5,1,11,14,0,5,1,5,5,5,10,5,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1 -1013,WOLF,Wolf,Wolf,25,919,0,329,199,1,37,46,0,0,1,20,28,15,32,20,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1 -1014,SPORE,Spore,Spore,16,510,0,66,108,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1 -1015,ZOMBIE,Zombie,Zombie,15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1 -1016,ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,31,3040,0,483,283,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1 -//1017,THIEF_BUG_FEMALE,Thief Bug Female,Thief Bug Female,10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,651,200,988,288,768,0,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1 -1018,CREAMY,Creamy,Creamy,16,595,0,105,70,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1 -1019,PECOPECO,Peco Peco,Peco Peco,19,531,0,159,72,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1 -1020,MANDRAGORA,Mandragora,Mandragora,12,405,0,45,32,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1 -//1021,THIEF_BUG_MALE,Thief Bug Male,Thief Bug Male,19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,653,300,988,288,768,0,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1 -//1022,WEREWOLF,Werewolf,Werewolf,80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,163,200,1500,768,652,0,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0 -1023,ORK_WARRIOR,Orc Warrior,Orc Warrior,24,1400,0,408,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 -1024,WORM_TAIL,Wormtail,Wormtail,14,426,0,59,40,2,42,51,5,0,1,14,28,5,46,5,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1 -1025,SNAKE,Snake,Boa,15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1 -1026,MUNAK,Munak,Munak,30,2872,0,601,318,1,150,230,0,0,1,15,20,5,46,15,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1 -//1027,RAPTICE,Raptice,Raptice,17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,131,200,2000,1000,500,0,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1028,SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,29,2334,0,372,226,1,221,245,10,15,1,15,22,5,40,15,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,1201,150,1216,50,0,0,0,0,4086,1 -1029,ISIS,Isis,Isis,47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1 -1030,ANACONDAQ,Anacondaq,Anacondaq,23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,0,1011,50,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1 -1031,POPORING,Poporing,Poporing,14,344,0,81,44,1,59,72,0,10,1,14,14,0,19,15,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,512,5,1207,5,512,250,0,0,0,0,4033,1 -1032,VERIT,Verit,Verit,38,5272,0,835,517,1,389,469,0,5,1,19,38,0,38,20,10,12,1,1,29,0x83,250,2468,768,480,0,0,0,0,0,0,0,0,929,9000,912,700,930,1100,509,600,2609,1,2612,200,639,20,0,0,0,0,4107,1 -1033,ELDER_WILOW,Elder Willow,Elder Willow,20,693,0,163,101,1,58,70,10,30,1,20,25,35,38,30,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,990,50,907,9000,1019,350,757,40,2329,30,690,100,604,100,0,0,0,0,4052,1 -1034,THARA_FROG,Thara Frog,Thara Frog,22,2152,0,219,138,1,105,127,0,10,1,22,22,5,34,10,10,12,1,5,41,0x81,200,2016,816,288,0,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1 -1035,HUNTER_FLY,Hunter Fly,Hunter Fly,42,5242,0,1517,952,1,246,333,25,15,33,105,32,15,72,30,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1 -1036,GHOUL,Ghoul,Ghoul,40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1 -1037,SIDE_WINDER,Side Winder,Side Winder,43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1 -1038,OSIRIS,Osiris,Osiris,78,415400,0,71500,28600,1,780,2880,10,25,1,75,30,37,86,40,10,12,1,1,89,0x37B5,100,1072,672,384,35750,10000,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1 -1039,BAPHOMET,Baphomet,Baphomet,81,668000,0,107250,37895,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,53625,10000,607,2000,750,500,923,5000,1466,200,2256,200,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1 -1040,GOLEM,Golem,Golem,25,3900,0,465,94,1,175,187,40,0,1,15,25,0,15,0,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,1003,210,715,200,998,350,0,0,0,0,4072,1 -1041,MUMMY,Mummy,Mummy,37,5176,0,800,602,1,305,360,0,10,28,19,32,0,63,20,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1 -1042,STEEL_CHONCHON,Steel Chonchon,Steel Chonchon,17,530,0,109,71,1,54,65,15,0,1,43,17,5,33,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1 -//1043,SEAHORES,Seahorse,Seahorse,18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1044,OBEAUNE,Obeaune,Obeaune,31,3952,0,644,407,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1 -1045,MARC,Marc,Marc,36,6900,0,988,625,1,220,280,5,10,1,36,36,20,56,30,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1 -1046,DOPPELGANGER,Doppelganger,Doppelganger,72,249000,0,51480,10725,1,1340,1590,60,35,88,90,30,35,125,65,10,12,1,6,67,0x37B5,100,480,480,288,25740,10000,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1 -1047,PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,3,420,0,4,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,250,935,1500,2102,2,507,400,507,400,713,1800,736,10,0,0,0,0,4007,1 -1048,THIEF_BUG_EGG,Thief Bug Egg,Thief Bug Egg,4,48,0,8,4,0,13,17,20,0,1,6,4,0,14,20,10,12,0,4,27,0x100,1000,701,1,1,0,0,0,0,0,0,0,0,1010,300,915,5000,2102,2,938,600,716,100,737,10,1002,250,0,0,0,0,4012,1 -1049,PICKY,Picky,Picky,3,80,0,4,3,1,9,12,0,0,1,3,3,5,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,0,916,9000,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,1 -1050,PICKY_,Picky,Picky,4,83,0,5,4,1,8,11,20,0,1,3,3,10,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,715,50,10012,10,0,0,0,0,4011,1 -1051,THIEF_BUG,Thief Bug,Thief Bug,6,126,0,17,5,1,18,24,5,0,1,6,6,0,11,0,10,12,0,4,60,0x118B,150,1288,288,768,0,0,0,0,0,0,0,0,955,2500,2304,80,507,350,909,2000,2303,120,1002,250,0,0,0,0,0,0,4016,1 -1052,ROCKER,Rocker,Rocker,9,198,0,20,16,1,24,29,5,10,1,9,18,10,14,15,10,12,1,4,22,0x181,200,1864,864,540,0,0,0,0,0,0,0,0,940,9000,1916,10,2298,4,1402,80,520,10,752,10,703,10,0,0,0,0,4021,1 -1053,THIEF_BUG_,Thief Bug Female,Thief Bug Female,10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,0x118B,200,988,288,768,0,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,300,0,0,0,0,4026,1 -1054,THIEF_BUG__,Thief Bug Male,Thief Bug Male,19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1 -1055,MUKA,Muka,Muka,17,610,0,273,120,1,40,49,5,5,15,15,30,5,20,10,10,12,2,3,22,0x81,300,1960,960,384,0,0,0,0,0,0,0,0,993,70,952,9000,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1 -1056,SMOKIE,Smokie,Smokie,18,641,0,134,86,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1 -1057,YOYO,Yoyo,Yoyo,21,879,0,280,111,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1 -1058,METALLER,Metaller,Metaller,22,926,0,241,152,1,131,159,15,30,1,22,22,20,49,50,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1 -1059,MISTRESS,Mistress,Mistress,74,212000,0,39325,27170,1,880,1110,40,60,50,165,60,95,70,130,10,12,0,4,84,0x37B5,100,1148,648,300,19662,10000,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1 -1060,BIGFOOT,Bigfoot,Bigfoot,25,1619,0,310,188,1,198,220,10,0,1,25,55,15,20,25,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1 -1061,NIGHTMARE,Nightmare,Nightmare,49,4437,0,1912,1912,1,447,529,0,40,1,74,25,15,64,10,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1 -1062,PORING_,Santa Poring,Santa Poring,3,69,0,4,5,1,12,16,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1 -1063,LUNATIC,Lunatic,Lunatic,3,60,0,6,2,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,0,0,0,0,4006,1 -1064,MEGALODON,Megalodon,Megalodon,24,1648,0,215,132,1,155,188,0,15,1,12,24,0,26,5,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1 -1065,STROUF,Strouf,Strouf,48,11990,0,3080,2098,1,200,1250,5,50,1,40,45,92,43,65,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,0,951,5335,756,115,2241,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1 -1066,VADON,Vadon,Vadon,19,1017,0,135,85,1,74,85,20,0,1,19,16,10,36,15,10,12,0,5,21,0x91,300,1632,432,540,0,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1 -1067,CORNUTUS,Cornutus,Cornutus,23,1620,0,240,149,1,109,131,30,0,1,23,23,5,36,12,10,12,0,5,21,0x91,200,1248,48,480,0,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1 -1068,HYDRA,Hydra,Hydra,14,660,0,59,40,7,22,28,0,40,1,14,14,0,40,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,1011,25,962,5500,938,1500,971,20,525,5,517,700,0,0,0,0,0,0,4035,1 -1069,SWORD_FISH,Swordfish,Swordfish,30,4299,0,1251,638,1,168,199,5,20,1,30,30,41,62,30,10,12,2,5,41,0x3885,200,1968,768,384,0,0,0,0,0,0,0,0,995,10,963,9000,756,33,2257,2,757,50,1117,25,956,600,0,0,0,0,4089,1 -1070,KUKRE,Kukre,Kukre,11,507,0,38,28,1,28,37,15,0,1,11,11,5,16,2,10,12,0,5,21,0x83,150,1776,576,288,0,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1 -1071,PIRATE_SKEL,Pirate Skeleton,Pirate Skeleton,25,1676,0,233,142,1,145,178,10,15,25,13,25,5,25,10,10,12,1,1,29,0x3885,200,1754,554,288,0,0,0,0,0,0,0,0,932,3000,2287,15,7477,5,2211,250,1104,250,756,43,628,20,0,0,0,0,4073,1 -1072,KAHO,Kaho,Kaho,60,8409,0,3990,450,1,110,760,5,50,1,55,43,88,80,46,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1 -1073,CRAB,Crab,Crab,20,2451,0,163,101,1,71,81,35,0,18,20,15,0,36,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1 -1074,SHELLFISH,Shellfish,Shellfish,15,920,0,66,44,1,35,42,35,0,1,12,8,0,32,5,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1 -//1075,TURTLE,Turtle,Turtle,3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1076,SKELETON,Skeleton,Skeleton,10,234,0,18,14,1,39,47,10,10,1,5,10,0,12,0,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1 -1077,POISON_SPORE,Poison Spore,Poison Spore,19,665,0,186,93,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1 -1078,RED_PLANT,Red Plant,Red Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,906,300,914,500,708,50,2269,2,0,0,0,0 -1079,BLUE_PLANT,Blue Plant,Blue Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,510,5500,712,1000,711,1000,905,500,906,300,522,50,514,1000,2270,2,0,0,0,0 -1080,GREEN_PLANT,Green Plant,Green Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,511,7000,712,1000,621,20,905,3000,906,1500,704,50,521,50,2270,2,0,0,0,0 -1081,YELLOW_PLANT,Yellow Plant,Yellow Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,508,5500,712,1000,711,1000,905,500,906,300,707,5,914,500,2269,2,0,0,0,0 -1082,WHITE_PLANT,White Plant,White Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,509,5500,712,1000,631,20,905,3000,906,1500,521,50,703,50,2269,2,0,0,0,0 -1083,SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,510,5500,508,1000,509,1000,710,5,608,20,518,500,607,50,714,1,0,0,0,0 -1084,BLACK_MUSHROOM,Black Mushroom,Black Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,7033,5500,0,0,0,0 -1085,RED_MUSHROOM,Red Mushroom,Red Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,7033,5500,0,0,0,0 -1086,GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,64,126000,0,14300,7150,1,870,1145,60,45,65,75,35,45,85,150,10,12,2,4,43,0x11AB,100,768,768,480,7150,10000,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1 -1087,ORK_HERO,Orc Hero,Orc Hero,77,585700,0,58630,32890,1,2257,2542,40,45,1,91,30,70,105,90,10,12,2,7,42,0x37B5,150,1678,780,648,29315,10000,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1 -1088,VOCAL,Vocal,Vocal,18,3016,0,110,88,1,71,82,10,30,77,28,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,645,700,1917,10,0,0,0,0,4211,1 -1089,TOAD,Toad,Toad,10,5065,0,100,50,1,26,32,0,0,1,5,10,10,10,25,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,746,1500,970,100,971,100,5125,1000,0,0,0,0,4306,1 -1090,MASTERING,Mastering,Mastering,2,2415,0,30,10,1,18,24,0,10,1,2,2,0,17,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,512,8000,512,8000,531,4000,0,0,0,0,4197,1 -1091,DRAGON_FLY,Dragon Fly,Dragon Fly,8,2400,0,88,44,1,22,27,40,0,1,20,8,15,17,5,10,12,0,4,24,0x37B5,100,1076,576,480,0,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1 -1092,VAGABOND_WOLF,Vagabond Wolf,Vagabond Wolf,24,12240,0,247,176,1,135,159,10,0,57,45,48,20,50,65,10,12,1,2,22,0x37B5,150,1048,648,432,0,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,2521,1000,725,10,626,50,0,0,0,0,4183,1 -1093,ECLIPSE,Eclipse,Eclipse,6,1800,0,60,55,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,746,1500,706,30,622,50,2355,1000,0,0,0,0,4266,1 -1094,AMBERNITE,Ambernite,Ambernite,13,495,0,57,38,1,39,46,30,0,1,13,13,5,18,5,10,12,2,4,21,0x191,400,2048,648,648,0,0,0,0,0,0,0,0,991,50,946,9000,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1 -1095,ANDRE,Andre,Andre,17,688,0,109,71,1,60,71,10,0,1,17,24,20,26,20,10,12,0,4,22,0x118B,300,1288,288,384,0,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1 -1096,ANGELING,Angeling,Angeling,20,55000,0,163,144,1,120,195,0,70,1,50,20,75,68,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1 -1097,ANT_EGG,Ant Egg,Ant Egg,4,420,0,5,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1 -1098,ANUBIS,Anubis,Anubis,75,38000,0,28000,22000,1,530,1697,25,31,5,65,10,82,77,33,10,12,2,7,49,0x3695,150,1250,768,360,0,0,0,0,0,0,0,0,930,3000,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1 -1099,ARGIOPE,Argiope,Argiope,41,4382,0,1797,849,1,395,480,30,0,1,41,31,10,56,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1 -1100,ARGOS,Argos,Argos,25,1117,0,388,188,1,158,191,15,0,1,25,25,5,32,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1 -1101,BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1 -1102,BATHORY,Bathory,Bathory,44,5415,0,2503,1034,1,198,398,0,60,1,76,24,85,65,15,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1 -1103,CARAMEL,Caramel,Caramel,23,1424,0,264,162,1,90,112,5,5,35,23,46,5,38,10,10,12,0,2,22,0x91,200,1604,840,756,0,0,0,0,0,0,0,0,1027,9000,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1 -1104,COCO,Coco,Coco,17,817,0,120,78,1,56,67,0,0,24,17,34,20,24,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,578,600,0,0,0,0,4041,1 -1105,DENIRO,Deniro,Deniro,19,760,0,135,85,1,68,79,15,0,1,19,30,20,43,10,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,0,955,9000,910,3000,938,1200,990,50,1001,8,1002,450,757,34,0,0,0,0,4043,1 -1106,DESERT_WOLF,Desert Wolf,Desert Wolf,27,1716,0,427,266,1,169,208,0,10,56,27,45,15,56,10,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,1217,140,0,0,0,0,4082,1 -1107,DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,9,164,0,20,16,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,0x1089,300,1600,900,240,0,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,517,600,2301,200,13011,5,582,1000,0,0,0,0,4023,1 -1108,DEVIACE,Deviace,Deviace,47,20090,0,9988,7207,1,514,1024,10,20,1,47,62,48,62,25,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,995,25,1053,9000,1054,1000,5011,2,971,200,1256,3,756,161,0,0,0,0,4125,1 -1109,DEVIRUCHI,Deviruchi,Deviruchi,46,6666,0,2662,1278,1,475,560,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1 -1110,DOKEBI,Dokebi,Dokebi,33,2697,0,889,455,1,197,249,0,10,50,50,40,35,69,40,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1 -1111,DRAINLIAR,Drainliar,Drainliar,24,1162,0,431,176,1,74,84,0,0,1,36,24,0,78,0,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1 -1112,DRAKE,Drake,Drake,70,326666,0,28600,22880,1,1800,2100,20,35,85,80,49,75,79,50,10,12,1,1,29,0x37B5,400,620,420,360,14300,10000,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1 -1113,DROPS,Drops,Drops,3,55,0,4,3,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1 -1114,DUSTINESS,Dustiness,Dustiness,21,1044,0,218,140,1,80,102,0,10,1,53,17,0,38,5,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1 -1115,EDDGA,Eddga,Eddga,65,152000,0,25025,12870,1,1215,1565,15,15,78,70,85,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,12512,10000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1 -1116,EGGYRA,Eggyra,Eggyra,24,633,0,215,220,1,85,107,20,25,1,36,24,0,32,0,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1 -1117,EVIL_DRUID,Evil Druid,Evil Druid,58,16506,0,2890,1827,1,420,670,5,60,1,29,58,80,68,30,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1 -1118,FLORA,Flora,Flora,26,2092,0,357,226,3,242,273,10,35,1,26,35,5,43,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1 -1119,FRILLDORA,Frilldora,Frilldora,30,2023,0,529,319,1,200,239,0,10,35,30,38,15,53,30,10,12,1,2,23,0x3885,300,1540,720,432,0,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1 -1120,GHOSTRING,Ghostring,Ghostring,18,73300,0,101,108,1,82,122,0,60,40,27,18,45,72,30,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1 -1121,GIEARTH,Giearth,Giearth,29,2252,0,495,301,1,154,185,10,50,25,29,46,60,64,105,10,12,0,6,22,0x191,200,1848,1296,432,0,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1 -1122,GOBLIN_1,Goblin,Goblin,25,1176,0,310,188,1,118,140,10,5,1,53,25,20,38,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,9000,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1 -1123,GOBLIN_2,Goblin,Goblin,24,1034,0,287,176,1,88,100,10,5,1,24,24,15,66,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,998,250,911,9000,5010,3,1511,10,2104,1,507,1550,2297,3,0,0,0,0,4060,1 -1124,GOBLIN_3,Goblin,Goblin,24,1034,0,357,176,1,132,165,10,5,1,24,24,15,24,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,998,230,911,9000,2275,3,5088,15,2104,1,507,1550,508,220,0,0,0,0,4060,1 -1125,GOBLIN_4,Goblin,Goblin,23,1359,0,264,164,1,109,131,10,5,1,23,46,15,36,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2104,1,507,1500,0,0,0,0,4060,1 -1126,GOBLIN_5,Goblin,Goblin,22,1952,0,241,152,1,105,127,10,5,1,22,22,15,32,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,998,150,911,9000,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1 -1127,HODE,Hode,Hode,26,2282,0,550,300,1,146,177,0,30,1,26,42,5,49,40,10,12,1,2,42,0x81,200,1480,480,720,0,0,0,0,0,0,0,0,993,120,1055,9000,757,80,938,3000,1147,10,7021,1,632,20,0,0,0,0,4081,1 -1128,HORN,Horn,Horn,18,659,0,134,86,1,58,69,10,0,22,18,28,10,47,15,10,12,1,4,22,0x191,200,1528,528,288,0,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1 -1129,HORONG,Horong,Horong,34,1939,0,786,479,1,275,327,99,50,1,34,10,0,50,0,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1 -1130,JAKK,Jakk,Jakk,38,3581,0,1408,880,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,0,0,0,0,0,0,4109,1 -1131,JOKER,Joker,Joker,57,12450,0,3706,2362,1,621,738,10,35,1,143,47,75,98,175,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1 -1132,KHALITZBURG,Khalitzburg,Khalitzburg,63,19276,0,4378,2750,1,875,1025,45,10,58,65,48,5,73,40,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,509,2000,1127,2,0,0,0,0,4136,1 -1133,KOBOLD_1,Kobold,Kobold,36,3893,0,988,625,1,265,318,15,10,1,90,36,30,52,20,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 -1134,KOBOLD_2,Kobold,Kobold,31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1 -1135,KOBOLD_3,Kobold,Kobold,31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1 -//1136,KOBOLD_4,Kobold,Kobold,31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1 -//1137,KOBOLD_5,Kobold,Kobold,31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1 -1138,MAGNOLIA,Magnolia,Magnolia,26,3195,0,393,248,1,120,151,5,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1 -1139,MANTIS,Mantis,Mantis,26,2472,0,393,248,1,118,149,10,0,1,26,24,5,45,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1 -1140,MARDUK,Marduk,Marduk,40,4214,0,1238,752,1,315,382,0,60,1,40,20,79,78,20,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1 -1141,MARINA,Marina,Marina,21,2087,0,218,140,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x81,400,2280,1080,864,0,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1 -1142,MARINE_SPHERE,Marine Sphere,Marine Sphere,28,3518,0,461,284,1,120,320,0,40,1,28,28,0,33,50,10,12,0,3,41,0x0,800,1201,1,1,0,0,0,0,0,0,0,0,1050,5000,1051,2500,1520,10,720,10,717,150,10003,10,0,0,0,0,0,0,4084,1 -1143,MARIONETTE,Marionette,Marionette,41,3222,0,1078,1276,1,355,422,0,25,1,62,36,44,69,45,10,12,0,6,68,0x3195,300,1480,480,1056,0,0,0,0,0,0,0,0,1060,9000,2294,5,2605,1,699,100,1520,15,2407,1,5141,3,0,0,0,0,4113,1 -1144,MARSE,Marse,Marse,31,5034,0,586,370,1,211,252,0,5,1,31,25,5,52,30,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1 -1145,MARTIN,Martin,Martin,18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1 -1146,MATYR,Matyr,Matyr,31,2585,0,967,407,1,134,160,0,0,1,47,38,5,64,5,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1 -1147,MAYA,Maya,Maya,81,169000,0,42900,17875,1,1800,2070,60,25,95,97,76,95,82,105,10,12,2,4,82,0x37B5,100,864,1000,480,21450,10000,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1 -1148,MEDUSA,Medusa,Medusa,79,16408,0,6876,4697,1,827,1100,28,18,1,74,50,57,77,69,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,967,3500,1007,3,0,0,0,0,4124,1 -1149,MINOROUS,Minorous,Minorous,52,7431,0,2750,1379,1,590,770,15,5,65,42,61,66,52,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,516,1500,1301,200,568,300,0,0,0,0,4126,1 -1150,MOONLIGHT,Moonlight Flower,Moonlight Flower,67,120000,0,27500,14300,1,1200,1700,10,55,55,99,55,82,95,120,10,12,1,6,63,0x37B5,150,1276,576,288,13750,10000,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1 -1151,MYST,Myst,Myst,38,3745,0,1391,688,1,365,445,0,40,1,38,18,0,53,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,514,35,0,0,0,0,4108,1 -1152,ORC_SKELETON,Orc Skeleton,Orc Skeleton,28,2278,0,315,194,1,190,236,10,10,1,14,18,0,30,15,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1 -1153,ORC_ZOMBIE,Orc Zombie,Orc Zombie,24,1568,0,196,120,1,151,184,5,10,1,12,24,0,24,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1 -1154,PASANA,Pasana,Pasana,61,8289,0,4087,2135,1,513,682,29,35,1,73,50,61,59,43,10,12,1,7,43,0x3095,165,976,576,288,0,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,2522,100,0,0,0,0,0,0,4099,1 -1155,PETIT,Petite,Petite,44,6881,0,1677,1034,1,360,427,30,30,1,44,62,55,79,60,10,12,1,9,22,0x3095,200,1624,620,384,0,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,912,1500,606,15,0,0,0,0,4118,1 -1156,PETIT_,Petite,Petite,45,5747,0,1758,1075,1,300,355,20,45,1,113,45,55,73,80,10,12,1,9,24,0x3095,150,1420,1080,528,0,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1 -1157,PHARAOH,Pharaoh,Pharaoh,93,445997,0,114990,41899,1,2267,3015,67,70,1,93,100,104,89,112,10,12,2,7,67,0x37B5,125,868,768,288,57495,10000,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1 -1158,PHEN,Phen,Phen,26,3347,0,357,226,1,138,150,0,15,1,26,26,0,88,75,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1 -1159,PHREEONI,Phreeoni,Phreeoni,69,188000,0,32175,16445,1,880,1530,10,20,1,85,78,35,130,60,10,12,2,2,60,0x37B5,200,1020,1020,288,16087,10000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1 -1160,PIERE,Piere,Piere,18,733,0,122,78,1,64,75,15,0,1,18,26,20,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1 -1161,PLANKTON,Plankton,Plankton,10,354,0,23,18,1,26,31,0,5,1,10,10,0,15,0,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1 -1162,RAFFLESIA,Rafflesia,Rafflesia,17,1333,0,333,333,3,105,127,0,2,1,18,24,11,37,10,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1 -1163,RAYDRIC,Raydric,Raydric,52,8613,0,3410,1795,1,830,930,40,15,58,47,42,5,69,26,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,0,0,0,0,4133,1 -1164,REQUIEM,Requiem,Requiem,35,3089,0,800,458,1,220,272,0,15,1,53,35,5,57,2,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1 -1165,SAND_MAN,Sandman,Sandman,34,3413,0,810,492,1,180,205,10,25,24,34,58,38,60,5,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1 -1166,SAVAGE,Savage,Savage,26,2092,0,521,248,1,120,150,10,5,1,26,54,10,37,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,605,10,757,70,526,2,0,0,0,0,4078,1 -1167,SAVAGE_BABE,Savage Babe,Savage Babe,7,182,0,14,12,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,0,919,9000,1302,100,517,500,1750,1000,949,850,1010,80,627,40,0,0,0,0,4017,1 -//1168,SCORPION_KING,Scorpion King,Scorpion King,50,6354,0,2187,1346,1,500,603,40,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1 -1169,SKEL_WORKER,Skeleton Worker,Skeleton Worker,30,2872,0,397,240,1,242,288,0,15,1,15,30,5,42,10,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,1002,800,0,0,0,0,4092,1 -1170,SOHEE,Sohee,Sohee,33,5628,0,739,455,1,210,251,0,10,1,33,33,10,58,15,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,507,1000,662,350,0,0,0,0,4100,1 -//1171,SOLDIER_ANDRE,Soldier Andre,Soldier Andre,22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1 -//1172,SOLDIER_DENIRO,Soldier Deniro,Soldier Deniro,29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1 -//1173,SOLDIER_PIERE,Soldier Piere,Soldier Piere,23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1 -1174,STAINER,Stainer,Stainer,16,538,0,105,70,1,53,64,10,0,1,40,16,5,30,5,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1 -1175,TAROU,Tarou,Tarou,11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1 -1176,VITATA,Vitata,Vitata,20,894,0,163,101,1,69,80,15,20,1,20,25,65,40,70,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1 -1177,ZENORC,Zenorc,Zenorc,31,2585,0,967,407,1,188,223,0,15,1,77,15,0,76,10,10,12,1,7,27,0x83,150,1180,480,360,0,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1 -1178,ZEROM,Zerom,Zerom,23,1109,0,240,149,1,127,155,0,10,1,23,23,5,42,0,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,1002,300,0,0,0,0,4064,1 -1179,WHISPER,Whisper,Whisper,34,1796,0,591,599,1,180,221,0,45,1,51,14,0,60,0,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1 -1180,NINE_TAIL,Nine Tail,Nine Tail,51,7766,0,2812,825,1,610,734,10,25,1,80,46,1,74,85,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1 -//1181,ZOMBIE_DRAGON,Zombie Dragon,Zombie Dragon,1,1000,0,49500,1650,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1182,THIEF_MUSHROOM,Thief Mushroom,Thief Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1183,CHONCHON_,Chonchon,Chonchon,4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1 -1184,FABRE_,Fabre,Fabre,1,30,0,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0 -1185,WHISPER_,Whisper,Whisper,34,1796,0,537,545,1,198,239,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,0,1001,10,1059,100,0,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0 -1186,WHISPER_BOSS,Giant Whisper,Giant Whisper,34,5040,0,537,545,1,198,239,0,45,1,51,14,0,60,0,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1 -1187,SWITCH,Switch,Switch,1,2,0,1,1,1,1,2,0,0,1,1,1,0,1,0,1,12,1,0,20,0x0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1188,BON_GUN,Bongun,Bongun,32,3520,0,424,242,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1 -1189,ORC_ARCHER,Orc Archer,Orc Archer,49,7440,0,1729,1787,9,310,390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1 -1190,ORC_LORD,Orc Lord,Orc Lord,74,783000,0,62205,8580,1,3700,4150,40,5,85,82,30,70,110,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,10000,968,5500,617,2000,0,0,1363,200,2601,500,5007,150,1371,400,617,1000,985,4268,16000,3100,0,0,0,0,4135,1 -1191,MIMIC,Mimic,Mimic,51,6120,182,165,165,1,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,714,3,2626,1,757,270,0,0,0,0,4205,1 -1192,WRAITH,Wraith,Wraith,53,10999,0,2199,1099,1,580,760,5,30,1,95,30,65,95,35,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1 -1193,ALARM,Alarm,Alarm,58,10647,0,3987,2300,1,480,600,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1 -1194,ARCLOUSE,Arclouse,Arclouze,59,6075,0,860,1000,1,570,640,10,15,1,75,5,5,75,50,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1 -1195,RIDEWORD,Rideword,Rideword,59,11638,0,2007,3106,1,584,804,5,35,48,75,10,20,120,45,10,12,0,0,60,0x3695,150,864,500,192,0,0,0,0,0,0,0,0,1097,4850,1553,4,1554,4,1555,2,1556,2,7015,300,1006,20,0,0,0,0,4185,1 -1196,SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,52,8691,0,2466,1562,1,660,890,10,20,55,20,36,0,76,25,10,12,1,1,69,0x308D,350,1848,500,576,0,0,0,0,0,0,0,0,1098,3500,7016,100,2320,1,716,600,930,3500,2408,35,934,1500,0,0,0,0,4222,1 -1197,ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,53,11280,0,2635,1724,1,780,930,10,20,1,24,39,0,72,25,10,12,1,1,69,0x308D,350,1768,500,192,0,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1 -1198,DARK_PRIEST,Dark Priest,Dark Priest,79,101992,0,12192,5152,2,1238,2037,56,70,5,91,41,101,103,42,10,12,1,6,89,0x31AD,200,864,1252,476,0,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,50,2319,5,1241,1,0,0,0,0,4171,1 -1199,PUNK,Punk,Punk,43,3620,0,1699,1033,1,292,365,0,45,1,105,5,45,65,20,10,12,0,3,24,0x3095,300,1500,500,1000,0,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1 -1200,ZHERLTHSH,Zherlthsh,Zealotus,63,18300,0,3608,2304,1,700,850,10,15,70,85,40,30,125,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,0,7017,5,509,1800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1 -1201,RYBIO,Rybio,Rybio,71,9572,0,6317,3520,1,686,912,45,37,1,97,75,74,77,90,10,12,2,6,40,0x318D,200,1790,1440,540,0,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,731,30,1008,10,984,100,709,30,0,0,0,0,4194,1 -1202,PHENDARK,Phendark,Phendark,73,22729,0,6826,3443,2,794,1056,52,36,1,62,120,65,76,66,10,12,2,7,40,0x308D,175,1744,1344,600,0,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,1971,100,0,0,0,0,0,0,4329,1 -1203,MYSTELTAINN,Mysteltainn,Mysteltainn,76,33350,0,6457,5159,2,1160,1440,30,30,77,139,80,35,159,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,999,120,984,243,0,0,0,0,4207,1 -1204,TIRFING,Tirfing,Ogretooth,71,29900,0,5412,4235,1,950,1146,30,35,58,87,55,35,132,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1 -1205,EXECUTIONER,Executioner,Executioner,65,28980,0,4730,3536,2,570,950,35,35,64,85,40,25,88,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1 -1206,ANOLIAN,Anolian,Anolian,61,18960,0,5900,3700,1,640,980,15,15,1,43,58,25,80,65,10,12,1,5,41,0x3695,190,900,500,864,0,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,943,5335,2625,1,984,134,0,0,0,0,4234,1 -1207,STING,Sting,Sting,61,9500,0,4081,2970,1,850,1032,5,30,57,45,55,5,120,85,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,719,3,0,0,0,0,4226,1 -1208,WANDER_MAN,Wander Man,Wanderer,74,8170,0,5786,4730,2,450,1170,5,5,1,192,38,45,127,85,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1 -1209,CRAMP,Cramp,Cramp,56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1 -//1210,FILAMENTOUS,Filamentous,Filamentous,51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1 -1211,BRILIGHT,Brilight,Brilight,46,5562,0,1826,1331,1,298,383,30,5,1,90,15,10,50,35,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,602,1000,757,220,610,250,509,2600,0,0,0,0,4213,1 -1212,IRON_FIST,Iron Fist,Iron Fist,47,4221,0,1435,1520,1,430,590,40,5,1,25,15,10,81,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1 -1213,HIGH_ORC,High Orc,High Orc,52,6890,0,3618,1639,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1 -1214,CHOCO,Choco,Choco,43,4278,0,1265,1265,1,315,402,5,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1 -1215,STEM_WORM,Stem Worm,Stem Worm,40,6136,0,1452,939,2,290,375,5,10,1,30,26,15,79,35,10,12,1,3,24,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1 -1216,PENOMENA,Penomena,Penomena,57,7256,0,2870,2200,7,415,565,5,50,1,5,35,15,136,30,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1 -1219,KNIGHT_OF_ABYSS,Knight of Abyss,Abysmal Knight,79,36140,0,8469,6268,1,1600,2150,55,50,66,68,64,25,135,50,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,984,259,0,0,0,0,4140,1 -1220,M_DESERT_WOLF,Desert Wolf,Desert Wolf,27,1716,0,388,242,1,169,208,0,10,1,27,45,15,56,10,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1 -1221,M_SAVAGE,Savage,Savage,26,2092,0,357,226,1,146,177,10,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1 -//1222,L_HIGH_ORC,High Orc,High Orc,52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1 -//1223,L_ORC,Orc,Orc,24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 -//1224,L_POISON_SPORE,Poison Spore,Poison Spore,19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1 -//1225,L_CHOCO,Choco,Choco,43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1 -//1226,L_KOBOLD,Kobold,Kobold,36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 -//1227,L_GOBLIN,Goblin,Goblin,25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1 -//1228,L_PHEN,Phen,Phen,26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1 -1229,META_FABRE,Fabre,Fabre,2,63,0,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1 -1230,META_PUPA,Pupa,Pupa,2,427,0,2,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1 -1231,META_CREAMY,Creamy,Creamy,16,595,0,96,64,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1 -1232,META_PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,3,420,0,4,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1 -//1233,CONCEIVE_PECOPECO,Peco Peco,Peco Peco,19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1 -1234,PROVOKE_YOYO,Yoyo,Yoyo,19,879,0,135,85,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1 -1235,SMOKING_ORC,Smoking Orc,Smoking Orc,24,1400,0,261,160,1,114,136,10,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 -1236,META_ANT_EGG,Ant Egg,Ant Egg,4,420,0,5,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1 -1237,META_ANDRE,Andre,Andre,17,688,0,109,71,1,60,71,10,0,1,17,24,20,26,20,10,12,0,4,22,0x118B,300,1288,288,576,0,0,0,0,0,0,0,0,955,6000,910,3000,938,1000,935,3000,1001,6,1002,350,757,28,0,0,0,0,4043,1 -1238,META_PIERE,Piere,Piere,18,733,0,122,78,1,64,75,15,0,1,18,26,20,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,0,955,5700,910,1100,938,600,992,15,1001,5,1002,400,757,31,0,0,0,0,4043,1 -1239,META_DENIRO,Deniro,Deniro,19,760,0,135,85,1,68,79,15,0,1,19,30,20,43,10,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1 -1240,META_PICKY,Picky,Picky,3,80,0,4,3,1,9,12,0,0,1,3,3,0,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,0,916,6500,949,850,2302,150,507,650,519,350,715,60,0,0,0,0,0,0,4008,1 -1241,META_PICKY_,Picky,Picky,4,83,0,5,4,1,8,11,20,0,1,3,3,0,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,0,916,6500,949,850,5015,7,507,750,519,350,715,60,0,0,0,0,0,0,4011,1 -1242,MARIN,Marin,Marin,15,742,0,66,44,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,510,75,529,350,5035,1,0,0,0,0,4196,1 -1243,SASQUATCH,Sasquatch,Sasquatch,30,3163,0,529,319,1,250,280,5,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1 -1244,JAKK_XMAS,Christmas Jakk,Christmas Jakk,38,3581,0,1113,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1 -1245,GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,282,171,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1 -1246,COOKIE_XMAS,Christmas Cookie,Christmas Cookie,28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1 -1247,ANTONIO,Antonio,Antonio,10,10,0,3,2,1,13,20,100,0,1,1,1,50,100,100,10,12,1,3,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,0,7034,10000,644,200,538,1500,539,1000,529,5500,530,5500,2236,250,0,0,0,0,4243,1 -1248,CRUISER,Cruiser,Cruiser,35,2820,0,1100,450,7,175,215,5,5,1,40,10,10,90,25,10,12,1,0,60,0x2085,400,1296,1296,432,0,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1 -1249,MYSTCASE,Myst Case,Myst Case,38,3450,0,1113,688,1,160,360,5,10,65,50,25,5,48,75,10,12,1,0,60,0x91,400,1248,1248,432,0,0,0,0,0,0,0,0,530,90,912,1500,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1 -1250,CHEPET,Chepet,Chepet,42,4950,0,1518,946,1,380,440,0,25,1,72,35,71,65,85,10,12,1,7,23,0x3695,400,672,672,288,0,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1 -1251,KNIGHT_OF_WINDSTORM,Knight of Windstorm,Stormy Knight,77,240000,0,64350,21450,2,1425,1585,35,60,75,185,83,55,130,79,10,12,2,0,84,0x37B5,200,468,468,288,32175,10000,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1 -1252,GARM,Garm,Garm,73,197000,0,50050,20020,3,1700,1900,40,45,85,126,82,65,95,60,10,12,2,2,81,0x37B5,400,608,408,336,25025,10000,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1 -1253,GARGOYLE,Gargoyle,Gargoyle,48,3950,0,1650,1650,9,290,360,10,10,15,61,20,20,126,40,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,912,3880,1039,500,0,0,0,0,2619,1,1769,2000,757,238,0,0,0,0,4149,1 -1254,RAGGLER,Raggler,Raggler,21,1020,0,218,140,1,102,113,0,5,18,10,32,20,39,35,10,12,0,2,24,0x3695,200,1000,900,384,0,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1 -1255,NERAID,Neraid,Nereid,40,4120,0,1126,684,1,325,360,0,10,1,45,50,5,64,5,10,12,0,2,22,0x3695,200,776,576,288,0,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1 -1256,PEST,Pest,Pest,40,3240,0,1238,752,1,375,450,0,5,1,60,22,5,80,5,10,12,0,2,47,0x3695,165,700,648,480,0,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1 -1257,INJUSTICE,Injustice,Injustice,51,7600,0,2118,1488,1,480,600,0,0,84,42,39,0,71,35,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1 -1258,GOBLIN_ARCHER,Goblin Archer,Goblin Archer,28,1750,0,461,284,9,89,113,0,0,10,15,20,15,72,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1 -1259,GRYPHON,Gryphon,Gryphon,72,27800,0,5896,4400,1,880,1260,35,35,68,95,78,65,115,75,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1 -1260,DARK_FRAME,Dark Frame,Dark Frame,59,7500,0,3652,3271,1,960,1210,10,45,1,72,42,45,85,25,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1 -1261,WILD_ROSE,Wild Rose,Wild Rose,38,2980,0,1113,688,1,315,360,0,15,65,85,15,35,65,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,1767,3000,624,35,528,600,2244,2,0,0,0,0,4257,1 -1262,MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,62600,0,4730,3536,4,2400,3400,15,20,75,47,30,68,45,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,400,7296,1500,2527,50,0,0,0,0,4203,1 -1263,WIND_GHOST,Wind Ghost,Wind Ghost,51,4820,0,2424,1488,2,489,639,0,45,1,89,15,90,85,25,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1 -1264,MERMAN,Merman,Merman,53,14690,0,4500,3000,2,482,964,10,35,72,45,46,35,60,55,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,0,1054,1300,523,300,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1 -1265,COOKIE,Cookie,Cookie,25,950,0,310,188,1,130,145,0,25,1,35,20,53,37,90,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,0,538,1000,530,150,979,1,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1 -1266,ASTER,Aster,Aster,18,1372,0,122,78,1,56,64,0,10,1,19,15,0,34,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1 -1267,CARAT,Carat,Carat,51,5200,0,1926,1353,1,330,417,0,25,1,41,45,5,85,155,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1 -1268,BLOODY_KNIGHT,Bloody Knight,Bloody Knight,82,57870,0,10120,6820,3,2150,3030,60,50,88,75,70,77,125,55,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,985,433,0,0,0,0,4320,1 -1269,CLOCK,Clock,Clock,60,11050,0,3410,2904,1,720,909,15,10,1,70,50,25,90,50,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1 -1270,C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,63,18600,0,4378,2850,3,880,1180,35,30,1,75,20,64,75,60,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1 -1271,ALLIGATOR,Alligator,Alligator,42,6962,0,1379,866,1,315,360,2,5,1,45,50,10,69,65,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1 -1272,DARK_LORD,Dark Lord,Dark Lord,80,720000,0,65780,45045,2,2800,3320,30,70,1,120,30,118,99,60,10,12,2,6,89,0x37B5,100,868,768,480,32890,10000,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,984,3977,0,0,0,0,4168,1 -1273,ORC_LADY,Orc Lady,Orc Lady,31,2000,0,644,407,1,135,170,10,10,35,42,25,15,69,55,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,0,7053,4656,998,300,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1 -1274,MEGALITH,Megalith,Megalith,45,5300,0,1758,1075,9,264,314,50,25,1,45,60,5,95,5,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1 -1275,ALICE,Alice,Alice,62,10000,221,3583,2400,1,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,0x91,200,502,2304,480,0,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,739,30,5085,1,12128,10,12002,100,0,0,0,0,4253,1 -1276,RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,52,5250,0,3025,2125,9,415,500,35,5,15,25,22,5,145,35,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,1701,150,1764,2000,1715,3,985,106,0,0,0,0,4187,1 -1277,GREATEST_GENERAL,Greatest General,Greatest General,40,3632,0,1238,752,3,350,400,15,15,1,20,60,55,82,140,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1 -1278,STALACTIC_GOLEM,Stalactic Golem,Stalactic Golem,60,18700,0,5808,2695,1,950,1260,50,5,73,45,85,5,90,25,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,0,0,985,163,0,0,0,0,4223,1 -1279,TRI_JOINT,Tri Joint,Tri Joint,32,2300,0,386,220,1,178,206,20,5,1,48,24,10,67,20,10,12,0,4,22,0x3795,200,860,660,624,0,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1 -1280,STEAM_GOBLIN,Steam Goblin,Goblin Steamrider,35,2490,0,864,495,1,234,269,20,5,58,59,32,15,75,25,10,12,1,7,44,0x91,200,1008,1008,528,0,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1 -1281,SAGEWORM,Sage Worm,Sage Worm,43,3850,0,1155,1320,1,120,280,0,50,1,52,24,88,79,55,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1 -1282,KOBOLD_ARCHER,Kobold Archer,Kobold Archer,33,2560,0,739,455,9,155,185,10,5,10,20,15,30,100,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1 -1283,CHIMERA,Chimera,Chimera,70,32600,0,4950,3000,1,1200,1320,30,10,1,72,110,88,75,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1 -//1284,HUGELING,Hugeling,Hugeling,1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0 -1285,ARCHER_GUARDIAN,Archer Guardian,Archer Guardian,74,28634,0,1,1,12,1120,1600,35,60,95,80,80,90,165,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1286,KNIGHT_GUARDIAN,Knight Guardian,Knight Guardian,86,30214,0,1,1,2,1280,1560,55,30,110,40,140,65,125,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1287,SOLDIER_GUARDIAN,Soldier Guardian,Soldier Guardian,56,15670,0,1,1,1,873,1036,35,0,85,56,100,45,103,43,10,12,0,4,22,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1288,EMPELIUM,Emperium,Emperium,90,68430,0,0,0,1,60,71,40,50,1,17,80,50,26,20,10,12,0,8,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1289,MAYA_PUPLE,Maya Purple,Maya Purple,81,55479,0,10496,3893,2,1447,2000,68,48,95,90,80,95,90,119,10,12,2,4,82,0x37B5,100,1024,1000,480,0,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1 -1290,SKELETON_GENERAL,Skeleton General,Skeleton General,73,17402,0,8170,3370,1,910,1089,25,25,90,25,40,20,77,25,10,12,1,1,29,0x3695,150,2276,576,432,0,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,13035,15,2274,1,0,0,0,0,4221,1 -1291,WRAITH_DEAD,Wraith Dead,Wraith Dead,74,43021,0,10341,3618,2,1366,1626,25,30,5,99,55,75,115,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,100,568,300,0,0,0,0,4189,1 -1292,MINI_DEMON,Mini Demon,Mini Demon,68,32538,0,8396,3722,1,1073,1414,30,25,5,75,40,55,89,42,10,12,0,6,27,0x3795,150,1000,600,384,0,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1478,5,0,0,0,0,4204,1 -1293,CREMY_FEAR,Creamy Fear,Creamy Fear,62,13387,0,7365,2691,2,666,829,45,30,5,40,16,15,68,55,10,12,0,4,24,0x3795,155,1136,720,840,0,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,2726,5,522,50,0,0,0,0,4298,1 -1294,KILLER_MANTIS,Killer Mantis,Killer Mantis,56,13183,0,6509,2366,1,764,927,35,20,5,26,24,5,75,40,10,12,1,4,22,0x3795,175,1528,660,432,0,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1 -1295,OWL_BARON,Owl Baron,Owl Baron,75,60746,0,10967,4811,2,1252,1610,65,25,25,25,80,95,95,55,10,12,2,6,60,0x37B5,175,1345,824,440,0,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1629,2,693,100,5045,5,0,0,0,0,4238,1 -1296,KOBOLD_LEADER,Kobold Leader,Kobold Leader,65,18313,0,7432,2713,1,649,958,37,37,5,90,36,30,77,59,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1 -1297,ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,64,40599,0,8040,3499,1,836,1129,27,27,28,19,32,5,83,35,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,508,650,756,150,757,100,0,0,0,0,4248,1 -1298,ZOMBIE_MASTER,Zombie Master,Zombie Master,62,14211,0,7610,2826,1,824,1084,37,26,25,20,30,5,77,35,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1 -1299,GOBLIN_LEADER,Goblin Leader,Goblin Leader,64,20152,0,6036,2184,1,663,752,48,16,5,55,37,30,69,58,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1 -1300,CATERPILLAR,Caterpillar,Caterpillar,64,14439,0,6272,3107,1,894,1447,47,29,35,25,85,15,69,45,10,12,0,4,22,0x3795,300,1672,672,480,0,0,0,0,0,0,0,0,949,3000,7054,5335,13034,20,1000,100,997,50,505,12,508,500,0,0,0,0,4289,1 -1301,AM_MUT,Am Mut,Am Mut,61,12099,0,7709,2690,1,1040,1121,50,10,50,65,40,35,83,45,10,12,0,6,27,0x3795,200,1156,456,384,0,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,250,0,0,0,0,4245,1 -1302,DARK_ILLUSION,Dark Illusion,Dark Illusion,77,103631,0,11163,4181,2,1300,1983,64,70,5,100,40,100,97,40,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1 -1303,GIANT_HONET,Giant Hornet,Giant Hornet,56,13105,0,5785,2006,1,650,852,38,43,35,38,32,10,71,64,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,526,550,518,1200,522,12,610,15,1608,3,722,20,1736,15,0,0,0,0,4271,1 -1304,GIANT_SPIDER,Giant Spider,Giant Spider,55,11874,0,6211,2146,1,624,801,41,28,5,36,43,5,73,69,10,12,2,4,25,0x3795,165,1468,468,768,0,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1 -1305,ANCIENT_WORM,Ancient Worm,Ancient Worm,67,22598,0,8174,3782,1,948,1115,35,30,5,35,56,55,81,72,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,2727,5,1096,680,938,3500,7054,2500,0,0,0,0,4249,1 -1306,LEIB_OLMAI,Leib Olmai,Leib Olmai,58,24233,0,6011,2171,1,740,1390,27,31,5,35,95,5,64,85,10,12,2,2,22,0x3695,175,1260,230,192,0,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,2717,5,969,5,7053,800,0,0,0,0,4188,1 -1307,CAT_O_NINE_TAIL,Cat o' Nine Tails,Cat o' Nine Tails,76,64512,0,10869,4283,1,1112,1275,61,55,55,75,55,82,86,120,10,12,1,6,63,0x37B5,155,1276,576,288,0,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1 -1308,PANZER_GOBLIN,Panzer Goblin,Panzer Goblin,59,14130,0,7212,2697,1,683,878,41,28,60,60,40,20,81,160,10,12,1,7,44,0x3695,200,960,1008,840,0,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1 -1309,GAJOMART,Gajomart,Gajomart,63,13669,0,6625,2900,1,917,950,85,50,5,34,10,5,75,140,10,12,0,0,83,0x3695,300,1000,1152,828,0,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,1752,10000,2131,20,994,180,0,0,0,0,4151,1 -1310,MAJORUROS,Majoruros,Majoruros,66,57991,0,8525,3799,1,780,1300,10,25,65,50,75,50,85,48,10,12,2,2,43,0x3695,250,1100,960,780,0,0,0,0,0,0,0,0,941,4413,1361,4,568,300,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1 -1311,GULLINBURSTI,Gullinbursti,Gullinbursti,62,21331,0,5814,2376,1,699,1431,10,15,55,25,60,5,70,45,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1 -1312,TURTLE_GENERAL,Turtle General,Turtle General,97,320700,0,18202,9800,2,2438,3478,50,54,100,45,55,65,105,164,10,12,2,2,42,0x37B5,200,900,1000,500,9101,10000,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1 -1313,MOBSTER,Mobster,Mobster,61,7991,0,4424,1688,1,910,1128,41,37,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,716,600,912,2500,525,450,505,60,0,0,0,0,4317,1 -1314,PERMETER,Permeter,Permeter,63,8228,0,3756,1955,2,943,1211,46,45,69,59,60,5,69,100,10,12,1,2,40,0x91,250,1100,483,528,0,0,0,0,0,0,0,0,967,4413,7070,45,1019,1240,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1 -1315,ASSULTER,Assaulter,Assaulter,71,11170,0,4854,2654,2,764,1499,35,28,85,74,10,35,100,100,10,12,1,7,44,0x3695,155,1000,900,432,0,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,508,1280,912,1240,13300,5,603,1,0,0,0,0,4246,1 -1316,SOLIDER,Solider,Solider,70,12099,0,4458,1951,2,797,979,57,43,69,35,85,5,74,100,10,12,1,2,42,0x91,250,1452,483,528,0,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1 -1317,FUR_SEAL,Fur Seal,Seal,63,9114,0,3765,1824,1,845,1203,25,33,5,28,22,15,69,84,10,12,1,2,21,0x3885,200,1612,622,583,0,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1 -1318,HEATER,Heater,Heater,68,11020,0,3766,2359,2,683,1008,40,42,69,47,25,5,71,100,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,967,4413,7070,750,697,100,912,1640,526,140,7054,600,7068,1250,0,0,0,0,4331,1 -1319,FREEZER,Freezer,Freezer,72,8636,0,3665,2197,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,967,4413,7070,850,7066,1250,912,1800,526,160,7053,600,689,100,0,0,0,0,4319,1 -1320,OWL_DUKE,Owl Duke,Owl Duke,75,26623,0,7217,3474,1,715,910,27,49,15,45,40,75,79,88,10,12,2,6,60,0x37B5,195,1345,824,440,0,0,0,0,0,0,0,0,7071,4413,7063,1500,693,100,747,1,1451,3,1513,2,5045,1,0,0,0,0,4237,1 -1321,DRAGON_TAIL,Dragon Tail,Dragon Tail,61,8368,0,3587,1453,1,520,715,25,19,10,68,15,5,67,67,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1 -1322,SPRING_RABBIT,Spring Rabbit,Spring Rabbit,58,9045,0,3982,1766,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1 -1323,SEE_OTTER,Sea Otter,Sea Otter,59,9999,0,3048,1642,1,650,813,33,35,5,36,40,25,82,65,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1 -1324,TREASURE_BOX1,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1325,TREASURE_BOX2,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7073,80,658,500,604,10000,984,4850,985,7275,1239,1500,5027,75,1165,8,0,0,0,0 -1326,TREASURE_BOX3,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1327,TREASURE_BOX4,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7074,80,658,500,604,10000,984,4850,985,7275,2108,1000,1306,75,5022,2,0,0,0,0 -1328,TREASURE_BOX5,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1329,TREASURE_BOX6,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7075,80,658,500,604,10000,984,4850,985,7275,2102,834,5019,100,5002,9,0,0,0,0 -1330,TREASURE_BOX7,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1331,TREASURE_BOX8,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7076,80,658,500,604,10000,984,4850,985,7275,2616,500,2334,125,2622,9,0,0,0,0 -1332,TREASURE_BOX9,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1333,TREASURE_BOX10,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7077,80,658,500,604,10000,984,4850,985,7275,2104,500,2331,150,2623,10,0,0,0,0 -1334,TREASURE_BOX11,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1335,TREASURE_BOX12,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7078,80,658,500,604,10000,984,4850,985,7275,2270,500,1716,150,2256,10,0,0,0,0 -1336,TREASURE_BOX13,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1337,TREASURE_BOX14,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7079,80,658,500,604,10000,984,4850,985,7275,1238,375,1531,150,2318,10,0,0,0,0 -1338,TREASURE_BOX15,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1339,TREASURE_BOX16,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7080,80,658,500,604,10000,984,4850,985,7275,2626,300,1472,167,2327,10,0,0,0,0 -1340,TREASURE_BOX17,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1341,TREASURE_BOX18,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7081,80,658,500,604,10000,984,4850,985,7275,1143,250,1237,188,2235,12,0,0,0,0 -1342,TREASURE_BOX19,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1343,TREASURE_BOX20,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7082,80,658,500,604,10000,984,4850,985,7275,617,250,1144,188,5007,19,0,0,0,0 -1344,TREASURE_BOX21,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1345,TREASURE_BOX22,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7083,80,658,500,604,10000,984,4850,985,7275,2508,1000,2336,69,2621,20,0,0,0,0 -1346,TREASURE_BOX23,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1347,TREASURE_BOX24,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7084,80,658,500,604,10000,984,4850,985,7275,2106,1000,1164,50,5025,24,0,0,0,0 -1348,TREASURE_BOX25,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1349,TREASURE_BOX26,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7085,80,658,500,604,10000,984,4850,985,7275,2231,750,2624,46,2286,25,0,0,0,0 -1350,TREASURE_BOX27,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1351,TREASURE_BOX28,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7086,80,658,500,604,10000,984,4850,985,7275,2283,500,2615,41,2234,32,0,0,0,0 -1352,TREASURE_BOX29,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1353,TREASURE_BOX30,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7087,80,658,500,604,10000,984,4850,985,7275,2507,500,2625,38,5045,34,0,0,0,0 -1354,TREASURE_BOX31,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1355,TREASURE_BOX32,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7088,80,658,500,604,10000,984,4850,985,7275,2407,429,2269,250,2317,35,0,0,0,0 -1356,TREASURE_BOX33,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1357,TREASURE_BOX34,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7089,80,658,500,604,10000,984,4850,985,7275,2109,300,2406,273,2258,38,0,0,0,0 -1358,TREASURE_BOX35,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1359,TREASURE_BOX36,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7090,80,658,500,604,10000,984,4850,985,7275,1142,215,2255,60,5017,38,0,0,0,0 -1360,TREASURE_BOX37,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1361,TREASURE_BOX38,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7091,80,658,500,604,10000,984,4850,985,7275,1417,50,5053,50,2229,50,0,0,0,0 -1362,TREASURE_BOX39,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1363,TREASURE_BOX40,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0 -1364,G_ASSULTER,Assaulter,Assaulter,59,12853,0,0,0,2,152,177,35,36,85,55,10,35,145,100,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1365,APOCALIPS,Apocalypse,Apocalypse,66,22880,0,6540,4935,2,1030,1370,62,49,1,48,120,48,66,85,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,999,2500,0,0,0,0,4242,1 -1366,LAVA_GOLEM,Lava Golem,Lava Golem,77,24324,0,6470,3879,1,1541,2049,65,50,1,57,115,70,76,68,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,0,0,0,0,0,0,4184,1 -1367,BLAZZER,Blazer,Blazer,43,8252,0,3173,1871,2,533,709,50,40,1,52,50,39,69,40,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1 -1368,GEOGRAPHER,Geographer,Geographer,56,8071,0,2715,2000,3,467,621,28,26,1,66,47,60,68,44,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1 -1369,GRAND_PECO,Grand Peco,Grand Peco,58,8054,0,2387,1361,2,444,565,37,30,1,66,66,50,71,51,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1 -1370,SUCCUBUS,Succubus,Succubus,85,16955,0,5357,4322,2,1268,1686,54,48,1,97,95,103,89,87,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1 -1371,FAKE_ANGEL,Fake Angel,False Angel,65,16845,0,3371,1949,2,513,682,50,35,1,64,57,70,61,88,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,0,0,0,0,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1 -1372,GOAT,Goat,Goat,69,11077,0,3357,2015,1,457,608,44,25,1,58,66,62,67,43,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1 -1373,LORD_OF_DEATH,Lord of Death,Lord of the Dead,94,603383,0,131343,43345,3,3430,4232,77,73,1,99,30,109,100,106,10,12,2,6,67,0x37B5,180,1446,1296,360,65671,10000,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1 -1374,INCUBUS,Incubus,Incubus,75,17281,0,5254,4212,2,1408,1873,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1 -1375,THE_PAPER,The Paper,The Paper,56,18557,0,2849,1998,1,845,1124,25,24,1,66,52,76,71,79,10,12,1,0,60,0x3885,170,1160,960,336,0,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1 -1376,HARPY,Harpy,Harpy,70,16599,0,3562,2133,1,926,1231,42,44,1,112,72,67,74,76,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,1820,20,0,0,0,0,0,0,4325,1 -1377,ELDER,Elder,Elder,64,21592,0,5650,3408,3,421,560,45,68,1,76,68,108,72,86,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,7099,4000,7117,1500,7118,1500,1564,10,1473,1,616,1,7027,3000,0,0,0,0,4251,1 -1378,DEMON_PUNGUS,Demon Pungus,Demon Pungus,56,7259,0,3148,1817,1,360,479,48,31,1,83,55,59,63,34,10,12,0,6,65,0x3985,170,1260,960,672,0,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1 -1379,NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,78,22605,0,6683,4359,1,757,1007,37,37,1,76,55,60,76,54,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,1261,1,0,0,0,0,4166,1 -1380,DRILLER,Driller,Driller,52,7452,0,3215,1860,1,666,886,48,31,1,66,58,50,60,47,10,12,1,2,22,0x3885,165,1300,900,336,0,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1 -1381,GRIZZLY,Grizzly,Grizzly,68,11733,0,3341,2012,1,809,1076,44,32,1,55,68,58,70,61,10,12,2,2,63,0x3885,165,1492,1092,192,0,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,0,0,0,0,0,0,0,0,0,0,0,0,4162,1 -1382,DIABOLIC,Diabolic,Diabolic,67,9642,0,3662,2223,1,796,1059,64,36,1,84,53,67,71,69,10,12,0,6,47,0x3985,150,1080,780,180,0,0,0,0,0,0,0,0,1038,5820,1039,4850,2605,3,984,20,1263,10,0,0,0,0,0,0,0,0,4182,1 -1383,EXPLOSION,Explosion,Explosion,46,8054,0,2404,1642,1,336,447,35,27,1,61,56,50,66,38,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,7006,5500,7097,2200,7122,3200,756,800,522,400,0,0,0,0,0,0,0,0,4267,1 -1384,DELETER,Deleter,Deleter,66,17292,0,3403,2066,1,446,593,45,53,1,104,40,65,72,54,10,12,1,9,43,0x308D,175,1020,720,384,0,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4158,1 -1385,DELETER_,Deleter,Deleter,65,15168,0,3403,2066,1,446,593,52,53,1,66,40,65,72,68,10,12,1,9,43,0x308D,175,1024,624,336,0,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4279,1 -1386,SLEEPER,Sleeper,Sleeper,67,8237,0,3603,2144,1,593,789,49,35,1,48,100,57,75,28,10,12,1,0,42,0x3885,195,1350,1200,432,0,0,0,0,0,0,0,0,7124,4947,1056,5335,997,2500,756,300,1226,5,1622,5,7043,1200,0,0,0,0,4228,1 -1387,GIG,Gig,Gig,60,8409,0,3934,2039,1,360,479,60,28,1,61,80,53,59,46,10,12,0,2,43,0x3885,170,1264,864,576,0,0,0,0,0,0,0,0,7125,4365,904,5500,716,150,525,2500,994,850,0,0,0,0,0,0,0,0,4165,1 -1388,ARCHANGELING,Archangeling,Arc Angeling,60,79523,0,4152,2173,1,669,890,54,58,1,65,80,74,65,105,10,12,1,8,66,0x37B5,180,1072,672,480,0,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1 -1389,DRACULA,Dracula,Dracula,85,320096,0,120157,38870,3,1625,1890,45,76,1,95,90,87,85,100,10,12,2,6,87,0x37B5,145,1290,1140,576,60078,10000,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1 -1390,VIOLY,Violy,Violy,75,18257,0,6353,3529,10,738,982,37,36,1,93,54,58,101,83,10,12,1,7,40,0x2085,170,1356,1056,540,0,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,1919,50,526,1400,12020,1000,1902,500,0,0,0,0,4209,1 -1391,GALAPAGO,Galapago,Galapago,61,9145,0,3204,1966,1,457,608,33,33,1,56,56,45,66,57,10,12,0,2,22,0x108B,165,1430,1080,1080,0,0,0,0,0,0,0,0,7053,5335,610,100,508,3500,606,100,605,100,5111,1,582,1000,0,0,0,0,4152,1 -1392,ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,25,1209,0,351,215,10,109,137,4,34,1,62,45,26,55,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1 -1393,G_MUMMY,Mummy,Mummy,37,5176,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1394,G_ZOMBIE,Zombie,Zombie,15,534,0,0,0,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1395,CRYSTAL_1,Wind Crystal,Wind Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,5097,7000,532,6500,558,5000,607,200,0,0,0,0 -1396,CRYSTAL_2,Earth Crystal,Earth Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,5097,7000,531,6500,558,5000,608,250,0,0,0,0 -1397,CRYSTAL_3,Fire Crystal,Fire Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,5097,7000,534,6500,558,5000,604,300,0,0,0,0 -1398,CRYSTAL_4,Water Crystal,Water Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,5097,7000,533,6500,558,5000,603,100,0,0,0,0 -1399,EVENT_BAPHO,Baphomet,Baphomet,68,1264000,0,261750,83685,3,1847,2267,35,45,1,152,96,85,120,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,10000,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,2256,1550,0,0,0,0 -1400,KARAKASA,Karakasa,Karakasa,30,3092,0,489,322,1,141,183,1,5,1,45,12,20,49,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1 -1401,SHINOBI,Shinobi,Shinobi,69,12700,0,4970,3010,2,460,1410,34,21,85,85,25,25,100,100,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,7156,5335,2337,2,7053,2200,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1 -1402,POISON_TOAD,Poison Toad,Poison Toad,46,6629,0,1929,1457,3,288,408,5,10,20,34,19,14,66,55,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1 -1403,ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,47,3852,0,1293,1003,10,289,336,10,10,15,35,29,15,120,42,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1 -1404,MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,33,6300,0,795,453,1,250,305,1,20,1,52,15,10,62,15,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1 -1405,TENGU,Tengu,Tengu,65,16940,0,4207,2843,2,660,980,12,82,90,42,69,45,78,80,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1 -1406,KAPHA,Kapha,Kapha,41,7892,0,2278,1552,3,399,719,20,38,1,51,49,22,73,45,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1 -//1407,DOKEBI_,Dokebi,Dokebi,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1408,BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,55,8082,0,2119,1562,3,121,342,5,23,1,59,14,55,68,15,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1 -1409,RICE_CAKE_BOY,Rice Cake Boy,Dumpling Child,27,2098,0,231,149,1,112,134,5,12,1,22,29,5,41,10,10,12,0,7,20,0x91,160,647,768,420,0,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1 -1410,LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,53,8905,0,2591,1799,7,301,351,10,38,72,45,35,39,80,5,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,7164,4365,0,0,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1 -//1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1412,EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,56,10392,0,3304,2198,10,311,333,25,59,1,20,18,50,136,11,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1 -1413,WILD_GINSENG,Wild Ginseng,Hermit Plant,46,6900,0,1038,692,1,220,280,10,20,13,42,36,55,66,30,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,516,4800,1951,1,578,1000,0,0,0,0,4232,1 -//1414,GINSENG_BULLET,Ginseng Bullet,Ginseng Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1415,BABY_LEOPARD,Baby Leopard,Baby Leopard,32,2590,0,352,201,2,155,207,0,5,20,44,20,4,49,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1 -1416,WICKED_NYMPH,Wicked Nymph,Evil Nymph,63,16029,0,3945,2599,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1 -1417,ZIPPER_BEAR,Zipper Bear,Zipper Bear,35,2901,0,370,225,1,248,289,10,5,30,25,55,15,28,25,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1 -1418,DARK_SNAKE_LORD,Evil Snake Lord,Evil Snake Lord,73,254993,0,34288,17950,3,2433,4210,25,55,70,83,30,80,164,88,10,12,2,2,68,0x37B5,200,588,816,420,17144,10000,607,5500,608,3500,985,5500,7169,5820,10020,5100,1471,80,5012,80,1474,500,7226,900,661,2000,0,0,0,0,4330,1 -1419,G_FARMILIAR,Familiar,Familiar,8,155,0,0,0,1,20,28,0,0,1,12,8,5,28,0,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1420,G_ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,31,3040,0,0,0,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,0x3885,300,2864,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1421,G_ISIS,Isis,Isis,43,4828,0,0,0,1,423,507,10,35,38,65,43,30,72,15,10,12,2,6,27,0x3985,200,1384,768,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1422,G_HUNTER_FLY,Hunter Fly,Hunter Fly,42,5242,0,0,0,1,246,333,25,15,33,105,32,15,72,30,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1423,G_GHOUL,Ghoul,Ghoul,39,5118,0,0,0,1,420,500,5,20,1,20,29,0,33,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1424,G_SIDE_WINDER,Side Winder,Side Winder,43,4929,0,0,0,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1425,G_OBEAUNE,Obeaune,Obeaune,31,3952,0,0,0,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x3885,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1426,G_MARC,Marc,Marc,36,6900,0,0,0,1,220,280,5,10,1,36,36,20,56,30,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1427,G_NIGHTMARE,Nightmare,Nightmare,49,4437,0,0,0,1,447,529,0,40,1,74,25,15,64,10,10,12,2,6,68,0x3985,150,1816,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1428,G_POISON_SPORE,Poison Spore,Poison Spore,19,665,0,0,0,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1429,G_ARGIOPE,Argiope,Argiope,41,4382,0,0,0,1,395,480,30,0,1,41,31,10,56,30,10,12,2,4,25,0x3985,300,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1430,G_ARGOS,Argos,Argos,25,1117,0,0,0,1,158,191,15,0,1,25,25,5,32,15,10,12,2,4,25,0x3985,300,1468,468,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1431,G_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,0,0,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x3985,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1432,G_DESERT_WOLF,Desert Wolf,Desert Wolf,27,1716,0,0,0,1,169,208,0,10,56,27,45,15,56,10,10,12,1,2,23,0x3885,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1433,G_DEVIRUCHI,Deviruchi,Deviruchi,46,7360,0,0,0,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,0x3985,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1434,G_DRAINLIAR,Drainliar,Drainliar,24,1162,0,0,0,1,74,84,0,0,1,36,24,0,78,0,10,12,0,2,47,0x3885,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1435,G_EVIL_DRUID,Evil Druid,Evil Druid,58,16506,0,0,0,1,420,670,5,60,1,29,58,80,68,30,10,12,2,1,89,0x3885,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1436,G_JAKK,Jakk,Jakk,38,3581,0,0,0,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x3885,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1437,G_JOKER,Joker,Joker,57,12450,0,0,0,1,621,738,10,35,1,143,47,75,98,175,10,12,2,7,84,0x3885,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1438,G_KHALITZBURG,Khalitzburg,Khalitzburg,63,19276,0,0,0,1,875,1025,45,10,58,65,48,5,73,40,10,12,2,1,29,0x3885,350,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1439,G_HIGH_ORC,High Orc,High Orc,52,6890,0,0,0,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3885,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1440,G_STEM_WORM,Stem Worm,Stem Worm,40,6136,0,0,0,2,290,375,5,10,1,30,26,15,79,35,10,12,1,3,24,0x3885,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1441,G_PENOMENA,Penomena,Penomena,57,7256,0,0,0,7,415,565,5,50,1,5,35,15,136,30,10,12,1,5,25,0x3885,400,832,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1442,G_SASQUATCH,Sasquatch,Sasquatch,30,3163,0,0,0,1,250,280,5,0,75,25,60,10,34,20,10,12,2,2,60,0x3885,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1443,G_CRUISER,Cruiser,Cruiser,35,2820,0,0,0,7,175,215,5,5,1,40,10,10,90,25,10,12,1,0,60,0x3885,400,1296,1296,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1444,G_CHEPET,Chepet,Chepet,42,4950,0,0,0,1,380,440,0,25,1,72,35,71,65,85,10,12,1,7,23,0x3885,400,672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1445,G_RAGGLER,Raggler,Raggler,21,1020,0,0,0,1,102,113,0,5,18,10,32,20,39,35,10,12,0,2,24,0x3885,200,1000,900,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1446,G_INJUSTICE,Injustice,Injustice,51,7600,0,0,0,1,480,600,0,0,84,42,39,0,71,35,10,12,1,1,47,0x3885,400,770,720,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1447,G_GRYPHON,Gryphon,Gryphon,72,27800,0,0,0,1,880,1260,35,35,68,95,78,65,115,75,10,12,2,2,84,0x39A5,100,704,504,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1448,G_DARK_FRAME,Dark Frame,Dark Frame,59,7500,0,0,0,1,960,1210,10,45,1,72,42,45,85,25,10,12,1,6,67,0x3985,200,920,720,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1449,G_MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,62600,0,0,0,4,2400,3400,15,20,75,47,30,68,45,35,10,12,2,9,43,0x39A5,250,1280,1080,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1450,G_WIND_GHOST,Wind Ghost,Wind Ghost,51,4820,0,0,0,2,489,639,0,45,1,89,15,90,85,25,10,12,1,6,64,0x3985,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1451,G_MERMAN,Merman,Merman,53,12300,0,0,0,2,482,603,10,35,72,45,46,15,85,55,10,12,1,7,41,0x3885,220,916,816,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1452,G_ORC_LADY,Orc Lady,Orc Lady,31,2000,0,0,0,1,135,170,10,10,35,42,25,15,69,55,10,12,1,7,42,0x3885,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1453,G_RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,52,5250,0,0,0,9,415,500,35,5,15,25,22,5,145,35,10,12,1,6,47,0x3985,200,1152,1152,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1454,G_TRI_JOINT,Tri Joint,Tri Joint,32,2300,0,0,0,1,178,206,20,5,1,48,24,10,67,20,10,12,0,4,22,0x3985,200,860,660,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1455,G_KOBOLD_ARCHER,Kobold Archer,Kobold Archer,33,2560,0,0,0,9,155,185,10,5,10,20,15,30,100,25,10,12,0,7,23,0x3885,200,1008,1008,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1456,G_CHIMERA,Chimera,Chimera,70,32600,0,0,0,1,1200,1320,30,10,1,72,110,88,75,85,10,12,2,2,63,0x39A5,200,772,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1457,G_MANTIS,Mantis,Mantis,26,2472,0,0,0,1,118,149,10,0,1,26,24,5,45,15,10,12,1,4,22,0x3985,200,1528,660,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1458,G_MARDUK,Marduk,Marduk,40,4214,0,0,0,1,315,382,0,60,1,40,20,79,78,20,10,12,2,7,23,0x3885,300,1540,840,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1459,G_MARIONETTE,Marionette,Marionette,41,3222,0,0,0,1,355,422,0,25,1,62,36,44,69,45,10,12,0,6,68,0x3985,300,1480,480,1056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1460,G_MATYR,Matyr,Matyr,31,2585,0,0,0,1,134,160,0,0,1,47,38,5,64,5,10,12,1,2,27,0x3885,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1461,G_MINOROUS,Minorous,Minorous,52,7431,0,0,0,1,590,770,15,5,65,42,61,66,52,25,10,12,2,2,43,0x3885,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1462,G_ORC_SKELETON,Orc Skeleton,Orc Skeleton,28,2278,0,0,0,1,190,236,10,10,1,14,18,0,30,15,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1463,G_ORC_ZOMBIE,Orc Zombie,Orc Zombie,24,1568,0,0,0,1,151,184,5,10,1,12,24,0,24,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1464,G_PASANA,Pasana,Pasana,61,8289,0,0,0,1,513,682,29,35,1,73,50,61,69,43,10,12,1,7,43,0x3885,165,976,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1465,G_PETIT,Petite,Petite,44,6881,0,0,0,1,360,427,30,30,1,44,62,55,79,60,10,12,1,9,22,0x3885,200,1624,620,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1466,G_PETIT_,Petite,Petite,45,5747,0,0,0,1,300,355,20,45,1,113,45,55,73,80,10,12,1,9,24,0x3885,150,1420,1080,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1467,G_RAYDRIC,Raydric,Raydric,52,8613,0,0,0,1,830,930,40,15,58,47,42,5,69,26,10,12,2,7,47,0x3885,150,824,780,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1468,G_REQUIEM,Requim,Requim,35,3089,0,0,0,1,220,272,0,15,1,53,35,5,57,2,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1469,G_SKEL_WORKER,Skeleton Worker,Skeleton Worker,30,2872,0,0,0,1,242,288,0,15,1,15,30,5,42,10,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1470,G_ZEROM,Zerom,Zerom,23,1109,0,0,0,1,127,155,0,10,1,23,23,5,42,0,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1471,G_NINE_TAIL,Nine Tail,Nine Tail,51,9466,0,0,0,1,610,734,10,25,1,80,46,1,89,85,10,12,1,2,63,0x3885,150,840,540,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1472,G_BON_GUN,Bongun,Bongun,32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,29,0x3885,200,1720,500,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1473,G_ORC_ARCHER,Orc Archer,Orc Archer,49,7440,0,0,0,9,310,390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1474,G_MIMIC,Mimic,Mimic,51,6120,0,0,0,1,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,0x3885,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1475,G_WRAITH,Wraith,Wraith,53,10999,0,0,0,1,580,760,5,30,1,95,30,65,95,35,10,12,2,1,89,0x3885,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1476,G_ALARM,Alarm,Alarm,58,10647,0,0,0,1,480,600,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3885,300,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1477,G_ARCLOUSE,Arclouse,Arclouze,59,6075,0,0,0,1,570,640,10,15,1,75,5,5,75,50,10,12,1,4,42,0x3985,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1478,G_RIDEWORD,Rideword,Rideword,59,11638,0,0,0,1,584,804,5,35,48,75,10,20,120,45,10,12,0,0,60,0x3885,150,864,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1479,G_SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,52,8691,0,0,0,1,660,890,10,20,55,20,36,0,76,25,10,12,1,1,69,0x3885,350,1848,500,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1480,G_ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,53,11280,0,0,0,1,780,930,10,20,1,24,39,0,72,25,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1481,G_PUNK,Punk,Punk,43,3620,0,0,0,1,292,365,0,45,1,105,5,45,65,20,10,12,0,3,24,0x3885,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1482,G_ZHERLTHSH,Zherlthsh,Zealotus,63,18300,0,0,0,1,700,850,10,15,70,85,40,30,125,60,10,12,1,7,60,0x3885,200,800,792,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1483,G_RYBIO,Rybio,Rybio,71,9572,0,0,0,1,686,912,45,37,1,97,75,74,77,90,10,12,2,6,40,0x3985,200,1790,1440,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1484,G_PHENDARK,Phendark,Phendark,73,22729,0,0,0,2,794,1056,52,36,1,62,120,65,76,66,10,12,2,7,40,0x3885,175,1744,1344,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1485,G_MYSTELTAINN,Mysteltainn,Mysteltainn,76,33350,0,0,0,2,1160,1440,30,30,77,139,80,35,159,65,10,12,2,0,87,0x39A5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1486,G_TIRFING,Tirfing,Ogretooth,71,29900,0,0,0,1,950,1146,30,35,58,87,55,35,132,65,10,12,1,0,67,0x39A5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1487,G_EXECUTIONER,Executioner,Executioner,65,28980,0,0,0,2,570,950,35,35,64,85,40,25,88,60,10,12,2,0,47,0x39A5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1488,G_ANOLIAN,Anolian,Anolian,63,18960,0,0,0,1,640,760,15,15,1,43,58,25,97,65,10,12,1,5,41,0x3885,190,900,500,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1489,G_STING,Sting,Sting,61,9500,0,0,0,1,850,1032,5,30,57,45,55,5,120,85,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1490,G_WANDER_MAN,Wander Man,Wanderer,74,8170,0,0,0,2,450,1170,5,5,1,192,38,45,127,85,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1491,G_DOKEBI,Dokebi,Dokebi,33,2697,0,0,0,1,197,249,0,10,50,50,40,35,69,40,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1001,SCORPION,Scorpion,Scorpion,24,1109,0,287,176,1,80,135,30,0,1,24,24,5,52,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1 +1002,PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1 +//1003,TESTEGG,Test Egg,Test Egg,2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1004,HORNET,Hornet,Hornet,8,169,0,19,15,1,22,27,5,5,6,20,8,10,17,5,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1 +1005,FARMILIAR,Familiar,Familiar,8,155,0,28,15,1,20,28,0,0,1,12,8,5,28,0,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1 +//1006,THIEF_BUG_LARVA,Thief Bug Larva,Thief Bug Larva,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1007,FABRE,Fabre,Fabre,2,63,0,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1 +1008,PUPA,Pupa,Pupa,2,427,0,2,4,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1 +1009,CONDOR,Condor,Condor,5,92,0,6,5,1,11,14,0,0,1,13,5,0,13,10,10,12,1,2,24,0x1089,150,1148,648,480,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1 +1010,WILOW,Willow,Willow,4,95,0,5,4,1,9,12,5,15,1,4,8,30,9,10,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1 +1011,CHONCHON,Chonchon,Chonchon,4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1 +1012,RODA_FROG,Roda Frog,Roda Frog,5,133,0,6,5,1,11,14,0,5,1,5,5,5,10,5,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1 +1013,WOLF,Wolf,Wolf,25,919,0,329,199,1,37,46,0,0,1,20,28,15,32,20,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1 +1014,SPORE,Spore,Spore,16,510,0,66,108,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1 +1015,ZOMBIE,Zombie,Zombie,15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1 +1016,ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,31,3040,0,483,283,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1 +//1017,THIEF_BUG_FEMALE,Thief Bug Female,Thief Bug Female,10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,651,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1 +1018,CREAMY,Creamy,Creamy,16,595,0,105,70,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1 +1019,PECOPECO,Peco Peco,Peco Peco,19,531,0,159,72,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1 +1020,MANDRAGORA,Mandragora,Mandragora,12,405,0,45,32,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1 +//1021,THIEF_BUG_MALE,Thief Bug Male,Thief Bug Male,19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,653,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1 +//1022,WEREWOLF,Werewolf,Werewolf,80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,163,200,1500,768,652,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0 +1023,ORK_WARRIOR,Orc Warrior,Orc Warrior,24,1400,0,408,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 +1024,WORM_TAIL,Wormtail,Wormtail,14,426,0,59,40,2,42,51,5,0,1,14,28,5,46,5,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1 +1025,SNAKE,Snake,Boa,15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1 +1026,MUNAK,Munak,Munak,30,2872,0,601,318,1,150,230,0,0,1,15,20,5,46,15,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1 +//1027,RAPTICE,Raptice,Raptice,17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,131,200,2000,1000,500,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1028,SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,29,2334,0,372,226,1,221,245,10,15,1,15,22,5,40,15,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,1201,150,1216,50,0,0,0,0,4086,1 +1029,ISIS,Isis,Isis,47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1 +1030,ANACONDAQ,Anacondaq,Anacondaq,23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,1011,50,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1 +1031,POPORING,Poporing,Poporing,14,344,0,81,44,1,59,72,0,10,1,14,14,0,19,15,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,512,5,1207,5,512,250,0,0,0,0,4033,1 +1032,VERIT,Verit,Verit,38,5272,0,835,517,1,389,469,0,5,1,19,38,0,38,20,10,12,1,1,29,0x83,250,2468,768,480,0,0,0,0,0,0,0,929,9000,912,700,930,1100,509,600,2609,1,2612,200,639,20,0,0,0,0,4107,1 +1033,ELDER_WILOW,Elder Willow,Elder Willow,20,693,0,163,101,1,58,70,10,30,1,20,25,35,38,30,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,990,50,907,9000,1019,350,757,40,2329,30,690,100,604,100,0,0,0,0,4052,1 +1034,THARA_FROG,Thara Frog,Thara Frog,22,2152,0,219,138,1,105,127,0,10,1,22,22,5,34,10,10,12,1,5,41,0x81,200,2016,816,288,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1 +1035,HUNTER_FLY,Hunter Fly,Hunter Fly,42,5242,0,1517,952,1,246,333,25,15,33,105,32,15,72,30,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1 +1036,GHOUL,Ghoul,Ghoul,40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1 +1037,SIDE_WINDER,Side Winder,Side Winder,43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1 +1038,OSIRIS,Osiris,Osiris,78,415400,0,71500,28600,1,780,2880,10,25,1,75,30,37,86,40,10,12,1,1,89,0x37B5,100,1072,672,384,35750,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1 +1039,BAPHOMET,Baphomet,Baphomet,81,668000,0,107250,37895,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,53625,607,2000,750,500,923,5000,1466,200,2256,200,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1 +1040,GOLEM,Golem,Golem,25,3900,0,465,94,1,175,187,40,0,1,15,25,0,15,0,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,1003,210,715,200,998,350,0,0,0,0,4072,1 +1041,MUMMY,Mummy,Mummy,37,5176,0,800,602,1,305,360,0,10,28,19,32,0,63,20,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1 +1042,STEEL_CHONCHON,Steel Chonchon,Steel Chonchon,17,530,0,109,71,1,54,65,15,0,1,43,17,5,33,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1 +//1043,SEAHORES,Seahorse,Seahorse,18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1044,OBEAUNE,Obeaune,Obeaune,31,3952,0,644,407,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1 +1045,MARC,Marc,Marc,36,6900,0,988,625,1,220,280,5,10,1,36,36,20,56,30,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1 +1046,DOPPELGANGER,Doppelganger,Doppelganger,72,249000,0,51480,10725,1,1340,1590,60,35,88,90,30,35,125,65,10,12,1,6,67,0x37B5,100,480,480,288,25740,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1 +1047,PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,3,420,0,4,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,250,935,1500,2102,2,507,400,507,400,713,1800,736,10,0,0,0,0,4007,1 +1048,THIEF_BUG_EGG,Thief Bug Egg,Thief Bug Egg,4,48,0,8,4,0,13,17,20,0,1,6,4,0,14,20,10,12,0,4,27,0x100,1000,701,1,1,0,0,0,0,0,0,0,1010,300,915,5000,2102,2,938,600,716,100,737,10,1002,250,0,0,0,0,4012,1 +1049,PICKY,Picky,Picky,3,80,0,4,3,1,9,12,0,0,1,3,3,5,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,1 +1050,PICKY_,Picky,Picky,4,83,0,5,4,1,8,11,20,0,1,3,3,10,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,715,50,10012,10,0,0,0,0,4011,1 +1051,THIEF_BUG,Thief Bug,Thief Bug,6,126,0,17,5,1,18,24,5,0,1,6,6,0,11,0,10,12,0,4,60,0x118B,150,1288,288,768,0,0,0,0,0,0,0,955,2500,2304,80,507,350,909,2000,2303,120,1002,250,0,0,0,0,0,0,4016,1 +1052,ROCKER,Rocker,Rocker,9,198,0,20,16,1,24,29,5,10,1,9,18,10,14,15,10,12,1,4,22,0x181,200,1864,864,540,0,0,0,0,0,0,0,940,9000,1916,10,2298,4,1402,80,520,10,752,10,703,10,0,0,0,0,4021,1 +1053,THIEF_BUG_,Thief Bug Female,Thief Bug Female,10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,0x118B,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,300,0,0,0,0,4026,1 +1054,THIEF_BUG__,Thief Bug Male,Thief Bug Male,19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1 +1055,MUKA,Muka,Muka,17,610,0,273,120,1,40,49,5,5,15,15,30,5,20,10,10,12,2,3,22,0x81,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1 +1056,SMOKIE,Smokie,Smokie,18,641,0,134,86,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1 +1057,YOYO,Yoyo,Yoyo,21,879,0,280,111,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1 +1058,METALLER,Metaller,Metaller,22,926,0,241,152,1,131,159,15,30,1,22,22,20,49,50,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1 +1059,MISTRESS,Mistress,Mistress,74,212000,0,39325,27170,1,880,1110,40,60,50,165,60,95,70,130,10,12,0,4,84,0x37B5,100,1148,648,300,19662,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1 +1060,BIGFOOT,Bigfoot,Bigfoot,25,1619,0,310,188,1,198,220,10,0,1,25,55,15,20,25,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1 +1061,NIGHTMARE,Nightmare,Nightmare,49,4437,0,1912,1912,1,447,529,0,40,1,74,25,15,64,10,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1 +1062,PORING_,Santa Poring,Santa Poring,3,69,0,4,5,1,12,16,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1 +1063,LUNATIC,Lunatic,Lunatic,3,60,0,6,2,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,0,0,0,0,4006,1 +1064,MEGALODON,Megalodon,Megalodon,24,1648,0,215,132,1,155,188,0,15,1,12,24,0,26,5,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1 +1065,STROUF,Strouf,Strouf,48,11990,0,3080,2098,1,200,1250,5,50,1,40,45,92,43,65,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,115,2241,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1 +1066,VADON,Vadon,Vadon,19,1017,0,135,85,1,74,85,20,0,1,19,16,10,36,15,10,12,0,5,21,0x91,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1 +1067,CORNUTUS,Cornutus,Cornutus,23,1620,0,240,149,1,109,131,30,0,1,23,23,5,36,12,10,12,0,5,21,0x91,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1 +1068,HYDRA,Hydra,Hydra,14,660,0,59,40,7,22,28,0,40,1,14,14,0,40,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,1011,25,962,5500,938,1500,971,20,525,5,517,700,0,0,0,0,0,0,4035,1 +1069,SWORD_FISH,Swordfish,Swordfish,30,4299,0,1251,638,1,168,199,5,20,1,30,30,41,62,30,10,12,2,5,41,0x3885,200,1968,768,384,0,0,0,0,0,0,0,995,10,963,9000,756,33,2257,2,757,50,1117,25,956,600,0,0,0,0,4089,1 +1070,KUKRE,Kukre,Kukre,11,507,0,38,28,1,28,37,15,0,1,11,11,5,16,2,10,12,0,5,21,0x83,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1 +1071,PIRATE_SKEL,Pirate Skeleton,Pirate Skeleton,25,1676,0,233,142,1,145,178,10,15,25,13,25,5,25,10,10,12,1,1,29,0x3885,200,1754,554,288,0,0,0,0,0,0,0,932,3000,2287,15,7477,5,2211,250,1104,250,756,43,628,20,0,0,0,0,4073,1 +1072,KAHO,Kaho,Kaho,60,8409,0,3990,450,1,110,760,5,50,1,55,43,88,80,46,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1 +1073,CRAB,Crab,Crab,20,2451,0,163,101,1,71,81,35,0,18,20,15,0,36,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1 +1074,SHELLFISH,Shellfish,Shellfish,15,920,0,66,44,1,35,42,35,0,1,12,8,0,32,5,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1 +//1075,TURTLE,Turtle,Turtle,3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1076,SKELETON,Skeleton,Skeleton,10,234,0,18,14,1,39,47,10,10,1,5,10,0,12,0,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1 +1077,POISON_SPORE,Poison Spore,Poison Spore,19,665,0,186,93,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1 +1078,RED_PLANT,Red Plant,Red Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,906,300,914,500,708,50,2269,2,0,0,0,0 +1079,BLUE_PLANT,Blue Plant,Blue Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,712,1000,711,1000,905,500,906,300,522,50,514,1000,2270,2,0,0,0,0 +1080,GREEN_PLANT,Green Plant,Green Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,511,7000,712,1000,621,20,905,3000,906,1500,704,50,521,50,2270,2,0,0,0,0 +1081,YELLOW_PLANT,Yellow Plant,Yellow Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,508,5500,712,1000,711,1000,905,500,906,300,707,5,914,500,2269,2,0,0,0,0 +1082,WHITE_PLANT,White Plant,White Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,509,5500,712,1000,631,20,905,3000,906,1500,521,50,703,50,2269,2,0,0,0,0 +1083,SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,508,1000,509,1000,710,5,608,20,518,500,607,50,714,1,0,0,0,0 +1084,BLACK_MUSHROOM,Black Mushroom,Black Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,7033,5500,0,0,0,0 +1085,RED_MUSHROOM,Red Mushroom,Red Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,7033,5500,0,0,0,0 +1086,GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,64,126000,0,14300,7150,1,870,1145,60,45,65,75,35,45,85,150,10,12,2,4,43,0x11AB,100,768,768,480,7150,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1 +1087,ORK_HERO,Orc Hero,Orc Hero,77,585700,0,58630,32890,1,2257,2542,40,45,1,91,30,70,105,90,10,12,2,7,42,0x37B5,150,1678,780,648,29315,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1 +1088,VOCAL,Vocal,Vocal,18,3016,0,110,88,1,71,82,10,30,77,28,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,645,700,1917,10,0,0,0,0,4211,1 +1089,TOAD,Toad,Toad,10,5065,0,100,50,1,26,32,0,0,1,5,10,10,10,25,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,746,1500,970,100,971,100,5125,1000,0,0,0,0,4306,1 +1090,MASTERING,Mastering,Mastering,2,2415,0,30,10,1,18,24,0,10,1,2,2,0,17,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,512,8000,512,8000,531,4000,0,0,0,0,4197,1 +1091,DRAGON_FLY,Dragon Fly,Dragon Fly,8,2400,0,88,44,1,22,27,40,0,1,20,8,15,17,5,10,12,0,4,24,0x37B5,100,1076,576,480,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1 +1092,VAGABOND_WOLF,Vagabond Wolf,Vagabond Wolf,24,12240,0,247,176,1,135,159,10,0,57,45,48,20,50,65,10,12,1,2,22,0x37B5,150,1048,648,432,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,2521,1000,725,10,626,50,0,0,0,0,4183,1 +1093,ECLIPSE,Eclipse,Eclipse,6,1800,0,60,55,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,746,1500,706,30,622,50,2355,1000,0,0,0,0,4266,1 +1094,AMBERNITE,Ambernite,Ambernite,13,495,0,57,38,1,39,46,30,0,1,13,13,5,18,5,10,12,2,4,21,0x191,400,2048,648,648,0,0,0,0,0,0,0,991,50,946,9000,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1 +1095,ANDRE,Andre,Andre,17,688,0,109,71,1,60,71,10,0,1,17,24,20,26,20,10,12,0,4,22,0x118B,300,1288,288,384,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1 +1096,ANGELING,Angeling,Angeling,20,55000,0,163,144,1,120,195,0,70,1,50,20,75,68,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1 +1097,ANT_EGG,Ant Egg,Ant Egg,4,420,0,5,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1 +1098,ANUBIS,Anubis,Anubis,75,38000,0,28000,22000,1,530,1697,25,31,5,65,10,82,77,33,10,12,2,7,49,0x3695,150,1250,768,360,0,0,0,0,0,0,0,930,3000,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1 +1099,ARGIOPE,Argiope,Argiope,41,4382,0,1797,849,1,395,480,30,0,1,41,31,10,56,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1 +1100,ARGOS,Argos,Argos,25,1117,0,388,188,1,158,191,15,0,1,25,25,5,32,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1 +1101,BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1 +1102,BATHORY,Bathory,Bathory,44,5415,0,2503,1034,1,198,398,0,60,1,76,24,85,65,15,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1 +1103,CARAMEL,Caramel,Caramel,23,1424,0,264,162,1,90,112,5,5,35,23,46,5,38,10,10,12,0,2,22,0x91,200,1604,840,756,0,0,0,0,0,0,0,1027,9000,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1 +1104,COCO,Coco,Coco,17,817,0,120,78,1,56,67,0,0,24,17,34,20,24,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,578,600,0,0,0,0,4041,1 +1105,DENIRO,Deniro,Deniro,19,760,0,135,85,1,68,79,15,0,1,19,30,20,43,10,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,955,9000,910,3000,938,1200,990,50,1001,8,1002,450,757,34,0,0,0,0,4043,1 +1106,DESERT_WOLF,Desert Wolf,Desert Wolf,27,1716,0,427,266,1,169,208,0,10,56,27,45,15,56,10,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,1217,140,0,0,0,0,4082,1 +1107,DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,9,164,0,20,16,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,0x1089,300,1600,900,240,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,517,600,2301,200,13011,5,582,1000,0,0,0,0,4023,1 +1108,DEVIACE,Deviace,Deviace,47,20090,0,9988,7207,1,514,1024,10,20,1,47,62,48,62,25,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,995,25,1053,9000,1054,1000,5011,2,971,200,1256,3,756,161,0,0,0,0,4125,1 +1109,DEVIRUCHI,Deviruchi,Deviruchi,46,6666,0,2662,1278,1,475,560,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1 +1110,DOKEBI,Dokebi,Dokebi,33,2697,0,889,455,1,197,249,0,10,50,50,40,35,69,40,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1 +1111,DRAINLIAR,Drainliar,Drainliar,24,1162,0,431,176,1,74,84,0,0,1,36,24,0,78,0,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1 +1112,DRAKE,Drake,Drake,70,326666,0,28600,22880,1,1800,2100,20,35,85,80,49,75,79,50,10,12,1,1,29,0x37B5,400,620,420,360,14300,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1 +1113,DROPS,Drops,Drops,3,55,0,4,3,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1 +1114,DUSTINESS,Dustiness,Dustiness,21,1044,0,218,140,1,80,102,0,10,1,53,17,0,38,5,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1 +1115,EDDGA,Eddga,Eddga,65,152000,0,25025,12870,1,1215,1565,15,15,78,70,85,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,12512,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1 +1116,EGGYRA,Eggyra,Eggyra,24,633,0,215,220,1,85,107,20,25,1,36,24,0,32,0,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1 +1117,EVIL_DRUID,Evil Druid,Evil Druid,58,16506,0,2890,1827,1,420,670,5,60,1,29,58,80,68,30,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1 +1118,FLORA,Flora,Flora,26,2092,0,357,226,3,242,273,10,35,1,26,35,5,43,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1 +1119,FRILLDORA,Frilldora,Frilldora,30,2023,0,529,319,1,200,239,0,10,35,30,38,15,53,30,10,12,1,2,23,0x3885,300,1540,720,432,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1 +1120,GHOSTRING,Ghostring,Ghostring,18,73300,0,101,108,1,82,122,0,60,40,27,18,45,72,30,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1 +1121,GIEARTH,Giearth,Giearth,29,2252,0,495,301,1,154,185,10,50,25,29,46,60,64,105,10,12,0,6,22,0x191,200,1848,1296,432,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1 +1122,GOBLIN_1,Goblin,Goblin,25,1176,0,310,188,1,118,140,10,5,1,53,25,20,38,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,9000,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1 +1123,GOBLIN_2,Goblin,Goblin,24,1034,0,287,176,1,88,100,10,5,1,24,24,15,66,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,998,250,911,9000,5010,3,1511,10,2104,1,507,1550,2297,3,0,0,0,0,4060,1 +1124,GOBLIN_3,Goblin,Goblin,24,1034,0,357,176,1,132,165,10,5,1,24,24,15,24,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,998,230,911,9000,2275,3,5088,15,2104,1,507,1550,508,220,0,0,0,0,4060,1 +1125,GOBLIN_4,Goblin,Goblin,23,1359,0,264,164,1,109,131,10,5,1,23,46,15,36,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2104,1,507,1500,0,0,0,0,4060,1 +1126,GOBLIN_5,Goblin,Goblin,22,1952,0,241,152,1,105,127,10,5,1,22,22,15,32,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,998,150,911,9000,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1 +1127,HODE,Hode,Hode,26,2282,0,550,300,1,146,177,0,30,1,26,42,5,49,40,10,12,1,2,42,0x81,200,1480,480,720,0,0,0,0,0,0,0,993,120,1055,9000,757,80,938,3000,1147,10,7021,1,632,20,0,0,0,0,4081,1 +1128,HORN,Horn,Horn,18,659,0,134,86,1,58,69,10,0,22,18,28,10,47,15,10,12,1,4,22,0x191,200,1528,528,288,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1 +1129,HORONG,Horong,Horong,34,1939,0,786,479,1,275,327,99,50,1,34,10,0,50,0,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1 +1130,JAKK,Jakk,Jakk,38,3581,0,1408,880,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,0,0,0,0,0,0,4109,1 +1131,JOKER,Joker,Joker,57,12450,0,3706,2362,1,621,738,10,35,1,143,47,75,98,175,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1 +1132,KHALITZBURG,Khalitzburg,Khalitzburg,63,19276,0,4378,2750,1,875,1025,45,10,58,65,48,5,73,40,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,509,2000,1127,2,0,0,0,0,4136,1 +1133,KOBOLD_1,Kobold,Kobold,36,3893,0,988,625,1,265,318,15,10,1,90,36,30,52,20,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 +1134,KOBOLD_2,Kobold,Kobold,31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1 +1135,KOBOLD_3,Kobold,Kobold,31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1 +//1136,KOBOLD_4,Kobold,Kobold,31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1 +//1137,KOBOLD_5,Kobold,Kobold,31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1 +1138,MAGNOLIA,Magnolia,Magnolia,26,3195,0,393,248,1,120,151,5,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1 +1139,MANTIS,Mantis,Mantis,26,2472,0,393,248,1,118,149,10,0,1,26,24,5,45,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1 +1140,MARDUK,Marduk,Marduk,40,4214,0,1238,752,1,315,382,0,60,1,40,20,79,78,20,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1 +1141,MARINA,Marina,Marina,21,2087,0,218,140,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x81,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1 +1142,MARINE_SPHERE,Marine Sphere,Marine Sphere,28,3518,0,461,284,1,120,320,0,40,1,28,28,0,33,50,10,12,0,3,41,0x0,800,1201,1,1,0,0,0,0,0,0,0,1050,5000,1051,2500,1520,10,720,10,717,150,10003,10,0,0,0,0,0,0,4084,1 +1143,MARIONETTE,Marionette,Marionette,41,3222,0,1078,1276,1,355,422,0,25,1,62,36,44,69,45,10,12,0,6,68,0x3195,300,1480,480,1056,0,0,0,0,0,0,0,1060,9000,2294,5,2605,1,699,100,1520,15,2407,1,5141,3,0,0,0,0,4113,1 +1144,MARSE,Marse,Marse,31,5034,0,586,370,1,211,252,0,5,1,31,25,5,52,30,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1 +1145,MARTIN,Martin,Martin,18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1 +1146,MATYR,Matyr,Matyr,31,2585,0,967,407,1,134,160,0,0,1,47,38,5,64,5,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1 +1147,MAYA,Maya,Maya,81,169000,0,42900,17875,1,1800,2070,60,25,95,97,76,95,82,105,10,12,2,4,82,0x37B5,100,864,1000,480,21450,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1 +1148,MEDUSA,Medusa,Medusa,79,16408,0,6876,4697,1,827,1100,28,18,1,74,50,57,77,69,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,967,3500,1007,3,0,0,0,0,4124,1 +1149,MINOROUS,Minorous,Minorous,52,7431,0,2750,1379,1,590,770,15,5,65,42,61,66,52,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,516,1500,1301,200,568,300,0,0,0,0,4126,1 +1150,MOONLIGHT,Moonlight Flower,Moonlight Flower,67,120000,0,27500,14300,1,1200,1700,10,55,55,99,55,82,95,120,10,12,1,6,63,0x37B5,150,1276,576,288,13750,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1 +1151,MYST,Myst,Myst,38,3745,0,1391,688,1,365,445,0,40,1,38,18,0,53,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,514,35,0,0,0,0,4108,1 +1152,ORC_SKELETON,Orc Skeleton,Orc Skeleton,28,2278,0,315,194,1,190,236,10,10,1,14,18,0,30,15,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1 +1153,ORC_ZOMBIE,Orc Zombie,Orc Zombie,24,1568,0,196,120,1,151,184,5,10,1,12,24,0,24,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1 +1154,PASANA,Pasana,Pasana,61,8289,0,4087,2135,1,513,682,29,35,1,73,50,61,59,43,10,12,1,7,43,0x3095,165,976,576,288,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,2522,100,0,0,0,0,0,0,4099,1 +1155,PETIT,Petite,Petite,44,6881,0,1677,1034,1,360,427,30,30,1,44,62,55,79,60,10,12,1,9,22,0x3095,200,1624,620,384,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,912,1500,606,15,0,0,0,0,4118,1 +1156,PETIT_,Petite,Petite,45,5747,0,1758,1075,1,300,355,20,45,1,113,45,55,73,80,10,12,1,9,24,0x3095,150,1420,1080,528,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1 +1157,PHARAOH,Pharaoh,Pharaoh,93,445997,0,114990,41899,1,2267,3015,67,70,1,93,100,104,89,112,10,12,2,7,67,0x37B5,125,868,768,288,57495,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1 +1158,PHEN,Phen,Phen,26,3347,0,357,226,1,138,150,0,15,1,26,26,0,88,75,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1 +1159,PHREEONI,Phreeoni,Phreeoni,69,188000,0,32175,16445,1,880,1530,10,20,1,85,78,35,130,60,10,12,2,2,60,0x37B5,200,1020,1020,288,16087,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1 +1160,PIERE,Piere,Piere,18,733,0,122,78,1,64,75,15,0,1,18,26,20,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1 +1161,PLANKTON,Plankton,Plankton,10,354,0,23,18,1,26,31,0,5,1,10,10,0,15,0,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1 +1162,RAFFLESIA,Rafflesia,Rafflesia,17,1333,0,333,333,3,105,127,0,2,1,18,24,11,37,10,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1 +1163,RAYDRIC,Raydric,Raydric,52,8613,0,3410,1795,1,830,930,40,15,58,47,42,5,69,26,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,0,0,0,0,4133,1 +1164,REQUIEM,Requiem,Requiem,35,3089,0,800,458,1,220,272,0,15,1,53,35,5,57,2,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1 +1165,SAND_MAN,Sandman,Sandman,34,3413,0,810,492,1,180,205,10,25,24,34,58,38,60,5,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1 +1166,SAVAGE,Savage,Savage,26,2092,0,521,248,1,120,150,10,5,1,26,54,10,37,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,605,10,757,70,526,2,0,0,0,0,4078,1 +1167,SAVAGE_BABE,Savage Babe,Savage Babe,7,182,0,14,12,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,919,9000,1302,100,517,500,1750,1000,949,850,1010,80,627,40,0,0,0,0,4017,1 +//1168,SCORPION_KING,Scorpion King,Scorpion King,50,6354,0,2187,1346,1,500,603,40,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1 +1169,SKEL_WORKER,Skeleton Worker,Skeleton Worker,30,2872,0,397,240,1,242,288,0,15,1,15,30,5,42,10,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,1002,800,0,0,0,0,4092,1 +1170,SOHEE,Sohee,Sohee,33,5628,0,739,455,1,210,251,0,10,1,33,33,10,58,15,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,507,1000,662,350,0,0,0,0,4100,1 +//1171,SOLDIER_ANDRE,Soldier Andre,Soldier Andre,22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1 +//1172,SOLDIER_DENIRO,Soldier Deniro,Soldier Deniro,29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1 +//1173,SOLDIER_PIERE,Soldier Piere,Soldier Piere,23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1 +1174,STAINER,Stainer,Stainer,16,538,0,105,70,1,53,64,10,0,1,40,16,5,30,5,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1 +1175,TAROU,Tarou,Tarou,11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1 +1176,VITATA,Vitata,Vitata,20,894,0,163,101,1,69,80,15,20,1,20,25,65,40,70,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1 +1177,ZENORC,Zenorc,Zenorc,31,2585,0,967,407,1,188,223,0,15,1,77,15,0,76,10,10,12,1,7,27,0x83,150,1180,480,360,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1 +1178,ZEROM,Zerom,Zerom,23,1109,0,240,149,1,127,155,0,10,1,23,23,5,42,0,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,1002,300,0,0,0,0,4064,1 +1179,WHISPER,Whisper,Whisper,34,1796,0,591,599,1,180,221,0,45,1,51,14,0,60,0,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1 +1180,NINE_TAIL,Nine Tail,Nine Tail,51,7766,0,2812,825,1,610,734,10,25,1,80,46,1,74,85,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1 +//1181,ZOMBIE_DRAGON,Zombie Dragon,Zombie Dragon,1,1000,0,49500,1650,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1182,THIEF_MUSHROOM,Thief Mushroom,Thief Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1183,CHONCHON_,Chonchon,Chonchon,4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1 +1184,FABRE_,Fabre,Fabre,1,30,0,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0 +1185,WHISPER_,Whisper,Whisper,34,1796,0,537,545,1,198,239,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,1001,10,1059,100,0,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0 +1186,WHISPER_BOSS,Giant Whisper,Giant Whisper,34,5040,0,537,545,1,198,239,0,45,1,51,14,0,60,0,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1 +1187,SWITCH,Switch,Switch,1,2,0,1,1,1,1,2,0,0,1,1,1,0,1,0,1,12,1,0,20,0x0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1188,BON_GUN,Bongun,Bongun,32,3520,0,424,242,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1 +1189,ORC_ARCHER,Orc Archer,Orc Archer,49,7440,0,1729,1787,9,310,390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1 +1190,ORC_LORD,Orc Lord,Orc Lord,74,783000,0,62205,8580,1,3700,4150,40,5,85,82,30,70,110,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,968,5500,617,2000,0,0,1363,200,2601,500,5007,150,1371,400,617,1000,985,4268,16000,3100,0,0,0,0,4135,1 +1191,MIMIC,Mimic,Mimic,51,6120,182,165,165,1,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,714,3,2626,1,757,270,0,0,0,0,4205,1 +1192,WRAITH,Wraith,Wraith,53,10999,0,2199,1099,1,580,760,5,30,1,95,30,65,95,35,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1 +1193,ALARM,Alarm,Alarm,58,10647,0,3987,2300,1,480,600,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1 +1194,ARCLOUSE,Arclouse,Arclouze,59,6075,0,860,1000,1,570,640,10,15,1,75,5,5,75,50,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1 +1195,RIDEWORD,Rideword,Rideword,59,11638,0,2007,3106,1,584,804,5,35,48,75,10,20,120,45,10,12,0,0,60,0x3695,150,864,500,192,0,0,0,0,0,0,0,1097,4850,1553,4,1554,4,1555,2,1556,2,7015,300,1006,20,0,0,0,0,4185,1 +1196,SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,52,8691,0,2466,1562,1,660,890,10,20,55,20,36,0,76,25,10,12,1,1,69,0x308D,350,1848,500,576,0,0,0,0,0,0,0,1098,3500,7016,100,2320,1,716,600,930,3500,2408,35,934,1500,0,0,0,0,4222,1 +1197,ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,53,11280,0,2635,1724,1,780,930,10,20,1,24,39,0,72,25,10,12,1,1,69,0x308D,350,1768,500,192,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1 +1198,DARK_PRIEST,Dark Priest,Dark Priest,79,101992,0,12192,5152,2,1238,2037,56,70,5,91,41,101,103,42,10,12,1,6,89,0x31AD,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,50,2319,5,1241,1,0,0,0,0,4171,1 +1199,PUNK,Punk,Punk,43,3620,0,1699,1033,1,292,365,0,45,1,105,5,45,65,20,10,12,0,3,24,0x3095,300,1500,500,1000,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1 +1200,ZHERLTHSH,Zherlthsh,Zealotus,63,18300,0,3608,2304,1,700,850,10,15,70,85,40,30,125,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,7017,5,509,1800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1 +1201,RYBIO,Rybio,Rybio,71,9572,0,6317,3520,1,686,912,45,37,1,97,75,74,77,90,10,12,2,6,40,0x318D,200,1790,1440,540,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,731,30,1008,10,984,100,709,30,0,0,0,0,4194,1 +1202,PHENDARK,Phendark,Phendark,73,22729,0,6826,3443,2,794,1056,52,36,1,62,120,65,76,66,10,12,2,7,40,0x308D,175,1744,1344,600,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,1971,100,0,0,0,0,0,0,4329,1 +1203,MYSTELTAINN,Mysteltainn,Mysteltainn,76,33350,0,6457,5159,2,1160,1440,30,30,77,139,80,35,159,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,999,120,984,243,0,0,0,0,4207,1 +1204,TIRFING,Tirfing,Ogretooth,71,29900,0,5412,4235,1,950,1146,30,35,58,87,55,35,132,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1 +1205,EXECUTIONER,Executioner,Executioner,65,28980,0,4730,3536,2,570,950,35,35,64,85,40,25,88,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1 +1206,ANOLIAN,Anolian,Anolian,61,18960,0,5900,3700,1,640,980,15,15,1,43,58,25,80,65,10,12,1,5,41,0x3695,190,900,500,864,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,943,5335,2625,1,984,134,0,0,0,0,4234,1 +1207,STING,Sting,Sting,61,9500,0,4081,2970,1,850,1032,5,30,57,45,55,5,120,85,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,719,3,0,0,0,0,4226,1 +1208,WANDER_MAN,Wander Man,Wanderer,74,8170,0,5786,4730,2,450,1170,5,5,1,192,38,45,127,85,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1 +1209,CRAMP,Cramp,Cramp,56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1 +//1210,FILAMENTOUS,Filamentous,Filamentous,51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1 +1211,BRILIGHT,Brilight,Brilight,46,5562,0,1826,1331,1,298,383,30,5,1,90,15,10,50,35,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,602,1000,757,220,610,250,509,2600,0,0,0,0,4213,1 +1212,IRON_FIST,Iron Fist,Iron Fist,47,4221,0,1435,1520,1,430,590,40,5,1,25,15,10,81,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1 +1213,HIGH_ORC,High Orc,High Orc,52,6890,0,3618,1639,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1 +1214,CHOCO,Choco,Choco,43,4278,0,1265,1265,1,315,402,5,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1 +1215,STEM_WORM,Stem Worm,Stem Worm,40,6136,0,1452,939,2,290,375,5,10,1,30,26,15,79,35,10,12,1,3,24,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1 +1216,PENOMENA,Penomena,Penomena,57,7256,0,2870,2200,7,415,565,5,50,1,5,35,15,136,30,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1 +1219,KNIGHT_OF_ABYSS,Knight of Abyss,Abysmal Knight,79,36140,0,8469,6268,1,1600,2150,55,50,66,68,64,25,135,50,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,984,259,0,0,0,0,4140,1 +1220,M_DESERT_WOLF,Desert Wolf,Desert Wolf,27,1716,0,388,242,1,169,208,0,10,1,27,45,15,56,10,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1 +1221,M_SAVAGE,Savage,Savage,26,2092,0,357,226,1,146,177,10,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1 +//1222,L_HIGH_ORC,High Orc,High Orc,52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1 +//1223,L_ORC,Orc,Orc,24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 +//1224,L_POISON_SPORE,Poison Spore,Poison Spore,19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1 +//1225,L_CHOCO,Choco,Choco,43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1 +//1226,L_KOBOLD,Kobold,Kobold,36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 +//1227,L_GOBLIN,Goblin,Goblin,25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1 +//1228,L_PHEN,Phen,Phen,26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1 +1229,META_FABRE,Fabre,Fabre,2,63,0,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1 +1230,META_PUPA,Pupa,Pupa,2,427,0,2,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1 +1231,META_CREAMY,Creamy,Creamy,16,595,0,96,64,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1 +1232,META_PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,3,420,0,4,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1 +//1233,CONCEIVE_PECOPECO,Peco Peco,Peco Peco,19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1 +1234,PROVOKE_YOYO,Yoyo,Yoyo,19,879,0,135,85,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1 +1235,SMOKING_ORC,Smoking Orc,Smoking Orc,24,1400,0,261,160,1,114,136,10,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 +1236,META_ANT_EGG,Ant Egg,Ant Egg,4,420,0,5,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1 +1237,META_ANDRE,Andre,Andre,17,688,0,109,71,1,60,71,10,0,1,17,24,20,26,20,10,12,0,4,22,0x118B,300,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1000,935,3000,1001,6,1002,350,757,28,0,0,0,0,4043,1 +1238,META_PIERE,Piere,Piere,18,733,0,122,78,1,64,75,15,0,1,18,26,20,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,955,5700,910,1100,938,600,992,15,1001,5,1002,400,757,31,0,0,0,0,4043,1 +1239,META_DENIRO,Deniro,Deniro,19,760,0,135,85,1,68,79,15,0,1,19,30,20,43,10,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1 +1240,META_PICKY,Picky,Picky,3,80,0,4,3,1,9,12,0,0,1,3,3,0,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,2302,150,507,650,519,350,715,60,0,0,0,0,0,0,4008,1 +1241,META_PICKY_,Picky,Picky,4,83,0,5,4,1,8,11,20,0,1,3,3,0,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,5015,7,507,750,519,350,715,60,0,0,0,0,0,0,4011,1 +1242,MARIN,Marin,Marin,15,742,0,66,44,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,510,75,529,350,5035,1,0,0,0,0,4196,1 +1243,SASQUATCH,Sasquatch,Sasquatch,30,3163,0,529,319,1,250,280,5,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1 +1244,JAKK_XMAS,Christmas Jakk,Christmas Jakk,38,3581,0,1113,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1 +1245,GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,282,171,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1 +1246,COOKIE_XMAS,Christmas Cookie,Christmas Cookie,28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1 +1247,ANTONIO,Antonio,Antonio,10,10,0,3,2,1,13,20,100,0,1,1,1,50,100,100,10,12,1,3,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,7034,10000,644,200,538,1500,539,1000,529,5500,530,5500,2236,250,0,0,0,0,4243,1 +1248,CRUISER,Cruiser,Cruiser,35,2820,0,1100,450,7,175,215,5,5,1,40,10,10,90,25,10,12,1,0,60,0x2085,400,1296,1296,432,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1 +1249,MYSTCASE,Myst Case,Myst Case,38,3450,0,1113,688,1,160,360,5,10,65,50,25,5,48,75,10,12,1,0,60,0x91,400,1248,1248,432,0,0,0,0,0,0,0,530,90,912,1500,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1 +1250,CHEPET,Chepet,Chepet,42,4950,0,1518,946,1,380,440,0,25,1,72,35,71,65,85,10,12,1,7,23,0x3695,400,672,672,288,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1 +1251,KNIGHT_OF_WINDSTORM,Knight of Windstorm,Stormy Knight,77,240000,0,64350,21450,2,1425,1585,35,60,75,185,83,55,130,79,10,12,2,0,84,0x37B5,200,468,468,288,32175,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1 +1252,GARM,Garm,Garm,73,197000,0,50050,20020,3,1700,1900,40,45,85,126,82,65,95,60,10,12,2,2,81,0x37B5,400,608,408,336,25025,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1 +1253,GARGOYLE,Gargoyle,Gargoyle,48,3950,0,1650,1650,9,290,360,10,10,15,61,20,20,126,40,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,912,3880,1039,500,0,0,0,0,2619,1,1769,2000,757,238,0,0,0,0,4149,1 +1254,RAGGLER,Raggler,Raggler,21,1020,0,218,140,1,102,113,0,5,18,10,32,20,39,35,10,12,0,2,24,0x3695,200,1000,900,384,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1 +1255,NERAID,Neraid,Nereid,40,4120,0,1126,684,1,325,360,0,10,1,45,50,5,64,5,10,12,0,2,22,0x3695,200,776,576,288,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1 +1256,PEST,Pest,Pest,40,3240,0,1238,752,1,375,450,0,5,1,60,22,5,80,5,10,12,0,2,47,0x3695,165,700,648,480,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1 +1257,INJUSTICE,Injustice,Injustice,51,7600,0,2118,1488,1,480,600,0,0,84,42,39,0,71,35,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1 +1258,GOBLIN_ARCHER,Goblin Archer,Goblin Archer,28,1750,0,461,284,9,89,113,0,0,10,15,20,15,72,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1 +1259,GRYPHON,Gryphon,Gryphon,72,27800,0,5896,4400,1,880,1260,35,35,68,95,78,65,115,75,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1 +1260,DARK_FRAME,Dark Frame,Dark Frame,59,7500,0,3652,3271,1,960,1210,10,45,1,72,42,45,85,25,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1 +1261,WILD_ROSE,Wild Rose,Wild Rose,38,2980,0,1113,688,1,315,360,0,15,65,85,15,35,65,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,1767,3000,624,35,528,600,2244,2,0,0,0,0,4257,1 +1262,MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,62600,0,4730,3536,4,2400,3400,15,20,75,47,30,68,45,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,400,7296,1500,2527,50,0,0,0,0,4203,1 +1263,WIND_GHOST,Wind Ghost,Wind Ghost,51,4820,0,2424,1488,2,489,639,0,45,1,89,15,90,85,25,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1 +1264,MERMAN,Merman,Merman,53,14690,0,4500,3000,2,482,964,10,35,72,45,46,35,60,55,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,1054,1300,523,300,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1 +1265,COOKIE,Cookie,Cookie,25,950,0,310,188,1,130,145,0,25,1,35,20,53,37,90,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,538,1000,530,150,979,1,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1 +1266,ASTER,Aster,Aster,18,1372,0,122,78,1,56,64,0,10,1,19,15,0,34,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1 +1267,CARAT,Carat,Carat,51,5200,0,1926,1353,1,330,417,0,25,1,41,45,5,85,155,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1 +1268,BLOODY_KNIGHT,Bloody Knight,Bloody Knight,82,57870,0,10120,6820,3,2150,3030,60,50,88,75,70,77,125,55,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,985,433,0,0,0,0,4320,1 +1269,CLOCK,Clock,Clock,60,11050,0,3410,2904,1,720,909,15,10,1,70,50,25,90,50,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1 +1270,C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,63,18600,0,4378,2850,3,880,1180,35,30,1,75,20,64,75,60,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1 +1271,ALLIGATOR,Alligator,Alligator,42,6962,0,1379,866,1,315,360,2,5,1,45,50,10,69,65,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1 +1272,DARK_LORD,Dark Lord,Dark Lord,80,720000,0,65780,45045,2,2800,3320,30,70,1,120,30,118,99,60,10,12,2,6,89,0x37B5,100,868,768,480,32890,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,984,3977,0,0,0,0,4168,1 +1273,ORC_LADY,Orc Lady,Orc Lady,31,2000,0,644,407,1,135,170,10,10,35,42,25,15,69,55,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,7053,4656,998,300,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1 +1274,MEGALITH,Megalith,Megalith,45,5300,0,1758,1075,9,264,314,50,25,1,45,60,5,95,5,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1 +1275,ALICE,Alice,Alice,62,10000,221,3583,2400,1,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,0x91,200,502,2304,480,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,739,30,5085,1,12128,10,12002,100,0,0,0,0,4253,1 +1276,RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,52,5250,0,3025,2125,9,415,500,35,5,15,25,22,5,145,35,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,1701,150,1764,2000,1715,3,985,106,0,0,0,0,4187,1 +1277,GREATEST_GENERAL,Greatest General,Greatest General,40,3632,0,1238,752,3,350,400,15,15,1,20,60,55,82,140,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1 +1278,STALACTIC_GOLEM,Stalactic Golem,Stalactic Golem,60,18700,0,5808,2695,1,950,1260,50,5,73,45,85,5,90,25,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,0,0,985,163,0,0,0,0,4223,1 +1279,TRI_JOINT,Tri Joint,Tri Joint,32,2300,0,386,220,1,178,206,20,5,1,48,24,10,67,20,10,12,0,4,22,0x3795,200,860,660,624,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1 +1280,STEAM_GOBLIN,Steam Goblin,Goblin Steamrider,35,2490,0,864,495,1,234,269,20,5,58,59,32,15,75,25,10,12,1,7,44,0x91,200,1008,1008,528,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1 +1281,SAGEWORM,Sage Worm,Sage Worm,43,3850,0,1155,1320,1,120,280,0,50,1,52,24,88,79,55,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1 +1282,KOBOLD_ARCHER,Kobold Archer,Kobold Archer,33,2560,0,739,455,9,155,185,10,5,10,20,15,30,100,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1 +1283,CHIMERA,Chimera,Chimera,70,32600,0,4950,3000,1,1200,1320,30,10,1,72,110,88,75,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1 +//1284,HUGELING,Hugeling,Hugeling,1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0 +1285,ARCHER_GUARDIAN,Archer Guardian,Archer Guardian,74,28634,0,1,1,12,1120,1600,35,60,95,80,80,90,165,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1286,KNIGHT_GUARDIAN,Knight Guardian,Knight Guardian,86,30214,0,1,1,2,1280,1560,55,30,110,40,140,65,125,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1287,SOLDIER_GUARDIAN,Soldier Guardian,Soldier Guardian,56,15670,0,1,1,1,873,1036,35,0,85,56,100,45,103,43,10,12,0,4,22,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1288,EMPELIUM,Emperium,Emperium,90,68430,0,0,0,1,60,71,40,50,1,17,80,50,26,20,10,12,0,8,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1289,MAYA_PUPLE,Maya Purple,Maya Purple,81,55479,0,10496,3893,2,1447,2000,68,48,95,90,80,95,90,119,10,12,2,4,82,0x37B5,100,1024,1000,480,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1 +1290,SKELETON_GENERAL,Skeleton General,Skeleton General,73,17402,0,8170,3370,1,910,1089,25,25,90,25,40,20,77,25,10,12,1,1,29,0x3695,150,2276,576,432,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,13035,15,2274,1,0,0,0,0,4221,1 +1291,WRAITH_DEAD,Wraith Dead,Wraith Dead,74,43021,0,10341,3618,2,1366,1626,25,30,5,99,55,75,115,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,100,568,300,0,0,0,0,4189,1 +1292,MINI_DEMON,Mini Demon,Mini Demon,68,32538,0,8396,3722,1,1073,1414,30,25,5,75,40,55,89,42,10,12,0,6,27,0x3795,150,1000,600,384,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1478,5,0,0,0,0,4204,1 +1293,CREMY_FEAR,Creamy Fear,Creamy Fear,62,13387,0,7365,2691,2,666,829,45,30,5,40,16,15,68,55,10,12,0,4,24,0x3795,155,1136,720,840,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,2726,5,522,50,0,0,0,0,4298,1 +1294,KILLER_MANTIS,Killer Mantis,Killer Mantis,56,13183,0,6509,2366,1,764,927,35,20,5,26,24,5,75,40,10,12,1,4,22,0x3795,175,1528,660,432,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1 +1295,OWL_BARON,Owl Baron,Owl Baron,75,60746,0,10967,4811,2,1252,1610,65,25,25,25,80,95,95,55,10,12,2,6,60,0x37B5,175,1345,824,440,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1629,2,693,100,5045,5,0,0,0,0,4238,1 +1296,KOBOLD_LEADER,Kobold Leader,Kobold Leader,65,18313,0,7432,2713,1,649,958,37,37,5,90,36,30,77,59,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1 +1297,ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,64,40599,0,8040,3499,1,836,1129,27,27,28,19,32,5,83,35,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,508,650,756,150,757,100,0,0,0,0,4248,1 +1298,ZOMBIE_MASTER,Zombie Master,Zombie Master,62,14211,0,7610,2826,1,824,1084,37,26,25,20,30,5,77,35,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1 +1299,GOBLIN_LEADER,Goblin Leader,Goblin Leader,64,20152,0,6036,2184,1,663,752,48,16,5,55,37,30,69,58,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1 +1300,CATERPILLAR,Caterpillar,Caterpillar,64,14439,0,6272,3107,1,894,1447,47,29,35,25,85,15,69,45,10,12,0,4,22,0x3795,300,1672,672,480,0,0,0,0,0,0,0,949,3000,7054,5335,13034,20,1000,100,997,50,505,12,508,500,0,0,0,0,4289,1 +1301,AM_MUT,Am Mut,Am Mut,61,12099,0,7709,2690,1,1040,1121,50,10,50,65,40,35,83,45,10,12,0,6,27,0x3795,200,1156,456,384,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,250,0,0,0,0,4245,1 +1302,DARK_ILLUSION,Dark Illusion,Dark Illusion,77,103631,0,11163,4181,2,1300,1983,64,70,5,100,40,100,97,40,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1 +1303,GIANT_HONET,Giant Hornet,Giant Hornet,56,13105,0,5785,2006,1,650,852,38,43,35,38,32,10,71,64,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,526,550,518,1200,522,12,610,15,1608,3,722,20,1736,15,0,0,0,0,4271,1 +1304,GIANT_SPIDER,Giant Spider,Giant Spider,55,11874,0,6211,2146,1,624,801,41,28,5,36,43,5,73,69,10,12,2,4,25,0x3795,165,1468,468,768,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1 +1305,ANCIENT_WORM,Ancient Worm,Ancient Worm,67,22598,0,8174,3782,1,948,1115,35,30,5,35,56,55,81,72,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,2727,5,1096,680,938,3500,7054,2500,0,0,0,0,4249,1 +1306,LEIB_OLMAI,Leib Olmai,Leib Olmai,58,24233,0,6011,2171,1,740,1390,27,31,5,35,95,5,64,85,10,12,2,2,22,0x3695,175,1260,230,192,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,2717,5,969,5,7053,800,0,0,0,0,4188,1 +1307,CAT_O_NINE_TAIL,Cat o' Nine Tails,Cat o' Nine Tails,76,64512,0,10869,4283,1,1112,1275,61,55,55,75,55,82,86,120,10,12,1,6,63,0x37B5,155,1276,576,288,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1 +1308,PANZER_GOBLIN,Panzer Goblin,Panzer Goblin,59,14130,0,7212,2697,1,683,878,41,28,60,60,40,20,81,160,10,12,1,7,44,0x3695,200,960,1008,840,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1 +1309,GAJOMART,Gajomart,Gajomart,63,13669,0,6625,2900,1,917,950,85,50,5,34,10,5,75,140,10,12,0,0,83,0x3695,300,1000,1152,828,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,1752,10000,2131,20,994,180,0,0,0,0,4151,1 +1310,MAJORUROS,Majoruros,Majoruros,66,57991,0,8525,3799,1,780,1300,10,25,65,50,75,50,85,48,10,12,2,2,43,0x3695,250,1100,960,780,0,0,0,0,0,0,0,941,4413,1361,4,568,300,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1 +1311,GULLINBURSTI,Gullinbursti,Gullinbursti,62,21331,0,5814,2376,1,699,1431,10,15,55,25,60,5,70,45,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1 +1312,TURTLE_GENERAL,Turtle General,Turtle General,97,320700,0,18202,9800,2,2438,3478,50,54,100,45,55,65,105,164,10,12,2,2,42,0x37B5,200,900,1000,500,9101,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1 +1313,MOBSTER,Mobster,Mobster,61,7991,0,4424,1688,1,910,1128,41,37,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,716,600,912,2500,525,450,505,60,0,0,0,0,4317,1 +1314,PERMETER,Permeter,Permeter,63,8228,0,3756,1955,2,943,1211,46,45,69,59,60,5,69,100,10,12,1,2,40,0x91,250,1100,483,528,0,0,0,0,0,0,0,967,4413,7070,45,1019,1240,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1 +1315,ASSULTER,Assaulter,Assaulter,71,11170,0,4854,2654,2,764,1499,35,28,85,74,10,35,100,100,10,12,1,7,44,0x3695,155,1000,900,432,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,508,1280,912,1240,13300,5,603,1,0,0,0,0,4246,1 +1316,SOLIDER,Solider,Solider,70,12099,0,4458,1951,2,797,979,57,43,69,35,85,5,74,100,10,12,1,2,42,0x91,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1 +1317,FUR_SEAL,Fur Seal,Seal,63,9114,0,3765,1824,1,845,1203,25,33,5,28,22,15,69,84,10,12,1,2,21,0x3885,200,1612,622,583,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1 +1318,HEATER,Heater,Heater,68,11020,0,3766,2359,2,683,1008,40,42,69,47,25,5,71,100,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,750,697,100,912,1640,526,140,7054,600,7068,1250,0,0,0,0,4331,1 +1319,FREEZER,Freezer,Freezer,72,8636,0,3665,2197,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,850,7066,1250,912,1800,526,160,7053,600,689,100,0,0,0,0,4319,1 +1320,OWL_DUKE,Owl Duke,Owl Duke,75,26623,0,7217,3474,1,715,910,27,49,15,45,40,75,79,88,10,12,2,6,60,0x37B5,195,1345,824,440,0,0,0,0,0,0,0,7071,4413,7063,1500,693,100,747,1,1451,3,1513,2,5045,1,0,0,0,0,4237,1 +1321,DRAGON_TAIL,Dragon Tail,Dragon Tail,61,8368,0,3587,1453,1,520,715,25,19,10,68,15,5,67,67,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1 +1322,SPRING_RABBIT,Spring Rabbit,Spring Rabbit,58,9045,0,3982,1766,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1 +1323,SEE_OTTER,Sea Otter,Sea Otter,59,9999,0,3048,1642,1,650,813,33,35,5,36,40,25,82,65,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1 +1324,TREASURE_BOX1,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1325,TREASURE_BOX2,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7073,80,658,500,604,10000,984,4850,985,7275,1239,1500,5027,75,1165,8,0,0,0,0 +1326,TREASURE_BOX3,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1327,TREASURE_BOX4,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7074,80,658,500,604,10000,984,4850,985,7275,2108,1000,1306,75,5022,2,0,0,0,0 +1328,TREASURE_BOX5,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1329,TREASURE_BOX6,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7075,80,658,500,604,10000,984,4850,985,7275,2102,834,5019,100,5002,9,0,0,0,0 +1330,TREASURE_BOX7,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1331,TREASURE_BOX8,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7076,80,658,500,604,10000,984,4850,985,7275,2616,500,2334,125,2622,9,0,0,0,0 +1332,TREASURE_BOX9,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1333,TREASURE_BOX10,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7077,80,658,500,604,10000,984,4850,985,7275,2104,500,2331,150,2623,10,0,0,0,0 +1334,TREASURE_BOX11,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1335,TREASURE_BOX12,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7078,80,658,500,604,10000,984,4850,985,7275,2270,500,1716,150,2256,10,0,0,0,0 +1336,TREASURE_BOX13,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1337,TREASURE_BOX14,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7079,80,658,500,604,10000,984,4850,985,7275,1238,375,1531,150,2318,10,0,0,0,0 +1338,TREASURE_BOX15,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1339,TREASURE_BOX16,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7080,80,658,500,604,10000,984,4850,985,7275,2626,300,1472,167,2327,10,0,0,0,0 +1340,TREASURE_BOX17,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1341,TREASURE_BOX18,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7081,80,658,500,604,10000,984,4850,985,7275,1143,250,1237,188,2235,12,0,0,0,0 +1342,TREASURE_BOX19,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1343,TREASURE_BOX20,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7082,80,658,500,604,10000,984,4850,985,7275,617,250,1144,188,5007,19,0,0,0,0 +1344,TREASURE_BOX21,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1345,TREASURE_BOX22,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7083,80,658,500,604,10000,984,4850,985,7275,2508,1000,2336,69,2621,20,0,0,0,0 +1346,TREASURE_BOX23,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1347,TREASURE_BOX24,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7084,80,658,500,604,10000,984,4850,985,7275,2106,1000,1164,50,5025,24,0,0,0,0 +1348,TREASURE_BOX25,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1349,TREASURE_BOX26,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7085,80,658,500,604,10000,984,4850,985,7275,2231,750,2624,46,2286,25,0,0,0,0 +1350,TREASURE_BOX27,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1351,TREASURE_BOX28,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7086,80,658,500,604,10000,984,4850,985,7275,2283,500,2615,41,2234,32,0,0,0,0 +1352,TREASURE_BOX29,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1353,TREASURE_BOX30,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7087,80,658,500,604,10000,984,4850,985,7275,2507,500,2625,38,5045,34,0,0,0,0 +1354,TREASURE_BOX31,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1355,TREASURE_BOX32,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7088,80,658,500,604,10000,984,4850,985,7275,2407,429,2269,250,2317,35,0,0,0,0 +1356,TREASURE_BOX33,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1357,TREASURE_BOX34,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7089,80,658,500,604,10000,984,4850,985,7275,2109,300,2406,273,2258,38,0,0,0,0 +1358,TREASURE_BOX35,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1359,TREASURE_BOX36,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7090,80,658,500,604,10000,984,4850,985,7275,1142,215,2255,60,5017,38,0,0,0,0 +1360,TREASURE_BOX37,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1361,TREASURE_BOX38,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7091,80,658,500,604,10000,984,4850,985,7275,1417,50,5053,50,2229,50,0,0,0,0 +1362,TREASURE_BOX39,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1363,TREASURE_BOX40,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0 +1364,G_ASSULTER,Assaulter,Assaulter,59,12853,0,0,0,2,152,177,35,36,85,55,10,35,145,100,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1365,APOCALIPS,Apocalypse,Apocalypse,66,22880,0,6540,4935,2,1030,1370,62,49,1,48,120,48,66,85,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,999,2500,0,0,0,0,4242,1 +1366,LAVA_GOLEM,Lava Golem,Lava Golem,77,24324,0,6470,3879,1,1541,2049,65,50,1,57,115,70,76,68,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,0,0,0,0,0,0,4184,1 +1367,BLAZZER,Blazer,Blazer,43,8252,0,3173,1871,2,533,709,50,40,1,52,50,39,69,40,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1 +1368,GEOGRAPHER,Geographer,Geographer,56,8071,0,2715,2000,3,467,621,28,26,1,66,47,60,68,44,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1 +1369,GRAND_PECO,Grand Peco,Grand Peco,58,8054,0,2387,1361,2,444,565,37,30,1,66,66,50,71,51,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1 +1370,SUCCUBUS,Succubus,Succubus,85,16955,0,5357,4322,2,1268,1686,54,48,1,97,95,103,89,87,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1 +1371,FAKE_ANGEL,Fake Angel,False Angel,65,16845,0,3371,1949,2,513,682,50,35,1,64,57,70,61,88,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,0,0,0,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1 +1372,GOAT,Goat,Goat,69,11077,0,3357,2015,1,457,608,44,25,1,58,66,62,67,43,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1 +1373,LORD_OF_DEATH,Lord of Death,Lord of the Dead,94,603383,0,131343,43345,3,3430,4232,77,73,1,99,30,109,100,106,10,12,2,6,67,0x37B5,180,1446,1296,360,65671,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1 +1374,INCUBUS,Incubus,Incubus,75,17281,0,5254,4212,2,1408,1873,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1 +1375,THE_PAPER,The Paper,The Paper,56,18557,0,2849,1998,1,845,1124,25,24,1,66,52,76,71,79,10,12,1,0,60,0x3885,170,1160,960,336,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1 +1376,HARPY,Harpy,Harpy,70,16599,0,3562,2133,1,926,1231,42,44,1,112,72,67,74,76,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,1820,20,0,0,0,0,0,0,4325,1 +1377,ELDER,Elder,Elder,64,21592,0,5650,3408,3,421,560,45,68,1,76,68,108,72,86,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,7099,4000,7117,1500,7118,1500,1564,10,1473,1,616,1,7027,3000,0,0,0,0,4251,1 +1378,DEMON_PUNGUS,Demon Pungus,Demon Pungus,56,7259,0,3148,1817,1,360,479,48,31,1,83,55,59,63,34,10,12,0,6,65,0x3985,170,1260,960,672,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1 +1379,NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,78,22605,0,6683,4359,1,757,1007,37,37,1,76,55,60,76,54,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,1261,1,0,0,0,0,4166,1 +1380,DRILLER,Driller,Driller,52,7452,0,3215,1860,1,666,886,48,31,1,66,58,50,60,47,10,12,1,2,22,0x3885,165,1300,900,336,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1 +1381,GRIZZLY,Grizzly,Grizzly,68,11733,0,3341,2012,1,809,1076,44,32,1,55,68,58,70,61,10,12,2,2,63,0x3885,165,1492,1092,192,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,0,0,0,0,0,0,0,0,0,0,0,0,4162,1 +1382,DIABOLIC,Diabolic,Diabolic,67,9642,0,3662,2223,1,796,1059,64,36,1,84,53,67,71,69,10,12,0,6,47,0x3985,150,1080,780,180,0,0,0,0,0,0,0,1038,5820,1039,4850,2605,3,984,20,1263,10,0,0,0,0,0,0,0,0,4182,1 +1383,EXPLOSION,Explosion,Explosion,46,8054,0,2404,1642,1,336,447,35,27,1,61,56,50,66,38,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,7006,5500,7097,2200,7122,3200,756,800,522,400,0,0,0,0,0,0,0,0,4267,1 +1384,DELETER,Deleter,Deleter,66,17292,0,3403,2066,1,446,593,45,53,1,104,40,65,72,54,10,12,1,9,43,0x308D,175,1020,720,384,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4158,1 +1385,DELETER_,Deleter,Deleter,65,15168,0,3403,2066,1,446,593,52,53,1,66,40,65,72,68,10,12,1,9,43,0x308D,175,1024,624,336,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4279,1 +1386,SLEEPER,Sleeper,Sleeper,67,8237,0,3603,2144,1,593,789,49,35,1,48,100,57,75,28,10,12,1,0,42,0x3885,195,1350,1200,432,0,0,0,0,0,0,0,7124,4947,1056,5335,997,2500,756,300,1226,5,1622,5,7043,1200,0,0,0,0,4228,1 +1387,GIG,Gig,Gig,60,8409,0,3934,2039,1,360,479,60,28,1,61,80,53,59,46,10,12,0,2,43,0x3885,170,1264,864,576,0,0,0,0,0,0,0,7125,4365,904,5500,716,150,525,2500,994,850,0,0,0,0,0,0,0,0,4165,1 +1388,ARCHANGELING,Archangeling,Arc Angeling,60,79523,0,4152,2173,1,669,890,54,58,1,65,80,74,65,105,10,12,1,8,66,0x37B5,180,1072,672,480,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1 +1389,DRACULA,Dracula,Dracula,85,320096,0,120157,38870,3,1625,1890,45,76,1,95,90,87,85,100,10,12,2,6,87,0x37B5,145,1290,1140,576,60078,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1 +1390,VIOLY,Violy,Violy,75,18257,0,6353,3529,10,738,982,37,36,1,93,54,58,101,83,10,12,1,7,40,0x2085,170,1356,1056,540,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,1919,50,526,1400,12020,1000,1902,500,0,0,0,0,4209,1 +1391,GALAPAGO,Galapago,Galapago,61,9145,0,3204,1966,1,457,608,33,33,1,56,56,45,66,57,10,12,0,2,22,0x108B,165,1430,1080,1080,0,0,0,0,0,0,0,7053,5335,610,100,508,3500,606,100,605,100,5111,1,582,1000,0,0,0,0,4152,1 +1392,ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,25,1209,0,351,215,10,109,137,4,34,1,62,45,26,55,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1 +1393,G_MUMMY,Mummy,Mummy,37,5176,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1394,G_ZOMBIE,Zombie,Zombie,15,534,0,0,0,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1395,CRYSTAL_1,Wind Crystal,Wind Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,5097,7000,532,6500,558,5000,607,200,0,0,0,0 +1396,CRYSTAL_2,Earth Crystal,Earth Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,5097,7000,531,6500,558,5000,608,250,0,0,0,0 +1397,CRYSTAL_3,Fire Crystal,Fire Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,5097,7000,534,6500,558,5000,604,300,0,0,0,0 +1398,CRYSTAL_4,Water Crystal,Water Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,5097,7000,533,6500,558,5000,603,100,0,0,0,0 +1399,EVENT_BAPHO,Baphomet,Baphomet,68,1264000,0,261750,83685,3,1847,2267,35,45,1,152,96,85,120,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,2256,1550,0,0,0,0 +1400,KARAKASA,Karakasa,Karakasa,30,3092,0,489,322,1,141,183,1,5,1,45,12,20,49,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1 +1401,SHINOBI,Shinobi,Shinobi,69,12700,0,4970,3010,2,460,1410,34,21,85,85,25,25,100,100,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,7156,5335,2337,2,7053,2200,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1 +1402,POISON_TOAD,Poison Toad,Poison Toad,46,6629,0,1929,1457,3,288,408,5,10,20,34,19,14,66,55,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1 +1403,ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,47,3852,0,1293,1003,10,289,336,10,10,15,35,29,15,120,42,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1 +1404,MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,33,6300,0,795,453,1,250,305,1,20,1,52,15,10,62,15,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1 +1405,TENGU,Tengu,Tengu,65,16940,0,4207,2843,2,660,980,12,82,90,42,69,45,78,80,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1 +1406,KAPHA,Kapha,Kapha,41,7892,0,2278,1552,3,399,719,20,38,1,51,49,22,73,45,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1 +//1407,DOKEBI_,Dokebi,Dokebi,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1408,BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,55,8082,0,2119,1562,3,121,342,5,23,1,59,14,55,68,15,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1 +1409,RICE_CAKE_BOY,Rice Cake Boy,Dumpling Child,27,2098,0,231,149,1,112,134,5,12,1,22,29,5,41,10,10,12,0,7,20,0x91,160,647,768,420,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1 +1410,LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,53,8905,0,2591,1799,7,301,351,10,38,72,45,35,39,80,5,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,7164,4365,0,0,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1 +//1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1412,EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,56,10392,0,3304,2198,10,311,333,25,59,1,20,18,50,136,11,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1 +1413,WILD_GINSENG,Wild Ginseng,Hermit Plant,46,6900,0,1038,692,1,220,280,10,20,13,42,36,55,66,30,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,516,4800,1951,1,578,1000,0,0,0,0,4232,1 +//1414,GINSENG_BULLET,Ginseng Bullet,Ginseng Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1415,BABY_LEOPARD,Baby Leopard,Baby Leopard,32,2590,0,352,201,2,155,207,0,5,20,44,20,4,49,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1 +1416,WICKED_NYMPH,Wicked Nymph,Evil Nymph,63,16029,0,3945,2599,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1 +1417,ZIPPER_BEAR,Zipper Bear,Zipper Bear,35,2901,0,370,225,1,248,289,10,5,30,25,55,15,28,25,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1 +1418,DARK_SNAKE_LORD,Evil Snake Lord,Evil Snake Lord,73,254993,0,34288,17950,3,2433,4210,25,55,70,83,30,80,164,88,10,12,2,2,68,0x37B5,200,588,816,420,17144,607,5500,608,3500,985,5500,7169,5820,10020,5100,1471,80,5012,80,1474,500,7226,900,661,2000,0,0,0,0,4330,1 +1419,G_FARMILIAR,Familiar,Familiar,8,155,0,0,0,1,20,28,0,0,1,12,8,5,28,0,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1420,G_ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,31,3040,0,0,0,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,0x3885,300,2864,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1421,G_ISIS,Isis,Isis,43,4828,0,0,0,1,423,507,10,35,38,65,43,30,72,15,10,12,2,6,27,0x3985,200,1384,768,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1422,G_HUNTER_FLY,Hunter Fly,Hunter Fly,42,5242,0,0,0,1,246,333,25,15,33,105,32,15,72,30,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1423,G_GHOUL,Ghoul,Ghoul,39,5118,0,0,0,1,420,500,5,20,1,20,29,0,33,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1424,G_SIDE_WINDER,Side Winder,Side Winder,43,4929,0,0,0,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1425,G_OBEAUNE,Obeaune,Obeaune,31,3952,0,0,0,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x3885,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1426,G_MARC,Marc,Marc,36,6900,0,0,0,1,220,280,5,10,1,36,36,20,56,30,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1427,G_NIGHTMARE,Nightmare,Nightmare,49,4437,0,0,0,1,447,529,0,40,1,74,25,15,64,10,10,12,2,6,68,0x3985,150,1816,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1428,G_POISON_SPORE,Poison Spore,Poison Spore,19,665,0,0,0,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1429,G_ARGIOPE,Argiope,Argiope,41,4382,0,0,0,1,395,480,30,0,1,41,31,10,56,30,10,12,2,4,25,0x3985,300,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1430,G_ARGOS,Argos,Argos,25,1117,0,0,0,1,158,191,15,0,1,25,25,5,32,15,10,12,2,4,25,0x3985,300,1468,468,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1431,G_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,0,0,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x3985,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1432,G_DESERT_WOLF,Desert Wolf,Desert Wolf,27,1716,0,0,0,1,169,208,0,10,56,27,45,15,56,10,10,12,1,2,23,0x3885,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1433,G_DEVIRUCHI,Deviruchi,Deviruchi,46,7360,0,0,0,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,0x3985,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1434,G_DRAINLIAR,Drainliar,Drainliar,24,1162,0,0,0,1,74,84,0,0,1,36,24,0,78,0,10,12,0,2,47,0x3885,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1435,G_EVIL_DRUID,Evil Druid,Evil Druid,58,16506,0,0,0,1,420,670,5,60,1,29,58,80,68,30,10,12,2,1,89,0x3885,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1436,G_JAKK,Jakk,Jakk,38,3581,0,0,0,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x3885,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1437,G_JOKER,Joker,Joker,57,12450,0,0,0,1,621,738,10,35,1,143,47,75,98,175,10,12,2,7,84,0x3885,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1438,G_KHALITZBURG,Khalitzburg,Khalitzburg,63,19276,0,0,0,1,875,1025,45,10,58,65,48,5,73,40,10,12,2,1,29,0x3885,350,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1439,G_HIGH_ORC,High Orc,High Orc,52,6890,0,0,0,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3885,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1440,G_STEM_WORM,Stem Worm,Stem Worm,40,6136,0,0,0,2,290,375,5,10,1,30,26,15,79,35,10,12,1,3,24,0x3885,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1441,G_PENOMENA,Penomena,Penomena,57,7256,0,0,0,7,415,565,5,50,1,5,35,15,136,30,10,12,1,5,25,0x3885,400,832,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1442,G_SASQUATCH,Sasquatch,Sasquatch,30,3163,0,0,0,1,250,280,5,0,75,25,60,10,34,20,10,12,2,2,60,0x3885,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1443,G_CRUISER,Cruiser,Cruiser,35,2820,0,0,0,7,175,215,5,5,1,40,10,10,90,25,10,12,1,0,60,0x3885,400,1296,1296,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1444,G_CHEPET,Chepet,Chepet,42,4950,0,0,0,1,380,440,0,25,1,72,35,71,65,85,10,12,1,7,23,0x3885,400,672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1445,G_RAGGLER,Raggler,Raggler,21,1020,0,0,0,1,102,113,0,5,18,10,32,20,39,35,10,12,0,2,24,0x3885,200,1000,900,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1446,G_INJUSTICE,Injustice,Injustice,51,7600,0,0,0,1,480,600,0,0,84,42,39,0,71,35,10,12,1,1,47,0x3885,400,770,720,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1447,G_GRYPHON,Gryphon,Gryphon,72,27800,0,0,0,1,880,1260,35,35,68,95,78,65,115,75,10,12,2,2,84,0x39A5,100,704,504,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1448,G_DARK_FRAME,Dark Frame,Dark Frame,59,7500,0,0,0,1,960,1210,10,45,1,72,42,45,85,25,10,12,1,6,67,0x3985,200,920,720,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1449,G_MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,62600,0,0,0,4,2400,3400,15,20,75,47,30,68,45,35,10,12,2,9,43,0x39A5,250,1280,1080,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1450,G_WIND_GHOST,Wind Ghost,Wind Ghost,51,4820,0,0,0,2,489,639,0,45,1,89,15,90,85,25,10,12,1,6,64,0x3985,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1451,G_MERMAN,Merman,Merman,53,12300,0,0,0,2,482,603,10,35,72,45,46,15,85,55,10,12,1,7,41,0x3885,220,916,816,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1452,G_ORC_LADY,Orc Lady,Orc Lady,31,2000,0,0,0,1,135,170,10,10,35,42,25,15,69,55,10,12,1,7,42,0x3885,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1453,G_RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,52,5250,0,0,0,9,415,500,35,5,15,25,22,5,145,35,10,12,1,6,47,0x3985,200,1152,1152,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1454,G_TRI_JOINT,Tri Joint,Tri Joint,32,2300,0,0,0,1,178,206,20,5,1,48,24,10,67,20,10,12,0,4,22,0x3985,200,860,660,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1455,G_KOBOLD_ARCHER,Kobold Archer,Kobold Archer,33,2560,0,0,0,9,155,185,10,5,10,20,15,30,100,25,10,12,0,7,23,0x3885,200,1008,1008,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1456,G_CHIMERA,Chimera,Chimera,70,32600,0,0,0,1,1200,1320,30,10,1,72,110,88,75,85,10,12,2,2,63,0x39A5,200,772,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1457,G_MANTIS,Mantis,Mantis,26,2472,0,0,0,1,118,149,10,0,1,26,24,5,45,15,10,12,1,4,22,0x3985,200,1528,660,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1458,G_MARDUK,Marduk,Marduk,40,4214,0,0,0,1,315,382,0,60,1,40,20,79,78,20,10,12,2,7,23,0x3885,300,1540,840,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1459,G_MARIONETTE,Marionette,Marionette,41,3222,0,0,0,1,355,422,0,25,1,62,36,44,69,45,10,12,0,6,68,0x3985,300,1480,480,1056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1460,G_MATYR,Matyr,Matyr,31,2585,0,0,0,1,134,160,0,0,1,47,38,5,64,5,10,12,1,2,27,0x3885,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1461,G_MINOROUS,Minorous,Minorous,52,7431,0,0,0,1,590,770,15,5,65,42,61,66,52,25,10,12,2,2,43,0x3885,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1462,G_ORC_SKELETON,Orc Skeleton,Orc Skeleton,28,2278,0,0,0,1,190,236,10,10,1,14,18,0,30,15,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1463,G_ORC_ZOMBIE,Orc Zombie,Orc Zombie,24,1568,0,0,0,1,151,184,5,10,1,12,24,0,24,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1464,G_PASANA,Pasana,Pasana,61,8289,0,0,0,1,513,682,29,35,1,73,50,61,69,43,10,12,1,7,43,0x3885,165,976,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1465,G_PETIT,Petite,Petite,44,6881,0,0,0,1,360,427,30,30,1,44,62,55,79,60,10,12,1,9,22,0x3885,200,1624,620,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1466,G_PETIT_,Petite,Petite,45,5747,0,0,0,1,300,355,20,45,1,113,45,55,73,80,10,12,1,9,24,0x3885,150,1420,1080,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1467,G_RAYDRIC,Raydric,Raydric,52,8613,0,0,0,1,830,930,40,15,58,47,42,5,69,26,10,12,2,7,47,0x3885,150,824,780,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1468,G_REQUIEM,Requim,Requim,35,3089,0,0,0,1,220,272,0,15,1,53,35,5,57,2,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1469,G_SKEL_WORKER,Skeleton Worker,Skeleton Worker,30,2872,0,0,0,1,242,288,0,15,1,15,30,5,42,10,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1470,G_ZEROM,Zerom,Zerom,23,1109,0,0,0,1,127,155,0,10,1,23,23,5,42,0,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1471,G_NINE_TAIL,Nine Tail,Nine Tail,51,9466,0,0,0,1,610,734,10,25,1,80,46,1,89,85,10,12,1,2,63,0x3885,150,840,540,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1472,G_BON_GUN,Bongun,Bongun,32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,29,0x3885,200,1720,500,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1473,G_ORC_ARCHER,Orc Archer,Orc Archer,49,7440,0,0,0,9,310,390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1474,G_MIMIC,Mimic,Mimic,51,6120,0,0,0,1,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,0x3885,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1475,G_WRAITH,Wraith,Wraith,53,10999,0,0,0,1,580,760,5,30,1,95,30,65,95,35,10,12,2,1,89,0x3885,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1476,G_ALARM,Alarm,Alarm,58,10647,0,0,0,1,480,600,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3885,300,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1477,G_ARCLOUSE,Arclouse,Arclouze,59,6075,0,0,0,1,570,640,10,15,1,75,5,5,75,50,10,12,1,4,42,0x3985,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1478,G_RIDEWORD,Rideword,Rideword,59,11638,0,0,0,1,584,804,5,35,48,75,10,20,120,45,10,12,0,0,60,0x3885,150,864,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1479,G_SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,52,8691,0,0,0,1,660,890,10,20,55,20,36,0,76,25,10,12,1,1,69,0x3885,350,1848,500,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1480,G_ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,53,11280,0,0,0,1,780,930,10,20,1,24,39,0,72,25,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1481,G_PUNK,Punk,Punk,43,3620,0,0,0,1,292,365,0,45,1,105,5,45,65,20,10,12,0,3,24,0x3885,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1482,G_ZHERLTHSH,Zherlthsh,Zealotus,63,18300,0,0,0,1,700,850,10,15,70,85,40,30,125,60,10,12,1,7,60,0x3885,200,800,792,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1483,G_RYBIO,Rybio,Rybio,71,9572,0,0,0,1,686,912,45,37,1,97,75,74,77,90,10,12,2,6,40,0x3985,200,1790,1440,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1484,G_PHENDARK,Phendark,Phendark,73,22729,0,0,0,2,794,1056,52,36,1,62,120,65,76,66,10,12,2,7,40,0x3885,175,1744,1344,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1485,G_MYSTELTAINN,Mysteltainn,Mysteltainn,76,33350,0,0,0,2,1160,1440,30,30,77,139,80,35,159,65,10,12,2,0,87,0x39A5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1486,G_TIRFING,Tirfing,Ogretooth,71,29900,0,0,0,1,950,1146,30,35,58,87,55,35,132,65,10,12,1,0,67,0x39A5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1487,G_EXECUTIONER,Executioner,Executioner,65,28980,0,0,0,2,570,950,35,35,64,85,40,25,88,60,10,12,2,0,47,0x39A5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1488,G_ANOLIAN,Anolian,Anolian,63,18960,0,0,0,1,640,760,15,15,1,43,58,25,97,65,10,12,1,5,41,0x3885,190,900,500,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1489,G_STING,Sting,Sting,61,9500,0,0,0,1,850,1032,5,30,57,45,55,5,120,85,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1490,G_WANDER_MAN,Wander Man,Wanderer,74,8170,0,0,0,2,450,1170,5,5,1,192,38,45,127,85,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1491,G_DOKEBI,Dokebi,Dokebi,33,2697,0,0,0,1,197,249,0,10,50,50,40,35,69,40,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //Umbala -1492,INCANTATION_SAMURAI,Incantation Samurai,Samurai Specter,71,218652,0,33095,18214,3,2219,3169,10,51,91,85,30,85,150,60,10,12,2,7,67,0x37B5,135,874,1344,576,16547,10000,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1 -1493,DRYAD,Dryad,Dryad,50,8791,0,2763,1493,3,499,589,15,33,1,75,55,1,78,45,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,1951,80,1964,1,2270,10,7100,3000,0,0,0,0,4177,1 -1494,KIND_OF_BEETLE,Beetle King,Beetle King,34,1874,0,679,442,1,191,243,45,12,1,34,10,0,40,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1 -1495,STONE_SHOOTER,Stone Shooter,Stone Shooter,42,4104,0,1238,752,10,309,350,12,45,1,40,20,79,92,20,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1 -//1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,(mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1497,WOODEN_GOLEM,Wooden Golem,Wooden Golem,51,9200,0,1926,1353,1,570,657,32,36,1,41,69,5,85,155,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,921,1000,0,0,0,0,4259,1 -1498,WOOTAN_SHOOTER,Wootan Shooter,Wootan Shooter,39,3977,0,886,453,10,84,105,10,28,15,35,29,15,100,42,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,512,100,7182,100,5116,10,0,0,0,0,4260,1 -1499,WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,41,4457,0,1790,833,1,395,480,30,19,1,41,31,10,45,30,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,513,1000,7198,1000,5116,5,0,0,0,0,4261,1 -1500,PARASITE,Parasite,Parasite,49,5188,0,1098,1453,8,215,430,10,19,1,40,30,30,90,50,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,711,500,0,0,0,0,4309,1 -//1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet... (mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1502,PORING_V,Pori Pori,Bring it on!,99,95000000,0,87250,27895,1,10000,30000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10000,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,4000,7126,10000,2110,4500,0,0,0,0 +1492,INCANTATION_SAMURAI,Incantation Samurai,Samurai Specter,71,218652,0,33095,18214,3,2219,3169,10,51,91,85,30,85,150,60,10,12,2,7,67,0x37B5,135,874,1344,576,16547,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1 +1493,DRYAD,Dryad,Dryad,50,8791,0,2763,1493,3,499,589,15,33,1,75,55,1,78,45,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,1951,80,1964,1,2270,10,7100,3000,0,0,0,0,4177,1 +1494,KIND_OF_BEETLE,Beetle King,Beetle King,34,1874,0,679,442,1,191,243,45,12,1,34,10,0,40,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1 +1495,STONE_SHOOTER,Stone Shooter,Stone Shooter,42,4104,0,1238,752,10,309,350,12,45,1,40,20,79,92,20,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1 +//1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,(mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1497,WOODEN_GOLEM,Wooden Golem,Wooden Golem,51,9200,0,1926,1353,1,570,657,32,36,1,41,69,5,85,155,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,921,1000,0,0,0,0,4259,1 +1498,WOOTAN_SHOOTER,Wootan Shooter,Wootan Shooter,39,3977,0,886,453,10,84,105,10,28,15,35,29,15,100,42,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,512,100,7182,100,5116,10,0,0,0,0,4260,1 +1499,WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,41,4457,0,1790,833,1,395,480,30,19,1,41,31,10,45,30,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,513,1000,7198,1000,5116,5,0,0,0,0,4261,1 +1500,PARASITE,Parasite,Parasite,49,5188,0,1098,1453,8,215,430,10,19,1,40,30,30,90,50,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,711,500,0,0,0,0,4309,1 +//1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet... (mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1502,PORING_V,Pori Pori,Bring it on!,99,95000000,0,87250,27895,1,10000,30000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,4000,7126,10000,2110,4500,0,0,0,0 //Niflheim -1503,GIBBET,Gibbet,Gibbet,58,6841,0,4011,1824,1,418,656,28,31,0,42,42,27,46,28,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,0,0,0,0,0,0,4278,1 -1504,DULLAHAN,Dullahan,Dullahan,62,12437,0,4517,2963,2,647,1065,47,38,0,30,5,45,62,22,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1 -1505,LOLI_RURI,Loli Ruri,Loli Ruri,71,23470,0,6641,4314,2,1476,2317,39,44,0,66,54,74,81,43,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,0,0,0,0,0,0,4191,1 -1506,DISGUISE,Disguise,Disguise,55,7543,180,2815,1919,2,279,546,18,29,0,72,45,35,48,65,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,0,7216,4850,7221,3686,2502,50,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1 -1507,BLOODY_MURDERER,Bloody Murderer,Bloody Murderer,72,27521,0,9742,3559,2,864,1081,37,41,0,30,90,15,52,12,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1 -1508,QUVE,Quve,Quve,40,4559,0,414,306,1,299,469,12,12,0,61,24,19,37,24,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,0,0,0,0,0,0,0,0,4294,1 -1509,LUDE,Lude,Lude,36,3214,0,392,247,2,287,451,14,10,0,59,21,18,36,21,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,0,0,0,0,0,0,4193,1 -1510,HYLOZOIST,Hylozoist,Heirozoist,51,7186,0,2314,1297,1,317,498,16,51,0,28,26,47,66,14,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1 +1503,GIBBET,Gibbet,Gibbet,58,6841,0,4011,1824,1,418,656,28,31,0,42,42,27,46,28,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,0,0,0,0,0,0,4278,1 +1504,DULLAHAN,Dullahan,Dullahan,62,12437,0,4517,2963,2,647,1065,47,38,0,30,5,45,62,22,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1 +1505,LOLI_RURI,Loli Ruri,Loli Ruri,71,23470,0,6641,4314,2,1476,2317,39,44,0,66,54,74,81,43,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,0,0,0,0,0,0,4191,1 +1506,DISGUISE,Disguise,Disguise,55,7543,180,2815,1919,2,279,546,18,29,0,72,45,35,48,65,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,7216,4850,7221,3686,2502,50,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1 +1507,BLOODY_MURDERER,Bloody Murderer,Bloody Murderer,72,27521,0,9742,3559,2,864,1081,37,41,0,30,90,15,52,12,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1 +1508,QUVE,Quve,Quve,40,4559,0,414,306,1,299,469,12,12,0,61,24,19,37,24,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,0,0,0,0,0,0,0,0,4294,1 +1509,LUDE,Lude,Lude,36,3214,0,392,247,2,287,451,14,10,0,59,21,18,36,21,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,0,0,0,0,0,0,4193,1 +1510,HYLOZOIST,Hylozoist,Heirozoist,51,7186,0,2314,1297,1,317,498,16,51,0,28,26,47,66,14,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1 -1511,AMON_RA,Amon Ra,Amon Ra,88,1214138,0,87264,35891,3,1647,2576,26,52,0,1,90,124,74,45,14,12,2,7,62,0x1A4,170,854,2016,480,43632,10000,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1 +1511,AMON_RA,Amon Ra,Amon Ra,88,1214138,0,87264,35891,3,1647,2576,26,52,0,1,90,124,74,45,14,12,2,7,62,0x1A4,170,854,2016,480,43632,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1 //Louyang -1512,HYEGUN,Hyegun,Yao Jun,56,9981,0,2199,1022,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,0,0,0,0,0,0,0,0,4328,1 -1513,CIVIL_SERVANT,Civil Servant,Mao Guai,62,14390,0,4023,2750,2,650,1010,42,5,58,15,20,60,80,50,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1 -1514,DANCING_DRAGON,Dancing Dragon,Zhu Po Long,54,9136,0,3030,769,2,550,789,39,10,55,62,55,25,72,22,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1 -1515,GARM_BABY,Garm Baby,Garm Baby,61,20199,0,1022,2980,1,680,1179,34,13,45,30,56,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1 -1516,INCREASE_SOIL,Increase Soil,Mi Gao,51,8230,0,2760,2110,1,560,700,30,12,40,45,23,12,69,12,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1 -1517,LI_ME_MANG_RYANG,Li Me Mang Ryang,Jing Guai,48,5920,0,1643,1643,1,434,633,23,16,46,51,19,8,57,30,10,12,1,6,62,0x3985,165,1120,576,420,0,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1 -1518,BACSOJIN,Bacsojin,White Lady,72,56380,0,5590,1659,2,560,1446,10,15,38,65,34,80,102,35,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,0,0,2234,1,0,0,0,0 -1519,CHUNG_E,Chung E,Green Maiden,49,23900,0,2396,993,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,12395,20,5024,50,0,0,5042,2,0,0,0,0 -1520,BOILED_RICE,Boiled Rice,Boiled Rice,15,400,0,84,45,1,49,82,0,10,1,14,14,0,19,15,10,12,1,3,21,0x81,170,1152,672,672,0,0,0,0,0,0,0,0,564,5500,7272,3000,7194,1000,7198,1000,0,0,0,0,0,0,0,0,0,0,0,0 -1521,G_ALICE,Alice,Alice,62,10000,0,0,0,1,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,0x91,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1522,G_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,64,40599,0,0,0,1,836,1129,27,27,28,19,32,5,83,35,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1523,G_ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,47,3852,0,0,0,10,289,336,10,10,15,35,29,15,120,42,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1524,G_BABY_LEOPARD,Baby Leopard,Baby Leopard,32,2590,0,0,0,2,155,207,0,5,20,44,20,4,49,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1525,G_BATHORY,Bathory,Bathory,44,5415,0,0,0,1,198,398,0,60,1,76,24,85,65,15,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1526,G_BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,55,8082,0,0,0,3,121,342,5,23,1,59,14,55,68,15,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1527,G_C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,63,18600,0,0,0,3,880,1180,35,30,1,75,20,64,75,60,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1528,G_CLOCK,Clock,Clock,60,11050,0,0,0,1,720,909,15,10,1,70,50,25,90,50,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1529,G_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,73,254993,0,0,0,3,1433,2210,25,55,70,83,62,80,164,88,10,12,2,2,68,0x37B5,200,588,816,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1530,G_DRACULA,Dracula,Dracula,85,320096,0,0,0,3,1625,1890,45,76,1,95,90,87,85,100,10,12,2,6,87,0x37B5,145,1290,1140,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1531,G_EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,56,10392,0,0,0,10,311,333,25,59,1,20,18,50,136,11,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1532,G_EXPLOSION,Explosion,Explosion,46,8054,0,0,0,1,336,447,35,27,1,61,56,50,66,38,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1533,G_FUR_SEAL,Fur Seal,Seal,63,9114,0,0,0,1,845,1203,25,33,5,28,22,15,69,84,10,12,1,2,21,0x3095,200,1612,622,583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1534,G_GOBLIN_1,Goblin,Goblin,25,1176,0,0,0,1,118,140,10,5,1,53,25,20,38,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1535,G_GOBLIN_2,Goblin,Goblin,24,1034,0,0,0,1,88,100,10,5,1,24,24,15,66,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1536,G_GOBLIN_3,Goblin,Goblin,24,1034,0,0,0,1,132,165,10,5,1,24,24,15,24,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1537,G_GOBLIN_4,Goblin,Goblin,23,1359,0,0,0,1,109,131,10,5,1,23,46,15,36,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1538,G_GOBLIN_5,Goblin,Goblin,22,1952,0,0,0,1,105,127,10,5,1,22,22,15,32,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1539,G_GOBLIN_LEADER,Goblin Leader,Goblin Leader,64,20152,0,0,0,1,663,752,48,16,5,55,37,30,69,58,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1540,G_GOLEM,Golem,Golem,25,3900,0,0,0,1,175,187,40,0,1,15,25,0,15,0,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1541,G_GREATEST_GENERAL,Greatest General,Greatest General,40,3632,0,0,0,3,350,400,15,15,1,20,60,55,82,140,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1542,G_INCANTATION_SAMURA,Incantation Samurai,Incantation Samurai,71,218652,0,0,0,3,1219,2169,10,51,91,85,78,85,150,60,10,12,2,7,67,0x37B5,135,874,1344,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1543,G_KAPHA,Kapha,Kapha,41,7892,0,0,0,3,399,719,20,38,1,51,49,22,73,45,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1544,G_KARAKASA,Karakasa,Karakasa,30,3092,0,0,0,1,141,183,1,5,1,45,12,20,49,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1545,G_KOBOLD_1,Kobold,Kobold,36,3893,0,0,0,1,265,318,15,10,1,90,36,30,52,20,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1546,G_KOBOLD_2,Kobold,Kobold,31,2179,0,0,0,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1547,G_KOBOLD_3,Kobold,Kobold,31,2179,0,0,0,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1548,G_KOBOLD_LEADER,Kobold Leader,Kobold Leader,65,18313,0,0,0,1,649,958,37,37,5,90,36,30,77,59,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1549,G_LAVA_GOLEM,Lava Golem,Lava Golem,77,24324,0,0,0,1,1541,2049,65,50,1,57,115,70,76,68,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1550,G_LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,53,8905,0,0,0,7,301,351,10,38,72,45,35,39,80,5,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1551,G_MARSE,Marse,Marse,31,5034,0,0,0,1,211,252,0,5,1,31,25,5,52,30,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1552,G_MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,33,6300,0,0,0,1,250,305,1,20,1,52,15,10,62,15,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1553,G_MYST,Myst,Myst,38,3745,0,0,0,1,365,445,0,40,1,38,18,0,53,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1554,G_NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,78,22605,0,0,0,1,757,1007,37,37,1,76,55,60,76,54,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1555,G_PARASITE,Parasite,Parasite,49,5188,0,0,0,8,215,430,10,19,1,40,30,30,90,50,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1556,G_POISON_TOAD,Poison Toad,Poisonous Toad,46,6629,0,0,0,3,288,408,5,10,20,34,19,14,66,55,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1557,G_ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,25,1209,0,0,0,10,109,137,4,34,1,62,45,26,55,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1558,G_SAND_MAN,Sandman,Sandman,34,3413,0,0,0,1,180,205,10,25,24,34,58,38,60,5,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1559,G_SCORPION,Scorpion,Scorpion,24,1109,0,0,0,1,80,135,30,0,1,24,24,5,52,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1560,G_SHINOBI,Shinobi,Shinobi,69,12700,0,0,0,2,460,1410,34,21,85,85,25,25,100,100,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1561,G_SMOKIE,Smokie,Smokie,18,641,0,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1562,G_SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,29,2334,0,0,0,1,221,245,10,15,1,15,22,5,40,15,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1563,G_TENGU,Tengu,Tengu,65,16940,0,0,0,2,660,980,12,82,90,42,69,45,78,80,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1564,G_WICKED_NYMPH,Wicked Nymph,Evil Nymph,63,16029,0,0,0,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1565,G_WILD_GINSENG,Wild Ginseng,Hermit Plant,46,6900,0,0,0,1,220,280,10,20,13,42,36,55,66,30,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1566,G_WRAITH_DEAD,Wraith Dead,Wraith Dead,74,43021,0,0,0,2,1366,1626,25,30,5,99,55,75,115,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1567,G_ANCIENT_WORM,Ancient Worm,Ancient Worm,67,22598,0,0,0,1,948,1115,35,30,5,35,56,55,81,72,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1568,G_ANGELING,Angeling,Angeling,20,55000,0,0,0,1,120,195,0,70,1,50,20,75,68,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1569,G_BLOODY_KNIGHT,Bloody Knight,Bloody Knight,82,57870,0,0,0,3,2150,3030,60,50,88,75,70,77,125,55,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1570,G_CRAMP,Cramp,Cramp,56,4720,0,0,0,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1571,G_DEVIACE,Deviace,Deviace,47,19192,0,0,0,1,514,674,10,20,1,47,62,48,62,25,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1572,G_DROPS,Drops,Drops,3,55,0,0,0,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1573,G_ELDER,Elder,Elder,64,21592,0,0,0,3,421,560,45,68,1,76,68,108,72,86,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1574,G_ELDER_WILOW,Elder Willow,Elder Willow,20,693,0,0,0,1,58,70,10,30,1,20,25,35,38,30,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1575,G_FLORA,Flora,Flora,26,2092,0,0,0,3,242,273,10,35,1,26,35,5,43,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1576,G_GHOSTRING,Ghostring,Ghostring,18,73300,0,0,0,1,82,122,0,60,40,27,18,45,72,30,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1577,G_GOBLIN_ARCHER,Goblin Archer,Goblin Archer,28,1750,0,0,0,9,89,113,0,0,10,15,20,15,72,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1578,G_HORONG,Horong,Horong,34,1939,0,0,0,1,275,327,99,50,1,34,10,0,50,0,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1579,G_HYDRA,Hydra,Hydra,14,660,0,0,0,7,22,28,0,40,1,14,14,0,40,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1580,G_INCUBUS,Incubus,Incubus,75,17281,0,0,0,2,1408,1873,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1581,G_VOCAL,Vocal,Vocal,18,3016,0,0,0,1,71,82,10,30,77,28,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1582,DEVILING,Deviling,Deviling,31,64500,0,211,412,1,135,270,5,70,30,50,20,75,77,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1 -1583,TAO_GUNKA,Tao Gunka,Tao Gunka,70,193000,0,59175,10445,2,1450,1770,20,20,1,85,78,35,140,60,10,12,2,6,60,0x37B5,150,1020,288,144,29587,10000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,1002,1000,2231,5,0,0,0,0,4302,1 +1512,HYEGUN,Hyegun,Yao Jun,56,9981,0,2199,1022,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,0,0,0,0,0,0,0,0,4328,1 +1513,CIVIL_SERVANT,Civil Servant,Mao Guai,62,14390,0,4023,2750,2,650,1010,42,5,58,15,20,60,80,50,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1 +1514,DANCING_DRAGON,Dancing Dragon,Zhu Po Long,54,9136,0,3030,769,2,550,789,39,10,55,62,55,25,72,22,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1 +1515,GARM_BABY,Garm Baby,Garm Baby,61,20199,0,1022,2980,1,680,1179,34,13,45,30,56,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1 +1516,INCREASE_SOIL,Increase Soil,Mi Gao,51,8230,0,2760,2110,1,560,700,30,12,40,45,23,12,69,12,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1 +1517,LI_ME_MANG_RYANG,Li Me Mang Ryang,Jing Guai,48,5920,0,1643,1643,1,434,633,23,16,46,51,19,8,57,30,10,12,1,6,62,0x3985,165,1120,576,420,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1 +1518,BACSOJIN,Bacsojin,White Lady,72,56380,0,5590,1659,2,560,1446,10,15,38,65,34,80,102,35,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,0,0,2234,1,0,0,0,0 +1519,CHUNG_E,Chung E,Green Maiden,49,23900,0,2396,993,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,12395,20,5024,50,0,0,5042,2,0,0,0,0 +1520,BOILED_RICE,Boiled Rice,Boiled Rice,15,400,0,84,45,1,49,82,0,10,1,14,14,0,19,15,10,12,1,3,21,0x81,170,1152,672,672,0,0,0,0,0,0,0,564,5500,7272,3000,7194,1000,7198,1000,0,0,0,0,0,0,0,0,0,0,0,0 +1521,G_ALICE,Alice,Alice,62,10000,0,0,0,1,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,0x91,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1522,G_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,64,40599,0,0,0,1,836,1129,27,27,28,19,32,5,83,35,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1523,G_ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,47,3852,0,0,0,10,289,336,10,10,15,35,29,15,120,42,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1524,G_BABY_LEOPARD,Baby Leopard,Baby Leopard,32,2590,0,0,0,2,155,207,0,5,20,44,20,4,49,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1525,G_BATHORY,Bathory,Bathory,44,5415,0,0,0,1,198,398,0,60,1,76,24,85,65,15,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1526,G_BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,55,8082,0,0,0,3,121,342,5,23,1,59,14,55,68,15,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1527,G_C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,63,18600,0,0,0,3,880,1180,35,30,1,75,20,64,75,60,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1528,G_CLOCK,Clock,Clock,60,11050,0,0,0,1,720,909,15,10,1,70,50,25,90,50,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1529,G_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,73,254993,0,0,0,3,1433,2210,25,55,70,83,62,80,164,88,10,12,2,2,68,0x37B5,200,588,816,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1530,G_DRACULA,Dracula,Dracula,85,320096,0,0,0,3,1625,1890,45,76,1,95,90,87,85,100,10,12,2,6,87,0x37B5,145,1290,1140,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1531,G_EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,56,10392,0,0,0,10,311,333,25,59,1,20,18,50,136,11,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1532,G_EXPLOSION,Explosion,Explosion,46,8054,0,0,0,1,336,447,35,27,1,61,56,50,66,38,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1533,G_FUR_SEAL,Fur Seal,Seal,63,9114,0,0,0,1,845,1203,25,33,5,28,22,15,69,84,10,12,1,2,21,0x3095,200,1612,622,583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1534,G_GOBLIN_1,Goblin,Goblin,25,1176,0,0,0,1,118,140,10,5,1,53,25,20,38,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1535,G_GOBLIN_2,Goblin,Goblin,24,1034,0,0,0,1,88,100,10,5,1,24,24,15,66,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1536,G_GOBLIN_3,Goblin,Goblin,24,1034,0,0,0,1,132,165,10,5,1,24,24,15,24,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1537,G_GOBLIN_4,Goblin,Goblin,23,1359,0,0,0,1,109,131,10,5,1,23,46,15,36,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1538,G_GOBLIN_5,Goblin,Goblin,22,1952,0,0,0,1,105,127,10,5,1,22,22,15,32,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1539,G_GOBLIN_LEADER,Goblin Leader,Goblin Leader,64,20152,0,0,0,1,663,752,48,16,5,55,37,30,69,58,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1540,G_GOLEM,Golem,Golem,25,3900,0,0,0,1,175,187,40,0,1,15,25,0,15,0,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1541,G_GREATEST_GENERAL,Greatest General,Greatest General,40,3632,0,0,0,3,350,400,15,15,1,20,60,55,82,140,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1542,G_INCANTATION_SAMURA,Incantation Samurai,Incantation Samurai,71,218652,0,0,0,3,1219,2169,10,51,91,85,78,85,150,60,10,12,2,7,67,0x37B5,135,874,1344,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1543,G_KAPHA,Kapha,Kapha,41,7892,0,0,0,3,399,719,20,38,1,51,49,22,73,45,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1544,G_KARAKASA,Karakasa,Karakasa,30,3092,0,0,0,1,141,183,1,5,1,45,12,20,49,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1545,G_KOBOLD_1,Kobold,Kobold,36,3893,0,0,0,1,265,318,15,10,1,90,36,30,52,20,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1546,G_KOBOLD_2,Kobold,Kobold,31,2179,0,0,0,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1547,G_KOBOLD_3,Kobold,Kobold,31,2179,0,0,0,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1548,G_KOBOLD_LEADER,Kobold Leader,Kobold Leader,65,18313,0,0,0,1,649,958,37,37,5,90,36,30,77,59,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1549,G_LAVA_GOLEM,Lava Golem,Lava Golem,77,24324,0,0,0,1,1541,2049,65,50,1,57,115,70,76,68,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1550,G_LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,53,8905,0,0,0,7,301,351,10,38,72,45,35,39,80,5,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1551,G_MARSE,Marse,Marse,31,5034,0,0,0,1,211,252,0,5,1,31,25,5,52,30,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1552,G_MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,33,6300,0,0,0,1,250,305,1,20,1,52,15,10,62,15,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1553,G_MYST,Myst,Myst,38,3745,0,0,0,1,365,445,0,40,1,38,18,0,53,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1554,G_NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,78,22605,0,0,0,1,757,1007,37,37,1,76,55,60,76,54,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1555,G_PARASITE,Parasite,Parasite,49,5188,0,0,0,8,215,430,10,19,1,40,30,30,90,50,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1556,G_POISON_TOAD,Poison Toad,Poisonous Toad,46,6629,0,0,0,3,288,408,5,10,20,34,19,14,66,55,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1557,G_ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,25,1209,0,0,0,10,109,137,4,34,1,62,45,26,55,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1558,G_SAND_MAN,Sandman,Sandman,34,3413,0,0,0,1,180,205,10,25,24,34,58,38,60,5,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1559,G_SCORPION,Scorpion,Scorpion,24,1109,0,0,0,1,80,135,30,0,1,24,24,5,52,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1560,G_SHINOBI,Shinobi,Shinobi,69,12700,0,0,0,2,460,1410,34,21,85,85,25,25,100,100,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1561,G_SMOKIE,Smokie,Smokie,18,641,0,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1562,G_SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,29,2334,0,0,0,1,221,245,10,15,1,15,22,5,40,15,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1563,G_TENGU,Tengu,Tengu,65,16940,0,0,0,2,660,980,12,82,90,42,69,45,78,80,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1564,G_WICKED_NYMPH,Wicked Nymph,Evil Nymph,63,16029,0,0,0,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1565,G_WILD_GINSENG,Wild Ginseng,Hermit Plant,46,6900,0,0,0,1,220,280,10,20,13,42,36,55,66,30,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1566,G_WRAITH_DEAD,Wraith Dead,Wraith Dead,74,43021,0,0,0,2,1366,1626,25,30,5,99,55,75,115,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1567,G_ANCIENT_WORM,Ancient Worm,Ancient Worm,67,22598,0,0,0,1,948,1115,35,30,5,35,56,55,81,72,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1568,G_ANGELING,Angeling,Angeling,20,55000,0,0,0,1,120,195,0,70,1,50,20,75,68,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1569,G_BLOODY_KNIGHT,Bloody Knight,Bloody Knight,82,57870,0,0,0,3,2150,3030,60,50,88,75,70,77,125,55,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1570,G_CRAMP,Cramp,Cramp,56,4720,0,0,0,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1571,G_DEVIACE,Deviace,Deviace,47,19192,0,0,0,1,514,674,10,20,1,47,62,48,62,25,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1572,G_DROPS,Drops,Drops,3,55,0,0,0,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1573,G_ELDER,Elder,Elder,64,21592,0,0,0,3,421,560,45,68,1,76,68,108,72,86,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1574,G_ELDER_WILOW,Elder Willow,Elder Willow,20,693,0,0,0,1,58,70,10,30,1,20,25,35,38,30,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1575,G_FLORA,Flora,Flora,26,2092,0,0,0,3,242,273,10,35,1,26,35,5,43,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1576,G_GHOSTRING,Ghostring,Ghostring,18,73300,0,0,0,1,82,122,0,60,40,27,18,45,72,30,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1577,G_GOBLIN_ARCHER,Goblin Archer,Goblin Archer,28,1750,0,0,0,9,89,113,0,0,10,15,20,15,72,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1578,G_HORONG,Horong,Horong,34,1939,0,0,0,1,275,327,99,50,1,34,10,0,50,0,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1579,G_HYDRA,Hydra,Hydra,14,660,0,0,0,7,22,28,0,40,1,14,14,0,40,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1580,G_INCUBUS,Incubus,Incubus,75,17281,0,0,0,2,1408,1873,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1581,G_VOCAL,Vocal,Vocal,18,3016,0,0,0,1,71,82,10,30,77,28,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1582,DEVILING,Deviling,Deviling,31,64500,0,211,412,1,135,270,5,70,30,50,20,75,77,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1 +1583,TAO_GUNKA,Tao Gunka,Tao Gunka,70,193000,0,59175,10445,2,1450,1770,20,20,1,85,78,35,140,60,10,12,2,6,60,0x37B5,150,1020,288,144,29587,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,1002,1000,2231,5,0,0,0,0,4302,1 //Ayothaya -1584,TAMRUAN,Tamruan,Tamruan,52,10234,0,3812,55,1,489,534,15,35,80,62,38,75,72,15,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,0,0,0,0,0,0,0,0,4304,1 -1585,MIME_MONKEY,Mime Monkey,Mime Monkey,40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0 -1586,LEAF_CAT,Leaf Cat,Leaf Cat,38,2396,0,165,1212,1,266,307,5,19,25,67,12,45,60,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1 -1587,KRABEN,Kraben,Kraben,50,5880,0,206,1322,1,125,765,5,42,50,125,1,66,75,50,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1 +1584,TAMRUAN,Tamruan,Tamruan,52,10234,0,3812,55,1,489,534,15,35,80,62,38,75,72,15,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,0,0,0,0,0,0,0,0,4304,1 +1585,MIME_MONKEY,Mime Monkey,Mime Monkey,40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0 +1586,LEAF_CAT,Leaf Cat,Leaf Cat,38,2396,0,165,1212,1,266,307,5,19,25,67,12,45,60,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1 +1587,KRABEN,Kraben,Kraben,50,5880,0,206,1322,1,125,765,5,42,50,125,1,66,75,50,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1 //Some more G_Mobs and Xmas_Orc -1588,ORC_XMAS,Christmas Orc,Christmas Orc,24,1400,0,261,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1 -1589,G_MANDRAGORA,Mandragora,Mandragora,12,405,0,0,0,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1590,G_GEOGRAPHER,Geographer,Geographer,56,8071,0,0,0,3,467,621,28,26,1,66,47,60,68,44,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1591,A_LUNATIC,Lunatic,Lunatic,29,2334,0,0,0,1,221,245,10,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1592,A_MOBSTER,Gangster,Gangster,40,8000,0,0,0,1,300,355,20,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0 -1593,A_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,52,8613,0,0,0,1,830,930,40,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1594,G_FREEZER,Freezer,Freezer,72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1595,G_MARIN,Marin,Marin,15,742,0,0,0,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1596,G_TAMRUAN,Tamruan,Tamruan,52,10234,0,0,0,1,489,534,15,35,80,62,38,75,72,15,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1597,G_GARGOYLE,Gargoyle,Gargoyle,48,3950,0,0,0,9,290,360,10,10,15,61,20,20,126,40,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1598,G_BLAZZER,Blazzer,Blazzer,43,8252,0,0,0,2,533,709,50,40,1,52,50,39,69,40,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1599,G_WHISPER_BOSS,Giant Whisper,Giant Whisper,34,5040,0,0,0,1,198,239,0,45,1,51,14,0,60,0,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1600,G_HEATER,Heater,Heater,68,11020,0,0,0,2,683,1008,40,42,69,47,25,5,71,100,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1601,G_PERMETER,Permeter,Permeter,63,8228,0,0,0,2,943,1211,46,45,69,59,60,5,69,100,10,12,1,2,40,0x3695,250,1100,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1602,G_SOLIDER,Solider,Solider,70,12099,0,0,0,2,797,979,57,43,69,35,85,5,74,100,10,12,1,2,42,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1603,G_BIGFOOT,Bigfoot,Bigfoot,25,1619,0,0,0,1,198,220,10,0,1,25,55,15,20,25,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1604,G_GIANT_HONET,Giant Hornet,Giant Hornet,56,13105,0,0,0,1,650,852,38,43,35,38,32,10,71,64,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1605,G_DARK_ILLUSION,Dark Illusion,Dark Illusion,77,103631,0,0,0,2,1300,1983,64,70,5,100,40,100,97,40,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1606,G_GARM_BABY,Garm Baby,Garm Baby,61,20199,0,0,0,1,680,1179,34,13,45,30,56,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1607,G_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,0,0,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1608,G_THIEF_BUG__,Thief Bug Male,Thief Bug Male,19,583,0,0,0,1,76,88,15,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1609,G_DANCING_DRAGON,Dancing Dragon,Zhu Po Long,54,9136,0,3030,769,2,550,789,39,10,55,62,55,25,72,22,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,668,100,0,0,0,0 -1610,A_MUNAK,Munak,Munak,30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0 -1611,A_BON_GUN,Bongun,Bongun,32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0 -1612,A_HYEGUN,Hyegun,Yao Jun,56,9981,0,0,0,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0 +1588,ORC_XMAS,Christmas Orc,Christmas Orc,24,1400,0,261,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1 +1589,G_MANDRAGORA,Mandragora,Mandragora,12,405,0,0,0,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1590,G_GEOGRAPHER,Geographer,Geographer,56,8071,0,0,0,3,467,621,28,26,1,66,47,60,68,44,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1591,A_LUNATIC,Lunatic,Lunatic,29,2334,0,0,0,1,221,245,10,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1592,A_MOBSTER,Gangster,Gangster,40,8000,0,0,0,1,300,355,20,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0 +1593,A_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,52,8613,0,0,0,1,830,930,40,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1594,G_FREEZER,Freezer,Freezer,72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1595,G_MARIN,Marin,Marin,15,742,0,0,0,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1596,G_TAMRUAN,Tamruan,Tamruan,52,10234,0,0,0,1,489,534,15,35,80,62,38,75,72,15,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1597,G_GARGOYLE,Gargoyle,Gargoyle,48,3950,0,0,0,9,290,360,10,10,15,61,20,20,126,40,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1598,G_BLAZZER,Blazzer,Blazzer,43,8252,0,0,0,2,533,709,50,40,1,52,50,39,69,40,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1599,G_WHISPER_BOSS,Giant Whisper,Giant Whisper,34,5040,0,0,0,1,198,239,0,45,1,51,14,0,60,0,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1600,G_HEATER,Heater,Heater,68,11020,0,0,0,2,683,1008,40,42,69,47,25,5,71,100,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1601,G_PERMETER,Permeter,Permeter,63,8228,0,0,0,2,943,1211,46,45,69,59,60,5,69,100,10,12,1,2,40,0x3695,250,1100,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1602,G_SOLIDER,Solider,Solider,70,12099,0,0,0,2,797,979,57,43,69,35,85,5,74,100,10,12,1,2,42,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1603,G_BIGFOOT,Bigfoot,Bigfoot,25,1619,0,0,0,1,198,220,10,0,1,25,55,15,20,25,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1604,G_GIANT_HONET,Giant Hornet,Giant Hornet,56,13105,0,0,0,1,650,852,38,43,35,38,32,10,71,64,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1605,G_DARK_ILLUSION,Dark Illusion,Dark Illusion,77,103631,0,0,0,2,1300,1983,64,70,5,100,40,100,97,40,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1606,G_GARM_BABY,Garm Baby,Garm Baby,61,20199,0,0,0,1,680,1179,34,13,45,30,56,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1607,G_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,0,0,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1608,G_THIEF_BUG__,Thief Bug Male,Thief Bug Male,19,583,0,0,0,1,76,88,15,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1609,G_DANCING_DRAGON,Dancing Dragon,Zhu Po Long,54,9136,0,3030,769,2,550,789,39,10,55,62,55,25,72,22,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,668,100,0,0,0,0 +1610,A_MUNAK,Munak,Munak,30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0 +1611,A_BON_GUN,Bongun,Bongun,32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0 +1612,A_HYEGUN,Hyegun,Yao Jun,56,9981,0,0,0,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0 //Einbroch -1613,METALING,Metaling,Metaling,26,889,0,492,249,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1 -1614,MINERAL,Mineral,Mineral,56,7950,0,3563,1768,1,723,812,29,35,60,52,35,21,67,32,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1 -1615,OBSIDIAN,Obsidian,Obsidian,50,8812,0,2799,1802,1,841,980,35,5,62,32,42,24,61,55,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1 -1616,PITMAN,Pitman,Pitman,43,5015,0,1799,1083,1,290,486,22,26,0,15,5,5,52,36,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,0,7318,3000,7319,500,998,800,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1 -1617,WASTE_STOVE,Waste Stove,Old Stove,68,15895,0,4412,1135,1,692,1081,23,10,20,69,55,5,59,77,10,12,2,0,20,0x3885,300,1152,528,360,0,0,0,0,0,0,0,0,7323,1000,7068,1000,998,500,625,50,1002,1000,604,50,7319,3800,0,0,0,0,4332,1 -1618,UNGOLIANT,Ungoliant,Ungoliant,69,29140,0,8211,142,1,1290,2280,25,25,33,52,57,25,119,43,10,12,2,4,45,0x3795,350,420,576,420,0,0,0,0,0,0,0,0,7316,4500,1014,3500,1013,1000,7289,1500,7326,2500,718,1500,2406,500,0,0,0,0,4336,1 -1619,PORCELLIO,Porcellio,Porcellio,28,1654,0,512,346,1,82,247,0,8,0,31,21,50,54,85,10,12,0,4,62,0x183,150,720,360,360,0,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1 -1620,NOXIOUS,Noxious,Noxious,35,2038,0,698,698,1,299,400,0,60,12,41,10,30,44,2,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,0,0,0,0,603,1,0,0,0,0,4334,1 -1621,VENOMOUS,Venomous,Venomous,42,4653,0,1780,1280,1,422,844,0,49,12,60,17,19,60,1,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,0,0,0,0,603,1,0,0,0,0,4333,1 -1622,TEDDY_BEAR,Teddy Bear,Teddy Bear,71,8109,0,5891,3455,1,621,1432,19,32,5,155,32,41,121,26,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1 -1623,RSX_0806,RSX 0806,RSX-0806,86,560733,0,31010,32011,1,2740,5620,39,41,85,51,30,25,93,84,10,12,2,0,60,0x37B5,220,128,1104,240,15505,10000,607,5500,5104,3500,732,5500,7093,6000,1230,10,13017,1,617,1000,7327,5000,1242,50,1531,20,0,0,0,0,4342,1 -1624,G_WASTE_STOVE,Waste Stove,Old Stove,68,15895,0,0,0,1,500,889,23,10,20,69,55,5,79,77,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1625,G_PORCELLIO,Porcellio,Porcellio,43,5523,0,1024,693,1,164,494,0,8,0,31,21,50,64,85,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1613,METALING,Metaling,Metaling,26,889,0,492,249,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1 +1614,MINERAL,Mineral,Mineral,56,7950,0,3563,1768,1,723,812,29,35,60,52,35,21,67,32,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1 +1615,OBSIDIAN,Obsidian,Obsidian,50,8812,0,2799,1802,1,841,980,35,5,62,32,42,24,61,55,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1 +1616,PITMAN,Pitman,Pitman,43,5015,0,1799,1083,1,290,486,22,26,0,15,5,5,52,36,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,7318,3000,7319,500,998,800,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1 +1617,WASTE_STOVE,Waste Stove,Old Stove,68,15895,0,4412,1135,1,692,1081,23,10,20,69,55,5,59,77,10,12,2,0,20,0x3885,300,1152,528,360,0,0,0,0,0,0,0,7323,1000,7068,1000,998,500,625,50,1002,1000,604,50,7319,3800,0,0,0,0,4332,1 +1618,UNGOLIANT,Ungoliant,Ungoliant,69,29140,0,8211,142,1,1290,2280,25,25,33,52,57,25,119,43,10,12,2,4,45,0x3795,350,420,576,420,0,0,0,0,0,0,0,7316,4500,1014,3500,1013,1000,7289,1500,7326,2500,718,1500,2406,500,0,0,0,0,4336,1 +1619,PORCELLIO,Porcellio,Porcellio,28,1654,0,512,346,1,82,247,0,8,0,31,21,50,54,85,10,12,0,4,62,0x183,150,720,360,360,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1 +1620,NOXIOUS,Noxious,Noxious,35,2038,0,698,698,1,299,400,0,60,12,41,10,30,44,2,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,0,0,0,0,603,1,0,0,0,0,4334,1 +1621,VENOMOUS,Venomous,Venomous,42,4653,0,1780,1280,1,422,844,0,49,12,60,17,19,60,1,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,0,0,0,0,603,1,0,0,0,0,4333,1 +1622,TEDDY_BEAR,Teddy Bear,Teddy Bear,71,8109,0,5891,3455,1,621,1432,19,32,5,155,32,41,121,26,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1 +1623,RSX_0806,RSX 0806,RSX-0806,86,560733,0,31010,32011,1,2740,5620,39,41,85,51,30,25,93,84,10,12,2,0,60,0x37B5,220,128,1104,240,15505,607,5500,5104,3500,732,5500,7093,6000,1230,10,13017,1,617,1000,7327,5000,1242,50,1531,20,0,0,0,0,4342,1 +1624,G_WASTE_STOVE,Waste Stove,Old Stove,68,15895,0,0,0,1,500,889,23,10,20,69,55,5,79,77,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1625,G_PORCELLIO,Porcellio,Porcellio,43,5523,0,1024,693,1,164,494,0,8,0,31,21,50,64,85,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Hellion Revenant -1626,G_DARK_PRIEST,Hellion Revenant,Hellion Revenant,88,286900,0,1,1,2,50,3150,25,50,1,80,50,99,130,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0 +1626,G_DARK_PRIEST,Hellion Revenant,Hellion Revenant,88,286900,0,1,1,2,50,3150,25,50,1,80,50,99,130,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0 //Lighthalzen -1627,ANOPHELES,Anopheles,Anopheles,23,100,0,99,55,1,48,63,0,90,1,200,4,5,120,5,10,12,0,4,64,0x3985,200,140,864,430,0,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1 -1628,MOLE,Mole,Holden,36,2209,0,268,172,9,52,63,0,5,24,18,23,30,45,5,10,12,0,2,42,0x1089,300,140,960,504,0,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1 -1629,HILL_WIND,Hill Wind,Hill Wind,43,3189,0,1800,1100,3,290,480,10,15,21,42,31,50,41,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1 -1630,BACSOJIN_,Bacsojin,White Lady,85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x39A5,130,576,960,480,22625,10000,607,5500,2513,2000,617,5000,1020,5500,603,5000,12395,50,7165,3000,7166,1000,2700,100,2234,10,0,0,0,0,4372,1 -1631,CHUNG_E_,Chung E,Green Maiden,59,23900,0,4256,920,2,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,12395,10,0,0,5042,50,0,0,0,0,4373,1 -1632,GREMLIN,Gremlin,Gremlin,53,9280,0,4355,1768,1,329,762,29,25,80,41,59,75,62,15,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1 -1633,BEHOLDER,Beholder,Beholder,56,7950,0,4821,3822,6,723,812,17,30,60,62,25,59,85,32,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1 +1627,ANOPHELES,Anopheles,Anopheles,23,100,0,99,55,1,48,63,0,90,1,200,4,5,120,5,10,12,0,4,64,0x3985,200,140,864,430,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1 +1628,MOLE,Mole,Holden,36,2209,0,268,172,9,52,63,0,5,24,18,23,30,45,5,10,12,0,2,42,0x1089,300,140,960,504,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1 +1629,HILL_WIND,Hill Wind,Hill Wind,43,3189,0,1800,1100,3,290,480,10,15,21,42,31,50,41,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1 +1630,BACSOJIN_,Bacsojin,White Lady,85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x39A5,130,576,960,480,22625,607,5500,2513,2000,617,5000,1020,5500,603,5000,12395,50,7165,3000,7166,1000,2700,100,2234,10,0,0,0,0,4372,1 +1631,CHUNG_E_,Chung E,Green Maiden,59,23900,0,4256,920,2,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,12395,10,0,0,5042,50,0,0,0,0,4373,1 +1632,GREMLIN,Gremlin,Gremlin,53,9280,0,4355,1768,1,329,762,29,25,80,41,59,75,62,15,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1 +1633,BEHOLDER,Beholder,Beholder,56,7950,0,4821,3822,6,723,812,17,30,60,62,25,59,85,32,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1 //Normal advanced class mobs -1634,SEYREN,Seyren,Seyren Windsor,91,88402,0,100000,116460,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,603,30,2229,12,2317,1,13421,1,0,0,0,0,4358,1 -1635,EREMES,Eremes,Eremes Guile,87,60199,0,100000,99800,1,2020,2320,23,12,45,138,31,19,99,30,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,0,7347,2000,1284,1,2514,1,1262,3,1264,30,678,110,2336,2,0,0,0,0,4360,1 -1636,HARWORD,Harword,Howard Alt-Eisen,83,78690,0,100000,112540,1,1890,2390,59,10,90,62,99,35,98,66,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,2514,1,1311,1,1361,110,2104,10,2318,1,603,50,0,0,0,0,4362,1 -1637,MAGALETA,Magaleta,Margaretha Sorin,90,61282,0,100000,117800,1,1300,2053,35,60,1,9,97,145,88,40,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,0,7347,2000,1647,2,1602,200,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1 -1638,SHECIL,Shecil,Cecil Damon,82,58900,0,100000,118260,14,1226,1854,25,15,1,145,27,32,134,80,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,603,50,1745,1,0,0,0,0,4368,1 -1639,KATRINN,Katrinn,Kathryne Keyron,92,47280,0,100000,116470,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,7345,3000,603,50,1646,1,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1 +1634,SEYREN,Seyren,Seyren Windsor,91,88402,0,100000,116460,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,603,30,2229,12,2317,1,13421,1,0,0,0,0,4358,1 +1635,EREMES,Eremes,Eremes Guile,87,60199,0,100000,99800,1,2020,2320,23,12,45,138,31,19,99,30,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,1284,1,2514,1,1262,3,1264,30,678,110,2336,2,0,0,0,0,4360,1 +1636,HARWORD,Harword,Howard Alt-Eisen,83,78690,0,100000,112540,1,1890,2390,59,10,90,62,99,35,98,66,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,2514,1,1311,1,1361,110,2104,10,2318,1,603,50,0,0,0,0,4362,1 +1637,MAGALETA,Magaleta,Margaretha Sorin,90,61282,0,100000,117800,1,1300,2053,35,60,1,9,97,145,88,40,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,1647,2,1602,200,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1 +1638,SHECIL,Shecil,Cecil Damon,82,58900,0,100000,118260,14,1226,1854,25,15,1,145,27,32,134,80,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,603,50,1745,1,0,0,0,0,4368,1 +1639,KATRINN,Katrinn,Kathryne Keyron,92,47280,0,100000,116470,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,603,50,1646,1,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1 //MVP Slaves -1640,G_SEYREN,Lord Knight Seyren,Lord Knight Seyren,99,347590,0,18000,10000,1,4238,5040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 -1641,G_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,99,211230,0,18000,10000,1,3189,5289,27,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 -1642,G_HARWORD,Whitesmith Harword,Whitesmith Howard,99,310000,0,18000,10000,1,4822,5033,66,36,100,73,112,35,136,60,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 -1643,G_MAGALETA,High Priest Magaleta,High Priest Margaretha,99,182910,0,18000,10000,1,1688,2580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 -1644,G_SHECIL,Sniper Shecil,Sniper Cecil,99,209000,0,18000,10000,14,1892,5113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 -1645,G_KATRINN,High Wizard Katrinn,High Wizard Kathryne,99,189920,0,18000,10000,1,497,2094,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 +1640,G_SEYREN,Lord Knight Seyren,Lord Knight Seyren,99,347590,0,18000,10000,1,4238,5040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 +1641,G_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,99,211230,0,18000,10000,1,3189,5289,27,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 +1642,G_HARWORD,Whitesmith Harword,Whitesmith Howard,99,310000,0,18000,10000,1,4822,5033,66,36,100,73,112,35,136,60,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 +1643,G_MAGALETA,High Priest Magaleta,High Priest Margaretha,99,182910,0,18000,10000,1,1688,2580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 +1644,G_SHECIL,Sniper Shecil,Sniper Cecil,99,209000,0,18000,10000,14,1892,5113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 +1645,G_KATRINN,High Wizard Katrinn,High Wizard Kathryne,99,189920,0,18000,10000,1,497,2094,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0 //MVP Monsters -1646,B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,99,1647590,0,4835600,1569970,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,2417800,10000,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1 -1647,B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,99,1411230,0,4083400,1592380,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,2041700,10000,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1 -1648,B_HARWORD,Whitesmith Harword,Whitesmith Howard,99,1460000,0,4002340,1421000,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,2001170,10000,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1 -1649,B_MAGALETA,High Priest Magaleta,High Priest Margaretha,99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,2128500,10000,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1 -1650,B_SHECIL,Sniper Shecil,Sniper Cecil,99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,2046500,10000,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1 -1651,B_KATRINN,High Wizard Katrinn,High Wizard Kathryne,99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,2004100,10000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1 +1646,B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,99,1647590,0,4835600,1569970,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,2417800,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1 +1647,B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,99,1411230,0,4083400,1592380,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,2041700,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1 +1648,B_HARWORD,Whitesmith Harword,Whitesmith Howard,99,1460000,0,4002340,1421000,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,2001170,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1 +1649,B_MAGALETA,High Priest Magaleta,High Priest Margaretha,99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,2128500,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1 +1650,B_SHECIL,Sniper Shecil,Sniper Cecil,99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,2046500,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1 +1651,B_KATRINN,High Wizard Katrinn,High Wizard Kathryne,99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,2004100,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1 //1'st Class Mobs -1652,YGNIZEM,Ygnizem,Egnigem Cenia,58,11200,0,4870,98,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1 -1653,WHIKEBAIN,Whikebain,Wickebine Tres,62,7320,0,4204,21,1,693,889,9,8,1,102,34,20,83,30,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,2,13004,10,0,0,0,0,4348,1 -1654,ARMAIA,Armaia,Armeyer Dinze,66,7110,0,4008,35,1,750,913,42,6,5,36,50,15,89,60,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1 -1655,EREND,Erend,Errende Ebecee,59,6980,0,4501,67,1,896,1159,14,30,1,31,41,93,67,30,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1 -1656,KAVAC,Kavac,Kavach Icarus,60,7899,0,4090,86,9,684,904,12,5,48,100,10,15,118,40,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1 -1657,RAWREL,Rawrel,Laurell Weinder,61,6168,0,4620,30,1,430,517,8,48,1,41,5,120,45,10,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1 +1652,YGNIZEM,Ygnizem,Egnigem Cenia,58,11200,0,4870,98,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1 +1653,WHIKEBAIN,Whikebain,Wickebine Tres,62,7320,0,4204,21,1,693,889,9,8,1,102,34,20,83,30,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,2,13004,10,0,0,0,0,4348,1 +1654,ARMAIA,Armaia,Armeyer Dinze,66,7110,0,4008,35,1,750,913,42,6,5,36,50,15,89,60,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1 +1655,EREND,Erend,Errende Ebecee,59,6980,0,4501,67,1,896,1159,14,30,1,31,41,93,67,30,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1 +1656,KAVAC,Kavac,Kavach Icarus,60,7899,0,4090,86,9,684,904,12,5,48,100,10,15,118,40,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1 +1657,RAWREL,Rawrel,Laurell Weinder,61,6168,0,4620,30,1,430,517,8,48,1,41,5,120,45,10,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1 //1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs. -1658,B_YGNIZEM,Ygnizem,Egnigem Cenia,79,214200,0,258760,86000,1,3890,5690,48,25,82,60,45,31,110,40,10,12,1,7,43,0x37B5,100,1008,864,288,129380,10000,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,0,0,0,0,4352,1 -1659,G_WHIKEBAIN,Whikebain,Wickebine Tres,62,7320,0,0,0,1,593,789,9,12,1,102,34,23,74,30,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1660,G_ARMAIA,Armaia,Armeyer Dinze,66,7110,0,0,0,1,650,813,42,6,5,36,40,15,80,60,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1661,G_EREND,Erend,Errende Ebecee,59,6980,0,0,0,1,796,1059,14,30,1,31,41,93,60,30,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1662,G_KAVAC,Kavac,Kavach Icarus,60,7899,0,0,0,9,584,804,12,5,48,100,10,20,118,40,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1663,G_RAWREL,Rawrel,Laurell Weinder,61,6168,0,0,0,1,330,417,8,48,1,41,5,100,45,10,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1658,B_YGNIZEM,Ygnizem,Egnigem Cenia,79,214200,0,258760,86000,1,3890,5690,48,25,82,60,45,31,110,40,10,12,1,7,43,0x37B5,100,1008,864,288,129380,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,0,0,0,0,4352,1 +1659,G_WHIKEBAIN,Whikebain,Wickebine Tres,62,7320,0,0,0,1,593,789,9,12,1,102,34,23,74,30,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1660,G_ARMAIA,Armaia,Armeyer Dinze,66,7110,0,0,0,1,650,813,42,6,5,36,40,15,80,60,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1661,G_EREND,Erend,Errende Ebecee,59,6980,0,0,0,1,796,1059,14,30,1,31,41,93,60,30,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1662,G_KAVAC,Kavac,Kavach Icarus,60,7899,0,0,0,9,584,804,12,5,48,100,10,20,118,40,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1663,G_RAWREL,Rawrel,Laurell Weinder,61,6168,0,0,0,1,330,417,8,48,1,41,5,100,45,10,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Juperos -1664,POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,3900,1800,9,800,900,10,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1665,POTON_CANON_1,Photon Cannon,Photon Cannon,67,7500,0,4300,2000,9,700,800,15,30,1,40,30,40,86,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0 -1666,POTON_CANON_2,Photon Cannon,Photon Cannon,64,7100,0,3100,2700,9,800,900,8,30,1,40,21,29,80,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1667,POTON_CANON_3,Photon Cannon,Photon Cannon,65,7800,0,3800,2300,9,700,800,15,30,1,40,23,30,90,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1668,ARCHDAM,Archdam,Archdam,79,25000,0,8000,5000,3,1000,2000,15,15,65,65,35,75,75,15,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1 -1669,DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1040,1880,45,28,15,35,40,15,120,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1 -1670,DIMIK_1,Dimik,Dimik,79,16000,0,6400,3500,7,1140,1980,45,28,15,88,20,20,120,40,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7352,50,999,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1 -1671,DIMIK_2,Dimik,Dimik,89,29000,0,8000,5000,5,1440,2280,45,28,15,40,30,30,150,70,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1 -1672,DIMIK_3,Dimik,Dimik,80,19000,0,5900,2800,5,1240,2080,68,28,15,30,78,20,120,30,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1 -1673,DIMIK_4,Dimik,Dimik,82,13900,0,5800,4500,5,1840,2840,45,28,15,20,20,10,120,30,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1 -1674,MONEMUS,Monemus,Monemus,88,80000,0,0,0,5,2000,3000,54,25,0,1,90,24,144,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1675,VENATU,Venatu,Venatu,77,8000,0,0,0,2,1200,1800,35,20,5,26,24,5,75,40,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1 -1676,VENATU_1,Venatu,Venatu,72,8900,0,4000,2000,2,800,1400,30,20,5,26,24,5,82,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7356,350,999,300,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1 -1677,VENATU_2,Venatu,Venatu,80,9000,0,4000,2000,2,900,1500,30,20,5,82,32,5,105,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1 -1678,VENATU_3,Venatu,Venatu,78,9500,0,4500,2000,2,800,1400,30,20,5,26,68,5,95,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1 -1679,VENATU_4,Venatu,Venatu,75,12300,0,4000,2000,2,800,1400,30,20,5,26,24,5,100,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1 -1680,HILL_WIND_1,Hill Wind,Hill Wind,45,4233,0,2132,1722,3,320,510,10,15,21,42,31,50,67,23,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1 -1681,GEMINI,Gemini-S58,Gemini-S58,72,57870,0,22024,9442,3,2150,3030,60,45,88,75,70,77,105,55,10,12,1,0,21,0x39A5,200,1872,360,864,0,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,12040,300,0,0,0,0,4354,1 -1682,REMOVAL,Removal,Remover,55,10289,0,3831,1278,1,558,797,5,20,1,20,56,35,57,20,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1 -1683,G_POTON_CANON,Photon Cannon,Photon Cannon,46,7000,0,0,0,9,560,570,5,10,1,36,36,20,56,30,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1684,G_ARCHDAM,Archdam,Archdam,57,11000,0,0,0,3,600,700,15,15,65,65,35,75,75,15,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1685,APOCALIPS_H,Vesper,Vesper,97,640700,0,200000,100000,3,4000,10000,50,54,100,50,30,70,160,150,10,12,2,2,46,0x37B5,180,504,912,432,100000,10000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1 -1686,ORC_BABY,Orc Baby,Orc Baby,21,912,0,220,220,1,135,270,10,10,30,15,10,18,35,2,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1 -1687,GREEN_IGUANA,Green Iguana,Grove,54,6444,0,2400,2050,1,550,650,0,10,1,52,64,5,98,14,10,12,1,2,42,0x83,200,720,528,432,0,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,511,1,0,0,0,0,4377,1 -1688,LADY_TANEE,Lady Tanee,Lady Tanee,89,493000,0,64995,43222,14,450,2170,20,44,1,125,48,78,210,38,10,12,2,3,64,0x1A4,100,576,432,360,32497,10000,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1 -1689,G_BACSOJIN,Bacsojin,White Lady,85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1690,G_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,12,15,0,0,0,1,0,0,100,99,1,1,1,1,1,1,10,12,1,2,42,0xC3,160,1120,552,511,0,0,0,0,0,0,0,0,12194,100,12706,300,12708,300,7888,5000,0,0,0,0,0,0,0,0,0,0,0,0 -1691,G_KRABEN,Kraben,Kraben,70,10880,0,0,0,1,125,765,5,42,50,155,1,66,112,60,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0 +1664,POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,3900,1800,9,800,900,10,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1665,POTON_CANON_1,Photon Cannon,Photon Cannon,67,7500,0,4300,2000,9,700,800,15,30,1,40,30,40,86,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0 +1666,POTON_CANON_2,Photon Cannon,Photon Cannon,64,7100,0,3100,2700,9,800,900,8,30,1,40,21,29,80,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1667,POTON_CANON_3,Photon Cannon,Photon Cannon,65,7800,0,3800,2300,9,700,800,15,30,1,40,23,30,90,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1668,ARCHDAM,Archdam,Archdam,79,25000,0,8000,5000,3,1000,2000,15,15,65,65,35,75,75,15,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1 +1669,DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1040,1880,45,28,15,35,40,15,120,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1 +1670,DIMIK_1,Dimik,Dimik,79,16000,0,6400,3500,7,1140,1980,45,28,15,88,20,20,120,40,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,999,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1 +1671,DIMIK_2,Dimik,Dimik,89,29000,0,8000,5000,5,1440,2280,45,28,15,40,30,30,150,70,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1 +1672,DIMIK_3,Dimik,Dimik,80,19000,0,5900,2800,5,1240,2080,68,28,15,30,78,20,120,30,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1 +1673,DIMIK_4,Dimik,Dimik,82,13900,0,5800,4500,5,1840,2840,45,28,15,20,20,10,120,30,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1 +1674,MONEMUS,Monemus,Monemus,88,80000,0,0,0,5,2000,3000,54,25,0,1,90,24,144,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1675,VENATU,Venatu,Venatu,77,8000,0,0,0,2,1200,1800,35,20,5,26,24,5,75,40,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1 +1676,VENATU_1,Venatu,Venatu,72,8900,0,4000,2000,2,800,1400,30,20,5,26,24,5,82,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7356,350,999,300,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1 +1677,VENATU_2,Venatu,Venatu,80,9000,0,4000,2000,2,900,1500,30,20,5,82,32,5,105,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1 +1678,VENATU_3,Venatu,Venatu,78,9500,0,4500,2000,2,800,1400,30,20,5,26,68,5,95,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1 +1679,VENATU_4,Venatu,Venatu,75,12300,0,4000,2000,2,800,1400,30,20,5,26,24,5,100,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1 +1680,HILL_WIND_1,Hill Wind,Hill Wind,45,4233,0,2132,1722,3,320,510,10,15,21,42,31,50,67,23,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1 +1681,GEMINI,Gemini-S58,Gemini-S58,72,57870,0,22024,9442,3,2150,3030,60,45,88,75,70,77,105,55,10,12,1,0,21,0x39A5,200,1872,360,864,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,12040,300,0,0,0,0,4354,1 +1682,REMOVAL,Removal,Remover,55,10289,0,3831,1278,1,558,797,5,20,1,20,56,35,57,20,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1 +1683,G_POTON_CANON,Photon Cannon,Photon Cannon,46,7000,0,0,0,9,560,570,5,10,1,36,36,20,56,30,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1684,G_ARCHDAM,Archdam,Archdam,57,11000,0,0,0,3,600,700,15,15,65,65,35,75,75,15,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1685,APOCALIPS_H,Vesper,Vesper,97,640700,0,200000,100000,3,4000,10000,50,54,100,50,30,70,160,150,10,12,2,2,46,0x37B5,180,504,912,432,100000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1 +1686,ORC_BABY,Orc Baby,Orc Baby,21,912,0,220,220,1,135,270,10,10,30,15,10,18,35,2,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1 +1687,GREEN_IGUANA,Green Iguana,Grove,54,6444,0,2400,2050,1,550,650,0,10,1,52,64,5,98,14,10,12,1,2,42,0x83,200,720,528,432,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,511,1,0,0,0,0,4377,1 +1688,LADY_TANEE,Lady Tanee,Lady Tanee,89,493000,0,64995,43222,14,450,2170,20,44,1,125,48,78,210,38,10,12,2,3,64,0x1A4,100,576,432,360,32497,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1 +1689,G_BACSOJIN,Bacsojin,White Lady,85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1690,G_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,12,15,0,0,0,1,0,0,100,99,1,1,1,1,1,1,10,12,1,2,42,0xC3,160,1120,552,511,0,0,0,0,0,0,0,12194,100,12706,300,12708,300,7888,5000,0,0,0,0,0,0,0,0,0,0,0,0 +1691,G_KRABEN,Kraben,Kraben,70,10880,0,0,0,1,125,765,5,42,50,155,1,66,112,60,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0 // Thanatos Tower & Abyss -1692,BREEZE,Breeze,Breeze,56,5099,0,2390,1340,2,94,215,7,32,1,96,6,38,91,45,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1 -1693,PLASMA_Y,Plasma,Plasma,56,8400,0,2200,2100,3,400,900,0,40,1,30,10,83,105,45,10,12,0,0,88,0x3885,100,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,0,0,0,0,0,0,0,0,4389,1 -1694,PLASMA_R,Plasma,Plasma,43,5700,0,2000,1000,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x3885,150,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1 -1695,PLASMA_G,Plasma,Plasma,47,7600,0,2000,1000,3,300,700,0,30,1,30,5,61,90,30,10,12,0,0,82,0x3885,150,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1 -1696,PLASMA_P,Plasma,Plasma,49,5900,0,2000,1000,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x3885,150,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1 -1697,PLASMA_B,Plasma,Plasma,44,8200,0,2000,1000,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x3885,150,608,1440,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1 -1698,DEATHWORD,Deathword,Death Word,65,18990,0,2986,4912,1,622,1102,10,40,50,75,10,20,140,45,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1 -1699,ANCIENT_MIMIC,Ancient Mimic,Ancient Mimic,60,8080,0,2950,2650,1,530,1697,20,40,50,100,30,40,150,110,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1 -1700,OBSERVATION,Observation,Dame of Sentinel,81,65111,0,39872,33120,2,1666,2609,55,55,30,74,56,126,145,114,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1 -1701,SHELTER,Shelter,Mistress of Shelter,80,38000,0,29010,25110,2,1871,1971,22,63,12,67,34,167,157,120,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1 -1702,RETRIBUTION,Retribution,Baroness of Retribution,79,46666,0,28332,33120,2,2022,2288,35,35,30,142,66,72,133,39,10,12,1,8,67,0x33B5,120,360,480,360,0,0,0,0,0,0,0,0,7440,400,2621,1,12040,50,723,1000,2506,5,1158,10,7442,50,0,0,0,0,4391,1 -1703,SOLACE,Solace,Lady Solace,77,25252,0,21000,25110,2,1392,1462,21,67,12,76,29,145,99,100,10,12,1,8,66,0x33B5,180,576,420,360,0,0,0,0,0,0,0,0,7441,200,2621,1,12040,50,718,1000,1910,50,1909,100,7442,50,0,0,0,0,4394,1 -1704,THA_ODIUM,Thanatos Odium,Odium of Thanatos,92,72389,0,88420,63880,9,2100,2800,68,30,100,52,165,62,185,90,10,12,2,1,88,0x37B5,100,432,288,420,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7438,10000,616,10,2520,1000,0,0,0,0,0,0,4396,1 -1705,THA_DESPERO,Thanatos Despero,Despero of Thanatos,88,86666,0,62001,51220,2,2182,3082,38,39,100,167,79,92,151,120,10,12,2,1,88,0x37B5,150,160,528,360,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,2419,1000,0,0,0,0,0,0,4397,1 -1706,THA_MAERO,Thanatos Maero,Maero of Thanatos,83,62000,0,56699,63880,2,2022,2288,29,72,100,176,30,200,122,29,10,12,1,1,88,0x37B5,150,160,480,360,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,2354,1000,0,0,0,0,0,0,4395,1 -1707,THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,83,59922,0,43200,51220,2,1392,2092,21,80,100,76,29,206,139,44,10,12,0,1,88,0x37B5,150,160,672,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,5128,1000,0,0,0,0,0,0,4398,1 -1708,THANATOS,Thanatos,Memory of Thanatos,99,445660,0,3666000,2145060,3,3812,7483,35,35,100,108,30,86,147,32,10,12,2,6,88,0x37B5,120,115,816,504,1833000,10000,617,5500,603,5000,732,2000,7444,1000,2519,1000,7450,5000,2342,5000,2412,5000,2515,1000,2655,500,0,0,0,0,4399,1 -1709,G_THA_ODIUM,Thanatos Odium,Odium of Thanatos,92,72389,0,10000,5000,9,2100,2800,68,30,100,52,165,62,185,90,10,12,2,1,88,0x33B5,100,115,288,420,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1710,G_THA_DESPERO,Thanatos Despero,Despero of Thanatos,88,86666,0,10000,5000,2,2182,3082,38,39,100,167,79,92,151,120,10,12,2,1,88,0x33B5,150,160,528,360,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1711,G_THA_MAERO,Thanatos Maero,Maero of Thanatos,83,62000,0,10000,5000,2,2022,2288,29,72,100,176,30,200,122,29,10,12,1,1,88,0x33B5,150,160,480,360,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1712,G_THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,83,59922,0,10000,5000,2,1392,2092,21,80,100,76,29,206,139,44,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1713,ACIDUS,Acidus,Acidus,80,51112,0,28043,8023,2,1289,2109,29,69,1,71,55,135,103,69,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,0,582,5100,1035,4000,7444,5,1036,3589,7448,800,1269,10,2114,50,0,0,0,0,4378,1 -1714,FERUS,Ferus,Ferus,70,29218,0,8093,3952,2,1056,1496,14,45,1,78,45,72,81,73,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,0,578,2200,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1 -1715,NOVUS,Novus,Novus,42,5430,0,1320,1002,1,284,384,20,28,1,56,43,45,124,43,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1 -1716,ACIDUS_,Acidus,Acidus,76,39111,0,14392,4203,2,1180,2000,21,47,1,78,31,93,88,52,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1 -1717,FERUS_,Ferus,Ferus,69,21182,0,6750,2230,2,930,1170,14,38,1,66,77,60,79,35,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,0,579,5100,1035,1000,0,0,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1 -1718,NOVUS_,Novus,Novus,43,5830,0,1411,1100,1,314,414,24,28,1,60,43,39,119,43,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1 -1719,DETALE,Detale,Detardeurus,90,960000,0,291850,123304,3,4560,5548,66,59,100,90,30,136,140,56,10,12,2,9,67,0x37B5,250,432,936,360,145925,10000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1 -1720,HYDRO,Hydro,Hydrolancer,89,308230,0,83450,2480,3,2554,3910,52,62,1,96,110,86,94,32,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1 -1721,DRAGON_EGG,Dragon Egg,Dragon Egg,43,18322,0,6740,0,0,1,2,78,60,1,1,56,67,1,63,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1 -1722,EVENT_JAKK,Jakk,Jakk,99,10310,0,103,100,1,115,182,5,11,1,28,18,13,35,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,0,0,0,0,5134,10000 -1723,A_SHECIL,Shecil Damon,Cecil Damon,82,30000,0,0,0,14,600,900,25,15,1,145,27,32,134,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1724,A_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,1000,1300,10,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1725,R_PORING,Poring,Poring,1,50,0,0,0,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1726,R_LUNATIC,Lunatic,Lunatic,3,60,0,0,0,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x83,150,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1727,R_SAVAGE_BABE,Savage Babe,Savage Babe,7,182,0,0,0,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x83,150,1624,624,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1728,R_DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,9,164,0,0,0,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,0x83,150,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1729,R_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,0,0,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1730,R_DEVIRUCHI,Deviruchi,Deviruchi,46,7360,0,0,0,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1731,G_DOPPELGANGER,Doppelganger,Doppelganger,72,12000000,0,3000000,2000000,1,5000,10000,99,99,88,180,70,75,180,65,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1732,G_TREASURE_BOX,Treasure Chest,Treasure Chest,98,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1692,BREEZE,Breeze,Breeze,56,5099,0,2390,1340,2,94,215,7,32,1,96,6,38,91,45,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1 +1693,PLASMA_Y,Plasma,Plasma,56,8400,0,2200,2100,3,400,900,0,40,1,30,10,83,105,45,10,12,0,0,88,0x3885,100,608,1440,576,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,0,0,0,0,0,0,0,0,4389,1 +1694,PLASMA_R,Plasma,Plasma,43,5700,0,2000,1000,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x3885,150,608,1440,576,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1 +1695,PLASMA_G,Plasma,Plasma,47,7600,0,2000,1000,3,300,700,0,30,1,30,5,61,90,30,10,12,0,0,82,0x3885,150,608,1440,576,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1 +1696,PLASMA_P,Plasma,Plasma,49,5900,0,2000,1000,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x3885,150,608,1440,576,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1 +1697,PLASMA_B,Plasma,Plasma,44,8200,0,2000,1000,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x3885,150,608,1440,576,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1 +1698,DEATHWORD,Deathword,Death Word,65,18990,0,2986,4912,1,622,1102,10,40,50,75,10,20,140,45,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1 +1699,ANCIENT_MIMIC,Ancient Mimic,Ancient Mimic,60,8080,0,2950,2650,1,530,1697,20,40,50,100,30,40,150,110,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1 +1700,OBSERVATION,Observation,Dame of Sentinel,81,65111,0,39872,33120,2,1666,2609,55,55,30,74,56,126,145,114,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1 +1701,SHELTER,Shelter,Mistress of Shelter,80,38000,0,29010,25110,2,1871,1971,22,63,12,67,34,167,157,120,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1 +1702,RETRIBUTION,Retribution,Baroness of Retribution,79,46666,0,28332,33120,2,2022,2288,35,35,30,142,66,72,133,39,10,12,1,8,67,0x33B5,120,360,480,360,0,0,0,0,0,0,0,7440,400,2621,1,12040,50,723,1000,2506,5,1158,10,7442,50,0,0,0,0,4391,1 +1703,SOLACE,Solace,Lady Solace,77,25252,0,21000,25110,2,1392,1462,21,67,12,76,29,145,99,100,10,12,1,8,66,0x33B5,180,576,420,360,0,0,0,0,0,0,0,7441,200,2621,1,12040,50,718,1000,1910,50,1909,100,7442,50,0,0,0,0,4394,1 +1704,THA_ODIUM,Thanatos Odium,Odium of Thanatos,92,72389,0,88420,63880,9,2100,2800,68,30,100,52,165,62,185,90,10,12,2,1,88,0x37B5,100,432,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7438,10000,616,10,2520,1000,0,0,0,0,0,0,4396,1 +1705,THA_DESPERO,Thanatos Despero,Despero of Thanatos,88,86666,0,62001,51220,2,2182,3082,38,39,100,167,79,92,151,120,10,12,2,1,88,0x37B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,2419,1000,0,0,0,0,0,0,4397,1 +1706,THA_MAERO,Thanatos Maero,Maero of Thanatos,83,62000,0,56699,63880,2,2022,2288,29,72,100,176,30,200,122,29,10,12,1,1,88,0x37B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,2354,1000,0,0,0,0,0,0,4395,1 +1707,THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,83,59922,0,43200,51220,2,1392,2092,21,80,100,76,29,206,139,44,10,12,0,1,88,0x37B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,5128,1000,0,0,0,0,0,0,4398,1 +1708,THANATOS,Thanatos,Memory of Thanatos,99,445660,0,3666000,2145060,3,3812,7483,35,35,100,108,30,86,147,32,10,12,2,6,88,0x37B5,120,115,816,504,1833000,617,5500,603,5000,732,2000,7444,1000,2519,1000,7450,5000,2342,5000,2412,5000,2515,1000,2655,500,0,0,0,0,4399,1 +1709,G_THA_ODIUM,Thanatos Odium,Odium of Thanatos,92,72389,0,10000,5000,9,2100,2800,68,30,100,52,165,62,185,90,10,12,2,1,88,0x33B5,100,115,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1710,G_THA_DESPERO,Thanatos Despero,Despero of Thanatos,88,86666,0,10000,5000,2,2182,3082,38,39,100,167,79,92,151,120,10,12,2,1,88,0x33B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1711,G_THA_MAERO,Thanatos Maero,Maero of Thanatos,83,62000,0,10000,5000,2,2022,2288,29,72,100,176,30,200,122,29,10,12,1,1,88,0x33B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1712,G_THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,83,59922,0,10000,5000,2,1392,2092,21,80,100,76,29,206,139,44,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1713,ACIDUS,Acidus,Acidus,80,51112,0,28043,8023,2,1289,2109,29,69,1,71,55,135,103,69,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,582,5100,1035,4000,7444,5,1036,3589,7448,800,1269,10,2114,50,0,0,0,0,4378,1 +1714,FERUS,Ferus,Ferus,70,29218,0,8093,3952,2,1056,1496,14,45,1,78,45,72,81,73,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,578,2200,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1 +1715,NOVUS,Novus,Novus,42,5430,0,1320,1002,1,284,384,20,28,1,56,43,45,124,43,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1 +1716,ACIDUS_,Acidus,Acidus,76,39111,0,14392,4203,2,1180,2000,21,47,1,78,31,93,88,52,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1 +1717,FERUS_,Ferus,Ferus,69,21182,0,6750,2230,2,930,1170,14,38,1,66,77,60,79,35,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,579,5100,1035,1000,0,0,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1 +1718,NOVUS_,Novus,Novus,43,5830,0,1411,1100,1,314,414,24,28,1,60,43,39,119,43,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1 +1719,DETALE,Detale,Detardeurus,90,960000,0,291850,123304,3,4560,5548,66,59,100,90,30,136,140,56,10,12,2,9,67,0x37B5,250,432,936,360,145925,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1 +1720,HYDRO,Hydro,Hydrolancer,89,308230,0,83450,2480,3,2554,3910,52,62,1,96,110,86,94,32,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1 +1721,DRAGON_EGG,Dragon Egg,Dragon Egg,43,18322,0,6740,0,0,1,2,78,60,1,1,56,67,1,63,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1 +1722,EVENT_JAKK,Jakk,Jakk,99,10310,0,103,100,1,115,182,5,11,1,28,18,13,35,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,0,0,0,0,5134,10000 +1723,A_SHECIL,Shecil Damon,Cecil Damon,82,30000,0,0,0,14,600,900,25,15,1,145,27,32,134,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1724,A_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,1000,1300,10,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1725,R_PORING,Poring,Poring,1,50,0,0,0,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1726,R_LUNATIC,Lunatic,Lunatic,3,60,0,0,0,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x83,150,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1727,R_SAVAGE_BABE,Savage Babe,Savage Babe,7,182,0,0,0,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x83,150,1624,624,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1728,R_DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,9,164,0,0,0,1,30,36,0,0,1,9,9,5,21,40,10,12,0,2,23,0x83,150,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1729,R_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,0,0,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1730,R_DEVIRUCHI,Deviruchi,Deviruchi,46,7360,0,0,0,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1731,G_DOPPELGANGER,Doppelganger,Doppelganger,72,12000000,0,3000000,2000000,1,5000,10000,99,99,88,180,70,75,180,65,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1732,G_TREASURE_BOX,Treasure Chest,Treasure Chest,98,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Kiel Dungeon monsters -1733,KIEL,Kiel,Kiehl,90,523000,0,36500,23405,3,1682,3311,28,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1734,KIEL_,Kiel D-01,Kiel D-01,90,1523000,0,2356200,512602,3,3280,6560,28,32,100,130,30,160,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,1178100,10000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1 -1735,ALICEL,Alicel,Alicel,75,37520,0,8890,5420,2,1800,2770,30,30,50,58,50,51,92,40,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,0,7512,2000,7507,3000,999,200,7317,500,1270,5,985,10,2517,20,0,0,0,0,4401,1 -1736,ALIOT,Aliot,Aliot,75,48290,0,13020,4006,2,950,2470,35,15,50,32,87,12,68,19,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,7317,500,1810,10,985,10,13405,15,0,0,0,0,4402,1 -1737,ALIZA,Aliza,Aliza,69,19000,0,6583,3400,1,750,1100,8,5,74,74,52,35,110,140,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1 -1738,CONSTANT,Constant,Constant,55,10000,0,3230,116,1,460,580,12,12,50,28,26,47,66,14,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0 -1739,G_ALICEL,Alicel,Alicel,75,37520,0,0,0,2,1600,2570,30,30,50,60,50,51,92,40,10,12,1,6,60,0x318D,150,1080,480,504,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1740,G_ALIOT,Aliot,Aliot,75,43290,0,0,0,2,950,2070,35,15,50,32,87,12,68,19,10,12,1,6,60,0x318D,150,1296,432,360,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1741,G_COOKIE_XMAS,Christmas Cookie,Christmas Cookie,28,2090,0,0,0,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x3885,400,1248,1248,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1742,G_CARAT,Carat,Carat,51,5200,0,0,0,1,330,417,0,25,1,41,45,5,85,155,10,12,1,6,44,0x3985,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1743,G_MYSTCASE,Myst Case,Myst Case,38,3450,0,0,0,1,160,360,5,10,65,50,25,5,48,75,10,12,1,0,60,0x3885,400,1248,1248,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1744,G_WILD_ROSE,Wild Rose,Wild Rose,38,2980,0,0,0,1,315,360,0,15,65,85,15,35,65,80,10,12,0,2,24,0x3885,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1745,G_CONSTANT,Constant,Constant,55,1000,0,0,0,1,460,580,12,12,50,28,26,47,66,14,10,12,0,6,67,0x2185,110,720,360,360,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1746,G_ALIZA,Aliza,Aliza,69,15000,0,0,0,1,750,1100,8,5,74,74,52,35,110,140,10,12,1,7,60,0x3885,200,1440,576,600,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1747,G_SNAKE,Snake,Boa,15,471,0,0,0,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1748,G_ANACONDAQ,Anacondaq,Anacondaq,23,1109,0,0,0,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1749,G_MEDUSA,Medusa,Medusa,79,22408,0,0,0,1,827,1100,48,38,1,74,50,57,77,69,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1750,G_RED_PLANT,Red Plant,Red Plant,1,100,0,0,0,1,100,200,100,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1733,KIEL,Kiel,Kiehl,90,523000,0,36500,23405,3,1682,3311,28,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1734,KIEL_,Kiel D-01,Kiel D-01,90,1523000,0,2356200,512602,3,3280,6560,28,32,100,130,30,160,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,1178100,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1 +1735,ALICEL,Alicel,Alicel,75,37520,0,8890,5420,2,1800,2770,30,30,50,58,50,51,92,40,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7512,2000,7507,3000,999,200,7317,500,1270,5,985,10,2517,20,0,0,0,0,4401,1 +1736,ALIOT,Aliot,Aliot,75,48290,0,13020,4006,2,950,2470,35,15,50,32,87,12,68,19,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,7317,500,1810,10,985,10,13405,15,0,0,0,0,4402,1 +1737,ALIZA,Aliza,Aliza,69,19000,0,6583,3400,1,750,1100,8,5,74,74,52,35,110,140,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1 +1738,CONSTANT,Constant,Constant,55,10000,0,3230,116,1,460,580,12,12,50,28,26,47,66,14,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0 +1739,G_ALICEL,Alicel,Alicel,75,37520,0,0,0,2,1600,2570,30,30,50,60,50,51,92,40,10,12,1,6,60,0x318D,150,1080,480,504,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1740,G_ALIOT,Aliot,Aliot,75,43290,0,0,0,2,950,2070,35,15,50,32,87,12,68,19,10,12,1,6,60,0x318D,150,1296,432,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1741,G_COOKIE_XMAS,Christmas Cookie,Christmas Cookie,28,2090,0,0,0,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x3885,400,1248,1248,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1742,G_CARAT,Carat,Carat,51,5200,0,0,0,1,330,417,0,25,1,41,45,5,85,155,10,12,1,6,44,0x3985,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1743,G_MYSTCASE,Myst Case,Myst Case,38,3450,0,0,0,1,160,360,5,10,65,50,25,5,48,75,10,12,1,0,60,0x3885,400,1248,1248,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1744,G_WILD_ROSE,Wild Rose,Wild Rose,38,2980,0,0,0,1,315,360,0,15,65,85,15,35,65,80,10,12,0,2,24,0x3885,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1745,G_CONSTANT,Constant,Constant,55,1000,0,0,0,1,460,580,12,12,50,28,26,47,66,14,10,12,0,6,67,0x2185,110,720,360,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1746,G_ALIZA,Aliza,Aliza,69,15000,0,0,0,1,750,1100,8,5,74,74,52,35,110,140,10,12,1,7,60,0x3885,200,1440,576,600,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1747,G_SNAKE,Snake,Boa,15,471,0,0,0,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1748,G_ANACONDAQ,Anacondaq,Anacondaq,23,1109,0,0,0,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1749,G_MEDUSA,Medusa,Medusa,79,22408,0,0,0,1,827,1100,48,38,1,74,50,57,77,69,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1750,G_RED_PLANT,Red Plant,Red Plant,1,100,0,0,0,1,100,200,100,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Odin monsters -1751,RANDGRIS,Valkyrie Randgris,Valkyrie Randgris,99,3567200,0,2854900,3114520,3,5560,9980,25,42,100,120,30,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,1427450,10000,617,5500,603,5000,616,2000,7510,5000,2357,800,2524,1500,2421,1500,2229,2500,7024,2500,0,0,0,0,0,0,4407,1 -1752,SKOGUL,Skogul,Skogul,70,87544,0,27620,10,2,1110,1930,20,15,1,69,70,50,67,52,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1 -1753,FRUS,Frus,Frus,69,83422,0,20620,10,2,1110,1780,20,15,1,69,60,50,76,52,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1 -1754,SKEGGIOLD,Skeggiold,Skeggiold,81,295200,0,91100,10,1,1400,2020,12,24,80,100,50,72,90,50,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 -1755,SKEGGIOLD_,Skeggiold,Skeggiold,83,315200,0,99200,10,1,1600,2050,15,24,80,120,60,85,98,80,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 -1756,G_HYDRO,Hydro,Hydrolancer,89,308230,0,0,0,3,2554,3910,52,62,1,96,110,86,94,32,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1757,G_ACIDUS,Acidus,Acidus,80,51112,0,0,0,2,1289,2109,39,69,1,71,55,135,103,69,10,12,2,9,46,0x3885,170,168,1008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1758,G_FERUS,Ferus,Ferus,70,29218,0,0,0,2,1056,1496,34,45,1,78,45,72,81,73,10,12,2,9,43,0x3885,100,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1759,G_ACIDUS_,Acidus,Acidus,76,39111,0,0,0,2,1180,2000,31,47,1,78,31,93,88,52,10,12,2,9,44,0x3885,180,168,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1760,G_FERUS_,Ferus,Ferus,69,21182,0,0,0,2,930,1170,24,38,1,66,77,60,79,35,10,12,2,9,42,0x3885,120,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1761,G_SKOGUL,Skogul,Skogul,70,57544,0,0,0,2,1110,1930,20,15,1,69,70,50,67,52,10,12,1,6,67,0x3985,170,720,384,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1762,G_FRUS,Frus,Frus,69,53422,0,0,0,2,1110,1780,20,15,1,69,60,50,76,52,10,12,1,6,67,0x3985,130,480,576,432,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1763,G_SKEGGIOLD,Skeggiold,Skeggiold,81,100200,0,0,0,1,1400,3410,12,24,80,100,50,72,90,50,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1764,G_SKEGGIOLD_,Skeggiold,Skeggiold,83,103000,0,0,0,1,1600,4110,15,24,80,120,60,85,98,80,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1765,G_RANDGRIS,Valkyrie,Valkyrie,99,1567200,0,10000,10000,3,5560,9980,25,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,7510,500,617,100,2115,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1766,EM_ANGELING,Angeling,Angeling,99,128430,0,0,0,1,60,71,40,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1767,EM_DEVILING,Deviling,Deviling,99,128430,0,0,0,1,60,71,40,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1751,RANDGRIS,Valkyrie Randgris,Valkyrie Randgris,99,3567200,0,2854900,3114520,3,5560,9980,25,42,100,120,30,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,1427450,617,5500,603,5000,616,2000,7510,5000,2357,800,2524,1500,2421,1500,2229,2500,7024,2500,0,0,0,0,0,0,4407,1 +1752,SKOGUL,Skogul,Skogul,70,87544,0,27620,10,2,1110,1930,20,15,1,69,70,50,67,52,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1 +1753,FRUS,Frus,Frus,69,83422,0,20620,10,2,1110,1780,20,15,1,69,60,50,76,52,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1 +1754,SKEGGIOLD,Skeggiold,Skeggiold,81,295200,0,91100,10,1,1400,2020,12,24,80,100,50,72,90,50,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 +1755,SKEGGIOLD_,Skeggiold,Skeggiold,83,315200,0,99200,10,1,1600,2050,15,24,80,120,60,85,98,80,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 +1756,G_HYDRO,Hydro,Hydrolancer,89,308230,0,0,0,3,2554,3910,52,62,1,96,110,86,94,32,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1757,G_ACIDUS,Acidus,Acidus,80,51112,0,0,0,2,1289,2109,39,69,1,71,55,135,103,69,10,12,2,9,46,0x3885,170,168,1008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1758,G_FERUS,Ferus,Ferus,70,29218,0,0,0,2,1056,1496,34,45,1,78,45,72,81,73,10,12,2,9,43,0x3885,100,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1759,G_ACIDUS_,Acidus,Acidus,76,39111,0,0,0,2,1180,2000,31,47,1,78,31,93,88,52,10,12,2,9,44,0x3885,180,168,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1760,G_FERUS_,Ferus,Ferus,69,21182,0,0,0,2,930,1170,24,38,1,66,77,60,79,35,10,12,2,9,42,0x3885,120,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1761,G_SKOGUL,Skogul,Skogul,70,57544,0,0,0,2,1110,1930,20,15,1,69,70,50,67,52,10,12,1,6,67,0x3985,170,720,384,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1762,G_FRUS,Frus,Frus,69,53422,0,0,0,2,1110,1780,20,15,1,69,60,50,76,52,10,12,1,6,67,0x3985,130,480,576,432,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1763,G_SKEGGIOLD,Skeggiold,Skeggiold,81,100200,0,0,0,1,1400,3410,12,24,80,100,50,72,90,50,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1764,G_SKEGGIOLD_,Skeggiold,Skeggiold,83,103000,0,0,0,1,1600,4110,15,24,80,120,60,85,98,80,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1765,G_RANDGRIS,Valkyrie,Valkyrie,99,1567200,0,10000,10000,3,5560,9980,25,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,500,617,100,2115,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1766,EM_ANGELING,Angeling,Angeling,99,128430,0,0,0,1,60,71,40,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1767,EM_DEVILING,Deviling,Deviling,99,128430,0,0,0,1,60,71,40,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Rachel / Ice Dungeon monsters -1768,GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,89,2298000,0,962175,276445,3,5880,9516,10,20,100,115,98,78,111,50,10,12,2,0,68,0x37B5,200,1344,2880,576,481087,10000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1 -1769,AGAV,Agav,Agav,73,29620,0,9780,6622,1,103,1109,15,35,1,32,27,132,69,15,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,0,0,0,0,0,0,4409,1 -1770,ECHIO,Echio,Echio,69,34900,0,13560,4300,1,750,1800,33,11,74,74,52,35,59,56,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,500,12183,20,7563,100,2366,20,0,0,0,0,4410,1 -1771,VANBERK,Vanberk,Vanberk,59,9988,0,4203,901,1,230,660,24,6,69,66,39,29,51,41,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,10,13027,5,7563,100,0,0,0,0,0,0,4411,1 -1772,ISILLA,Isilla,Isilla,62,8297,0,3001,3001,1,89,733,11,19,1,28,12,97,57,12,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,0,0,0,0,0,0,4412,1 -1773,HODREMLIN,Hodremlin,Hodremlin,61,12180,0,6782,2022,1,845,1678,29,25,80,41,81,56,62,11,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1 -1774,SEEKER,Seeker,Seeker,65,10090,0,5671,4278,6,723,852,17,30,60,52,34,143,107,27,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1 -1775,SNOWIER,Snowier,Snowier,60,19230,0,5882,2699,2,770,1347,22,12,73,46,72,15,52,25,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1 -1776,SIROMA,Siroma,Siroma,42,6800,0,2230,1005,1,220,440,12,8,33,23,52,11,40,19,10,12,0,0,61,0x83,180,432,648,240,0,0,0,0,0,0,0,0,7561,1000,7066,500,510,10,0,0,0,0,0,0,991,20,0,0,0,0,4416,1 -1777,ICE_TITAN,Ice Titan,Ice Titan,60,38200,0,13872,7928,1,1090,1570,71,15,99,34,88,10,79,29,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,985,30,0,0,995,100,0,0,0,0,4417,1 -1778,GAZETI,Gazeti,Gazeti,55,12300,0,5758,2075,10,512,612,65,25,1,12,20,60,101,5,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,0,0,0,0,0,0,0,0,0,0,4418,1 -1779,KTULLANUX,Ktullanux,Ktullanux,98,4417000,0,2720050,1120020,3,1680,10360,40,42,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,1360025,10000,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1 -1780,MUSCIPULAR,Muscipular,Muscipular,57,4332,0,1706,1706,3,521,726,12,12,1,53,39,25,92,51,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,0,0,0,0,0,0,4420,1 -1781,DROSERA,Drosera,Drosera,46,7221,0,2612,1022,7,389,589,10,13,1,30,27,17,76,41,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,0,7565,3000,938,3000,1032,2000,1033,2000,621,3,905,1000,0,0,0,0,0,0,4421,1 -1782,ROWEEN,Roween,Roween,31,5716,0,1669,1266,1,298,377,0,7,51,39,48,18,67,19,10,12,1,2,24,0x108B,200,412,840,300,0,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1 -1783,GALION,Galion,Galion,44,32240,0,10020,3368,1,336,441,11,12,51,52,59,25,72,32,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1 -1784,STAPO,Stapo,Stapo,23,666,0,332,221,1,135,370,90,5,12,11,15,12,23,1,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1 -1785,ATROCE,Atroce,Atroce,82,1008420,0,295550,118895,2,2526,3646,25,25,100,87,30,49,89,72,10,12,2,2,67,0x37B5,150,576,600,240,147775,10000,607,5500,617,5000,617,5000,7563,7000,608,1000,2621,1000,617,5000,607,5000,5123,100,1175,100,0,0,0,0,4425,1 -1786,G_AGAV,Agav,Agav,73,25620,0,0,0,1,103,909,15,35,1,32,27,132,69,15,10,12,1,7,40,0x3295,300,768,360,360,0,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1787,G_ECHIO,Echio,Echio,69,36900,0,0,0,1,750,1500,33,11,74,74,52,35,59,56,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1788,G_ICE_TITAN,Ice Titan,Ice Titan,60,32900,0,0,0,1,1090,1570,71,15,99,34,88,10,79,29,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1789,ICEICLE,Iceicle,Iceicle,38,10,0,5,5,3,241,1082,0,10,1,10,10,10,172,5,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,7066,1000,7066,500,7066,500,7066,500,7066,500,0,0,0,0,7066,500 -1790,G_RAFFLESIA,Rafflesia,Rafflesia,17,1333,0,0,0,3,105,127,0,2,1,18,24,11,37,10,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1791,G_GALION,Galion,Galion,44,32240,0,0,0,1,336,441,11,12,51,52,59,25,72,32,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1792,SOCCER_BALL,Soccer Ball,Soccer Ball,1,1000,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1793,G_MEGALITH,Megalith,Megalith,45,5300,0,0,0,9,264,314,50,25,1,45,60,5,95,5,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1794,G_ROWEEN,Roween,Roween,31,5716,0,0,0,1,298,377,0,7,51,39,48,18,67,19,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1795,BLOODY_KNIGHT_,Bloody Knight,Bloody Knight,82,800000,0,0,0,3,10000,30000,60,60,88,121,100,100,125,55,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,7578,10000,0,0,0,0 -1796,AUNOE,Aunoe,Aunoe,62,21297,0,7102,5102,1,1500,2144,11,19,1,28,12,91,57,12,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2109,1,12183,50,7563,100,2545,1,0,0,0,0,0,0 -1797,FANAT,Fanat,Fanat,62,21297,0,7102,5102,1,1500,2144,11,19,1,28,12,91,57,12,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,0,2388,1,2422,1,7563,1000,2109,1,12183,10,7568,2500,0,0,0,0,0,0,0,0 +1768,GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,89,2298000,0,962175,276445,3,5880,9516,10,20,100,115,98,78,111,50,10,12,2,0,68,0x37B5,200,1344,2880,576,481087,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1 +1769,AGAV,Agav,Agav,73,29620,0,9780,6622,1,103,1109,15,35,1,32,27,132,69,15,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,0,0,0,0,0,0,4409,1 +1770,ECHIO,Echio,Echio,69,34900,0,13560,4300,1,750,1800,33,11,74,74,52,35,59,56,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,500,12183,20,7563,100,2366,20,0,0,0,0,4410,1 +1771,VANBERK,Vanberk,Vanberk,59,9988,0,4203,901,1,230,660,24,6,69,66,39,29,51,41,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,10,13027,5,7563,100,0,0,0,0,0,0,4411,1 +1772,ISILLA,Isilla,Isilla,62,8297,0,3001,3001,1,89,733,11,19,1,28,12,97,57,12,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,0,0,0,0,0,0,4412,1 +1773,HODREMLIN,Hodremlin,Hodremlin,61,12180,0,6782,2022,1,845,1678,29,25,80,41,81,56,62,11,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1 +1774,SEEKER,Seeker,Seeker,65,10090,0,5671,4278,6,723,852,17,30,60,52,34,143,107,27,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1 +1775,SNOWIER,Snowier,Snowier,60,19230,0,5882,2699,2,770,1347,22,12,73,46,72,15,52,25,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1 +1776,SIROMA,Siroma,Siroma,42,6800,0,2230,1005,1,220,440,12,8,33,23,52,11,40,19,10,12,0,0,61,0x83,180,432,648,240,0,0,0,0,0,0,0,7561,1000,7066,500,510,10,0,0,0,0,0,0,991,20,0,0,0,0,4416,1 +1777,ICE_TITAN,Ice Titan,Ice Titan,60,38200,0,13872,7928,1,1090,1570,71,15,99,34,88,10,79,29,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,985,30,0,0,995,100,0,0,0,0,4417,1 +1778,GAZETI,Gazeti,Gazeti,55,12300,0,5758,2075,10,512,612,65,25,1,12,20,60,101,5,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,0,0,0,0,0,0,0,0,0,0,4418,1 +1779,KTULLANUX,Ktullanux,Ktullanux,98,4417000,0,2720050,1120020,3,1680,10360,40,42,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,1360025,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1 +1780,MUSCIPULAR,Muscipular,Muscipular,57,4332,0,1706,1706,3,521,726,12,12,1,53,39,25,92,51,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,0,0,0,0,0,0,4420,1 +1781,DROSERA,Drosera,Drosera,46,7221,0,2612,1022,7,389,589,10,13,1,30,27,17,76,41,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,7565,3000,938,3000,1032,2000,1033,2000,621,3,905,1000,0,0,0,0,0,0,4421,1 +1782,ROWEEN,Roween,Roween,31,5716,0,1669,1266,1,298,377,0,7,51,39,48,18,67,19,10,12,1,2,24,0x108B,200,412,840,300,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1 +1783,GALION,Galion,Galion,44,32240,0,10020,3368,1,336,441,11,12,51,52,59,25,72,32,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1 +1784,STAPO,Stapo,Stapo,23,666,0,332,221,1,135,370,90,5,12,11,15,12,23,1,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1 +1785,ATROCE,Atroce,Atroce,82,1008420,0,295550,118895,2,2526,3646,25,25,100,87,30,49,89,72,10,12,2,2,67,0x37B5,150,576,600,240,147775,607,5500,617,5000,617,5000,7563,7000,608,1000,2621,1000,617,5000,607,5000,5123,100,1175,100,0,0,0,0,4425,1 +1786,G_AGAV,Agav,Agav,73,25620,0,0,0,1,103,909,15,35,1,32,27,132,69,15,10,12,1,7,40,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1787,G_ECHIO,Echio,Echio,69,36900,0,0,0,1,750,1500,33,11,74,74,52,35,59,56,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1788,G_ICE_TITAN,Ice Titan,Ice Titan,60,32900,0,0,0,1,1090,1570,71,15,99,34,88,10,79,29,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1789,ICEICLE,Iceicle,Iceicle,38,10,0,5,5,3,241,1082,0,10,1,10,10,10,172,5,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,7066,1000,7066,500,7066,500,7066,500,7066,500,0,0,0,0,7066,500 +1790,G_RAFFLESIA,Rafflesia,Rafflesia,17,1333,0,0,0,3,105,127,0,2,1,18,24,11,37,10,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1791,G_GALION,Galion,Galion,44,32240,0,0,0,1,336,441,11,12,51,52,59,25,72,32,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1792,SOCCER_BALL,Soccer Ball,Soccer Ball,1,1000,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1793,G_MEGALITH,Megalith,Megalith,45,5300,0,0,0,9,264,314,50,25,1,45,60,5,95,5,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1794,G_ROWEEN,Roween,Roween,31,5716,0,0,0,1,298,377,0,7,51,39,48,18,67,19,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1795,BLOODY_KNIGHT_,Bloody Knight,Bloody Knight,82,800000,0,0,0,3,10000,30000,60,60,88,121,100,100,125,55,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,7578,10000,0,0,0,0 +1796,AUNOE,Aunoe,Aunoe,62,21297,0,7102,5102,1,1500,2144,11,19,1,28,12,91,57,12,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2109,1,12183,50,7563,100,2545,1,0,0,0,0,0,0 +1797,FANAT,Fanat,Fanat,62,21297,0,7102,5102,1,1500,2144,11,19,1,28,12,91,57,12,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,2388,1,2422,1,7563,1000,2109,1,12183,10,7568,2500,0,0,0,0,0,0,0,0 -1798,TREASURE_BOX_,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1799,G_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,99,347590,0,18000,10000,1,4238,5040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1800,G_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,99,211230,0,18000,10000,1,3189,5289,27,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1801,G_HARWORD_,Whitesmith Harword,Mastersmith Howard,99,310000,0,18000,10000,1,4822,5033,66,36,100,73,112,35,136,60,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1802,G_MAGALETA_,High Priest Magaleta,High Priest Margaretha,99,182910,0,18000,10000,1,1688,2580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1803,G_SHECIL_,Sniper Shecil,Sniper Cecil,99,209000,0,18000,10000,14,1892,5113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1804,G_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,99,189920,0,18000,10000,1,497,2094,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1805,B_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,99,1647590,0,4835600,1569970,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1806,B_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,99,1411230,0,4083400,1592380,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1807,B_HARWORD_,Whitesmith Harword,Mastersmith Howard,99,1460000,0,4002340,1421000,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1808,B_MAGALETA_,High Priest Magaleta,High Priest Margaretha,99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1809,B_SHECIL_,Sniper Shecil,Sniper Cecil,99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1810,B_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1811,G_SMOKIE_,Smokie,Bandit,18,641,0,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0 -1812,EVENT_LUDE,Lude,Delightful Lude,99,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0 -1813,EVENT_HYDRO,Hydro,Hydrolancer,99,1880000,0,4000000,2000000,3,15000,47767,60,55,1,142,200,250,189,32,10,12,2,8,28,0x37B5,100,972,672,432,0,0,0,0,0,0,0,0,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0 -1814,EVENT_MOON,Moonlight Flower,Moonlight Flower,80,30000,0,30000,30000,1,500,800,50,50,1,35,45,112,69,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1815,EVENT_RICECAKE,Rice Cake,Rice Cake,12,20,0,0,0,1,1,2,100,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,1320,0,300,0,0,0,0,0,0,0,0,7613,10000,7613,10000,7613,10000,7613,10000,7613,10000,7613,5000,7613,4000,0,0,0,0,7613,3000 -1816,EVENT_GOURD,Gourd,Gourd,12,1000,0,0,0,1,1,2,100,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,0,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1817,EVENT_DETALE,Detale,Detarderous,99,8880000,0,4500000,2500000,3,32767,65534,65,65,1,142,200,250,189,50,10,12,2,8,48,0x37B5,100,972,936,360,0,0,0,0,0,0,0,0,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0 -1818,EVENT_ALARM,Alarm,Alarm,58,10647,0,0,0,0,1,2,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000 -1819,EVENT_BATHORY,Bathory,Bathory,44,5415,0,0,0,1,198,398,0,60,1,76,24,85,65,15,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1820,EVENT_BIGFOOT,Bigfoot,Bigfoot,25,1619,0,0,0,1,198,220,10,0,1,25,55,15,20,25,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1821,EVENT_DESERT_WOLF,Desert Wolf,Desert Wolf,27,1716,0,0,0,1,169,208,0,10,56,27,45,15,56,10,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1822,EVENT_DEVIRUCHI,Deviruchi,Deviruchi,46,6666,0,0,0,1,475,560,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1823,EVENT_FREEZER,Freezer,Freezer,72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1824,EVENT_GARM_BABY,Garm Baby,Garm Baby,61,20199,0,0,0,1,680,1179,34,13,45,30,56,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1825,EVENT_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,0,0,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1826,EVENT_MYST,Myst,Myst,38,3745,0,0,0,1,365,445,0,40,1,38,18,0,53,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1827,EVENT_SASQUATCH,Sasquatch,Sasquatch,30,3163,0,0,0,1,250,280,5,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1828,EVENT_GULLINBURSTI,Gullinbrusti,Gullinbrusti,20,20,0,0,0,1,59,72,100,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1829,SWORD_GUARDIAN,Sword Guardian,Sword Master,86,152533,0,155013,122604,2,7590,9140,60,33,110,40,54,65,125,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,0,0,0,0,0,0,4427,1 -1830,BOW_GUARDIAN,Bow Guardian,Bow Master,80,80404,0,50149,23006,12,1840,2520,40,62,95,80,33,90,165,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,0,0,0,0,0,0,4428,1 -1831,SALAMANDER,Salamander,Salamander,91,97934,0,72000,55000,2,7590,10860,65,50,90,55,44,45,180,25,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,7097,3000,994,30,716,100,2680,1,1920,50,2621,1,2364,20,0,0,0,0,4429,1 -1832,IFRIT,Ifrit,Ifrit,99,7700000,0,3154321,3114520,3,13530,17000,40,50,120,180,25,190,199,50,10,12,2,0,83,0x37B5,130,212,384,360,1577160,10000,603,5500,617,5000,616,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,2345,100,0,0,0,0,4430,1 -1833,KASA,Kasa,Kasa,85,80375,0,49000,38000,2,3030,3500,23,70,45,110,31,200,140,30,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,7097,3000,7122,2500,994,30,2680,1,2344,10,1730,10,1626,10,0,0,0,0,4431,1 -1834,G_SALAMANDER,Salamander,Salamander,91,97934,0,0,0,2,9590,12860,65,60,90,55,44,45,180,25,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1835,G_KASA,Kasa,Kasa,85,80375,0,0,0,2,3030,3500,23,70,45,158,31,250,160,30,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1836,MAGMARING,Magmaring,Magmaring,40,5300,0,2110,1910,1,550,700,25,24,40,60,30,10,60,17,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1 -1837,IMP,Imp,Fire Imp,76,46430,0,25200,11077,1,1059,1509,27,50,37,76,30,150,99,10,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,0,7122,3000,13303,3,7098,2500,1376,10,1972,25,12374,20,0,0,0,0,0,0,4433,1 -1838,KNOCKER,Knocker,Knocker,50,7755,0,2202,4023,1,889,990,28,50,25,44,50,62,65,60,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2208,10,2124,3,1732,5,0,0,0,0,4434,1 -1839,BYORGUE,Byorgue,Byorgue,86,38133,0,19000,9500,2,1340,2590,20,13,25,80,12,30,70,10,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,500,603,40,2530,1,7110,4365,0,0,0,0,4426,1 -1840,GOLDEN_SAVAGE,Golden Savage,Golden Savage,99,500,0,1,1,1,500,700,100,99,0,1,1,50,120,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,12239,3000,0,0,0,0 -1841,G_SNAKE_,Snake Lord's Minion,Snake Lord's Minion,15,10,0,1,1,1,46,55,100,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,0,7720,2000,12245,200,7721,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1842,G_ANACONDAQ_,Snake Lord's Minion,Snake Lord's Minion,23,15,0,1,1,1,124,157,100,99,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,0,7720,3500,12245,400,7721,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1843,G_SIDE_WINDER_,Snake Lord's Minion,Snake Lord's Minion,43,18,0,1,1,1,240,320,100,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,7720,7000,12245,600,7721,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1844,G_ISIS_,Snake Lord's Minion,Snake Lord's Minion,47,25,0,1,1,1,423,507,100,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,7720,8000,12245,800,7721,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1845,G_TREASURE_BOX_,Treasure Box,Treasure Box,98,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,0,0,0,0,12245,2500 -1846,DREAMMETAL,Dream Metal,Dream Metal,90,999,0,1,1,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1847,EVENT_PORING,Poring,Poring,98,10000000,0,1000000,1000000,1,15000,20000,60,60,1,60,120,120,160,30,10,12,1,8,28,0x37B5,100,76,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1848,EVENT_BAPHOMET,Baphomet,Baphomet,50,45000,0,1000,1000,2,1500,3000,10,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1849,EVENT_OSIRIS,Osiris,Osiris,60,125000,0,2000,2000,1,3500,5000,20,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1850,EVENT_ORCHERO,Orc Hero,Orc Hero,50,175000,0,3000,3000,1,4000,5500,25,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1851,EVENT_MOBSTER,Mobster,Mobster,61,7991,0,2,2,1,500,1000,45,35,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1852,G_EM_ANGELING,Angeling,Angeling,99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1853,G_EM_DEVILING,Deviling,Deviling,99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1854,E_MUKA,Muka,Muka,17,610,0,273,120,1,40,49,5,5,15,15,30,5,20,10,10,12,2,3,22,0x83,300,1960,960,384,0,0,0,0,0,0,0,0,993,70,952,9000,713,2000,7742,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1 -1855,E_POISONSPORE,Poison Spore,Poison Spore,19,665,0,186,93,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,7743,60,972,50,921,1200,912,5,0,0,0,0,4048,1 -1856,E_MAGNOLIA,Magnolia,Magnolia,26,3195,0,393,248,1,120,151,5,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,7744,400,12127,5,0,0,0,0,4076,1 -1857,E_MARIN,Marin,Marin,15,742,0,66,44,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,7745,75,529,350,5035,1,0,0,0,0,4196,1 -1858,E_PLANKTON,Plankton,Plankton,10,354,0,23,18,1,26,31,0,5,1,10,10,0,15,0,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,0,1052,9000,7746,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1 -1859,E_MANDRAGORA,Mandragora,Mandragora,12,405,0,45,32,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,993,50,905,9000,1405,30,7747,350,711,300,706,3,1967,10,0,0,0,0,4030,1 -1860,E_COCO,Coco,Coco,17,817,0,120,78,1,56,67,0,0,24,17,34,20,24,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,7748,600,0,0,0,0,4041,1 -1861,E_CHOCO,Choco,Choco,43,4278,0,1265,1265,1,315,402,5,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,7749,1000,607,25,0,0,0,0,4285,1 -1862,E_MARTIN,Martin,Martin,18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,0,1017,9000,7750,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1 -1863,E_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,25,4500,0,0,0,1,292,406,14,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1798,TREASURE_BOX_,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1799,G_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,99,347590,0,18000,10000,1,4238,5040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1800,G_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,99,211230,0,18000,10000,1,3189,5289,27,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1801,G_HARWORD_,Whitesmith Harword,Mastersmith Howard,99,310000,0,18000,10000,1,4822,5033,66,36,100,73,112,35,136,60,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1802,G_MAGALETA_,High Priest Magaleta,High Priest Margaretha,99,182910,0,18000,10000,1,1688,2580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1803,G_SHECIL_,Sniper Shecil,Sniper Cecil,99,209000,0,18000,10000,14,1892,5113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1804,G_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,99,189920,0,18000,10000,1,497,2094,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1805,B_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,99,1647590,0,4835600,1569970,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1806,B_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,99,1411230,0,4083400,1592380,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1807,B_HARWORD_,Whitesmith Harword,Mastersmith Howard,99,1460000,0,4002340,1421000,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1808,B_MAGALETA_,High Priest Magaleta,High Priest Margaretha,99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1809,B_SHECIL_,Sniper Shecil,Sniper Cecil,99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1810,B_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1811,G_SMOKIE_,Smokie,Bandit,18,641,0,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0 +1812,EVENT_LUDE,Lude,Delightful Lude,99,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0 +1813,EVENT_HYDRO,Hydro,Hydrolancer,99,1880000,0,4000000,2000000,3,15000,47767,60,55,1,142,200,250,189,32,10,12,2,8,28,0x37B5,100,972,672,432,0,0,0,0,0,0,0,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0 +1814,EVENT_MOON,Moonlight Flower,Moonlight Flower,80,30000,0,30000,30000,1,500,800,50,50,1,35,45,112,69,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1815,EVENT_RICECAKE,Rice Cake,Rice Cake,12,20,0,0,0,1,1,2,100,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,1320,0,300,0,0,0,0,0,0,0,7613,10000,7613,10000,7613,10000,7613,10000,7613,10000,7613,5000,7613,4000,0,0,0,0,7613,3000 +1816,EVENT_GOURD,Gourd,Gourd,12,1000,0,0,0,1,1,2,100,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1817,EVENT_DETALE,Detale,Detarderous,99,8880000,0,4500000,2500000,3,32767,65534,65,65,1,142,200,250,189,50,10,12,2,8,48,0x37B5,100,972,936,360,0,0,0,0,0,0,0,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0 +1818,EVENT_ALARM,Alarm,Alarm,58,10647,0,0,0,0,1,2,15,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000 +1819,EVENT_BATHORY,Bathory,Bathory,44,5415,0,0,0,1,198,398,0,60,1,76,24,85,65,15,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1820,EVENT_BIGFOOT,Bigfoot,Bigfoot,25,1619,0,0,0,1,198,220,10,0,1,25,55,15,20,25,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1821,EVENT_DESERT_WOLF,Desert Wolf,Desert Wolf,27,1716,0,0,0,1,169,208,0,10,56,27,45,15,56,10,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1822,EVENT_DEVIRUCHI,Deviruchi,Deviruchi,46,6666,0,0,0,1,475,560,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1823,EVENT_FREEZER,Freezer,Freezer,72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1824,EVENT_GARM_BABY,Garm Baby,Garm Baby,61,20199,0,0,0,1,680,1179,34,13,45,30,56,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1825,EVENT_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,0,0,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1826,EVENT_MYST,Myst,Myst,38,3745,0,0,0,1,365,445,0,40,1,38,18,0,53,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1827,EVENT_SASQUATCH,Sasquatch,Sasquatch,30,3163,0,0,0,1,250,280,5,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1828,EVENT_GULLINBURSTI,Gullinbrusti,Gullinbrusti,20,20,0,0,0,1,59,72,100,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1829,SWORD_GUARDIAN,Sword Guardian,Sword Master,86,152533,0,155013,122604,2,7590,9140,60,33,110,40,54,65,125,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,0,0,0,0,0,0,4427,1 +1830,BOW_GUARDIAN,Bow Guardian,Bow Master,80,80404,0,50149,23006,12,1840,2520,40,62,95,80,33,90,165,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,0,0,0,0,0,0,4428,1 +1831,SALAMANDER,Salamander,Salamander,91,97934,0,72000,55000,2,7590,10860,65,50,90,55,44,45,180,25,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,7097,3000,994,30,716,100,2680,1,1920,50,2621,1,2364,20,0,0,0,0,4429,1 +1832,IFRIT,Ifrit,Ifrit,99,7700000,0,3154321,3114520,3,13530,17000,40,50,120,180,25,190,199,50,10,12,2,0,83,0x37B5,130,212,384,360,1577160,603,5500,617,5000,616,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,2345,100,0,0,0,0,4430,1 +1833,KASA,Kasa,Kasa,85,80375,0,49000,38000,2,3030,3500,23,70,45,110,31,200,140,30,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,7097,3000,7122,2500,994,30,2680,1,2344,10,1730,10,1626,10,0,0,0,0,4431,1 +1834,G_SALAMANDER,Salamander,Salamander,91,97934,0,0,0,2,9590,12860,65,60,90,55,44,45,180,25,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1835,G_KASA,Kasa,Kasa,85,80375,0,0,0,2,3030,3500,23,70,45,158,31,250,160,30,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1836,MAGMARING,Magmaring,Magmaring,40,5300,0,2110,1910,1,550,700,25,24,40,60,30,10,60,17,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1 +1837,IMP,Imp,Fire Imp,76,46430,0,25200,11077,1,1059,1509,27,50,37,76,30,150,99,10,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,7122,3000,13303,3,7098,2500,1376,10,1972,25,12374,20,0,0,0,0,0,0,4433,1 +1838,KNOCKER,Knocker,Knocker,50,7755,0,2202,4023,1,889,990,28,50,25,44,50,62,65,60,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2208,10,2124,3,1732,5,0,0,0,0,4434,1 +1839,BYORGUE,Byorgue,Byorgue,86,38133,0,19000,9500,2,1340,2590,20,13,25,80,12,30,70,10,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,500,603,40,2530,1,7110,4365,0,0,0,0,4426,1 +1840,GOLDEN_SAVAGE,Golden Savage,Golden Savage,99,500,0,1,1,1,500,700,100,99,0,1,1,50,120,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,12239,3000,0,0,0,0 +1841,G_SNAKE_,Snake Lord's Minion,Snake Lord's Minion,15,10,0,1,1,1,46,55,100,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,7720,2000,12245,200,7721,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1842,G_ANACONDAQ_,Snake Lord's Minion,Snake Lord's Minion,23,15,0,1,1,1,124,157,100,99,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,7720,3500,12245,400,7721,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1843,G_SIDE_WINDER_,Snake Lord's Minion,Snake Lord's Minion,43,18,0,1,1,1,240,320,100,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,7720,7000,12245,600,7721,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1844,G_ISIS_,Snake Lord's Minion,Snake Lord's Minion,47,25,0,1,1,1,423,507,100,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,7720,8000,12245,800,7721,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1845,G_TREASURE_BOX_,Treasure Box,Treasure Box,98,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,0,0,0,0,12245,2500 +1846,DREAMMETAL,Dream Metal,Dream Metal,90,999,0,1,1,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1847,EVENT_PORING,Poring,Poring,98,10000000,0,1000000,1000000,1,15000,20000,60,60,1,60,120,120,160,30,10,12,1,8,28,0x37B5,100,76,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1848,EVENT_BAPHOMET,Baphomet,Baphomet,50,45000,0,1000,1000,2,1500,3000,10,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1849,EVENT_OSIRIS,Osiris,Osiris,60,125000,0,2000,2000,1,3500,5000,20,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1850,EVENT_ORCHERO,Orc Hero,Orc Hero,50,175000,0,3000,3000,1,4000,5500,25,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1851,EVENT_MOBSTER,Mobster,Mobster,61,7991,0,2,2,1,500,1000,45,35,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1852,G_EM_ANGELING,Angeling,Angeling,99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1853,G_EM_DEVILING,Deviling,Deviling,99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1854,E_MUKA,Muka,Muka,17,610,0,273,120,1,40,49,5,5,15,15,30,5,20,10,10,12,2,3,22,0x83,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,7742,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1 +1855,E_POISONSPORE,Poison Spore,Poison Spore,19,665,0,186,93,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,7743,60,972,50,921,1200,912,5,0,0,0,0,4048,1 +1856,E_MAGNOLIA,Magnolia,Magnolia,26,3195,0,393,248,1,120,151,5,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,7744,400,12127,5,0,0,0,0,4076,1 +1857,E_MARIN,Marin,Marin,15,742,0,66,44,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,7745,75,529,350,5035,1,0,0,0,0,4196,1 +1858,E_PLANKTON,Plankton,Plankton,10,354,0,23,18,1,26,31,0,5,1,10,10,0,15,0,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,7746,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1 +1859,E_MANDRAGORA,Mandragora,Mandragora,12,405,0,45,32,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,7747,350,711,300,706,3,1967,10,0,0,0,0,4030,1 +1860,E_COCO,Coco,Coco,17,817,0,120,78,1,56,67,0,0,24,17,34,20,24,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,7748,600,0,0,0,0,4041,1 +1861,E_CHOCO,Choco,Choco,43,4278,0,1265,1265,1,315,402,5,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,7749,1000,607,25,0,0,0,0,4285,1 +1862,E_MARTIN,Martin,Martin,18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,7750,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1 +1863,E_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,25,4500,0,0,0,1,292,406,14,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Cursed Abbey -1864,ZOMBIE_SLAUGHTER,Zombie Slaughter,Zombie Slaughter,77,43000,0,12000,8500,1,1055,1655,35,45,1,30,50,1,75,35,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,0,0,0,0,0,0,0,0,4435,1 -1865,RAGGED_ZOMBIE,Ragged Zombie,Ragged Zombie,75,25000,0,8500,5500,9,1200,1500,25,35,1,77,25,10,101,50,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,0,0,0,0,0,0,4436,1 -1866,HELL_POODLE,Hell Poodle,Hell Poodle,71,9000,0,4000,3000,1,400,600,35,20,5,26,14,5,39,10,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1 -1867,BANSHEE,Banshee,Banshee,81,35111,0,17000,12000,1,1666,2609,30,55,30,74,1,120,75,1,10,12,1,6,47,0x3795,150,576,504,504,0,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4438,1 -1868,G_BANSHEE,Banshee,Banshee,81,35111,0,0,0,1,1666,2609,30,55,30,74,1,120,120,1,10,12,1,6,47,0x3795,150,576,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1869,FLAME_SKULL,Flame Skull,Flame Skull,60,10080,0,3000,2600,1,100,1200,20,40,50,100,30,40,140,110,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1 -1870,NECROMANCER,Necromancer,Necromancer,88,98000,0,45000,35000,1,3500,4000,0,40,1,50,1,190,166,10,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1 -1871,FALLINGBISHOP,Fallen Bishop,Fallen Bishop Hibram,80,3333333,0,1111111,1111111,1,3220,5040,50,0,1,80,15,126,120,20,10,12,1,6,47,0x37B5,150,432,1152,360,555555,10000,607,5500,617,5000,617,5000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,0,0,0,0,0,0,4441,1 -1872,BEELZEBUB_FLY,Hell Fly,Hell Fly,66,500000,0,0,0,1,1200,2000,25,15,33,105,60,15,72,30,10,12,0,4,84,0x37B5,100,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1873,BEELZEBUB,Beelzebub,Beelzebub,98,6666666,0,0,0,1,4100,4960,40,35,6,110,200,250,120,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1874,BEELZEBUB_,Beelzebub,Beelzebub,98,6666666,0,6666666,6666666,2,10000,13410,40,40,6,110,200,250,166,66,10,12,2,6,88,0x37B5,100,212,504,432,3333333,10000,607,5500,617,5000,617,5000,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,985,5432,742,5500,0,0,0,0,4145,1 -1875,TRISTAN_3RD,Tristan III,Dead King,80,43000,0,1,1,2,1366,1626,25,30,5,10,10,69,70,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1876,E_LORD_OF_DEATH,Lord of the Dead,Lord of the Dead,99,99000000,0,131343,43345,3,3430,4232,75,73,120,120,120,169,150,106,10,12,2,6,67,0x37B5,180,1446,1296,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1877,CRYSTAL_5,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,7863,10,644,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1878,E_SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0 -1879,ECLIPSE_P,Eclipse Pet,Eclipse,6,1800,0,0,0,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1864,ZOMBIE_SLAUGHTER,Zombie Slaughter,Zombie Slaughter,77,43000,0,12000,8500,1,1055,1655,35,45,1,30,50,1,75,35,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,0,0,0,0,0,0,0,0,4435,1 +1865,RAGGED_ZOMBIE,Ragged Zombie,Ragged Zombie,75,25000,0,8500,5500,9,1200,1500,25,35,1,77,25,10,101,50,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,0,0,0,0,0,0,4436,1 +1866,HELL_POODLE,Hell Poodle,Hell Poodle,71,9000,0,4000,3000,1,400,600,35,20,5,26,14,5,39,10,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1 +1867,BANSHEE,Banshee,Banshee,81,35111,0,17000,12000,1,1666,2609,30,55,30,74,1,120,75,1,10,12,1,6,47,0x3795,150,576,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4438,1 +1868,G_BANSHEE,Banshee,Banshee,81,35111,0,0,0,1,1666,2609,30,55,30,74,1,120,120,1,10,12,1,6,47,0x3795,150,576,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1869,FLAME_SKULL,Flame Skull,Flame Skull,60,10080,0,3000,2600,1,100,1200,20,40,50,100,30,40,140,110,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1 +1870,NECROMANCER,Necromancer,Necromancer,88,98000,0,45000,35000,1,3500,4000,0,40,1,50,1,190,166,10,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1 +1871,FALLINGBISHOP,Fallen Bishop,Fallen Bishop Hibram,80,3333333,0,1111111,1111111,1,3220,5040,50,0,1,80,15,126,120,20,10,12,1,6,47,0x37B5,150,432,1152,360,555555,607,5500,617,5000,617,5000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,0,0,0,0,0,0,4441,1 +1872,BEELZEBUB_FLY,Hell Fly,Hell Fly,66,500000,0,0,0,1,1200,2000,25,15,33,105,60,15,72,30,10,12,0,4,84,0x37B5,100,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1873,BEELZEBUB,Beelzebub,Beelzebub,98,6666666,0,0,0,1,4100,4960,40,35,6,110,200,250,120,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1874,BEELZEBUB_,Beelzebub,Beelzebub,98,6666666,0,6666666,6666666,2,10000,13410,40,40,6,110,200,250,166,66,10,12,2,6,88,0x37B5,100,212,504,432,3333333,607,5500,617,5000,617,5000,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,985,5432,742,5500,0,0,0,0,4145,1 +1875,TRISTAN_3RD,Tristan III,Dead King,80,43000,0,1,1,2,1366,1626,25,30,5,10,10,69,70,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1876,E_LORD_OF_DEATH,Lord of the Dead,Lord of the Dead,99,99000000,0,131343,43345,3,3430,4232,75,73,120,120,120,169,150,106,10,12,2,6,67,0x37B5,180,1446,1296,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1877,CRYSTAL_5,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,7863,10,644,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1878,E_SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0 +1879,ECLIPSE_P,Eclipse Pet,Eclipse,6,1800,0,0,0,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Moscovia monsters -1880,WOOD_GOBLIN,Wood Goblin,Wood Goblin,42,6982,0,2201,1552,1,600,620,32,3,1,5,45,45,55,155,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0 -1881,LES,Les,Les,39,3080,0,1521,912,1,102,113,0,17,1,33,12,32,52,38,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0 -1882,VAVAYAGA,Baba Yaga,Baba Yaga,49,7444,0,2583,2583,2,255,387,4,29,1,76,24,88,55,18,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0 -1883,UZHAS,Uzhas,Uzhas,61,13707,0,4002,3003,1,293,960,11,34,1,33,19,72,75,77,10,12,1,7,61,0x3885,200,576,672,384,0,0,0,0,0,0,0,0,520,900,1573,5,621,100,522,100,918,3500,579,1500,603,3,0,0,0,0,0,0 -1884,MAVKA,Mavka,Mavka,63,19200,0,8301,6353,7,589,623,32,19,1,42,55,35,89,177,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0 -1885,GOPINICH,Gopinich,Gopinich,85,299321,0,45250,16445,3,1868,6124,20,42,50,65,55,103,152,35,10,12,2,2,62,0x37B5,150,1536,864,432,22625,10000,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0 -1886,G_MAVKA,Mavka,Mavka,63,19200,0,0,0,7,589,623,32,19,1,42,55,35,89,177,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1880,WOOD_GOBLIN,Wood Goblin,Wood Goblin,42,6982,0,2201,1552,1,600,620,32,3,1,5,45,45,55,155,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0 +1881,LES,Les,Les,39,3080,0,1521,912,1,102,113,0,17,1,33,12,32,52,38,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0 +1882,VAVAYAGA,Baba Yaga,Baba Yaga,49,7444,0,2583,2583,2,255,387,4,29,1,76,24,88,55,18,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0 +1883,UZHAS,Uzhas,Uzhas,61,13707,0,4002,3003,1,293,960,11,34,1,33,19,72,75,77,10,12,1,7,61,0x3885,200,576,672,384,0,0,0,0,0,0,0,520,900,1573,5,621,100,522,100,918,3500,579,1500,603,3,0,0,0,0,0,0 +1884,MAVKA,Mavka,Mavka,63,19200,0,8301,6353,7,589,623,32,19,1,42,55,35,89,177,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0 +1885,GOPINICH,Gopinich,Gopinich,85,299321,0,45250,16445,3,1868,6124,20,42,50,65,55,103,152,35,10,12,2,2,62,0x37B5,150,1536,864,432,22625,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0 +1886,G_MAVKA,Mavka,Mavka,63,19200,0,0,0,7,589,623,32,19,1,42,55,35,89,177,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Additional Monsters -1887,FREEZER_R,Freezer,Freezer,72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1888,GARM_BABY_R,Hatii Baby,Hatii Baby,61,15199,0,100,100,1,680,1580,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1889,GARM_R,Marozka's Guard,Marozka's Guard,73,100000,0,1000,1000,3,900,2200,20,23,85,126,10,50,95,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1890,GOPINICH_R,The Immortal Koshei,The Immortal Koshei,85,299321,0,1000,1000,3,1868,6124,20,42,50,65,55,50,152,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1891,G_RANDGRIS_,Valkyrie,Valkyrie,99,1567200,0,0,0,3,5560,9980,25,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1892,G_LOLI_RURI,Lolo Ruri,Lolo Ruri,71,23470,0,0,0,2,1476,2317,39,44,0,66,54,74,81,43,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1893,G_KNIGHT_OF_ABYSS,Knight of the Abyss,Abysmal Knight,79,36140,0,0,0,1,1600,2150,55,50,66,68,64,25,135,50,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1894,POURING,Pouring,Pouring,50,100000,0,0,0,1,550,1450,20,50,45,30,36,55,85,30,0,0,0,3,68,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,12257,8335,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1895,EVENT_SEYREN,Seyren,Seyren Windsor,91,88402,0,0,0,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3295,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1896,EVENT_KATRINN,Katrinn,Kathryne Keyron,92,47280,0,0,0,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1897,EVENT_BAPHOMET_,Baphomet,Baphomet,81,668000,0,0,0,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1898,EVENT_ZOMBIE,Zombie,Zombie,12,434,0,0,0,1,67,79,0,10,1,1,1,1,1,1,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,7884,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1899,SWORD_GUARDIAN_,Sword Guardian,Sword Guardian,86,152533,0,0,0,2,7590,9140,60,33,110,40,54,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//1900,BOW_GUARDIAN_,Archer Guardian,Archer Guardian,80,80404,0,0,0,12,1840,2520,40,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1901,E_CONDOR,Condor,Condor,5,8000,0,100,100,1,200,400,10,15,1,13,10,25,95,10,10,12,0,8,26,0x1089,150,1148,648,480,0,0,0,0,0,0,0,0,7781,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1902,E_TREASURE1,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1903,E_TREASURE2,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1904,BOMBPORING,Bomb Poring,Bomb Poring,28,1000000,0,461,284,1,120,320,100,99,1,28,28,0,33,50,10,12,0,0,20,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1887,FREEZER_R,Freezer,Freezer,72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1888,GARM_BABY_R,Hatii Baby,Hatii Baby,61,15199,0,100,100,1,680,1580,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1889,GARM_R,Marozka's Guard,Marozka's Guard,73,100000,0,1000,1000,3,900,2200,20,23,85,126,10,50,95,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1890,GOPINICH_R,The Immortal Koshei,The Immortal Koshei,85,299321,0,1000,1000,3,1868,6124,20,42,50,65,55,50,152,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1891,G_RANDGRIS_,Valkyrie,Valkyrie,99,1567200,0,0,0,3,5560,9980,25,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1892,G_LOLI_RURI,Lolo Ruri,Lolo Ruri,71,23470,0,0,0,2,1476,2317,39,44,0,66,54,74,81,43,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1893,G_KNIGHT_OF_ABYSS,Knight of the Abyss,Abysmal Knight,79,36140,0,0,0,1,1600,2150,55,50,66,68,64,25,135,50,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1894,POURING,Pouring,Pouring,50,100000,0,0,0,1,550,1450,20,50,45,30,36,55,85,30,0,0,0,3,68,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,12257,8335,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1895,EVENT_SEYREN,Seyren,Seyren Windsor,91,88402,0,0,0,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3295,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1896,EVENT_KATRINN,Katrinn,Kathryne Keyron,92,47280,0,0,0,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1897,EVENT_BAPHOMET_,Baphomet,Baphomet,81,668000,0,0,0,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1898,EVENT_ZOMBIE,Zombie,Zombie,12,434,0,0,0,1,67,79,0,10,1,1,1,1,1,1,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,7884,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1899,SWORD_GUARDIAN_,Sword Guardian,Sword Guardian,86,152533,0,0,0,2,7590,9140,60,33,110,40,54,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//1900,BOW_GUARDIAN_,Archer Guardian,Archer Guardian,80,80404,0,0,0,12,1840,2520,40,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1901,E_CONDOR,Condor,Condor,5,8000,0,100,100,1,200,400,10,15,1,13,10,25,95,10,10,12,0,8,26,0x1089,150,1148,648,480,0,0,0,0,0,0,0,7781,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1902,E_TREASURE1,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1903,E_TREASURE2,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1904,BOMBPORING,Bomb Poring,Bomb Poring,28,1000000,0,461,284,1,120,320,100,99,1,28,28,0,33,50,10,12,0,0,20,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // WoE Second Edition; Battle Fields -1905,BARRICADE,Barricade,Barricade,98,120000,0,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1906,BARRICADE_,Barricade,Barricade,98,150,0,0,0,1,0,0,100,99,1,17,1,80,126,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1907,S_EMPEL_1,Guardian Stone,Guardian Stone,90,120000,0,0,0,0,1,2,40,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1908,S_EMPEL_2,Guardian Stone,Guardian Stone,90,120000,0,0,0,0,1,2,40,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1909,OBJ_A,Food Storage,Food Storage,90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1910,OBJ_B,Food Depot,Food Depot,90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1911,OBJ_NEUTRAL,Neutrality Flag,Neutrality Flag,90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1912,OBJ_FLAG_A,Lion Flag,Lion Flag,90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1913,OBJ_FLAG_B,Eagle Flag,Eagle Flag,90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1914,OBJ_A2,Blue Crystal,Blue Crystal,90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1915,OBJ_B2,Pink Crystal,Pink Crystal,90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1905,BARRICADE,Barricade,Barricade,98,120000,0,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1906,BARRICADE_,Barricade,Barricade,98,150,0,0,0,1,0,0,100,99,1,17,1,80,126,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1907,S_EMPEL_1,Guardian Stone,Guardian Stone,90,120000,0,0,0,0,1,2,40,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1908,S_EMPEL_2,Guardian Stone,Guardian Stone,90,120000,0,0,0,0,1,2,40,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1909,OBJ_A,Food Storage,Food Storage,90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1910,OBJ_B,Food Depot,Food Depot,90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1911,OBJ_NEUTRAL,Neutrality Flag,Neutrality Flag,90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1912,OBJ_FLAG_A,Lion Flag,Lion Flag,90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1913,OBJ_FLAG_B,Eagle Flag,Eagle Flag,90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1914,OBJ_A2,Blue Crystal,Blue Crystal,90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1915,OBJ_B2,Pink Crystal,Pink Crystal,90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Satan Morroc -1916,MOROCC,Satan Morroc,Satan Morroc,99,8388607,0,6700000,4500000,2,32000,32001,29,65,140,160,30,250,180,50,10,12,2,6,87,0x37B5,100,76,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1917,MOROCC_,Wounded Morroc,Wounded Morroc,99,8388607,0,3600000,3000000,2,15000,18000,29,65,140,160,30,250,180,40,10,12,2,6,87,0x37B5,100,576,540,432,3600000,5000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0 -1918,MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,97,190000,0,61000,140000,1,7000,8600,20,35,150,152,30,180,186,70,10,12,2,8,27,0x37B5,110,576,540,432,0,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0 -1919,MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,97,190000,0,65000,120000,1,3500,5100,20,5,120,83,20,10,166,50,10,12,1,6,67,0x37B5,150,576,540,432,0,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0 -1920,MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,96,143000,0,50000,80000,2,3400,5000,15,37,40,200,20,60,100,37,10,12,1,6,69,0x37B5,150,212,540,432,0,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0 -1921,MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,98,150000,0,51000,70000,1,3000,4025,18,54,60,60,30,220,125,20,10,12,1,6,68,0x37B5,150,1536,540,432,0,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0 -1922,G_MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,97,1200000,0,0,0,1,16000,16001,20,35,150,152,30,180,186,70,10,12,2,8,27,0x37B5,110,576,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1923,G_MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,97,1200000,0,0,0,1,16000,16001,20,5,120,83,20,10,166,50,10,12,1,6,67,0x37B5,150,576,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1924,G_MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,96,1200000,0,0,0,2,16000,16001,15,37,40,200,20,60,100,37,10,12,1,6,69,0x37B5,150,212,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1925,G_MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,98,1200000,0,0,0,1,16000,16001,18,54,60,60,30,220,125,20,10,12,1,6,68,0x37B5,150,1536,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1916,MOROCC,Satan Morroc,Satan Morroc,99,8388607,0,6700000,4500000,2,32000,32001,29,65,140,160,30,250,180,50,10,12,2,6,87,0x37B5,100,76,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1917,MOROCC_,Wounded Morroc,Wounded Morroc,99,8388607,0,3600000,3000000,2,15000,18000,29,65,140,160,30,250,180,40,10,12,2,6,87,0x37B5,100,576,540,432,3600000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0 +1918,MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,97,190000,0,61000,140000,1,7000,8600,20,35,150,152,30,180,186,70,10,12,2,8,27,0x37B5,110,576,540,432,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0 +1919,MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,97,190000,0,65000,120000,1,3500,5100,20,5,120,83,20,10,166,50,10,12,1,6,67,0x37B5,150,576,540,432,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0 +1920,MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,96,143000,0,50000,80000,2,3400,5000,15,37,40,200,20,60,100,37,10,12,1,6,69,0x37B5,150,212,540,432,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0 +1921,MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,98,150000,0,51000,70000,1,3000,4025,18,54,60,60,30,220,125,20,10,12,1,6,68,0x37B5,150,1536,540,432,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0 +1922,G_MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,97,1200000,0,0,0,1,16000,16001,20,35,150,152,30,180,186,70,10,12,2,8,27,0x37B5,110,576,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1923,G_MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,97,1200000,0,0,0,1,16000,16001,20,5,120,83,20,10,166,50,10,12,1,6,67,0x37B5,150,576,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1924,G_MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,96,1200000,0,0,0,2,16000,16001,15,37,40,200,20,60,100,37,10,12,1,6,69,0x37B5,150,212,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1925,G_MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,98,1200000,0,0,0,1,16000,16001,18,54,60,60,30,220,125,20,10,12,1,6,68,0x37B5,150,1536,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // God Item Creation (WoE SE); Catacombs -1926,JAKK_H,Jakk,Jakk,38,300,0,0,0,1,5,10,5,30,1,38,38,43,75,45,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,0,1062,3000,1062,3000,0,0,535,3000,535,3000,535,3000,0,0,0,0,0,0,0,0 -1927,WHISPER_H,Whisper,Whisper,34,100,0,0,0,1,5,10,0,45,1,51,14,0,60,0,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,0,1059,5000,1059,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1928,DEVIRUCHI_H,Deviruchi,Deviruchi,46,500,0,0,0,1,5,10,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1929,BAPHOMET_I,Great Demon Baphomet,Great Demon Baphomet,98,4520000,0,4520000,2520000,2,16000,16001,35,45,1,152,5,85,200,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1 -1930,PIAMETTE,Piamette,Piamette,90,3000000,0,0,0,2,15000,20000,35,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1931,WISH_MAIDEN,Wish Maiden,Wish Maiden,98,3567200,0,0,0,3,32000,32001,25,42,100,120,30,120,220,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1932,GARDEN_KEEPER,Garden Keeper,Garden Keeper,80,100,0,0,0,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1933,GARDEN_WATCHER,Garden Watcher,Garden Watcher,81,300000,0,0,0,1,1666,2609,55,55,30,74,56,126,145,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1934,BLUE_FLOWER,Blue Flower,Blue Flower,98,10000,0,0,0,0,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1935,RED_FLOWER,Red Flower,Red Flower,98,10000,0,0,0,0,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1936,YELL_FLOWER,Yellow Flower,Yellow Flower,98,10000,0,0,0,0,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1937,CONSTANT_,Constant,Constant,55,10000,0,0,0,1,460,580,12,12,50,28,26,47,66,14,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1938,TREASURE_BOX41,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7830,80,658,500,12999,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0 -1939,TREASURE_BOX42,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7831,80,658,500,12999,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0 -1940,TREASURE_BOX43,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7832,80,658,500,12999,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0 -1941,TREASURE_BOX44,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7833,80,658,500,12999,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0 -1942,TREASURE_BOX45,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7834,80,658,500,12999,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0 -1943,TREASURE_BOX46,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7835,80,658,500,12999,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0 -1944,TREASURE_BOX47,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7836,80,658,500,12999,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0 -1945,TREASURE_BOX48,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7837,80,658,500,12999,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0 -1946,TREASURE_BOX49,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7838,80,658,500,12999,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0 -1947,PIAMETTE_,Piamette,Piamette,90,500000,0,0,0,2,5000,6000,35,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1948,G_YGNIZEM,Ygnizem,Egnigem Cenia,58,11200,0,0,0,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1949,B_S_GUARDIAN,Camp Guardian,Camp Guardian,86,457599,0,0,0,2,7590,9140,60,33,110,40,5,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1950,B_B_GUARDIAN,Camp Guardian,Camp Guardian,80,241212,0,0,0,12,1840,2520,40,62,95,80,5,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1926,JAKK_H,Jakk,Jakk,38,300,0,0,0,1,5,10,5,30,1,38,38,43,75,45,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,3000,1062,3000,0,0,535,3000,535,3000,535,3000,0,0,0,0,0,0,0,0 +1927,WHISPER_H,Whisper,Whisper,34,100,0,0,0,1,5,10,0,45,1,51,14,0,60,0,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1059,5000,1059,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1928,DEVIRUCHI_H,Deviruchi,Deviruchi,46,500,0,0,0,1,5,10,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1929,BAPHOMET_I,Great Demon Baphomet,Great Demon Baphomet,98,4520000,0,4520000,2520000,2,16000,16001,35,45,1,152,5,85,200,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1 +1930,PIAMETTE,Piamette,Piamette,90,3000000,0,0,0,2,15000,20000,35,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1931,WISH_MAIDEN,Wish Maiden,Wish Maiden,98,3567200,0,0,0,3,32000,32001,25,42,100,120,30,120,220,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1932,GARDEN_KEEPER,Garden Keeper,Garden Keeper,80,100,0,0,0,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1933,GARDEN_WATCHER,Garden Watcher,Garden Watcher,81,300000,0,0,0,1,1666,2609,55,55,30,74,56,126,145,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1934,BLUE_FLOWER,Blue Flower,Blue Flower,98,10000,0,0,0,0,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1935,RED_FLOWER,Red Flower,Red Flower,98,10000,0,0,0,0,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1936,YELL_FLOWER,Yellow Flower,Yellow Flower,98,10000,0,0,0,0,1,2,100,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1937,CONSTANT_,Constant,Constant,55,10000,0,0,0,1,460,580,12,12,50,28,26,47,66,14,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1938,TREASURE_BOX41,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7830,80,658,500,12999,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0 +1939,TREASURE_BOX42,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7831,80,658,500,12999,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0 +1940,TREASURE_BOX43,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7832,80,658,500,12999,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0 +1941,TREASURE_BOX44,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7833,80,658,500,12999,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0 +1942,TREASURE_BOX45,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7834,80,658,500,12999,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0 +1943,TREASURE_BOX46,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7835,80,658,500,12999,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0 +1944,TREASURE_BOX47,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7836,80,658,500,12999,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0 +1945,TREASURE_BOX48,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7837,80,658,500,12999,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0 +1946,TREASURE_BOX49,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7838,80,658,500,12999,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0 +1947,PIAMETTE_,Piamette,Piamette,90,500000,0,0,0,2,5000,6000,35,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1948,G_YGNIZEM,Ygnizem,Egnigem Cenia,58,11200,0,0,0,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1949,B_S_GUARDIAN,Camp Guardian,Camp Guardian,86,457599,0,0,0,2,7590,9140,60,33,110,40,5,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1950,B_B_GUARDIAN,Camp Guardian,Camp Guardian,80,241212,0,0,0,12,1840,2520,40,62,95,80,5,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Ravies Sister's 'Valyrie's Gift' monsters. -1951,CRYSTAL_6,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,607,200,0,0,0,0 -1952,CRYSTAL_7,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,608,250,0,0,0,0 -1953,CRYSTAL_8,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,604,300,0,0,0,0 -1954,CRYSTAL_9,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,603,100,0,0,0,0 +1951,CRYSTAL_6,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,607,200,0,0,0,0 +1952,CRYSTAL_7,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,608,250,0,0,0,0 +1953,CRYSTAL_8,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,604,300,0,0,0,0 +1954,CRYSTAL_9,Crystal,Crystal,1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,603,100,0,0,0,0 // ? -1955,TREASURE_BOX_I,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,0,12281,3000,7849,4000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1955,TREASURE_BOX_I,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12281,3000,7849,4000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Endless Tower -1956,NAGHT_SIEGER,Naght Sieger,Naght Sieger,99,8000000,0,4000000,2000000,2,32000,64000,60,40,1,50,80,220,220,30,10,12,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,0,0 -1957,ENTWEIHEN,Entweihen Crothen,Entweihen Crothen,90,5400000,0,2700000,1350000,12,32000,40000,44,66,1,70,40,250,220,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1 -1958,G_ENTWEIHEN_R,Thorny Skeleton,Thorny Skeleton,89,5400000,0,0,0,12,4040,4720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1959,G_ENTWEIHEN_H,Thorn of Recovery,Thorn of Recovery,89,350000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1960,G_ENTWEIHEN_M,Thorn of Magic,Thorn of Magic,89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1961,G_ENTWEIHEN_S,Thorn of Purification,Thorn of Purification,89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1956,NAGHT_SIEGER,Naght Sieger,Naght Sieger,99,8000000,0,4000000,2000000,2,32000,64000,60,40,1,50,80,220,220,30,10,12,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,0,0 +1957,ENTWEIHEN,Entweihen Crothen,Entweihen Crothen,90,5400000,0,2700000,1350000,12,32000,40000,44,66,1,70,40,250,220,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1 +1958,G_ENTWEIHEN_R,Thorny Skeleton,Thorny Skeleton,89,5400000,0,0,0,12,4040,4720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1959,G_ENTWEIHEN_H,Thorn of Recovery,Thorn of Recovery,89,350000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1960,G_ENTWEIHEN_M,Thorn of Magic,Thorn of Magic,89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1961,G_ENTWEIHEN_S,Thorn of Purification,Thorn of Purification,89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Additional Monsters -1962,ANTONIO_,Christmas Thief,Christmas Thief,10,15,0,0,0,1,13,20,100,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1963,P_CHUNG_E,New Year Doll,New Year Doll,49,23900,0,2396,993,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1964,NIGHTMARE_T,Nightmare,Nightmare,30,2000,0,512,387,1,100,200,0,40,1,100,1,1,100,1,10,12,2,2,68,0x120,150,1816,816,432,0,0,0,0,0,0,0,0,505,2000,510,3000,7913,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1965,M_WILD_ROSE,Wild Rose,Wild Rose,38,4000,50,0,0,1,100,145,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1966,M_DOPPELGANGER,Doppelganger,Doppelganger,72,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1967,M_YGNIZEM,Ygnizem,Egnigem Cenia,79,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1968,E_STROUF,Strouf,Strouf,48,11990,0,6160,4196,1,200,1250,5,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1 -1969,E_MARC,Marc,Marc,36,6900,0,1976,1250,1,220,280,5,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1 -1970,E_OBEAUNE,Obeune,Obeune,31,3952,0,1288,814,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1 -1971,E_VADON,Vadon,Vadon,19,1017,0,270,170,1,74,85,20,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1 -1972,E_MARINA,Marina,Marina,21,2087,0,436,280,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1 -1973,E_PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,938,400,512,1000,713,1500,12303,3000,0,0,0,0,0,0,0,0,0,0 +1962,ANTONIO_,Christmas Thief,Christmas Thief,10,15,0,0,0,1,13,20,100,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1963,P_CHUNG_E,New Year Doll,New Year Doll,49,23900,0,2396,993,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1964,NIGHTMARE_T,Nightmare,Nightmare,30,2000,0,512,387,1,100,200,0,40,1,100,1,1,100,1,10,12,2,2,68,0x120,150,1816,816,432,0,0,0,0,0,0,0,505,2000,510,3000,7913,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1965,M_WILD_ROSE,Wild Rose,Wild Rose,38,4000,50,0,0,1,100,145,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1966,M_DOPPELGANGER,Doppelganger,Doppelganger,72,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1967,M_YGNIZEM,Ygnizem,Egnigem Cenia,79,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1968,E_STROUF,Strouf,Strouf,48,11990,0,6160,4196,1,200,1250,5,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1 +1969,E_MARC,Marc,Marc,36,6900,0,1976,1250,1,220,280,5,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1 +1970,E_OBEAUNE,Obeune,Obeune,31,3952,0,1288,814,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1 +1971,E_VADON,Vadon,Vadon,19,1017,0,270,170,1,74,85,20,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1 +1972,E_MARINA,Marina,Marina,21,2087,0,436,280,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1 +1973,E_PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,909,7000,938,400,512,1000,713,1500,12303,3000,0,0,0,0,0,0,0,0,0,0 // WoE SE Guild Dungeon -1974,BANSHEE_MASTER,Banshee Master,Banshee Master,84,47222,0,30000,24000,2,2666,3609,20,40,30,74,1,180,105,1,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,7054,5335,7751,3000,2365,10,2748,2,2528,10,934,1500,2135,20,0,0,0,0,4450,1 -1975,BEHOLDER_MASTER,Beholder Master,Beholder master,70,24150,0,9000,11400,6,1723,2300,17,30,60,62,25,89,85,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,603,2,2749,2,0,0,0,0,0,0 -1976,COBALT_MINERAL,Cobalt Mineral,Cobalt Mineral,72,29665,0,12332,10379,1,1446,2979,40,30,60,77,35,57,77,32,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,714,2 -1977,HEAVY_METALING,Heavy Metaling,Heavy Metaling,73,28433,0,9320,8831,1,1350,1700,40,30,30,65,28,40,77,2,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,0,0 -1978,HELL_APOCALIPS,Hell Apocalips,Hell Apocalypse,86,65433,0,46666,32000,2,5733,6073,62,23,1,48,30,98,110,85,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,0,7095,5335,999,2500,7094,2400,7093,2200,2506,20,985,5,2391,1,0,0,0,0,1484,1 -1979,ZAKUDAM,Zukadam,Zakudam,82,43699,0,27213,16300,3,2000,3227,30,30,65,65,35,75,80,15,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,0,0 -1980,KUBLIN,Kubkin,Kublin,85,1176000,0,100000,100000,1,1180,1400,20,10,1,106,25,40,72,20,10,12,1,7,22,0x37B5,100,964,648,300,100000,5000,6010,10000,0,0,0,0,998,270,911,9000,756,43,2297,3,0,0,0,0,507,1800,0,0,0,0,0,0 +1974,BANSHEE_MASTER,Banshee Master,Banshee Master,84,47222,0,30000,24000,2,2666,3609,20,40,30,74,1,180,105,1,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7054,5335,7751,3000,2365,10,2748,2,2528,10,934,1500,2135,20,0,0,0,0,4450,1 +1975,BEHOLDER_MASTER,Beholder Master,Beholder master,70,24150,0,9000,11400,6,1723,2300,17,30,60,62,25,89,85,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,603,2,2749,2,0,0,0,0,0,0 +1976,COBALT_MINERAL,Cobalt Mineral,Cobalt Mineral,72,29665,0,12332,10379,1,1446,2979,40,30,60,77,35,57,77,32,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,714,2 +1977,HEAVY_METALING,Heavy Metaling,Heavy Metaling,73,28433,0,9320,8831,1,1350,1700,40,30,30,65,28,40,77,2,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,0,0 +1978,HELL_APOCALIPS,Hell Apocalips,Hell Apocalypse,86,65433,0,46666,32000,2,5733,6073,62,23,1,48,30,98,110,85,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,7095,5335,999,2500,7094,2400,7093,2200,2506,20,985,5,2391,1,0,0,0,0,1484,1 +1979,ZAKUDAM,Zukadam,Zakudam,82,43699,0,27213,16300,3,2000,3227,30,30,65,65,35,75,80,15,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,0,0 +1980,KUBLIN,Kubkin,Kublin,85,1176000,0,100000,100000,1,1180,1400,20,10,1,106,25,40,72,20,10,12,1,7,22,0x37B5,100,964,648,300,100000,6010,10000,0,0,0,0,998,270,911,9000,756,43,2297,3,0,0,0,0,507,1800,0,0,0,0,0,0 // Orc Dungeon Instance -1981,I_HIGH_ORC,Safeguard Chief,Safeguard Chief,88,111111,0,3618,1639,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1982,I_ORC_ARCHER,Orc Sniper,Orc Sniper,85,62000,0,1729,1787,9,1310,1390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1983,I_ORC_SKELETON,Depraved Orc Spirit,Depraved Orc Spirit,87,80087,0,4501,67,1,896,1159,14,30,1,31,41,93,67,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1984,I_ORC_LADY,Shaman Cargalache,Shaman Cargalache,58,50058,0,4870,98,1,823,1212,35,10,60,35,52,18,79,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1981,I_HIGH_ORC,Safeguard Chief,Safeguard Chief,88,111111,0,3618,1639,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1982,I_ORC_ARCHER,Orc Sniper,Orc Sniper,85,62000,0,1729,1787,9,1310,1390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1983,I_ORC_SKELETON,Depraved Orc Spirit,Depraved Orc Spirit,87,80087,0,4501,67,1,896,1159,14,30,1,31,41,93,67,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1984,I_ORC_LADY,Shaman Cargalache,Shaman Cargalache,58,50058,0,4870,98,1,823,1212,35,10,60,35,52,18,79,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Another World (13.1) -1985,DANDELION,Dandelion Member,Dandelion Member,37,5176,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1986,TATACHO,Tatacho,Tatacho,106,39500,0,23700,13825,2,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,1000,768,360,0,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,516,3000,0,0,0,0,0,0,4442,1 -1987,CENTIPEDE,Centipede,Centipede,110,45662,0,27397,15982,2,15000,16000,40,25,112,43,30,5,131,12,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4447,1 -1988,NEPENTHES,Nepenthes,Nepenthes,75,10350,0,5175,2587,7,415,565,25,10,75,20,30,5,65,5,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,0,0 -1989,HILLSRION,Hillslion,Hillslion,105,34600,0,20760,12110,1,5000,5500,28,15,105,60,30,15,115,5,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7063,120,7054,4850,0,0,0,0,4453,1 -1990,HARDROCK_MOMMOTH,Hardrock Mammoth,Hardrock Mammoth,115,4137000,0,827400,413700,2,30000,36000,50,60,115,35,1,30,150,15,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,0,0 -1991,TENDRILRION,Tendrillion,Tendrilion,113,3657330,0,731466,365733,2,20000,24000,33,30,113,60,1,45,147,13,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6020,4000,7197,5335,7008,4850,0,0,0,0,0,0 -1992,CORNUS,Cornus,Cornus,108,41220,0,30854,4427,2,12000,13000,35,80,110,45,80,200,105,10,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,944,6000,2257,2,1420,1,0,0,0,0,4448,1 -1993,NAGA,Naga,Naga,111,46708,0,30360,16348,3,8000,8800,38,15,113,42,30,108,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,926,5000,936,3500,954,2000,1408,20,0,0,0,0,0,0 -1994,LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,104,32600,0,16300,11410,1,9000,9900,29,5,104,56,30,20,116,4,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,2744,2,955,9000,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1 -1995,PINGUICULA,Pinguicula,Pinguicula,80,13680,0,6840,3420,1,600,720,25,5,102,23,30,10,86,2,10,12,1,3,62,0x308D,150,700,600,360,0,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,712,1000,0,0,0,0,0,0 -//1996,BACSOJIN_T,Bacsojin,White Lady,85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,5411,500,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1997,G_TATACHO,Tatacho,Tatacho,106,39500,0,0,0,2,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1998,G_HILLSRION,Hillslion,Hillslion,105,34600,0,0,0,1,5000,5500,28,15,105,60,30,15,115,5,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1999,CENTIPEDE_LARVA,Centipede Larva,Centipede Larva,80,12000,0,3600,4800,2,948,1115,20,20,80,33,15,3,75,10,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1 -//2000,M_GAMEMASTER,Male Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2001,F_GAMEMASTER,Female Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2002,T_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,50,8000,0,3982,1766,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,0,12190,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2003,T_BACSOJIN,White Lady,White Lady,72,56380,0,0,0,2,560,1446,10,15,38,65,34,80,102,35,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0 -//2004,T_WICKED_NYMPH,Evil Nymph,Evil Nymph,63,16029,0,0,0,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0 -//2005,T_PLASMA_B,Plasma,Plasma,44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0 -//2006,T_PLASMA_P,Plasma,Plasma,49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0 -//2007,T_PLASMA_R,Plasma,Plasma,43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0 -2008,WOOMAWANG,Woomawang,Woomawang,82,4000000,0,100000,100000,3,8000,10000,40,40,60,110,200,250,166,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2009,WOOMAWANG_,Woomawang,Woomawang,82,2000000,0,100000,100000,1,16000,20000,40,40,60,110,200,250,166,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2010,G_MAJORUROS,Ox,Ox,66,500000,0,10,10,1,1200,3200,25,15,65,50,20,20,85,48,10,12,2,6,28,0x120,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2011,E_GHOUL,Ghoul,Ghoul,40,99999,0,1088,622,1,2100,2500,100,20,1,20,29,0,180,20,10,12,1,1,49,0x120,100,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2012,E_ZOMBIE,Zombie,Zombie,15,99999,0,50,33,1,335,395,100,10,1,8,7,0,60,0,10,12,1,1,29,0x120,150,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1985,DANDELION,Dandelion Member,Dandelion Member,37,5176,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1986,TATACHO,Tatacho,Tatacho,106,39500,0,23700,13825,2,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,1000,768,360,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,516,3000,0,0,0,0,0,0,4442,1 +1987,CENTIPEDE,Centipede,Centipede,110,45662,0,27397,15982,2,15000,16000,40,25,112,43,30,5,131,12,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4447,1 +1988,NEPENTHES,Nepenthes,Nepenthes,75,10350,0,5175,2587,7,415,565,25,10,75,20,30,5,65,5,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,0,0 +1989,HILLSRION,Hillslion,Hillslion,105,34600,0,20760,12110,1,5000,5500,28,15,105,60,30,15,115,5,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7063,120,7054,4850,0,0,0,0,4453,1 +1990,HARDROCK_MOMMOTH,Hardrock Mammoth,Hardrock Mammoth,115,4137000,0,827400,413700,2,30000,36000,50,60,115,35,1,30,150,15,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,0,0 +1991,TENDRILRION,Tendrillion,Tendrilion,113,3657330,0,731466,365733,2,20000,24000,33,30,113,60,1,45,147,13,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6020,4000,7197,5335,7008,4850,0,0,0,0,0,0 +1992,CORNUS,Cornus,Cornus,108,41220,0,30854,4427,2,12000,13000,35,80,110,45,80,200,105,10,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,944,6000,2257,2,1420,1,0,0,0,0,4448,1 +1993,NAGA,Naga,Naga,111,46708,0,30360,16348,3,8000,8800,38,15,113,42,30,108,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,926,5000,936,3500,954,2000,1408,20,0,0,0,0,0,0 +1994,LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,104,32600,0,16300,11410,1,9000,9900,29,5,104,56,30,20,116,4,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,955,9000,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1 +1995,PINGUICULA,Pinguicula,Pinguicula,80,13680,0,6840,3420,1,600,720,25,5,102,23,30,10,86,2,10,12,1,3,62,0x308D,150,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,712,1000,0,0,0,0,0,0 +//1996,BACSOJIN_T,Bacsojin,White Lady,85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,500,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1997,G_TATACHO,Tatacho,Tatacho,106,39500,0,0,0,2,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1998,G_HILLSRION,Hillslion,Hillslion,105,34600,0,0,0,1,5000,5500,28,15,105,60,30,15,115,5,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1999,CENTIPEDE_LARVA,Centipede Larva,Centipede Larva,80,12000,0,3600,4800,2,948,1115,20,20,80,33,15,3,75,10,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1 +//2000,M_GAMEMASTER,Male Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2001,F_GAMEMASTER,Female Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2002,T_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,50,8000,0,3982,1766,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,12190,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2003,T_BACSOJIN,White Lady,White Lady,72,56380,0,0,0,2,560,1446,10,15,38,65,34,80,102,35,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0 +//2004,T_WICKED_NYMPH,Evil Nymph,Evil Nymph,63,16029,0,0,0,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0 +//2005,T_PLASMA_B,Plasma,Plasma,44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0 +//2006,T_PLASMA_P,Plasma,Plasma,49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0 +//2007,T_PLASMA_R,Plasma,Plasma,43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0 +2008,WOOMAWANG,Woomawang,Woomawang,82,4000000,0,100000,100000,3,8000,10000,40,40,60,110,200,250,166,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2009,WOOMAWANG_,Woomawang,Woomawang,82,2000000,0,100000,100000,1,16000,20000,40,40,60,110,200,250,166,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2010,G_MAJORUROS,Ox,Ox,66,500000,0,10,10,1,1200,3200,25,15,65,50,20,20,85,48,10,12,2,6,28,0x120,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2011,E_GHOUL,Ghoul,Ghoul,40,99999,0,1088,622,1,2100,2500,100,20,1,20,29,0,180,20,10,12,1,1,49,0x120,100,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2012,E_ZOMBIE,Zombie,Zombie,15,99999,0,50,33,1,335,395,100,10,1,8,7,0,60,0,10,12,1,1,29,0x120,150,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Another World (13.2) -2013,DRACO,Draco,Draco,82,18300,0,6100,4100,1,410,710,10,5,1,23,30,34,62,2,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,0,0,0,0,0,0,4444,1 -2014,DRACO_EGG,Draco Egg,Draco Egg,67,9822,0,1200,1600,0,1,2,56,40,1,1,56,34,1,63,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2015,PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,83,8780,0,7740,5200,1,600,1450,15,5,1,23,22,12,89,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,0,0,0,0,0,0,0,0,0,0 -2016,AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,83,33220,0,5430,15300,1,400,1600,8,12,1,23,19,87,77,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,4443,1 -2017,RATA,Rata,Rata,107,216600,0,70012,34000,1,8000,15000,32,52,1,51,22,132,99,15,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,0,0,0,0,0,0,0,0,0,0,0,0 -2018,DUNEYRR,Duneyrr,Duneyrr,107,265100,0,83030,52000,1,16000,19000,39,35,1,60,45,89,105,15,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,0,0,0,0,0,0,0,0 -2019,ANCIENT_TREE,Ancient Tree,Ancient Tree,102,30030,0,11020,8900,1,13200,17400,39,43,1,30,73,58,45,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,0,0,0,0,0,0,0,0,0,0 -2020,RHYNCHO,Rhyncho,Rhyncho,85,18900,0,2040,6000,1,350,2300,5,19,1,56,12,35,89,10,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2021,PHYLLA,Phylla,Phylla,85,23880,0,3040,6600,10,350,2550,8,22,1,59,15,25,99,10,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2022,S_NYDHOG,Nidhoggr's Shadow,Nidhoggr's Shadow,117,3450000,0,4800000,3900000,2,17000,49000,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2400000,1000,0,0,0,0,0,0,6091,5000,7444,5000,2610,5000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,0,0 -2023,DARK_SHADOW,Dark Shadow,Dark Shadow,114,42900,0,21000,14000,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,0,0,0,0,0,0,0,0 -2024,BRADIUM_GOLEM,Bradium Golem,Bradium Golem,101,45200,0,14000,18920,1,12000,13000,78,22,0,10,82,25,60,12,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,0,0,0,0,0,0,0,0,0,0,0,0 -//2025,MYSTCASE_EVENT,Mystcase,Mystcase,10,15,0,0,0,1,160,360,99,99,65,50,25,5,48,75,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,0,14550,5000,14546,5000,12355,50,6092,2000,7175,2000,7174,2000,529,3000,0,0,0,0,530,3000 -2026,DANDELION_,Runaway Dandelion Member,Runaway Dandelion Member,90,552000,0,50000,25000,1,3050,4300,25,35,1,66,66,45,88,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,0,0,0,0,902,2000 -2027,G_DARK_SHADOW,Dark Shadow,Dark Shadow,114,42900,0,0,0,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2028,E_MINOROUS,Minorous,Minorous,1,741,0,0,0,1,30,48,2,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2029,E_MINOROUS_,Minorous,Minorous,10,15,0,10,0,1,100,150,100,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,0,941,10,11708,2000,11708,4000,11708,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1 -//2030,HIDEN_PRIEST,Hiden Priest,Hiden Priest,90,240000,0,0,0,2,1300,1983,0,30,1,32,40,100,82,40,10,12,2,6,89,0x120,150,432,432,360,0,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2031,DANDELION_H,Dandelion,Dandelion,80,120000,0,0,0,1,305,610,0,10,1,19,32,0,63,20,10,12,1,7,47,0x120,250,1772,72,384,0,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2032,GUARDIAN_FOREST,Forest Guardian,Forest Guardian,50,8578,0,0,0,1,1000,1103,15,25,1,75,55,1,93,45,10,12,0,6,27,0x120,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2033,GOLDEN_TULIP,Golden Tulip,Golden Tulip,1,299,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2034,M_DESERT_WOLF_B,Baby Desert Wolf,Baby Desert Wolf,9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2035,NIHILITY_ZEM,Nihility Zem,Nihility Zem,90,200000,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x120,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2036,VALKYRIE_N,Valkyrie Randgris,Valkyrie Randgris,53,11280,0,0,0,1,780,930,10,20,1,24,39,0,72,25,10,12,1,1,69,0x120,170,576,576,480,0,0,0,0,0,0,0,0,6154,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2037,VALKYRIE_A,Valkyrie Randgris,Valkyrie Randgris,90,5000,15,0,0,1,10,160,10,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2038,VALKYRIE_B,Valkyrie Randgris,Valkyrie Randgris,90,10000,15,0,0,1,300,450,10,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2039,EXECUTIONER_R,Executioner,Executioner,65,28980,0,0,0,2,570,950,35,35,64,85,40,25,88,60,10,12,2,0,47,0x120,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2040,TIRFING_R,Tirfing,Ogretooth,71,29900,0,0,0,1,950,1146,30,35,58,87,55,35,132,65,10,12,1,0,67,0x120,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2041,MYSTELTAINN_R,Mysteltainn,Mysteltainn,76,33350,0,0,0,2,1160,1440,30,30,77,139,80,35,159,65,10,12,2,0,87,0x120,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2013,DRACO,Draco,Draco,82,18300,0,6100,4100,1,410,710,10,5,1,23,30,34,62,2,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,0,0,0,0,0,0,4444,1 +2014,DRACO_EGG,Draco Egg,Draco Egg,67,9822,0,1200,1600,0,1,2,56,40,1,1,56,34,1,63,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2015,PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,83,8780,0,7740,5200,1,600,1450,15,5,1,23,22,12,89,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,0,0,0,0,0,0,0,0,0,0 +2016,AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,83,33220,0,5430,15300,1,400,1600,8,12,1,23,19,87,77,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,4443,1 +2017,RATA,Rata,Rata,107,216600,0,70012,34000,1,8000,15000,32,52,1,51,22,132,99,15,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,0,0,0,0,0,0,0,0,0,0,0,0 +2018,DUNEYRR,Duneyrr,Duneyrr,107,265100,0,83030,52000,1,16000,19000,39,35,1,60,45,89,105,15,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,0,0,0,0,0,0,0,0 +2019,ANCIENT_TREE,Ancient Tree,Ancient Tree,102,30030,0,11020,8900,1,13200,17400,39,43,1,30,73,58,45,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,0,0,0,0,0,0,0,0,0,0 +2020,RHYNCHO,Rhyncho,Rhyncho,85,18900,0,2040,6000,1,350,2300,5,19,1,56,12,35,89,10,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2021,PHYLLA,Phylla,Phylla,85,23880,0,3040,6600,10,350,2550,8,22,1,59,15,25,99,10,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2022,S_NYDHOG,Nidhoggr's Shadow,Nidhoggr's Shadow,117,3450000,0,4800000,3900000,2,17000,49000,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2400000,0,0,0,0,0,0,6091,5000,7444,5000,2610,5000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,0,0 +2023,DARK_SHADOW,Dark Shadow,Dark Shadow,114,42900,0,21000,14000,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,0,0,0,0,0,0,0,0 +2024,BRADIUM_GOLEM,Bradium Golem,Bradium Golem,101,45200,0,14000,18920,1,12000,13000,78,22,0,10,82,25,60,12,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,0,0,0,0,0,0,0,0,0,0,0,0 +//2025,MYSTCASE_EVENT,Mystcase,Mystcase,10,15,0,0,0,1,160,360,99,99,65,50,25,5,48,75,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,14550,5000,14546,5000,12355,50,6092,2000,7175,2000,7174,2000,529,3000,0,0,0,0,530,3000 +2026,DANDELION_,Runaway Dandelion Member,Runaway Dandelion Member,90,552000,0,50000,25000,1,3050,4300,25,35,1,66,66,45,88,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,0,0,0,0,902,2000 +2027,G_DARK_SHADOW,Dark Shadow,Dark Shadow,114,42900,0,0,0,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2028,E_MINOROUS,Minorous,Minorous,1,741,0,0,0,1,30,48,2,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2029,E_MINOROUS_,Minorous,Minorous,10,15,0,10,0,1,100,150,100,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,941,10,11708,2000,11708,4000,11708,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1 +//2030,HIDEN_PRIEST,Hiden Priest,Hiden Priest,90,240000,0,0,0,2,1300,1983,0,30,1,32,40,100,82,40,10,12,2,6,89,0x120,150,432,432,360,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2031,DANDELION_H,Dandelion,Dandelion,80,120000,0,0,0,1,305,610,0,10,1,19,32,0,63,20,10,12,1,7,47,0x120,250,1772,72,384,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2032,GUARDIAN_FOREST,Forest Guardian,Forest Guardian,50,8578,0,0,0,1,1000,1103,15,25,1,75,55,1,93,45,10,12,0,6,27,0x120,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2033,GOLDEN_TULIP,Golden Tulip,Golden Tulip,1,299,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2034,M_DESERT_WOLF_B,Baby Desert Wolf,Baby Desert Wolf,9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2035,NIHILITY_ZEM,Nihility Zem,Nihility Zem,90,200000,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x120,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2036,VALKYRIE_N,Valkyrie Randgris,Valkyrie Randgris,53,11280,0,0,0,1,780,930,10,20,1,24,39,0,72,25,10,12,1,1,69,0x120,170,576,576,480,0,0,0,0,0,0,0,6154,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2037,VALKYRIE_A,Valkyrie Randgris,Valkyrie Randgris,90,5000,15,0,0,1,10,160,10,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2038,VALKYRIE_B,Valkyrie Randgris,Valkyrie Randgris,90,10000,15,0,0,1,300,450,10,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2039,EXECUTIONER_R,Executioner,Executioner,65,28980,0,0,0,2,570,950,35,35,64,85,40,25,88,60,10,12,2,0,47,0x120,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2040,TIRFING_R,Tirfing,Ogretooth,71,29900,0,0,0,1,950,1146,30,35,58,87,55,35,132,65,10,12,1,0,67,0x120,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2041,MYSTELTAINN_R,Mysteltainn,Mysteltainn,76,33350,0,0,0,2,1160,1440,30,30,77,139,80,35,159,65,10,12,2,0,87,0x120,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //**** // NC Mechanic Summons -2042,SILVERSNIPER,Silver Sniper,Silver Sniper,100,4500,0,0,0,9,300,300,80,10,10,60,10,10,100,10,10,12,1,0,20,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2043,MAGICDECOY_FIRE,Magic Decoy Fire,Magic Decoy Fire,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,23,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2044,MAGICDECOY_WATER,Magic Decoy Water,Magic Decoy Water,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,21,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2045,MAGICDECOY_EARTH,Magic Decoy Earth,Magic Decoy Earth,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,22,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2046,MAGICDECOY_WIND,Magic Decoy Wind,Magic Decoy Wind,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,24,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2042,SILVERSNIPER,Silver Sniper,Silver Sniper,100,4500,0,0,0,9,300,300,80,10,10,60,10,10,100,10,10,12,1,0,20,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2043,MAGICDECOY_FIRE,Magic Decoy Fire,Magic Decoy Fire,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,23,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2044,MAGICDECOY_WATER,Magic Decoy Water,Magic Decoy Water,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,21,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2045,MAGICDECOY_EARTH,Magic Decoy Earth,Magic Decoy Earth,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,22,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2046,MAGICDECOY_WIND,Magic Decoy Wind,Magic Decoy Wind,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,24,0x3394,2000,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2047,W_NAGA,Naga,Naga,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2048,W_PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2049,W_BRADIUM_GOLEM,Bradium Golem,Bradium Golem,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2050,W_AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2051,E_BAPHOMET,Baphomet,Baphomet,1,1,0,0,0,1,1,2,1,0,1,1,1,1,1,1,10,12,2,6,20,0x120,100,768,768,576,0,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2052,E_DARK_LORD,Dark Lord,Dark Lord,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2053,NC_DIMIK,Dimik,Dimik,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2054,E_BATHORY,Bathory,Bathory,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2055,E_INCUBUS,Incubus,Incubus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2056,E_ZHERLTHSH,Zherlthsh,Zealotus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2057,E_CRAMP,Cramp,Cramp,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2058,M_MIMIC,Mimic,Mimic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2059,M_DISGUISE,Disguise,Disguise,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2060,M_ALICE,Alice,Alice,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2061,E_STAPO,Stapo,Stapo,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2062,E_POPORING,Poporing,poporing,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2063,E_DROPS,Drops,Drops,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2064,E_MAGMARING,Magmaring,Magmaring,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2065,E_METALING,Metaling,Metaling,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2066,E_ANOPHELES,Anopheles,Anopheles,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2067,E_ANOPHELES_,Anopheles,Anopheles,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2068,BOITATA,Boitata,Boitata,93,1283990,0,74288,77950,2,1060,2022,7,36,140,99,30,109,100,90,10,12,2,0,63,0x37B5,200,1150,1150,288,37144,10000,0,0,0,0,0,0,7444,5000,985,1000,984,1000,607,500,1377,100,1422,100,1471,100,0,0,0,0,0,0 -2069,IARA,Iara,Iara,79,5890,0,1070,890,1,171,270,0,39,69,14,41,60,69,20,10,12,1,5,61,0x91,200,672,380,288,0,0,0,0,0,0,0,0,950,9000,951,500,747,100,748,50,710,10,995,5,2334,1,0,0,0,0,0,0 -2070,PIRANHA,Piranha,Piranha,75,4522,0,899,1023,1,182,223,2,10,69,45,30,30,66,35,10,12,1,5,61,0x3295,200,768,768,384,0,0,0,0,0,0,0,0,963,9000,956,600,1053,500,1054,500,995,5,1249,5,13027,1,0,0,0,0,0,0 -2071,HEADLESS_MULE,Headless Mule,Headless Mule,80,6620,0,1011,1120,1,210,267,7,27,68,51,50,35,67,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,7120,4000,7097,1000,7122,1000,2317,5,1255,2,1269,1,2317,1,0,0,0,0,0,0 -2072,JAGUAR,Jaguar,Jaguar,71,3914,0,720,512,1,192,234,9,12,69,30,45,5,59,5,10,12,1,2,42,0x3885,150,1250,580,360,0,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0 -2073,TOUCAN,Toucan,Toucan,70,3640,0,659,544,1,166,201,3,10,54,14,40,35,44,10,10,12,0,2,44,0x3885,155,1450,960,480,0,0,0,0,0,0,0,0,917,3000,7053,1000,2612,200,508,100,510,50,0,0,0,0,0,0,0,0,0,0 -2074,CURUPIRA,Curupira,Curupira,68,3096,0,622,450,1,140,175,9,10,32,23,38,20,45,10,10,12,1,6,22,0x118B,250,530,530,384,0,0,0,0,0,0,0,0,517,3000,7267,500,757,250,1505,100,1011,10,0,0,0,0,0,0,0,0,0,0 -//2075,E_VADON_X,Vadon,Vadon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2076,S_WIND_GHOST,Wind Ghost,Wind Ghost,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2077,S_SKOGUL,Skogul,Skogul,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2078,S_SUCCUBUS,Succubus,Succubus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2079,CRYSTAL_H,Crystal,Crystal,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2080,CRYSTAL_L,Crystal,Crystal,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2081,E_HYDRA,Suspicious Hydra,Strange Hydra,34,854,1,0,0,7,1,2,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2082,G_PIRANHA,Piranha,Piranha,75,4522,0,0,0,1,182,223,2,10,69,45,30,30,66,35,10,12,1,5,61,0x3295,200,768,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2083,HORN_SCARABA,Scaraba,Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2084,HORN_SCARABA2,Scaraba,Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2085,ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2086,RAKE_SCARABA,Rake Scaraba,Rake Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2087,QUEEN_SCARABA,Queen Scaraba,Queen Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2088,HORN_SCARABA_EGG,Scaraba Egg,Scaraba Egg,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2089,HORN_SCARABA2_EGG,Scaraba Egg,Scaraba Egg,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2090,ANTLER_SCARABA_EGG,Antler Scaraba Egg,Antler Scaraba Egg,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2091,RAKE_SCARABA_EGG,Rake Scaraba Egg,Rake Scaraba Egg,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2092,DOLOMEDES,Dolomedes,Dolomedes,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2093,BOTARING,Botaring,Botaring,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2094,E_ORK_HERO2,Orc Hero,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2095,E_EDDGA,Eddga,Eddga,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2096,E_OSIRIS2,Osiris,Osiris,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2097,E_DRACULA,Dracula,Dracula,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2098,E_DOPPELGANGER,Doppelganger,Doppelganger,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2099,E_MISTRESS,Mistress,Mistress,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2100,E_BAPHOMET2,Baphomet,Baphomet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2101,E_LORD_OF_DEATH2,Lord of Death,Lord of the Dead,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2102,E_DARKLORD,Dark Lord,Dark Lord,1,1,0,0,0,1,1,2,1,0,1,1,1,1,1,1,10,12,2,6,20,0x120,100,868,768,480,0,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2103,E_KTULLANUX,Ktullanux,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2104,E_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2105,E_TURTLE_GENERAL,Turtle General,Turtle General,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2106,E_APOCALIPS_H,Vesper,Vesper,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2107,E_FALLINGBISHOP,Fallen Bishop,Fallen Bishop Hibram,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2108,E_GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2109,E_RANDGRIS,Valkyrie Randgris,Valkyrie Randgris1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2110,E_IFRIT,Ifrit,Ifrit,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2111,E_B_HARWORD,Whitesmith Harword,Whitesmith Howard,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2112,E_B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2113,E_B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2114,EL_AGNI_S,Agni,Agni,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2115,EL_AGNI_M,Agni,Agni,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2116,EL_AGNI_L,Agni,Agni,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2117,EL_AQUA_S,Aqua,Aqua,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2118,EL_AQUA_M,Aqua,Aqua,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2119,EL_AQUA_L,Aqua,Aqua,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2120,EL_VENTUS_S,Ventus,Ventus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2121,EL_VENTUS_M,Ventus,Ventus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2122,EL_VENTUS_L,Ventus,Ventus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2123,EL_TERA_S,Tera,Tera,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2124,EL_TERA_M,Tera,Tera,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2125,EL_TERA_L,Tera,Tera,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2047,W_NAGA,Naga,Naga,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2048,W_PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2049,W_BRADIUM_GOLEM,Bradium Golem,Bradium Golem,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2050,W_AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2051,E_BAPHOMET,Baphomet,Baphomet,1,1,0,0,0,1,1,2,1,0,1,1,1,1,1,1,10,12,2,6,20,0x120,100,768,768,576,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2052,E_DARK_LORD,Dark Lord,Dark Lord,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2053,NC_DIMIK,Dimik,Dimik,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2054,E_BATHORY,Bathory,Bathory,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2055,E_INCUBUS,Incubus,Incubus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2056,E_ZHERLTHSH,Zherlthsh,Zealotus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2057,E_CRAMP,Cramp,Cramp,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2058,M_MIMIC,Mimic,Mimic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2059,M_DISGUISE,Disguise,Disguise,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2060,M_ALICE,Alice,Alice,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2061,E_STAPO,Stapo,Stapo,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2062,E_POPORING,Poporing,poporing,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2063,E_DROPS,Drops,Drops,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2064,E_MAGMARING,Magmaring,Magmaring,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2065,E_METALING,Metaling,Metaling,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2066,E_ANOPHELES,Anopheles,Anopheles,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2067,E_ANOPHELES_,Anopheles,Anopheles,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2068,BOITATA,Boitata,Boitata,93,1283990,0,74288,77950,2,1060,2022,7,36,140,99,30,109,100,90,10,12,2,0,63,0x37B5,200,1150,1150,288,37144,0,0,0,0,0,0,7444,5000,985,1000,984,1000,607,500,1377,100,1422,100,1471,100,0,0,0,0,0,0 +2069,IARA,Iara,Iara,79,5890,0,1070,890,1,171,270,0,39,69,14,41,60,69,20,10,12,1,5,61,0x91,200,672,380,288,0,0,0,0,0,0,0,950,9000,951,500,747,100,748,50,710,10,995,5,2334,1,0,0,0,0,0,0 +2070,PIRANHA,Piranha,Piranha,75,4522,0,899,1023,1,182,223,2,10,69,45,30,30,66,35,10,12,1,5,61,0x3295,200,768,768,384,0,0,0,0,0,0,0,963,9000,956,600,1053,500,1054,500,995,5,1249,5,13027,1,0,0,0,0,0,0 +2071,HEADLESS_MULE,Headless Mule,Headless Mule,80,6620,0,1011,1120,1,210,267,7,27,68,51,50,35,67,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,7097,1000,7122,1000,2317,5,1255,2,1269,1,2317,1,0,0,0,0,0,0 +2072,JAGUAR,Jaguar,Jaguar,71,3914,0,720,512,1,192,234,9,12,69,30,45,5,59,5,10,12,1,2,42,0x3885,150,1250,580,360,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0 +2073,TOUCAN,Toucan,Toucan,70,3640,0,659,544,1,166,201,3,10,54,14,40,35,44,10,10,12,0,2,44,0x3885,155,1450,960,480,0,0,0,0,0,0,0,917,3000,7053,1000,2612,200,508,100,510,50,0,0,0,0,0,0,0,0,0,0 +2074,CURUPIRA,Curupira,Curupira,68,3096,0,622,450,1,140,175,9,10,32,23,38,20,45,10,10,12,1,6,22,0x118B,250,530,530,384,0,0,0,0,0,0,0,517,3000,7267,500,757,250,1505,100,1011,10,0,0,0,0,0,0,0,0,0,0 +//2075,E_VADON_X,Vadon,Vadon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2076,S_WIND_GHOST,Wind Ghost,Wind Ghost,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2077,S_SKOGUL,Skogul,Skogul,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2078,S_SUCCUBUS,Succubus,Succubus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2079,CRYSTAL_H,Crystal,Crystal,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2080,CRYSTAL_L,Crystal,Crystal,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2081,E_HYDRA,Suspicious Hydra,Strange Hydra,34,854,1,0,0,7,1,2,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2082,G_PIRANHA,Piranha,Piranha,75,4522,0,0,0,1,182,223,2,10,69,45,30,30,66,35,10,12,1,5,61,0x3295,200,768,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 diff --git a/db/re/mob_db.txt b/db/re/mob_db.txt index 904597977..300cb4f1c 100644 --- a/db/re/mob_db.txt +++ b/db/re/mob_db.txt @@ -1,1233 +1,1233 @@ // Monster Database // // Structure of Database : -// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper +// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper // Note: Keep the Sprite_Name field as it is (in the game client). You may change Name,JName field though -1001,SCORPION,Scorpion,Scorpion,16,153,1,108,81,1,33,40,16,5,12,15,10,5,19,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1 -1002,PORING,Poring,Poring,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1 -//1003,TESTEGG,Test Egg,Test Egg,2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1004,HORNET,Hornet,Hornet,11,90,1,81,60,1,13,16,7,1,12,24,4,5,6,5,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1 -1005,FARMILIAR,Familiar,Familiar,24,427,1,144,162,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1 -//1006,THIEF_BUG_LARVA,Thief Bug Larva,Thief Bug Larva,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1007,FABRE,Fabre,Fabre,6,72,1,54,41,1,12,15,24,0,12,5,5,5,12,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1 -1008,PUPA,Pupa,Pupa,4,66,1,36,27,1,1,4,24,2,11,1,3,3,8,6,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1 -1009,CONDOR,Condor,Condor,12,114,1,81,60,1,14,20,7,5,14,7,6,0,13,5,10,12,1,2,24,0x1089,150,1148,648,480,0,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1 -1010,WILOW,Willow,Willow,8,91,1,63,47,1,13,18,38,2,13,3,8,5,12,5,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1 -1011,CHONCHON,Chonchon,Chonchon,5,57,1,45,36,1,11,14,27,0,13,4,4,0,8,5,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1 -1012,RODA_FROG,Roda Frog,Roda Frog,13,160,1,90,68,1,19,23,12,5,12,6,4,0,14,9,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1 -1013,WOLF,Wolf,Wolf,45,1219,1,342,386,1,80,91,55,3,27,24,30,15,33,5,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1 -1014,SPORE,Spore,Spore,18,280,1,117,87,1,25,33,12,10,15,5,10,0,12,0,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1 -1015,ZOMBIE,Zombie,Zombie,17,234,1,117,87,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1 -1016,ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,50,1646,1,405,455,9,90,113,47,10,30,29,20,10,32,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1 -//1017,THIEF_BUG_FEMALE,Thief Bug Female,Thief Bug Female,10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,651,200,988,288,768,0,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1 -1018,CREAMY,Creamy,Creamy,23,378,1,144,162,1,61,62,28,20,16,1,1,0,1,20,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1 -1019,PECOPECO,Peco Peco,Peco Peco,25,446,1,162,183,1,76,83,48,0,21,10,13,5,28,5,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1 -1020,MANDRAGORA,Mandragora,Mandragora,13,156,1,97,73,4,20,23,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1 -//1021,THIEF_BUG_MALE,Thief Bug Male,Thief Bug Male,19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,653,300,988,288,768,0,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1 -//1022,WEREWOLF,Werewolf,Werewolf,80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,163,200,1500,768,652,0,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0 -1023,ORK_WARRIOR,Orc Warrior,Orc Warrior,44,1434,1,350,540,1,71,104,52,3,32,15,24,15,16,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,2147,3,0,0,0,0,4066,1 -1024,WORM_TAIL,Wormtail,Wormtail,17,200,1,117,87,1,22,27,16,0,10,6,14,5,12,35,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1 -1025,SNAKE,Snake,Boa,18,217,1,117,87,1,23,28,9,8,10,8,18,10,14,15,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1 -1026,MUNAK,Munak,Munak,58,2445,1,495,557,1,175,205,77,15,53,9,25,10,30,10,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1 -//1027,RAPTICE,Raptice,Raptice,17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,131,200,2000,1000,500,0,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1028,SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,34,804,1,216,243,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,2315,1,1216,50,0,0,0,0,4086,1 -1029,ISIS,Isis,Isis,59,2092,1,531,597,1,192,229,83,5,58,43,22,5,39,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1 -1030,ANACONDAQ,Anacondaq,Anacondaq,100,8510,1,1602,1202,1,388,443,92,0,79,46,28,43,56,25,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,0,6247,200,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1 -1031,POPORING,Poporing,Poporing,30,524,1,198,224,1,74,94,36,17,17,26,20,18,36,5,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,512,5,1207,5,512,250,0,0,0,0,4033,1 -1032,VERIT,Verit,Verit,52,1944,1,414,467,1,132,152,63,10,51,4,25,10,5,5,10,12,1,1,29,0x83,250,2468,768,480,0,0,0,0,0,0,0,0,929,9000,912,700,930,1100,509,600,2609,1,2612,200,639,20,0,0,0,0,4107,1 -1033,ELDER_WILOW,Elder Willow,Elder Willow,34,599,1,233,263,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,990,50,907,9000,7939,1,757,40,2329,30,690,100,604,100,0,0,0,0,4052,1 -1034,THARA_FROG,Thara Frog,Thara Frog,40,1157,1,311,350,1,73,103,37,17,25,10,10,18,30,2,10,12,1,5,41,0x81,200,2016,816,288,0,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1 -1035,HUNTER_FLY,Hunter Fly,Hunter Fly,63,2050,1,604,681,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1 -1036,GHOUL,Ghoul,Ghoul,61,2614,1,583,656,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1 -1037,SIDE_WINDER,Side Winder,Side Winder,70,2736,1,720,810,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1 -1038,OSIRIS,Osiris,Osiris,68,475840,1,245520,200880,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,122760,10000,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1 -1039,BAPHOMET,Baphomet,Baphomet,81,668000,1,396525,334106,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,198262,10000,607,2000,750,500,923,5000,1466,400,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1 -1040,GOLEM,Golem,Golem,61,2245,1,540,608,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,2146,5,715,200,998,350,0,0,0,0,4072,1 -1041,MUMMY,Mummy,Mummy,55,2155,1,486,548,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1 -1042,STEEL_CHONCHON,Steel Chonchon,Steel Chonchon,48,1199,1,369,414,1,77,112,57,20,30,62,20,10,56,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1 -//1043,SEAHORES,Seahorse,Seahorse,18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1044,OBEAUNE,Obeaune,Obeaune,53,2158,1,476,534,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1 -1045,MARC,Marc,Marc,56,2522,1,525,590,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1 -1046,DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,156600,10000,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1 -1047,PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,7,75,1,54,41,0,1,1,16,5,4,10,22,8,10,5,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,250,935,1500,2102,2,507,400,507,400,713,1800,736,10,0,0,0,0,4007,1 -1048,THIEF_BUG_EGG,Thief Bug Egg,Thief Bug Egg,20,344,1,126,143,0,1,2,64,10,10,1,50,0,3,15,10,12,0,4,27,0x100,1000,701,1,1,0,0,0,0,0,0,0,0,1010,300,915,5000,2102,2,938,600,716,100,737,10,1002,250,0,0,0,0,4012,1 -1049,PICKY,Picky,Picky,9,95,1,63,47,1,18,19,21,3,14,9,10,0,10,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,0,916,9000,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,1 -1050,PICKY_,Picky,Picky,10,89,1,72,54,1,18,38,48,10,15,8,8,5,9,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,715,50,10012,10,0,0,0,0,4011,1 -1051,THIEF_BUG,Thief Bug,Thief Bug,21,354,1,126,143,1,56,61,24,3,19,7,10,0,12,5,10,12,0,4,60,0x118B,150,1288,288,768,0,0,0,0,0,0,0,0,955,2500,2304,80,507,350,909,2000,2303,120,1002,250,0,0,0,0,0,0,4016,1 -1052,ROCKER,Rocker,Rocker,15,185,1,99,74,1,19,24,16,3,12,18,8,10,17,5,10,12,1,4,22,0x181,200,1864,864,540,0,0,0,0,0,0,0,0,940,9000,1916,10,2298,4,1402,80,520,10,752,10,703,10,0,0,0,0,4021,1 -1053,THIEF_BUG_,Thief Bug Female,Thief Bug Female,28,531,1,180,203,1,42,58,28,7,12,10,23,10,24,10,10,12,1,4,27,0x118B,200,988,288,768,0,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,300,0,0,0,0,4026,1 -1054,THIEF_BUG__,Thief Bug Male,Thief Bug Male,30,595,1,198,224,1,46,67,40,20,17,37,22,5,31,13,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1 -1055,MUKA,Muka,Muka,23,468,1,144,162,1,66,75,28,0,18,9,28,5,43,5,10,12,2,3,22,0x81,300,1960,960,384,0,0,0,0,0,0,0,0,993,70,952,9000,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1 -1056,SMOKIE,Smokie,Smokie,29,591,1,180,203,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1 -1057,YOYO,Yoyo,Yoyo,38,898,1,270,305,1,63,74,40,0,20,11,34,20,19,10,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1 -1058,METALLER,Metaller,Metaller,55,1687,1,450,507,1,187,228,72,12,52,24,10,0,47,31,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1 -1059,MISTRESS,Mistress,Mistress,78,378000,1,368280,301320,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,184140,10000,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1 -1060,BIGFOOT,Bigfoot,Bigfoot,29,587,1,180,203,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1 -1061,NIGHTMARE,Nightmare,Nightmare,69,2872,1,501,1032,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1 -1062,PORING_,Santa Poring,Santa Poring,3,69,1,4,5,1,12,16,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1 -1063,LUNATIC,Lunatic,Lunatic,3,55,1,36,27,1,11,12,18,0,10,3,3,0,8,5,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,0,0,0,0,4006,1 -1064,MEGALODON,Megalodon,Megalodon,46,1335,1,342,386,1,117,149,52,28,35,24,30,28,29,15,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1 -1065,STROUF,Strouf,Strouf,61,3052,1,626,705,1,162,192,67,21,49,16,31,20,33,20,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,0,951,5335,756,115,2315,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1 -1066,VADON,Vadon,Vadon,45,1252,1,342,386,1,78,103,54,21,35,21,28,20,33,15,10,12,0,5,21,0x91,300,1632,432,540,0,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1 -1067,CORNUTUS,Cornutus,Cornutus,48,1450,1,369,414,1,79,126,42,28,32,27,45,26,27,15,10,12,0,5,21,0x91,200,1248,48,480,0,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1 -1068,HYDRA,Hydra,Hydra,34,854,1,233,263,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,1011,25,962,5500,938,1500,971,20,525,5,517,700,0,0,0,0,0,0,4035,1 -1069,SWORD_FISH,Swordfish,Swordfish,57,2600,1,525,590,1,149,184,52,12,50,56,25,15,40,15,10,12,2,5,41,0x3885,200,1968,768,384,0,0,0,0,0,0,0,0,995,10,963,9000,756,33,2257,2,757,50,1117,25,956,600,0,0,0,0,4089,1 -1070,KUKRE,Kukre,Kukre,42,1111,1,315,354,1,65,93,33,23,25,30,22,20,32,20,10,12,0,5,21,0x83,150,1776,576,288,0,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1 -1071,PIRATE_SKEL,Pirate Skeleton,Pirate Skeleton,48,1411,1,369,414,1,105,125,53,20,35,25,25,15,30,10,10,12,1,1,29,0x3885,200,1754,554,288,0,0,0,0,0,0,0,0,932,3000,2287,15,7477,5,2211,250,1104,250,756,43,628,20,0,0,0,0,4073,1 -1072,KAHO,Kaho,Kaho,98,7045,1,1953,1463,1,504,728,106,55,81,61,55,65,66,73,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1 -1073,CRAB,Crab,Crab,43,1233,1,315,354,1,69,79,36,11,22,14,24,7,28,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1 -1074,SHELLFISH,Shellfish,Shellfish,50,1680,1,405,455,1,70,92,43,5,42,11,48,25,26,10,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1 -//1075,TURTLE,Turtle,Turtle,3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1076,SKELETON,Skeleton,Skeleton,27,612,1,162,183,1,78,102,21,2,24,15,30,5,19,1,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1 -1077,POISON_SPORE,Poison Spore,Poison Spore,26,456,1,162,183,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1 -1078,RED_PLANT,Red Plant,Red Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,7933,300,914,500,708,50,0,0,0,0,2269,2 -1079,BLUE_PLANT,Blue Plant,Blue Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,510,5500,712,1000,711,1000,905,500,7932,300,522,50,514,1000,0,0,0,0,2270,2 -1080,GREEN_PLANT,Green Plant,Green Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,511,7000,7934,300,621,20,905,3000,906,1500,704,50,521,50,0,0,0,0,2270,2 -1081,YELLOW_PLANT,Yellow Plant,Yellow Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,508,5500,712,1000,711,1000,905,500,7937,300,707,5,914,500,0,0,0,0,2269,2 -1082,WHITE_PLANT,White Plant,White Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,509,5500,712,1000,631,20,905,3000,7935,300,521,50,703,50,0,0,0,0,2269,2 -1083,SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,510,5500,508,1000,509,1000,710,5,608,20,7938,500,607,50,0,0,0,0,714,1 -1084,BLACK_MUSHROOM,Black Mushroom,Black Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,0,0,0,0,7033,5500 -1085,RED_MUSHROOM,Red Mushroom,Red Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,0,0,0,0,7033,5500 -1086,GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,65,222750,1,194400,155520,1,907,1750,159,81,71,77,80,62,127,76,10,12,2,4,43,0x11AB,100,768,768,480,97200,10000,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1 -1087,ORK_HERO,Orc Hero,Orc Hero,50,362000,1,106920,97200,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,53460,10000,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1 -1088,VOCAL,Vocal,Vocal,18,3317,1,99,79,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,7938,500,1917,10,0,0,0,0,4211,1 -1089,TOAD,Toad,Toad,27,660,1,162,183,1,70,89,24,6,32,19,27,10,24,5,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,7938,500,970,100,971,100,5125,1000,0,0,0,0,4306,1 -1090,MASTERING,Mastering,Mastering,42,1260,1,315,354,1,80,120,48,31,35,21,41,12,29,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,7938,500,512,8000,531,4000,0,0,0,0,4197,1 -1091,DRAGON_FLY,Dragon Fly,Dragon Fly,47,1035,1,360,405,1,102,135,57,28,37,44,30,15,44,15,10,12,0,4,24,0x37B5,100,1076,576,480,0,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1 -1092,VAGABOND_WOLF,Vagabond Wolf,Vagabond Wolf,93,8203,1,1422,2601,1,399,445,102,51,72,63,55,29,90,15,10,12,1,2,22,0x37B5,150,1048,648,432,0,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,2521,1000,7938,500,626,50,0,0,0,0,4183,1 -1093,ECLIPSE,Eclipse,Eclipse,31,625,1,207,233,1,60,80,50,20,20,28,35,17,27,55,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,7938,500,706,30,622,50,2355,1000,0,0,0,0,4266,1 -1094,AMBERNITE,Ambernite,Ambernite,19,340,1,117,87,1,26,37,28,0,16,20,11,10,21,5,10,12,2,4,21,0x191,400,2048,648,648,0,0,0,0,0,0,0,0,991,50,946,9000,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1 -1095,ANDRE,Andre,Andre,33,724,1,216,243,1,51,72,55,16,11,20,40,10,24,10,10,12,0,4,22,0x118B,300,1288,288,384,0,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1 -1096,ANGELING,Angeling,Angeling,77,19800,1,3060,2693,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1 -1097,ANT_EGG,Ant Egg,Ant Egg,28,530,1,180,203,0,1,2,68,45,5,1,65,5,10,30,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1 -1098,ANUBIS,Anubis,Anubis,105,18826,1,3356,2450,1,480,695,103,48,88,67,40,128,89,55,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,0,12735,10,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1 -1099,ARGIOPE,Argiope,Argiope,75,3105,1,810,912,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1 -1100,ARGOS,Argos,Argos,47,1005,1,360,405,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1 -1101,BAPHOMET_,Baphomet Jr.,Baphomet Jr.,57,2035,0,486,548,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,0,923,3000,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1 -1102,BATHORY,Bathory,Bathory,86,5242,1,1170,1364,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1 -1103,CARAMEL,Caramel,Caramel,25,518,1,162,183,1,67,76,39,0,19,10,15,10,32,5,10,12,0,2,22,0x91,200,1604,840,756,0,0,0,0,0,0,0,0,1027,9000,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1 -1104,COCO,Coco,Coco,38,836,1,270,305,1,71,82,37,0,22,13,30,20,38,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,578,600,0,0,0,0,4041,1 -1105,DENIRO,Deniro,Deniro,31,671,1,207,233,1,45,61,52,16,15,16,30,10,23,15,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,0,955,9000,910,3000,938,1200,990,50,1001,8,1002,450,757,34,0,0,0,0,4043,1 -1106,DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,1800,1350,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,0,1253,1,7030,5500,2311,1,6252,200,1287,1,756,53,1217,140,0,0,0,0,4082,1 -1107,DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,14,140,1,90,68,1,33,41,13,0,10,12,8,5,17,7,10,12,0,2,23,0x1089,300,1600,900,240,0,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,6252,200,2301,200,13011,5,582,1000,0,0,0,0,4023,1 -1108,DEVIACE,Deviace,Deviace,60,3135,1,658,740,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,995,25,1053,9000,1054,1000,5011,2,971,200,1256,3,756,161,0,0,0,0,4125,1 -1109,DEVIRUCHI,Deviruchi,Deviruchi,93,8912,1,1806,2166,1,367,549,72,16,61,49,30,85,99,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1 -1110,DOKEBI,Dokebi,Dokebi,68,2820,1,675,759,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1 -1111,DRAINLIAR,Drainliar,Drainliar,47,1162,1,389,438,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1 -1112,DRAKE,Drake,Drake,91,804500,1,515160,417960,1,1938,3341,279,135,121,103,114,107,135,71,10,12,1,1,29,0x37B5,400,620,420,360,257580,10000,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1 -1113,DROPS,Drops,Drops,2,45,1,27,20,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1 -1114,DUSTINESS,Dustiness,Dustiness,62,2026,1,602,678,1,158,189,69,50,46,22,46,60,68,105,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1 -1115,EDDGA,Eddga,Eddga,65,247500,1,198000,148500,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,99000,10000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1 -1116,EGGYRA,Eggyra,Eggyra,53,1676,1,330,689,1,105,145,85,20,46,25,25,15,52,20,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1 -1117,EVIL_DRUID,Evil Druid,Evil Druid,80,5149,1,1339,1280,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1 -1118,FLORA,Flora,Flora,59,2301,1,531,597,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1 -1119,FRILLDORA,Frilldora,Frilldora,57,1821,1,486,548,1,172,214,84,10,48,38,38,15,46,30,10,12,1,2,23,0x3885,300,1540,720,432,0,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1 -1120,GHOSTRING,Ghostring,Ghostring,90,26700,1,4305,4467,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1 -1121,GIEARTH,Giearth,Giearth,42,1118,1,315,354,1,70,85,52,16,27,19,30,10,28,15,10,12,0,6,22,0x191,200,1848,1296,432,0,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1 -1122,GOBLIN_1,Goblin,Goblin,48,1058,1,369,414,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,9000,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1 -1123,GOBLIN_2,Goblin,Goblin,44,931,1,333,374,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,998,250,911,9000,5010,3,1511,10,2146,5,507,1550,2297,3,0,0,0,0,4060,1 -1124,GOBLIN_3,Goblin,Goblin,44,930,1,333,374,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,998,230,911,9000,2275,3,5088,15,2104,1,507,1550,508,220,0,0,0,0,4060,1 -1125,GOBLIN_4,Goblin,Goblin,49,1494,1,396,446,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2146,5,507,1500,0,0,0,0,4060,1 -1126,GOBLIN_5,Goblin,Goblin,56,2342,1,486,548,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,998,150,911,9000,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1 -1127,HODE,Hode,Hode,63,2676,1,632,710,1,170,215,91,24,61,16,42,5,29,40,10,12,1,2,42,0x81,200,1480,480,720,0,0,0,0,0,0,0,0,993,120,1055,9000,757,80,938,3000,1147,10,7021,1,632,20,0,0,0,0,4081,1 -1128,HORN,Horn,Horn,32,705,1,216,243,1,64,75,52,8,10,12,36,25,21,35,10,12,1,4,22,0x191,200,1528,528,288,0,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1 -1129,HORONG,Horong,Horong,66,2304,1,781,879,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1 -1130,JAKK,Jakk,Jakk,63,2054,1,632,710,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,7938,10,0,0,0,0,4109,1 -1131,JOKER,Joker,Joker,90,6022,1,1618,1821,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1 -1132,KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,2862,2147,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,15014,2,1127,2,0,0,0,0,4136,1 -1133,KOBOLD_1,Kobold,Kobold,107,10483,1,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 -1134,KOBOLD_2,Kobold,Kobold,102,9152,1,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1 -1135,KOBOLD_3,Kobold,Kobold,101,9078,1,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1 -//1136,KOBOLD_4,Kobold,Kobold,31,1961,1,783,395,1,316,378,24,10,1,31,31,20,55,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1 -//1137,KOBOLD_5,Kobold,Kobold,31,1962,1,580,366,1,223,256,24,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1 -1138,MAGNOLIA,Magnolia,Magnolia,53,1984,1,441,495,1,91,256,51,8,49,25,21,50,28,85,10,12,0,6,21,0x183,200,1054,504,432,0,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1 -1139,MANTIS,Mantis,Mantis,65,2719,1,594,669,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1 -1140,MARDUK,Marduk,Marduk,73,2893,1,774,872,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1 -1141,MARINA,Marina,Marina,42,1209,1,340,381,1,73,98,20,19,24,27,18,22,29,15,10,12,0,3,41,0x81,400,2280,1080,864,0,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1 -1142,MARINE_SPHERE,Marine Sphere,Marine Sphere,51,1924,1,446,503,1,1,2,41,28,10,16,35,25,26,5,10,12,0,3,41,0x0,800,1201,1,1,0,0,0,0,0,0,0,0,1050,5000,1051,2500,1520,10,720,10,717,150,10003,10,0,0,0,0,0,0,4084,1 -1143,MARIONETTE,Marionette,Marionette,90,7166,1,1442,2009,1,202,392,35,24,52,79,28,105,72,20,10,12,0,6,68,0x3195,300,1480,480,1056,0,0,0,0,0,0,0,0,1060,9000,2294,5,2605,1,699,100,1520,15,2407,1,5141,3,0,0,0,0,4113,1 -1144,MARSE,Marse,Marse,47,1456,1,389,438,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1 -1145,MARTIN,Martin,Martin,39,1056,1,311,350,1,70,88,58,19,25,29,28,15,30,10,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1 -1146,MATYR,Matyr,Matyr,58,2087,1,495,557,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1 -1147,MAYA,Maya,Maya,55,380000,1,178560,133920,1,555,820,183,50,88,72,76,102,92,76,10,12,2,4,82,0x37B5,100,864,1000,480,89280,10000,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1 -1148,MEDUSA,Medusa,Medusa,102,10045,1,1737,1302,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,1649,5,1007,3,0,0,0,0,4124,1 -1149,MINOROUS,Minorous,Minorous,58,1893,1,544,602,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,6254,10,1301,200,568,300,0,0,0,0,4126,1 -1150,MOONLIGHT,Moonlight Flower,Moonlight Flower,79,324000,1,334080,271440,1,2029,3280,154,81,86,102,93,82,131,120,10,12,1,6,63,0x37B5,150,1276,576,288,167040,10000,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1 -1151,MYST,Myst,Myst,49,1223,1,396,446,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,2601,1,0,0,0,0,4108,1 -1152,ORC_SKELETON,Orc Skeleton,Orc Skeleton,53,2077,1,459,524,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1 -1153,ORC_ZOMBIE,Orc Zombie,Orc Zombie,51,1908,1,430,498,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1 -1154,PASANA,Pasana,Pasana,79,3510,1,972,1194,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3095,165,976,576,288,0,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,2522,100,0,0,0,0,0,0,4099,1 -1155,PETIT,Petite,Petite,86,5799,1,1170,1317,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3095,250,2468,768,480,0,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,6260,40,606,15,0,0,0,0,4118,1 -1156,PETIT_,Petite,Petite,79,3556,1,900,1013,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3095,200,1872,672,288,0,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1 -1157,PHARAOH,Pharaoh,Pharaoh,85,500000,1,417600,334080,1,1476,3258,124,269,98,102,96,142,144,102,10,12,2,7,67,0x37B5,125,868,768,288,208800,10000,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1 -1158,PHEN,Phen,Phen,52,1963,1,446,503,1,97,127,44,11,54,15,35,15,25,15,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1 -1159,PHREEONI,Phreeoni,Phreeoni,71,300000,1,116000,180000,1,630,1597,269,98,88,70,112,87,102,71,10,12,2,2,60,0x37B5,200,1020,1020,288,58000,10000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1 -1160,PIERE,Piere,Piere,32,696,1,216,243,1,47,67,57,16,19,19,36,8,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1 -1161,PLANKTON,Plankton,Plankton,40,1232,1,334,375,1,75,111,28,28,23,53,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1 -1162,RAFFLESIA,Rafflesia,Rafflesia,86,5819,1,1170,1317,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1 -1163,RAYDRIC,Raydric,Raydric,115,18408,1,2770,2076,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,0,0,0,0,4133,1 -1164,REQUIEM,Requiem,Requiem,71,3089,1,738,831,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1 -1165,SAND_MAN,Sandman,Sandman,61,2887,1,626,705,1,156,212,126,24,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1 -1166,SAVAGE,Savage,Savage,59,2301,1,573,644,1,172,195,126,3,56,21,54,10,47,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,6249,10,757,70,526,2,0,0,0,0,4078,1 -1167,SAVAGE_BABE,Savage Babe,Savage Babe,14,180,1,90,68,1,19,25,22,0,16,8,9,5,21,18,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,0,919,9000,1302,100,517,500,6249,1,949,850,1010,80,627,40,0,0,0,0,4017,1 -//1168,SCORPION_KING,Scorpion King,Scorpion King,50,5719,1,1968,1211,1,600,713,64,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1 -1169,SKEL_WORKER,Skeleton Worker,Skeleton Worker,44,1240,1,333,374,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,7938,10,0,0,0,0,4092,1 -1170,SOHEE,Sohee,Sohee,64,2875,1,594,669,1,169,199,61,21,61,24,29,20,37,25,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,15012,5,662,350,0,0,0,0,4100,1 -//1171,SOLDIER_ANDRE,Soldier Andre,Soldier Andre,22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1 -//1172,SOLDIER_DENIRO,Soldier Deniro,Soldier Deniro,29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1 -//1173,SOLDIER_PIERE,Soldier Piere,Soldier Piere,23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1 -1174,STAINER,Stainer,Stainer,21,365,1,126,143,1,65,74,22,25,10,10,24,0,39,15,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1 -1175,TAROU,Tarou,Tarou,22,420,1,135,152,1,72,78,23,5,21,6,12,0,10,1,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1 -1176,VITATA,Vitata,Vitata,35,756,1,234,264,1,68,86,44,12,20,11,24,20,21,5,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1 -1177,ZENORC,Zenorc,Zenorc,54,1816,1,450,507,1,130,154,69,5,50,18,20,5,25,5,10,12,1,7,27,0x83,150,1180,480,360,0,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1 -1178,ZEROM,Zerom,Zerom,70,2687,1,720,960,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,7938,1,0,0,0,0,4064,1 -1179,WHISPER,Whisper,Whisper,46,1109,1,242,513,1,65,120,20,40,32,48,20,35,52,20,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1 -1180,NINE_TAIL,Nine Tail,Nine Tail,72,2783,1,887,998,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1 -//1181,ZOMBIE_DRAGON,Zombie Dragon,Zombie Dragon,1,1000,1,44550,1485,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1182,THIEF_MUSHROOM,Thief Mushroom,Thief Mushroom,1,15,1,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1183,CHONCHON_,Chonchon,Chonchon,5,63,1,36,27,1,11,14,29,0,13,4,4,0,7,5,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1 -1184,FABRE_,Fabre,Fabre,1,30,1,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0 -1185,WHISPER_,Whisper,Whisper,34,1796,1,483,737,1,198,239,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,0,1001,10,1059,100,0,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0 -1186,WHISPER_BOSS,Giant Whisper,Giant Whisper,66,2570,0,630,710,1,282,341,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1 -1188,BON_GUN,Bongun,Bongun,59,2510,1,531,597,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1 -1189,ORC_ARCHER,Orc Archer,Orc Archer,78,4835,1,922,1161,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1 -1190,ORC_LORD,Orc Lord,Orc Lord,55,552000,1,156240,122760,1,780,1428,256,92,95,95,103,96,155,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,10000,968,5500,617,2000,0,0,1363,400,2621,400,5007,400,1371,400,617,1000,985,4268,16000,3100,0,0,0,0,4135,1 -1191,MIMIC,Mimic,Mimic,56,1939,1,486,548,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,7938,1000,2626,1,757,270,0,0,0,0,4205,1 -1192,WRAITH,Wraith,Wraith,77,5168,1,1190,1191,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1 -1193,ALARM,Alarm,Alarm,88,5562,1,1242,1398,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1 -1194,ARCLOUSE,Arclouse,Arclouze,107,10020,1,1844,2607,1,269,309,101,36,60,73,45,35,140,15,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1 -1195,RIDEWORD,Rideword,Rideword,74,3222,1,810,1212,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3695,150,864,500,192,0,0,0,0,0,0,0,0,1097,4850,1553,4,1554,4,1555,2,1556,2,7015,300,1006,20,0,0,0,0,4185,1 -1196,SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,91,9194,1,1566,1763,1,466,521,95,41,84,35,60,20,71,15,10,12,1,1,69,0x308D,350,1848,500,576,0,0,0,0,0,0,0,0,1098,3500,7016,100,2320,1,716,600,930,3500,2408,35,934,1500,0,0,0,0,4222,1 -1197,ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,89,8045,1,1458,1647,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x308D,350,1768,500,192,0,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1 -1198,DARK_PRIEST,Dark Priest,Dark Priest,98,12090,0,2430,1667,2,355,554,56,30,5,60,41,89,78,42,10,12,1,6,89,0x31AD,200,864,1252,476,0,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,1,2319,5,7005,3000,0,0,0,0,4171,1 -1199,PUNK,Punk,Punk,82,3869,1,972,1094,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3095,300,1500,500,1000,0,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1 -1200,ZHERLTHSH,Zherlthsh,Zealotus,105,61350,1,6944,6458,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,0,7017,5,509,1800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1 -1201,RYBIO,Rybio,Rybio,98,8700,1,1575,1442,1,477,553,109,30,96,52,61,30,73,10,10,12,2,6,40,0x318D,200,1790,1440,540,0,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,6216,300,1008,10,984,100,709,30,0,0,0,0,4194,1 -1202,PHENDARK,Phendark,Phendark,102,11000,1,1990,1302,2,539,614,307,50,111,65,71,20,91,30,10,12,2,7,40,0x308D,175,1744,1344,600,0,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,1971,100,0,0,0,0,0,0,4329,1 -1203,MYSTELTAINN,Mysteltainn,Mysteltainn,130,70000,1,7919,4987,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,12736,300,984,243,0,0,0,0,4207,1 -1204,TIRFING,Tirfing,Ogretooth,114,59000,1,5345,5009,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1 -1205,EXECUTIONER,Executioner,Executioner,101,40200,1,4860,3645,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1 -1206,ANOLIAN,Anolian,Anolian,109,15547,1,2930,2223,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3695,190,900,500,864,0,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,16003,1,2625,1,984,134,0,0,0,0,4234,1 -1207,STING,Sting,Sting,104,10143,1,2172,1629,1,611,678,146,34,108,49,68,34,99,24,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,6213,800,0,0,0,0,4226,1 -1208,WANDER_MAN,Wander Man,Wanderer,120,19307,1,3389,2466,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1 -1209,CRAMP,Cramp,Cramp,82,3898,1,972,1094,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1 -//1210,FILAMENTOUS,Filamentous,Filamentous,51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1 -1211,BRILIGHT,Brilight,Brilight,71,2772,1,738,831,1,306,339,93,25,51,19,38,32,56,30,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,7938,100,757,220,610,250,509,2600,0,0,0,0,4213,1 -1212,IRON_FIST,Iron Fist,Iron Fist,47,4221,0,1292,1368,1,430,590,40,5,1,17,15,10,73,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1 -1213,HIGH_ORC,High Orc,High Orc,81,4193,1,1099,1158,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1 -1214,CHOCO,Choco,Choco,48,1080,1,369,414,1,120,167,70,30,40,45,32,19,42,20,10,12,0,2,23,0x3095,150,1028,528,360,0,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1 -1215,STEM_WORM,Stem Worm,Stem Worm,84,4530,1,1080,1215,1,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3095,300,1956,756,528,0,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1 -1216,PENOMENA,Penomena,Penomena,85,4589,1,1116,1556,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1 -1219,KNIGHT_OF_ABYSS,Knight of Abyss,Abysmal Knight,122,23297,1,4779,4013,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,15014,10,0,0,0,0,4140,1 -1220,M_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,349,218,1,254,313,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1 -1221,M_SAVAGE,Savage,Savage,26,2092,0,321,203,1,146,177,16,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1 -//1222,L_HIGH_ORC,High Orc,High Orc,52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1 -//1223,L_ORC,Orc,Orc,24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 -//1224,L_POISON_SPORE,Poison Spore,Poison Spore,19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1 -//1225,L_CHOCO,Choco,Choco,43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1 -//1226,L_KOBOLD,Kobold,Kobold,36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 -//1227,L_GOBLIN,Goblin,Goblin,25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1 -//1228,L_PHEN,Phen,Phen,26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1 -1229,META_FABRE,Fabre,Fabre,2,63,1,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1 -1230,META_PUPA,Pupa,Pupa,2,427,1,2,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1 -1231,META_CREAMY,Creamy,Creamy,16,595,1,86,58,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1 -1232,META_PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,3,420,1,4,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1 -//1233,CONCEIVE_PECOPECO,Peco Peco,Peco Peco,19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1 -1234,PROVOKE_YOYO,Yoyo,Yoyo,19,879,1,122,77,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1 -1235,SMOKING_ORC,Smoking Orc,Smoking Orc,24,1400,1,235,144,1,114,136,16,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 -1236,META_ANT_EGG,Ant Egg,Ant Egg,4,420,1,5,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1 -1237,META_ANDRE,Andre,Andre,17,688,1,98,64,1,60,71,16,0,1,17,24,20,26,20,10,12,0,4,22,0x118B,300,1288,288,576,0,0,0,0,0,0,0,0,955,6000,910,3000,938,1000,935,3000,1001,6,1002,350,757,28,0,0,0,0,4043,1 -1238,META_PIERE,Piere,Piere,18,733,1,110,70,1,64,75,24,0,1,18,26,20,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,0,955,5700,910,1100,938,600,992,15,1001,5,1002,400,757,31,0,0,0,0,4043,1 -1239,META_DENIRO,Deniro,Deniro,19,760,1,122,77,1,68,79,24,0,1,19,30,20,43,10,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1 -1240,META_PICKY,Picky,Picky,3,80,1,4,3,1,9,12,0,0,1,3,3,0,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,0,916,6500,949,850,2302,150,507,650,519,350,715,60,0,0,0,0,0,0,4008,1 -1241,META_PICKY_,Picky,Picky,4,83,1,5,4,1,8,11,32,0,1,3,3,0,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,0,916,6500,949,850,5015,7,507,750,519,350,715,60,0,0,0,0,0,0,4011,1 +1001,SCORPION,Scorpion,Scorpion,16,153,1,108,81,1,33,40,16,5,12,15,10,5,19,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1 +1002,PORING,Poring,Poring,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1 +//1003,TESTEGG,Test Egg,Test Egg,2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1004,HORNET,Hornet,Hornet,11,90,1,81,60,1,13,16,7,1,12,24,4,5,6,5,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1 +1005,FARMILIAR,Familiar,Familiar,24,427,1,144,162,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1 +//1006,THIEF_BUG_LARVA,Thief Bug Larva,Thief Bug Larva,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1007,FABRE,Fabre,Fabre,6,72,1,54,41,1,12,15,24,0,12,5,5,5,12,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1 +1008,PUPA,Pupa,Pupa,4,66,1,36,27,1,1,4,24,2,11,1,3,3,8,6,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1 +1009,CONDOR,Condor,Condor,12,114,1,81,60,1,14,20,7,5,14,7,6,0,13,5,10,12,1,2,24,0x1089,150,1148,648,480,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1 +1010,WILOW,Willow,Willow,8,91,1,63,47,1,13,18,38,2,13,3,8,5,12,5,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1 +1011,CHONCHON,Chonchon,Chonchon,5,57,1,45,36,1,11,14,27,0,13,4,4,0,8,5,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1 +1012,RODA_FROG,Roda Frog,Roda Frog,13,160,1,90,68,1,19,23,12,5,12,6,4,0,14,9,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1 +1013,WOLF,Wolf,Wolf,45,1219,1,342,386,1,80,91,55,3,27,24,30,15,33,5,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1 +1014,SPORE,Spore,Spore,18,280,1,117,87,1,25,33,12,10,15,5,10,0,12,0,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1 +1015,ZOMBIE,Zombie,Zombie,17,234,1,117,87,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1 +1016,ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,50,1646,1,405,455,9,90,113,47,10,30,29,20,10,32,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1 +//1017,THIEF_BUG_FEMALE,Thief Bug Female,Thief Bug Female,10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,651,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1 +1018,CREAMY,Creamy,Creamy,23,378,1,144,162,1,61,62,28,20,16,1,1,0,1,20,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1 +1019,PECOPECO,Peco Peco,Peco Peco,25,446,1,162,183,1,76,83,48,0,21,10,13,5,28,5,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1 +1020,MANDRAGORA,Mandragora,Mandragora,13,156,1,97,73,4,20,23,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1 +//1021,THIEF_BUG_MALE,Thief Bug Male,Thief Bug Male,19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,653,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1 +//1022,WEREWOLF,Werewolf,Werewolf,80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,163,200,1500,768,652,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0 +1023,ORK_WARRIOR,Orc Warrior,Orc Warrior,44,1434,1,350,540,1,71,104,52,3,32,15,24,15,16,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,2147,3,0,0,0,0,4066,1 +1024,WORM_TAIL,Wormtail,Wormtail,17,200,1,117,87,1,22,27,16,0,10,6,14,5,12,35,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1 +1025,SNAKE,Snake,Boa,18,217,1,117,87,1,23,28,9,8,10,8,18,10,14,15,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1 +1026,MUNAK,Munak,Munak,58,2445,1,495,557,1,175,205,77,15,53,9,25,10,30,10,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1 +//1027,RAPTICE,Raptice,Raptice,17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,131,200,2000,1000,500,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1028,SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,34,804,1,216,243,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,2315,1,1216,50,0,0,0,0,4086,1 +1029,ISIS,Isis,Isis,59,2092,1,531,597,1,192,229,83,5,58,43,22,5,39,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1 +1030,ANACONDAQ,Anacondaq,Anacondaq,100,8510,1,1602,1202,1,388,443,92,0,79,46,28,43,56,25,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,6247,200,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1 +1031,POPORING,Poporing,Poporing,30,524,1,198,224,1,74,94,36,17,17,26,20,18,36,5,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,512,5,1207,5,512,250,0,0,0,0,4033,1 +1032,VERIT,Verit,Verit,52,1944,1,414,467,1,132,152,63,10,51,4,25,10,5,5,10,12,1,1,29,0x83,250,2468,768,480,0,0,0,0,0,0,0,929,9000,912,700,930,1100,509,600,2609,1,2612,200,639,20,0,0,0,0,4107,1 +1033,ELDER_WILOW,Elder Willow,Elder Willow,34,599,1,233,263,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,990,50,907,9000,7939,1,757,40,2329,30,690,100,604,100,0,0,0,0,4052,1 +1034,THARA_FROG,Thara Frog,Thara Frog,40,1157,1,311,350,1,73,103,37,17,25,10,10,18,30,2,10,12,1,5,41,0x81,200,2016,816,288,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1 +1035,HUNTER_FLY,Hunter Fly,Hunter Fly,63,2050,1,604,681,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1 +1036,GHOUL,Ghoul,Ghoul,61,2614,1,583,656,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1 +1037,SIDE_WINDER,Side Winder,Side Winder,70,2736,1,720,810,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1 +1038,OSIRIS,Osiris,Osiris,68,475840,1,245520,200880,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,122760,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1 +1039,BAPHOMET,Baphomet,Baphomet,81,668000,1,396525,334106,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,198262,607,2000,750,500,923,5000,1466,400,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1 +1040,GOLEM,Golem,Golem,61,2245,1,540,608,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,2146,5,715,200,998,350,0,0,0,0,4072,1 +1041,MUMMY,Mummy,Mummy,55,2155,1,486,548,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1 +1042,STEEL_CHONCHON,Steel Chonchon,Steel Chonchon,48,1199,1,369,414,1,77,112,57,20,30,62,20,10,56,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1 +//1043,SEAHORES,Seahorse,Seahorse,18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1044,OBEAUNE,Obeaune,Obeaune,53,2158,1,476,534,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1 +1045,MARC,Marc,Marc,56,2522,1,525,590,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1 +1046,DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,156600,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1 +1047,PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,7,75,1,54,41,0,1,1,16,5,4,10,22,8,10,5,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,250,935,1500,2102,2,507,400,507,400,713,1800,736,10,0,0,0,0,4007,1 +1048,THIEF_BUG_EGG,Thief Bug Egg,Thief Bug Egg,20,344,1,126,143,0,1,2,64,10,10,1,50,0,3,15,10,12,0,4,27,0x100,1000,701,1,1,0,0,0,0,0,0,0,1010,300,915,5000,2102,2,938,600,716,100,737,10,1002,250,0,0,0,0,4012,1 +1049,PICKY,Picky,Picky,9,95,1,63,47,1,18,19,21,3,14,9,10,0,10,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,1 +1050,PICKY_,Picky,Picky,10,89,1,72,54,1,18,38,48,10,15,8,8,5,9,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,715,50,10012,10,0,0,0,0,4011,1 +1051,THIEF_BUG,Thief Bug,Thief Bug,21,354,1,126,143,1,56,61,24,3,19,7,10,0,12,5,10,12,0,4,60,0x118B,150,1288,288,768,0,0,0,0,0,0,0,955,2500,2304,80,507,350,909,2000,2303,120,1002,250,0,0,0,0,0,0,4016,1 +1052,ROCKER,Rocker,Rocker,15,185,1,99,74,1,19,24,16,3,12,18,8,10,17,5,10,12,1,4,22,0x181,200,1864,864,540,0,0,0,0,0,0,0,940,9000,1916,10,2298,4,1402,80,520,10,752,10,703,10,0,0,0,0,4021,1 +1053,THIEF_BUG_,Thief Bug Female,Thief Bug Female,28,531,1,180,203,1,42,58,28,7,12,10,23,10,24,10,10,12,1,4,27,0x118B,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,300,0,0,0,0,4026,1 +1054,THIEF_BUG__,Thief Bug Male,Thief Bug Male,30,595,1,198,224,1,46,67,40,20,17,37,22,5,31,13,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1 +1055,MUKA,Muka,Muka,23,468,1,144,162,1,66,75,28,0,18,9,28,5,43,5,10,12,2,3,22,0x81,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1 +1056,SMOKIE,Smokie,Smokie,29,591,1,180,203,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1 +1057,YOYO,Yoyo,Yoyo,38,898,1,270,305,1,63,74,40,0,20,11,34,20,19,10,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1 +1058,METALLER,Metaller,Metaller,55,1687,1,450,507,1,187,228,72,12,52,24,10,0,47,31,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1 +1059,MISTRESS,Mistress,Mistress,78,378000,1,368280,301320,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,184140,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1 +1060,BIGFOOT,Bigfoot,Bigfoot,29,587,1,180,203,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1 +1061,NIGHTMARE,Nightmare,Nightmare,69,2872,1,501,1032,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1 +1062,PORING_,Santa Poring,Santa Poring,3,69,1,4,5,1,12,16,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1 +1063,LUNATIC,Lunatic,Lunatic,3,55,1,36,27,1,11,12,18,0,10,3,3,0,8,5,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,0,0,0,0,4006,1 +1064,MEGALODON,Megalodon,Megalodon,46,1335,1,342,386,1,117,149,52,28,35,24,30,28,29,15,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1 +1065,STROUF,Strouf,Strouf,61,3052,1,626,705,1,162,192,67,21,49,16,31,20,33,20,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,115,2315,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1 +1066,VADON,Vadon,Vadon,45,1252,1,342,386,1,78,103,54,21,35,21,28,20,33,15,10,12,0,5,21,0x91,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1 +1067,CORNUTUS,Cornutus,Cornutus,48,1450,1,369,414,1,79,126,42,28,32,27,45,26,27,15,10,12,0,5,21,0x91,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1 +1068,HYDRA,Hydra,Hydra,34,854,1,233,263,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,1011,25,962,5500,938,1500,971,20,525,5,517,700,0,0,0,0,0,0,4035,1 +1069,SWORD_FISH,Swordfish,Swordfish,57,2600,1,525,590,1,149,184,52,12,50,56,25,15,40,15,10,12,2,5,41,0x3885,200,1968,768,384,0,0,0,0,0,0,0,995,10,963,9000,756,33,2257,2,757,50,1117,25,956,600,0,0,0,0,4089,1 +1070,KUKRE,Kukre,Kukre,42,1111,1,315,354,1,65,93,33,23,25,30,22,20,32,20,10,12,0,5,21,0x83,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1 +1071,PIRATE_SKEL,Pirate Skeleton,Pirate Skeleton,48,1411,1,369,414,1,105,125,53,20,35,25,25,15,30,10,10,12,1,1,29,0x3885,200,1754,554,288,0,0,0,0,0,0,0,932,3000,2287,15,7477,5,2211,250,1104,250,756,43,628,20,0,0,0,0,4073,1 +1072,KAHO,Kaho,Kaho,98,7045,1,1953,1463,1,504,728,106,55,81,61,55,65,66,73,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1 +1073,CRAB,Crab,Crab,43,1233,1,315,354,1,69,79,36,11,22,14,24,7,28,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1 +1074,SHELLFISH,Shellfish,Shellfish,50,1680,1,405,455,1,70,92,43,5,42,11,48,25,26,10,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1 +//1075,TURTLE,Turtle,Turtle,3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1076,SKELETON,Skeleton,Skeleton,27,612,1,162,183,1,78,102,21,2,24,15,30,5,19,1,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1 +1077,POISON_SPORE,Poison Spore,Poison Spore,26,456,1,162,183,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1 +1078,RED_PLANT,Red Plant,Red Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,7933,300,914,500,708,50,0,0,0,0,2269,2 +1079,BLUE_PLANT,Blue Plant,Blue Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,712,1000,711,1000,905,500,7932,300,522,50,514,1000,0,0,0,0,2270,2 +1080,GREEN_PLANT,Green Plant,Green Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,511,7000,7934,300,621,20,905,3000,906,1500,704,50,521,50,0,0,0,0,2270,2 +1081,YELLOW_PLANT,Yellow Plant,Yellow Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,508,5500,712,1000,711,1000,905,500,7937,300,707,5,914,500,0,0,0,0,2269,2 +1082,WHITE_PLANT,White Plant,White Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,509,5500,712,1000,631,20,905,3000,7935,300,521,50,703,50,0,0,0,0,2269,2 +1083,SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,508,1000,509,1000,710,5,608,20,7938,500,607,50,0,0,0,0,714,1 +1084,BLACK_MUSHROOM,Black Mushroom,Black Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,0,0,0,0,7033,5500 +1085,RED_MUSHROOM,Red Mushroom,Red Mushroom,1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,0,0,0,0,7033,5500 +1086,GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,65,222750,1,194400,155520,1,907,1750,159,81,71,77,80,62,127,76,10,12,2,4,43,0x11AB,100,768,768,480,97200,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1 +1087,ORK_HERO,Orc Hero,Orc Hero,50,362000,1,106920,97200,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,53460,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1 +1088,VOCAL,Vocal,Vocal,18,3317,1,99,79,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,7938,500,1917,10,0,0,0,0,4211,1 +1089,TOAD,Toad,Toad,27,660,1,162,183,1,70,89,24,6,32,19,27,10,24,5,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,7938,500,970,100,971,100,5125,1000,0,0,0,0,4306,1 +1090,MASTERING,Mastering,Mastering,42,1260,1,315,354,1,80,120,48,31,35,21,41,12,29,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,7938,500,512,8000,531,4000,0,0,0,0,4197,1 +1091,DRAGON_FLY,Dragon Fly,Dragon Fly,47,1035,1,360,405,1,102,135,57,28,37,44,30,15,44,15,10,12,0,4,24,0x37B5,100,1076,576,480,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1 +1092,VAGABOND_WOLF,Vagabond Wolf,Vagabond Wolf,93,8203,1,1422,2601,1,399,445,102,51,72,63,55,29,90,15,10,12,1,2,22,0x37B5,150,1048,648,432,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,2521,1000,7938,500,626,50,0,0,0,0,4183,1 +1093,ECLIPSE,Eclipse,Eclipse,31,625,1,207,233,1,60,80,50,20,20,28,35,17,27,55,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,7938,500,706,30,622,50,2355,1000,0,0,0,0,4266,1 +1094,AMBERNITE,Ambernite,Ambernite,19,340,1,117,87,1,26,37,28,0,16,20,11,10,21,5,10,12,2,4,21,0x191,400,2048,648,648,0,0,0,0,0,0,0,991,50,946,9000,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1 +1095,ANDRE,Andre,Andre,33,724,1,216,243,1,51,72,55,16,11,20,40,10,24,10,10,12,0,4,22,0x118B,300,1288,288,384,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1 +1096,ANGELING,Angeling,Angeling,77,19800,1,3060,2693,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1 +1097,ANT_EGG,Ant Egg,Ant Egg,28,530,1,180,203,0,1,2,68,45,5,1,65,5,10,30,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1 +1098,ANUBIS,Anubis,Anubis,105,18826,1,3356,2450,1,480,695,103,48,88,67,40,128,89,55,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,12735,10,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1 +1099,ARGIOPE,Argiope,Argiope,75,3105,1,810,912,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1 +1100,ARGOS,Argos,Argos,47,1005,1,360,405,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1 +1101,BAPHOMET_,Baphomet Jr.,Baphomet Jr.,57,2035,0,486,548,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,923,3000,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1 +1102,BATHORY,Bathory,Bathory,86,5242,1,1170,1364,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1 +1103,CARAMEL,Caramel,Caramel,25,518,1,162,183,1,67,76,39,0,19,10,15,10,32,5,10,12,0,2,22,0x91,200,1604,840,756,0,0,0,0,0,0,0,1027,9000,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1 +1104,COCO,Coco,Coco,38,836,1,270,305,1,71,82,37,0,22,13,30,20,38,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,578,600,0,0,0,0,4041,1 +1105,DENIRO,Deniro,Deniro,31,671,1,207,233,1,45,61,52,16,15,16,30,10,23,15,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,955,9000,910,3000,938,1200,990,50,1001,8,1002,450,757,34,0,0,0,0,4043,1 +1106,DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,1800,1350,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,1253,1,7030,5500,2311,1,6252,200,1287,1,756,53,1217,140,0,0,0,0,4082,1 +1107,DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,14,140,1,90,68,1,33,41,13,0,10,12,8,5,17,7,10,12,0,2,23,0x1089,300,1600,900,240,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,6252,200,2301,200,13011,5,582,1000,0,0,0,0,4023,1 +1108,DEVIACE,Deviace,Deviace,60,3135,1,658,740,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,995,25,1053,9000,1054,1000,5011,2,971,200,1256,3,756,161,0,0,0,0,4125,1 +1109,DEVIRUCHI,Deviruchi,Deviruchi,93,8912,1,1806,2166,1,367,549,72,16,61,49,30,85,99,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1 +1110,DOKEBI,Dokebi,Dokebi,68,2820,1,675,759,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1 +1111,DRAINLIAR,Drainliar,Drainliar,47,1162,1,389,438,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1 +1112,DRAKE,Drake,Drake,91,804500,1,515160,417960,1,1938,3341,279,135,121,103,114,107,135,71,10,12,1,1,29,0x37B5,400,620,420,360,257580,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1 +1113,DROPS,Drops,Drops,2,45,1,27,20,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1 +1114,DUSTINESS,Dustiness,Dustiness,62,2026,1,602,678,1,158,189,69,50,46,22,46,60,68,105,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1 +1115,EDDGA,Eddga,Eddga,65,247500,1,198000,148500,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,99000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1 +1116,EGGYRA,Eggyra,Eggyra,53,1676,1,330,689,1,105,145,85,20,46,25,25,15,52,20,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1 +1117,EVIL_DRUID,Evil Druid,Evil Druid,80,5149,1,1339,1280,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1 +1118,FLORA,Flora,Flora,59,2301,1,531,597,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1 +1119,FRILLDORA,Frilldora,Frilldora,57,1821,1,486,548,1,172,214,84,10,48,38,38,15,46,30,10,12,1,2,23,0x3885,300,1540,720,432,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1 +1120,GHOSTRING,Ghostring,Ghostring,90,26700,1,4305,4467,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1 +1121,GIEARTH,Giearth,Giearth,42,1118,1,315,354,1,70,85,52,16,27,19,30,10,28,15,10,12,0,6,22,0x191,200,1848,1296,432,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1 +1122,GOBLIN_1,Goblin,Goblin,48,1058,1,369,414,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,9000,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1 +1123,GOBLIN_2,Goblin,Goblin,44,931,1,333,374,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,998,250,911,9000,5010,3,1511,10,2146,5,507,1550,2297,3,0,0,0,0,4060,1 +1124,GOBLIN_3,Goblin,Goblin,44,930,1,333,374,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,998,230,911,9000,2275,3,5088,15,2104,1,507,1550,508,220,0,0,0,0,4060,1 +1125,GOBLIN_4,Goblin,Goblin,49,1494,1,396,446,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2146,5,507,1500,0,0,0,0,4060,1 +1126,GOBLIN_5,Goblin,Goblin,56,2342,1,486,548,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,998,150,911,9000,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1 +1127,HODE,Hode,Hode,63,2676,1,632,710,1,170,215,91,24,61,16,42,5,29,40,10,12,1,2,42,0x81,200,1480,480,720,0,0,0,0,0,0,0,993,120,1055,9000,757,80,938,3000,1147,10,7021,1,632,20,0,0,0,0,4081,1 +1128,HORN,Horn,Horn,32,705,1,216,243,1,64,75,52,8,10,12,36,25,21,35,10,12,1,4,22,0x191,200,1528,528,288,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1 +1129,HORONG,Horong,Horong,66,2304,1,781,879,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1 +1130,JAKK,Jakk,Jakk,63,2054,1,632,710,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,7938,10,0,0,0,0,4109,1 +1131,JOKER,Joker,Joker,90,6022,1,1618,1821,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1 +1132,KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,2862,2147,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,15014,2,1127,2,0,0,0,0,4136,1 +1133,KOBOLD_1,Kobold,Kobold,107,10483,1,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 +1134,KOBOLD_2,Kobold,Kobold,102,9152,1,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1 +1135,KOBOLD_3,Kobold,Kobold,101,9078,1,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1 +//1136,KOBOLD_4,Kobold,Kobold,31,1961,1,783,395,1,316,378,24,10,1,31,31,20,55,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1 +//1137,KOBOLD_5,Kobold,Kobold,31,1962,1,580,366,1,223,256,24,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1 +1138,MAGNOLIA,Magnolia,Magnolia,53,1984,1,441,495,1,91,256,51,8,49,25,21,50,28,85,10,12,0,6,21,0x183,200,1054,504,432,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1 +1139,MANTIS,Mantis,Mantis,65,2719,1,594,669,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1 +1140,MARDUK,Marduk,Marduk,73,2893,1,774,872,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1 +1141,MARINA,Marina,Marina,42,1209,1,340,381,1,73,98,20,19,24,27,18,22,29,15,10,12,0,3,41,0x81,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1 +1142,MARINE_SPHERE,Marine Sphere,Marine Sphere,51,1924,1,446,503,1,1,2,41,28,10,16,35,25,26,5,10,12,0,3,41,0x0,800,1201,1,1,0,0,0,0,0,0,0,1050,5000,1051,2500,1520,10,720,10,717,150,10003,10,0,0,0,0,0,0,4084,1 +1143,MARIONETTE,Marionette,Marionette,90,7166,1,1442,2009,1,202,392,35,24,52,79,28,105,72,20,10,12,0,6,68,0x3195,300,1480,480,1056,0,0,0,0,0,0,0,1060,9000,2294,5,2605,1,699,100,1520,15,2407,1,5141,3,0,0,0,0,4113,1 +1144,MARSE,Marse,Marse,47,1456,1,389,438,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1 +1145,MARTIN,Martin,Martin,39,1056,1,311,350,1,70,88,58,19,25,29,28,15,30,10,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1 +1146,MATYR,Matyr,Matyr,58,2087,1,495,557,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1 +1147,MAYA,Maya,Maya,55,380000,1,178560,133920,1,555,820,183,50,88,72,76,102,92,76,10,12,2,4,82,0x37B5,100,864,1000,480,89280,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1 +1148,MEDUSA,Medusa,Medusa,102,10045,1,1737,1302,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,1649,5,1007,3,0,0,0,0,4124,1 +1149,MINOROUS,Minorous,Minorous,58,1893,1,544,602,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,6254,10,1301,200,568,300,0,0,0,0,4126,1 +1150,MOONLIGHT,Moonlight Flower,Moonlight Flower,79,324000,1,334080,271440,1,2029,3280,154,81,86,102,93,82,131,120,10,12,1,6,63,0x37B5,150,1276,576,288,167040,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1 +1151,MYST,Myst,Myst,49,1223,1,396,446,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,2601,1,0,0,0,0,4108,1 +1152,ORC_SKELETON,Orc Skeleton,Orc Skeleton,53,2077,1,459,524,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1 +1153,ORC_ZOMBIE,Orc Zombie,Orc Zombie,51,1908,1,430,498,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1 +1154,PASANA,Pasana,Pasana,79,3510,1,972,1194,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3095,165,976,576,288,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,2522,100,0,0,0,0,0,0,4099,1 +1155,PETIT,Petite,Petite,86,5799,1,1170,1317,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3095,250,2468,768,480,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,6260,40,606,15,0,0,0,0,4118,1 +1156,PETIT_,Petite,Petite,79,3556,1,900,1013,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3095,200,1872,672,288,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1 +1157,PHARAOH,Pharaoh,Pharaoh,85,500000,1,417600,334080,1,1476,3258,124,269,98,102,96,142,144,102,10,12,2,7,67,0x37B5,125,868,768,288,208800,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1 +1158,PHEN,Phen,Phen,52,1963,1,446,503,1,97,127,44,11,54,15,35,15,25,15,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1 +1159,PHREEONI,Phreeoni,Phreeoni,71,300000,1,116000,180000,1,630,1597,269,98,88,70,112,87,102,71,10,12,2,2,60,0x37B5,200,1020,1020,288,58000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1 +1160,PIERE,Piere,Piere,32,696,1,216,243,1,47,67,57,16,19,19,36,8,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1 +1161,PLANKTON,Plankton,Plankton,40,1232,1,334,375,1,75,111,28,28,23,53,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1 +1162,RAFFLESIA,Rafflesia,Rafflesia,86,5819,1,1170,1317,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1 +1163,RAYDRIC,Raydric,Raydric,115,18408,1,2770,2076,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,0,0,0,0,4133,1 +1164,REQUIEM,Requiem,Requiem,71,3089,1,738,831,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1 +1165,SAND_MAN,Sandman,Sandman,61,2887,1,626,705,1,156,212,126,24,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1 +1166,SAVAGE,Savage,Savage,59,2301,1,573,644,1,172,195,126,3,56,21,54,10,47,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,6249,10,757,70,526,2,0,0,0,0,4078,1 +1167,SAVAGE_BABE,Savage Babe,Savage Babe,14,180,1,90,68,1,19,25,22,0,16,8,9,5,21,18,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,919,9000,1302,100,517,500,6249,1,949,850,1010,80,627,40,0,0,0,0,4017,1 +//1168,SCORPION_KING,Scorpion King,Scorpion King,50,5719,1,1968,1211,1,600,713,64,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1 +1169,SKEL_WORKER,Skeleton Worker,Skeleton Worker,44,1240,1,333,374,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,7938,10,0,0,0,0,4092,1 +1170,SOHEE,Sohee,Sohee,64,2875,1,594,669,1,169,199,61,21,61,24,29,20,37,25,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,15012,5,662,350,0,0,0,0,4100,1 +//1171,SOLDIER_ANDRE,Soldier Andre,Soldier Andre,22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1 +//1172,SOLDIER_DENIRO,Soldier Deniro,Soldier Deniro,29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1 +//1173,SOLDIER_PIERE,Soldier Piere,Soldier Piere,23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1 +1174,STAINER,Stainer,Stainer,21,365,1,126,143,1,65,74,22,25,10,10,24,0,39,15,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1 +1175,TAROU,Tarou,Tarou,22,420,1,135,152,1,72,78,23,5,21,6,12,0,10,1,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1 +1176,VITATA,Vitata,Vitata,35,756,1,234,264,1,68,86,44,12,20,11,24,20,21,5,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1 +1177,ZENORC,Zenorc,Zenorc,54,1816,1,450,507,1,130,154,69,5,50,18,20,5,25,5,10,12,1,7,27,0x83,150,1180,480,360,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1 +1178,ZEROM,Zerom,Zerom,70,2687,1,720,960,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,7938,1,0,0,0,0,4064,1 +1179,WHISPER,Whisper,Whisper,46,1109,1,242,513,1,65,120,20,40,32,48,20,35,52,20,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1 +1180,NINE_TAIL,Nine Tail,Nine Tail,72,2783,1,887,998,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1 +//1181,ZOMBIE_DRAGON,Zombie Dragon,Zombie Dragon,1,1000,1,44550,1485,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1182,THIEF_MUSHROOM,Thief Mushroom,Thief Mushroom,1,15,1,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1183,CHONCHON_,Chonchon,Chonchon,5,63,1,36,27,1,11,14,29,0,13,4,4,0,7,5,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1 +1184,FABRE_,Fabre,Fabre,1,30,1,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0 +1185,WHISPER_,Whisper,Whisper,34,1796,1,483,737,1,198,239,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,1001,10,1059,100,0,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0 +1186,WHISPER_BOSS,Giant Whisper,Giant Whisper,66,2570,0,630,710,1,282,341,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1 +1188,BON_GUN,Bongun,Bongun,59,2510,1,531,597,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1 +1189,ORC_ARCHER,Orc Archer,Orc Archer,78,4835,1,922,1161,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1 +1190,ORC_LORD,Orc Lord,Orc Lord,55,552000,1,156240,122760,1,780,1428,256,92,95,95,103,96,155,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,968,5500,617,2000,0,0,1363,400,2621,400,5007,400,1371,400,617,1000,985,4268,16000,3100,0,0,0,0,4135,1 +1191,MIMIC,Mimic,Mimic,56,1939,1,486,548,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,7938,1000,2626,1,757,270,0,0,0,0,4205,1 +1192,WRAITH,Wraith,Wraith,77,5168,1,1190,1191,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1 +1193,ALARM,Alarm,Alarm,88,5562,1,1242,1398,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1 +1194,ARCLOUSE,Arclouse,Arclouze,107,10020,1,1844,2607,1,269,309,101,36,60,73,45,35,140,15,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1 +1195,RIDEWORD,Rideword,Rideword,74,3222,1,810,1212,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3695,150,864,500,192,0,0,0,0,0,0,0,1097,4850,1553,4,1554,4,1555,2,1556,2,7015,300,1006,20,0,0,0,0,4185,1 +1196,SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,91,9194,1,1566,1763,1,466,521,95,41,84,35,60,20,71,15,10,12,1,1,69,0x308D,350,1848,500,576,0,0,0,0,0,0,0,1098,3500,7016,100,2320,1,716,600,930,3500,2408,35,934,1500,0,0,0,0,4222,1 +1197,ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,89,8045,1,1458,1647,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x308D,350,1768,500,192,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1 +1198,DARK_PRIEST,Dark Priest,Dark Priest,98,12090,0,2430,1667,2,355,554,56,30,5,60,41,89,78,42,10,12,1,6,89,0x31AD,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,1,2319,5,7005,3000,0,0,0,0,4171,1 +1199,PUNK,Punk,Punk,82,3869,1,972,1094,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3095,300,1500,500,1000,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1 +1200,ZHERLTHSH,Zherlthsh,Zealotus,105,61350,1,6944,6458,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,7017,5,509,1800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1 +1201,RYBIO,Rybio,Rybio,98,8700,1,1575,1442,1,477,553,109,30,96,52,61,30,73,10,10,12,2,6,40,0x318D,200,1790,1440,540,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,6216,300,1008,10,984,100,709,30,0,0,0,0,4194,1 +1202,PHENDARK,Phendark,Phendark,102,11000,1,1990,1302,2,539,614,307,50,111,65,71,20,91,30,10,12,2,7,40,0x308D,175,1744,1344,600,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,1971,100,0,0,0,0,0,0,4329,1 +1203,MYSTELTAINN,Mysteltainn,Mysteltainn,130,70000,1,7919,4987,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,12736,300,984,243,0,0,0,0,4207,1 +1204,TIRFING,Tirfing,Ogretooth,114,59000,1,5345,5009,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1 +1205,EXECUTIONER,Executioner,Executioner,101,40200,1,4860,3645,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1 +1206,ANOLIAN,Anolian,Anolian,109,15547,1,2930,2223,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3695,190,900,500,864,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,16003,1,2625,1,984,134,0,0,0,0,4234,1 +1207,STING,Sting,Sting,104,10143,1,2172,1629,1,611,678,146,34,108,49,68,34,99,24,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,6213,800,0,0,0,0,4226,1 +1208,WANDER_MAN,Wander Man,Wanderer,120,19307,1,3389,2466,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1 +1209,CRAMP,Cramp,Cramp,82,3898,1,972,1094,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1 +//1210,FILAMENTOUS,Filamentous,Filamentous,51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1 +1211,BRILIGHT,Brilight,Brilight,71,2772,1,738,831,1,306,339,93,25,51,19,38,32,56,30,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,7938,100,757,220,610,250,509,2600,0,0,0,0,4213,1 +1212,IRON_FIST,Iron Fist,Iron Fist,47,4221,0,1292,1368,1,430,590,40,5,1,17,15,10,73,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1 +1213,HIGH_ORC,High Orc,High Orc,81,4193,1,1099,1158,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1 +1214,CHOCO,Choco,Choco,48,1080,1,369,414,1,120,167,70,30,40,45,32,19,42,20,10,12,0,2,23,0x3095,150,1028,528,360,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1 +1215,STEM_WORM,Stem Worm,Stem Worm,84,4530,1,1080,1215,1,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3095,300,1956,756,528,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1 +1216,PENOMENA,Penomena,Penomena,85,4589,1,1116,1556,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1 +1219,KNIGHT_OF_ABYSS,Knight of Abyss,Abysmal Knight,122,23297,1,4779,4013,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,15014,10,0,0,0,0,4140,1 +1220,M_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,349,218,1,254,313,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1 +1221,M_SAVAGE,Savage,Savage,26,2092,0,321,203,1,146,177,16,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1 +//1222,L_HIGH_ORC,High Orc,High Orc,52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1 +//1223,L_ORC,Orc,Orc,24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 +//1224,L_POISON_SPORE,Poison Spore,Poison Spore,19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1 +//1225,L_CHOCO,Choco,Choco,43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1 +//1226,L_KOBOLD,Kobold,Kobold,36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 +//1227,L_GOBLIN,Goblin,Goblin,25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1 +//1228,L_PHEN,Phen,Phen,26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1 +1229,META_FABRE,Fabre,Fabre,2,63,1,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1 +1230,META_PUPA,Pupa,Pupa,2,427,1,2,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1 +1231,META_CREAMY,Creamy,Creamy,16,595,1,86,58,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1 +1232,META_PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,3,420,1,4,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1 +//1233,CONCEIVE_PECOPECO,Peco Peco,Peco Peco,19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1 +1234,PROVOKE_YOYO,Yoyo,Yoyo,19,879,1,122,77,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1 +1235,SMOKING_ORC,Smoking Orc,Smoking Orc,24,1400,1,235,144,1,114,136,16,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1 +1236,META_ANT_EGG,Ant Egg,Ant Egg,4,420,1,5,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1 +1237,META_ANDRE,Andre,Andre,17,688,1,98,64,1,60,71,16,0,1,17,24,20,26,20,10,12,0,4,22,0x118B,300,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1000,935,3000,1001,6,1002,350,757,28,0,0,0,0,4043,1 +1238,META_PIERE,Piere,Piere,18,733,1,110,70,1,64,75,24,0,1,18,26,20,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,955,5700,910,1100,938,600,992,15,1001,5,1002,400,757,31,0,0,0,0,4043,1 +1239,META_DENIRO,Deniro,Deniro,19,760,1,122,77,1,68,79,24,0,1,19,30,20,43,10,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1 +1240,META_PICKY,Picky,Picky,3,80,1,4,3,1,9,12,0,0,1,3,3,0,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,2302,150,507,650,519,350,715,60,0,0,0,0,0,0,4008,1 +1241,META_PICKY_,Picky,Picky,4,83,1,5,4,1,8,11,32,0,1,3,3,0,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,5015,7,507,750,519,350,715,60,0,0,0,0,0,0,4011,1 // Lutie (2.0) -1242,MARIN,Marin,Marin,37,987,1,282,317,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,510,75,529,350,5035,1,0,0,0,0,4196,1 -1243,SASQUATCH,Sasquatch,Sasquatch,72,3163,1,765,860,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1 -1244,JAKK_XMAS,Christmas Jakk,Christmas Jakk,63,2054,1,1002,619,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1 -1245,GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,1,254,154,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1 -1246,COOKIE_XMAS,Christmas Cookie,Christmas Cookie,37,733,1,282,317,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1 -1247,ANTONIO,Antonio,Antonio,10,10,1,3,2,1,13,21,160,0,1,1,1,50,100,100,10,12,1,7,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,0,5136,1000,5811,1000,604,3000,14550,10000,12225,2000,12132,2000,12354,3000,0,0,0,0,12132,2000 -1248,CRUISER,Cruiser,Cruiser,41,919,1,288,324,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x2085,400,1296,1296,432,0,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1 -1249,MYSTCASE,Myst Case,Myst Case,39,879,1,288,324,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x91,400,1248,1248,432,0,0,0,0,0,0,0,0,530,90,7938,10,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1 -1250,CHEPET,Chepet,Chepet,42,4950,0,1315,1854,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3695,400,672,672,288,0,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1 -1251,KNIGHT_OF_WINDSTORM,Knight of Windstorm,Stormy Knight,92,630500,1,413800,302200,2,2677,4110,306,166,126,165,132,104,171,79,10,12,2,0,84,0x37B5,200,468,468,288,206900,10000,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1 -1252,GARM,Garm,Hatii,98,1275500,1,758880,613800,3,1862,3595,173,103,122,153,135,116,146,72,10,12,2,2,81,0x37B5,400,608,408,336,379440,10000,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1 +1242,MARIN,Marin,Marin,37,987,1,282,317,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,510,75,529,350,5035,1,0,0,0,0,4196,1 +1243,SASQUATCH,Sasquatch,Sasquatch,72,3163,1,765,860,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1 +1244,JAKK_XMAS,Christmas Jakk,Christmas Jakk,63,2054,1,1002,619,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1 +1245,GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,1,254,154,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1 +1246,COOKIE_XMAS,Christmas Cookie,Christmas Cookie,37,733,1,282,317,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1 +1247,ANTONIO,Antonio,Antonio,10,10,1,3,2,1,13,21,160,0,1,1,1,50,100,100,10,12,1,7,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,5136,1000,5811,1000,604,3000,14550,10000,12225,2000,12132,2000,12354,3000,0,0,0,0,12132,2000 +1248,CRUISER,Cruiser,Cruiser,41,919,1,288,324,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x2085,400,1296,1296,432,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1 +1249,MYSTCASE,Myst Case,Myst Case,39,879,1,288,324,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x91,400,1248,1248,432,0,0,0,0,0,0,0,530,90,7938,10,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1 +1250,CHEPET,Chepet,Chepet,42,4950,0,1315,1854,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3695,400,672,672,288,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1 +1251,KNIGHT_OF_WINDSTORM,Knight of Windstorm,Stormy Knight,92,630500,1,413800,302200,2,2677,4110,306,166,126,165,132,104,171,79,10,12,2,0,84,0x37B5,200,468,468,288,206900,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1 +1252,GARM,Garm,Hatii,98,1275500,1,758880,613800,3,1862,3595,173,103,122,153,135,116,146,72,10,12,2,2,81,0x37B5,400,608,408,336,379440,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1 // Comodo (3.0) -1253,GARGOYLE,Gargoyle,Gargoyle,100,8772,1,1900,1425,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,912,3880,1039,500,2506,2,1746,5,2619,1,1769,2000,757,238,0,0,0,0,4149,1 -1254,RAGGLER,Raggler,Raggler,48,1148,1,369,414,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3695,200,1000,900,384,0,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1 -1255,NERAID,Neraid,Nereid,98,9550,1,1575,1181,1,196,267,100,37,97,45,60,30,69,50,10,12,0,2,22,0x3695,200,776,576,288,0,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1 -1256,PEST,Pest,Pest,89,5747,1,1341,1509,1,304,352,55,33,73,77,48,15,88,25,10,12,0,2,47,0x3695,165,700,648,480,0,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1 -1257,INJUSTICE,Injustice,Injustice,95,7952,1,1574,1997,1,344,460,76,31,77,59,58,65,73,50,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1 -1258,GOBLIN_ARCHER,Goblin Archer,Goblin Archer,55,1575,1,450,507,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1 -1259,GRYPHON,Gryphon,Gryphon,105,60720,1,9410,5808,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1 -1260,DARK_FRAME,Dark Frame,Dark Frame,76,3520,1,992,1115,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1 -1261,WILD_ROSE,Wild Rose,Wild Rose,70,2682,1,720,1110,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,2336,1,624,35,528,600,2244,2,0,0,0,0,4257,1 -1262,MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,50706,1,3644,12830,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,100,7296,1500,2527,50,0,0,0,0,4203,1 -1263,WIND_GHOST,Wind Ghost,Wind Ghost,80,4008,1,918,1334,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1 -1264,MERMAN,Merman,Merman,60,2940,1,616,692,1,125,157,62,8,45,29,30,19,50,10,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,0,1054,1300,2317,2,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1 -1265,COOKIE,Cookie,Cookie,35,666,1,234,264,1,59,84,56,28,15,23,35,12,31,15,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,0,538,1000,530,150,7938,5,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1 -1266,ASTER,Aster,Aster,50,1509,1,405,455,1,85,107,70,7,41,14,15,0,28,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1 -1267,CARAT,Carat,Carat,103,9222,1,1944,1458,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1 -1268,BLOODY_KNIGHT,Bloody Knight,Bloody Knight,116,68500,1,7348,6511,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,15014,5,0,0,0,0,4320,1 -1269,CLOCK,Clock,Clock,81,5556,1,1231,1158,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1 -1270,C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,90,6400,1,1305,1467,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1 -1271,ALLIGATOR,Alligator,Alligator,57,2430,1,486,548,1,150,187,62,30,47,48,24,15,36,26,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1 -1272,DARK_LORD,Dark Lord,Dark Lord,96,1190900,1,714240,558000,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,357120,10000,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,5162,10,0,0,0,0,4168,1 -1273,ORC_LADY,Orc Lady,Orc Lady,45,1520,1,380,435,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,0,7053,4656,15012,3,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1 -1274,MEGALITH,Megalith,Megalith,65,2451,1,594,669,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1 -1275,ALICE,Alice,Alice,100,9230,1,1630,1222,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,502,1999,480,0,0,0,0,0,0,0,0,7047,3000,637,40,2407,3,2148,2,5085,1,12128,10,12002,100,0,0,0,0,4253,1 -1276,RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,82,4437,1,1049,1332,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,15013,5,1764,2000,1715,3,985,106,0,0,0,0,4187,1 -1277,GREATEST_GENERAL,Greatest General,Greatest General,55,1575,1,486,548,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1 -1278,STALACTIC_GOLEM,Stalactic Golem,Stalactic Golem,68,2590,1,675,759,1,341,362,230,5,67,47,48,1,63,5,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,2147,5,985,163,0,0,0,0,4223,1 -1279,TRI_JOINT,Tri Joint,Tri Joint,66,2530,0,347,297,1,278,306,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3795,200,860,660,624,0,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1 -1280,STEAM_GOBLIN,Steam Goblin,Goblin Steamrider,66,2241,1,680,765,1,280,315,85,5,52,61,32,15,82,25,10,12,1,7,44,0x91,200,1008,1008,528,0,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1 -1281,SAGEWORM,Sage Worm,Sage Worm,70,2872,1,720,810,1,158,279,109,45,39,29,28,71,44,30,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1 -1282,KOBOLD_ARCHER,Kobold Archer,Kobold Archer,108,11053,1,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1 -1283,CHIMERA,Chimera,Chimera,70,26406,1,5168,4698,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1 -//1284,HUGELING,Hugeling,Hugeling,1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0 +1253,GARGOYLE,Gargoyle,Gargoyle,100,8772,1,1900,1425,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,912,3880,1039,500,2506,2,1746,5,2619,1,1769,2000,757,238,0,0,0,0,4149,1 +1254,RAGGLER,Raggler,Raggler,48,1148,1,369,414,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3695,200,1000,900,384,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1 +1255,NERAID,Neraid,Nereid,98,9550,1,1575,1181,1,196,267,100,37,97,45,60,30,69,50,10,12,0,2,22,0x3695,200,776,576,288,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1 +1256,PEST,Pest,Pest,89,5747,1,1341,1509,1,304,352,55,33,73,77,48,15,88,25,10,12,0,2,47,0x3695,165,700,648,480,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1 +1257,INJUSTICE,Injustice,Injustice,95,7952,1,1574,1997,1,344,460,76,31,77,59,58,65,73,50,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1 +1258,GOBLIN_ARCHER,Goblin Archer,Goblin Archer,55,1575,1,450,507,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1 +1259,GRYPHON,Gryphon,Gryphon,105,60720,1,9410,5808,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1 +1260,DARK_FRAME,Dark Frame,Dark Frame,76,3520,1,992,1115,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1 +1261,WILD_ROSE,Wild Rose,Wild Rose,70,2682,1,720,1110,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,2336,1,624,35,528,600,2244,2,0,0,0,0,4257,1 +1262,MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,50706,1,3644,12830,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,100,7296,1500,2527,50,0,0,0,0,4203,1 +1263,WIND_GHOST,Wind Ghost,Wind Ghost,80,4008,1,918,1334,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1 +1264,MERMAN,Merman,Merman,60,2940,1,616,692,1,125,157,62,8,45,29,30,19,50,10,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,1054,1300,2317,2,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1 +1265,COOKIE,Cookie,Cookie,35,666,1,234,264,1,59,84,56,28,15,23,35,12,31,15,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,538,1000,530,150,7938,5,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1 +1266,ASTER,Aster,Aster,50,1509,1,405,455,1,85,107,70,7,41,14,15,0,28,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1 +1267,CARAT,Carat,Carat,103,9222,1,1944,1458,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1 +1268,BLOODY_KNIGHT,Bloody Knight,Bloody Knight,116,68500,1,7348,6511,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,15014,5,0,0,0,0,4320,1 +1269,CLOCK,Clock,Clock,81,5556,1,1231,1158,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1 +1270,C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,90,6400,1,1305,1467,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1 +1271,ALLIGATOR,Alligator,Alligator,57,2430,1,486,548,1,150,187,62,30,47,48,24,15,36,26,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1 +1272,DARK_LORD,Dark Lord,Dark Lord,96,1190900,1,714240,558000,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,357120,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,5162,10,0,0,0,0,4168,1 +1273,ORC_LADY,Orc Lady,Orc Lady,45,1520,1,380,435,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,7053,4656,15012,3,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1 +1274,MEGALITH,Megalith,Megalith,65,2451,1,594,669,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1 +1275,ALICE,Alice,Alice,100,9230,1,1630,1222,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,502,1999,480,0,0,0,0,0,0,0,7047,3000,637,40,2407,3,2148,2,5085,1,12128,10,12002,100,0,0,0,0,4253,1 +1276,RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,82,4437,1,1049,1332,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,15013,5,1764,2000,1715,3,985,106,0,0,0,0,4187,1 +1277,GREATEST_GENERAL,Greatest General,Greatest General,55,1575,1,486,548,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1 +1278,STALACTIC_GOLEM,Stalactic Golem,Stalactic Golem,68,2590,1,675,759,1,341,362,230,5,67,47,48,1,63,5,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,2147,5,985,163,0,0,0,0,4223,1 +1279,TRI_JOINT,Tri Joint,Tri Joint,66,2530,0,347,297,1,278,306,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3795,200,860,660,624,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1 +1280,STEAM_GOBLIN,Steam Goblin,Goblin Steamrider,66,2241,1,680,765,1,280,315,85,5,52,61,32,15,82,25,10,12,1,7,44,0x91,200,1008,1008,528,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1 +1281,SAGEWORM,Sage Worm,Sage Worm,70,2872,1,720,810,1,158,279,109,45,39,29,28,71,44,30,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1 +1282,KOBOLD_ARCHER,Kobold Archer,Kobold Archer,108,11053,1,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1 +1283,CHIMERA,Chimera,Chimera,70,26406,1,5168,4698,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1 +//1284,HUGELING,Hugeling,Hugeling,1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0 // War Of Emperium & Guild Dungeon (4.1) -1285,ARCHER_GUARDIAN,Archer Guardian,Archer Guardian,74,28634,1,1,1,12,1120,1600,56,60,95,80,80,90,165,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1286,KNIGHT_GUARDIAN,Knight Guardian,Knight Guardian,86,30214,1,1,1,2,1280,1560,88,30,110,40,140,65,125,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1287,SOLDIER_GUARDIAN,Soldier Guardian,Soldier Guardian,56,15670,1,1,1,1,873,1036,56,0,85,56,100,45,103,43,10,12,2,7,20,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1288,EMPELIUM,Emperium,Emperium,90,700,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1289,MAYA_PUPLE,Maya Purple,Maya Purple,81,77670,1,11714,6516,2,1447,2000,139,40,95,52,80,95,73,119,10,12,2,4,82,0x37B5,100,1024,1000,480,0,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1 -1290,SKELETON_GENERAL,Skeleton General,Skeleton General,88,6720,0,1368,1553,1,540,579,100,35,72,34,52,31,84,25,10,12,1,1,29,0x3695,150,2276,576,432,0,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,13035,15,2274,1,0,0,0,0,4221,1 -1291,WRAITH_DEAD,Wraith Dead,Wraith Dead,86,10035,0,2518,1824,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,100,568,300,0,0,0,0,4189,1 -1292,MINI_DEMON,Mini Demon,Mini Demon,117,19402,1,2700,2025,1,670,784,80,25,130,69,55,56,79,40,10,12,0,6,27,0x3795,150,1000,600,384,0,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1478,5,0,0,0,0,4204,1 -1293,CREMY_FEAR,Creamy Fear,Creamy Fear,77,3420,0,945,1067,2,272,335,76,37,65,36,33,49,66,30,10,12,0,4,24,0x3795,155,1136,720,840,0,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,2726,5,522,50,0,0,0,0,4298,1 -1294,KILLER_MANTIS,Killer Mantis,Killer Mantis,91,7650,0,1485,1674,1,500,550,107,45,82,56,58,45,69,40,10,12,1,4,22,0x3795,175,1528,660,432,0,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1 -1295,OWL_BARON,Owl Baron,Owl Baron,120,21000,1,3042,2282,2,449,650,88,25,72,65,55,102,77,72,10,12,2,6,60,0x37B5,175,1345,824,440,0,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1629,2,693,100,5045,5,0,0,0,0,4238,1 -1296,KOBOLD_LEADER,Kobold Leader,Kobold Leader,112,13520,1,2643,2383,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1 -1297,ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,114,27157,1,4104,3199,1,701,901,93,51,126,57,55,69,112,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,12735,10,756,150,757,100,0,0,0,0,4248,1 -1298,ZOMBIE_MASTER,Zombie Master,Zombie Master,92,8780,0,1710,1857,1,499,629,78,46,55,60,48,49,72,48,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1 -1299,GOBLIN_LEADER,Goblin Leader,Goblin Leader,55,21692,1,4450,5007,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1 -1300,CATERPILLAR,Caterpillar,Caterpillar,84,5555,0,1312,1487,1,270,313,100,42,58,37,51,50,45,45,10,12,0,4,22,0x3795,300,1672,672,480,0,0,0,0,0,0,0,0,949,3000,7054,5335,13034,20,1000,100,997,50,505,12,508,500,0,0,0,0,4289,1 -1301,AM_MUT,Am Mut,Am Mut,76,3530,0,945,1067,1,342,391,90,42,58,44,40,35,67,45,10,12,0,6,27,0x3795,200,1156,456,384,0,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,250,0,0,0,0,4245,1 -1302,DARK_ILLUSION,Dark Illusion,Dark Illusion,96,29255,0,4091,4099,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1 -1303,GIANT_HONET,Giant Hornet,Giant Hornet,82,3960,0,1080,1215,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,526,550,518,1200,522,12,610,15,1608,3,722,20,1736,15,0,0,0,0,4271,1 -1304,GIANT_SPIDER,Giant Spider,Giant Spider,85,4680,0,1242,1418,1,298,350,86,38,71,58,43,38,61,41,10,12,2,4,25,0x3795,165,1468,468,768,0,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1 -1305,ANCIENT_WORM,Ancient Worm,Ancient Worm,83,4140,0,1139,1283,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,2727,5,1096,680,938,3500,7054,2500,0,0,0,0,4249,1 -1306,LEIB_OLMAI,Leib Olmai,Leib Olmai,87,6050,0,1314,1485,1,299,363,127,31,72,35,80,35,64,27,10,12,2,2,22,0x3695,175,1260,230,192,0,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,2717,5,969,5,7053,800,0,0,0,0,4188,1 -1307,CAT_O_NINE_TAIL,Cat o' Nine Tails,Cat o' Nine Tails,79,23600,0,4148,5792,1,467,547,100,50,72,75,40,50,79,48,10,12,1,6,63,0x37B5,155,1276,576,288,0,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1 -1308,PANZER_GOBLIN,Panzer Goblin,Panzer Goblin,52,1471,1,446,504,1,122,180,60,25,52,60,35,35,68,31,10,12,1,7,44,0x3695,200,960,1008,840,0,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1 -1309,GAJOMART,Gajomart,Gajomart,81,3825,0,1317,1490,1,355,412,98,50,77,47,39,33,78,40,10,12,0,0,83,0x3695,300,1000,1152,828,0,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,1752,10000,2131,20,994,180,0,0,0,0,4151,1 -1310,MAJORUROS,Majoruros,Majoruros,107,11801,1,3090,2200,1,654,1086,111,25,112,58,65,55,72,49,10,12,2,2,43,0x3695,250,1100,960,780,0,0,0,0,0,0,0,0,941,4413,1361,4,6254,300,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1 -1311,GULLINBURSTI,Gullinbursti,Gullinbursti,89,7080,0,1478,1677,1,371,419,108,43,88,54,82,35,63,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1 +1285,ARCHER_GUARDIAN,Archer Guardian,Archer Guardian,74,28634,1,1,1,12,1120,1600,56,60,95,80,80,90,165,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1286,KNIGHT_GUARDIAN,Knight Guardian,Knight Guardian,86,30214,1,1,1,2,1280,1560,88,30,110,40,140,65,125,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1287,SOLDIER_GUARDIAN,Soldier Guardian,Soldier Guardian,56,15670,1,1,1,1,873,1036,56,0,85,56,100,45,103,43,10,12,2,7,20,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1288,EMPELIUM,Emperium,Emperium,90,700,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1289,MAYA_PUPLE,Maya Purple,Maya Purple,81,77670,1,11714,6516,2,1447,2000,139,40,95,52,80,95,73,119,10,12,2,4,82,0x37B5,100,1024,1000,480,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1 +1290,SKELETON_GENERAL,Skeleton General,Skeleton General,88,6720,0,1368,1553,1,540,579,100,35,72,34,52,31,84,25,10,12,1,1,29,0x3695,150,2276,576,432,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,13035,15,2274,1,0,0,0,0,4221,1 +1291,WRAITH_DEAD,Wraith Dead,Wraith Dead,86,10035,0,2518,1824,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,100,568,300,0,0,0,0,4189,1 +1292,MINI_DEMON,Mini Demon,Mini Demon,117,19402,1,2700,2025,1,670,784,80,25,130,69,55,56,79,40,10,12,0,6,27,0x3795,150,1000,600,384,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1478,5,0,0,0,0,4204,1 +1293,CREMY_FEAR,Creamy Fear,Creamy Fear,77,3420,0,945,1067,2,272,335,76,37,65,36,33,49,66,30,10,12,0,4,24,0x3795,155,1136,720,840,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,2726,5,522,50,0,0,0,0,4298,1 +1294,KILLER_MANTIS,Killer Mantis,Killer Mantis,91,7650,0,1485,1674,1,500,550,107,45,82,56,58,45,69,40,10,12,1,4,22,0x3795,175,1528,660,432,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1 +1295,OWL_BARON,Owl Baron,Owl Baron,120,21000,1,3042,2282,2,449,650,88,25,72,65,55,102,77,72,10,12,2,6,60,0x37B5,175,1345,824,440,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1629,2,693,100,5045,5,0,0,0,0,4238,1 +1296,KOBOLD_LEADER,Kobold Leader,Kobold Leader,112,13520,1,2643,2383,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1 +1297,ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,114,27157,1,4104,3199,1,701,901,93,51,126,57,55,69,112,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,12735,10,756,150,757,100,0,0,0,0,4248,1 +1298,ZOMBIE_MASTER,Zombie Master,Zombie Master,92,8780,0,1710,1857,1,499,629,78,46,55,60,48,49,72,48,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1 +1299,GOBLIN_LEADER,Goblin Leader,Goblin Leader,55,21692,1,4450,5007,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1 +1300,CATERPILLAR,Caterpillar,Caterpillar,84,5555,0,1312,1487,1,270,313,100,42,58,37,51,50,45,45,10,12,0,4,22,0x3795,300,1672,672,480,0,0,0,0,0,0,0,949,3000,7054,5335,13034,20,1000,100,997,50,505,12,508,500,0,0,0,0,4289,1 +1301,AM_MUT,Am Mut,Am Mut,76,3530,0,945,1067,1,342,391,90,42,58,44,40,35,67,45,10,12,0,6,27,0x3795,200,1156,456,384,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,250,0,0,0,0,4245,1 +1302,DARK_ILLUSION,Dark Illusion,Dark Illusion,96,29255,0,4091,4099,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1 +1303,GIANT_HONET,Giant Hornet,Giant Hornet,82,3960,0,1080,1215,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,526,550,518,1200,522,12,610,15,1608,3,722,20,1736,15,0,0,0,0,4271,1 +1304,GIANT_SPIDER,Giant Spider,Giant Spider,85,4680,0,1242,1418,1,298,350,86,38,71,58,43,38,61,41,10,12,2,4,25,0x3795,165,1468,468,768,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1 +1305,ANCIENT_WORM,Ancient Worm,Ancient Worm,83,4140,0,1139,1283,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,2727,5,1096,680,938,3500,7054,2500,0,0,0,0,4249,1 +1306,LEIB_OLMAI,Leib Olmai,Leib Olmai,87,6050,0,1314,1485,1,299,363,127,31,72,35,80,35,64,27,10,12,2,2,22,0x3695,175,1260,230,192,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,2717,5,969,5,7053,800,0,0,0,0,4188,1 +1307,CAT_O_NINE_TAIL,Cat o' Nine Tails,Cat o' Nine Tails,79,23600,0,4148,5792,1,467,547,100,50,72,75,40,50,79,48,10,12,1,6,63,0x37B5,155,1276,576,288,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1 +1308,PANZER_GOBLIN,Panzer Goblin,Panzer Goblin,52,1471,1,446,504,1,122,180,60,25,52,60,35,35,68,31,10,12,1,7,44,0x3695,200,960,1008,840,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1 +1309,GAJOMART,Gajomart,Gajomart,81,3825,0,1317,1490,1,355,412,98,50,77,47,39,33,78,40,10,12,0,0,83,0x3695,300,1000,1152,828,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,1752,10000,2131,20,994,180,0,0,0,0,4151,1 +1310,MAJORUROS,Majoruros,Majoruros,107,11801,1,3090,2200,1,654,1086,111,25,112,58,65,55,72,49,10,12,2,2,43,0x3695,250,1100,960,780,0,0,0,0,0,0,0,941,4413,1361,4,6254,300,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1 +1311,GULLINBURSTI,Gullinbursti,Gullinbursti,89,7080,0,1478,1677,1,371,419,108,43,88,54,82,35,63,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1 // Turtle Dungeon (4.0) -1312,TURTLE_GENERAL,Turtle General,Turtle General,110,1442000,1,933120,748440,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,466560,10000,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1 -1313,MOBSTER,Mobster,Mobster,58,2253,1,495,557,1,149,172,87,18,72,36,33,21,41,5,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,6264,500,912,2500,525,450,6265,500,0,0,0,0,4317,1 -1314,PERMETER,Permeter,Permeter,90,6575,1,1305,1467,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x91,250,1100,483,528,0,0,0,0,0,0,0,0,967,4413,6263,200,7939,100,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1 -1315,ASSULTER,Assaulter,Assaulter,100,8977,1,1992,1779,2,405,472,169,49,100,92,30,20,103,15,10,12,1,7,44,0x3695,200,512,780,504,0,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,6214,200,912,1240,13300,5,603,1,0,0,0,0,4246,1 -1316,SOLIDER,Solider,Solider,92,8768,1,1487,1671,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x91,250,1452,483,528,0,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1 -1317,FUR_SEAL,Fur Seal,Seal,47,1371,1,360,405,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3885,200,1612,622,583,0,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1 -1318,HEATER,Heater,Heater,98,8180,1,1893,1611,2,511,590,199,50,89,49,50,30,88,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,967,4413,7070,750,697,100,6244,1000,526,140,7054,600,7068,1250,0,0,0,0,4331,1 -1319,FREEZER,Freezer,Freezer,94,9990,1,1555,1749,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,170,1260,960,672,0,0,0,0,0,0,0,0,967,4413,7070,850,7066,1250,912,1800,526,160,6256,200,689,100,0,0,0,0,4319,1 -1320,OWL_DUKE,Owl Duke,Owl Duke,92,7381,1,1377,1953,1,480,680,80,45,54,51,45,88,88,50,10,12,2,6,60,0x37B5,195,1345,824,440,0,0,0,0,0,0,0,0,7071,4413,7063,1500,693,100,747,1,1451,3,1513,2,5045,1,0,0,0,0,4237,1 -1321,DRAGON_TAIL,Dragon Tail,Dragon Tail,86,4680,1,1264,1422,1,182,217,63,25,61,65,35,40,52,20,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1 -1322,SPRING_RABBIT,Spring Rabbit,Spring Rabbit,88,6684,1,1341,1509,1,288,328,108,42,68,66,35,30,48,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1 -1323,SEE_OTTER,Sea Otter,Sea Otter,48,1820,1,428,480,1,83,125,31,18,32,26,33,26,41,28,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1 +1312,TURTLE_GENERAL,Turtle General,Turtle General,110,1442000,1,933120,748440,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,466560,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1 +1313,MOBSTER,Mobster,Mobster,58,2253,1,495,557,1,149,172,87,18,72,36,33,21,41,5,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,6264,500,912,2500,525,450,6265,500,0,0,0,0,4317,1 +1314,PERMETER,Permeter,Permeter,90,6575,1,1305,1467,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x91,250,1100,483,528,0,0,0,0,0,0,0,967,4413,6263,200,7939,100,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1 +1315,ASSULTER,Assaulter,Assaulter,100,8977,1,1992,1779,2,405,472,169,49,100,92,30,20,103,15,10,12,1,7,44,0x3695,200,512,780,504,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,6214,200,912,1240,13300,5,603,1,0,0,0,0,4246,1 +1316,SOLIDER,Solider,Solider,92,8768,1,1487,1671,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x91,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1 +1317,FUR_SEAL,Fur Seal,Seal,47,1371,1,360,405,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3885,200,1612,622,583,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1 +1318,HEATER,Heater,Heater,98,8180,1,1893,1611,2,511,590,199,50,89,49,50,30,88,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,750,697,100,6244,1000,526,140,7054,600,7068,1250,0,0,0,0,4331,1 +1319,FREEZER,Freezer,Freezer,94,9990,1,1555,1749,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,170,1260,960,672,0,0,0,0,0,0,0,967,4413,7070,850,7066,1250,912,1800,526,160,6256,200,689,100,0,0,0,0,4319,1 +1320,OWL_DUKE,Owl Duke,Owl Duke,92,7381,1,1377,1953,1,480,680,80,45,54,51,45,88,88,50,10,12,2,6,60,0x37B5,195,1345,824,440,0,0,0,0,0,0,0,7071,4413,7063,1500,693,100,747,1,1451,3,1513,2,5045,1,0,0,0,0,4237,1 +1321,DRAGON_TAIL,Dragon Tail,Dragon Tail,86,4680,1,1264,1422,1,182,217,63,25,61,65,35,40,52,20,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1 +1322,SPRING_RABBIT,Spring Rabbit,Spring Rabbit,88,6684,1,1341,1509,1,288,328,108,42,68,66,35,30,48,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1 +1323,SEE_OTTER,Sea Otter,Sea Otter,48,1820,1,428,480,1,83,125,31,18,32,26,33,26,41,28,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1 // WoE Treasure Boxes -1324,TREASURE_BOX1,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1325,TREASURE_BOX2,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7073,80,658,500,604,10000,984,4850,985,7275,1239,1500,5027,75,1165,8,0,0,0,0 -1326,TREASURE_BOX3,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1327,TREASURE_BOX4,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7074,80,658,500,604,10000,984,4850,985,7275,2108,1000,1306,75,5022,2,0,0,0,0 -1328,TREASURE_BOX5,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1329,TREASURE_BOX6,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7075,80,658,500,604,10000,984,4850,985,7275,2102,834,5019,100,5002,9,0,0,0,0 -1330,TREASURE_BOX7,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1331,TREASURE_BOX8,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7076,80,658,500,604,10000,984,4850,985,7275,2616,500,2334,125,2622,9,0,0,0,0 -1332,TREASURE_BOX9,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1333,TREASURE_BOX10,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7077,80,658,500,604,10000,984,4850,985,7275,2104,500,2331,150,2623,10,0,0,0,0 -1334,TREASURE_BOX11,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1335,TREASURE_BOX12,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7078,80,658,500,604,10000,984,4850,985,7275,2270,500,1716,150,2256,10,0,0,0,0 -1336,TREASURE_BOX13,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1337,TREASURE_BOX14,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7079,80,658,500,604,10000,984,4850,985,7275,1238,375,1531,150,2318,10,0,0,0,0 -1338,TREASURE_BOX15,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1339,TREASURE_BOX16,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7080,80,658,500,604,10000,984,4850,985,7275,2626,300,1472,167,2327,10,0,0,0,0 -1340,TREASURE_BOX17,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1341,TREASURE_BOX18,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7081,80,658,500,604,10000,984,4850,985,7275,1143,250,1237,188,2235,12,0,0,0,0 -1342,TREASURE_BOX19,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1343,TREASURE_BOX20,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7082,80,658,500,604,10000,984,4850,985,7275,617,250,1144,188,5007,19,0,0,0,0 -1344,TREASURE_BOX21,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1345,TREASURE_BOX22,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7083,80,658,500,604,10000,984,4850,985,7275,2508,1000,2336,69,2621,20,0,0,0,0 -1346,TREASURE_BOX23,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1347,TREASURE_BOX24,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7084,80,658,500,604,10000,984,4850,985,7275,2106,1000,1164,50,5025,24,0,0,0,0 -1348,TREASURE_BOX25,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1349,TREASURE_BOX26,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7085,80,658,500,604,10000,984,4850,985,7275,2231,750,2624,46,2286,25,0,0,0,0 -1350,TREASURE_BOX27,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1351,TREASURE_BOX28,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7086,80,658,500,604,10000,984,4850,985,7275,2283,500,2615,41,2234,32,0,0,0,0 -1352,TREASURE_BOX29,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1353,TREASURE_BOX30,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7087,80,658,500,604,10000,984,4850,985,7275,2507,500,2625,38,5045,34,0,0,0,0 -1354,TREASURE_BOX31,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1355,TREASURE_BOX32,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7088,80,658,500,604,10000,984,4850,985,7275,2407,429,2269,250,2317,35,0,0,0,0 -1356,TREASURE_BOX33,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1357,TREASURE_BOX34,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7089,80,658,500,604,10000,984,4850,985,7275,2109,300,2406,273,2258,38,0,0,0,0 -1358,TREASURE_BOX35,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1359,TREASURE_BOX36,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7090,80,658,500,604,10000,984,4850,985,7275,1142,215,2255,60,5017,38,0,0,0,0 -1360,TREASURE_BOX37,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1361,TREASURE_BOX38,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7091,80,658,500,604,10000,984,4850,985,7275,1417,50,5053,50,2229,50,0,0,0,0 -1362,TREASURE_BOX39,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 -1363,TREASURE_BOX40,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0 +1324,TREASURE_BOX1,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1325,TREASURE_BOX2,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7073,80,658,500,604,10000,984,4850,985,7275,1239,1500,5027,75,1165,8,0,0,0,0 +1326,TREASURE_BOX3,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1327,TREASURE_BOX4,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7074,80,658,500,604,10000,984,4850,985,7275,2108,1000,1306,75,5022,2,0,0,0,0 +1328,TREASURE_BOX5,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1329,TREASURE_BOX6,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7075,80,658,500,604,10000,984,4850,985,7275,2102,834,5019,100,5002,9,0,0,0,0 +1330,TREASURE_BOX7,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1331,TREASURE_BOX8,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7076,80,658,500,604,10000,984,4850,985,7275,2616,500,2334,125,2622,9,0,0,0,0 +1332,TREASURE_BOX9,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1333,TREASURE_BOX10,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7077,80,658,500,604,10000,984,4850,985,7275,2104,500,2331,150,2623,10,0,0,0,0 +1334,TREASURE_BOX11,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1335,TREASURE_BOX12,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7078,80,658,500,604,10000,984,4850,985,7275,2270,500,1716,150,2256,10,0,0,0,0 +1336,TREASURE_BOX13,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1337,TREASURE_BOX14,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7079,80,658,500,604,10000,984,4850,985,7275,1238,375,1531,150,2318,10,0,0,0,0 +1338,TREASURE_BOX15,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1339,TREASURE_BOX16,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7080,80,658,500,604,10000,984,4850,985,7275,2626,300,1472,167,2327,10,0,0,0,0 +1340,TREASURE_BOX17,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1341,TREASURE_BOX18,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7081,80,658,500,604,10000,984,4850,985,7275,1143,250,1237,188,2235,12,0,0,0,0 +1342,TREASURE_BOX19,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1343,TREASURE_BOX20,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7082,80,658,500,604,10000,984,4850,985,7275,617,250,1144,188,5007,19,0,0,0,0 +1344,TREASURE_BOX21,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1345,TREASURE_BOX22,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7083,80,658,500,604,10000,984,4850,985,7275,2508,1000,2336,69,2621,20,0,0,0,0 +1346,TREASURE_BOX23,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1347,TREASURE_BOX24,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7084,80,658,500,604,10000,984,4850,985,7275,2106,1000,1164,50,5025,24,0,0,0,0 +1348,TREASURE_BOX25,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1349,TREASURE_BOX26,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7085,80,658,500,604,10000,984,4850,985,7275,2231,750,2624,46,2286,25,0,0,0,0 +1350,TREASURE_BOX27,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1351,TREASURE_BOX28,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7086,80,658,500,604,10000,984,4850,985,7275,2283,500,2615,41,2234,32,0,0,0,0 +1352,TREASURE_BOX29,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1353,TREASURE_BOX30,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7087,80,658,500,604,10000,984,4850,985,7275,2507,500,2625,38,5045,34,0,0,0,0 +1354,TREASURE_BOX31,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1355,TREASURE_BOX32,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7088,80,658,500,604,10000,984,4850,985,7275,2407,429,2269,250,2317,35,0,0,0,0 +1356,TREASURE_BOX33,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1357,TREASURE_BOX34,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7089,80,658,500,604,10000,984,4850,985,7275,2109,300,2406,273,2258,38,0,0,0,0 +1358,TREASURE_BOX35,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1359,TREASURE_BOX36,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7090,80,658,500,604,10000,984,4850,985,7275,1142,215,2255,60,5017,38,0,0,0,0 +1360,TREASURE_BOX37,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1361,TREASURE_BOX38,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7091,80,658,500,604,10000,984,4850,985,7275,1417,50,5053,50,2229,50,0,0,0,0 +1362,TREASURE_BOX39,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0 +1363,TREASURE_BOX40,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0 // Yuno (5.0) -1364,G_ASSULTER,Assaulter,Assaulter,98,7798,1,0,0,2,225,292,83,49,100,86,30,20,82,15,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1365,APOCALIPS,Apocalypse,Apocalypse,121,22090,1,3042,2282,2,752,868,136,26,130,53,76,25,89,15,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,12735,100,0,0,0,0,4242,1 -1366,LAVA_GOLEM,Lava Golem,Lava Golem,103,8452,1,2232,1674,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,6245,500,0,0,0,0,4184,1 -1367,BLAZZER,Blazer,Blazer,101,8121,1,1827,1371,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1 -1368,GEOGRAPHER,Geographer,Geographer,73,3866,1,898,1010,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1 -1369,GRAND_PECO,Grand Peco,Grand Peco,75,3150,1,887,998,2,316,372,95,30,63,45,50,23,51,25,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1 -1370,SUCCUBUS,Succubus,Succubus,119,24960,1,3924,3489,2,670,864,76,48,100,64,45,80,82,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1 -1371,FAKE_ANGEL,Fake Angel,False Angel,105,10988,1,2100,1570,2,505,640,106,84,112,67,43,81,68,80,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,0,0,0,0,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1 -1372,GOAT,Goat,Goat,80,3980,1,1065,1197,1,387,447,95,43,61,40,48,40,65,31,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1 -1373,LORD_OF_DEATH,Lord of Death,Lord of the Dead,94,603883,1,437121,345252,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,218560,10000,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1 -1374,INCUBUS,Incubus,Incubus,120,28000,1,3928,3646,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1 -1375,THE_PAPER,The Paper,The Paper,97,8500,1,1530,1148,1,280,390,32,39,77,49,30,5,61,5,10,12,1,0,60,0x3885,350,720,864,504,0,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1 -1376,HARPY,Harpy,Harpy,83,4423,1,1201,1349,1,282,323,69,44,71,39,50,31,96,12,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,1820,20,0,0,0,0,0,0,4325,1 -1377,ELDER,Elder,Elder,92,7341,1,1377,2898,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,7099,4000,7117,1500,7939,1000,1564,10,1473,1,616,1,7027,3000,0,0,0,0,4251,1 -1378,DEMON_PUNGUS,Demon Pungus,Demon Pungus,91,6466,1,1350,1520,1,428,493,80,52,63,61,30,38,79,43,10,12,0,6,65,0x3985,170,1260,960,672,0,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1 -1379,NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,107,13289,1,2443,1832,1,629,755,78,37,118,53,55,63,88,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,1261,1,0,0,0,0,4166,1 -1380,DRILLER,Driller,Driller,65,2719,1,594,669,1,181,212,96,18,62,50,25,15,48,5,10,12,1,2,22,0x3885,165,1300,900,336,0,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1 -1381,GRIZZLY,Grizzly,Grizzly,66,2241,1,731,822,1,254,267,109,2,60,26,44,3,78,15,10,12,2,2,63,0x3885,165,1492,1092,192,0,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,2353,10,0,0,0,0,0,0,0,0,0,0,4162,1 -1382,DIABOLIC,Diabolic,Diabolic,104,10572,1,2172,1629,1,544,644,68,61,103,80,53,65,78,25,10,12,0,6,47,0x3985,150,1080,780,180,0,0,0,0,0,0,0,0,1038,5820,1039,4850,2605,3,984,20,1263,10,0,0,0,0,0,0,0,0,4182,1 -1383,EXPLOSION,Explosion,Explosion,100,7813,1,1900,1425,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,7006,5500,7097,2200,7122,3200,756,800,522,400,0,0,0,0,0,0,0,0,4267,1 -1384,DELETER,Deleter,Deleter,105,10000,1,2099,1574,1,502,581,111,53,105,55,53,68,67,73,10,12,1,9,43,0x308D,175,1020,720,384,0,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4158,1 -1385,DELETER_,Deleter,Deleter,105,10000,1,2099,1574,1,510,621,114,53,98,65,49,72,57,73,10,12,1,9,43,0x308D,175,1024,624,336,0,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,2114,10,0,0,0,0,0,0,0,0,4279,1 -1386,SLEEPER,Sleeper,Sleeper,81,5160,1,1034,1160,1,274,322,101,29,74,41,57,27,54,27,10,12,1,0,42,0x3885,195,1350,1200,432,0,0,0,0,0,0,0,0,7124,4947,1056,5335,997,2500,756,300,1226,5,1622,5,7043,1200,0,0,0,0,4228,1 -1387,GIG,Gig,Gig,100,8721,1,1769,1327,1,476,599,104,53,92,66,60,48,60,50,10,12,0,2,43,0x3885,170,1264,864,576,0,0,0,0,0,0,0,0,7125,4365,904,5500,716,150,525,2500,994,850,0,0,0,0,0,0,0,0,4165,1 -1388,ARCHANGELING,Archangeling,Arc Angeling,84,25100,1,3253,2910,1,539,639,92,81,32,48,62,99,99,105,10,12,1,8,66,0x37B5,180,1072,672,480,0,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1 -1389,DRACULA,Dracula,Dracula,75,350000,1,312480,245520,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,156240,10000,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1 -1390,VIOLY,Violy,Violy,118,20557,1,2862,2147,10,548,668,74,36,90,86,38,76,90,63,10,12,1,7,40,0x2085,170,1356,1056,540,0,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,1919,50,526,1400,12020,1000,1902,500,0,0,0,0,4209,1 -1391,GALAPAGO,Galapago,Galapago,45,1221,1,342,386,1,68,103,70,16,30,28,29,18,30,16,10,12,0,2,22,0x108B,165,1430,1080,1080,0,0,0,0,0,0,0,0,7053,5335,6263,500,508,3500,606,100,6264,500,5111,1,582,1000,0,0,0,0,4152,1 -1392,ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,48,1088,1,399,449,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1 -1393,G_MUMMY,Mummy,Mummy,55,2155,1,0,0,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1394,G_ZOMBIE,Zombie,Zombie,17,234,1,0,0,1,43,55,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1395,CRYSTAL_1,Wind Crystal,Wind Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,100 -1396,CRYSTAL_2,Earth Crystal,Earth Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,150 -1397,CRYSTAL_3,Fire Crystal,Fire Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,150 -1398,CRYSTAL_4,Water Crystal,Water Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100 +1364,G_ASSULTER,Assaulter,Assaulter,98,7798,1,0,0,2,225,292,83,49,100,86,30,20,82,15,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1365,APOCALIPS,Apocalypse,Apocalypse,121,22090,1,3042,2282,2,752,868,136,26,130,53,76,25,89,15,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,12735,100,0,0,0,0,4242,1 +1366,LAVA_GOLEM,Lava Golem,Lava Golem,103,8452,1,2232,1674,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,6245,500,0,0,0,0,4184,1 +1367,BLAZZER,Blazer,Blazer,101,8121,1,1827,1371,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1 +1368,GEOGRAPHER,Geographer,Geographer,73,3866,1,898,1010,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1 +1369,GRAND_PECO,Grand Peco,Grand Peco,75,3150,1,887,998,2,316,372,95,30,63,45,50,23,51,25,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1 +1370,SUCCUBUS,Succubus,Succubus,119,24960,1,3924,3489,2,670,864,76,48,100,64,45,80,82,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1 +1371,FAKE_ANGEL,Fake Angel,False Angel,105,10988,1,2100,1570,2,505,640,106,84,112,67,43,81,68,80,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,0,0,0,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1 +1372,GOAT,Goat,Goat,80,3980,1,1065,1197,1,387,447,95,43,61,40,48,40,65,31,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1 +1373,LORD_OF_DEATH,Lord of Death,Lord of the Dead,94,603883,1,437121,345252,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,218560,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1 +1374,INCUBUS,Incubus,Incubus,120,28000,1,3928,3646,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1 +1375,THE_PAPER,The Paper,The Paper,97,8500,1,1530,1148,1,280,390,32,39,77,49,30,5,61,5,10,12,1,0,60,0x3885,350,720,864,504,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1 +1376,HARPY,Harpy,Harpy,83,4423,1,1201,1349,1,282,323,69,44,71,39,50,31,96,12,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,1820,20,0,0,0,0,0,0,4325,1 +1377,ELDER,Elder,Elder,92,7341,1,1377,2898,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,7099,4000,7117,1500,7939,1000,1564,10,1473,1,616,1,7027,3000,0,0,0,0,4251,1 +1378,DEMON_PUNGUS,Demon Pungus,Demon Pungus,91,6466,1,1350,1520,1,428,493,80,52,63,61,30,38,79,43,10,12,0,6,65,0x3985,170,1260,960,672,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1 +1379,NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,107,13289,1,2443,1832,1,629,755,78,37,118,53,55,63,88,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,1261,1,0,0,0,0,4166,1 +1380,DRILLER,Driller,Driller,65,2719,1,594,669,1,181,212,96,18,62,50,25,15,48,5,10,12,1,2,22,0x3885,165,1300,900,336,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1 +1381,GRIZZLY,Grizzly,Grizzly,66,2241,1,731,822,1,254,267,109,2,60,26,44,3,78,15,10,12,2,2,63,0x3885,165,1492,1092,192,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,2353,10,0,0,0,0,0,0,0,0,0,0,4162,1 +1382,DIABOLIC,Diabolic,Diabolic,104,10572,1,2172,1629,1,544,644,68,61,103,80,53,65,78,25,10,12,0,6,47,0x3985,150,1080,780,180,0,0,0,0,0,0,0,1038,5820,1039,4850,2605,3,984,20,1263,10,0,0,0,0,0,0,0,0,4182,1 +1383,EXPLOSION,Explosion,Explosion,100,7813,1,1900,1425,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,7006,5500,7097,2200,7122,3200,756,800,522,400,0,0,0,0,0,0,0,0,4267,1 +1384,DELETER,Deleter,Deleter,105,10000,1,2099,1574,1,502,581,111,53,105,55,53,68,67,73,10,12,1,9,43,0x308D,175,1020,720,384,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4158,1 +1385,DELETER_,Deleter,Deleter,105,10000,1,2099,1574,1,510,621,114,53,98,65,49,72,57,73,10,12,1,9,43,0x308D,175,1024,624,336,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,2114,10,0,0,0,0,0,0,0,0,4279,1 +1386,SLEEPER,Sleeper,Sleeper,81,5160,1,1034,1160,1,274,322,101,29,74,41,57,27,54,27,10,12,1,0,42,0x3885,195,1350,1200,432,0,0,0,0,0,0,0,7124,4947,1056,5335,997,2500,756,300,1226,5,1622,5,7043,1200,0,0,0,0,4228,1 +1387,GIG,Gig,Gig,100,8721,1,1769,1327,1,476,599,104,53,92,66,60,48,60,50,10,12,0,2,43,0x3885,170,1264,864,576,0,0,0,0,0,0,0,7125,4365,904,5500,716,150,525,2500,994,850,0,0,0,0,0,0,0,0,4165,1 +1388,ARCHANGELING,Archangeling,Arc Angeling,84,25100,1,3253,2910,1,539,639,92,81,32,48,62,99,99,105,10,12,1,8,66,0x37B5,180,1072,672,480,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1 +1389,DRACULA,Dracula,Dracula,75,350000,1,312480,245520,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,156240,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1 +1390,VIOLY,Violy,Violy,118,20557,1,2862,2147,10,548,668,74,36,90,86,38,76,90,63,10,12,1,7,40,0x2085,170,1356,1056,540,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,1919,50,526,1400,12020,1000,1902,500,0,0,0,0,4209,1 +1391,GALAPAGO,Galapago,Galapago,45,1221,1,342,386,1,68,103,70,16,30,28,29,18,30,16,10,12,0,2,22,0x108B,165,1430,1080,1080,0,0,0,0,0,0,0,7053,5335,6263,500,508,3500,606,100,6264,500,5111,1,582,1000,0,0,0,0,4152,1 +1392,ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,48,1088,1,399,449,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1 +1393,G_MUMMY,Mummy,Mummy,55,2155,1,0,0,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1394,G_ZOMBIE,Zombie,Zombie,17,234,1,0,0,1,43,55,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1395,CRYSTAL_1,Wind Crystal,Wind Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,100 +1396,CRYSTAL_2,Earth Crystal,Earth Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,150 +1397,CRYSTAL_3,Fire Crystal,Fire Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,150 +1398,CRYSTAL_4,Water Crystal,Water Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100 // Event MVP -1399,EVENT_BAPHO,Baphomet,Baphomet,68,1264000,0,78525,25106,3,1847,2267,35,45,1,152,96,85,120,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,10000,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,0,0,0,0,2256,1550 +1399,EVENT_BAPHO,Baphomet,Baphomet,68,1264000,0,78525,25106,3,1847,2267,35,45,1,152,96,85,120,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,0,0,0,0,2256,1550 // Amatsu (6.0) -1400,KARAKASA,Karakasa,Karakasa,72,3092,1,765,860,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1 -1401,SHINOBI,Shinobi,Shinobi,95,8000,1,1691,1902,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,7156,5335,2337,2,6214,700,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1 -1402,POISON_TOAD,Poison Toad,Poison Toad,87,4876,1,1341,1509,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1 -1403,ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,88,7524,1,1352,1512,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1 -1404,MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,85,5188,1,1116,1256,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1 -1405,TENGU,Tengu,Tengu,98,10196,1,1701,1275,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1 -1406,KAPHA,Kapha,Kapha,83,5470,1,1035,1164,1,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1 -//1407,DOKEBI_,Dokebi,Dokebi,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1400,KARAKASA,Karakasa,Karakasa,72,3092,1,765,860,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1 +1401,SHINOBI,Shinobi,Shinobi,95,8000,1,1691,1902,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,7156,5335,2337,2,6214,700,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1 +1402,POISON_TOAD,Poison Toad,Poison Toad,87,4876,1,1341,1509,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1 +1403,ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,88,7524,1,1352,1512,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1 +1404,MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,85,5188,1,1116,1256,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1 +1405,TENGU,Tengu,Tengu,98,10196,1,1701,1275,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1 +1406,KAPHA,Kapha,Kapha,83,5470,1,1035,1164,1,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1 +//1407,DOKEBI_,Dokebi,Dokebi,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Gonryun (6.1) -1408,BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,94,7030,1,1555,1749,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1 -1409,RICE_CAKE_BOY,Rice Cake Boy,Dumpling Child,60,2098,1,531,597,1,128,150,96,12,50,43,29,5,43,10,10,12,0,7,20,0x91,160,1247,768,420,0,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1 -1410,LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,92,8777,1,1499,1724,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,7164,4365,7939,100,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1 -//1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1412,EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,96,8266,1,1503,1127,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1 -1413,WILD_GINSENG,Wild Ginseng,Hermit Plant,90,6052,1,1409,1586,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,6217,800,1951,1,578,1000,0,0,0,0,4232,1 -//1414,GINSENG_BULLET,Ginseng Bullet,Ginseng Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1415,BABY_LEOPARD,Baby Leopard,Baby Leopard,68,2590,1,500,1016,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1 -1416,WICKED_NYMPH,Wicked Nymph,Evil Nymph,97,8491,1,1775,1331,2,340,468,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1 -1417,ZIPPER_BEAR,Zipper Bear,Zipper Bear,90,6620,1,1305,1467,1,410,467,130,40,68,51,50,35,58,20,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1 -1418,DARK_SNAKE_LORD,Evil Snake Lord,Evil Snake Lord,105,1101000,1,720000,630000,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,78120,10000,607,5500,608,3500,985,5500,7169,5820,10020,5100,1471,80,5012,80,1474,500,7226,900,661,2000,0,0,0,0,4330,1 +1408,BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,94,7030,1,1555,1749,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1 +1409,RICE_CAKE_BOY,Rice Cake Boy,Dumpling Child,60,2098,1,531,597,1,128,150,96,12,50,43,29,5,43,10,10,12,0,7,20,0x91,160,1247,768,420,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1 +1410,LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,92,8777,1,1499,1724,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,7164,4365,7939,100,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1 +//1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1412,EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,96,8266,1,1503,1127,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1 +1413,WILD_GINSENG,Wild Ginseng,Hermit Plant,90,6052,1,1409,1586,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,6217,800,1951,1,578,1000,0,0,0,0,4232,1 +//1414,GINSENG_BULLET,Ginseng Bullet,Ginseng Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1415,BABY_LEOPARD,Baby Leopard,Baby Leopard,68,2590,1,500,1016,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1 +1416,WICKED_NYMPH,Wicked Nymph,Evil Nymph,97,8491,1,1775,1331,2,340,468,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1 +1417,ZIPPER_BEAR,Zipper Bear,Zipper Bear,90,6620,1,1305,1467,1,410,467,130,40,68,51,50,35,58,20,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1 +1418,DARK_SNAKE_LORD,Evil Snake Lord,Evil Snake Lord,105,1101000,1,720000,630000,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,78120,607,5500,608,3500,985,5500,7169,5820,10020,5100,1471,80,5012,80,1474,500,7226,900,661,2000,0,0,0,0,4330,1 // Additional G_Mobs -1419,G_FARMILIAR,Familiar,Familiar,24,427,1,0,0,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1420,G_ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,50,1646,1,0,0,9,90,113,47,10,30,29,20,10,32,5,10,12,1,1,29,0x3885,300,2864,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1421,G_ISIS,Isis,Isis,59,2092,1,0,0,1,192,229,83,5,58,43,22,5,39,15,10,12,2,6,27,0x3985,200,1384,768,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1422,G_HUNTER_FLY,Hunter Fly,Hunter Fly,63,2050,1,0,0,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1423,G_GHOUL,Ghoul,Ghoul,61,2614,1,0,0,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1424,G_SIDE_WINDER,Side Winder,Side Winder,70,2736,1,0,0,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1425,G_OBEAUNE,Obeaune,Obeaune,53,2158,1,0,0,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3885,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1426,G_MARC,Marc,Marc,56,2522,1,0,0,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1427,G_NIGHTMARE,Nightmare,Nightmare,69,2872,1,0,0,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3985,150,1816,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1428,G_POISON_SPORE,Poison Spore,Poison Spore,26,456,1,0,0,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1429,G_ARGIOPE,Argiope,Argiope,75,3105,1,0,0,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3985,300,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1430,G_ARGOS,Argos,Argos,47,1005,1,0,0,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3985,300,1468,468,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1431,G_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,57,2035,0,0,0,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3985,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1432,G_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3885,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1433,G_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3985,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1434,G_DRAINLIAR,Drainliar,Drainliar,47,1162,1,0,0,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3885,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1435,G_EVIL_DRUID,Evil Druid,Evil Druid,80,5149,1,0,0,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3885,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1436,G_JAKK,Jakk,Jakk,63,2054,1,0,0,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3885,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1437,G_JOKER,Joker,Joker,90,6022,1,0,0,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3885,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1438,G_KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,0,0,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3885,350,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1439,G_HIGH_ORC,High Orc,High Orc,81,4193,1,0,0,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3885,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1440,G_STEM_WORM,Stem Worm,Stem Worm,84,4530,1,0,0,2,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3885,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1441,G_PENOMENA,Penomena,Penomena,85,4589,1,0,0,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3885,400,832,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1442,G_SASQUATCH,Sasquatch,Sasquatch,72,3163,1,0,0,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3885,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1443,G_CRUISER,Cruiser,Cruiser,41,919,1,0,0,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x3885,400,1296,1296,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1444,G_CHEPET,Chepet,Chepet,42,4950,0,0,0,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3885,400,672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1445,G_RAGGLER,Raggler,Raggler,48,1148,1,0,0,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3885,200,1000,900,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1446,G_INJUSTICE,Injustice,Injustice,95,7952,1,0,0,1,344,460,76,0,77,59,58,65,73,50,10,12,1,1,47,0x3885,400,770,720,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1447,G_GRYPHON,Gryphon,Gryphon,105,60720,1,0,0,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x39A5,100,704,504,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1448,G_DARK_FRAME,Dark Frame,Dark Frame,76,3520,1,0,0,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3985,200,920,720,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1449,G_MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,50706,1,0,0,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x39A5,250,1280,1080,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1450,G_WIND_GHOST,Wind Ghost,Wind Ghost,80,4008,1,0,0,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3985,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1451,G_MERMAN,Merman,Merman,60,2940,1,0,0,2,125,157,62,8,45,29,30,19,50,10,10,12,1,7,41,0x3885,220,916,816,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1452,G_ORC_LADY,Orc Lady,Orc Lady,45,1520,1,0,0,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3885,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1453,G_RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,82,4437,1,0,0,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x3985,200,1152,1152,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1454,G_TRI_JOINT,Tri Joint,Tri Joint,66,2530,0,0,0,1,178,206,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3985,200,860,660,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1455,G_KOBOLD_ARCHER,Kobold Archer,Kobold Archer,108,11053,1,0,0,9,586,619,84,5,99,39,48,30,90,25,10,12,0,7,23,0x3885,200,1008,1008,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1456,G_CHIMERA,Chimera,Chimera,70,26406,1,0,0,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x39A5,200,772,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1457,G_MANTIS,Mantis,Mantis,65,2719,1,0,0,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3985,200,1528,660,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1458,G_MARDUK,Marduk,Marduk,73,2893,1,0,0,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3885,300,1540,840,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1459,G_MARIONETTE,Marionette,Marionette,62,2209,1,0,0,1,166,222,71,35,52,36,28,25,56,20,10,12,0,6,68,0x3985,300,1480,480,1056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1460,G_MATYR,Matyr,Matyr,58,2087,1,0,0,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3885,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1461,G_MINOROUS,Minorous,Minorous,58,1893,1,0,0,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3885,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1462,G_ORC_SKELETON,Orc Skeleton,Orc Skeleton,53,2077,1,0,0,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1463,G_ORC_ZOMBIE,Orc Zombie,Orc Zombie,51,1908,1,0,0,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1464,G_PASANA,Pasana,Pasana,79,3510,1,0,0,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3885,165,976,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1465,G_PETIT,Petite,Petite,86,5799,1,0,0,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3885,200,1624,620,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1466,G_PETIT_,Petite,Petite,79,3556,1,0,0,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3885,150,1420,1080,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1467,G_RAYDRIC,Raydric,Raydric,115,18408,1,0,0,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3885,150,824,780,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1468,G_REQUIEM,Requim,Requim,71,3089,1,0,0,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1469,G_SKEL_WORKER,Skeleton Worker,Skeleton Worker,44,1240,1,0,0,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1470,G_ZEROM,Zerom,Zerom,70,2687,1,0,0,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1471,G_NINE_TAIL,Nine Tail,Nine Tail,72,2783,1,0,0,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3885,150,840,540,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1472,G_BON_GUN,Bongun,Bongun,59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3885,200,1720,500,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1473,G_ORC_ARCHER,Orc Archer,Orc Archer,78,4835,1,0,0,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1474,G_MIMIC,Mimic,Mimic,56,1939,1,0,0,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3885,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1475,G_WRAITH,Wraith,Wraith,77,5168,1,0,0,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3885,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1476,G_ALARM,Alarm,Alarm,88,5562,1,0,0,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3885,300,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1477,G_ARCLOUSE,Arclouse,Arclouze,77,4320,1,0,0,1,269,309,101,36,60,73,45,35,60,15,10,12,1,4,42,0x3985,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1478,G_RIDEWORD,Rideword,Rideword,74,3222,1,0,0,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3885,150,864,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1479,G_SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,91,9194,1,0,0,1,266,321,95,41,84,35,60,20,71,15,10,12,1,1,69,0x3885,350,1848,500,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1480,G_ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,89,8045,1,0,0,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1481,G_PUNK,Punk,Punk,82,3869,1,0,0,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3885,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1482,G_ZHERLTHSH,Zherlthsh,Zealotus,105,61350,1,0,0,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x3885,200,800,792,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1483,G_RYBIO,Rybio,Rybio,98,8700,1,0,0,1,277,353,109,30,96,52,61,30,80,10,10,12,2,6,40,0x3985,200,1790,1440,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1484,G_PHENDARK,Phendark,Phendark,102,11000,1,0,0,2,539,614,307,50,111,65,71,20,71,30,10,12,2,7,40,0x3885,175,1744,1344,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1485,G_MYSTELTAINN,Mysteltainn,Mysteltainn,130,70000,1,0,0,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x39A5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1486,G_TIRFING,Tirfing,Ogretooth,114,59000,1,0,0,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x39A5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1487,G_EXECUTIONER,Executioner,Executioner,101,40200,1,0,0,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x39A5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1488,G_ANOLIAN,Anolian,Anolian,109,15547,1,0,0,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3885,190,900,500,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1489,G_STING,Sting,Sting,104,14143,1,0,0,1,521,588,146,50,108,49,68,43,87,24,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1490,G_WANDER_MAN,Wander Man,Wanderer,120,19307,1,0,0,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1491,G_DOKEBI,Dokebi,Dokebi,68,2820,1,0,0,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1419,G_FARMILIAR,Familiar,Familiar,24,427,1,0,0,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1420,G_ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,50,1646,1,0,0,9,90,113,47,10,30,29,20,10,32,5,10,12,1,1,29,0x3885,300,2864,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1421,G_ISIS,Isis,Isis,59,2092,1,0,0,1,192,229,83,5,58,43,22,5,39,15,10,12,2,6,27,0x3985,200,1384,768,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1422,G_HUNTER_FLY,Hunter Fly,Hunter Fly,63,2050,1,0,0,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1423,G_GHOUL,Ghoul,Ghoul,61,2614,1,0,0,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1424,G_SIDE_WINDER,Side Winder,Side Winder,70,2736,1,0,0,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1425,G_OBEAUNE,Obeaune,Obeaune,53,2158,1,0,0,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3885,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1426,G_MARC,Marc,Marc,56,2522,1,0,0,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1427,G_NIGHTMARE,Nightmare,Nightmare,69,2872,1,0,0,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3985,150,1816,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1428,G_POISON_SPORE,Poison Spore,Poison Spore,26,456,1,0,0,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1429,G_ARGIOPE,Argiope,Argiope,75,3105,1,0,0,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3985,300,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1430,G_ARGOS,Argos,Argos,47,1005,1,0,0,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3985,300,1468,468,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1431,G_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,57,2035,0,0,0,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3985,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1432,G_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3885,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1433,G_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3985,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1434,G_DRAINLIAR,Drainliar,Drainliar,47,1162,1,0,0,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3885,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1435,G_EVIL_DRUID,Evil Druid,Evil Druid,80,5149,1,0,0,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3885,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1436,G_JAKK,Jakk,Jakk,63,2054,1,0,0,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3885,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1437,G_JOKER,Joker,Joker,90,6022,1,0,0,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3885,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1438,G_KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,0,0,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3885,350,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1439,G_HIGH_ORC,High Orc,High Orc,81,4193,1,0,0,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3885,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1440,G_STEM_WORM,Stem Worm,Stem Worm,84,4530,1,0,0,2,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3885,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1441,G_PENOMENA,Penomena,Penomena,85,4589,1,0,0,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3885,400,832,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1442,G_SASQUATCH,Sasquatch,Sasquatch,72,3163,1,0,0,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3885,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1443,G_CRUISER,Cruiser,Cruiser,41,919,1,0,0,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x3885,400,1296,1296,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1444,G_CHEPET,Chepet,Chepet,42,4950,0,0,0,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3885,400,672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1445,G_RAGGLER,Raggler,Raggler,48,1148,1,0,0,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3885,200,1000,900,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1446,G_INJUSTICE,Injustice,Injustice,95,7952,1,0,0,1,344,460,76,0,77,59,58,65,73,50,10,12,1,1,47,0x3885,400,770,720,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1447,G_GRYPHON,Gryphon,Gryphon,105,60720,1,0,0,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x39A5,100,704,504,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1448,G_DARK_FRAME,Dark Frame,Dark Frame,76,3520,1,0,0,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3985,200,920,720,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1449,G_MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,50706,1,0,0,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x39A5,250,1280,1080,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1450,G_WIND_GHOST,Wind Ghost,Wind Ghost,80,4008,1,0,0,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3985,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1451,G_MERMAN,Merman,Merman,60,2940,1,0,0,2,125,157,62,8,45,29,30,19,50,10,10,12,1,7,41,0x3885,220,916,816,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1452,G_ORC_LADY,Orc Lady,Orc Lady,45,1520,1,0,0,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3885,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1453,G_RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,82,4437,1,0,0,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x3985,200,1152,1152,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1454,G_TRI_JOINT,Tri Joint,Tri Joint,66,2530,0,0,0,1,178,206,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3985,200,860,660,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1455,G_KOBOLD_ARCHER,Kobold Archer,Kobold Archer,108,11053,1,0,0,9,586,619,84,5,99,39,48,30,90,25,10,12,0,7,23,0x3885,200,1008,1008,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1456,G_CHIMERA,Chimera,Chimera,70,26406,1,0,0,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x39A5,200,772,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1457,G_MANTIS,Mantis,Mantis,65,2719,1,0,0,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3985,200,1528,660,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1458,G_MARDUK,Marduk,Marduk,73,2893,1,0,0,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3885,300,1540,840,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1459,G_MARIONETTE,Marionette,Marionette,62,2209,1,0,0,1,166,222,71,35,52,36,28,25,56,20,10,12,0,6,68,0x3985,300,1480,480,1056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1460,G_MATYR,Matyr,Matyr,58,2087,1,0,0,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3885,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1461,G_MINOROUS,Minorous,Minorous,58,1893,1,0,0,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3885,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1462,G_ORC_SKELETON,Orc Skeleton,Orc Skeleton,53,2077,1,0,0,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1463,G_ORC_ZOMBIE,Orc Zombie,Orc Zombie,51,1908,1,0,0,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1464,G_PASANA,Pasana,Pasana,79,3510,1,0,0,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3885,165,976,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1465,G_PETIT,Petite,Petite,86,5799,1,0,0,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3885,200,1624,620,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1466,G_PETIT_,Petite,Petite,79,3556,1,0,0,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3885,150,1420,1080,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1467,G_RAYDRIC,Raydric,Raydric,115,18408,1,0,0,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3885,150,824,780,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1468,G_REQUIEM,Requim,Requim,71,3089,1,0,0,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1469,G_SKEL_WORKER,Skeleton Worker,Skeleton Worker,44,1240,1,0,0,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1470,G_ZEROM,Zerom,Zerom,70,2687,1,0,0,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1471,G_NINE_TAIL,Nine Tail,Nine Tail,72,2783,1,0,0,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3885,150,840,540,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1472,G_BON_GUN,Bongun,Bongun,59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3885,200,1720,500,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1473,G_ORC_ARCHER,Orc Archer,Orc Archer,78,4835,1,0,0,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1474,G_MIMIC,Mimic,Mimic,56,1939,1,0,0,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3885,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1475,G_WRAITH,Wraith,Wraith,77,5168,1,0,0,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3885,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1476,G_ALARM,Alarm,Alarm,88,5562,1,0,0,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3885,300,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1477,G_ARCLOUSE,Arclouse,Arclouze,77,4320,1,0,0,1,269,309,101,36,60,73,45,35,60,15,10,12,1,4,42,0x3985,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1478,G_RIDEWORD,Rideword,Rideword,74,3222,1,0,0,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3885,150,864,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1479,G_SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,91,9194,1,0,0,1,266,321,95,41,84,35,60,20,71,15,10,12,1,1,69,0x3885,350,1848,500,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1480,G_ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,89,8045,1,0,0,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1481,G_PUNK,Punk,Punk,82,3869,1,0,0,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3885,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1482,G_ZHERLTHSH,Zherlthsh,Zealotus,105,61350,1,0,0,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x3885,200,800,792,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1483,G_RYBIO,Rybio,Rybio,98,8700,1,0,0,1,277,353,109,30,96,52,61,30,80,10,10,12,2,6,40,0x3985,200,1790,1440,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1484,G_PHENDARK,Phendark,Phendark,102,11000,1,0,0,2,539,614,307,50,111,65,71,20,71,30,10,12,2,7,40,0x3885,175,1744,1344,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1485,G_MYSTELTAINN,Mysteltainn,Mysteltainn,130,70000,1,0,0,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x39A5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1486,G_TIRFING,Tirfing,Ogretooth,114,59000,1,0,0,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x39A5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1487,G_EXECUTIONER,Executioner,Executioner,101,40200,1,0,0,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x39A5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1488,G_ANOLIAN,Anolian,Anolian,109,15547,1,0,0,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3885,190,900,500,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1489,G_STING,Sting,Sting,104,14143,1,0,0,1,521,588,146,50,108,49,68,43,87,24,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1490,G_WANDER_MAN,Wander Man,Wanderer,120,19307,1,0,0,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1491,G_DOKEBI,Dokebi,Dokebi,68,2820,1,0,0,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Umbala (6.2) -1492,INCANTATION_SAMURAI,Incantation Samurai,Samurai Specter,100,901000,1,751680,595080,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,375840,10000,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1 -1493,DRYAD,Dryad,Dryad,68,3640,1,837,939,3,266,301,153,8,54,14,40,35,67,10,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,6265,500,1964,1,7939,100,7100,3000,0,0,0,0,4177,1 -1494,KIND_OF_BEETLE,Beetle King,Beetle King,55,2061,1,450,507,1,110,162,79,8,53,47,10,0,45,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1 -1495,STONE_SHOOTER,Stone Shooter,Stone Shooter,64,2101,1,689,776,10,201,254,88,15,55,55,36,15,77,15,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1 -//1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,(mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1497,WOODEN_GOLEM,Wooden Golem,Wooden Golem,72,3914,1,950,1079,1,292,334,249,26,69,30,45,5,49,5,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,7936,300,0,0,0,0,4259,1 -1498,WOOTAN_SHOOTER,Wootan Shooter,Wootan Shooter,67,3096,1,711,798,10,140,175,91,21,32,23,38,20,69,10,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,7939,100,7182,100,5116,10,0,0,0,0,4260,1 -1499,WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,67,2327,1,709,798,1,243,279,103,8,63,14,36,5,56,15,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,7939,100,7198,1000,5116,5,0,0,0,0,4261,1 -1500,PARASITE,Parasite,Parasite,76,3222,1,923,1337,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,6265,800,0,0,0,0,4309,1 -//1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet... (mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1492,INCANTATION_SAMURAI,Incantation Samurai,Samurai Specter,100,901000,1,751680,595080,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,375840,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1 +1493,DRYAD,Dryad,Dryad,68,3640,1,837,939,3,266,301,153,8,54,14,40,35,67,10,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,6265,500,1964,1,7939,100,7100,3000,0,0,0,0,4177,1 +1494,KIND_OF_BEETLE,Beetle King,Beetle King,55,2061,1,450,507,1,110,162,79,8,53,47,10,0,45,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1 +1495,STONE_SHOOTER,Stone Shooter,Stone Shooter,64,2101,1,689,776,10,201,254,88,15,55,55,36,15,77,15,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1 +//1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,(mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1497,WOODEN_GOLEM,Wooden Golem,Wooden Golem,72,3914,1,950,1079,1,292,334,249,26,69,30,45,5,49,5,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,7936,300,0,0,0,0,4259,1 +1498,WOOTAN_SHOOTER,Wootan Shooter,Wootan Shooter,67,3096,1,711,798,10,140,175,91,21,32,23,38,20,69,10,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,7939,100,7182,100,5116,10,0,0,0,0,4260,1 +1499,WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,67,2327,1,709,798,1,243,279,103,8,63,14,36,5,56,15,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,7939,100,7198,1000,5116,5,0,0,0,0,4261,1 +1500,PARASITE,Parasite,Parasite,76,3222,1,923,1337,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,6265,800,0,0,0,0,4309,1 +//1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet... (mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Event MVP -1502,PORING_V,Pori Pori,Bring it on!,99,95000000,1,78525,25106,1,5000,10000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10000,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,500,7126,10000,0,0,0,0,2110,4500 +1502,PORING_V,Pori Pori,Bring it on!,99,95000000,1,78525,25106,1,5000,10000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,500,7126,10000,0,0,0,0,2110,4500 // Nifflheim (7.0) -1503,GIBBET,Gibbet,Gibbet,105,12999,1,1944,1458,1,536,621,116,45,103,56,62,55,61,37,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,7939,100,0,0,0,0,4278,1 -1504,DULLAHAN,Dullahan,Dullahan,108,18546,1,2509,1977,2,666,741,111,38,121,29,51,43,87,3,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1 -1505,LOLI_RURI,Loli Ruri,Loli Ruri,109,15280,1,2790,2093,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,6246,300,0,0,0,0,4191,1 -1506,DISGUISE,Disguise,Disguise,103,13895,1,2232,1674,2,260,342,85,58,92,53,57,75,67,45,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,0,7216,4850,7221,3686,6247,100,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1 -1507,BLOODY_MURDERER,Bloody Murderer,Bloody Murderer,110,14099,1,2724,2244,2,844,942,84,41,120,65,66,41,89,26,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1 -1508,QUVE,Quve,Quve,100,11090,1,1638,1229,1,226,323,96,55,84,54,55,50,71,60,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,6245,500,0,0,0,0,0,0,4294,1 -1509,LUDE,Lude,Lude,101,11574,1,1692,1269,2,218,296,90,53,97,38,55,82,69,55,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,6246,300,0,0,0,0,4193,1 -1510,HYLOZOIST,Hylozoist,Heirozoist,102,12000,1,1876,1406,1,268,349,101,68,97,67,72,88,69,60,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1 +1503,GIBBET,Gibbet,Gibbet,105,12999,1,1944,1458,1,536,621,116,45,103,56,62,55,61,37,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,7939,100,0,0,0,0,4278,1 +1504,DULLAHAN,Dullahan,Dullahan,108,18546,1,2509,1977,2,666,741,111,38,121,29,51,43,87,3,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1 +1505,LOLI_RURI,Loli Ruri,Loli Ruri,109,15280,1,2790,2093,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,6246,300,0,0,0,0,4191,1 +1506,DISGUISE,Disguise,Disguise,103,13895,1,2232,1674,2,260,342,85,58,92,53,57,75,67,45,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,7216,4850,7221,3686,6247,100,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1 +1507,BLOODY_MURDERER,Bloody Murderer,Bloody Murderer,110,14099,1,2724,2244,2,844,942,84,41,120,65,66,41,89,26,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1 +1508,QUVE,Quve,Quve,100,11090,1,1638,1229,1,226,323,96,55,84,54,55,50,71,60,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,6245,500,0,0,0,0,0,0,4294,1 +1509,LUDE,Lude,Lude,101,11574,1,1692,1269,2,218,296,90,53,97,38,55,82,69,55,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,6246,300,0,0,0,0,4193,1 +1510,HYLOZOIST,Hylozoist,Heirozoist,102,12000,1,1876,1406,1,268,349,101,68,97,67,72,88,69,60,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1 // Pyramid Basement -1511,AMON_RA,Amon Ra,Amon Ra,69,319000,1,240120,187920,3,710,1762,213,123,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,120060,10000,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1 +1511,AMON_RA,Amon Ra,Amon Ra,69,319000,1,240120,187920,3,710,1762,213,123,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,120060,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1 // Louyang (8.0) -1512,HYEGUN,Hyegun,Yao Jun,87,6996,1,1283,1445,1,246,294,84,43,69,38,40,20,68,20,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,15013,10,0,0,0,0,0,0,4328,1 -1513,CIVIL_SERVANT,Civil Servant,Mao Guai,89,5292,1,1349,1512,2,276,337,90,56,67,76,40,65,62,30,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1 -1514,DANCING_DRAGON,Dancing Dragon,Zhu Po Long,82,3943,1,972,1094,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1 -1515,GARM_BABY,Garm Baby,Hatii Baby,94,10016,1,1555,1749,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1 -1516,INCREASE_SOIL,Increase Soil,Mi Gao,83,5335,1,1201,1529,1,332,362,112,39,67,23,41,49,78,30,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1 -1517,LI_ME_MANG_RYANG,Li Me Mang Ryang,Jing Guai,80,5187,1,1065,1197,1,179,220,110,37,61,22,33,35,62,20,10,12,1,6,62,0x3985,165,1120,576,420,0,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1 -1518,BACSOJIN,Bacsojin,White Lady,97,720500,1,668160,542880,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,0,0,0,0,0,0,2234,1 -1519,CHUNG_E,Chung E,Green Maiden,49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,0,0,0,0,0,0,0,0,0,0,5042,2 -1520,BOILED_RICE,Boiled Rice,Boiled Rice,15,777,1,7,7,1,7,14,0,10,7,7,7,17,17,7,10,12,1,3,21,0x81,170,1152,672,672,0,0,0,0,0,0,0,0,564,5500,7272,3000,7194,1000,7198,1000,0,0,0,0,0,0,0,0,0,0,0,0 +1512,HYEGUN,Hyegun,Yao Jun,87,6996,1,1283,1445,1,246,294,84,43,69,38,40,20,68,20,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,15013,10,0,0,0,0,0,0,4328,1 +1513,CIVIL_SERVANT,Civil Servant,Mao Guai,89,5292,1,1349,1512,2,276,337,90,56,67,76,40,65,62,30,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1 +1514,DANCING_DRAGON,Dancing Dragon,Zhu Po Long,82,3943,1,972,1094,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1 +1515,GARM_BABY,Garm Baby,Hatii Baby,94,10016,1,1555,1749,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1 +1516,INCREASE_SOIL,Increase Soil,Mi Gao,83,5335,1,1201,1529,1,332,362,112,39,67,23,41,49,78,30,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1 +1517,LI_ME_MANG_RYANG,Li Me Mang Ryang,Jing Guai,80,5187,1,1065,1197,1,179,220,110,37,61,22,33,35,62,20,10,12,1,6,62,0x3985,165,1120,576,420,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1 +1518,BACSOJIN,Bacsojin,White Lady,97,720500,1,668160,542880,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,0,0,0,0,0,0,2234,1 +1519,CHUNG_E,Chung E,Green Maiden,49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,0,0,0,0,0,0,0,0,0,0,5042,2 +1520,BOILED_RICE,Boiled Rice,Boiled Rice,15,777,1,7,7,1,7,14,0,10,7,7,7,17,17,7,10,12,1,3,21,0x81,170,1152,672,672,0,0,0,0,0,0,0,564,5500,7272,3000,7194,1000,7198,1000,0,0,0,0,0,0,0,0,0,0,0,0 // Additional G_Mobs & Bosses -1521,G_ALICE,Alice,Alice,100,9230,1,0,0,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1522,G_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,115,29157,1,0,0,1,701,801,93,27,126,57,55,69,56,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1523,G_ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,88,7524,1,0,0,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1524,G_BABY_LEOPARD,Baby Leopard,Baby Leopard,68,2590,1,0,0,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1525,G_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1526,G_BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,94,7030,1,0,0,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1527,G_C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,90,6400,1,0,0,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1528,G_CLOCK,Clock,Clock,81,5556,1,0,0,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1529,G_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,105,1101000,1,0,0,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1530,G_DRACULA,Dracula,Dracula,75,350000,1,0,0,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1531,G_EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,96,8266,1,0,0,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1532,G_EXPLOSION,Explosion,Explosion,100,7813,1,0,0,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1533,G_FUR_SEAL,Fur Seal,Seal,47,1371,1,0,0,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3095,200,1612,622,583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1534,G_GOBLIN_1,Goblin,Goblin,48,1058,1,0,0,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1535,G_GOBLIN_2,Goblin,Goblin,44,931,1,0,0,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1536,G_GOBLIN_3,Goblin,Goblin,44,930,1,0,0,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1537,G_GOBLIN_4,Goblin,Goblin,49,1494,1,0,0,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1538,G_GOBLIN_5,Goblin,Goblin,56,2342,1,0,0,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1539,G_GOBLIN_LEADER,Goblin Leader,Goblin Leader,55,21692,1,0,0,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1540,G_GOLEM,Golem,Golem,61,2245,1,0,0,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1541,G_GREATEST_GENERAL,Greatest General,Greatest General,55,1575,1,0,0,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1542,G_INCANTATION_SAMURA,Incantation Samurai,Incantation Samurai,100,901000,1,0,0,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1543,G_KAPHA,Kapha,Kapha,83,5470,1,0,0,3,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1544,G_KARAKASA,Karakasa,Karakasa,72,3092,1,0,0,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1545,G_KOBOLD_1,Kobold,Kobold,107,10483,1,0,0,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1546,G_KOBOLD_2,Kobold,Kobold,102,9152,1,0,0,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1547,G_KOBOLD_3,Kobold,Kobold,101,9078,1,0,0,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1548,G_KOBOLD_LEADER,Kobold Leader,Kobold Leader,112,13520,1,0,0,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1549,G_LAVA_GOLEM,Lava Golem,Lava Golem,103,8452,1,0,0,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1550,G_LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,92,8777,1,0,0,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1551,G_MARSE,Marse,Marse,47,1456,1,0,0,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1552,G_MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,85,5188,1,0,0,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1553,G_MYST,Myst,Myst,49,1223,1,0,0,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1554,G_NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,107,13289,1,0,0,1,629,755,78,37,118,53,55,63,53,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1555,G_PARASITE,Parasite,Parasite,76,3222,1,0,0,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1556,G_POISON_TOAD,Poison Toad,Poisonous Toad,87,4876,1,0,0,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1557,G_ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,48,1088,1,0,0,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1558,G_SAND_MAN,Sandman,Sandman,61,2887,1,0,0,1,156,212,126,25,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1559,G_SCORPION,Scorpion,Scorpion,16,153,1,0,0,1,39,46,16,5,14,15,10,5,33,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1560,G_SHINOBI,Shinobi,Shinobi,95,8000,1,0,0,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1561,G_SMOKIE,Smokie,Smokie,29,591,1,0,0,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1562,G_SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,34,804,1,0,0,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1563,G_TENGU,Tengu,Tengu,98,10196,1,0,0,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1564,G_WICKED_NYMPH,Wicked Nymph,Evil Nymph,97,8491,1,0,0,2,218,346,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1565,G_WILD_GINSENG,Wild Ginseng,Hermit Plant,90,6052,1,0,0,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1566,G_WRAITH_DEAD,Wraith Dead,Wraith Dead,86,10035,0,0,0,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1567,G_ANCIENT_WORM,Ancient Worm,Ancient Worm,83,4140,0,0,0,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1568,G_ANGELING,Angeling,Angeling,77,19800,1,0,0,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1569,G_BLOODY_KNIGHT,Bloody Knight,Bloody Knight,116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1570,G_CRAMP,Cramp,Cramp,82,3898,1,0,0,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1571,G_DEVIACE,Deviace,Deviace,60,3135,1,0,0,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1572,G_DROPS,Drops,Drops,2,45,1,0,0,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1573,G_ELDER,Elder,Elder,92,7341,1,0,0,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1574,G_ELDER_WILOW,Elder Willow,Elder Willow,34,599,1,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1575,G_FLORA,Flora,Flora,59,2301,1,0,0,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1576,G_GHOSTRING,Ghostring,Ghostring,90,26700,1,0,0,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1577,G_GOBLIN_ARCHER,Goblin Archer,Goblin Archer,55,1575,1,0,0,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1578,G_HORONG,Horong,Horong,66,2304,1,0,0,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1579,G_HYDRA,Hydra,Hydra,34,854,1,0,0,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1580,G_INCUBUS,Incubus,Incubus,120,28000,1,0,0,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1581,G_VOCAL,Vocal,Vocal,18,3317,1,0,0,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1582,DEVILING,Deviling,Deviling,66,16890,1,2281,2379,1,298,481,67,70,48,50,33,75,77,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1 -1583,TAO_GUNKA,Tao Gunka,Tao Gunka,110,1252000,1,900000,720000,2,2890,4150,404,143,135,175,98,110,199,66,10,12,2,6,60,0x37B5,150,1020,288,144,450000,10000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,12738,200,2231,5,0,0,0,0,4302,1 +1521,G_ALICE,Alice,Alice,100,9230,1,0,0,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1522,G_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,115,29157,1,0,0,1,701,801,93,27,126,57,55,69,56,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1523,G_ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,88,7524,1,0,0,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1524,G_BABY_LEOPARD,Baby Leopard,Baby Leopard,68,2590,1,0,0,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1525,G_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1526,G_BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,94,7030,1,0,0,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1527,G_C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,90,6400,1,0,0,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1528,G_CLOCK,Clock,Clock,81,5556,1,0,0,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1529,G_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,105,1101000,1,0,0,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1530,G_DRACULA,Dracula,Dracula,75,350000,1,0,0,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1531,G_EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,96,8266,1,0,0,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1532,G_EXPLOSION,Explosion,Explosion,100,7813,1,0,0,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1533,G_FUR_SEAL,Fur Seal,Seal,47,1371,1,0,0,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3095,200,1612,622,583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1534,G_GOBLIN_1,Goblin,Goblin,48,1058,1,0,0,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1535,G_GOBLIN_2,Goblin,Goblin,44,931,1,0,0,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1536,G_GOBLIN_3,Goblin,Goblin,44,930,1,0,0,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1537,G_GOBLIN_4,Goblin,Goblin,49,1494,1,0,0,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1538,G_GOBLIN_5,Goblin,Goblin,56,2342,1,0,0,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1539,G_GOBLIN_LEADER,Goblin Leader,Goblin Leader,55,21692,1,0,0,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1540,G_GOLEM,Golem,Golem,61,2245,1,0,0,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1541,G_GREATEST_GENERAL,Greatest General,Greatest General,55,1575,1,0,0,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1542,G_INCANTATION_SAMURA,Incantation Samurai,Incantation Samurai,100,901000,1,0,0,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1543,G_KAPHA,Kapha,Kapha,83,5470,1,0,0,3,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1544,G_KARAKASA,Karakasa,Karakasa,72,3092,1,0,0,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1545,G_KOBOLD_1,Kobold,Kobold,107,10483,1,0,0,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1546,G_KOBOLD_2,Kobold,Kobold,102,9152,1,0,0,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1547,G_KOBOLD_3,Kobold,Kobold,101,9078,1,0,0,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1548,G_KOBOLD_LEADER,Kobold Leader,Kobold Leader,112,13520,1,0,0,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1549,G_LAVA_GOLEM,Lava Golem,Lava Golem,103,8452,1,0,0,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1550,G_LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,92,8777,1,0,0,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1551,G_MARSE,Marse,Marse,47,1456,1,0,0,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1552,G_MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,85,5188,1,0,0,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1553,G_MYST,Myst,Myst,49,1223,1,0,0,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1554,G_NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,107,13289,1,0,0,1,629,755,78,37,118,53,55,63,53,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1555,G_PARASITE,Parasite,Parasite,76,3222,1,0,0,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1556,G_POISON_TOAD,Poison Toad,Poisonous Toad,87,4876,1,0,0,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1557,G_ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,48,1088,1,0,0,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1558,G_SAND_MAN,Sandman,Sandman,61,2887,1,0,0,1,156,212,126,25,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1559,G_SCORPION,Scorpion,Scorpion,16,153,1,0,0,1,39,46,16,5,14,15,10,5,33,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1560,G_SHINOBI,Shinobi,Shinobi,95,8000,1,0,0,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1561,G_SMOKIE,Smokie,Smokie,29,591,1,0,0,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1562,G_SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,34,804,1,0,0,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1563,G_TENGU,Tengu,Tengu,98,10196,1,0,0,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1564,G_WICKED_NYMPH,Wicked Nymph,Evil Nymph,97,8491,1,0,0,2,218,346,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1565,G_WILD_GINSENG,Wild Ginseng,Hermit Plant,90,6052,1,0,0,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1566,G_WRAITH_DEAD,Wraith Dead,Wraith Dead,86,10035,0,0,0,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1567,G_ANCIENT_WORM,Ancient Worm,Ancient Worm,83,4140,0,0,0,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1568,G_ANGELING,Angeling,Angeling,77,19800,1,0,0,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1569,G_BLOODY_KNIGHT,Bloody Knight,Bloody Knight,116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1570,G_CRAMP,Cramp,Cramp,82,3898,1,0,0,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1571,G_DEVIACE,Deviace,Deviace,60,3135,1,0,0,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1572,G_DROPS,Drops,Drops,2,45,1,0,0,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1573,G_ELDER,Elder,Elder,92,7341,1,0,0,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1574,G_ELDER_WILOW,Elder Willow,Elder Willow,34,599,1,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1575,G_FLORA,Flora,Flora,59,2301,1,0,0,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1576,G_GHOSTRING,Ghostring,Ghostring,90,26700,1,0,0,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1577,G_GOBLIN_ARCHER,Goblin Archer,Goblin Archer,55,1575,1,0,0,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1578,G_HORONG,Horong,Horong,66,2304,1,0,0,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1579,G_HYDRA,Hydra,Hydra,34,854,1,0,0,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1580,G_INCUBUS,Incubus,Incubus,120,28000,1,0,0,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1581,G_VOCAL,Vocal,Vocal,18,3317,1,0,0,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1582,DEVILING,Deviling,Deviling,66,16890,1,2281,2379,1,298,481,67,70,48,50,33,75,77,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1 +1583,TAO_GUNKA,Tao Gunka,Tao Gunka,110,1252000,1,900000,720000,2,2890,4150,404,143,135,175,98,110,199,66,10,12,2,6,60,0x37B5,150,1020,288,144,450000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,12738,200,2231,5,0,0,0,0,4302,1 // Ayothaya (9.0) -1584,TAMRUAN,Tamruan,Tamruan,73,3195,1,898,1010,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,12736,300,0,0,0,0,0,0,4304,1 -1585,MIME_MONKEY,Mime Monkey,Mime Monkey,40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0 -1586,LEAF_CAT,Leaf Cat,Leaf Cat,64,2635,1,594,669,1,140,181,88,16,46,16,12,45,33,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1 -1587,KRABEN,Kraben,Kraben,70,2901,1,510,1095,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1 +1584,TAMRUAN,Tamruan,Tamruan,73,3195,1,898,1010,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,12736,300,0,0,0,0,0,0,4304,1 +1585,MIME_MONKEY,Mime Monkey,Mime Monkey,40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0 +1586,LEAF_CAT,Leaf Cat,Leaf Cat,64,2635,1,594,669,1,140,181,88,16,46,16,12,45,33,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1 +1587,KRABEN,Kraben,Kraben,70,2901,1,510,1095,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1 // Additional G_Mobs & Xmas_Orc -1588,ORC_XMAS,Christmas Orc,Christmas Orc,24,1400,1,235,144,1,104,126,16,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1 -1589,G_MANDRAGORA,Mandragora,Mandragora,13,156,1,0,0,4,38,41,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1590,G_GEOGRAPHER,Geographer,Geographer,73,3866,1,0,0,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1591,A_LUNATIC,Lunatic,Lunatic,29,2334,0,0,0,1,221,245,16,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1592,A_MOBSTER,Gangster,Gangster,40,8000,0,0,0,1,300,355,32,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0 -1593,A_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,52,8613,0,0,0,1,830,930,64,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1594,G_FREEZER,Freezer,Freezer,94,9990,1,0,0,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1595,G_MARIN,Marin,Marin,37,987,1,0,0,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1596,G_TAMRUAN,Tamruan,Tamruan,73,3195,1,0,0,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1597,G_GARGOYLE,Gargoyle,Gargoyle,100,8772,1,0,0,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1598,G_BLAZZER,Blazzer,Blazzer,101,8121,1,0,0,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1599,G_WHISPER_BOSS,Giant Whisper,Giant Whisper,66,2570,0,0,0,1,182,241,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1600,G_HEATER,Heater,Heater,96,7480,1,0,0,2,495,574,186,42,75,49,50,30,80,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1601,G_PERMETER,Permeter,Permeter,90,6575,1,0,0,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x3695,250,1100,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1602,G_SOLIDER,Solider,Solider,92,8768,1,0,0,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1603,G_BIGFOOT,Bigfoot,Bigfoot,29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1604,G_GIANT_HONET,Giant Hornet,Giant Hornet,82,3960,0,0,0,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1605,G_DARK_ILLUSION,Dark Illusion,Dark Illusion,96,29255,0,0,0,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1606,G_GARM_BABY,Garm Baby,Garm Baby,94,10016,1,0,0,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1607,G_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,1,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1608,G_THIEF_BUG__,Thief Bug Male,Thief Bug Male,19,583,1,0,0,1,76,88,24,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1609,G_DANCING_DRAGON,Dancing Dragon,Zhu Po Long,82,3943,1,2727,692,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,0,0,0,0,668,100 -1610,A_MUNAK,Munak,Munak,30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100 -1611,A_BON_GUN,Bongun,Bongun,59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100 -1612,A_HYEGUN,Hyegun,Yao Jun,56,9981,0,0,0,1,710,1128,20,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100 +1588,ORC_XMAS,Christmas Orc,Christmas Orc,24,1400,1,235,144,1,104,126,16,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1 +1589,G_MANDRAGORA,Mandragora,Mandragora,13,156,1,0,0,4,38,41,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1590,G_GEOGRAPHER,Geographer,Geographer,73,3866,1,0,0,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1591,A_LUNATIC,Lunatic,Lunatic,29,2334,0,0,0,1,221,245,16,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1592,A_MOBSTER,Gangster,Gangster,40,8000,0,0,0,1,300,355,32,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0 +1593,A_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,52,8613,0,0,0,1,830,930,64,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1594,G_FREEZER,Freezer,Freezer,94,9990,1,0,0,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1595,G_MARIN,Marin,Marin,37,987,1,0,0,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1596,G_TAMRUAN,Tamruan,Tamruan,73,3195,1,0,0,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1597,G_GARGOYLE,Gargoyle,Gargoyle,100,8772,1,0,0,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1598,G_BLAZZER,Blazzer,Blazzer,101,8121,1,0,0,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1599,G_WHISPER_BOSS,Giant Whisper,Giant Whisper,66,2570,0,0,0,1,182,241,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1600,G_HEATER,Heater,Heater,96,7480,1,0,0,2,495,574,186,42,75,49,50,30,80,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1601,G_PERMETER,Permeter,Permeter,90,6575,1,0,0,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x3695,250,1100,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1602,G_SOLIDER,Solider,Solider,92,8768,1,0,0,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1603,G_BIGFOOT,Bigfoot,Bigfoot,29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1604,G_GIANT_HONET,Giant Hornet,Giant Hornet,82,3960,0,0,0,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1605,G_DARK_ILLUSION,Dark Illusion,Dark Illusion,96,29255,0,0,0,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1606,G_GARM_BABY,Garm Baby,Garm Baby,94,10016,1,0,0,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1607,G_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,1,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1608,G_THIEF_BUG__,Thief Bug Male,Thief Bug Male,19,583,1,0,0,1,76,88,24,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1609,G_DANCING_DRAGON,Dancing Dragon,Zhu Po Long,82,3943,1,2727,692,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,0,0,0,0,668,100 +1610,A_MUNAK,Munak,Munak,30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100 +1611,A_BON_GUN,Bongun,Bongun,59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100 +1612,A_HYEGUN,Hyegun,Yao Jun,56,9981,0,0,0,1,710,1128,20,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100 // Einbroch (10.1) -1613,METALING,Metaling,Metaling,81,4300,1,954,1074,1,171,210,69,28,58,30,49,17,50,5,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1 -1614,MINERAL,Mineral,Mineral,96,8300,1,1503,1127,1,578,635,127,23,70,61,40,50,62,50,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1 -1615,OBSIDIAN,Obsidian,Obsidian,97,10088,1,1652,1239,1,590,670,129,37,84,38,40,60,53,50,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1 -1616,PITMAN,Pitman,Pitman,90,7208,1,1409,1586,1,182,242,104,48,78,56,45,35,50,30,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,0,7318,3000,7319,500,6244,900,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1 -1617,WASTE_STOVE,Waste Stove,Old Stove,92,7400,1,1377,1548,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,300,1152,528,360,0,0,0,0,0,0,0,0,7323,1000,7068,1000,6215,200,625,50,7939,100,604,50,7319,3800,0,0,0,0,4332,1 -1618,UNGOLIANT,Ungoliant,Ungoliant,94,17070,1,3501,1913,1,689,733,108,28,71,70,58,43,92,38,10,12,2,4,45,0x3795,350,420,576,420,0,0,0,0,0,0,0,0,7316,4500,1014,3500,1013,1000,7289,1500,7326,2500,718,1500,2406,500,0,0,0,0,4336,1 -1619,PORCELLIO,Porcellio,Porcellio,85,5544,1,1294,1455,1,266,319,79,37,67,48,28,40,62,30,10,12,0,4,62,0x183,150,720,360,360,0,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1 -1620,NOXIOUS,Noxious,Noxious,87,5430,1,888,1785,1,255,326,117,66,58,45,60,55,57,50,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,6213,600,6215,300,603,1,0,0,0,0,4334,1 -1621,VENOMOUS,Venomous,Venomous,87,4770,1,1188,1337,1,287,337,104,65,61,28,60,55,45,50,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,6213,300,6215,600,603,1,0,0,0,0,4333,1 -1622,TEDDY_BEAR,Teddy Bear,Teddy Bear,91,7238,1,1350,1799,1,371,433,106,39,57,81,66,20,68,44,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1 -1623,RSX_0806,RSX 0806,RSX-0806,100,1001000,1,720000,576000,1,2315,3291,317,96,153,143,110,128,165,84,10,12,2,0,60,0x37B5,220,128,1104,240,360000,10000,607,5500,5104,3500,732,5500,7093,6000,1230,5,13017,1,617,1000,7327,5000,1242,100,1531,40,0,0,0,0,4342,1 -1624,G_WASTE_STOVE,Waste Stove,Old Stove,92,7400,1,0,0,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1625,G_PORCELLIO,Porcellio,Porcellio,85,5544,1,922,624,1,165,218,79,37,67,48,28,40,62,30,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1613,METALING,Metaling,Metaling,81,4300,1,954,1074,1,171,210,69,28,58,30,49,17,50,5,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1 +1614,MINERAL,Mineral,Mineral,96,8300,1,1503,1127,1,578,635,127,23,70,61,40,50,62,50,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1 +1615,OBSIDIAN,Obsidian,Obsidian,97,10088,1,1652,1239,1,590,670,129,37,84,38,40,60,53,50,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1 +1616,PITMAN,Pitman,Pitman,90,7208,1,1409,1586,1,182,242,104,48,78,56,45,35,50,30,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,7318,3000,7319,500,6244,900,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1 +1617,WASTE_STOVE,Waste Stove,Old Stove,92,7400,1,1377,1548,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,300,1152,528,360,0,0,0,0,0,0,0,7323,1000,7068,1000,6215,200,625,50,7939,100,604,50,7319,3800,0,0,0,0,4332,1 +1618,UNGOLIANT,Ungoliant,Ungoliant,94,17070,1,3501,1913,1,689,733,108,28,71,70,58,43,92,38,10,12,2,4,45,0x3795,350,420,576,420,0,0,0,0,0,0,0,7316,4500,1014,3500,1013,1000,7289,1500,7326,2500,718,1500,2406,500,0,0,0,0,4336,1 +1619,PORCELLIO,Porcellio,Porcellio,85,5544,1,1294,1455,1,266,319,79,37,67,48,28,40,62,30,10,12,0,4,62,0x183,150,720,360,360,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1 +1620,NOXIOUS,Noxious,Noxious,87,5430,1,888,1785,1,255,326,117,66,58,45,60,55,57,50,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,6213,600,6215,300,603,1,0,0,0,0,4334,1 +1621,VENOMOUS,Venomous,Venomous,87,4770,1,1188,1337,1,287,337,104,65,61,28,60,55,45,50,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,6213,300,6215,600,603,1,0,0,0,0,4333,1 +1622,TEDDY_BEAR,Teddy Bear,Teddy Bear,91,7238,1,1350,1799,1,371,433,106,39,57,81,66,20,68,44,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1 +1623,RSX_0806,RSX 0806,RSX-0806,100,1001000,1,720000,576000,1,2315,3291,317,96,153,143,110,128,165,84,10,12,2,0,60,0x37B5,220,128,1104,240,360000,607,5500,5104,3500,732,5500,7093,6000,1230,5,13017,1,617,1000,7327,5000,1242,100,1531,40,0,0,0,0,4342,1 +1624,G_WASTE_STOVE,Waste Stove,Old Stove,92,7400,1,0,0,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1625,G_PORCELLIO,Porcellio,Porcellio,85,5544,1,922,624,1,165,218,79,37,67,48,28,40,62,30,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Hellion Revenant -1626,G_DARK_PRIEST,Hellion Revenant,Hellion Revenant,79,8600,1,1,1,2,178,238,88,50,54,63,40,78,56,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0 +1626,G_DARK_PRIEST,Hellion Revenant,Hellion Revenant,79,8600,1,1,1,2,178,238,88,50,54,63,40,78,56,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0 // Lighthalzen (10.2) -1627,ANOPHELES,Anopheles,Anopheles,95,7238,1,1691,1902,1,242,260,7,10,64,60,42,58,88,42,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1 -1628,MOLE,Mole,Holden,85,6228,1,1206,1358,9,260,309,82,16,53,65,31,30,48,31,10,12,0,2,42,0x1089,300,1400,960,504,0,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1 -1629,HILL_WIND,Hill Wind,Hill Wind,43,2870,0,340,340,3,290,480,9,15,21,50,31,50,59,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1 -1630,BACSOJIN_,Bacsojin,White Lady,97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x39A5,130,576,960,480,334080,10000,607,5500,2513,2000,617,5000,1020,5500,603,5000,617,3000,7165,3000,7166,1000,2700,100,2234,10,0,0,0,0,4372,1 -1631,CHUNG_E_,Chung E,Green Maiden,82,3901,0,1049,1481,2,247,310,69,15,66,79,36,48,66,43,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,0,0,0,0,5042,50,0,0,0,0,4373,1 -1632,GREMLIN,Gremlin,Gremlin,118,20313,1,3091,2318,1,606,744,76,25,141,75,48,61,90,37,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1 -1633,BEHOLDER,Beholder,Beholder,120,19280,1,3285,2463,6,588,718,50,30,96,82,65,107,94,82,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1 +1627,ANOPHELES,Anopheles,Anopheles,95,7238,1,1691,1902,1,242,260,7,10,64,60,42,58,88,42,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1 +1628,MOLE,Mole,Holden,85,6228,1,1206,1358,9,260,309,82,16,53,65,31,30,48,31,10,12,0,2,42,0x1089,300,1400,960,504,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1 +1629,HILL_WIND,Hill Wind,Hill Wind,43,2870,0,340,340,3,290,480,9,15,21,50,31,50,59,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1 +1630,BACSOJIN_,Bacsojin,White Lady,97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x39A5,130,576,960,480,334080,607,5500,2513,2000,617,5000,1020,5500,603,5000,617,3000,7165,3000,7166,1000,2700,100,2234,10,0,0,0,0,4372,1 +1631,CHUNG_E_,Chung E,Green Maiden,82,3901,0,1049,1481,2,247,310,69,15,66,79,36,48,66,43,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,0,0,0,0,5042,50,0,0,0,0,4373,1 +1632,GREMLIN,Gremlin,Gremlin,118,20313,1,3091,2318,1,606,744,76,25,141,75,48,61,90,37,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1 +1633,BEHOLDER,Beholder,Beholder,120,19280,1,3285,2463,6,588,718,50,30,96,82,65,107,94,82,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1 //Normal advanced class mobs -1634,SEYREN,Seyren,Seyren Windsor,142,194962,1,10386,7790,1,1670,1987,166,12,142,69,86,49,132,55,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,6223,10,2229,12,2317,1,13421,100,0,0,0,0,4358,1 -1635,EREMES,Eremes,Eremes Guile,140,190525,1,10329,6846,1,1503,1674,122,12,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,0,7347,2000,6223,1,2514,1,1262,3,1264,30,678,110,1284,100,0,0,0,0,4360,1 -1636,HARWORD,Harword,Howard Alt-Eisen,142,348100,1,10854,7241,1,1308,1590,131,10,138,79,62,53,82,48,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,2514,1,1311,100,1361,110,2104,10,2318,1,6223,10,0,0,0,0,4362,1 -1637,MAGALETA,Magaleta,Margaretha Sorin,140,220800,1,9895,7421,1,851,1405,108,93,126,74,71,123,99,65,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,0,7347,2000,1647,100,6223,1,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1 -1638,SHECIL,Shecil,Cecil Damon,141,190255,1,10103,7577,14,1158,1406,76,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,6223,1,1745,100,0,0,0,0,4368,1 -1639,KATRINN,Katrinn,Kathryne Keyron,141,219780,1,9207,6905,1,726,1449,77,74,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,7345,3000,6223,1,1646,100,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1 +1634,SEYREN,Seyren,Seyren Windsor,142,194962,1,10386,7790,1,1670,1987,166,12,142,69,86,49,132,55,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,6223,10,2229,12,2317,1,13421,100,0,0,0,0,4358,1 +1635,EREMES,Eremes,Eremes Guile,140,190525,1,10329,6846,1,1503,1674,122,12,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6223,1,2514,1,1262,3,1264,30,678,110,1284,100,0,0,0,0,4360,1 +1636,HARWORD,Harword,Howard Alt-Eisen,142,348100,1,10854,7241,1,1308,1590,131,10,138,79,62,53,82,48,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,2514,1,1311,100,1361,110,2104,10,2318,1,6223,10,0,0,0,0,4362,1 +1637,MAGALETA,Magaleta,Margaretha Sorin,140,220800,1,9895,7421,1,851,1405,108,93,126,74,71,123,99,65,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,1647,100,6223,1,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1 +1638,SHECIL,Shecil,Cecil Damon,141,190255,1,10103,7577,14,1158,1406,76,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,6223,1,1745,100,0,0,0,0,4368,1 +1639,KATRINN,Katrinn,Kathryne Keyron,141,219780,1,9207,6905,1,726,1449,77,74,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6223,1,1646,100,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1 //MVP Slaves -1640,G_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,2680000,1,0,0,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 -1641,G_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,1230000,1,0,0,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 -1642,G_HARWORD,Whitesmith Harword,Whitesmith Howard,160,3750000,1,0,0,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 -1643,G_MAGALETA,High Priest Magaleta,High Priest Margaretha,160,2800000,1,0,0,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 -1644,G_SHECIL,Sniper Shecil,Sniper Cecil,160,4140000,1,0,0,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 -1645,G_KATRINN,High Wizard Katrinn,High Wizard Kathryne,160,4500000,1,0,0,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 +1640,G_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,2680000,1,0,0,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 +1641,G_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,1230000,1,0,0,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 +1642,G_HARWORD,Whitesmith Harword,Whitesmith Howard,160,3750000,1,0,0,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 +1643,G_MAGALETA,High Priest Magaleta,High Priest Margaretha,160,2800000,1,0,0,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 +1644,G_SHECIL,Sniper Shecil,Sniper Cecil,160,4140000,1,0,0,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 +1645,G_KATRINN,High Wizard Katrinn,High Wizard Kathryne,160,4500000,1,0,0,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10 //MVP Monsters -1646,B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,4680000,1,4642560,3481920,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,2321280,10000,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1 -1647,B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,4230000,1,4185000,3147120,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,2092500,10000,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1 -1648,B_HARWORD,Whitesmith Harword,Whitesmith Howard,160,6750000,1,3555000,2664000,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1777500,10000,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1 -1649,B_MAGALETA,High Priest Magaleta,High Priest Margaretha,160,4800000,1,3465000,2520000,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,1732500,10000,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1 -1650,B_SHECIL,Sniper Shecil,Sniper Cecil,160,4140000,1,4106880,3080160,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2053440,10000,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1 -1651,B_KATRINN,High Wizard Katrinn,High Wizard Kathryne,160,4500000,1,3240000,2430000,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,1620000,10000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1 +1646,B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,4680000,1,4642560,3481920,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,2321280,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1 +1647,B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,4230000,1,4185000,3147120,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,2092500,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1 +1648,B_HARWORD,Whitesmith Harword,Whitesmith Howard,160,6750000,1,3555000,2664000,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1777500,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1 +1649,B_MAGALETA,High Priest Magaleta,High Priest Margaretha,160,4800000,1,3465000,2520000,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,1732500,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1 +1650,B_SHECIL,Sniper Shecil,Sniper Cecil,160,4140000,1,4106880,3080160,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2053440,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1 +1651,B_KATRINN,High Wizard Katrinn,High Wizard Kathryne,160,4500000,1,3240000,2430000,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,1620000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1 //1'st Class Mobs -1652,YGNIZEM,Ygnizem,Egnigem Cenia,136,44327,1,5229,4461,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1 -1653,WHIKEBAIN,Whikebain,Wickebine Tres,132,43191,1,5094,4721,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,1,13004,10,0,0,0,0,4348,1 -1654,ARMAIA,Armaia,Armeyer Dinze,134,46878,1,4895,4909,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1 -1655,EREND,Erend,Errende Ebecee,133,42764,1,4860,4545,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1 -1656,KAVAC,Kavac,Kavach Icarus,135,43079,1,5103,4276,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1 -1657,RAWREL,Rawrel,Laurell Weinder,133,40282,1,4500,4477,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1 +1652,YGNIZEM,Ygnizem,Egnigem Cenia,136,44327,1,5229,4461,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1 +1653,WHIKEBAIN,Whikebain,Wickebine Tres,132,43191,1,5094,4721,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,1,13004,10,0,0,0,0,4348,1 +1654,ARMAIA,Armaia,Armeyer Dinze,134,46878,1,4895,4909,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1 +1655,EREND,Erend,Errende Ebecee,133,42764,1,4860,4545,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1 +1656,KAVAC,Kavac,Kavach Icarus,135,43079,1,5103,4276,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1 +1657,RAWREL,Rawrel,Laurell Weinder,133,40282,1,4500,4477,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1 //1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs. -1658,B_YGNIZEM,Ygnizem,Egnigem Cenia,141,2910088,1,1054400,1860000,1,3057,5408,373,175,188,177,165,142,185,105,10,12,1,7,43,0x37B5,100,1008,864,288,527200,10000,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,0,0,0,0,4352,1 -1659,G_WHIKEBAIN,Whikebain,Wickebine Tres,132,43191,1,0,0,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1660,G_ARMAIA,Armaia,Armeyer Dinze,134,46878,1,0,0,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1661,G_EREND,Erend,Errende Ebecee,133,42764,1,0,0,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1662,G_KAVAC,Kavac,Kavach Icarus,135,43079,1,0,0,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1663,G_RAWREL,Rawrel,Laurell Weinder,133,40282,1,0,0,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1658,B_YGNIZEM,Ygnizem,Egnigem Cenia,141,2910088,1,1054400,1860000,1,3057,5408,373,175,188,177,165,142,185,105,10,12,1,7,43,0x37B5,100,1008,864,288,527200,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,0,0,0,0,4352,1 +1659,G_WHIKEBAIN,Whikebain,Wickebine Tres,132,43191,1,0,0,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1660,G_ARMAIA,Armaia,Armeyer Dinze,134,46878,1,0,0,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1661,G_EREND,Erend,Errende Ebecee,133,42764,1,0,0,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1662,G_KAVAC,Kavac,Kavach Icarus,135,43079,1,0,0,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1663,G_RAWREL,Rawrel,Laurell Weinder,133,40282,1,0,0,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Juperos -1664,POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,800,600,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1665,POTON_CANON_1,Photon Cannon,Photon Cannon,67,7500,0,600,800,9,700,800,24,30,1,40,30,40,86,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0 -1666,POTON_CANON_2,Photon Cannon,Photon Cannon,64,7100,0,800,600,9,800,900,13,30,1,40,21,29,80,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1667,POTON_CANON_3,Photon Cannon,Photon Cannon,65,7800,0,600,800,9,700,800,24,30,1,40,23,30,90,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1668,ARCHDAM,Archdam,Archdam,119,20700,1,2862,2147,3,603,722,98,15,118,64,70,65,66,25,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1 -1669,DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1040,1880,45,28,15,69,40,15,63,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1 -1670,DIMIK_1,Dimik,Dimik,116,17552,1,2916,2187,7,656,763,93,28,114,90,66,52,122,41,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7352,50,6216,70,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1 -1671,DIMIK_2,Dimik,Dimik,116,23840,1,2916,2187,5,630,733,76,21,118,72,62,55,88,38,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1 -1672,DIMIK_3,Dimik,Dimik,116,21920,1,2916,2187,5,610,705,114,24,115,64,68,50,82,35,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1 -1673,DIMIK_4,Dimik,Dimik,116,16940,1,2916,2187,5,699,823,98,28,112,79,72,53,86,47,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,6216,70,0,0,0,0,4370,1 -1674,MONEMUS,Monemus,Monemus,88,80000,1,0,0,5,2400,3400,87,25,0,1,90,24,144,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1675,VENATU,Venatu,Venatu,77,12717,1,0,0,2,652,779,96,20,99,56,58,62,48,30,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1 -1676,VENATU_1,Venatu,Venatu,113,15900,1,2448,1836,2,687,772,95,20,109,54,60,50,60,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7356,350,6216,100,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1 -1677,VENATU_2,Venatu,Venatu,113,14717,1,2637,1980,2,655,762,86,20,99,73,58,62,98,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1 -1678,VENATU_3,Venatu,Venatu,113,21040,1,2643,1983,2,698,798,104,16,103,50,62,57,69,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1 -1679,VENATU_4,Venatu,Venatu,113,21810,1,2643,1983,2,656,745,74,15,106,69,61,55,72,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,6216,100,0,0,0,0,4369,1 -1680,HILL_WIND_1,Hill Wind,Hill Wind,101,9100,1,1900,1425,3,308,375,90,37,105,69,59,35,80,25,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1 -1681,GEMINI,Gemini-S58,Gemini-S58,135,108999,1,4725,3543,3,785,1107,89,45,115,92,81,92,94,66,10,12,1,0,21,0x39A5,200,1872,360,864,0,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,12040,300,0,0,0,0,4354,1 -1682,REMOVAL,Removal,Remover,121,32235,0,3772,2829,1,713,833,110,47,127,50,82,35,89,50,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1 -1683,G_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1684,G_ARCHDAM,Archdam,Archdam,119,20700,1,0,0,3,603,722,98,15,118,64,70,65,66,25,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1685,APOCALIPS_H,Vesper,Vesper,128,3802000,1,2700000,2250000,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,100000,10000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1 -1686,ORC_BABY,Orc Baby,Orc Baby,43,1122,1,315,354,1,64,75,49,3,25,1,32,20,31,35,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1 -1687,GREEN_IGUANA,Green Iguana,Grove,55,2090,1,486,548,9,139,174,96,18,58,42,22,5,45,17,10,12,1,2,42,0x83,200,1152,1152,480,0,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,6264,500,0,0,0,0,4377,1 -1688,LADY_TANEE,Lady Tanee,Lady Tanee,80,360000,1,334080,261000,14,1760,2685,141,104,86,108,88,121,200,71,10,12,2,3,64,0x1A4,100,576,432,360,167040,10000,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1 -1689,G_BACSOJIN,Bacsojin,White Lady,97,720500,1,0,0,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1690,G_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,12,15,1,0,0,1,0,0,160,99,1,1,1,1,1,1,10,12,1,2,20,0xC3,160,1120,552,511,0,0,0,0,0,0,0,0,6005,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1691,G_KRABEN,Kraben,Kraben,70,2901,1,0,0,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0 +1664,POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,800,600,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1665,POTON_CANON_1,Photon Cannon,Photon Cannon,67,7500,0,600,800,9,700,800,24,30,1,40,30,40,86,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0 +1666,POTON_CANON_2,Photon Cannon,Photon Cannon,64,7100,0,800,600,9,800,900,13,30,1,40,21,29,80,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1667,POTON_CANON_3,Photon Cannon,Photon Cannon,65,7800,0,600,800,9,700,800,24,30,1,40,23,30,90,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1668,ARCHDAM,Archdam,Archdam,119,20700,1,2862,2147,3,603,722,98,15,118,64,70,65,66,25,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1 +1669,DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1040,1880,45,28,15,69,40,15,63,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1 +1670,DIMIK_1,Dimik,Dimik,116,17552,1,2916,2187,7,656,763,93,28,114,90,66,52,122,41,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,6216,70,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1 +1671,DIMIK_2,Dimik,Dimik,116,23840,1,2916,2187,5,630,733,76,21,118,72,62,55,88,38,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1 +1672,DIMIK_3,Dimik,Dimik,116,21920,1,2916,2187,5,610,705,114,24,115,64,68,50,82,35,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1 +1673,DIMIK_4,Dimik,Dimik,116,16940,1,2916,2187,5,699,823,98,28,112,79,72,53,86,47,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,6216,70,0,0,0,0,4370,1 +1674,MONEMUS,Monemus,Monemus,88,80000,1,0,0,5,2400,3400,87,25,0,1,90,24,144,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1675,VENATU,Venatu,Venatu,77,12717,1,0,0,2,652,779,96,20,99,56,58,62,48,30,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1 +1676,VENATU_1,Venatu,Venatu,113,15900,1,2448,1836,2,687,772,95,20,109,54,60,50,60,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7356,350,6216,100,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1 +1677,VENATU_2,Venatu,Venatu,113,14717,1,2637,1980,2,655,762,86,20,99,73,58,62,98,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1 +1678,VENATU_3,Venatu,Venatu,113,21040,1,2643,1983,2,698,798,104,16,103,50,62,57,69,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1 +1679,VENATU_4,Venatu,Venatu,113,21810,1,2643,1983,2,656,745,74,15,106,69,61,55,72,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,6216,100,0,0,0,0,4369,1 +1680,HILL_WIND_1,Hill Wind,Hill Wind,101,9100,1,1900,1425,3,308,375,90,37,105,69,59,35,80,25,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1 +1681,GEMINI,Gemini-S58,Gemini-S58,135,108999,1,4725,3543,3,785,1107,89,45,115,92,81,92,94,66,10,12,1,0,21,0x39A5,200,1872,360,864,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,12040,300,0,0,0,0,4354,1 +1682,REMOVAL,Removal,Remover,121,32235,0,3772,2829,1,713,833,110,47,127,50,82,35,89,50,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1 +1683,G_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1684,G_ARCHDAM,Archdam,Archdam,119,20700,1,0,0,3,603,722,98,15,118,64,70,65,66,25,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1685,APOCALIPS_H,Vesper,Vesper,128,3802000,1,2700000,2250000,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,100000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1 +1686,ORC_BABY,Orc Baby,Orc Baby,43,1122,1,315,354,1,64,75,49,3,25,1,32,20,31,35,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1 +1687,GREEN_IGUANA,Green Iguana,Grove,55,2090,1,486,548,9,139,174,96,18,58,42,22,5,45,17,10,12,1,2,42,0x83,200,1152,1152,480,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,6264,500,0,0,0,0,4377,1 +1688,LADY_TANEE,Lady Tanee,Lady Tanee,80,360000,1,334080,261000,14,1760,2685,141,104,86,108,88,121,200,71,10,12,2,3,64,0x1A4,100,576,432,360,167040,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1 +1689,G_BACSOJIN,Bacsojin,White Lady,97,720500,1,0,0,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1690,G_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,12,15,1,0,0,1,0,0,160,99,1,1,1,1,1,1,10,12,1,2,20,0xC3,160,1120,552,511,0,0,0,0,0,0,0,6005,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1691,G_KRABEN,Kraben,Kraben,70,2901,1,0,0,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0 // Thanatos Tower (10.3) -1692,BREEZE,Breeze,Breeze,92,6755,1,1598,1797,2,379,431,83,32,75,101,46,35,66,55,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1 -1693,PLASMA_Y,Plasma,Plasma,119,20600,1,2111,2882,1,615,750,130,45,141,94,75,91,103,50,10,12,0,0,88,0x3885,150,1056,1056,336,0,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,7938,300,0,0,0,0,0,0,4389,1 -1694,PLASMA_R,Plasma,Plasma,118,16789,1,3549,2661,1,835,935,111,12,147,77,66,65,95,50,10,12,0,0,83,0x3885,150,912,1248,576,0,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1 -1695,PLASMA_G,Plasma,Plasma,116,24975,1,3348,2511,1,608,720,120,3,121,60,58,62,73,50,10,12,0,0,82,0x3885,100,1000,500,1000,0,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1 -1696,PLASMA_P,Plasma,Plasma,117,18955,1,3348,2511,1,623,762,78,49,130,71,72,70,87,50,10,12,0,0,87,0x3885,350,768,1440,672,0,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1 -1697,PLASMA_B,Plasma,Plasma,115,24651,1,3181,2384,1,428,498,51,18,124,74,60,55,66,50,10,12,0,0,81,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1 -1698,DEATHWORD,Deathword,Death Word,114,16390,1,2565,1923,1,596,721,68,40,91,64,53,88,99,54,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1 -1699,ANCIENT_MIMIC,Ancient Mimic,Ancient Mimic,112,14700,1,2448,2069,1,685,769,100,40,121,70,63,43,101,67,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1 -1700,OBSERVATION,Observation,Dame of Sentinel,127,34538,1,3735,2801,2,643,795,98,55,99,75,52,55,106,80,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1 -1701,SHELTER,Shelter,Mistress of Shelter,125,27000,1,4010,3051,2,691,935,80,89,99,66,41,103,95,89,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1 -1702,RETRIBUTION,Retribution,Baroness of Retribution,121,22152,1,3528,2463,2,798,1102,61,35,112,60,45,77,78,70,10,12,1,8,67,0x33B5,120,360,480,360,0,0,0,0,0,0,0,0,7440,400,2621,1,12040,50,723,1000,2506,5,1158,10,7442,50,0,0,0,0,4391,1 -1703,SOLACE,Solace,Lady Solace,123,24729,1,3758,2819,2,667,832,96,96,106,65,61,42,82,72,10,12,1,8,66,0x33B5,180,576,420,360,0,0,0,0,0,0,0,0,7441,200,2621,1,12040,50,718,1000,1910,50,1909,100,7442,50,0,0,0,0,4394,1 -1704,THA_ODIUM,Thanatos Odium,Odium of Thanatos,129,40200,1,3960,3666,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x37B5,100,432,288,420,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7438,10000,616,10,2520,1000,0,0,0,0,0,0,4396,1 -1705,THA_DESPERO,Thanatos Despero,Despero of Thanatos,129,41111,1,3960,3666,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x37B5,150,160,528,360,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,2419,1000,0,0,0,0,0,0,4397,1 -1706,THA_MAERO,Thanatos Maero,Maero of Thanatos,129,42599,1,3960,3666,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x37B5,150,160,480,360,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,2354,1000,0,0,0,0,0,0,4395,1 -1707,THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,129,45000,1,3960,3666,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x37B5,150,160,672,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,5128,1000,0,0,0,0,0,0,4398,1 -1708,THANATOS,Thanatos,Thanatos Phantom,99,1445660,1,1299400,1930554,3,3812,5483,364,35,100,129,30,86,206,32,10,12,2,6,88,0x37B5,120,115,816,504,649700,10000,617,5500,603,5000,732,2000,7444,1000,2519,1000,7450,5000,2342,5000,2412,5000,2515,1000,2655,500,0,0,0,0,4399,1 -1709,G_THA_ODIUM,Thanatos Odium,Odium of Thanatos,129,40200,1,0,0,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x33B5,100,115,288,420,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1710,G_THA_DESPERO,Thanatos Despero,Despero of Thanatos,129,41111,1,0,0,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x33B5,150,160,528,360,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1711,G_THA_MAERO,Thanatos Maero,Maero of Thanatos,129,42599,1,0,0,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x33B5,150,160,480,360,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1712,G_THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,129,45000,1,0,0,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1692,BREEZE,Breeze,Breeze,92,6755,1,1598,1797,2,379,431,83,32,75,101,46,35,66,55,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1 +1693,PLASMA_Y,Plasma,Plasma,119,20600,1,2111,2882,1,615,750,130,45,141,94,75,91,103,50,10,12,0,0,88,0x3885,150,1056,1056,336,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,7938,300,0,0,0,0,0,0,4389,1 +1694,PLASMA_R,Plasma,Plasma,118,16789,1,3549,2661,1,835,935,111,12,147,77,66,65,95,50,10,12,0,0,83,0x3885,150,912,1248,576,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1 +1695,PLASMA_G,Plasma,Plasma,116,24975,1,3348,2511,1,608,720,120,3,121,60,58,62,73,50,10,12,0,0,82,0x3885,100,1000,500,1000,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1 +1696,PLASMA_P,Plasma,Plasma,117,18955,1,3348,2511,1,623,762,78,49,130,71,72,70,87,50,10,12,0,0,87,0x3885,350,768,1440,672,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1 +1697,PLASMA_B,Plasma,Plasma,115,24651,1,3181,2384,1,428,498,51,18,124,74,60,55,66,50,10,12,0,0,81,0x3885,150,720,360,360,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1 +1698,DEATHWORD,Deathword,Death Word,114,16390,1,2565,1923,1,596,721,68,40,91,64,53,88,99,54,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1 +1699,ANCIENT_MIMIC,Ancient Mimic,Ancient Mimic,112,14700,1,2448,2069,1,685,769,100,40,121,70,63,43,101,67,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1 +1700,OBSERVATION,Observation,Dame of Sentinel,127,34538,1,3735,2801,2,643,795,98,55,99,75,52,55,106,80,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1 +1701,SHELTER,Shelter,Mistress of Shelter,125,27000,1,4010,3051,2,691,935,80,89,99,66,41,103,95,89,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1 +1702,RETRIBUTION,Retribution,Baroness of Retribution,121,22152,1,3528,2463,2,798,1102,61,35,112,60,45,77,78,70,10,12,1,8,67,0x33B5,120,360,480,360,0,0,0,0,0,0,0,7440,400,2621,1,12040,50,723,1000,2506,5,1158,10,7442,50,0,0,0,0,4391,1 +1703,SOLACE,Solace,Lady Solace,123,24729,1,3758,2819,2,667,832,96,96,106,65,61,42,82,72,10,12,1,8,66,0x33B5,180,576,420,360,0,0,0,0,0,0,0,7441,200,2621,1,12040,50,718,1000,1910,50,1909,100,7442,50,0,0,0,0,4394,1 +1704,THA_ODIUM,Thanatos Odium,Odium of Thanatos,129,40200,1,3960,3666,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x37B5,100,432,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7438,10000,616,10,2520,1000,0,0,0,0,0,0,4396,1 +1705,THA_DESPERO,Thanatos Despero,Despero of Thanatos,129,41111,1,3960,3666,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x37B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,2419,1000,0,0,0,0,0,0,4397,1 +1706,THA_MAERO,Thanatos Maero,Maero of Thanatos,129,42599,1,3960,3666,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x37B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,2354,1000,0,0,0,0,0,0,4395,1 +1707,THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,129,45000,1,3960,3666,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x37B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,5128,1000,0,0,0,0,0,0,4398,1 +1708,THANATOS,Thanatos,Thanatos Phantom,99,1445660,1,1299400,1930554,3,3812,5483,364,35,100,129,30,86,206,32,10,12,2,6,88,0x37B5,120,115,816,504,649700,617,5500,603,5000,732,2000,7444,1000,2519,1000,7450,5000,2342,5000,2412,5000,2515,1000,2655,500,0,0,0,0,4399,1 +1709,G_THA_ODIUM,Thanatos Odium,Odium of Thanatos,129,40200,1,0,0,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x33B5,100,115,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1710,G_THA_DESPERO,Thanatos Despero,Despero of Thanatos,129,41111,1,0,0,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x33B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1711,G_THA_MAERO,Thanatos Maero,Maero of Thanatos,129,42599,1,0,0,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x33B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1712,G_THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,129,45000,1,0,0,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Abyss Lake -1713,ACIDUS,Acidus,Acidus,130,48430,1,4520,3389,2,622,1017,101,90,109,78,50,55,77,55,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,0,7938,500,1035,4000,7444,5,1036,3589,7448,800,1269,10,2114,50,0,0,0,0,4378,1 -1714,FERUS,Ferus,Ferus,126,25668,1,3985,2989,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,0,578,2200,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1 -1715,NOVUS,Novus,Novus,90,6670,1,1305,1505,1,388,445,95,48,74,56,57,25,90,45,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1 -1716,ACIDUS_,Acidus,Acidus,130,40718,1,4520,3389,2,703,861,98,47,106,110,61,53,95,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1 -1717,FERUS_,Ferus,Ferus,126,39054,1,4185,2989,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,0,579,5100,1035,1000,0,0,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1 -1718,NOVUS_,Novus,Novus,84,5028,1,1080,1215,1,266,314,88,28,53,43,43,55,90,58,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1 -1719,DETALE,Detale,Detardeurus,135,6005000,1,4320000,3420000,3,4072,6734,364,166,165,153,171,136,185,72,10,12,2,9,67,0x37B5,250,432,936,360,2160000,10000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1 -1720,HYDRO,Hydro,Hydrolancer,121,41500,0,6285,4463,3,760,910,92,58,120,72,67,66,88,58,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1 -1721,DRAGON_EGG,Dragon Egg,Dragon Egg,119,20990,1,2862,2147,0,503,653,172,85,84,59,85,40,118,65,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1 -1722,EVENT_JAKK,Jakk,Jakk,99,10310,0,93,90,1,115,182,8,11,1,28,18,13,35,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,0,0,0,0,5134,10000 -1723,A_SHECIL,Shecil Damon,Cecil Damon,82,30000,0,0,0,14,600,900,40,15,1,145,27,32,134,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1724,A_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,1000,1300,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1725,R_PORING,Poring,Poring,1,50,0,0,0,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1726,R_LUNATIC,Lunatic,Lunatic,3,60,0,0,0,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x83,150,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1727,R_SAVAGE_BABE,Savage Babe,Savage Babe,7,182,0,0,0,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x83,150,1624,624,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1728,R_DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,14,140,1,0,0,1,33,41,13,0,10,12,8,5,28,7,10,12,0,2,23,0x83,150,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1729,R_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,0,0,1,487,590,24,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1730,R_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1731,G_DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1732,G_TREASURE_BOX,Treasure Chest,Treasure Chest,98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1713,ACIDUS,Acidus,Acidus,130,48430,1,4520,3389,2,622,1017,101,90,109,78,50,55,77,55,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,7938,500,1035,4000,7444,5,1036,3589,7448,800,1269,10,2114,50,0,0,0,0,4378,1 +1714,FERUS,Ferus,Ferus,126,25668,1,3985,2989,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,578,2200,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1 +1715,NOVUS,Novus,Novus,90,6670,1,1305,1505,1,388,445,95,48,74,56,57,25,90,45,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1 +1716,ACIDUS_,Acidus,Acidus,130,40718,1,4520,3389,2,703,861,98,47,106,110,61,53,95,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1 +1717,FERUS_,Ferus,Ferus,126,39054,1,4185,2989,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,579,5100,1035,1000,0,0,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1 +1718,NOVUS_,Novus,Novus,84,5028,1,1080,1215,1,266,314,88,28,53,43,43,55,90,58,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1 +1719,DETALE,Detale,Detardeurus,135,6005000,1,4320000,3420000,3,4072,6734,364,166,165,153,171,136,185,72,10,12,2,9,67,0x37B5,250,432,936,360,2160000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1 +1720,HYDRO,Hydro,Hydrolancer,121,41500,0,6285,4463,3,760,910,92,58,120,72,67,66,88,58,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1 +1721,DRAGON_EGG,Dragon Egg,Dragon Egg,119,20990,1,2862,2147,0,503,653,172,85,84,59,85,40,118,65,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1 +1722,EVENT_JAKK,Jakk,Jakk,99,10310,0,93,90,1,115,182,8,11,1,28,18,13,35,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,0,0,0,0,5134,10000 +1723,A_SHECIL,Shecil Damon,Cecil Damon,82,30000,0,0,0,14,600,900,40,15,1,145,27,32,134,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1724,A_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,1000,1300,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1725,R_PORING,Poring,Poring,1,50,0,0,0,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1726,R_LUNATIC,Lunatic,Lunatic,3,60,0,0,0,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x83,150,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1727,R_SAVAGE_BABE,Savage Babe,Savage Babe,7,182,0,0,0,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x83,150,1624,624,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1728,R_DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,14,140,1,0,0,1,33,41,13,0,10,12,8,5,28,7,10,12,0,2,23,0x83,150,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1729,R_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,0,0,1,487,590,24,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1730,R_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1731,G_DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1732,G_TREASURE_BOX,Treasure Chest,Treasure Chest,98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Kiel Dungeon (10.4) -1733,KIEL,Kiel,Kiehl,90,523500,1,32850,21065,3,2018,3647,45,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1734,KIEL_,Kiel D-01,Kiel D-01,125,2502000,1,1800000,1440000,3,2937,6517,314,232,166,187,155,141,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,900000,10000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1 -1735,ALICEL,Alicel,Alicel,115,18000,1,2565,1923,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,0,7512,2000,7507,3000,2148,5,6214,200,1270,5,985,10,2517,20,0,0,0,0,4401,1 -1736,ALIOT,Aliot,Aliot,112,15669,1,2448,1836,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,6214,200,1810,10,985,10,13405,15,0,0,0,0,4402,1 -1737,ALIZA,Aliza,Aliza,112,14450,1,2448,1836,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1 -1738,CONSTANT,Constant,Constant,108,12050,0,2506,1879,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0 -1739,G_ALICEL,Alicel,Alicel,115,18000,1,0,0,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1740,G_ALIOT,Aliot,Aliot,112,15669,1,0,0,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1741,G_COOKIE_XMAS,Christmas Cookie,Christmas Cookie,37,733,1,0,0,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x3885,400,1248,1248,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1742,G_CARAT,Carat,Carat,103,9222,1,0,0,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3985,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1743,G_MYSTCASE,Myst Case,Myst Case,39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x3885,400,1248,1248,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1744,G_WILD_ROSE,Wild Rose,Wild Rose,70,2682,1,0,0,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x3885,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1745,G_CONSTANT,Constant,Constant,108,2000,0,0,0,1,560,704,92,82,126,98,62,57,91,34,10,12,0,6,67,0x2185,110,720,360,360,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1746,G_ALIZA,Aliza,Aliza,112,14450,1,0,0,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x3885,220,1440,576,600,0,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1747,G_SNAKE,Snake,Boa,18,217,1,0,0,1,29,34,9,8,10,8,18,10,14,15,10,12,1,2,22,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1748,G_ANACONDAQ,Anacondaq,Anacondaq,100,8510,1,0,0,1,388,443,92,0,79,46,28,43,56,25,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1749,G_MEDUSA,Medusa,Medusa,102,10045,1,0,0,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1750,G_RED_PLANT,Red Plant,Red Plant,1,100,1,0,0,1,100,200,160,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1733,KIEL,Kiel,Kiehl,90,523500,1,32850,21065,3,2018,3647,45,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1734,KIEL_,Kiel D-01,Kiel D-01,125,2502000,1,1800000,1440000,3,2937,6517,314,232,166,187,155,141,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,900000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1 +1735,ALICEL,Alicel,Alicel,115,18000,1,2565,1923,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7512,2000,7507,3000,2148,5,6214,200,1270,5,985,10,2517,20,0,0,0,0,4401,1 +1736,ALIOT,Aliot,Aliot,112,15669,1,2448,1836,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,6214,200,1810,10,985,10,13405,15,0,0,0,0,4402,1 +1737,ALIZA,Aliza,Aliza,112,14450,1,2448,1836,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1 +1738,CONSTANT,Constant,Constant,108,12050,0,2506,1879,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0 +1739,G_ALICEL,Alicel,Alicel,115,18000,1,0,0,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1740,G_ALIOT,Aliot,Aliot,112,15669,1,0,0,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1741,G_COOKIE_XMAS,Christmas Cookie,Christmas Cookie,37,733,1,0,0,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x3885,400,1248,1248,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1742,G_CARAT,Carat,Carat,103,9222,1,0,0,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3985,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1743,G_MYSTCASE,Myst Case,Myst Case,39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x3885,400,1248,1248,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1744,G_WILD_ROSE,Wild Rose,Wild Rose,70,2682,1,0,0,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x3885,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1745,G_CONSTANT,Constant,Constant,108,2000,0,0,0,1,560,704,92,82,126,98,62,57,91,34,10,12,0,6,67,0x2185,110,720,360,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1746,G_ALIZA,Aliza,Aliza,112,14450,1,0,0,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x3885,220,1440,576,600,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1747,G_SNAKE,Snake,Boa,18,217,1,0,0,1,29,34,9,8,10,8,18,10,14,15,10,12,1,2,22,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1748,G_ANACONDAQ,Anacondaq,Anacondaq,100,8510,1,0,0,1,388,443,92,0,79,46,28,43,56,25,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1749,G_MEDUSA,Medusa,Medusa,102,10045,1,0,0,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1750,G_RED_PLANT,Red Plant,Red Plant,1,100,1,0,0,1,100,200,160,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Odin's Temple -1751,RANDGRIS,Valkyrie Randgris,Valkyrie Randgris,141,2205000,1,2000000,2200000,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1000000,10000,617,5500,603,5000,616,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,0,0,0,0,0,0,4407,1 -1752,SKOGUL,Skogul,Skogul,126,34240,1,4280,3210,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1 -1753,FRUS,Frus,Frus,128,39520,1,4562,3421,2,710,879,65,35,114,77,66,51,79,27,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1 -1754,SKEGGIOLD,Skeggiold,Skeggiold,131,53290,1,5552,4419,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 -1755,SKEGGIOLD_,Skeggiold,Skeggiold,131,52280,1,5549,4411,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 -1756,G_HYDRO,Hydro,Hydrolancer,121,41500,0,0,0,3,760,910,92,95,120,72,67,66,88,58,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1757,G_ACIDUS,Acidus,Acidus,130,48430,1,0,0,2,622,1017,101,47,109,78,50,55,77,55,10,12,2,9,46,0x3885,170,168,1008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1758,G_FERUS,Ferus,Ferus,126,25668,1,0,0,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3885,100,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1759,G_ACIDUS_,Acidus,Acidus,130,40718,1,0,0,2,703,861,98,90,106,110,61,53,95,53,10,12,2,9,44,0x3885,180,168,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1760,G_FERUS_,Ferus,Ferus,126,39054,1,0,0,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3885,120,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1761,G_SKOGUL,Skogul,Skogul,126,34240,1,0,0,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3985,170,720,384,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1762,G_FRUS,Frus,Frus,128,39520,1,0,0,2,710,879,65,35,114,77,66,51,69,27,10,12,1,6,67,0x3985,130,480,576,432,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1763,G_SKEGGIOLD,Skeggiold,Skeggiold,131,53290,1,0,0,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1764,G_SKEGGIOLD_,Skeggiold,Skeggiold,131,52280,1,0,0,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1765,G_RANDGRIS,Valkyrie,Valkyrie,141,1005000,1,10000,10000,3,2895,6101,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,7510,500,617,100,2115,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1766,EM_ANGELING,Angeling,Angeling,99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1767,EM_DEVILING,Deviling,Deviling,99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1751,RANDGRIS,Valkyrie Randgris,Valkyrie Randgris,141,2205000,1,2000000,2200000,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1000000,617,5500,603,5000,616,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,0,0,0,0,0,0,4407,1 +1752,SKOGUL,Skogul,Skogul,126,34240,1,4280,3210,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1 +1753,FRUS,Frus,Frus,128,39520,1,4562,3421,2,710,879,65,35,114,77,66,51,79,27,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1 +1754,SKEGGIOLD,Skeggiold,Skeggiold,131,53290,1,5552,4419,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 +1755,SKEGGIOLD_,Skeggiold,Skeggiold,131,52280,1,5549,4411,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 +1756,G_HYDRO,Hydro,Hydrolancer,121,41500,0,0,0,3,760,910,92,95,120,72,67,66,88,58,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1757,G_ACIDUS,Acidus,Acidus,130,48430,1,0,0,2,622,1017,101,47,109,78,50,55,77,55,10,12,2,9,46,0x3885,170,168,1008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1758,G_FERUS,Ferus,Ferus,126,25668,1,0,0,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3885,100,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1759,G_ACIDUS_,Acidus,Acidus,130,40718,1,0,0,2,703,861,98,90,106,110,61,53,95,53,10,12,2,9,44,0x3885,180,168,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1760,G_FERUS_,Ferus,Ferus,126,39054,1,0,0,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3885,120,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1761,G_SKOGUL,Skogul,Skogul,126,34240,1,0,0,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3985,170,720,384,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1762,G_FRUS,Frus,Frus,128,39520,1,0,0,2,710,879,65,35,114,77,66,51,69,27,10,12,1,6,67,0x3985,130,480,576,432,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1763,G_SKEGGIOLD,Skeggiold,Skeggiold,131,53290,1,0,0,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1764,G_SKEGGIOLD_,Skeggiold,Skeggiold,131,52280,1,0,0,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1765,G_RANDGRIS,Valkyrie,Valkyrie,141,1005000,1,10000,10000,3,2895,6101,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,500,617,100,2115,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1766,EM_ANGELING,Angeling,Angeling,99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1767,EM_DEVILING,Deviling,Deviling,99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Rachel / Ice Dungeon (11.1) -1768,GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,139,3005000,1,2160000,1800000,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1080000,10000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1 -1769,AGAV,Agav,Agav,128,40000,1,3933,2949,1,637,818,77,82,85,66,55,113,86,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,1061,2500,0,0,0,0,4409,1 -1770,ECHIO,Echio,Echio,126,31620,1,3690,2768,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,25,12183,20,7563,100,2366,20,0,0,0,0,4410,1 -1771,VANBERK,Vanberk,Vanberk,123,24605,1,3240,2430,1,656,797,100,6,109,70,55,60,87,54,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,25,13027,5,7563,100,0,0,0,0,0,0,4411,1 -1772,ISILLA,Isilla,Isilla,124,26324,1,3456,2592,1,606,774,69,19,90,65,43,82,91,75,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,0,0,0,0,0,0,4412,1 -1773,HODREMLIN,Hodremlin,Hodremlin,122,23182,1,3758,2819,1,682,836,75,25,106,70,77,60,59,40,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1 -1774,SEEKER,Seeker,Seeker,124,24500,1,4009,3006,6,611,731,64,30,91,90,35,75,126,31,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1 -1775,SNOWIER,Snowier,Snowier,103,13934,1,1944,1458,2,510,592,121,47,91,61,67,45,61,55,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1 -1776,SIROMA,Siroma,Siroma,98,11910,1,1827,1369,1,389,489,64,38,83,43,50,70,80,60,10,12,0,0,61,0x83,180,432,648,240,0,0,0,0,0,0,0,0,7561,1000,7066,500,510,10,0,0,0,0,0,0,991,20,0,0,0,0,4416,1 -1777,ICE_TITAN,Ice Titan,Ice Titan,110,20820,1,2724,2644,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,985,30,6253,500,995,100,0,0,0,0,4417,1 -1778,GAZETI,Gazeti,Gazeti,106,14000,1,2025,1518,10,596,664,71,21,105,37,42,38,97,38,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,6253,100,6256,200,0,0,0,0,0,0,4418,1 -1779,KTULLANUX,Ktullanux,Ktullanux,98,2626000,1,1035576,949942,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,517788,10000,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1 -1780,MUSCIPULAR,Muscipular,Muscipular,105,12550,1,1944,1458,1,401,477,114,43,100,60,58,37,60,47,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,6217,200,0,0,0,0,4420,1 -1781,DROSERA,Drosera,Drosera,101,10878,1,1350,1013,7,168,222,86,52,79,32,64,38,78,14,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,0,7565,3000,6259,200,1032,2000,1033,2000,621,3,905,1000,6217,50,0,0,0,0,4421,1 -1782,ROWEEN,Roween,Roween,95,7385,1,1691,1902,1,375,410,73,33,70,82,55,45,73,25,10,12,1,2,24,0x108B,200,1500,500,1000,0,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1 -1783,GALION,Galion,Galion,100,8821,1,1769,1327,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1 -1784,STAPO,Stapo,Stapo,95,8805,1,1574,1772,1,364,415,129,36,20,46,25,35,53,30,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1 -1785,ATROCE,Atroce,Atroce,113,1502000,1,1080000,855000,2,2031,3534,316,176,121,165,135,99,152,113,10,12,2,2,67,0x37B5,150,576,600,240,540000,10000,607,5500,617,5000,617,5000,7563,7000,608,1000,2621,1000,617,5000,607,5000,5123,100,1175,100,0,0,0,0,4425,1 -1786,G_AGAV,Agav,Agav,128,40000,1,0,0,1,637,818,77,82,85,66,55,113,66,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1787,G_ECHIO,Echio,Echio,126,31620,1,0,0,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1788,G_ICE_TITAN,Ice Titan,Ice Titan,110,20820,1,0,0,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1789,ICEICLE,Iceicle,Iceicle,100,1012,1,164,122,3,425,426,2,15,99,1,1,1,95,1,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,6257,500,7066,500,7066,500,7066,500,7066,500,0,0,0,0,7066,500 -1790,G_RAFFLESIA,Rafflesia,Rafflesia,86,5819,1,0,0,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1791,G_GALION,Galion,Galion,100,8821,1,0,0,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1792,SOCCER_BALL,Soccer Ball,Soccer Ball,1,10,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,0,18503,5000,18503,3000,12326,3000,603,1000,0,0,0,0,0,0,0,0,0,0,617,1000 -1793,G_MEGALITH,Megalith,Megalith,65,2451,1,0,0,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1794,G_ROWEEN,Roween,Roween,95,7385,1,0,0,1,175,210,73,33,70,82,55,45,73,25,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1795,BLOODY_KNIGHT_,Bloody Knight,Bloody Knight,116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,0,0,0,0,7578,10000 +1768,GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,139,3005000,1,2160000,1800000,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1080000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1 +1769,AGAV,Agav,Agav,128,40000,1,3933,2949,1,637,818,77,82,85,66,55,113,86,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,1061,2500,0,0,0,0,4409,1 +1770,ECHIO,Echio,Echio,126,31620,1,3690,2768,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,25,12183,20,7563,100,2366,20,0,0,0,0,4410,1 +1771,VANBERK,Vanberk,Vanberk,123,24605,1,3240,2430,1,656,797,100,6,109,70,55,60,87,54,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,25,13027,5,7563,100,0,0,0,0,0,0,4411,1 +1772,ISILLA,Isilla,Isilla,124,26324,1,3456,2592,1,606,774,69,19,90,65,43,82,91,75,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,0,0,0,0,0,0,4412,1 +1773,HODREMLIN,Hodremlin,Hodremlin,122,23182,1,3758,2819,1,682,836,75,25,106,70,77,60,59,40,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1 +1774,SEEKER,Seeker,Seeker,124,24500,1,4009,3006,6,611,731,64,30,91,90,35,75,126,31,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1 +1775,SNOWIER,Snowier,Snowier,103,13934,1,1944,1458,2,510,592,121,47,91,61,67,45,61,55,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1 +1776,SIROMA,Siroma,Siroma,98,11910,1,1827,1369,1,389,489,64,38,83,43,50,70,80,60,10,12,0,0,61,0x83,180,432,648,240,0,0,0,0,0,0,0,7561,1000,7066,500,510,10,0,0,0,0,0,0,991,20,0,0,0,0,4416,1 +1777,ICE_TITAN,Ice Titan,Ice Titan,110,20820,1,2724,2644,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,985,30,6253,500,995,100,0,0,0,0,4417,1 +1778,GAZETI,Gazeti,Gazeti,106,14000,1,2025,1518,10,596,664,71,21,105,37,42,38,97,38,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,6253,100,6256,200,0,0,0,0,0,0,4418,1 +1779,KTULLANUX,Ktullanux,Ktullanux,98,2626000,1,1035576,949942,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,517788,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1 +1780,MUSCIPULAR,Muscipular,Muscipular,105,12550,1,1944,1458,1,401,477,114,43,100,60,58,37,60,47,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,6217,200,0,0,0,0,4420,1 +1781,DROSERA,Drosera,Drosera,101,10878,1,1350,1013,7,168,222,86,52,79,32,64,38,78,14,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,7565,3000,6259,200,1032,2000,1033,2000,621,3,905,1000,6217,50,0,0,0,0,4421,1 +1782,ROWEEN,Roween,Roween,95,7385,1,1691,1902,1,375,410,73,33,70,82,55,45,73,25,10,12,1,2,24,0x108B,200,1500,500,1000,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1 +1783,GALION,Galion,Galion,100,8821,1,1769,1327,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1 +1784,STAPO,Stapo,Stapo,95,8805,1,1574,1772,1,364,415,129,36,20,46,25,35,53,30,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1 +1785,ATROCE,Atroce,Atroce,113,1502000,1,1080000,855000,2,2031,3534,316,176,121,165,135,99,152,113,10,12,2,2,67,0x37B5,150,576,600,240,540000,607,5500,617,5000,617,5000,7563,7000,608,1000,2621,1000,617,5000,607,5000,5123,100,1175,100,0,0,0,0,4425,1 +1786,G_AGAV,Agav,Agav,128,40000,1,0,0,1,637,818,77,82,85,66,55,113,66,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1787,G_ECHIO,Echio,Echio,126,31620,1,0,0,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1788,G_ICE_TITAN,Ice Titan,Ice Titan,110,20820,1,0,0,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1789,ICEICLE,Iceicle,Iceicle,100,1012,1,164,122,3,425,426,2,15,99,1,1,1,95,1,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,6257,500,7066,500,7066,500,7066,500,7066,500,0,0,0,0,7066,500 +1790,G_RAFFLESIA,Rafflesia,Rafflesia,86,5819,1,0,0,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1791,G_GALION,Galion,Galion,100,8821,1,0,0,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1792,SOCCER_BALL,Soccer Ball,Soccer Ball,1,10,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,18503,5000,18503,3000,12326,3000,603,1000,0,0,0,0,0,0,0,0,0,0,617,1000 +1793,G_MEGALITH,Megalith,Megalith,65,2451,1,0,0,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1794,G_ROWEEN,Roween,Roween,95,7385,1,0,0,1,175,210,73,33,70,82,55,45,73,25,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1795,BLOODY_KNIGHT_,Bloody Knight,Bloody Knight,116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,0,0,0,0,7578,10000 // WoE SE Guild Dungeon -1796,AUNOE,Aunoe,Aunoe,110,13050,0,1935,1454,1,646,727,107,42,118,63,62,77,70,35,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,0,7568,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,2545,5,0,0,0,0,4464,1 -1797,FANAT,Fanat,Fanat,120,21000,1,3042,2282,1,599,705,81,64,102,66,70,47,79,57,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,0,2388,10,2422,2,7563,4000,2109,1,12183,50,7568,2500,0,0,0,0,0,0,4465,1 +1796,AUNOE,Aunoe,Aunoe,110,13050,0,1935,1454,1,646,727,107,42,118,63,62,77,70,35,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,7568,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,2545,5,0,0,0,0,4464,1 +1797,FANAT,Fanat,Fanat,120,21000,1,3042,2282,1,599,705,81,64,102,66,70,47,79,57,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,2388,10,2422,2,7563,4000,2109,1,12183,50,7568,2500,0,0,0,0,0,0,4465,1 // Additional Event Monsters -1798,TREASURE_BOX_,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1799,G_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1800,G_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1801,G_HARWORD_,Whitesmith Harword,Mastersmith Howard,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1802,G_MAGALETA_,High Priest Magaleta,High Priest Margaretha,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1803,G_SHECIL_,Sniper Shecil,Sniper Cecil,10,10,1,1,1,14,1,2,1,1,1,1,1,1,1,1,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1804,G_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1805,B_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,99,1647590,0,4352040,1412973,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1806,B_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,99,1411230,0,3675060,1433142,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1807,B_HARWORD_,Whitesmith Harword,Mastersmith Howard,99,1460000,0,3602106,1278900,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1808,B_MAGALETA_,High Priest Magaleta,High Priest Margaretha,99,1092910,0,3831300,1186920,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1809,B_SHECIL_,Sniper Shecil,Sniper Cecil,99,1349000,0,3683700,1373400,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1810,B_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,99,1069920,0,3607380,1473030,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1811,G_SMOKIE_,Smokie,Bandit,18,641,1,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0 -1812,EVENT_LUDE,Lude,Delightful Lude,99,15,0,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0 -1813,EVENT_HYDRO,Hydro,Hydrolancer,99,1880000,0,3600000,1800000,3,15000,47767,96,55,1,142,200,250,189,32,10,12,2,8,28,0x37B5,100,972,672,432,0,0,617,5500,603,2000,617,5500,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0 -1814,EVENT_MOON,Moonlight Flower,Moonlight Flower,80,30000,0,27000,27000,1,500,800,80,50,1,35,45,112,69,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1815,EVENT_RICECAKE,Rice Cake,Rice Cake,12,777,1,7,7,1,7,14,0,99,7,7,7,17,17,7,10,12,1,0,20,0x40,250,1320,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1816,EVENT_GOURD,Gourd,Gourd,12,1000,0,0,0,1,1,2,160,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,0,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1817,EVENT_DETALE,Detale,Detarderous,99,8880000,0,4050000,2250000,3,32767,65534,104,65,1,142,200,250,189,50,10,12,2,8,48,0x37B5,100,972,936,360,0,0,0,0,617,5000,617,5500,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0 -1818,EVENT_ALARM,Alarm,Alarm,58,10647,0,0,0,0,1,2,24,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000 -1819,EVENT_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1820,EVENT_BIGFOOT,Bigfoot,Bigfoot,29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1821,EVENT_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1822,EVENT_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1823,EVENT_FREEZER,Freezer,Freezer,94,9990,1,0,0,2,188,238,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1824,EVENT_GARM_BABY,Garm Baby,Garm Baby,94,10016,1,0,0,1,183,244,62,43,69,61,55,61,53,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1825,EVENT_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1826,EVENT_MYST,Myst,Myst,39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1827,EVENT_SASQUATCH,Sasquatch,Sasquatch,30,3163,0,0,0,1,250,280,8,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1828,EVENT_GULLINBURSTI,Gullinbrusti,Gullinbrusti,20,20,0,0,0,1,59,72,160,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1798,TREASURE_BOX_,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1799,G_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1800,G_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1801,G_HARWORD_,Whitesmith Harword,Mastersmith Howard,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1802,G_MAGALETA_,High Priest Magaleta,High Priest Margaretha,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1803,G_SHECIL_,Sniper Shecil,Sniper Cecil,10,10,1,1,1,14,1,2,1,1,1,1,1,1,1,1,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1804,G_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1805,B_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,99,1647590,0,4352040,1412973,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1806,B_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,99,1411230,0,3675060,1433142,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1807,B_HARWORD_,Whitesmith Harword,Mastersmith Howard,99,1460000,0,3602106,1278900,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1808,B_MAGALETA_,High Priest Magaleta,High Priest Margaretha,99,1092910,0,3831300,1186920,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1809,B_SHECIL_,Sniper Shecil,Sniper Cecil,99,1349000,0,3683700,1373400,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1810,B_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,99,1069920,0,3607380,1473030,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1811,G_SMOKIE_,Smokie,Bandit,18,641,1,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0 +1812,EVENT_LUDE,Lude,Delightful Lude,99,15,0,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0 +1813,EVENT_HYDRO,Hydro,Hydrolancer,99,1880000,0,3600000,1800000,3,15000,47767,96,55,1,142,200,250,189,32,10,12,2,8,28,0x37B5,100,972,672,432,0,617,5500,603,2000,617,5500,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0 +1814,EVENT_MOON,Moonlight Flower,Moonlight Flower,80,30000,0,27000,27000,1,500,800,80,50,1,35,45,112,69,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1815,EVENT_RICECAKE,Rice Cake,Rice Cake,12,777,1,7,7,1,7,14,0,99,7,7,7,17,17,7,10,12,1,0,20,0x40,250,1320,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1816,EVENT_GOURD,Gourd,Gourd,12,1000,0,0,0,1,1,2,160,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1817,EVENT_DETALE,Detale,Detarderous,99,8880000,0,4050000,2250000,3,32767,65534,104,65,1,142,200,250,189,50,10,12,2,8,48,0x37B5,100,972,936,360,0,0,0,617,5000,617,5500,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0 +1818,EVENT_ALARM,Alarm,Alarm,58,10647,0,0,0,0,1,2,24,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000 +1819,EVENT_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1820,EVENT_BIGFOOT,Bigfoot,Bigfoot,29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1821,EVENT_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1822,EVENT_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1823,EVENT_FREEZER,Freezer,Freezer,94,9990,1,0,0,2,188,238,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1824,EVENT_GARM_BABY,Garm Baby,Garm Baby,94,10016,1,0,0,1,183,244,62,43,69,61,55,61,53,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1825,EVENT_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1826,EVENT_MYST,Myst,Myst,39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1827,EVENT_SASQUATCH,Sasquatch,Sasquatch,30,3163,0,0,0,1,250,280,8,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1828,EVENT_GULLINBURSTI,Gullinbrusti,Gullinbrusti,20,20,0,0,0,1,59,72,160,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Thor Volcano (11.2) -1829,SWORD_GUARDIAN,Sword Guardian,Sword Guardian,133,70000,0,4500,3375,2,751,880,122,62,122,87,54,65,103,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,6223,100,0,0,0,0,4427,1 -1830,BOW_GUARDIAN,Bow Guardian,Bow Guardian,132,63000,0,4392,3294,12,766,886,127,62,109,80,65,52,122,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,6223,100,0,0,0,0,4428,1 -1831,SALAMANDER,Salamander,Salamander,138,80390,1,5919,7139,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,7097,3000,994,30,6223,10,2680,1,1920,50,2621,1,2364,20,0,0,0,0,4429,1 -1832,IFRIT,Ifrit,Ifrit,146,6935000,1,6696000,4860000,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,3348000,10000,603,5500,617,5000,616,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,2345,100,0,0,0,0,4430,1 -1833,KASA,Kasa,Kasa,135,70128,1,5599,7709,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,7097,3000,7122,2500,994,30,2680,1,2344,10,1730,10,1626,10,0,0,0,0,4431,1 -1834,G_SALAMANDER,Salamander,Salamander,138,80390,1,0,0,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1835,G_KASA,Kasa,Kasa,135,70128,1,0,0,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1836,MAGMARING,Magmaring,Magmaring,110,13079,1,2536,1903,1,678,722,100,45,107,33,35,47,61,20,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1 -1837,IMP,Imp,Imp,129,36830,1,4594,3445,1,885,1091,56,75,66,83,65,88,72,27,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,0,7122,3000,13303,3,7098,2500,1376,10,1972,25,12374,1,6223,1,0,0,0,0,4433,1 -1838,KNOCKER,Knocker,Knocker,126,43900,1,3690,3768,1,633,736,126,62,93,62,58,56,99,70,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,6223,10,2124,3,1732,5,0,0,0,0,4434,1 -1839,BYORGUE,Byorgue,Byrogue,135,92544,1,7725,5543,2,793,934,120,13,114,86,70,65,81,70,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,100,603,40,2530,1,7110,4365,0,0,0,0,4426,1 +1829,SWORD_GUARDIAN,Sword Guardian,Sword Guardian,133,70000,0,4500,3375,2,751,880,122,62,122,87,54,65,103,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,6223,100,0,0,0,0,4427,1 +1830,BOW_GUARDIAN,Bow Guardian,Bow Guardian,132,63000,0,4392,3294,12,766,886,127,62,109,80,65,52,122,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,6223,100,0,0,0,0,4428,1 +1831,SALAMANDER,Salamander,Salamander,138,80390,1,5919,7139,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,7097,3000,994,30,6223,10,2680,1,1920,50,2621,1,2364,20,0,0,0,0,4429,1 +1832,IFRIT,Ifrit,Ifrit,146,6935000,1,6696000,4860000,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,3348000,603,5500,617,5000,616,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,2345,100,0,0,0,0,4430,1 +1833,KASA,Kasa,Kasa,135,70128,1,5599,7709,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,7097,3000,7122,2500,994,30,2680,1,2344,10,1730,10,1626,10,0,0,0,0,4431,1 +1834,G_SALAMANDER,Salamander,Salamander,138,80390,1,0,0,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1835,G_KASA,Kasa,Kasa,135,70128,1,0,0,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1836,MAGMARING,Magmaring,Magmaring,110,13079,1,2536,1903,1,678,722,100,45,107,33,35,47,61,20,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1 +1837,IMP,Imp,Imp,129,36830,1,4594,3445,1,885,1091,56,75,66,83,65,88,72,27,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,7122,3000,13303,3,7098,2500,1376,10,1972,25,12374,1,6223,1,0,0,0,0,4433,1 +1838,KNOCKER,Knocker,Knocker,126,43900,1,3690,3768,1,633,736,126,62,93,62,58,56,99,70,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,6223,10,2124,3,1732,5,0,0,0,0,4434,1 +1839,BYORGUE,Byorgue,Byrogue,135,92544,1,7725,5543,2,793,934,120,13,114,86,70,65,81,70,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,100,603,40,2530,1,7110,4365,0,0,0,0,4426,1 // Additional Event Monsters -1840,GOLDEN_SAVAGE,Golden Savage,Golden Savage,99,500,1,1,1,1,500,700,160,99,0,1,1,50,120,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,0,0,0,0,12239,3000 -1841,G_SNAKE_,Snake Lord's Minion,Snake Lord's Minion,15,10,1,1,1,1,46,55,160,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,0,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1842,G_ANACONDAQ_,Snake Lord's Minion,Snake Lord's Minion,23,15,1,1,1,1,124,157,160,99,1,46,28,10,51,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,0,673,1000,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1843,G_SIDE_WINDER_,Snake Lord's Minion,Snake Lord's Minion,43,18,1,1,1,1,240,320,160,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1844,G_ISIS_,Snake Lord's Minion,Snake Lord's Minion,47,25,1,1,1,1,423,507,160,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,673,1000,675,1000,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0 -1845,G_TREASURE_BOX_,Treasure Box,Treasure Box,98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,0,0,0,0,12245,2500 -1846,DREAMMETAL,Dream Metal,Dream Metal,90,1499,0,1,1,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1847,EVENT_PORING,Poring,Poring,98,10000500,0,900000,900000,1,15000,20000,96,60,1,60,120,120,160,30,10,12,1,8,28,0x37B5,100,76,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1848,EVENT_BAPHOMET,Baphomet,Baphomet,50,45000,0,900,900,2,1500,3000,16,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1849,EVENT_OSIRIS,Osiris,Osiris,60,125000,0,1800,1800,1,3500,5000,32,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1850,EVENT_ORCHERO,Orc Hero,Orc Hero,50,175000,0,2700,2700,1,4000,5500,40,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1851,EVENT_MOBSTER,Mobster,Mobster,61,7991,1,0,0,1,910,1128,66,37,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1852,G_EM_ANGELING,Angeling,Angeling,99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1853,G_EM_DEVILING,Deviling,Deviling,99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1854,E_MUKA,Muka,Muka,17,610,0,246,108,1,40,49,8,5,15,15,30,5,20,10,10,12,2,3,22,0x83,300,1960,960,384,0,0,0,0,0,0,0,0,993,70,952,9000,713,2000,7742,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1 -1855,E_POISONSPORE,Poison Spore,Poison Spore,19,665,0,167,84,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,7743,60,972,50,921,1200,912,5,0,0,0,0,4048,1 -1856,E_MAGNOLIA,Magnolia,Magnolia,26,3195,0,354,223,1,120,151,8,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,7744,400,12127,5,0,0,0,0,4076,1 -1857,E_MARIN,Marin,Marin,15,742,0,59,40,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,7745,75,529,350,5035,1,0,0,0,0,4196,1 -1858,E_PLANKTON,Plankton,Plankton,10,354,0,21,16,1,26,31,0,5,1,10,10,0,15,0,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,0,1052,9000,7746,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1 -1859,E_MANDRAGORA,Mandragora,Mandragora,12,405,0,41,29,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,993,50,905,9000,1405,30,7747,350,711,300,706,3,1967,10,0,0,0,0,4030,1 -1860,E_COCO,Coco,Coco,17,817,0,108,70,1,56,67,0,0,24,17,34,20,24,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,7748,600,0,0,0,0,4041,1 -1861,E_CHOCO,Choco,Choco,43,4278,0,1139,1139,1,315,402,8,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,7749,1000,607,25,0,0,0,0,4285,1 -1862,E_MARTIN,Martin,Martin,18,1109,0,121,77,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,0,1017,9000,7750,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1 -1863,E_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,25,4500,0,0,0,1,292,406,23,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1840,GOLDEN_SAVAGE,Golden Savage,Golden Savage,99,500,1,1,1,1,500,700,160,99,0,1,1,50,120,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,0,0,0,0,12239,3000 +1841,G_SNAKE_,Snake Lord's Minion,Snake Lord's Minion,15,10,1,1,1,1,46,55,160,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1842,G_ANACONDAQ_,Snake Lord's Minion,Snake Lord's Minion,23,15,1,1,1,1,124,157,160,99,1,46,28,10,51,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,673,1000,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1843,G_SIDE_WINDER_,Snake Lord's Minion,Snake Lord's Minion,43,18,1,1,1,1,240,320,160,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1844,G_ISIS_,Snake Lord's Minion,Snake Lord's Minion,47,25,1,1,1,1,423,507,160,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,673,1000,675,1000,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0 +1845,G_TREASURE_BOX_,Treasure Box,Treasure Box,98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,0,0,0,0,12245,2500 +1846,DREAMMETAL,Dream Metal,Dream Metal,90,1499,0,1,1,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1847,EVENT_PORING,Poring,Poring,98,10000500,0,900000,900000,1,15000,20000,96,60,1,60,120,120,160,30,10,12,1,8,28,0x37B5,100,76,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1848,EVENT_BAPHOMET,Baphomet,Baphomet,50,45000,0,900,900,2,1500,3000,16,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1849,EVENT_OSIRIS,Osiris,Osiris,60,125000,0,1800,1800,1,3500,5000,32,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1850,EVENT_ORCHERO,Orc Hero,Orc Hero,50,175000,0,2700,2700,1,4000,5500,40,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1851,EVENT_MOBSTER,Mobster,Mobster,61,7991,1,0,0,1,910,1128,66,37,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1852,G_EM_ANGELING,Angeling,Angeling,99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1853,G_EM_DEVILING,Deviling,Deviling,99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1854,E_MUKA,Muka,Muka,17,610,0,246,108,1,40,49,8,5,15,15,30,5,20,10,10,12,2,3,22,0x83,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,7742,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1 +1855,E_POISONSPORE,Poison Spore,Poison Spore,19,665,0,167,84,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,7743,60,972,50,921,1200,912,5,0,0,0,0,4048,1 +1856,E_MAGNOLIA,Magnolia,Magnolia,26,3195,0,354,223,1,120,151,8,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,7744,400,12127,5,0,0,0,0,4076,1 +1857,E_MARIN,Marin,Marin,15,742,0,59,40,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,7745,75,529,350,5035,1,0,0,0,0,4196,1 +1858,E_PLANKTON,Plankton,Plankton,10,354,0,21,16,1,26,31,0,5,1,10,10,0,15,0,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,7746,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1 +1859,E_MANDRAGORA,Mandragora,Mandragora,12,405,0,41,29,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,7747,350,711,300,706,3,1967,10,0,0,0,0,4030,1 +1860,E_COCO,Coco,Coco,17,817,0,108,70,1,56,67,0,0,24,17,34,20,24,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,7748,600,0,0,0,0,4041,1 +1861,E_CHOCO,Choco,Choco,43,4278,0,1139,1139,1,315,402,8,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,7749,1000,607,25,0,0,0,0,4285,1 +1862,E_MARTIN,Martin,Martin,18,1109,0,121,77,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,7750,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1 +1863,E_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,25,4500,0,0,0,1,292,406,23,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Cursed Abbey (11.3) -1864,ZOMBIE_SLAUGHTER,Zombie Slaughter,Zombie Slaughter,124,40440,1,3938,2702,1,707,824,100,45,117,58,82,13,97,21,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,0,0,0,0,0,0,4435,1 -1865,RAGGED_ZOMBIE,Ragged Zombie,Ragged Zombie,123,38574,1,3515,3087,9,810,940,85,35,81,50,64,56,127,23,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,6223,1,0,0,0,0,4436,1 -1866,HELL_POODLE,Hell Poodle,Hellhound,115,17168,1,2565,1923,1,642,787,86,20,114,56,59,82,77,54,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1 -1867,BANSHEE,Banshee,Banshee,130,48666,1,4520,3500,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,6223,1,0,0,0,0,4438,1 -1868,G_BANSHEE,Banshee,Banshee,130,48666,1,0,0,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1869,FLAME_SKULL,Flame Skull,Flame Skull,121,21276,1,2332,2890,1,767,902,93,40,111,90,60,70,99,65,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1 -1870,NECROMANCER,Necromancer,Necromancer,133,91304,1,5580,4185,1,706,1112,84,73,108,54,77,116,91,30,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1 -1871,FALLINGBISHOP,Fallen Bishop,Falling Bishop,138,5655000,1,2700000,1890000,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1350000,10000,607,5500,617,5000,617,5000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,6223,500,0,0,0,0,4441,1 -1872,BEELZEBUB_FLY,Hell Fly,Hell Fly,127,502000,1,0,0,1,643,795,98,55,99,90,52,55,89,80,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1873,BEELZEBUB,Beelzebub,Beelzebub,147,6805000,1,0,0,1,3500,5600,288,265,155,235,200,225,204,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1874,BEELZEBUB_,Beelzebub,Beelzebub,147,4805000,1,7050000,7050000,2,4200,8150,418,265,178,236,200,250,218,66,10,12,2,6,88,0x37B5,100,212,504,432,3525000,10000,607,5500,617,5000,617,5000,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,6223,1000,0,0,0,0,0,0,4145,1 -1875,TRISTAN_3RD,Tristan III,Tristan III,80,43000,0,1,1,2,1366,1626,25,30,5,10,10,69,70,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1876,E_LORD_OF_DEATH,Lord of the Dead,Lord of the Dead,99,99000000,0,118209,39011,3,3430,4232,75,73,120,120,120,169,150,106,10,12,2,6,67,0x37B5,180,1446,1296,360,59104,10000,5022,10000,608,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1877,CRYSTAL_5,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,7863,10,644,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1878,E_SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0 -1879,ECLIPSE_P,Eclipse Pet,Eclipse,6,1800,0,0,0,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1864,ZOMBIE_SLAUGHTER,Zombie Slaughter,Zombie Slaughter,124,40440,1,3938,2702,1,707,824,100,45,117,58,82,13,97,21,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,0,0,0,0,0,0,4435,1 +1865,RAGGED_ZOMBIE,Ragged Zombie,Ragged Zombie,123,38574,1,3515,3087,9,810,940,85,35,81,50,64,56,127,23,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,6223,1,0,0,0,0,4436,1 +1866,HELL_POODLE,Hell Poodle,Hellhound,115,17168,1,2565,1923,1,642,787,86,20,114,56,59,82,77,54,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1 +1867,BANSHEE,Banshee,Banshee,130,48666,1,4520,3500,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,6223,1,0,0,0,0,4438,1 +1868,G_BANSHEE,Banshee,Banshee,130,48666,1,0,0,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1869,FLAME_SKULL,Flame Skull,Flame Skull,121,21276,1,2332,2890,1,767,902,93,40,111,90,60,70,99,65,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1 +1870,NECROMANCER,Necromancer,Necromancer,133,91304,1,5580,4185,1,706,1112,84,73,108,54,77,116,91,30,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1 +1871,FALLINGBISHOP,Fallen Bishop,Falling Bishop,138,5655000,1,2700000,1890000,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1350000,607,5500,617,5000,617,5000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,6223,500,0,0,0,0,4441,1 +1872,BEELZEBUB_FLY,Hell Fly,Hell Fly,127,502000,1,0,0,1,643,795,98,55,99,90,52,55,89,80,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1873,BEELZEBUB,Beelzebub,Beelzebub,147,6805000,1,0,0,1,3500,5600,288,265,155,235,200,225,204,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1874,BEELZEBUB_,Beelzebub,Beelzebub,147,4805000,1,7050000,7050000,2,4200,8150,418,265,178,236,200,250,218,66,10,12,2,6,88,0x37B5,100,212,504,432,3525000,607,5500,617,5000,617,5000,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,6223,1000,0,0,0,0,0,0,4145,1 +1875,TRISTAN_3RD,Tristan III,Tristan III,80,43000,0,1,1,2,1366,1626,25,30,5,10,10,69,70,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1876,E_LORD_OF_DEATH,Lord of the Dead,Lord of the Dead,99,99000000,0,118209,39011,3,3430,4232,75,73,120,120,120,169,150,106,10,12,2,6,67,0x37B5,180,1446,1296,360,59104,5022,10000,608,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1877,CRYSTAL_5,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,7863,10,644,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1878,E_SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0 +1879,ECLIPSE_P,Eclipse Pet,Eclipse,6,1800,0,0,0,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Moscovia -1880,WOOD_GOBLIN,Wood Goblin,Wood Goblin,81,5499,1,1106,1245,1,193,208,144,12,73,19,56,15,56,25,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0 -1881,LES,Les,Les,82,6216,1,1205,1356,1,270,300,123,30,63,20,35,25,52,30,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0 -1882,VAVAYAGA,Baba Yaga,Baba-Yaga,87,6498,1,1188,1337,2,282,353,63,60,69,45,30,60,51,35,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0 -1883,UZHAS,Uzhas,Uzhas,85,7140,1,1294,1455,1,271,306,49,8,69,14,41,30,55,20,10,12,1,7,61,0x3885,200,576,672,384,0,0,0,0,0,0,0,0,520,900,1573,5,621,100,522,100,918,3500,579,1500,603,3,0,0,0,0,0,0 -1884,MAVKA,Mavka,Mavka,84,5421,1,1253,1530,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0 -1885,GOPINICH,Gopinich,Gopinich,97,1120500,1,714240,580320,3,1988,3849,355,121,127,102,143,102,152,76,10,12,2,2,62,0x37B5,150,1536,864,432,357120,10000,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0 -1886,G_MAVKA,Mavka,Mavka,84,5421,1,0,0,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1880,WOOD_GOBLIN,Wood Goblin,Wood Goblin,81,5499,1,1106,1245,1,193,208,144,12,73,19,56,15,56,25,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0 +1881,LES,Les,Les,82,6216,1,1205,1356,1,270,300,123,30,63,20,35,25,52,30,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0 +1882,VAVAYAGA,Baba Yaga,Baba-Yaga,87,6498,1,1188,1337,2,282,353,63,60,69,45,30,60,51,35,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0 +1883,UZHAS,Uzhas,Uzhas,85,7140,1,1294,1455,1,271,306,49,8,69,14,41,30,55,20,10,12,1,7,61,0x3885,200,576,672,384,0,0,0,0,0,0,0,520,900,1573,5,621,100,522,100,918,3500,579,1500,603,3,0,0,0,0,0,0 +1884,MAVKA,Mavka,Mavka,84,5421,1,1253,1530,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0 +1885,GOPINICH,Gopinich,Gopinich,97,1120500,1,714240,580320,3,1988,3849,355,121,127,102,143,102,152,76,10,12,2,2,62,0x37B5,150,1536,864,432,357120,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0 +1886,G_MAVKA,Mavka,Mavka,84,5421,1,0,0,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Additional Monsters -1887,FREEZER_R,Freezer,Freezer,94,9990,1,0,0,2,388,438,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1888,GARM_BABY_R,Hatii Baby,Hatii Baby,61,15199,0,90,90,1,680,1580,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1889,GARM_R,Marozka's Guard,Marozka's Guard,73,100000,0,900,900,3,900,2200,20,23,85,126,10,50,95,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1890,GOPINICH_R,The Immortal Koshei,The Immortal Koshei,85,299321,0,900,900,3,1868,6124,20,42,50,65,55,50,152,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1891,G_RANDGRIS_,Valkyrie,Valkyrie,99,1567200,1,0,0,3,5560,9980,40,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1892,G_LOLI_RURI,Lolo Ruri,Lolo Ruri,109,15280,1,0,0,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1893,G_KNIGHT_OF_ABYSS,Knight of the Abyss,Abysmal Knight,122,23297,1,0,0,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1894,POURING,Pouring,Pouring,15,777,1,7,7,1,7,14,0,7,7,7,7,17,17,7,0,0,0,3,61,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,0,6296,9000,6296,100,6296,100,909,3000,909,2000,909,2000,909,2000,0,0,0,0,909,2000 -1895,EVENT_SEYREN,Seyren,Seyren Windsor,91,88902,0,0,0,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3295,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1896,EVENT_KATRINN,Katrinn,Kathryne Keyron,92,47780,0,0,0,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1897,EVENT_BAPHOMET_,Baphomet,Baphomet,81,668000,0,0,0,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1898,EVENT_ZOMBIE,Zombie,Zombie,12,434,0,0,0,1,67,79,0,10,1,1,1,1,1,1,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,7884,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1887,FREEZER_R,Freezer,Freezer,94,9990,1,0,0,2,388,438,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1888,GARM_BABY_R,Hatii Baby,Hatii Baby,61,15199,0,90,90,1,680,1580,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1889,GARM_R,Marozka's Guard,Marozka's Guard,73,100000,0,900,900,3,900,2200,20,23,85,126,10,50,95,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1890,GOPINICH_R,The Immortal Koshei,The Immortal Koshei,85,299321,0,900,900,3,1868,6124,20,42,50,65,55,50,152,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1891,G_RANDGRIS_,Valkyrie,Valkyrie,99,1567200,1,0,0,3,5560,9980,40,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1892,G_LOLI_RURI,Lolo Ruri,Lolo Ruri,109,15280,1,0,0,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1893,G_KNIGHT_OF_ABYSS,Knight of the Abyss,Abysmal Knight,122,23297,1,0,0,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1894,POURING,Pouring,Pouring,15,777,1,7,7,1,7,14,0,7,7,7,7,17,17,7,0,0,0,3,61,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,6296,9000,6296,100,6296,100,909,3000,909,2000,909,2000,909,2000,0,0,0,0,909,2000 +1895,EVENT_SEYREN,Seyren,Seyren Windsor,91,88902,0,0,0,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3295,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1896,EVENT_KATRINN,Katrinn,Kathryne Keyron,92,47780,0,0,0,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1897,EVENT_BAPHOMET_,Baphomet,Baphomet,81,668000,0,0,0,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1898,EVENT_ZOMBIE,Zombie,Zombie,12,434,0,0,0,1,67,79,0,10,1,1,1,1,1,1,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,7884,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // WoE Second Edition; Battlegrounds -1899,SWORD_GUARDIAN_,Sword Guardian,Sword Guardian,133,70000,0,0,0,2,451,580,122,33,122,87,54,65,103,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1900,BOW_GUARDIAN_,Archer Guardian,Archer Guardian,80,80404,1,0,0,12,1840,2520,64,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1901,E_CONDOR,Condor,Condor,10,15,0,90,90,1,13,20,10,15,1,1,1,50,100,100,10,12,0,2,26,0x1089,150,1148,648,480,0,0,0,0,0,0,0,0,7973,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1902,E_TREASURE1,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1903,E_TREASURE2,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1904,BOMBPORING,Bomb Poring,Bomb Poring,28,1000000,1,415,256,1,120,320,160,99,1,28,28,0,33,50,10,12,0,0,20,0x108B,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1905,BARRICADE,Barricade,Barricade,98,600500,1,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1906,BARRICADE_,Barricade,Barricade,98,600,1,0,0,1,0,0,160,99,1,17,1,80,126,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1907,S_EMPEL_1,Guardian Stone,Guardian Stone,90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1908,S_EMPEL_2,Guardian Stone,Guardian Stone,90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1909,OBJ_A,Food Storage,Food Storage,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1910,OBJ_B,Food Depot,Food Depot,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1911,OBJ_NEUTRAL,Neutrality Flag,Neutrality Flag,90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1912,OBJ_FLAG_A,Lion Flag,Lion Flag,90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1913,OBJ_FLAG_B,Eagle Flag,Eagle Flag,90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1914,OBJ_A2,Blue Crystal,Blue Crystal,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1915,OBJ_B2,Pink Crystal,Pink Crystal,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1899,SWORD_GUARDIAN_,Sword Guardian,Sword Guardian,133,70000,0,0,0,2,451,580,122,33,122,87,54,65,103,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1900,BOW_GUARDIAN_,Archer Guardian,Archer Guardian,80,80404,1,0,0,12,1840,2520,64,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1901,E_CONDOR,Condor,Condor,10,15,0,90,90,1,13,20,10,15,1,1,1,50,100,100,10,12,0,2,26,0x1089,150,1148,648,480,0,0,0,0,0,0,0,7973,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1902,E_TREASURE1,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1903,E_TREASURE2,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1904,BOMBPORING,Bomb Poring,Bomb Poring,28,1000000,1,415,256,1,120,320,160,99,1,28,28,0,33,50,10,12,0,0,20,0x108B,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1905,BARRICADE,Barricade,Barricade,98,600500,1,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1906,BARRICADE_,Barricade,Barricade,98,600,1,0,0,1,0,0,160,99,1,17,1,80,126,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1907,S_EMPEL_1,Guardian Stone,Guardian Stone,90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1908,S_EMPEL_2,Guardian Stone,Guardian Stone,90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1909,OBJ_A,Food Storage,Food Storage,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1910,OBJ_B,Food Depot,Food Depot,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1911,OBJ_NEUTRAL,Neutrality Flag,Neutrality Flag,90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1912,OBJ_FLAG_A,Lion Flag,Lion Flag,90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1913,OBJ_FLAG_B,Eagle Flag,Eagle Flag,90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1914,OBJ_A2,Blue Crystal,Blue Crystal,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1915,OBJ_B2,Pink Crystal,Pink Crystal,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Dimentional Gorge (12.1) -1916,MOROCC,Satan Morroc,Satan Morroc,151,7000000,1,0,0,2,3560,6200,400,65,165,182,180,225,180,89,10,12,2,6,87,0x37B5,100,312,624,432,0,0,0,0,0,0,0,0,5808,1500,2374,7000,2375,7000,2433,7000,7799,9000,7798,9000,0,0,0,0,0,0,0,0 -1917,MOROCC_,Wounded Morroc,Wounded Morroc,151,5000000,1,4050000,3042000,2,3020,5900,425,65,165,185,200,245,180,89,10,12,2,6,87,0x37B5,100,312,624,432,2025000,5000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0 -1918,MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,132,63900,1,4392,3294,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,576,480,432,0,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0 -1919,MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,132,64922,1,5094,3821,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,576,648,300,0,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0 -1920,MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,133,94800,1,5220,3780,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0 -1921,MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,134,77389,1,4608,4056,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0 -1922,G_MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,132,63900,1,0,0,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,312,480,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1923,G_MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,132,64922,1,0,0,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,312,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1924,G_MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,133,94800,1,0,0,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1925,G_MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,134,77389,1,0,0,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1916,MOROCC,Satan Morroc,Satan Morroc,151,7000000,1,0,0,2,3560,6200,400,65,165,182,180,225,180,89,10,12,2,6,87,0x37B5,100,312,624,432,0,0,0,0,0,0,0,5808,1500,2374,7000,2375,7000,2433,7000,7799,9000,7798,9000,0,0,0,0,0,0,0,0 +1917,MOROCC_,Wounded Morroc,Wounded Morroc,151,5000000,1,4050000,3042000,2,3020,5900,425,65,165,185,200,245,180,89,10,12,2,6,87,0x37B5,100,312,624,432,2025000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0 +1918,MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,132,63900,1,4392,3294,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,576,480,432,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0 +1919,MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,132,64922,1,5094,3821,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,576,648,300,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0 +1920,MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,133,94800,1,5220,3780,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0 +1921,MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,134,77389,1,4608,4056,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0 +1922,G_MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,132,63900,1,0,0,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,312,480,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1923,G_MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,132,64922,1,0,0,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,312,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1924,G_MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,133,94800,1,0,0,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1925,G_MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,134,77389,1,0,0,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // God Item Creation (WoE SE); Catacombs -1926,JAKK_H,Jakk,Jakk,1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,0,12396,1000,6298,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1927,WHISPER_H,Whisper,Whisper,1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,0,12397,1000,6299,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1928,DEVIRUCHI_H,Deviruchi,Deviruchi,46,500,0,0,0,1,5,10,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1929,BAPHOMET_I,Great Demon Baphomet,Unsealed Baphomet,98,4520500,1,4068000,2268000,2,4200,6500,190,45,140,152,5,85,200,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1 -1930,PIAMETTE,Piamette,Piamette,90,3000500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1931,WISH_MAIDEN,Wish Maiden,Wish Maiden,98,3567700,1,0,0,3,6500,9800,40,42,100,120,30,120,220,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1932,GARDEN_KEEPER,Garden Keeper,Garden Keeper,80,100,1,0,0,1,1,2,160,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1933,GARDEN_WATCHER,Garden Watcher,Garden Watcher,81,300000,1,0,0,1,1666,2609,88,55,30,57,56,126,128,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1934,BLUE_FLOWER,Blue Flower,Blue Flower,98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1935,RED_FLOWER,Red Flower,Red Flower,98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1936,YELL_FLOWER,Yellow Flower,Yellow Flower,98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1937,CONSTANT_,Constant,Constant,108,11000,0,0,0,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1938,TREASURE_BOX41,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7830,80,658,500,12999,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0 -1939,TREASURE_BOX42,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7831,80,658,500,12999,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0 -1940,TREASURE_BOX43,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7832,80,658,500,12999,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0 -1941,TREASURE_BOX44,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7833,80,658,500,12999,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0 -1942,TREASURE_BOX45,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7834,80,658,500,12999,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0 -1943,TREASURE_BOX46,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7835,80,658,500,12999,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0 -1944,TREASURE_BOX47,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7836,80,658,500,12999,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0 -1945,TREASURE_BOX48,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7837,80,658,500,12999,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0 -1946,TREASURE_BOX49,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,0,7838,80,658,500,12999,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0 -1947,PIAMETTE_,Piamette,Piamette,90,500500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1948,G_YGNIZEM,Ygnizem,Egnigem Cenia,136,44327,1,0,0,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1926,JAKK_H,Jakk,Jakk,1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,12396,1000,6298,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1927,WHISPER_H,Whisper,Whisper,1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,12397,1000,6299,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1928,DEVIRUCHI_H,Deviruchi,Deviruchi,46,500,0,0,0,1,5,10,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1929,BAPHOMET_I,Great Demon Baphomet,Unsealed Baphomet,98,4520500,1,4068000,2268000,2,4200,6500,190,45,140,152,5,85,200,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1 +1930,PIAMETTE,Piamette,Piamette,90,3000500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1931,WISH_MAIDEN,Wish Maiden,Wish Maiden,98,3567700,1,0,0,3,6500,9800,40,42,100,120,30,120,220,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1932,GARDEN_KEEPER,Garden Keeper,Garden Keeper,80,100,1,0,0,1,1,2,160,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1933,GARDEN_WATCHER,Garden Watcher,Garden Watcher,81,300000,1,0,0,1,1666,2609,88,55,30,57,56,126,128,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1934,BLUE_FLOWER,Blue Flower,Blue Flower,98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1935,RED_FLOWER,Red Flower,Red Flower,98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1936,YELL_FLOWER,Yellow Flower,Yellow Flower,98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1937,CONSTANT_,Constant,Constant,108,11000,0,0,0,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1938,TREASURE_BOX41,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7830,80,658,500,12999,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0 +1939,TREASURE_BOX42,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7831,80,658,500,12999,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0 +1940,TREASURE_BOX43,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7832,80,658,500,12999,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0 +1941,TREASURE_BOX44,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7833,80,658,500,12999,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0 +1942,TREASURE_BOX45,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7834,80,658,500,12999,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0 +1943,TREASURE_BOX46,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7835,80,658,500,12999,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0 +1944,TREASURE_BOX47,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7836,80,658,500,12999,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0 +1945,TREASURE_BOX48,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7837,80,658,500,12999,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0 +1946,TREASURE_BOX49,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7838,80,658,500,12999,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0 +1947,PIAMETTE_,Piamette,Piamette,90,500500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1948,G_YGNIZEM,Ygnizem,Egnigem Cenia,136,44327,1,0,0,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Battlegrounds Guardians -1949,B_S_GUARDIAN,Camp Guardian,Camp Guardian,86,457599,1,0,0,2,7590,9140,96,33,110,40,5,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1950,B_B_GUARDIAN,Camp Guardian,Camp Guardian,80,241212,1,0,0,12,1840,2520,64,62,95,80,5,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1949,B_S_GUARDIAN,Camp Guardian,Camp Guardian,86,457599,1,0,0,2,7590,9140,96,33,110,40,5,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1950,B_B_GUARDIAN,Camp Guardian,Camp Guardian,80,241212,1,0,0,12,1840,2520,64,62,95,80,5,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Ravies Sister's 'Valyrie's Gift' monsters. -1951,CRYSTAL_6,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,200 -1952,CRYSTAL_7,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,250 -1953,CRYSTAL_8,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,300 -1954,CRYSTAL_9,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100 +1951,CRYSTAL_6,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,200 +1952,CRYSTAL_7,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,250 +1953,CRYSTAL_8,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,300 +1954,CRYSTAL_9,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100 // ? -1955,TREASURE_BOX_I,Treasure Chest,Treasure Chest,1,1,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,0,12281,9000,12281,2000,12281,1000,721,2000,723,2000,727,2000,732,100,0,0,0,0,719,2000 +1955,TREASURE_BOX_I,Treasure Chest,Treasure Chest,1,1,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12281,9000,12281,2000,12281,1000,721,2000,723,2000,727,2000,732,100,0,0,0,0,719,2000 // Endless Tower -1956,NAGHT_SIEGER,Naght Sieger,Naght Sieger,99,5000000,1,3600000,1800000,2,5400,8600,410,40,190,60,80,220,264,30,16,16,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,4457,1 -1957,ENTWEIHEN,Entweihen Crothen,Entweihen Crothen,90,2400500,1,1430000,1215000,12,4400,8000,171,66,90,70,40,160,190,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1 -1958,G_ENTWEIHEN_R,Thorny Skeleton,Thorny Skeleton,89,5400000,1,0,0,12,4040,4720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1959,G_ENTWEIHEN_H,Thorn of Recovery,Thorn of Recovery,89,350000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1960,G_ENTWEIHEN_M,Thorn of Magic,Thorn of Magic,89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1961,G_ENTWEIHEN_S,Thorn of Purification,Thorn of Purification,89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1956,NAGHT_SIEGER,Naght Sieger,Naght Sieger,99,5000000,1,3600000,1800000,2,5400,8600,410,40,190,60,80,220,264,30,16,16,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,4457,1 +1957,ENTWEIHEN,Entweihen Crothen,Entweihen Crothen,90,2400500,1,1430000,1215000,12,4400,8000,171,66,90,70,40,160,190,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1 +1958,G_ENTWEIHEN_R,Thorny Skeleton,Thorny Skeleton,89,5400000,1,0,0,12,4040,4720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1959,G_ENTWEIHEN_H,Thorn of Recovery,Thorn of Recovery,89,350000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1960,G_ENTWEIHEN_M,Thorn of Magic,Thorn of Magic,89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1961,G_ENTWEIHEN_S,Thorn of Purification,Thorn of Purification,89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Additional Monsters -1962,ANTONIO_,Christmas Thief,Christmas Thief,10,15,1,0,0,1,13,20,160,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1963,P_CHUNG_E,New Year Doll,New Year Doll,49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1964,NIGHTMARE_T,Nightmare,Nightmare,30,2000,0,461,348,1,100,200,0,40,1,100,1,1,100,1,10,12,2,2,68,0x120,150,1816,816,432,0,0,0,0,0,0,0,0,505,2000,510,3000,7913,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1965,M_WILD_ROSE,Wild Rose,Wild Rose,38,4000,50,0,0,1,100,145,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1966,M_DOPPELGANGER,Doppelganger,Doppelganger,72,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1967,M_YGNIZEM,Ygnizem,Egnigem Cenia,79,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1968,E_STROUF,Strouf,Strouf,48,11990,0,5544,3776,1,200,1250,8,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1 -1969,E_MARC,Marc,Marc,36,6900,0,1778,1125,1,220,280,8,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1 -1970,E_OBEAUNE,Obeune,Obeune,31,3952,0,1159,733,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1 -1971,E_VADON,Vadon,Vadon,19,1017,0,243,153,1,74,85,32,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1 -1972,E_MARINA,Marina,Marina,21,2087,0,392,252,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1 -1973,E_PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,938,400,512,1000,713,1500,12303,3000,0,0,0,0,0,0,0,0,0,0 +1962,ANTONIO_,Christmas Thief,Christmas Thief,10,15,1,0,0,1,13,20,160,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1963,P_CHUNG_E,New Year Doll,New Year Doll,49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1964,NIGHTMARE_T,Nightmare,Nightmare,30,2000,0,461,348,1,100,200,0,40,1,100,1,1,100,1,10,12,2,2,68,0x120,150,1816,816,432,0,0,0,0,0,0,0,505,2000,510,3000,7913,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1965,M_WILD_ROSE,Wild Rose,Wild Rose,38,4000,50,0,0,1,100,145,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1966,M_DOPPELGANGER,Doppelganger,Doppelganger,72,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1967,M_YGNIZEM,Ygnizem,Egnigem Cenia,79,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1968,E_STROUF,Strouf,Strouf,48,11990,0,5544,3776,1,200,1250,8,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1 +1969,E_MARC,Marc,Marc,36,6900,0,1778,1125,1,220,280,8,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1 +1970,E_OBEAUNE,Obeune,Obeune,31,3952,0,1159,733,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1 +1971,E_VADON,Vadon,Vadon,19,1017,0,243,153,1,74,85,32,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1 +1972,E_MARINA,Marina,Marina,21,2087,0,392,252,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1 +1973,E_PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,909,7000,938,400,512,1000,713,1500,12303,3000,0,0,0,0,0,0,0,0,0,0 // WoE SE Guild Dungeon -1974,BANSHEE_MASTER,Banshee Master,Banshee Master,118,20320,0,3402,2556,2,599,897,87,94,121,58,48,122,60,44,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,7751,3000,2365,10,2748,2,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4450,1 -1975,BEHOLDER_MASTER,Beholder Master,Beholder Master,106,10135,0,2430,1845,6,471,559,73,62,103,67,42,69,69,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,2749,2,603,2,0,0,0,0,4466,1 -1976,COBALT_MINERAL,Cobalt Mineral,Cobalt Mineral,113,15800,0,2700,2070,1,645,737,113,44,110,55,65,57,95,41,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,4475,1 -1977,HEAVY_METALING,Heavy Metaling,Heavy Metaling,107,11500,0,2610,1980,1,672,784,134,65,105,63,86,58,56,38,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,4467,1 -1978,HELL_APOCALIPS,Hell Apocalips,Hell Vesper,121,22100,0,3348,3020,2,780,902,155,43,135,62,80,48,89,37,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,2391,10,1484,4,999,2500,0,0,0,0,4477,1 -1979,ZAKUDAM,Zukadam,Zakudam,115,17200,0,2880,2160,3,650,780,106,92,122,66,70,61,66,55,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,4474,1 -1980,KUBLIN,Kubkin,Kublin,85,633600,0,90000,90000,1,1180,1400,22,10,85,81,25,40,55,20,10,12,1,7,22,0x37B5,100,964,648,300,45000,5000,6010,10000,0,0,0,0,998,270,911,9000,756,43,2297,3,1061,2500,0,0,507,1800,0,0,0,0,0,0 +1974,BANSHEE_MASTER,Banshee Master,Banshee Master,118,20320,0,3402,2556,2,599,897,87,94,121,58,48,122,60,44,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,2748,2,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4450,1 +1975,BEHOLDER_MASTER,Beholder Master,Beholder Master,106,10135,0,2430,1845,6,471,559,73,62,103,67,42,69,69,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,2749,2,603,2,0,0,0,0,4466,1 +1976,COBALT_MINERAL,Cobalt Mineral,Cobalt Mineral,113,15800,0,2700,2070,1,645,737,113,44,110,55,65,57,95,41,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,4475,1 +1977,HEAVY_METALING,Heavy Metaling,Heavy Metaling,107,11500,0,2610,1980,1,672,784,134,65,105,63,86,58,56,38,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,4467,1 +1978,HELL_APOCALIPS,Hell Apocalips,Hell Vesper,121,22100,0,3348,3020,2,780,902,155,43,135,62,80,48,89,37,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,2391,10,1484,4,999,2500,0,0,0,0,4477,1 +1979,ZAKUDAM,Zukadam,Zakudam,115,17200,0,2880,2160,3,650,780,106,92,122,66,70,61,66,55,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,4474,1 +1980,KUBLIN,Kubkin,Kublin,85,633600,0,90000,90000,1,1180,1400,22,10,85,81,25,40,55,20,10,12,1,7,22,0x37B5,100,964,648,300,45000,6010,10000,0,0,0,0,998,270,911,9000,756,43,2297,3,1061,2500,0,0,507,1800,0,0,0,0,0,0 // Orc Dungeon Instance -1981,I_HIGH_ORC,Safeguard Chief,Safeguard Chief,81,44193,1,0,0,1,489,639,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1982,I_ORC_ARCHER,Orc Sniper,Orc Sniper,78,54835,1,0,0,9,460,503,67,31,55,32,24,30,125,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1983,I_ORC_SKELETON,Depraved Orc Spirit,Depraved Orc Spirit,87,80087,0,0,0,1,496,759,23,30,1,31,41,93,67,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1984,I_ORC_LADY,Shaman Cargalache,Shaman Cargalache,80,50058,0,0,0,1,423,812,56,10,60,35,52,18,79,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1981,I_HIGH_ORC,Safeguard Chief,Safeguard Chief,81,44193,1,0,0,1,489,639,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1982,I_ORC_ARCHER,Orc Sniper,Orc Sniper,78,54835,1,0,0,9,460,503,67,31,55,32,24,30,125,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1983,I_ORC_SKELETON,Depraved Orc Spirit,Depraved Orc Spirit,87,80087,0,0,0,1,496,759,23,30,1,31,41,93,67,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1984,I_ORC_LADY,Shaman Cargalache,Shaman Cargalache,80,50058,0,0,0,1,423,812,56,10,60,35,52,18,79,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Another World (13.1) -1985,DANDELION,Dandelion Member,Dandelion Member,37,45000,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1986,TATACHO,Tatacho,Tatacho,128,33336,1,3762,3092,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,6224,10,1061,2500,0,0,0,0,4442,1 -1987,CENTIPEDE,Centipede,Centipede,125,24992,1,3201,2711,2,601,713,143,25,133,71,69,39,86,49,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,6224,10,943,2500,0,0,0,0,4447,1 -1988,NEPENTHES,Nepenthes,Nepenthes,114,15099,1,2599,1793,7,602,727,25,5,94,32,41,39,150,59,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,4470,1 -1989,HILLSRION,Hillslion,Hillthrion,123,21422,1,2909,1698,1,450,552,83,11,110,69,72,41,102,12,10,12,0,2,22,0x308D,130,400,780,576,0,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7054,4850,7938,1000,0,0,0,0,4453,1 -1990,HARDROCK_MOMMOTH,Hardrock Mammoth,Hardrock Mammoth,137,1900944,1,142293,81178,2,1552,2326,449,43,191,66,102,49,131,51,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,4462,1 -1991,TENDRILRION,Tendrillion,Tendrillion,126,1397451,1,100772,75299,2,1002,2322,132,123,144,66,77,181,145,132,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6224,10,7197,5335,7008,4850,0,0,0,0,4463,1 -1992,CORNUS,Cornus,Cornus,120,20722,1,6240,4004,2,288,810,66,95,51,47,59,99,93,77,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,6224,10,2257,2,1420,1,0,0,0,0,4448,1 -1993,NAGA,Naga,Naga,117,21099,1,2944,2212,3,489,591,72,5,112,65,71,32,71,33,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,6224,10,936,3500,954,2000,1408,20,0,0,0,0,4469,1 -1994,LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,109,12466,1,1622,1806,1,299,410,59,55,88,89,55,32,119,59,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,2744,2,6224,1,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1 -1995,PINGUICULA,Pinguicula,Pinguicula,105,13058,1,2221,1662,1,189,511,46,77,67,60,64,107,64,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,1000,0,0,0,0,4476,1 -//1996,BACSOJIN_T,Bacsojin,White Lady,97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,5411,3,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1997,G_TATACHO,Tatacho,Tatacho,128,33336,1,0,0,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1998,G_HILLSRION,Hillslion,Hillslion,123,21422,1,0,0,1,450,552,83,15,110,69,72,41,102,12,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -1999,CENTIPEDE_LARVA,Centipede Larva,Centipede Larva,118,20667,1,2930,2003,2,521,609,98,17,103,62,66,27,77,44,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1 +1985,DANDELION,Dandelion Member,Dandelion Member,37,45000,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1986,TATACHO,Tatacho,Tatacho,128,33336,1,3762,3092,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,6224,10,1061,2500,0,0,0,0,4442,1 +1987,CENTIPEDE,Centipede,Centipede,125,24992,1,3201,2711,2,601,713,143,25,133,71,69,39,86,49,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,6224,10,943,2500,0,0,0,0,4447,1 +1988,NEPENTHES,Nepenthes,Nepenthes,114,15099,1,2599,1793,7,602,727,25,5,94,32,41,39,150,59,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,4470,1 +1989,HILLSRION,Hillslion,Hillthrion,123,21422,1,2909,1698,1,450,552,83,11,110,69,72,41,102,12,10,12,0,2,22,0x308D,130,400,780,576,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7054,4850,7938,1000,0,0,0,0,4453,1 +1990,HARDROCK_MOMMOTH,Hardrock Mammoth,Hardrock Mammoth,137,1900944,1,142293,81178,2,1552,2326,449,43,191,66,102,49,131,51,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,4462,1 +1991,TENDRILRION,Tendrillion,Tendrillion,126,1397451,1,100772,75299,2,1002,2322,132,123,144,66,77,181,145,132,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6224,10,7197,5335,7008,4850,0,0,0,0,4463,1 +1992,CORNUS,Cornus,Cornus,120,20722,1,6240,4004,2,288,810,66,95,51,47,59,99,93,77,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,6224,10,2257,2,1420,1,0,0,0,0,4448,1 +1993,NAGA,Naga,Naga,117,21099,1,2944,2212,3,489,591,72,5,112,65,71,32,71,33,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,6224,10,936,3500,954,2000,1408,20,0,0,0,0,4469,1 +1994,LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,109,12466,1,1622,1806,1,299,410,59,55,88,89,55,32,119,59,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,6224,1,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1 +1995,PINGUICULA,Pinguicula,Pinguicula,105,13058,1,2221,1662,1,189,511,46,77,67,60,64,107,64,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,1000,0,0,0,0,4476,1 +//1996,BACSOJIN_T,Bacsojin,White Lady,97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,3,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1997,G_TATACHO,Tatacho,Tatacho,128,33336,1,0,0,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1998,G_HILLSRION,Hillslion,Hillslion,123,21422,1,0,0,1,450,552,83,15,110,69,72,41,102,12,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +1999,CENTIPEDE_LARVA,Centipede Larva,Centipede Larva,118,20667,1,2930,2003,2,521,609,98,17,103,62,66,27,77,44,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1 // Additional Monsters -//2000,M_GAMEMASTER,Male Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2001,F_GAMEMASTER,Female Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2002,T_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,50,8000,0,3584,1589,1,585,813,47,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,0,12188,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2003,T_BACSOJIN,White Lady,White Lady,97,720500,1,0,0,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0 -//2004,T_WICKED_NYMPH,Evil Nymph,Evil Nymph,63,16029,0,0,0,2,399,1090,20,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0 -//2005,T_PLASMA_B,Plasma,Plasma,44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0 -//2006,T_PLASMA_P,Plasma,Plasma,49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0 -//2007,T_PLASMA_R,Plasma,Plasma,43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0 -2008,WOOMAWANG,Woomawang,Woomawang,82,4000000,0,90000,90000,3,8000,10000,40,40,60,110,200,250,166,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2009,WOOMAWANG_,Woomawang,Woomawang,82,2000000,0,90000,90000,1,16000,20000,40,40,60,110,200,250,166,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2010,G_MAJORUROS,Ox,Ox,66,500000,0,9,9,1,1200,3200,25,15,65,50,20,20,85,48,10,12,2,6,28,0x3885,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2011,E_GHOUL,Ghoul,Ghoul,40,99999,0,979,560,1,420,500,100,20,1,20,29,0,45,20,10,12,1,1,49,0x120,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2012,E_ZOMBIE,Zombie,Zombie,15,99999,0,45,30,1,67,79,100,10,1,8,7,0,15,0,10,12,1,1,29,0x120,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2000,M_GAMEMASTER,Male Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2001,F_GAMEMASTER,Female Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2002,T_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,50,8000,0,3584,1589,1,585,813,47,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,12188,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2003,T_BACSOJIN,White Lady,White Lady,97,720500,1,0,0,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0 +//2004,T_WICKED_NYMPH,Evil Nymph,Evil Nymph,63,16029,0,0,0,2,399,1090,20,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0 +//2005,T_PLASMA_B,Plasma,Plasma,44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0 +//2006,T_PLASMA_P,Plasma,Plasma,49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0 +//2007,T_PLASMA_R,Plasma,Plasma,43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0 +2008,WOOMAWANG,Woomawang,Woomawang,82,4000000,0,90000,90000,3,8000,10000,40,40,60,110,200,250,166,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2009,WOOMAWANG_,Woomawang,Woomawang,82,2000000,0,90000,90000,1,16000,20000,40,40,60,110,200,250,166,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2010,G_MAJORUROS,Ox,Ox,66,500000,0,9,9,1,1200,3200,25,15,65,50,20,20,85,48,10,12,2,6,28,0x3885,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2011,E_GHOUL,Ghoul,Ghoul,40,99999,0,979,560,1,420,500,100,20,1,20,29,0,45,20,10,12,1,1,49,0x120,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2012,E_ZOMBIE,Zombie,Zombie,15,99999,0,45,30,1,67,79,100,10,1,8,7,0,15,0,10,12,1,1,29,0x120,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Enter The Unknown (13.2) -2013,DRACO,Draco,Draco,114,20099,1,1995,1205,1,556,666,56,3,21,58,47,34,71,66,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,2399,10,0,0,0,0,4444,1 -2014,DRACO_EGG,Draco Egg,Draco Egg,101,100000,1,2000,1500,0,1,2,384,30,1,1,135,92,1,98,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4471,1 -2015,PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,113,17002,1,2101,2419,1,251,640,59,35,89,55,55,95,66,12,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,7939,1500,2148,10,0,0,0,0,4468,1 -2016,AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,121,33209,1,4155,4155,1,616,1066,23,8,95,61,25,25,86,40,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,0,0,2787,10,0,0,0,0,0,0,0,0,4443,1 -2017,RATA,Rata,Rata,131,58299,1,7787,6119,1,720,931,81,46,101,74,71,51,98,56,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,6224,10,0,0,0,0,0,0,0,0,4459,1 -2018,DUNEYRR,Duneyrr,Duneyrr,135,63342,1,8601,7298,1,833,1134,144,28,133,69,72,55,110,44,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,6224,10,0,0,0,0,4458,1 -2019,ANCIENT_TREE,Ancient Tree,Ancient Tree,144,388933,1,7308,5481,1,788,864,226,37,148,72,93,58,99,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,7939,1000,0,0,0,0,0,0,4473,1 -2020,RHYNCHO,Rhyncho,Rhyncho,139,337220,1,6107,4579,1,575,776,68,12,119,98,62,48,79,46,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,4460,1 -2021,PHYLLA,Phylla,Phylla,139,345560,1,6107,4579,10,550,726,61,14,107,85,60,58,101,42,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,4461,1 -2022,S_NYDHOG,Nidhoggr's Shadow,Nidhoggur's Shadow,117,3452000,0,4320000,3510000,2,4040,7880,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2160000,10000,0,0,0,0,0,0,6091,5000,7444,5000,6224,1000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,4456,1 -2023,DARK_SHADOW,Dark Shadow,Dark Shadow,147,434300,1,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1 -2024,BRADIUM_GOLEM,Bradium Golem,Bradium Golem,133,45739,1,6553,3595,1,871,974,359,12,189,25,125,45,69,33,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,12738,10,6224,500,0,0,0,0,0,0,4472,1 -//2025,MYSTCASE_EVENT,Mystcase,Mystcase,10,10,0,77,77,1,10,20,1,99,1,1,1,1,48,1,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,0,558,5000,558,5000,559,1000,560,1000,561,1000,573,1000,573,10,0,0,0,0,573,10 -2026,DANDELION_,Runaway Dandelion Member,Runaway Dandelion Member,90,552500,0,45000,22500,1,3050,4300,40,35,1,66,66,45,88,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,0,0,0,0,902,2000 -2027,G_DARK_SHADOW,Dark Shadow,Dark Shadow,147,434300,1,0,0,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2013,DRACO,Draco,Draco,114,20099,1,1995,1205,1,556,666,56,3,21,58,47,34,71,66,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,2399,10,0,0,0,0,4444,1 +2014,DRACO_EGG,Draco Egg,Draco Egg,101,100000,1,2000,1500,0,1,2,384,30,1,1,135,92,1,98,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4471,1 +2015,PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,113,17002,1,2101,2419,1,251,640,59,35,89,55,55,95,66,12,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,7939,1500,2148,10,0,0,0,0,4468,1 +2016,AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,121,33209,1,4155,4155,1,616,1066,23,8,95,61,25,25,86,40,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,0,0,2787,10,0,0,0,0,0,0,0,0,4443,1 +2017,RATA,Rata,Rata,131,58299,1,7787,6119,1,720,931,81,46,101,74,71,51,98,56,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,6224,10,0,0,0,0,0,0,0,0,4459,1 +2018,DUNEYRR,Duneyrr,Duneyrr,135,63342,1,8601,7298,1,833,1134,144,28,133,69,72,55,110,44,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,6224,10,0,0,0,0,4458,1 +2019,ANCIENT_TREE,Ancient Tree,Ancient Tree,144,388933,1,7308,5481,1,788,864,226,37,148,72,93,58,99,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,7939,1000,0,0,0,0,0,0,4473,1 +2020,RHYNCHO,Rhyncho,Rhyncho,139,337220,1,6107,4579,1,575,776,68,12,119,98,62,48,79,46,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,4460,1 +2021,PHYLLA,Phylla,Phylla,139,345560,1,6107,4579,10,550,726,61,14,107,85,60,58,101,42,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,4461,1 +2022,S_NYDHOG,Nidhoggr's Shadow,Nidhoggur's Shadow,117,3452000,0,4320000,3510000,2,4040,7880,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2160000,0,0,0,0,0,0,6091,5000,7444,5000,6224,1000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,4456,1 +2023,DARK_SHADOW,Dark Shadow,Dark Shadow,147,434300,1,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1 +2024,BRADIUM_GOLEM,Bradium Golem,Bradium Golem,133,45739,1,6553,3595,1,871,974,359,12,189,25,125,45,69,33,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,12738,10,6224,500,0,0,0,0,0,0,4472,1 +//2025,MYSTCASE_EVENT,Mystcase,Mystcase,10,10,0,77,77,1,10,20,1,99,1,1,1,1,48,1,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,558,5000,558,5000,559,1000,560,1000,561,1000,573,1000,573,10,0,0,0,0,573,10 +2026,DANDELION_,Runaway Dandelion Member,Runaway Dandelion Member,90,552500,0,45000,22500,1,3050,4300,40,35,1,66,66,45,88,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,0,0,0,0,902,2000 +2027,G_DARK_SHADOW,Dark Shadow,Dark Shadow,147,434300,1,0,0,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Additional Monsters -//2028,E_MINOROUS,Minorous,Minorous,1,741,0,0,0,1,30,48,4,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2029,E_MINOROUS_,Minorous,Minorous,10,15,0,9,0,1,100,150,160,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,0,941,10,6119,2000,6119,4000,6119,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1 -//2030,HIDEN_PRIEST,Hiden Priest,Hiden Priest,90,240500,0,0,0,2,1300,1983,0,30,1,32,40,100,82,40,10,12,2,6,89,0x120,150,432,432,360,0,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2031,DANDELION_H,Dandelion,Dandelion,80,120000,0,0,0,1,305,610,0,10,1,19,32,0,63,20,10,12,1,7,47,0x120,250,1772,72,384,0,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2032,GUARDIAN_FOREST,Forest Guardian,Forest Guardian,50,99999,0,0,0,1,3000,6000,160,99,100,100,100,100,100,100,10,12,0,6,27,0x120,200,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2033,GOLDEN_TULIP,Golden Tulip,Golden Tulip,1,100,0,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2034,M_DESERT_WOLF_B,Baby Desert Wolf,Baby Desert Wolf,9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2035,NIHILITY_ZEM,Nihility Zem,Nihility Zem,90,200500,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2036,VALKYRIE_N,Valkyrie Randgris,Valkyrie Randgris,98,11780,0,0,0,1,780,930,16,20,1,24,39,0,72,25,10,12,1,1,69,0x308D,170,576,576,480,0,0,0,0,0,0,0,0,6154,9000,6154,5000,6154,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2037,VALKYRIE_A,Valkyrie Randgris,Valkyrie Randgris,90,5500,15,0,0,1,10,160,16,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2038,VALKYRIE_B,Valkyrie Randgris,Valkyrie Randgris,90,10500,15,0,0,1,300,450,16,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2039,EXECUTIONER_R,Executioner,Executioner,65,28980,0,0,0,2,570,950,56,35,64,85,40,25,88,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2040,TIRFING_R,Tirfing,Ogretooth,71,29900,0,0,0,1,950,1146,48,35,58,87,55,35,132,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2041,MYSTELTAINN_R,Mysteltainn,Mysteltainn,76,33350,0,0,0,2,1160,1440,48,30,77,139,80,35,159,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2028,E_MINOROUS,Minorous,Minorous,1,741,0,0,0,1,30,48,4,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2029,E_MINOROUS_,Minorous,Minorous,10,15,0,9,0,1,100,150,160,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,941,10,6119,2000,6119,4000,6119,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1 +//2030,HIDEN_PRIEST,Hiden Priest,Hiden Priest,90,240500,0,0,0,2,1300,1983,0,30,1,32,40,100,82,40,10,12,2,6,89,0x120,150,432,432,360,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2031,DANDELION_H,Dandelion,Dandelion,80,120000,0,0,0,1,305,610,0,10,1,19,32,0,63,20,10,12,1,7,47,0x120,250,1772,72,384,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2032,GUARDIAN_FOREST,Forest Guardian,Forest Guardian,50,99999,0,0,0,1,3000,6000,160,99,100,100,100,100,100,100,10,12,0,6,27,0x120,200,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2033,GOLDEN_TULIP,Golden Tulip,Golden Tulip,1,100,0,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2034,M_DESERT_WOLF_B,Baby Desert Wolf,Baby Desert Wolf,9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2035,NIHILITY_ZEM,Nihility Zem,Nihility Zem,90,200500,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2036,VALKYRIE_N,Valkyrie Randgris,Valkyrie Randgris,98,11780,0,0,0,1,780,930,16,20,1,24,39,0,72,25,10,12,1,1,69,0x308D,170,576,576,480,0,0,0,0,0,0,0,6154,9000,6154,5000,6154,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2037,VALKYRIE_A,Valkyrie Randgris,Valkyrie Randgris,90,5500,15,0,0,1,10,160,16,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2038,VALKYRIE_B,Valkyrie Randgris,Valkyrie Randgris,90,10500,15,0,0,1,300,450,16,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2039,EXECUTIONER_R,Executioner,Executioner,65,28980,0,0,0,2,570,950,56,35,64,85,40,25,88,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2040,TIRFING_R,Tirfing,Ogretooth,71,29900,0,0,0,1,950,1146,48,35,58,87,55,35,132,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2041,MYSTELTAINN_R,Mysteltainn,Mysteltainn,76,33350,0,0,0,2,1160,1440,48,30,77,139,80,35,159,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Mechanic Fixed Autonomous Weapon Platforms -2042,SILVERSNIPER,Silver Sniper,Silver Sniper,100,4500,0,0,0,9,300,300,80,10,10,60,10,10,100,10,10,12,1,0,20,0x84,2000,504,1020,360,0,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2043,MAGICDECOY_FIRE,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,23,0x84,2000,504,1020,360,0,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2044,MAGICDECOY_WATER,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,21,0x84,2000,504,1020,360,0,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2045,MAGICDECOY_EARTH,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,22,0x84,2000,504,1020,360,0,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2046,MAGICDECOY_WIND,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,24,0x84,2000,504,1020,360,0,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2042,SILVERSNIPER,Silver Sniper,Silver Sniper,100,4500,0,0,0,9,300,300,80,10,10,60,10,10,100,10,10,12,1,0,20,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2043,MAGICDECOY_FIRE,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,23,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2044,MAGICDECOY_WATER,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,21,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2045,MAGICDECOY_EARTH,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,22,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2046,MAGICDECOY_WIND,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,24,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Additional Monsters -2047,W_NAGA,Naga,Naga,99,46708,0,0,0,3,492,605,61,15,113,42,30,18,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,926,5000,0,0,0,0,0,0,0,0,0,0,0,0 -2048,W_PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,99,8780,0,0,0,1,536,656,24,5,1,23,22,1,89,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6086,1000,0,0,0,0,0,0,0,0,0,0 -2049,W_BRADIUM_GOLEM,Bradium Golem,Bradium Golem,99,45200,0,0,0,1,720,886,125,18,0,10,82,2,60,12,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,0,0,0,0,0,6090,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2050,W_AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,99,33220,0,0,0,1,421,516,13,12,1,23,19,8,77,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,0,0,0,0,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2051,E_BAPHOMET,Baphomet,Baphomet,1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2052,E_DARK_LORD,Dark Lord,Dark Lord,96,1190900,1,2010,2010,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,1005,10000,7005,6000,5093,2000,5093,2000,1615,800,2004,100,1237,300,2334,300,12539,100,985,5141,5162,10,0,0,0,0,4169,1 -//2053,NC_DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1040,1880,72,28,15,35,40,15,120,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,7319,2000,7352,50,998,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1 -//2054,E_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2055,E_INCUBUS,Incubus,Incubus,75,17281,0,0,0,2,0,0,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2056,E_ZHERLTHSH,Zherlthsh,Zealotus,63,18300,0,0,0,1,0,0,10,15,70,85,40,30,125,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2057,E_CRAMP,Suspicious Mouse,Strange Mouse,1,4720,0,0,0,1,1,2,100,100,1,1,1,1,1,1,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2058,M_MIMIC,Mimic,Mimic,51,6120,182,0,0,1,800,950,10,40,44,121,1,60,75,110,10,12,1,0,60,0x120,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2059,M_DISGUISE,Disguise,Disguise,55,7543,180,0,0,2,526,693,18,29,0,72,45,35,48,65,10,12,1,6,82,0x120,147,516,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2060,M_ALICE,Alice,Alice,62,10000,221,0,0,1,700,850,5,5,64,64,42,85,100,130,10,12,1,7,60,0x120,200,502,1999,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2061,E_STAPO,Stapo,Stapo,23,666,0,299,199,1,135,370,90,5,12,11,15,12,23,1,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,7956,5000,0,0,0,0,4424,1 -//2062,E_POPORING,Poporing,poporing,14,344,0,73,40,1,59,72,0,10,1,14,14,0,19,15,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,7957,2000,1207,5,512,250,0,0,0,0,4033,1 -//2063,E_DROPS,Drops,Drops,3,55,0,4,3,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,7955,2000,620,20,0,0,0,0,4004,1 -//2064,E_MAGMARING,Magmaring,Magmaring,40,5300,0,1899,1719,1,550,700,25,24,40,60,30,10,60,17,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,0,7097,3000,757,34,7955,2000,7956,2000,7957,2000,7958,2000,0,0,0,0,0,0,4432,1 -//2065,E_METALING,Metaling,Metaling,26,889,0,443,224,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,0,7325,4000,7958,4000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1 -2066,E_ANOPHELES,Anopheles,Anopheles,5,50,1,1,1,1,140,158,8,10,1,30,1,1,30,1,10,12,0,4,64,0x37B5,170,1084,2304,576,0,0,5586,10000,5586,0,5586,0,601,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1 -2067,E_ANOPHELES_,Anopheles,Anopheles,3,500,1,1,1,1,40,58,8,100,1,100,1,1,100,1,10,12,0,4,64,0x120,170,1084,2304,576,0,0,0,0,0,0,0,0,601,1000,702,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1 +2047,W_NAGA,Naga,Naga,99,46708,0,0,0,3,492,605,61,15,113,42,30,18,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,926,5000,0,0,0,0,0,0,0,0,0,0,0,0 +2048,W_PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,99,8780,0,0,0,1,536,656,24,5,1,23,22,1,89,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6086,1000,0,0,0,0,0,0,0,0,0,0 +2049,W_BRADIUM_GOLEM,Bradium Golem,Bradium Golem,99,45200,0,0,0,1,720,886,125,18,0,10,82,2,60,12,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,0,0,0,0,6090,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2050,W_AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,99,33220,0,0,0,1,421,516,13,12,1,23,19,8,77,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,0,0,0,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2051,E_BAPHOMET,Baphomet,Baphomet,1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,768,768,576,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2052,E_DARK_LORD,Dark Lord,Dark Lord,96,1190900,1,2010,2010,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,1005,7005,6000,5093,2000,5093,2000,1615,800,2004,100,1237,300,2334,300,12539,100,985,5141,5162,10,0,0,0,0,4169,1 +//2053,NC_DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1040,1880,72,28,15,35,40,15,120,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,998,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1 +//2054,E_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2055,E_INCUBUS,Incubus,Incubus,75,17281,0,0,0,2,0,0,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2056,E_ZHERLTHSH,Zherlthsh,Zealotus,63,18300,0,0,0,1,0,0,10,15,70,85,40,30,125,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2057,E_CRAMP,Suspicious Mouse,Strange Mouse,1,4720,0,0,0,1,1,2,100,100,1,1,1,1,1,1,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2058,M_MIMIC,Mimic,Mimic,51,6120,182,0,0,1,800,950,10,40,44,121,1,60,75,110,10,12,1,0,60,0x120,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2059,M_DISGUISE,Disguise,Disguise,55,7543,180,0,0,2,526,693,18,29,0,72,45,35,48,65,10,12,1,6,82,0x120,147,516,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2060,M_ALICE,Alice,Alice,62,10000,221,0,0,1,700,850,5,5,64,64,42,85,100,130,10,12,1,7,60,0x120,200,502,1999,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2061,E_STAPO,Stapo,Stapo,23,666,0,299,199,1,135,370,90,5,12,11,15,12,23,1,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,7956,5000,0,0,0,0,4424,1 +//2062,E_POPORING,Poporing,poporing,14,344,0,73,40,1,59,72,0,10,1,14,14,0,19,15,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,7957,2000,1207,5,512,250,0,0,0,0,4033,1 +//2063,E_DROPS,Drops,Drops,3,55,0,4,3,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,7955,2000,620,20,0,0,0,0,4004,1 +//2064,E_MAGMARING,Magmaring,Magmaring,40,5300,0,1899,1719,1,550,700,25,24,40,60,30,10,60,17,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,7955,2000,7956,2000,7957,2000,7958,2000,0,0,0,0,0,0,4432,1 +//2065,E_METALING,Metaling,Metaling,26,889,0,443,224,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,7958,4000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1 +2066,E_ANOPHELES,Anopheles,Anopheles,5,50,1,1,1,1,140,158,8,10,1,30,1,1,30,1,10,12,0,4,64,0x37B5,170,1084,2304,576,0,5586,10000,5586,0,5586,0,601,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1 +2067,E_ANOPHELES_,Anopheles,Anopheles,3,500,1,1,1,1,40,58,8,100,1,100,1,1,100,1,10,12,0,4,64,0x120,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,702,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1 // Brasilis -2068,BOITATA,Boitata,Boitata,93,1283990,1,74288,77950,2,1060,2022,32,66,140,99,30,109,100,90,10,12,2,2,63,0x37B5,200,1152,1152,576,37144,10000,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,0,0 -2069,IARA,Iara,Iara,79,5890,1,1070,890,1,171,270,0,76,69,14,41,60,69,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0 -2070,PIRANHA,Piranha,Piranha,75,4522,1,899,1023,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0 -2071,HEADLESS_MULE,Headless Mule,Headless Mule,80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,1255,2,0,0,0,0,0,0 -2072,JAGUAR,Jaguar,Jaguar,71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0 -2073,TOUCAN,Toucan,Toucan,70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0 -2074,CURUPIRA,Curupira,Curupira,68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x118B,250,528,480,384,0,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0 +2068,BOITATA,Boitata,Boitata,93,1283990,1,74288,77950,2,1060,2022,32,66,140,99,30,109,100,90,10,12,2,2,63,0x37B5,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,0,0 +2069,IARA,Iara,Iara,79,5890,1,1070,890,1,171,270,0,76,69,14,41,60,69,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0 +2070,PIRANHA,Piranha,Piranha,75,4522,1,899,1023,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0 +2071,HEADLESS_MULE,Headless Mule,Headless Mule,80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,1255,2,0,0,0,0,0,0 +2072,JAGUAR,Jaguar,Jaguar,71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0 +2073,TOUCAN,Toucan,Toucan,70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0 +2074,CURUPIRA,Curupira,Curupira,68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x118B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0 // Event MVP -2075,E_VADON_X,Ragunta,Ragunta,150,25000000,0,9999999,9999999,1,7000,10000,500,500,100,100,100,100,100,100,10,12,2,5,88,0x37B5,150,1632,432,540,4999999,10000,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,6414,9000 +2075,E_VADON_X,Ragunta,Ragunta,150,25000000,0,9999999,9999999,1,7000,10000,500,500,100,100,100,100,100,100,10,12,2,5,88,0x37B5,150,1632,432,540,4999999,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,6414,9000 // Additional Monsters -//2076,S_WIND_GHOST,Wind Ghost,Wind Ghost,105,190800,1,0,0,1,462,957,64,51,62,44,25,105,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2077,S_SKOGUL,Skogul,Skogul,105,244400,1,0,0,1,910,1166,72,15,100,88,63,99,95,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2078,S_SUCCUBUS,Succubus,Succubus,105,206660,1,0,0,1,880,1204,76,48,100,70,45,110,102,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2079,CRYSTAL_H,Crystal,Crystal,77,7777777,1,3777777,3777777,0,17777,25554,77,77,1,7,7,77,77,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2080,CRYSTAL_L,Crystal,Crystal,7,77,1,7,7,0,7,14,7,7,1,7,7,7,7,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2081,E_HYDRA,Suspicious Hydra,Strange Hydra,34,854,1,0,0,7,1,2,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2082,G_PIRANHA,Piranha,Piranha,75,4522,1,0,0,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3295,200,768,480,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2076,S_WIND_GHOST,Wind Ghost,Wind Ghost,105,190800,1,0,0,1,462,957,64,51,62,44,25,105,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2077,S_SKOGUL,Skogul,Skogul,105,244400,1,0,0,1,910,1166,72,15,100,88,63,99,95,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2078,S_SUCCUBUS,Succubus,Succubus,105,206660,1,0,0,1,880,1204,76,48,100,70,45,110,102,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2079,CRYSTAL_H,Crystal,Crystal,77,7777777,1,3777777,3777777,0,17777,25554,77,77,1,7,7,77,77,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2080,CRYSTAL_L,Crystal,Crystal,7,77,1,7,7,0,7,14,7,7,1,7,7,7,7,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2081,E_HYDRA,Suspicious Hydra,Strange Hydra,34,854,1,0,0,7,1,2,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2082,G_PIRANHA,Piranha,Piranha,75,4522,1,0,0,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3295,200,768,480,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // El Dicastes (13.3) -2083,HORN_SCARABA,Scaraba,One-Horned Scaraba,130,51100,1,5220,4011,1,633,724,135,20,44,59,55,21,71,33,10,12,0,4,22,0x1189,200,384,672,360,0,0,0,0,0,0,0,0,6324,6500,1433,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1 -2084,HORN_SCARABA2,Scaraba,Two-Horned Scaraba,134,58900,1,5780,4549,1,690,795,150,38,44,68,72,45,84,51,10,12,0,4,22,0x1189,150,336,360,360,0,0,0,0,0,0,0,0,6323,6500,13061,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1 -2085,ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,62600,1,6330,5255,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,0,6322,6500,1930,10,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1 -2086,RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,67700,1,6990,5995,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,0,6321,6500,16010,2,12735,10,15000,10,993,2,0,0,0,0,0,0,0,0,4505,1 -2087,QUEEN_SCARABA,Queen Scaraba,Scaraba Queen,140,2441600,1,410220,212200,3,1889,3129,350,220,100,88,82,149,211,144,10,12,2,4,62,0x37B5,120,864,1000,360,205110,10000,616,5500,616,5000,616,2000,6326,7000,1191,1000,2364,1000,1196,400,18103,500,0,0,0,0,0,0,0,0,4507,1 -2088,HORN_SCARABA_EGG,Scaraba Egg,Scaraba Egg,125,63000,1,4000,3000,0,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2089,HORN_SCARABA2_EGG,Scaraba Egg,Scaraba Egg,126,66000,1,4000,3000,0,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2090,ANTLER_SCARABA_EGG,Antler Scaraba Egg,Antler Scaraba Egg,127,69000,1,4000,3000,0,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2091,RAKE_SCARABA_EGG,Rake Scaraba Egg,Rake Scaraba Egg,128,72000,1,4000,3000,0,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,0,7032,5000,518,100,985,10,2153,10,0,0,0,0,0,0,0,0,0,0,0,0 -2092,DOLOMEDES,Dolomedes,Dolomedes,132,54591,1,5155,5155,3,677,963,112,52,149,34,82,55,95,67,10,12,2,4,61,0x3985,250,360,360,600,0,0,0,0,0,0,0,0,6319,3000,6325,5000,6090,500,2789,2,12738,10,6224,500,1984,2,0,0,0,0,4506,1 -2093,BOTARING,Botaring,Botaring,15,15,1,7,7,2,20,40,20,20,10,10,10,10,77,77,10,12,0,0,26,0x81,170,1872,672,480,0,0,0,0,0,0,0,0,12492,7000,12492,3500,12492,1000,5204,700,664,2000,665,2000,666,2000,0,0,0,0,603,500 +2083,HORN_SCARABA,Scaraba,One-Horned Scaraba,130,51100,1,5220,4011,1,633,724,135,20,44,59,55,21,71,33,10,12,0,4,22,0x1189,200,384,672,360,0,0,0,0,0,0,0,6324,6500,1433,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1 +2084,HORN_SCARABA2,Scaraba,Two-Horned Scaraba,134,58900,1,5780,4549,1,690,795,150,38,44,68,72,45,84,51,10,12,0,4,22,0x1189,150,336,360,360,0,0,0,0,0,0,0,6323,6500,13061,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1 +2085,ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,62600,1,6330,5255,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,6322,6500,1930,10,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1 +2086,RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,67700,1,6990,5995,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,6321,6500,16010,2,12735,10,15000,10,993,2,0,0,0,0,0,0,0,0,4505,1 +2087,QUEEN_SCARABA,Queen Scaraba,Scaraba Queen,140,2441600,1,410220,212200,3,1889,3129,350,220,100,88,82,149,211,144,10,12,2,4,62,0x37B5,120,864,1000,360,205110,616,5500,616,5000,616,2000,6326,7000,1191,1000,2364,1000,1196,400,18103,500,0,0,0,0,0,0,0,0,4507,1 +2088,HORN_SCARABA_EGG,Scaraba Egg,Scaraba Egg,125,63000,1,4000,3000,0,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2089,HORN_SCARABA2_EGG,Scaraba Egg,Scaraba Egg,126,66000,1,4000,3000,0,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2090,ANTLER_SCARABA_EGG,Antler Scaraba Egg,Antler Scaraba Egg,127,69000,1,4000,3000,0,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2091,RAKE_SCARABA_EGG,Rake Scaraba Egg,Rake Scaraba Egg,128,72000,1,4000,3000,0,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,2153,10,0,0,0,0,0,0,0,0,0,0,0,0 +2092,DOLOMEDES,Dolomedes,Dolomedes,132,54591,1,5155,5155,3,677,963,112,52,149,34,82,55,95,67,10,12,2,4,61,0x3985,250,360,360,600,0,0,0,0,0,0,0,6319,3000,6325,5000,6090,500,2789,2,12738,10,6224,500,1984,2,0,0,0,0,4506,1 +2093,BOTARING,Botaring,Botaring,15,15,1,7,7,2,20,40,20,20,10,10,10,10,77,77,10,12,0,0,26,0x81,170,1872,672,480,0,0,0,0,0,0,0,12492,7000,12492,3500,12492,1000,5204,700,664,2000,665,2000,666,2000,0,0,0,0,603,500 // Additional MVPs -2094,E_ORK_HERO2,Orc Hero,1,50,362000,1,2010,2010,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,1005,10000,725,2000,607,5000,607,5000,968,9700,10018,500,1366,150,12539,50,1124,1000,985,4559,1387,100,0,0,0,0,4143,1 -2095,E_EDDGA,Eddga,Eddga,65,247500,1,2010,2010,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,1005,10000,1030,5000,1030,3000,1030,3000,1133,150,2268,250,518,10000,12539,50,1030,250,985,2300,13046,100,0,0,0,0,4074,1 -2096,E_OSIRIS2,Osiris,Osiris,68,475840,1,2010,2010,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,1005,10000,603,2000,608,500,608,500,617,2000,1232,150,2235,200,12539,50,1009,1000,5053,150,1285,100,0,0,0,0,4144,1 -2097,E_DRACULA,Dracula,Dracula,75,350000,1,2010,2010,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,1005,10000,607,5500,732,5000,732,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,12539,50,0,0,0,0,4134,1 -2098,E_DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,2010,2010,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,1005,10000,723,1500,505,0,505,0,2317,250,1162,220,1168,150,2258,350,12539,50,985,3686,984,2700,0,0,0,0,4127,1 -2099,E_MISTRESS,Mistress,Mistress,78,378000,1,2010,2010,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,1005,10000,996,1500,526,3000,526,3000,12539,50,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1 -2100,E_BAPHOMET2,Baphomet,Baphomet,81,668000,1,2010,2010,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,1005,10000,607,2000,750,5000,750,5000,12539,100,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1 -2101,E_LORD_OF_DEATH2,Lord of Death,Lord of the Dead,94,603883,1,2010,2010,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,1005,10000,607,5500,732,5000,732,5000,7108,5335,1417,5,12539,100,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4210,1 -2102,E_DARKLORD,Dark Lord,Dark Lord,1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,868,768,480,0,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2103,E_KTULLANUX,Ktullanux,1,98,2626000,1,2010,2010,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,1005,10000,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,12539,100,0,0,0,0,4419,1 -2104,E_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,105,1101000,1,2010,2010,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,1005,10000,607,5500,617,5500,617,5500,7169,5820,10020,5100,1471,80,12539,50,1474,500,7226,900,661,2000,0,0,0,0,4330,1 -2105,E_TURTLE_GENERAL,Turtle General,Turtle General,110,1442000,1,2010,2010,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,1005,10000,967,5500,607,2000,607,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,12539,50,0,0,0,0,4246,1 -2106,E_APOCALIPS_H,Vesper,Vesper,128,3802000,1,2010,2010,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,1005,10000,617,5500,603,2000,603,2000,7095,5000,7094,3000,12539,50,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1 -2107,E_FALLINGBISHOP,Fallen Bishop,Fallen Bishop Hibram,138,5655000,1,2010,2010,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1005,10000,607,5500,608,2000,608,2000,523,10000,1420,1000,2677,500,1422,1000,985,5432,12539,200,6223,500,0,0,0,0,4441,1 -2108,E_GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,139,3005000,1,2010,2010,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1005,10000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,12539,200,0,0,0,0,4410,1 -2109,E_RANDGRIS,Valkyrie Randgris,Valkyrie Randgris1,141,2205000,1,2010,2010,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1005,10000,617,5500,603,2000,603,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,12539,200,0,0,0,0,4407,1 -2110,E_IFRIT,Ifrit,Ifrit,146,6935000,1,2010,2010,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,1005,10000,617,5500,6223,2000,6223,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,12539,200,0,0,0,0,4430,1 -2111,E_B_HARWORD,Whitesmith Harword,Whitesmith Howard,160,6750000,1,2010,2010,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1005,10000,617,5500,603,2000,603,2000,1138,3500,1140,2500,12539,200,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1 -2112,E_B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,4680000,1,2010,2010,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,1005,10000,617,5500,603,2000,603,2000,1132,2500,2342,3500,12539,200,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,0,0 -2113,E_B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,4230000,1,2010,2010,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,1005,10000,617,5500,603,2000,603,2000,1234,1500,13017,1500,12539,200,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1 +2094,E_ORK_HERO2,Orc Hero,1,50,362000,1,2010,2010,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,1005,725,2000,607,5000,607,5000,968,9700,10018,500,1366,150,12539,50,1124,1000,985,4559,1387,100,0,0,0,0,4143,1 +2095,E_EDDGA,Eddga,Eddga,65,247500,1,2010,2010,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,1005,1030,5000,1030,3000,1030,3000,1133,150,2268,250,518,10000,12539,50,1030,250,985,2300,13046,100,0,0,0,0,4074,1 +2096,E_OSIRIS2,Osiris,Osiris,68,475840,1,2010,2010,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,1005,603,2000,608,500,608,500,617,2000,1232,150,2235,200,12539,50,1009,1000,5053,150,1285,100,0,0,0,0,4144,1 +2097,E_DRACULA,Dracula,Dracula,75,350000,1,2010,2010,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,1005,607,5500,732,5000,732,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,12539,50,0,0,0,0,4134,1 +2098,E_DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,2010,2010,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,1005,723,1500,505,0,505,0,2317,250,1162,220,1168,150,2258,350,12539,50,985,3686,984,2700,0,0,0,0,4127,1 +2099,E_MISTRESS,Mistress,Mistress,78,378000,1,2010,2010,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,1005,996,1500,526,3000,526,3000,12539,50,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1 +2100,E_BAPHOMET2,Baphomet,Baphomet,81,668000,1,2010,2010,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,1005,607,2000,750,5000,750,5000,12539,100,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1 +2101,E_LORD_OF_DEATH2,Lord of Death,Lord of the Dead,94,603883,1,2010,2010,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,1005,607,5500,732,5000,732,5000,7108,5335,1417,5,12539,100,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4210,1 +2102,E_DARKLORD,Dark Lord,Dark Lord,1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,868,768,480,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2103,E_KTULLANUX,Ktullanux,1,98,2626000,1,2010,2010,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,1005,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,12539,100,0,0,0,0,4419,1 +2104,E_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,105,1101000,1,2010,2010,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,1005,607,5500,617,5500,617,5500,7169,5820,10020,5100,1471,80,12539,50,1474,500,7226,900,661,2000,0,0,0,0,4330,1 +2105,E_TURTLE_GENERAL,Turtle General,Turtle General,110,1442000,1,2010,2010,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,1005,967,5500,607,2000,607,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,12539,50,0,0,0,0,4246,1 +2106,E_APOCALIPS_H,Vesper,Vesper,128,3802000,1,2010,2010,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,1005,617,5500,603,2000,603,2000,7095,5000,7094,3000,12539,50,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1 +2107,E_FALLINGBISHOP,Fallen Bishop,Fallen Bishop Hibram,138,5655000,1,2010,2010,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1005,607,5500,608,2000,608,2000,523,10000,1420,1000,2677,500,1422,1000,985,5432,12539,200,6223,500,0,0,0,0,4441,1 +2108,E_GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,139,3005000,1,2010,2010,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1005,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,12539,200,0,0,0,0,4410,1 +2109,E_RANDGRIS,Valkyrie Randgris,Valkyrie Randgris1,141,2205000,1,2010,2010,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1005,617,5500,603,2000,603,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,12539,200,0,0,0,0,4407,1 +2110,E_IFRIT,Ifrit,Ifrit,146,6935000,1,2010,2010,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,1005,617,5500,6223,2000,6223,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,12539,200,0,0,0,0,4430,1 +2111,E_B_HARWORD,Whitesmith Harword,Whitesmith Howard,160,6750000,1,2010,2010,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1138,3500,1140,2500,12539,200,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1 +2112,E_B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,4680000,1,2010,2010,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1132,2500,2342,3500,12539,200,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,0,0 +2113,E_B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,4230000,1,2010,2010,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1234,1500,13017,1500,12539,200,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1 // Sorcerer Elemental Spirits //2114,EL_AGNI_S,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0 @@ -1242,288 +1242,288 @@ //2123,EL_TERA_S,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0 //2124,EL_TERA_M,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0 //2125,EL_TERA_L,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0 -2126,M_ANOPHELES,Anopheles,Anopheles,100,8000,1,0,0,1,300,400,0,0,40,70,40,40,80,40,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2127,M_HORNET,Hornet,Hornet,110,9000,1,0,0,1,350,450,0,0,40,70,40,40,90,40,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2128,M_HORNET2,Hornet,Hornet,120,10000,1,0,0,1,400,500,0,0,40,70,40,40,100,40,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2129,M_LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,130,11000,1,0,0,1,450,650,0,0,60,80,50,50,110,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2130,M_LUCIOLA_VESPA2,Luciola Vespa,Luciola Vespa,140,12000,1,0,0,1,500,700,0,0,60,80,50,50,120,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2126,M_ANOPHELES,Anopheles,Anopheles,100,8000,1,0,0,1,300,400,0,0,40,70,40,40,80,40,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2127,M_HORNET,Hornet,Hornet,110,9000,1,0,0,1,350,450,0,0,40,70,40,40,90,40,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2128,M_HORNET2,Hornet,Hornet,120,10000,1,0,0,1,400,500,0,0,40,70,40,40,100,40,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2129,M_LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,130,11000,1,0,0,1,450,650,0,0,60,80,50,50,110,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2130,M_LUCIOLA_VESPA2,Luciola Vespa,Luciola Vespa,140,12000,1,0,0,1,500,700,0,0,60,80,50,50,120,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Bifrost (14.1) -2131,LOST_DRAGON,Lost Dragon,Lost Dragon,135,608920,0,30000,30000,3,1050,1580,60,51,140,81,69,122,98,61,10,12,2,9,67,0x3795,150,840,648,576,15000,10000,617,2500,616,5000,0,0,2610,1000,13062,1000,607,1000,608,500,610,500,1985,500,2854,300,0,0,0,0,0,0 -2132,POM_SPIDER,Pom Spider,Pom Spider,145,122110,1,8010,8037,1,632,847,240,115,156,85,178,88,139,102,10,12,1,4,62,0x3985,250,864,1056,576,0,0,0,0,0,0,0,0,12573,500,11520,1000,1042,1000,13431,10,1654,3,0,0,0,0,0,0,0,0,4514,1 -2133,ANGRA_MANTIS,Angra Mantis,Angra Mantis,144,91720,1,7790,7020,1,579,756,175,81,122,155,119,81,132,79,10,12,1,4,42,0x3985,150,576,480,480,0,0,0,0,0,0,0,0,6086,5000,7194,1000,997,10,1830,10,0,0,0,0,0,0,0,0,0,0,4513,1 -2134,PARUS,Parus,Parus,142,86990,1,7310,6990,1,511,663,161,39,80,136,128,44,105,51,10,12,0,2,42,0x3885,180,384,792,432,0,0,0,0,0,0,0,0,6393,5000,7063,1000,12736,100,6383,5000,6383,3000,6383,1000,0,0,0,0,0,0,4512,1 -2135,CREEPER,Creeper,Creeper,100,1000,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,22,0x40,2000,192,192,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2136,LITTLE_FATUM,Little Fatum,Little Fatum,142,85100,1,7500,6500,1,442,894,51,198,10,66,17,148,148,97,10,12,0,7,44,0x3885,150,432,300,432,0,0,0,0,0,0,0,0,6395,5000,7938,100,11519,100,2465,3,0,0,0,0,0,0,0,0,0,0,4511,1 -2137,MIMING,Miming,Miming,140,81200,1,7100,6300,1,430,652,120,120,90,66,105,77,133,77,10,12,0,0,20,0x3885,250,576,1140,504,0,0,0,0,0,0,0,0,6394,5000,7938,100,969,1,2853,3,0,0,0,0,0,0,0,0,0,0,4510,1 -2138,NYDHOG_MEMORY1_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2139,NYDHOG_MEMORY1_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2140,NYDHOG_MEMORY2_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2141,NYDHOG_MEMORY2_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2142,NYDHOG_MEMORY3_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2143,NYDHOG_MEMORY3_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2144,G_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,62600,1,0,0,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2145,G_RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,67700,1,0,0,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2146,G_S_NYDHOG,G_S_NYDHOG,G_S_NYDHOG,117,300000,0,0,0,2,840,1680,60,60,1,30,30,136,88,30,10,12,2,9,87,0x37B5,150,1596,1620,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2147,E_WHITE_PLANT,White Plant,White Plant,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2148,E_BLUE_PLANT,Blue Plant,Blue Plant,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2149,E_SAVAGE_BABE,Savage Babe,Savage Babe,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2150,WATERMELON,Watermelon,Watermelon,12,10,0,0,0,1,7,10,1,1,1,1,1,1,6,30,10,12,1,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,6411,5000,911,2000,7198,2000,741,100,0,0,0,0,0,0,0,0,0,0,0,0 +2131,LOST_DRAGON,Lost Dragon,Lost Dragon,135,608920,0,30000,30000,3,1050,1580,60,51,140,81,69,122,98,61,10,12,2,9,67,0x3795,150,840,648,576,15000,617,2500,616,5000,0,0,2610,1000,13062,1000,607,1000,608,500,610,500,1985,500,2854,300,0,0,0,0,0,0 +2132,POM_SPIDER,Pom Spider,Pom Spider,145,122110,1,8010,8037,1,632,847,240,115,156,85,178,88,139,102,10,12,1,4,62,0x3985,250,864,1056,576,0,0,0,0,0,0,0,12573,500,11520,1000,1042,1000,13431,10,1654,3,0,0,0,0,0,0,0,0,4514,1 +2133,ANGRA_MANTIS,Angra Mantis,Angra Mantis,144,91720,1,7790,7020,1,579,756,175,81,122,155,119,81,132,79,10,12,1,4,42,0x3985,150,576,480,480,0,0,0,0,0,0,0,6086,5000,7194,1000,997,10,1830,10,0,0,0,0,0,0,0,0,0,0,4513,1 +2134,PARUS,Parus,Parus,142,86990,1,7310,6990,1,511,663,161,39,80,136,128,44,105,51,10,12,0,2,42,0x3885,180,384,792,432,0,0,0,0,0,0,0,6393,5000,7063,1000,12736,100,6383,5000,6383,3000,6383,1000,0,0,0,0,0,0,4512,1 +2135,CREEPER,Creeper,Creeper,100,1000,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,22,0x40,2000,192,192,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2136,LITTLE_FATUM,Little Fatum,Little Fatum,142,85100,1,7500,6500,1,442,894,51,198,10,66,17,148,148,97,10,12,0,7,44,0x3885,150,432,300,432,0,0,0,0,0,0,0,6395,5000,7938,100,11519,100,2465,3,0,0,0,0,0,0,0,0,0,0,4511,1 +2137,MIMING,Miming,Miming,140,81200,1,7100,6300,1,430,652,120,120,90,66,105,77,133,77,10,12,0,0,20,0x3885,250,576,1140,504,0,0,0,0,0,0,0,6394,5000,7938,100,969,1,2853,3,0,0,0,0,0,0,0,0,0,0,4510,1 +2138,NYDHOG_MEMORY1_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2139,NYDHOG_MEMORY1_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2140,NYDHOG_MEMORY2_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2141,NYDHOG_MEMORY2_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2142,NYDHOG_MEMORY3_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2143,NYDHOG_MEMORY3_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2144,G_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,62600,1,0,0,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2145,G_RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,67700,1,0,0,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2146,G_S_NYDHOG,G_S_NYDHOG,G_S_NYDHOG,117,300000,0,0,0,2,840,1680,60,60,1,30,30,136,88,30,10,12,2,9,87,0x37B5,150,1596,1620,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2147,E_WHITE_PLANT,White Plant,White Plant,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2148,E_BLUE_PLANT,Blue Plant,Blue Plant,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2149,E_SAVAGE_BABE,Savage Babe,Savage Babe,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2150,WATERMELON,Watermelon,Watermelon,12,10,0,0,0,1,7,10,1,1,1,1,1,1,6,30,10,12,1,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,6411,5000,911,2000,7198,2000,741,100,0,0,0,0,0,0,0,0,0,0,0,0 // Dewata -2151,ALNOLDI,Alnoldi,Rafflesia Alnoldi,80,5149,0,1399,1280,1,378,447,80,20,1,32,24,61,85,30,10,12,1,3,22,0x3895,300,768,768,576,0,0,0,0,0,0,0,0,705,250,520,425,905,4500,711,300,521,250,2269,100,0,0,0,0,0,0,4515,1 -2152,COMODO,Comodo,Comodo,81,4002,0,1072,1581,1,427,469,92,11,50,52,35,20,94,48,10,12,1,2,65,0x3895,165,432,432,360,0,0,0,0,0,0,0,0,6403,5000,517,9000,911,9000,908,5000,0,0,0,0,0,0,0,0,0,0,4516,1 -2153,CENDRAWASIH,Cendrawasih,Cendrawasih,84,5556,0,2612,2687,1,297,467,72,33,50,77,51,58,92,45,10,12,1,8,23,0x3895,220,768,768,576,0,0,0,0,0,0,0,0,6405,9000,7063,8000,916,9000,0,0,0,0,0,0,0,0,0,0,0,0,4517,1 -2154,BANASPATY,Banaspaty,Banaspaty,85,4680,0,1164,1688,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x3895,220,1872,672,480,0,0,0,0,0,0,0,0,1003,1000,912,2000,985,1500,756,1500,1752,500,0,0,0,0,0,0,0,0,4518,1 -2155,BUTOIJO,Butoijo,Butoijo,88,7524,0,1355,1752,1,358,460,77,12,50,65,30,30,106,44,10,12,2,6,43,0x4995,200,1100,483,528,0,0,0,0,0,0,0,0,938,2750,537,500,520,450,0,0,0,0,0,0,0,0,0,0,0,0,4519,1 -2156,LEAK,Leak,Leak,94,1266000,0,472800,300120,1,3723,5007,280,128,100,125,30,85,186,55,10,12,2,6,47,0x37B5,150,151,288,360,236400,10000,607,5500,617,2250,616,450,1422,10,617,2500,607,2500,15032,500,12738,3500,518,2500,969,2000,0,0,0,0,4520,1 -2157,G_BANASPATY,Banaspaty,Banaspaty,85,4680,0,0,0,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x37B5,220,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2151,ALNOLDI,Alnoldi,Rafflesia Alnoldi,80,5149,0,1399,1280,1,378,447,80,20,1,32,24,61,85,30,10,12,1,3,22,0x3895,300,768,768,576,0,0,0,0,0,0,0,705,250,520,425,905,4500,711,300,521,250,2269,100,0,0,0,0,0,0,4515,1 +2152,COMODO,Comodo,Comodo,81,4002,0,1072,1581,1,427,469,92,11,50,52,35,20,94,48,10,12,1,2,65,0x3895,165,432,432,360,0,0,0,0,0,0,0,6403,5000,517,9000,911,9000,908,5000,0,0,0,0,0,0,0,0,0,0,4516,1 +2153,CENDRAWASIH,Cendrawasih,Cendrawasih,84,5556,0,2612,2687,1,297,467,72,33,50,77,51,58,92,45,10,12,1,8,23,0x3895,220,768,768,576,0,0,0,0,0,0,0,6405,9000,7063,8000,916,9000,0,0,0,0,0,0,0,0,0,0,0,0,4517,1 +2154,BANASPATY,Banaspaty,Banaspaty,85,4680,0,1164,1688,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x3895,220,1872,672,480,0,0,0,0,0,0,0,1003,1000,912,2000,985,1500,756,1500,1752,500,0,0,0,0,0,0,0,0,4518,1 +2155,BUTOIJO,Butoijo,Butoijo,88,7524,0,1355,1752,1,358,460,77,12,50,65,30,30,106,44,10,12,2,6,43,0x4995,200,1100,483,528,0,0,0,0,0,0,0,938,2750,537,500,520,450,0,0,0,0,0,0,0,0,0,0,0,0,4519,1 +2156,LEAK,Leak,Leak,94,1266000,0,472800,300120,1,3723,5007,280,128,100,125,30,85,186,55,10,12,2,6,47,0x37B5,150,151,288,360,236400,607,5500,617,2250,616,450,1422,10,617,2500,607,2500,15032,500,12738,3500,518,2500,969,2000,0,0,0,0,4520,1 +2157,G_BANASPATY,Banaspaty,Banaspaty,85,4680,0,0,0,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x37B5,220,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Homunculus S Summons -2158,S_HORNET,Hornet,Hornet,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2159,S_GIANT_HORNET,Giant Hornet,Giant Hornet,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2160,S_LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2158,S_HORNET,Hornet,Hornet,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2159,S_GIANT_HORNET,Giant Hornet,Giant Hornet,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2160,S_LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Nightmare Scaraba Hole -2161,I_HORN_SCARABA,Gold One-Horn Scaraba,Gold One-Horn Scaraba,130,204400,0,15660,12033,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,0,6324,10000,1433,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1 -2162,I_HORN_SCARABA2,Gold Two-Horn Scaraba,Gold Two-Horn Scaraba,134,235600,0,17340,13647,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,0,6323,10000,13061,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1 -2163,I_ANTLER_SCARABA,Gold Antler Scaraba,Gold Antler Scaraba,136,250400,0,18990,15675,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x3795,220,76,384,288,0,0,0,0,0,0,0,0,6322,10000,1930,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1 -2164,I_RAKE_SCARABA,Gold Rake Scaraba,Gold Rake Scaraba,139,270800,0,20970,16785,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x3795,200,76,384,288,0,0,0,0,0,0,0,0,6321,10000,16010,4,12735,20,15000,20,993,4,0,0,0,0,0,0,0,0,4508,1 -2165,I_QUEEN_SCARABA,Gold Queen Scaraba,Gold Queen Scaraba,140,6441600,0,4102200,2122000,3,3778,6258,350,220,100,138,82,249,261,144,10,12,2,4,62,0x37B5,200,768,768,576,2051100,10000,616,5500,616,5000,616,2000,6326,10000,1191,2000,2364,2000,1196,800,18103,1000,0,0,0,0,0,0,0,0,4509,1 -2166,I_HORN_SCARABA_EGG,Gold One-Horn Scaraba Egg,Gold One-Horn Scaraba Egg,125,126000,0,12000,9000,1,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2167,I_HORN_SCARABA2_EGG,Gold Two-Horn Scaraba Egg,Gold Two-Horn Scaraba Egg,126,132000,0,12000,9000,1,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2168,I_ANTLER_SCARABA_EGG,Gold Antler Scaraba Egg,Gold Antler Scaraba Egg,127,138000,0,12000,9000,1,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2169,I_RAKE_SCARABA_EGG,Gold Rake Scaraba Egg,Gold Rake Scaraba Egg,128,144000,0,12000,9000,1,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,0,7032,10000,518,200,985,20,2153,20,0,0,0,0,0,0,0,0,0,0,0,0 -2170,I_G_ANTLER_SCARABA,Gold Antler Scaraba,Gold Antler Scaraba,136,250400,0,0,0,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x37B5,220,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2171,I_G_RAKE_SCARABA,Gold Rake Scaraba,Gold Rake Scaraba,139,270800,0,0,0,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x37B5,200,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2172,I_G_HORN_SCARABA,Gold One-Horn Scaraba,Gold One-Horn Scaraba,130,204400,0,0,0,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2173,I_G_HORN_SCARABA2,Gold Two-Horn Scaraba,Gold Two-Horn Scaraba,134,235600,0,0,0,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2161,I_HORN_SCARABA,Gold One-Horn Scaraba,Gold One-Horn Scaraba,130,204400,0,15660,12033,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,6324,10000,1433,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1 +2162,I_HORN_SCARABA2,Gold Two-Horn Scaraba,Gold Two-Horn Scaraba,134,235600,0,17340,13647,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,6323,10000,13061,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1 +2163,I_ANTLER_SCARABA,Gold Antler Scaraba,Gold Antler Scaraba,136,250400,0,18990,15675,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x3795,220,76,384,288,0,0,0,0,0,0,0,6322,10000,1930,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1 +2164,I_RAKE_SCARABA,Gold Rake Scaraba,Gold Rake Scaraba,139,270800,0,20970,16785,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x3795,200,76,384,288,0,0,0,0,0,0,0,6321,10000,16010,4,12735,20,15000,20,993,4,0,0,0,0,0,0,0,0,4508,1 +2165,I_QUEEN_SCARABA,Gold Queen Scaraba,Gold Queen Scaraba,140,6441600,0,4102200,2122000,3,3778,6258,350,220,100,138,82,249,261,144,10,12,2,4,62,0x37B5,200,768,768,576,2051100,616,5500,616,5000,616,2000,6326,10000,1191,2000,2364,2000,1196,800,18103,1000,0,0,0,0,0,0,0,0,4509,1 +2166,I_HORN_SCARABA_EGG,Gold One-Horn Scaraba Egg,Gold One-Horn Scaraba Egg,125,126000,0,12000,9000,1,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2167,I_HORN_SCARABA2_EGG,Gold Two-Horn Scaraba Egg,Gold Two-Horn Scaraba Egg,126,132000,0,12000,9000,1,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2168,I_ANTLER_SCARABA_EGG,Gold Antler Scaraba Egg,Gold Antler Scaraba Egg,127,138000,0,12000,9000,1,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2169,I_RAKE_SCARABA_EGG,Gold Rake Scaraba Egg,Gold Rake Scaraba Egg,128,144000,0,12000,9000,1,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,2153,20,0,0,0,0,0,0,0,0,0,0,0,0 +2170,I_G_ANTLER_SCARABA,Gold Antler Scaraba,Gold Antler Scaraba,136,250400,0,0,0,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x37B5,220,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2171,I_G_RAKE_SCARABA,Gold Rake Scaraba,Gold Rake Scaraba,139,270800,0,0,0,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x37B5,200,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2172,I_G_HORN_SCARABA,Gold One-Horn Scaraba,Gold One-Horn Scaraba,130,204400,0,0,0,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2173,I_G_HORN_SCARABA2,Gold Two-Horn Scaraba,Gold Two-Horn Scaraba,134,235600,0,0,0,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Malangdo Island -2174,MD_VADON,Deep Sea Vadon,Deep Sea Vadon,95,120000,0,1500,1500,1,710,1384,154,21,1,63,84,60,99,45,10,12,0,5,21,0x37B5,300,1632,432,540,0,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1 -2175,MD_MARSE,Deep Sea Marse,Deep Sea Marse,95,120000,0,1500,1500,1,740,1456,58,218,1,51,75,30,99,30,10,12,0,5,41,0x37B5,300,1956,756,528,0,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1 -2176,MD_CRAB,Deep Sea Crab,Deep Sea Crab,95,120000,0,1500,1500,1,600,1176,136,15,54,42,72,21,84,45,7,12,0,5,21,0x37B5,200,992,792,360,0,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1 -2177,MD_CORNUTUS,Deep Sea Cornutus,Deep Sea Cornutus,100,160000,0,1500,1500,1,715,1392,342,48,1,81,135,48,51,45,10,12,0,5,21,0x37B5,200,1248,48,480,0,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1 -2178,MD_SHELLFISH,Deep Sea Shellfish,Deep Sea Shellfish,100,160000,0,1500,1500,1,740,1408,43,215,1,33,144,75,78,30,10,12,0,5,21,0x37B5,200,864,864,384,0,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1 -2179,MD_KUKRE,Deep Sea Kukre,Deep Sea Kukre,100,160000,0,1500,1500,1,595,1160,123,33,1,90,66,60,96,60,10,12,0,5,21,0x37B5,150,1776,576,288,0,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1 -2180,MD_STROUF,Deep Sea Strouf,Deep Sea Strouf,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2181,MD_SWORD_FISH,Deep Sea Sword Fish,Deep Sea Sword Fish,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2182,MD_MARC,Deep Sea Marc,Deep Sea Marc,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2183,MD_ANOLIAN,Deep Sea Anolian,Deep Sea Anolian,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2184,MD_OBEAUNE,Deep Sea Obeaune,Deep Sea Obeaune,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2185,MD_KAPHA,Deep Sea Kapha,Deep Sea Kapha,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2186,COELACANTH_N_E,Coelacanth,Coelacanth,100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2187,COELACANTH_N_A,Dark Coelacanth,Dark Coelacanth,100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4527,1 -2188,COELACANTH_N_M,Weird Coelacanth,Weird Coelacanth,100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4526,1 -2189,COELACANTH_H_M,Mutant Coelacanth,Mutant Coelacanth,140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4528,1 -2190,COELACANTH_H_A,Violent Coelacanth,Violent Coelacanth,140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4529,1 -2191,MD_SEAWEED,Seaweed,Seaweed,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2192,MD_OCTOPUS,Octopus,Octopus,90,6000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x3795,150,768,768,576,0,0,0,0,0,0,0,0,1024,3000,962,3000,12615,10,0,0,0,0,0,0,0,0,0,0,0,0,4533,1 -2193,MD_OCTOPUS_LEG,Octopus Leg,Octopus Leg,90,500000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x1A4,400,768,768,576,0,0,0,0,0,0,0,0,12613,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2194,MD_GIANT_OCTOPUS,Giant Octupus,Giant Octopus,95,500000,0,40000,20000,2,1900,2850,154,21,100,50,50,150,150,50,10,12,2,5,41,0x37B5,400,768,768,576,0,0,0,0,0,0,0,0,12615,7000,12615,3000,12614,3000,12617,1000,12642,1000,12623,500,0,0,0,0,0,0,4534,1 -2195,MD_G_KUKRE,Kukre,Kukre,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2196,MD_G_STROUF,Strouf,Strouf,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2197,RED_ERUMA,Red Eruma,Red Eruma,91,9900,0,1909,1909,1,620,930,102,102,1,75,40,40,75,30,10,12,1,5,41,0x89,150,768,768,576,0,0,0,0,0,0,0,0,6426,7000,965,4000,966,4000,1056,2000,757,200,756,50,603,10,0,0,0,0,4531,1 -2198,KING_DRAMOH,King Dramoh,King Dramoh,117,28800,0,3350,1300,1,1320,1848,480,22,100,70,30,50,100,70,10,12,2,5,41,0x37B5,120,432,432,360,0,0,0,0,0,0,0,0,960,7000,943,3000,7938,500,995,100,6256,100,1523,1,13035,1,0,0,0,0,4524,1 -2199,SIORAVA,Siorava,Siorava,87,6500,0,1200,1200,1,450,675,20,40,1,30,25,55,60,30,10,12,0,0,21,0x83,200,1872,672,480,0,0,0,0,0,0,0,0,958,7000,7071,3000,7005,1000,932,1000,12624,500,1202,10,13034,1,0,0,0,0,4530,1 +2174,MD_VADON,Deep Sea Vadon,Deep Sea Vadon,95,120000,0,1500,1500,1,710,1384,154,21,1,63,84,60,99,45,10,12,0,5,21,0x37B5,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1 +2175,MD_MARSE,Deep Sea Marse,Deep Sea Marse,95,120000,0,1500,1500,1,740,1456,58,218,1,51,75,30,99,30,10,12,0,5,41,0x37B5,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1 +2176,MD_CRAB,Deep Sea Crab,Deep Sea Crab,95,120000,0,1500,1500,1,600,1176,136,15,54,42,72,21,84,45,7,12,0,5,21,0x37B5,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1 +2177,MD_CORNUTUS,Deep Sea Cornutus,Deep Sea Cornutus,100,160000,0,1500,1500,1,715,1392,342,48,1,81,135,48,51,45,10,12,0,5,21,0x37B5,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1 +2178,MD_SHELLFISH,Deep Sea Shellfish,Deep Sea Shellfish,100,160000,0,1500,1500,1,740,1408,43,215,1,33,144,75,78,30,10,12,0,5,21,0x37B5,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1 +2179,MD_KUKRE,Deep Sea Kukre,Deep Sea Kukre,100,160000,0,1500,1500,1,595,1160,123,33,1,90,66,60,96,60,10,12,0,5,21,0x37B5,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1 +2180,MD_STROUF,Deep Sea Strouf,Deep Sea Strouf,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2181,MD_SWORD_FISH,Deep Sea Sword Fish,Deep Sea Sword Fish,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2182,MD_MARC,Deep Sea Marc,Deep Sea Marc,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2183,MD_ANOLIAN,Deep Sea Anolian,Deep Sea Anolian,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2184,MD_OBEAUNE,Deep Sea Obeaune,Deep Sea Obeaune,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2185,MD_KAPHA,Deep Sea Kapha,Deep Sea Kapha,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2186,COELACANTH_N_E,Coelacanth,Coelacanth,100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2187,COELACANTH_N_A,Dark Coelacanth,Dark Coelacanth,100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4527,1 +2188,COELACANTH_N_M,Weird Coelacanth,Weird Coelacanth,100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4526,1 +2189,COELACANTH_H_M,Mutant Coelacanth,Mutant Coelacanth,140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4528,1 +2190,COELACANTH_H_A,Violent Coelacanth,Violent Coelacanth,140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4529,1 +2191,MD_SEAWEED,Seaweed,Seaweed,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2192,MD_OCTOPUS,Octopus,Octopus,90,6000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x3795,150,768,768,576,0,0,0,0,0,0,0,1024,3000,962,3000,12615,10,0,0,0,0,0,0,0,0,0,0,0,0,4533,1 +2193,MD_OCTOPUS_LEG,Octopus Leg,Octopus Leg,90,500000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x1A4,400,768,768,576,0,0,0,0,0,0,0,12613,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2194,MD_GIANT_OCTOPUS,Giant Octupus,Giant Octopus,95,500000,0,40000,20000,2,1900,2850,154,21,100,50,50,150,150,50,10,12,2,5,41,0x37B5,400,768,768,576,0,0,0,0,0,0,0,12615,7000,12615,3000,12614,3000,12617,1000,12642,1000,12623,500,0,0,0,0,0,0,4534,1 +2195,MD_G_KUKRE,Kukre,Kukre,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2196,MD_G_STROUF,Strouf,Strouf,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2197,RED_ERUMA,Red Eruma,Red Eruma,91,9900,0,1909,1909,1,620,930,102,102,1,75,40,40,75,30,10,12,1,5,41,0x89,150,768,768,576,0,0,0,0,0,0,0,6426,7000,965,4000,966,4000,1056,2000,757,200,756,50,603,10,0,0,0,0,4531,1 +2198,KING_DRAMOH,King Dramoh,King Dramoh,117,28800,0,3350,1300,1,1320,1848,480,22,100,70,30,50,100,70,10,12,2,5,41,0x37B5,120,432,432,360,0,0,0,0,0,0,0,960,7000,943,3000,7938,500,995,100,6256,100,1523,1,13035,1,0,0,0,0,4524,1 +2199,SIORAVA,Siorava,Siorava,87,6500,0,1200,1200,1,450,675,20,40,1,30,25,55,60,30,10,12,0,0,21,0x83,200,1872,672,480,0,0,0,0,0,0,0,958,7000,7071,3000,7005,1000,932,1000,12624,500,1202,10,13034,1,0,0,0,0,4530,1 // Izlude Dungeon F6 -//2200,J_TAINI,Taini,Taini,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2201,SROPHO,Sropho,Sropho,113,24002,0,1934,1900,1,571,856,44,91,100,50,30,70,90,30,10,12,1,5,41,0x3795,135,700,600,360,0,0,0,0,0,0,0,0,951,7000,7938,500,756,250,12012,25,1971,25,1972,10,0,0,0,0,0,0,4522,1 -2202,KRAKEN,Kraken,Kraken,124,5602800,0,983332,961111,3,3823,4969,55,229,150,150,150,180,180,150,10,12,2,5,81,0x37B5,150,768,768,576,491666,10000,607,5500,617,2250,616,450,962,9000,1422,1000,1484,500,1131,300,2347,100,7444,5000,0,0,0,0,0,0,4525,1 -2203,POT_DOFLE,Pot Dofle,Pot Dofle,115,25211,0,2650,1350,1,1088,1632,122,55,100,50,50,70,100,30,10,12,0,5,41,0x1089,135,768,768,576,0,0,0,0,0,0,0,0,1056,3000,7013,1000,1024,500,6257,100,969,2,617,1,0,0,0,0,0,0,4523,1 -2204,SEDORA,Sedora,Sedora,110,22050,0,1853,1739,1,758,1137,92,55,100,50,50,30,70,30,10,12,1,5,41,0x3795,120,504,960,576,0,0,0,0,0,0,0,0,962,5000,1024,5000,6256,100,7939,100,2424,10,603,5,0,0,0,0,0,0,4521,1 -//2205,TACNU,Tacnu,Tacnu,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2206,KRAKEN_LEG,Kraken Leg,Kraken Leg,124,39190,0,0,0,2,1685,2190,128,158,100,100,100,130,130,100,10,12,2,5,81,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,7565,10,6253,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -//2207,RACARCH,Racarch,Racarch,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2208,WILD_RIDER,Wild Rider,Wild Rider,95,33300,0,8300,3300,1,1320,1848,480,22,100,100,30,70,100,30,10,12,2,5,41,0x37B5,150,432,432,360,0,0,0,0,0,0,0,0,956,7000,12624,7000,720,4000,995,2000,7938,1000,617,1000,0,0,0,0,0,0,4532,1 +//2200,J_TAINI,Taini,Taini,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2201,SROPHO,Sropho,Sropho,113,24002,0,1934,1900,1,571,856,44,91,100,50,30,70,90,30,10,12,1,5,41,0x3795,135,700,600,360,0,0,0,0,0,0,0,951,7000,7938,500,756,250,12012,25,1971,25,1972,10,0,0,0,0,0,0,4522,1 +2202,KRAKEN,Kraken,Kraken,124,5602800,0,983332,961111,3,3823,4969,55,229,150,150,150,180,180,150,10,12,2,5,81,0x37B5,150,768,768,576,491666,607,5500,617,2250,616,450,962,9000,1422,1000,1484,500,1131,300,2347,100,7444,5000,0,0,0,0,0,0,4525,1 +2203,POT_DOFLE,Pot Dofle,Pot Dofle,115,25211,0,2650,1350,1,1088,1632,122,55,100,50,50,70,100,30,10,12,0,5,41,0x1089,135,768,768,576,0,0,0,0,0,0,0,1056,3000,7013,1000,1024,500,6257,100,969,2,617,1,0,0,0,0,0,0,4523,1 +2204,SEDORA,Sedora,Sedora,110,22050,0,1853,1739,1,758,1137,92,55,100,50,50,30,70,30,10,12,1,5,41,0x3795,120,504,960,576,0,0,0,0,0,0,0,962,5000,1024,5000,6256,100,7939,100,2424,10,603,5,0,0,0,0,0,0,4521,1 +//2205,TACNU,Tacnu,Tacnu,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2206,KRAKEN_LEG,Kraken Leg,Kraken Leg,124,39190,0,0,0,2,1685,2190,128,158,100,100,100,130,130,100,10,12,2,5,81,0x37B5,150,768,768,576,0,0,0,0,0,0,0,7565,10,6253,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +//2207,RACARCH,Racarch,Racarch,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2208,WILD_RIDER,Wild Rider,Wild Rider,95,33300,0,8300,3300,1,1320,1848,480,22,100,100,30,70,100,30,10,12,2,5,41,0x37B5,150,432,432,360,0,0,0,0,0,0,0,956,7000,12624,7000,720,4000,995,2000,7938,1000,617,1000,0,0,0,0,0,0,4532,1 // Additional Monsters -2209,E_THIEF_BUG,Thief Bug,Thief Bug,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2210,XMAS_LUNATIC,Xmas Lunatic,Christmas Lunatic,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2211,E_TEDDY_BEAR,Teddy Bear,Teddy Bear,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2212,E_KNIGHT_OF_WINDSTORM,Knight of Windstorm,Stormy Knight,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2213,M_WANDER_MAN,Wander Man,Wanderer,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2214,M_WICKED_NYMPH,Wicked Nymph,Evil Nymph,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2215,M_KASA,Kasa,Kasa,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2216,M_SALAMANDER,Salamander,Salamander,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2217,M_TEDDY_BEAR,Teddy Bear,Teddy Bear,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2218,E_OCTOPUS_LEG,Octopus Leg,Octopus Tentacle,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2219,E_GIANT_OCTOPUS,Giant Octopus,Giant Octopus,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2220,E_QUVE,Quve,Quve,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2209,E_THIEF_BUG,Thief Bug,Thief Bug,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2210,XMAS_LUNATIC,Xmas Lunatic,Christmas Lunatic,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2211,E_TEDDY_BEAR,Teddy Bear,Teddy Bear,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2212,E_KNIGHT_OF_WINDSTORM,Knight of Windstorm,Stormy Knight,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2213,M_WANDER_MAN,Wander Man,Wanderer,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2214,M_WICKED_NYMPH,Wicked Nymph,Evil Nymph,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2215,M_KASA,Kasa,Kasa,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2216,M_SALAMANDER,Salamander,Salamander,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2217,M_TEDDY_BEAR,Teddy Bear,Teddy Bear,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2218,E_OCTOPUS_LEG,Octopus Leg,Octopus Tentacle,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2219,E_GIANT_OCTOPUS,Giant Octopus,Giant Octopus,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2220,E_QUVE,Quve,Quve,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Lighthalzen Biolab F4 -2221,RANDEL,Randel,Randel,141,478745,0,32367,24055,1,3055,4277,180,56,142,69,86,49,132,55,10,12,1,7,66,0x3095,170,76,384,288,0,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,617,10,1435,1,2162,1,0,0,0,0,0,0 -2222,FLAMEL,Flamel,Flamel,141,316468,0,31166,21445,1,1074,1503,93,40,138,79,62,53,82,48,10,12,1,7,63,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,984,100,617,10,16010,10,15044,1,0,0,0,0,0,0 -2223,CELIA,Celia,Celia,141,253145,0,22107,19017,1,1612,2256,74,312,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,1654,10,2853,10,18111,1,0,0,0,0,0,0 -2224,CHEN,Chen,Chen,141,218721,2000,25684,19810,1,2501,3501,125,56,126,74,71,123,99,65,10,12,1,6,81,0x3295,180,1152,384,288,0,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1814,10,1659,1,0,0,0,0,0,0 -2225,GERTIE,Gertie,Gertie,141,266926,0,24267,20233,1,3684,5157,108,10,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,617,10,13061,10,18109,1,0,0,0,0,0,0 -2226,ALPHOCCIO,Alphoccio,Alphoccio,142,256202,0,22192,20322,1,1273,1782,84,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1930,10,2161,1,0,0,0,0,0,0 -2227,TRENTINI,Trentini,Trentini,142,204962,0,15995,13248,1,1070,1498,70,12,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,1984,10,2465,10,2892,1,0,0,0,0,0,0 -2228,G_RANDEL,Paladin Randel,Paladin Randel,160,3870000,0,18000,10000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2229,G_FLAMEL,Creator Flamel,Creator Flamel,160,2230000,0,18000,10000,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2230,G_CELIA,Professor Celia,Professor Celia,160,1847804,0,18000,10000,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2231,G_CHEN,Champion Chen,Champion Chen,160,2249350,5000,18000,10000,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2232,G_GERTIE,Stalker Gertie,Stalker Gertie,160,2057279,0,18000,10000,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2233,G_ALPHOCCIO,Clown Alphoccio,Clown Alphoccio,160,1894278,0,18000,10000,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2234,G_TRENTINI,Gypsy Trentini,Gypsy Trentini,160,1894278,0,18000,10000,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2235,B_RANDEL,Paladin Randel,Paladin Randel,160,6870000,0,4621500,2664000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,2310750,10000,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13062,5000,2160,5000,1490,5000,0,0,0,0,0,0 -2236,B_FLAMEL,Creator Flamel,Creator Flamel,160,4230000,0,5223570,2630354,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,2611785,10000,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1387,5000,1392,5000,1393,5000,0,0,0,0,0,0 -2237,B_CELIA,Professor Celia,Professor Celia,160,3847804,0,5027308,2509792,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,2513654,10000,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,2854,5000,1584,5000,2582,5000,0,0,0,0,0,0 -2238,B_CHEN,Champion Chen,Champion Chen,160,4249350,5000,5113568,2934974,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,2556784,10000,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1285,5000,1813,5000,16017,5000,0,0,0,0,0,0 -2239,B_GERTIE,Stalker Gertie,Stalker Gertie,160,4057279,0,4420698,2691274,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,2210349,10000,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13069,5000,13070,5000,1291,5000,0,0,0,0,0,0 -2240,B_ALPHOCCIO,Clown Alphoccio,Clown Alphoccio,160,3894278,0,4226036,2468972,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2113018,10000,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,18103,5000,1290,5000,1913,5000,0,0,0,0,0,0 -2241,B_TRENTINI,Gypsy Trentini,Gypsy Trentini,160,3894278,0,4463758,2563096,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2231879,10000,0,0,0,0,0,0,12623,9000,12616,9000,616,9000,6224,9000,18103,5000,18110,5000,1963,5000,0,0,0,0,0,0 -2242,MD_DESERT_WOLF,Desert Wolf,Desert Wolf,135,551578,0,0,0,1,1040,1158,151,39,93,69,63,61,82,42,10,12,1,6,20,0x37B5,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2243,MD_DESERT_WOLF_B,Desert Wolf,Desert Wolf,130,274531,0,0,0,1,66,82,13,0,10,12,8,5,17,7,10,12,0,6,20,0x37B5,300,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2244,QUEST_CHEN,Champion Chen,Champion Chen,160,3481505,2000,4409293,4689861,1,1700,3000,201,543,126,74,71,123,99,65,10,12,1,7,68,0x37B5,180,1152,384,288,2204693,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2245,EXP_TEST,Exp Test,Exp Test,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2246,Q_WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2247,Q_INCREASE_SOIL,Increase Soil,Mi Gao,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2248,GOLDPORING,Gold Poring,Gold Poring,1,15,0,0,0,1,1,2,160,5,1,1,1,1,6,30,10,12,1,3,21,0xC3,400,1872,672,480,0,0,0,0,0,0,0,0,7602,3000,7470,3000,6012,3000,6485,3000,6486,3000,6487,3000,6487,3000,0,0,0,0,0,0 +2221,RANDEL,Randel,Randel,141,478745,0,32367,24055,1,3055,4277,180,56,142,69,86,49,132,55,10,12,1,7,66,0x3095,170,76,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,617,10,1435,1,2162,1,0,0,0,0,0,0 +2222,FLAMEL,Flamel,Flamel,141,316468,0,31166,21445,1,1074,1503,93,40,138,79,62,53,82,48,10,12,1,7,63,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,984,100,617,10,16010,10,15044,1,0,0,0,0,0,0 +2223,CELIA,Celia,Celia,141,253145,0,22107,19017,1,1612,2256,74,312,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,1654,10,2853,10,18111,1,0,0,0,0,0,0 +2224,CHEN,Chen,Chen,141,218721,2000,25684,19810,1,2501,3501,125,56,126,74,71,123,99,65,10,12,1,6,81,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1814,10,1659,1,0,0,0,0,0,0 +2225,GERTIE,Gertie,Gertie,141,266926,0,24267,20233,1,3684,5157,108,10,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,617,10,13061,10,18109,1,0,0,0,0,0,0 +2226,ALPHOCCIO,Alphoccio,Alphoccio,142,256202,0,22192,20322,1,1273,1782,84,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1930,10,2161,1,0,0,0,0,0,0 +2227,TRENTINI,Trentini,Trentini,142,204962,0,15995,13248,1,1070,1498,70,12,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,1984,10,2465,10,2892,1,0,0,0,0,0,0 +2228,G_RANDEL,Paladin Randel,Paladin Randel,160,3870000,0,18000,10000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2229,G_FLAMEL,Creator Flamel,Creator Flamel,160,2230000,0,18000,10000,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2230,G_CELIA,Professor Celia,Professor Celia,160,1847804,0,18000,10000,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2231,G_CHEN,Champion Chen,Champion Chen,160,2249350,5000,18000,10000,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2232,G_GERTIE,Stalker Gertie,Stalker Gertie,160,2057279,0,18000,10000,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2233,G_ALPHOCCIO,Clown Alphoccio,Clown Alphoccio,160,1894278,0,18000,10000,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2234,G_TRENTINI,Gypsy Trentini,Gypsy Trentini,160,1894278,0,18000,10000,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2235,B_RANDEL,Paladin Randel,Paladin Randel,160,6870000,0,4621500,2664000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,2310750,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13062,5000,2160,5000,1490,5000,0,0,0,0,0,0 +2236,B_FLAMEL,Creator Flamel,Creator Flamel,160,4230000,0,5223570,2630354,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,2611785,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1387,5000,1392,5000,1393,5000,0,0,0,0,0,0 +2237,B_CELIA,Professor Celia,Professor Celia,160,3847804,0,5027308,2509792,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,2513654,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,2854,5000,1584,5000,2582,5000,0,0,0,0,0,0 +2238,B_CHEN,Champion Chen,Champion Chen,160,4249350,5000,5113568,2934974,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,2556784,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1285,5000,1813,5000,16017,5000,0,0,0,0,0,0 +2239,B_GERTIE,Stalker Gertie,Stalker Gertie,160,4057279,0,4420698,2691274,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,2210349,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13069,5000,13070,5000,1291,5000,0,0,0,0,0,0 +2240,B_ALPHOCCIO,Clown Alphoccio,Clown Alphoccio,160,3894278,0,4226036,2468972,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2113018,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,18103,5000,1290,5000,1913,5000,0,0,0,0,0,0 +2241,B_TRENTINI,Gypsy Trentini,Gypsy Trentini,160,3894278,0,4463758,2563096,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2231879,0,0,0,0,0,0,12623,9000,12616,9000,616,9000,6224,9000,18103,5000,18110,5000,1963,5000,0,0,0,0,0,0 +2242,MD_DESERT_WOLF,Desert Wolf,Desert Wolf,135,551578,0,0,0,1,1040,1158,151,39,93,69,63,61,82,42,10,12,1,6,20,0x37B5,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2243,MD_DESERT_WOLF_B,Desert Wolf,Desert Wolf,130,274531,0,0,0,1,66,82,13,0,10,12,8,5,17,7,10,12,0,6,20,0x37B5,300,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2244,QUEST_CHEN,Champion Chen,Champion Chen,160,3481505,2000,4409293,4689861,1,1700,3000,201,543,126,74,71,123,99,65,10,12,1,7,68,0x37B5,180,1152,384,288,2204693,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2245,EXP_TEST,Exp Test,Exp Test,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2246,Q_WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2247,Q_INCREASE_SOIL,Increase Soil,Mi Gao,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2248,GOLDPORING,Gold Poring,Gold Poring,1,15,0,0,0,1,1,2,160,5,1,1,1,1,6,30,10,12,1,3,21,0xC3,400,1872,672,480,0,0,0,0,0,0,0,7602,3000,7470,3000,6012,3000,6485,3000,6486,3000,6487,3000,6487,3000,0,0,0,0,0,0 // Hall of Abyss Guild Dungeon -2249,PYURIEL,Pyuriel,Pyuriel,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2250,LORA,Lora,Lora,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2251,GIOIA,Gioia,Gioia,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2252,ELVIRA,Elvira,Elvira,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2253,DAEHYON,Daehyon,Daehyon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2254,SOHEON,Soheon,Soheon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2255,KADES,Kades,Kades,143,2466698,0,0,0,1,700,1000,479,262,100,100,100,100,100,100,10,12,2,0,67,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2256,RUDO,Rudo,Rudo,135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2257,I_PIAMETTE,Piamette,Piamette,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2258,I_PIAMETTE_,Piamette,Piamette,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2259,I_GARDEN_KEEPER,Garden Keeper,Garden Keeper,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2260,G_GARDEN_KEEPER,Garden Keeper,Garden Keeper,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2261,I_GARDEN_WATCHER,Garden Watcher,Garden Watcher,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2262,G_GARDEN_WATCHER,Garden Watcher,Garden Watcher,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2263,I_WISH_MAIDEN,Wish Maiden,Wish Maiden,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2264,I_ARMAIA,Armaia,Armeyer Dinze,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2265,I_ARMAIA_,Armaia,Armeyer Dinze,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2266,I_EREND,Erend,Errende Ebecee,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2267,I_EREND_,Erend,Errende Ebecee,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2268,I_KAVAC,Kavac,Kavach Icarus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2269,I_KAVAC_,Kavac,Kavach Icarus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2270,I_RAWREL,Rawrel,Laurell Weinder,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2271,I_RAWREL_,Rawrel,Laurell Weinder,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2272,I_WHIKEBAIN,Whikebain,Wickebine Tres,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2273,I_WHIKEBAIN_,Whikebain,Wickebine Tres,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2274,I_YGNIZEM,Ygnizem,Egnigem Cenia,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2275,I_YGNIZEM_,Ygnizem,Egnigem Cenia,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2276,I_DOPPELGANGER,Doppelganger,Doppelganger,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2277,G_LORA,Lora,Lora,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2278,G_ELVIRA,Elvira,Elvira,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2279,G_SOHEON,Soheon,Soheon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2280,G_RUDO,Rudo,Rudo,135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2281,GLD_DARK_SHADOW,Abysmal Dark Shadow,Abysmal Dark Shadow,147,214109,0,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,87,0x37B5,220,768,1776,648,0,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1 -2282,GLD_DARK_FRAME,Abysmal Dark Frame,Abysmal Dark Frame,145,200018,0,992,1115,1,318,348,81,37,69,37,36,10,53,5,10,12,1,6,67,0x37B5,200,920,720,200,0,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1 -2283,GLD_DARK_PRIEST,Abysmal Dark Priest,Abysmal Dark Priest,141,191878,0,2430,1667,2,355,554,62,41,5,60,41,89,78,42,10,12,1,6,89,0x37B5,200,864,1252,476,0,0,0,0,0,0,0,0,1557,5,2626,30,505,100,716,450,1009,50,2319,5,1241,1,0,0,0,0,4171,1 -2284,GLD_KOBOLD_1,Abysmal Kobold,Abysmal Kobold,143,180483,0,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x37B5,150,1028,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 -2285,GLD_KOBOLD_2,Abysmal Kobold,Abysmal Kobold,142,181340,0,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x37B5,200,1528,528,360,0,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1 -2286,GLD_KOBOLD_3,Abysmal Kobold,Abysmal Kobold,141,182830,0,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x37B5,300,1228,528,360,0,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1 -2287,GLD_KOBOLD_ARCHER,Abysmal Kobold Archer,Abysmal Kobold Archer,142,180530,0,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x37B5,200,1008,1008,384,0,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1 -2288,GLD_TREASURE,Treasure Chest,Treasure Chest,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2249,PYURIEL,Pyuriel,Pyuriel,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2250,LORA,Lora,Lora,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2251,GIOIA,Gioia,Gioia,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2252,ELVIRA,Elvira,Elvira,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2253,DAEHYON,Daehyon,Daehyon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2254,SOHEON,Soheon,Soheon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2255,KADES,Kades,Kades,143,2466698,0,0,0,1,700,1000,479,262,100,100,100,100,100,100,10,12,2,0,67,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2256,RUDO,Rudo,Rudo,135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2257,I_PIAMETTE,Piamette,Piamette,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2258,I_PIAMETTE_,Piamette,Piamette,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2259,I_GARDEN_KEEPER,Garden Keeper,Garden Keeper,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2260,G_GARDEN_KEEPER,Garden Keeper,Garden Keeper,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2261,I_GARDEN_WATCHER,Garden Watcher,Garden Watcher,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2262,G_GARDEN_WATCHER,Garden Watcher,Garden Watcher,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2263,I_WISH_MAIDEN,Wish Maiden,Wish Maiden,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2264,I_ARMAIA,Armaia,Armeyer Dinze,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2265,I_ARMAIA_,Armaia,Armeyer Dinze,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2266,I_EREND,Erend,Errende Ebecee,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2267,I_EREND_,Erend,Errende Ebecee,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2268,I_KAVAC,Kavac,Kavach Icarus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2269,I_KAVAC_,Kavac,Kavach Icarus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2270,I_RAWREL,Rawrel,Laurell Weinder,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2271,I_RAWREL_,Rawrel,Laurell Weinder,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2272,I_WHIKEBAIN,Whikebain,Wickebine Tres,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2273,I_WHIKEBAIN_,Whikebain,Wickebine Tres,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2274,I_YGNIZEM,Ygnizem,Egnigem Cenia,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2275,I_YGNIZEM_,Ygnizem,Egnigem Cenia,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2276,I_DOPPELGANGER,Doppelganger,Doppelganger,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2277,G_LORA,Lora,Lora,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2278,G_ELVIRA,Elvira,Elvira,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2279,G_SOHEON,Soheon,Soheon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2280,G_RUDO,Rudo,Rudo,135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2281,GLD_DARK_SHADOW,Abysmal Dark Shadow,Abysmal Dark Shadow,147,214109,0,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,87,0x37B5,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1 +2282,GLD_DARK_FRAME,Abysmal Dark Frame,Abysmal Dark Frame,145,200018,0,992,1115,1,318,348,81,37,69,37,36,10,53,5,10,12,1,6,67,0x37B5,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1 +2283,GLD_DARK_PRIEST,Abysmal Dark Priest,Abysmal Dark Priest,141,191878,0,2430,1667,2,355,554,62,41,5,60,41,89,78,42,10,12,1,6,89,0x37B5,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2626,30,505,100,716,450,1009,50,2319,5,1241,1,0,0,0,0,4171,1 +2284,GLD_KOBOLD_1,Abysmal Kobold,Abysmal Kobold,143,180483,0,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x37B5,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 +2285,GLD_KOBOLD_2,Abysmal Kobold,Abysmal Kobold,142,181340,0,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x37B5,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1 +2286,GLD_KOBOLD_3,Abysmal Kobold,Abysmal Kobold,141,182830,0,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x37B5,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1 +2287,GLD_KOBOLD_ARCHER,Abysmal Kobold Archer,Abysmal Kobold Archer,142,180530,0,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x37B5,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1 +2288,GLD_TREASURE,Treasure Chest,Treasure Chest,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Additional Monsters -2289,E_FABRE,Fabre,Fabre,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2290,J_THIEF_BUG,Thief Bug,Thief Bug,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2291,E_HORNET,Hornet,Hornet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2292,E_HORN,Horn,Horn,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2293,E_KIND_OF_BEETLE,Beetle King,Beetle King,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2294,E_ARGIOPE,Argiope,Argiope,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2295,E_GIANT_SPIDER,Giant Spider,Giant Spider,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2296,E_KILLER_MANTIS,Killer Mantis,Killer Mantis,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2297,E_GIANT_HONET,Giant Hornet,Giant Hornet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2298,E_DRAGON_TAIL,Dragon Tail,Dragon Tail,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2299,E_STAINER,Stainer,Stainer,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2300,E_CHONCHON,Chonchon,Chonchon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2301,E_STEEL_CHONCHON,Steel Chonchon,Steel Chonchon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2302,E_HUNTER_FLY,Hunter Fly,Hunter Fly,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2303,E_MAYA,Maya,Maya,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2304,E_QUEEN_SCARABA,Queen Scaraba,Queen Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2305,E_UNGOLIANT,Ungoliant,Ungoliant,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2306,E_GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2307,J_MISTRESS,Mistress,Mistress,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2308,KO_ZANZOU,Zanzou,Zanzou,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2289,E_FABRE,Fabre,Fabre,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2290,J_THIEF_BUG,Thief Bug,Thief Bug,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2291,E_HORNET,Hornet,Hornet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2292,E_HORN,Horn,Horn,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2293,E_KIND_OF_BEETLE,Beetle King,Beetle King,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2294,E_ARGIOPE,Argiope,Argiope,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2295,E_GIANT_SPIDER,Giant Spider,Giant Spider,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2296,E_KILLER_MANTIS,Killer Mantis,Killer Mantis,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2297,E_GIANT_HONET,Giant Hornet,Giant Hornet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2298,E_DRAGON_TAIL,Dragon Tail,Dragon Tail,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2299,E_STAINER,Stainer,Stainer,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2300,E_CHONCHON,Chonchon,Chonchon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2301,E_STEEL_CHONCHON,Steel Chonchon,Steel Chonchon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2302,E_HUNTER_FLY,Hunter Fly,Hunter Fly,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2303,E_MAYA,Maya,Maya,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2304,E_QUEEN_SCARABA,Queen Scaraba,Queen Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2305,E_UNGOLIANT,Ungoliant,Ungoliant,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2306,E_GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2307,J_MISTRESS,Mistress,Mistress,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2308,KO_ZANZOU,Zanzou,Zanzou,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Malaya Port -2309,BUNGISNGIS,Bungisngis,Bungisngis,121,25513,0,1960,1650,1,851,1276,115,35,100,100,30,30,100,30,10,12,2,7,42,0x3795,200,1000,792,336,0,0,0,0,0,0,0,0,7054,2000,6510,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2310,ENGKANTO,Engkanto,Engkanto,125,23948,0,1723,1547,1,675,1012,101,41,100,100,30,30,125,30,10,12,1,7,40,0x3795,200,1000,792,336,0,0,0,0,0,0,0,0,7054,1000,6510,2000,528,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0 -2311,MANANANGGAL,Manananggal,Manananggal,107,20451,0,1415,1410,1,801,1201,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,0,6508,3000,6511,2000,6510,1000,7006,500,913,500,0,0,0,0,0,0,0,0,0,0 -2312,MANGKUKULAM,Mangkukulam,Mangkukulam,110,20151,0,1517,1351,1,582,873,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,0,7071,2000,6510,2000,6511,1000,7054,1000,12700,50,0,0,0,0,0,0,0,0,0,0 -2313,TIKBALANG,Tikbalang,Tikbalang,115,22131,0,1756,1351,1,781,1171,84,34,100,125,30,30,100,30,10,12,2,2,64,0x3795,150,1000,768,360,0,0,0,0,0,0,0,0,6496,500,12700,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2314,TIYANAK,Tiyanak,Tiyanak,105,17146,0,1314,1101,1,457,685,76,21,100,100,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,0,938,1000,6508,1500,6509,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2315,WAKWAK,Wakwak,Wakwak,111,20451,0,1374,1254,1,561,841,24,71,100,200,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,0,6508,4000,6509,2000,12700,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2316,JEJELING,Jejeling,Jejeling,100,10247,0,801,741,1,675,1012,100,26,100,100,30,30,100,30,10,12,2,3,42,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,6498,1000,909,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2317,BANGUNGOT_1,Bangungot,Bangungot,115,1519517,0,781541,761201,1,2561,3329,411,95,200,100,30,250,200,100,10,12,1,6,47,0x37B5,200,768,768,576,100,10000,607,5500,617,2250,616,450,6499,7000,6524,2000,6517,2000,2491,1000,0,0,0,0,0,0,0,0,0,0,0,0 -2318,BANGUNGOT_2,Bangungot,Bangungot,99,1519517,0,0,0,1,7,10,411,95,200,100,30,250,200,100,10,12,1,6,47,0x60,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2319,BUWAYA,Buwaya,Buwaya,151,4090365,0,3000012,2801564,1,3614,4698,201,78,200,250,30,250,150,100,10,12,2,9,81,0x37B5,100,432,432,360,100,10000,607,5500,617,2250,616,450,6499,7000,6525,2000,6518,2000,2590,1000,0,0,0,0,0,0,0,0,0,0,0,0 -2320,BAKONAWA_1,Bakonawa,Bakonawa,156,3351884,0,2510111,2345151,9,4801,6241,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,100,10000,607,5500,617,2250,616,450,6499,7000,6523,2000,6516,2000,15051,1000,0,0,0,0,0,0,0,0,0,0,0,0 -2321,BAKONAWA_2,Bakonawa,Bakonawa,156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2322,BAKONAWA_3,Bakonawa,Bakonawa,156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2323,EVENT_BOMB,Bomb Poring,Bomb Poring,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2324,EVENT_RANGE,Penomena,Penomena,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2325,M_BAPHOMET_,Baphomet,Baphomet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2326,M_GALAPAGO,Galapago,Galapago,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2327,BANGUNGOT_3,Bangungot,Bangungot,115,250,0,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x30F5,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2328,MA_DRUM,Drum,Drum,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2329,BUWAYA_EGG,Buwaya Egg,Buwaya Egg,100,10000,0,0,0,1,7,10,90,90,1,1,50,50,1,80,10,12,0,0,60,0x0,1000,24,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2330,BUWAYA_SLAVE,Buwaya Slave,Buwaya Slave,135,20145,0,0,0,1,2300,3100,105,71,100,50,70,50,100,30,10,12,0,3,22,0x3795,250,576,960,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2331,MA_SEAW,Seaweed,Seaweed,100,10,0,0,0,1,7,10,0,5,1,1,100,100,1,30,10,12,0,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2332,BUWAYA_GHOST,Fake Buwaya,Fake Buwaya,138,30000,0,30000,30000,1,2726,3398,481,78,150,200,30,200,100,100,10,12,0,3,81,0x37B5,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2333,BUWAYA_WEAK,Buwaya's Weakness,Buwaya's Weakness,138,20,0,0,0,1,7,10,100,78,1,1,1,1,6,30,10,12,0,3,81,0x60,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2334,G_WAKWAK,Wakwak,Wakwak,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2335,MA_TREASURE,Treasure Chest,Treasure Chest,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2336,DOMOVOI,Domovoi,Domovoi,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2337,HIDDEN_MOB,Hidden Mob,Hidden Mob,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2338,MD_MANANANGGAL,Bangungot Manananggal,Bangungot Manananggal,107,204511,0,0,0,1,901,1124,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2339,MD_MANGKUKULAM,Bangungot Mangkukulam,Bangungot Mangkukulam,110,102154,0,0,0,1,598,766,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2340,MD_TIYANAK,Tiyanak,Tiyanak,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2341,RWC_BOSS2011,RWC Boss,RWC Boss,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2309,BUNGISNGIS,Bungisngis,Bungisngis,121,25513,0,1960,1650,1,851,1276,115,35,100,100,30,30,100,30,10,12,2,7,42,0x3795,200,1000,792,336,0,0,0,0,0,0,0,7054,2000,6510,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2310,ENGKANTO,Engkanto,Engkanto,125,23948,0,1723,1547,1,675,1012,101,41,100,100,30,30,125,30,10,12,1,7,40,0x3795,200,1000,792,336,0,0,0,0,0,0,0,7054,1000,6510,2000,528,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0 +2311,MANANANGGAL,Manananggal,Manananggal,107,20451,0,1415,1410,1,801,1201,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,6508,3000,6511,2000,6510,1000,7006,500,913,500,0,0,0,0,0,0,0,0,0,0 +2312,MANGKUKULAM,Mangkukulam,Mangkukulam,110,20151,0,1517,1351,1,582,873,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,7071,2000,6510,2000,6511,1000,7054,1000,12700,50,0,0,0,0,0,0,0,0,0,0 +2313,TIKBALANG,Tikbalang,Tikbalang,115,22131,0,1756,1351,1,781,1171,84,34,100,125,30,30,100,30,10,12,2,2,64,0x3795,150,1000,768,360,0,0,0,0,0,0,0,6496,500,12700,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2314,TIYANAK,Tiyanak,Tiyanak,105,17146,0,1314,1101,1,457,685,76,21,100,100,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,938,1000,6508,1500,6509,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2315,WAKWAK,Wakwak,Wakwak,111,20451,0,1374,1254,1,561,841,24,71,100,200,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,6508,4000,6509,2000,12700,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2316,JEJELING,Jejeling,Jejeling,100,10247,0,801,741,1,675,1012,100,26,100,100,30,30,100,30,10,12,2,3,42,0x81,400,1872,672,480,0,0,0,0,0,0,0,6498,1000,909,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2317,BANGUNGOT_1,Bangungot,Bangungot,115,1519517,0,781541,761201,1,2561,3329,411,95,200,100,30,250,200,100,10,12,1,6,47,0x37B5,200,768,768,576,100,607,5500,617,2250,616,450,6499,7000,6524,2000,6517,2000,2491,1000,0,0,0,0,0,0,0,0,0,0,0,0 +2318,BANGUNGOT_2,Bangungot,Bangungot,99,1519517,0,0,0,1,7,10,411,95,200,100,30,250,200,100,10,12,1,6,47,0x60,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2319,BUWAYA,Buwaya,Buwaya,151,4090365,0,3000012,2801564,1,3614,4698,201,78,200,250,30,250,150,100,10,12,2,9,81,0x37B5,100,432,432,360,100,607,5500,617,2250,616,450,6499,7000,6525,2000,6518,2000,2590,1000,0,0,0,0,0,0,0,0,0,0,0,0 +2320,BAKONAWA_1,Bakonawa,Bakonawa,156,3351884,0,2510111,2345151,9,4801,6241,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,100,607,5500,617,2250,616,450,6499,7000,6523,2000,6516,2000,15051,1000,0,0,0,0,0,0,0,0,0,0,0,0 +2321,BAKONAWA_2,Bakonawa,Bakonawa,156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2322,BAKONAWA_3,Bakonawa,Bakonawa,156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2323,EVENT_BOMB,Bomb Poring,Bomb Poring,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2324,EVENT_RANGE,Penomena,Penomena,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2325,M_BAPHOMET_,Baphomet,Baphomet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2326,M_GALAPAGO,Galapago,Galapago,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2327,BANGUNGOT_3,Bangungot,Bangungot,115,250,0,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x30F5,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2328,MA_DRUM,Drum,Drum,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2329,BUWAYA_EGG,Buwaya Egg,Buwaya Egg,100,10000,0,0,0,1,7,10,90,90,1,1,50,50,1,80,10,12,0,0,60,0x0,1000,24,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2330,BUWAYA_SLAVE,Buwaya Slave,Buwaya Slave,135,20145,0,0,0,1,2300,3100,105,71,100,50,70,50,100,30,10,12,0,3,22,0x3795,250,576,960,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2331,MA_SEAW,Seaweed,Seaweed,100,10,0,0,0,1,7,10,0,5,1,1,100,100,1,30,10,12,0,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2332,BUWAYA_GHOST,Fake Buwaya,Fake Buwaya,138,30000,0,30000,30000,1,2726,3398,481,78,150,200,30,200,100,100,10,12,0,3,81,0x37B5,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2333,BUWAYA_WEAK,Buwaya's Weakness,Buwaya's Weakness,138,20,0,0,0,1,7,10,100,78,1,1,1,1,6,30,10,12,0,3,81,0x60,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2334,G_WAKWAK,Wakwak,Wakwak,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2335,MA_TREASURE,Treasure Chest,Treasure Chest,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2336,DOMOVOI,Domovoi,Domovoi,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2337,HIDDEN_MOB,Hidden Mob,Hidden Mob,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2338,MD_MANANANGGAL,Bangungot Manananggal,Bangungot Manananggal,107,204511,0,0,0,1,901,1124,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2339,MD_MANGKUKULAM,Bangungot Mangkukulam,Bangungot Mangkukulam,110,102154,0,0,0,1,598,766,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2340,MD_TIYANAK,Tiyanak,Tiyanak,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2341,RWC_BOSS2011,RWC Boss,RWC Boss,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Additional Mercenary Monsters -2342,MER_DIABOLIC,Diabolic,Diabolic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2343,HIDDEN_MOB_W,Hidden Mob,Hidden Mob,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2344,MER_WISH_MAIDEN,Wish Maiden,Wish Maiden,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2345,MER_ZHERLTHSH,Zherlthsh,Zealotus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2346,MER_KTULLANUX,Ktullanux,Ktullanux,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2347,MER_EDDGA,Eddga,Eddga,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2348,MER_CIVIL_SERVANT,Civil Servant,Mao Guai,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2349,MER_LOLI_RURI,Loli Ruri,Loli Ruri,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2350,MER_SEDORA,Sedora,Sedora,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2351,MER_CHEPET,Chepet,Chepet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2342,MER_DIABOLIC,Diabolic,Diabolic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2343,HIDDEN_MOB_W,Hidden Mob,Hidden Mob,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2344,MER_WISH_MAIDEN,Wish Maiden,Wish Maiden,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2345,MER_ZHERLTHSH,Zherlthsh,Zealotus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2346,MER_KTULLANUX,Ktullanux,Ktullanux,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2347,MER_EDDGA,Eddga,Eddga,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2348,MER_CIVIL_SERVANT,Civil Servant,Mao Guai,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2349,MER_LOLI_RURI,Loli Ruri,Loli Ruri,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2350,MER_SEDORA,Sedora,Sedora,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2351,MER_CHEPET,Chepet,Chepet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Nightmare Pyrimids -2352,E_RSX_0805,RSX 0805,RSX 0805,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2353,N_MINOROUS,Nightmare Minorous,Nightmare Minorous,121,27141,0,16176,12252,1,853,1279,131,41,1,1,1,1,6,30,10,12,2,2,43,0x3795,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2354,N_MUMMY,Nightmare Mummy,Nightmare Mummy,117,22557,0,15480,11670,1,761,1141,110,21,1,1,1,1,6,30,10,12,1,1,49,0x3795,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2355,N_VERIT,Nightmare Verit,Nightmare Verit,115,21034,0,5280,4584,1,623,934,82,20,1,1,1,1,6,30,10,12,1,1,29,0x3795,250,2468,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2356,N_MIMIC,Nightmare Mimic,Nightmare Mimic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2357,G_N_MIMIC,Nightmare Mimic,Nightmare Mimic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2358,N_ARCLOUSE,Nightmare Arclouse,Nightmare Arclouse,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2359,G_N_ARCLOUSE,Nightmare Arclouse,Nightmare Arclouse,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2360,N_ANCIENT_MUMMY,Nightmare Ancient Mummy,Nightmare Ancient Mummy,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2361,G_N_ANCIENT_MUMMY,Nightmare Ancient Mummy,Nightmare Ancient Mummy,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2362,N_AMON_RA,Nightmare Amon Ra,Nightmare Amon Ra,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2352,E_RSX_0805,RSX 0805,RSX 0805,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2353,N_MINOROUS,Nightmare Minorous,Nightmare Minorous,121,27141,0,16176,12252,1,853,1279,131,41,1,1,1,1,6,30,10,12,2,2,43,0x3795,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2354,N_MUMMY,Nightmare Mummy,Nightmare Mummy,117,22557,0,15480,11670,1,761,1141,110,21,1,1,1,1,6,30,10,12,1,1,49,0x3795,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2355,N_VERIT,Nightmare Verit,Nightmare Verit,115,21034,0,5280,4584,1,623,934,82,20,1,1,1,1,6,30,10,12,1,1,29,0x3795,250,2468,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2356,N_MIMIC,Nightmare Mimic,Nightmare Mimic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2357,G_N_MIMIC,Nightmare Mimic,Nightmare Mimic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2358,N_ARCLOUSE,Nightmare Arclouse,Nightmare Arclouse,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2359,G_N_ARCLOUSE,Nightmare Arclouse,Nightmare Arclouse,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2360,N_ANCIENT_MUMMY,Nightmare Ancient Mummy,Nightmare Ancient Mummy,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2361,G_N_ANCIENT_MUMMY,Nightmare Ancient Mummy,Nightmare Ancient Mummy,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2362,N_AMON_RA,Nightmare Amon Ra,Nightmare Amon Ra,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Eclage (14.2) -2363,MENBLATT,Menblatt,Menblatt,143,82200,0,4150,3421,1,816,1224,79,50,1,1,1,1,6,30,10,12,1,4,44,0x3795,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2364,PETAL,Petal,Petal,141,81031,0,4058,3361,1,671,1006,73,33,1,1,1,1,6,30,10,12,1,2,24,0x3795,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2365,CENERE,Cenere,Cenere,146,130131,0,7117,5712,1,1802,2342,87,81,1,1,1,1,6,30,10,12,0,3,24,0x3795,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2366,ANTIQUE_BOOK,Antique Book,Antique Book,143,134615,0,7225,5870,1,1861,2419,74,42,1,1,1,1,6,30,10,12,0,0,60,0x3795,150,176,912,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2367,LICHTERN_B,Blue Lichtern,Blue Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2368,LICHTERN_Y,Yellow Lichtern,Yellow Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2369,LICHTERN_R,Red Lichtern,Red Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2370,LICHTERN_G,Green Lichtern,Green Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2371,FAITHFUL_MANAGER,Faithful Manager,Faithful Manager,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2363,MENBLATT,Menblatt,Menblatt,143,82200,0,4150,3421,1,816,1224,79,50,1,1,1,1,6,30,10,12,1,4,44,0x3795,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2364,PETAL,Petal,Petal,141,81031,0,4058,3361,1,671,1006,73,33,1,1,1,1,6,30,10,12,1,2,24,0x3795,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2365,CENERE,Cenere,Cenere,146,130131,0,7117,5712,1,1802,2342,87,81,1,1,1,1,6,30,10,12,0,3,24,0x3795,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2366,ANTIQUE_BOOK,Antique Book,Antique Book,143,134615,0,7225,5870,1,1861,2419,74,42,1,1,1,1,6,30,10,12,0,0,60,0x3795,150,176,912,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2367,LICHTERN_B,Blue Lichtern,Blue Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2368,LICHTERN_Y,Yellow Lichtern,Yellow Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2369,LICHTERN_R,Red Lichtern,Red Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2370,LICHTERN_G,Green Lichtern,Green Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2371,FAITHFUL_MANAGER,Faithful Manager,Faithful Manager,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Additional Monsters -2372,SOIL,Soil,Soil,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2373,ROCK,Rock,Rock,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2374,THICKET,Thicket,Thicket,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2375,MOROCC_4_142,Incarnation of Morroc,Incarnation of Morroc,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2376,MOROCC_2_142,Incarnation of Morroc,Incarnation of Morroc,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2377,E_NOVUS_,Novus,Novus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2378,MER_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2379,XMAS_SMOKEY_SOCK,Smokey Sock,Smokey Sock,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2380,XMAS_SMOKEY_GIFT,Smokey Gift,Smokey Gift,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2372,SOIL,Soil,Soil,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2373,ROCK,Rock,Rock,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2374,THICKET,Thicket,Thicket,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2375,MOROCC_4_142,Incarnation of Morroc,Incarnation of Morroc,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2376,MOROCC_2_142,Incarnation of Morroc,Incarnation of Morroc,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2377,E_NOVUS_,Novus,Novus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2378,MER_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2379,XMAS_SMOKEY_SOCK,Smokey Sock,Smokey Sock,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2380,XMAS_SMOKEY_GIFT,Smokey Gift,Smokey Gift,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index fa324c81f..7d130d61c 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -35,7 +35,6 @@ CREATE TABLE `mob_db` ( `aMotion` smallint(6) unsigned NOT NULL default '0', `dMotion` smallint(6) unsigned NOT NULL default '0', `MEXP` mediumint(9) unsigned NOT NULL default '0', - `ExpPer` smallint(9) unsigned NOT NULL default '0', `MVP1id` smallint(9) unsigned NOT NULL default '0', `MVP1per` smallint(9) unsigned NOT NULL default '0', `MVP2id` smallint(9) unsigned NOT NULL default '0', @@ -68,1236 +67,1459 @@ CREATE TABLE `mob_db` ( # Monster Database # # Structure of Database : -# REPLACE INTO `mob_db` VALUES ('ID','Sprite_Name','kROName','iROName','LV','HP','SP','EXP','JEXP','Range1','ATK1','ATK2','DEF','MDEF','STR','AGI','VIT','INT','DEX','LUK','Range2','Range3','Scale','Race','Element','Mode','Speed','aDelay','aMotion','dMotion','MEXP','ExpPer','MVP1id','MVP1per','MVP2id','MVP2per','MVP3id','MVP3per','Drop1id','Drop1per','Drop2id','Drop2per','Drop3id','Drop3per','Drop4id','Drop4per','Drop5id','Drop5per','Drop6id','Drop6per','Drop7id','Drop7per','Drop8id','Drop8per','Drop9id','Drop9per','DropCardid','DropCardper'); -# Note: Keep the Sprite_Name field as it is (in the game client). You may change Name,JName field tough +# REPLACE INTO `mob_db` VALUES ( ID,'Sprite_Name','kROName','iROName',LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper); +# Note: Keep the Sprite_Name field as it is (in the game client). You may change Name,JName field though +REPLACE INTO `mob_db` VALUES (1001,'SCORPION','Scorpion','Scorpion',16,153,1,108,81,1,33,40,16,5,12,15,10,5,19,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1); +REPLACE INTO `mob_db` VALUES (1002,'PORING','Poring','Poring',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1); +# REPLACE INTO `mob_db` VALUES (1003,'TESTEGG','Test Egg','Test Egg',2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1004,'HORNET','Hornet','Hornet',11,90,1,81,60,1,13,16,7,1,12,24,4,5,6,5,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1); +REPLACE INTO `mob_db` VALUES (1005,'FARMILIAR','Familiar','Familiar',24,427,1,144,162,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1); +# REPLACE INTO `mob_db` VALUES (1006,'THIEF_BUG_LARVA','Thief Bug Larva','Thief Bug Larva',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1007,'FABRE','Fabre','Fabre',6,72,1,54,41,1,12,15,24,0,12,5,5,5,12,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1); +REPLACE INTO `mob_db` VALUES (1008,'PUPA','Pupa','Pupa',4,66,1,36,27,1,1,4,24,2,11,1,3,3,8,6,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1); +REPLACE INTO `mob_db` VALUES (1009,'CONDOR','Condor','Condor',12,114,1,81,60,1,14,20,7,5,14,7,6,0,13,5,10,12,1,2,24,0x1089,150,1148,648,480,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1); +REPLACE INTO `mob_db` VALUES (1010,'WILOW','Willow','Willow',8,91,1,63,47,1,13,18,38,2,13,3,8,5,12,5,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1); +REPLACE INTO `mob_db` VALUES (1011,'CHONCHON','Chonchon','Chonchon',5,57,1,45,36,1,11,14,27,0,13,4,4,0,8,5,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1); +REPLACE INTO `mob_db` VALUES (1012,'RODA_FROG','Roda Frog','Roda Frog',13,160,1,90,68,1,19,23,12,5,12,6,4,0,14,9,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1); +REPLACE INTO `mob_db` VALUES (1013,'WOLF','Wolf','Wolf',45,1219,1,342,386,1,80,91,55,3,27,24,30,15,33,5,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1); +REPLACE INTO `mob_db` VALUES (1014,'SPORE','Spore','Spore',18,280,1,117,87,1,25,33,12,10,15,5,10,0,12,0,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1); +REPLACE INTO `mob_db` VALUES (1015,'ZOMBIE','Zombie','Zombie',17,234,1,117,87,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1); +REPLACE INTO `mob_db` VALUES (1016,'ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',50,1646,1,405,455,9,90,113,47,10,30,29,20,10,32,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1); +# REPLACE INTO `mob_db` VALUES (1017,'THIEF_BUG_FEMALE','Thief Bug Female','Thief Bug Female',10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,651,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1); +REPLACE INTO `mob_db` VALUES (1018,'CREAMY','Creamy','Creamy',23,378,1,144,162,1,61,62,28,20,16,1,1,0,1,20,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1); +REPLACE INTO `mob_db` VALUES (1019,'PECOPECO','Peco Peco','Peco Peco',25,446,1,162,183,1,76,83,48,0,21,10,13,5,28,5,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1); +REPLACE INTO `mob_db` VALUES (1020,'MANDRAGORA','Mandragora','Mandragora',13,156,1,97,73,4,20,23,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1); +# REPLACE INTO `mob_db` VALUES (1021,'THIEF_BUG_MALE','Thief Bug Male','Thief Bug Male',19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,653,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1); +# REPLACE INTO `mob_db` VALUES (1022,'WEREWOLF','Werewolf','Werewolf',80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,163,200,1500,768,652,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1023,'ORK_WARRIOR','Orc Warrior','Orc Warrior',44,1434,1,350,540,1,71,104,52,3,32,15,24,15,16,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,2147,3,0,0,0,0,4066,1); +REPLACE INTO `mob_db` VALUES (1024,'WORM_TAIL','Wormtail','Wormtail',17,200,1,117,87,1,22,27,16,0,10,6,14,5,12,35,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1); +REPLACE INTO `mob_db` VALUES (1025,'SNAKE','Snake','Boa',18,217,1,117,87,1,23,28,9,8,10,8,18,10,14,15,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1); +REPLACE INTO `mob_db` VALUES (1026,'MUNAK','Munak','Munak',58,2445,1,495,557,1,175,205,77,15,53,9,25,10,30,10,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1); +# REPLACE INTO `mob_db` VALUES (1027,'RAPTICE','Raptice','Raptice',17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,131,200,2000,1000,500,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1028,'SOLDIER_SKELETON','Soldier Skeleton','Soldier Skeleton',34,804,1,216,243,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,2315,1,1216,50,0,0,0,0,4086,1); +REPLACE INTO `mob_db` VALUES (1029,'ISIS','Isis','Isis',59,2092,1,531,597,1,192,229,83,5,58,43,22,5,39,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1); +REPLACE INTO `mob_db` VALUES (1030,'ANACONDAQ','Anacondaq','Anacondaq',100,8510,1,1602,1202,1,388,443,92,0,79,46,28,43,56,25,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,6247,200,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1); +REPLACE INTO `mob_db` VALUES (1031,'POPORING','Poporing','Poporing',30,524,1,198,224,1,74,94,36,17,17,26,20,18,36,5,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,512,5,1207,5,512,250,0,0,0,0,4033,1); +REPLACE INTO `mob_db` VALUES (1032,'VERIT','Verit','Verit',52,1944,1,414,467,1,132,152,63,10,51,4,25,10,5,5,10,12,1,1,29,0x83,250,2468,768,480,0,0,0,0,0,0,0,929,9000,912,700,930,1100,509,600,2609,1,2612,200,639,20,0,0,0,0,4107,1); +REPLACE INTO `mob_db` VALUES (1033,'ELDER_WILOW','Elder Willow','Elder Willow',34,599,1,233,263,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,990,50,907,9000,7939,1,757,40,2329,30,690,100,604,100,0,0,0,0,4052,1); +REPLACE INTO `mob_db` VALUES (1034,'THARA_FROG','Thara Frog','Thara Frog',40,1157,1,311,350,1,73,103,37,17,25,10,10,18,30,2,10,12,1,5,41,0x81,200,2016,816,288,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1); +REPLACE INTO `mob_db` VALUES (1035,'HUNTER_FLY','Hunter Fly','Hunter Fly',63,2050,1,604,681,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1); +REPLACE INTO `mob_db` VALUES (1036,'GHOUL','Ghoul','Ghoul',61,2614,1,583,656,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1); +REPLACE INTO `mob_db` VALUES (1037,'SIDE_WINDER','Side Winder','Side Winder',70,2736,1,720,810,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1); +REPLACE INTO `mob_db` VALUES (1038,'OSIRIS','Osiris','Osiris',68,475840,1,245520,200880,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,122760,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1); +REPLACE INTO `mob_db` VALUES (1039,'BAPHOMET','Baphomet','Baphomet',81,668000,1,396525,334106,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,198262,607,2000,750,500,923,5000,1466,400,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1); +REPLACE INTO `mob_db` VALUES (1040,'GOLEM','Golem','Golem',61,2245,1,540,608,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,2146,5,715,200,998,350,0,0,0,0,4072,1); +REPLACE INTO `mob_db` VALUES (1041,'MUMMY','Mummy','Mummy',55,2155,1,486,548,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1); +REPLACE INTO `mob_db` VALUES (1042,'STEEL_CHONCHON','Steel Chonchon','Steel Chonchon',48,1199,1,369,414,1,77,112,57,20,30,62,20,10,56,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1); +# REPLACE INTO `mob_db` VALUES (1043,'SEAHORES','Seahorse','Seahorse',18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1044,'OBEAUNE','Obeaune','Obeaune',53,2158,1,476,534,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1); +REPLACE INTO `mob_db` VALUES (1045,'MARC','Marc','Marc',56,2522,1,525,590,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1); +REPLACE INTO `mob_db` VALUES (1046,'DOPPELGANGER','Doppelganger','Doppelganger',77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,156600,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1); +REPLACE INTO `mob_db` VALUES (1047,'PECOPECO_EGG','Peco Peco Egg','Peco Peco Egg',7,75,1,54,41,0,1,1,16,5,4,10,22,8,10,5,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,250,935,1500,2102,2,507,400,507,400,713,1800,736,10,0,0,0,0,4007,1); +REPLACE INTO `mob_db` VALUES (1048,'THIEF_BUG_EGG','Thief Bug Egg','Thief Bug Egg',20,344,1,126,143,0,1,2,64,10,10,1,50,0,3,15,10,12,0,4,27,0x100,1000,701,1,1,0,0,0,0,0,0,0,1010,300,915,5000,2102,2,938,600,716,100,737,10,1002,250,0,0,0,0,4012,1); +REPLACE INTO `mob_db` VALUES (1049,'PICKY','Picky','Picky',9,95,1,63,47,1,18,19,21,3,14,9,10,0,10,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,1); +REPLACE INTO `mob_db` VALUES (1050,'PICKY_','Picky','Picky',10,89,1,72,54,1,18,38,48,10,15,8,8,5,9,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,715,50,10012,10,0,0,0,0,4011,1); +REPLACE INTO `mob_db` VALUES (1051,'THIEF_BUG','Thief Bug','Thief Bug',21,354,1,126,143,1,56,61,24,3,19,7,10,0,12,5,10,12,0,4,60,0x118B,150,1288,288,768,0,0,0,0,0,0,0,955,2500,2304,80,507,350,909,2000,2303,120,1002,250,0,0,0,0,0,0,4016,1); +REPLACE INTO `mob_db` VALUES (1052,'ROCKER','Rocker','Rocker',15,185,1,99,74,1,19,24,16,3,12,18,8,10,17,5,10,12,1,4,22,0x181,200,1864,864,540,0,0,0,0,0,0,0,940,9000,1916,10,2298,4,1402,80,520,10,752,10,703,10,0,0,0,0,4021,1); +REPLACE INTO `mob_db` VALUES (1053,'THIEF_BUG_','Thief Bug Female','Thief Bug Female',28,531,1,180,203,1,42,58,28,7,12,10,23,10,24,10,10,12,1,4,27,0x118B,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,300,0,0,0,0,4026,1); +REPLACE INTO `mob_db` VALUES (1054,'THIEF_BUG__','Thief Bug Male','Thief Bug Male',30,595,1,198,224,1,46,67,40,20,17,37,22,5,31,13,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1); +REPLACE INTO `mob_db` VALUES (1055,'MUKA','Muka','Muka',23,468,1,144,162,1,66,75,28,0,18,9,28,5,43,5,10,12,2,3,22,0x81,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1); +REPLACE INTO `mob_db` VALUES (1056,'SMOKIE','Smokie','Smokie',29,591,1,180,203,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1); +REPLACE INTO `mob_db` VALUES (1057,'YOYO','Yoyo','Yoyo',38,898,1,270,305,1,63,74,40,0,20,11,34,20,19,10,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1); +REPLACE INTO `mob_db` VALUES (1058,'METALLER','Metaller','Metaller',55,1687,1,450,507,1,187,228,72,12,52,24,10,0,47,31,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1); +REPLACE INTO `mob_db` VALUES (1059,'MISTRESS','Mistress','Mistress',78,378000,1,368280,301320,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,184140,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1); +REPLACE INTO `mob_db` VALUES (1060,'BIGFOOT','Bigfoot','Bigfoot',29,587,1,180,203,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1); +REPLACE INTO `mob_db` VALUES (1061,'NIGHTMARE','Nightmare','Nightmare',69,2872,1,501,1032,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1); +REPLACE INTO `mob_db` VALUES (1062,'PORING_','Santa Poring','Santa Poring',3,69,1,4,5,1,12,16,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1); +REPLACE INTO `mob_db` VALUES (1063,'LUNATIC','Lunatic','Lunatic',3,55,1,36,27,1,11,12,18,0,10,3,3,0,8,5,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,0,0,0,0,4006,1); +REPLACE INTO `mob_db` VALUES (1064,'MEGALODON','Megalodon','Megalodon',46,1335,1,342,386,1,117,149,52,28,35,24,30,28,29,15,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1); +REPLACE INTO `mob_db` VALUES (1065,'STROUF','Strouf','Strouf',61,3052,1,626,705,1,162,192,67,21,49,16,31,20,33,20,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,115,2315,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1); +REPLACE INTO `mob_db` VALUES (1066,'VADON','Vadon','Vadon',45,1252,1,342,386,1,78,103,54,21,35,21,28,20,33,15,10,12,0,5,21,0x91,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1); +REPLACE INTO `mob_db` VALUES (1067,'CORNUTUS','Cornutus','Cornutus',48,1450,1,369,414,1,79,126,42,28,32,27,45,26,27,15,10,12,0,5,21,0x91,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1); +REPLACE INTO `mob_db` VALUES (1068,'HYDRA','Hydra','Hydra',34,854,1,233,263,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,1011,25,962,5500,938,1500,971,20,525,5,517,700,0,0,0,0,0,0,4035,1); +REPLACE INTO `mob_db` VALUES (1069,'SWORD_FISH','Swordfish','Swordfish',57,2600,1,525,590,1,149,184,52,12,50,56,25,15,40,15,10,12,2,5,41,0x3885,200,1968,768,384,0,0,0,0,0,0,0,995,10,963,9000,756,33,2257,2,757,50,1117,25,956,600,0,0,0,0,4089,1); +REPLACE INTO `mob_db` VALUES (1070,'KUKRE','Kukre','Kukre',42,1111,1,315,354,1,65,93,33,23,25,30,22,20,32,20,10,12,0,5,21,0x83,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1); +REPLACE INTO `mob_db` VALUES (1071,'PIRATE_SKEL','Pirate Skeleton','Pirate Skeleton',48,1411,1,369,414,1,105,125,53,20,35,25,25,15,30,10,10,12,1,1,29,0x3885,200,1754,554,288,0,0,0,0,0,0,0,932,3000,2287,15,7477,5,2211,250,1104,250,756,43,628,20,0,0,0,0,4073,1); +REPLACE INTO `mob_db` VALUES (1072,'KAHO','Kaho','Kaho',98,7045,1,1953,1463,1,504,728,106,55,81,61,55,65,66,73,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1); +REPLACE INTO `mob_db` VALUES (1073,'CRAB','Crab','Crab',43,1233,1,315,354,1,69,79,36,11,22,14,24,7,28,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1); +REPLACE INTO `mob_db` VALUES (1074,'SHELLFISH','Shellfish','Shellfish',50,1680,1,405,455,1,70,92,43,5,42,11,48,25,26,10,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1); +# REPLACE INTO `mob_db` VALUES (1075,'TURTLE','Turtle','Turtle',3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1076,'SKELETON','Skeleton','Skeleton',27,612,1,162,183,1,78,102,21,2,24,15,30,5,19,1,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1); +REPLACE INTO `mob_db` VALUES (1077,'POISON_SPORE','Poison Spore','Poison Spore',26,456,1,162,183,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1); +REPLACE INTO `mob_db` VALUES (1078,'RED_PLANT','Red Plant','Red Plant',1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,7933,300,914,500,708,50,0,0,0,0,2269,2); +REPLACE INTO `mob_db` VALUES (1079,'BLUE_PLANT','Blue Plant','Blue Plant',1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,712,1000,711,1000,905,500,7932,300,522,50,514,1000,0,0,0,0,2270,2); +REPLACE INTO `mob_db` VALUES (1080,'GREEN_PLANT','Green Plant','Green Plant',1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,511,7000,7934,300,621,20,905,3000,906,1500,704,50,521,50,0,0,0,0,2270,2); +REPLACE INTO `mob_db` VALUES (1081,'YELLOW_PLANT','Yellow Plant','Yellow Plant',1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,508,5500,712,1000,711,1000,905,500,7937,300,707,5,914,500,0,0,0,0,2269,2); +REPLACE INTO `mob_db` VALUES (1082,'WHITE_PLANT','White Plant','White Plant',1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,509,5500,712,1000,631,20,905,3000,7935,300,521,50,703,50,0,0,0,0,2269,2); +REPLACE INTO `mob_db` VALUES (1083,'SHINING_PLANT','Shining Plant','Shining Plant',1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,508,1000,509,1000,710,5,608,20,7938,500,607,50,0,0,0,0,714,1); +REPLACE INTO `mob_db` VALUES (1084,'BLACK_MUSHROOM','Black Mushroom','Black Mushroom',1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,0,0,0,0,7033,5500); +REPLACE INTO `mob_db` VALUES (1085,'RED_MUSHROOM','Red Mushroom','Red Mushroom',1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,0,0,0,0,7033,5500); +REPLACE INTO `mob_db` VALUES (1086,'GOLDEN_BUG','Golden Thief Bug','Golden Thief Bug',65,222750,1,194400,155520,1,907,1750,159,81,71,77,80,62,127,76,10,12,2,4,43,0x11AB,100,768,768,480,97200,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1); +REPLACE INTO `mob_db` VALUES (1087,'ORK_HERO','Orc Hero','Orc Hero',50,362000,1,106920,97200,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,53460,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1); +REPLACE INTO `mob_db` VALUES (1088,'VOCAL','Vocal','Vocal',18,3317,1,99,79,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,7938,500,1917,10,0,0,0,0,4211,1); +REPLACE INTO `mob_db` VALUES (1089,'TOAD','Toad','Toad',27,660,1,162,183,1,70,89,24,6,32,19,27,10,24,5,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,7938,500,970,100,971,100,5125,1000,0,0,0,0,4306,1); +REPLACE INTO `mob_db` VALUES (1090,'MASTERING','Mastering','Mastering',42,1260,1,315,354,1,80,120,48,31,35,21,41,12,29,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,7938,500,512,8000,531,4000,0,0,0,0,4197,1); +REPLACE INTO `mob_db` VALUES (1091,'DRAGON_FLY','Dragon Fly','Dragon Fly',47,1035,1,360,405,1,102,135,57,28,37,44,30,15,44,15,10,12,0,4,24,0x37B5,100,1076,576,480,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1); +REPLACE INTO `mob_db` VALUES (1092,'VAGABOND_WOLF','Vagabond Wolf','Vagabond Wolf',93,8203,1,1422,2601,1,399,445,102,51,72,63,55,29,90,15,10,12,1,2,22,0x37B5,150,1048,648,432,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,2521,1000,7938,500,626,50,0,0,0,0,4183,1); +REPLACE INTO `mob_db` VALUES (1093,'ECLIPSE','Eclipse','Eclipse',31,625,1,207,233,1,60,80,50,20,20,28,35,17,27,55,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,7938,500,706,30,622,50,2355,1000,0,0,0,0,4266,1); +REPLACE INTO `mob_db` VALUES (1094,'AMBERNITE','Ambernite','Ambernite',19,340,1,117,87,1,26,37,28,0,16,20,11,10,21,5,10,12,2,4,21,0x191,400,2048,648,648,0,0,0,0,0,0,0,991,50,946,9000,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1); +REPLACE INTO `mob_db` VALUES (1095,'ANDRE','Andre','Andre',33,724,1,216,243,1,51,72,55,16,11,20,40,10,24,10,10,12,0,4,22,0x118B,300,1288,288,384,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1); +REPLACE INTO `mob_db` VALUES (1096,'ANGELING','Angeling','Angeling',77,19800,1,3060,2693,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1); +REPLACE INTO `mob_db` VALUES (1097,'ANT_EGG','Ant Egg','Ant Egg',28,530,1,180,203,0,1,2,68,45,5,1,65,5,10,30,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1); +REPLACE INTO `mob_db` VALUES (1098,'ANUBIS','Anubis','Anubis',105,18826,1,3356,2450,1,480,695,103,48,88,67,40,128,89,55,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,12735,10,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1); +REPLACE INTO `mob_db` VALUES (1099,'ARGIOPE','Argiope','Argiope',75,3105,1,810,912,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1); +REPLACE INTO `mob_db` VALUES (1100,'ARGOS','Argos','Argos',47,1005,1,360,405,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1); +REPLACE INTO `mob_db` VALUES (1101,'BAPHOMET_','Baphomet Jr.','Baphomet Jr.',57,2035,0,486,548,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,923,3000,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1); +REPLACE INTO `mob_db` VALUES (1102,'BATHORY','Bathory','Bathory',86,5242,1,1170,1364,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1); +REPLACE INTO `mob_db` VALUES (1103,'CARAMEL','Caramel','Caramel',25,518,1,162,183,1,67,76,39,0,19,10,15,10,32,5,10,12,0,2,22,0x91,200,1604,840,756,0,0,0,0,0,0,0,1027,9000,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1); +REPLACE INTO `mob_db` VALUES (1104,'COCO','Coco','Coco',38,836,1,270,305,1,71,82,37,0,22,13,30,20,38,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,578,600,0,0,0,0,4041,1); +REPLACE INTO `mob_db` VALUES (1105,'DENIRO','Deniro','Deniro',31,671,1,207,233,1,45,61,52,16,15,16,30,10,23,15,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,955,9000,910,3000,938,1200,990,50,1001,8,1002,450,757,34,0,0,0,0,4043,1); +REPLACE INTO `mob_db` VALUES (1106,'DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,1800,1350,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,1253,1,7030,5500,2311,1,6252,200,1287,1,756,53,1217,140,0,0,0,0,4082,1); +REPLACE INTO `mob_db` VALUES (1107,'DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',14,140,1,90,68,1,33,41,13,0,10,12,8,5,17,7,10,12,0,2,23,0x1089,300,1600,900,240,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,6252,200,2301,200,13011,5,582,1000,0,0,0,0,4023,1); +REPLACE INTO `mob_db` VALUES (1108,'DEVIACE','Deviace','Deviace',60,3135,1,658,740,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,995,25,1053,9000,1054,1000,5011,2,971,200,1256,3,756,161,0,0,0,0,4125,1); +REPLACE INTO `mob_db` VALUES (1109,'DEVIRUCHI','Deviruchi','Deviruchi',93,8912,1,1806,2166,1,367,549,72,16,61,49,30,85,99,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1); +REPLACE INTO `mob_db` VALUES (1110,'DOKEBI','Dokebi','Dokebi',68,2820,1,675,759,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1); +REPLACE INTO `mob_db` VALUES (1111,'DRAINLIAR','Drainliar','Drainliar',47,1162,1,389,438,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1); +REPLACE INTO `mob_db` VALUES (1112,'DRAKE','Drake','Drake',91,804500,1,515160,417960,1,1938,3341,279,135,121,103,114,107,135,71,10,12,1,1,29,0x37B5,400,620,420,360,257580,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1); +REPLACE INTO `mob_db` VALUES (1113,'DROPS','Drops','Drops',2,45,1,27,20,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1); +REPLACE INTO `mob_db` VALUES (1114,'DUSTINESS','Dustiness','Dustiness',62,2026,1,602,678,1,158,189,69,50,46,22,46,60,68,105,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1); +REPLACE INTO `mob_db` VALUES (1115,'EDDGA','Eddga','Eddga',65,247500,1,198000,148500,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,99000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1); +REPLACE INTO `mob_db` VALUES (1116,'EGGYRA','Eggyra','Eggyra',53,1676,1,330,689,1,105,145,85,20,46,25,25,15,52,20,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1); +REPLACE INTO `mob_db` VALUES (1117,'EVIL_DRUID','Evil Druid','Evil Druid',80,5149,1,1339,1280,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1); +REPLACE INTO `mob_db` VALUES (1118,'FLORA','Flora','Flora',59,2301,1,531,597,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1); +REPLACE INTO `mob_db` VALUES (1119,'FRILLDORA','Frilldora','Frilldora',57,1821,1,486,548,1,172,214,84,10,48,38,38,15,46,30,10,12,1,2,23,0x3885,300,1540,720,432,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1); +REPLACE INTO `mob_db` VALUES (1120,'GHOSTRING','Ghostring','Ghostring',90,26700,1,4305,4467,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1); +REPLACE INTO `mob_db` VALUES (1121,'GIEARTH','Giearth','Giearth',42,1118,1,315,354,1,70,85,52,16,27,19,30,10,28,15,10,12,0,6,22,0x191,200,1848,1296,432,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1); +REPLACE INTO `mob_db` VALUES (1122,'GOBLIN_1','Goblin','Goblin',48,1058,1,369,414,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,9000,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1123,'GOBLIN_2','Goblin','Goblin',44,931,1,333,374,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,998,250,911,9000,5010,3,1511,10,2146,5,507,1550,2297,3,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1124,'GOBLIN_3','Goblin','Goblin',44,930,1,333,374,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,998,230,911,9000,2275,3,5088,15,2104,1,507,1550,508,220,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1125,'GOBLIN_4','Goblin','Goblin',49,1494,1,396,446,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2146,5,507,1500,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1126,'GOBLIN_5','Goblin','Goblin',56,2342,1,486,548,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,998,150,911,9000,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1127,'HODE','Hode','Hode',63,2676,1,632,710,1,170,215,91,24,61,16,42,5,29,40,10,12,1,2,42,0x81,200,1480,480,720,0,0,0,0,0,0,0,993,120,1055,9000,757,80,938,3000,1147,10,7021,1,632,20,0,0,0,0,4081,1); +REPLACE INTO `mob_db` VALUES (1128,'HORN','Horn','Horn',32,705,1,216,243,1,64,75,52,8,10,12,36,25,21,35,10,12,1,4,22,0x191,200,1528,528,288,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1); +REPLACE INTO `mob_db` VALUES (1129,'HORONG','Horong','Horong',66,2304,1,781,879,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1); +REPLACE INTO `mob_db` VALUES (1130,'JAKK','Jakk','Jakk',63,2054,1,632,710,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,7938,10,0,0,0,0,4109,1); +REPLACE INTO `mob_db` VALUES (1131,'JOKER','Joker','Joker',90,6022,1,1618,1821,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1); +REPLACE INTO `mob_db` VALUES (1132,'KHALITZBURG','Khalitzburg','Khalitzburg',118,23986,1,2862,2147,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,15014,2,1127,2,0,0,0,0,4136,1); +REPLACE INTO `mob_db` VALUES (1133,'KOBOLD_1','Kobold','Kobold',107,10483,1,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); +REPLACE INTO `mob_db` VALUES (1134,'KOBOLD_2','Kobold','Kobold',102,9152,1,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1); +REPLACE INTO `mob_db` VALUES (1135,'KOBOLD_3','Kobold','Kobold',101,9078,1,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1); +# REPLACE INTO `mob_db` VALUES (1136,'KOBOLD_4','Kobold','Kobold',31,1961,1,783,395,1,316,378,24,10,1,31,31,20,55,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1); +# REPLACE INTO `mob_db` VALUES (1137,'KOBOLD_5','Kobold','Kobold',31,1962,1,580,366,1,223,256,24,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1); +REPLACE INTO `mob_db` VALUES (1138,'MAGNOLIA','Magnolia','Magnolia',53,1984,1,441,495,1,91,256,51,8,49,25,21,50,28,85,10,12,0,6,21,0x183,200,1054,504,432,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1); +REPLACE INTO `mob_db` VALUES (1139,'MANTIS','Mantis','Mantis',65,2719,1,594,669,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1); +REPLACE INTO `mob_db` VALUES (1140,'MARDUK','Marduk','Marduk',73,2893,1,774,872,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1); +REPLACE INTO `mob_db` VALUES (1141,'MARINA','Marina','Marina',42,1209,1,340,381,1,73,98,20,19,24,27,18,22,29,15,10,12,0,3,41,0x81,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1); +REPLACE INTO `mob_db` VALUES (1142,'MARINE_SPHERE','Marine Sphere','Marine Sphere',51,1924,1,446,503,1,1,2,41,28,10,16,35,25,26,5,10,12,0,3,41,0x0,800,1201,1,1,0,0,0,0,0,0,0,1050,5000,1051,2500,1520,10,720,10,717,150,10003,10,0,0,0,0,0,0,4084,1); +REPLACE INTO `mob_db` VALUES (1143,'MARIONETTE','Marionette','Marionette',90,7166,1,1442,2009,1,202,392,35,24,52,79,28,105,72,20,10,12,0,6,68,0x3195,300,1480,480,1056,0,0,0,0,0,0,0,1060,9000,2294,5,2605,1,699,100,1520,15,2407,1,5141,3,0,0,0,0,4113,1); +REPLACE INTO `mob_db` VALUES (1144,'MARSE','Marse','Marse',47,1456,1,389,438,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1); +REPLACE INTO `mob_db` VALUES (1145,'MARTIN','Martin','Martin',39,1056,1,311,350,1,70,88,58,19,25,29,28,15,30,10,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1); +REPLACE INTO `mob_db` VALUES (1146,'MATYR','Matyr','Matyr',58,2087,1,495,557,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1); +REPLACE INTO `mob_db` VALUES (1147,'MAYA','Maya','Maya',55,380000,1,178560,133920,1,555,820,183,50,88,72,76,102,92,76,10,12,2,4,82,0x37B5,100,864,1000,480,89280,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1); +REPLACE INTO `mob_db` VALUES (1148,'MEDUSA','Medusa','Medusa',102,10045,1,1737,1302,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,1649,5,1007,3,0,0,0,0,4124,1); +REPLACE INTO `mob_db` VALUES (1149,'MINOROUS','Minorous','Minorous',58,1893,1,544,602,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,6254,10,1301,200,568,300,0,0,0,0,4126,1); +REPLACE INTO `mob_db` VALUES (1150,'MOONLIGHT','Moonlight Flower','Moonlight Flower',79,324000,1,334080,271440,1,2029,3280,154,81,86,102,93,82,131,120,10,12,1,6,63,0x37B5,150,1276,576,288,167040,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1); +REPLACE INTO `mob_db` VALUES (1151,'MYST','Myst','Myst',49,1223,1,396,446,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,2601,1,0,0,0,0,4108,1); +REPLACE INTO `mob_db` VALUES (1152,'ORC_SKELETON','Orc Skeleton','Orc Skeleton',53,2077,1,459,524,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1); +REPLACE INTO `mob_db` VALUES (1153,'ORC_ZOMBIE','Orc Zombie','Orc Zombie',51,1908,1,430,498,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1); +REPLACE INTO `mob_db` VALUES (1154,'PASANA','Pasana','Pasana',79,3510,1,972,1194,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3095,165,976,576,288,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,2522,100,0,0,0,0,0,0,4099,1); +REPLACE INTO `mob_db` VALUES (1155,'PETIT','Petite','Petite',86,5799,1,1170,1317,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3095,250,2468,768,480,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,6260,40,606,15,0,0,0,0,4118,1); +REPLACE INTO `mob_db` VALUES (1156,'PETIT_','Petite','Petite',79,3556,1,900,1013,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3095,200,1872,672,288,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1); +REPLACE INTO `mob_db` VALUES (1157,'PHARAOH','Pharaoh','Pharaoh',85,500000,1,417600,334080,1,1476,3258,124,269,98,102,96,142,144,102,10,12,2,7,67,0x37B5,125,868,768,288,208800,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1); +REPLACE INTO `mob_db` VALUES (1158,'PHEN','Phen','Phen',52,1963,1,446,503,1,97,127,44,11,54,15,35,15,25,15,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1); +REPLACE INTO `mob_db` VALUES (1159,'PHREEONI','Phreeoni','Phreeoni',71,300000,1,116000,180000,1,630,1597,269,98,88,70,112,87,102,71,10,12,2,2,60,0x37B5,200,1020,1020,288,58000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1); +REPLACE INTO `mob_db` VALUES (1160,'PIERE','Piere','Piere',32,696,1,216,243,1,47,67,57,16,19,19,36,8,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1); +REPLACE INTO `mob_db` VALUES (1161,'PLANKTON','Plankton','Plankton',40,1232,1,334,375,1,75,111,28,28,23,53,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1); +REPLACE INTO `mob_db` VALUES (1162,'RAFFLESIA','Rafflesia','Rafflesia',86,5819,1,1170,1317,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1); +REPLACE INTO `mob_db` VALUES (1163,'RAYDRIC','Raydric','Raydric',115,18408,1,2770,2076,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,0,0,0,0,4133,1); +REPLACE INTO `mob_db` VALUES (1164,'REQUIEM','Requiem','Requiem',71,3089,1,738,831,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1); +REPLACE INTO `mob_db` VALUES (1165,'SAND_MAN','Sandman','Sandman',61,2887,1,626,705,1,156,212,126,24,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1); +REPLACE INTO `mob_db` VALUES (1166,'SAVAGE','Savage','Savage',59,2301,1,573,644,1,172,195,126,3,56,21,54,10,47,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,6249,10,757,70,526,2,0,0,0,0,4078,1); +REPLACE INTO `mob_db` VALUES (1167,'SAVAGE_BABE','Savage Babe','Savage Babe',14,180,1,90,68,1,19,25,22,0,16,8,9,5,21,18,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,919,9000,1302,100,517,500,6249,1,949,850,1010,80,627,40,0,0,0,0,4017,1); +# REPLACE INTO `mob_db` VALUES (1168,'SCORPION_KING','Scorpion King','Scorpion King',50,5719,1,1968,1211,1,600,713,64,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1); +REPLACE INTO `mob_db` VALUES (1169,'SKEL_WORKER','Skeleton Worker','Skeleton Worker',44,1240,1,333,374,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,7938,10,0,0,0,0,4092,1); +REPLACE INTO `mob_db` VALUES (1170,'SOHEE','Sohee','Sohee',64,2875,1,594,669,1,169,199,61,21,61,24,29,20,37,25,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,15012,5,662,350,0,0,0,0,4100,1); +# REPLACE INTO `mob_db` VALUES (1171,'SOLDIER_ANDRE','Soldier Andre','Soldier Andre',22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1); +# REPLACE INTO `mob_db` VALUES (1172,'SOLDIER_DENIRO','Soldier Deniro','Soldier Deniro',29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1); +# REPLACE INTO `mob_db` VALUES (1173,'SOLDIER_PIERE','Soldier Piere','Soldier Piere',23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1); +REPLACE INTO `mob_db` VALUES (1174,'STAINER','Stainer','Stainer',21,365,1,126,143,1,65,74,22,25,10,10,24,0,39,15,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1); +REPLACE INTO `mob_db` VALUES (1175,'TAROU','Tarou','Tarou',22,420,1,135,152,1,72,78,23,5,21,6,12,0,10,1,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1); +REPLACE INTO `mob_db` VALUES (1176,'VITATA','Vitata','Vitata',35,756,1,234,264,1,68,86,44,12,20,11,24,20,21,5,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1); +REPLACE INTO `mob_db` VALUES (1177,'ZENORC','Zenorc','Zenorc',54,1816,1,450,507,1,130,154,69,5,50,18,20,5,25,5,10,12,1,7,27,0x83,150,1180,480,360,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1); +REPLACE INTO `mob_db` VALUES (1178,'ZEROM','Zerom','Zerom',70,2687,1,720,960,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,7938,1,0,0,0,0,4064,1); +REPLACE INTO `mob_db` VALUES (1179,'WHISPER','Whisper','Whisper',46,1109,1,242,513,1,65,120,20,40,32,48,20,35,52,20,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1); +REPLACE INTO `mob_db` VALUES (1180,'NINE_TAIL','Nine Tail','Nine Tail',72,2783,1,887,998,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1); +# REPLACE INTO `mob_db` VALUES (1181,'ZOMBIE_DRAGON','Zombie Dragon','Zombie Dragon',1,1000,1,44550,1485,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1182,'THIEF_MUSHROOM','Thief Mushroom','Thief Mushroom',1,15,1,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1183,'CHONCHON_','Chonchon','Chonchon',5,63,1,36,27,1,11,14,29,0,13,4,4,0,7,5,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1); +REPLACE INTO `mob_db` VALUES (1184,'FABRE_','Fabre','Fabre',1,30,1,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1185,'WHISPER_','Whisper','Whisper',34,1796,1,483,737,1,198,239,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,1001,10,1059,100,0,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1186,'WHISPER_BOSS','Giant Whisper','Giant Whisper',66,2570,0,630,710,1,282,341,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1); +REPLACE INTO `mob_db` VALUES (1188,'BON_GUN','Bongun','Bongun',59,2510,1,531,597,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1); +REPLACE INTO `mob_db` VALUES (1189,'ORC_ARCHER','Orc Archer','Orc Archer',78,4835,1,922,1161,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1); +REPLACE INTO `mob_db` VALUES (1190,'ORC_LORD','Orc Lord','Orc Lord',55,552000,1,156240,122760,1,780,1428,256,92,95,95,103,96,155,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,968,5500,617,2000,0,0,1363,400,2621,400,5007,400,1371,400,617,1000,985,4268,16000,3100,0,0,0,0,4135,1); +REPLACE INTO `mob_db` VALUES (1191,'MIMIC','Mimic','Mimic',56,1939,1,486,548,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,7938,1000,2626,1,757,270,0,0,0,0,4205,1); +REPLACE INTO `mob_db` VALUES (1192,'WRAITH','Wraith','Wraith',77,5168,1,1190,1191,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1); +REPLACE INTO `mob_db` VALUES (1193,'ALARM','Alarm','Alarm',88,5562,1,1242,1398,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1); +REPLACE INTO `mob_db` VALUES (1194,'ARCLOUSE','Arclouse','Arclouze',107,10020,1,1844,2607,1,269,309,101,36,60,73,45,35,140,15,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1); +REPLACE INTO `mob_db` VALUES (1195,'RIDEWORD','Rideword','Rideword',74,3222,1,810,1212,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3695,150,864,500,192,0,0,0,0,0,0,0,1097,4850,1553,4,1554,4,1555,2,1556,2,7015,300,1006,20,0,0,0,0,4185,1); +REPLACE INTO `mob_db` VALUES (1196,'SKEL_PRISONER','Skeleton Prisoner','Skeleton Prisoner',91,9194,1,1566,1763,1,466,521,95,41,84,35,60,20,71,15,10,12,1,1,69,0x308D,350,1848,500,576,0,0,0,0,0,0,0,1098,3500,7016,100,2320,1,716,600,930,3500,2408,35,934,1500,0,0,0,0,4222,1); +REPLACE INTO `mob_db` VALUES (1197,'ZOMBIE_PRISONER','Zombie Prisoner','Zombie Prisoner',89,8045,1,1458,1647,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x308D,350,1768,500,192,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1); +REPLACE INTO `mob_db` VALUES (1198,'DARK_PRIEST','Dark Priest','Dark Priest',98,12090,0,2430,1667,2,355,554,56,30,5,60,41,89,78,42,10,12,1,6,89,0x31AD,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,1,2319,5,7005,3000,0,0,0,0,4171,1); +REPLACE INTO `mob_db` VALUES (1199,'PUNK','Punk','Punk',82,3869,1,972,1094,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3095,300,1500,500,1000,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1); +REPLACE INTO `mob_db` VALUES (1200,'ZHERLTHSH','Zherlthsh','Zealotus',105,61350,1,6944,6458,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,7017,5,509,1800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1); +REPLACE INTO `mob_db` VALUES (1201,'RYBIO','Rybio','Rybio',98,8700,1,1575,1442,1,477,553,109,30,96,52,61,30,73,10,10,12,2,6,40,0x318D,200,1790,1440,540,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,6216,300,1008,10,984,100,709,30,0,0,0,0,4194,1); +REPLACE INTO `mob_db` VALUES (1202,'PHENDARK','Phendark','Phendark',102,11000,1,1990,1302,2,539,614,307,50,111,65,71,20,91,30,10,12,2,7,40,0x308D,175,1744,1344,600,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,1971,100,0,0,0,0,0,0,4329,1); +REPLACE INTO `mob_db` VALUES (1203,'MYSTELTAINN','Mysteltainn','Mysteltainn',130,70000,1,7919,4987,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,12736,300,984,243,0,0,0,0,4207,1); +REPLACE INTO `mob_db` VALUES (1204,'TIRFING','Tirfing','Ogretooth',114,59000,1,5345,5009,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1); +REPLACE INTO `mob_db` VALUES (1205,'EXECUTIONER','Executioner','Executioner',101,40200,1,4860,3645,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1); +REPLACE INTO `mob_db` VALUES (1206,'ANOLIAN','Anolian','Anolian',109,15547,1,2930,2223,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3695,190,900,500,864,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,16003,1,2625,1,984,134,0,0,0,0,4234,1); +REPLACE INTO `mob_db` VALUES (1207,'STING','Sting','Sting',104,10143,1,2172,1629,1,611,678,146,34,108,49,68,34,99,24,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,6213,800,0,0,0,0,4226,1); +REPLACE INTO `mob_db` VALUES (1208,'WANDER_MAN','Wander Man','Wanderer',120,19307,1,3389,2466,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1); +REPLACE INTO `mob_db` VALUES (1209,'CRAMP','Cramp','Cramp',82,3898,1,972,1094,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1); +# REPLACE INTO `mob_db` VALUES (1210,'FILAMENTOUS','Filamentous','Filamentous',51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1); +REPLACE INTO `mob_db` VALUES (1211,'BRILIGHT','Brilight','Brilight',71,2772,1,738,831,1,306,339,93,25,51,19,38,32,56,30,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,7938,100,757,220,610,250,509,2600,0,0,0,0,4213,1); +REPLACE INTO `mob_db` VALUES (1212,'IRON_FIST','Iron Fist','Iron Fist',47,4221,0,1292,1368,1,430,590,40,5,1,17,15,10,73,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1); +REPLACE INTO `mob_db` VALUES (1213,'HIGH_ORC','High Orc','High Orc',81,4193,1,1099,1158,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1); +REPLACE INTO `mob_db` VALUES (1214,'CHOCO','Choco','Choco',48,1080,1,369,414,1,120,167,70,30,40,45,32,19,42,20,10,12,0,2,23,0x3095,150,1028,528,360,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1); +REPLACE INTO `mob_db` VALUES (1215,'STEM_WORM','Stem Worm','Stem Worm',84,4530,1,1080,1215,1,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3095,300,1956,756,528,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1); +REPLACE INTO `mob_db` VALUES (1216,'PENOMENA','Penomena','Penomena',85,4589,1,1116,1556,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1); +REPLACE INTO `mob_db` VALUES (1219,'KNIGHT_OF_ABYSS','Knight of Abyss','Abysmal Knight',122,23297,1,4779,4013,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,15014,10,0,0,0,0,4140,1); +REPLACE INTO `mob_db` VALUES (1220,'M_DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,349,218,1,254,313,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1); +REPLACE INTO `mob_db` VALUES (1221,'M_SAVAGE','Savage','Savage',26,2092,0,321,203,1,146,177,16,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1); +# REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1); +# REPLACE INTO `mob_db` VALUES (1223,'L_ORC','Orc','Orc',24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); +# REPLACE INTO `mob_db` VALUES (1224,'L_POISON_SPORE','Poison Spore','Poison Spore',19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1); +# REPLACE INTO `mob_db` VALUES (1225,'L_CHOCO','Choco','Choco',43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1); +# REPLACE INTO `mob_db` VALUES (1226,'L_KOBOLD','Kobold','Kobold',36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); +# REPLACE INTO `mob_db` VALUES (1227,'L_GOBLIN','Goblin','Goblin',25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1); +# REPLACE INTO `mob_db` VALUES (1228,'L_PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1); +REPLACE INTO `mob_db` VALUES (1229,'META_FABRE','Fabre','Fabre',2,63,1,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1); +REPLACE INTO `mob_db` VALUES (1230,'META_PUPA','Pupa','Pupa',2,427,1,2,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1); +REPLACE INTO `mob_db` VALUES (1231,'META_CREAMY','Creamy','Creamy',16,595,1,86,58,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1); +REPLACE INTO `mob_db` VALUES (1232,'META_PECOPECO_EGG','Peco Peco Egg','Peco Peco Egg',3,420,1,4,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1); +# REPLACE INTO `mob_db` VALUES (1233,'CONCEIVE_PECOPECO','Peco Peco','Peco Peco',19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1); +REPLACE INTO `mob_db` VALUES (1234,'PROVOKE_YOYO','Yoyo','Yoyo',19,879,1,122,77,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1); +REPLACE INTO `mob_db` VALUES (1235,'SMOKING_ORC','Smoking Orc','Smoking Orc',24,1400,1,235,144,1,114,136,16,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1); +REPLACE INTO `mob_db` VALUES (1236,'META_ANT_EGG','Ant Egg','Ant Egg',4,420,1,5,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1); +REPLACE INTO `mob_db` VALUES (1237,'META_ANDRE','Andre','Andre',17,688,1,98,64,1,60,71,16,0,1,17,24,20,26,20,10,12,0,4,22,0x118B,300,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1000,935,3000,1001,6,1002,350,757,28,0,0,0,0,4043,1); +REPLACE INTO `mob_db` VALUES (1238,'META_PIERE','Piere','Piere',18,733,1,110,70,1,64,75,24,0,1,18,26,20,27,15,10,12,0,4,22,0x118B,200,1288,288,576,0,0,0,0,0,0,0,955,5700,910,1100,938,600,992,15,1001,5,1002,400,757,31,0,0,0,0,4043,1); +REPLACE INTO `mob_db` VALUES (1239,'META_DENIRO','Deniro','Deniro',19,760,1,122,77,1,68,79,24,0,1,19,30,20,43,10,10,12,0,4,22,0x118B,150,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1); +REPLACE INTO `mob_db` VALUES (1240,'META_PICKY','Picky','Picky',3,80,1,4,3,1,9,12,0,0,1,3,3,0,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,2302,150,507,650,519,350,715,60,0,0,0,0,0,0,4008,1); +REPLACE INTO `mob_db` VALUES (1241,'META_PICKY_','Picky','Picky',4,83,1,5,4,1,8,11,32,0,1,3,3,0,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,5015,7,507,750,519,350,715,60,0,0,0,0,0,0,4011,1); +# Lutie (2.0) +REPLACE INTO `mob_db` VALUES (1242,'MARIN','Marin','Marin',37,987,1,282,317,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,510,75,529,350,5035,1,0,0,0,0,4196,1); +REPLACE INTO `mob_db` VALUES (1243,'SASQUATCH','Sasquatch','Sasquatch',72,3163,1,765,860,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1); +REPLACE INTO `mob_db` VALUES (1244,'JAKK_XMAS','Christmas Jakk','Christmas Jakk',63,2054,1,1002,619,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1); +REPLACE INTO `mob_db` VALUES (1245,'GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,1,254,154,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1); +REPLACE INTO `mob_db` VALUES (1246,'COOKIE_XMAS','Christmas Cookie','Christmas Cookie',37,733,1,282,317,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1); +REPLACE INTO `mob_db` VALUES (1247,'ANTONIO','Antonio','Antonio',10,10,1,3,2,1,13,21,160,0,1,1,1,50,100,100,10,12,1,7,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,5136,1000,5811,1000,604,3000,14550,10000,12225,2000,12132,2000,12354,3000,0,0,0,0,12132,2000); +REPLACE INTO `mob_db` VALUES (1248,'CRUISER','Cruiser','Cruiser',41,919,1,288,324,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x2085,400,1296,1296,432,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1); +REPLACE INTO `mob_db` VALUES (1249,'MYSTCASE','Myst Case','Myst Case',39,879,1,288,324,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x91,400,1248,1248,432,0,0,0,0,0,0,0,530,90,7938,10,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1); +REPLACE INTO `mob_db` VALUES (1250,'CHEPET','Chepet','Chepet',42,4950,0,1315,1854,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3695,400,672,672,288,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1); +REPLACE INTO `mob_db` VALUES (1251,'KNIGHT_OF_WINDSTORM','Knight of Windstorm','Stormy Knight',92,630500,1,413800,302200,2,2677,4110,306,166,126,165,132,104,171,79,10,12,2,0,84,0x37B5,200,468,468,288,206900,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1); +REPLACE INTO `mob_db` VALUES (1252,'GARM','Garm','Hatii',98,1275500,1,758880,613800,3,1862,3595,173,103,122,153,135,116,146,72,10,12,2,2,81,0x37B5,400,608,408,336,379440,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1); +# Comodo (3.0) +REPLACE INTO `mob_db` VALUES (1253,'GARGOYLE','Gargoyle','Gargoyle',100,8772,1,1900,1425,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,912,3880,1039,500,2506,2,1746,5,2619,1,1769,2000,757,238,0,0,0,0,4149,1); +REPLACE INTO `mob_db` VALUES (1254,'RAGGLER','Raggler','Raggler',48,1148,1,369,414,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3695,200,1000,900,384,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1); +REPLACE INTO `mob_db` VALUES (1255,'NERAID','Neraid','Nereid',98,9550,1,1575,1181,1,196,267,100,37,97,45,60,30,69,50,10,12,0,2,22,0x3695,200,776,576,288,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1); +REPLACE INTO `mob_db` VALUES (1256,'PEST','Pest','Pest',89,5747,1,1341,1509,1,304,352,55,33,73,77,48,15,88,25,10,12,0,2,47,0x3695,165,700,648,480,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1); +REPLACE INTO `mob_db` VALUES (1257,'INJUSTICE','Injustice','Injustice',95,7952,1,1574,1997,1,344,460,76,31,77,59,58,65,73,50,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1); +REPLACE INTO `mob_db` VALUES (1258,'GOBLIN_ARCHER','Goblin Archer','Goblin Archer',55,1575,1,450,507,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1); +REPLACE INTO `mob_db` VALUES (1259,'GRYPHON','Gryphon','Gryphon',105,60720,1,9410,5808,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1); +REPLACE INTO `mob_db` VALUES (1260,'DARK_FRAME','Dark Frame','Dark Frame',76,3520,1,992,1115,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1); +REPLACE INTO `mob_db` VALUES (1261,'WILD_ROSE','Wild Rose','Wild Rose',70,2682,1,720,1110,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,2336,1,624,35,528,600,2244,2,0,0,0,0,4257,1); +REPLACE INTO `mob_db` VALUES (1262,'MUTANT_DRAGON','Mutant Dragon','Mutant Dragonoid',65,50706,1,3644,12830,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,100,7296,1500,2527,50,0,0,0,0,4203,1); +REPLACE INTO `mob_db` VALUES (1263,'WIND_GHOST','Wind Ghost','Wind Ghost',80,4008,1,918,1334,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1); +REPLACE INTO `mob_db` VALUES (1264,'MERMAN','Merman','Merman',60,2940,1,616,692,1,125,157,62,8,45,29,30,19,50,10,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,1054,1300,2317,2,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1); +REPLACE INTO `mob_db` VALUES (1265,'COOKIE','Cookie','Cookie',35,666,1,234,264,1,59,84,56,28,15,23,35,12,31,15,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,538,1000,530,150,7938,5,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1); +REPLACE INTO `mob_db` VALUES (1266,'ASTER','Aster','Aster',50,1509,1,405,455,1,85,107,70,7,41,14,15,0,28,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1); +REPLACE INTO `mob_db` VALUES (1267,'CARAT','Carat','Carat',103,9222,1,1944,1458,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1); +REPLACE INTO `mob_db` VALUES (1268,'BLOODY_KNIGHT','Bloody Knight','Bloody Knight',116,68500,1,7348,6511,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,15014,5,0,0,0,0,4320,1); +REPLACE INTO `mob_db` VALUES (1269,'CLOCK','Clock','Clock',81,5556,1,1231,1158,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1); +REPLACE INTO `mob_db` VALUES (1270,'C_TOWER_MANAGER','Clock Tower Manager','Clock Tower Manager',90,6400,1,1305,1467,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1); +REPLACE INTO `mob_db` VALUES (1271,'ALLIGATOR','Alligator','Alligator',57,2430,1,486,548,1,150,187,62,30,47,48,24,15,36,26,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1); +REPLACE INTO `mob_db` VALUES (1272,'DARK_LORD','Dark Lord','Dark Lord',96,1190900,1,714240,558000,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,357120,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,5162,10,0,0,0,0,4168,1); +REPLACE INTO `mob_db` VALUES (1273,'ORC_LADY','Orc Lady','Orc Lady',45,1520,1,380,435,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,7053,4656,15012,3,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1); +REPLACE INTO `mob_db` VALUES (1274,'MEGALITH','Megalith','Megalith',65,2451,1,594,669,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1); +REPLACE INTO `mob_db` VALUES (1275,'ALICE','Alice','Alice',100,9230,1,1630,1222,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,502,1999,480,0,0,0,0,0,0,0,7047,3000,637,40,2407,3,2148,2,5085,1,12128,10,12002,100,0,0,0,0,4253,1); +REPLACE INTO `mob_db` VALUES (1276,'RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',82,4437,1,1049,1332,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,15013,5,1764,2000,1715,3,985,106,0,0,0,0,4187,1); +REPLACE INTO `mob_db` VALUES (1277,'GREATEST_GENERAL','Greatest General','Greatest General',55,1575,1,486,548,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1); +REPLACE INTO `mob_db` VALUES (1278,'STALACTIC_GOLEM','Stalactic Golem','Stalactic Golem',68,2590,1,675,759,1,341,362,230,5,67,47,48,1,63,5,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,2147,5,985,163,0,0,0,0,4223,1); +REPLACE INTO `mob_db` VALUES (1279,'TRI_JOINT','Tri Joint','Tri Joint',66,2530,0,347,297,1,278,306,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3795,200,860,660,624,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1); +REPLACE INTO `mob_db` VALUES (1280,'STEAM_GOBLIN','Steam Goblin','Goblin Steamrider',66,2241,1,680,765,1,280,315,85,5,52,61,32,15,82,25,10,12,1,7,44,0x91,200,1008,1008,528,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1); +REPLACE INTO `mob_db` VALUES (1281,'SAGEWORM','Sage Worm','Sage Worm',70,2872,1,720,810,1,158,279,109,45,39,29,28,71,44,30,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1); +REPLACE INTO `mob_db` VALUES (1282,'KOBOLD_ARCHER','Kobold Archer','Kobold Archer',108,11053,1,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1); +REPLACE INTO `mob_db` VALUES (1283,'CHIMERA','Chimera','Chimera',70,26406,1,5168,4698,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1); +# REPLACE INTO `mob_db` VALUES (1284,'HUGELING','Hugeling','Hugeling',1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0); +# War Of Emperium & Guild Dungeon (4.1) +REPLACE INTO `mob_db` VALUES (1285,'ARCHER_GUARDIAN','Archer Guardian','Archer Guardian',74,28634,1,1,1,12,1120,1600,56,60,95,80,80,90,165,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1286,'KNIGHT_GUARDIAN','Knight Guardian','Knight Guardian',86,30214,1,1,1,2,1280,1560,88,30,110,40,140,65,125,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1287,'SOLDIER_GUARDIAN','Soldier Guardian','Soldier Guardian',56,15670,1,1,1,1,873,1036,56,0,85,56,100,45,103,43,10,12,2,7,20,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1288,'EMPELIUM','Emperium','Emperium',90,700,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1289,'MAYA_PUPLE','Maya Purple','Maya Purple',81,77670,1,11714,6516,2,1447,2000,139,40,95,52,80,95,73,119,10,12,2,4,82,0x37B5,100,1024,1000,480,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1); +REPLACE INTO `mob_db` VALUES (1290,'SKELETON_GENERAL','Skeleton General','Skeleton General',88,6720,0,1368,1553,1,540,579,100,35,72,34,52,31,84,25,10,12,1,1,29,0x3695,150,2276,576,432,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,13035,15,2274,1,0,0,0,0,4221,1); +REPLACE INTO `mob_db` VALUES (1291,'WRAITH_DEAD','Wraith Dead','Wraith Dead',86,10035,0,2518,1824,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,100,568,300,0,0,0,0,4189,1); +REPLACE INTO `mob_db` VALUES (1292,'MINI_DEMON','Mini Demon','Mini Demon',117,19402,1,2700,2025,1,670,784,80,25,130,69,55,56,79,40,10,12,0,6,27,0x3795,150,1000,600,384,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1478,5,0,0,0,0,4204,1); +REPLACE INTO `mob_db` VALUES (1293,'CREMY_FEAR','Creamy Fear','Creamy Fear',77,3420,0,945,1067,2,272,335,76,37,65,36,33,49,66,30,10,12,0,4,24,0x3795,155,1136,720,840,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,2726,5,522,50,0,0,0,0,4298,1); +REPLACE INTO `mob_db` VALUES (1294,'KILLER_MANTIS','Killer Mantis','Killer Mantis',91,7650,0,1485,1674,1,500,550,107,45,82,56,58,45,69,40,10,12,1,4,22,0x3795,175,1528,660,432,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1); +REPLACE INTO `mob_db` VALUES (1295,'OWL_BARON','Owl Baron','Owl Baron',120,21000,1,3042,2282,2,449,650,88,25,72,65,55,102,77,72,10,12,2,6,60,0x37B5,175,1345,824,440,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1629,2,693,100,5045,5,0,0,0,0,4238,1); +REPLACE INTO `mob_db` VALUES (1296,'KOBOLD_LEADER','Kobold Leader','Kobold Leader',112,13520,1,2643,2383,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1); +REPLACE INTO `mob_db` VALUES (1297,'ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',114,27157,1,4104,3199,1,701,901,93,51,126,57,55,69,112,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,12735,10,756,150,757,100,0,0,0,0,4248,1); +REPLACE INTO `mob_db` VALUES (1298,'ZOMBIE_MASTER','Zombie Master','Zombie Master',92,8780,0,1710,1857,1,499,629,78,46,55,60,48,49,72,48,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1); +REPLACE INTO `mob_db` VALUES (1299,'GOBLIN_LEADER','Goblin Leader','Goblin Leader',55,21692,1,4450,5007,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1); +REPLACE INTO `mob_db` VALUES (1300,'CATERPILLAR','Caterpillar','Caterpillar',84,5555,0,1312,1487,1,270,313,100,42,58,37,51,50,45,45,10,12,0,4,22,0x3795,300,1672,672,480,0,0,0,0,0,0,0,949,3000,7054,5335,13034,20,1000,100,997,50,505,12,508,500,0,0,0,0,4289,1); +REPLACE INTO `mob_db` VALUES (1301,'AM_MUT','Am Mut','Am Mut',76,3530,0,945,1067,1,342,391,90,42,58,44,40,35,67,45,10,12,0,6,27,0x3795,200,1156,456,384,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,250,0,0,0,0,4245,1); +REPLACE INTO `mob_db` VALUES (1302,'DARK_ILLUSION','Dark Illusion','Dark Illusion',96,29255,0,4091,4099,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1); +REPLACE INTO `mob_db` VALUES (1303,'GIANT_HONET','Giant Hornet','Giant Hornet',82,3960,0,1080,1215,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,526,550,518,1200,522,12,610,15,1608,3,722,20,1736,15,0,0,0,0,4271,1); +REPLACE INTO `mob_db` VALUES (1304,'GIANT_SPIDER','Giant Spider','Giant Spider',85,4680,0,1242,1418,1,298,350,86,38,71,58,43,38,61,41,10,12,2,4,25,0x3795,165,1468,468,768,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1); +REPLACE INTO `mob_db` VALUES (1305,'ANCIENT_WORM','Ancient Worm','Ancient Worm',83,4140,0,1139,1283,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,2727,5,1096,680,938,3500,7054,2500,0,0,0,0,4249,1); +REPLACE INTO `mob_db` VALUES (1306,'LEIB_OLMAI','Leib Olmai','Leib Olmai',87,6050,0,1314,1485,1,299,363,127,31,72,35,80,35,64,27,10,12,2,2,22,0x3695,175,1260,230,192,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,2717,5,969,5,7053,800,0,0,0,0,4188,1); +REPLACE INTO `mob_db` VALUES (1307,'CAT_O_NINE_TAIL','Cat o\' Nine Tails','Cat o\' Nine Tails',79,23600,0,4148,5792,1,467,547,100,50,72,75,40,50,79,48,10,12,1,6,63,0x37B5,155,1276,576,288,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1); +REPLACE INTO `mob_db` VALUES (1308,'PANZER_GOBLIN','Panzer Goblin','Panzer Goblin',52,1471,1,446,504,1,122,180,60,25,52,60,35,35,68,31,10,12,1,7,44,0x3695,200,960,1008,840,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1); +REPLACE INTO `mob_db` VALUES (1309,'GAJOMART','Gajomart','Gajomart',81,3825,0,1317,1490,1,355,412,98,50,77,47,39,33,78,40,10,12,0,0,83,0x3695,300,1000,1152,828,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,1752,10000,2131,20,994,180,0,0,0,0,4151,1); +REPLACE INTO `mob_db` VALUES (1310,'MAJORUROS','Majoruros','Majoruros',107,11801,1,3090,2200,1,654,1086,111,25,112,58,65,55,72,49,10,12,2,2,43,0x3695,250,1100,960,780,0,0,0,0,0,0,0,941,4413,1361,4,6254,300,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1); +REPLACE INTO `mob_db` VALUES (1311,'GULLINBURSTI','Gullinbursti','Gullinbursti',89,7080,0,1478,1677,1,371,419,108,43,88,54,82,35,63,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1); +# Turtle Dungeon (4.0) +REPLACE INTO `mob_db` VALUES (1312,'TURTLE_GENERAL','Turtle General','Turtle General',110,1442000,1,933120,748440,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,466560,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1); +REPLACE INTO `mob_db` VALUES (1313,'MOBSTER','Mobster','Mobster',58,2253,1,495,557,1,149,172,87,18,72,36,33,21,41,5,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,6264,500,912,2500,525,450,6265,500,0,0,0,0,4317,1); +REPLACE INTO `mob_db` VALUES (1314,'PERMETER','Permeter','Permeter',90,6575,1,1305,1467,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x91,250,1100,483,528,0,0,0,0,0,0,0,967,4413,6263,200,7939,100,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1); +REPLACE INTO `mob_db` VALUES (1315,'ASSULTER','Assaulter','Assaulter',100,8977,1,1992,1779,2,405,472,169,49,100,92,30,20,103,15,10,12,1,7,44,0x3695,200,512,780,504,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,6214,200,912,1240,13300,5,603,1,0,0,0,0,4246,1); +REPLACE INTO `mob_db` VALUES (1316,'SOLIDER','Solider','Solider',92,8768,1,1487,1671,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x91,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1); +REPLACE INTO `mob_db` VALUES (1317,'FUR_SEAL','Fur Seal','Seal',47,1371,1,360,405,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3885,200,1612,622,583,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1); +REPLACE INTO `mob_db` VALUES (1318,'HEATER','Heater','Heater',98,8180,1,1893,1611,2,511,590,199,50,89,49,50,30,88,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,750,697,100,6244,1000,526,140,7054,600,7068,1250,0,0,0,0,4331,1); +REPLACE INTO `mob_db` VALUES (1319,'FREEZER','Freezer','Freezer',94,9990,1,1555,1749,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,170,1260,960,672,0,0,0,0,0,0,0,967,4413,7070,850,7066,1250,912,1800,526,160,6256,200,689,100,0,0,0,0,4319,1); +REPLACE INTO `mob_db` VALUES (1320,'OWL_DUKE','Owl Duke','Owl Duke',92,7381,1,1377,1953,1,480,680,80,45,54,51,45,88,88,50,10,12,2,6,60,0x37B5,195,1345,824,440,0,0,0,0,0,0,0,7071,4413,7063,1500,693,100,747,1,1451,3,1513,2,5045,1,0,0,0,0,4237,1); +REPLACE INTO `mob_db` VALUES (1321,'DRAGON_TAIL','Dragon Tail','Dragon Tail',86,4680,1,1264,1422,1,182,217,63,25,61,65,35,40,52,20,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1); +REPLACE INTO `mob_db` VALUES (1322,'SPRING_RABBIT','Spring Rabbit','Spring Rabbit',88,6684,1,1341,1509,1,288,328,108,42,68,66,35,30,48,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1); +REPLACE INTO `mob_db` VALUES (1323,'SEE_OTTER','Sea Otter','Sea Otter',48,1820,1,428,480,1,83,125,31,18,32,26,33,26,41,28,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1); +# WoE Treasure Boxes +REPLACE INTO `mob_db` VALUES (1324,'TREASURE_BOX1','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1325,'TREASURE_BOX2','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7073,80,658,500,604,10000,984,4850,985,7275,1239,1500,5027,75,1165,8,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1326,'TREASURE_BOX3','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1327,'TREASURE_BOX4','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7074,80,658,500,604,10000,984,4850,985,7275,2108,1000,1306,75,5022,2,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1328,'TREASURE_BOX5','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1329,'TREASURE_BOX6','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7075,80,658,500,604,10000,984,4850,985,7275,2102,834,5019,100,5002,9,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1330,'TREASURE_BOX7','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1331,'TREASURE_BOX8','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7076,80,658,500,604,10000,984,4850,985,7275,2616,500,2334,125,2622,9,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1332,'TREASURE_BOX9','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1333,'TREASURE_BOX10','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7077,80,658,500,604,10000,984,4850,985,7275,2104,500,2331,150,2623,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1334,'TREASURE_BOX11','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1335,'TREASURE_BOX12','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7078,80,658,500,604,10000,984,4850,985,7275,2270,500,1716,150,2256,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1336,'TREASURE_BOX13','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1337,'TREASURE_BOX14','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7079,80,658,500,604,10000,984,4850,985,7275,1238,375,1531,150,2318,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1338,'TREASURE_BOX15','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1339,'TREASURE_BOX16','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7080,80,658,500,604,10000,984,4850,985,7275,2626,300,1472,167,2327,10,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1340,'TREASURE_BOX17','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1341,'TREASURE_BOX18','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7081,80,658,500,604,10000,984,4850,985,7275,1143,250,1237,188,2235,12,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1342,'TREASURE_BOX19','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1343,'TREASURE_BOX20','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7082,80,658,500,604,10000,984,4850,985,7275,617,250,1144,188,5007,19,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1344,'TREASURE_BOX21','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1345,'TREASURE_BOX22','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7083,80,658,500,604,10000,984,4850,985,7275,2508,1000,2336,69,2621,20,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1346,'TREASURE_BOX23','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1347,'TREASURE_BOX24','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7084,80,658,500,604,10000,984,4850,985,7275,2106,1000,1164,50,5025,24,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1348,'TREASURE_BOX25','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1349,'TREASURE_BOX26','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7085,80,658,500,604,10000,984,4850,985,7275,2231,750,2624,46,2286,25,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1350,'TREASURE_BOX27','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1351,'TREASURE_BOX28','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7086,80,658,500,604,10000,984,4850,985,7275,2283,500,2615,41,2234,32,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1352,'TREASURE_BOX29','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1353,'TREASURE_BOX30','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7087,80,658,500,604,10000,984,4850,985,7275,2507,500,2625,38,5045,34,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1354,'TREASURE_BOX31','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1355,'TREASURE_BOX32','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7088,80,658,500,604,10000,984,4850,985,7275,2407,429,2269,250,2317,35,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1356,'TREASURE_BOX33','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1357,'TREASURE_BOX34','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7089,80,658,500,604,10000,984,4850,985,7275,2109,300,2406,273,2258,38,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1358,'TREASURE_BOX35','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1359,'TREASURE_BOX36','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7090,80,658,500,604,10000,984,4850,985,7275,1142,215,2255,60,5017,38,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1360,'TREASURE_BOX37','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1361,'TREASURE_BOX38','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7091,80,658,500,604,10000,984,4850,985,7275,1417,50,5053,50,2229,50,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1362,'TREASURE_BOX39','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1363,'TREASURE_BOX40','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0); +# Yuno (5.0) +REPLACE INTO `mob_db` VALUES (1364,'G_ASSULTER','Assaulter','Assaulter',98,7798,1,0,0,2,225,292,83,49,100,86,30,20,82,15,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1365,'APOCALIPS','Apocalypse','Apocalypse',121,22090,1,3042,2282,2,752,868,136,26,130,53,76,25,89,15,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,12735,100,0,0,0,0,4242,1); +REPLACE INTO `mob_db` VALUES (1366,'LAVA_GOLEM','Lava Golem','Lava Golem',103,8452,1,2232,1674,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,6245,500,0,0,0,0,4184,1); +REPLACE INTO `mob_db` VALUES (1367,'BLAZZER','Blazer','Blazer',101,8121,1,1827,1371,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1); +REPLACE INTO `mob_db` VALUES (1368,'GEOGRAPHER','Geographer','Geographer',73,3866,1,898,1010,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1); +REPLACE INTO `mob_db` VALUES (1369,'GRAND_PECO','Grand Peco','Grand Peco',75,3150,1,887,998,2,316,372,95,30,63,45,50,23,51,25,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1); +REPLACE INTO `mob_db` VALUES (1370,'SUCCUBUS','Succubus','Succubus',119,24960,1,3924,3489,2,670,864,76,48,100,64,45,80,82,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1); +REPLACE INTO `mob_db` VALUES (1371,'FAKE_ANGEL','Fake Angel','False Angel',105,10988,1,2100,1570,2,505,640,106,84,112,67,43,81,68,80,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,0,0,0,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1); +REPLACE INTO `mob_db` VALUES (1372,'GOAT','Goat','Goat',80,3980,1,1065,1197,1,387,447,95,43,61,40,48,40,65,31,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1); +REPLACE INTO `mob_db` VALUES (1373,'LORD_OF_DEATH','Lord of Death','Lord of the Dead',94,603883,1,437121,345252,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,218560,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1); +REPLACE INTO `mob_db` VALUES (1374,'INCUBUS','Incubus','Incubus',120,28000,1,3928,3646,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1); +REPLACE INTO `mob_db` VALUES (1375,'THE_PAPER','The Paper','The Paper',97,8500,1,1530,1148,1,280,390,32,39,77,49,30,5,61,5,10,12,1,0,60,0x3885,350,720,864,504,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1); +REPLACE INTO `mob_db` VALUES (1376,'HARPY','Harpy','Harpy',83,4423,1,1201,1349,1,282,323,69,44,71,39,50,31,96,12,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,1820,20,0,0,0,0,0,0,4325,1); +REPLACE INTO `mob_db` VALUES (1377,'ELDER','Elder','Elder',92,7341,1,1377,2898,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,7099,4000,7117,1500,7939,1000,1564,10,1473,1,616,1,7027,3000,0,0,0,0,4251,1); +REPLACE INTO `mob_db` VALUES (1378,'DEMON_PUNGUS','Demon Pungus','Demon Pungus',91,6466,1,1350,1520,1,428,493,80,52,63,61,30,38,79,43,10,12,0,6,65,0x3985,170,1260,960,672,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1); +REPLACE INTO `mob_db` VALUES (1379,'NIGHTMARE_TERROR','Nightmare Terror','Nightmare Terror',107,13289,1,2443,1832,1,629,755,78,37,118,53,55,63,88,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,1261,1,0,0,0,0,4166,1); +REPLACE INTO `mob_db` VALUES (1380,'DRILLER','Driller','Driller',65,2719,1,594,669,1,181,212,96,18,62,50,25,15,48,5,10,12,1,2,22,0x3885,165,1300,900,336,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1); +REPLACE INTO `mob_db` VALUES (1381,'GRIZZLY','Grizzly','Grizzly',66,2241,1,731,822,1,254,267,109,2,60,26,44,3,78,15,10,12,2,2,63,0x3885,165,1492,1092,192,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,2353,10,0,0,0,0,0,0,0,0,0,0,4162,1); +REPLACE INTO `mob_db` VALUES (1382,'DIABOLIC','Diabolic','Diabolic',104,10572,1,2172,1629,1,544,644,68,61,103,80,53,65,78,25,10,12,0,6,47,0x3985,150,1080,780,180,0,0,0,0,0,0,0,1038,5820,1039,4850,2605,3,984,20,1263,10,0,0,0,0,0,0,0,0,4182,1); +REPLACE INTO `mob_db` VALUES (1383,'EXPLOSION','Explosion','Explosion',100,7813,1,1900,1425,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,7006,5500,7097,2200,7122,3200,756,800,522,400,0,0,0,0,0,0,0,0,4267,1); +REPLACE INTO `mob_db` VALUES (1384,'DELETER','Deleter','Deleter',105,10000,1,2099,1574,1,502,581,111,53,105,55,53,68,67,73,10,12,1,9,43,0x308D,175,1020,720,384,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4158,1); +REPLACE INTO `mob_db` VALUES (1385,'DELETER_','Deleter','Deleter',105,10000,1,2099,1574,1,510,621,114,53,98,65,49,72,57,73,10,12,1,9,43,0x308D,175,1024,624,336,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,2114,10,0,0,0,0,0,0,0,0,4279,1); +REPLACE INTO `mob_db` VALUES (1386,'SLEEPER','Sleeper','Sleeper',81,5160,1,1034,1160,1,274,322,101,29,74,41,57,27,54,27,10,12,1,0,42,0x3885,195,1350,1200,432,0,0,0,0,0,0,0,7124,4947,1056,5335,997,2500,756,300,1226,5,1622,5,7043,1200,0,0,0,0,4228,1); +REPLACE INTO `mob_db` VALUES (1387,'GIG','Gig','Gig',100,8721,1,1769,1327,1,476,599,104,53,92,66,60,48,60,50,10,12,0,2,43,0x3885,170,1264,864,576,0,0,0,0,0,0,0,7125,4365,904,5500,716,150,525,2500,994,850,0,0,0,0,0,0,0,0,4165,1); +REPLACE INTO `mob_db` VALUES (1388,'ARCHANGELING','Archangeling','Arc Angeling',84,25100,1,3253,2910,1,539,639,92,81,32,48,62,99,99,105,10,12,1,8,66,0x37B5,180,1072,672,480,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1); +REPLACE INTO `mob_db` VALUES (1389,'DRACULA','Dracula','Dracula',75,350000,1,312480,245520,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,156240,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1); +REPLACE INTO `mob_db` VALUES (1390,'VIOLY','Violy','Violy',118,20557,1,2862,2147,10,548,668,74,36,90,86,38,76,90,63,10,12,1,7,40,0x2085,170,1356,1056,540,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,1919,50,526,1400,12020,1000,1902,500,0,0,0,0,4209,1); +REPLACE INTO `mob_db` VALUES (1391,'GALAPAGO','Galapago','Galapago',45,1221,1,342,386,1,68,103,70,16,30,28,29,18,30,16,10,12,0,2,22,0x108B,165,1430,1080,1080,0,0,0,0,0,0,0,7053,5335,6263,500,508,3500,606,100,6264,500,5111,1,582,1000,0,0,0,0,4152,1); +REPLACE INTO `mob_db` VALUES (1392,'ROTAR_ZAIRO','Rotar Zairo','Rotar Zairo',48,1088,1,399,449,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1); +REPLACE INTO `mob_db` VALUES (1393,'G_MUMMY','Mummy','Mummy',55,2155,1,0,0,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1394,'G_ZOMBIE','Zombie','Zombie',17,234,1,0,0,1,43,55,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1395,'CRYSTAL_1','Wind Crystal','Wind Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,100); +REPLACE INTO `mob_db` VALUES (1396,'CRYSTAL_2','Earth Crystal','Earth Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,150); +REPLACE INTO `mob_db` VALUES (1397,'CRYSTAL_3','Fire Crystal','Fire Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,150); +REPLACE INTO `mob_db` VALUES (1398,'CRYSTAL_4','Water Crystal','Water Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100); +# Event MVP +REPLACE INTO `mob_db` VALUES (1399,'EVENT_BAPHO','Baphomet','Baphomet',68,1264000,0,78525,25106,3,1847,2267,35,45,1,152,96,85,120,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,0,0,0,0,2256,1550); +# Amatsu (6.0) +REPLACE INTO `mob_db` VALUES (1400,'KARAKASA','Karakasa','Karakasa',72,3092,1,765,860,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1); +REPLACE INTO `mob_db` VALUES (1401,'SHINOBI','Shinobi','Shinobi',95,8000,1,1691,1902,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,7156,5335,2337,2,6214,700,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1); +REPLACE INTO `mob_db` VALUES (1402,'POISON_TOAD','Poison Toad','Poison Toad',87,4876,1,1341,1509,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1); +REPLACE INTO `mob_db` VALUES (1403,'ANTIQUE_FIRELOCK','Antique Firelock','Firelock Soldier',88,7524,1,1352,1512,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1); +REPLACE INTO `mob_db` VALUES (1404,'MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',85,5188,1,1116,1256,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1); +REPLACE INTO `mob_db` VALUES (1405,'TENGU','Tengu','Tengu',98,10196,1,1701,1275,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1); +REPLACE INTO `mob_db` VALUES (1406,'KAPHA','Kapha','Kapha',83,5470,1,1035,1164,1,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1); +# REPLACE INTO `mob_db` VALUES (1407,'DOKEBI_','Dokebi','Dokebi',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Gonryun (6.1) +REPLACE INTO `mob_db` VALUES (1408,'BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',94,7030,1,1555,1749,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1); +REPLACE INTO `mob_db` VALUES (1409,'RICE_CAKE_BOY','Rice Cake Boy','Dumpling Child',60,2098,1,531,597,1,128,150,96,12,50,43,29,5,43,10,10,12,0,7,20,0x91,160,1247,768,420,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1); +REPLACE INTO `mob_db` VALUES (1410,'LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',92,8777,1,1499,1724,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,7164,4365,7939,100,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1); +# REPLACE INTO `mob_db` VALUES (1411,'PEACH_TREE_BULLET','Peach Tree Bullet','Peach Tree Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1412,'EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',96,8266,1,1503,1127,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1); +REPLACE INTO `mob_db` VALUES (1413,'WILD_GINSENG','Wild Ginseng','Hermit Plant',90,6052,1,1409,1586,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,6217,800,1951,1,578,1000,0,0,0,0,4232,1); +# REPLACE INTO `mob_db` VALUES (1414,'GINSENG_BULLET','Ginseng Bullet','Ginseng Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1415,'BABY_LEOPARD','Baby Leopard','Baby Leopard',68,2590,1,500,1016,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1); +REPLACE INTO `mob_db` VALUES (1416,'WICKED_NYMPH','Wicked Nymph','Evil Nymph',97,8491,1,1775,1331,2,340,468,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1); +REPLACE INTO `mob_db` VALUES (1417,'ZIPPER_BEAR','Zipper Bear','Zipper Bear',90,6620,1,1305,1467,1,410,467,130,40,68,51,50,35,58,20,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1); +REPLACE INTO `mob_db` VALUES (1418,'DARK_SNAKE_LORD','Evil Snake Lord','Evil Snake Lord',105,1101000,1,720000,630000,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,78120,607,5500,608,3500,985,5500,7169,5820,10020,5100,1471,80,5012,80,1474,500,7226,900,661,2000,0,0,0,0,4330,1); +# Additional G_Mobs +REPLACE INTO `mob_db` VALUES (1419,'G_FARMILIAR','Familiar','Familiar',24,427,1,0,0,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1420,'G_ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',50,1646,1,0,0,9,90,113,47,10,30,29,20,10,32,5,10,12,1,1,29,0x3885,300,2864,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1421,'G_ISIS','Isis','Isis',59,2092,1,0,0,1,192,229,83,5,58,43,22,5,39,15,10,12,2,6,27,0x3985,200,1384,768,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1422,'G_HUNTER_FLY','Hunter Fly','Hunter Fly',63,2050,1,0,0,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1423,'G_GHOUL','Ghoul','Ghoul',61,2614,1,0,0,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1424,'G_SIDE_WINDER','Side Winder','Side Winder',70,2736,1,0,0,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1425,'G_OBEAUNE','Obeaune','Obeaune',53,2158,1,0,0,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3885,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1426,'G_MARC','Marc','Marc',56,2522,1,0,0,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1427,'G_NIGHTMARE','Nightmare','Nightmare',69,2872,1,0,0,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3985,150,1816,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1428,'G_POISON_SPORE','Poison Spore','Poison Spore',26,456,1,0,0,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1429,'G_ARGIOPE','Argiope','Argiope',75,3105,1,0,0,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3985,300,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1430,'G_ARGOS','Argos','Argos',47,1005,1,0,0,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3985,300,1468,468,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1431,'G_BAPHOMET_','Baphomet Jr.','Baphomet Jr.',57,2035,0,0,0,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3985,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1432,'G_DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3885,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1433,'G_DEVIRUCHI','Deviruchi','Deviruchi',64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3985,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1434,'G_DRAINLIAR','Drainliar','Drainliar',47,1162,1,0,0,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3885,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1435,'G_EVIL_DRUID','Evil Druid','Evil Druid',80,5149,1,0,0,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3885,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1436,'G_JAKK','Jakk','Jakk',63,2054,1,0,0,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3885,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1437,'G_JOKER','Joker','Joker',90,6022,1,0,0,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3885,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1438,'G_KHALITZBURG','Khalitzburg','Khalitzburg',118,23986,1,0,0,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3885,350,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1439,'G_HIGH_ORC','High Orc','High Orc',81,4193,1,0,0,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3885,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1440,'G_STEM_WORM','Stem Worm','Stem Worm',84,4530,1,0,0,2,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3885,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1441,'G_PENOMENA','Penomena','Penomena',85,4589,1,0,0,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3885,400,832,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1442,'G_SASQUATCH','Sasquatch','Sasquatch',72,3163,1,0,0,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3885,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1443,'G_CRUISER','Cruiser','Cruiser',41,919,1,0,0,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x3885,400,1296,1296,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1444,'G_CHEPET','Chepet','Chepet',42,4950,0,0,0,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3885,400,672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1445,'G_RAGGLER','Raggler','Raggler',48,1148,1,0,0,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3885,200,1000,900,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1446,'G_INJUSTICE','Injustice','Injustice',95,7952,1,0,0,1,344,460,76,0,77,59,58,65,73,50,10,12,1,1,47,0x3885,400,770,720,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1447,'G_GRYPHON','Gryphon','Gryphon',105,60720,1,0,0,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x39A5,100,704,504,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1448,'G_DARK_FRAME','Dark Frame','Dark Frame',76,3520,1,0,0,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3985,200,920,720,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1449,'G_MUTANT_DRAGON','Mutant Dragon','Mutant Dragonoid',65,50706,1,0,0,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x39A5,250,1280,1080,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1450,'G_WIND_GHOST','Wind Ghost','Wind Ghost',80,4008,1,0,0,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3985,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1451,'G_MERMAN','Merman','Merman',60,2940,1,0,0,2,125,157,62,8,45,29,30,19,50,10,10,12,1,7,41,0x3885,220,916,816,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1452,'G_ORC_LADY','Orc Lady','Orc Lady',45,1520,1,0,0,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3885,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1453,'G_RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',82,4437,1,0,0,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x3985,200,1152,1152,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1454,'G_TRI_JOINT','Tri Joint','Tri Joint',66,2530,0,0,0,1,178,206,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3985,200,860,660,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1455,'G_KOBOLD_ARCHER','Kobold Archer','Kobold Archer',108,11053,1,0,0,9,586,619,84,5,99,39,48,30,90,25,10,12,0,7,23,0x3885,200,1008,1008,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1456,'G_CHIMERA','Chimera','Chimera',70,26406,1,0,0,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x39A5,200,772,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1457,'G_MANTIS','Mantis','Mantis',65,2719,1,0,0,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3985,200,1528,660,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1458,'G_MARDUK','Marduk','Marduk',73,2893,1,0,0,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3885,300,1540,840,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1459,'G_MARIONETTE','Marionette','Marionette',62,2209,1,0,0,1,166,222,71,35,52,36,28,25,56,20,10,12,0,6,68,0x3985,300,1480,480,1056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1460,'G_MATYR','Matyr','Matyr',58,2087,1,0,0,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3885,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1461,'G_MINOROUS','Minorous','Minorous',58,1893,1,0,0,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3885,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1462,'G_ORC_SKELETON','Orc Skeleton','Orc Skeleton',53,2077,1,0,0,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1463,'G_ORC_ZOMBIE','Orc Zombie','Orc Zombie',51,1908,1,0,0,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1464,'G_PASANA','Pasana','Pasana',79,3510,1,0,0,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3885,165,976,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1465,'G_PETIT','Petite','Petite',86,5799,1,0,0,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3885,200,1624,620,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1466,'G_PETIT_','Petite','Petite',79,3556,1,0,0,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3885,150,1420,1080,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1467,'G_RAYDRIC','Raydric','Raydric',115,18408,1,0,0,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3885,150,824,780,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1468,'G_REQUIEM','Requim','Requim',71,3089,1,0,0,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1469,'G_SKEL_WORKER','Skeleton Worker','Skeleton Worker',44,1240,1,0,0,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1470,'G_ZEROM','Zerom','Zerom',70,2687,1,0,0,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1471,'G_NINE_TAIL','Nine Tail','Nine Tail',72,2783,1,0,0,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3885,150,840,540,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1472,'G_BON_GUN','Bongun','Bongun',59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3885,200,1720,500,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1473,'G_ORC_ARCHER','Orc Archer','Orc Archer',78,4835,1,0,0,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1474,'G_MIMIC','Mimic','Mimic',56,1939,1,0,0,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3885,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1475,'G_WRAITH','Wraith','Wraith',77,5168,1,0,0,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3885,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1476,'G_ALARM','Alarm','Alarm',88,5562,1,0,0,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3885,300,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1477,'G_ARCLOUSE','Arclouse','Arclouze',77,4320,1,0,0,1,269,309,101,36,60,73,45,35,60,15,10,12,1,4,42,0x3985,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1478,'G_RIDEWORD','Rideword','Rideword',74,3222,1,0,0,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3885,150,864,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1479,'G_SKEL_PRISONER','Skeleton Prisoner','Skeleton Prisoner',91,9194,1,0,0,1,266,321,95,41,84,35,60,20,71,15,10,12,1,1,69,0x3885,350,1848,500,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1480,'G_ZOMBIE_PRISONER','Zombie Prisoner','Zombie Prisoner',89,8045,1,0,0,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1481,'G_PUNK','Punk','Punk',82,3869,1,0,0,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3885,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1482,'G_ZHERLTHSH','Zherlthsh','Zealotus',105,61350,1,0,0,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x3885,200,800,792,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1483,'G_RYBIO','Rybio','Rybio',98,8700,1,0,0,1,277,353,109,30,96,52,61,30,80,10,10,12,2,6,40,0x3985,200,1790,1440,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1484,'G_PHENDARK','Phendark','Phendark',102,11000,1,0,0,2,539,614,307,50,111,65,71,20,71,30,10,12,2,7,40,0x3885,175,1744,1344,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1485,'G_MYSTELTAINN','Mysteltainn','Mysteltainn',130,70000,1,0,0,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x39A5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1486,'G_TIRFING','Tirfing','Ogretooth',114,59000,1,0,0,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x39A5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1487,'G_EXECUTIONER','Executioner','Executioner',101,40200,1,0,0,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x39A5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1488,'G_ANOLIAN','Anolian','Anolian',109,15547,1,0,0,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3885,190,900,500,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1489,'G_STING','Sting','Sting',104,14143,1,0,0,1,521,588,146,50,108,49,68,43,87,24,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1490,'G_WANDER_MAN','Wander Man','Wanderer',120,19307,1,0,0,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1491,'G_DOKEBI','Dokebi','Dokebi',68,2820,1,0,0,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Umbala (6.2) +REPLACE INTO `mob_db` VALUES (1492,'INCANTATION_SAMURAI','Incantation Samurai','Samurai Specter',100,901000,1,751680,595080,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,375840,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1); +REPLACE INTO `mob_db` VALUES (1493,'DRYAD','Dryad','Dryad',68,3640,1,837,939,3,266,301,153,8,54,14,40,35,67,10,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,6265,500,1964,1,7939,100,7100,3000,0,0,0,0,4177,1); +REPLACE INTO `mob_db` VALUES (1494,'KIND_OF_BEETLE','Beetle King','Beetle King',55,2061,1,450,507,1,110,162,79,8,53,47,10,0,45,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1); +REPLACE INTO `mob_db` VALUES (1495,'STONE_SHOOTER','Stone Shooter','Stone Shooter',64,2101,1,689,776,10,201,254,88,15,55,55,36,15,77,15,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1); +# REPLACE INTO `mob_db` VALUES (1496,'STONE_SHOOTER_BULLET','Stone Shooter Bullet','Stone Shooter Bullet',(mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1497,'WOODEN_GOLEM','Wooden Golem','Wooden Golem',72,3914,1,950,1079,1,292,334,249,26,69,30,45,5,49,5,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,7936,300,0,0,0,0,4259,1); +REPLACE INTO `mob_db` VALUES (1498,'WOOTAN_SHOOTER','Wootan Shooter','Wootan Shooter',67,3096,1,711,798,10,140,175,91,21,32,23,38,20,69,10,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,7939,100,7182,100,5116,10,0,0,0,0,4260,1); +REPLACE INTO `mob_db` VALUES (1499,'WOOTAN_FIGHTER','Wootan Fighter','Wootan Fighter',67,2327,1,709,798,1,243,279,103,8,63,14,36,5,56,15,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,7939,100,7198,1000,5116,5,0,0,0,0,4261,1); +REPLACE INTO `mob_db` VALUES (1500,'PARASITE','Parasite','Parasite',76,3222,1,923,1337,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,6265,800,0,0,0,0,4309,1); +# REPLACE INTO `mob_db` VALUES (1501,'PARASITE_BULLET','Parasite Bullet','Parasite Bullet... (mode 2181)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Event MVP +REPLACE INTO `mob_db` VALUES (1502,'PORING_V','Pori Pori','Bring it on!',99,95000000,1,78525,25106,1,5000,10000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,500,7126,10000,0,0,0,0,2110,4500); +# Nifflheim (7.0) +REPLACE INTO `mob_db` VALUES (1503,'GIBBET','Gibbet','Gibbet',105,12999,1,1944,1458,1,536,621,116,45,103,56,62,55,61,37,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,7939,100,0,0,0,0,4278,1); +REPLACE INTO `mob_db` VALUES (1504,'DULLAHAN','Dullahan','Dullahan',108,18546,1,2509,1977,2,666,741,111,38,121,29,51,43,87,3,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1); +REPLACE INTO `mob_db` VALUES (1505,'LOLI_RURI','Loli Ruri','Loli Ruri',109,15280,1,2790,2093,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,6246,300,0,0,0,0,4191,1); +REPLACE INTO `mob_db` VALUES (1506,'DISGUISE','Disguise','Disguise',103,13895,1,2232,1674,2,260,342,85,58,92,53,57,75,67,45,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,7216,4850,7221,3686,6247,100,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1); +REPLACE INTO `mob_db` VALUES (1507,'BLOODY_MURDERER','Bloody Murderer','Bloody Murderer',110,14099,1,2724,2244,2,844,942,84,41,120,65,66,41,89,26,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1); +REPLACE INTO `mob_db` VALUES (1508,'QUVE','Quve','Quve',100,11090,1,1638,1229,1,226,323,96,55,84,54,55,50,71,60,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,6245,500,0,0,0,0,0,0,4294,1); +REPLACE INTO `mob_db` VALUES (1509,'LUDE','Lude','Lude',101,11574,1,1692,1269,2,218,296,90,53,97,38,55,82,69,55,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,6246,300,0,0,0,0,4193,1); +REPLACE INTO `mob_db` VALUES (1510,'HYLOZOIST','Hylozoist','Heirozoist',102,12000,1,1876,1406,1,268,349,101,68,97,67,72,88,69,60,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1); +# Pyramid Basement +REPLACE INTO `mob_db` VALUES (1511,'AMON_RA','Amon Ra','Amon Ra',69,319000,1,240120,187920,3,710,1762,213,123,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,120060,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1); +# Louyang (8.0) +REPLACE INTO `mob_db` VALUES (1512,'HYEGUN','Hyegun','Yao Jun',87,6996,1,1283,1445,1,246,294,84,43,69,38,40,20,68,20,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,15013,10,0,0,0,0,0,0,4328,1); +REPLACE INTO `mob_db` VALUES (1513,'CIVIL_SERVANT','Civil Servant','Mao Guai',89,5292,1,1349,1512,2,276,337,90,56,67,76,40,65,62,30,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1); +REPLACE INTO `mob_db` VALUES (1514,'DANCING_DRAGON','Dancing Dragon','Zhu Po Long',82,3943,1,972,1094,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1); +REPLACE INTO `mob_db` VALUES (1515,'GARM_BABY','Garm Baby','Hatii Baby',94,10016,1,1555,1749,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1); +REPLACE INTO `mob_db` VALUES (1516,'INCREASE_SOIL','Increase Soil','Mi Gao',83,5335,1,1201,1529,1,332,362,112,39,67,23,41,49,78,30,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1); +REPLACE INTO `mob_db` VALUES (1517,'LI_ME_MANG_RYANG','Li Me Mang Ryang','Jing Guai',80,5187,1,1065,1197,1,179,220,110,37,61,22,33,35,62,20,10,12,1,6,62,0x3985,165,1120,576,420,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1); +REPLACE INTO `mob_db` VALUES (1518,'BACSOJIN','Bacsojin','White Lady',97,720500,1,668160,542880,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,0,0,0,0,0,0,2234,1); +REPLACE INTO `mob_db` VALUES (1519,'CHUNG_E','Chung E','Green Maiden',49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,0,0,0,0,0,0,0,0,0,0,5042,2); +REPLACE INTO `mob_db` VALUES (1520,'BOILED_RICE','Boiled Rice','Boiled Rice',15,777,1,7,7,1,7,14,0,10,7,7,7,17,17,7,10,12,1,3,21,0x81,170,1152,672,672,0,0,0,0,0,0,0,564,5500,7272,3000,7194,1000,7198,1000,0,0,0,0,0,0,0,0,0,0,0,0); +# Additional G_Mobs & Bosses +REPLACE INTO `mob_db` VALUES (1521,'G_ALICE','Alice','Alice',100,9230,1,0,0,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1522,'G_ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',115,29157,1,0,0,1,701,801,93,27,126,57,55,69,56,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1523,'G_ANTIQUE_FIRELOCK','Antique Firelock','Firelock Soldier',88,7524,1,0,0,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1524,'G_BABY_LEOPARD','Baby Leopard','Baby Leopard',68,2590,1,0,0,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1525,'G_BATHORY','Bathory','Bathory',86,5242,1,0,0,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1526,'G_BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',94,7030,1,0,0,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1527,'G_C_TOWER_MANAGER','Clock Tower Manager','Clock Tower Manager',90,6400,1,0,0,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1528,'G_CLOCK','Clock','Clock',81,5556,1,0,0,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1529,'G_DARK_SNAKE_LORD','Dark Snake Lord','Evil Snake Lord',105,1101000,1,0,0,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1530,'G_DRACULA','Dracula','Dracula',75,350000,1,0,0,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1531,'G_EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',96,8266,1,0,0,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1532,'G_EXPLOSION','Explosion','Explosion',100,7813,1,0,0,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1533,'G_FUR_SEAL','Fur Seal','Seal',47,1371,1,0,0,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3095,200,1612,622,583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1534,'G_GOBLIN_1','Goblin','Goblin',48,1058,1,0,0,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1535,'G_GOBLIN_2','Goblin','Goblin',44,931,1,0,0,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1536,'G_GOBLIN_3','Goblin','Goblin',44,930,1,0,0,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1537,'G_GOBLIN_4','Goblin','Goblin',49,1494,1,0,0,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1538,'G_GOBLIN_5','Goblin','Goblin',56,2342,1,0,0,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1539,'G_GOBLIN_LEADER','Goblin Leader','Goblin Leader',55,21692,1,0,0,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1540,'G_GOLEM','Golem','Golem',61,2245,1,0,0,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1541,'G_GREATEST_GENERAL','Greatest General','Greatest General',55,1575,1,0,0,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1542,'G_INCANTATION_SAMURA','Incantation Samurai','Incantation Samurai',100,901000,1,0,0,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1543,'G_KAPHA','Kapha','Kapha',83,5470,1,0,0,3,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1544,'G_KARAKASA','Karakasa','Karakasa',72,3092,1,0,0,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1545,'G_KOBOLD_1','Kobold','Kobold',107,10483,1,0,0,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1546,'G_KOBOLD_2','Kobold','Kobold',102,9152,1,0,0,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1547,'G_KOBOLD_3','Kobold','Kobold',101,9078,1,0,0,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1548,'G_KOBOLD_LEADER','Kobold Leader','Kobold Leader',112,13520,1,0,0,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1549,'G_LAVA_GOLEM','Lava Golem','Lava Golem',103,8452,1,0,0,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1550,'G_LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',92,8777,1,0,0,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1551,'G_MARSE','Marse','Marse',47,1456,1,0,0,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1552,'G_MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',85,5188,1,0,0,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1553,'G_MYST','Myst','Myst',49,1223,1,0,0,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1554,'G_NIGHTMARE_TERROR','Nightmare Terror','Nightmare Terror',107,13289,1,0,0,1,629,755,78,37,118,53,55,63,53,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1555,'G_PARASITE','Parasite','Parasite',76,3222,1,0,0,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1556,'G_POISON_TOAD','Poison Toad','Poisonous Toad',87,4876,1,0,0,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1557,'G_ROTAR_ZAIRO','Rotar Zairo','Rotar Zairo',48,1088,1,0,0,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1558,'G_SAND_MAN','Sandman','Sandman',61,2887,1,0,0,1,156,212,126,25,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1559,'G_SCORPION','Scorpion','Scorpion',16,153,1,0,0,1,39,46,16,5,14,15,10,5,33,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1560,'G_SHINOBI','Shinobi','Shinobi',95,8000,1,0,0,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1561,'G_SMOKIE','Smokie','Smokie',29,591,1,0,0,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1562,'G_SOLDIER_SKELETON','Soldier Skeleton','Soldier Skeleton',34,804,1,0,0,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1563,'G_TENGU','Tengu','Tengu',98,10196,1,0,0,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1564,'G_WICKED_NYMPH','Wicked Nymph','Evil Nymph',97,8491,1,0,0,2,218,346,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1565,'G_WILD_GINSENG','Wild Ginseng','Hermit Plant',90,6052,1,0,0,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1566,'G_WRAITH_DEAD','Wraith Dead','Wraith Dead',86,10035,0,0,0,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1567,'G_ANCIENT_WORM','Ancient Worm','Ancient Worm',83,4140,0,0,0,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1568,'G_ANGELING','Angeling','Angeling',77,19800,1,0,0,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1569,'G_BLOODY_KNIGHT','Bloody Knight','Bloody Knight',116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1570,'G_CRAMP','Cramp','Cramp',82,3898,1,0,0,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1571,'G_DEVIACE','Deviace','Deviace',60,3135,1,0,0,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1572,'G_DROPS','Drops','Drops',2,45,1,0,0,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1573,'G_ELDER','Elder','Elder',92,7341,1,0,0,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1574,'G_ELDER_WILOW','Elder Willow','Elder Willow',34,599,1,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1575,'G_FLORA','Flora','Flora',59,2301,1,0,0,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1576,'G_GHOSTRING','Ghostring','Ghostring',90,26700,1,0,0,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1577,'G_GOBLIN_ARCHER','Goblin Archer','Goblin Archer',55,1575,1,0,0,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1578,'G_HORONG','Horong','Horong',66,2304,1,0,0,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1579,'G_HYDRA','Hydra','Hydra',34,854,1,0,0,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1580,'G_INCUBUS','Incubus','Incubus',120,28000,1,0,0,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1581,'G_VOCAL','Vocal','Vocal',18,3317,1,0,0,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1582,'DEVILING','Deviling','Deviling',66,16890,1,2281,2379,1,298,481,67,70,48,50,33,75,77,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1); +REPLACE INTO `mob_db` VALUES (1583,'TAO_GUNKA','Tao Gunka','Tao Gunka',110,1252000,1,900000,720000,2,2890,4150,404,143,135,175,98,110,199,66,10,12,2,6,60,0x37B5,150,1020,288,144,450000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,12738,200,2231,5,0,0,0,0,4302,1); +# Ayothaya (9.0) +REPLACE INTO `mob_db` VALUES (1584,'TAMRUAN','Tamruan','Tamruan',73,3195,1,898,1010,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,12736,300,0,0,0,0,0,0,4304,1); +REPLACE INTO `mob_db` VALUES (1585,'MIME_MONKEY','Mime Monkey','Mime Monkey',40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1586,'LEAF_CAT','Leaf Cat','Leaf Cat',64,2635,1,594,669,1,140,181,88,16,46,16,12,45,33,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1); +REPLACE INTO `mob_db` VALUES (1587,'KRABEN','Kraben','Kraben',70,2901,1,510,1095,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1); +# Additional G_Mobs & Xmas_Orc +REPLACE INTO `mob_db` VALUES (1588,'ORC_XMAS','Christmas Orc','Christmas Orc',24,1400,1,235,144,1,104,126,16,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1); +REPLACE INTO `mob_db` VALUES (1589,'G_MANDRAGORA','Mandragora','Mandragora',13,156,1,0,0,4,38,41,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1590,'G_GEOGRAPHER','Geographer','Geographer',73,3866,1,0,0,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1591,'A_LUNATIC','Lunatic','Lunatic',29,2334,0,0,0,1,221,245,16,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1592,'A_MOBSTER','Gangster','Gangster',40,8000,0,0,0,1,300,355,32,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1593,'A_ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',52,8613,0,0,0,1,830,930,64,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1594,'G_FREEZER','Freezer','Freezer',94,9990,1,0,0,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1595,'G_MARIN','Marin','Marin',37,987,1,0,0,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1596,'G_TAMRUAN','Tamruan','Tamruan',73,3195,1,0,0,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1597,'G_GARGOYLE','Gargoyle','Gargoyle',100,8772,1,0,0,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1598,'G_BLAZZER','Blazzer','Blazzer',101,8121,1,0,0,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1599,'G_WHISPER_BOSS','Giant Whisper','Giant Whisper',66,2570,0,0,0,1,182,241,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1600,'G_HEATER','Heater','Heater',96,7480,1,0,0,2,495,574,186,42,75,49,50,30,80,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1601,'G_PERMETER','Permeter','Permeter',90,6575,1,0,0,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x3695,250,1100,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1602,'G_SOLIDER','Solider','Solider',92,8768,1,0,0,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1603,'G_BIGFOOT','Bigfoot','Bigfoot',29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1604,'G_GIANT_HONET','Giant Hornet','Giant Hornet',82,3960,0,0,0,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1605,'G_DARK_ILLUSION','Dark Illusion','Dark Illusion',96,29255,0,0,0,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1606,'G_GARM_BABY','Garm Baby','Garm Baby',94,10016,1,0,0,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1607,'G_GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,1,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1608,'G_THIEF_BUG__','Thief Bug Male','Thief Bug Male',19,583,1,0,0,1,76,88,24,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1609,'G_DANCING_DRAGON','Dancing Dragon','Zhu Po Long',82,3943,1,2727,692,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,0,0,0,0,668,100); +REPLACE INTO `mob_db` VALUES (1610,'A_MUNAK','Munak','Munak',30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100); +REPLACE INTO `mob_db` VALUES (1611,'A_BON_GUN','Bongun','Bongun',59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100); +REPLACE INTO `mob_db` VALUES (1612,'A_HYEGUN','Hyegun','Yao Jun',56,9981,0,0,0,1,710,1128,20,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100); +# Einbroch (10.1) +REPLACE INTO `mob_db` VALUES (1613,'METALING','Metaling','Metaling',81,4300,1,954,1074,1,171,210,69,28,58,30,49,17,50,5,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1); +REPLACE INTO `mob_db` VALUES (1614,'MINERAL','Mineral','Mineral',96,8300,1,1503,1127,1,578,635,127,23,70,61,40,50,62,50,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1); +REPLACE INTO `mob_db` VALUES (1615,'OBSIDIAN','Obsidian','Obsidian',97,10088,1,1652,1239,1,590,670,129,37,84,38,40,60,53,50,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1); +REPLACE INTO `mob_db` VALUES (1616,'PITMAN','Pitman','Pitman',90,7208,1,1409,1586,1,182,242,104,48,78,56,45,35,50,30,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,7318,3000,7319,500,6244,900,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1); +REPLACE INTO `mob_db` VALUES (1617,'WASTE_STOVE','Waste Stove','Old Stove',92,7400,1,1377,1548,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,300,1152,528,360,0,0,0,0,0,0,0,7323,1000,7068,1000,6215,200,625,50,7939,100,604,50,7319,3800,0,0,0,0,4332,1); +REPLACE INTO `mob_db` VALUES (1618,'UNGOLIANT','Ungoliant','Ungoliant',94,17070,1,3501,1913,1,689,733,108,28,71,70,58,43,92,38,10,12,2,4,45,0x3795,350,420,576,420,0,0,0,0,0,0,0,7316,4500,1014,3500,1013,1000,7289,1500,7326,2500,718,1500,2406,500,0,0,0,0,4336,1); +REPLACE INTO `mob_db` VALUES (1619,'PORCELLIO','Porcellio','Porcellio',85,5544,1,1294,1455,1,266,319,79,37,67,48,28,40,62,30,10,12,0,4,62,0x183,150,720,360,360,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1); +REPLACE INTO `mob_db` VALUES (1620,'NOXIOUS','Noxious','Noxious',87,5430,1,888,1785,1,255,326,117,66,58,45,60,55,57,50,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,6213,600,6215,300,603,1,0,0,0,0,4334,1); +REPLACE INTO `mob_db` VALUES (1621,'VENOMOUS','Venomous','Venomous',87,4770,1,1188,1337,1,287,337,104,65,61,28,60,55,45,50,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,6213,300,6215,600,603,1,0,0,0,0,4333,1); +REPLACE INTO `mob_db` VALUES (1622,'TEDDY_BEAR','Teddy Bear','Teddy Bear',91,7238,1,1350,1799,1,371,433,106,39,57,81,66,20,68,44,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1); +REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',100,1001000,1,720000,576000,1,2315,3291,317,96,153,143,110,128,165,84,10,12,2,0,60,0x37B5,220,128,1104,240,360000,607,5500,5104,3500,732,5500,7093,6000,1230,5,13017,1,617,1000,7327,5000,1242,100,1531,40,0,0,0,0,4342,1); +REPLACE INTO `mob_db` VALUES (1624,'G_WASTE_STOVE','Waste Stove','Old Stove',92,7400,1,0,0,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1625,'G_PORCELLIO','Porcellio','Porcellio',85,5544,1,922,624,1,165,218,79,37,67,48,28,40,62,30,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Hellion Revenant +REPLACE INTO `mob_db` VALUES (1626,'G_DARK_PRIEST','Hellion Revenant','Hellion Revenant',79,8600,1,1,1,2,178,238,88,50,54,63,40,78,56,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0); +# Lighthalzen (10.2) +REPLACE INTO `mob_db` VALUES (1627,'ANOPHELES','Anopheles','Anopheles',95,7238,1,1691,1902,1,242,260,7,10,64,60,42,58,88,42,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1); +REPLACE INTO `mob_db` VALUES (1628,'MOLE','Mole','Holden',85,6228,1,1206,1358,9,260,309,82,16,53,65,31,30,48,31,10,12,0,2,42,0x1089,300,1400,960,504,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1); +REPLACE INTO `mob_db` VALUES (1629,'HILL_WIND','Hill Wind','Hill Wind',43,2870,0,340,340,3,290,480,9,15,21,50,31,50,59,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1); +REPLACE INTO `mob_db` VALUES (1630,'BACSOJIN_','Bacsojin','White Lady',97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x39A5,130,576,960,480,334080,607,5500,2513,2000,617,5000,1020,5500,603,5000,617,3000,7165,3000,7166,1000,2700,100,2234,10,0,0,0,0,4372,1); +REPLACE INTO `mob_db` VALUES (1631,'CHUNG_E_','Chung E','Green Maiden',82,3901,0,1049,1481,2,247,310,69,15,66,79,36,48,66,43,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,0,0,0,0,5042,50,0,0,0,0,4373,1); +REPLACE INTO `mob_db` VALUES (1632,'GREMLIN','Gremlin','Gremlin',118,20313,1,3091,2318,1,606,744,76,25,141,75,48,61,90,37,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1); +REPLACE INTO `mob_db` VALUES (1633,'BEHOLDER','Beholder','Beholder',120,19280,1,3285,2463,6,588,718,50,30,96,82,65,107,94,82,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1); +# Normal advanced class mobs +REPLACE INTO `mob_db` VALUES (1634,'SEYREN','Seyren','Seyren Windsor',142,194962,1,10386,7790,1,1670,1987,166,12,142,69,86,49,132,55,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,6223,10,2229,12,2317,1,13421,100,0,0,0,0,4358,1); +REPLACE INTO `mob_db` VALUES (1635,'EREMES','Eremes','Eremes Guile',140,190525,1,10329,6846,1,1503,1674,122,12,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6223,1,2514,1,1262,3,1264,30,678,110,1284,100,0,0,0,0,4360,1); +REPLACE INTO `mob_db` VALUES (1636,'HARWORD','Harword','Howard Alt-Eisen',142,348100,1,10854,7241,1,1308,1590,131,10,138,79,62,53,82,48,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,2514,1,1311,100,1361,110,2104,10,2318,1,6223,10,0,0,0,0,4362,1); +REPLACE INTO `mob_db` VALUES (1637,'MAGALETA','Magaleta','Margaretha Sorin',140,220800,1,9895,7421,1,851,1405,108,93,126,74,71,123,99,65,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,1647,100,6223,1,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1); +REPLACE INTO `mob_db` VALUES (1638,'SHECIL','Shecil','Cecil Damon',141,190255,1,10103,7577,14,1158,1406,76,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,6223,1,1745,100,0,0,0,0,4368,1); +REPLACE INTO `mob_db` VALUES (1639,'KATRINN','Katrinn','Kathryne Keyron',141,219780,1,9207,6905,1,726,1449,77,74,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6223,1,1646,100,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1); +# MVP Slaves +REPLACE INTO `mob_db` VALUES (1640,'G_SEYREN','Lord Knight Seyren','Lord Knight Seyren',160,2680000,1,0,0,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10); +REPLACE INTO `mob_db` VALUES (1641,'G_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',160,1230000,1,0,0,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10); +REPLACE INTO `mob_db` VALUES (1642,'G_HARWORD','Whitesmith Harword','Whitesmith Howard',160,3750000,1,0,0,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10); +REPLACE INTO `mob_db` VALUES (1643,'G_MAGALETA','High Priest Magaleta','High Priest Margaretha',160,2800000,1,0,0,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10); +REPLACE INTO `mob_db` VALUES (1644,'G_SHECIL','Sniper Shecil','Sniper Cecil',160,4140000,1,0,0,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10); +REPLACE INTO `mob_db` VALUES (1645,'G_KATRINN','High Wizard Katrinn','High Wizard Kathryne',160,4500000,1,0,0,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10); +# MVP Monsters +REPLACE INTO `mob_db` VALUES (1646,'B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',160,4680000,1,4642560,3481920,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,2321280,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1); +REPLACE INTO `mob_db` VALUES (1647,'B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',160,4230000,1,4185000,3147120,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,2092500,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1); +REPLACE INTO `mob_db` VALUES (1648,'B_HARWORD','Whitesmith Harword','Whitesmith Howard',160,6750000,1,3555000,2664000,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1777500,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1); +REPLACE INTO `mob_db` VALUES (1649,'B_MAGALETA','High Priest Magaleta','High Priest Margaretha',160,4800000,1,3465000,2520000,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,1732500,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1); +REPLACE INTO `mob_db` VALUES (1650,'B_SHECIL','Sniper Shecil','Sniper Cecil',160,4140000,1,4106880,3080160,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2053440,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1); +REPLACE INTO `mob_db` VALUES (1651,'B_KATRINN','High Wizard Katrinn','High Wizard Kathryne',160,4500000,1,3240000,2430000,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,1620000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1); +# 1'st Class Mobs +REPLACE INTO `mob_db` VALUES (1652,'YGNIZEM','Ygnizem','Egnigem Cenia',136,44327,1,5229,4461,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1); +REPLACE INTO `mob_db` VALUES (1653,'WHIKEBAIN','Whikebain','Wickebine Tres',132,43191,1,5094,4721,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,1,13004,10,0,0,0,0,4348,1); +REPLACE INTO `mob_db` VALUES (1654,'ARMAIA','Armaia','Armeyer Dinze',134,46878,1,4895,4909,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1); +REPLACE INTO `mob_db` VALUES (1655,'EREND','Erend','Errende Ebecee',133,42764,1,4860,4545,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1); +REPLACE INTO `mob_db` VALUES (1656,'KAVAC','Kavac','Kavach Icarus',135,43079,1,5103,4276,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1); +REPLACE INTO `mob_db` VALUES (1657,'RAWREL','Rawrel','Laurell Weinder',133,40282,1,4500,4477,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1); +# 1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs. +REPLACE INTO `mob_db` VALUES (1658,'B_YGNIZEM','Ygnizem','Egnigem Cenia',141,2910088,1,1054400,1860000,1,3057,5408,373,175,188,177,165,142,185,105,10,12,1,7,43,0x37B5,100,1008,864,288,527200,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,0,0,0,0,4352,1); +REPLACE INTO `mob_db` VALUES (1659,'G_WHIKEBAIN','Whikebain','Wickebine Tres',132,43191,1,0,0,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1660,'G_ARMAIA','Armaia','Armeyer Dinze',134,46878,1,0,0,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1661,'G_EREND','Erend','Errende Ebecee',133,42764,1,0,0,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1662,'G_KAVAC','Kavac','Kavach Icarus',135,43079,1,0,0,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1663,'G_RAWREL','Rawrel','Laurell Weinder',133,40282,1,0,0,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Juperos +REPLACE INTO `mob_db` VALUES (1664,'POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,800,600,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1665,'POTON_CANON_1','Photon Cannon','Photon Cannon',67,7500,0,600,800,9,700,800,24,30,1,40,30,40,86,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1666,'POTON_CANON_2','Photon Cannon','Photon Cannon',64,7100,0,800,600,9,800,900,13,30,1,40,21,29,80,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1667,'POTON_CANON_3','Photon Cannon','Photon Cannon',65,7800,0,600,800,9,700,800,24,30,1,40,23,30,90,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1668,'ARCHDAM','Archdam','Archdam',119,20700,1,2862,2147,3,603,722,98,15,118,64,70,65,66,25,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1); +REPLACE INTO `mob_db` VALUES (1669,'DIMIK','Dimik','Dimik',77,10000,0,0,0,5,1040,1880,45,28,15,69,40,15,63,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1); +REPLACE INTO `mob_db` VALUES (1670,'DIMIK_1','Dimik','Dimik',116,17552,1,2916,2187,7,656,763,93,28,114,90,66,52,122,41,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,6216,70,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1); +REPLACE INTO `mob_db` VALUES (1671,'DIMIK_2','Dimik','Dimik',116,23840,1,2916,2187,5,630,733,76,21,118,72,62,55,88,38,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1); +REPLACE INTO `mob_db` VALUES (1672,'DIMIK_3','Dimik','Dimik',116,21920,1,2916,2187,5,610,705,114,24,115,64,68,50,82,35,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1); +REPLACE INTO `mob_db` VALUES (1673,'DIMIK_4','Dimik','Dimik',116,16940,1,2916,2187,5,699,823,98,28,112,79,72,53,86,47,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,6216,70,0,0,0,0,4370,1); +REPLACE INTO `mob_db` VALUES (1674,'MONEMUS','Monemus','Monemus',88,80000,1,0,0,5,2400,3400,87,25,0,1,90,24,144,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1675,'VENATU','Venatu','Venatu',77,12717,1,0,0,2,652,779,96,20,99,56,58,62,48,30,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1); +REPLACE INTO `mob_db` VALUES (1676,'VENATU_1','Venatu','Venatu',113,15900,1,2448,1836,2,687,772,95,20,109,54,60,50,60,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7356,350,6216,100,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1); +REPLACE INTO `mob_db` VALUES (1677,'VENATU_2','Venatu','Venatu',113,14717,1,2637,1980,2,655,762,86,20,99,73,58,62,98,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1); +REPLACE INTO `mob_db` VALUES (1678,'VENATU_3','Venatu','Venatu',113,21040,1,2643,1983,2,698,798,104,16,103,50,62,57,69,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1); +REPLACE INTO `mob_db` VALUES (1679,'VENATU_4','Venatu','Venatu',113,21810,1,2643,1983,2,656,745,74,15,106,69,61,55,72,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,6216,100,0,0,0,0,4369,1); +REPLACE INTO `mob_db` VALUES (1680,'HILL_WIND_1','Hill Wind','Hill Wind',101,9100,1,1900,1425,3,308,375,90,37,105,69,59,35,80,25,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1); +REPLACE INTO `mob_db` VALUES (1681,'GEMINI','Gemini-S58','Gemini-S58',135,108999,1,4725,3543,3,785,1107,89,45,115,92,81,92,94,66,10,12,1,0,21,0x39A5,200,1872,360,864,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,12040,300,0,0,0,0,4354,1); +REPLACE INTO `mob_db` VALUES (1682,'REMOVAL','Removal','Remover',121,32235,0,3772,2829,1,713,833,110,47,127,50,82,35,89,50,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1); +REPLACE INTO `mob_db` VALUES (1683,'G_POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,0,0,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1684,'G_ARCHDAM','Archdam','Archdam',119,20700,1,0,0,3,603,722,98,15,118,64,70,65,66,25,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1685,'APOCALIPS_H','Vesper','Vesper',128,3802000,1,2700000,2250000,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,100000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1); +REPLACE INTO `mob_db` VALUES (1686,'ORC_BABY','Orc Baby','Orc Baby',43,1122,1,315,354,1,64,75,49,3,25,1,32,20,31,35,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1); +REPLACE INTO `mob_db` VALUES (1687,'GREEN_IGUANA','Green Iguana','Grove',55,2090,1,486,548,9,139,174,96,18,58,42,22,5,45,17,10,12,1,2,42,0x83,200,1152,1152,480,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,6264,500,0,0,0,0,4377,1); +REPLACE INTO `mob_db` VALUES (1688,'LADY_TANEE','Lady Tanee','Lady Tanee',80,360000,1,334080,261000,14,1760,2685,141,104,86,108,88,121,200,71,10,12,2,3,64,0x1A4,100,576,432,360,167040,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1); +REPLACE INTO `mob_db` VALUES (1689,'G_BACSOJIN','Bacsojin','White Lady',97,720500,1,0,0,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1690,'G_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',12,15,1,0,0,1,0,0,160,99,1,1,1,1,1,1,10,12,1,2,20,0xC3,160,1120,552,511,0,0,0,0,0,0,0,6005,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1691,'G_KRABEN','Kraben','Kraben',70,2901,1,0,0,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0); +# Thanatos Tower (10.3) +REPLACE INTO `mob_db` VALUES (1692,'BREEZE','Breeze','Breeze',92,6755,1,1598,1797,2,379,431,83,32,75,101,46,35,66,55,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1); +REPLACE INTO `mob_db` VALUES (1693,'PLASMA_Y','Plasma','Plasma',119,20600,1,2111,2882,1,615,750,130,45,141,94,75,91,103,50,10,12,0,0,88,0x3885,150,1056,1056,336,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,7938,300,0,0,0,0,0,0,4389,1); +REPLACE INTO `mob_db` VALUES (1694,'PLASMA_R','Plasma','Plasma',118,16789,1,3549,2661,1,835,935,111,12,147,77,66,65,95,50,10,12,0,0,83,0x3885,150,912,1248,576,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1); +REPLACE INTO `mob_db` VALUES (1695,'PLASMA_G','Plasma','Plasma',116,24975,1,3348,2511,1,608,720,120,3,121,60,58,62,73,50,10,12,0,0,82,0x3885,100,1000,500,1000,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1); +REPLACE INTO `mob_db` VALUES (1696,'PLASMA_P','Plasma','Plasma',117,18955,1,3348,2511,1,623,762,78,49,130,71,72,70,87,50,10,12,0,0,87,0x3885,350,768,1440,672,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1); +REPLACE INTO `mob_db` VALUES (1697,'PLASMA_B','Plasma','Plasma',115,24651,1,3181,2384,1,428,498,51,18,124,74,60,55,66,50,10,12,0,0,81,0x3885,150,720,360,360,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1); +REPLACE INTO `mob_db` VALUES (1698,'DEATHWORD','Deathword','Death Word',114,16390,1,2565,1923,1,596,721,68,40,91,64,53,88,99,54,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1); +REPLACE INTO `mob_db` VALUES (1699,'ANCIENT_MIMIC','Ancient Mimic','Ancient Mimic',112,14700,1,2448,2069,1,685,769,100,40,121,70,63,43,101,67,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1); +REPLACE INTO `mob_db` VALUES (1700,'OBSERVATION','Observation','Dame of Sentinel',127,34538,1,3735,2801,2,643,795,98,55,99,75,52,55,106,80,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1); +REPLACE INTO `mob_db` VALUES (1701,'SHELTER','Shelter','Mistress of Shelter',125,27000,1,4010,3051,2,691,935,80,89,99,66,41,103,95,89,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1); +REPLACE INTO `mob_db` VALUES (1702,'RETRIBUTION','Retribution','Baroness of Retribution',121,22152,1,3528,2463,2,798,1102,61,35,112,60,45,77,78,70,10,12,1,8,67,0x33B5,120,360,480,360,0,0,0,0,0,0,0,7440,400,2621,1,12040,50,723,1000,2506,5,1158,10,7442,50,0,0,0,0,4391,1); +REPLACE INTO `mob_db` VALUES (1703,'SOLACE','Solace','Lady Solace',123,24729,1,3758,2819,2,667,832,96,96,106,65,61,42,82,72,10,12,1,8,66,0x33B5,180,576,420,360,0,0,0,0,0,0,0,7441,200,2621,1,12040,50,718,1000,1910,50,1909,100,7442,50,0,0,0,0,4394,1); +REPLACE INTO `mob_db` VALUES (1704,'THA_ODIUM','Thanatos Odium','Odium of Thanatos',129,40200,1,3960,3666,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x37B5,100,432,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7438,10000,616,10,2520,1000,0,0,0,0,0,0,4396,1); +REPLACE INTO `mob_db` VALUES (1705,'THA_DESPERO','Thanatos Despero','Despero of Thanatos',129,41111,1,3960,3666,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x37B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,2419,1000,0,0,0,0,0,0,4397,1); +REPLACE INTO `mob_db` VALUES (1706,'THA_MAERO','Thanatos Maero','Maero of Thanatos',129,42599,1,3960,3666,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x37B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,2354,1000,0,0,0,0,0,0,4395,1); +REPLACE INTO `mob_db` VALUES (1707,'THA_DOLOR','Thanatos Dolor','Dolor of Thanatos',129,45000,1,3960,3666,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x37B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,5128,1000,0,0,0,0,0,0,4398,1); +REPLACE INTO `mob_db` VALUES (1708,'THANATOS','Thanatos','Thanatos Phantom',99,1445660,1,1299400,1930554,3,3812,5483,364,35,100,129,30,86,206,32,10,12,2,6,88,0x37B5,120,115,816,504,649700,617,5500,603,5000,732,2000,7444,1000,2519,1000,7450,5000,2342,5000,2412,5000,2515,1000,2655,500,0,0,0,0,4399,1); +REPLACE INTO `mob_db` VALUES (1709,'G_THA_ODIUM','Thanatos Odium','Odium of Thanatos',129,40200,1,0,0,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x33B5,100,115,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1710,'G_THA_DESPERO','Thanatos Despero','Despero of Thanatos',129,41111,1,0,0,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x33B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1711,'G_THA_MAERO','Thanatos Maero','Maero of Thanatos',129,42599,1,0,0,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x33B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1712,'G_THA_DOLOR','Thanatos Dolor','Dolor of Thanatos',129,45000,1,0,0,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Abyss Lake +REPLACE INTO `mob_db` VALUES (1713,'ACIDUS','Acidus','Acidus',130,48430,1,4520,3389,2,622,1017,101,90,109,78,50,55,77,55,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,7938,500,1035,4000,7444,5,1036,3589,7448,800,1269,10,2114,50,0,0,0,0,4378,1); +REPLACE INTO `mob_db` VALUES (1714,'FERUS','Ferus','Ferus',126,25668,1,3985,2989,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,578,2200,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1); +REPLACE INTO `mob_db` VALUES (1715,'NOVUS','Novus','Novus',90,6670,1,1305,1505,1,388,445,95,48,74,56,57,25,90,45,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1); +REPLACE INTO `mob_db` VALUES (1716,'ACIDUS_','Acidus','Acidus',130,40718,1,4520,3389,2,703,861,98,47,106,110,61,53,95,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1); +REPLACE INTO `mob_db` VALUES (1717,'FERUS_','Ferus','Ferus',126,39054,1,4185,2989,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,579,5100,1035,1000,0,0,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1); +REPLACE INTO `mob_db` VALUES (1718,'NOVUS_','Novus','Novus',84,5028,1,1080,1215,1,266,314,88,28,53,43,43,55,90,58,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1); +REPLACE INTO `mob_db` VALUES (1719,'DETALE','Detale','Detardeurus',135,6005000,1,4320000,3420000,3,4072,6734,364,166,165,153,171,136,185,72,10,12,2,9,67,0x37B5,250,432,936,360,2160000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1); +REPLACE INTO `mob_db` VALUES (1720,'HYDRO','Hydro','Hydrolancer',121,41500,0,6285,4463,3,760,910,92,58,120,72,67,66,88,58,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1); +REPLACE INTO `mob_db` VALUES (1721,'DRAGON_EGG','Dragon Egg','Dragon Egg',119,20990,1,2862,2147,0,503,653,172,85,84,59,85,40,118,65,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1); +REPLACE INTO `mob_db` VALUES (1722,'EVENT_JAKK','Jakk','Jakk',99,10310,0,93,90,1,115,182,8,11,1,28,18,13,35,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,0,0,0,0,5134,10000); +REPLACE INTO `mob_db` VALUES (1723,'A_SHECIL','Shecil Damon','Cecil Damon',82,30000,0,0,0,14,600,900,40,15,1,145,27,32,134,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1724,'A_POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,0,0,9,1000,1300,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1725,'R_PORING','Poring','Poring',1,50,0,0,0,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1726,'R_LUNATIC','Lunatic','Lunatic',3,60,0,0,0,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x83,150,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1727,'R_SAVAGE_BABE','Savage Babe','Savage Babe',7,182,0,0,0,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x83,150,1624,624,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1728,'R_DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',14,140,1,0,0,1,33,41,13,0,10,12,8,5,28,7,10,12,0,2,23,0x83,150,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1729,'R_BAPHOMET_','Baphomet Jr.','Baphomet Jr.',50,8578,0,0,0,1,487,590,24,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1730,'R_DEVIRUCHI','Deviruchi','Deviruchi',64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1731,'G_DOPPELGANGER','Doppelganger','Doppelganger',77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1732,'G_TREASURE_BOX','Treasure Chest','Treasure Chest',98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Kiel Dungeon (10.4) +REPLACE INTO `mob_db` VALUES (1733,'KIEL','Kiel','Kiehl',90,523500,1,32850,21065,3,2018,3647,45,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',125,2502000,1,1800000,1440000,3,2937,6517,314,232,166,187,155,141,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,900000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1); +REPLACE INTO `mob_db` VALUES (1735,'ALICEL','Alicel','Alicel',115,18000,1,2565,1923,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7512,2000,7507,3000,2148,5,6214,200,1270,5,985,10,2517,20,0,0,0,0,4401,1); +REPLACE INTO `mob_db` VALUES (1736,'ALIOT','Aliot','Aliot',112,15669,1,2448,1836,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,6214,200,1810,10,985,10,13405,15,0,0,0,0,4402,1); +REPLACE INTO `mob_db` VALUES (1737,'ALIZA','Aliza','Aliza',112,14450,1,2448,1836,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1); +REPLACE INTO `mob_db` VALUES (1738,'CONSTANT','Constant','Constant',108,12050,0,2506,1879,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1739,'G_ALICEL','Alicel','Alicel',115,18000,1,0,0,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1740,'G_ALIOT','Aliot','Aliot',112,15669,1,0,0,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1741,'G_COOKIE_XMAS','Christmas Cookie','Christmas Cookie',37,733,1,0,0,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x3885,400,1248,1248,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1742,'G_CARAT','Carat','Carat',103,9222,1,0,0,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3985,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1743,'G_MYSTCASE','Myst Case','Myst Case',39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x3885,400,1248,1248,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1744,'G_WILD_ROSE','Wild Rose','Wild Rose',70,2682,1,0,0,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x3885,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1745,'G_CONSTANT','Constant','Constant',108,2000,0,0,0,1,560,704,92,82,126,98,62,57,91,34,10,12,0,6,67,0x2185,110,720,360,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1746,'G_ALIZA','Aliza','Aliza',112,14450,1,0,0,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x3885,220,1440,576,600,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1747,'G_SNAKE','Snake','Boa',18,217,1,0,0,1,29,34,9,8,10,8,18,10,14,15,10,12,1,2,22,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1748,'G_ANACONDAQ','Anacondaq','Anacondaq',100,8510,1,0,0,1,388,443,92,0,79,46,28,43,56,25,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1749,'G_MEDUSA','Medusa','Medusa',102,10045,1,0,0,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1750,'G_RED_PLANT','Red Plant','Red Plant',1,100,1,0,0,1,100,200,160,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Odin's Temple +REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',141,2205000,1,2000000,2200000,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1000000,617,5500,603,5000,616,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,0,0,0,0,0,0,4407,1); +REPLACE INTO `mob_db` VALUES (1752,'SKOGUL','Skogul','Skogul',126,34240,1,4280,3210,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1); +REPLACE INTO `mob_db` VALUES (1753,'FRUS','Frus','Frus',128,39520,1,4562,3421,2,710,879,65,35,114,77,66,51,79,27,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1); +REPLACE INTO `mob_db` VALUES (1754,'SKEGGIOLD','Skeggiold','Skeggiold',131,53290,1,5552,4419,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1); +REPLACE INTO `mob_db` VALUES (1755,'SKEGGIOLD_','Skeggiold','Skeggiold',131,52280,1,5549,4411,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1); +REPLACE INTO `mob_db` VALUES (1756,'G_HYDRO','Hydro','Hydrolancer',121,41500,0,0,0,3,760,910,92,95,120,72,67,66,88,58,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1757,'G_ACIDUS','Acidus','Acidus',130,48430,1,0,0,2,622,1017,101,47,109,78,50,55,77,55,10,12,2,9,46,0x3885,170,168,1008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1758,'G_FERUS','Ferus','Ferus',126,25668,1,0,0,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3885,100,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1759,'G_ACIDUS_','Acidus','Acidus',130,40718,1,0,0,2,703,861,98,90,106,110,61,53,95,53,10,12,2,9,44,0x3885,180,168,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1760,'G_FERUS_','Ferus','Ferus',126,39054,1,0,0,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3885,120,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1761,'G_SKOGUL','Skogul','Skogul',126,34240,1,0,0,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3985,170,720,384,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1762,'G_FRUS','Frus','Frus',128,39520,1,0,0,2,710,879,65,35,114,77,66,51,69,27,10,12,1,6,67,0x3985,130,480,576,432,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1763,'G_SKEGGIOLD','Skeggiold','Skeggiold',131,53290,1,0,0,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1764,'G_SKEGGIOLD_','Skeggiold','Skeggiold',131,52280,1,0,0,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1765,'G_RANDGRIS','Valkyrie','Valkyrie',141,1005000,1,10000,10000,3,2895,6101,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,500,617,100,2115,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1766,'EM_ANGELING','Angeling','Angeling',99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1767,'EM_DEVILING','Deviling','Deviling',99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Rachel / Ice Dungeon (11.1) +REPLACE INTO `mob_db` VALUES (1768,'GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',139,3005000,1,2160000,1800000,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1080000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1); +REPLACE INTO `mob_db` VALUES (1769,'AGAV','Agav','Agav',128,40000,1,3933,2949,1,637,818,77,82,85,66,55,113,86,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,1061,2500,0,0,0,0,4409,1); +REPLACE INTO `mob_db` VALUES (1770,'ECHIO','Echio','Echio',126,31620,1,3690,2768,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,25,12183,20,7563,100,2366,20,0,0,0,0,4410,1); +REPLACE INTO `mob_db` VALUES (1771,'VANBERK','Vanberk','Vanberk',123,24605,1,3240,2430,1,656,797,100,6,109,70,55,60,87,54,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,25,13027,5,7563,100,0,0,0,0,0,0,4411,1); +REPLACE INTO `mob_db` VALUES (1772,'ISILLA','Isilla','Isilla',124,26324,1,3456,2592,1,606,774,69,19,90,65,43,82,91,75,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,0,0,0,0,0,0,4412,1); +REPLACE INTO `mob_db` VALUES (1773,'HODREMLIN','Hodremlin','Hodremlin',122,23182,1,3758,2819,1,682,836,75,25,106,70,77,60,59,40,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1); +REPLACE INTO `mob_db` VALUES (1774,'SEEKER','Seeker','Seeker',124,24500,1,4009,3006,6,611,731,64,30,91,90,35,75,126,31,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1); +REPLACE INTO `mob_db` VALUES (1775,'SNOWIER','Snowier','Snowier',103,13934,1,1944,1458,2,510,592,121,47,91,61,67,45,61,55,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1); +REPLACE INTO `mob_db` VALUES (1776,'SIROMA','Siroma','Siroma',98,11910,1,1827,1369,1,389,489,64,38,83,43,50,70,80,60,10,12,0,0,61,0x83,180,432,648,240,0,0,0,0,0,0,0,7561,1000,7066,500,510,10,0,0,0,0,0,0,991,20,0,0,0,0,4416,1); +REPLACE INTO `mob_db` VALUES (1777,'ICE_TITAN','Ice Titan','Ice Titan',110,20820,1,2724,2644,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,985,30,6253,500,995,100,0,0,0,0,4417,1); +REPLACE INTO `mob_db` VALUES (1778,'GAZETI','Gazeti','Gazeti',106,14000,1,2025,1518,10,596,664,71,21,105,37,42,38,97,38,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,6253,100,6256,200,0,0,0,0,0,0,4418,1); +REPLACE INTO `mob_db` VALUES (1779,'KTULLANUX','Ktullanux','Ktullanux',98,2626000,1,1035576,949942,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,517788,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1); +REPLACE INTO `mob_db` VALUES (1780,'MUSCIPULAR','Muscipular','Muscipular',105,12550,1,1944,1458,1,401,477,114,43,100,60,58,37,60,47,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,6217,200,0,0,0,0,4420,1); +REPLACE INTO `mob_db` VALUES (1781,'DROSERA','Drosera','Drosera',101,10878,1,1350,1013,7,168,222,86,52,79,32,64,38,78,14,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,7565,3000,6259,200,1032,2000,1033,2000,621,3,905,1000,6217,50,0,0,0,0,4421,1); +REPLACE INTO `mob_db` VALUES (1782,'ROWEEN','Roween','Roween',95,7385,1,1691,1902,1,375,410,73,33,70,82,55,45,73,25,10,12,1,2,24,0x108B,200,1500,500,1000,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1); +REPLACE INTO `mob_db` VALUES (1783,'GALION','Galion','Galion',100,8821,1,1769,1327,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1); +REPLACE INTO `mob_db` VALUES (1784,'STAPO','Stapo','Stapo',95,8805,1,1574,1772,1,364,415,129,36,20,46,25,35,53,30,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1); +REPLACE INTO `mob_db` VALUES (1785,'ATROCE','Atroce','Atroce',113,1502000,1,1080000,855000,2,2031,3534,316,176,121,165,135,99,152,113,10,12,2,2,67,0x37B5,150,576,600,240,540000,607,5500,617,5000,617,5000,7563,7000,608,1000,2621,1000,617,5000,607,5000,5123,100,1175,100,0,0,0,0,4425,1); +REPLACE INTO `mob_db` VALUES (1786,'G_AGAV','Agav','Agav',128,40000,1,0,0,1,637,818,77,82,85,66,55,113,66,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1787,'G_ECHIO','Echio','Echio',126,31620,1,0,0,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1788,'G_ICE_TITAN','Ice Titan','Ice Titan',110,20820,1,0,0,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1789,'ICEICLE','Iceicle','Iceicle',100,1012,1,164,122,3,425,426,2,15,99,1,1,1,95,1,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,6257,500,7066,500,7066,500,7066,500,7066,500,0,0,0,0,7066,500); +REPLACE INTO `mob_db` VALUES (1790,'G_RAFFLESIA','Rafflesia','Rafflesia',86,5819,1,0,0,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1791,'G_GALION','Galion','Galion',100,8821,1,0,0,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1792,'SOCCER_BALL','Soccer Ball','Soccer Ball',1,10,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,18503,5000,18503,3000,12326,3000,603,1000,0,0,0,0,0,0,0,0,0,0,617,1000); +REPLACE INTO `mob_db` VALUES (1793,'G_MEGALITH','Megalith','Megalith',65,2451,1,0,0,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1794,'G_ROWEEN','Roween','Roween',95,7385,1,0,0,1,175,210,73,33,70,82,55,45,73,25,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1795,'BLOODY_KNIGHT_','Bloody Knight','Bloody Knight',116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,0,0,0,0,7578,10000); +# WoE SE Guild Dungeon +REPLACE INTO `mob_db` VALUES (1796,'AUNOE','Aunoe','Aunoe',110,13050,0,1935,1454,1,646,727,107,42,118,63,62,77,70,35,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,7568,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,2545,5,0,0,0,0,4464,1); +REPLACE INTO `mob_db` VALUES (1797,'FANAT','Fanat','Fanat',120,21000,1,3042,2282,1,599,705,81,64,102,66,70,47,79,57,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,2388,10,2422,2,7563,4000,2109,1,12183,50,7568,2500,0,0,0,0,0,0,4465,1); +# Additional Event Monsters +REPLACE INTO `mob_db` VALUES (1798,'TREASURE_BOX_','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1799,'G_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1800,'G_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1801,'G_HARWORD_','Whitesmith Harword','Mastersmith Howard',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1802,'G_MAGALETA_','High Priest Magaleta','High Priest Margaretha',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1803,'G_SHECIL_','Sniper Shecil','Sniper Cecil',10,10,1,1,1,14,1,2,1,1,1,1,1,1,1,1,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1804,'G_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1805,'B_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,4352040,1412973,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1806,'B_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,3675060,1433142,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1807,'B_HARWORD_','Whitesmith Harword','Mastersmith Howard',99,1460000,0,3602106,1278900,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1808,'B_MAGALETA_','High Priest Magaleta','High Priest Margaretha',99,1092910,0,3831300,1186920,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1809,'B_SHECIL_','Sniper Shecil','Sniper Cecil',99,1349000,0,3683700,1373400,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1810,'B_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,3607380,1473030,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1811,'G_SMOKIE_','Smokie','Bandit',18,641,1,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1812,'EVENT_LUDE','Lude','Delightful Lude',99,15,0,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1813,'EVENT_HYDRO','Hydro','Hydrolancer',99,1880000,0,3600000,1800000,3,15000,47767,96,55,1,142,200,250,189,32,10,12,2,8,28,0x37B5,100,972,672,432,0,617,5500,603,2000,617,5500,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1814,'EVENT_MOON','Moonlight Flower','Moonlight Flower',80,30000,0,27000,27000,1,500,800,80,50,1,35,45,112,69,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1815,'EVENT_RICECAKE','Rice Cake','Rice Cake',12,777,1,7,7,1,7,14,0,99,7,7,7,17,17,7,10,12,1,0,20,0x40,250,1320,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1816,'EVENT_GOURD','Gourd','Gourd',12,1000,0,0,0,1,1,2,160,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1817,'EVENT_DETALE','Detale','Detarderous',99,8880000,0,4050000,2250000,3,32767,65534,104,65,1,142,200,250,189,50,10,12,2,8,48,0x37B5,100,972,936,360,0,0,0,617,5000,617,5500,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1818,'EVENT_ALARM','Alarm','Alarm',58,10647,0,0,0,0,1,2,24,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000); +REPLACE INTO `mob_db` VALUES (1819,'EVENT_BATHORY','Bathory','Bathory',86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1820,'EVENT_BIGFOOT','Bigfoot','Bigfoot',29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1821,'EVENT_DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1822,'EVENT_DEVIRUCHI','Deviruchi','Deviruchi',64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1823,'EVENT_FREEZER','Freezer','Freezer',94,9990,1,0,0,2,188,238,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1824,'EVENT_GARM_BABY','Garm Baby','Garm Baby',94,10016,1,0,0,1,183,244,62,43,69,61,55,61,53,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1825,'EVENT_GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,0,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1826,'EVENT_MYST','Myst','Myst',39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1827,'EVENT_SASQUATCH','Sasquatch','Sasquatch',30,3163,0,0,0,1,250,280,8,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1828,'EVENT_GULLINBURSTI','Gullinbrusti','Gullinbrusti',20,20,0,0,0,1,59,72,160,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Thor Volcano (11.2) +REPLACE INTO `mob_db` VALUES (1829,'SWORD_GUARDIAN','Sword Guardian','Sword Guardian',133,70000,0,4500,3375,2,751,880,122,62,122,87,54,65,103,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,6223,100,0,0,0,0,4427,1); +REPLACE INTO `mob_db` VALUES (1830,'BOW_GUARDIAN','Bow Guardian','Bow Guardian',132,63000,0,4392,3294,12,766,886,127,62,109,80,65,52,122,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,6223,100,0,0,0,0,4428,1); +REPLACE INTO `mob_db` VALUES (1831,'SALAMANDER','Salamander','Salamander',138,80390,1,5919,7139,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,7097,3000,994,30,6223,10,2680,1,1920,50,2621,1,2364,20,0,0,0,0,4429,1); +REPLACE INTO `mob_db` VALUES (1832,'IFRIT','Ifrit','Ifrit',146,6935000,1,6696000,4860000,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,3348000,603,5500,617,5000,616,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,2345,100,0,0,0,0,4430,1); +REPLACE INTO `mob_db` VALUES (1833,'KASA','Kasa','Kasa',135,70128,1,5599,7709,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,7097,3000,7122,2500,994,30,2680,1,2344,10,1730,10,1626,10,0,0,0,0,4431,1); +REPLACE INTO `mob_db` VALUES (1834,'G_SALAMANDER','Salamander','Salamander',138,80390,1,0,0,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1835,'G_KASA','Kasa','Kasa',135,70128,1,0,0,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1836,'MAGMARING','Magmaring','Magmaring',110,13079,1,2536,1903,1,678,722,100,45,107,33,35,47,61,20,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1); +REPLACE INTO `mob_db` VALUES (1837,'IMP','Imp','Imp',129,36830,1,4594,3445,1,885,1091,56,75,66,83,65,88,72,27,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,7122,3000,13303,3,7098,2500,1376,10,1972,25,12374,1,6223,1,0,0,0,0,4433,1); +REPLACE INTO `mob_db` VALUES (1838,'KNOCKER','Knocker','Knocker',126,43900,1,3690,3768,1,633,736,126,62,93,62,58,56,99,70,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,6223,10,2124,3,1732,5,0,0,0,0,4434,1); +REPLACE INTO `mob_db` VALUES (1839,'BYORGUE','Byorgue','Byrogue',135,92544,1,7725,5543,2,793,934,120,13,114,86,70,65,81,70,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,100,603,40,2530,1,7110,4365,0,0,0,0,4426,1); +# Additional Event Monsters +REPLACE INTO `mob_db` VALUES (1840,'GOLDEN_SAVAGE','Golden Savage','Golden Savage',99,500,1,1,1,1,500,700,160,99,0,1,1,50,120,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,0,0,0,0,12239,3000); +REPLACE INTO `mob_db` VALUES (1841,'G_SNAKE_','Snake Lord\'s Minion','Snake Lord\'s Minion',15,10,1,1,1,1,46,55,160,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1842,'G_ANACONDAQ_','Snake Lord\'s Minion','Snake Lord\'s Minion',23,15,1,1,1,1,124,157,160,99,1,46,28,10,51,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,673,1000,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1843,'G_SIDE_WINDER_','Snake Lord\'s Minion','Snake Lord\'s Minion',43,18,1,1,1,1,240,320,160,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1844,'G_ISIS_','Snake Lord\'s Minion','Snake Lord\'s Minion',47,25,1,1,1,1,423,507,160,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,673,1000,675,1000,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1845,'G_TREASURE_BOX_','Treasure Box','Treasure Box',98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,0,0,0,0,12245,2500); +REPLACE INTO `mob_db` VALUES (1846,'DREAMMETAL','Dream Metal','Dream Metal',90,1499,0,1,1,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1847,'EVENT_PORING','Poring','Poring',98,10000500,0,900000,900000,1,15000,20000,96,60,1,60,120,120,160,30,10,12,1,8,28,0x37B5,100,76,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1848,'EVENT_BAPHOMET','Baphomet','Baphomet',50,45000,0,900,900,2,1500,3000,16,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1849,'EVENT_OSIRIS','Osiris','Osiris',60,125000,0,1800,1800,1,3500,5000,32,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1850,'EVENT_ORCHERO','Orc Hero','Orc Hero',50,175000,0,2700,2700,1,4000,5500,40,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1851,'EVENT_MOBSTER','Mobster','Mobster',61,7991,1,0,0,1,910,1128,66,37,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1852,'G_EM_ANGELING','Angeling','Angeling',99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1853,'G_EM_DEVILING','Deviling','Deviling',99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1854,'E_MUKA','Muka','Muka',17,610,0,246,108,1,40,49,8,5,15,15,30,5,20,10,10,12,2,3,22,0x83,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,7742,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1); +REPLACE INTO `mob_db` VALUES (1855,'E_POISONSPORE','Poison Spore','Poison Spore',19,665,0,167,84,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,7743,60,972,50,921,1200,912,5,0,0,0,0,4048,1); +REPLACE INTO `mob_db` VALUES (1856,'E_MAGNOLIA','Magnolia','Magnolia',26,3195,0,354,223,1,120,151,8,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,7744,400,12127,5,0,0,0,0,4076,1); +REPLACE INTO `mob_db` VALUES (1857,'E_MARIN','Marin','Marin',15,742,0,59,40,1,39,43,0,10,1,10,10,5,35,15,10,12,1,3,41,0x81,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,7745,75,529,350,5035,1,0,0,0,0,4196,1); +REPLACE INTO `mob_db` VALUES (1858,'E_PLANKTON','Plankton','Plankton',10,354,0,21,16,1,26,31,0,5,1,10,10,0,15,0,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,7746,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1); +REPLACE INTO `mob_db` VALUES (1859,'E_MANDRAGORA','Mandragora','Mandragora',12,405,0,41,29,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,7747,350,711,300,706,3,1967,10,0,0,0,0,4030,1); +REPLACE INTO `mob_db` VALUES (1860,'E_COCO','Coco','Coco',17,817,0,108,70,1,56,67,0,0,24,17,34,20,24,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,7748,600,0,0,0,0,4041,1); +REPLACE INTO `mob_db` VALUES (1861,'E_CHOCO','Choco','Choco',43,4278,0,1139,1139,1,315,402,8,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,7749,1000,607,25,0,0,0,0,4285,1); +REPLACE INTO `mob_db` VALUES (1862,'E_MARTIN','Martin','Martin',18,1109,0,121,77,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,7750,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1); +REPLACE INTO `mob_db` VALUES (1863,'E_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',25,4500,0,0,0,1,292,406,23,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Cursed Abbey (11.3) +REPLACE INTO `mob_db` VALUES (1864,'ZOMBIE_SLAUGHTER','Zombie Slaughter','Zombie Slaughter',124,40440,1,3938,2702,1,707,824,100,45,117,58,82,13,97,21,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,0,0,0,0,0,0,4435,1); +REPLACE INTO `mob_db` VALUES (1865,'RAGGED_ZOMBIE','Ragged Zombie','Ragged Zombie',123,38574,1,3515,3087,9,810,940,85,35,81,50,64,56,127,23,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,6223,1,0,0,0,0,4436,1); +REPLACE INTO `mob_db` VALUES (1866,'HELL_POODLE','Hell Poodle','Hellhound',115,17168,1,2565,1923,1,642,787,86,20,114,56,59,82,77,54,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1); +REPLACE INTO `mob_db` VALUES (1867,'BANSHEE','Banshee','Banshee',130,48666,1,4520,3500,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,6223,1,0,0,0,0,4438,1); +REPLACE INTO `mob_db` VALUES (1868,'G_BANSHEE','Banshee','Banshee',130,48666,1,0,0,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1869,'FLAME_SKULL','Flame Skull','Flame Skull',121,21276,1,2332,2890,1,767,902,93,40,111,90,60,70,99,65,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1); +REPLACE INTO `mob_db` VALUES (1870,'NECROMANCER','Necromancer','Necromancer',133,91304,1,5580,4185,1,706,1112,84,73,108,54,77,116,91,30,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1); +REPLACE INTO `mob_db` VALUES (1871,'FALLINGBISHOP','Fallen Bishop','Falling Bishop',138,5655000,1,2700000,1890000,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1350000,607,5500,617,5000,617,5000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,6223,500,0,0,0,0,4441,1); +REPLACE INTO `mob_db` VALUES (1872,'BEELZEBUB_FLY','Hell Fly','Hell Fly',127,502000,1,0,0,1,643,795,98,55,99,90,52,55,89,80,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1873,'BEELZEBUB','Beelzebub','Beelzebub',147,6805000,1,0,0,1,3500,5600,288,265,155,235,200,225,204,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1874,'BEELZEBUB_','Beelzebub','Beelzebub',147,4805000,1,7050000,7050000,2,4200,8150,418,265,178,236,200,250,218,66,10,12,2,6,88,0x37B5,100,212,504,432,3525000,607,5500,617,5000,617,5000,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,6223,1000,0,0,0,0,0,0,4145,1); +REPLACE INTO `mob_db` VALUES (1875,'TRISTAN_3RD','Tristan III','Tristan III',80,43000,0,1,1,2,1366,1626,25,30,5,10,10,69,70,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1876,'E_LORD_OF_DEATH','Lord of the Dead','Lord of the Dead',99,99000000,0,118209,39011,3,3430,4232,75,73,120,120,120,169,150,106,10,12,2,6,67,0x37B5,180,1446,1296,360,59104,5022,10000,608,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1877,'CRYSTAL_5','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,7863,10,644,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1878,'E_SHINING_PLANT','Shining Plant','Shining Plant',1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1879,'ECLIPSE_P','Eclipse Pet','Eclipse',6,1800,0,0,0,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Moscovia +REPLACE INTO `mob_db` VALUES (1880,'WOOD_GOBLIN','Wood Goblin','Wood Goblin',81,5499,1,1106,1245,1,193,208,144,12,73,19,56,15,56,25,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1881,'LES','Les','Les',82,6216,1,1205,1356,1,270,300,123,30,63,20,35,25,52,30,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1882,'VAVAYAGA','Baba Yaga','Baba-Yaga',87,6498,1,1188,1337,2,282,353,63,60,69,45,30,60,51,35,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1883,'UZHAS','Uzhas','Uzhas',85,7140,1,1294,1455,1,271,306,49,8,69,14,41,30,55,20,10,12,1,7,61,0x3885,200,576,672,384,0,0,0,0,0,0,0,520,900,1573,5,621,100,522,100,918,3500,579,1500,603,3,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1884,'MAVKA','Mavka','Mavka',84,5421,1,1253,1530,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1885,'GOPINICH','Gopinich','Gopinich',97,1120500,1,714240,580320,3,1988,3849,355,121,127,102,143,102,152,76,10,12,2,2,62,0x37B5,150,1536,864,432,357120,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1886,'G_MAVKA','Mavka','Mavka',84,5421,1,0,0,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Additional Monsters +REPLACE INTO `mob_db` VALUES (1887,'FREEZER_R','Freezer','Freezer',94,9990,1,0,0,2,388,438,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1888,'GARM_BABY_R','Hatii Baby','Hatii Baby',61,15199,0,90,90,1,680,1580,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1889,'GARM_R','Marozka\'s Guard','Marozka\'s Guard',73,100000,0,900,900,3,900,2200,20,23,85,126,10,50,95,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1890,'GOPINICH_R','The Immortal Koshei','The Immortal Koshei',85,299321,0,900,900,3,1868,6124,20,42,50,65,55,50,152,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1891,'G_RANDGRIS_','Valkyrie','Valkyrie',99,1567200,1,0,0,3,5560,9980,40,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1892,'G_LOLI_RURI','Lolo Ruri','Lolo Ruri',109,15280,1,0,0,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1893,'G_KNIGHT_OF_ABYSS','Knight of the Abyss','Abysmal Knight',122,23297,1,0,0,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1894,'POURING','Pouring','Pouring',15,777,1,7,7,1,7,14,0,7,7,7,7,17,17,7,0,0,0,3,61,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,6296,9000,6296,100,6296,100,909,3000,909,2000,909,2000,909,2000,0,0,0,0,909,2000); +REPLACE INTO `mob_db` VALUES (1895,'EVENT_SEYREN','Seyren','Seyren Windsor',91,88902,0,0,0,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3295,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1896,'EVENT_KATRINN','Katrinn','Kathryne Keyron',92,47780,0,0,0,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1897,'EVENT_BAPHOMET_','Baphomet','Baphomet',81,668000,0,0,0,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1898,'EVENT_ZOMBIE','Zombie','Zombie',12,434,0,0,0,1,67,79,0,10,1,1,1,1,1,1,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,7884,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# WoE Second Edition; Battlegrounds +REPLACE INTO `mob_db` VALUES (1899,'SWORD_GUARDIAN_','Sword Guardian','Sword Guardian',133,70000,0,0,0,2,451,580,122,33,122,87,54,65,103,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1900,'BOW_GUARDIAN_','Archer Guardian','Archer Guardian',80,80404,1,0,0,12,1840,2520,64,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1901,'E_CONDOR','Condor','Condor',10,15,0,90,90,1,13,20,10,15,1,1,1,50,100,100,10,12,0,2,26,0x1089,150,1148,648,480,0,0,0,0,0,0,0,7973,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1902,'E_TREASURE1','Treasure Box','Treasure Box',99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1903,'E_TREASURE2','Treasure Box','Treasure Box',99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1904,'BOMBPORING','Bomb Poring','Bomb Poring',28,1000000,1,415,256,1,120,320,160,99,1,28,28,0,33,50,10,12,0,0,20,0x108B,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1905,'BARRICADE','Barricade','Barricade',98,600500,1,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1906,'BARRICADE_','Barricade','Barricade',98,600,1,0,0,1,0,0,160,99,1,17,1,80,126,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1907,'S_EMPEL_1','Guardian Stone','Guardian Stone',90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1908,'S_EMPEL_2','Guardian Stone','Guardian Stone',90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1909,'OBJ_A','Food Storage','Food Storage',90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1910,'OBJ_B','Food Depot','Food Depot',90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1911,'OBJ_NEUTRAL','Neutrality Flag','Neutrality Flag',90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1912,'OBJ_FLAG_A','Lion Flag','Lion Flag',90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1913,'OBJ_FLAG_B','Eagle Flag','Eagle Flag',90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1914,'OBJ_A2','Blue Crystal','Blue Crystal',90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1915,'OBJ_B2','Pink Crystal','Pink Crystal',90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Dimentional Gorge (12.1) +REPLACE INTO `mob_db` VALUES (1916,'MOROCC','Satan Morroc','Satan Morroc',151,7000000,1,0,0,2,3560,6200,400,65,165,182,180,225,180,89,10,12,2,6,87,0x37B5,100,312,624,432,0,0,0,0,0,0,0,5808,1500,2374,7000,2375,7000,2433,7000,7799,9000,7798,9000,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1917,'MOROCC_','Wounded Morroc','Wounded Morroc',151,5000000,1,4050000,3042000,2,3020,5900,425,65,165,185,200,245,180,89,10,12,2,6,87,0x37B5,100,312,624,432,2025000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1918,'MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',132,63900,1,4392,3294,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,576,480,432,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1919,'MOROCC_2','Incarnation of Morroc','Incarnation of Morroc',132,64922,1,5094,3821,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,576,648,300,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1920,'MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',133,94800,1,5220,3780,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1921,'MOROCC_4','Incarnation of Morroc','Incarnation of Morroc',134,77389,1,4608,4056,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1922,'G_MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',132,63900,1,0,0,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,312,480,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1923,'G_MOROCC_2','Incarnation of Morroc','Incarnation of Morroc',132,64922,1,0,0,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,312,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1924,'G_MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',133,94800,1,0,0,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1925,'G_MOROCC_4','Incarnation of Morroc','Incarnation of Morroc',134,77389,1,0,0,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# God Item Creation (WoE SE); Catacombs +REPLACE INTO `mob_db` VALUES (1926,'JAKK_H','Jakk','Jakk',1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,12396,1000,6298,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1927,'WHISPER_H','Whisper','Whisper',1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,12397,1000,6299,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1928,'DEVIRUCHI_H','Deviruchi','Deviruchi',46,500,0,0,0,1,5,10,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1929,'BAPHOMET_I','Great Demon Baphomet','Unsealed Baphomet',98,4520500,1,4068000,2268000,2,4200,6500,190,45,140,152,5,85,200,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1); +REPLACE INTO `mob_db` VALUES (1930,'PIAMETTE','Piamette','Piamette',90,3000500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1931,'WISH_MAIDEN','Wish Maiden','Wish Maiden',98,3567700,1,0,0,3,6500,9800,40,42,100,120,30,120,220,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1932,'GARDEN_KEEPER','Garden Keeper','Garden Keeper',80,100,1,0,0,1,1,2,160,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1933,'GARDEN_WATCHER','Garden Watcher','Garden Watcher',81,300000,1,0,0,1,1666,2609,88,55,30,57,56,126,128,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1934,'BLUE_FLOWER','Blue Flower','Blue Flower',98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1935,'RED_FLOWER','Red Flower','Red Flower',98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1936,'YELL_FLOWER','Yellow Flower','Yellow Flower',98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1937,'CONSTANT_','Constant','Constant',108,11000,0,0,0,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1938,'TREASURE_BOX41','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7830,80,658,500,12999,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1939,'TREASURE_BOX42','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7831,80,658,500,12999,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1940,'TREASURE_BOX43','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7832,80,658,500,12999,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1941,'TREASURE_BOX44','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7833,80,658,500,12999,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1942,'TREASURE_BOX45','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7834,80,658,500,12999,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1943,'TREASURE_BOX46','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7835,80,658,500,12999,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1944,'TREASURE_BOX47','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7836,80,658,500,12999,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1945,'TREASURE_BOX48','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7837,80,658,500,12999,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1946,'TREASURE_BOX49','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7838,80,658,500,12999,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1947,'PIAMETTE_','Piamette','Piamette',90,500500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1948,'G_YGNIZEM','Ygnizem','Egnigem Cenia',136,44327,1,0,0,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Battlegrounds Guardians +REPLACE INTO `mob_db` VALUES (1949,'B_S_GUARDIAN','Camp Guardian','Camp Guardian',86,457599,1,0,0,2,7590,9140,96,33,110,40,5,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1950,'B_B_GUARDIAN','Camp Guardian','Camp Guardian',80,241212,1,0,0,12,1840,2520,64,62,95,80,5,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Ravies Sister's 'Valyrie's Gift' monsters. +REPLACE INTO `mob_db` VALUES (1951,'CRYSTAL_6','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,200); +REPLACE INTO `mob_db` VALUES (1952,'CRYSTAL_7','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,250); +REPLACE INTO `mob_db` VALUES (1953,'CRYSTAL_8','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,300); +REPLACE INTO `mob_db` VALUES (1954,'CRYSTAL_9','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100); +# ? +REPLACE INTO `mob_db` VALUES (1955,'TREASURE_BOX_I','Treasure Chest','Treasure Chest',1,1,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12281,9000,12281,2000,12281,1000,721,2000,723,2000,727,2000,732,100,0,0,0,0,719,2000); +# Endless Tower +REPLACE INTO `mob_db` VALUES (1956,'NAGHT_SIEGER','Naght Sieger','Naght Sieger',99,5000000,1,3600000,1800000,2,5400,8600,410,40,190,60,80,220,264,30,16,16,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,4457,1); +REPLACE INTO `mob_db` VALUES (1957,'ENTWEIHEN','Entweihen Crothen','Entweihen Crothen',90,2400500,1,1430000,1215000,12,4400,8000,171,66,90,70,40,160,190,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1); +REPLACE INTO `mob_db` VALUES (1958,'G_ENTWEIHEN_R','Thorny Skeleton','Thorny Skeleton',89,5400000,1,0,0,12,4040,4720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1959,'G_ENTWEIHEN_H','Thorn of Recovery','Thorn of Recovery',89,350000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1960,'G_ENTWEIHEN_M','Thorn of Magic','Thorn of Magic',89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1961,'G_ENTWEIHEN_S','Thorn of Purification','Thorn of Purification',89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Additional Monsters +REPLACE INTO `mob_db` VALUES (1962,'ANTONIO_','Christmas Thief','Christmas Thief',10,15,1,0,0,1,13,20,160,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1963,'P_CHUNG_E','New Year Doll','New Year Doll',49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1964,'NIGHTMARE_T','Nightmare','Nightmare',30,2000,0,461,348,1,100,200,0,40,1,100,1,1,100,1,10,12,2,2,68,0x120,150,1816,816,432,0,0,0,0,0,0,0,505,2000,510,3000,7913,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1965,'M_WILD_ROSE','Wild Rose','Wild Rose',38,4000,50,0,0,1,100,145,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1966,'M_DOPPELGANGER','Doppelganger','Doppelganger',72,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1967,'M_YGNIZEM','Ygnizem','Egnigem Cenia',79,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1968,'E_STROUF','Strouf','Strouf',48,11990,0,5544,3776,1,200,1250,8,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1); +REPLACE INTO `mob_db` VALUES (1969,'E_MARC','Marc','Marc',36,6900,0,1778,1125,1,220,280,8,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1); +REPLACE INTO `mob_db` VALUES (1970,'E_OBEAUNE','Obeune','Obeune',31,3952,0,1159,733,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1); +REPLACE INTO `mob_db` VALUES (1971,'E_VADON','Vadon','Vadon',19,1017,0,243,153,1,74,85,32,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1); +REPLACE INTO `mob_db` VALUES (1972,'E_MARINA','Marina','Marina',21,2087,0,392,252,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1); +REPLACE INTO `mob_db` VALUES (1973,'E_PORING','Poring','Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,909,7000,938,400,512,1000,713,1500,12303,3000,0,0,0,0,0,0,0,0,0,0); +# WoE SE Guild Dungeon +REPLACE INTO `mob_db` VALUES (1974,'BANSHEE_MASTER','Banshee Master','Banshee Master',118,20320,0,3402,2556,2,599,897,87,94,121,58,48,122,60,44,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,2748,2,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4450,1); +REPLACE INTO `mob_db` VALUES (1975,'BEHOLDER_MASTER','Beholder Master','Beholder Master',106,10135,0,2430,1845,6,471,559,73,62,103,67,42,69,69,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,2749,2,603,2,0,0,0,0,4466,1); +REPLACE INTO `mob_db` VALUES (1976,'COBALT_MINERAL','Cobalt Mineral','Cobalt Mineral',113,15800,0,2700,2070,1,645,737,113,44,110,55,65,57,95,41,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,4475,1); +REPLACE INTO `mob_db` VALUES (1977,'HEAVY_METALING','Heavy Metaling','Heavy Metaling',107,11500,0,2610,1980,1,672,784,134,65,105,63,86,58,56,38,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,4467,1); +REPLACE INTO `mob_db` VALUES (1978,'HELL_APOCALIPS','Hell Apocalips','Hell Vesper',121,22100,0,3348,3020,2,780,902,155,43,135,62,80,48,89,37,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,2391,10,1484,4,999,2500,0,0,0,0,4477,1); +REPLACE INTO `mob_db` VALUES (1979,'ZAKUDAM','Zukadam','Zakudam',115,17200,0,2880,2160,3,650,780,106,92,122,66,70,61,66,55,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,4474,1); +REPLACE INTO `mob_db` VALUES (1980,'KUBLIN','Kubkin','Kublin',85,633600,0,90000,90000,1,1180,1400,22,10,85,81,25,40,55,20,10,12,1,7,22,0x37B5,100,964,648,300,45000,6010,10000,0,0,0,0,998,270,911,9000,756,43,2297,3,1061,2500,0,0,507,1800,0,0,0,0,0,0); +# Orc Dungeon Instance +REPLACE INTO `mob_db` VALUES (1981,'I_HIGH_ORC','Safeguard Chief','Safeguard Chief',81,44193,1,0,0,1,489,639,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1982,'I_ORC_ARCHER','Orc Sniper','Orc Sniper',78,54835,1,0,0,9,460,503,67,31,55,32,24,30,125,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1983,'I_ORC_SKELETON','Depraved Orc Spirit','Depraved Orc Spirit',87,80087,0,0,0,1,496,759,23,30,1,31,41,93,67,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1984,'I_ORC_LADY','Shaman Cargalache','Shaman Cargalache',80,50058,0,0,0,1,423,812,56,10,60,35,52,18,79,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Another World (13.1) +REPLACE INTO `mob_db` VALUES (1985,'DANDELION','Dandelion Member','Dandelion Member',37,45000,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1986,'TATACHO','Tatacho','Tatacho',128,33336,1,3762,3092,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,6224,10,1061,2500,0,0,0,0,4442,1); +REPLACE INTO `mob_db` VALUES (1987,'CENTIPEDE','Centipede','Centipede',125,24992,1,3201,2711,2,601,713,143,25,133,71,69,39,86,49,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,6224,10,943,2500,0,0,0,0,4447,1); +REPLACE INTO `mob_db` VALUES (1988,'NEPENTHES','Nepenthes','Nepenthes',114,15099,1,2599,1793,7,602,727,25,5,94,32,41,39,150,59,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,4470,1); +REPLACE INTO `mob_db` VALUES (1989,'HILLSRION','Hillslion','Hillthrion',123,21422,1,2909,1698,1,450,552,83,11,110,69,72,41,102,12,10,12,0,2,22,0x308D,130,400,780,576,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7054,4850,7938,1000,0,0,0,0,4453,1); +REPLACE INTO `mob_db` VALUES (1990,'HARDROCK_MOMMOTH','Hardrock Mammoth','Hardrock Mammoth',137,1900944,1,142293,81178,2,1552,2326,449,43,191,66,102,49,131,51,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,4462,1); +REPLACE INTO `mob_db` VALUES (1991,'TENDRILRION','Tendrillion','Tendrillion',126,1397451,1,100772,75299,2,1002,2322,132,123,144,66,77,181,145,132,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6224,10,7197,5335,7008,4850,0,0,0,0,4463,1); +REPLACE INTO `mob_db` VALUES (1992,'CORNUS','Cornus','Cornus',120,20722,1,6240,4004,2,288,810,66,95,51,47,59,99,93,77,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,6224,10,2257,2,1420,1,0,0,0,0,4448,1); +REPLACE INTO `mob_db` VALUES (1993,'NAGA','Naga','Naga',117,21099,1,2944,2212,3,489,591,72,5,112,65,71,32,71,33,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,6224,10,936,3500,954,2000,1408,20,0,0,0,0,4469,1); +REPLACE INTO `mob_db` VALUES (1994,'LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',109,12466,1,1622,1806,1,299,410,59,55,88,89,55,32,119,59,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,6224,1,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1); +REPLACE INTO `mob_db` VALUES (1995,'PINGUICULA','Pinguicula','Pinguicula',105,13058,1,2221,1662,1,189,511,46,77,67,60,64,107,64,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,1000,0,0,0,0,4476,1); +# REPLACE INTO `mob_db` VALUES (1996,'BACSOJIN_T','Bacsojin','White Lady',97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,3,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1997,'G_TATACHO','Tatacho','Tatacho',128,33336,1,0,0,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1998,'G_HILLSRION','Hillslion','Hillslion',123,21422,1,0,0,1,450,552,83,15,110,69,72,41,102,12,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (1999,'CENTIPEDE_LARVA','Centipede Larva','Centipede Larva',118,20667,1,2930,2003,2,521,609,98,17,103,62,66,27,77,44,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1); +# Additional Monsters +# REPLACE INTO `mob_db` VALUES (2000,'M_GAMEMASTER','Male Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2001,'F_GAMEMASTER','Female Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2002,'T_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',50,8000,0,3584,1589,1,585,813,47,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,12188,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2003,'T_BACSOJIN','White Lady','White Lady',97,720500,1,0,0,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2004,'T_WICKED_NYMPH','Evil Nymph','Evil Nymph',63,16029,0,0,0,2,399,1090,20,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2005,'T_PLASMA_B','Plasma','Plasma',44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2006,'T_PLASMA_P','Plasma','Plasma',49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2007,'T_PLASMA_R','Plasma','Plasma',43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2008,'WOOMAWANG','Woomawang','Woomawang',82,4000000,0,90000,90000,3,8000,10000,40,40,60,110,200,250,166,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2009,'WOOMAWANG_','Woomawang','Woomawang',82,2000000,0,90000,90000,1,16000,20000,40,40,60,110,200,250,166,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2010,'G_MAJORUROS','Ox','Ox',66,500000,0,9,9,1,1200,3200,25,15,65,50,20,20,85,48,10,12,2,6,28,0x3885,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2011,'E_GHOUL','Ghoul','Ghoul',40,99999,0,979,560,1,420,500,100,20,1,20,29,0,45,20,10,12,1,1,49,0x120,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2012,'E_ZOMBIE','Zombie','Zombie',15,99999,0,45,30,1,67,79,100,10,1,8,7,0,15,0,10,12,1,1,29,0x120,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Enter The Unknown (13.2) +REPLACE INTO `mob_db` VALUES (2013,'DRACO','Draco','Draco',114,20099,1,1995,1205,1,556,666,56,3,21,58,47,34,71,66,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,2399,10,0,0,0,0,4444,1); +REPLACE INTO `mob_db` VALUES (2014,'DRACO_EGG','Draco Egg','Draco Egg',101,100000,1,2000,1500,0,1,2,384,30,1,1,135,92,1,98,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4471,1); +REPLACE INTO `mob_db` VALUES (2015,'PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',113,17002,1,2101,2419,1,251,640,59,35,89,55,55,95,66,12,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,7939,1500,2148,10,0,0,0,0,4468,1); +REPLACE INTO `mob_db` VALUES (2016,'AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',121,33209,1,4155,4155,1,616,1066,23,8,95,61,25,25,86,40,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,0,0,2787,10,0,0,0,0,0,0,0,0,4443,1); +REPLACE INTO `mob_db` VALUES (2017,'RATA','Rata','Rata',131,58299,1,7787,6119,1,720,931,81,46,101,74,71,51,98,56,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,6224,10,0,0,0,0,0,0,0,0,4459,1); +REPLACE INTO `mob_db` VALUES (2018,'DUNEYRR','Duneyrr','Duneyrr',135,63342,1,8601,7298,1,833,1134,144,28,133,69,72,55,110,44,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,6224,10,0,0,0,0,4458,1); +REPLACE INTO `mob_db` VALUES (2019,'ANCIENT_TREE','Ancient Tree','Ancient Tree',144,388933,1,7308,5481,1,788,864,226,37,148,72,93,58,99,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,7939,1000,0,0,0,0,0,0,4473,1); +REPLACE INTO `mob_db` VALUES (2020,'RHYNCHO','Rhyncho','Rhyncho',139,337220,1,6107,4579,1,575,776,68,12,119,98,62,48,79,46,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,4460,1); +REPLACE INTO `mob_db` VALUES (2021,'PHYLLA','Phylla','Phylla',139,345560,1,6107,4579,10,550,726,61,14,107,85,60,58,101,42,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,4461,1); +REPLACE INTO `mob_db` VALUES (2022,'S_NYDHOG','Nidhoggr\'s Shadow','Nidhoggur\'s Shadow',117,3452000,0,4320000,3510000,2,4040,7880,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2160000,0,0,0,0,0,0,6091,5000,7444,5000,6224,1000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,4456,1); +REPLACE INTO `mob_db` VALUES (2023,'DARK_SHADOW','Dark Shadow','Dark Shadow',147,434300,1,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1); +REPLACE INTO `mob_db` VALUES (2024,'BRADIUM_GOLEM','Bradium Golem','Bradium Golem',133,45739,1,6553,3595,1,871,974,359,12,189,25,125,45,69,33,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,12738,10,6224,500,0,0,0,0,0,0,4472,1); +# REPLACE INTO `mob_db` VALUES (2025,'MYSTCASE_EVENT','Mystcase','Mystcase',10,10,0,77,77,1,10,20,1,99,1,1,1,1,48,1,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,558,5000,558,5000,559,1000,560,1000,561,1000,573,1000,573,10,0,0,0,0,573,10); +REPLACE INTO `mob_db` VALUES (2026,'DANDELION_','Runaway Dandelion Member','Runaway Dandelion Member',90,552500,0,45000,22500,1,3050,4300,40,35,1,66,66,45,88,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,0,0,0,0,902,2000); +REPLACE INTO `mob_db` VALUES (2027,'G_DARK_SHADOW','Dark Shadow','Dark Shadow',147,434300,1,0,0,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Additional Monsters +# REPLACE INTO `mob_db` VALUES (2028,'E_MINOROUS','Minorous','Minorous',1,741,0,0,0,1,30,48,4,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2029,'E_MINOROUS_','Minorous','Minorous',10,15,0,9,0,1,100,150,160,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,941,10,6119,2000,6119,4000,6119,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1); +# REPLACE INTO `mob_db` VALUES (2030,'HIDEN_PRIEST','Hiden Priest','Hiden Priest',90,240500,0,0,0,2,1300,1983,0,30,1,32,40,100,82,40,10,12,2,6,89,0x120,150,432,432,360,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2031,'DANDELION_H','Dandelion','Dandelion',80,120000,0,0,0,1,305,610,0,10,1,19,32,0,63,20,10,12,1,7,47,0x120,250,1772,72,384,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2032,'GUARDIAN_FOREST','Forest Guardian','Forest Guardian',50,99999,0,0,0,1,3000,6000,160,99,100,100,100,100,100,100,10,12,0,6,27,0x120,200,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2033,'GOLDEN_TULIP','Golden Tulip','Golden Tulip',1,100,0,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2034,'M_DESERT_WOLF_B','Baby Desert Wolf','Baby Desert Wolf',9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2035,'NIHILITY_ZEM','Nihility Zem','Nihility Zem',90,200500,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2036,'VALKYRIE_N','Valkyrie Randgris','Valkyrie Randgris',98,11780,0,0,0,1,780,930,16,20,1,24,39,0,72,25,10,12,1,1,69,0x308D,170,576,576,480,0,0,0,0,0,0,0,6154,9000,6154,5000,6154,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2037,'VALKYRIE_A','Valkyrie Randgris','Valkyrie Randgris',90,5500,15,0,0,1,10,160,16,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2038,'VALKYRIE_B','Valkyrie Randgris','Valkyrie Randgris',90,10500,15,0,0,1,300,450,16,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2039,'EXECUTIONER_R','Executioner','Executioner',65,28980,0,0,0,2,570,950,56,35,64,85,40,25,88,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2040,'TIRFING_R','Tirfing','Ogretooth',71,29900,0,0,0,1,950,1146,48,35,58,87,55,35,132,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2041,'MYSTELTAINN_R','Mysteltainn','Mysteltainn',76,33350,0,0,0,2,1160,1440,48,30,77,139,80,35,159,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Mechanic Fixed Autonomous Weapon Platforms +REPLACE INTO `mob_db` VALUES (2042,'SILVERSNIPER','Silver Sniper','Silver Sniper',100,4500,0,0,0,9,300,300,80,10,10,60,10,10,100,10,10,12,1,0,20,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2043,'MAGICDECOY_FIRE','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,23,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2044,'MAGICDECOY_WATER','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,21,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2045,'MAGICDECOY_EARTH','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,22,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2046,'MAGICDECOY_WIND','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,24,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Additional Monsters +REPLACE INTO `mob_db` VALUES (2047,'W_NAGA','Naga','Naga',99,46708,0,0,0,3,492,605,61,15,113,42,30,18,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,926,5000,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2048,'W_PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',99,8780,0,0,0,1,536,656,24,5,1,23,22,1,89,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6086,1000,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2049,'W_BRADIUM_GOLEM','Bradium Golem','Bradium Golem',99,45200,0,0,0,1,720,886,125,18,0,10,82,2,60,12,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,0,0,0,0,6090,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2050,'W_AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',99,33220,0,0,0,1,421,516,13,12,1,23,19,8,77,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,0,0,0,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2051,'E_BAPHOMET','Baphomet','Baphomet',1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,768,768,576,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2052,'E_DARK_LORD','Dark Lord','Dark Lord',96,1190900,1,2010,2010,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,1005,7005,6000,5093,2000,5093,2000,1615,800,2004,100,1237,300,2334,300,12539,100,985,5141,5162,10,0,0,0,0,4169,1); +# REPLACE INTO `mob_db` VALUES (2053,'NC_DIMIK','Dimik','Dimik',77,10000,0,0,0,5,1040,1880,72,28,15,35,40,15,120,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,998,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1); +# REPLACE INTO `mob_db` VALUES (2054,'E_BATHORY','Bathory','Bathory',86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2055,'E_INCUBUS','Incubus','Incubus',75,17281,0,0,0,2,0,0,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2056,'E_ZHERLTHSH','Zherlthsh','Zealotus',63,18300,0,0,0,1,0,0,10,15,70,85,40,30,125,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2057,'E_CRAMP','Suspicious Mouse','Strange Mouse',1,4720,0,0,0,1,1,2,100,100,1,1,1,1,1,1,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2058,'M_MIMIC','Mimic','Mimic',51,6120,182,0,0,1,800,950,10,40,44,121,1,60,75,110,10,12,1,0,60,0x120,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2059,'M_DISGUISE','Disguise','Disguise',55,7543,180,0,0,2,526,693,18,29,0,72,45,35,48,65,10,12,1,6,82,0x120,147,516,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2060,'M_ALICE','Alice','Alice',62,10000,221,0,0,1,700,850,5,5,64,64,42,85,100,130,10,12,1,7,60,0x120,200,502,1999,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2061,'E_STAPO','Stapo','Stapo',23,666,0,299,199,1,135,370,90,5,12,11,15,12,23,1,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,7956,5000,0,0,0,0,4424,1); +# REPLACE INTO `mob_db` VALUES (2062,'E_POPORING','Poporing','poporing',14,344,0,73,40,1,59,72,0,10,1,14,14,0,19,15,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,7957,2000,1207,5,512,250,0,0,0,0,4033,1); +# REPLACE INTO `mob_db` VALUES (2063,'E_DROPS','Drops','Drops',3,55,0,4,3,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,7955,2000,620,20,0,0,0,0,4004,1); +# REPLACE INTO `mob_db` VALUES (2064,'E_MAGMARING','Magmaring','Magmaring',40,5300,0,1899,1719,1,550,700,25,24,40,60,30,10,60,17,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,7955,2000,7956,2000,7957,2000,7958,2000,0,0,0,0,0,0,4432,1); +# REPLACE INTO `mob_db` VALUES (2065,'E_METALING','Metaling','Metaling',26,889,0,443,224,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,7958,4000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1); +REPLACE INTO `mob_db` VALUES (2066,'E_ANOPHELES','Anopheles','Anopheles',5,50,1,1,1,1,140,158,8,10,1,30,1,1,30,1,10,12,0,4,64,0x37B5,170,1084,2304,576,0,5586,10000,5586,0,5586,0,601,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1); +REPLACE INTO `mob_db` VALUES (2067,'E_ANOPHELES_','Anopheles','Anopheles',3,500,1,1,1,1,40,58,8,100,1,100,1,1,100,1,10,12,0,4,64,0x120,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,702,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1); +# Brasilis +REPLACE INTO `mob_db` VALUES (2068,'BOITATA','Boitata','Boitata',93,1283990,1,74288,77950,2,1060,2022,32,66,140,99,30,109,100,90,10,12,2,2,63,0x37B5,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2069,'IARA','Iara','Iara',79,5890,1,1070,890,1,171,270,0,76,69,14,41,60,69,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2070,'PIRANHA','Piranha','Piranha',75,4522,1,899,1023,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2071,'HEADLESS_MULE','Headless Mule','Headless Mule',80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,1255,2,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2072,'JAGUAR','Jaguar','Jaguar',71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2073,'TOUCAN','Toucan','Toucan',70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2074,'CURUPIRA','Curupira','Curupira',68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x118B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0); +# Event MVP +REPLACE INTO `mob_db` VALUES (2075,'E_VADON_X','Ragunta','Ragunta',150,25000000,0,9999999,9999999,1,7000,10000,500,500,100,100,100,100,100,100,10,12,2,5,88,0x37B5,150,1632,432,540,4999999,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,6414,9000); +# Additional Monsters +# REPLACE INTO `mob_db` VALUES (2076,'S_WIND_GHOST','Wind Ghost','Wind Ghost',105,190800,1,0,0,1,462,957,64,51,62,44,25,105,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2077,'S_SKOGUL','Skogul','Skogul',105,244400,1,0,0,1,910,1166,72,15,100,88,63,99,95,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2078,'S_SUCCUBUS','Succubus','Succubus',105,206660,1,0,0,1,880,1204,76,48,100,70,45,110,102,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2079,'CRYSTAL_H','Crystal','Crystal',77,7777777,1,3777777,3777777,0,17777,25554,77,77,1,7,7,77,77,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2080,'CRYSTAL_L','Crystal','Crystal',7,77,1,7,7,0,7,14,7,7,1,7,7,7,7,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2081,'E_HYDRA','Suspicious Hydra','Strange Hydra',34,854,1,0,0,7,1,2,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2082,'G_PIRANHA','Piranha','Piranha',75,4522,1,0,0,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3295,200,768,480,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# El Dicastes (13.3) +REPLACE INTO `mob_db` VALUES (2083,'HORN_SCARABA','Scaraba','One-Horned Scaraba',130,51100,1,5220,4011,1,633,724,135,20,44,59,55,21,71,33,10,12,0,4,22,0x1189,200,384,672,360,0,0,0,0,0,0,0,6324,6500,1433,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1); +REPLACE INTO `mob_db` VALUES (2084,'HORN_SCARABA2','Scaraba','Two-Horned Scaraba',134,58900,1,5780,4549,1,690,795,150,38,44,68,72,45,84,51,10,12,0,4,22,0x1189,150,336,360,360,0,0,0,0,0,0,0,6323,6500,13061,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1); +REPLACE INTO `mob_db` VALUES (2085,'ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',136,62600,1,6330,5255,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,6322,6500,1930,10,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1); +REPLACE INTO `mob_db` VALUES (2086,'RAKE_SCARABA','Rake Scaraba','Rake Scaraba',139,67700,1,6990,5995,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,6321,6500,16010,2,12735,10,15000,10,993,2,0,0,0,0,0,0,0,0,4505,1); +REPLACE INTO `mob_db` VALUES (2087,'QUEEN_SCARABA','Queen Scaraba','Scaraba Queen',140,2441600,1,410220,212200,3,1889,3129,350,220,100,88,82,149,211,144,10,12,2,4,62,0x37B5,120,864,1000,360,205110,616,5500,616,5000,616,2000,6326,7000,1191,1000,2364,1000,1196,400,18103,500,0,0,0,0,0,0,0,0,4507,1); +REPLACE INTO `mob_db` VALUES (2088,'HORN_SCARABA_EGG','Scaraba Egg','Scaraba Egg',125,63000,1,4000,3000,0,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2089,'HORN_SCARABA2_EGG','Scaraba Egg','Scaraba Egg',126,66000,1,4000,3000,0,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2090,'ANTLER_SCARABA_EGG','Antler Scaraba Egg','Antler Scaraba Egg',127,69000,1,4000,3000,0,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2091,'RAKE_SCARABA_EGG','Rake Scaraba Egg','Rake Scaraba Egg',128,72000,1,4000,3000,0,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,2153,10,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2092,'DOLOMEDES','Dolomedes','Dolomedes',132,54591,1,5155,5155,3,677,963,112,52,149,34,82,55,95,67,10,12,2,4,61,0x3985,250,360,360,600,0,0,0,0,0,0,0,6319,3000,6325,5000,6090,500,2789,2,12738,10,6224,500,1984,2,0,0,0,0,4506,1); +REPLACE INTO `mob_db` VALUES (2093,'BOTARING','Botaring','Botaring',15,15,1,7,7,2,20,40,20,20,10,10,10,10,77,77,10,12,0,0,26,0x81,170,1872,672,480,0,0,0,0,0,0,0,12492,7000,12492,3500,12492,1000,5204,700,664,2000,665,2000,666,2000,0,0,0,0,603,500); +# Additional MVPs +REPLACE INTO `mob_db` VALUES (2094,'E_ORK_HERO2','Orc Hero','1',50,362000,1,2010,2010,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,1005,725,2000,607,5000,607,5000,968,9700,10018,500,1366,150,12539,50,1124,1000,985,4559,1387,100,0,0,0,0,4143,1); +REPLACE INTO `mob_db` VALUES (2095,'E_EDDGA','Eddga','Eddga',65,247500,1,2010,2010,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,1005,1030,5000,1030,3000,1030,3000,1133,150,2268,250,518,10000,12539,50,1030,250,985,2300,13046,100,0,0,0,0,4074,1); +REPLACE INTO `mob_db` VALUES (2096,'E_OSIRIS2','Osiris','Osiris',68,475840,1,2010,2010,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,1005,603,2000,608,500,608,500,617,2000,1232,150,2235,200,12539,50,1009,1000,5053,150,1285,100,0,0,0,0,4144,1); +REPLACE INTO `mob_db` VALUES (2097,'E_DRACULA','Dracula','Dracula',75,350000,1,2010,2010,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,1005,607,5500,732,5000,732,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,12539,50,0,0,0,0,4134,1); +REPLACE INTO `mob_db` VALUES (2098,'E_DOPPELGANGER','Doppelganger','Doppelganger',77,380000,1,2010,2010,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,1005,723,1500,505,0,505,0,2317,250,1162,220,1168,150,2258,350,12539,50,985,3686,984,2700,0,0,0,0,4127,1); +REPLACE INTO `mob_db` VALUES (2099,'E_MISTRESS','Mistress','Mistress',78,378000,1,2010,2010,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,1005,996,1500,526,3000,526,3000,12539,50,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1); +REPLACE INTO `mob_db` VALUES (2100,'E_BAPHOMET2','Baphomet','Baphomet',81,668000,1,2010,2010,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,1005,607,2000,750,5000,750,5000,12539,100,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1); +REPLACE INTO `mob_db` VALUES (2101,'E_LORD_OF_DEATH2','Lord of Death','Lord of the Dead',94,603883,1,2010,2010,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,1005,607,5500,732,5000,732,5000,7108,5335,1417,5,12539,100,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4210,1); +REPLACE INTO `mob_db` VALUES (2102,'E_DARKLORD','Dark Lord','Dark Lord',1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,868,768,480,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2103,'E_KTULLANUX','Ktullanux','1',98,2626000,1,2010,2010,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,1005,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,12539,100,0,0,0,0,4419,1); +REPLACE INTO `mob_db` VALUES (2104,'E_DARK_SNAKE_LORD','Dark Snake Lord','Evil Snake Lord',105,1101000,1,2010,2010,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,1005,607,5500,617,5500,617,5500,7169,5820,10020,5100,1471,80,12539,50,1474,500,7226,900,661,2000,0,0,0,0,4330,1); +REPLACE INTO `mob_db` VALUES (2105,'E_TURTLE_GENERAL','Turtle General','Turtle General',110,1442000,1,2010,2010,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,1005,967,5500,607,2000,607,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,12539,50,0,0,0,0,4246,1); +REPLACE INTO `mob_db` VALUES (2106,'E_APOCALIPS_H','Vesper','Vesper',128,3802000,1,2010,2010,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,1005,617,5500,603,2000,603,2000,7095,5000,7094,3000,12539,50,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1); +REPLACE INTO `mob_db` VALUES (2107,'E_FALLINGBISHOP','Fallen Bishop','Fallen Bishop Hibram',138,5655000,1,2010,2010,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1005,607,5500,608,2000,608,2000,523,10000,1420,1000,2677,500,1422,1000,985,5432,12539,200,6223,500,0,0,0,0,4441,1); +REPLACE INTO `mob_db` VALUES (2108,'E_GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',139,3005000,1,2010,2010,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1005,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,12539,200,0,0,0,0,4410,1); +REPLACE INTO `mob_db` VALUES (2109,'E_RANDGRIS','Valkyrie Randgris','Valkyrie Randgris1',141,2205000,1,2010,2010,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1005,617,5500,603,2000,603,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,12539,200,0,0,0,0,4407,1); +REPLACE INTO `mob_db` VALUES (2110,'E_IFRIT','Ifrit','Ifrit',146,6935000,1,2010,2010,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,1005,617,5500,6223,2000,6223,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,12539,200,0,0,0,0,4430,1); +REPLACE INTO `mob_db` VALUES (2111,'E_B_HARWORD','Whitesmith Harword','Whitesmith Howard',160,6750000,1,2010,2010,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1138,3500,1140,2500,12539,200,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1); +REPLACE INTO `mob_db` VALUES (2112,'E_B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',160,4680000,1,2010,2010,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1132,2500,2342,3500,12539,200,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2113,'E_B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',160,4230000,1,2010,2010,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1234,1500,13017,1500,12539,200,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1); +# Sorcerer Elemental Spirits +# 2114,EL_AGNI_S,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2115,EL_AGNI_M,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2116,EL_AGNI_L,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2117,EL_AQUA_S,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2118,EL_AQUA_M,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2119,EL_AQUA_L,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2120,EL_VENTUS_S,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,0,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2121,EL_VENTUS_M,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,1,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2122,EL_VENTUS_L,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,2,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2123,EL_TERA_S,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2124,EL_TERA_M,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +# 2125,EL_TERA_L,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0 +REPLACE INTO `mob_db` VALUES (2126,'M_ANOPHELES','Anopheles','Anopheles',100,8000,1,0,0,1,300,400,0,0,40,70,40,40,80,40,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2127,'M_HORNET','Hornet','Hornet',110,9000,1,0,0,1,350,450,0,0,40,70,40,40,90,40,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2128,'M_HORNET2','Hornet','Hornet',120,10000,1,0,0,1,400,500,0,0,40,70,40,40,100,40,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2129,'M_LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',130,11000,1,0,0,1,450,650,0,0,60,80,50,50,110,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2130,'M_LUCIOLA_VESPA2','Luciola Vespa','Luciola Vespa',140,12000,1,0,0,1,500,700,0,0,60,80,50,50,120,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Bifrost (14.1) +REPLACE INTO `mob_db` VALUES (2131,'LOST_DRAGON','Lost Dragon','Lost Dragon',135,608920,0,30000,30000,3,1050,1580,60,51,140,81,69,122,98,61,10,12,2,9,67,0x3795,150,840,648,576,15000,617,2500,616,5000,0,0,2610,1000,13062,1000,607,1000,608,500,610,500,1985,500,2854,300,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2132,'POM_SPIDER','Pom Spider','Pom Spider',145,122110,1,8010,8037,1,632,847,240,115,156,85,178,88,139,102,10,12,1,4,62,0x3985,250,864,1056,576,0,0,0,0,0,0,0,12573,500,11520,1000,1042,1000,13431,10,1654,3,0,0,0,0,0,0,0,0,4514,1); +REPLACE INTO `mob_db` VALUES (2133,'ANGRA_MANTIS','Angra Mantis','Angra Mantis',144,91720,1,7790,7020,1,579,756,175,81,122,155,119,81,132,79,10,12,1,4,42,0x3985,150,576,480,480,0,0,0,0,0,0,0,6086,5000,7194,1000,997,10,1830,10,0,0,0,0,0,0,0,0,0,0,4513,1); +REPLACE INTO `mob_db` VALUES (2134,'PARUS','Parus','Parus',142,86990,1,7310,6990,1,511,663,161,39,80,136,128,44,105,51,10,12,0,2,42,0x3885,180,384,792,432,0,0,0,0,0,0,0,6393,5000,7063,1000,12736,100,6383,5000,6383,3000,6383,1000,0,0,0,0,0,0,4512,1); +REPLACE INTO `mob_db` VALUES (2135,'CREEPER','Creeper','Creeper',100,1000,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,22,0x40,2000,192,192,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2136,'LITTLE_FATUM','Little Fatum','Little Fatum',142,85100,1,7500,6500,1,442,894,51,198,10,66,17,148,148,97,10,12,0,7,44,0x3885,150,432,300,432,0,0,0,0,0,0,0,6395,5000,7938,100,11519,100,2465,3,0,0,0,0,0,0,0,0,0,0,4511,1); +REPLACE INTO `mob_db` VALUES (2137,'MIMING','Miming','Miming',140,81200,1,7100,6300,1,430,652,120,120,90,66,105,77,133,77,10,12,0,0,20,0x3885,250,576,1140,504,0,0,0,0,0,0,0,6394,5000,7938,100,969,1,2853,3,0,0,0,0,0,0,0,0,0,0,4510,1); +REPLACE INTO `mob_db` VALUES (2138,'NYDHOG_MEMORY1_1','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2139,'NYDHOG_MEMORY1_2','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2140,'NYDHOG_MEMORY2_1','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2141,'NYDHOG_MEMORY2_2','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2142,'NYDHOG_MEMORY3_1','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2143,'NYDHOG_MEMORY3_2','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2144,'G_ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',136,62600,1,0,0,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2145,'G_RAKE_SCARABA','Rake Scaraba','Rake Scaraba',139,67700,1,0,0,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2146,'G_S_NYDHOG','G_S_NYDHOG','G_S_NYDHOG',117,300000,0,0,0,2,840,1680,60,60,1,30,30,136,88,30,10,12,2,9,87,0x37B5,150,1596,1620,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2147,'E_WHITE_PLANT','White Plant','White Plant',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2148,'E_BLUE_PLANT','Blue Plant','Blue Plant',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2149,'E_SAVAGE_BABE','Savage Babe','Savage Babe',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2150,'WATERMELON','Watermelon','Watermelon',12,10,0,0,0,1,7,10,1,1,1,1,1,1,6,30,10,12,1,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,6411,5000,911,2000,7198,2000,741,100,0,0,0,0,0,0,0,0,0,0,0,0); +# Dewata +REPLACE INTO `mob_db` VALUES (2151,'ALNOLDI','Alnoldi','Rafflesia Alnoldi',80,5149,0,1399,1280,1,378,447,80,20,1,32,24,61,85,30,10,12,1,3,22,0x3895,300,768,768,576,0,0,0,0,0,0,0,705,250,520,425,905,4500,711,300,521,250,2269,100,0,0,0,0,0,0,4515,1); +REPLACE INTO `mob_db` VALUES (2152,'COMODO','Comodo','Comodo',81,4002,0,1072,1581,1,427,469,92,11,50,52,35,20,94,48,10,12,1,2,65,0x3895,165,432,432,360,0,0,0,0,0,0,0,6403,5000,517,9000,911,9000,908,5000,0,0,0,0,0,0,0,0,0,0,4516,1); +REPLACE INTO `mob_db` VALUES (2153,'CENDRAWASIH','Cendrawasih','Cendrawasih',84,5556,0,2612,2687,1,297,467,72,33,50,77,51,58,92,45,10,12,1,8,23,0x3895,220,768,768,576,0,0,0,0,0,0,0,6405,9000,7063,8000,916,9000,0,0,0,0,0,0,0,0,0,0,0,0,4517,1); +REPLACE INTO `mob_db` VALUES (2154,'BANASPATY','Banaspaty','Banaspaty',85,4680,0,1164,1688,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x3895,220,1872,672,480,0,0,0,0,0,0,0,1003,1000,912,2000,985,1500,756,1500,1752,500,0,0,0,0,0,0,0,0,4518,1); +REPLACE INTO `mob_db` VALUES (2155,'BUTOIJO','Butoijo','Butoijo',88,7524,0,1355,1752,1,358,460,77,12,50,65,30,30,106,44,10,12,2,6,43,0x4995,200,1100,483,528,0,0,0,0,0,0,0,938,2750,537,500,520,450,0,0,0,0,0,0,0,0,0,0,0,0,4519,1); +REPLACE INTO `mob_db` VALUES (2156,'LEAK','Leak','Leak',94,1266000,0,472800,300120,1,3723,5007,280,128,100,125,30,85,186,55,10,12,2,6,47,0x37B5,150,151,288,360,236400,607,5500,617,2250,616,450,1422,10,617,2500,607,2500,15032,500,12738,3500,518,2500,969,2000,0,0,0,0,4520,1); +REPLACE INTO `mob_db` VALUES (2157,'G_BANASPATY','Banaspaty','Banaspaty',85,4680,0,0,0,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x37B5,220,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Homunculus S Summons +REPLACE INTO `mob_db` VALUES (2158,'S_HORNET','Hornet','Hornet',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2159,'S_GIANT_HORNET','Giant Hornet','Giant Hornet',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2160,'S_LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Nightmare Scaraba Hole +REPLACE INTO `mob_db` VALUES (2161,'I_HORN_SCARABA','Gold One-Horn Scaraba','Gold One-Horn Scaraba',130,204400,0,15660,12033,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,6324,10000,1433,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1); +REPLACE INTO `mob_db` VALUES (2162,'I_HORN_SCARABA2','Gold Two-Horn Scaraba','Gold Two-Horn Scaraba',134,235600,0,17340,13647,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,6323,10000,13061,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1); +REPLACE INTO `mob_db` VALUES (2163,'I_ANTLER_SCARABA','Gold Antler Scaraba','Gold Antler Scaraba',136,250400,0,18990,15675,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x3795,220,76,384,288,0,0,0,0,0,0,0,6322,10000,1930,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1); +REPLACE INTO `mob_db` VALUES (2164,'I_RAKE_SCARABA','Gold Rake Scaraba','Gold Rake Scaraba',139,270800,0,20970,16785,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x3795,200,76,384,288,0,0,0,0,0,0,0,6321,10000,16010,4,12735,20,15000,20,993,4,0,0,0,0,0,0,0,0,4508,1); +REPLACE INTO `mob_db` VALUES (2165,'I_QUEEN_SCARABA','Gold Queen Scaraba','Gold Queen Scaraba',140,6441600,0,4102200,2122000,3,3778,6258,350,220,100,138,82,249,261,144,10,12,2,4,62,0x37B5,200,768,768,576,2051100,616,5500,616,5000,616,2000,6326,10000,1191,2000,2364,2000,1196,800,18103,1000,0,0,0,0,0,0,0,0,4509,1); +REPLACE INTO `mob_db` VALUES (2166,'I_HORN_SCARABA_EGG','Gold One-Horn Scaraba Egg','Gold One-Horn Scaraba Egg',125,126000,0,12000,9000,1,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2167,'I_HORN_SCARABA2_EGG','Gold Two-Horn Scaraba Egg','Gold Two-Horn Scaraba Egg',126,132000,0,12000,9000,1,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2168,'I_ANTLER_SCARABA_EGG','Gold Antler Scaraba Egg','Gold Antler Scaraba Egg',127,138000,0,12000,9000,1,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2169,'I_RAKE_SCARABA_EGG','Gold Rake Scaraba Egg','Gold Rake Scaraba Egg',128,144000,0,12000,9000,1,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,2153,20,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2170,'I_G_ANTLER_SCARABA','Gold Antler Scaraba','Gold Antler Scaraba',136,250400,0,0,0,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x37B5,220,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2171,'I_G_RAKE_SCARABA','Gold Rake Scaraba','Gold Rake Scaraba',139,270800,0,0,0,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x37B5,200,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2172,'I_G_HORN_SCARABA','Gold One-Horn Scaraba','Gold One-Horn Scaraba',130,204400,0,0,0,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2173,'I_G_HORN_SCARABA2','Gold Two-Horn Scaraba','Gold Two-Horn Scaraba',134,235600,0,0,0,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Malangdo Island +REPLACE INTO `mob_db` VALUES (2174,'MD_VADON','Deep Sea Vadon','Deep Sea Vadon',95,120000,0,1500,1500,1,710,1384,154,21,1,63,84,60,99,45,10,12,0,5,21,0x37B5,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1); +REPLACE INTO `mob_db` VALUES (2175,'MD_MARSE','Deep Sea Marse','Deep Sea Marse',95,120000,0,1500,1500,1,740,1456,58,218,1,51,75,30,99,30,10,12,0,5,41,0x37B5,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1); +REPLACE INTO `mob_db` VALUES (2176,'MD_CRAB','Deep Sea Crab','Deep Sea Crab',95,120000,0,1500,1500,1,600,1176,136,15,54,42,72,21,84,45,7,12,0,5,21,0x37B5,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1); +REPLACE INTO `mob_db` VALUES (2177,'MD_CORNUTUS','Deep Sea Cornutus','Deep Sea Cornutus',100,160000,0,1500,1500,1,715,1392,342,48,1,81,135,48,51,45,10,12,0,5,21,0x37B5,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1); +REPLACE INTO `mob_db` VALUES (2178,'MD_SHELLFISH','Deep Sea Shellfish','Deep Sea Shellfish',100,160000,0,1500,1500,1,740,1408,43,215,1,33,144,75,78,30,10,12,0,5,21,0x37B5,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1); +REPLACE INTO `mob_db` VALUES (2179,'MD_KUKRE','Deep Sea Kukre','Deep Sea Kukre',100,160000,0,1500,1500,1,595,1160,123,33,1,90,66,60,96,60,10,12,0,5,21,0x37B5,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1); +REPLACE INTO `mob_db` VALUES (2180,'MD_STROUF','Deep Sea Strouf','Deep Sea Strouf',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2181,'MD_SWORD_FISH','Deep Sea Sword Fish','Deep Sea Sword Fish',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2182,'MD_MARC','Deep Sea Marc','Deep Sea Marc',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2183,'MD_ANOLIAN','Deep Sea Anolian','Deep Sea Anolian',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2184,'MD_OBEAUNE','Deep Sea Obeaune','Deep Sea Obeaune',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2185,'MD_KAPHA','Deep Sea Kapha','Deep Sea Kapha',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2186,'COELACANTH_N_E','Coelacanth','Coelacanth',100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2187,'COELACANTH_N_A','Dark Coelacanth','Dark Coelacanth',100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4527,1); +REPLACE INTO `mob_db` VALUES (2188,'COELACANTH_N_M','Weird Coelacanth','Weird Coelacanth',100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4526,1); +REPLACE INTO `mob_db` VALUES (2189,'COELACANTH_H_M','Mutant Coelacanth','Mutant Coelacanth',140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4528,1); +REPLACE INTO `mob_db` VALUES (2190,'COELACANTH_H_A','Violent Coelacanth','Violent Coelacanth',140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4529,1); +REPLACE INTO `mob_db` VALUES (2191,'MD_SEAWEED','Seaweed','Seaweed',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2192,'MD_OCTOPUS','Octopus','Octopus',90,6000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x3795,150,768,768,576,0,0,0,0,0,0,0,1024,3000,962,3000,12615,10,0,0,0,0,0,0,0,0,0,0,0,0,4533,1); +REPLACE INTO `mob_db` VALUES (2193,'MD_OCTOPUS_LEG','Octopus Leg','Octopus Leg',90,500000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x1A4,400,768,768,576,0,0,0,0,0,0,0,12613,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2194,'MD_GIANT_OCTOPUS','Giant Octupus','Giant Octopus',95,500000,0,40000,20000,2,1900,2850,154,21,100,50,50,150,150,50,10,12,2,5,41,0x37B5,400,768,768,576,0,0,0,0,0,0,0,12615,7000,12615,3000,12614,3000,12617,1000,12642,1000,12623,500,0,0,0,0,0,0,4534,1); +REPLACE INTO `mob_db` VALUES (2195,'MD_G_KUKRE','Kukre','Kukre',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2196,'MD_G_STROUF','Strouf','Strouf',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2197,'RED_ERUMA','Red Eruma','Red Eruma',91,9900,0,1909,1909,1,620,930,102,102,1,75,40,40,75,30,10,12,1,5,41,0x89,150,768,768,576,0,0,0,0,0,0,0,6426,7000,965,4000,966,4000,1056,2000,757,200,756,50,603,10,0,0,0,0,4531,1); +REPLACE INTO `mob_db` VALUES (2198,'KING_DRAMOH','King Dramoh','King Dramoh',117,28800,0,3350,1300,1,1320,1848,480,22,100,70,30,50,100,70,10,12,2,5,41,0x37B5,120,432,432,360,0,0,0,0,0,0,0,960,7000,943,3000,7938,500,995,100,6256,100,1523,1,13035,1,0,0,0,0,4524,1); +REPLACE INTO `mob_db` VALUES (2199,'SIORAVA','Siorava','Siorava',87,6500,0,1200,1200,1,450,675,20,40,1,30,25,55,60,30,10,12,0,0,21,0x83,200,1872,672,480,0,0,0,0,0,0,0,958,7000,7071,3000,7005,1000,932,1000,12624,500,1202,10,13034,1,0,0,0,0,4530,1); +# Izlude Dungeon F6 +# REPLACE INTO `mob_db` VALUES (2200,'J_TAINI','Taini','Taini',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2201,'SROPHO','Sropho','Sropho',113,24002,0,1934,1900,1,571,856,44,91,100,50,30,70,90,30,10,12,1,5,41,0x3795,135,700,600,360,0,0,0,0,0,0,0,951,7000,7938,500,756,250,12012,25,1971,25,1972,10,0,0,0,0,0,0,4522,1); +REPLACE INTO `mob_db` VALUES (2202,'KRAKEN','Kraken','Kraken',124,5602800,0,983332,961111,3,3823,4969,55,229,150,150,150,180,180,150,10,12,2,5,81,0x37B5,150,768,768,576,491666,607,5500,617,2250,616,450,962,9000,1422,1000,1484,500,1131,300,2347,100,7444,5000,0,0,0,0,0,0,4525,1); +REPLACE INTO `mob_db` VALUES (2203,'POT_DOFLE','Pot Dofle','Pot Dofle',115,25211,0,2650,1350,1,1088,1632,122,55,100,50,50,70,100,30,10,12,0,5,41,0x1089,135,768,768,576,0,0,0,0,0,0,0,1056,3000,7013,1000,1024,500,6257,100,969,2,617,1,0,0,0,0,0,0,4523,1); +REPLACE INTO `mob_db` VALUES (2204,'SEDORA','Sedora','Sedora',110,22050,0,1853,1739,1,758,1137,92,55,100,50,50,30,70,30,10,12,1,5,41,0x3795,120,504,960,576,0,0,0,0,0,0,0,962,5000,1024,5000,6256,100,7939,100,2424,10,603,5,0,0,0,0,0,0,4521,1); +# REPLACE INTO `mob_db` VALUES (2205,'TACNU','Tacnu','Tacnu',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2206,'KRAKEN_LEG','Kraken Leg','Kraken Leg',124,39190,0,0,0,2,1685,2190,128,158,100,100,100,130,130,100,10,12,2,5,81,0x37B5,150,768,768,576,0,0,0,0,0,0,0,7565,10,6253,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db` VALUES (2207,'RACARCH','Racarch','Racarch',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2208,'WILD_RIDER','Wild Rider','Wild Rider',95,33300,0,8300,3300,1,1320,1848,480,22,100,100,30,70,100,30,10,12,2,5,41,0x37B5,150,432,432,360,0,0,0,0,0,0,0,956,7000,12624,7000,720,4000,995,2000,7938,1000,617,1000,0,0,0,0,0,0,4532,1); +# Additional Monsters +REPLACE INTO `mob_db` VALUES (2209,'E_THIEF_BUG','Thief Bug','Thief Bug',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2210,'XMAS_LUNATIC','Xmas Lunatic','Christmas Lunatic',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2211,'E_TEDDY_BEAR','Teddy Bear','Teddy Bear',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2212,'E_KNIGHT_OF_WINDSTORM','Knight of Windstorm','Stormy Knight',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2213,'M_WANDER_MAN','Wander Man','Wanderer',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2214,'M_WICKED_NYMPH','Wicked Nymph','Evil Nymph',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2215,'M_KASA','Kasa','Kasa',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2216,'M_SALAMANDER','Salamander','Salamander',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2217,'M_TEDDY_BEAR','Teddy Bear','Teddy Bear',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2218,'E_OCTOPUS_LEG','Octopus Leg','Octopus Tentacle',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2219,'E_GIANT_OCTOPUS','Giant Octopus','Giant Octopus',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2220,'E_QUVE','Quve','Quve',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Lighthalzen Biolab F4 +REPLACE INTO `mob_db` VALUES (2221,'RANDEL','Randel','Randel',141,478745,0,32367,24055,1,3055,4277,180,56,142,69,86,49,132,55,10,12,1,7,66,0x3095,170,76,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,617,10,1435,1,2162,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2222,'FLAMEL','Flamel','Flamel',141,316468,0,31166,21445,1,1074,1503,93,40,138,79,62,53,82,48,10,12,1,7,63,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,984,100,617,10,16010,10,15044,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2223,'CELIA','Celia','Celia',141,253145,0,22107,19017,1,1612,2256,74,312,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,1654,10,2853,10,18111,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2224,'CHEN','Chen','Chen',141,218721,2000,25684,19810,1,2501,3501,125,56,126,74,71,123,99,65,10,12,1,6,81,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1814,10,1659,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2225,'GERTIE','Gertie','Gertie',141,266926,0,24267,20233,1,3684,5157,108,10,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,617,10,13061,10,18109,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2226,'ALPHOCCIO','Alphoccio','Alphoccio',142,256202,0,22192,20322,1,1273,1782,84,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1930,10,2161,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2227,'TRENTINI','Trentini','Trentini',142,204962,0,15995,13248,1,1070,1498,70,12,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,1984,10,2465,10,2892,1,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2228,'G_RANDEL','Paladin Randel','Paladin Randel',160,3870000,0,18000,10000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2229,'G_FLAMEL','Creator Flamel','Creator Flamel',160,2230000,0,18000,10000,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2230,'G_CELIA','Professor Celia','Professor Celia',160,1847804,0,18000,10000,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2231,'G_CHEN','Champion Chen','Champion Chen',160,2249350,5000,18000,10000,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2232,'G_GERTIE','Stalker Gertie','Stalker Gertie',160,2057279,0,18000,10000,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2233,'G_ALPHOCCIO','Clown Alphoccio','Clown Alphoccio',160,1894278,0,18000,10000,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2234,'G_TRENTINI','Gypsy Trentini','Gypsy Trentini',160,1894278,0,18000,10000,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2235,'B_RANDEL','Paladin Randel','Paladin Randel',160,6870000,0,4621500,2664000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,2310750,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13062,5000,2160,5000,1490,5000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2236,'B_FLAMEL','Creator Flamel','Creator Flamel',160,4230000,0,5223570,2630354,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,2611785,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1387,5000,1392,5000,1393,5000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2237,'B_CELIA','Professor Celia','Professor Celia',160,3847804,0,5027308,2509792,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,2513654,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,2854,5000,1584,5000,2582,5000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2238,'B_CHEN','Champion Chen','Champion Chen',160,4249350,5000,5113568,2934974,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,2556784,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1285,5000,1813,5000,16017,5000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2239,'B_GERTIE','Stalker Gertie','Stalker Gertie',160,4057279,0,4420698,2691274,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,2210349,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13069,5000,13070,5000,1291,5000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2240,'B_ALPHOCCIO','Clown Alphoccio','Clown Alphoccio',160,3894278,0,4226036,2468972,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2113018,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,18103,5000,1290,5000,1913,5000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2241,'B_TRENTINI','Gypsy Trentini','Gypsy Trentini',160,3894278,0,4463758,2563096,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2231879,0,0,0,0,0,0,12623,9000,12616,9000,616,9000,6224,9000,18103,5000,18110,5000,1963,5000,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2242,'MD_DESERT_WOLF','Desert Wolf','Desert Wolf',135,551578,0,0,0,1,1040,1158,151,39,93,69,63,61,82,42,10,12,1,6,20,0x37B5,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2243,'MD_DESERT_WOLF_B','Desert Wolf','Desert Wolf',130,274531,0,0,0,1,66,82,13,0,10,12,8,5,17,7,10,12,0,6,20,0x37B5,300,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2244,'QUEST_CHEN','Champion Chen','Champion Chen',160,3481505,2000,4409293,4689861,1,1700,3000,201,543,126,74,71,123,99,65,10,12,1,7,68,0x37B5,180,1152,384,288,2204693,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2245,'EXP_TEST','Exp Test','Exp Test',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2246,'Q_WOOTAN_FIGHTER','Wootan Fighter','Wootan Fighter',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2247,'Q_INCREASE_SOIL','Increase Soil','Mi Gao',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2248,'GOLDPORING','Gold Poring','Gold Poring',1,15,0,0,0,1,1,2,160,5,1,1,1,1,6,30,10,12,1,3,21,0xC3,400,1872,672,480,0,0,0,0,0,0,0,7602,3000,7470,3000,6012,3000,6485,3000,6486,3000,6487,3000,6487,3000,0,0,0,0,0,0); +# Hall of Abyss Guild Dungeon +REPLACE INTO `mob_db` VALUES (2249,'PYURIEL','Pyuriel','Pyuriel',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2250,'LORA','Lora','Lora',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2251,'GIOIA','Gioia','Gioia',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2252,'ELVIRA','Elvira','Elvira',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2253,'DAEHYON','Daehyon','Daehyon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2254,'SOHEON','Soheon','Soheon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2255,'KADES','Kades','Kades',143,2466698,0,0,0,1,700,1000,479,262,100,100,100,100,100,100,10,12,2,0,67,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2256,'RUDO','Rudo','Rudo',135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2257,'I_PIAMETTE','Piamette','Piamette',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2258,'I_PIAMETTE_','Piamette','Piamette',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2259,'I_GARDEN_KEEPER','Garden Keeper','Garden Keeper',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2260,'G_GARDEN_KEEPER','Garden Keeper','Garden Keeper',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2261,'I_GARDEN_WATCHER','Garden Watcher','Garden Watcher',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2262,'G_GARDEN_WATCHER','Garden Watcher','Garden Watcher',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2263,'I_WISH_MAIDEN','Wish Maiden','Wish Maiden',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2264,'I_ARMAIA','Armaia','Armeyer Dinze',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2265,'I_ARMAIA_','Armaia','Armeyer Dinze',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2266,'I_EREND','Erend','Errende Ebecee',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2267,'I_EREND_','Erend','Errende Ebecee',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2268,'I_KAVAC','Kavac','Kavach Icarus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2269,'I_KAVAC_','Kavac','Kavach Icarus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2270,'I_RAWREL','Rawrel','Laurell Weinder',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2271,'I_RAWREL_','Rawrel','Laurell Weinder',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2272,'I_WHIKEBAIN','Whikebain','Wickebine Tres',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2273,'I_WHIKEBAIN_','Whikebain','Wickebine Tres',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2274,'I_YGNIZEM','Ygnizem','Egnigem Cenia',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2275,'I_YGNIZEM_','Ygnizem','Egnigem Cenia',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2276,'I_DOPPELGANGER','Doppelganger','Doppelganger',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2277,'G_LORA','Lora','Lora',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2278,'G_ELVIRA','Elvira','Elvira',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2279,'G_SOHEON','Soheon','Soheon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2280,'G_RUDO','Rudo','Rudo',135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2281,'GLD_DARK_SHADOW','Abysmal Dark Shadow','Abysmal Dark Shadow',147,214109,0,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,87,0x37B5,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1); +REPLACE INTO `mob_db` VALUES (2282,'GLD_DARK_FRAME','Abysmal Dark Frame','Abysmal Dark Frame',145,200018,0,992,1115,1,318,348,81,37,69,37,36,10,53,5,10,12,1,6,67,0x37B5,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1); +REPLACE INTO `mob_db` VALUES (2283,'GLD_DARK_PRIEST','Abysmal Dark Priest','Abysmal Dark Priest',141,191878,0,2430,1667,2,355,554,62,41,5,60,41,89,78,42,10,12,1,6,89,0x37B5,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2626,30,505,100,716,450,1009,50,2319,5,1241,1,0,0,0,0,4171,1); +REPLACE INTO `mob_db` VALUES (2284,'GLD_KOBOLD_1','Abysmal Kobold','Abysmal Kobold',143,180483,0,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x37B5,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1); +REPLACE INTO `mob_db` VALUES (2285,'GLD_KOBOLD_2','Abysmal Kobold','Abysmal Kobold',142,181340,0,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x37B5,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1); +REPLACE INTO `mob_db` VALUES (2286,'GLD_KOBOLD_3','Abysmal Kobold','Abysmal Kobold',141,182830,0,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x37B5,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1); +REPLACE INTO `mob_db` VALUES (2287,'GLD_KOBOLD_ARCHER','Abysmal Kobold Archer','Abysmal Kobold Archer',142,180530,0,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x37B5,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1); +REPLACE INTO `mob_db` VALUES (2288,'GLD_TREASURE','Treasure Chest','Treasure Chest',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Additional Monsters +REPLACE INTO `mob_db` VALUES (2289,'E_FABRE','Fabre','Fabre',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2290,'J_THIEF_BUG','Thief Bug','Thief Bug',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2291,'E_HORNET','Hornet','Hornet',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2292,'E_HORN','Horn','Horn',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2293,'E_KIND_OF_BEETLE','Beetle King','Beetle King',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2294,'E_ARGIOPE','Argiope','Argiope',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2295,'E_GIANT_SPIDER','Giant Spider','Giant Spider',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2296,'E_KILLER_MANTIS','Killer Mantis','Killer Mantis',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2297,'E_GIANT_HONET','Giant Hornet','Giant Hornet',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2298,'E_DRAGON_TAIL','Dragon Tail','Dragon Tail',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2299,'E_STAINER','Stainer','Stainer',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2300,'E_CHONCHON','Chonchon','Chonchon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2301,'E_STEEL_CHONCHON','Steel Chonchon','Steel Chonchon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2302,'E_HUNTER_FLY','Hunter Fly','Hunter Fly',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2303,'E_MAYA','Maya','Maya',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2304,'E_QUEEN_SCARABA','Queen Scaraba','Queen Scaraba',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2305,'E_UNGOLIANT','Ungoliant','Ungoliant',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2306,'E_GOLDEN_BUG','Golden Thief Bug','Golden Thief Bug',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2307,'J_MISTRESS','Mistress','Mistress',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2308,'KO_ZANZOU','Zanzou','Zanzou',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Malaya Port +REPLACE INTO `mob_db` VALUES (2309,'BUNGISNGIS','Bungisngis','Bungisngis',121,25513,0,1960,1650,1,851,1276,115,35,100,100,30,30,100,30,10,12,2,7,42,0x3795,200,1000,792,336,0,0,0,0,0,0,0,7054,2000,6510,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2310,'ENGKANTO','Engkanto','Engkanto',125,23948,0,1723,1547,1,675,1012,101,41,100,100,30,30,125,30,10,12,1,7,40,0x3795,200,1000,792,336,0,0,0,0,0,0,0,7054,1000,6510,2000,528,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2311,'MANANANGGAL','Manananggal','Manananggal',107,20451,0,1415,1410,1,801,1201,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,6508,3000,6511,2000,6510,1000,7006,500,913,500,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2312,'MANGKUKULAM','Mangkukulam','Mangkukulam',110,20151,0,1517,1351,1,582,873,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,7071,2000,6510,2000,6511,1000,7054,1000,12700,50,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2313,'TIKBALANG','Tikbalang','Tikbalang',115,22131,0,1756,1351,1,781,1171,84,34,100,125,30,30,100,30,10,12,2,2,64,0x3795,150,1000,768,360,0,0,0,0,0,0,0,6496,500,12700,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2314,'TIYANAK','Tiyanak','Tiyanak',105,17146,0,1314,1101,1,457,685,76,21,100,100,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,938,1000,6508,1500,6509,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2315,'WAKWAK','Wakwak','Wakwak',111,20451,0,1374,1254,1,561,841,24,71,100,200,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,6508,4000,6509,2000,12700,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2316,'JEJELING','Jejeling','Jejeling',100,10247,0,801,741,1,675,1012,100,26,100,100,30,30,100,30,10,12,2,3,42,0x81,400,1872,672,480,0,0,0,0,0,0,0,6498,1000,909,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2317,'BANGUNGOT_1','Bangungot','Bangungot',115,1519517,0,781541,761201,1,2561,3329,411,95,200,100,30,250,200,100,10,12,1,6,47,0x37B5,200,768,768,576,100,607,5500,617,2250,616,450,6499,7000,6524,2000,6517,2000,2491,1000,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2318,'BANGUNGOT_2','Bangungot','Bangungot',99,1519517,0,0,0,1,7,10,411,95,200,100,30,250,200,100,10,12,1,6,47,0x60,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2319,'BUWAYA','Buwaya','Buwaya',151,4090365,0,3000012,2801564,1,3614,4698,201,78,200,250,30,250,150,100,10,12,2,9,81,0x37B5,100,432,432,360,100,607,5500,617,2250,616,450,6499,7000,6525,2000,6518,2000,2590,1000,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2320,'BAKONAWA_1','Bakonawa','Bakonawa',156,3351884,0,2510111,2345151,9,4801,6241,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,100,607,5500,617,2250,616,450,6499,7000,6523,2000,6516,2000,15051,1000,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2321,'BAKONAWA_2','Bakonawa','Bakonawa',156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2322,'BAKONAWA_3','Bakonawa','Bakonawa',156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2323,'EVENT_BOMB','Bomb Poring','Bomb Poring',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2324,'EVENT_RANGE','Penomena','Penomena',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2325,'M_BAPHOMET_','Baphomet','Baphomet',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2326,'M_GALAPAGO','Galapago','Galapago',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2327,'BANGUNGOT_3','Bangungot','Bangungot',115,250,0,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x30F5,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2328,'MA_DRUM','Drum','Drum',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2329,'BUWAYA_EGG','Buwaya Egg','Buwaya Egg',100,10000,0,0,0,1,7,10,90,90,1,1,50,50,1,80,10,12,0,0,60,0x0,1000,24,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2330,'BUWAYA_SLAVE','Buwaya Slave','Buwaya Slave',135,20145,0,0,0,1,2300,3100,105,71,100,50,70,50,100,30,10,12,0,3,22,0x3795,250,576,960,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2331,'MA_SEAW','Seaweed','Seaweed',100,10,0,0,0,1,7,10,0,5,1,1,100,100,1,30,10,12,0,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2332,'BUWAYA_GHOST','Fake Buwaya','Fake Buwaya',138,30000,0,30000,30000,1,2726,3398,481,78,150,200,30,200,100,100,10,12,0,3,81,0x37B5,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2333,'BUWAYA_WEAK','Buwaya\'s Weakness','Buwaya\'s Weakness',138,20,0,0,0,1,7,10,100,78,1,1,1,1,6,30,10,12,0,3,81,0x60,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2334,'G_WAKWAK','Wakwak','Wakwak',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2335,'MA_TREASURE','Treasure Chest','Treasure Chest',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2336,'DOMOVOI','Domovoi','Domovoi',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2337,'HIDDEN_MOB','Hidden Mob','Hidden Mob',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2338,'MD_MANANANGGAL','Bangungot Manananggal','Bangungot Manananggal',107,204511,0,0,0,1,901,1124,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2339,'MD_MANGKUKULAM','Bangungot Mangkukulam','Bangungot Mangkukulam',110,102154,0,0,0,1,598,766,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2340,'MD_TIYANAK','Tiyanak','Tiyanak',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2341,'RWC_BOSS2011','RWC Boss','RWC Boss',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Additional Mercenary Monsters +REPLACE INTO `mob_db` VALUES (2342,'MER_DIABOLIC','Diabolic','Diabolic',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2343,'HIDDEN_MOB_W','Hidden Mob','Hidden Mob',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2344,'MER_WISH_MAIDEN','Wish Maiden','Wish Maiden',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2345,'MER_ZHERLTHSH','Zherlthsh','Zealotus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2346,'MER_KTULLANUX','Ktullanux','Ktullanux',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2347,'MER_EDDGA','Eddga','Eddga',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2348,'MER_CIVIL_SERVANT','Civil Servant','Mao Guai',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2349,'MER_LOLI_RURI','Loli Ruri','Loli Ruri',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2350,'MER_SEDORA','Sedora','Sedora',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2351,'MER_CHEPET','Chepet','Chepet',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Nightmare Pyrimids +REPLACE INTO `mob_db` VALUES (2352,'E_RSX_0805','RSX 0805','RSX 0805',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2353,'N_MINOROUS','Nightmare Minorous','Nightmare Minorous',121,27141,0,16176,12252,1,853,1279,131,41,1,1,1,1,6,30,10,12,2,2,43,0x3795,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2354,'N_MUMMY','Nightmare Mummy','Nightmare Mummy',117,22557,0,15480,11670,1,761,1141,110,21,1,1,1,1,6,30,10,12,1,1,49,0x3795,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2355,'N_VERIT','Nightmare Verit','Nightmare Verit',115,21034,0,5280,4584,1,623,934,82,20,1,1,1,1,6,30,10,12,1,1,29,0x3795,250,2468,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2356,'N_MIMIC','Nightmare Mimic','Nightmare Mimic',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2357,'G_N_MIMIC','Nightmare Mimic','Nightmare Mimic',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2358,'N_ARCLOUSE','Nightmare Arclouse','Nightmare Arclouse',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2359,'G_N_ARCLOUSE','Nightmare Arclouse','Nightmare Arclouse',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2360,'N_ANCIENT_MUMMY','Nightmare Ancient Mummy','Nightmare Ancient Mummy',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2361,'G_N_ANCIENT_MUMMY','Nightmare Ancient Mummy','Nightmare Ancient Mummy',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2362,'N_AMON_RA','Nightmare Amon Ra','Nightmare Amon Ra',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Eclage (14.2) +REPLACE INTO `mob_db` VALUES (2363,'MENBLATT','Menblatt','Menblatt',143,82200,0,4150,3421,1,816,1224,79,50,1,1,1,1,6,30,10,12,1,4,44,0x3795,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2364,'PETAL','Petal','Petal',141,81031,0,4058,3361,1,671,1006,73,33,1,1,1,1,6,30,10,12,1,2,24,0x3795,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2365,'CENERE','Cenere','Cenere',146,130131,0,7117,5712,1,1802,2342,87,81,1,1,1,1,6,30,10,12,0,3,24,0x3795,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2366,'ANTIQUE_BOOK','Antique Book','Antique Book',143,134615,0,7225,5870,1,1861,2419,74,42,1,1,1,1,6,30,10,12,0,0,60,0x3795,150,176,912,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2367,'LICHTERN_B','Blue Lichtern','Blue Lichtern',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2368,'LICHTERN_Y','Yellow Lichtern','Yellow Lichtern',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2369,'LICHTERN_R','Red Lichtern','Red Lichtern',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2370,'LICHTERN_G','Green Lichtern','Green Lichtern',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2371,'FAITHFUL_MANAGER','Faithful Manager','Faithful Manager',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# Additional Monsters +REPLACE INTO `mob_db` VALUES (2372,'SOIL','Soil','Soil',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2373,'ROCK','Rock','Rock',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2374,'THICKET','Thicket','Thicket',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2375,'MOROCC_4_142','Incarnation of Morroc','Incarnation of Morroc',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2376,'MOROCC_2_142','Incarnation of Morroc','Incarnation of Morroc',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2377,'E_NOVUS_','Novus','Novus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2378,'MER_ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2379,'XMAS_SMOKEY_SOCK','Smokey Sock','Smokey Sock',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +REPLACE INTO `mob_db` VALUES (2380,'XMAS_SMOKEY_GIFT','Smokey Gift','Smokey Gift',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO mob_db VALUES(" ID", "Sprite_Name", "kROName", "iROName", "LV", "HP", "SP", "EXP", "JEXP", "Range1", "ATK1", "ATK2", "DEF", "MDEF", "STR", "AGI", "VIT", "INT", "DEX", "LUK", "Range2", "Range3", "Scale", "Race", "Element", "Mode", "Speed", "aDelay", "aMotion", "dMotion", "MEXP", "ExpPer", "MVP1id", "MVP1per", "MVP2id", "MVP2per", "MVP3id", "MVP3per", "Drop1id", "Drop1per", "Drop2id", "Drop2per", "Drop3id", "Drop3per", "Drop4id", "Drop4per", "Drop5id", "Drop5per", "Drop6id", "Drop6per", "Drop7id", "Drop7per", "Drop8id", "Drop8per", "Drop9id", "Drop9per", "DropCardid", "DropCardper"); -REPLACE INTO mob_db VALUES(1001, "SCORPION", "Scorpion", "Scorpion", 16, 153, 1, 108, 81, 1, 33, 40, 16, 5, 12, 15, 10, 5, 19, 5, 10, 12, 0, 4, 23, 0x3195, 200, 1564, 864, 576, 0, 0, 0, 0, 0, 0, 0, 0, 990, 70, 904, 5500, 757, 57, 943, 210, 7041, 100, 508, 200, 625, 20, 0, 0, 0, 0, 4068, 1); -REPLACE INTO mob_db VALUES(1002, "PORING", "Poring", "Poring", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 909, 7000, 1202, 100, 938, 400, 512, 1000, 713, 1500, 512, 150, 619, 20, 0, 0, 0, 0, 4001, 1); -# REPLACE INTO mob_db VALUES(1003, "TESTEGG", "Test Egg", "Test Egg", 2, 100000, 0, 10, 10, 0, 3, 9, 99, 0, 1, 99, 1, 1, 1, 1, 10, 12, 0, 4, 22, 0, 512, 0, 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1004, "HORNET", "Hornet", "Hornet", 11, 90, 1, 81, 60, 1, 13, 16, 7, 1, 12, 24, 4, 5, 6, 5, 10, 12, 0, 4, 24, 0x1189, 150, 1292, 792, 216, 0, 0, 0, 0, 0, 0, 0, 0, 992, 80, 939, 9000, 909, 3500, 1208, 15, 511, 350, 518, 150, 0, 0, 0, 0, 0, 0, 4019, 1); -REPLACE INTO mob_db VALUES(1005, "FARMILIAR", "Familiar", "Familiar", 24, 427, 1, 144, 162, 1, 68, 77, 26, 5, 15, 19, 20, 5, 20, 1, 10, 12, 0, 2, 27, 0x3885, 150, 1276, 576, 384, 0, 0, 0, 0, 0, 0, 0, 0, 913, 5500, 1105, 20, 2209, 15, 601, 50, 514, 100, 507, 700, 645, 50, 0, 0, 0, 0, 4020, 1); -# REPLACE INTO mob_db VALUES(1006, "THIEF_BUG_LARVA", "Thief Bug Larva", "Thief Bug Larva", 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1007, "FABRE", "Fabre", "Fabre", 6, 72, 1, 54, 41, 1, 12, 15, 24, 0, 12, 5, 5, 5, 12, 5, 10, 12, 0, 4, 22, 0x181, 400, 1672, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 914, 6500, 949, 500, 1502, 80, 721, 5, 511, 700, 705, 1000, 1501, 200, 0, 0, 0, 0, 4002, 1); -REPLACE INTO mob_db VALUES(1008, "PUPA", "Pupa", "Pupa", 4, 66, 1, 36, 27, 1, 1, 4, 24, 2, 11, 1, 3, 3, 8, 6, 10, 12, 0, 4, 22, 0x100, 1000, 1001, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 80, 915, 5500, 938, 600, 2102, 2, 935, 1000, 938, 600, 1002, 200, 0, 0, 0, 0, 4003, 1); -REPLACE INTO mob_db VALUES(1009, "CONDOR", "Condor", "Condor", 12, 114, 1, 81, 60, 1, 14, 20, 7, 5, 14, 7, 6, 0, 13, 5, 10, 12, 1, 2, 24, 0x1089, 150, 1148, 648, 480, 0, 0, 0, 0, 0, 0, 0, 0, 917, 9000, 1702, 150, 715, 80, 1750, 5500, 517, 400, 916, 2000, 582, 600, 0, 0, 0, 0, 4015, 1); -REPLACE INTO mob_db VALUES(1010, "WILOW", "Willow", "Willow", 8, 91, 1, 63, 47, 1, 13, 18, 38, 2, 13, 3, 8, 5, 12, 5, 10, 12, 1, 3, 22, 0x81, 200, 1672, 672, 432, 0, 0, 0, 0, 0, 0, 0, 0, 902, 9000, 1019, 100, 907, 1500, 516, 700, 1068, 3500, 1067, 2000, 1066, 1000, 0, 0, 0, 0, 4010, 1); -REPLACE INTO mob_db VALUES(1011, "CHONCHON", "Chonchon", "Chonchon", 5, 57, 1, 45, 36, 1, 11, 14, 27, 0, 13, 4, 4, 0, 8, 5, 10, 12, 0, 4, 24, 0x181, 200, 1076, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 998, 50, 935, 6500, 909, 1500, 1205, 55, 601, 100, 742, 5, 1002, 150, 0, 0, 0, 0, 4009, 1); -REPLACE INTO mob_db VALUES(1012, "RODA_FROG", "Roda Frog", "Roda Frog", 13, 160, 1, 90, 68, 1, 19, 23, 12, 5, 12, 6, 4, 0, 14, 9, 10, 12, 1, 5, 21, 0x81, 200, 2016, 816, 288, 0, 0, 0, 0, 0, 0, 0, 0, 918, 9000, 908, 500, 511, 300, 721, 7, 713, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 4014, 1); -REPLACE INTO mob_db VALUES(1013, "WOLF", "Wolf", "Wolf", 45, 1219, 1, 342, 386, 1, 80, 91, 55, 3, 27, 24, 30, 15, 33, 5, 10, 12, 1, 2, 22, 0x1089, 200, 1054, 504, 432, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 20, 920, 9000, 2308, 10, 517, 650, 528, 1050, 919, 5500, 578, 600, 0, 0, 0, 0, 4029, 1); -REPLACE INTO mob_db VALUES(1014, "SPORE", "Spore", "Spore", 18, 280, 1, 117, 87, 1, 25, 33, 12, 10, 15, 5, 10, 0, 12, 0, 10, 12, 1, 3, 21, 0x81, 200, 1872, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 921, 9000, 507, 800, 510, 50, 743, 10, 2220, 40, 7033, 5, 578, 600, 0, 0, 0, 0, 4022, 1); -REPLACE INTO mob_db VALUES(1015, "ZOMBIE", "Zombie", "Zombie", 17, 234, 1, 117, 87, 1, 38, 50, 20, 3, 15, 8, 17, 0, 15, 0, 10, 12, 1, 1, 29, 0x3885, 400, 2612, 912, 288, 0, 0, 0, 0, 0, 0, 0, 0, 957, 9000, 724, 5, 938, 1000, 958, 50, 727, 70, 0, 0, 0, 0, 0, 0, 0, 0, 4038, 1); -REPLACE INTO mob_db VALUES(1016, "ARCHER_SKELETON", "Archer Skeleton", "Archer Skeleton", 50, 1646, 1, 405, 455, 9, 90, 113, 47, 10, 30, 29, 20, 10, 32, 5, 10, 12, 1, 1, 29, 0x2085, 300, 2864, 864, 576, 0, 0, 0, 0, 0, 0, 0, 0, 932, 4500, 756, 70, 2285, 3, 1708, 35, 1752, 1000, 507, 1800, 1701, 150, 0, 0, 0, 0, 4094, 1); -# REPLACE INTO mob_db VALUES(1017, "THIEF_BUG_FEMALE", "Thief Bug Female", "Thief Bug Female", 10, 170, 0, 35, 18, 1, 33, 40, 5, 5, 1, 15, 10, 5, 23, 5, 10, 12, 1, 4, 27, 651, 200, 988, 288, 768, 0, 0, 0, 0, 0, 0, 0, 0, 955, 3500, 910, 250, 1108, 15, 928, 200, 507, 400, 716, 50, 1002, 400, 0, 0, 0, 0, 4026, 1); -REPLACE INTO mob_db VALUES(1018, "CREAMY", "Creamy", "Creamy", 23, 378, 1, 144, 162, 1, 61, 62, 28, 20, 16, 1, 1, 0, 1, 20, 10, 12, 0, 4, 24, 0x181, 150, 1136, 720, 840, 0, 0, 0, 0, 0, 0, 0, 0, 924, 9000, 2322, 10, 518, 150, 602, 100, 2207, 2, 712, 500, 692, 100, 0, 0, 0, 0, 4040, 1); -REPLACE INTO mob_db VALUES(1019, "PECOPECO", "Peco Peco", "Peco Peco", 25, 446, 1, 162, 183, 1, 76, 83, 48, 0, 21, 10, 13, 5, 28, 5, 10, 12, 2, 2, 23, 0x1089, 200, 1564, 864, 576, 0, 0, 0, 0, 0, 0, 0, 0, 925, 9000, 2402, 20, 508, 200, 507, 900, 1604, 100, 0, 0, 582, 1000, 0, 0, 0, 0, 4031, 1); -REPLACE INTO mob_db VALUES(1020, "MANDRAGORA", "Mandragora", "Mandragora", 13, 156, 1, 97, 73, 4, 20, 23, 13, 2, 12, 3, 5, 5, 10, 5, 10, 12, 1, 3, 62, 0x84, 1000, 1768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 993, 50, 905, 9000, 1405, 30, 511, 350, 711, 300, 706, 3, 1967, 10, 0, 0, 0, 0, 4030, 1); -# REPLACE INTO mob_db VALUES(1021, "THIEF_BUG_MALE", "Thief Bug Male", "Thief Bug Male", 19, 583, 0, 223, 93, 1, 76, 88, 15, 5, 1, 29, 16, 5, 36, 1, 10, 12, 1, 4, 27, 653, 300, 988, 288, 768, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 40, 928, 5500, 955, 1500, 1152, 10, 508, 90, 729, 5, 1116, 50, 0, 0, 0, 0, 4050, 1); -# REPLACE INTO mob_db VALUES(1022, "WEREWOLF", "Werewolf", "Werewolf", 80, 28600, 0, 11813, 7289, 2, 2560, 3280, 65, 35, 1, 97, 60, 1, 135, 52, 10, 10, 2, 0, 40, 163, 200, 1500, 768, 652, 0, 0, 0, 0, 0, 0, 0, 0, 999, 500, 1034, 4000, 984, 500, 985, 500, 7017, 800, 0, 0, 1912, 300, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1023, "ORK_WARRIOR", "Orc Warrior", "Orc Warrior", 44, 1434, 1, 350, 540, 1, 71, 104, 52, 3, 32, 15, 24, 15, 16, 10, 10, 12, 1, 7, 22, 0x3885, 200, 1864, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 998, 210, 931, 9000, 756, 40, 2267, 3, 1352, 10, 1304, 5, 2147, 3, 0, 0, 0, 0, 4066, 1); -REPLACE INTO mob_db VALUES(1024, "WORM_TAIL", "Wormtail", "Wormtail", 17, 200, 1, 117, 87, 1, 22, 27, 16, 0, 10, 6, 14, 5, 12, 35, 10, 12, 1, 3, 22, 0x91, 200, 1048, 48, 192, 0, 0, 0, 0, 0, 0, 0, 0, 993, 60, 1011, 25, 906, 5500, 1408, 30, 508, 70, 721, 5, 10015, 100, 0, 0, 0, 0, 4034, 1); -REPLACE INTO mob_db VALUES(1025, "SNAKE", "Snake", "Boa", 18, 217, 1, 117, 87, 1, 23, 28, 9, 8, 10, 8, 18, 10, 14, 15, 10, 12, 1, 2, 22, 0x81, 200, 1576, 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, 926, 9000, 1117, 15, 507, 900, 1011, 35, 937, 800, 954, 1, 578, 600, 0, 0, 0, 0, 4037, 1); -REPLACE INTO mob_db VALUES(1026, "MUNAK", "Munak", "Munak", 58, 2445, 1, 495, 557, 1, 175, 205, 77, 15, 53, 9, 25, 10, 30, 10, 10, 12, 1, 1, 29, 0x3885, 200, 2468, 768, 288, 0, 0, 0, 0, 0, 0, 0, 0, 901, 9000, 2264, 2, 2404, 15, 609, 20, 2337, 1, 2305, 100, 1558, 5, 0, 0, 0, 0, 4090, 1); -# REPLACE INTO mob_db VALUES(1027, "RAPTICE", "Raptice", "Raptice", 17, 600, 0, 100, 55, 1, 0, 0, 5, 10, 5, 20, 20, 0, 28, 10, 10, 12, 1, 2, 22, 131, 200, 2000, 1000, 500, 0, 0, 0, 0, 0, 0, 0, 0, 909, 7000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1028, "SOLDIER_SKELETON", "Soldier Skeleton", "Soldier Skeleton", 34, 804, 1, 216, 243, 1, 84, 98, 53, 5, 14, 10, 32, 5, 29, 3, 10, 12, 1, 1, 29, 0x3885, 200, 2276, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 932, 5500, 756, 60, 1214, 12, 507, 700, 934, 10, 2315, 1, 1216, 50, 0, 0, 0, 0, 4086, 1); -REPLACE INTO mob_db VALUES(1029, "ISIS", "Isis", "Isis", 59, 2092, 1, 531, 597, 1, 192, 229, 83, 5, 58, 43, 22, 5, 39, 15, 10, 12, 2, 6, 27, 0x3195, 200, 1384, 768, 336, 0, 0, 0, 0, 0, 0, 0, 0, 936, 5335, 2233, 5, 2603, 1, 733, 150, 732, 20, 954, 1000, 731, 5, 0, 0, 0, 0, 4116, 1); -REPLACE INTO mob_db VALUES(1030, "ANACONDAQ", "Anacondaq", "Anacondaq", 100, 8510, 1, 1602, 1202, 1, 388, 443, 92, 0, 79, 46, 28, 43, 56, 25, 10, 12, 1, 2, 25, 0x91, 200, 1576, 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, 6247, 200, 937, 9000, 1455, 10, 926, 1500, 936, 200, 508, 150, 756, 50, 0, 0, 0, 0, 4062, 1); -REPLACE INTO mob_db VALUES(1031, "POPORING", "Poporing", "Poporing", 30, 524, 1, 198, 224, 1, 74, 94, 36, 17, 17, 26, 20, 18, 36, 5, 10, 12, 1, 3, 25, 0x83, 300, 1672, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 938, 5500, 910, 1500, 511, 500, 514, 200, 512, 5, 1207, 5, 512, 250, 0, 0, 0, 0, 4033, 1); -REPLACE INTO mob_db VALUES(1032, "VERIT", "Verit", "Verit", 52, 1944, 1, 414, 467, 1, 132, 152, 63, 10, 51, 4, 25, 10, 5, 5, 10, 12, 1, 1, 29, 0x83, 250, 2468, 768, 480, 0, 0, 0, 0, 0, 0, 0, 0, 929, 9000, 912, 700, 930, 1100, 509, 600, 2609, 1, 2612, 200, 639, 20, 0, 0, 0, 0, 4107, 1); -REPLACE INTO mob_db VALUES(1033, "ELDER_WILOW", "Elder Willow", "Elder Willow", 34, 599, 1, 233, 263, 1, 80, 94, 45, 0, 10, 14, 25, 0, 29, 0, 10, 12, 1, 3, 43, 0x3095, 200, 1372, 672, 432, 0, 0, 0, 0, 0, 0, 0, 0, 990, 50, 907, 9000, 7939, 1, 757, 40, 2329, 30, 690, 100, 604, 100, 0, 0, 0, 0, 4052, 1); -REPLACE INTO mob_db VALUES(1034, "THARA_FROG", "Thara Frog", "Thara Frog", 40, 1157, 1, 311, 350, 1, 73, 103, 37, 17, 25, 10, 10, 18, 30, 2, 10, 12, 1, 5, 41, 0x81, 200, 2016, 816, 288, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 45, 908, 5500, 911, 600, 509, 30, 725, 5, 918, 2000, 0, 0, 0, 0, 0, 0, 4058, 1); -REPLACE INTO mob_db VALUES(1035, "HUNTER_FLY", "Hunter Fly", "Hunter Fly", 63, 2050, 1, 604, 681, 1, 120, 140, 46, 20, 32, 72, 22, 25, 79, 15, 10, 12, 0, 4, 44, 0x3985, 150, 676, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 996, 30, 999, 100, 943, 5335, 912, 1300, 756, 129, 2259, 1, 1226, 2, 0, 0, 0, 0, 4115, 1); -REPLACE INTO mob_db VALUES(1036, "GHOUL", "Ghoul", "Ghoul", 61, 2614, 1, 583, 656, 1, 216, 245, 78, 5, 56, 12, 19, 11, 27, 10, 10, 12, 1, 1, 49, 0x3885, 250, 2456, 912, 504, 0, 0, 0, 0, 0, 0, 0, 0, 958, 6000, 756, 110, 509, 700, 511, 800, 2609, 60, 934, 150, 1260, 1, 0, 0, 0, 0, 4110, 1); -REPLACE INTO mob_db VALUES(1037, "SIDE_WINDER", "Side Winder", "Side Winder", 70, 2736, 1, 720, 810, 1, 301, 331, 101, 12, 52, 32, 35, 20, 66, 15, 10, 12, 1, 2, 25, 0x3095, 200, 1576, 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, 954, 5335, 912, 1400, 756, 134, 1120, 2, 937, 2500, 926, 5000, 509, 1000, 0, 0, 0, 0, 4117, 1); -REPLACE INTO mob_db VALUES(1038, "OSIRIS", "Osiris", "Osiris", 68, 475840, 1, 245520, 200880, 1, 1580, 2483, 172, 164, 97, 99, 86, 131, 145, 67, 10, 12, 1, 1, 89, 0x37B5, 100, 1072, 672, 384, 122760, 10000, 603, 4000, 608, 3000, 751, 500, 617, 2000, 1232, 150, 2235, 200, 1255, 600, 1009, 1000, 5053, 150, 1285, 100, 0, 0, 0, 0, 4144, 1); -REPLACE INTO mob_db VALUES(1039, "BAPHOMET", "Baphomet", "Baphomet", 81, 668000, 1, 396525, 334106, 2, 2864, 4148, 279, 45, 120, 125, 30, 85, 155, 85, 10, 12, 2, 6, 67, 0x37B5, 100, 768, 768, 576, 198262, 10000, 607, 2000, 750, 500, 923, 5000, 1466, 400, 2256, 300, 1476, 50, 714, 500, 5160, 10, 985, 5432, 984, 4171, 0, 0, 0, 0, 4147, 1); -REPLACE INTO mob_db VALUES(1040, "GOLEM", "Golem", "Golem", 61, 2245, 1, 540, 608, 1, 198, 223, 190, 12, 70, 27, 67, 5, 31, 5, 10, 12, 2, 0, 60, 0x91, 300, 1608, 816, 396, 0, 0, 0, 0, 0, 0, 0, 0, 999, 150, 953, 9000, 912, 220, 757, 70, 2146, 5, 715, 200, 998, 350, 0, 0, 0, 0, 4072, 1); -REPLACE INTO mob_db VALUES(1041, "MUMMY", "Mummy", "Mummy", 55, 2155, 1, 486, 548, 1, 171, 192, 95, 3, 54, 4, 14, 1, 62, 0, 10, 12, 1, 1, 49, 0x3885, 300, 1772, 72, 384, 0, 0, 0, 0, 0, 0, 0, 0, 930, 9000, 756, 100, 934, 550, 2604, 1, 2611, 10, 525, 250, 508, 850, 0, 0, 0, 0, 4106, 1); -REPLACE INTO mob_db VALUES(1042, "STEEL_CHONCHON", "Steel Chonchon", "Steel Chonchon", 48, 1199, 1, 369, 414, 1, 77, 112, 57, 20, 30, 62, 20, 10, 56, 10, 10, 12, 0, 4, 24, 0x118B, 150, 1076, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 992, 90, 999, 30, 910, 2400, 935, 9000, 943, 30, 998, 200, 1002, 300, 0, 0, 0, 0, 4042, 1); -# REPLACE INTO mob_db VALUES(1043, "SEAHORES", "Seahorse", "Seahorse", 18, 1452, 0, 122, 78, 3, 100, 150, 15, 7, 1, 1, 1, 1, 1, 1, 10, 10, 0, 5, 22, 131, 200, 1500, 800, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1044, "OBEAUNE", "Obeaune", "Obeaune", 53, 2158, 1, 476, 534, 1, 102, 147, 48, 26, 54, 47, 21, 40, 36, 25, 10, 12, 1, 5, 41, 0x3095, 200, 1872, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 995, 13, 950, 9000, 5014, 1, 2326, 10, 720, 10, 951, 500, 748, 30, 0, 0, 0, 0, 4093, 1); -REPLACE INTO mob_db VALUES(1045, "MARC", "Marc", "Marc", 56, 2522, 1, 525, 590, 1, 138, 163, 55, 24, 50, 24, 22, 15, 48, 20, 10, 12, 1, 5, 41, 0x3885, 150, 1272, 72, 480, 0, 0, 0, 0, 0, 0, 0, 0, 995, 18, 956, 9000, 756, 95, 951, 1000, 720, 10, 717, 200, 509, 700, 0, 0, 0, 0, 4105, 1); -REPLACE INTO mob_db VALUES(1046, "DOPPELGANGER", "Doppelganger", "Doppelganger", 77, 380000, 1, 313200, 250560, 1, 1639, 2815, 246, 86, 122, 122, 105, 67, 169, 72, 10, 12, 1, 6, 67, 0x37B5, 100, 480, 480, 288, 156600, 10000, 724, 1500, 505, 6000, 0, 0, 2317, 250, 1162, 220, 1168, 150, 2258, 350, 1411, 550, 985, 3686, 984, 2700, 0, 0, 0, 0, 4142, 1); -REPLACE INTO mob_db VALUES(1047, "PECOPECO_EGG", "Peco Peco Egg", "Peco Peco Egg", 7, 75, 1, 54, 41, 0, 1, 1, 16, 5, 4, 10, 22, 8, 10, 5, 10, 12, 0, 0, 60, 0x0, 1000, 1001, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 250, 935, 1500, 2102, 2, 507, 400, 507, 400, 713, 1800, 736, 10, 0, 0, 0, 0, 4007, 1); -REPLACE INTO mob_db VALUES(1048, "THIEF_BUG_EGG", "Thief Bug Egg", "Thief Bug Egg", 20, 344, 1, 126, 143, 0, 1, 2, 64, 10, 10, 1, 50, 0, 3, 15, 10, 12, 0, 4, 27, 0x100, 1000, 701, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 300, 915, 5000, 2102, 2, 938, 600, 716, 100, 737, 10, 1002, 250, 0, 0, 0, 0, 4012, 1); -REPLACE INTO mob_db VALUES(1049, "PICKY", "Picky", "Picky", 9, 95, 1, 63, 47, 1, 18, 19, 21, 3, 14, 9, 10, 0, 10, 3, 10, 12, 0, 2, 23, 0x81, 200, 988, 288, 168, 0, 0, 0, 0, 0, 0, 0, 0, 916, 9000, 949, 700, 2302, 150, 507, 550, 519, 300, 715, 50, 0, 0, 0, 0, 0, 0, 4008, 1); -REPLACE INTO mob_db VALUES(1050, "PICKY_", "Picky", "Picky", 10, 89, 1, 72, 54, 1, 18, 38, 48, 10, 15, 8, 8, 5, 9, 3, 10, 12, 0, 2, 23, 0x81, 200, 988, 288, 168, 0, 0, 0, 0, 0, 0, 0, 0, 916, 9000, 949, 700, 5015, 10, 507, 600, 519, 300, 715, 50, 10012, 10, 0, 0, 0, 0, 4011, 1); -REPLACE INTO mob_db VALUES(1051, "THIEF_BUG", "Thief Bug", "Thief Bug", 21, 354, 1, 126, 143, 1, 56, 61, 24, 3, 19, 7, 10, 0, 12, 5, 10, 12, 0, 4, 60, 0x118B, 150, 1288, 288, 768, 0, 0, 0, 0, 0, 0, 0, 0, 955, 2500, 2304, 80, 507, 350, 909, 2000, 2303, 120, 1002, 250, 0, 0, 0, 0, 0, 0, 4016, 1); -REPLACE INTO mob_db VALUES(1052, "ROCKER", "Rocker", "Rocker", 15, 185, 1, 99, 74, 1, 19, 24, 16, 3, 12, 18, 8, 10, 17, 5, 10, 12, 1, 4, 22, 0x181, 200, 1864, 864, 540, 0, 0, 0, 0, 0, 0, 0, 0, 940, 9000, 1916, 10, 2298, 4, 1402, 80, 520, 10, 752, 10, 703, 10, 0, 0, 0, 0, 4021, 1); -REPLACE INTO mob_db VALUES(1053, "THIEF_BUG_", "Thief Bug Female", "Thief Bug Female", 28, 531, 1, 180, 203, 1, 42, 58, 28, 7, 12, 10, 23, 10, 24, 10, 10, 12, 1, 4, 27, 0x118B, 200, 988, 288, 768, 0, 0, 0, 0, 0, 0, 0, 0, 955, 3500, 910, 250, 1108, 15, 928, 200, 507, 400, 716, 50, 1002, 300, 0, 0, 0, 0, 4026, 1); -REPLACE INTO mob_db VALUES(1054, "THIEF_BUG__", "Thief Bug Male", "Thief Bug Male", 30, 595, 1, 198, 224, 1, 46, 67, 40, 20, 17, 37, 22, 5, 31, 13, 10, 12, 1, 4, 27, 0x318D, 300, 988, 288, 768, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 40, 928, 5500, 955, 1500, 1152, 10, 508, 90, 729, 5, 1116, 50, 0, 0, 0, 0, 4050, 1); -REPLACE INTO mob_db VALUES(1055, "MUKA", "Muka", "Muka", 23, 468, 1, 144, 162, 1, 66, 75, 28, 0, 18, 9, 28, 5, 43, 5, 10, 12, 2, 3, 22, 0x81, 300, 1960, 960, 384, 0, 0, 0, 0, 0, 0, 0, 0, 993, 70, 952, 9000, 713, 2000, 511, 400, 507, 1000, 1451, 50, 1002, 250, 0, 0, 0, 0, 4036, 1); -REPLACE INTO mob_db VALUES(1056, "SMOKIE", "Smokie", "Smokie", 29, 591, 1, 180, 203, 1, 70, 81, 26, 0, 16, 34, 16, 5, 27, 5, 10, 12, 0, 2, 22, 0x91, 200, 1576, 576, 420, 0, 0, 0, 0, 0, 0, 0, 0, 945, 5500, 919, 5500, 516, 800, 2213, 1, 754, 2, 912, 5, 729, 2, 0, 0, 0, 0, 4044, 1); -REPLACE INTO mob_db VALUES(1057, "YOYO", "Yoyo", "Yoyo", 38, 898, 1, 270, 305, 1, 63, 74, 40, 0, 20, 11, 34, 20, 19, 10, 10, 12, 0, 2, 22, 0x108B, 200, 1054, 54, 384, 0, 0, 0, 0, 0, 0, 0, 0, 942, 9000, 513, 1500, 508, 200, 7182, 900, 753, 10, 756, 24, 578, 1000, 0, 0, 0, 0, 4051, 1); -REPLACE INTO mob_db VALUES(1058, "METALLER", "Metaller", "Metaller", 55, 1687, 1, 450, 507, 1, 187, 228, 72, 12, 52, 24, 10, 0, 47, 31, 10, 12, 1, 4, 23, 0x118B, 200, 1708, 1008, 540, 0, 0, 0, 0, 0, 0, 0, 0, 990, 60, 940, 6500, 911, 400, 757, 49, 707, 20, 935, 3000, 1914, 10, 0, 0, 0, 0, 4057, 1); -REPLACE INTO mob_db VALUES(1059, "MISTRESS", "Mistress", "Mistress", 78, 378000, 1, 368280, 301320, 1, 985, 2352, 187, 192, 76, 186, 88, 113, 172, 79, 10, 12, 0, 4, 84, 0x37B5, 100, 1148, 648, 300, 184140, 10000, 996, 1500, 526, 4000, 722, 3000, 1413, 150, 518, 10000, 2249, 250, 616, 1000, 7018, 10, 985, 4268, 16001, 100, 0, 0, 0, 0, 4132, 1); -REPLACE INTO mob_db VALUES(1060, "BIGFOOT", "Bigfoot", "Bigfoot", 29, 587, 1, 180, 203, 1, 50, 62, 55, 7, 18, 4, 7, 0, 12, 0, 10, 12, 2, 2, 22, 0x91, 300, 1260, 192, 192, 0, 0, 0, 0, 0, 0, 0, 0, 948, 9000, 2289, 5, 919, 5000, 740, 80, 516, 1500, 518, 450, 756, 43, 0, 0, 0, 0, 4074, 1); -REPLACE INTO mob_db VALUES(1061, "NIGHTMARE", "Nightmare", "Nightmare", 69, 2872, 1, 501, 1032, 1, 283, 345, 116, 15, 57, 32, 20, 15, 70, 15, 10, 12, 2, 6, 68, 0x3395, 150, 1816, 816, 432, 0, 0, 0, 0, 0, 0, 0, 0, 944, 6000, 510, 500, 2608, 2, 603, 30, 505, 100, 1261, 1, 984, 60, 0, 0, 0, 0, 4127, 1); -REPLACE INTO mob_db VALUES(1062, "PORING_", "Santa Poring", "Santa Poring", 3, 69, 1, 4, 5, 1, 12, 16, 0, 0, 1, 14, 3, 10, 12, 90, 10, 12, 1, 3, 26, 0x81, 400, 1672, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 529, 2000, 530, 1000, 507, 1000, 512, 1000, 2236, 100, 512, 7, 0, 0, 0, 0, 0, 0, 4005, 1); -REPLACE INTO mob_db VALUES(1063, "LUNATIC", "Lunatic", "Lunatic", 3, 55, 1, 36, 27, 1, 11, 12, 18, 0, 10, 3, 3, 0, 8, 5, 10, 12, 0, 2, 60, 0x81, 200, 1456, 456, 336, 0, 0, 0, 0, 0, 0, 0, 0, 705, 6500, 949, 1000, 2262, 4, 512, 2000, 507, 600, 515, 1100, 622, 20, 0, 0, 0, 0, 4006, 1); -REPLACE INTO mob_db VALUES(1064, "MEGALODON", "Megalodon", "Megalodon", 46, 1335, 1, 342, 386, 1, 117, 149, 52, 28, 35, 24, 30, 28, 29, 15, 10, 12, 1, 1, 29, 0x81, 200, 2492, 792, 432, 0, 0, 0, 0, 0, 0, 0, 0, 959, 5500, 932, 1500, 510, 80, 717, 120, 719, 10, 603, 2, 624, 20, 0, 0, 0, 0, 4067, 1); -REPLACE INTO mob_db VALUES(1065, "STROUF", "Strouf", "Strouf", 61, 3052, 1, 626, 705, 1, 162, 192, 67, 21, 49, 16, 31, 20, 33, 20, 10, 12, 2, 5, 61, 0x3885, 150, 1872, 672, 384, 0, 0, 0, 0, 0, 0, 0, 0, 951, 5335, 756, 115, 2315, 2, 1461, 2, 949, 3000, 720, 20, 956, 1500, 0, 0, 0, 0, 4111, 1); -REPLACE INTO mob_db VALUES(1066, "VADON", "Vadon", "Vadon", 45, 1252, 1, 342, 386, 1, 78, 103, 54, 21, 35, 21, 28, 20, 33, 15, 10, 12, 0, 5, 21, 0x91, 300, 1632, 432, 540, 0, 0, 0, 0, 0, 0, 0, 0, 991, 40, 960, 9000, 910, 3000, 2313, 5, 943, 100, 757, 40, 717, 50, 0, 0, 0, 0, 4049, 1); -REPLACE INTO mob_db VALUES(1067, "CORNUTUS", "Cornutus", "Cornutus", 48, 1450, 1, 369, 414, 1, 79, 126, 42, 28, 32, 27, 45, 26, 27, 15, 10, 12, 0, 5, 21, 0x91, 200, 1248, 48, 480, 0, 0, 0, 0, 0, 0, 0, 0, 991, 45, 961, 5500, 911, 800, 757, 53, 2106, 5, 943, 1000, 717, 100, 0, 0, 0, 0, 4061, 1); -REPLACE INTO mob_db VALUES(1068, "HYDRA", "Hydra", "Hydra", 34, 854, 1, 233, 263, 7, 35, 41, 20, 32, 10, 9, 14, 0, 35, 2, 10, 12, 0, 3, 41, 0x84, 1000, 800, 432, 600, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 25, 962, 5500, 938, 1500, 971, 20, 525, 5, 517, 700, 0, 0, 0, 0, 0, 0, 4035, 1); -REPLACE INTO mob_db VALUES(1069, "SWORD_FISH", "Swordfish", "Swordfish", 57, 2600, 1, 525, 590, 1, 149, 184, 52, 12, 50, 56, 25, 15, 40, 15, 10, 12, 2, 5, 41, 0x3885, 200, 1968, 768, 384, 0, 0, 0, 0, 0, 0, 0, 0, 995, 10, 963, 9000, 756, 33, 2257, 2, 757, 50, 1117, 25, 956, 600, 0, 0, 0, 0, 4089, 1); -REPLACE INTO mob_db VALUES(1070, "KUKRE", "Kukre", "Kukre", 42, 1111, 1, 315, 354, 1, 65, 93, 33, 23, 25, 30, 22, 20, 32, 20, 10, 12, 0, 5, 21, 0x83, 150, 1776, 576, 288, 0, 0, 0, 0, 0, 0, 0, 0, 991, 30, 955, 5500, 910, 400, 528, 500, 507, 650, 928, 450, 623, 20, 0, 0, 0, 0, 4027, 1); -REPLACE INTO mob_db VALUES(1071, "PIRATE_SKEL", "Pirate Skeleton", "Pirate Skeleton", 48, 1411, 1, 369, 414, 1, 105, 125, 53, 20, 35, 25, 25, 15, 30, 10, 10, 12, 1, 1, 29, 0x3885, 200, 1754, 554, 288, 0, 0, 0, 0, 0, 0, 0, 0, 932, 3000, 2287, 15, 7477, 5, 2211, 250, 1104, 250, 756, 43, 628, 20, 0, 0, 0, 0, 4073, 1); -REPLACE INTO mob_db VALUES(1072, "KAHO", "Kaho", "Kaho", 98, 7045, 1, 1953, 1463, 1, 504, 728, 106, 55, 81, 61, 55, 65, 66, 73, 10, 12, 1, 6, 83, 0x3985, 150, 1700, 1000, 500, 0, 0, 0, 0, 0, 0, 0, 0, 994, 30, 1003, 150, 7097, 3000, 690, 100, 757, 1000, 716, 300, 970, 5, 0, 0, 0, 0, 4065, 1); -REPLACE INTO mob_db VALUES(1073, "CRAB", "Crab", "Crab", 43, 1233, 1, 315, 354, 1, 69, 79, 36, 11, 22, 14, 24, 7, 28, 15, 7, 12, 0, 5, 21, 0x81, 200, 992, 792, 360, 0, 0, 0, 0, 0, 0, 0, 0, 964, 5500, 960, 1500, 7049, 700, 1001, 13, 0, 0, 0, 0, 757, 37, 0, 0, 0, 0, 4153, 1); -REPLACE INTO mob_db VALUES(1074, "SHELLFISH", "Shellfish", "Shellfish", 50, 1680, 1, 405, 455, 1, 70, 92, 43, 5, 42, 11, 48, 25, 26, 10, 10, 12, 0, 5, 21, 0x91, 200, 864, 864, 384, 0, 0, 0, 0, 0, 0, 0, 0, 965, 5500, 966, 1000, 7049, 500, 1056, 1000, 1001, 10, 0, 0, 757, 18, 0, 0, 0, 0, 4273, 1); -# REPLACE INTO mob_db VALUES(1075, "TURTLE", "Turtle", "Turtle", 3, 77, 0, 0, 0, 1, 1, 2, 35, 0, 1, 1, 1, 1, 1, 1, 7, 12, 0, 5, 22, 0x81, 200, 500, 500, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1076, "SKELETON", "Skeleton", "Skeleton", 27, 612, 1, 162, 183, 1, 78, 102, 21, 2, 24, 15, 30, 5, 19, 1, 10, 12, 1, 1, 29, 0x91, 200, 2228, 528, 576, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 90, 932, 800, 1505, 80, 909, 3000, 507, 850, 2609, 30, 0, 0, 0, 0, 0, 0, 4025, 1); -REPLACE INTO mob_db VALUES(1077, "POISON_SPORE", "Poison Spore", "Poison Spore", 26, 456, 1, 162, 183, 1, 68, 83, 40, 8, 19, 17, 22, 5, 20, 5, 10, 12, 1, 3, 25, 0x3885, 200, 1672, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7033, 9000, 2221, 20, 511, 550, 510, 60, 972, 50, 921, 1200, 912, 5, 0, 0, 0, 0, 4048, 1); -REPLACE INTO mob_db VALUES(1078, "RED_PLANT", "Red Plant", "Red Plant", 1, 10, 0, 0, 0, 1, 1, 2, 100, 99, 0, 0, 0, 0, 0, 0, 7, 12, 0, 3, 22, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 507, 5500, 712, 1000, 711, 1000, 905, 500, 7933, 300, 914, 500, 708, 50, 0, 0, 0, 0, 2269, 2); -REPLACE INTO mob_db VALUES(1079, "BLUE_PLANT", "Blue Plant", "Blue Plant", 1, 10, 0, 0, 0, 1, 1, 2, 100, 99, 0, 0, 0, 0, 0, 0, 7, 12, 0, 3, 22, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 510, 5500, 712, 1000, 711, 1000, 905, 500, 7932, 300, 522, 50, 514, 1000, 0, 0, 0, 0, 2270, 2); -REPLACE INTO mob_db VALUES(1080, "GREEN_PLANT", "Green Plant", "Green Plant", 1, 10, 0, 0, 0, 1, 1, 2, 100, 99, 0, 0, 0, 0, 0, 0, 7, 12, 0, 3, 22, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 511, 7000, 7934, 300, 621, 20, 905, 3000, 906, 1500, 704, 50, 521, 50, 0, 0, 0, 0, 2270, 2); -REPLACE INTO mob_db VALUES(1081, "YELLOW_PLANT", "Yellow Plant", "Yellow Plant", 1, 10, 0, 0, 0, 1, 1, 2, 100, 99, 0, 0, 0, 0, 0, 0, 7, 12, 0, 3, 22, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 508, 5500, 712, 1000, 711, 1000, 905, 500, 7937, 300, 707, 5, 914, 500, 0, 0, 0, 0, 2269, 2); -REPLACE INTO mob_db VALUES(1082, "WHITE_PLANT", "White Plant", "White Plant", 1, 10, 0, 0, 0, 1, 1, 2, 100, 99, 0, 0, 0, 0, 0, 0, 7, 12, 0, 3, 22, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 509, 5500, 712, 1000, 631, 20, 905, 3000, 7935, 300, 521, 50, 703, 50, 0, 0, 0, 0, 2269, 2); -REPLACE INTO mob_db VALUES(1083, "SHINING_PLANT", "Shining Plant", "Shining Plant", 1, 20, 0, 0, 0, 1, 1, 2, 100, 99, 0, 0, 0, 0, 0, 90, 7, 12, 0, 3, 26, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 510, 5500, 508, 1000, 509, 1000, 710, 5, 608, 20, 7938, 500, 607, 50, 0, 0, 0, 0, 714, 1); -REPLACE INTO mob_db VALUES(1084, "BLACK_MUSHROOM", "Black Mushroom", "Black Mushroom", 1, 15, 0, 0, 0, 1, 1, 2, 100, 99, 0, 0, 0, 0, 0, 0, 7, 12, 0, 3, 22, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 970, 50, 971, 50, 630, 20, 949, 2000, 991, 800, 921, 5500, 921, 5500, 0, 0, 0, 0, 7033, 5500); -REPLACE INTO mob_db VALUES(1085, "RED_MUSHROOM", "Red Mushroom", "Red Mushroom", 1, 15, 0, 0, 0, 1, 1, 2, 100, 99, 0, 0, 0, 0, 0, 0, 7, 12, 0, 3, 22, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 970, 50, 972, 50, 630, 20, 949, 2000, 990, 1000, 921, 5500, 921, 5500, 0, 0, 0, 0, 7033, 5500); -REPLACE INTO mob_db VALUES(1086, "GOLDEN_BUG", "Golden Thief Bug", "Golden Thief Bug", 65, 222750, 1, 194400, 155520, 1, 907, 1750, 159, 81, 71, 77, 80, 62, 127, 76, 10, 12, 2, 4, 43, 0x11AB, 100, 768, 768, 480, 97200, 10000, 2610, 2000, 701, 1000, 0, 0, 969, 1000, 1524, 150, 2246, 250, 10016, 500, 714, 300, 985, 2000, 984, 1500, 0, 0, 0, 0, 4128, 1); -REPLACE INTO mob_db VALUES(1087, "ORK_HERO", "Orc Hero", "Orc Hero", 50, 362000, 1, 106920, 97200, 1, 662, 1103, 197, 70, 97, 82, 107, 71, 144, 43, 10, 12, 2, 7, 42, 0x37B5, 150, 1678, 780, 648, 53460, 10000, 725, 2000, 607, 1500, 999, 5000, 968, 9700, 10018, 500, 1366, 150, 2106, 250, 1124, 1000, 985, 4559, 1387, 100, 0, 0, 0, 0, 4143, 1); -REPLACE INTO mob_db VALUES(1088, "VOCAL", "Vocal", "Vocal", 18, 3317, 1, 99, 79, 1, 71, 82, 77, 26, 77, 26, 26, 30, 53, 40, 10, 12, 1, 4, 22, 0x3795, 200, 1080, 648, 480, 0, 0, 0, 0, 0, 0, 0, 0, 2247, 50, 940, 8000, 721, 1000, 752, 1500, 2420, 1000, 7938, 500, 1917, 10, 0, 0, 0, 0, 4211, 1); -REPLACE INTO mob_db VALUES(1089, "TOAD", "Toad", "Toad", 27, 660, 1, 162, 183, 1, 70, 89, 24, 6, 32, 19, 27, 10, 24, 5, 10, 12, 1, 5, 21, 0x37B5, 200, 1236, 336, 432, 0, 0, 0, 0, 0, 0, 0, 0, 2244, 50, 518, 2000, 729, 1000, 7938, 500, 970, 100, 971, 100, 5125, 1000, 0, 0, 0, 0, 4306, 1); -REPLACE INTO mob_db VALUES(1090, "MASTERING", "Mastering", "Mastering", 42, 1260, 1, 315, 354, 1, 80, 120, 48, 31, 35, 21, 41, 12, 29, 60, 10, 12, 1, 3, 21, 0x37B5, 300, 1072, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 2257, 200, 619, 50, 722, 1000, 2116, 1000, 7938, 500, 512, 8000, 531, 4000, 0, 0, 0, 0, 4197, 1); -REPLACE INTO mob_db VALUES(1091, "DRAGON_FLY", "Dragon Fly", "Dragon Fly", 47, 1035, 1, 360, 405, 1, 102, 135, 57, 28, 37, 44, 30, 15, 44, 15, 10, 12, 0, 4, 24, 0x37B5, 100, 1076, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 2245, 200, 507, 8000, 719, 1500, 742, 2000, 2607, 3000, 625, 50, 533, 3000, 0, 0, 0, 0, 4179, 1); -REPLACE INTO mob_db VALUES(1092, "VAGABOND_WOLF", "Vagabond Wolf", "Vagabond Wolf", 93, 8203, 1, 1422, 2601, 1, 399, 445, 102, 51, 72, 63, 55, 29, 90, 15, 10, 12, 1, 2, 22, 0x37B5, 150, 1048, 648, 432, 0, 0, 0, 0, 0, 0, 0, 0, 2248, 200, 920, 8000, 728, 1500, 1148, 100, 2521, 1000, 7938, 500, 626, 50, 0, 0, 0, 0, 4183, 1); -REPLACE INTO mob_db VALUES(1093, "ECLIPSE", "Eclipse", "Eclipse", 31, 625, 1, 207, 233, 1, 60, 80, 50, 20, 20, 28, 35, 17, 27, 55, 10, 12, 1, 2, 60, 0x37B5, 200, 1456, 456, 336, 0, 0, 0, 0, 0, 0, 0, 0, 2250, 200, 507, 8000, 727, 1200, 7938, 500, 706, 30, 622, 50, 2355, 1000, 0, 0, 0, 0, 4266, 1); -REPLACE INTO mob_db VALUES(1094, "AMBERNITE", "Ambernite", "Ambernite", 19, 340, 1, 117, 87, 1, 26, 37, 28, 0, 16, 20, 11, 10, 21, 5, 10, 12, 2, 4, 21, 0x191, 400, 2048, 648, 648, 0, 0, 0, 0, 0, 0, 0, 0, 991, 50, 946, 9000, 910, 1200, 935, 3000, 943, 2, 757, 14, 1002, 150, 0, 0, 0, 0, 4032, 1); -REPLACE INTO mob_db VALUES(1095, "ANDRE", "Andre", "Andre", 33, 724, 1, 216, 243, 1, 51, 72, 55, 16, 11, 20, 40, 10, 24, 10, 10, 12, 0, 4, 22, 0x118B, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 955, 9000, 910, 1000, 938, 500, 993, 50, 1001, 4, 1002, 350, 757, 28, 0, 0, 0, 0, 4043, 1); -REPLACE INTO mob_db VALUES(1096, "ANGELING", "Angeling", "Angeling", 77, 19800, 1, 3060, 2693, 1, 355, 500, 72, 238, 58, 50, 33, 105, 67, 200, 10, 12, 1, 8, 86, 0x37B5, 200, 1072, 672, 672, 0, 0, 0, 0, 0, 0, 0, 0, 2254, 100, 2324, 60, 610, 500, 2282, 1, 509, 2000, 512, 28, 714, 40, 0, 0, 0, 0, 4054, 1); -REPLACE INTO mob_db VALUES(1097, "ANT_EGG", "Ant Egg", "Ant Egg", 28, 530, 1, 180, 203, 0, 1, 2, 68, 45, 5, 1, 65, 5, 10, 30, 10, 12, 0, 0, 60, 0x0, 1000, 1001, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 320, 935, 2000, 909, 2000, 938, 650, 713, 2000, 1002, 200, 0, 0, 0, 0, 0, 0, 4013, 1); -REPLACE INTO mob_db VALUES(1098, "ANUBIS", "Anubis", "Anubis", 105, 18826, 1, 3356, 2450, 1, 480, 695, 103, 48, 88, 67, 40, 128, 89, 55, 10, 12, 2, 7, 49, 0x3695, 150, 1250, 720, 576, 0, 0, 0, 0, 0, 0, 0, 0, 12735, 10, 1625, 10, 934, 550, 984, 105, 1045, 4365, 2617, 1, 1614, 3, 0, 0, 0, 0, 4138, 1); -REPLACE INTO mob_db VALUES(1099, "ARGIOPE", "Argiope", "Argiope", 75, 3105, 1, 810, 912, 1, 292, 342, 88, 32, 60, 23, 40, 30, 20, 30, 10, 12, 2, 4, 25, 0x3795, 300, 1792, 792, 336, 0, 0, 0, 0, 0, 0, 0, 0, 1042, 5335, 912, 1200, 757, 175, 2406, 5, 511, 1500, 719, 10, 0, 0, 0, 0, 0, 0, 4114, 1); -REPLACE INTO mob_db VALUES(1100, "ARGOS", "Argos", "Argos", 47, 1005, 1, 360, 405, 1, 96, 129, 58, 8, 38, 17, 25, 5, 26, 15, 10, 12, 2, 4, 25, 0x3195, 300, 1468, 468, 768, 0, 0, 0, 0, 0, 0, 0, 0, 1025, 9000, 911, 1200, 1042, 500, 757, 61, 511, 670, 508, 250, 10017, 15, 0, 0, 0, 0, 4075, 1); -REPLACE INTO mob_db VALUES(1101, "BAPHOMET_", "Baphomet Jr.", "Baphomet Jr.", 57, 2035, 0, 486, 548, 1, 186, 219, 70, 25, 52, 60, 36, 17, 52, 25, 10, 12, 0, 6, 27, 0x3795, 100, 868, 480, 120, 0, 0, 0, 0, 0, 0, 0, 0, 923, 3000, 984, 63, 1464, 2, 607, 50, 610, 100, 508, 1300, 2405, 50, 0, 0, 0, 0, 4129, 1); -REPLACE INTO mob_db VALUES(1102, "BATHORY", "Bathory", "Bathory", 86, 5242, 1, 1170, 1364, 1, 229, 325, 61, 89, 66, 38, 40, 77, 56, 50, 10, 12, 1, 7, 27, 0x3695, 100, 1504, 840, 900, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 200, 1061, 4850, 2252, 3, 1611, 5, 1000, 30, 1006, 15, 637, 20, 0, 0, 0, 0, 4119, 1); -REPLACE INTO mob_db VALUES(1103, "CARAMEL", "Caramel", "Caramel", 25, 518, 1, 162, 183, 1, 67, 76, 39, 0, 19, 10, 15, 10, 32, 5, 10, 12, 0, 2, 22, 0x91, 200, 1604, 840, 756, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 9000, 2310, 5, 919, 5500, 1455, 10, 1405, 15, 1408, 20, 0, 0, 0, 0, 0, 0, 4063, 1); -REPLACE INTO mob_db VALUES(1104, "COCO", "Coco", "Coco", 38, 836, 1, 270, 305, 1, 71, 82, 37, 0, 22, 13, 30, 20, 38, 10, 10, 12, 0, 2, 22, 0x91, 150, 1864, 864, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 1026, 9000, 2502, 20, 914, 3000, 919, 2500, 516, 500, 2402, 25, 578, 600, 0, 0, 0, 0, 4041, 1); -REPLACE INTO mob_db VALUES(1105, "DENIRO", "Deniro", "Deniro", 31, 671, 1, 207, 233, 1, 45, 61, 52, 16, 15, 16, 30, 10, 23, 15, 10, 12, 0, 4, 22, 0x118B, 150, 1288, 288, 576, 0, 0, 0, 0, 0, 0, 0, 0, 955, 9000, 910, 3000, 938, 1200, 990, 50, 1001, 8, 1002, 450, 757, 34, 0, 0, 0, 0, 4043, 1); -REPLACE INTO mob_db VALUES(1106, "DESERT_WOLF", "Desert Wolf", "Desert Wolf", 103, 9447, 1, 1800, 1350, 1, 520, 579, 114, 47, 93, 69, 63, 61, 82, 42, 10, 12, 1, 2, 23, 0x308D, 200, 1120, 420, 288, 0, 0, 0, 0, 0, 0, 0, 0, 1253, 1, 7030, 5500, 2311, 1, 6252, 200, 1287, 1, 756, 53, 1217, 140, 0, 0, 0, 0, 4082, 1); -REPLACE INTO mob_db VALUES(1107, "DESERT_WOLF_B", "Desert Wolf Baby", "Baby Desert Wolf", 14, 140, 1, 90, 68, 1, 33, 41, 13, 0, 10, 12, 8, 5, 17, 7, 10, 12, 0, 2, 23, 0x1089, 300, 1600, 900, 240, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 85, 919, 5500, 2306, 80, 6252, 200, 2301, 200, 13011, 5, 582, 1000, 0, 0, 0, 0, 4023, 1); -REPLACE INTO mob_db VALUES(1108, "DEVIACE", "Deviace", "Deviace", 60, 3135, 1, 658, 740, 1, 160, 189, 51, 16, 57, 26, 32, 25, 45, 15, 10, 12, 1, 5, 81, 0x91, 400, 1680, 480, 384, 0, 0, 0, 0, 0, 0, 0, 0, 995, 25, 1053, 9000, 1054, 1000, 5011, 2, 971, 200, 1256, 3, 756, 161, 0, 0, 0, 0, 4125, 1); -REPLACE INTO mob_db VALUES(1109, "DEVIRUCHI", "Deviruchi", "Deviruchi", 93, 8912, 1, 1806, 2166, 1, 367, 549, 72, 16, 61, 49, 30, 85, 99, 5, 10, 12, 0, 6, 27, 0x3795, 150, 980, 600, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1038, 5335, 1039, 400, 984, 2, 1458, 2, 1009, 5, 912, 1500, 756, 154, 0, 0, 0, 0, 4122, 1); -REPLACE INTO mob_db VALUES(1110, "DOKEBI", "Dokebi", "Dokebi", 68, 2820, 1, 675, 759, 1, 317, 347, 85, 20, 52, 56, 35, 20, 60, 25, 10, 12, 0, 6, 27, 0x191, 250, 1156, 456, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1021, 9000, 757, 150, 1517, 2, 1613, 1, 969, 1, 1501, 300, 1005, 5, 0, 0, 0, 0, 4098, 1); -REPLACE INTO mob_db VALUES(1111, "DRAINLIAR", "Drainliar", "Drainliar", 47, 1162, 1, 389, 438, 1, 100, 142, 50, 15, 35, 34, 24, 22, 50, 20, 10, 12, 0, 2, 47, 0x3095, 250, 1276, 576, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 60, 913, 3000, 725, 20, 507, 1000, 7006, 5500, 7006, 1500, 756, 40, 0, 0, 0, 0, 4069, 1); -REPLACE INTO mob_db VALUES(1112, "DRAKE", "Drake", "Drake", 91, 804500, 1, 515160, 417960, 1, 1938, 3341, 279, 135, 121, 103, 114, 107, 135, 71, 10, 12, 1, 1, 29, 0x37B5, 400, 620, 420, 360, 257580, 10000, 504, 5000, 719, 500, 0, 0, 1127, 600, 1125, 950, 1135, 150, 1128, 400, 5019, 350, 985, 3200, 1189, 100, 0, 0, 0, 0, 4137, 1); -REPLACE INTO mob_db VALUES(1113, "DROPS", "Drops", "Drops", 2, 45, 1, 27, 20, 1, 12, 13, 16, 0, 8, 1, 1, 0, 6, 2, 10, 12, 1, 3, 23, 0x83, 400, 1372, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 909, 7500, 1602, 80, 938, 500, 512, 1100, 713, 1700, 512, 800, 620, 20, 0, 0, 0, 0, 4004, 1); -REPLACE INTO mob_db VALUES(1114, "DUSTINESS", "Dustiness", "Dustiness", 62, 2026, 1, 602, 678, 1, 158, 189, 69, 50, 46, 22, 46, 60, 68, 105, 10, 12, 0, 4, 44, 0x191, 150, 1004, 504, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1057, 9000, 1058, 500, 2291, 4, 928, 2000, 1001, 10, 507, 1200, 0, 0, 0, 0, 0, 0, 4056, 1); -REPLACE INTO mob_db VALUES(1115, "EDDGA", "Eddga", "Eddga", 65, 247500, 1, 198000, 148500, 1, 866, 1342, 166, 70, 92, 80, 103, 66, 90, 85, 10, 12, 2, 2, 23, 0x37B5, 300, 872, 1344, 432, 99000, 10000, 1029, 5000, 1030, 1000, 994, 3000, 1133, 150, 2268, 250, 518, 10000, 1258, 500, 1030, 250, 985, 2300, 13046, 100, 0, 0, 0, 0, 4123, 1); -REPLACE INTO mob_db VALUES(1116, "EGGYRA", "Eggyra", "Eggyra", 53, 1676, 1, 330, 689, 1, 105, 145, 85, 20, 46, 25, 25, 15, 52, 20, 10, 12, 1, 0, 48, 0x91, 200, 1816, 816, 288, 0, 0, 0, 0, 0, 0, 0, 0, 911, 1000, 5015, 20, 7032, 550, 507, 1000, 643, 300, 645, 250, 757, 57, 0, 0, 0, 0, 4070, 1); -REPLACE INTO mob_db VALUES(1117, "EVIL_DRUID", "Evil Druid", "Evil Druid", 80, 5149, 1, 1339, 1280, 1, 344, 412, 88, 45, 62, 32, 24, 45, 71, 5, 10, 12, 2, 1, 89, 0x3695, 300, 2276, 576, 336, 0, 0, 0, 0, 0, 0, 0, 0, 2217, 10, 1615, 1, 2508, 2, 1551, 10, 610, 200, 7478, 4, 509, 2000, 0, 0, 0, 0, 4141, 1); -REPLACE INTO mob_db VALUES(1118, "FLORA", "Flora", "Flora", 59, 2301, 1, 531, 597, 3, 155, 186, 99, 29, 49, 29, 35, 5, 42, 80, 10, 12, 2, 3, 22, 0x84, 1000, 1432, 432, 576, 0, 0, 0, 0, 0, 0, 0, 0, 1032, 9000, 2253, 3, 704, 10, 521, 50, 629, 20, 905, 2000, 748, 1, 0, 0, 0, 0, 4080, 1); -REPLACE INTO mob_db VALUES(1119, "FRILLDORA", "Frilldora", "Frilldora", 57, 1821, 1, 486, 548, 1, 172, 214, 84, 10, 48, 38, 38, 15, 46, 30, 10, 12, 1, 2, 23, 0x3885, 300, 1540, 720, 432, 0, 0, 0, 0, 0, 0, 0, 0, 1012, 5500, 757, 90, 903, 1500, 721, 15, 715, 200, 507, 800, 912, 120, 0, 0, 0, 0, 4088, 1); -REPLACE INTO mob_db VALUES(1120, "GHOSTRING", "Ghostring", "Ghostring", 90, 26700, 1, 4305, 4467, 1, 350, 512, 88, 72, 66, 85, 66, 66, 99, 66, 10, 12, 1, 6, 88, 0x37B5, 300, 1220, 1080, 648, 0, 0, 0, 0, 0, 0, 0, 0, 1059, 5335, 2274, 100, 2336, 50, 604, 500, 603, 10, 714, 30, 695, 100, 0, 0, 0, 0, 4047, 1); -REPLACE INTO mob_db VALUES(1121, "GIEARTH", "Giearth", "Giearth", 42, 1118, 1, 315, 354, 1, 70, 85, 52, 16, 27, 19, 30, 10, 28, 15, 10, 12, 0, 6, 22, 0x191, 200, 1848, 1296, 432, 0, 0, 0, 0, 0, 0, 0, 0, 997, 30, 1003, 150, 1040, 5500, 2286, 1, 2227, 10, 1001, 100, 0, 0, 0, 0, 0, 0, 4087, 1); -REPLACE INTO mob_db VALUES(1122, "GOBLIN_1", "Goblin", "Goblin", 48, 1058, 1, 369, 414, 1, 87, 121, 56, 5, 37, 54, 25, 20, 36, 10, 10, 12, 1, 7, 24, 0x3695, 100, 1120, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 998, 270, 911, 9000, 756, 43, 2297, 3, 1211, 10, 2104, 5, 507, 1800, 0, 0, 0, 0, 4060, 1); -REPLACE INTO mob_db VALUES(1123, "GOBLIN_2", "Goblin", "Goblin", 44, 931, 1, 333, 374, 1, 94, 122, 52, 5, 33, 16, 24, 15, 58, 10, 10, 12, 1, 7, 23, 0x3095, 150, 1320, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 998, 250, 911, 9000, 5010, 3, 1511, 10, 2146, 5, 507, 1550, 2297, 3, 0, 0, 0, 0, 4060, 1); -REPLACE INTO mob_db VALUES(1124, "GOBLIN_3", "Goblin", "Goblin", 44, 930, 1, 333, 374, 1, 88, 121, 47, 5, 30, 16, 24, 15, 17, 10, 10, 12, 1, 7, 25, 0x308D, 250, 1624, 624, 240, 0, 0, 0, 0, 0, 0, 0, 0, 998, 230, 911, 9000, 2275, 3, 5088, 15, 2104, 1, 507, 1550, 508, 220, 0, 0, 0, 0, 4060, 1); -REPLACE INTO mob_db VALUES(1125, "GOBLIN_4", "Goblin", "Goblin", 49, 1494, 1, 396, 446, 1, 72, 94, 70, 3, 31, 27, 46, 15, 34, 10, 10, 12, 1, 7, 22, 0x308D, 200, 1624, 624, 240, 0, 0, 0, 0, 0, 0, 0, 0, 993, 100, 998, 170, 5087, 15, 2263, 3, 1508, 10, 2146, 5, 507, 1500, 0, 0, 0, 0, 4060, 1); -REPLACE INTO mob_db VALUES(1126, "GOBLIN_5", "Goblin", "Goblin", 56, 2342, 1, 486, 548, 1, 159, 190, 64, 5, 51, 37, 22, 15, 38, 10, 10, 12, 1, 7, 21, 0x308D, 300, 3074, 1874, 480, 0, 0, 0, 0, 0, 0, 0, 0, 998, 150, 911, 9000, 1605, 15, 2104, 1, 5089, 15, 507, 1500, 508, 220, 0, 0, 0, 0, 4060, 1); -REPLACE INTO mob_db VALUES(1127, "HODE", "Hode", "Hode", 63, 2676, 1, 632, 710, 1, 170, 215, 91, 24, 61, 16, 42, 5, 29, 40, 10, 12, 1, 2, 42, 0x81, 200, 1480, 480, 720, 0, 0, 0, 0, 0, 0, 0, 0, 993, 120, 1055, 9000, 757, 80, 938, 3000, 1147, 10, 7021, 1, 632, 20, 0, 0, 0, 0, 4081, 1); -REPLACE INTO mob_db VALUES(1128, "HORN", "Horn", "Horn", 32, 705, 1, 216, 243, 1, 64, 75, 52, 8, 10, 12, 36, 25, 21, 35, 10, 12, 1, 4, 22, 0x191, 200, 1528, 528, 288, 0, 0, 0, 0, 0, 0, 0, 0, 993, 80, 1011, 35, 947, 5500, 1452, 15, 935, 5500, 943, 70, 0, 0, 0, 0, 0, 0, 4045, 1); -REPLACE INTO mob_db VALUES(1129, "HORONG", "Horong", "Horong", 66, 2304, 1, 781, 879, 1, 262, 332, 84, 35, 36, 32, 35, 45, 56, 25, 10, 12, 0, 0, 83, 0x308D, 400, 1888, 1152, 828, 0, 0, 0, 0, 0, 0, 0, 0, 953, 6500, 912, 500, 2279, 5, 1752, 10000, 757, 118, 633, 20, 970, 50, 0, 0, 0, 0, 4103, 1); -REPLACE INTO mob_db VALUES(1130, "JAKK", "Jakk", "Jakk", 63, 2054, 1, 632, 710, 1, 218, 255, 90, 25, 58, 43, 42, 25, 55, 15, 10, 12, 1, 0, 43, 0x3695, 200, 1180, 480, 648, 0, 0, 0, 0, 0, 0, 0, 0, 1062, 9000, 912, 900, 985, 31, 2331, 5, 1008, 5, 535, 1000, 7938, 10, 0, 0, 0, 0, 4109, 1); -REPLACE INTO mob_db VALUES(1131, "JOKER", "Joker", "Joker", 90, 6022, 1, 1618, 1821, 1, 288, 348, 64, 76, 84, 99, 30, 50, 77, 35, 10, 12, 2, 7, 84, 0x3695, 100, 1364, 864, 432, 0, 0, 0, 0, 0, 0, 0, 0, 912, 2000, 616, 2, 641, 20, 508, 1000, 1259, 1, 984, 100, 695, 100, 0, 0, 0, 0, 4139, 1); -REPLACE INTO mob_db VALUES(1132, "KHALITZBURG", "Khalitzburg", "Khalitzburg", 118, 23986, 1, 2862, 2147, 1, 737, 833, 125, 10, 121, 48, 40, 31, 89, 32, 10, 12, 2, 1, 29, 0x3695, 350, 528, 1000, 396, 0, 0, 0, 0, 0, 0, 0, 0, 932, 8000, 985, 191, 5017, 1, 2108, 2, 1004, 10, 15014, 2, 1127, 2, 0, 0, 0, 0, 4136, 1); -REPLACE INTO mob_db VALUES(1133, "KOBOLD_1", "Kobold", "Kobold", 107, 10483, 1, 2274, 1706, 1, 539, 626, 103, 25, 109, 76, 61, 53, 82, 30, 10, 12, 1, 7, 44, 0x308D, 150, 1028, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 100, 1034, 5335, 912, 700, 757, 25, 1220, 2, 2104, 5, 0, 0, 0, 0, 0, 0, 4091, 1); -REPLACE INTO mob_db VALUES(1134, "KOBOLD_2", "Kobold", "Kobold", 102, 9152, 1, 1944, 1458, 1, 367, 429, 117, 59, 96, 61, 55, 48, 79, 20, 10, 12, 1, 7, 45, 0x308D, 200, 1528, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 100, 1034, 5335, 912, 200, 2104, 3, 508, 100, 2101, 100, 0, 0, 0, 0, 0, 0, 4091, 1); -REPLACE INTO mob_db VALUES(1135, "KOBOLD_3", "Kobold", "Kobold", 101, 9078, 1, 1827, 1371, 1, 360, 424, 109, 48, 103, 64, 59, 42, 67, 20, 10, 12, 1, 7, 43, 0x308D, 300, 1228, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 990, 35, 999, 100, 1034, 5335, 912, 200, 1355, 5, 2104, 3, 508, 100, 0, 0, 0, 0, 4091, 1); -# REPLACE INTO mob_db VALUES(1136, "KOBOLD_4", "Kobold", "Kobold", 31, 1961, 1, 783, 395, 1, 316, 378, 24, 10, 1, 31, 31, 20, 55, 20, 10, 12, 1, 7, 45, 0x31AD, 200, 1528, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 50, 1034, 5335, 912, 100, 1355, 5, 2104, 3, 508, 100, 1301, 150, 0, 0, 0, 0, 4091, 1); -# REPLACE INTO mob_db VALUES(1137, "KOBOLD_5", "Kobold", "Kobold", 31, 1962, 1, 580, 366, 1, 223, 256, 24, 10, 1, 31, 31, 20, 88, 20, 10, 12, 1, 7, 43, 0x31AD, 300, 1228, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 40, 1034, 5335, 912, 100, 1514, 5, 2104, 3, 508, 100, 1501, 150, 0, 0, 0, 0, 4091, 1); -REPLACE INTO mob_db VALUES(1138, "MAGNOLIA", "Magnolia", "Magnolia", 53, 1984, 1, 441, 495, 1, 91, 256, 51, 8, 49, 25, 21, 50, 28, 85, 10, 12, 0, 6, 21, 0x183, 200, 1054, 504, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7031, 9000, 910, 800, 911, 100, 912, 10, 737, 40, 508, 400, 12127, 5, 0, 0, 0, 0, 4076, 1); -REPLACE INTO mob_db VALUES(1139, "MANTIS", "Mantis", "Mantis", 65, 2719, 1, 594, 669, 1, 178, 209, 90, 0, 55, 33, 24, 5, 42, 15, 10, 12, 1, 4, 22, 0x3195, 200, 1528, 660, 432, 0, 0, 0, 0, 0, 0, 0, 0, 993, 110, 1031, 9000, 911, 1400, 757, 70, 943, 250, 721, 10, 507, 650, 0, 0, 0, 0, 4079, 1); -REPLACE INTO mob_db VALUES(1140, "MARDUK", "Marduk", "Marduk", 73, 2893, 1, 774, 872, 1, 180, 292, 66, 43, 66, 49, 21, 40, 66, 25, 10, 12, 2, 7, 23, 0x3095, 300, 1540, 840, 504, 0, 0, 0, 0, 0, 0, 0, 0, 994, 35, 1045, 4365, 1608, 10, 2617, 1, 1614, 3, 691, 100, 642, 20, 0, 0, 0, 0, 4112, 1); -REPLACE INTO mob_db VALUES(1141, "MARINA", "Marina", "Marina", 42, 1209, 1, 340, 381, 1, 73, 98, 20, 19, 24, 27, 18, 22, 29, 15, 10, 12, 0, 3, 41, 0x81, 400, 2280, 1080, 864, 0, 0, 0, 0, 0, 0, 0, 0, 1052, 5000, 938, 1500, 991, 45, 995, 2, 717, 200, 631, 20, 0, 0, 0, 0, 0, 0, 4055, 1); -REPLACE INTO mob_db VALUES(1142, "MARINE_SPHERE", "Marine Sphere", "Marine Sphere", 51, 1924, 1, 446, 503, 1, 1, 2, 41, 28, 10, 16, 35, 25, 26, 5, 10, 12, 0, 3, 41, 0x0, 800, 1201, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1050, 5000, 1051, 2500, 1520, 10, 720, 10, 717, 150, 10003, 10, 0, 0, 0, 0, 0, 0, 4084, 1); -REPLACE INTO mob_db VALUES(1143, "MARIONETTE", "Marionette", "Marionette", 90, 7166, 1, 1442, 2009, 1, 202, 392, 35, 24, 52, 79, 28, 105, 72, 20, 10, 12, 0, 6, 68, 0x3195, 300, 1480, 480, 1056, 0, 0, 0, 0, 0, 0, 0, 0, 1060, 9000, 2294, 5, 2605, 1, 699, 100, 1520, 15, 2407, 1, 5141, 3, 0, 0, 0, 0, 4113, 1); -REPLACE INTO mob_db VALUES(1144, "MARSE", "Marse", "Marse", 47, 1456, 1, 389, 438, 1, 85, 105, 38, 18, 33, 17, 25, 10, 33, 10, 10, 12, 0, 5, 41, 0x91, 300, 1956, 756, 528, 0, 0, 0, 0, 0, 0, 0, 0, 1024, 9000, 962, 3000, 717, 200, 720, 10, 995, 12, 1007, 5, 514, 300, 0, 0, 0, 0, 4095, 1); -REPLACE INTO mob_db VALUES(1145, "MARTIN", "Martin", "Martin", 39, 1056, 1, 311, 350, 1, 70, 88, 58, 19, 25, 29, 28, 15, 30, 10, 10, 12, 0, 2, 42, 0x81, 300, 1480, 480, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 9000, 1018, 500, 1251, 10, 2225, 5, 5009, 1, 10010, 10, 2224, 15, 0, 0, 0, 0, 4046, 1); -REPLACE INTO mob_db VALUES(1146, "MATYR", "Matyr", "Matyr", 58, 2087, 1, 495, 557, 1, 144, 170, 63, 5, 48, 20, 21, 17, 43, 10, 10, 12, 1, 2, 27, 0x3095, 150, 432, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 2618, 10, 528, 5000, 919, 5500, 537, 400, 757, 100, 514, 200, 0, 0, 0, 0, 0, 0, 4097, 1); -REPLACE INTO mob_db VALUES(1147, "MAYA", "Maya", "Maya", 55, 380000, 1, 178560, 133920, 1, 555, 820, 183, 50, 88, 72, 76, 102, 92, 76, 10, 12, 2, 4, 82, 0x37B5, 100, 864, 1000, 480, 89280, 10000, 730, 2000, 603, 3000, 617, 2000, 10006, 500, 2615, 200, 2234, 200, 639, 500, 7020, 10, 985, 3500, 2005, 100, 0, 0, 0, 0, 4146, 1); -REPLACE INTO mob_db VALUES(1148, "MEDUSA", "Medusa", "Medusa", 102, 10045, 1, 1737, 1302, 1, 477, 590, 87, 66, 99, 68, 65, 79, 69, 15, 10, 12, 1, 6, 40, 0x3795, 180, 1720, 1320, 360, 0, 0, 0, 0, 0, 0, 0, 0, 1048, 5335, 1965, 250, 702, 200, 1973, 20, 722, 250, 1649, 5, 1007, 3, 0, 0, 0, 0, 4124, 1); -REPLACE INTO mob_db VALUES(1149, "MINOROUS", "Minorous", "Minorous", 58, 1893, 1, 544, 602, 1, 235, 271, 100, 10, 65, 42, 36, 43, 55, 25, 10, 12, 2, 2, 43, 0x3095, 200, 1360, 960, 432, 0, 0, 0, 0, 0, 0, 0, 0, 941, 5335, 756, 196, 1361, 2, 1005, 10, 6254, 10, 1301, 200, 568, 300, 0, 0, 0, 0, 4126, 1); -REPLACE INTO mob_db VALUES(1150, "MOONLIGHT", "Moonlight Flower", "Moonlight Flower", 79, 324000, 1, 334080, 271440, 1, 2029, 3280, 154, 81, 86, 102, 93, 82, 131, 120, 10, 12, 1, 6, 63, 0x37B5, 150, 1276, 576, 288, 167040, 10000, 1022, 5000, 504, 1500, 728, 500, 1477, 500, 1234, 100, 1525, 150, 10008, 500, 638, 650, 985, 2600, 1648, 100, 0, 0, 0, 0, 4131, 1); -REPLACE INTO mob_db VALUES(1151, "MYST", "Myst", "Myst", 49, 1223, 1, 396, 446, 1, 96, 116, 61, 10, 35, 37, 20, 10, 41, 10, 10, 12, 2, 0, 25, 0x3695, 200, 1576, 576, 384, 0, 0, 0, 0, 0, 0, 0, 0, 5005, 2, 1019, 800, 10005, 10, 756, 65, 757, 97, 605, 20, 2601, 1, 0, 0, 0, 0, 4108, 1); -REPLACE INTO mob_db VALUES(1152, "ORC_SKELETON", "Orc Skeleton", "Orc Skeleton", 53, 2077, 1, 459, 524, 1, 115, 140, 82, 10, 52, 16, 24, 5, 22, 5, 10, 12, 1, 1, 29, 0x3885, 200, 2420, 720, 648, 0, 0, 0, 0, 0, 0, 0, 0, 922, 5500, 932, 3500, 757, 80, 2299, 2, 1358, 10, 511, 50, 0, 0, 0, 0, 0, 0, 4085, 1); -REPLACE INTO mob_db VALUES(1153, "ORC_ZOMBIE", "Orc Zombie", "Orc Zombie", 51, 1908, 1, 430, 498, 1, 109, 124, 71, 5, 45, 17, 32, 5, 52, 5, 10, 12, 1, 1, 29, 0x3885, 400, 2852, 1152, 840, 0, 0, 0, 0, 0, 0, 0, 0, 1043, 5500, 938, 3000, 714, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4071, 1); -REPLACE INTO mob_db VALUES(1154, "PASANA", "Pasana", "Pasana", 79, 3510, 1, 972, 1194, 1, 398, 438, 93, 35, 76, 36, 33, 20, 67, 5, 10, 12, 1, 7, 43, 0x3095, 165, 976, 576, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7110, 4365, 7121, 2500, 757, 20, 1105, 500, 1217, 150, 2522, 100, 0, 0, 0, 0, 0, 0, 4099, 1); -REPLACE INTO mob_db VALUES(1155, "PETIT", "Petite", "Petite", 86, 5799, 1, 1170, 1317, 1, 292, 358, 99, 49, 55, 32, 38, 37, 54, 20, 10, 12, 1, 9, 22, 0x3095, 250, 2468, 768, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1035, 5335, 1037, 300, 756, 140, 509, 1000, 1510, 150, 6260, 40, 606, 15, 0, 0, 0, 0, 4118, 1); -REPLACE INTO mob_db VALUES(1156, "PETIT_", "Petite", "Petite", 79, 3556, 1, 900, 1013, 1, 280, 316, 86, 42, 63, 39, 31, 55, 72, 85, 10, 12, 1, 9, 24, 0x3095, 200, 1872, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 1036, 5335, 1037, 300, 985, 61, 509, 1000, 13006, 5, 912, 1500, 606, 15, 0, 0, 0, 0, 4120, 1); -REPLACE INTO mob_db VALUES(1157, "PHARAOH", "Pharaoh", "Pharaoh", 85, 500000, 1, 417600, 334080, 1, 1476, 3258, 124, 269, 98, 102, 96, 142, 144, 102, 10, 12, 2, 7, 67, 0x37B5, 125, 868, 768, 288, 208800, 10000, 607, 5500, 526, 5000, 732, 5000, 7113, 5820, 7114, 2500, 1136, 100, 2327, 150, 5002, 500, 1552, 300, 1231, 80, 0, 0, 0, 0, 4148, 1); -REPLACE INTO mob_db VALUES(1158, "PHEN", "Phen", "Phen", 52, 1963, 1, 446, 503, 1, 97, 127, 44, 11, 54, 15, 35, 15, 25, 15, 10, 12, 1, 5, 41, 0x91, 150, 2544, 1344, 1152, 0, 0, 0, 0, 0, 0, 0, 0, 1023, 5500, 963, 2000, 720, 5, 517, 1000, 951, 500, 756, 25, 0, 0, 0, 0, 0, 0, 4077, 1); -REPLACE INTO mob_db VALUES(1159, "PHREEONI", "Phreeoni", "Phreeoni", 71, 300000, 1, 116000, 180000, 1, 630, 1597, 269, 98, 88, 70, 112, 87, 102, 71, 10, 12, 2, 2, 60, 0x37B5, 200, 1020, 1020, 288, 58000, 10000, 1008, 500, 730, 1000, 1000, 4000, 1015, 9700, 1223, 500, 1236, 150, 1014, 5000, 2288, 300, 985, 2900, 13047, 100, 0, 0, 0, 0, 4121, 1); -REPLACE INTO mob_db VALUES(1160, "PIERE", "Piere", "Piere", 32, 696, 1, 216, 243, 1, 47, 67, 57, 16, 19, 19, 36, 8, 27, 15, 10, 12, 0, 4, 22, 0x118B, 200, 1288, 288, 576, 0, 0, 0, 0, 0, 0, 0, 0, 955, 9000, 910, 1100, 938, 600, 992, 30, 1001, 5, 1002, 400, 757, 31, 0, 0, 0, 0, 4043, 1); -REPLACE INTO mob_db VALUES(1161, "PLANKTON", "Plankton", "Plankton", 40, 1232, 1, 334, 375, 1, 75, 111, 28, 28, 23, 53, 25, 55, 35, 14, 10, 12, 0, 3, 61, 0x81, 400, 2208, 1008, 324, 0, 0, 0, 0, 0, 0, 0, 0, 1052, 9000, 910, 300, 938, 700, 970, 4, 713, 1000, 630, 20, 645, 50, 0, 0, 0, 0, 4024, 1); -REPLACE INTO mob_db VALUES(1162, "RAFFLESIA", "Rafflesia", "Rafflesia", 86, 5819, 1, 1170, 1317, 3, 295, 336, 86, 2, 47, 41, 44, 29, 65, 31, 10, 12, 0, 3, 22, 0x3885, 150, 512, 528, 240, 0, 0, 0, 0, 0, 0, 0, 0, 1033, 5500, 911, 1600, 706, 2, 708, 10, 703, 10, 711, 550, 509, 30, 0, 0, 0, 0, 4083, 1); -REPLACE INTO mob_db VALUES(1163, "RAYDRIC", "Raydric", "Raydric", 115, 18408, 1, 2770, 2076, 1, 572, 668, 89, 15, 129, 87, 55, 32, 76, 27, 10, 12, 2, 7, 47, 0x3095, 150, 824, 780, 420, 0, 0, 0, 0, 0, 0, 0, 0, 985, 106, 2266, 1, 2315, 2, 1158, 2, 1116, 100, 1004, 10, 7054, 4850, 0, 0, 0, 0, 4133, 1); -REPLACE INTO mob_db VALUES(1164, "REQUIEM", "Requiem", "Requiem", 71, 3089, 1, 738, 831, 1, 316, 364, 88, 20, 58, 34, 35, 12, 42, 10, 10, 12, 1, 7, 27, 0x3885, 400, 1516, 816, 432, 0, 0, 0, 0, 0, 0, 0, 0, 603, 35, 714, 1, 912, 2500, 958, 3500, 934, 1500, 2308, 10, 7477, 1, 0, 0, 0, 0, 4104, 1); -REPLACE INTO mob_db VALUES(1165, "SAND_MAN", "Sandman", "Sandman", 61, 2887, 1, 626, 705, 1, 156, 212, 126, 24, 44, 8, 55, 15, 31, 25, 10, 12, 1, 0, 62, 0x3885, 250, 1672, 720, 288, 0, 0, 0, 0, 0, 0, 0, 0, 997, 35, 1056, 5335, 757, 118, 7043, 350, 1001, 200, 1257, 1, 1622, 5, 0, 0, 0, 0, 4101, 1); -REPLACE INTO mob_db VALUES(1166, "SAVAGE", "Savage", "Savage", 59, 2301, 1, 573, 644, 1, 172, 195, 126, 3, 56, 21, 54, 10, 47, 15, 10, 12, 2, 2, 42, 0x91, 150, 1960, 960, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 9000, 514, 300, 702, 2, 2276, 1, 6249, 10, 757, 70, 526, 2, 0, 0, 0, 0, 4078, 1); -REPLACE INTO mob_db VALUES(1167, "SAVAGE_BABE", "Savage Babe", "Savage Babe", 14, 180, 1, 90, 68, 1, 19, 25, 22, 0, 16, 8, 9, 5, 21, 18, 10, 12, 0, 2, 22, 0x81, 400, 1624, 624, 576, 0, 0, 0, 0, 0, 0, 0, 0, 919, 9000, 1302, 100, 517, 500, 6249, 1, 949, 850, 1010, 80, 627, 40, 0, 0, 0, 0, 4017, 1); -# REPLACE INTO mob_db VALUES(1168, "SCORPION_KING", "Scorpion King", "Scorpion King", 50, 5719, 1, 1968, 1211, 1, 600, 713, 64, 10, 1, 50, 47, 1, 83, 30, 10, 12, 2, 7, 23, 0x1B1, 200, 1700, 1000, 500, 0, 0, 0, 0, 0, 0, 0, 0, 994, 45, 1046, 4850, 1005, 15, 904, 5000, 943, 3000, 509, 700, 0, 0, 0, 0, 0, 0, 4130, 1); -REPLACE INTO mob_db VALUES(1169, "SKEL_WORKER", "Skeleton Worker", "Skeleton Worker", 44, 1240, 1, 333, 374, 1, 92, 104, 45, 5, 30, 13, 22, 10, 37, 25, 10, 12, 1, 1, 29, 0x3885, 400, 2420, 720, 384, 0, 0, 0, 0, 0, 0, 0, 0, 998, 400, 1041, 5500, 757, 90, 5009, 2, 999, 100, 1003, 200, 7938, 10, 0, 0, 0, 0, 4092, 1); -REPLACE INTO mob_db VALUES(1170, "SOHEE", "Sohee", "Sohee", 64, 2875, 1, 594, 669, 1, 169, 199, 61, 21, 61, 24, 29, 20, 37, 25, 10, 12, 1, 6, 21, 0x191, 250, 2112, 912, 576, 0, 0, 0, 0, 0, 0, 0, 0, 1020, 9000, 1049, 50, 2277, 1, 2504, 5, 1217, 5, 15012, 5, 662, 350, 0, 0, 0, 0, 4100, 1); -# REPLACE INTO mob_db VALUES(1171, "SOLDIER_ANDRE", "Soldier Andre", "Soldier Andre", 22, 1245, 0, 219, 138, 1, 105, 127, 20, 0, 1, 22, 44, 20, 40, 10, 10, 12, 0, 4, 42, 0x3095, 200, 1001, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 2700, 911, 800, 757, 10, 1111, 15, 1001, 30, 943, 150, 0, 0, 0, 0, 0, 0, 4059, 1); -# REPLACE INTO mob_db VALUES(1172, "SOLDIER_DENIRO", "Soldier Deniro", "Soldier Deniro", 29, 2047, 0, 450, 274, 1, 162, 193, 20, 0, 1, 29, 58, 20, 54, 10, 10, 12, 0, 4, 42, 0x3095, 200, 2000, 1000, 500, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 5500, 911, 2000, 757, 15, 1111, 20, 943, 270, 1001, 50, 0, 0, 0, 0, 0, 0, 4059, 1); -# REPLACE INTO mob_db VALUES(1173, "SOLDIER_PIERE", "Soldier Piere", "Soldier Piere", 23, 1217, 0, 240, 149, 1, 109, 131, 25, 0, 1, 23, 46, 20, 38, 10, 10, 12, 0, 4, 42, 0x3095, 200, 1001, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 3100, 911, 800, 911, 10, 1114, 15, 1001, 35, 943, 200, 0, 0, 0, 0, 0, 0, 4059, 1); -REPLACE INTO mob_db VALUES(1174, "STAINER", "Stainer", "Stainer", 21, 365, 1, 126, 143, 1, 65, 74, 22, 25, 10, 10, 24, 0, 39, 15, 10, 12, 0, 4, 24, 0x191, 200, 1688, 1188, 612, 0, 0, 0, 0, 0, 0, 0, 0, 992, 70, 1011, 30, 1013, 9000, 910, 2100, 757, 25, 943, 10, 1002, 300, 0, 0, 0, 0, 4039, 1); -REPLACE INTO mob_db VALUES(1175, "TAROU", "Tarou", "Tarou", 22, 420, 1, 135, 152, 1, 72, 78, 23, 5, 21, 6, 12, 0, 10, 1, 10, 12, 0, 2, 27, 0x91, 150, 1744, 1044, 684, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 9000, 919, 3000, 949, 800, 528, 1000, 701, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4028, 1); -REPLACE INTO mob_db VALUES(1176, "VITATA", "Vitata", "Vitata", 35, 756, 1, 234, 264, 1, 68, 86, 44, 12, 20, 11, 24, 20, 21, 5, 10, 12, 0, 4, 22, 0x191, 300, 1768, 768, 384, 0, 0, 0, 0, 0, 0, 0, 0, 993, 90, 955, 5000, 911, 200, 518, 350, 518, 350, 526, 200, 756, 26, 0, 0, 0, 0, 4053, 1); -REPLACE INTO mob_db VALUES(1177, "ZENORC", "Zenorc", "Zenorc", 54, 1816, 1, 450, 507, 1, 130, 154, 69, 5, 50, 18, 20, 5, 25, 5, 10, 12, 1, 7, 27, 0x83, 150, 1180, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 1044, 5500, 756, 70, 938, 2500, 1006, 5, 508, 100, 640, 20, 0, 0, 0, 0, 0, 0, 4096, 1); -REPLACE INTO mob_db VALUES(1178, "ZEROM", "Zerom", "Zerom", 70, 2687, 1, 720, 960, 1, 312, 350, 93, 15, 57, 49, 30, 15, 56, 20, 10, 12, 1, 7, 23, 0x3885, 200, 1780, 1080, 432, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 55, 998, 190, 2339, 200, 2265, 3, 2408, 10, 1002, 300, 7938, 1, 0, 0, 0, 0, 4064, 1); -REPLACE INTO mob_db VALUES(1179, "WHISPER", "Whisper", "Whisper", 46, 1109, 1, 242, 513, 1, 65, 120, 20, 40, 32, 48, 20, 35, 52, 20, 10, 12, 0, 6, 68, 0x3195, 150, 1960, 960, 504, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 150, 1059, 5335, 2282, 1, 2333, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4102, 1); -REPLACE INTO mob_db VALUES(1180, "NINE_TAIL", "Nine Tail", "Nine Tail", 72, 2783, 1, 887, 998, 1, 446, 496, 95, 40, 61, 38, 30, 20, 88, 50, 10, 12, 1, 2, 63, 0x3695, 150, 840, 540, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1022, 4656, 746, 200, 603, 100, 604, 100, 526, 250, 525, 350, 756, 100, 0, 0, 0, 0, 4159, 1); -# REPLACE INTO mob_db VALUES(1181, "ZOMBIE_DRAGON", "Zombie Dragon", "Zombie Dragon", 1, 1000, 1, 44550, 1485, 3, 7900, 9140, 0, 0, 120, 145, 145, 145, 130, 120, 10, 12, 2, 9, 89, 0x37B5, 400, 2700, 1000, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1182, "THIEF_MUSHROOM", "Thief Mushroom", "Thief Mushroom", 1, 15, 1, 0, 0, 1, 1, 2, 160, 99, 0, 0, 0, 0, 0, 0, 7, 12, 0, 3, 22, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1069, 1500, 1070, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1183, "CHONCHON_", "Chonchon", "Chonchon", 5, 63, 1, 36, 27, 1, 11, 14, 29, 0, 13, 4, 4, 0, 7, 5, 10, 12, 0, 4, 24, 0x3985, 200, 1076, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 998, 50, 935, 5500, 909, 1500, 1205, 55, 601, 100, 742, 5, 0, 0, 0, 0, 0, 0, 4009, 1); -REPLACE INTO mob_db VALUES(1184, "FABRE_", "Fabre", "Fabre", 1, 30, 1, 1, 0, 1, 4, 7, 0, 0, 1, 2, 1, 1, 4, 5, 10, 12, 0, 4, 22, 0x3985, 400, 1672, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 914, 2000, 949, 250, 1502, 80, 721, 2, 511, 350, 705, 500, 1501, 200, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1185, "WHISPER_", "Whisper", "Whisper", 34, 1796, 1, 483, 737, 1, 198, 239, 0, 45, 1, 51, 14, 0, 60, 0, 10, 12, 0, 1, 28, 0x0, 150, 1960, 960, 504, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 10, 1059, 100, 0, 0, 2333, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1186, "WHISPER_BOSS", "Giant Whisper", "Giant Whisper", 66, 2570, 0, 630, 710, 1, 282, 341, 94, 45, 40, 79, 44, 51, 67, 31, 10, 12, 0, 6, 48, 0x3795, 250, 2536, 1536, 672, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 150, 1059, 5335, 2282, 1, 2333, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4303, 1); -REPLACE INTO mob_db VALUES(1188, "BON_GUN", "Bongun", "Bongun", 59, 2510, 1, 531, 597, 1, 189, 218, 88, 5, 55, 24, 24, 5, 34, 10, 10, 12, 1, 1, 29, 0x3095, 200, 1720, 500, 420, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 5500, 7014, 40, 618, 60, 5046, 1, 609, 15, 508, 1000, 508, 1250, 0, 0, 0, 0, 4212, 1); -REPLACE INTO mob_db VALUES(1189, "ORC_ARCHER", "Orc Archer", "Orc Archer", 78, 4835, 1, 922, 1161, 9, 260, 303, 67, 31, 55, 32, 24, 30, 99, 15, 10, 12, 1, 7, 22, 0x3095, 300, 1960, 620, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1063, 4656, 1753, 1000, 1756, 2500, 1755, 2500, 1734, 2, 507, 1400, 509, 900, 0, 0, 0, 0, 4256, 1); -REPLACE INTO mob_db VALUES(1190, "ORC_LORD", "Orc Lord", "Orc Lord", 55, 552000, 1, 156240, 122760, 1, 780, 1428, 256, 92, 95, 95, 103, 96, 155, 85, 10, 12, 2, 7, 82, 0x37B5, 100, 1248, 500, 360, 31102, 10000, 968, 5500, 617, 2000, 0, 0, 1363, 400, 2621, 400, 5007, 400, 1371, 400, 617, 1000, 985, 4268, 16000, 3100, 0, 0, 0, 0, 4135, 1); -REPLACE INTO mob_db VALUES(1191, "MIMIC", "Mimic", "Mimic", 56, 1939, 1, 486, 548, 1, 221, 243, 63, 15, 49, 120, 20, 15, 99, 0, 10, 12, 1, 0, 60, 0x3095, 100, 972, 500, 288, 0, 0, 0, 0, 0, 0, 0, 0, 617, 5, 603, 45, 1065, 1200, 611, 3000, 7938, 1000, 2626, 1, 757, 270, 0, 0, 0, 0, 4205, 1); -REPLACE INTO mob_db VALUES(1192, "WRAITH", "Wraith", "Wraith", 77, 5168, 1, 1190, 1191, 1, 335, 396, 80, 40, 62, 26, 30, 55, 76, 5, 10, 12, 2, 1, 89, 0x3695, 300, 1816, 576, 240, 0, 0, 0, 0, 0, 0, 0, 0, 1059, 5820, 2206, 10, 2506, 2, 716, 650, 602, 1300, 2505, 10, 731, 5, 0, 0, 0, 0, 4190, 1); -REPLACE INTO mob_db VALUES(1193, "ALARM", "Alarm", "Alarm", 88, 5562, 1, 1242, 1398, 1, 290, 338, 106, 53, 70, 72, 40, 25, 55, 25, 10, 12, 1, 0, 60, 0x3695, 300, 1020, 500, 768, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 5335, 2607, 1, 7005, 1500, 611, 1300, 984, 105, 7026, 20, 912, 1500, 0, 0, 0, 0, 4244, 1); -REPLACE INTO mob_db VALUES(1194, "ARCLOUSE", "Arclouse", "Arclouze", 107, 10020, 1, 1844, 2607, 1, 269, 309, 101, 36, 60, 73, 45, 35, 140, 15, 10, 12, 1, 4, 42, 0x3195, 100, 960, 500, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1096, 3500, 938, 3000, 943, 800, 912, 450, 716, 300, 997, 20, 912, 2500, 0, 0, 0, 0, 4240, 1); -REPLACE INTO mob_db VALUES(1195, "RIDEWORD", "Rideword", "Rideword", 74, 3222, 1, 810, 1212, 1, 352, 374, 61, 38, 67, 53, 32, 44, 104, 5, 10, 12, 0, 0, 60, 0x3695, 150, 864, 500, 192, 0, 0, 0, 0, 0, 0, 0, 0, 1097, 4850, 1553, 4, 1554, 4, 1555, 2, 1556, 2, 7015, 300, 1006, 20, 0, 0, 0, 0, 4185, 1); -REPLACE INTO mob_db VALUES(1196, "SKEL_PRISONER", "Skeleton Prisoner", "Skeleton Prisoner", 91, 9194, 1, 1566, 1763, 1, 466, 521, 95, 41, 84, 35, 60, 20, 71, 15, 10, 12, 1, 1, 69, 0x308D, 350, 1848, 500, 576, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 3500, 7016, 100, 2320, 1, 716, 600, 930, 3500, 2408, 35, 934, 1500, 0, 0, 0, 0, 4222, 1); -REPLACE INTO mob_db VALUES(1197, "ZOMBIE_PRISONER", "Zombie Prisoner", "Zombie Prisoner", 89, 8045, 1, 1458, 1647, 1, 356, 416, 89, 28, 87, 39, 58, 5, 68, 10, 10, 12, 1, 1, 69, 0x308D, 350, 1768, 500, 192, 0, 0, 0, 0, 0, 0, 0, 0, 1099, 3500, 7016, 105, 2266, 1, 716, 600, 930, 3500, 2408, 39, 985, 112, 0, 0, 0, 0, 4275, 1); -REPLACE INTO mob_db VALUES(1198, "DARK_PRIEST", "Dark Priest", "Dark Priest", 98, 12090, 0, 2430, 1667, 2, 355, 554, 56, 30, 5, 60, 41, 89, 78, 42, 10, 12, 1, 6, 89, 0x31AD, 200, 864, 1252, 476, 0, 0, 0, 0, 0, 0, 0, 0, 1557, 5, 2608, 30, 505, 100, 716, 450, 1009, 1, 2319, 5, 7005, 3000, 0, 0, 0, 0, 4171, 1); -REPLACE INTO mob_db VALUES(1199, "PUNK", "Punk", "Punk", 82, 3869, 1, 972, 1094, 1, 266, 320, 68, 55, 67, 39, 30, 35, 79, 45, 10, 12, 0, 3, 24, 0x3095, 300, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7001, 5335, 715, 800, 10004, 100, 1061, 1000, 1057, 3000, 601, 1100, 2502, 15, 0, 0, 0, 0, 4313, 1); -REPLACE INTO mob_db VALUES(1200, "ZHERLTHSH", "Zherlthsh", "Zealotus", 105, 61350, 1, 6944, 6458, 1, 610, 790, 91, 99, 88, 61, 51, 62, 113, 60, 10, 12, 1, 7, 60, 0x308D, 200, 800, 2112, 768, 0, 0, 0, 0, 0, 0, 0, 0, 7017, 5, 509, 1800, 7293, 1500, 2331, 8, 2622, 1, 1970, 100, 2291, 3, 0, 0, 0, 0, 4277, 1); -REPLACE INTO mob_db VALUES(1201, "RYBIO", "Rybio", "Rybio", 98, 8700, 1, 1575, 1442, 1, 477, 553, 109, 30, 96, 52, 61, 30, 73, 10, 10, 12, 2, 6, 40, 0x318D, 200, 1790, 1440, 540, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 3880, 7017, 3, 509, 1800, 6216, 300, 1008, 10, 984, 100, 709, 30, 0, 0, 0, 0, 4194, 1); -REPLACE INTO mob_db VALUES(1202, "PHENDARK", "Phendark", "Phendark", 102, 11000, 1, 1990, 1302, 2, 539, 614, 307, 50, 111, 65, 71, 20, 91, 30, 10, 12, 2, 7, 40, 0x308D, 175, 1744, 1344, 600, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 3880, 7017, 4, 509, 1800, 0, 0, 984, 150, 1971, 100, 0, 0, 0, 0, 0, 0, 4329, 1); -REPLACE INTO mob_db VALUES(1203, "MYSTELTAINN", "Mysteltainn", "Mysteltainn", 130, 70000, 1, 7919, 4987, 2, 771, 1338, 73, 61, 102, 139, 62, 65, 130, 65, 10, 12, 2, 0, 87, 0x37B5, 250, 1152, 500, 240, 0, 0, 0, 0, 0, 0, 0, 0, 7019, 1, 7297, 1500, 1152, 70, 1155, 40, 1163, 2, 12736, 300, 984, 243, 0, 0, 0, 0, 4207, 1); -REPLACE INTO mob_db VALUES(1204, "TIRFING", "Tirfing", "Ogretooth", 114, 59000, 1, 5345, 5009, 1, 677, 1088, 87, 69, 105, 105, 75, 73, 108, 65, 10, 12, 1, 0, 67, 0x37B5, 100, 816, 500, 240, 0, 0, 0, 0, 0, 0, 0, 0, 7022, 1, 638, 50, 7292, 1500, 1214, 70, 1217, 40, 999, 120, 984, 189, 0, 0, 0, 0, 4254, 1); -REPLACE INTO mob_db VALUES(1205, "EXECUTIONER", "Executioner", "Executioner", 101, 40200, 1, 4860, 3645, 2, 515, 874, 97, 188, 99, 96, 77, 78, 79, 60, 10, 12, 2, 0, 47, 0x37B5, 200, 768, 500, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7024, 5, 7290, 1500, 1111, 80, 1114, 60, 1125, 40, 999, 120, 984, 145, 0, 0, 0, 0, 4250, 1); -REPLACE INTO mob_db VALUES(1206, "ANOLIAN", "Anolian", "Anolian", 109, 15547, 1, 2930, 2223, 1, 500, 610, 61, 11, 130, 63, 55, 66, 58, 48, 10, 12, 1, 5, 41, 0x3695, 190, 900, 500, 864, 0, 0, 0, 0, 0, 0, 0, 0, 7003, 4850, 1754, 2000, 526, 5, 10019, 10, 16003, 1, 2625, 1, 984, 134, 0, 0, 0, 0, 4234, 1); -REPLACE INTO mob_db VALUES(1207, "STING", "Sting", "Sting", 104, 10143, 1, 2172, 1629, 1, 611, 678, 146, 34, 108, 49, 68, 34, 99, 24, 10, 12, 1, 0, 62, 0x3695, 300, 528, 500, 240, 0, 0, 0, 0, 0, 0, 0, 0, 7004, 4850, 1756, 1500, 2624, 1, 1003, 130, 997, 25, 10007, 10, 6213, 800, 0, 0, 0, 0, 4226, 1); -REPLACE INTO mob_db VALUES(1208, "WANDER_MAN", "Wander Man", "Wanderer", 120, 19307, 1, 3389, 2466, 2, 711, 816, 64, 5, 118, 92, 36, 15, 107, 33, 10, 12, 1, 6, 24, 0x3795, 100, 672, 500, 192, 0, 0, 0, 0, 0, 0, 0, 0, 7005, 4850, 616, 1, 13015, 5, 2270, 5, 610, 650, 984, 217, 1164, 1, 0, 0, 0, 0, 4210, 1); -REPLACE INTO mob_db VALUES(1209, "CRAMP", "Cramp", "Cramp", 82, 3898, 1, 972, 1094, 1, 395, 443, 88, 42, 65, 43, 35, 25, 68, 30, 10, 12, 0, 2, 45, 0x3095, 100, 1000, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7007, 4656, 528, 1000, 726, 80, 746, 110, 568, 250, 510, 70, 984, 95, 0, 0, 0, 0, 4296, 1); -# REPLACE INTO mob_db VALUES(1210, "FILAMENTOUS", "Filamentous", "Filamentous", 51, 6088, 0, 1926, 1353, 1, 425, 525, 35, 10, 1, 35, 30, 5, 83, 40, 10, 12, 1, 4, 23, 0x3095, 200, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7008, 4850, 947, 8000, 943, 3880, 993, 200, 1451, 40, 757, 18, 509, 1600, 0, 0, 0, 0, 4045, 1); -REPLACE INTO mob_db VALUES(1211, "BRILIGHT", "Brilight", "Brilight", 71, 2772, 1, 738, 831, 1, 306, 339, 93, 25, 51, 19, 38, 32, 56, 30, 10, 12, 0, 4, 23, 0x3195, 200, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7009, 5335, 992, 200, 912, 1200, 7938, 100, 757, 220, 610, 250, 509, 2600, 0, 0, 0, 0, 4213, 1); -REPLACE INTO mob_db VALUES(1212, "IRON_FIST", "Iron Fist", "Iron Fist", 47, 4221, 0, 1292, 1368, 1, 430, 590, 40, 5, 1, 17, 15, 10, 73, 20, 10, 12, 1, 4, 60, 0x3195, 200, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7010, 5335, 757, 229, 757, 22, 1002, 750, 999, 180, 998, 300, 0, 0, 0, 0, 0, 0, 4239, 1); -REPLACE INTO mob_db VALUES(1213, "HIGH_ORC", "High Orc", "High Orc", 81, 4193, 1, 1099, 1158, 1, 389, 439, 101, 45, 75, 16, 40, 31, 69, 20, 10, 12, 2, 7, 43, 0x3695, 150, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7002, 2500, 1304, 10, 999, 90, 931, 7500, 912, 1300, 756, 196, 508, 900, 0, 0, 0, 0, 4322, 1); -REPLACE INTO mob_db VALUES(1214, "CHOCO", "Choco", "Choco", 48, 1080, 1, 369, 414, 1, 120, 167, 70, 30, 40, 45, 32, 19, 42, 20, 10, 12, 0, 2, 23, 0x3095, 150, 1028, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7011, 5335, 942, 7000, 985, 53, 513, 5000, 634, 20, 532, 1000, 607, 25, 0, 0, 0, 0, 4285, 1); -REPLACE INTO mob_db VALUES(1215, "STEM_WORM", "Stem Worm", "Stem Worm", 84, 4530, 1, 1080, 1215, 1, 266, 307, 73, 50, 55, 37, 25, 47, 70, 30, 10, 12, 1, 3, 24, 0x3095, 300, 1956, 756, 528, 0, 0, 0, 0, 0, 0, 0, 0, 7012, 5335, 509, 1800, 1968, 10, 756, 115, 997, 5, 1454, 20, 608, 45, 0, 0, 0, 0, 4224, 1); -REPLACE INTO mob_db VALUES(1216, "PENOMENA", "Penomena", "Penomena", 85, 4589, 1, 1116, 1556, 7, 292, 333, 85, 32, 76, 38, 35, 35, 89, 10, 10, 12, 1, 5, 25, 0x3695, 400, 832, 500, 600, 0, 0, 0, 0, 0, 0, 0, 0, 7013, 4850, 962, 8000, 938, 7000, 525, 200, 719, 15, 1258, 1, 716, 550, 0, 0, 0, 0, 4314, 1); -REPLACE INTO mob_db VALUES(1219, "KNIGHT_OF_ABYSS", "Knight of Abyss", "Abysmal Knight", 122, 23297, 1, 4779, 4013, 1, 810, 1002, 102, 50, 121, 55, 68, 70, 97, 37, 10, 12, 2, 7, 87, 0x3695, 300, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1064, 5335, 7023, 5, 2318, 1, 1421, 25, 1162, 1, 985, 369, 15014, 10, 0, 0, 0, 0, 4140, 1); -REPLACE INTO mob_db VALUES(1220, "M_DESERT_WOLF", "Desert Wolf", "Desert Wolf", 103, 9447, 1, 349, 218, 1, 254, 313, 114, 47, 93, 69, 63, 61, 82, 42, 10, 12, 1, 2, 23, 0x3695, 200, 1120, 420, 288, 0, 0, 0, 0, 0, 0, 0, 0, 1253, 5, 7030, 5500, 2311, 1, 517, 1200, 920, 2000, 756, 53, 0, 0, 0, 0, 0, 0, 4082, 1); -REPLACE INTO mob_db VALUES(1221, "M_SAVAGE", "Savage", "Savage", 26, 2092, 0, 321, 203, 1, 146, 177, 16, 5, 1, 26, 54, 10, 37, 10, 10, 12, 2, 2, 42, 0x3695, 150, 1960, 960, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 6000, 514, 150, 702, 3, 2276, 2, 605, 15, 757, 70, 0, 0, 0, 0, 0, 0, 4078, 1); -# REPLACE INTO mob_db VALUES(1222, "L_HIGH_ORC", "High Orc", "High Orc", 52, 6890, 0, 2128, 1490, 1, 428, 533, 15, 5, 1, 46, 55, 35, 82, 40, 10, 12, 2, 7, 43, 0x3695, 200, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7002, 2500, 1304, 10, 999, 120, 931, 8000, 912, 1600, 756, 196, 508, 1100, 0, 0, 0, 0, 4066, 1); -# REPLACE INTO mob_db VALUES(1223, "L_ORC", "Orc", "Orc", 24, 1400, 0, 261, 160, 1, 114, 136, 10, 5, 1, 24, 48, 25, 34, 10, 10, 12, 1, 7, 22, 0x3695, 200, 1864, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 998, 210, 931, 5500, 756, 40, 2267, 3, 1352, 10, 1304, 5, 1301, 100, 0, 0, 0, 0, 4066, 1); -# REPLACE INTO mob_db VALUES(1224, "L_POISON_SPORE", "Poison Spore", "Poison Spore", 19, 665, 0, 169, 85, 1, 89, 101, 0, 0, 1, 19, 25, 1, 24, 1, 10, 12, 1, 3, 25, 0x3695, 200, 1672, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 921, 8000, 2221, 20, 511, 650, 510, 55, 972, 35, 0, 0, 0, 0, 0, 0, 0, 0, 4048, 1); -# REPLACE INTO mob_db VALUES(1225, "L_CHOCO", "Choco", "Choco", 43, 4278, 0, 1150, 1150, 1, 315, 402, 5, 5, 1, 68, 55, 45, 65, 25, 10, 12, 0, 2, 23, 0x3695, 200, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7011, 5335, 942, 7000, 508, 1900, 513, 5000, 2311, 2, 532, 1000, 607, 25, 0, 0, 0, 0, 4051, 1); -# REPLACE INTO mob_db VALUES(1226, "L_KOBOLD", "Kobold", "Kobold", 36, 3893, 0, 898, 568, 1, 265, 318, 15, 10, 1, 90, 36, 30, 52, 30, 10, 12, 1, 7, 44, 0x3695, 200, 1028, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 90, 1034, 5820, 912, 750, 985, 25, 1220, 2, 2104, 5, 0, 0, 0, 0, 0, 0, 4091, 1); -# REPLACE INTO mob_db VALUES(1227, "L_GOBLIN", "Goblin", "Goblin", 25, 1176, 0, 282, 171, 1, 118, 140, 10, 5, 1, 63, 25, 20, 38, 45, 10, 12, 1, 7, 24, 0x3695, 100, 1120, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 998, 270, 911, 1200, 756, 43, 2297, 3, 1211, 10, 2104, 5, 507, 800, 0, 0, 0, 0, 4060, 1); -# REPLACE INTO mob_db VALUES(1228, "L_PHEN", "Phen", "Phen", 26, 3347, 0, 357, 226, 1, 138, 150, 0, 15, 1, 26, 26, 1, 88, 75, 10, 12, 1, 5, 41, 0x3695, 150, 2544, 1344, 1152, 0, 0, 0, 0, 0, 0, 0, 0, 1023, 6000, 963, 2300, 720, 8, 517, 1100, 951, 550, 756, 25, 0, 0, 0, 0, 0, 0, 4077, 1); -REPLACE INTO mob_db VALUES(1229, "META_FABRE", "Fabre", "Fabre", 2, 63, 1, 3, 2, 1, 8, 11, 0, 0, 1, 2, 4, 0, 7, 5, 10, 12, 0, 4, 22, 0x181, 400, 1672, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 914, 6500, 949, 600, 1502, 80, 721, 8, 511, 750, 705, 1500, 1501, 200, 0, 0, 0, 0, 4002, 1); -REPLACE INTO mob_db VALUES(1230, "META_PUPA", "Pupa", "Pupa", 2, 427, 1, 2, 4, 0, 1, 2, 32, 20, 1, 1, 1, 0, 1, 20, 10, 12, 0, 4, 22, 0x100, 1000, 1001, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 300, 915, 6000, 938, 700, 2102, 2, 935, 1300, 938, 700, 1002, 300, 0, 0, 0, 0, 4003, 1); -REPLACE INTO mob_db VALUES(1231, "META_CREAMY", "Creamy", "Creamy", 16, 595, 1, 86, 58, 1, 53, 64, 0, 30, 1, 40, 16, 15, 16, 55, 10, 12, 0, 4, 24, 0x181, 200, 1220, 720, 288, 0, 0, 0, 0, 0, 0, 0, 0, 924, 6000, 2322, 10, 518, 180, 602, 200, 2207, 4, 712, 800, 0, 0, 0, 0, 0, 0, 4040, 1); -REPLACE INTO mob_db VALUES(1232, "META_PECOPECO_EGG", "Peco Peco Egg", "Peco Peco Egg", 3, 420, 1, 4, 4, 0, 1, 2, 32, 20, 1, 1, 1, 0, 1, 20, 10, 12, 0, 0, 60, 0x0, 1000, 1001, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 120, 935, 1500, 2102, 2, 507, 450, 507, 450, 713, 2000, 736, 15, 0, 0, 0, 0, 4007, 1); -# REPLACE INTO mob_db VALUES(1233, "CONCEIVE_PECOPECO", "Peco Peco", "Peco Peco", 19, 531, 0, 159, 36, 1, 50, 64, 0, 0, 1, 13, 13, 25, 27, 9, 10, 12, 2, 2, 23, 0x81, 200, 1564, 864, 576, 0, 0, 0, 0, 0, 0, 0, 0, 925, 6000, 2402, 20, 508, 55, 507, 950, 1604, 100, 0, 0, 582, 1000, 0, 0, 0, 0, 4031, 1); -REPLACE INTO mob_db VALUES(1234, "PROVOKE_YOYO", "Yoyo", "Yoyo", 19, 879, 1, 122, 77, 1, 71, 82, 0, 0, 1, 24, 30, 35, 32, 55, 10, 12, 0, 2, 22, 0x108B, 200, 1054, 54, 384, 0, 0, 0, 0, 0, 0, 0, 0, 942, 6000, 7182, 500, 508, 130, 919, 5500, 753, 7, 578, 500, 582, 1000, 0, 0, 0, 0, 4051, 1); -REPLACE INTO mob_db VALUES(1235, "SMOKING_ORC", "Smoking Orc", "Smoking Orc", 24, 1400, 1, 235, 144, 1, 114, 136, 16, 20, 1, 24, 48, 20, 34, 0, 10, 12, 1, 7, 22, 0x308D, 200, 1864, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 998, 210, 931, 5500, 756, 40, 2267, 3, 1352, 10, 1304, 5, 1301, 100, 0, 0, 0, 0, 4066, 1); -REPLACE INTO mob_db VALUES(1236, "META_ANT_EGG", "Ant Egg", "Ant Egg", 4, 420, 1, 5, 4, 0, 1, 2, 32, 20, 1, 1, 1, 0, 1, 20, 10, 12, 0, 0, 60, 0x0, 1000, 1001, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 135, 935, 2740, 909, 3000, 938, 750, 713, 2000, 1002, 220, 0, 0, 0, 0, 0, 0, 4013, 1); -REPLACE INTO mob_db VALUES(1237, "META_ANDRE", "Andre", "Andre", 17, 688, 1, 98, 64, 1, 60, 71, 16, 0, 1, 17, 24, 20, 26, 20, 10, 12, 0, 4, 22, 0x118B, 300, 1288, 288, 576, 0, 0, 0, 0, 0, 0, 0, 0, 955, 6000, 910, 3000, 938, 1000, 935, 3000, 1001, 6, 1002, 350, 757, 28, 0, 0, 0, 0, 4043, 1); -REPLACE INTO mob_db VALUES(1238, "META_PIERE", "Piere", "Piere", 18, 733, 1, 110, 70, 1, 64, 75, 24, 0, 1, 18, 26, 20, 27, 15, 10, 12, 0, 4, 22, 0x118B, 200, 1288, 288, 576, 0, 0, 0, 0, 0, 0, 0, 0, 955, 5700, 910, 1100, 938, 600, 992, 15, 1001, 5, 1002, 400, 757, 31, 0, 0, 0, 0, 4043, 1); -REPLACE INTO mob_db VALUES(1239, "META_DENIRO", "Deniro", "Deniro", 19, 760, 1, 122, 77, 1, 68, 79, 24, 0, 1, 19, 30, 20, 43, 10, 10, 12, 0, 4, 22, 0x118B, 150, 1288, 288, 576, 0, 0, 0, 0, 0, 0, 0, 0, 955, 6000, 910, 3000, 938, 1200, 990, 45, 1001, 8, 1002, 450, 757, 34, 0, 0, 0, 0, 4043, 1); -REPLACE INTO mob_db VALUES(1240, "META_PICKY", "Picky", "Picky", 3, 80, 1, 4, 3, 1, 9, 12, 0, 0, 1, 3, 3, 0, 10, 30, 10, 12, 0, 2, 23, 0x81, 200, 988, 288, 168, 0, 0, 0, 0, 0, 0, 0, 0, 916, 6500, 949, 850, 2302, 150, 507, 650, 519, 350, 715, 60, 0, 0, 0, 0, 0, 0, 4008, 1); -REPLACE INTO mob_db VALUES(1241, "META_PICKY_", "Picky", "Picky", 4, 83, 1, 5, 4, 1, 8, 11, 32, 0, 1, 3, 3, 0, 11, 20, 10, 12, 0, 2, 23, 0x81, 200, 988, 288, 168, 0, 0, 0, 0, 0, 0, 0, 0, 916, 6500, 949, 850, 5015, 7, 507, 750, 519, 350, 715, 60, 0, 0, 0, 0, 0, 0, 4011, 1); -REPLACE INTO mob_db VALUES(1242, "MARIN", "Marin", "Marin", 37, 987, 1, 282, 317, 1, 69, 83, 32, 8, 24, 5, 10, 5, 30, 15, 10, 12, 1, 3, 41, 0x81, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 910, 3200, 938, 1500, 700, 100, 720, 40, 510, 75, 529, 350, 5035, 1, 0, 0, 0, 0, 4196, 1); -REPLACE INTO mob_db VALUES(1243, "SASQUATCH", "Sasquatch", "Sasquatch", 72, 3163, 1, 765, 860, 1, 266, 296, 101, 28, 70, 35, 60, 10, 59, 20, 10, 12, 2, 2, 60, 0x3695, 300, 1260, 192, 192, 0, 0, 0, 0, 0, 0, 0, 0, 912, 750, 509, 800, 949, 1000, 5030, 1, 948, 5000, 727, 30, 757, 90, 0, 0, 0, 0, 4216, 1); -REPLACE INTO mob_db VALUES(1244, "JAKK_XMAS", "Christmas Jakk", "Christmas Jakk", 63, 2054, 1, 1002, 619, 1, 218, 255, 90, 25, 58, 43, 42, 25, 55, 15, 10, 12, 1, 0, 43, 0x81, 200, 1180, 480, 648, 0, 0, 0, 0, 0, 0, 0, 0, 1062, 5335, 912, 900, 985, 31, 2331, 5, 644, 20, 7175, 1200, 7174, 1200, 0, 0, 0, 0, 4109, 1); -REPLACE INTO mob_db VALUES(1245, "GOBLINE_XMAS", "Christmas Goblin", "Christmas Goblin", 25, 1176, 1, 254, 154, 1, 118, 140, 16, 5, 1, 53, 25, 20, 38, 45, 10, 12, 1, 7, 24, 0x81, 100, 1120, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 7174, 550, 7175, 550, 756, 43, 644, 10, 1211, 10, 2104, 5, 2236, 10, 0, 0, 0, 0, 4060, 1); -REPLACE INTO mob_db VALUES(1246, "COOKIE_XMAS", "Christmas Cookie", "Christmas Cookie", 37, 733, 1, 282, 317, 1, 70, 105, 48, 36, 21, 16, 30, 20, 25, 5, 10, 12, 0, 7, 46, 0x91, 400, 1248, 1248, 240, 0, 0, 0, 0, 0, 0, 0, 0, 538, 1500, 722, 45, 912, 200, 2502, 25, 644, 5, 688, 100, 507, 1700, 0, 0, 0, 0, 4235, 1); -REPLACE INTO mob_db VALUES(1247, "ANTONIO", "Antonio", "Antonio", 10, 10, 1, 3, 2, 1, 13, 21, 160, 0, 1, 1, 1, 50, 100, 100, 10, 12, 1, 7, 66, 0xC1, 100, 720, 720, 432, 0, 0, 0, 0, 0, 0, 0, 0, 5136, 1000, 5811, 1000, 604, 3000, 14550, 10000, 12225, 2000, 12132, 2000, 12354, 3000, 0, 0, 0, 0, 12132, 2000); -REPLACE INTO mob_db VALUES(1248, "CRUISER", "Cruiser", "Cruiser", 41, 919, 1, 288, 324, 7, 55, 75, 20, 18, 17, 10, 23, 15, 34, 10, 10, 12, 1, 0, 60, 0x2085, 400, 1296, 1296, 432, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 900, 2251, 2, 998, 320, 996, 5, 911, 3500, 13150, 5, 756, 87, 0, 0, 0, 0, 4297, 1); -REPLACE INTO mob_db VALUES(1249, "MYSTCASE", "Myst Case", "Myst Case", 39, 879, 1, 288, 324, 1, 68, 89, 50, 11, 26, 19, 40, 35, 31, 25, 10, 12, 1, 0, 60, 0x91, 400, 1248, 1248, 432, 0, 0, 0, 0, 0, 0, 0, 0, 530, 90, 7938, 10, 603, 20, 539, 800, 722, 150, 731, 5, 529, 340, 0, 0, 0, 0, 4206, 1); -REPLACE INTO mob_db VALUES(1250, "CHEPET", "Chepet", "Chepet", 42, 4950, 0, 1315, 1854, 1, 79, 112, 55, 25, 32, 35, 35, 21, 32, 23, 10, 12, 1, 7, 23, 0x3695, 400, 672, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7035, 2500, 912, 750, 512, 5500, 619, 40, 10019, 5, 508, 1300, 2508, 5, 0, 0, 0, 0, 4284, 1); -REPLACE INTO mob_db VALUES(1251, "KNIGHT_OF_WINDSTORM", "Knight of Windstorm", "Stormy Knight", 92, 630500, 1, 413800, 302200, 2, 2677, 4110, 306, 166, 126, 165, 132, 104, 171, 79, 10, 12, 2, 0, 84, 0x37B5, 200, 468, 468, 288, 206900, 10000, 720, 4500, 2406, 500, 995, 3000, 1468, 150, 603, 3000, 617, 4000, 2621, 200, 2506, 500, 985, 4559, 5007, 1, 0, 0, 0, 0, 4318, 1); -REPLACE INTO mob_db VALUES(1252, "GARM", "Garm", "Hatii", 98, 1275500, 1, 758880, 613800, 3, 1862, 3595, 173, 103, 122, 153, 135, 116, 146, 72, 10, 12, 2, 2, 81, 0x37B5, 400, 608, 408, 336, 379440, 10000, 7036, 1000, 603, 3000, 995, 3000, 7036, 5500, 1131, 150, 1256, 500, 1815, 500, 0, 0, 985, 3977, 984, 2900, 0, 0, 0, 0, 4324, 1); -REPLACE INTO mob_db VALUES(1253, "GARGOYLE", "Gargoyle", "Gargoyle", 100, 8772, 1, 1900, 1425, 9, 383, 472, 98, 43, 100, 61, 60, 57, 100, 70, 10, 12, 1, 6, 64, 0x2185, 200, 1020, 720, 384, 0, 0, 0, 0, 0, 0, 0, 0, 912, 3880, 1039, 500, 2506, 2, 1746, 5, 2619, 1, 1769, 2000, 757, 238, 0, 0, 0, 0, 4149, 1); -REPLACE INTO mob_db VALUES(1254, "RAGGLER", "Raggler", "Raggler", 48, 1148, 1, 369, 414, 1, 72, 111, 56, 10, 30, 42, 38, 15, 54, 27, 10, 12, 0, 2, 24, 0x3695, 200, 1000, 900, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 3000, 916, 5000, 645, 200, 514, 200, 992, 90, 2225, 7, 756, 32, 0, 0, 0, 0, 4186, 1); -REPLACE INTO mob_db VALUES(1255, "NERAID", "Neraid", "Nereid", 98, 9550, 1, 1575, 1181, 1, 196, 267, 100, 37, 97, 45, 60, 30, 69, 50, 10, 12, 0, 2, 22, 0x3695, 200, 776, 576, 288, 0, 0, 0, 0, 0, 0, 0, 0, 1055, 5100, 7053, 1000, 510, 230, 1966, 10, 514, 250, 757, 180, 985, 37, 0, 0, 0, 0, 4167, 1); -REPLACE INTO mob_db VALUES(1256, "PEST", "Pest", "Pest", 89, 5747, 1, 1341, 1509, 1, 304, 352, 55, 33, 73, 77, 48, 15, 88, 25, 10, 12, 0, 2, 47, 0x3695, 165, 700, 648, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1055, 5500, 7054, 200, 702, 10, 605, 100, 716, 250, 0, 0, 756, 115, 0, 0, 0, 0, 4315, 1); -REPLACE INTO mob_db VALUES(1257, "INJUSTICE", "Injustice", "Injustice", 95, 7952, 1, 1574, 1997, 1, 344, 460, 76, 31, 77, 59, 58, 65, 73, 50, 10, 12, 1, 1, 47, 0x3695, 400, 770, 720, 336, 0, 0, 0, 0, 0, 0, 0, 0, 999, 300, 7054, 5335, 7053, 3500, 2313, 5, 2316, 2, 660, 2, 1255, 2, 0, 0, 0, 0, 4268, 1); -REPLACE INTO mob_db VALUES(1258, "GOBLIN_ARCHER", "Goblin Archer", "Goblin Archer", 55, 1575, 1, 450, 507, 9, 95, 119, 69, 0, 40, 34, 20, 15, 48, 20, 10, 12, 0, 7, 25, 0x2085, 200, 1172, 672, 420, 0, 0, 0, 0, 0, 0, 0, 0, 2297, 3, 998, 250, 911, 1000, 1765, 3000, 507, 600, 1705, 25, 514, 300, 0, 0, 0, 0, 4157, 1); -REPLACE INTO mob_db VALUES(1259, "GRYPHON", "Gryphon", "Gryphon", 105, 60720, 1, 9410, 5808, 1, 717, 820, 113, 72, 101, 133, 66, 70, 137, 54, 10, 12, 2, 2, 84, 0x37B5, 100, 704, 504, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7048, 2500, 7054, 5335, 7063, 120, 1452, 1500, 1417, 1, 984, 185, 996, 150, 0, 0, 0, 0, 4163, 1); -REPLACE INTO mob_db VALUES(1260, "DARK_FRAME", "Dark Frame", "Dark Frame", 76, 3520, 1, 992, 1115, 1, 318, 348, 67, 27, 69, 37, 36, 10, 53, 5, 10, 12, 1, 6, 67, 0x3795, 200, 920, 720, 200, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 4656, 734, 1000, 2505, 30, 0, 0, 0, 0, 1000, 80, 747, 3, 0, 0, 0, 0, 4170, 1); -REPLACE INTO mob_db VALUES(1261, "WILD_ROSE", "Wild Rose", "Wild Rose", 70, 2682, 1, 720, 1110, 1, 140, 185, 75, 15, 44, 87, 31, 35, 63, 80, 10, 12, 0, 2, 24, 0x83, 100, 964, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 5335, 748, 50, 5037, 120, 2336, 1, 624, 35, 528, 600, 2244, 2, 0, 0, 0, 0, 4257, 1); -REPLACE INTO mob_db VALUES(1262, "MUTANT_DRAGON", "Mutant Dragon", "Mutant Dragonoid", 65, 50706, 1, 3644, 12830, 4, 1120, 1654, 130, 20, 75, 35, 30, 68, 98, 35, 10, 12, 2, 9, 43, 0x37B5, 250, 1280, 1080, 240, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 4850, 1035, 500, 1036, 500, 930, 500, 1559, 100, 7296, 1500, 2527, 50, 0, 0, 0, 0, 4203, 1); -REPLACE INTO mob_db VALUES(1263, "WIND_GHOST", "Wind Ghost", "Wind Ghost", 80, 4008, 1, 918, 1334, 2, 165, 260, 64, 51, 62, 27, 25, 55, 85, 20, 10, 12, 1, 6, 64, 0x3795, 150, 1056, 1056, 336, 0, 0, 0, 0, 0, 0, 0, 0, 912, 4559, 932, 6000, 7005, 500, 693, 100, 1611, 8, 996, 100, 1615, 1, 0, 0, 0, 0, 4264, 1); -REPLACE INTO mob_db VALUES(1264, "MERMAN", "Merman", "Merman", 60, 2940, 1, 616, 692, 1, 125, 157, 62, 8, 45, 29, 30, 19, 50, 10, 10, 12, 1, 7, 61, 0x3695, 220, 916, 816, 336, 0, 0, 0, 0, 0, 0, 0, 0, 1054, 1300, 2317, 2, 568, 400, 720, 40, 995, 35, 1460, 3, 756, 203, 0, 0, 0, 0, 4199, 1); -REPLACE INTO mob_db VALUES(1265, "COOKIE", "Cookie", "Cookie", 35, 666, 1, 234, 264, 1, 59, 84, 56, 28, 15, 23, 35, 12, 31, 15, 10, 12, 0, 7, 60, 0x1089, 200, 1036, 936, 240, 0, 0, 0, 0, 0, 0, 0, 0, 538, 1000, 530, 150, 7938, 5, 11002, 50, 2402, 30, 12001, 100, 529, 320, 0, 0, 0, 0, 4293, 1); -REPLACE INTO mob_db VALUES(1266, "ASTER", "Aster", "Aster", 50, 1509, 1, 405, 455, 1, 85, 107, 70, 7, 41, 14, 15, 0, 28, 5, 10, 12, 0, 5, 22, 0x91, 400, 1264, 864, 216, 0, 0, 0, 0, 0, 0, 0, 0, 938, 500, 7013, 40, 1052, 1200, 508, 200, 912, 60, 512, 100, 0, 0, 0, 0, 0, 0, 4247, 1); -REPLACE INTO mob_db VALUES(1267, "CARAT", "Carat", "Carat", 103, 9222, 1, 1944, 1458, 1, 598, 674, 111, 67, 102, 64, 60, 40, 67, 50, 10, 12, 1, 6, 44, 0x3795, 200, 1078, 768, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 3200, 536, 1000, 2409, 5, 5003, 1, 0, 0, 0, 0, 509, 1450, 0, 0, 0, 0, 4288, 1); -REPLACE INTO mob_db VALUES(1268, "BLOODY_KNIGHT", "Bloody Knight", "Bloody Knight", 116, 68500, 1, 7348, 6511, 3, 942, 1065, 122, 50, 132, 59, 70, 57, 98, 45, 10, 12, 2, 0, 87, 0x3695, 250, 828, 528, 192, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 4850, 2229, 45, 2317, 5, 2125, 62, 1170, 1, 1417, 2, 15014, 5, 0, 0, 0, 0, 4320, 1); -REPLACE INTO mob_db VALUES(1269, "CLOCK", "Clock", "Clock", 81, 5556, 1, 1231, 1158, 1, 403, 456, 91, 43, 68, 24, 35, 41, 81, 15, 10, 12, 1, 0, 42, 0x91, 200, 1092, 792, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 5335, 1019, 800, 509, 1900, 568, 320, 7026, 30, 7027, 30, 985, 163, 0, 0, 0, 0, 4299, 1); -REPLACE INTO mob_db VALUES(1270, "C_TOWER_MANAGER", "Clock Tower Manager", "Clock Tower Manager", 90, 6400, 1, 1305, 1467, 3, 388, 458, 96, 60, 80, 28, 40, 25, 73, 45, 10, 12, 2, 0, 80, 0x91, 200, 1072, 672, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 5335, 7054, 5335, 999, 500, 520, 850, 2109, 1, 7026, 2000, 7027, 2000, 0, 0, 0, 0, 4229, 1); -REPLACE INTO mob_db VALUES(1271, "ALLIGATOR", "Alligator", "Alligator", 57, 2430, 1, 486, 548, 1, 150, 187, 62, 30, 47, 48, 24, 15, 36, 26, 10, 12, 1, 2, 21, 0x91, 200, 1100, 900, 480, 0, 0, 0, 0, 0, 0, 0, 0, 912, 1000, 1099, 600, 7003, 2000, 608, 50, 0, 0, 0, 0, 756, 129, 0, 0, 0, 0, 4252, 1); -REPLACE INTO mob_db VALUES(1272, "DARK_LORD", "Dark Lord", "Dark Lord", 96, 1190900, 1, 714240, 558000, 2, 3027, 5112, 330, 168, 118, 136, 154, 142, 161, 66, 10, 12, 2, 6, 89, 0x37B5, 100, 868, 768, 480, 357120, 10000, 7005, 6000, 5093, 500, 617, 2000, 1615, 800, 2004, 100, 1237, 300, 2334, 300, 2507, 100, 985, 5141, 5162, 10, 0, 0, 0, 0, 4168, 1); -REPLACE INTO mob_db VALUES(1273, "ORC_LADY", "Orc Lady", "Orc Lady", 45, 1520, 1, 380, 435, 1, 77, 110, 83, 17, 36, 11, 28, 10, 57, 5, 10, 12, 1, 7, 42, 0x3695, 200, 1050, 900, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 4656, 15012, 3, 2602, 1, 2206, 1, 12127, 10, 7477, 3, 2338, 1, 0, 0, 0, 0, 4255, 1); -REPLACE INTO mob_db VALUES(1274, "MEGALITH", "Megalith", "Megalith", 65, 2451, 1, 594, 669, 9, 116, 146, 66, 18, 57, 14, 35, 10, 90, 3, 10, 12, 2, 0, 80, 0x84, 200, 1332, 1332, 672, 0, 0, 0, 0, 0, 0, 0, 0, 912, 100, 7049, 1000, 617, 1, 0, 0, 0, 0, 985, 61, 757, 207, 0, 0, 0, 0, 4200, 1); -REPLACE INTO mob_db VALUES(1275, "ALICE", "Alice", "Alice", 100, 9230, 1, 1630, 1222, 1, 395, 493, 93, 73, 82, 53, 45, 70, 80, 80, 10, 12, 1, 7, 60, 0x91, 200, 502, 1999, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7047, 3000, 637, 40, 2407, 3, 2148, 2, 5085, 1, 12128, 10, 12002, 100, 0, 0, 0, 0, 4253, 1); -REPLACE INTO mob_db VALUES(1276, "RAYDRIC_ARCHER", "Raydric Archer", "Raydric Archer", 82, 4437, 1, 1049, 1332, 9, 377, 395, 63, 40, 53, 24, 40, 15, 112, 30, 10, 12, 1, 6, 47, 0x2185, 200, 1152, 1152, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 4656, 0, 0, 2315, 2, 15013, 5, 1764, 2000, 1715, 3, 985, 106, 0, 0, 0, 0, 4187, 1); -REPLACE INTO mob_db VALUES(1277, "GREATEST_GENERAL", "Greatest General", "Greatest General", 55, 1575, 1, 486, 548, 3, 215, 241, 114, 30, 58, 30, 20, 25, 25, 20, 10, 12, 1, 0, 43, 0x84, 200, 1152, 1152, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 2000, 1019, 2000, 1501, 100, 662, 300, 2272, 1, 508, 250, 686, 100, 0, 0, 0, 0, 4283, 1); -REPLACE INTO mob_db VALUES(1278, "STALACTIC_GOLEM", "Stalactic Golem", "Stalactic Golem", 68, 2590, 1, 675, 759, 1, 341, 362, 230, 5, 67, 47, 48, 1, 63, 5, 10, 12, 2, 0, 80, 0x91, 200, 1264, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7004, 2000, 7054, 4850, 1000, 250, 997, 30, 757, 250, 2147, 5, 985, 163, 0, 0, 0, 0, 4223, 1); -REPLACE INTO mob_db VALUES(1279, "TRI_JOINT", "Tri Joint", "Tri Joint", 66, 2530, 0, 347, 297, 1, 278, 306, 22, 5, 1, 33, 24, 10, 55, 20, 10, 12, 0, 4, 22, 0x3795, 200, 860, 660, 624, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 100, 943, 380, 606, 200, 993, 160, 1001, 140, 0, 0, 757, 106, 0, 0, 0, 0, 4308, 1); -REPLACE INTO mob_db VALUES(1280, "STEAM_GOBLIN", "Steam Goblin", "Goblin Steamrider", 66, 2241, 1, 680, 765, 1, 280, 315, 85, 5, 52, 61, 32, 15, 82, 25, 10, 12, 1, 7, 44, 0x91, 200, 1008, 1008, 528, 0, 0, 0, 0, 0, 0, 0, 0, 911, 2500, 7053, 3880, 998, 300, 999, 55, 1003, 320, 13104, 5, 757, 124, 0, 0, 0, 0, 4156, 1); -REPLACE INTO mob_db VALUES(1281, "SAGEWORM", "Sage Worm", "Sage Worm", 70, 2872, 1, 720, 810, 1, 158, 279, 109, 45, 39, 29, 28, 71, 44, 30, 10, 12, 0, 2, 60, 0x91, 200, 936, 936, 288, 0, 0, 0, 0, 0, 0, 0, 0, 2716, 5, 1097, 1000, 1055, 3000, 691, 100, 505, 40, 689, 100, 5012, 1, 0, 0, 0, 0, 4219, 1); -REPLACE INTO mob_db VALUES(1282, "KOBOLD_ARCHER", "Kobold Archer", "Kobold Archer", 108, 11053, 1, 2160, 2620, 9, 586, 619, 84, 5, 99, 39, 48, 30, 103, 25, 10, 12, 0, 7, 23, 0x2085, 200, 1008, 1008, 384, 0, 0, 0, 0, 0, 0, 0, 0, 912, 250, 999, 60, 1034, 4850, 5118, 50, 1763, 2000, 1711, 5, 756, 79, 0, 0, 0, 0, 4292, 1); -REPLACE INTO mob_db VALUES(1283, "CHIMERA", "Chimera", "Chimera", 70, 26406, 1, 5168, 4698, 1, 980, 1128, 159, 10, 1, 38, 110, 88, 83, 85, 10, 12, 2, 2, 63, 0x37B5, 200, 772, 672, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 5335, 1048, 2500, 568, 1000, 1306, 1, 7295, 1500, 1364, 1, 984, 160, 0, 0, 0, 0, 4300, 1); -# REPLACE INTO mob_db VALUES(1284, "HUGELING", "Hugeling", "Hugeling", 1, 5000, 0, 2, 1, 4, 7, 10, 0, 0, 1, 1, 1, 1, 6, 1, 10, 12, 2, 3, 21, 0x91, 200, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 512, 100, 512, 100, 512, 100, 512, 100, 512, 100, 512, 100, 512, 100, 512, 100, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1285, "ARCHER_GUARDIAN", "Archer Guardian", "Archer Guardian", 74, 28634, 1, 1, 1, 12, 1120, 1600, 56, 60, 95, 80, 80, 90, 165, 55, 14, 16, 2, 7, 80, 0x1FA5, 265, 1200, 1200, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1286, "KNIGHT_GUARDIAN", "Knight Guardian", "Knight Guardian", 86, 30214, 1, 1, 1, 2, 1280, 1560, 88, 30, 110, 40, 140, 65, 125, 65, 14, 16, 2, 7, 80, 0x1FA5, 275, 1200, 1200, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1287, "SOLDIER_GUARDIAN", "Soldier Guardian", "Soldier Guardian", 56, 15670, 1, 1, 1, 1, 873, 1036, 56, 0, 85, 56, 100, 45, 103, 43, 10, 12, 2, 7, 20, 0x21A5, 265, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1288, "EMPELIUM", "Emperium", "Emperium", 90, 100, 1, 0, 0, 1, 60, 73, 64, 50, 1, 17, 80, 50, 26, 20, 10, 12, 0, 8, 26, 0x160, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1289, "MAYA_PUPLE", "Maya Purple", "Maya Purple", 81, 77670, 1, 11714, 6516, 2, 1447, 2000, 139, 40, 95, 52, 80, 95, 73, 119, 10, 12, 2, 4, 82, 0x37B5, 100, 1024, 1000, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 4413, 757, 250, 756, 300, 969, 100, 984, 150, 10006, 1, 7481, 2, 0, 0, 0, 0, 4198, 1); -REPLACE INTO mob_db VALUES(1290, "SKELETON_GENERAL", "Skeleton General", "Skeleton General", 88, 6720, 0, 1368, 1553, 1, 540, 579, 100, 35, 72, 34, 52, 31, 84, 25, 10, 12, 1, 1, 29, 0x3695, 150, 2276, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7068, 2550, 756, 160, 508, 800, 1220, 35, 1219, 80, 13035, 15, 2274, 1, 0, 0, 0, 0, 4221, 1); -REPLACE INTO mob_db VALUES(1291, "WRAITH_DEAD", "Wraith Dead", "Wraith Dead", 86, 10035, 0, 2518, 1824, 2, 402, 462, 88, 56, 63, 69, 55, 45, 88, 45, 10, 12, 2, 1, 89, 0x3695, 175, 1816, 576, 240, 0, 0, 0, 0, 0, 0, 0, 0, 1059, 4413, 2206, 10, 2506, 8, 716, 700, 732, 5, 603, 100, 568, 300, 0, 0, 0, 0, 4189, 1); -REPLACE INTO mob_db VALUES(1292, "MINI_DEMON", "Mini Demon", "Mini Demon", 117, 19402, 1, 2700, 2025, 1, 670, 784, 80, 25, 130, 69, 55, 56, 79, 40, 10, 12, 0, 6, 27, 0x3795, 150, 1000, 600, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1038, 4413, 1039, 450, 2255, 3, 757, 160, 912, 2500, 1009, 10, 1478, 5, 0, 0, 0, 0, 4204, 1); -REPLACE INTO mob_db VALUES(1293, "CREMY_FEAR", "Creamy Fear", "Creamy Fear", 77, 3420, 0, 945, 1067, 2, 272, 335, 76, 37, 65, 36, 33, 49, 66, 30, 10, 12, 0, 4, 24, 0x3795, 155, 1136, 720, 840, 0, 0, 0, 0, 0, 0, 0, 0, 924, 4550, 2333, 10, 518, 550, 602, 200, 1550, 8, 2726, 5, 522, 50, 0, 0, 0, 0, 4298, 1); -REPLACE INTO mob_db VALUES(1294, "KILLER_MANTIS", "Killer Mantis", "Killer Mantis", 91, 7650, 0, 1485, 1674, 1, 500, 550, 107, 45, 82, 56, 58, 45, 69, 40, 10, 12, 1, 4, 22, 0x3795, 175, 1528, 660, 432, 0, 0, 0, 0, 0, 0, 0, 0, 1031, 4550, 943, 2500, 721, 10, 509, 15, 514, 25, 1262, 1, 2108, 1, 0, 0, 0, 0, 4301, 1); -REPLACE INTO mob_db VALUES(1295, "OWL_BARON", "Owl Baron", "Owl Baron", 120, 21000, 1, 3042, 2282, 2, 449, 650, 88, 25, 72, 65, 55, 102, 77, 72, 10, 12, 2, 6, 60, 0x37B5, 175, 1345, 824, 440, 0, 0, 0, 0, 0, 0, 0, 0, 7071, 3500, 7063, 2500, 1716, 2, 1472, 1, 1629, 2, 693, 100, 5045, 5, 0, 0, 0, 0, 4238, 1); -REPLACE INTO mob_db VALUES(1296, "KOBOLD_LEADER", "Kobold Leader", "Kobold Leader", 112, 13520, 1, 2643, 2383, 1, 711, 807, 90, 62, 135, 34, 68, 56, 83, 47, 10, 12, 1, 7, 44, 0x3695, 150, 1028, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 450, 1034, 6305, 912, 1200, 1511, 6, 1613, 2, 525, 150, 526, 100, 0, 0, 0, 0, 4291, 1); -REPLACE INTO mob_db VALUES(1297, "ANCIENT_MUMMY", "Ancient Mummy", "Ancient Mummy", 114, 27157, 1, 4104, 3199, 1, 701, 901, 93, 51, 126, 57, 55, 69, 112, 15, 10, 12, 1, 1, 49, 0x3695, 175, 1772, 120, 384, 0, 0, 0, 0, 0, 0, 0, 0, 930, 4413, 934, 1800, 2624, 1, 2611, 150, 12735, 10, 756, 150, 757, 100, 0, 0, 0, 0, 4248, 1); -REPLACE INTO mob_db VALUES(1298, "ZOMBIE_MASTER", "Zombie Master", "Zombie Master", 92, 8780, 0, 1710, 1857, 1, 499, 629, 78, 46, 55, 60, 48, 49, 72, 48, 10, 12, 1, 1, 29, 0x3695, 175, 2612, 912, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7071, 4413, 938, 1500, 958, 1500, 723, 200, 727, 100, 1260, 1, 2324, 2, 0, 0, 0, 0, 4274, 1); -REPLACE INTO mob_db VALUES(1299, "GOBLIN_LEADER", "Goblin Leader", "Goblin Leader", 55, 21692, 1, 4450, 5007, 1, 165, 214, 72, 30, 60, 67, 45, 18, 66, 23, 10, 12, 1, 7, 24, 0x3695, 120, 1120, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 1500, 999, 800, 756, 120, 5090, 50, 2106, 2, 508, 650, 5113, 10, 0, 0, 0, 0, 4155, 1); -REPLACE INTO mob_db VALUES(1300, "CATERPILLAR", "Caterpillar", "Caterpillar", 84, 5555, 0, 1312, 1487, 1, 270, 313, 100, 42, 58, 37, 51, 50, 45, 45, 10, 12, 0, 4, 22, 0x3795, 300, 1672, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 949, 3000, 7054, 5335, 13034, 20, 1000, 100, 997, 50, 505, 12, 508, 500, 0, 0, 0, 0, 4289, 1); -REPLACE INTO mob_db VALUES(1301, "AM_MUT", "Am Mut", "Am Mut", 76, 3530, 0, 945, 1067, 1, 342, 391, 90, 42, 58, 44, 40, 35, 67, 45, 10, 12, 0, 6, 27, 0x3795, 200, 1156, 456, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1021, 4550, 757, 250, 1517, 3, 969, 5, 2282, 1, 616, 1, 746, 250, 0, 0, 0, 0, 4245, 1); -REPLACE INTO mob_db VALUES(1302, "DARK_ILLUSION", "Dark Illusion", "Dark Illusion", 96, 29255, 0, 4091, 4099, 2, 666, 726, 145, 60, 82, 36, 55, 100, 102, 88, 10, 12, 2, 6, 89, 0x37B5, 145, 1024, 768, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1615, 3, 5017, 2, 2508, 3, 7054, 5335, 522, 120, 509, 1550, 1162, 2, 0, 0, 0, 0, 4169, 1); -REPLACE INTO mob_db VALUES(1303, "GIANT_HONET", "Giant Hornet", "Giant Hornet", 82, 3960, 0, 1080, 1215, 1, 275, 328, 80, 43, 70, 45, 47, 32, 62, 34, 10, 12, 0, 4, 24, 0x3795, 155, 1292, 792, 340, 0, 0, 0, 0, 0, 0, 0, 0, 526, 550, 518, 1200, 522, 12, 610, 15, 1608, 3, 722, 20, 1736, 15, 0, 0, 0, 0, 4271, 1); -REPLACE INTO mob_db VALUES(1304, "GIANT_SPIDER", "Giant Spider", "Giant Spider", 85, 4680, 0, 1242, 1418, 1, 298, 350, 86, 38, 71, 58, 43, 38, 61, 41, 10, 12, 2, 4, 25, 0x3795, 165, 1468, 468, 768, 0, 0, 0, 0, 0, 0, 0, 0, 1025, 4550, 1042, 1200, 757, 140, 525, 450, 943, 1200, 1096, 680, 7053, 800, 0, 0, 0, 0, 4270, 1); -REPLACE INTO mob_db VALUES(1305, "ANCIENT_WORM", "Ancient Worm", "Ancient Worm", 83, 4140, 0, 1139, 1283, 1, 299, 334, 90, 41, 70, 56, 56, 55, 70, 42, 10, 12, 2, 4, 25, 0x3795, 165, 1792, 792, 336, 0, 0, 0, 0, 0, 0, 0, 0, 1042, 4413, 912, 2500, 2406, 9, 2727, 5, 1096, 680, 938, 3500, 7054, 2500, 0, 0, 0, 0, 4249, 1); -REPLACE INTO mob_db VALUES(1306, "LEIB_OLMAI", "Leib Olmai", "Leib Olmai", 87, 6050, 0, 1314, 1485, 1, 299, 363, 127, 31, 72, 35, 80, 35, 64, 27, 10, 12, 2, 2, 22, 0x3695, 175, 1260, 230, 192, 0, 0, 0, 0, 0, 0, 0, 0, 948, 4550, 2289, 8, 740, 120, 518, 500, 2717, 5, 969, 5, 7053, 800, 0, 0, 0, 0, 4188, 1); -REPLACE INTO mob_db VALUES(1307, "CAT_O_NINE_TAIL", "Cat o\' Nine Tails", "Cat o\' Nine Tails", 79, 23600, 0, 4148, 5792, 1, 467, 547, 100, 50, 72, 75, 40, 50, 79, 48, 10, 12, 1, 6, 63, 0x37B5, 155, 1276, 576, 288, 0, 0, 0, 0, 0, 0, 0, 0, 5008, 1, 638, 150, 10008, 5, 985, 600, 984, 800, 969, 6, 617, 1, 0, 0, 0, 0, 4290, 1); -REPLACE INTO mob_db VALUES(1308, "PANZER_GOBLIN", "Panzer Goblin", "Panzer Goblin", 52, 1471, 1, 446, 504, 1, 122, 180, 60, 25, 52, 60, 35, 35, 68, 31, 10, 12, 1, 7, 44, 0x3695, 200, 960, 1008, 840, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 4413, 7054, 3500, 999, 180, 998, 360, 1003, 580, 13158, 5, 994, 160, 0, 0, 0, 0, 4310, 1); -REPLACE INTO mob_db VALUES(1309, "GAJOMART", "Gajomart", "Gajomart", 81, 3825, 0, 1317, 1490, 1, 355, 412, 98, 50, 77, 47, 39, 33, 78, 40, 10, 12, 0, 0, 83, 0x3695, 300, 1000, 1152, 828, 0, 0, 0, 0, 0, 0, 0, 0, 953, 6500, 912, 2300, 508, 870, 2279, 8, 1752, 10000, 2131, 20, 994, 180, 0, 0, 0, 0, 4151, 1); -REPLACE INTO mob_db VALUES(1310, "MAJORUROS", "Majoruros", "Majoruros", 107, 11801, 1, 3090, 2200, 1, 654, 1086, 111, 25, 112, 58, 65, 55, 72, 49, 10, 12, 2, 2, 43, 0x3695, 250, 1100, 960, 780, 0, 0, 0, 0, 0, 0, 0, 0, 941, 4413, 1361, 4, 6254, 300, 984, 16, 509, 1850, 2611, 160, 1000, 250, 0, 0, 0, 0, 4201, 1); -REPLACE INTO mob_db VALUES(1311, "GULLINBURSTI", "Gullinbursti", "Gullinbursti", 89, 7080, 0, 1478, 1677, 1, 371, 419, 108, 43, 88, 54, 82, 35, 63, 15, 10, 12, 2, 2, 42, 0x3695, 150, 1960, 960, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 3500, 514, 290, 702, 6, 2276, 1, 605, 15, 2627, 1, 912, 160, 0, 0, 0, 0, 4164, 1); -REPLACE INTO mob_db VALUES(1312, "TURTLE_GENERAL", "Turtle General", "Turtle General", 110, 1442000, 1, 933120, 748440, 2, 2438, 4504, 394, 123, 116, 123, 154, 99, 181, 98, 10, 12, 2, 2, 42, 0x37B5, 200, 900, 1000, 500, 466560, 10000, 967, 5500, 607, 1500, 617, 2000, 1529, 8, 1306, 5, 7480, 200, 1417, 9, 7070, 5335, 1141, 80, 658, 1, 0, 0, 0, 0, 4305, 1); -REPLACE INTO mob_db VALUES(1313, "MOBSTER", "Mobster", "Mobster", 58, 2253, 1, 495, 557, 1, 149, 172, 87, 18, 72, 36, 33, 21, 41, 5, 10, 12, 1, 7, 20, 0x3695, 250, 1100, 560, 580, 0, 0, 0, 0, 0, 0, 0, 0, 1239, 3, 726, 4559, 2621, 1, 6264, 500, 912, 2500, 525, 450, 6265, 500, 0, 0, 0, 0, 4317, 1); -REPLACE INTO mob_db VALUES(1314, "PERMETER", "Permeter", "Permeter", 90, 6575, 1, 1305, 1467, 2, 265, 321, 144, 50, 68, 28, 55, 40, 42, 25, 10, 12, 1, 2, 40, 0x91, 250, 1100, 483, 528, 0, 0, 0, 0, 0, 0, 0, 0, 967, 4413, 6263, 200, 7939, 100, 507, 2450, 912, 1240, 522, 25, 605, 1, 0, 0, 0, 0, 4311, 1); -REPLACE INTO mob_db VALUES(1315, "ASSULTER", "Assaulter", "Assaulter", 100, 8977, 1, 1992, 1779, 2, 405, 472, 169, 49, 100, 92, 30, 20, 103, 15, 10, 12, 1, 7, 44, 0x3695, 200, 512, 780, 504, 0, 0, 0, 0, 0, 0, 0, 0, 967, 4413, 7069, 1200, 7072, 840, 6214, 200, 912, 1240, 13300, 5, 603, 1, 0, 0, 0, 0, 4246, 1); -REPLACE INTO mob_db VALUES(1316, "SOLIDER", "Solider", "Solider", 92, 8768, 1, 1487, 1671, 2, 282, 322, 206, 58, 65, 44, 60, 15, 47, 20, 10, 12, 1, 2, 42, 0x91, 250, 1452, 483, 528, 0, 0, 0, 0, 0, 0, 0, 0, 967, 4413, 7070, 64, 7067, 850, 508, 2100, 912, 1240, 518, 850, 1519, 1, 0, 0, 0, 0, 4220, 1); -REPLACE INTO mob_db VALUES(1317, "FUR_SEAL", "Fur Seal", "Seal", 47, 1371, 1, 360, 405, 1, 87, 127, 42, 16, 37, 40, 30, 39, 35, 19, 10, 12, 1, 2, 21, 0x3885, 200, 1612, 622, 583, 0, 0, 0, 0, 0, 0, 0, 0, 912, 4365, 510, 250, 2310, 5, 7053, 1200, 1452, 1, 525, 200, 746, 120, 0, 0, 0, 0, 4312, 1); -REPLACE INTO mob_db VALUES(1318, "HEATER", "Heater", "Heater", 98, 8180, 1, 1893, 1611, 2, 511, 590, 199, 50, 89, 49, 50, 30, 88, 35, 10, 12, 1, 2, 43, 0x3695, 250, 1452, 483, 528, 0, 0, 0, 0, 0, 0, 0, 0, 967, 4413, 7070, 750, 697, 100, 6244, 1000, 526, 140, 7054, 600, 7068, 1250, 0, 0, 0, 0, 4331, 1); -REPLACE INTO mob_db VALUES(1319, "FREEZER", "Freezer", "Freezer", 94, 9990, 1, 1555, 1749, 2, 388, 438, 127, 38, 68, 47, 50, 45, 55, 25, 10, 12, 1, 2, 41, 0x3695, 170, 1260, 960, 672, 0, 0, 0, 0, 0, 0, 0, 0, 967, 4413, 7070, 850, 7066, 1250, 912, 1800, 526, 160, 6256, 200, 689, 100, 0, 0, 0, 0, 4319, 1); -REPLACE INTO mob_db VALUES(1320, "OWL_DUKE", "Owl Duke", "Owl Duke", 92, 7381, 1, 1377, 1953, 1, 480, 680, 80, 45, 54, 51, 45, 88, 88, 50, 10, 12, 2, 6, 60, 0x37B5, 195, 1345, 824, 440, 0, 0, 0, 0, 0, 0, 0, 0, 7071, 4413, 7063, 1500, 693, 100, 747, 1, 1451, 3, 1513, 2, 5045, 1, 0, 0, 0, 0, 4237, 1); -REPLACE INTO mob_db VALUES(1321, "DRAGON_TAIL", "Dragon Tail", "Dragon Tail", 86, 4680, 1, 1264, 1422, 1, 182, 217, 63, 25, 61, 65, 35, 40, 52, 20, 10, 12, 1, 4, 44, 0x3795, 175, 862, 534, 312, 0, 0, 0, 0, 0, 0, 0, 0, 7064, 4413, 1096, 400, 943, 800, 2207, 8, 2226, 2, 601, 300, 602, 150, 0, 0, 0, 0, 4178, 1); -REPLACE INTO mob_db VALUES(1322, "SPRING_RABBIT", "Spring Rabbit", "Spring Rabbit", 88, 6684, 1, 1341, 1509, 1, 288, 328, 108, 42, 68, 66, 35, 30, 48, 5, 10, 12, 1, 2, 42, 0x83, 160, 1120, 552, 511, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 3500, 7053, 2500, 949, 2500, 511, 4500, 508, 800, 510, 200, 509, 800, 0, 0, 0, 0, 4227, 1); -REPLACE INTO mob_db VALUES(1323, "SEE_OTTER", "Sea Otter", "Sea Otter", 48, 1820, 1, 428, 480, 1, 83, 125, 31, 18, 32, 26, 33, 26, 41, 28, 10, 12, 1, 2, 61, 0x3885, 190, 1132, 583, 532, 0, 0, 0, 0, 0, 0, 0, 0, 722, 150, 965, 5500, 7065, 4365, 725, 50, 726, 50, 746, 650, 7053, 1200, 0, 0, 0, 0, 4326, 1); -REPLACE INTO mob_db VALUES(1324, "TREASURE_BOX1", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1325, "TREASURE_BOX2", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7073, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 1239, 1500, 5027, 75, 1165, 8, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1326, "TREASURE_BOX3", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1327, "TREASURE_BOX4", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7074, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2108, 1000, 1306, 75, 5022, 2, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1328, "TREASURE_BOX5", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1329, "TREASURE_BOX6", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7075, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2102, 834, 5019, 100, 5002, 9, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1330, "TREASURE_BOX7", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1331, "TREASURE_BOX8", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7076, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2616, 500, 2334, 125, 2622, 9, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1332, "TREASURE_BOX9", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1333, "TREASURE_BOX10", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7077, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2104, 500, 2331, 150, 2623, 10, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1334, "TREASURE_BOX11", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1335, "TREASURE_BOX12", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7078, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2270, 500, 1716, 150, 2256, 10, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1336, "TREASURE_BOX13", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1337, "TREASURE_BOX14", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7079, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 1238, 375, 1531, 150, 2318, 10, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1338, "TREASURE_BOX15", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1339, "TREASURE_BOX16", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7080, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2626, 300, 1472, 167, 2327, 10, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1340, "TREASURE_BOX17", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1341, "TREASURE_BOX18", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7081, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 1143, 250, 1237, 188, 2235, 12, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1342, "TREASURE_BOX19", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1343, "TREASURE_BOX20", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7082, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 617, 250, 1144, 188, 5007, 19, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1344, "TREASURE_BOX21", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1345, "TREASURE_BOX22", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7083, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2508, 1000, 2336, 69, 2621, 20, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1346, "TREASURE_BOX23", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1347, "TREASURE_BOX24", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7084, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2106, 1000, 1164, 50, 5025, 24, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1348, "TREASURE_BOX25", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1349, "TREASURE_BOX26", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7085, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2231, 750, 2624, 46, 2286, 25, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1350, "TREASURE_BOX27", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1351, "TREASURE_BOX28", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7086, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2283, 500, 2615, 41, 2234, 32, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1352, "TREASURE_BOX29", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1353, "TREASURE_BOX30", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7087, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2507, 500, 2625, 38, 5045, 34, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1354, "TREASURE_BOX31", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1355, "TREASURE_BOX32", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7088, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2407, 429, 2269, 250, 2317, 35, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1356, "TREASURE_BOX33", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1357, "TREASURE_BOX34", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7089, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2109, 300, 2406, 273, 2258, 38, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1358, "TREASURE_BOX35", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1359, "TREASURE_BOX36", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7090, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 1142, 215, 2255, 60, 5017, 38, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1360, "TREASURE_BOX37", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1361, "TREASURE_BOX38", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7091, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 1417, 50, 5053, 50, 2229, 50, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1362, "TREASURE_BOX39", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 7760, 608, 3000, 607, 2500, 2504, 800, 2404, 800, 2315, 800, 2104, 800, 616, 1000, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1363, "TREASURE_BOX40", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7092, 80, 658, 500, 604, 10000, 984, 4850, 985, 7275, 2506, 43, 2254, 43, 1529, 38, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1364, "G_ASSULTER", "Assaulter", "Assaulter", 98, 7798, 1, 0, 0, 2, 225, 292, 83, 49, 100, 86, 30, 20, 82, 15, 10, 12, 1, 6, 44, 0x3795, 155, 1000, 900, 432, 0, 0, 0, 0, 0, 0, 0, 0, 1019, 9000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1365, "APOCALIPS", "Apocalypse", "Apocalypse", 121, 22090, 1, 3042, 2282, 2, 752, 868, 136, 26, 130, 53, 76, 25, 89, 15, 10, 12, 2, 0, 60, 0x91, 400, 1840, 1440, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7095, 5335, 7094, 2400, 7093, 2200, 985, 5, 13161, 1, 2506, 20, 12735, 100, 0, 0, 0, 0, 4242, 1); -REPLACE INTO mob_db VALUES(1366, "LAVA_GOLEM", "Lava Golem", "Lava Golem", 103, 8452, 1, 2232, 1674, 1, 598, 651, 299, 27, 126, 42, 103, 28, 77, 15, 10, 12, 2, 0, 83, 0x3095, 400, 2190, 2040, 336, 0, 0, 0, 0, 0, 0, 0, 0, 7096, 4559, 7097, 3686, 2317, 1, 2316, 2, 509, 2500, 1818, 20, 6245, 500, 0, 0, 0, 0, 4184, 1); -REPLACE INTO mob_db VALUES(1367, "BLAZZER", "Blazer", "Blazer", 101, 8121, 1, 1827, 1371, 2, 461, 555, 116, 60, 99, 75, 55, 70, 60, 65, 10, 12, 1, 6, 43, 0x3395, 180, 1732, 1332, 540, 0, 0, 0, 0, 0, 0, 0, 0, 7097, 4850, 7098, 3400, 509, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4215, 1); -REPLACE INTO mob_db VALUES(1368, "GEOGRAPHER", "Geographer", "Geographer", 73, 3866, 1, 898, 1010, 3, 281, 363, 158, 42, 81, 26, 35, 56, 60, 60, 10, 12, 1, 3, 62, 0x84, 2000, 1308, 1008, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1032, 6200, 1033, 5500, 2253, 30, 2207, 50, 12002, 100, 0, 0, 0, 0, 0, 0, 0, 0, 4280, 1); -REPLACE INTO mob_db VALUES(1369, "GRAND_PECO", "Grand Peco", "Grand Peco", 75, 3150, 1, 887, 998, 2, 316, 372, 95, 30, 63, 45, 50, 23, 51, 25, 10, 12, 2, 2, 43, 0x1089, 165, 1460, 960, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7101, 4850, 522, 300, 992, 1000, 969, 1, 0, 0, 0, 0, 582, 500, 0, 0, 0, 0, 4161, 1); -REPLACE INTO mob_db VALUES(1370, "SUCCUBUS", "Succubus", "Succubus", 119, 24960, 1, 3924, 3489, 2, 670, 864, 76, 48, 100, 64, 45, 80, 82, 85, 10, 12, 1, 6, 67, 0x3795, 155, 1306, 1056, 288, 0, 0, 0, 0, 0, 0, 0, 0, 522, 1500, 2407, 3, 12373, 1, 2613, 250, 5066, 1, 1472, 1, 505, 1000, 0, 0, 0, 0, 4218, 1); -REPLACE INTO mob_db VALUES(1371, "FAKE_ANGEL", "Fake Angel", "False Angel", 105, 10988, 1, 2100, 1570, 2, 505, 640, 106, 84, 112, 67, 43, 81, 68, 80, 10, 12, 0, 8, 66, 0x3885, 160, 920, 720, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 717, 1000, 715, 1000, 716, 1000, 12020, 1000, 1974, 20, 0, 0, 0, 0, 4316, 1); -REPLACE INTO mob_db VALUES(1372, "GOAT", "Goat", "Goat", 80, 3980, 1, 1065, 1197, 1, 387, 447, 95, 43, 61, 40, 48, 40, 65, 31, 10, 12, 1, 2, 63, 0x1089, 165, 1380, 1080, 336, 0, 0, 0, 0, 0, 0, 0, 0, 7106, 4559, 7107, 2500, 713, 5000, 507, 500, 510, 1000, 508, 2500, 511, 5500, 0, 0, 0, 0, 4150, 1); -REPLACE INTO mob_db VALUES(1373, "LORD_OF_DEATH", "Lord of Death", "Lord of the Dead", 94, 603883, 1, 437121, 345252, 3, 4116, 5078, 336, 73, 140, 99, 30, 109, 100, 90, 10, 12, 2, 6, 67, 0x37B5, 180, 1446, 1296, 360, 218560, 10000, 607, 5500, 732, 5000, 617, 5000, 7108, 5335, 1417, 5, 1230, 10, 2621, 2, 7109, 10, 1306, 1, 1529, 2, 0, 0, 0, 0, 4276, 1); -REPLACE INTO mob_db VALUES(1374, "INCUBUS", "Incubus", "Incubus", 120, 28000, 1, 3928, 3646, 2, 683, 858, 72, 46, 120, 56, 52, 75, 99, 70, 10, 12, 1, 6, 67, 0x3795, 165, 850, 600, 336, 0, 0, 0, 0, 0, 0, 0, 0, 522, 1500, 509, 5500, 5072, 1, 2621, 1, 2610, 500, 2613, 150, 509, 2200, 0, 0, 0, 0, 4269, 1); -REPLACE INTO mob_db VALUES(1375, "THE_PAPER", "The Paper", "The Paper", 97, 8500, 1, 1530, 1148, 1, 280, 390, 32, 39, 77, 49, 30, 5, 61, 5, 10, 12, 1, 0, 60, 0x3885, 350, 720, 864, 504, 0, 0, 0, 0, 0, 0, 0, 0, 7111, 4947, 7112, 3200, 508, 1800, 511, 2000, 13009, 5, 0, 0, 0, 0, 0, 0, 0, 0, 4172, 1); -REPLACE INTO mob_db VALUES(1376, "HARPY", "Harpy", "Harpy", 83, 4423, 1, 1201, 1349, 1, 282, 323, 69, 44, 71, 39, 50, 31, 96, 12, 10, 12, 1, 6, 64, 0x3985, 155, 972, 672, 470, 0, 0, 0, 0, 0, 0, 0, 0, 7115, 4850, 7116, 2500, 508, 1500, 508, 800, 709, 20, 1820, 20, 0, 0, 0, 0, 0, 0, 4325, 1); -REPLACE INTO mob_db VALUES(1377, "ELDER", "Elder", "Elder", 92, 7341, 1, 1377, 2898, 3, 276, 678, 72, 41, 67, 63, 35, 99, 88, 61, 10, 12, 2, 7, 80, 0x3885, 165, 1552, 1152, 336, 0, 0, 0, 0, 0, 0, 0, 0, 7099, 4000, 7117, 1500, 7939, 1000, 1564, 10, 1473, 1, 616, 1, 7027, 3000, 0, 0, 0, 0, 4251, 1); -REPLACE INTO mob_db VALUES(1378, "DEMON_PUNGUS", "Demon Pungus", "Demon Pungus", 91, 6466, 1, 1350, 1520, 1, 428, 493, 80, 52, 63, 61, 30, 38, 79, 43, 10, 12, 0, 6, 65, 0x3985, 170, 1260, 960, 672, 0, 0, 0, 0, 0, 0, 0, 0, 7119, 4074, 7001, 4559, 715, 3880, 1061, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4173, 1); -REPLACE INTO mob_db VALUES(1379, "NIGHTMARE_TERROR", "Nightmare Terror", "Nightmare Terror", 107, 13289, 1, 2443, 1832, 1, 629, 755, 78, 37, 118, 53, 55, 63, 88, 43, 10, 12, 2, 6, 67, 0x3985, 165, 1216, 816, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7120, 4947, 2626, 1, 2608, 30, 505, 50, 510, 150, 695, 100, 1261, 1, 0, 0, 0, 0, 4166, 1); -REPLACE INTO mob_db VALUES(1380, "DRILLER", "Driller", "Driller", 65, 2719, 1, 594, 669, 1, 181, 212, 96, 18, 62, 50, 25, 15, 48, 5, 10, 12, 1, 2, 22, 0x3885, 165, 1300, 900, 336, 0, 0, 0, 0, 0, 0, 0, 0, 1012, 7500, 715, 3880, 716, 3500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4180, 1); -REPLACE INTO mob_db VALUES(1381, "GRIZZLY", "Grizzly", "Grizzly", 66, 2241, 1, 731, 822, 1, 254, 267, 109, 2, 60, 26, 44, 3, 78, 15, 10, 12, 2, 2, 63, 0x3885, 165, 1492, 1092, 192, 0, 0, 0, 0, 0, 0, 0, 0, 948, 5000, 919, 5000, 549, 2500, 2353, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4162, 1); -REPLACE INTO mob_db VALUES(1382, "DIABOLIC", "Diabolic", "Diabolic", 104, 10572, 1, 2172, 1629, 1, 544, 644, 68, 61, 103, 80, 53, 65, 78, 25, 10, 12, 0, 6, 47, 0x3985, 150, 1080, 780, 180, 0, 0, 0, 0, 0, 0, 0, 0, 1038, 5820, 1039, 4850, 2605, 3, 984, 20, 1263, 10, 0, 0, 0, 0, 0, 0, 0, 0, 4182, 1); -REPLACE INTO mob_db VALUES(1383, "EXPLOSION", "Explosion", "Explosion", 100, 7813, 1, 1900, 1425, 1, 481, 591, 112, 50, 91, 51, 63, 50, 65, 60, 10, 12, 0, 2, 63, 0x3885, 165, 1260, 960, 336, 0, 0, 0, 0, 0, 0, 0, 0, 7006, 5500, 7097, 2200, 7122, 3200, 756, 800, 522, 400, 0, 0, 0, 0, 0, 0, 0, 0, 4267, 1); -REPLACE INTO mob_db VALUES(1384, "DELETER", "Deleter", "Deleter", 105, 10000, 1, 2099, 1574, 1, 502, 581, 111, 53, 105, 55, 53, 68, 67, 73, 10, 12, 1, 9, 43, 0x308D, 175, 1020, 720, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7123, 4074, 1035, 5335, 1037, 3880, 1036, 3589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4158, 1); -REPLACE INTO mob_db VALUES(1385, "DELETER_", "Deleter", "Deleter", 105, 10000, 1, 2099, 1574, 1, 510, 621, 114, 53, 98, 65, 49, 72, 57, 73, 10, 12, 1, 9, 43, 0x308D, 175, 1024, 624, 336, 0, 0, 0, 0, 0, 0, 0, 0, 7123, 4074, 1035, 5335, 1037, 3880, 1036, 3589, 2114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 4279, 1); -REPLACE INTO mob_db VALUES(1386, "SLEEPER", "Sleeper", "Sleeper", 81, 5160, 1, 1034, 1160, 1, 274, 322, 101, 29, 74, 41, 57, 27, 54, 27, 10, 12, 1, 0, 42, 0x3885, 195, 1350, 1200, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7124, 4947, 1056, 5335, 997, 2500, 756, 300, 1226, 5, 1622, 5, 7043, 1200, 0, 0, 0, 0, 4228, 1); -REPLACE INTO mob_db VALUES(1387, "GIG", "Gig", "Gig", 100, 8721, 1, 1769, 1327, 1, 476, 599, 104, 53, 92, 66, 60, 48, 60, 50, 10, 12, 0, 2, 43, 0x3885, 170, 1264, 864, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7125, 4365, 904, 5500, 716, 150, 525, 2500, 994, 850, 0, 0, 0, 0, 0, 0, 0, 0, 4165, 1); -REPLACE INTO mob_db VALUES(1388, "ARCHANGELING", "Archangeling", "Arc Angeling", 84, 25100, 1, 3253, 2910, 1, 539, 639, 92, 81, 32, 48, 62, 99, 99, 105, 10, 12, 1, 8, 66, 0x37B5, 180, 1072, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 2255, 5, 610, 1800, 608, 150, 7291, 1500, 2254, 5, 2317, 3, 7294, 1500, 0, 0, 0, 0, 4241, 1); -REPLACE INTO mob_db VALUES(1389, "DRACULA", "Dracula", "Dracula", 75, 350000, 1, 312480, 245520, 3, 1322, 3134, 152, 146, 86, 99, 88, 92, 145, 82, 10, 12, 2, 6, 87, 0x37B5, 145, 1290, 1140, 576, 156240, 10000, 607, 5500, 732, 5000, 522, 5000, 607, 4700, 1473, 5, 1722, 5, 2507, 15, 2621, 4, 1557, 4, 0, 0, 0, 0, 0, 0, 4134, 1); -REPLACE INTO mob_db VALUES(1390, "VIOLY", "Violy", "Violy", 118, 20557, 1, 2862, 2147, 10, 548, 668, 74, 36, 90, 86, 38, 76, 90, 63, 10, 12, 1, 7, 40, 0x2085, 170, 1356, 1056, 540, 0, 0, 0, 0, 0, 0, 0, 0, 1060, 6305, 12127, 50, 740, 1200, 1919, 50, 526, 1400, 12020, 1000, 1902, 500, 0, 0, 0, 0, 4209, 1); -REPLACE INTO mob_db VALUES(1391, "GALAPAGO", "Galapago", "Galapago", 45, 1221, 1, 342, 386, 1, 68, 103, 70, 16, 30, 28, 29, 18, 30, 16, 10, 12, 0, 2, 22, 0x108B, 165, 1430, 1080, 1080, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 5335, 6263, 500, 508, 3500, 606, 100, 6264, 500, 5111, 1, 582, 1000, 0, 0, 0, 0, 4152, 1); -REPLACE INTO mob_db VALUES(1392, "ROTAR_ZAIRO", "Rotar Zairo", "Rotar Zairo", 48, 1088, 1, 399, 449, 10, 75, 115, 57, 34, 29, 70, 45, 26, 61, 5, 10, 12, 2, 0, 44, 0x2085, 155, 2416, 2016, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7126, 500, 2312, 1, 7053, 1000, 999, 450, 984, 1, 912, 2500, 910, 5500, 0, 0, 0, 0, 4192, 1); -REPLACE INTO mob_db VALUES(1393, "G_MUMMY", "Mummy", "Mummy", 55, 2155, 1, 0, 0, 1, 171, 192, 95, 3, 54, 4, 14, 1, 62, 0, 10, 12, 1, 1, 49, 0x3885, 300, 1772, 72, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1394, "G_ZOMBIE", "Zombie", "Zombie", 17, 234, 1, 0, 0, 1, 43, 55, 20, 3, 15, 8, 17, 0, 15, 0, 10, 12, 1, 1, 29, 0x3885, 400, 2612, 912, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1395, "CRYSTAL_1", "Wind Crystal", "Wind Crystal", 1, 15, 1, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x161, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 3800, 530, 4500, 561, 5000, 665, 4900, 0, 0, 532, 6500, 558, 5000, 0, 0, 0, 0, 607, 100); -REPLACE INTO mob_db VALUES(1396, "CRYSTAL_2", "Earth Crystal", "Earth Crystal", 1, 15, 1, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x161, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 3800, 530, 4500, 561, 5000, 667, 4900, 0, 0, 531, 6500, 558, 5000, 0, 0, 0, 0, 608, 150); -REPLACE INTO mob_db VALUES(1397, "CRYSTAL_3", "Fire Crystal", "Fire Crystal", 1, 15, 1, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x161, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 3800, 530, 4500, 561, 5000, 664, 4900, 0, 0, 534, 6500, 558, 5000, 0, 0, 0, 0, 604, 150); -REPLACE INTO mob_db VALUES(1398, "CRYSTAL_4", "Water Crystal", "Water Crystal", 1, 15, 1, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x161, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 3800, 530, 4500, 561, 5000, 666, 4900, 0, 0, 533, 6500, 558, 5000, 0, 0, 0, 0, 603, 100); -REPLACE INTO mob_db VALUES(1399, "EVENT_BAPHO", "Baphomet", "Baphomet", 68, 1264000, 0, 78525, 25106, 3, 1847, 2267, 35, 45, 1, 152, 96, 85, 120, 95, 10, 12, 2, 6, 67, 0x37B5, 130, 768, 768, 576, 130875, 10000, 607, 5500, 526, 5000, 732, 5000, 1417, 550, 1306, 680, 1145, 480, 2110, 640, 2327, 1500, 2111, 500, 2621, 1720, 0, 0, 0, 0, 2256, 1550); -REPLACE INTO mob_db VALUES(1400, "KARAKASA", "Karakasa", "Karakasa", 72, 3092, 1, 765, 860, 1, 156, 198, 93, 29, 66, 73, 33, 20, 53, 60, 10, 12, 1, 0, 60, 0x81, 155, 1638, 2016, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7151, 5000, 7150, 4268, 1019, 3200, 7111, 2200, 912, 4074, 746, 30, 13012, 5, 0, 0, 0, 0, 4286, 1); -REPLACE INTO mob_db VALUES(1401, "SHINOBI", "Shinobi", "Shinobi", 95, 8000, 1, 1691, 1902, 2, 441, 492, 49, 45, 71, 70, 55, 30, 69, 30, 10, 12, 1, 7, 67, 0x3695, 150, 1003, 1152, 336, 0, 0, 0, 0, 0, 0, 0, 0, 7156, 5335, 2337, 2, 6214, 700, 2654, 100, 2336, 1, 7157, 2000, 13013, 5, 0, 0, 0, 0, 4230, 1); -REPLACE INTO mob_db VALUES(1402, "POISON_TOAD", "Poison Toad", "Poison Toad", 87, 4876, 1, 1341, 1509, 3, 212, 266, 80, 42, 66, 42, 40, 45, 58, 30, 10, 12, 1, 2, 45, 0x81, 160, 1148, 1728, 864, 0, 0, 0, 0, 0, 0, 0, 0, 7155, 5500, 7154, 2400, 2610, 4, 511, 540, 724, 2, 526, 2, 1246, 10, 0, 0, 0, 0, 4175, 1); -REPLACE INTO mob_db VALUES(1403, "ANTIQUE_FIRELOCK", "Antique Firelock", "Firelock Soldier", 88, 7524, 1, 1352, 1512, 10, 324, 369, 72, 30, 67, 44, 30, 30, 83, 30, 10, 12, 1, 1, 49, 0x2085, 170, 1084, 2304, 576, 0, 0, 0, 0, 0, 0, 0, 0, 998, 5500, 2285, 1, 7126, 1400, 508, 40, 549, 350, 525, 250, 13152, 5, 0, 0, 0, 0, 4160, 1); -REPLACE INTO mob_db VALUES(1404, "MIYABI_NINGYO", "Miyabi Ningyo", "Miyabi Doll", 85, 5188, 1, 1116, 1256, 1, 216, 282, 57, 19, 66, 30, 30, 55, 73, 40, 10, 12, 1, 6, 27, 0x191, 250, 1938, 2112, 768, 0, 0, 0, 0, 0, 0, 0, 0, 7152, 5335, 7153, 2500, 509, 1550, 1000, 1250, 12127, 10, 13014, 5, 1904, 2, 0, 0, 0, 0, 4208, 1); -REPLACE INTO mob_db VALUES(1405, "TENGU", "Tengu", "Tengu", 98, 10196, 1, 1701, 1275, 2, 211, 294, 134, 46, 99, 38, 40, 30, 67, 60, 10, 12, 2, 6, 42, 0x3985, 200, 1439, 1920, 672, 0, 0, 0, 0, 0, 0, 0, 0, 7159, 3500, 7158, 5500, 13301, 5, 522, 150, 13302, 5, 12128, 20, 687, 100, 0, 0, 0, 0, 4282, 1); -REPLACE INTO mob_db VALUES(1406, "KAPHA", "Kapha", "Kapha", 83, 5470, 1, 1035, 1164, 1, 278, 310, 61, 38, 67, 59, 40, 31, 61, 24, 10, 12, 1, 5, 21, 0x3885, 165, 2012, 1728, 672, 0, 0, 0, 0, 0, 0, 0, 0, 7149, 6500, 7053, 3500, 13304, 20, 521, 2300, 708, 2, 1915, 10, 13008, 5, 0, 0, 0, 0, 4287, 1); -# REPLACE INTO mob_db VALUES(1407, "DOKEBI_", "Dokebi", "Dokebi", 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1408, "BLOOD_BUTTERFLY", "Bloody Butterfly", "Bloody Butterfly", 94, 7030, 1, 1555, 1749, 3, 278, 345, 79, 50, 70, 68, 40, 55, 90, 30, 10, 12, 1, 4, 44, 0x318D, 145, 472, 576, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7163, 4608, 7168, 2500, 602, 1200, 924, 5500, 1802, 3, 1962, 1, 0, 0, 0, 0, 0, 0, 4327, 1); -REPLACE INTO mob_db VALUES(1409, "RICE_CAKE_BOY", "Rice Cake Boy", "Dumpling Child", 60, 2098, 1, 531, 597, 1, 128, 150, 96, 12, 50, 43, 29, 5, 43, 10, 10, 12, 0, 7, 20, 0x91, 160, 1247, 768, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7150, 3200, 7151, 2500, 2262, 1, 7192, 5000, 553, 1000, 7187, 3000, 0, 0, 0, 0, 0, 0, 4154, 1); -REPLACE INTO mob_db VALUES(1410, "LIVE_PEACH_TREE", "Live Peach Tree", "Enchanted Peach Tree", 92, 8777, 1, 1499, 1724, 7, 270, 342, 109, 40, 76, 52, 55, 40, 77, 50, 10, 12, 1, 3, 42, 0x2085, 410, 400, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7164, 4365, 7939, 100, 526, 1000, 604, 400, 532, 100, 603, 5, 0, 0, 0, 0, 0, 0, 4217, 1); -# REPLACE INTO mob_db VALUES(1411, "PEACH_TREE_BULLET", "Peach Tree Bullet", "Peach Tree Bullet... (mode 129)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1412, "EVIL_CLOUD_HERMIT", "Evil Cloud Hermit", "Taoist Hermit", 96, 8266, 1, 1503, 1127, 10, 470, 500, 66, 46, 63, 57, 45, 60, 99, 45, 10, 12, 2, 0, 40, 0x2085, 190, 480, 840, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7162, 4656, 548, 5600, 550, 4500, 553, 6800, 1908, 2, 757, 150, 693, 100, 0, 0, 0, 0, 4262, 1); -REPLACE INTO mob_db VALUES(1413, "WILD_GINSENG", "Wild Ginseng", "Hermit Plant", 90, 6052, 1, 1409, 1586, 1, 523, 594, 56, 62, 76, 51, 60, 60, 76, 50, 10, 12, 0, 3, 43, 0x91, 140, 512, 756, 360, 0, 0, 0, 0, 0, 0, 0, 0, 520, 3500, 521, 3500, 1033, 3800, 1032, 4800, 6217, 800, 1951, 1, 578, 1000, 0, 0, 0, 0, 4232, 1); -# REPLACE INTO mob_db VALUES(1414, "GINSENG_BULLET", "Ginseng Bullet", "Ginseng Bullet... (mode 129)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1415, "BABY_LEOPARD", "Baby Leopard", "Baby Leopard", 68, 2590, 1, 500, 1016, 2, 277, 329, 77, 5, 46, 36, 20, 4, 55, 10, 10, 12, 0, 2, 28, 0x3885, 150, 318, 528, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7171, 5200, 7172, 3200, 756, 150, 517, 2000, 1214, 100, 537, 500, 0, 0, 0, 0, 0, 0, 4233, 1); -REPLACE INTO mob_db VALUES(1416, "WICKED_NYMPH", "Wicked Nymph", "Evil Nymph", 97, 8491, 1, 1775, 1331, 2, 340, 468, 46, 45, 84, 46, 45, 70, 77, 60, 10, 12, 1, 6, 67, 0x3795, 200, 637, 1008, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7165, 3977, 7166, 1380, 984, 10, 1904, 4, 1906, 1, 12002, 100, 1918, 10, 0, 0, 0, 0, 4258, 1); -REPLACE INTO mob_db VALUES(1417, "ZIPPER_BEAR", "Zipper Bear", "Zipper Bear", 90, 6620, 1, 1305, 1467, 1, 410, 467, 130, 40, 68, 51, 50, 35, 58, 20, 10, 12, 1, 2, 27, 0x91, 155, 780, 1008, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7161, 4462, 7167, 3500, 526, 400, 518, 900, 512, 90, 0, 0, 0, 0, 0, 0, 0, 0, 4281, 1); -REPLACE INTO mob_db VALUES(1418, "DARK_SNAKE_LORD", "Evil Snake Lord", "Evil Snake Lord", 105, 1101000, 1, 720000, 630000, 3, 2217, 4203, 314, 185, 122, 172, 107, 135, 196, 88, 10, 12, 2, 2, 68, 0x37B5, 200, 588, 816, 420, 78120, 10000, 607, 5500, 608, 3500, 985, 5500, 7169, 5820, 10020, 5100, 1471, 80, 5012, 80, 1474, 500, 7226, 900, 661, 2000, 0, 0, 0, 0, 4330, 1); -REPLACE INTO mob_db VALUES(1419, "G_FARMILIAR", "Familiar", "Familiar", 24, 427, 1, 0, 0, 1, 68, 77, 26, 5, 15, 19, 20, 5, 20, 1, 10, 12, 0, 2, 27, 0x3885, 150, 1276, 576, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1420, "G_ARCHER_SKELETON", "Archer Skeleton", "Archer Skeleton", 50, 1646, 1, 0, 0, 9, 90, 113, 47, 10, 30, 29, 20, 10, 32, 5, 10, 12, 1, 1, 29, 0x3885, 300, 2864, 864, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1421, "G_ISIS", "Isis", "Isis", 59, 2092, 1, 0, 0, 1, 192, 229, 83, 5, 58, 43, 22, 5, 39, 15, 10, 12, 2, 6, 27, 0x3985, 200, 1384, 768, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1422, "G_HUNTER_FLY", "Hunter Fly", "Hunter Fly", 63, 2050, 1, 0, 0, 1, 120, 140, 46, 20, 32, 72, 22, 25, 79, 15, 10, 12, 0, 4, 44, 0x3985, 150, 676, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1423, "G_GHOUL", "Ghoul", "Ghoul", 61, 2614, 1, 0, 0, 1, 216, 245, 78, 5, 56, 12, 19, 11, 27, 10, 10, 12, 1, 1, 49, 0x3885, 250, 2456, 912, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1424, "G_SIDE_WINDER", "Side Winder", "Side Winder", 70, 2736, 1, 0, 0, 1, 301, 331, 101, 12, 52, 32, 35, 20, 66, 15, 10, 12, 1, 2, 25, 0x3885, 200, 1576, 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1425, "G_OBEAUNE", "Obeaune", "Obeaune", 53, 2158, 1, 0, 0, 1, 102, 147, 48, 26, 54, 47, 21, 40, 36, 25, 10, 12, 1, 5, 41, 0x3885, 200, 1872, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1426, "G_MARC", "Marc", "Marc", 56, 2522, 1, 0, 0, 1, 138, 163, 55, 24, 50, 24, 22, 15, 48, 20, 10, 12, 1, 5, 41, 0x3885, 150, 1272, 72, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1427, "G_NIGHTMARE", "Nightmare", "Nightmare", 69, 2872, 1, 0, 0, 1, 283, 345, 116, 15, 57, 32, 20, 15, 70, 15, 10, 12, 2, 6, 68, 0x3985, 150, 1816, 816, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1428, "G_POISON_SPORE", "Poison Spore", "Poison Spore", 26, 456, 1, 0, 0, 1, 68, 83, 40, 8, 19, 17, 22, 5, 20, 5, 10, 12, 1, 3, 25, 0x3885, 200, 1672, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1429, "G_ARGIOPE", "Argiope", "Argiope", 75, 3105, 1, 0, 0, 1, 292, 342, 88, 32, 60, 23, 40, 30, 20, 30, 10, 12, 2, 4, 25, 0x3985, 300, 1792, 792, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1430, "G_ARGOS", "Argos", "Argos", 47, 1005, 1, 0, 0, 1, 96, 129, 58, 8, 38, 17, 25, 5, 26, 15, 10, 12, 2, 4, 25, 0x3985, 300, 1468, 468, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1431, "G_BAPHOMET_", "Baphomet Jr.", "Baphomet Jr.", 57, 2035, 0, 0, 0, 1, 186, 219, 70, 25, 52, 60, 36, 17, 52, 25, 10, 12, 0, 6, 27, 0x3985, 100, 868, 480, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1432, "G_DESERT_WOLF", "Desert Wolf", "Desert Wolf", 103, 9447, 1, 0, 0, 1, 520, 579, 114, 47, 93, 69, 63, 61, 82, 42, 10, 12, 1, 2, 23, 0x3885, 200, 1120, 420, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1433, "G_DEVIRUCHI", "Deviruchi", "Deviruchi", 64, 2300, 1, 0, 0, 1, 210, 283, 62, 30, 61, 17, 30, 35, 52, 5, 10, 12, 0, 6, 27, 0x3985, 150, 980, 600, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1434, "G_DRAINLIAR", "Drainliar", "Drainliar", 47, 1162, 1, 0, 0, 1, 100, 142, 50, 15, 35, 34, 24, 22, 50, 20, 10, 12, 0, 2, 47, 0x3885, 250, 1276, 576, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1435, "G_EVIL_DRUID", "Evil Druid", "Evil Druid", 80, 5149, 1, 0, 0, 1, 344, 412, 88, 45, 62, 32, 24, 45, 71, 5, 10, 12, 2, 1, 89, 0x3885, 300, 2276, 576, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1436, "G_JAKK", "Jakk", "Jakk", 63, 2054, 1, 0, 0, 1, 218, 255, 90, 25, 58, 43, 42, 25, 55, 15, 10, 12, 1, 0, 43, 0x3885, 200, 1180, 480, 648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1437, "G_JOKER", "Joker", "Joker", 90, 6022, 1, 0, 0, 1, 288, 348, 64, 76, 84, 99, 30, 50, 77, 35, 10, 12, 2, 7, 84, 0x3885, 100, 1364, 864, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1438, "G_KHALITZBURG", "Khalitzburg", "Khalitzburg", 118, 23986, 1, 0, 0, 1, 737, 833, 125, 10, 121, 48, 40, 31, 89, 32, 10, 12, 2, 1, 29, 0x3885, 350, 528, 1000, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1439, "G_HIGH_ORC", "High Orc", "High Orc", 81, 4193, 1, 0, 0, 1, 389, 439, 101, 45, 75, 16, 40, 31, 69, 20, 10, 12, 2, 7, 43, 0x3885, 150, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1440, "G_STEM_WORM", "Stem Worm", "Stem Worm", 84, 4530, 1, 0, 0, 2, 266, 307, 73, 50, 55, 37, 25, 47, 70, 30, 10, 12, 1, 3, 24, 0x3885, 200, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1441, "G_PENOMENA", "Penomena", "Penomena", 85, 4589, 1, 0, 0, 7, 292, 333, 85, 32, 76, 38, 35, 35, 89, 10, 10, 12, 1, 5, 25, 0x3885, 400, 832, 500, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1442, "G_SASQUATCH", "Sasquatch", "Sasquatch", 72, 3163, 1, 0, 0, 1, 266, 296, 101, 28, 70, 35, 60, 10, 59, 20, 10, 12, 2, 2, 60, 0x3885, 300, 1260, 192, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1443, "G_CRUISER", "Cruiser", "Cruiser", 41, 919, 1, 0, 0, 7, 55, 75, 20, 18, 17, 10, 23, 15, 34, 10, 10, 12, 1, 0, 60, 0x3885, 400, 1296, 1296, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1444, "G_CHEPET", "Chepet", "Chepet", 42, 4950, 0, 0, 0, 1, 79, 112, 55, 25, 32, 35, 35, 21, 32, 23, 10, 12, 1, 7, 23, 0x3885, 400, 672, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1445, "G_RAGGLER", "Raggler", "Raggler", 48, 1148, 1, 0, 0, 1, 72, 111, 56, 10, 30, 42, 38, 15, 54, 27, 10, 12, 0, 2, 24, 0x3885, 200, 1000, 900, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1446, "G_INJUSTICE", "Injustice", "Injustice", 95, 7952, 1, 0, 0, 1, 344, 460, 76, 0, 77, 59, 58, 65, 73, 50, 10, 12, 1, 1, 47, 0x3885, 400, 770, 720, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1447, "G_GRYPHON", "Gryphon", "Gryphon", 105, 60720, 1, 0, 0, 1, 717, 820, 113, 72, 101, 133, 66, 70, 137, 54, 10, 12, 2, 2, 84, 0x39A5, 100, 704, 504, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1448, "G_DARK_FRAME", "Dark Frame", "Dark Frame", 76, 3520, 1, 0, 0, 1, 318, 348, 67, 27, 69, 37, 36, 10, 53, 5, 10, 12, 1, 6, 67, 0x3985, 200, 920, 720, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1449, "G_MUTANT_DRAGON", "Mutant Dragon", "Mutant Dragonoid", 65, 50706, 1, 0, 0, 4, 1120, 1654, 130, 20, 75, 35, 30, 68, 98, 35, 10, 12, 2, 9, 43, 0x39A5, 250, 1280, 1080, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1450, "G_WIND_GHOST", "Wind Ghost", "Wind Ghost", 80, 4008, 1, 0, 0, 2, 165, 260, 64, 51, 62, 27, 25, 55, 85, 20, 10, 12, 1, 6, 64, 0x3985, 150, 1056, 1056, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1451, "G_MERMAN", "Merman", "Merman", 60, 2940, 1, 0, 0, 2, 125, 157, 62, 8, 45, 29, 30, 19, 50, 10, 10, 12, 1, 7, 41, 0x3885, 220, 916, 816, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1452, "G_ORC_LADY", "Orc Lady", "Orc Lady", 45, 1520, 1, 0, 0, 1, 77, 110, 83, 17, 36, 11, 28, 10, 57, 5, 10, 12, 1, 7, 42, 0x3885, 200, 1050, 900, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1453, "G_RAYDRIC_ARCHER", "Raydric Archer", "Raydric Archer", 82, 4437, 1, 0, 0, 9, 377, 395, 63, 40, 53, 24, 40, 15, 112, 30, 10, 12, 1, 6, 47, 0x3985, 200, 1152, 1152, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1454, "G_TRI_JOINT", "Tri Joint", "Tri Joint", 66, 2530, 0, 0, 0, 1, 178, 206, 22, 5, 1, 33, 24, 10, 55, 20, 10, 12, 0, 4, 22, 0x3985, 200, 860, 660, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1455, "G_KOBOLD_ARCHER", "Kobold Archer", "Kobold Archer", 108, 11053, 1, 0, 0, 9, 586, 619, 84, 5, 99, 39, 48, 30, 90, 25, 10, 12, 0, 7, 23, 0x3885, 200, 1008, 1008, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1456, "G_CHIMERA", "Chimera", "Chimera", 70, 26406, 1, 0, 0, 1, 980, 1128, 159, 10, 1, 38, 110, 88, 83, 85, 10, 12, 2, 2, 63, 0x39A5, 200, 772, 672, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1457, "G_MANTIS", "Mantis", "Mantis", 65, 2719, 1, 0, 0, 1, 178, 209, 90, 0, 55, 33, 24, 5, 42, 15, 10, 12, 1, 4, 22, 0x3985, 200, 1528, 660, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1458, "G_MARDUK", "Marduk", "Marduk", 73, 2893, 1, 0, 0, 1, 180, 292, 66, 43, 66, 49, 21, 40, 66, 25, 10, 12, 2, 7, 23, 0x3885, 300, 1540, 840, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1459, "G_MARIONETTE", "Marionette", "Marionette", 62, 2209, 1, 0, 0, 1, 166, 222, 71, 35, 52, 36, 28, 25, 56, 20, 10, 12, 0, 6, 68, 0x3985, 300, 1480, 480, 1056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1460, "G_MATYR", "Matyr", "Matyr", 58, 2087, 1, 0, 0, 1, 144, 170, 63, 5, 48, 20, 21, 17, 43, 10, 10, 12, 1, 2, 27, 0x3885, 150, 432, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1461, "G_MINOROUS", "Minorous", "Minorous", 58, 1893, 1, 0, 0, 1, 235, 271, 100, 10, 65, 42, 36, 43, 55, 25, 10, 12, 2, 2, 43, 0x3885, 200, 1360, 960, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1462, "G_ORC_SKELETON", "Orc Skeleton", "Orc Skeleton", 53, 2077, 1, 0, 0, 1, 115, 140, 82, 10, 52, 16, 24, 5, 22, 5, 10, 12, 1, 1, 29, 0x3885, 200, 2420, 720, 648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1463, "G_ORC_ZOMBIE", "Orc Zombie", "Orc Zombie", 51, 1908, 1, 0, 0, 1, 109, 124, 71, 5, 45, 17, 32, 5, 52, 5, 10, 12, 1, 1, 29, 0x3885, 400, 2852, 1152, 840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1464, "G_PASANA", "Pasana", "Pasana", 79, 3510, 1, 0, 0, 1, 398, 438, 93, 35, 76, 36, 33, 20, 67, 5, 10, 12, 1, 7, 43, 0x3885, 165, 976, 576, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1465, "G_PETIT", "Petite", "Petite", 86, 5799, 1, 0, 0, 1, 292, 358, 99, 49, 55, 32, 38, 37, 54, 20, 10, 12, 1, 9, 22, 0x3885, 200, 1624, 620, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1466, "G_PETIT_", "Petite", "Petite", 79, 3556, 1, 0, 0, 1, 280, 316, 86, 42, 63, 39, 31, 55, 72, 85, 10, 12, 1, 9, 24, 0x3885, 150, 1420, 1080, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1467, "G_RAYDRIC", "Raydric", "Raydric", 115, 18408, 1, 0, 0, 1, 572, 668, 89, 15, 129, 87, 55, 32, 76, 27, 10, 12, 2, 7, 47, 0x3885, 150, 824, 780, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1468, "G_REQUIEM", "Requim", "Requim", 71, 3089, 1, 0, 0, 1, 316, 364, 88, 20, 58, 34, 35, 12, 42, 10, 10, 12, 1, 7, 27, 0x3885, 400, 1516, 816, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1469, "G_SKEL_WORKER", "Skeleton Worker", "Skeleton Worker", 44, 1240, 1, 0, 0, 1, 92, 104, 45, 5, 30, 13, 22, 10, 37, 25, 10, 12, 1, 1, 29, 0x3885, 400, 2420, 720, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1470, "G_ZEROM", "Zerom", "Zerom", 70, 2687, 1, 0, 0, 1, 312, 350, 93, 15, 57, 49, 30, 15, 56, 20, 10, 12, 1, 7, 23, 0x3885, 200, 1780, 1080, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1471, "G_NINE_TAIL", "Nine Tail", "Nine Tail", 72, 2783, 1, 0, 0, 1, 446, 496, 95, 40, 61, 38, 30, 20, 88, 50, 10, 12, 1, 2, 63, 0x3885, 150, 840, 540, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1472, "G_BON_GUN", "Bongun", "Bongun", 59, 2510, 1, 0, 0, 1, 189, 218, 88, 5, 55, 24, 24, 5, 34, 10, 10, 12, 1, 1, 29, 0x3885, 200, 1720, 500, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1473, "G_ORC_ARCHER", "Orc Archer", "Orc Archer", 78, 4835, 1, 0, 0, 9, 260, 303, 67, 31, 55, 32, 24, 30, 99, 15, 10, 12, 1, 7, 22, 0x3885, 300, 1960, 620, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1474, "G_MIMIC", "Mimic", "Mimic", 56, 1939, 1, 0, 0, 1, 221, 243, 63, 15, 49, 120, 20, 15, 99, 0, 10, 12, 1, 0, 60, 0x3885, 100, 972, 500, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1475, "G_WRAITH", "Wraith", "Wraith", 77, 5168, 1, 0, 0, 1, 335, 396, 80, 40, 62, 26, 30, 55, 76, 5, 10, 12, 2, 1, 89, 0x3885, 300, 1816, 576, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1476, "G_ALARM", "Alarm", "Alarm", 88, 5562, 1, 0, 0, 1, 290, 338, 106, 53, 70, 72, 40, 25, 55, 25, 10, 12, 1, 0, 60, 0x3885, 300, 1020, 500, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1477, "G_ARCLOUSE", "Arclouse", "Arclouze", 77, 4320, 1, 0, 0, 1, 269, 309, 101, 36, 60, 73, 45, 35, 60, 15, 10, 12, 1, 4, 42, 0x3985, 100, 960, 500, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1478, "G_RIDEWORD", "Rideword", "Rideword", 74, 3222, 1, 0, 0, 1, 352, 374, 61, 38, 67, 53, 32, 44, 104, 5, 10, 12, 0, 0, 60, 0x3885, 150, 864, 500, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1479, "G_SKEL_PRISONER", "Skeleton Prisoner", "Skeleton Prisoner", 91, 9194, 1, 0, 0, 1, 266, 321, 95, 41, 84, 35, 60, 20, 71, 15, 10, 12, 1, 1, 69, 0x3885, 350, 1848, 500, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1480, "G_ZOMBIE_PRISONER", "Zombie Prisoner", "Zombie Prisoner", 89, 8045, 1, 0, 0, 1, 356, 416, 89, 28, 87, 39, 58, 5, 68, 10, 10, 12, 1, 1, 69, 0x3885, 350, 1768, 500, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1481, "G_PUNK", "Punk", "Punk", 82, 3869, 1, 0, 0, 1, 266, 320, 68, 55, 67, 39, 30, 35, 79, 45, 10, 12, 0, 3, 24, 0x3885, 300, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1482, "G_ZHERLTHSH", "Zherlthsh", "Zealotus", 105, 61350, 1, 0, 0, 1, 610, 790, 91, 99, 88, 61, 51, 62, 113, 60, 10, 12, 1, 7, 60, 0x3885, 200, 800, 792, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1483, "G_RYBIO", "Rybio", "Rybio", 98, 8700, 1, 0, 0, 1, 277, 353, 109, 30, 96, 52, 61, 30, 80, 10, 10, 12, 2, 6, 40, 0x3985, 200, 1790, 1440, 540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1484, "G_PHENDARK", "Phendark", "Phendark", 102, 11000, 1, 0, 0, 2, 539, 614, 307, 50, 111, 65, 71, 20, 71, 30, 10, 12, 2, 7, 40, 0x3885, 175, 1744, 1344, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1485, "G_MYSTELTAINN", "Mysteltainn", "Mysteltainn", 130, 70000, 1, 0, 0, 2, 771, 1338, 73, 61, 102, 139, 62, 65, 130, 65, 10, 12, 2, 0, 87, 0x39A5, 250, 1152, 500, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1486, "G_TIRFING", "Tirfing", "Ogretooth", 114, 59000, 1, 0, 0, 1, 677, 1088, 87, 69, 105, 105, 75, 73, 108, 65, 10, 12, 1, 0, 67, 0x39A5, 100, 816, 500, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1487, "G_EXECUTIONER", "Executioner", "Executioner", 101, 40200, 1, 0, 0, 2, 515, 874, 97, 188, 99, 96, 77, 78, 79, 60, 10, 12, 2, 0, 47, 0x39A5, 200, 768, 500, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1488, "G_ANOLIAN", "Anolian", "Anolian", 109, 15547, 1, 0, 0, 1, 500, 610, 61, 11, 130, 63, 55, 66, 58, 48, 10, 12, 1, 5, 41, 0x3885, 190, 900, 500, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1489, "G_STING", "Sting", "Sting", 104, 14143, 1, 0, 0, 1, 521, 588, 146, 50, 108, 49, 68, 43, 87, 24, 10, 12, 1, 0, 62, 0x3885, 300, 528, 500, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1490, "G_WANDER_MAN", "Wander Man", "Wanderer", 120, 19307, 1, 0, 0, 2, 711, 816, 64, 5, 118, 92, 36, 15, 107, 33, 10, 12, 1, 6, 24, 0x3985, 100, 672, 500, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1491, "G_DOKEBI", "Dokebi", "Dokebi", 68, 2820, 1, 0, 0, 1, 317, 347, 85, 20, 52, 56, 35, 20, 60, 25, 10, 12, 0, 6, 27, 0x3985, 250, 1156, 456, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1492, "INCANTATION_SAMURAI", "Incantation Samurai", "Samurai Specter", 100, 901000, 1, 751680, 595080, 3, 2196, 3132, 296, 140, 145, 161, 88, 66, 155, 60, 10, 12, 2, 7, 67, 0x37B5, 135, 874, 1344, 576, 375840, 10000, 607, 5500, 608, 3500, 985, 5500, 1165, 2, 985, 3500, 5096, 500, 607, 4500, 999, 6305, 13303, 7500, 1235, 80, 0, 0, 0, 0, 4263, 1); -REPLACE INTO mob_db VALUES(1493, "DRYAD", "Dryad", "Dryad", 68, 3640, 1, 837, 939, 3, 266, 301, 153, 8, 54, 14, 40, 35, 67, 10, 10, 12, 1, 3, 82, 0x3885, 170, 950, 2520, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7197, 5335, 7198, 1000, 7188, 3000, 6265, 500, 1964, 1, 7939, 100, 7100, 3000, 0, 0, 0, 0, 4177, 1); -REPLACE INTO mob_db VALUES(1494, "KIND_OF_BEETLE", "Beetle King", "Beetle King", 55, 2061, 1, 450, 507, 1, 110, 162, 79, 8, 53, 47, 10, 0, 45, 0, 10, 12, 0, 4, 22, 0x1189, 165, 1247, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7190, 6500, 7202, 4500, 928, 1000, 955, 500, 2102, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4307, 1); -REPLACE INTO mob_db VALUES(1495, "STONE_SHOOTER", "Stone Shooter", "Stone Shooter", 64, 2101, 1, 689, 776, 10, 201, 254, 88, 15, 55, 55, 36, 15, 77, 15, 10, 12, 1, 3, 63, 0x3885, 175, 2413, 1248, 768, 0, 0, 0, 0, 0, 0, 0, 0, 7203, 5000, 7201, 5000, 7188, 1000, 1019, 2000, 756, 100, 7049, 1000, 0, 0, 0, 0, 0, 0, 4225, 1); -# REPLACE INTO mob_db VALUES(1496, "STONE_SHOOTER_BULLET", "Stone Shooter Bullet", "Stone Shooter Bullet", "(mode 2181)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1497, "WOODEN_GOLEM", "Wooden Golem", "Wooden Golem", 72, 3914, 1, 950, 1079, 1, 292, 334, 249, 26, 69, 30, 45, 5, 49, 5, 10, 12, 2, 3, 82, 0x3885, 165, 1543, 1632, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7189, 4000, 7188, 4000, 757, 110, 2270, 10, 604, 100, 7201, 5000, 7936, 300, 0, 0, 0, 0, 4259, 1); -REPLACE INTO mob_db VALUES(1498, "WOOTAN_SHOOTER", "Wootan Shooter", "Wootan Shooter", 67, 3096, 1, 711, 798, 10, 140, 175, 91, 21, 32, 23, 38, 20, 69, 10, 10, 12, 1, 7, 42, 0x3885, 200, 857, 1056, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7195, 4500, 7200, 3500, 513, 1000, 7049, 1000, 7939, 100, 7182, 100, 5116, 10, 0, 0, 0, 0, 4260, 1); -REPLACE INTO mob_db VALUES(1499, "WOOTAN_FIGHTER", "Wootan Fighter", "Wootan Fighter", 67, 2327, 1, 709, 798, 1, 243, 279, 103, 8, 63, 14, 36, 5, 56, 15, 10, 12, 1, 7, 43, 0x3885, 200, 912, 1344, 480, 0, 0, 0, 0, 0, 0, 0, 0, 517, 4500, 7196, 4000, 1801, 3, 1812, 1, 7939, 100, 7198, 1000, 5116, 5, 0, 0, 0, 0, 4261, 1); -REPLACE INTO mob_db VALUES(1500, "PARASITE", "Parasite", "Parasite", 76, 3222, 1, 923, 1337, 8, 161, 206, 63, 30, 55, 78, 33, 50, 88, 40, 10, 12, 1, 3, 44, 0x84, 400, 864, 864, 672, 0, 0, 0, 0, 0, 0, 0, 0, 7193, 5500, 7194, 2000, 7186, 3880, 7198, 500, 1957, 1, 1969, 1, 6265, 800, 0, 0, 0, 0, 4309, 1); -# REPLACE INTO mob_db VALUES(1501, "PARASITE_BULLET", "Parasite Bullet", "Parasite Bullet... (mode 2181)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1502, "PORING_V", "Pori Pori", "Bring it on!", 99, 95000000, 1, 78525, 25106, 1, 5000, 10000, 0, 10, 100, 100, 65, 100, 255, 255, 10, 12, 1, 3, 25, 0x39A5, 160, 1672, 672, 480, 43625, 10000, 10020, 1000, 4005, 100, 2286, 200, 5035, 10000, 2344, 2500, 2346, 2500, 2350, 2500, 2348, 2500, 2655, 500, 7126, 10000, 0, 0, 0, 0, 2110, 4500); -REPLACE INTO mob_db VALUES(1503, "GIBBET", "Gibbet", "Gibbet", 105, 12999, 1, 1944, 1458, 1, 536, 621, 116, 45, 103, 56, 62, 55, 61, 37, 10, 12, 2, 6, 27, 0x3985, 180, 917, 1584, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7212, 1800, 7218, 5335, 7222, 4074, 724, 300, 716, 100, 604, 10, 7939, 100, 0, 0, 0, 0, 4278, 1); -REPLACE INTO mob_db VALUES(1504, "DULLAHAN", "Dullahan", "Dullahan", 108, 18546, 1, 2509, 1977, 2, 666, 741, 111, 38, 121, 29, 51, 43, 87, 3, 10, 12, 1, 1, 49, 0x3885, 155, 847, 1152, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7209, 3200, 7210, 4850, 2614, 1, 2505, 13, 2506, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4176, 1); -REPLACE INTO mob_db VALUES(1505, "LOLI_RURI", "Loli Ruri", "Loli Ruri", 109, 15280, 1, 2790, 2093, 2, 787, 1017, 53, 44, 111, 50, 47, 79, 79, 79, 10, 12, 2, 6, 87, 0x3985, 125, 747, 1632, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7206, 800, 7219, 3000, 7214, 5044, 985, 100, 7019, 1, 2718, 5, 6246, 300, 0, 0, 0, 0, 4191, 1); -REPLACE INTO mob_db VALUES(1506, "DISGUISE", "Disguise", "Disguise", 103, 13895, 1, 2232, 1674, 2, 260, 342, 85, 58, 92, 53, 57, 75, 67, 45, 10, 12, 1, 6, 82, 0x3985, 147, 516, 768, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7216, 4850, 7221, 3686, 6247, 100, 518, 100, 2508, 50, 2504, 2, 2529, 5, 0, 0, 0, 0, 4181, 1); -REPLACE INTO mob_db VALUES(1507, "BLOODY_MURDERER", "Bloody Murderer", "Bloody Murderer", 110, 14099, 1, 2724, 2244, 2, 844, 942, 84, 41, 120, 65, 66, 41, 89, 26, 10, 12, 2, 7, 67, 0x3885, 175, 914, 1344, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7207, 4171, 7223, 1000, 7208, 2000, 2288, 50, 984, 100, 1229, 3, 13002, 1, 0, 0, 0, 0, 4214, 1); -REPLACE INTO mob_db VALUES(1508, "QUVE", "Quve", "Quve", 100, 11090, 1, 1638, 1229, 1, 226, 323, 96, 55, 84, 54, 55, 50, 71, 60, 10, 12, 0, 1, 29, 0x3885, 150, 912, 1248, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7205, 3200, 7220, 5723, 601, 1000, 7154, 100, 756, 10, 6245, 500, 0, 0, 0, 0, 0, 0, 4294, 1); -REPLACE INTO mob_db VALUES(1509, "LUDE", "Lude", "Lude", 101, 11574, 1, 1692, 1269, 2, 218, 296, 90, 53, 97, 38, 55, 82, 69, 55, 10, 12, 0, 1, 29, 0x3885, 150, 890, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7225, 3200, 7220, 5723, 1059, 1000, 2282, 10, 757, 10, 12001, 100, 6246, 300, 0, 0, 0, 0, 4193, 1); -REPLACE INTO mob_db VALUES(1510, "HYLOZOIST", "Hylozoist", "Heirozoist", 102, 12000, 1, 1876, 1406, 1, 268, 349, 101, 68, 97, 67, 72, 88, 69, 60, 10, 12, 0, 6, 47, 0x3985, 155, 741, 1536, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7215, 4365, 7217, 5335, 7213, 2000, 740, 80, 7220, 300, 757, 10, 5113, 1, 0, 0, 0, 0, 4321, 1); -REPLACE INTO mob_db VALUES(1511, "AMON_RA", "Amon Ra", "Amon Ra", 69, 319000, 1, 240120, 187920, 3, 710, 1762, 213, 123, 86, 89, 120, 131, 101, 92, 14, 12, 2, 7, 62, 0x1A4, 170, 854, 2016, 480, 120060, 10000, 607, 5500, 608, 3500, 732, 5500, 5053, 150, 2615, 50, 7211, 7760, 985, 3880, 616, 400, 1552, 10, 607, 3000, 0, 0, 0, 0, 4236, 1); -REPLACE INTO mob_db VALUES(1512, "HYEGUN", "Hyegun", "Yao Jun", 87, 6996, 1, 1283, 1445, 1, 246, 294, 84, 43, 69, 38, 40, 20, 68, 20, 10, 12, 1, 1, 49, 0x3885, 180, 890, 1320, 720, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 3880, 609, 100, 985, 10, 2406, 1, 7277, 300, 15013, 10, 0, 0, 0, 0, 0, 0, 4328, 1); -REPLACE INTO mob_db VALUES(1513, "CIVIL_SERVANT", "Civil Servant", "Mao Guai", 89, 5292, 1, 1349, 1512, 2, 276, 337, 90, 56, 67, 76, 40, 65, 62, 30, 10, 12, 1, 2, 44, 0x3885, 200, 1257, 528, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7262, 4171, 7263, 2000, 606, 10, 1023, 100, 693, 100, 0, 0, 0, 0, 0, 0, 0, 0, 4202, 1); -REPLACE INTO mob_db VALUES(1514, "DANCING_DRAGON", "Dancing Dragon", "Zhu Po Long", 82, 3943, 1, 972, 1094, 2, 268, 303, 83, 36, 59, 76, 40, 30, 61, 30, 10, 12, 1, 9, 44, 0x83, 160, 600, 840, 504, 0, 0, 0, 0, 0, 0, 0, 0, 7266, 4365, 7265, 3000, 7268, 800, 1036, 1000, 7038, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 4272, 1); -REPLACE INTO mob_db VALUES(1515, "GARM_BABY", "Garm Baby", "Hatii Baby", 94, 10016, 1, 1555, 1749, 1, 383, 444, 62, 43, 69, 61, 55, 61, 88, 45, 10, 12, 1, 2, 41, 0x3885, 450, 879, 672, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7270, 1500, 7269, 2500, 7066, 4365, 749, 100, 12000, 100, 0, 0, 0, 0, 0, 0, 0, 0, 4323, 1); -REPLACE INTO mob_db VALUES(1516, "INCREASE_SOIL", "Increase Soil", "Mi Gao", 83, 5335, 1, 1201, 1529, 1, 332, 362, 112, 39, 67, 23, 41, 49, 78, 30, 10, 12, 1, 0, 62, 0x91, 445, 106, 1056, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7264, 4365, 7004, 2300, 997, 10, 969, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4231, 1); -REPLACE INTO mob_db VALUES(1517, "LI_ME_MANG_RYANG", "Li Me Mang Ryang", "Jing Guai", 80, 5187, 1, 1065, 1197, 1, 179, 220, 110, 37, 61, 22, 33, 35, 62, 20, 10, 12, 1, 6, 62, 0x3985, 165, 1120, 576, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7267, 4500, 7268, 400, 1501, 10, 1523, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4265, 1); -REPLACE INTO mob_db VALUES(1518, "BACSOJIN", "Bacsojin", "White Lady", 97, 720500, 1, 668160, 542880, 2, 1088, 3124, 210, 178, 118, 244, 98, 126, 205, 102, 10, 12, 2, 7, 41, 0x3695, 160, 576, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1020, 5500, 603, 2, 617, 2, 7165, 3000, 7166, 1000, 747, 500, 0, 0, 0, 0, 0, 0, 2234, 1); -REPLACE INTO mob_db VALUES(1519, "CHUNG_E", "Chung E", "Green Maiden", 49, 23900, 0, 2156, 894, 1, 460, 1050, 8, 15, 38, 65, 43, 30, 90, 15, 10, 12, 1, 7, 40, 0x3695, 170, 1728, 816, 1188, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 4850, 740, 100, 1806, 10, 518, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5042, 2); -REPLACE INTO mob_db VALUES(1520, "BOILED_RICE", "Boiled Rice", "Boiled Rice", 15, 777, 1, 7, 7, 1, 7, 14, 0, 10, 7, 7, 7, 17, 17, 7, 10, 12, 1, 3, 21, 0x81, 170, 1152, 672, 672, 0, 0, 0, 0, 0, 0, 0, 0, 564, 5500, 7272, 3000, 7194, 1000, 7198, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1521, "G_ALICE", "Alice", "Alice", 100, 9230, 1, 0, 0, 1, 395, 493, 93, 73, 82, 53, 45, 70, 80, 80, 10, 12, 1, 7, 60, 0x91, 200, 520, 2304, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1522, "G_ANCIENT_MUMMY", "Ancient Mummy", "Ancient Mummy", 115, 29157, 1, 0, 0, 1, 701, 801, 93, 27, 126, 57, 55, 69, 56, 15, 10, 12, 1, 1, 49, 0x3695, 175, 1772, 120, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1523, "G_ANTIQUE_FIRELOCK", "Antique Firelock", "Firelock Soldier", 88, 7524, 1, 0, 0, 10, 324, 369, 72, 30, 67, 44, 30, 30, 83, 30, 10, 12, 1, 1, 49, 0x2085, 170, 1084, 2304, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1524, "G_BABY_LEOPARD", "Baby Leopard", "Baby Leopard", 68, 2590, 1, 0, 0, 2, 277, 329, 77, 5, 46, 36, 20, 4, 55, 10, 10, 12, 0, 2, 28, 0x3885, 150, 318, 528, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1525, "G_BATHORY", "Bathory", "Bathory", 86, 5242, 1, 0, 0, 1, 229, 325, 61, 89, 66, 38, 40, 77, 56, 50, 10, 12, 1, 7, 27, 0x3695, 100, 1504, 840, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1526, "G_BLOOD_BUTTERFLY", "Bloody Butterfly", "Bloody Butterfly", 94, 7030, 1, 0, 0, 3, 278, 345, 79, 50, 70, 68, 40, 55, 90, 30, 10, 12, 1, 4, 44, 0x318D, 145, 472, 576, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1527, "G_C_TOWER_MANAGER", "Clock Tower Manager", "Clock Tower Manager", 90, 6400, 1, 0, 0, 3, 388, 458, 96, 60, 80, 28, 40, 25, 73, 45, 10, 12, 2, 0, 80, 0x91, 200, 1072, 672, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1528, "G_CLOCK", "Clock", "Clock", 81, 5556, 1, 0, 0, 1, 403, 456, 91, 43, 68, 24, 35, 41, 81, 15, 10, 12, 1, 0, 42, 0x91, 200, 1092, 792, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1529, "G_DARK_SNAKE_LORD", "Dark Snake Lord", "Evil Snake Lord", 105, 1101000, 1, 0, 0, 3, 2217, 4203, 314, 185, 122, 172, 107, 135, 196, 88, 10, 12, 2, 2, 68, 0x37B5, 200, 588, 816, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1530, "G_DRACULA", "Dracula", "Dracula", 75, 350000, 1, 0, 0, 3, 1322, 3134, 152, 146, 86, 99, 88, 92, 145, 82, 10, 12, 2, 6, 87, 0x37B5, 145, 1290, 1140, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1531, "G_EVIL_CLOUD_HERMIT", "Evil Cloud Hermit", "Taoist Hermit", 96, 8266, 1, 0, 0, 10, 470, 500, 66, 46, 63, 57, 45, 60, 99, 45, 10, 12, 2, 0, 40, 0x2085, 190, 480, 840, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1532, "G_EXPLOSION", "Explosion", "Explosion", 100, 7813, 1, 0, 0, 1, 481, 591, 112, 50, 91, 51, 63, 50, 65, 60, 10, 12, 0, 2, 63, 0x3885, 165, 1260, 960, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1533, "G_FUR_SEAL", "Fur Seal", "Seal", 47, 1371, 1, 0, 0, 1, 87, 127, 42, 16, 37, 40, 30, 39, 35, 19, 10, 12, 1, 2, 21, 0x3095, 200, 1612, 622, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1534, "G_GOBLIN_1", "Goblin", "Goblin", 48, 1058, 1, 0, 0, 1, 87, 121, 56, 5, 37, 54, 25, 20, 36, 10, 10, 12, 1, 7, 24, 0x3695, 100, 1120, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1535, "G_GOBLIN_2", "Goblin", "Goblin", 44, 931, 1, 0, 0, 1, 94, 122, 52, 5, 33, 16, 24, 15, 58, 10, 10, 12, 1, 7, 23, 0x3095, 150, 1320, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1536, "G_GOBLIN_3", "Goblin", "Goblin", 44, 930, 1, 0, 0, 1, 88, 121, 47, 5, 30, 16, 24, 15, 17, 10, 10, 12, 1, 7, 25, 0x308D, 250, 1624, 624, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1537, "G_GOBLIN_4", "Goblin", "Goblin", 49, 1494, 1, 0, 0, 1, 72, 94, 70, 3, 31, 27, 46, 15, 34, 10, 10, 12, 1, 7, 22, 0x308D, 200, 1624, 624, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1538, "G_GOBLIN_5", "Goblin", "Goblin", 56, 2342, 1, 0, 0, 1, 159, 190, 64, 5, 51, 37, 22, 15, 38, 10, 10, 12, 1, 7, 21, 0x308D, 300, 3074, 1874, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1539, "G_GOBLIN_LEADER", "Goblin Leader", "Goblin Leader", 55, 21692, 1, 0, 0, 1, 165, 214, 72, 30, 60, 67, 45, 18, 66, 23, 10, 12, 1, 7, 24, 0x3695, 120, 1120, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1540, "G_GOLEM", "Golem", "Golem", 61, 2245, 1, 0, 0, 1, 198, 223, 190, 12, 70, 27, 67, 5, 31, 5, 10, 12, 2, 0, 60, 0x91, 300, 1608, 816, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1541, "G_GREATEST_GENERAL", "Greatest General", "Greatest General", 55, 1575, 1, 0, 0, 3, 215, 241, 114, 30, 58, 30, 20, 25, 25, 20, 10, 12, 1, 0, 43, 0x84, 200, 1152, 1152, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1542, "G_INCANTATION_SAMURA", "Incantation Samurai", "Incantation Samurai", 100, 901000, 1, 0, 0, 3, 2196, 3132, 296, 140, 145, 161, 88, 66, 155, 60, 10, 12, 2, 7, 67, 0x37B5, 135, 874, 1344, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1543, "G_KAPHA", "Kapha", "Kapha", 83, 5470, 1, 0, 0, 3, 278, 310, 61, 38, 67, 59, 40, 31, 61, 24, 10, 12, 1, 5, 21, 0x3885, 165, 2012, 1728, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1544, "G_KARAKASA", "Karakasa", "Karakasa", 72, 3092, 1, 0, 0, 1, 156, 198, 93, 29, 66, 73, 33, 20, 53, 60, 10, 12, 1, 0, 60, 0x81, 155, 1638, 2016, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1545, "G_KOBOLD_1", "Kobold", "Kobold", 107, 10483, 1, 0, 0, 1, 539, 626, 103, 25, 109, 76, 61, 53, 82, 30, 10, 12, 1, 7, 44, 0x308D, 150, 1028, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1546, "G_KOBOLD_2", "Kobold", "Kobold", 102, 9152, 1, 0, 0, 1, 367, 429, 117, 59, 96, 61, 55, 48, 79, 20, 10, 12, 1, 7, 45, 0x308D, 200, 1528, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1547, "G_KOBOLD_3", "Kobold", "Kobold", 101, 9078, 1, 0, 0, 1, 360, 424, 109, 48, 103, 64, 59, 42, 67, 20, 10, 12, 1, 7, 43, 0x308D, 300, 1228, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1548, "G_KOBOLD_LEADER", "Kobold Leader", "Kobold Leader", 112, 13520, 1, 0, 0, 1, 711, 807, 90, 62, 135, 34, 68, 56, 83, 47, 10, 12, 1, 7, 44, 0x3695, 150, 1028, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1549, "G_LAVA_GOLEM", "Lava Golem", "Lava Golem", 103, 8452, 1, 0, 0, 1, 598, 651, 299, 27, 126, 42, 103, 28, 77, 15, 10, 12, 2, 0, 83, 0x3095, 400, 2190, 2040, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1550, "G_LIVE_PEACH_TREE", "Live Peach Tree", "Enchanted Peach Tree", 92, 8777, 1, 0, 0, 7, 270, 342, 109, 40, 76, 52, 55, 40, 77, 50, 10, 12, 1, 3, 42, 0x2085, 410, 400, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1551, "G_MARSE", "Marse", "Marse", 47, 1456, 1, 0, 0, 1, 85, 105, 38, 18, 33, 17, 25, 10, 33, 10, 10, 12, 0, 5, 41, 0x91, 300, 1956, 756, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1552, "G_MIYABI_NINGYO", "Miyabi Ningyo", "Miyabi Doll", 85, 5188, 1, 0, 0, 1, 216, 282, 57, 19, 66, 30, 30, 55, 73, 40, 10, 12, 1, 6, 27, 0x191, 250, 1938, 2112, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1553, "G_MYST", "Myst", "Myst", 49, 1223, 1, 0, 0, 1, 96, 116, 61, 10, 35, 37, 20, 10, 41, 10, 10, 12, 2, 0, 25, 0x3695, 200, 1576, 576, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1554, "G_NIGHTMARE_TERROR", "Nightmare Terror", "Nightmare Terror", 107, 13289, 1, 0, 0, 1, 629, 755, 78, 37, 118, 53, 55, 63, 53, 43, 10, 12, 2, 6, 67, 0x3985, 165, 1216, 816, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1555, "G_PARASITE", "Parasite", "Parasite", 76, 3222, 1, 0, 0, 8, 161, 206, 63, 30, 55, 78, 33, 50, 88, 40, 10, 12, 1, 3, 44, 0x84, 400, 864, 864, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1556, "G_POISON_TOAD", "Poison Toad", "Poisonous Toad", 87, 4876, 1, 0, 0, 3, 212, 266, 80, 42, 66, 42, 40, 45, 58, 30, 10, 12, 1, 2, 45, 0x81, 160, 1148, 1728, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1557, "G_ROTAR_ZAIRO", "Rotar Zairo", "Rotar Zairo", 48, 1088, 1, 0, 0, 10, 75, 115, 57, 34, 29, 70, 45, 26, 61, 5, 10, 12, 2, 0, 44, 0x2085, 155, 2416, 2016, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1558, "G_SAND_MAN", "Sandman", "Sandman", 61, 2887, 1, 0, 0, 1, 156, 212, 126, 25, 44, 8, 55, 15, 31, 25, 10, 12, 1, 0, 62, 0x3885, 250, 1672, 720, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1559, "G_SCORPION", "Scorpion", "Scorpion", 16, 153, 1, 0, 0, 1, 39, 46, 16, 5, 14, 15, 10, 5, 33, 5, 10, 12, 0, 4, 23, 0x3195, 200, 1564, 864, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1560, "G_SHINOBI", "Shinobi", "Shinobi", 95, 8000, 1, 0, 0, 2, 441, 492, 49, 45, 71, 70, 55, 30, 69, 30, 10, 12, 1, 7, 67, 0x3695, 150, 1003, 1152, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1561, "G_SMOKIE", "Smokie", "Smokie", 29, 591, 1, 0, 0, 1, 70, 81, 26, 0, 16, 34, 16, 5, 27, 5, 10, 12, 0, 2, 22, 0x91, 200, 1576, 576, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1562, "G_SOLDIER_SKELETON", "Soldier Skeleton", "Soldier Skeleton", 34, 804, 1, 0, 0, 1, 84, 98, 53, 5, 14, 10, 32, 5, 29, 3, 10, 12, 1, 1, 29, 0x3885, 200, 2276, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1563, "G_TENGU", "Tengu", "Tengu", 98, 10196, 1, 0, 0, 2, 211, 294, 134, 46, 99, 38, 40, 30, 67, 60, 10, 12, 2, 6, 42, 0x3985, 200, 1439, 1920, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1564, "G_WICKED_NYMPH", "Wicked Nymph", "Evil Nymph", 97, 8491, 1, 0, 0, 2, 218, 346, 46, 45, 84, 46, 45, 70, 77, 60, 10, 12, 1, 6, 67, 0x3795, 200, 637, 1008, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1565, "G_WILD_GINSENG", "Wild Ginseng", "Hermit Plant", 90, 6052, 1, 0, 0, 1, 523, 594, 56, 62, 76, 51, 60, 60, 76, 50, 10, 12, 0, 3, 43, 0x91, 140, 512, 756, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1566, "G_WRAITH_DEAD", "Wraith Dead", "Wraith Dead", 86, 10035, 0, 0, 0, 2, 402, 462, 88, 56, 63, 69, 55, 45, 88, 45, 10, 12, 2, 1, 89, 0x3695, 175, 1816, 576, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1567, "G_ANCIENT_WORM", "Ancient Worm", "Ancient Worm", 83, 4140, 0, 0, 0, 1, 299, 334, 90, 41, 70, 56, 56, 55, 70, 42, 10, 12, 2, 4, 25, 0x3795, 165, 1792, 792, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1568, "G_ANGELING", "Angeling", "Angeling", 77, 19800, 1, 0, 0, 1, 355, 500, 72, 238, 58, 50, 33, 105, 67, 200, 10, 12, 1, 8, 86, 0x37B5, 200, 1072, 672, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1569, "G_BLOODY_KNIGHT", "Bloody Knight", "Bloody Knight", 116, 68500, 1, 0, 0, 3, 942, 1065, 122, 50, 132, 59, 70, 57, 98, 45, 10, 12, 2, 0, 87, 0x3695, 250, 828, 528, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1570, "G_CRAMP", "Cramp", "Cramp", 82, 3898, 1, 0, 0, 1, 395, 443, 88, 42, 65, 43, 35, 25, 68, 30, 10, 12, 0, 2, 45, 0x3095, 100, 1000, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1571, "G_DEVIACE", "Deviace", "Deviace", 60, 3135, 1, 0, 0, 1, 160, 189, 51, 16, 57, 26, 32, 25, 45, 15, 10, 12, 1, 5, 81, 0x91, 400, 1680, 480, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1572, "G_DROPS", "Drops", "Drops", 2, 45, 1, 0, 0, 1, 12, 13, 16, 0, 8, 1, 1, 0, 6, 2, 10, 12, 1, 3, 23, 0x83, 400, 1372, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1573, "G_ELDER", "Elder", "Elder", 92, 7341, 1, 0, 0, 3, 276, 678, 72, 41, 67, 63, 35, 99, 88, 61, 10, 12, 2, 7, 80, 0x3885, 165, 1552, 1152, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1574, "G_ELDER_WILOW", "Elder Willow", "Elder Willow", 34, 599, 1, 0, 0, 1, 80, 94, 45, 0, 10, 14, 25, 0, 29, 0, 10, 12, 1, 3, 43, 0x3095, 200, 1372, 672, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1575, "G_FLORA", "Flora", "Flora", 59, 2301, 1, 0, 0, 3, 155, 186, 99, 29, 49, 29, 35, 5, 42, 80, 10, 12, 2, 3, 22, 0x84, 1000, 1432, 432, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1576, "G_GHOSTRING", "Ghostring", "Ghostring", 90, 26700, 1, 0, 0, 1, 350, 512, 88, 72, 66, 85, 66, 66, 99, 66, 10, 12, 1, 6, 88, 0x37B5, 300, 1220, 1080, 648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1577, "G_GOBLIN_ARCHER", "Goblin Archer", "Goblin Archer", 55, 1575, 1, 0, 0, 9, 95, 119, 69, 0, 40, 34, 20, 15, 48, 20, 10, 12, 0, 7, 25, 0x2085, 200, 1172, 672, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1578, "G_HORONG", "Horong", "Horong", 66, 2304, 1, 0, 0, 1, 262, 332, 84, 35, 36, 32, 35, 45, 56, 25, 10, 12, 0, 0, 83, 0x308D, 400, 1888, 1152, 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1579, "G_HYDRA", "Hydra", "Hydra", 34, 854, 1, 0, 0, 7, 35, 41, 20, 32, 10, 9, 14, 0, 35, 2, 10, 12, 0, 3, 41, 0x84, 1000, 800, 432, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1580, "G_INCUBUS", "Incubus", "Incubus", 120, 28000, 1, 0, 0, 2, 683, 858, 72, 46, 120, 56, 52, 75, 99, 70, 10, 12, 1, 6, 67, 0x3795, 165, 850, 600, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1581, "G_VOCAL", "Vocal", "Vocal", 18, 3317, 1, 0, 0, 1, 71, 82, 77, 26, 77, 26, 26, 30, 53, 40, 10, 12, 1, 4, 22, 0x3795, 200, 1080, 648, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1582, "DEVILING", "Deviling", "Deviling", 66, 16890, 1, 2281, 2379, 1, 298, 481, 67, 70, 48, 50, 33, 75, 77, 200, 10, 12, 1, 6, 87, 0x37B5, 200, 1072, 1056, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1039, 3000, 912, 4850, 2255, 100, 512, 5000, 7023, 1, 983, 100, 694, 100, 0, 0, 0, 0, 4174, 1); -REPLACE INTO mob_db VALUES(1583, "TAO_GUNKA", "Tao Gunka", "Tao Gunka", 110, 1252000, 1, 900000, 720000, 2, 2890, 4150, 404, 143, 135, 175, 98, 110, 199, 66, 10, 12, 2, 6, 60, 0x37B5, 150, 1020, 288, 144, 450000, 10000, 984, 6000, 617, 3000, 505, 6000, 7300, 4850, 7067, 4850, 728, 1000, 2296, 400, 504, 3000, 12738, 200, 2231, 5, 0, 0, 0, 0, 4302, 1); -REPLACE INTO mob_db VALUES(1584, "TAMRUAN", "Tamruan", "Tamruan", 73, 3195, 1, 898, 1010, 1, 305, 342, 63, 30, 60, 38, 40, 20, 61, 20, 10, 12, 2, 6, 67, 0x318D, 140, 512, 1152, 672, 0, 0, 0, 0, 0, 0, 0, 0, 7301, 4850, 7069, 3000, 1117, 40, 1155, 8, 2315, 3, 12736, 300, 0, 0, 0, 0, 0, 0, 4304, 1); -# REPLACE INTO mob_db VALUES(1585, "MIME_MONKEY", "Mime Monkey", "Mime Monkey", 40, 6000, 0, 200, 22, 3, 300, 350, 40, 40, 1, 40, 40, 40, 40, 30, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 909, 7000, 1202, 100, 938, 400, 512, 1000, 713, 1500, 741, 5, 619, 20, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1586, "LEAF_CAT", "Leaf Cat", "Leaf Cat", 64, 2635, 1, 594, 669, 1, 140, 181, 88, 16, 46, 16, 12, 45, 33, 29, 10, 12, 0, 2, 22, 0x83, 150, 960, 864, 720, 0, 0, 0, 0, 0, 0, 0, 0, 7198, 4365, 520, 300, 608, 5, 1023, 1100, 568, 250, 567, 500, 7298, 5335, 0, 0, 0, 0, 4195, 1); -REPLACE INTO mob_db VALUES(1587, "KRABEN", "Kraben", "Kraben", 70, 2901, 1, 510, 1095, 1, 266, 311, 108, 20, 54, 33, 35, 15, 62, 20, 10, 12, 1, 0, 48, 0x3095, 100, 1152, 1536, 576, 0, 0, 0, 0, 0, 0, 0, 0, 912, 3500, 519, 3000, 521, 1000, 2102, 1, 7299, 4850, 7286, 1000, 603, 10, 0, 0, 0, 0, 4295, 1); -REPLACE INTO mob_db VALUES(1588, "ORC_XMAS", "Christmas Orc", "Christmas Orc", 24, 1400, 1, 235, 144, 1, 104, 126, 16, 5, 1, 24, 48, 25, 34, 10, 10, 12, 1, 7, 22, 0x81, 200, 1864, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 998, 210, 931, 5500, 756, 40, 7175, 1600, 1352, 10, 644, 15, 7174, 1600, 0, 0, 0, 0, 4066, 1); -REPLACE INTO mob_db VALUES(1589, "G_MANDRAGORA", "Mandragora", "Mandragora", 13, 156, 1, 0, 0, 4, 38, 41, 13, 2, 12, 3, 5, 5, 10, 5, 10, 12, 1, 3, 62, 0x84, 1000, 1768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1590, "G_GEOGRAPHER", "Geographer", "Geographer", 73, 3866, 1, 0, 0, 3, 281, 363, 158, 42, 81, 26, 35, 56, 60, 60, 10, 12, 1, 3, 62, 0x84, 2000, 1308, 1008, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1591, "A_LUNATIC", "Lunatic", "Lunatic", 29, 2334, 0, 0, 0, 1, 221, 245, 16, 20, 1, 15, 22, 5, 40, 15, 10, 12, 0, 2, 60, 0xA1, 200, 1456, 456, 336, 0, 0, 0, 0, 0, 0, 0, 0, 502, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1592, "A_MOBSTER", "Gangster", "Gangster", 40, 8000, 0, 0, 0, 1, 300, 355, 32, 27, 1, 50, 45, 45, 73, 30, 10, 12, 1, 7, 20, 0x11A9, 250, 1100, 560, 580, 0, 0, 0, 0, 0, 0, 0, 0, 7049, 10000, 601, 2000, 1206, 3000, 713, 1000, 550, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1593, "A_ANCIENT_MUMMY", "Ancient Mummy", "Ancient Mummy", 52, 8613, 0, 0, 0, 1, 830, 930, 64, 27, 58, 47, 42, 5, 69, 26, 10, 12, 1, 1, 69, 0xB5, 175, 1772, 120, 384, 0, 0, 0, 0, 0, 0, 0, 0, 502, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1594, "G_FREEZER", "Freezer", "Freezer", 94, 9990, 1, 0, 0, 2, 388, 438, 127, 38, 68, 47, 50, 45, 55, 25, 10, 12, 1, 2, 41, 0x3695, 250, 1452, 483, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1595, "G_MARIN", "Marin", "Marin", 37, 987, 1, 0, 0, 1, 69, 83, 32, 8, 24, 5, 10, 5, 30, 15, 10, 12, 1, 3, 41, 0x81, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1596, "G_TAMRUAN", "Tamruan", "Tamruan", 73, 3195, 1, 0, 0, 1, 305, 342, 63, 30, 60, 38, 40, 20, 61, 20, 10, 12, 2, 6, 67, 0x318D, 140, 512, 1152, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1597, "G_GARGOYLE", "Gargoyle", "Gargoyle", 100, 8772, 1, 0, 0, 9, 383, 472, 98, 43, 100, 61, 60, 57, 100, 70, 10, 12, 1, 6, 64, 0x2185, 200, 1020, 720, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1598, "G_BLAZZER", "Blazzer", "Blazzer", 101, 8121, 1, 0, 0, 2, 461, 555, 116, 60, 99, 75, 55, 70, 60, 65, 10, 12, 1, 6, 43, 0x3395, 180, 1732, 1332, 540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1599, "G_WHISPER_BOSS", "Giant Whisper", "Giant Whisper", 66, 2570, 0, 0, 0, 1, 182, 241, 94, 45, 40, 79, 44, 51, 67, 31, 10, 12, 0, 6, 48, 0x3795, 250, 2536, 1536, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1600, "G_HEATER", "Heater", "Heater", 96, 7480, 1, 0, 0, 2, 495, 574, 186, 42, 75, 49, 50, 30, 80, 35, 10, 12, 1, 2, 43, 0x3695, 250, 1452, 483, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1601, "G_PERMETER", "Permeter", "Permeter", 90, 6575, 1, 0, 0, 2, 265, 321, 144, 50, 68, 28, 55, 40, 42, 25, 10, 12, 1, 2, 40, 0x3695, 250, 1100, 483, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1602, "G_SOLIDER", "Solider", "Solider", 92, 8768, 1, 0, 0, 2, 282, 322, 206, 58, 65, 44, 60, 15, 47, 20, 10, 12, 1, 2, 42, 0x3695, 250, 1452, 483, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1603, "G_BIGFOOT", "Bigfoot", "Bigfoot", 29, 587, 1, 0, 0, 1, 50, 62, 55, 7, 18, 4, 7, 0, 12, 0, 10, 12, 2, 2, 22, 0x91, 300, 1260, 192, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1604, "G_GIANT_HONET", "Giant Hornet", "Giant Hornet", 82, 3960, 0, 0, 0, 1, 275, 328, 80, 43, 70, 45, 47, 32, 62, 34, 10, 12, 0, 4, 24, 0x3795, 155, 1292, 792, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1605, "G_DARK_ILLUSION", "Dark Illusion", "Dark Illusion", 96, 29255, 0, 0, 0, 2, 666, 726, 145, 60, 82, 36, 55, 100, 102, 88, 10, 12, 2, 6, 89, 0x37B5, 145, 1024, 768, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1606, "G_GARM_BABY", "Garm Baby", "Garm Baby", 94, 10016, 1, 0, 0, 1, 383, 444, 62, 43, 69, 61, 55, 61, 88, 45, 10, 12, 1, 2, 41, 0x3885, 450, 879, 672, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1607, "G_GOBLINE_XMAS", "Christmas Goblin", "Christmas Goblin", 25, 1176, 1, 0, 0, 1, 118, 140, 16, 5, 1, 53, 25, 20, 38, 45, 10, 12, 1, 7, 24, 0x3695, 100, 1120, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1608, "G_THIEF_BUG__", "Thief Bug Male", "Thief Bug Male", 19, 583, 1, 0, 0, 1, 76, 88, 24, 5, 1, 29, 16, 5, 36, 0, 10, 12, 1, 4, 27, 0x318D, 300, 988, 288, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1609, "G_DANCING_DRAGON", "Dancing Dragon", "Zhu Po Long", 82, 3943, 1, 2727, 692, 2, 268, 303, 83, 36, 59, 76, 40, 30, 61, 30, 10, 12, 1, 9, 44, 0xA3, 160, 600, 840, 504, 0, 0, 0, 0, 0, 0, 0, 0, 570, 500, 571, 50, 572, 20, 515, 10000, 12018, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 668, 100); -REPLACE INTO mob_db VALUES(1610, "A_MUNAK", "Munak", "Munak", 30, 2872, 0, 0, 0, 1, 40, 50, 0, 0, 1, 15, 20, 5, 120, 15, 10, 12, 1, 1, 89, 0x39A5, 100, 2468, 768, 288, 0, 0, 0, 0, 0, 0, 0, 0, 502, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12017, 100, 0, 0, 0, 0, 12016, 100); -REPLACE INTO mob_db VALUES(1611, "A_BON_GUN", "Bongun", "Bongun", 59, 2510, 1, 0, 0, 1, 189, 218, 88, 5, 55, 24, 24, 5, 34, 10, 10, 12, 1, 1, 89, 0x31B5, 200, 1720, 500, 420, 0, 0, 0, 0, 0, 0, 0, 0, 502, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12017, 100, 0, 0, 0, 0, 12016, 100); -REPLACE INTO mob_db VALUES(1612, "A_HYEGUN", "Hyegun", "Yao Jun", 56, 9981, 0, 0, 0, 1, 710, 1128, 20, 10, 60, 40, 36, 10, 73, 15, 10, 12, 1, 1, 89, 0x39A5, 180, 890, 1320, 720, 0, 0, 0, 0, 0, 0, 0, 0, 502, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12017, 100, 0, 0, 0, 0, 12016, 100); -REPLACE INTO mob_db VALUES(1613, "METALING", "Metaling", "Metaling", 81, 4300, 1, 954, 1074, 1, 171, 210, 69, 28, 58, 30, 49, 17, 50, 5, 10, 12, 0, 0, 20, 0x83, 300, 384, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7325, 4000, 1002, 1000, 998, 500, 7126, 1000, 7317, 200, 13103, 5, 7312, 5000, 0, 0, 0, 0, 4341, 1); -REPLACE INTO mob_db VALUES(1614, "MINERAL", "Mineral", "Mineral", 96, 8300, 1, 1503, 1127, 1, 578, 635, 127, 23, 70, 61, 40, 50, 62, 50, 10, 12, 0, 0, 40, 0x91, 250, 648, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7321, 3000, 728, 500, 714, 2, 984, 80, 1011, 800, 715, 100, 969, 2, 0, 0, 0, 0, 4339, 1); -REPLACE INTO mob_db VALUES(1615, "OBSIDIAN", "Obsidian", "Obsidian", 97, 10088, 1, 1652, 1239, 1, 590, 670, 129, 37, 84, 38, 40, 60, 53, 50, 10, 12, 0, 0, 42, 0x3885, 350, 720, 864, 504, 0, 0, 0, 0, 0, 0, 0, 0, 7315, 3000, 730, 500, 1003, 500, 985, 50, 999, 500, 1263, 10, 0, 0, 0, 0, 0, 0, 4338, 1); -REPLACE INTO mob_db VALUES(1616, "PITMAN", "Pitman", "Pitman", 90, 7208, 1, 1409, 1586, 1, 182, 242, 104, 48, 78, 56, 45, 35, 50, 30, 10, 12, 2, 1, 42, 0x91, 180, 960, 336, 300, 0, 0, 0, 0, 0, 0, 0, 0, 7318, 3000, 7319, 500, 6244, 900, 999, 500, 1003, 100, 1041, 1000, 7327, 80, 0, 0, 0, 0, 4335, 1); -REPLACE INTO mob_db VALUES(1617, "WASTE_STOVE", "Waste Stove", "Old Stove", 92, 7400, 1, 1377, 1548, 1, 408, 468, 100, 47, 76, 61, 50, 30, 56, 15, 10, 12, 2, 0, 20, 0x3885, 300, 1152, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7323, 1000, 7068, 1000, 6215, 200, 625, 50, 7939, 100, 604, 50, 7319, 3800, 0, 0, 0, 0, 4332, 1); -REPLACE INTO mob_db VALUES(1618, "UNGOLIANT", "Ungoliant", "Ungoliant", 94, 17070, 1, 3501, 1913, 1, 689, 733, 108, 28, 71, 70, 58, 43, 92, 38, 10, 12, 2, 4, 45, 0x3795, 350, 420, 576, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7316, 4500, 1014, 3500, 1013, 1000, 7289, 1500, 7326, 2500, 718, 1500, 2406, 500, 0, 0, 0, 0, 4336, 1); -REPLACE INTO mob_db VALUES(1619, "PORCELLIO", "Porcellio", "Porcellio", 85, 5544, 1, 1294, 1455, 1, 266, 319, 79, 37, 67, 48, 28, 40, 62, 30, 10, 12, 0, 4, 62, 0x183, 150, 720, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7312, 5000, 1208, 25, 928, 1000, 1052, 3000, 630, 2, 7326, 30, 0, 0, 0, 0, 0, 0, 4337, 1); -REPLACE INTO mob_db VALUES(1620, "NOXIOUS", "Noxious", "Noxious", 87, 5430, 1, 888, 1785, 1, 255, 326, 117, 66, 58, 45, 60, 55, 57, 50, 10, 12, 1, 0, 68, 0x3885, 350, 768, 1440, 672, 0, 0, 0, 0, 0, 0, 0, 0, 7322, 1000, 7001, 3000, 605, 50, 7320, 3000, 6213, 600, 6215, 300, 603, 1, 0, 0, 0, 0, 4334, 1); -REPLACE INTO mob_db VALUES(1621, "VENOMOUS", "Venomous", "Venomous", 87, 4770, 1, 1188, 1337, 1, 287, 337, 104, 65, 61, 28, 60, 55, 45, 50, 10, 12, 1, 0, 25, 0x3885, 350, 768, 1440, 672, 0, 0, 0, 0, 0, 0, 0, 0, 7320, 5000, 7119, 3000, 7154, 1000, 7322, 2000, 6213, 300, 6215, 600, 603, 1, 0, 0, 0, 0, 4333, 1); -REPLACE INTO mob_db VALUES(1622, "TEDDY_BEAR", "Teddy Bear", "Teddy Bear", 91, 7238, 1, 1350, 1799, 1, 371, 433, 106, 39, 57, 81, 66, 20, 68, 44, 10, 12, 0, 0, 60, 0x3295, 200, 512, 780, 504, 0, 0, 0, 0, 0, 0, 0, 0, 7317, 3800, 518, 1000, 615, 300, 13106, 5, 5113, 50, 2652, 10, 985, 100, 0, 0, 0, 0, 4340, 1); -REPLACE INTO mob_db VALUES(1623, "RSX_0806", "RSX 0806", "RSX-0806", 100, 1001000, 1, 720000, 576000, 1, 2315, 3291, 317, 96, 153, 143, 110, 128, 165, 84, 10, 12, 2, 0, 60, 0x37B5, 220, 128, 1104, 240, 360000, 10000, 607, 5500, 5104, 3500, 732, 5500, 7093, 6000, 1230, 5, 13017, 1, 617, 1000, 7327, 5000, 1242, 100, 1531, 40, 0, 0, 0, 0, 4342, 1); -REPLACE INTO mob_db VALUES(1624, "G_WASTE_STOVE", "Waste Stove", "Old Stove", 92, 7400, 1, 0, 0, 1, 408, 468, 100, 47, 76, 61, 50, 30, 56, 15, 10, 12, 2, 0, 20, 0x3885, 220, 1152, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1625, "G_PORCELLIO", "Porcellio", "Porcellio", 85, 5544, 1, 922, 624, 1, 165, 218, 79, 37, 67, 48, 28, 40, 62, 30, 10, 12, 0, 4, 62, 0x3985, 150, 720, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1626, "G_DARK_PRIEST", "Hellion Revenant", "Hellion Revenant", 79, 8600, 1, 1, 1, 2, 178, 238, 88, 50, 54, 63, 40, 78, 56, 99, 10, 12, 1, 6, 69, 0x37B5, 150, 432, 384, 192, 0, 0, 0, 0, 0, 0, 0, 0, 7337, 8000, 7337, 5000, 7337, 3000, 7337, 1000, 7337, 500, 7337, 100, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1627, "ANOPHELES", "Anopheles", "Anopheles", 95, 7238, 1, 1691, 1902, 1, 242, 260, 7, 10, 64, 60, 42, 58, 88, 42, 10, 12, 0, 4, 64, 0x3985, 170, 1084, 2304, 576, 0, 0, 0, 0, 0, 0, 0, 0, 601, 1000, 7119, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4344, 1); -REPLACE INTO mob_db VALUES(1628, "MOLE", "Mole", "Holden", 85, 6228, 1, 1206, 1358, 9, 260, 309, 82, 16, 53, 65, 31, 30, 48, 31, 10, 12, 0, 2, 42, 0x1089, 300, 1400, 960, 504, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 5000, 1018, 5000, 5119, 50, 13101, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4343, 1); -REPLACE INTO mob_db VALUES(1629, "HILL_WIND", "Hill Wind", "Hill Wind", 43, 2870, 0, 340, 340, 3, 290, 480, 9, 15, 21, 50, 31, 50, 59, 23, 10, 12, 1, 2, 64, 0x3885, 200, 336, 540, 432, 0, 0, 0, 0, 0, 0, 0, 0, 517, 1000, 528, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4345, 1); -REPLACE INTO mob_db VALUES(1630, "BACSOJIN_", "Bacsojin", "White Lady", 97, 720500, 1, 668160, 542880, 3, 1088, 3124, 210, 178, 118, 244, 98, 126, 205, 102, 10, 12, 2, 7, 64, 0x39A5, 130, 576, 960, 480, 334080, 10000, 607, 5500, 2513, 2000, 617, 5000, 1020, 5500, 603, 5000, 617, 3000, 7165, 3000, 7166, 1000, 2700, 100, 2234, 10, 0, 0, 0, 0, 4372, 1); -REPLACE INTO mob_db VALUES(1631, "CHUNG_E_", "Chung E", "Green Maiden", 82, 3901, 0, 1049, 1481, 2, 247, 310, 69, 15, 66, 79, 36, 48, 66, 43, 10, 12, 1, 7, 44, 0x3885, 150, 1728, 816, 1188, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 4200, 740, 100, 1806, 10, 518, 500, 0, 0, 0, 0, 5042, 50, 0, 0, 0, 0, 4373, 1); -REPLACE INTO mob_db VALUES(1632, "GREMLIN", "Gremlin", "Gremlin", 118, 20313, 1, 3091, 2318, 1, 606, 744, 76, 25, 141, 75, 48, 61, 90, 37, 10, 12, 2, 6, 47, 0x191, 140, 432, 540, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7340, 3000, 938, 3000, 719, 100, 2406, 1, 1265, 1, 0, 0, 603, 2, 0, 0, 0, 0, 4355, 1); -REPLACE INTO mob_db VALUES(1633, "BEHOLDER", "Beholder", "Beholder", 120, 19280, 1, 3285, 2463, 6, 588, 718, 50, 30, 96, 82, 65, 107, 94, 82, 10, 12, 0, 0, 44, 0x91, 190, 336, 840, 360, 0, 0, 0, 0, 0, 0, 0, 0, 576, 3000, 605, 100, 996, 100, 985, 10, 0, 0, 0, 0, 603, 2, 0, 0, 0, 0, 4356, 1); -REPLACE INTO mob_db VALUES(1634, "SEYREN", "Seyren", "Seyren Windsor", 142, 194962, 1, 10386, 7790, 1, 1670, 1987, 166, 12, 142, 69, 86, 49, 132, 55, 10, 12, 1, 6, 63, 0x3195, 170, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7345, 3000, 13001, 2, 1163, 200, 6223, 10, 2229, 12, 2317, 1, 13421, 100, 0, 0, 0, 0, 4358, 1); -REPLACE INTO mob_db VALUES(1635, "EREMES", "Eremes", "Eremes Guile", 140, 190525, 1, 10329, 6846, 1, 1503, 1674, 122, 12, 145, 87, 59, 67, 127, 76, 10, 12, 1, 6, 85, 0x3195, 180, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7347, 2000, 6223, 1, 2514, 1, 1262, 3, 1264, 30, 678, 110, 1284, 100, 0, 0, 0, 0, 4360, 1); -REPLACE INTO mob_db VALUES(1636, "HARWORD", "Harword", "Howard Alt-Eisen", 142, 348100, 1, 10854, 7241, 1, 1308, 1590, 131, 10, 138, 79, 62, 53, 82, 48, 10, 12, 1, 7, 81, 0x3095, 180, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7345, 3000, 2514, 1, 1311, 100, 1361, 110, 2104, 10, 2318, 1, 6223, 10, 0, 0, 0, 0, 4362, 1); -REPLACE INTO mob_db VALUES(1637, "MAGALETA", "Magaleta", "Margaretha Sorin", 140, 220800, 1, 9895, 7421, 1, 851, 1405, 108, 93, 126, 74, 71, 123, 99, 65, 10, 12, 1, 7, 66, 0x3295, 180, 1152, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7347, 2000, 1647, 100, 6223, 1, 1561, 10, 2327, 1, 603, 50, 2504, 10, 0, 0, 0, 0, 4364, 1); -REPLACE INTO mob_db VALUES(1638, "SHECIL", "Shecil", "Cecil Damon", 141, 190255, 1, 10103, 7577, 14, 1158, 1406, 76, 15, 121, 126, 67, 80, 165, 42, 10, 12, 1, 7, 64, 0x3095, 180, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7345, 3000, 12014, 110, 2331, 10, 1711, 100, 12007, 150, 6223, 1, 1745, 100, 0, 0, 0, 0, 4368, 1); -REPLACE INTO mob_db VALUES(1639, "KATRINN", "Katrinn", "Kathryne Keyron", 141, 219780, 1, 9207, 6905, 1, 726, 1449, 77, 74, 108, 78, 55, 144, 139, 49, 10, 12, 1, 7, 68, 0x3295, 150, 1152, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7345, 3000, 6223, 1, 1646, 100, 1620, 5, 2102, 30, 5085, 1, 2404, 20, 0, 0, 0, 0, 4366, 1); -REPLACE INTO mob_db VALUES(1640, "G_SEYREN", "Lord Knight Seyren", "Lord Knight Seyren", 160, 2680000, 1, 0, 0, 1, 4290, 6632, 567, 155, 303, 165, 181, 110, 178, 66, 10, 12, 1, 7, 83, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6223, 100, 0, 0, 0, 0, 617, 10); -REPLACE INTO mob_db VALUES(1641, "G_EREMES", "Assassin Cross Eremes", "Assassin Cross Eremes", 160, 1230000, 1, 0, 0, 1, 4055, 5433, 445, 98, 211, 181, 114, 83, 225, 60, 10, 12, 1, 7, 85, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6223, 100, 0, 0, 0, 0, 617, 10); -REPLACE INTO mob_db VALUES(1642, "G_HARWORD", "Whitesmith Harword", "Whitesmith Howard", 160, 3750000, 1, 0, 0, 1, 3500, 4965, 301, 106, 275, 148, 156, 72, 177, 60, 10, 12, 1, 7, 82, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6223, 100, 0, 0, 0, 0, 617, 10); -REPLACE INTO mob_db VALUES(1643, "G_MAGALETA", "High Priest Magaleta", "High Priest Margaretha", 160, 2800000, 1, 0, 0, 1, 1666, 5062, 231, 349, 172, 150, 164, 203, 155, 88, 10, 12, 1, 7, 86, 0x37B5, 125, 1152, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6223, 100, 0, 0, 0, 0, 617, 10); -REPLACE INTO mob_db VALUES(1644, "G_SHECIL", "Sniper Shecil", "Sniper Cecil", 160, 4140000, 1, 0, 0, 14, 2770, 4320, 178, 135, 176, 258, 155, 132, 309, 95, 10, 12, 1, 7, 84, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6223, 100, 0, 0, 0, 0, 617, 10); -REPLACE INTO mob_db VALUES(1645, "G_KATRINN", "High Wizard Katrinn", "High Wizard Kathryne", 160, 4500000, 1, 0, 0, 1, 1398, 6652, 215, 456, 165, 190, 142, 236, 199, 93, 10, 12, 1, 7, 68, 0x37B5, 150, 1152, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6223, 100, 0, 0, 0, 0, 617, 10); -REPLACE INTO mob_db VALUES(1646, "B_SEYREN", "Lord Knight Seyren", "Lord Knight Seyren", 160, 4680000, 1, 4642560, 3481920, 1, 4290, 6632, 567, 155, 303, 165, 181, 110, 178, 66, 10, 12, 1, 7, 83, 0x37B5, 100, 76, 384, 288, 2321280, 10000, 617, 5500, 603, 5000, 732, 2000, 1132, 2500, 2342, 3500, 2412, 9000, 1470, 3500, 1469, 3000, 1166, 2500, 1415, 1500, 0, 0, 0, 0, 4357, 1); -REPLACE INTO mob_db VALUES(1647, "B_EREMES", "Assassin Cross Eremes", "Assassin Cross Eremes", 160, 4230000, 1, 4185000, 3147120, 1, 4055, 5433, 445, 98, 211, 181, 114, 83, 225, 60, 10, 12, 1, 7, 85, 0x37B5, 100, 76, 384, 288, 2092500, 10000, 617, 5500, 603, 5000, 732, 2000, 1234, 1500, 1230, 1500, 2319, 9000, 1233, 3500, 1232, 3500, 1265, 3500, 13002, 3500, 0, 0, 0, 0, 4359, 1); -REPLACE INTO mob_db VALUES(1648, "B_HARWORD", "Whitesmith Harword", "Whitesmith Howard", 160, 6750000, 1, 3555000, 2664000, 1, 3500, 4965, 301, 106, 275, 148, 156, 72, 177, 60, 10, 12, 1, 7, 82, 0x37B5, 100, 76, 384, 288, 1777500, 10000, 617, 5500, 603, 5000, 732, 2000, 1138, 3500, 1140, 2500, 2318, 9000, 1365, 3500, 1364, 3500, 1369, 2500, 1368, 3500, 0, 0, 0, 0, 4361, 1); -REPLACE INTO mob_db VALUES(1649, "B_MAGALETA", "High Priest Magaleta", "High Priest Margaretha", 160, 4800000, 1, 3465000, 2520000, 1, 1666, 5062, 231, 349, 172, 150, 164, 203, 155, 88, 10, 12, 1, 7, 86, 0x37B5, 125, 1152, 384, 288, 1732500, 10000, 617, 5500, 603, 5000, 732, 2000, 1814, 3500, 2615, 2500, 2513, 9000, 1557, 3500, 1527, 3500, 1528, 2500, 1560, 3500, 0, 0, 0, 0, 4363, 1); -REPLACE INTO mob_db VALUES(1650, "B_SHECIL", "Sniper Shecil", "Sniper Cecil", 160, 4140000, 1, 4106880, 3080160, 14, 2770, 4320, 178, 135, 176, 258, 155, 132, 309, 95, 10, 12, 1, 7, 84, 0x37B5, 100, 76, 384, 288, 2053440, 10000, 617, 5500, 603, 5000, 1723, 2000, 1228, 3500, 1236, 3500, 617, 9000, 1234, 1500, 1237, 3500, 1720, 1500, 1724, 2500, 0, 0, 0, 0, 4367, 1); -REPLACE INTO mob_db VALUES(1651, "B_KATRINN", "High Wizard Katrinn", "High Wizard Kathryne", 160, 4500000, 1, 3240000, 2430000, 1, 1398, 6652, 215, 456, 165, 190, 142, 236, 199, 93, 10, 12, 1, 7, 68, 0x37B5, 150, 1152, 384, 288, 1620000, 10000, 617, 5500, 603, 5000, 732, 2000, 1241, 3500, 1242, 3500, 2616, 9000, 2343, 2500, 2513, 2500, 1618, 3000, 2319, 3500, 0, 0, 0, 0, 4365, 1); -REPLACE INTO mob_db VALUES(1652, "YGNIZEM", "Ygnizem", "Egnigem Cenia", 136, 44327, 1, 5229, 4461, 1, 790, 1018, 124, 8, 144, 92, 86, 69, 99, 68, 10, 12, 1, 7, 43, 0x3885, 145, 576, 432, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7347, 1000, 1170, 1, 1158, 20, 1127, 20, 2313, 10, 1152, 80, 2317, 1, 0, 0, 0, 0, 4346, 1); -REPLACE INTO mob_db VALUES(1653, "WHIKEBAIN", "Whikebain", "Wickebine Tres", 132, 43191, 1, 5094, 4721, 1, 876, 1020, 114, 66, 114, 91, 69, 42, 85, 55, 10, 12, 1, 7, 65, 0x3885, 120, 576, 432, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7345, 2000, 1223, 1, 2306, 40, 1220, 10, 2315, 2, 2620, 1, 13004, 10, 0, 0, 0, 0, 4348, 1); -REPLACE INTO mob_db VALUES(1654, "ARMAIA", "Armaia", "Armeyer Dinze", 134, 46878, 1, 4895, 4909, 1, 793, 948, 119, 4, 123, 59, 85, 65, 96, 62, 10, 12, 1, 7, 62, 0x3885, 120, 576, 432, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7345, 1000, 2504, 1, 1358, 50, 1352, 40, 2311, 10, 1302, 80, 1307, 10, 0, 0, 0, 0, 4347, 1); -REPLACE INTO mob_db VALUES(1655, "EREND", "Erend", "Errende Ebecee", 133, 42764, 1, 4860, 4545, 1, 558, 880, 106, 99, 77, 66, 90, 105, 87, 62, 10, 12, 1, 7, 46, 0x3885, 130, 576, 432, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7345, 500, 2217, 5, 1514, 50, 1517, 20, 2326, 5, 2324, 10, 1523, 1, 0, 0, 0, 0, 4349, 1); -REPLACE INTO mob_db VALUES(1656, "KAVAC", "Kavac", "Kavach Icarus", 135, 43079, 1, 5103, 4276, 9, 663, 792, 86, 48, 103, 109, 62, 50, 149, 48, 10, 12, 1, 7, 44, 0x3885, 150, 576, 432, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7347, 2000, 1716, 1, 12006, 100, 1708, 10, 2308, 5, 2402, 30, 2404, 2, 0, 0, 0, 0, 4351, 1); -REPLACE INTO mob_db VALUES(1657, "RAWREL", "Rawrel", "Laurell Weinder", 133, 40282, 1, 4500, 4477, 1, 445, 877, 76, 88, 67, 79, 65, 122, 112, 57, 10, 12, 1, 7, 48, 0x3885, 150, 576, 432, 288, 0, 0, 0, 0, 0, 0, 0, 0, 934, 1000, 1616, 1, 2102, 5, 1608, 50, 2322, 10, 2333, 30, 2607, 1, 0, 0, 0, 0, 4350, 1); -REPLACE INTO mob_db VALUES(1658, "B_YGNIZEM", "Ygnizem", "Egnigem Cenia", 141, 2910088, 1, 1054400, 1860000, 1, 3057, 5408, 373, 175, 188, 177, 165, 142, 185, 105, 10, 12, 1, 7, 43, 0x37B5, 100, 1008, 864, 288, 527200, 10000, 617, 5500, 603, 5000, 732, 2000, 1162, 1000, 644, 5000, 603, 5000, 1167, 1000, 2320, 1000, 2406, 1000, 1130, 1000, 0, 0, 0, 0, 4352, 1); -REPLACE INTO mob_db VALUES(1659, "G_WHIKEBAIN", "Whikebain", "Wickebine Tres", 132, 43191, 1, 0, 0, 1, 876, 1020, 114, 66, 114, 91, 69, 42, 85, 55, 10, 12, 1, 7, 65, 0x3885, 120, 1008, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1660, "G_ARMAIA", "Armaia", "Armeyer Dinze", 134, 46878, 1, 0, 0, 1, 793, 948, 119, 4, 123, 59, 85, 65, 96, 62, 10, 12, 1, 7, 62, 0x3885, 120, 1008, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1661, "G_EREND", "Erend", "Errende Ebecee", 133, 42764, 1, 0, 0, 1, 558, 880, 106, 99, 77, 66, 90, 105, 87, 62, 10, 12, 1, 7, 46, 0x3885, 130, 1008, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1662, "G_KAVAC", "Kavac", "Kavach Icarus", 135, 43079, 1, 0, 0, 9, 663, 792, 86, 48, 103, 109, 62, 50, 149, 48, 10, 12, 1, 7, 44, 0x3885, 150, 1008, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1663, "G_RAWREL", "Rawrel", "Laurell Weinder", 133, 40282, 1, 0, 0, 1, 445, 877, 76, 88, 67, 79, 65, 122, 112, 57, 10, 12, 1, 7, 48, 0x3885, 150, 1008, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1664, "POTON_CANON", "Photon Cannon", "Photon Cannon", 66, 8000, 0, 800, 600, 9, 800, 900, 16, 30, 1, 40, 25, 20, 80, 80, 10, 12, 1, 0, 40, 0x84, 300, 1536, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7126, 5000, 718, 1000, 938, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1665, "POTON_CANON_1", "Photon Cannon", "Photon Cannon", 67, 7500, 0, 600, 800, 9, 700, 800, 24, 30, 1, 40, 30, 40, 86, 80, 10, 12, 1, 0, 40, 0x84, 300, 1536, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7126, 5000, 726, 1000, 938, 1000, 13160, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1666, "POTON_CANON_2", "Photon Cannon", "Photon Cannon", 64, 7100, 0, 800, 600, 9, 800, 900, 13, 30, 1, 40, 21, 29, 80, 91, 10, 12, 1, 0, 40, 0x84, 300, 1536, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7126, 5000, 721, 1000, 938, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1667, "POTON_CANON_3", "Photon Cannon", "Photon Cannon", 65, 7800, 0, 600, 800, 9, 700, 800, 24, 30, 1, 40, 23, 30, 90, 99, 10, 12, 1, 0, 40, 0x84, 300, 1536, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7126, 5000, 728, 1000, 938, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1668, "ARCHDAM", "Archdam", "Archdam", 119, 20700, 1, 2862, 2147, 3, 603, 722, 98, 15, 118, 64, 70, 65, 66, 25, 10, 12, 2, 7, 60, 0x3695, 180, 580, 288, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7317, 5000, 999, 500, 984, 200, 985, 200, 13156, 5, 13167, 5, 0, 0, 0, 0, 0, 0, 4371, 1); -REPLACE INTO mob_db VALUES(1669, "DIMIK", "Dimik", "Dimik", 77, 10000, 0, 0, 0, 5, 1040, 1880, 45, 28, 15, 69, 40, 15, 63, 42, 10, 12, 1, 0, 40, 0x3885, 200, 576, 720, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4370, 1); -REPLACE INTO mob_db VALUES(1670, "DIMIK_1", "Dimik", "Dimik", 116, 17552, 1, 2916, 2187, 7, 656, 763, 93, 28, 114, 90, 66, 52, 122, 41, 10, 12, 1, 0, 44, 0x3885, 150, 576, 720, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7319, 2000, 7352, 50, 6216, 70, 7094, 300, 13153, 5, 984, 10, 12128, 50, 0, 0, 0, 0, 4370, 1); -REPLACE INTO mob_db VALUES(1671, "DIMIK_2", "Dimik", "Dimik", 116, 23840, 1, 2916, 2187, 5, 630, 733, 76, 21, 118, 72, 62, 55, 88, 38, 10, 12, 1, 0, 41, 0x3885, 200, 576, 720, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7319, 2000, 7353, 50, 999, 300, 7094, 300, 13169, 10, 984, 10, 12128, 50, 0, 0, 0, 0, 4370, 1); -REPLACE INTO mob_db VALUES(1672, "DIMIK_3", "Dimik", "Dimik", 116, 21920, 1, 2916, 2187, 5, 610, 705, 114, 24, 115, 64, 68, 50, 82, 35, 10, 12, 1, 0, 42, 0x3885, 200, 576, 720, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7319, 2000, 7354, 50, 999, 300, 7094, 300, 2656, 10, 984, 10, 12128, 50, 0, 0, 0, 0, 4370, 1); -REPLACE INTO mob_db VALUES(1673, "DIMIK_4", "Dimik", "Dimik", 116, 16940, 1, 2916, 2187, 5, 699, 823, 98, 28, 112, 79, 72, 53, 86, 47, 10, 12, 1, 0, 43, 0x3885, 200, 576, 720, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7319, 2000, 7355, 50, 999, 300, 7094, 300, 2656, 10, 984, 10, 6216, 70, 0, 0, 0, 0, 4370, 1); -REPLACE INTO mob_db VALUES(1674, "MONEMUS", "Monemus", "Monemus", 88, 80000, 1, 0, 0, 5, 2400, 3400, 87, 25, 0, 1, 90, 24, 144, 45, 14, 12, 2, 0, 63, 0x1A4, 400, 1368, 1344, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7049, 2000, 953, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1675, "VENATU", "Venatu", "Venatu", 77, 12717, 1, 0, 0, 2, 652, 779, 96, 20, 99, 56, 58, 62, 48, 30, 10, 12, 1, 0, 43, 0x3885, 150, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4369, 1); -REPLACE INTO mob_db VALUES(1676, "VENATU_1", "Venatu", "Venatu", 113, 15900, 1, 2448, 1836, 2, 687, 772, 95, 20, 109, 54, 60, 50, 60, 30, 10, 12, 1, 0, 40, 0x3885, 150, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7317, 2000, 7356, 350, 6216, 100, 7094, 300, 13157, 5, 985, 10, 12127, 100, 0, 0, 0, 0, 4369, 1); -REPLACE INTO mob_db VALUES(1677, "VENATU_2", "Venatu", "Venatu", 113, 14717, 1, 2637, 1980, 2, 655, 762, 86, 20, 99, 73, 58, 62, 98, 30, 10, 12, 1, 0, 44, 0x3885, 150, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7317, 2000, 7357, 500, 999, 300, 7094, 300, 13164, 10, 985, 10, 12127, 100, 0, 0, 0, 0, 4369, 1); -REPLACE INTO mob_db VALUES(1678, "VENATU_3", "Venatu", "Venatu", 113, 21040, 1, 2643, 1983, 2, 698, 798, 104, 16, 103, 50, 62, 57, 69, 30, 10, 12, 1, 0, 42, 0x3885, 150, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7317, 2000, 7358, 400, 999, 300, 7094, 300, 2656, 10, 985, 10, 12127, 100, 0, 0, 0, 0, 4369, 1); -REPLACE INTO mob_db VALUES(1679, "VENATU_4", "Venatu", "Venatu", 113, 21810, 1, 2643, 1983, 2, 656, 745, 74, 15, 106, 69, 61, 55, 72, 30, 10, 12, 1, 0, 41, 0x3885, 150, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7317, 2000, 7359, 300, 999, 300, 7094, 300, 2656, 10, 985, 10, 6216, 100, 0, 0, 0, 0, 4369, 1); -REPLACE INTO mob_db VALUES(1680, "HILL_WIND_1", "Hill Wind", "Hill Wind", 101, 9100, 1, 1900, 1425, 3, 308, 375, 90, 37, 105, 69, 59, 35, 80, 25, 10, 12, 1, 2, 64, 0x3885, 170, 504, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7115, 4000, 7116, 3000, 528, 1000, 510, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4345, 1); -REPLACE INTO mob_db VALUES(1681, "GEMINI", "Gemini-S58", "Gemini-S58", 135, 108999, 1, 4725, 3543, 3, 785, 1107, 89, 45, 115, 92, 81, 92, 94, 66, 10, 12, 1, 0, 21, 0x39A5, 200, 1872, 360, 864, 0, 0, 0, 0, 0, 0, 0, 0, 7005, 3000, 603, 1000, 13159, 5, 546, 500, 547, 400, 7479, 6, 12040, 300, 0, 0, 0, 0, 4354, 1); -REPLACE INTO mob_db VALUES(1682, "REMOVAL", "Removal", "Remover", 121, 32235, 0, 3772, 2829, 1, 713, 833, 110, 47, 127, 50, 82, 35, 89, 50, 10, 12, 1, 1, 49, 0x3885, 250, 1536, 1056, 1152, 0, 0, 0, 0, 0, 0, 0, 0, 713, 5000, 7319, 5000, 5005, 10, 549, 500, 971, 50, 972, 100, 5120, 6, 0, 0, 0, 0, 4353, 1); -REPLACE INTO mob_db VALUES(1683, "G_POTON_CANON", "Photon Cannon", "Photon Cannon", 66, 8000, 0, 0, 0, 9, 800, 900, 16, 30, 1, 40, 25, 20, 80, 80, 10, 12, 1, 0, 43, 0x3885, 300, 1536, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1684, "G_ARCHDAM", "Archdam", "Archdam", 119, 20700, 1, 0, 0, 3, 603, 722, 98, 15, 118, 64, 70, 65, 66, 25, 10, 12, 2, 8, 60, 0x3885, 180, 1080, 288, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1685, "APOCALIPS_H", "Vesper", "Vesper", 128, 3802000, 1, 2700000, 2250000, 3, 2620, 7276, 402, 109, 177, 195, 165, 130, 182, 102, 10, 12, 2, 2, 46, 0x37B5, 180, 504, 912, 432, 100000, 10000, 617, 5500, 603, 5000, 732, 2000, 7095, 5000, 7094, 3000, 617, 1000, 2659, 100, 2660, 100, 2661, 100, 2662, 100, 0, 0, 0, 0, 4374, 1); -REPLACE INTO mob_db VALUES(1686, "ORC_BABY", "Orc Baby", "Orc Baby", 43, 1122, 1, 315, 354, 1, 64, 75, 49, 3, 25, 1, 32, 20, 31, 35, 10, 12, 0, 7, 22, 0x3885, 200, 672, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7126, 1000, 10004, 100, 2299, 1, 519, 5000, 7270, 200, 7269, 100, 0, 0, 0, 0, 0, 0, 4375, 1); -REPLACE INTO mob_db VALUES(1687, "GREEN_IGUANA", "Green Iguana", "Grove", 55, 2090, 1, 486, 548, 9, 139, 174, 96, 18, 58, 42, 22, 5, 45, 17, 10, 12, 1, 2, 42, 0x83, 200, 1152, 1152, 480, 0, 0, 0, 0, 0, 0, 0, 0, 521, 1500, 903, 1000, 520, 1000, 511, 1000, 528, 2000, 606, 10, 6264, 500, 0, 0, 0, 0, 4377, 1); -REPLACE INTO mob_db VALUES(1688, "LADY_TANEE", "Lady Tanee", "Lady Tanee", 80, 360000, 1, 334080, 261000, 14, 1760, 2685, 141, 104, 86, 108, 88, 121, 200, 71, 10, 12, 2, 3, 64, 0x1A4, 100, 576, 432, 360, 167040, 10000, 617, 5500, 12095, 5000, 732, 2000, 12090, 5000, 634, 4000, 12129, 1000, 5116, 1000, 985, 5000, 617, 2000, 1716, 6000, 0, 0, 0, 0, 4376, 1); -REPLACE INTO mob_db VALUES(1689, "G_BACSOJIN", "Bacsojin", "White Lady", 97, 720500, 1, 0, 0, 3, 1088, 3124, 210, 178, 118, 244, 98, 126, 205, 102, 10, 12, 2, 7, 64, 0x37B5, 130, 576, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1690, "G_SPRING_RABBIT", "Spring Rabbit", "Spring Rabbit", 12, 15, 1, 0, 0, 1, 0, 0, 160, 99, 1, 1, 1, 1, 1, 1, 10, 12, 1, 2, 20, 0xC3, 160, 1120, 552, 511, 0, 0, 0, 0, 0, 0, 0, 0, 6005, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1691, "G_KRABEN", "Kraben", "Kraben", 70, 2901, 1, 0, 0, 1, 266, 311, 108, 20, 54, 33, 35, 15, 62, 20, 10, 12, 1, 0, 48, 0x3885, 100, 1152, 1536, 576, 0, 0, 0, 0, 0, 0, 0, 0, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1692, "BREEZE", "Breeze", "Breeze", 92, 6755, 1, 1598, 1797, 2, 379, 431, 83, 32, 75, 101, 46, 35, 66, 55, 10, 12, 1, 0, 64, 0x3885, 100, 140, 384, 504, 0, 0, 0, 0, 0, 0, 0, 0, 945, 500, 706, 10, 2270, 10, 1733, 10, 604, 10, 2269, 10, 996, 10, 0, 0, 0, 0, 4390, 1); -REPLACE INTO mob_db VALUES(1693, "PLASMA_Y", "Plasma", "Plasma", 119, 20600, 1, 2111, 2882, 1, 615, 750, 130, 45, 141, 94, 75, 91, 103, 50, 10, 12, 0, 0, 88, 0x3885, 150, 1056, 1056, 336, 0, 0, 0, 0, 0, 0, 0, 0, 911, 100, 644, 10, 731, 2, 715, 100, 969, 1, 7938, 300, 0, 0, 0, 0, 0, 0, 4389, 1); -REPLACE INTO mob_db VALUES(1694, "PLASMA_R", "Plasma", "Plasma", 118, 16789, 1, 3549, 2661, 1, 835, 935, 111, 12, 147, 77, 66, 65, 95, 50, 10, 12, 0, 0, 83, 0x3885, 150, 912, 1248, 576, 0, 0, 0, 0, 0, 0, 0, 0, 911, 100, 644, 10, 731, 2, 716, 100, 990, 45, 0, 0, 0, 0, 0, 0, 0, 0, 4389, 1); -REPLACE INTO mob_db VALUES(1695, "PLASMA_G", "Plasma", "Plasma", 116, 24975, 1, 3348, 2511, 1, 608, 720, 120, 3, 121, 60, 58, 62, 73, 50, 10, 12, 0, 0, 82, 0x3885, 100, 1000, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 911, 100, 644, 10, 731, 2, 717, 100, 993, 40, 0, 0, 0, 0, 0, 0, 0, 0, 4389, 1); -REPLACE INTO mob_db VALUES(1696, "PLASMA_P", "Plasma", "Plasma", 117, 18955, 1, 3348, 2511, 1, 623, 762, 78, 49, 130, 71, 72, 70, 87, 50, 10, 12, 0, 0, 87, 0x3885, 350, 768, 1440, 672, 0, 0, 0, 0, 0, 0, 0, 0, 911, 100, 644, 10, 731, 2, 716, 100, 724, 100, 0, 0, 0, 0, 0, 0, 0, 0, 4389, 1); -REPLACE INTO mob_db VALUES(1697, "PLASMA_B", "Plasma", "Plasma", 115, 24651, 1, 3181, 2384, 1, 428, 498, 51, 18, 124, 74, 60, 55, 66, 50, 10, 12, 0, 0, 81, 0x3885, 150, 720, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 911, 100, 644, 10, 731, 2, 717, 100, 991, 35, 0, 0, 0, 0, 0, 0, 0, 0, 4389, 1); -REPLACE INTO mob_db VALUES(1698, "DEATHWORD", "Deathword", "Death Word", 114, 16390, 1, 2565, 1923, 1, 596, 721, 68, 40, 91, 64, 53, 88, 99, 54, 10, 12, 1, 0, 60, 0x3695, 150, 176, 912, 300, 0, 0, 0, 0, 0, 0, 0, 0, 1097, 4000, 7015, 300, 11003, 50, 7449, 500, 2418, 10, 7479, 2, 7480, 1, 0, 0, 0, 0, 4388, 1); -REPLACE INTO mob_db VALUES(1699, "ANCIENT_MIMIC", "Ancient Mimic", "Ancient Mimic", 112, 14700, 1, 2448, 2069, 1, 685, 769, 100, 40, 121, 70, 63, 43, 101, 67, 10, 12, 2, 0, 60, 0x3885, 100, 168, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 603, 30, 617, 1, 644, 50, 2404, 5, 2506, 1, 2417, 10, 2610, 100, 0, 0, 0, 0, 4387, 1); -REPLACE INTO mob_db VALUES(1700, "OBSERVATION", "Observation", "Dame of Sentinel", 127, 34538, 1, 3735, 2801, 2, 643, 795, 98, 55, 99, 75, 52, 55, 106, 80, 10, 12, 1, 8, 80, 0x33B5, 100, 432, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7441, 500, 2621, 1, 7442, 100, 728, 1000, 12040, 100, 2210, 10, 7435, 100, 0, 0, 0, 0, 4392, 1); -REPLACE INTO mob_db VALUES(1701, "SHELTER", "Shelter", "Mistress of Shelter", 125, 27000, 1, 4010, 3051, 2, 691, 935, 80, 89, 99, 66, 41, 103, 95, 89, 10, 12, 1, 8, 66, 0x33B5, 160, 432, 420, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7440, 200, 7442, 1, 12040, 50, 722, 1000, 7005, 1000, 7442, 50, 0, 0, 0, 0, 0, 0, 4393, 1); -REPLACE INTO mob_db VALUES(1702, "RETRIBUTION", "Retribution", "Baroness of Retribution", 121, 22152, 1, 3528, 2463, 2, 798, 1102, 61, 35, 112, 60, 45, 77, 78, 70, 10, 12, 1, 8, 67, 0x33B5, 120, 360, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7440, 400, 2621, 1, 12040, 50, 723, 1000, 2506, 5, 1158, 10, 7442, 50, 0, 0, 0, 0, 4391, 1); -REPLACE INTO mob_db VALUES(1703, "SOLACE", "Solace", "Lady Solace", 123, 24729, 1, 3758, 2819, 2, 667, 832, 96, 96, 106, 65, 61, 42, 82, 72, 10, 12, 1, 8, 66, 0x33B5, 180, 576, 420, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7441, 200, 2621, 1, 12040, 50, 718, 1000, 1910, 50, 1909, 100, 7442, 50, 0, 0, 0, 0, 4394, 1); -REPLACE INTO mob_db VALUES(1704, "THA_ODIUM", "Thanatos Odium", "Odium of Thanatos", 129, 40200, 1, 3960, 3666, 9, 758, 902, 120, 30, 106, 78, 71, 54, 129, 31, 10, 12, 2, 1, 88, 0x37B5, 100, 432, 288, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 1000, 731, 500, 732, 100, 7438, 10000, 616, 10, 2520, 1000, 0, 0, 0, 0, 0, 0, 4396, 1); -REPLACE INTO mob_db VALUES(1705, "THA_DESPERO", "Thanatos Despero", "Despero of Thanatos", 129, 41111, 1, 3960, 3666, 2, 737, 908, 95, 69, 111, 96, 66, 65, 91, 52, 10, 12, 2, 1, 88, 0x37B5, 150, 160, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 1000, 731, 500, 732, 100, 7439, 10000, 616, 10, 2419, 1000, 0, 0, 0, 0, 0, 0, 4397, 1); -REPLACE INTO mob_db VALUES(1706, "THA_MAERO", "Thanatos Maero", "Maero of Thanatos", 129, 42599, 1, 3960, 3666, 2, 756, 1001, 96, 90, 97, 111, 70, 133, 82, 67, 10, 12, 1, 1, 88, 0x37B5, 150, 160, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 1000, 731, 500, 732, 100, 7437, 10000, 616, 10, 2354, 1000, 0, 0, 0, 0, 0, 0, 4395, 1); -REPLACE INTO mob_db VALUES(1707, "THA_DOLOR", "Thanatos Dolor", "Dolor of Thanatos", 129, 45000, 1, 3960, 3666, 2, 700, 901, 71, 80, 91, 72, 59, 96, 78, 79, 10, 12, 0, 1, 88, 0x37B5, 150, 160, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 1000, 731, 500, 732, 100, 7436, 10000, 616, 10, 5128, 1000, 0, 0, 0, 0, 0, 0, 4398, 1); -REPLACE INTO mob_db VALUES(1708, "THANATOS", "Thanatos", "Thanatos Phantom", 99, 1445660, 1, 1299400, 1930554, 3, 3812, 5483, 364, 35, 100, 129, 30, 86, 206, 32, 10, 12, 2, 6, 88, 0x37B5, 120, 115, 816, 504, 649700, 10000, 617, 5500, 603, 5000, 732, 2000, 7444, 1000, 2519, 1000, 7450, 5000, 2342, 5000, 2412, 5000, 2515, 1000, 2655, 500, 0, 0, 0, 0, 4399, 1); -REPLACE INTO mob_db VALUES(1709, "G_THA_ODIUM", "Thanatos Odium", "Odium of Thanatos", 129, 40200, 1, 0, 0, 9, 758, 902, 120, 30, 106, 78, 71, 54, 129, 31, 10, 12, 2, 1, 88, 0x33B5, 100, 115, 288, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 1000, 731, 500, 732, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1710, "G_THA_DESPERO", "Thanatos Despero", "Despero of Thanatos", 129, 41111, 1, 0, 0, 2, 737, 908, 95, 69, 111, 96, 66, 65, 91, 52, 10, 12, 2, 1, 88, 0x33B5, 150, 160, 528, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 1000, 731, 500, 732, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1711, "G_THA_MAERO", "Thanatos Maero", "Maero of Thanatos", 129, 42599, 1, 0, 0, 2, 756, 1001, 96, 90, 97, 111, 70, 133, 82, 67, 10, 12, 1, 1, 88, 0x33B5, 150, 160, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 1000, 731, 500, 732, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1712, "G_THA_DOLOR", "Thanatos Dolor", "Dolor of Thanatos", 129, 45000, 1, 0, 0, 2, 700, 901, 71, 80, 91, 72, 59, 96, 78, 79, 10, 12, 0, 1, 88, 0x33B5, 150, 160, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 1000, 731, 500, 732, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1713, "ACIDUS", "Acidus", "Acidus", 130, 48430, 1, 4520, 3389, 2, 622, 1017, 101, 90, 109, 78, 50, 55, 77, 55, 10, 12, 2, 9, 46, 0x3095, 170, 168, 1008, 300, 0, 0, 0, 0, 0, 0, 0, 0, 7938, 500, 1035, 4000, 7444, 5, 1036, 3589, 7448, 800, 1269, 10, 2114, 50, 0, 0, 0, 0, 4378, 1); -REPLACE INTO mob_db VALUES(1714, "FERUS", "Ferus", "Ferus", 126, 25668, 1, 3985, 2989, 2, 692, 807, 96, 45, 94, 80, 55, 60, 78, 50, 10, 12, 2, 9, 43, 0x3095, 100, 108, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 578, 2200, 1035, 1000, 7123, 1000, 1036, 2000, 7447, 800, 994, 20, 5122, 50, 0, 0, 0, 0, 4380, 1); -REPLACE INTO mob_db VALUES(1715, "NOVUS", "Novus", "Novus", 90, 6670, 1, 1305, 1505, 1, 388, 445, 95, 48, 74, 56, 57, 25, 90, 45, 10, 12, 0, 9, 20, 0x3885, 110, 151, 288, 360, 0, 0, 0, 0, 0, 0, 0, 0, 511, 3000, 7053, 1035, 0, 0, 1036, 589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4383, 1); -REPLACE INTO mob_db VALUES(1716, "ACIDUS_", "Acidus", "Acidus", 130, 40718, 1, 4520, 3389, 2, 703, 861, 98, 47, 106, 110, 61, 53, 95, 53, 10, 12, 2, 9, 44, 0x3095, 180, 168, 768, 360, 0, 0, 0, 0, 0, 0, 0, 0, 505, 150, 1035, 4000, 510, 150, 1036, 3589, 7446, 800, 996, 20, 7446, 100, 0, 0, 0, 0, 4379, 1); -REPLACE INTO mob_db VALUES(1717, "FERUS_", "Ferus", "Ferus", 126, 39054, 1, 4185, 2989, 2, 647, 769, 111, 33, 91, 57, 57, 61, 62, 51, 10, 12, 2, 9, 42, 0x3095, 120, 108, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 579, 5100, 1035, 1000, 0, 0, 1036, 3589, 7445, 800, 997, 20, 7445, 100, 0, 0, 0, 0, 4381, 1); -REPLACE INTO mob_db VALUES(1718, "NOVUS_", "Novus", "Novus", 84, 5028, 1, 1080, 1215, 1, 266, 314, 88, 28, 53, 43, 43, 55, 90, 58, 10, 12, 0, 9, 20, 0x3885, 100, 252, 816, 480, 0, 0, 0, 0, 0, 0, 0, 0, 508, 2000, 7053, 1035, 0, 0, 1036, 589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4382, 1); -REPLACE INTO mob_db VALUES(1719, "DETALE", "Detale", "Detardeurus", 135, 6005000, 1, 4320000, 3420000, 3, 4072, 6734, 364, 166, 165, 153, 171, 136, 185, 72, 10, 12, 2, 9, 67, 0x37B5, 250, 432, 936, 360, 2160000, 10000, 617, 5500, 603, 5000, 732, 2000, 2649, 1000, 2648, 1000, 7444, 5000, 7451, 3589, 12080, 1000, 1417, 100, 5002, 500, 0, 0, 0, 0, 4386, 1); -REPLACE INTO mob_db VALUES(1720, "HYDRO", "Hydro", "Hydrolancer", 121, 41500, 0, 6285, 4463, 3, 760, 910, 92, 58, 120, 72, 67, 66, 88, 58, 10, 12, 2, 9, 47, 0x37B5, 160, 140, 672, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7123, 4000, 1035, 4000, 7443, 3880, 5126, 500, 5127, 500, 12085, 300, 5124, 500, 0, 0, 0, 0, 4384, 1); -REPLACE INTO mob_db VALUES(1721, "DRAGON_EGG", "Dragon Egg", "Dragon Egg", 119, 20990, 1, 2862, 2147, 0, 503, 653, 172, 85, 84, 59, 85, 40, 118, 65, 10, 12, 1, 9, 40, 0x0, 1000, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 5, 7032, 100, 731, 10, 732, 5, 718, 10, 720, 10, 728, 10, 0, 0, 0, 0, 4385, 1); -REPLACE INTO mob_db VALUES(1722, "EVENT_JAKK", "Jakk", "Jakk", 99, 10310, 0, 93, 90, 1, 115, 182, 8, 11, 1, 28, 18, 13, 35, 45, 10, 12, 1, 0, 43, 0x81, 240, 1180, 480, 648, 0, 0, 0, 0, 0, 0, 0, 0, 7225, 1000, 1062, 1000, 535, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5134, 10000); -REPLACE INTO mob_db VALUES(1723, "A_SHECIL", "Shecil Damon", "Cecil Damon", 82, 30000, 0, 0, 0, 14, 600, 900, 40, 15, 1, 145, 27, 32, 134, 80, 10, 12, 1, 7, 64, 0x3695, 180, 1008, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1724, "A_POTON_CANON", "Photon Cannon", "Photon Cannon", 66, 8000, 0, 0, 0, 9, 1000, 1300, 16, 30, 1, 40, 25, 20, 80, 80, 10, 12, 1, 0, 40, 0x84, 300, 1536, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1725, "R_PORING", "Poring", "Poring", 1, 50, 0, 0, 0, 1, 7, 10, 0, 5, 1, 1, 1, 0, 6, 30, 10, 12, 1, 3, 21, 0x83, 150, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1726, "R_LUNATIC", "Lunatic", "Lunatic", 3, 60, 0, 0, 0, 1, 9, 12, 0, 20, 1, 3, 3, 10, 8, 60, 10, 12, 0, 2, 60, 0x83, 150, 1456, 456, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1727, "R_SAVAGE_BABE", "Savage Babe", "Savage Babe", 7, 182, 0, 0, 0, 1, 20, 25, 0, 0, 1, 7, 14, 5, 12, 35, 10, 12, 0, 2, 22, 0x83, 150, 1624, 624, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1728, "R_DESERT_WOLF_B", "Desert Wolf Baby", "Baby Desert Wolf", 14, 140, 1, 0, 0, 1, 33, 41, 13, 0, 10, 12, 8, 5, 28, 7, 10, 12, 0, 2, 23, 0x83, 150, 1600, 900, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1729, "R_BAPHOMET_", "Baphomet Jr.", "Baphomet Jr.", 50, 8578, 0, 0, 0, 1, 487, 590, 24, 25, 1, 75, 55, 1, 93, 45, 10, 12, 0, 6, 27, 0x183, 150, 868, 480, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1730, "R_DEVIRUCHI", "Deviruchi", "Deviruchi", 64, 2300, 1, 0, 0, 1, 210, 283, 62, 30, 61, 17, 30, 35, 52, 5, 10, 12, 0, 6, 27, 0x183, 150, 980, 600, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1731, "G_DOPPELGANGER", "Doppelganger", "Doppelganger", 77, 380000, 1, 313200, 250560, 1, 1639, 2815, 246, 86, 122, 122, 105, 67, 169, 72, 10, 12, 2, 8, 48, 0x37B5, 190, 480, 480, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7484, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1732, "G_TREASURE_BOX", "Treasure Chest", "Treasure Chest", 98, 500, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7486, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1733, "KIEL", "Kiel", "Kiehl", 90, 523500, 1, 32850, 21065, 3, 2018, 3647, 45, 32, 100, 112, 76, 89, 156, 102, 10, 12, 1, 0, 47, 0x37B5, 140, 1152, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1734, "KIEL_", "Kiel D-01", "Kiel D-01", 125, 2502000, 1, 1800000, 1440000, 3, 2937, 6517, 314, 232, 166, 187, 155, 141, 199, 180, 10, 12, 1, 0, 47, 0x37B5, 130, 1152, 576, 432, 900000, 10000, 617, 5500, 603, 5000, 616, 2000, 7513, 3000, 617, 3000, 2651, 1000, 2319, 1000, 1618, 500, 1242, 500, 2650, 1000, 0, 0, 0, 0, 4403, 1); -REPLACE INTO mob_db VALUES(1735, "ALICEL", "Alicel", "Alicel", 115, 18000, 1, 2565, 1923, 2, 537, 635, 109, 30, 121, 53, 59, 63, 73, 60, 10, 12, 1, 6, 60, 0x318D, 250, 1080, 480, 504, 0, 0, 0, 0, 0, 0, 0, 0, 7512, 2000, 7507, 3000, 2148, 5, 6214, 200, 1270, 5, 985, 10, 2517, 20, 0, 0, 0, 0, 4401, 1); -REPLACE INTO mob_db VALUES(1736, "ALIOT", "Aliot", "Aliot", 112, 15669, 1, 2448, 1836, 2, 608, 697, 106, 15, 111, 56, 55, 42, 62, 75, 10, 12, 1, 6, 60, 0x318D, 200, 1296, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7512, 2000, 7507, 3000, 2516, 10, 6214, 200, 1810, 10, 985, 10, 13405, 15, 0, 0, 0, 0, 4402, 1); -REPLACE INTO mob_db VALUES(1737, "ALIZA", "Aliza", "Aliza", 112, 14450, 1, 2448, 1836, 1, 600, 697, 98, 5, 115, 50, 51, 62, 70, 54, 10, 12, 1, 7, 60, 0x91, 220, 1440, 576, 600, 0, 0, 0, 0, 0, 0, 0, 0, 7054, 4000, 2518, 10, 2626, 10, 7047, 5, 12128, 50, 661, 1, 2123, 5, 0, 0, 0, 0, 4400, 1); -REPLACE INTO mob_db VALUES(1738, "CONSTANT", "Constant", "Constant", 108, 12050, 0, 2506, 1879, 1, 660, 804, 92, 82, 126, 98, 62, 57, 91, 34, 10, 12, 0, 0, 67, 0x3885, 150, 720, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7512, 100, 7507, 1500, 7325, 10, 999, 10, 757, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1739, "G_ALICEL", "Alicel", "Alicel", 115, 18000, 1, 0, 0, 2, 537, 635, 109, 30, 121, 53, 59, 63, 73, 60, 10, 12, 1, 6, 60, 0x318D, 250, 1080, 480, 504, 0, 0, 0, 0, 0, 0, 0, 0, 7507, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1740, "G_ALIOT", "Aliot", "Aliot", 112, 15669, 1, 0, 0, 2, 608, 697, 106, 15, 111, 56, 55, 42, 62, 75, 10, 12, 1, 6, 60, 0x318D, 200, 1296, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7507, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1741, "G_COOKIE_XMAS", "Christmas Cookie", "Christmas Cookie", 37, 733, 1, 0, 0, 1, 70, 105, 48, 36, 21, 16, 30, 20, 25, 5, 10, 12, 0, 7, 46, 0x3885, 400, 1248, 1248, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1742, "G_CARAT", "Carat", "Carat", 103, 9222, 1, 0, 0, 1, 598, 674, 111, 67, 102, 64, 60, 40, 67, 50, 10, 12, 1, 6, 44, 0x3985, 200, 1078, 768, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1743, "G_MYSTCASE", "Myst Case", "Myst Case", 39, 879, 1, 0, 0, 1, 68, 89, 50, 11, 26, 19, 40, 35, 31, 25, 10, 12, 1, 0, 60, 0x3885, 400, 1248, 1248, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1744, "G_WILD_ROSE", "Wild Rose", "Wild Rose", 70, 2682, 1, 0, 0, 1, 140, 185, 75, 15, 44, 87, 31, 35, 63, 80, 10, 12, 0, 2, 24, 0x3885, 100, 964, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1745, "G_CONSTANT", "Constant", "Constant", 108, 2000, 0, 0, 0, 1, 560, 704, 92, 82, 126, 98, 62, 57, 91, 34, 10, 12, 0, 6, 67, 0x2185, 110, 720, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7507, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1746, "G_ALIZA", "Aliza", "Aliza", 112, 14450, 1, 0, 0, 1, 600, 697, 98, 5, 115, 50, 51, 62, 70, 54, 10, 12, 1, 7, 60, 0x3885, 220, 1440, 576, 600, 0, 0, 0, 0, 0, 0, 0, 0, 7507, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1747, "G_SNAKE", "Snake", "Boa", 18, 217, 1, 0, 0, 1, 29, 34, 9, 8, 10, 8, 18, 10, 14, 15, 10, 12, 1, 2, 22, 0x3885, 200, 1576, 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1748, "G_ANACONDAQ", "Anacondaq", "Anacondaq", 100, 8510, 1, 0, 0, 1, 388, 443, 92, 0, 79, 46, 28, 43, 56, 25, 10, 12, 1, 2, 25, 0x3885, 200, 1576, 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1749, "G_MEDUSA", "Medusa", "Medusa", 102, 10045, 1, 0, 0, 1, 477, 590, 87, 66, 99, 68, 65, 79, 69, 15, 10, 12, 1, 6, 40, 0x3985, 180, 1720, 1320, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1750, "G_RED_PLANT", "Red Plant", "Red Plant", 1, 100, 1, 0, 0, 1, 100, 200, 160, 99, 0, 0, 0, 0, 0, 100, 7, 12, 0, 3, 22, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1751, "RANDGRIS", "Valkyrie Randgris", "Valkyrie Randgris", 141, 2205000, 1, 2000000, 2200000, 3, 2895, 9307, 588, 506, 196, 131, 125, 276, 267, 156, 10, 12, 2, 8, 86, 0x37B5, 100, 576, 576, 480, 1000000, 10000, 617, 5500, 603, 5000, 616, 2000, 7510, 5000, 2357, 1600, 2524, 3000, 2421, 3000, 2229, 5000, 7024, 2500, 0, 0, 0, 0, 0, 0, 4407, 1); -REPLACE INTO mob_db VALUES(1752, "SKOGUL", "Skogul", "Skogul", 126, 34240, 1, 4280, 3210, 2, 791, 947, 72, 15, 100, 71, 63, 85, 82, 37, 10, 12, 1, 6, 67, 0x3395, 190, 720, 384, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7511, 3500, 7054, 1000, 716, 1000, 739, 500, 2609, 100, 757, 500, 1271, 5, 0, 0, 0, 0, 4404, 1); -REPLACE INTO mob_db VALUES(1753, "FRUS", "Frus", "Frus", 128, 39520, 1, 4562, 3421, 2, 710, 879, 65, 35, 114, 77, 66, 51, 79, 27, 10, 12, 1, 6, 67, 0x3395, 150, 480, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7511, 3500, 7054, 1000, 716, 1000, 2622, 3, 2308, 10, 757, 500, 0, 0, 0, 0, 0, 0, 4405, 1); -REPLACE INTO mob_db VALUES(1754, "SKEGGIOLD", "Skeggiold", "Skeggiold", 131, 53290, 1, 5552, 4419, 1, 733, 1058, 85, 92, 91, 89, 65, 118, 98, 75, 10, 12, 0, 8, 46, 0x37B5, 250, 672, 780, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7511, 6000, 2254, 1, 7063, 1000, 2001, 25, 7511, 1000, 2322, 100, 2353, 100, 0, 0, 0, 0, 4406, 1); -REPLACE INTO mob_db VALUES(1755, "SKEGGIOLD_", "Skeggiold", "Skeggiold", 131, 52280, 1, 5549, 4411, 1, 767, 985, 80, 86, 91, 86, 67, 116, 102, 71, 10, 12, 0, 8, 46, 0x37B5, 250, 672, 780, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7511, 6000, 2254, 1, 7063, 1000, 2001, 25, 7511, 1000, 2322, 100, 2353, 100, 0, 0, 0, 0, 4406, 1); -REPLACE INTO mob_db VALUES(1756, "G_HYDRO", "Hydro", "Hydrolancer", 121, 41500, 0, 0, 0, 3, 760, 910, 92, 95, 120, 72, 67, 66, 88, 58, 10, 12, 2, 9, 47, 0x39A5, 160, 140, 672, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1757, "G_ACIDUS", "Acidus", "Acidus", 130, 48430, 1, 0, 0, 2, 622, 1017, 101, 47, 109, 78, 50, 55, 77, 55, 10, 12, 2, 9, 46, 0x3885, 170, 168, 1008, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1758, "G_FERUS", "Ferus", "Ferus", 126, 25668, 1, 0, 0, 2, 692, 807, 96, 45, 94, 80, 55, 60, 78, 50, 10, 12, 2, 9, 43, 0x3885, 100, 108, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1759, "G_ACIDUS_", "Acidus", "Acidus", 130, 40718, 1, 0, 0, 2, 703, 861, 98, 90, 106, 110, 61, 53, 95, 53, 10, 12, 2, 9, 44, 0x3885, 180, 168, 768, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1760, "G_FERUS_", "Ferus", "Ferus", 126, 39054, 1, 0, 0, 2, 647, 769, 111, 33, 91, 57, 57, 61, 62, 51, 10, 12, 2, 9, 42, 0x3885, 120, 108, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1761, "G_SKOGUL", "Skogul", "Skogul", 126, 34240, 1, 0, 0, 2, 791, 947, 72, 15, 100, 71, 63, 85, 82, 37, 10, 12, 1, 6, 67, 0x3985, 170, 720, 384, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7511, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1762, "G_FRUS", "Frus", "Frus", 128, 39520, 1, 0, 0, 2, 710, 879, 65, 35, 114, 77, 66, 51, 69, 27, 10, 12, 1, 6, 67, 0x3985, 130, 480, 576, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7511, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1763, "G_SKEGGIOLD", "Skeggiold", "Skeggiold", 131, 53290, 1, 0, 0, 1, 733, 1058, 85, 92, 91, 89, 65, 118, 98, 75, 10, 12, 0, 8, 46, 0x39A5, 200, 672, 780, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7511, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1764, "G_SKEGGIOLD_", "Skeggiold", "Skeggiold", 131, 52280, 1, 0, 0, 1, 767, 985, 80, 86, 91, 86, 67, 116, 102, 71, 10, 12, 0, 8, 46, 0x39A5, 200, 672, 780, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7511, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1765, "G_RANDGRIS", "Valkyrie", "Valkyrie", 141, 1005000, 1, 10000, 10000, 3, 2895, 6101, 588, 506, 196, 131, 125, 276, 267, 156, 10, 12, 2, 8, 86, 0x37B5, 100, 576, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7510, 500, 617, 100, 2115, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1766, "EM_ANGELING", "Angeling", "Angeling", 99, 128430, 0, 0, 0, 1, 60, 71, 64, 50, 1, 17, 80, 80, 126, 20, 10, 12, 0, 8, 66, 0x4B5, 300, 1288, 288, 384, 0, 0, 909, 5000, 909, 5000, 741, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1767, "EM_DEVILING", "Deviling", "Deviling", 99, 128430, 0, 0, 0, 1, 60, 71, 64, 50, 1, 17, 80, 80, 126, 20, 10, 12, 0, 8, 66, 0x4B5, 300, 1288, 288, 384, 0, 0, 909, 5000, 909, 5000, 741, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1768, "GLOOMUNDERNIGHT", "Gloom Under Night", "Gloom Under Night", 139, 3005000, 1, 2160000, 1800000, 3, 3061, 5846, 479, 262, 191, 223, 187, 155, 241, 163, 10, 12, 2, 0, 68, 0x37B5, 200, 1344, 2880, 576, 1080000, 10000, 607, 5500, 617, 5000, 617, 5000, 7566, 7000, 7023, 4000, 7022, 2000, 616, 5000, 2513, 1000, 1377, 100, 0, 0, 0, 0, 0, 0, 4408, 1); -REPLACE INTO mob_db VALUES(1769, "AGAV", "Agav", "Agav", 128, 40000, 1, 3933, 2949, 1, 637, 818, 77, 82, 85, 66, 55, 113, 86, 61, 10, 12, 1, 7, 80, 0x3295, 300, 768, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7567, 2500, 2422, 2, 7563, 4000, 2109, 1, 12183, 50, 7563, 100, 1061, 2500, 0, 0, 0, 0, 4409, 1); -REPLACE INTO mob_db VALUES(1770, "ECHIO", "Echio", "Echio", 126, 31620, 1, 3690, 2768, 1, 606, 765, 66, 11, 111, 63, 51, 37, 94, 45, 10, 12, 1, 7, 80, 0x3295, 250, 768, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7567, 2500, 608, 10, 7563, 4000, 5172, 25, 12183, 20, 7563, 100, 2366, 20, 0, 0, 0, 0, 4410, 1); -REPLACE INTO mob_db VALUES(1771, "VANBERK", "Vanberk", "Vanberk", 123, 24605, 1, 3240, 2430, 1, 656, 797, 100, 6, 109, 70, 55, 60, 87, 54, 10, 12, 1, 7, 80, 0x3885, 250, 768, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7568, 2500, 526, 10, 7563, 1000, 5172, 25, 13027, 5, 7563, 100, 0, 0, 0, 0, 0, 0, 4411, 1); -REPLACE INTO mob_db VALUES(1772, "ISILLA", "Isilla", "Isilla", 124, 26324, 1, 3456, 2592, 1, 606, 774, 69, 19, 90, 65, 43, 82, 91, 75, 10, 12, 1, 7, 80, 0x3885, 300, 768, 360, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7568, 2500, 2422, 1, 7563, 1000, 2610, 10, 2601, 1, 7563, 100, 0, 0, 0, 0, 0, 0, 4412, 1); -REPLACE INTO mob_db VALUES(1773, "HODREMLIN", "Hodremlin", "Hodremlin", 122, 23182, 1, 3758, 2819, 1, 682, 836, 75, 25, 106, 70, 77, 60, 59, 40, 10, 12, 1, 6, 67, 0x3985, 140, 960, 528, 432, 0, 0, 0, 0, 0, 0, 0, 0, 587, 1000, 7340, 1000, 2406, 2, 938, 1000, 7563, 1000, 1061, 2000, 2426, 10, 0, 0, 0, 0, 4413, 1); -REPLACE INTO mob_db VALUES(1774, "SEEKER", "Seeker", "Seeker", 124, 24500, 1, 4009, 3006, 6, 611, 731, 64, 30, 91, 90, 35, 75, 126, 31, 10, 12, 0, 0, 64, 0x3295, 190, 576, 432, 300, 0, 0, 0, 0, 0, 0, 0, 0, 587, 1000, 7340, 1000, 985, 20, 1061, 4000, 7563, 1000, 1375, 20, 0, 0, 0, 0, 0, 0, 4414, 1); -REPLACE INTO mob_db VALUES(1775, "SNOWIER", "Snowier", "Snowier", 103, 13934, 1, 1944, 1458, 2, 510, 592, 121, 47, 91, 61, 67, 45, 61, 55, 10, 12, 2, 0, 41, 0x3885, 220, 936, 1020, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7561, 3000, 7066, 1000, 757, 100, 510, 50, 509, 500, 1819, 3, 991, 100, 0, 0, 0, 0, 4415, 1); -REPLACE INTO mob_db VALUES(1776, "SIROMA", "Siroma", "Siroma", 98, 11910, 1, 1827, 1369, 1, 389, 489, 64, 38, 83, 43, 50, 70, 80, 60, 10, 12, 0, 0, 61, 0x83, 180, 432, 648, 240, 0, 0, 0, 0, 0, 0, 0, 0, 7561, 1000, 7066, 500, 510, 10, 0, 0, 0, 0, 0, 0, 991, 20, 0, 0, 0, 0, 4416, 1); -REPLACE INTO mob_db VALUES(1777, "ICE_TITAN", "Ice Titan", "Ice Titan", 110, 20820, 1, 2724, 2644, 1, 837, 935, 344, 11, 133, 54, 78, 33, 78, 26, 10, 12, 2, 0, 61, 0x3885, 250, 861, 660, 144, 0, 0, 0, 0, 0, 0, 0, 0, 7561, 5000, 7066, 3000, 749, 100, 984, 10, 985, 30, 6253, 500, 995, 100, 0, 0, 0, 0, 4417, 1); -REPLACE INTO mob_db VALUES(1778, "GAZETI", "Gazeti", "Gazeti", 106, 14000, 1, 2025, 1518, 10, 596, 664, 71, 21, 105, 37, 42, 38, 97, 38, 10, 12, 1, 6, 21, 0x3395, 190, 576, 370, 270, 0, 0, 0, 0, 0, 0, 0, 0, 7561, 3000, 7066, 3000, 985, 20, 1731, 1, 6253, 100, 6256, 200, 0, 0, 0, 0, 0, 0, 4418, 1); -REPLACE INTO mob_db VALUES(1779, "KTULLANUX", "Ktullanux", "Ktullanux", 98, 2626000, 1, 1035576, 949942, 3, 2888, 5568, 129, 78, 85, 126, 30, 125, 177, 112, 10, 12, 2, 2, 81, 0x37B5, 400, 432, 840, 216, 517788, 10000, 607, 5500, 617, 5000, 617, 5000, 7562, 9000, 616, 3000, 2509, 3000, 2111, 5000, 617, 5000, 607, 5000, 0, 0, 0, 0, 0, 0, 4419, 1); -REPLACE INTO mob_db VALUES(1780, "MUSCIPULAR", "Muscipular", "Muscipular", 105, 12550, 1, 1944, 1458, 1, 401, 477, 114, 43, 100, 60, 58, 37, 60, 47, 10, 12, 1, 3, 22, 0x84, 2000, 672, 648, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7565, 3000, 1032, 3000, 629, 2, 1033, 2000, 905, 1000, 631, 3, 6217, 200, 0, 0, 0, 0, 4420, 1); -REPLACE INTO mob_db VALUES(1781, "DROSERA", "Drosera", "Drosera", 101, 10878, 1, 1350, 1013, 7, 168, 222, 86, 52, 79, 32, 64, 38, 78, 14, 10, 12, 1, 3, 22, 0x84, 2000, 864, 576, 336, 0, 0, 0, 0, 0, 0, 0, 0, 7565, 3000, 6259, 200, 1032, 2000, 1033, 2000, 621, 3, 905, 1000, 6217, 50, 0, 0, 0, 0, 4421, 1); -REPLACE INTO mob_db VALUES(1782, "ROWEEN", "Roween", "Roween", 95, 7385, 1, 1691, 1902, 1, 375, 410, 73, 33, 70, 82, 55, 45, 73, 25, 10, 12, 1, 2, 24, 0x108B, 200, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7564, 3000, 919, 3000, 992, 50, 1822, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4422, 1); -REPLACE INTO mob_db VALUES(1783, "GALION", "Galion", "Galion", 100, 8821, 1, 1769, 1327, 1, 405, 482, 100, 62, 106, 79, 62, 45, 90, 36, 10, 12, 1, 2, 44, 0x11AB, 150, 864, 624, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7564, 3000, 919, 3000, 996, 10, 2531, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4423, 1); -REPLACE INTO mob_db VALUES(1784, "STAPO", "Stapo", "Stapo", 95, 8805, 1, 1574, 1772, 1, 364, 415, 129, 36, 20, 46, 25, 35, 53, 30, 10, 12, 0, 0, 42, 0x83, 300, 936, 792, 432, 0, 0, 0, 0, 0, 0, 0, 0, 909, 1000, 7312, 1000, 512, 1000, 7126, 100, 993, 10, 1821, 3, 0, 0, 0, 0, 0, 0, 4424, 1); -REPLACE INTO mob_db VALUES(1785, "ATROCE", "Atroce", "Atroce", 113, 1502000, 1, 1080000, 855000, 2, 2031, 3534, 316, 176, 121, 165, 135, 99, 152, 113, 10, 12, 2, 2, 67, 0x37B5, 150, 576, 600, 240, 540000, 10000, 607, 5500, 617, 5000, 617, 5000, 7563, 7000, 608, 1000, 2621, 1000, 617, 5000, 607, 5000, 5123, 100, 1175, 100, 0, 0, 0, 0, 4425, 1); -REPLACE INTO mob_db VALUES(1786, "G_AGAV", "Agav", "Agav", 128, 40000, 1, 0, 0, 1, 637, 818, 77, 82, 85, 66, 55, 113, 66, 61, 10, 12, 1, 7, 80, 0x3295, 300, 768, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7567, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1787, "G_ECHIO", "Echio", "Echio", 126, 31620, 1, 0, 0, 1, 606, 765, 66, 11, 111, 63, 51, 37, 94, 45, 10, 12, 1, 7, 40, 0x3295, 250, 768, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7567, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1788, "G_ICE_TITAN", "Ice Titan", "Ice Titan", 110, 20820, 1, 0, 0, 1, 837, 935, 344, 11, 133, 54, 78, 33, 78, 26, 10, 12, 2, 0, 61, 0x3295, 250, 861, 660, 144, 0, 0, 0, 0, 0, 0, 0, 0, 7561, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1789, "ICEICLE", "Iceicle", "Iceicle", 100, 1012, 1, 164, 122, 3, 425, 426, 2, 15, 99, 1, 1, 1, 95, 1, 10, 12, 0, 0, 41, 0x84, 2000, 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7066, 1000, 7066, 1000, 6257, 500, 7066, 500, 7066, 500, 7066, 500, 7066, 500, 0, 0, 0, 0, 7066, 500); -REPLACE INTO mob_db VALUES(1790, "G_RAFFLESIA", "Rafflesia", "Rafflesia", 86, 5819, 1, 0, 0, 3, 295, 336, 86, 2, 47, 41, 44, 29, 65, 31, 10, 12, 0, 3, 22, 0x3885, 150, 512, 528, 240, 0, 0, 0, 0, 0, 0, 0, 0, 7577, 3000, 7575, 4000, 7576, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1791, "G_GALION", "Galion", "Galion", 100, 8821, 1, 0, 0, 1, 405, 482, 100, 62, 106, 79, 62, 45, 90, 36, 10, 12, 1, 2, 44, 0x11AB, 150, 864, 624, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1792, "SOCCER_BALL", "Soccer Ball", "Soccer Ball", 1, 10, 0, 0, 0, 0, 0, 0, 128, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0x40, 2000, 96, 96, 96, 0, 0, 0, 0, 0, 0, 0, 0, 18503, 5000, 18503, 3000, 12326, 3000, 603, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 617, 1000); -REPLACE INTO mob_db VALUES(1793, "G_MEGALITH", "Megalith", "Megalith", 65, 2451, 1, 0, 0, 9, 116, 146, 66, 18, 57, 14, 35, 10, 90, 3, 10, 12, 2, 0, 80, 0x3695, 200, 1332, 1332, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1794, "G_ROWEEN", "Roween", "Roween", 95, 7385, 1, 0, 0, 1, 175, 210, 73, 33, 70, 82, 55, 45, 73, 25, 10, 12, 1, 2, 24, 0x3295, 200, 412, 840, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1795, "BLOODY_KNIGHT_", "Bloody Knight", "Bloody Knight", 116, 68500, 1, 0, 0, 3, 942, 1065, 122, 50, 132, 59, 70, 57, 98, 45, 10, 12, 2, 8, 28, 0x37B5, 250, 828, 528, 192, 0, 0, 0, 0, 0, 0, 0, 0, 1417, 100, 2412, 100, 2514, 200, 2342, 300, 2513, 200, 1620, 200, 617, 7000, 0, 0, 0, 0, 7578, 10000); -REPLACE INTO mob_db VALUES(1796, "AUNOE", "Aunoe", "Aunoe", 110, 13050, 0, 1935, 1454, 1, 646, 727, 107, 42, 118, 63, 62, 77, 70, 35, 10, 12, 1, 7, 80, 0x3295, 250, 768, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7568, 2500, 2422, 2, 7563, 4000, 2109, 1, 12183, 50, 7563, 100, 2545, 5, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1797, "FANAT", "Fanat", "Fanat", 120, 21000, 1, 3042, 2282, 1, 599, 705, 81, 64, 102, 66, 70, 47, 79, 57, 10, 12, 1, 7, 80, 0x3885, 250, 768, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 2388, 10, 2422, 2, 7563, 4000, 2109, 1, 12183, 50, 7568, 2500, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1798, "TREASURE_BOX_", "Treasure Chest", "Treasure Chest", 99, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7582, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1799, "G_SEYREN_", "Lord Knight Seyren", "Lord Knight Seyren", 10, 10, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 10, 12, 1, 7, 83, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1800, "G_EREMES_", "Assassin Cross Eremes", "Assassin Cross Eremes", 10, 10, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 10, 12, 1, 7, 85, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1801, "G_HARWORD_", "Whitesmith Harword", "Mastersmith Howard", 10, 10, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 10, 12, 1, 7, 81, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1802, "G_MAGALETA_", "High Priest Magaleta", "High Priest Margaretha", 10, 10, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 10, 12, 1, 7, 86, 0x37B5, 125, 1152, 384, 288, 9000, 0, 0, 0, 0, 0, 0, 0, 7583, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1803, "G_SHECIL_", "Sniper Shecil", "Sniper Cecil", 10, 10, 1, 1, 1, 14, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 10, 12, 1, 7, 84, 0x33B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1804, "G_KATRINN_", "High Wizard Katrinn", "High Wizard Kathryne", 10, 10, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 10, 12, 1, 7, 68, 0x37B5, 150, 1152, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1805, "B_SEYREN_", "Lord Knight Seyren", "Lord Knight Seyren", 99, 1647590, 0, 4352040, 1412973, 1, 7238, 11040, 72, 37, 120, 110, 81, 65, 130, 52, 10, 12, 1, 7, 83, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1806, "B_EREMES_", "Assassin Cross Eremes", "Assassin Cross Eremes", 99, 1411230, 0, 3675060, 1433142, 1, 4189, 8289, 37, 39, 90, 181, 62, 37, 122, 60, 10, 12, 1, 7, 85, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1807, "B_HARWORD_", "Whitesmith Harword", "Mastersmith Howard", 99, 1460000, 0, 3602106, 1278900, 1, 7822, 8251, 66, 36, 100, 73, 112, 35, 136, 60, 10, 12, 1, 7, 82, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1808, "B_MAGALETA_", "High Priest Magaleta", "High Priest Margaretha", 99, 1092910, 0, 3831300, 1186920, 1, 4688, 5580, 35, 78, 1, 84, 64, 182, 92, 100, 10, 12, 1, 7, 86, 0x37B5, 125, 1152, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1809, "B_SHECIL_", "Sniper Shecil", "Sniper Cecil", 99, 1349000, 0, 3683700, 1373400, 14, 4892, 9113, 22, 35, 1, 180, 39, 67, 193, 130, 10, 12, 1, 7, 84, 0x37B5, 100, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1810, "B_KATRINN_", "High Wizard Katrinn", "High Wizard Kathryne", 99, 1069920, 0, 3607380, 1473030, 1, 1197, 4394, 10, 88, 1, 89, 42, 223, 128, 93, 10, 12, 1, 7, 68, 0x37B5, 150, 1152, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7583, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1811, "G_SMOKIE_", "Smokie", "Bandit", 18, 641, 1, 0, 0, 1, 61, 72, 0, 10, 1, 18, 36, 25, 26, 35, 10, 12, 0, 2, 22, 0x91, 200, 1576, 576, 420, 0, 0, 0, 0, 0, 0, 0, 0, 2201, 100, 7267, 500, 606, 1000, 536, 2000, 7299, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1812, "EVENT_LUDE", "Lude", "Delightful Lude", 99, 15, 0, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x40, 190, 890, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7225, 5000, 1062, 5000, 535, 5000, 7609, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1813, "EVENT_HYDRO", "Hydro", "Hydrolancer", 99, 1880000, 0, 3600000, 1800000, 3, 15000, 47767, 96, 55, 1, 142, 200, 250, 189, 32, 10, 12, 2, 8, 28, 0x37B5, 100, 972, 672, 432, 0, 0, 617, 5500, 603, 2000, 617, 5500, 7607, 10000, 13001, 500, 5002, 500, 1417, 500, 12080, 1500, 7444, 5500, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1814, "EVENT_MOON", "Moonlight Flower", "Moonlight Flower", 80, 30000, 0, 27000, 27000, 1, 500, 800, 80, 50, 1, 35, 45, 112, 69, 93, 10, 12, 1, 2, 63, 0x37B5, 150, 1276, 576, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1815, "EVENT_RICECAKE", "Rice Cake", "Rice Cake", 12, 777, 1, 7, 7, 1, 7, 14, 0, 99, 7, 7, 7, 17, 17, 7, 10, 12, 1, 0, 20, 0x40, 250, 1320, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1816, "EVENT_GOURD", "Gourd", "Gourd", 12, 1000, 0, 0, 0, 1, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 20, 0x40, 2000, 96, 96, 96, 0, 0, 0, 0, 0, 0, 0, 0, 512, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1817, "EVENT_DETALE", "Detale", "Detarderous", 99, 8880000, 0, 4050000, 2250000, 3, 32767, 65534, 104, 65, 1, 142, 200, 250, 189, 50, 10, 12, 2, 8, 48, 0x37B5, 100, 972, 936, 360, 0, 0, 0, 0, 617, 5000, 617, 5500, 7701, 10000, 1724, 500, 1473, 500, 1265, 500, 12080, 1500, 12100, 1500, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1818, "EVENT_ALARM", "Alarm", "Alarm", 58, 10647, 0, 0, 0, 0, 1, 2, 24, 15, 1, 62, 72, 10, 85, 45, 10, 12, 1, 0, 60, 0x3695, 1000, 1020, 500, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7703, 7000); -REPLACE INTO mob_db VALUES(1819, "EVENT_BATHORY", "Bathory", "Bathory", 86, 5242, 1, 0, 0, 1, 229, 325, 61, 41, 66, 38, 40, 55, 56, 50, 10, 12, 1, 7, 27, 0x3695, 100, 1504, 840, 900, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1820, "EVENT_BIGFOOT", "Bigfoot", "Bigfoot", 29, 587, 1, 0, 0, 1, 50, 62, 55, 7, 18, 4, 7, 0, 12, 0, 10, 12, 2, 2, 22, 0x91, 300, 1260, 192, 192, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1821, "EVENT_DESERT_WOLF", "Desert Wolf", "Desert Wolf", 103, 9447, 1, 0, 0, 1, 520, 579, 114, 47, 93, 69, 63, 61, 82, 42, 10, 12, 1, 2, 23, 0x308D, 200, 1120, 420, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1822, "EVENT_DEVIRUCHI", "Deviruchi", "Deviruchi", 64, 2300, 1, 0, 0, 1, 210, 283, 62, 30, 61, 17, 30, 35, 52, 5, 10, 12, 0, 6, 27, 0x3795, 150, 980, 600, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1823, "EVENT_FREEZER", "Freezer", "Freezer", 94, 9990, 1, 0, 0, 2, 188, 238, 68, 38, 68, 47, 50, 45, 49, 25, 10, 12, 1, 2, 41, 0x3695, 250, 1452, 483, 528, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1824, "EVENT_GARM_BABY", "Garm Baby", "Garm Baby", 94, 10016, 1, 0, 0, 1, 183, 244, 62, 43, 69, 61, 55, 61, 53, 45, 10, 12, 1, 2, 41, 0x3885, 450, 879, 672, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1825, "EVENT_GOBLINE_XMAS", "Christmas Goblin", "Christmas Goblin", 25, 1176, 0, 0, 0, 1, 118, 140, 16, 5, 1, 53, 25, 20, 38, 45, 10, 12, 1, 7, 24, 0x3695, 100, 1120, 620, 240, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1826, "EVENT_MYST", "Myst", "Myst", 39, 879, 1, 0, 0, 1, 68, 89, 50, 11, 26, 19, 40, 35, 31, 25, 10, 12, 2, 0, 25, 0x3695, 200, 1576, 576, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1827, "EVENT_SASQUATCH", "Sasquatch", "Sasquatch", 30, 3163, 0, 0, 0, 1, 250, 280, 8, 0, 75, 25, 60, 10, 34, 20, 10, 12, 2, 2, 60, 0x3695, 300, 1260, 192, 192, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1828, "EVENT_GULLINBURSTI", "Gullinbrusti", "Gullinbrusti", 20, 20, 0, 0, 0, 1, 59, 72, 160, 99, 1, 14, 14, 0, 19, 15, 10, 12, 2, 2, 42, 0x3695, 150, 1960, 960, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7303, 6000, 570, 9000, 571, 8000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1829, "SWORD_GUARDIAN", "Sword Guardian", "Sword Guardian", 133, 70000, 0, 4500, 3375, 2, 751, 880, 122, 62, 122, 87, 54, 65, 103, 65, 14, 16, 2, 7, 80, 0x37B5, 170, 140, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7069, 3000, 1370, 30, 1163, 50, 1168, 1, 2122, 10, 1176, 50, 6223, 100, 0, 0, 0, 0, 4427, 1); -REPLACE INTO mob_db VALUES(1830, "BOW_GUARDIAN", "Bow Guardian", "Bow Guardian", 132, 63000, 0, 4392, 3294, 12, 766, 886, 127, 62, 109, 80, 65, 52, 122, 55, 14, 16, 2, 7, 80, 0x37B5, 170, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7069, 3000, 1723, 30, 1701, 50, 2367, 20, 2701, 4, 0, 0, 6223, 100, 0, 0, 0, 0, 4428, 1); -REPLACE INTO mob_db VALUES(1831, "SALAMANDER", "Salamander", "Salamander", 138, 80390, 1, 5919, 7139, 2, 1399, 1799, 141, 68, 189, 105, 72, 85, 132, 72, 10, 12, 2, 0, 63, 0x37B5, 160, 140, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7097, 3000, 994, 30, 6223, 10, 2680, 1, 1920, 50, 2621, 1, 2364, 20, 0, 0, 0, 0, 4429, 1); -REPLACE INTO mob_db VALUES(1832, "IFRIT", "Ifrit", "Ifrit", 146, 6935000, 1, 6696000, 4860000, 3, 5375, 8764, 436, 218, 180, 201, 156, 190, 199, 77, 10, 12, 2, 0, 83, 0x37B5, 130, 212, 384, 360, 3348000, 10000, 603, 5500, 617, 5000, 616, 2000, 994, 10000, 2677, 3000, 2678, 200, 2679, 200, 1471, 2000, 1133, 2000, 2345, 100, 0, 0, 0, 0, 4430, 1); -REPLACE INTO mob_db VALUES(1833, "KASA", "Kasa", "Kasa", 135, 70128, 1, 5599, 7709, 2, 1004, 1309, 104, 70, 111, 74, 65, 78, 108, 55, 10, 12, 2, 0, 63, 0x37B5, 150, 800, 600, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7097, 3000, 7122, 2500, 994, 30, 2680, 1, 2344, 10, 1730, 10, 1626, 10, 0, 0, 0, 0, 4431, 1); -REPLACE INTO mob_db VALUES(1834, "G_SALAMANDER", "Salamander", "Salamander", 138, 80390, 1, 0, 0, 2, 1399, 1799, 141, 68, 189, 105, 72, 85, 132, 72, 10, 12, 2, 0, 63, 0x37B5, 160, 140, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1835, "G_KASA", "Kasa", "Kasa", 135, 70128, 1, 0, 0, 2, 1004, 1309, 104, 70, 111, 74, 65, 78, 108, 55, 10, 12, 2, 0, 63, 0x37B5, 150, 800, 600, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1836, "MAGMARING", "Magmaring", "Magmaring", 110, 13079, 1, 2536, 1903, 1, 678, 722, 100, 45, 107, 33, 35, 47, 61, 20, 10, 12, 0, 0, 43, 0x83, 300, 1472, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7097, 3000, 757, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4432, 1); -REPLACE INTO mob_db VALUES(1837, "IMP", "Imp", "Imp", 129, 36830, 1, 4594, 3445, 1, 885, 1091, 56, 75, 66, 83, 65, 88, 72, 27, 10, 12, 0, 6, 63, 0x3395, 150, 824, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7122, 3000, 13303, 3, 7098, 2500, 1376, 10, 1972, 25, 12374, 1, 6223, 1, 0, 0, 0, 0, 4433, 1); -REPLACE INTO mob_db VALUES(1838, "KNOCKER", "Knocker", "Knocker", 126, 43900, 1, 3690, 3768, 1, 633, 736, 126, 62, 93, 62, 58, 56, 99, 70, 10, 12, 0, 6, 22, 0x191, 200, 1548, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 997, 30, 1003, 150, 1040, 5500, 2286, 1, 6223, 10, 2124, 3, 1732, 5, 0, 0, 0, 0, 4434, 1); -REPLACE INTO mob_db VALUES(1839, "BYORGUE", "Byorgue", "Byrogue", 135, 92544, 1, 7725, 5543, 2, 793, 934, 120, 13, 114, 86, 70, 65, 81, 70, 14, 16, 1, 7, 20, 0x37B5, 170, 800, 600, 360, 0, 0, 0, 0, 0, 0, 0, 0, 1270, 50, 5096, 3, 13027, 150, 12087, 100, 603, 40, 2530, 1, 7110, 4365, 0, 0, 0, 0, 4426, 1); -REPLACE INTO mob_db VALUES(1840, "GOLDEN_SAVAGE", "Golden Savage", "Golden Savage", 99, 500, 1, 1, 1, 1, 500, 700, 160, 99, 0, 1, 1, 50, 120, 1, 10, 12, 2, 2, 42, 0xF1, 150, 1960, 480, 384, 0, 0, 0, 0, 0, 0, 0, 0, 610, 3000, 7444, 100, 616, 5, 969, 500, 714, 100, 5159, 1, 12238, 3000, 0, 0, 0, 0, 12239, 3000); -REPLACE INTO mob_db VALUES(1841, "G_SNAKE_", "Snake Lord\'s Minion", "Snake Lord\'s Minion", 15, 10, 1, 1, 1, 1, 46, 55, 160, 99, 1, 15, 15, 10, 35, 5, 10, 12, 1, 2, 22, 0x81, 200, 1576, 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, 673, 1000, 12715, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1842, "G_ANACONDAQ_", "Snake Lord\'s Minion", "Snake Lord\'s Minion", 23, 15, 1, 1, 1, 1, 124, 157, 160, 99, 1, 46, 28, 10, 51, 5, 10, 12, 1, 2, 25, 0x91, 200, 1576, 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, 673, 1000, 673, 1000, 12715, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1843, "G_SIDE_WINDER_", "Snake Lord\'s Minion", "Snake Lord\'s Minion", 43, 18, 1, 1, 1, 1, 240, 320, 160, 99, 38, 43, 40, 15, 115, 20, 10, 12, 1, 2, 25, 0x3095, 200, 1576, 576, 576, 0, 0, 0, 0, 0, 0, 0, 0, 673, 1000, 675, 1000, 12715, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1844, "G_ISIS_", "Snake Lord\'s Minion", "Snake Lord\'s Minion", 47, 25, 1, 1, 1, 1, 423, 507, 160, 99, 38, 65, 43, 50, 66, 15, 10, 12, 2, 6, 27, 0x3195, 200, 1384, 768, 336, 0, 0, 0, 0, 0, 0, 0, 0, 673, 1000, 675, 1000, 673, 1000, 675, 1000, 12715, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1845, "G_TREASURE_BOX_", "Treasure Box", "Treasure Box", 98, 500, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7720, 10000, 7720, 10000, 7720, 10000, 7721, 10000, 12245, 2500, 7720, 5000, 12245, 2500, 0, 0, 0, 0, 12245, 2500); -REPLACE INTO mob_db VALUES(1846, "DREAMMETAL", "Dream Metal", "Dream Metal", 90, 1499, 0, 1, 1, 1, 1, 2, 100, 99, 1, 1, 1, 1, 1, 1, 10, 12, 0, 0, 26, 0x120, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7858, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1847, "EVENT_PORING", "Poring", "Poring", 98, 10000500, 0, 900000, 900000, 1, 15000, 20000, 96, 60, 1, 60, 120, 120, 160, 30, 10, 12, 1, 8, 28, 0x37B5, 100, 76, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1848, "EVENT_BAPHOMET", "Baphomet", "Baphomet", 50, 45000, 0, 900, 900, 2, 1500, 3000, 16, 10, 1, 60, 15, 15, 160, 30, 10, 12, 2, 6, 67, 0x37B5, 100, 768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1849, "EVENT_OSIRIS", "Osiris", "Osiris", 60, 125000, 0, 1800, 1800, 1, 3500, 5000, 32, 20, 1, 60, 25, 25, 160, 30, 10, 12, 1, 1, 89, 0x37B5, 100, 1072, 672, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1850, "EVENT_ORCHERO", "Orc Hero", "Orc Hero", 50, 175000, 0, 2700, 2700, 1, 4000, 5500, 40, 45, 1, 60, 35, 80, 160, 30, 10, 12, 2, 7, 82, 0x37B5, 150, 1678, 780, 648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1851, "EVENT_MOBSTER", "Mobster", "Mobster", 61, 7991, 1, 0, 0, 1, 910, 1128, 66, 37, 76, 46, 20, 35, 76, 55, 10, 12, 1, 7, 20, 0x3695, 250, 1100, 560, 580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1852, "G_EM_ANGELING", "Angeling", "Angeling", 99, 120, 1, 0, 0, 1, 60, 71, 160, 99, 1, 17, 80, 80, 126, 20, 10, 12, 0, 8, 66, 0x37B5, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1853, "G_EM_DEVILING", "Deviling", "Deviling", 99, 120, 1, 0, 0, 1, 60, 71, 160, 99, 1, 17, 80, 80, 126, 20, 10, 12, 0, 8, 66, 0x37B5, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1854, "E_MUKA", "Muka", "Muka", 17, 610, 0, 246, 108, 1, 40, 49, 8, 5, 15, 15, 30, 5, 20, 10, 10, 12, 2, 3, 22, 0x83, 300, 1960, 960, 384, 0, 0, 0, 0, 0, 0, 0, 0, 993, 70, 952, 9000, 713, 2000, 7742, 400, 507, 1000, 1451, 50, 1002, 250, 0, 0, 0, 0, 4036, 1); -REPLACE INTO mob_db VALUES(1855, "E_POISONSPORE", "Poison Spore", "Poison Spore", 19, 665, 0, 167, 84, 1, 89, 101, 0, 0, 1, 19, 25, 0, 24, 0, 10, 12, 1, 3, 25, 0x3885, 200, 1672, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7033, 9000, 2221, 20, 511, 550, 7743, 60, 972, 50, 921, 1200, 912, 5, 0, 0, 0, 0, 4048, 1); -REPLACE INTO mob_db VALUES(1856, "E_MAGNOLIA", "Magnolia", "Magnolia", 26, 3195, 0, 354, 223, 1, 120, 151, 8, 30, 1, 26, 26, 0, 39, 5, 10, 12, 0, 6, 21, 0x183, 250, 1560, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7031, 9000, 910, 800, 911, 100, 912, 10, 737, 40, 7744, 400, 12127, 5, 0, 0, 0, 0, 4076, 1); -REPLACE INTO mob_db VALUES(1857, "E_MARIN", "Marin", "Marin", 15, 742, 0, 59, 40, 1, 39, 43, 0, 10, 1, 10, 10, 5, 35, 15, 10, 12, 1, 3, 41, 0x81, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 910, 3200, 938, 1500, 700, 100, 720, 40, 7745, 75, 529, 350, 5035, 1, 0, 0, 0, 0, 4196, 1); -REPLACE INTO mob_db VALUES(1858, "E_PLANKTON", "Plankton", "Plankton", 10, 354, 0, 21, 16, 1, 26, 31, 0, 5, 1, 10, 10, 0, 15, 0, 10, 12, 0, 3, 61, 0x81, 400, 2208, 1008, 324, 0, 0, 0, 0, 0, 0, 0, 0, 1052, 9000, 7746, 300, 938, 700, 970, 4, 713, 1000, 630, 20, 645, 50, 0, 0, 0, 0, 4024, 1); -REPLACE INTO mob_db VALUES(1859, "E_MANDRAGORA", "Mandragora", "Mandragora", 12, 405, 0, 41, 29, 4, 26, 35, 0, 25, 1, 12, 24, 0, 36, 15, 10, 12, 1, 3, 62, 0x84, 1000, 1768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 993, 50, 905, 9000, 1405, 30, 7747, 350, 711, 300, 706, 3, 1967, 10, 0, 0, 0, 0, 4030, 1); -REPLACE INTO mob_db VALUES(1860, "E_COCO", "Coco", "Coco", 17, 817, 0, 108, 70, 1, 56, 67, 0, 0, 24, 17, 34, 20, 24, 10, 10, 12, 0, 2, 22, 0x91, 150, 1864, 864, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 1026, 9000, 2502, 20, 914, 3000, 919, 2500, 516, 500, 2402, 25, 7748, 600, 0, 0, 0, 0, 4041, 1); -REPLACE INTO mob_db VALUES(1861, "E_CHOCO", "Choco", "Choco", 43, 4278, 0, 1139, 1139, 1, 315, 402, 8, 5, 65, 68, 55, 45, 65, 25, 10, 12, 0, 2, 23, 0x3095, 200, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 7011, 5335, 942, 7000, 985, 53, 513, 5000, 634, 20, 7749, 1000, 607, 25, 0, 0, 0, 0, 4285, 1); -REPLACE INTO mob_db VALUES(1862, "E_MARTIN", "Martin", "Martin", 18, 1109, 0, 121, 77, 1, 52, 63, 0, 5, 12, 18, 30, 15, 15, 5, 10, 12, 0, 2, 42, 0x81, 300, 1480, 480, 480, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 9000, 7750, 500, 1251, 10, 2225, 5, 5009, 1, 10010, 10, 2224, 15, 0, 0, 0, 0, 4046, 1); -REPLACE INTO mob_db VALUES(1863, "E_SPRING_RABBIT", "Spring Rabbit", "Spring Rabbit", 25, 4500, 0, 0, 0, 1, 292, 406, 23, 10, 20, 15, 15, 5, 15, 5, 10, 12, 1, 2, 42, 0x83, 160, 1120, 552, 511, 0, 0, 0, 0, 0, 0, 0, 0, 7860, 5000, 7861, 5000, 7862, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1864, "ZOMBIE_SLAUGHTER", "Zombie Slaughter", "Zombie Slaughter", 124, 40440, 1, 3938, 2702, 1, 707, 824, 100, 45, 117, 58, 82, 13, 97, 21, 10, 12, 1, 1, 69, 0x3695, 200, 676, 648, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7752, 3000, 13404, 10, 934, 1500, 7753, 3000, 938, 3000, 6223, 1, 0, 0, 0, 0, 0, 0, 4435, 1); -REPLACE INTO mob_db VALUES(1865, "RAGGED_ZOMBIE", "Ragged Zombie", "Ragged Zombie", 123, 38574, 1, 3515, 3087, 9, 810, 940, 85, 35, 81, 50, 64, 56, 127, 23, 10, 12, 1, 1, 69, 0x3695, 150, 1960, 576, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7752, 3000, 2424, 15, 934, 1500, 932, 4500, 2703, 2, 13107, 10, 6223, 1, 0, 0, 0, 0, 4436, 1); -REPLACE INTO mob_db VALUES(1866, "HELL_POODLE", "Hell Poodle", "Hellhound", 115, 17168, 1, 2565, 1923, 1, 642, 787, 86, 20, 114, 56, 59, 82, 77, 54, 10, 12, 0, 6, 27, 0x3795, 140, 824, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 528, 5000, 13028, 10, 1268, 10, 932, 4500, 628, 20, 919, 5500, 537, 400, 0, 0, 0, 0, 4437, 1); -REPLACE INTO mob_db VALUES(1867, "BANSHEE", "Banshee", "Banshee", 130, 48666, 1, 4520, 3500, 1, 724, 1127, 73, 96, 97, 71, 55, 123, 98, 72, 10, 12, 1, 6, 47, 0x3795, 150, 676, 504, 504, 0, 0, 0, 0, 0, 0, 0, 0, 7751, 3000, 2365, 10, 13027, 10, 2528, 10, 934, 1500, 7054, 5335, 6223, 1, 0, 0, 0, 0, 4438, 1); -REPLACE INTO mob_db VALUES(1868, "G_BANSHEE", "Banshee", "Banshee", 130, 48666, 1, 0, 0, 1, 724, 1127, 73, 96, 97, 71, 55, 123, 98, 72, 10, 12, 1, 6, 47, 0x3795, 150, 676, 504, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1869, "FLAME_SKULL", "Flame Skull", "Flame Skull", 121, 21276, 1, 2332, 2890, 1, 767, 902, 93, 40, 111, 90, 60, 70, 99, 65, 10, 12, 0, 6, 68, 0x3195, 150, 972, 648, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7005, 5000, 2425, 20, 13170, 20, 958, 6000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4439, 1); -REPLACE INTO mob_db VALUES(1870, "NECROMANCER", "Necromancer", "Necromancer", 133, 91304, 1, 5580, 4185, 1, 706, 1112, 84, 73, 108, 54, 77, 116, 91, 30, 10, 12, 1, 1, 89, 0x37B5, 150, 1816, 1320, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7752, 3000, 1624, 20, 932, 4500, 2532, 10, 717, 100, 609, 100, 7117, 1500, 0, 0, 0, 0, 4440, 1); -REPLACE INTO mob_db VALUES(1871, "FALLINGBISHOP", "Fallen Bishop", "Falling Bishop", 138, 5655000, 1, 2700000, 1890000, 1, 2860, 4496, 274, 182, 186, 165, 95, 226, 182, 86, 10, 12, 1, 6, 47, 0x37B5, 150, 432, 432, 360, 1350000, 10000, 607, 5500, 617, 5000, 617, 5000, 523, 10000, 1420, 1000, 2677, 500, 1422, 1000, 985, 5432, 1614, 2000, 6223, 500, 0, 0, 0, 0, 4441, 1); -REPLACE INTO mob_db VALUES(1872, "BEELZEBUB_FLY", "Hell Fly", "Hell Fly", 127, 502000, 1, 0, 0, 1, 643, 795, 98, 55, 99, 90, 52, 55, 89, 80, 10, 12, 1, 8, 80, 0x37B5, 100, 432, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1873, "BEELZEBUB", "Beelzebub", "Beelzebub", 147, 6805000, 1, 0, 0, 1, 3500, 5600, 288, 265, 155, 235, 200, 225, 204, 66, 10, 12, 0, 6, 88, 0x37B5, 100, 100, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1874, "BEELZEBUB_", "Beelzebub", "Beelzebub", 147, 4805000, 1, 7050000, 7050000, 2, 4200, 8150, 418, 265, 178, 236, 200, 250, 218, 66, 10, 12, 2, 6, 88, 0x37B5, 100, 212, 504, 432, 3525000, 10000, 607, 5500, 617, 5000, 617, 5000, 7754, 9000, 2423, 2000, 1565, 2000, 2000, 2000, 2702, 2000, 6223, 1000, 742, 5500, 0, 0, 0, 0, 4145, 1); -REPLACE INTO mob_db VALUES(1875, "TRISTAN_3RD", "Tristan III", "Tristan III", 80, 43000, 0, 1, 1, 2, 1366, 1626, 25, 30, 5, 10, 10, 69, 70, 1, 10, 12, 1, 1, 89, 0x3695, 175, 1816, 1152, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7754, 9000, 938, 9000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1876, "E_LORD_OF_DEATH", "Lord of the Dead", "Lord of the Dead", 99, 99000000, 0, 118209, 39011, 3, 3430, 4232, 75, 73, 120, 120, 120, 169, 150, 106, 10, 12, 2, 6, 67, 0x37B5, 180, 1446, 1296, 360, 59104, 10000, 5022, 10000, 608, 0, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1877, "CRYSTAL_5", "Crystal", "Crystal", 1, 15, 1, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x161, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7863, 10, 644, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1878, "E_SHINING_PLANT", "Shining Plant", "Shining Plant", 1, 20, 0, 0, 0, 1, 1, 2, 100, 99, 0, 0, 0, 0, 0, 90, 7, 12, 0, 3, 26, 0x40, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7864, 3000, 906, 1500, 511, 500, 507, 2000, 508, 1500, 914, 500, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1879, "ECLIPSE_P", "Eclipse Pet", "Eclipse", 6, 1800, 0, 0, 0, 1, 20, 26, 0, 40, 1, 36, 6, 0, 11, 80, 10, 12, 1, 2, 60, 0x37B5, 200, 1456, 456, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1880, "WOOD_GOBLIN", "Wood Goblin", "Wood Goblin", 81, 5499, 1, 1106, 1245, 1, 193, 208, 144, 12, 73, 19, 56, 15, 56, 25, 10, 12, 1, 3, 62, 0x81, 320, 2304, 840, 360, 0, 0, 0, 0, 0, 0, 0, 0, 2719, 5, 7203, 4000, 7201, 2000, 907, 2000, 916, 500, 7032, 500, 574, 50, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1881, "LES", "Les", "Les", 82, 6216, 1, 1205, 1356, 1, 270, 300, 123, 30, 63, 20, 35, 25, 52, 30, 10, 12, 1, 3, 82, 0x1089, 230, 1728, 720, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7100, 2000, 511, 1000, 711, 1000, 905, 2500, 2270, 1, 521, 500, 510, 50, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1882, "VAVAYAGA", "Baba Yaga", "Baba-Yaga", 87, 6498, 1, 1188, 1337, 2, 282, 353, 63, 60, 69, 45, 30, 60, 51, 35, 10, 12, 1, 7, 21, 0x3885, 270, 1536, 600, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7099, 1000, 7762, 5000, 1630, 10, 7226, 150, 539, 1500, 519, 1500, 580, 1500, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1883, "UZHAS", "Uzhas", "Uzhas", 85, 7140, 1, 1294, 1455, 1, 271, 306, 49, 8, 69, 14, 41, 30, 55, 20, 10, 12, 1, 7, 61, 0x3885, 200, 576, 672, 384, 0, 0, 0, 0, 0, 0, 0, 0, 520, 900, 1573, 5, 621, 100, 522, 100, 918, 3500, 579, 1500, 603, 3, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1884, "MAVKA", "Mavka", "Mavka", 84, 5421, 1, 1253, 1530, 7, 263, 323, 98, 58, 65, 31, 50, 35, 81, 30, 10, 12, 1, 3, 62, 0x3885, 170, 1536, 504, 360, 0, 0, 0, 0, 0, 0, 0, 0, 1572, 5, 629, 300, 707, 300, 710, 50, 747, 1500, 748, 300, 510, 3000, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1885, "GOPINICH", "Gopinich", "Gopinich", 97, 1120500, 1, 714240, 580320, 3, 1988, 3849, 355, 121, 127, 102, 143, 102, 152, 76, 10, 12, 2, 2, 62, 0x37B5, 150, 1536, 864, 432, 357120, 10000, 607, 5500, 617, 5000, 617, 5000, 617, 4000, 2621, 200, 12080, 1000, 1737, 100, 1417, 5, 7444, 5000, 5007, 1, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1886, "G_MAVKA", "Mavka", "Mavka", 84, 5421, 1, 0, 0, 7, 263, 323, 98, 58, 65, 31, 50, 35, 81, 30, 10, 12, 1, 3, 62, 0x3885, 170, 1536, 504, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1887, "FREEZER_R", "Freezer", "Freezer", 94, 9990, 1, 0, 0, 2, 388, 438, 68, 38, 68, 47, 50, 45, 49, 25, 10, 12, 1, 2, 41, 0x3695, 250, 1452, 483, 528, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 2000, 7066, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1888, "GARM_BABY_R", "Hatii Baby", "Hatii Baby", 61, 15199, 0, 90, 90, 1, 680, 1580, 24, 13, 45, 30, 36, 55, 85, 30, 10, 12, 1, 2, 41, 0x3885, 450, 879, 672, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7066, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1889, "GARM_R", "Marozka\'s Guard", "Marozka\'s Guard", 73, 100000, 0, 900, 900, 3, 900, 2200, 20, 23, 85, 126, 10, 50, 95, 60, 10, 12, 2, 2, 81, 0x37B5, 400, 608, 408, 336, 0, 0, 0, 0, 0, 0, 0, 0, 7053, 2000, 7066, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1890, "GOPINICH_R", "The Immortal Koshei", "The Immortal Koshei", 85, 299321, 0, 900, 900, 3, 1868, 6124, 20, 42, 50, 65, 55, 50, 152, 35, 10, 12, 2, 2, 62, 0x3295, 150, 1536, 864, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1891, "G_RANDGRIS_", "Valkyrie", "Valkyrie", 99, 1567200, 1, 0, 0, 3, 5560, 9980, 40, 42, 100, 120, 80, 120, 220, 210, 10, 12, 2, 8, 86, 0x37B5, 100, 576, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1892, "G_LOLI_RURI", "Lolo Ruri", "Lolo Ruri", 109, 15280, 1, 0, 0, 2, 787, 1017, 53, 44, 111, 50, 47, 79, 79, 79, 10, 12, 2, 6, 87, 0x3985, 125, 747, 1632, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1893, "G_KNIGHT_OF_ABYSS", "Knight of the Abyss", "Abysmal Knight", 122, 23297, 1, 0, 0, 1, 810, 1002, 102, 50, 121, 55, 68, 70, 97, 37, 10, 12, 2, 7, 87, 0x3695, 300, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1894, "POURING", "Pouring", "Pouring", 15, 777, 1, 7, 7, 1, 7, 14, 0, 7, 7, 7, 7, 17, 17, 7, 0, 0, 0, 3, 61, 0x11AB, 300, 1672, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 6296, 9000, 6296, 100, 6296, 100, 909, 3000, 909, 2000, 909, 2000, 909, 2000, 0, 0, 0, 0, 909, 2000); -REPLACE INTO mob_db VALUES(1895, "EVENT_SEYREN", "Seyren", "Seyren Windsor", 91, 88902, 0, 0, 0, 1, 2100, 2530, 63, 12, 90, 89, 72, 20, 99, 25, 10, 12, 1, 6, 63, 0x3295, 170, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1896, "EVENT_KATRINN", "Katrinn", "Kathryne Keyron", 92, 47780, 0, 0, 0, 1, 497, 1697, 10, 74, 1, 5, 77, 180, 110, 39, 10, 12, 1, 7, 68, 0x3295, 150, 1152, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1897, "EVENT_BAPHOMET_", "Baphomet", "Baphomet", 81, 668000, 0, 0, 0, 2, 3220, 4040, 35, 45, 1, 152, 30, 85, 120, 95, 10, 12, 2, 6, 67, 0x37B5, 100, 768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1898, "EVENT_ZOMBIE", "Zombie", "Zombie", 12, 434, 0, 0, 0, 1, 67, 79, 0, 10, 1, 1, 1, 1, 1, 1, 10, 12, 1, 1, 29, 0x3885, 400, 2612, 912, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7884, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1899, "SWORD_GUARDIAN_", "Sword Guardian", "Sword Guardian", 133, 70000, 0, 0, 0, 2, 451, 580, 122, 33, 122, 87, 54, 65, 103, 65, 14, 16, 2, 7, 80, 0x20A5, 170, 140, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(1900, "BOW_GUARDIAN_", "Archer Guardian", "Archer Guardian", 80, 80404, 1, 0, 0, 12, 1840, 2520, 64, 62, 95, 80, 33, 90, 165, 55, 14, 16, 2, 7, 80, 0x20A5, 170, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1901, "E_CONDOR", "Condor", "Condor", 10, 15, 0, 90, 90, 1, 13, 20, 10, 15, 1, 1, 1, 50, 100, 100, 10, 12, 0, 2, 26, 0x1089, 150, 1148, 648, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7973, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1902, "E_TREASURE1", "Treasure Box", "Treasure Box", 99, 49, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 26, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7782, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1903, "E_TREASURE2", "Treasure Box", "Treasure Box", 99, 49, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 26, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7783, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1904, "BOMBPORING", "Bomb Poring", "Bomb Poring", 28, 1000000, 1, 415, 256, 1, 120, 320, 160, 99, 1, 28, 28, 0, 33, 50, 10, 12, 0, 0, 20, 0x108B, 300, 1672, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1905, "BARRICADE", "Barricade", "Barricade", 98, 600500, 1, 0, 0, 1, 0, 0, 0, 0, 1, 17, 1, 80, 126, 20, 10, 12, 2, 0, 20, 0x120, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1906, "BARRICADE_", "Barricade", "Barricade", 98, 600, 1, 0, 0, 1, 0, 0, 160, 99, 1, 17, 1, 80, 126, 20, 10, 12, 2, 0, 20, 0x160, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1907, "S_EMPEL_1", "Guardian Stone", "Guardian Stone", 90, 120500, 1, 0, 0, 0, 1, 2, 64, 50, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 20, 0x120, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1908, "S_EMPEL_2", "Guardian Stone", "Guardian Stone", 90, 120500, 1, 0, 0, 0, 1, 2, 64, 50, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 20, 0x120, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1909, "OBJ_A", "Food Storage", "Food Storage", 90, 750, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 20, 0x160, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1910, "OBJ_B", "Food Depot", "Food Depot", 90, 750, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 20, 0x160, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1911, "OBJ_NEUTRAL", "Neutrality Flag", "Neutrality Flag", 90, 650, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 20, 0x160, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1912, "OBJ_FLAG_A", "Lion Flag", "Lion Flag", 90, 650, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 20, 0x160, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1913, "OBJ_FLAG_B", "Eagle Flag", "Eagle Flag", 90, 650, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 20, 0x160, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1914, "OBJ_A2", "Blue Crystal", "Blue Crystal", 90, 750, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 20, 0x160, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1915, "OBJ_B2", "Pink Crystal", "Pink Crystal", 90, 750, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 20, 0x160, 300, 1288, 288, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1916, "MOROCC", "Satan Morroc", "Satan Morroc", 151, 7000000, 1, 0, 0, 2, 3560, 6200, 400, 65, 165, 182, 180, 225, 180, 89, 10, 12, 2, 6, 87, 0x37B5, 100, 312, 624, 432, 0, 0, 0, 0, 0, 0, 0, 0, 5808, 1500, 2374, 7000, 2375, 7000, 2433, 7000, 7799, 9000, 7798, 9000, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1917, "MOROCC_", "Wounded Morroc", "Wounded Morroc", 151, 5000000, 1, 4050000, 3042000, 2, 3020, 5900, 425, 65, 165, 185, 200, 245, 180, 89, 10, 12, 2, 6, 87, 0x37B5, 100, 312, 624, 432, 2025000, 5000, 607, 5500, 617, 5000, 617, 5000, 5808, 1000, 2374, 5000, 2375, 5000, 2433, 5000, 7799, 9000, 7798, 9000, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1918, "MOROCC_1", "Incarnation of Morroc", "Incarnation of Morroc", 132, 63900, 1, 4392, 3294, 1, 1267, 1412, 199, 35, 126, 91, 63, 61, 76, 37, 10, 12, 2, 8, 27, 0x37B5, 110, 576, 480, 432, 0, 0, 0, 0, 0, 0, 0, 0, 2111, 10, 7799, 1000, 7798, 3000, 985, 160, 7054, 4850, 2537, 3, 1541, 20, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1919, "MOROCC_2", "Incarnation of Morroc", "Incarnation of Morroc", 132, 64922, 1, 5094, 3821, 1, 1083, 1242, 92, 5, 121, 86, 71, 65, 75, 44, 10, 12, 1, 6, 67, 0x37B5, 150, 576, 648, 300, 0, 0, 0, 0, 0, 0, 0, 0, 2536, 3, 7799, 1000, 7798, 3000, 984, 160, 7053, 3500, 2130, 15, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1920, "MOROCC_3", "Incarnation of Morroc", "Incarnation of Morroc", 133, 94800, 1, 5220, 3780, 2, 812, 1175, 111, 37, 102, 59, 55, 82, 98, 54, 10, 12, 1, 6, 69, 0x37B5, 150, 212, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 2508, 10, 7799, 1000, 7798, 3000, 985, 160, 7054, 4850, 2728, 3, 1182, 15, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1921, "MOROCC_4", "Incarnation of Morroc", "Incarnation of Morroc", 134, 77389, 1, 4608, 4056, 1, 823, 1422, 109, 54, 114, 88, 62, 97, 109, 43, 10, 12, 1, 6, 68, 0x37B5, 150, 1536, 648, 300, 0, 0, 0, 0, 0, 0, 0, 0, 2729, 5, 7799, 1000, 7798, 3000, 984, 160, 7053, 3500, 2129, 20, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1922, "G_MOROCC_1", "Incarnation of Morroc", "Incarnation of Morroc", 132, 63900, 1, 0, 0, 1, 1267, 1412, 199, 35, 126, 91, 63, 61, 76, 37, 10, 12, 2, 8, 27, 0x37B5, 110, 312, 480, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1923, "G_MOROCC_2", "Incarnation of Morroc", "Incarnation of Morroc", 132, 64922, 1, 0, 0, 1, 1083, 1242, 92, 5, 121, 86, 71, 65, 75, 44, 10, 12, 1, 6, 67, 0x37B5, 150, 312, 648, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1924, "G_MOROCC_3", "Incarnation of Morroc", "Incarnation of Morroc", 133, 94800, 1, 0, 0, 2, 812, 1175, 111, 37, 102, 59, 55, 82, 98, 54, 10, 12, 1, 6, 69, 0x37B5, 150, 212, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1925, "G_MOROCC_4", "Incarnation of Morroc", "Incarnation of Morroc", 134, 77389, 1, 0, 0, 1, 823, 1422, 109, 54, 114, 88, 62, 97, 109, 43, 10, 12, 1, 6, 68, 0x37B5, 150, 1536, 648, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1926, "JAKK_H", "Jakk", "Jakk", 1, 1000, 0, 0, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 10, 12, 1, 0, 43, 0x3695, 200, 1180, 480, 648, 0, 0, 0, 0, 0, 0, 0, 0, 12396, 1000, 6298, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1927, "WHISPER_H", "Whisper", "Whisper", 1, 1000, 0, 0, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 10, 12, 0, 6, 68, 0x3195, 150, 1960, 960, 504, 0, 0, 0, 0, 0, 0, 0, 0, 12397, 1000, 6299, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1928, "DEVIRUCHI_H", "Deviruchi", "Deviruchi", 46, 500, 0, 0, 0, 1, 5, 10, 10, 25, 1, 69, 40, 55, 70, 30, 10, 12, 0, 6, 27, 0x3795, 150, 980, 600, 384, 0, 0, 0, 0, 0, 0, 0, 0, 1038, 3000, 1039, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1929, "BAPHOMET_I", "Great Demon Baphomet", "Unsealed Baphomet", 98, 4520500, 1, 4068000, 2268000, 2, 4200, 6500, 190, 45, 140, 152, 5, 85, 200, 95, 10, 12, 2, 6, 67, 0x37B5, 100, 768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 6004, 500, 2514, 7000, 1181, 5000, 2655, 100, 2513, 7000, 2327, 7000, 1466, 9000, 0, 0, 0, 0, 4147, 1); -REPLACE INTO mob_db VALUES(1930, "PIAMETTE", "Piamette", "Piamette", 90, 3000500, 1, 0, 0, 2, 1500, 2700, 56, 35, 1, 66, 5, 99, 120, 15, 10, 12, 0, 7, 20, 0x37B5, 100, 432, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1931, "WISH_MAIDEN", "Wish Maiden", "Wish Maiden", 98, 3567700, 1, 0, 0, 3, 6500, 9800, 40, 42, 100, 120, 30, 120, 220, 210, 10, 12, 2, 8, 28, 0x37B5, 100, 576, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1932, "GARDEN_KEEPER", "Garden Keeper", "Garden Keeper", 80, 100, 1, 0, 0, 1, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 10, 12, 0, 0, 42, 0xE1, 100, 768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7839, 9000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1933, "GARDEN_WATCHER", "Garden Watcher", "Garden Watcher", 81, 300000, 1, 0, 0, 1, 1666, 2609, 88, 55, 30, 57, 56, 126, 128, 114, 10, 12, 1, 8, 80, 0x37B5, 100, 432, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1934, "BLUE_FLOWER", "Blue Flower", "Blue Flower", 98, 10500, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 10, 12, 1, 3, 22, 0x60, 100, 768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1935, "RED_FLOWER", "Red Flower", "Red Flower", 98, 10500, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 10, 12, 1, 3, 22, 0x60, 100, 768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1936, "YELL_FLOWER", "Yellow Flower", "Yellow Flower", 98, 10500, 1, 0, 0, 0, 1, 2, 160, 99, 1, 1, 1, 1, 1, 1, 10, 12, 1, 3, 22, 0x60, 100, 768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1937, "CONSTANT_", "Constant", "Constant", 108, 11000, 0, 0, 0, 1, 660, 804, 92, 82, 126, 98, 62, 57, 91, 34, 10, 12, 0, 0, 67, 0x3885, 150, 720, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1938, "TREASURE_BOX41", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7830, 80, 658, 500, 12999, 10000, 984, 4850, 985, 7275, 2514, 40, 1625, 150, 1268, 150, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1939, "TREASURE_BOX42", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7831, 80, 658, 500, 12999, 10000, 984, 4850, 985, 7275, 2513, 40, 1375, 150, 1269, 150, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1940, "TREASURE_BOX43", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7832, 80, 658, 500, 12999, 10000, 984, 4850, 985, 7275, 13027, 150, 1376, 150, 1271, 150, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1941, "TREASURE_BOX44", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7833, 80, 658, 500, 12999, 10000, 984, 4850, 985, 7275, 13404, 150, 1730, 150, 2001, 50, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1942, "TREASURE_BOX45", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7834, 80, 658, 500, 12999, 10000, 984, 4850, 985, 7275, 1176, 150, 1734, 150, 1819, 150, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1943, "TREASURE_BOX46", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7835, 80, 658, 500, 12999, 10000, 984, 4850, 985, 7275, 1421, 150, 1731, 150, 1822, 150, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1944, "TREASURE_BOX47", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7836, 80, 658, 500, 12999, 10000, 984, 4850, 985, 7275, 1478, 150, 1732, 150, 2531, 50, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1945, "TREASURE_BOX48", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7837, 80, 658, 500, 12999, 10000, 984, 4850, 985, 7275, 1624, 150, 1733, 150, 1821, 150, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1946, "TREASURE_BOX49", "Treasure Chest", "Treasure Chest", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7838, 80, 658, 500, 12999, 10000, 984, 4850, 985, 7275, 1626, 150, 1270, 150, 2532, 50, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1947, "PIAMETTE_", "Piamette", "Piamette", 90, 500500, 1, 0, 0, 2, 1500, 2700, 56, 35, 1, 66, 5, 99, 120, 15, 10, 12, 0, 7, 20, 0x37B5, 100, 432, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1948, "G_YGNIZEM", "Ygnizem", "Egnigem Cenia", 136, 44327, 1, 0, 0, 1, 790, 1018, 124, 8, 144, 92, 86, 69, 99, 68, 10, 12, 1, 7, 43, 0x3885, 145, 576, 432, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1949, "B_S_GUARDIAN", "Camp Guardian", "Camp Guardian", 86, 457599, 1, 0, 0, 2, 7590, 9140, 96, 33, 110, 40, 5, 65, 125, 65, 14, 16, 2, 7, 80, 0x20A5, 170, 140, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1950, "B_B_GUARDIAN", "Camp Guardian", "Camp Guardian", 80, 241212, 1, 0, 0, 12, 1840, 2520, 64, 62, 95, 80, 5, 90, 165, 55, 14, 16, 2, 7, 80, 0x20A5, 170, 76, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1951, "CRYSTAL_6", "Crystal", "Crystal", 1, 15, 1, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x161, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 3800, 530, 4500, 561, 5000, 665, 4900, 0, 0, 532, 6500, 558, 5000, 0, 0, 0, 0, 607, 200); -REPLACE INTO mob_db VALUES(1952, "CRYSTAL_7", "Crystal", "Crystal", 1, 15, 1, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x161, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 3800, 530, 4500, 561, 5000, 667, 4900, 0, 0, 531, 6500, 558, 5000, 0, 0, 0, 0, 608, 250); -REPLACE INTO mob_db VALUES(1953, "CRYSTAL_8", "Crystal", "Crystal", 1, 15, 1, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x161, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 3800, 530, 4500, 561, 5000, 664, 4900, 0, 0, 534, 6500, 558, 5000, 0, 0, 0, 0, 604, 300); -REPLACE INTO mob_db VALUES(1954, "CRYSTAL_9", "Crystal", "Crystal", 1, 15, 1, 0, 0, 0, 0, 0, 160, 99, 1, 1, 1, 1, 999, 1, 0, 0, 0, 0, 20, 0x161, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 3800, 530, 4500, 561, 5000, 666, 4900, 0, 0, 533, 6500, 558, 5000, 0, 0, 0, 0, 603, 100); -REPLACE INTO mob_db VALUES(1955, "TREASURE_BOX_I", "Treasure Chest", "Treasure Chest", 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 0, 0, 0, 0, 0, 20, 0x83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12281, 9000, 12281, 2000, 12281, 1000, 721, 2000, 723, 2000, 727, 2000, 732, 100, 0, 0, 0, 0, 719, 2000); -REPLACE INTO mob_db VALUES(1956, "NAGHT_SIEGER", "Naght Sieger", "Naght Sieger", 99, 5000000, 1, 3600000, 1800000, 2, 5400, 8600, 410, 40, 190, 60, 80, 220, 264, 30, 16, 16, 2, 6, 88, 0x37B5, 100, 76, 432, 504, 0, 0, 0, 0, 0, 0, 0, 0, 13412, 9000, 13413, 9000, 2542, 9000, 5017, 9000, 616, 9000, 2514, 9000, 7294, 9000, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1957, "ENTWEIHEN", "Entweihen Crothen", "Entweihen Crothen", 90, 2400500, 1, 1430000, 1215000, 12, 4400, 8000, 171, 66, 90, 70, 40, 160, 190, 30, 14, 16, 1, 6, 87, 0x1A4, 0, 140, 540, 576, 0, 0, 0, 0, 0, 0, 0, 0, 1636, 9000, 1631, 9000, 2513, 9000, 1624, 9000, 616, 9000, 1618, 9000, 7291, 9000, 0, 0, 0, 0, 4451, 1); -REPLACE INTO mob_db VALUES(1958, "G_ENTWEIHEN_R", "Thorny Skeleton", "Thorny Skeleton", 89, 5400000, 1, 0, 0, 12, 4040, 4720, 71, 66, 1, 35, 33, 180, 125, 30, 14, 16, 0, 6, 87, 0x1A4, 0, 432, 288, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1959, "G_ENTWEIHEN_H", "Thorn of Recovery", "Thorn of Recovery", 89, 350000, 1, 0, 0, 12, 2040, 2720, 71, 66, 1, 35, 33, 180, 125, 30, 14, 16, 0, 6, 88, 0x1A4, 0, 2864, 288, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1960, "G_ENTWEIHEN_M", "Thorn of Magic", "Thorn of Magic", 89, 5400000, 1, 0, 0, 12, 2040, 2720, 71, 66, 1, 35, 33, 180, 125, 30, 14, 16, 0, 6, 87, 0x1A4, 0, 1024, 288, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1961, "G_ENTWEIHEN_S", "Thorn of Purification", "Thorn of Purification", 89, 5400000, 1, 0, 0, 12, 2040, 2720, 71, 66, 1, 35, 33, 180, 125, 30, 14, 16, 0, 6, 87, 0x1A4, 0, 2864, 288, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1962, "ANTONIO_", "Christmas Thief", "Christmas Thief", 10, 15, 1, 0, 0, 1, 13, 20, 160, 99, 1, 1, 1, 50, 100, 100, 10, 12, 1, 7, 20, 0x83, 100, 720, 720, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1963, "P_CHUNG_E", "New Year Doll", "New Year Doll", 49, 23900, 0, 2156, 894, 1, 460, 1050, 8, 15, 38, 65, 43, 30, 90, 15, 10, 12, 1, 7, 40, 0x3695, 170, 1728, 816, 1188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1964, "NIGHTMARE_T", "Nightmare", "Nightmare", 30, 2000, 0, 461, 348, 1, 100, 200, 0, 40, 1, 100, 1, 1, 100, 1, 10, 12, 2, 2, 68, 0x120, 150, 1816, 816, 432, 0, 0, 0, 0, 0, 0, 0, 0, 505, 2000, 510, 3000, 7913, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1965, "M_WILD_ROSE", "Wild Rose", "Wild Rose", 38, 4000, 50, 0, 0, 1, 100, 145, 0, 15, 0, 85, 15, 35, 65, 80, 10, 12, 0, 2, 24, 0x120, 100, 964, 864, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1966, "M_DOPPELGANGER", "Doppelganger", "Doppelganger", 72, 7800, 200, 0, 0, 1, 200, 250, 30, 20, 0, 38, 30, 35, 65, 65, 10, 12, 1, 6, 67, 0x120, 100, 300, 480, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1967, "M_YGNIZEM", "Ygnizem", "Egnigem Cenia", 79, 7800, 200, 0, 0, 1, 200, 250, 30, 20, 0, 38, 30, 35, 65, 65, 10, 12, 1, 7, 43, 0x120, 100, 300, 480, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1968, "E_STROUF", "Strouf", "Strouf", 48, 11990, 0, 5544, 3776, 1, 200, 1250, 8, 50, 1, 40, 45, 92, 43, 65, 10, 12, 2, 5, 61, 0x120, 150, 1872, 672, 384, 0, 0, 0, 0, 0, 0, 0, 0, 951, 5335, 756, 230, 2241, 4, 1461, 4, 949, 3000, 720, 40, 956, 1500, 0, 0, 0, 0, 4111, 1); -REPLACE INTO mob_db VALUES(1969, "E_MARC", "Marc", "Marc", 36, 6900, 0, 1778, 1125, 1, 220, 280, 8, 10, 1, 36, 36, 20, 56, 30, 10, 12, 1, 5, 41, 0x120, 150, 1272, 72, 480, 0, 0, 0, 0, 0, 0, 0, 0, 995, 36, 956, 9000, 756, 190, 951, 1000, 720, 20, 717, 200, 509, 700, 0, 0, 0, 0, 4105, 1); -REPLACE INTO mob_db VALUES(1970, "E_OBEAUNE", "Obeune", "Obeune", 31, 3952, 0, 1159, 733, 1, 141, 165, 0, 40, 1, 31, 31, 55, 74, 85, 10, 12, 1, 5, 41, 0x120, 200, 1872, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 995, 26, 950, 9000, 5014, 2, 2326, 20, 720, 20, 951, 500, 748, 60, 0, 0, 0, 0, 4093, 1); -REPLACE INTO mob_db VALUES(1971, "E_VADON", "Vadon", "Vadon", 19, 1017, 0, 243, 153, 1, 74, 85, 32, 0, 1, 19, 16, 10, 36, 15, 10, 12, 0, 5, 21, 0x120, 300, 1632, 432, 540, 0, 0, 0, 0, 0, 0, 0, 0, 991, 40, 960, 9000, 910, 3000, 2313, 10, 943, 100, 757, 80, 717, 50, 0, 0, 0, 0, 4049, 1); -REPLACE INTO mob_db VALUES(1972, "E_MARINA", "Marina", "Marina", 21, 2087, 0, 392, 252, 1, 84, 106, 0, 5, 1, 21, 21, 0, 36, 10, 10, 12, 0, 3, 41, 0x120, 400, 2280, 1080, 864, 0, 0, 0, 0, 0, 0, 0, 0, 1052, 5000, 938, 1500, 991, 90, 995, 4, 717, 200, 631, 40, 0, 0, 0, 0, 0, 0, 4055, 1); -REPLACE INTO mob_db VALUES(1973, "E_PORING", "Poring", "Poring", 1, 50, 0, 2, 1, 1, 7, 10, 0, 5, 1, 1, 1, 0, 6, 30, 10, 12, 1, 3, 21, 0x120, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 909, 7000, 938, 400, 512, 1000, 713, 1500, 12303, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1974, "BANSHEE_MASTER", "Banshee Master", "Banshee Master", 118, 20320, 0, 3402, 2556, 2, 599, 897, 87, 94, 121, 58, 48, 122, 60, 44, 10, 12, 1, 6, 47, 0x3795, 150, 676, 504, 504, 0, 0, 0, 0, 0, 0, 0, 0, 7751, 3000, 2365, 10, 2748, 2, 2528, 10, 934, 1500, 7054, 5335, 0, 0, 0, 0, 0, 0, 4450, 1); -REPLACE INTO mob_db VALUES(1975, "BEHOLDER_MASTER", "Beholder Master", "Beholder Master", 106, 10135, 0, 2430, 1845, 6, 471, 559, 73, 62, 103, 67, 42, 69, 69, 32, 10, 12, 1, 0, 44, 0x3885, 190, 336, 840, 360, 0, 0, 0, 0, 0, 0, 0, 0, 576, 3000, 605, 100, 996, 100, 985, 10, 2386, 10, 2749, 2, 603, 2, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1976, "COBALT_MINERAL", "Cobalt Mineral", "Cobalt Mineral", 113, 15800, 0, 2700, 2070, 1, 645, 737, 113, 44, 110, 55, 65, 57, 95, 41, 10, 12, 1, 0, 40, 0x3885, 200, 648, 480, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7321, 3000, 728, 500, 13414, 5, 984, 80, 1011, 800, 715, 100, 969, 2, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1977, "HEAVY_METALING", "Heavy Metaling", "Heavy Metaling", 107, 11500, 0, 2610, 1980, 1, 672, 784, 134, 65, 105, 63, 86, 58, 56, 38, 10, 12, 0, 0, 20, 0x3885, 200, 384, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7325, 4000, 1002, 1000, 998, 500, 7126, 1000, 7317, 200, 13038, 5, 7312, 5000, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1978, "HELL_APOCALIPS", "Hell Apocalips", "Hell Vesper", 121, 22100, 0, 3348, 3020, 2, 780, 902, 155, 43, 135, 62, 80, 48, 89, 37, 10, 12, 2, 0, 60, 0x3885, 250, 1840, 1440, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7095, 5335, 7094, 2400, 7093, 2200, 985, 5, 2391, 10, 1484, 4, 999, 2500, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1979, "ZAKUDAM", "Zukadam", "Zakudam", 115, 17200, 0, 2880, 2160, 3, 650, 780, 106, 92, 122, 66, 70, 61, 66, 55, 10, 12, 2, 7, 60, 0x3885, 180, 580, 288, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7317, 5000, 999, 500, 984, 200, 985, 200, 13156, 5, 13167, 5, 2390, 10, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1980, "KUBLIN", "Kubkin", "Kublin", 85, 633600, 0, 90000, 90000, 1, 1180, 1400, 22, 10, 85, 81, 25, 40, 55, 20, 10, 12, 1, 7, 22, 0x37B5, 100, 964, 648, 300, 45000, 5000, 6010, 10000, 0, 0, 0, 0, 998, 270, 911, 9000, 756, 43, 2297, 3, 1061, 2500, 0, 0, 507, 1800, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1981, "I_HIGH_ORC", "Safeguard Chief", "Safeguard Chief", 81, 44193, 1, 0, 0, 1, 489, 639, 101, 45, 75, 16, 40, 31, 69, 20, 10, 12, 2, 7, 43, 0x3695, 150, 1500, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1982, "I_ORC_ARCHER", "Orc Sniper", "Orc Sniper", 78, 54835, 1, 0, 0, 9, 460, 503, 67, 31, 55, 32, 24, 30, 125, 15, 10, 12, 1, 7, 22, 0x3095, 300, 1960, 620, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1983, "I_ORC_SKELETON", "Depraved Orc Spirit", "Depraved Orc Spirit", 87, 80087, 0, 0, 0, 1, 496, 759, 23, 30, 1, 31, 41, 93, 67, 30, 10, 12, 1, 1, 29, 0x3885, 130, 2420, 720, 648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1984, "I_ORC_LADY", "Shaman Cargalache", "Shaman Cargalache", 80, 50058, 0, 0, 0, 1, 423, 812, 56, 10, 60, 35, 52, 18, 79, 20, 10, 12, 1, 7, 42, 0x3695, 145, 1050, 900, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1985, "DANDELION", "Dandelion Member", "Dandelion Member", 37, 45000, 0, 0, 0, 1, 305, 360, 0, 10, 28, 19, 32, 0, 63, 20, 10, 12, 1, 7, 47, 0x3695, 250, 1772, 72, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1986, "TATACHO", "Tatacho", "Tatacho", 128, 33336, 1, 3762, 3092, 2, 727, 799, 151, 14, 119, 33, 70, 56, 78, 33, 10, 12, 1, 2, 22, 0x108B, 200, 1000, 768, 360, 0, 0, 0, 0, 0, 0, 0, 0, 1544, 20, 1925, 10, 6020, 4000, 6021, 3000, 579, 3100, 6224, 10, 1061, 2500, 0, 0, 0, 0, 4442, 1); -REPLACE INTO mob_db VALUES(1987, "CENTIPEDE", "Centipede", "Centipede", 125, 24992, 1, 3201, 2711, 2, 601, 713, 143, 25, 133, 71, 69, 39, 86, 49, 10, 12, 1, 4, 45, 0x3795, 150, 1000, 792, 336, 0, 0, 0, 0, 0, 0, 0, 0, 2746, 2, 2747, 2, 1741, 10, 1042, 5335, 912, 5000, 6224, 10, 943, 2500, 0, 0, 0, 0, 4447, 1); -REPLACE INTO mob_db VALUES(1988, "NEPENTHES", "Nepenthes", "Nepenthes", 114, 15099, 1, 2599, 1793, 7, 602, 727, 25, 5, 94, 32, 41, 39, 150, 59, 10, 12, 1, 3, 45, 0x84, 1000, 500, 576, 504, 0, 0, 0, 0, 0, 0, 0, 0, 5399, 1, 1979, 1, 1926, 1, 1740, 1, 6041, 3000, 993, 50, 905, 9000, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1989, "HILLSRION", "Hillslion", "Hillthrion", 123, 21422, 1, 2909, 1698, 1, 450, 552, 83, 11, 110, 69, 72, 41, 102, 12, 10, 12, 0, 2, 22, 0x308D, 130, 400, 780, 576, 0, 0, 0, 0, 0, 0, 0, 0, 2440, 10, 1825, 20, 6032, 3000, 6020, 2000, 1268, 10, 7054, 4850, 7938, 1000, 0, 0, 0, 0, 4453, 1); -REPLACE INTO mob_db VALUES(1990, "HARDROCK_MOMMOTH", "Hardrock Mammoth", "Hardrock Mammoth", 137, 1900944, 1, 142293, 81178, 2, 1552, 2326, 449, 43, 191, 66, 102, 49, 131, 51, 10, 12, 2, 2, 62, 0x37B5, 150, 1000, 660, 588, 0, 0, 0, 0, 0, 0, 0, 0, 5398, 100, 2133, 200, 1483, 500, 13039, 400, 6022, 9000, 2257, 20, 985, 9000, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1991, "TENDRILRION", "Tendrillion", "Tendrillion", 126, 1397451, 1, 100772, 75299, 2, 1002, 2322, 132, 123, 144, 66, 77, 181, 145, 132, 10, 12, 1, 2, 42, 0x37B5, 100, 500, 960, 360, 0, 0, 0, 0, 0, 0, 0, 0, 2544, 500, 1186, 100, 1637, 100, 6033, 9000, 6224, 10, 7197, 5335, 7008, 4850, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1992, "CORNUS", "Cornus", "Cornus", 120, 20722, 1, 6240, 4004, 2, 288, 810, 66, 95, 51, 47, 59, 99, 93, 77, 10, 12, 1, 2, 66, 0x1089, 120, 1000, 624, 300, 0, 0, 0, 0, 0, 0, 0, 0, 2387, 10, 2743, 1, 6023, 4000, 7063, 3000, 6224, 10, 2257, 2, 1420, 1, 0, 0, 0, 0, 4448, 1); -REPLACE INTO mob_db VALUES(1993, "NAGA", "Naga", "Naga", 117, 21099, 1, 2944, 2212, 3, 489, 591, 72, 5, 112, 65, 71, 32, 71, 33, 10, 12, 2, 2, 42, 0x3695, 150, 400, 864, 432, 0, 0, 0, 0, 0, 0, 0, 0, 2389, 10, 2134, 10, 1485, 10, 6224, 10, 936, 3500, 954, 2000, 1408, 20, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1994, "LUCIOLA_VESPA", "Luciola Vespa", "Luciola Vespa", 109, 12466, 1, 1622, 1806, 1, 299, 410, 59, 55, 88, 89, 55, 32, 119, 59, 10, 12, 1, 4, 24, 0x7795, 110, 1000, 864, 432, 0, 0, 0, 0, 0, 0, 0, 0, 2744, 2, 6224, 1, 939, 9000, 518, 300, 992, 160, 526, 200, 943, 3000, 0, 0, 0, 0, 4445, 1); -REPLACE INTO mob_db VALUES(1995, "PINGUICULA", "Pinguicula", "Pinguicula", 105, 13058, 1, 2221, 1662, 1, 189, 511, 46, 77, 67, 60, 64, 107, 64, 34, 10, 12, 1, 3, 62, 0x308D, 200, 700, 600, 360, 0, 0, 0, 0, 0, 0, 0, 0, 2745, 1, 1980, 10, 2270, 10, 7100, 5000, 7198, 2000, 7188, 3000, 712, 1000, 0, 0, 0, 0, 7939, 1000); -# REPLACE INTO mob_db VALUES(1996, "BACSOJIN_T", "Bacsojin", "White Lady", 97, 720500, 1, 668160, 542880, 3, 1088, 3124, 210, 178, 118, 244, 98, 126, 205, 102, 10, 12, 2, 7, 64, 0x37B5, 130, 576, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 5411, 3, 2638, 80, 2639, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1997, "G_TATACHO", "Tatacho", "Tatacho", 128, 33336, 1, 0, 0, 2, 727, 799, 151, 14, 119, 33, 70, 56, 78, 33, 10, 12, 1, 2, 22, 0x108B, 200, 1000, 768, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1998, "G_HILLSRION", "Hillslion", "Hillslion", 123, 21422, 1, 0, 0, 1, 450, 552, 83, 15, 110, 69, 72, 41, 102, 12, 10, 12, 0, 2, 22, 0x308D, 100, 400, 780, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(1999, "CENTIPEDE_LARVA", "Centipede Larva", "Centipede Larva", 118, 20667, 1, 2930, 2003, 2, 521, 609, 98, 17, 103, 62, 66, 27, 77, 44, 10, 12, 0, 4, 25, 0x3795, 150, 1000, 792, 336, 0, 0, 0, 0, 0, 0, 0, 0, 2406, 9, 732, 50, 0, 0, 1042, 5335, 912, 5000, 955, 9000, 943, 2500, 0, 0, 0, 0, 4452, 100); -# REPLACE INTO mob_db VALUES(2000, "M_GAMEMASTER", "Male Game Master", "Game Master", 50, 7000, 250, 0, 0, 1, 25, 25, 10, 10, 44, 121, 1, 60, 75, 110, 10, 12, 1, 7, 20, 0x120, 200, 300, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2001, "F_GAMEMASTER", "Female Game Master", "Game Master", 50, 7000, 250, 0, 0, 1, 25, 25, 10, 10, 44, 121, 1, 60, 75, 110, 10, 12, 1, 7, 20, 0x120, 200, 300, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2002, "T_SPRING_RABBIT", "Spring Rabbit", "Spring Rabbit", 50, 8000, 0, 3584, 1589, 1, 585, 813, 47, 21, 45, 61, 5, 15, 77, 90, 10, 12, 1, 2, 42, 0x120, 160, 1120, 552, 511, 0, 0, 0, 0, 0, 0, 0, 0, 12188, 1000, 6061, 500, 6068, 1500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2003, "T_BACSOJIN", "White Lady", "White Lady", 97, 720500, 1, 0, 0, 2, 1088, 3124, 210, 178, 118, 244, 98, 126, 205, 102, 10, 12, 2, 7, 41, 0x3695, 160, 576, 960, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7406, 1000, 7407, 1000, 6062, 1000, 6063, 1000, 6064, 1000, 6065, 1000, 6066, 1000, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2004, "T_WICKED_NYMPH", "Evil Nymph", "Evil Nymph", 63, 16029, 0, 0, 0, 2, 399, 1090, 20, 75, 1, 64, 12, 69, 100, 80, 10, 12, 1, 6, 67, 0x3695, 200, 637, 1008, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7406, 800, 7407, 800, 6063, 800, 6064, 800, 6065, 800, 6066, 800, 6067, 800, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2005, "T_PLASMA_B", "Plasma", "Plasma", 44, 8200, 0, 0, 0, 3, 300, 700, 0, 30, 1, 30, 5, 73, 90, 30, 10, 12, 0, 0, 81, 0x120, 150, 608, 1440, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7406, 500, 7407, 500, 6062, 500, 6063, 500, 6064, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2006, "T_PLASMA_P", "Plasma", "Plasma", 49, 5900, 0, 0, 0, 3, 300, 700, 0, 30, 1, 30, 5, 54, 90, 30, 10, 12, 0, 0, 87, 0x120, 150, 608, 1440, 576, 0, 0, 0, 0, 0, 0, 0, 0, 6062, 500, 6063, 500, 6064, 500, 6065, 500, 6066, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2007, "T_PLASMA_R", "Plasma", "Plasma", 43, 5700, 0, 0, 0, 3, 300, 700, 0, 30, 1, 30, 5, 56, 90, 30, 10, 12, 0, 0, 83, 0x120, 150, 608, 1440, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7406, 500, 7407, 500, 6064, 500, 6065, 500, 6066, 500, 6067, 500, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2008, "WOOMAWANG", "Woomawang", "Woomawang", 82, 4000000, 0, 90000, 90000, 3, 8000, 10000, 40, 40, 60, 110, 200, 250, 166, 66, 10, 12, 2, 6, 48, 0x3695, 250, 828, 528, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2009, "WOOMAWANG_", "Woomawang", "Woomawang", 82, 2000000, 0, 90000, 90000, 1, 16000, 20000, 40, 40, 60, 110, 200, 250, 166, 66, 10, 12, 1, 6, 48, 0x3695, 100, 414, 1080, 336, 0, 0, 0, 0, 0, 0, 0, 0, 7930, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2010, "G_MAJORUROS", "Ox", "Ox", 66, 500000, 0, 9, 9, 1, 1200, 3200, 25, 15, 65, 50, 20, 20, 85, 48, 10, 12, 2, 6, 28, 0x3885, 250, 1100, 960, 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2011, "E_GHOUL", "Ghoul", "Ghoul", 40, 99999, 0, 979, 560, 1, 420, 500, 100, 20, 1, 20, 29, 0, 45, 20, 10, 12, 1, 1, 49, 0x120, 250, 2456, 912, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2012, "E_ZOMBIE", "Zombie", "Zombie", 15, 99999, 0, 45, 30, 1, 67, 79, 100, 10, 1, 8, 7, 0, 15, 0, 10, 12, 1, 1, 29, 0x120, 400, 2612, 912, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2013, "DRACO", "Draco", "Draco", 114, 20099, 1, 1995, 1205, 1, 556, 666, 56, 3, 21, 58, 47, 34, 71, 66, 10, 12, 1, 9, 22, 0x1089, 250, 576, 960, 504, 0, 0, 0, 0, 0, 0, 0, 0, 6073, 3000, 7123, 100, 1035, 100, 1037, 1000, 1036, 1000, 518, 500, 2399, 10, 0, 0, 0, 0, 4444, 1); -REPLACE INTO mob_db VALUES(2014, "DRACO_EGG", "Draco Egg", "Draco Egg", 101, 100000, 1, 2000, 1500, 0, 1, 2, 384, 30, 1, 1, 135, 92, 1, 98, 10, 12, 1, 9, 82, 0x0, 1000, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7032, 5000, 5015, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2015, "PINGUICULA_D", "Dark Pinguicula", "Dark Pinguicula", 113, 17002, 1, 2101, 2419, 1, 251, 640, 59, 35, 89, 55, 55, 95, 66, 12, 10, 12, 1, 3, 45, 0x308D, 290, 1426, 600, 360, 0, 0, 0, 0, 0, 0, 0, 0, 7100, 5000, 7198, 2000, 7188, 3000, 972, 10, 6086, 1000, 7939, 1500, 2148, 10, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2016, "AQUA_ELEMENTAL", "Aqua Elemental", "Aqua Elemental", 121, 33209, 1, 4155, 4155, 1, 616, 1066, 23, 8, 95, 61, 25, 25, 86, 40, 10, 12, 2, 0, 81, 0x3095, 230, 504, 960, 576, 0, 0, 0, 0, 0, 0, 0, 0, 6075, 1000, 7326, 5000, 12353, 100, 0, 0, 2787, 10, 0, 0, 0, 0, 0, 0, 0, 0, 4443, 1); -REPLACE INTO mob_db VALUES(2017, "RATA", "Rata", "Rata", 131, 58299, 1, 7787, 6119, 1, 720, 931, 81, 46, 101, 74, 71, 51, 98, 56, 10, 12, 1, 7, 62, 0x3295, 150, 792, 540, 420, 0, 0, 0, 0, 0, 0, 0, 0, 12346, 5000, 1026, 5000, 6089, 500, 1548, 100, 6224, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2018, "DUNEYRR", "Duneyrr", "Duneyrr", 135, 63342, 1, 8601, 7298, 1, 833, 1134, 144, 28, 133, 69, 72, 55, 110, 44, 10, 12, 1, 7, 62, 0x3295, 200, 672, 420, 360, 0, 0, 0, 0, 0, 0, 0, 0, 515, 5000, 6020, 4000, 6089, 500, 2783, 1, 1188, 10, 1384, 100, 6224, 10, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2019, "ANCIENT_TREE", "Ancient Tree", "Ancient Tree", 144, 388933, 1, 7308, 5481, 1, 788, 864, 226, 37, 148, 72, 93, 58, 99, 30, 10, 12, 2, 3, 62, 0x308D, 290, 504, 960, 576, 0, 0, 0, 0, 0, 0, 0, 0, 7197, 1000, 7198, 1000, 7201, 5000, 1643, 10, 2450, 30, 7939, 1000, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2020, "RHYNCHO", "Rhyncho", "Rhyncho", 139, 337220, 1, 6107, 4579, 1, 575, 776, 68, 12, 119, 98, 62, 48, 79, 46, 10, 12, 1, 0, 61, 0x308D, 240, 576, 660, 420, 0, 0, 0, 0, 0, 0, 0, 0, 7326, 5000, 972, 5, 6087, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2021, "PHYLLA", "Phylla", "Phylla", 139, 345560, 1, 6107, 4579, 10, 550, 726, 61, 14, 107, 85, 60, 58, 101, 42, 10, 12, 1, 0, 61, 0x2085, 240, 360, 780, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7326, 5000, 971, 5, 6088, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2022, "S_NYDHOG", "Nidhoggr\'s Shadow", "Nidhoggur\'s Shadow", 117, 3452000, 0, 4320000, 3510000, 2, 4040, 7880, 60, 75, 1, 34, 62, 236, 188, 34, 10, 12, 2, 9, 87, 0x37B5, 150, 1596, 1620, 864, 2160000, 10000, 0, 0, 0, 0, 0, 0, 6091, 5000, 7444, 5000, 6224, 1000, 1484, 500, 1170, 500, 1417, 500, 2554, 2000, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2023, "DARK_SHADOW", "Dark Shadow", "Dark Shadow", 147, 434300, 1, 7630, 5721, 1, 902, 1059, 140, 44, 155, 126, 89, 108, 142, 76, 10, 12, 0, 0, 47, 0x3195, 220, 768, 1776, 648, 0, 0, 0, 0, 0, 0, 0, 0, 7205, 5000, 2609, 1000, 13038, 5, 6089, 1000, 2783, 5, 1385, 10, 6224, 10, 0, 0, 0, 0, 4449, 1); -REPLACE INTO mob_db VALUES(2024, "BRADIUM_GOLEM", "Bradium Golem", "Bradium Golem", 133, 45739, 1, 6553, 3595, 1, 871, 974, 359, 12, 189, 25, 125, 45, 69, 33, 10, 12, 2, 0, 42, 0x3295, 300, 1008, 1200, 540, 0, 0, 0, 0, 0, 0, 0, 0, 7067, 3000, 953, 5000, 6090, 500, 2138, 10, 12738, 10, 6224, 500, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2025, "MYSTCASE_EVENT", "Mystcase", "Mystcase", 10, 10, 0, 77, 77, 1, 10, 20, 1, 99, 1, 1, 1, 1, 48, 1, 10, 12, 1, 0, 20, 0x120, 400, 1248, 1248, 432, 0, 0, 0, 0, 0, 0, 0, 0, 558, 5000, 558, 5000, 559, 1000, 560, 1000, 561, 1000, 573, 1000, 573, 10, 0, 0, 0, 0, 573, 10); -REPLACE INTO mob_db VALUES(2026, "DANDELION_", "Runaway Dandelion Member", "Runaway Dandelion Member", 90, 552500, 0, 45000, 22500, 1, 3050, 4300, 40, 35, 1, 66, 66, 45, 88, 66, 10, 12, 1, 7, 27, 0x3695, 230, 1772, 72, 384, 0, 0, 0, 0, 0, 0, 0, 0, 7031, 5000, 579, 500, 7016, 2000, 581, 3000, 12125, 500, 511, 5000, 7032, 3000, 0, 0, 0, 0, 902, 2000); -REPLACE INTO mob_db VALUES(2027, "G_DARK_SHADOW", "Dark Shadow", "Dark Shadow", 147, 434300, 1, 0, 0, 1, 902, 1059, 140, 44, 155, 126, 89, 108, 142, 76, 10, 12, 0, 0, 47, 0x3795, 220, 768, 1776, 648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2028, "E_MINOROUS", "Minorous", "Minorous", 1, 741, 0, 0, 0, 1, 30, 48, 4, 5, 6, 4, 6, 6, 5, 3, 10, 12, 2, 2, 43, 0x120, 200, 1360, 960, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7606, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2029, "E_MINOROUS_", "Minorous", "Minorous", 10, 15, 0, 9, 0, 1, 100, 150, 160, 99, 1, 1, 1, 1, 100, 100, 10, 12, 2, 2, 43, 0x120, 200, 1360, 960, 432, 0, 0, 0, 0, 0, 0, 0, 0, 941, 10, 6119, 2000, 6119, 4000, 6119, 1000, 516, 1000, 2289, 1, 577, 1000, 0, 0, 0, 0, 644, 1); -# REPLACE INTO mob_db VALUES(2030, "HIDEN_PRIEST", "Hiden Priest", "Hiden Priest", 90, 240500, 0, 0, 0, 2, 1300, 1983, 0, 30, 1, 32, 40, 100, 82, 40, 10, 12, 2, 6, 89, 0x120, 150, 432, 432, 360, 0, 0, 0, 0, 0, 0, 0, 0, 12379, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2031, "DANDELION_H", "Dandelion", "Dandelion", 80, 120000, 0, 0, 0, 1, 305, 610, 0, 10, 1, 19, 32, 0, 63, 20, 10, 12, 1, 7, 47, 0x120, 250, 1772, 72, 384, 0, 0, 0, 0, 0, 0, 0, 0, 12379, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2032, "GUARDIAN_FOREST", "Forest Guardian", "Forest Guardian", 50, 99999, 0, 0, 0, 1, 3000, 6000, 160, 99, 100, 100, 100, 100, 100, 100, 10, 12, 0, 6, 27, 0x120, 200, 868, 480, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2033, "GOLDEN_TULIP", "Golden Tulip", "Golden Tulip", 1, 100, 0, 0, 0, 1, 1, 2, 160, 99, 0, 0, 0, 0, 0, 0, 7, 12, 0, 3, 22, 0x120, 2000, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7951, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2034, "M_DESERT_WOLF_B", "Baby Desert Wolf", "Baby Desert Wolf", 9, 164, 15, 0, 0, 1, 500, 600, 0, 0, 1, 9, 9, 5, 40, 40, 10, 12, 0, 2, 23, 0x120, 100, 1600, 900, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2035, "NIHILITY_ZEM", "Nihility Zem", "Nihility Zem", 90, 200500, 0, 0, 0, 0, 1, 2, 0, 20, 1, 1, 1, 0, 1, 20, 10, 12, 0, 4, 22, 0x100, 1000, 1001, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2036, "VALKYRIE_N", "Valkyrie Randgris", "Valkyrie Randgris", 98, 11780, 0, 0, 0, 1, 780, 930, 16, 20, 1, 24, 39, 0, 72, 25, 10, 12, 1, 1, 69, 0x308D, 170, 576, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 6154, 9000, 6154, 5000, 6154, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2037, "VALKYRIE_A", "Valkyrie Randgris", "Valkyrie Randgris", 90, 5500, 15, 0, 0, 1, 10, 160, 16, 20, 1, 20, 40, 0, 20, 20, 10, 12, 1, 8, 66, 0x120, 100, 576, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2038, "VALKYRIE_B", "Valkyrie Randgris", "Valkyrie Randgris", 90, 10500, 15, 0, 0, 1, 300, 450, 16, 40, 1, 20, 80, 0, 80, 20, 10, 12, 1, 8, 66, 0x120, 100, 576, 576, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2039, "EXECUTIONER_R", "Executioner", "Executioner", 65, 28980, 0, 0, 0, 2, 570, 950, 56, 35, 64, 85, 40, 25, 88, 60, 10, 12, 2, 0, 47, 0x37B5, 200, 768, 500, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2040, "TIRFING_R", "Tirfing", "Ogretooth", 71, 29900, 0, 0, 0, 1, 950, 1146, 48, 35, 58, 87, 55, 35, 132, 65, 10, 12, 1, 0, 67, 0x37B5, 100, 816, 500, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2041, "MYSTELTAINN_R", "Mysteltainn", "Mysteltainn", 76, 33350, 0, 0, 0, 2, 1160, 1440, 48, 30, 77, 139, 80, 35, 159, 65, 10, 12, 2, 0, 87, 0x37B5, 250, 1152, 500, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2042, "SILVERSNIPER", "Silver Sniper", "Silver Sniper", 100, 4500, 0, 0, 0, 9, 300, 300, 80, 10, 10, 60, 10, 10, 100, 10, 10, 12, 1, 0, 20, 0x84, 2000, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2043, "MAGICDECOY_FIRE", "Magic Decoy", "Magic Decoy", 100, 2500, 0, 0, 0, 7, 150, 150, 16, 60, 10, 10, 10, 100, 50, 10, 10, 12, 1, 0, 23, 0x84, 2000, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2044, "MAGICDECOY_WATER", "Magic Decoy", "Magic Decoy", 100, 2500, 0, 0, 0, 7, 150, 150, 16, 60, 10, 10, 10, 100, 50, 10, 10, 12, 1, 0, 21, 0x84, 2000, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2045, "MAGICDECOY_EARTH", "Magic Decoy", "Magic Decoy", 100, 2500, 0, 0, 0, 7, 150, 150, 16, 60, 10, 10, 10, 100, 50, 10, 10, 12, 1, 0, 22, 0x84, 2000, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2046, "MAGICDECOY_WIND", "Magic Decoy", "Magic Decoy", 100, 2500, 0, 0, 0, 7, 150, 150, 16, 60, 10, 10, 10, 100, 50, 10, 10, 12, 1, 0, 24, 0x84, 2000, 504, 1020, 360, 0, 0, 0, 0, 0, 0, 0, 0, 999, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2047, "W_NAGA", "Naga", "Naga", 99, 46708, 0, 0, 0, 3, 492, 605, 61, 15, 113, 42, 30, 18, 122, 13, 10, 12, 2, 2, 42, 0x3695, 150, 400, 864, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 926, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2048, "W_PINGUICULA_D", "Dark Pinguicula", "Dark Pinguicula", 99, 8780, 0, 0, 0, 1, 536, 656, 24, 5, 1, 23, 22, 1, 89, 2, 10, 12, 1, 3, 45, 0x308D, 290, 1426, 600, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6086, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2049, "W_BRADIUM_GOLEM", "Bradium Golem", "Bradium Golem", 99, 45200, 0, 0, 0, 1, 720, 886, 125, 18, 0, 10, 82, 2, 60, 12, 10, 12, 2, 0, 42, 0x3295, 300, 1008, 1200, 540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6090, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2050, "W_AQUA_ELEMENTAL", "Aqua Elemental", "Aqua Elemental", 99, 33220, 0, 0, 0, 1, 421, 516, 13, 12, 1, 23, 19, 8, 77, 2, 10, 12, 2, 0, 81, 0x3095, 230, 504, 960, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12353, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2051, "E_BAPHOMET", "Baphomet", "Baphomet", 1, 1, 0, 0, 0, 1, 1, 2, 2, 0, 1, 1, 1, 1, 1, 1, 10, 12, 2, 6, 20, 0x37B5, 100, 768, 768, 576, 0, 0, 0, 0, 0, 0, 0, 0, 12396, 5000, 12397, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2052, "E_DARK_LORD", "Dark Lord", "Dark Lord", 96, 1190900, 1, 2010, 2010, 2, 3027, 5112, 330, 168, 118, 136, 154, 142, 161, 66, 10, 12, 2, 6, 89, 0x37B5, 100, 868, 768, 480, 1005, 10000, 7005, 6000, 5093, 2000, 5093, 2000, 1615, 800, 2004, 100, 1237, 300, 2334, 300, 12539, 100, 985, 5141, 5162, 10, 0, 0, 0, 0, 4169, 1); -# REPLACE INTO mob_db VALUES(2053, "NC_DIMIK", "Dimik", "Dimik", 77, 10000, 0, 0, 0, 5, 1040, 1880, 72, 28, 15, 35, 40, 15, 120, 42, 10, 12, 1, 0, 40, 0x3885, 200, 576, 720, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7319, 2000, 7352, 50, 998, 300, 7094, 300, 13153, 5, 984, 10, 12128, 50, 0, 0, 0, 0, 4370, 1); -# REPLACE INTO mob_db VALUES(2054, "E_BATHORY", "Bathory", "Bathory", 86, 5242, 1, 0, 0, 1, 229, 325, 61, 41, 66, 38, 40, 55, 56, 50, 10, 12, 1, 7, 27, 0x3695, 100, 1504, 840, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2055, "E_INCUBUS", "Incubus", "Incubus", 75, 17281, 0, 0, 0, 2, 0, 0, 58, 46, 1, 97, 95, 103, 89, 87, 10, 12, 1, 6, 67, 0x3795, 165, 850, 600, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2056, "E_ZHERLTHSH", "Zherlthsh", "Zealotus", 63, 18300, 0, 0, 0, 1, 0, 0, 10, 15, 70, 85, 40, 30, 125, 60, 10, 12, 1, 7, 60, 0x308D, 200, 800, 2112, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2057, "E_CRAMP", "Suspicious Mouse", "Strange Mouse", 1, 4720, 0, 0, 0, 1, 1, 2, 100, 100, 1, 1, 1, 1, 1, 1, 10, 12, 0, 2, 45, 0x3095, 100, 1000, 500, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2058, "M_MIMIC", "Mimic", "Mimic", 51, 6120, 182, 0, 0, 1, 800, 950, 10, 40, 44, 121, 1, 60, 75, 110, 10, 12, 1, 0, 60, 0x120, 100, 972, 500, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2059, "M_DISGUISE", "Disguise", "Disguise", 55, 7543, 180, 0, 0, 2, 526, 693, 18, 29, 0, 72, 45, 35, 48, 65, 10, 12, 1, 6, 82, 0x120, 147, 516, 768, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2060, "M_ALICE", "Alice", "Alice", 62, 10000, 221, 0, 0, 1, 700, 850, 5, 5, 64, 64, 42, 85, 100, 130, 10, 12, 1, 7, 60, 0x120, 200, 502, 1999, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2061, "E_STAPO", "Stapo", "Stapo", 23, 666, 0, 299, 199, 1, 135, 370, 90, 5, 12, 11, 15, 12, 23, 1, 10, 12, 0, 0, 42, 0x83, 300, 936, 792, 432, 0, 0, 0, 0, 0, 0, 0, 0, 909, 1000, 7312, 1000, 512, 1000, 7126, 100, 993, 10, 1821, 3, 7956, 5000, 0, 0, 0, 0, 4424, 1); -# REPLACE INTO mob_db VALUES(2062, "E_POPORING", "Poporing", "poporing", 14, 344, 0, 73, 40, 1, 59, 72, 0, 10, 1, 14, 14, 0, 19, 15, 10, 12, 1, 3, 25, 0x83, 300, 1672, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 938, 5500, 910, 1500, 511, 500, 514, 200, 7957, 2000, 1207, 5, 512, 250, 0, 0, 0, 0, 4033, 1); -# REPLACE INTO mob_db VALUES(2063, "E_DROPS", "Drops", "Drops", 3, 55, 0, 4, 3, 1, 10, 13, 0, 0, 1, 3, 3, 0, 12, 15, 10, 12, 1, 3, 23, 0x83, 400, 1372, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 909, 7500, 1602, 80, 938, 500, 512, 1100, 713, 1700, 7955, 2000, 620, 20, 0, 0, 0, 0, 4004, 1); -# REPLACE INTO mob_db VALUES(2064, "E_MAGMARING", "Magmaring", "Magmaring", 40, 5300, 0, 1899, 1719, 1, 550, 700, 25, 24, 40, 60, 30, 10, 60, 17, 10, 12, 0, 0, 43, 0x83, 300, 1472, 384, 288, 0, 0, 0, 0, 0, 0, 0, 0, 7097, 3000, 757, 34, 7955, 2000, 7956, 2000, 7957, 2000, 7958, 2000, 0, 0, 0, 0, 0, 0, 4432, 1); -# REPLACE INTO mob_db VALUES(2065, "E_METALING", "Metaling", "Metaling", 26, 889, 0, 443, 224, 1, 135, 270, 5, 3, 30, 15, 10, 18, 35, 2, 10, 12, 0, 0, 20, 0x83, 300, 384, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7325, 4000, 7958, 4000, 998, 500, 7126, 1000, 7317, 200, 13103, 5, 7312, 5000, 0, 0, 0, 0, 4341, 1); -REPLACE INTO mob_db VALUES(2066, "E_ANOPHELES", "Anopheles", "Anopheles", 5, 50, 1, 1, 1, 1, 140, 158, 8, 10, 1, 30, 1, 1, 30, 1, 10, 12, 0, 4, 64, 0x37B5, 170, 1084, 2304, 576, 0, 0, 5586, 10000, 5586, 0, 5586, 0, 601, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4344, 1); -REPLACE INTO mob_db VALUES(2067, "E_ANOPHELES_", "Anopheles", "Anopheles", 3, 500, 1, 1, 1, 1, 40, 58, 8, 100, 1, 100, 1, 1, 100, 1, 10, 12, 0, 4, 64, 0x120, 170, 1084, 2304, 576, 0, 0, 0, 0, 0, 0, 0, 0, 601, 1000, 702, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4344, 1); -REPLACE INTO mob_db VALUES(2068, "BOITATA", "Boitata", "Boitata", 93, 1283990, 1, 74288, 77950, 2, 1060, 2022, 32, 66, 140, 99, 30, 109, 100, 90, 10, 12, 2, 2, 63, 0x37B5, 200, 1152, 1152, 576, 37144, 10000, 617, 5500, 617, 5000, 616, 2000, 7444, 5000, 1377, 100, 1422, 100, 607, 500, 985, 1000, 984, 1000, 1471, 100, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2069, "IARA", "Iara", "Iara", 79, 5890, 1, 1070, 890, 1, 171, 270, 0, 76, 69, 14, 41, 60, 69, 20, 10, 12, 1, 5, 61, 0x91, 200, 384, 672, 288, 0, 0, 0, 0, 0, 0, 0, 0, 995, 5, 950, 9000, 951, 500, 748, 50, 747, 100, 710, 10, 2334, 1, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2070, "PIRANHA", "Piranha", "Piranha", 75, 4522, 1, 899, 1023, 1, 182, 223, 7, 12, 69, 45, 30, 30, 66, 35, 10, 12, 2, 5, 61, 0x3885, 200, 768, 480, 864, 0, 0, 0, 0, 0, 0, 0, 0, 956, 600, 995, 5, 963, 9000, 1053, 500, 1054, 500, 13027, 1, 1249, 5, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2071, "HEADLESS_MULE", "Headless Mule", "Headless Mule", 80, 6620, 1, 1011, 1120, 1, 210, 267, 33, 44, 68, 51, 50, 35, 67, 20, 10, 12, 2, 6, 63, 0x3985, 165, 1216, 816, 432, 0, 0, 0, 0, 0, 0, 0, 0, 7120, 4000, 2317, 5, 7097, 1000, 7122, 1000, 1269, 1, 2317, 1, 1255, 2, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2072, "JAGUAR", "Jaguar", "Jaguar", 71, 3914, 1, 720, 512, 1, 192, 234, 44, 15, 69, 30, 45, 5, 59, 5, 10, 12, 1, 2, 42, 0x91, 150, 576, 1248, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7171, 3000, 7172, 2000, 919, 1000, 756, 40, 1810, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2073, "TOUCAN", "Toucan", "Toucan", 70, 3640, 1, 659, 544, 1, 166, 201, 12, 12, 54, 14, 40, 35, 44, 10, 10, 12, 1, 2, 44, 0x1089, 155, 960, 1440, 960, 0, 0, 0, 0, 0, 0, 0, 0, 917, 3000, 7053, 1000, 510, 50, 508, 100, 2612, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2074, "CURUPIRA", "Curupira", "Curupira", 68, 3096, 1, 622, 450, 1, 140, 175, 42, 12, 32, 23, 38, 20, 45, 10, 10, 12, 1, 7, 22, 0x118B, 250, 528, 480, 384, 0, 0, 0, 0, 0, 0, 0, 0, 517, 3000, 757, 250, 1011, 10, 7267, 500, 1505, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2075, "E_VADON_X", "Vadon", "Vadon", 72, 272000, 0, 32000, 26000, 1, 1554, 2554, 42, 32, 1, 46, 100, 35, 85, 32, 10, 12, 2, 0, 60, 0x120, 150, 1632, 432, 540, 0, 0, 0, 0, 0, 0, 0, 0, 960, 5000, 7095, 3000, 7093, 3000, 984, 1000, 985, 500, 7444, 50, 617, 10, 0, 0, 0, 0, 4049, 1); -# REPLACE INTO mob_db VALUES(2076, "S_WIND_GHOST", "Wind Ghost", "Wind Ghost", 105, 190800, 1, 0, 0, 1, 462, 957, 64, 51, 62, 44, 25, 105, 85, 20, 10, 12, 1, 6, 64, 0x3795, 150, 1056, 1056, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2077, "S_SKOGUL", "Skogul", "Skogul", 105, 244400, 1, 0, 0, 1, 910, 1166, 72, 15, 100, 88, 63, 99, 95, 37, 10, 12, 1, 6, 67, 0x3395, 190, 720, 384, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2078, "S_SUCCUBUS", "Succubus", "Succubus", 105, 206660, 1, 0, 0, 1, 880, 1204, 76, 48, 100, 70, 45, 110, 102, 85, 10, 12, 1, 6, 67, 0x3795, 155, 1306, 1056, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2079, "CRYSTAL_H", "Crystal", "Crystal", 77, 7777777, 1, 3777777, 3777777, 0, 17777, 25554, 77, 77, 1, 7, 7, 77, 77, 77, 0, 0, 2, 0, 60, 0x120, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2080, "CRYSTAL_L", "Crystal", "Crystal", 7, 77, 1, 7, 7, 0, 7, 14, 7, 7, 1, 7, 7, 7, 7, 77, 0, 0, 2, 0, 60, 0x120, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2081, "E_HYDRA", "Suspicious Hydra", "Strange Hydra", 34, 854, 1, 0, 0, 7, 1, 2, 100, 100, 1, 1, 1, 1, 1, 1, 10, 12, 0, 3, 41, 0x0, 1000, 800, 432, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2082, "G_PIRANHA", "Piranha", "Piranha", 75, 4522, 1, 0, 0, 1, 182, 223, 7, 12, 69, 45, 30, 30, 66, 35, 10, 12, 2, 5, 61, 0x3295, 200, 768, 480, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2083, "HORN_SCARABA", "Scaraba", "One-Horned Scaraba", 130, 51100, 1, 5220, 4011, 1, 633, 724, 135, 20, 44, 59, 55, 21, 71, 33, 10, 12, 0, 4, 22, 0x1189, 200, 384, 672, 360, 0, 0, 0, 0, 0, 0, 0, 0, 6324, 6500, 1433, 1, 12735, 10, 7939, 10, 993, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2084, "HORN_SCARABA2", "Scaraba", "Two-Horned Scaraba", 134, 58900, 1, 5780, 4549, 1, 690, 795, 150, 38, 44, 68, 72, 45, 84, 51, 10, 12, 0, 4, 22, 0x1189, 150, 336, 360, 360, 0, 0, 0, 0, 0, 0, 0, 0, 6323, 6500, 13061, 1, 12735, 10, 7939, 10, 993, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2085, "ANTLER_SCARABA", "Antler Scaraba", "Antler Scaraba", 136, 62600, 1, 6330, 5255, 1, 412, 822, 155, 102, 23, 99, 59, 129, 91, 45, 10, 12, 1, 4, 42, 0x3985, 200, 504, 624, 360, 0, 0, 0, 0, 0, 0, 0, 0, 6322, 6500, 1930, 1, 12735, 10, 7939, 10, 993, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2086, "RAKE_SCARABA", "Rake Scaraba", "Rake Scaraba", 139, 67700, 1, 6990, 5995, 1, 830, 942, 250, 70, 90, 66, 145, 52, 112, 77, 10, 12, 1, 4, 42, 0x3985, 150, 588, 768, 480, 0, 0, 0, 0, 0, 0, 0, 0, 6321, 6500, 16010, 1, 12735, 10, 15000, 10, 993, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2087, "QUEEN_SCARABA", "Queen Scaraba", "Scaraba Queen", 140, 2441600, 1, 410220, 212200, 3, 1889, 3129, 350, 220, 100, 88, 82, 149, 211, 144, 10, 12, 2, 4, 62, 0x37B5, 120, 864, 1000, 360, 205110, 10000, 616, 5500, 616, 5000, 616, 2000, 6326, 7000, 1191, 1000, 2364, 1000, 1196, 400, 18103, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2088, "HORN_SCARABA_EGG", "Scaraba Egg", "Scaraba Egg", 125, 63000, 1, 4000, 3000, 0, 1, 2, 230, 55, 1, 1, 130, 34, 1, 80, 10, 12, 0, 4, 20, 0x100, 2000, 96, 1, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7032, 5000, 518, 100, 985, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2089, "HORN_SCARABA2_EGG", "Scaraba Egg", "Scaraba Egg", 126, 66000, 1, 4000, 3000, 0, 1, 2, 250, 62, 1, 1, 130, 48, 1, 80, 10, 12, 0, 4, 20, 0x100, 2000, 96, 1, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7032, 5000, 518, 100, 985, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2090, "ANTLER_SCARABA_EGG", "Antler Scaraba Egg", "Antler Scaraba Egg", 127, 69000, 1, 4000, 3000, 0, 1, 2, 235, 180, 1, 1, 130, 82, 1, 80, 10, 12, 0, 4, 20, 0x100, 2000, 96, 1, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7032, 5000, 518, 100, 985, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2091, "RAKE_SCARABA_EGG", "Rake Scaraba Egg", "Rake Scaraba Egg", 128, 72000, 1, 4000, 3000, 0, 1, 2, 290, 44, 1, 1, 130, 39, 1, 80, 10, 12, 0, 4, 20, 0x100, 2000, 96, 1, 480, 0, 0, 0, 0, 0, 0, 0, 0, 7032, 5000, 518, 100, 985, 10, 2153, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2092, "DOLOMEDES", "Dolomedes", "Dolomedes", 132, 54591, 1, 5155, 5155, 3, 677, 963, 112, 52, 149, 34, 82, 55, 95, 67, 10, 12, 2, 4, 61, 0x3985, 250, 360, 360, 600, 0, 0, 0, 0, 0, 0, 0, 0, 6319, 3000, 6325, 5000, 6090, 500, 2789, 1, 12738, 10, 6224, 500, 1984, 1, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2093, "BOTARING", "Botaring", "Botaring", 15, 15, 1, 7, 7, 2, 20, 40, 20, 20, 10, 10, 10, 10, 77, 77, 10, 12, 0, 0, 26, 0x81, 170, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 12492, 7000, 12492, 3500, 12492, 1000, 5204, 700, 664, 2000, 665, 2000, 666, 2000, 0, 0, 0, 0, 603, 500); -REPLACE INTO mob_db VALUES(2094, "E_ORK_HERO2", "Orc Hero", 1, 50, 362000, 1, 2010, 2010, 1, 662, 1103, 197, 70, 97, 82, 107, 71, 144, 43, 10, 12, 2, 7, 42, 0x37B5, 150, 1678, 780, 648, 1005, 10000, 725, 2000, 607, 5000, 607, 5000, 968, 9700, 10018, 500, 1366, 150, 12539, 50, 1124, 1000, 985, 4559, 1387, 100, 0, 0, 0, 0, 4143, 1); -REPLACE INTO mob_db VALUES(2095, "E_EDDGA", "Eddga", "Eddga", 65, 247500, 1, 2010, 2010, 1, 866, 1342, 166, 70, 92, 80, 103, 66, 90, 85, 10, 12, 2, 2, 23, 0x37B5, 300, 872, 1344, 432, 1005, 10000, 1030, 5000, 1030, 3000, 1030, 3000, 1133, 150, 2268, 250, 518, 10000, 12539, 50, 1030, 250, 985, 2300, 13046, 100, 0, 0, 0, 0, 4074, 1); -REPLACE INTO mob_db VALUES(2096, "E_OSIRIS2", "Osiris", "Osiris", 68, 475840, 1, 2010, 2010, 1, 1580, 2483, 172, 164, 97, 99, 86, 131, 145, 67, 10, 12, 1, 1, 89, 0x37B5, 100, 1072, 672, 384, 1005, 10000, 603, 2000, 608, 500, 608, 500, 617, 2000, 1232, 150, 2235, 200, 12539, 50, 1009, 1000, 5053, 150, 1285, 100, 0, 0, 0, 0, 4144, 1); -REPLACE INTO mob_db VALUES(2097, "E_DRACULA", "Dracula", "Dracula", 75, 350000, 1, 2010, 2010, 3, 1322, 3134, 152, 146, 86, 99, 88, 92, 145, 82, 10, 12, 2, 6, 87, 0x37B5, 145, 1290, 1140, 576, 1005, 10000, 607, 5500, 732, 5000, 732, 5000, 607, 4700, 1473, 5, 1722, 5, 2507, 15, 2621, 4, 1557, 4, 12539, 50, 0, 0, 0, 0, 4134, 1); -REPLACE INTO mob_db VALUES(2098, "E_DOPPELGANGER", "Doppelganger", "Doppelganger", 77, 380000, 1, 2010, 2010, 1, 1639, 2815, 246, 86, 122, 122, 105, 67, 169, 72, 10, 12, 1, 6, 67, 0x37B5, 100, 480, 480, 288, 1005, 10000, 723, 1500, 505, 0, 505, 0, 2317, 250, 1162, 220, 1168, 150, 2258, 350, 12539, 50, 985, 3686, 984, 2700, 0, 0, 0, 0, 4127, 1); -REPLACE INTO mob_db VALUES(2099, "E_MISTRESS", "Mistress", "Mistress", 78, 378000, 1, 2010, 2010, 1, 985, 2352, 187, 192, 76, 186, 88, 113, 172, 79, 10, 12, 0, 4, 84, 0x37B5, 100, 1148, 648, 300, 1005, 10000, 996, 1500, 526, 3000, 526, 3000, 12539, 50, 518, 10000, 2249, 250, 616, 1000, 7018, 10, 985, 4268, 16001, 100, 0, 0, 0, 0, 4132, 1); -REPLACE INTO mob_db VALUES(2100, "E_BAPHOMET2", "Baphomet", "Baphomet", 81, 668000, 1, 2010, 2010, 2, 2864, 4148, 279, 45, 120, 125, 30, 85, 155, 85, 10, 12, 2, 6, 67, 0x37B5, 100, 768, 768, 576, 1005, 10000, 607, 2000, 750, 5000, 750, 5000, 12539, 100, 2256, 300, 1476, 50, 714, 500, 5160, 10, 985, 5432, 984, 4171, 0, 0, 0, 0, 4147, 1); -REPLACE INTO mob_db VALUES(2101, "E_LORD_OF_DEATH2", "Lord of Death", "Lord of the Dead", 94, 603883, 1, 2010, 2010, 3, 4116, 5078, 336, 73, 140, 99, 30, 109, 100, 90, 10, 12, 2, 6, 67, 0x37B5, 180, 1446, 1296, 360, 1005, 10000, 607, 5500, 732, 5000, 732, 5000, 7108, 5335, 1417, 5, 12539, 100, 2621, 2, 7109, 10, 1306, 1, 1529, 2, 0, 0, 0, 0, 4210, 1); -REPLACE INTO mob_db VALUES(2102, "E_DARKLORD", "Dark Lord", "Dark Lord", 1, 1, 0, 0, 0, 1, 1, 2, 2, 0, 1, 1, 1, 1, 1, 1, 10, 12, 2, 6, 20, 0x37B5, 100, 868, 768, 480, 0, 0, 0, 0, 0, 0, 0, 0, 12396, 5000, 12397, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2103, "E_KTULLANUX", "Ktullanux", 1, 98, 2626000, 1, 2010, 2010, 3, 2888, 5568, 129, 78, 85, 126, 30, 125, 177, 112, 10, 12, 2, 2, 81, 0x37B5, 400, 432, 840, 216, 1005, 10000, 607, 5500, 617, 5000, 617, 5000, 7562, 9000, 616, 3000, 2509, 3000, 2111, 5000, 617, 5000, 607, 5000, 12539, 100, 0, 0, 0, 0, 4419, 1); -REPLACE INTO mob_db VALUES(2104, "E_DARK_SNAKE_LORD", "Dark Snake Lord", "Evil Snake Lord", 105, 1101000, 1, 2010, 2010, 3, 2217, 4203, 314, 185, 122, 172, 107, 135, 196, 88, 10, 12, 2, 2, 68, 0x37B5, 200, 588, 816, 420, 1005, 10000, 607, 5500, 617, 5500, 617, 5500, 7169, 5820, 10020, 5100, 1471, 80, 12539, 50, 1474, 500, 7226, 900, 661, 2000, 0, 0, 0, 0, 4330, 1); -REPLACE INTO mob_db VALUES(2105, "E_TURTLE_GENERAL", "Turtle General", "Turtle General", 110, 1442000, 1, 2010, 2010, 2, 2438, 4504, 394, 123, 116, 123, 154, 99, 181, 98, 10, 12, 2, 2, 42, 0x37B5, 200, 900, 1000, 500, 1005, 10000, 967, 5500, 607, 2000, 607, 2000, 1529, 8, 1306, 5, 7480, 200, 1417, 9, 7070, 5335, 1141, 80, 12539, 50, 0, 0, 0, 0, 4246, 1); -REPLACE INTO mob_db VALUES(2106, "E_APOCALIPS_H", "Vesper", "Vesper", 128, 3802000, 1, 2010, 2010, 3, 2620, 7276, 402, 109, 177, 195, 165, 130, 182, 102, 10, 12, 2, 2, 46, 0x37B5, 180, 504, 912, 432, 1005, 10000, 617, 5500, 603, 2000, 603, 2000, 7095, 5000, 7094, 3000, 12539, 50, 2659, 100, 2660, 100, 2661, 100, 2662, 100, 0, 0, 0, 0, 4374, 1); -REPLACE INTO mob_db VALUES(2107, "E_FALLINGBISHOP", "Fallen Bishop", "Fallen Bishop Hibram", 138, 5655000, 1, 2010, 2010, 1, 2860, 4496, 274, 182, 186, 165, 95, 226, 182, 86, 10, 12, 1, 6, 47, 0x37B5, 150, 432, 432, 360, 1005, 10000, 607, 5500, 608, 2000, 608, 2000, 523, 10000, 1420, 1000, 2677, 500, 1422, 1000, 985, 5432, 12539, 200, 6223, 500, 0, 0, 0, 0, 4441, 1); -REPLACE INTO mob_db VALUES(2108, "E_GLOOMUNDERNIGHT", "Gloom Under Night", "Gloom Under Night", 139, 3005000, 1, 2010, 2010, 3, 3061, 5846, 479, 262, 191, 223, 187, 155, 241, 163, 10, 12, 2, 0, 68, 0x37B5, 200, 1344, 2880, 576, 1005, 10000, 607, 5500, 617, 5000, 617, 5000, 7566, 7000, 7023, 4000, 7022, 2000, 616, 5000, 2513, 1000, 1377, 100, 12539, 200, 0, 0, 0, 0, 4410, 1); -REPLACE INTO mob_db VALUES(2109, "E_RANDGRIS", "Valkyrie Randgris", "Valkyrie Randgris1", 141, 2205000, 1, 2010, 2010, 3, 2895, 9307, 588, 506, 196, 131, 125, 276, 267, 156, 10, 12, 2, 8, 86, 0x37B5, 100, 576, 576, 480, 1005, 10000, 617, 5500, 603, 2000, 603, 2000, 7510, 5000, 2357, 1600, 2524, 3000, 2421, 3000, 2229, 5000, 7024, 2500, 12539, 200, 0, 0, 0, 0, 4407, 1); -REPLACE INTO mob_db VALUES(2110, "E_IFRIT", "Ifrit", "Ifrit", 146, 6935000, 1, 2010, 2010, 3, 5375, 8764, 436, 218, 180, 201, 156, 190, 199, 77, 10, 12, 2, 0, 83, 0x37B5, 130, 212, 384, 360, 1005, 10000, 617, 5500, 6223, 2000, 6223, 2000, 994, 10000, 2677, 3000, 2678, 200, 2679, 200, 1471, 2000, 1133, 2000, 12539, 200, 0, 0, 0, 0, 4430, 1); -REPLACE INTO mob_db VALUES(2111, "E_B_HARWORD", "Whitesmith Harword", "Whitesmith Howard", 160, 6750000, 1, 2010, 2010, 1, 3500, 4965, 301, 106, 275, 148, 156, 72, 177, 60, 10, 12, 1, 7, 82, 0x37B5, 100, 76, 384, 288, 1005, 10000, 617, 5500, 603, 2000, 603, 2000, 1138, 3500, 1140, 2500, 12539, 200, 1365, 3500, 1364, 3500, 1369, 2500, 1368, 3500, 0, 0, 0, 0, 4361, 1); -REPLACE INTO mob_db VALUES(2112, "E_B_SEYREN", "Lord Knight Seyren", "Lord Knight Seyren", 160, 4680000, 1, 2010, 2010, 1, 4290, 6632, 567, 155, 303, 165, 181, 110, 178, 66, 10, 12, 1, 7, 83, 0x37B5, 100, 76, 384, 288, 1005, 10000, 617, 5500, 603, 2000, 603, 2000, 1132, 2500, 2342, 3500, 12539, 200, 1470, 3500, 1469, 3000, 1166, 2500, 1415, 1500, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2113, "E_B_EREMES", "Assassin Cross Eremes", "Assassin Cross Eremes", 160, 4230000, 1, 2010, 2010, 1, 4055, 5433, 445, 98, 211, 181, 114, 83, 225, 60, 10, 12, 1, 7, 85, 0x37B5, 100, 76, 384, 288, 1005, 10000, 617, 5500, 603, 2000, 603, 2000, 1234, 1500, 13017, 1500, 12539, 200, 1233, 3500, 1232, 3500, 1265, 3500, 13002, 3500, 0, 0, 0, 0, 4359, 1); -REPLACE INTO mob_db VALUES(2126, "M_ANOPHELES", "Anopheles", "Anopheles", 100, 8000, 1, 0, 0, 1, 300, 400, 0, 0, 40, 70, 40, 40, 80, 40, 10, 12, 0, 4, 64, 0x3985, 170, 1084, 2304, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2127, "M_HORNET", "Hornet", "Hornet", 110, 9000, 1, 0, 0, 1, 350, 450, 0, 0, 40, 70, 40, 40, 90, 40, 10, 12, 0, 4, 24, 0x1189, 150, 1292, 792, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2128, "M_HORNET2", "Hornet", "Hornet", 120, 10000, 1, 0, 0, 1, 400, 500, 0, 0, 40, 70, 40, 40, 100, 40, 10, 12, 0, 4, 24, 0x1189, 150, 1292, 792, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2129, "M_LUCIOLA_VESPA", "Luciola Vespa", "Luciola Vespa", 130, 11000, 1, 0, 0, 1, 450, 650, 0, 0, 60, 80, 50, 50, 110, 50, 10, 12, 1, 4, 24, 0x7795, 110, 1000, 864, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2130, "M_LUCIOLA_VESPA2", "Luciola Vespa", "Luciola Vespa", 140, 12000, 1, 0, 0, 1, 500, 700, 0, 0, 60, 80, 50, 50, 120, 50, 10, 12, 1, 4, 24, 0x7795, 110, 1000, 864, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2131, "LOST_DRAGON", "Lost Dragon", "Lost Dragon", 135, 608920, 0, 30000, 30000, 3, 1050, 1580, 60, 51, 140, 81, 69, 122, 98, 61, 10, 12, 2, 9, 67, 0x37B5, 150, 840, 648, 576, 0, 0, 0, 0, 0, 0, 617, 5500, 2610, 1000, 712, 1000, 13062, 1000, 607, 500, 608, 500, 610, 500, 1985, 500, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2132, "POM_SPIDER", "Pom Spider", "Pom Spider", 145, 122110, 1, 8010, 8037, 1, 632, 847, 240, 115, 156, 85, 178, 88, 139, 102, 10, 12, 1, 4, 62, 0x3985, 250, 864, 1056, 576, 0, 0, 0, 0, 0, 0, 0, 0, 12573, 500, 11520, 1000, 1042, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2133, "ANGRA_MANTIS", "Angra Mantis", "Angra Mantis", 144, 91720, 1, 7790, 7020, 1, 579, 756, 175, 81, 122, 155, 119, 81, 132, 79, 10, 12, 1, 4, 42, 0x3985, 150, 576, 480, 480, 0, 0, 0, 0, 0, 0, 0, 0, 6086, 5000, 7194, 1000, 997, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2134, "PARUS", "Parus", "Parus", 142, 86990, 1, 7310, 6990, 1, 511, 663, 161, 39, 80, 136, 128, 44, 105, 51, 10, 12, 0, 2, 42, 0x3885, 180, 384, 792, 432, 0, 0, 0, 0, 0, 0, 0, 0, 6393, 5000, 7063, 1000, 12736, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2135, "CREEPER", "Creeper", "Creeper", 100, 1000, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 22, 0x40, 2000, 192, 192, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2136, "LITTLE_FATUM", "Little Fatum", "Little Fatum", 142, 85100, 1, 7500, 6500, 1, 442, 894, 51, 198, 10, 66, 17, 148, 148, 97, 10, 12, 0, 7, 44, 0x3885, 150, 432, 300, 432, 0, 0, 0, 0, 0, 0, 0, 0, 6395, 5000, 7938, 100, 11519, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2137, "MIMING", "Miming", "Miming", 140, 81200, 1, 7100, 6300, 1, 430, 652, 120, 120, 90, 66, 105, 77, 133, 77, 10, 12, 0, 0, 20, 0x3885, 250, 576, 1140, 504, 0, 0, 0, 0, 0, 0, 0, 0, 6394, 5000, 7938, 100, 969, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2138, "NYDHOG_MEMORY1_1", "Nydhogg\'s Memory", "Nydhogg\'s Memory", 130, 10, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0xC9, 200, 1248, 576, 1248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2139, "NYDHOG_MEMORY1_2", "Nydhogg\'s Memory", "Nydhogg\'s Memory", 130, 10, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0xC9, 200, 1248, 576, 1248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2140, "NYDHOG_MEMORY2_1", "Nydhogg\'s Memory", "Nydhogg\'s Memory", 130, 10, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0xC9, 200, 1248, 576, 1248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2141, "NYDHOG_MEMORY2_2", "Nydhogg\'s Memory", "Nydhogg\'s Memory", 130, 10, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0xC9, 200, 1248, 576, 1248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2142, "NYDHOG_MEMORY3_1", "Nydhogg\'s Memory", "Nydhogg\'s Memory", 130, 10, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0xC9, 200, 1248, 576, 1248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2143, "NYDHOG_MEMORY3_2", "Nydhogg\'s Memory", "Nydhogg\'s Memory", 130, 10, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0xC9, 200, 1248, 576, 1248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2144, "G_ANTLER_SCARABA", "Antler Scaraba", "Antler Scaraba", 136, 62600, 1, 0, 0, 1, 412, 822, 155, 102, 23, 99, 59, 129, 91, 45, 10, 12, 1, 4, 42, 0x3985, 200, 504, 624, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2145, "G_RAKE_SCARABA", "Rake Scaraba", "Rake Scaraba", 139, 67700, 1, 0, 0, 1, 830, 942, 250, 70, 90, 66, 145, 52, 112, 77, 10, 12, 1, 4, 42, 0x3985, 150, 588, 768, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2146, "G_S_NYDHOG", "G_S_NYDHOG", "G_S_NYDHOG", 117, 300000, 0, 0, 0, 2, 840, 1680, 60, 60, 1, 30, 30, 136, 88, 30, 10, 12, 2, 9, 87, 0x37B5, 150, 1596, 1620, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2147, "E_WHITE_PLANT", "White Plant", "White Plant", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2148, "E_BLUE_PLANT", "Blue Plant", "Blue Plant", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2149, "E_SAVAGE_BABE", "Savage Babe", "Savage Babe", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2150, "WATERMELON", "Watermelon", "Watermelon", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2151, "ALNOLDI", "Alnoldi", "Alnoldi", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2152, "COMODO", "Comodo", "Comodo", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2153, "CENDRAWASIH", "Cendrawasih", "Cendrawasih", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2154, "BANASPATY", "Banaspaty", "Banaspaty", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2155, "BUTOIJO", "Butoijo", "Butoijo", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2156, "LEAK", "Leak", "Leak", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2157, "G_BANASPATY", "Butoijo", "Butoijo", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2158, "S_HORNET", "Hornet", "Hornet", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2159, "S_GIANT_HORNET", "Giant Hornet", "Giant Hornet", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2160, "S_LUCIOLA_VESPA", "Luciola Vespa", "Luciola Vespa", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2161, "I_HORN_SCARABA", "Scaraba", "One-Horned Scarab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2162, "I_HORN_SCARABA2", "Scaraba", "Two-Horned Scarab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2163, "I_ANTLER_SCARABA", "Antler Scaraba", "Antler Scarab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2164, "I_RAKE_SCARABA", "Rake Scaraba", "Rake Scarab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2165, "I_QUEEN_SCARABA", "Queen Scaraba", "Queen Scarab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2166, "I_HORN_SCARABA_EGG", "Scaraba Egg", "One-Horned Scarab Egg", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2167, "I_HORN_SCARABA2_EGG", "Scaraba Egg", "Two-Horned Scarab Egg", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2168, "I_ANTLER_SCARABA_EGG", "Antler Scaraba Egg", "Two-Horned Scarab Egg", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2169, "I_RAKE_SCARABA_EGG", "Rake Scaraba Egg", "Rake Scarab Egg", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2170, "I_G_ANTLER_SCARABA", "Antler Scaraba", "Antler Scarab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2171, "I_G_RAKE_SCARABA", "Rake Scaraba", "Rake Scarab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2172, "I_G_HORN_SCARABA", "Scaraba", "One-Horned Scarab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2173, "I_G_HORN_SCARABA2", "Scaraba", "Two-Horned Scarab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2174, "MD_VADON", "Vadon", "Vadon", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2175, "MD_MARSE", "Marse", "Marse", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2176, "MD_CRAB", "Crab", "Crab", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2177, "MD_CORNUTUS", "Cornutus", "Cornutus", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2178, "MD_SHELLFISH", "Shellfish", "Shellfish", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2179, "MD_KUKRE", "Kukre", "Kukre", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2180, "MD_STROUF", "Stouf", "Strouf", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2181, "MD_SWORD_FISH", "Swordfish", "Swordfish", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2182, "MD_MARC", "mac", "Mac", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2183, "MD_ANOLIAN", "Anolian", "Anolian", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2184, "MD_OBEAUNE", "Obeaune", "Obeaune", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2185, "MD_KAPHA", "Kapha", "Kapha", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2186, "COELACANTH_N_E", "Coelacanth", "Coelacanth", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2187, "COELACANTH_N_A", "Coelacanth", "Coelacanth", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2188, "COELACANTH_N_M", "Coelacanth", "Coelacanth", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2189, "COELACANTH_H_M", "Coelacanth", "Coelacanth", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2190, "COELACANTH_H_A", "Coelacanth", "Coelacanth", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2191, "MD_SEAWEED", "Seaweed", "Seaweed", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2192, "MD_OCTOPUS", "Octopus", "Octopus", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2193, "MD_OCTOPUS_LEG", "Octopus Leg", "Octopus Tentacle", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2194, "MD_GIANT_OCTOPUS", "Giant Octopus", "Giant Octopus", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2195, "MD_G_KUKRE", "Kukre", "Kukre", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2196, "MD_G_STROUF", "Strouf", "Strouf", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2197, "RED_ERUMA", "Red Eruma", "Red Eruma", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2198, "KING_DRAMOH", "King Dramoh", "King Dramoh", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2199, "SIORAVA", "Siorava", "Siorava", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2200, "J_TAINI", "Taini", "Taini", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2201, "SROPHO", "Sroph", "Sropho", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2202, "KRAKEN", "Kraken", "Kraken", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2203, "POT_DOFLE", "Pot Dofle", "Pot Dofle", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2204, "SEDORA", "Sedora", "Sedora", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2205, "TACNU", "Tacnu", "Tacnu", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2206, "KRAKEN_LEG", "Kraken Leg", "Kraken Tentacle", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -# REPLACE INTO mob_db VALUES(2207, "RACARCH", "Racarch", "Racarch", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2208, "WILD_RIDER", "Wild Rider", "Wild Rider", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2209, "E_THIEF_BUG", "Thief Bug", "Thief Bug", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2210, "XMAS_LUNATIC", "Xmas Lunatic", "Christmas Lunatic", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2211, "E_TEDDY_BEAR", "Teddy Bear", "Teddy Bear", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2212, "E_KNIGHT_OF_WINDSTORM", "Knight of Windstorm", "Stormy Knight", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2213, "M_WANDER_MAN", "Wander Man", "Wanderer", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2214, "M_WICKED_NYMPH", "Wicked Nymph", "Evil Nymph", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2215, "M_KASA", "Kasa", "Kasa", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2216, "M_SALAMANDER", "Salamander", "Salamander", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2217, "M_TEDDY_BEAR", "Teddy Bear", "Teddy Bear", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2218, "E_OCTOPUS_LEG", "Octopus Leg", "Octopus Tentacle", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2219, "E_GIANT_OCTOPUS", "Giant Octopus", "Giant Octopus", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2220, "E_QUVE", "Quve", "Quve", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2221, "RANDEL", "Randal", "Randal", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2222, "FLAMEL", "Flamel", "Flamel", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2223, "CELIA", "Celia", "Celia", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2224, "CHEN", "Chen", "Chen", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2225, "GERTIE", "Gertie", "Gertie", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2226, "ALPHOCCIO", "Alphoccio", "Alphoccio", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2227, "TRENTINI", "Trentini", "Trentini", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2228, "G_RANDEL", "Randel", "Randal", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2229, "G_FLAMEL", "Flamel", "Flamel", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2230, "G_CELIA", "Celia", "Celia", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2231, "G_CHEN", "Chen", "Chen", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2232, "G_GERTIE", "Gertie", "Gertie", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2233, "G_ALPHOCCIO", "Alphoccio", "Alphoccio", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2234, "G_TRENTINI", "Trentini", "Trentini", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2235, "B_RANDEL", "Randel", "Randal", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2236, "B_FLAMEL", "Biochemist Flamel", "Biochemist Flamel", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2237, "B_CELIA", "Scholar Celia", "Scholar Celia", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2238, "B_CHEN", "Champion Chen", "Champion Chen", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2239, "B_GERTIE", "Stalker Gertie", "Stlaker Gertie", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2240, "B_ALPHOCCIO", "Minstel Alphoccio", "Minstrel Alphoccio", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2241, "B_TRENTINI", "Gypsy Trentini", "Gypsy Trentini", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2242, "MD_DESERT_WOLF", "Desert Wolf", "Desert Wolf", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2243, "MD_DESERT_WOLF_B", "Baby Desert Wolf", "Baby Desert Wolf", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -REPLACE INTO mob_db VALUES(2244, "QUEST_CHEN", "Champion Chen", "Champion Chen", 1, 60, 1, 27, 20, 1, 8, 9, 2, 5, 6, 1, 1, 0, 6, 5, 10, 12, 1, 3, 21, 0x83, 400, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql index 188aa4c1f..bd51f666e 100644 --- a/sql-files/mob_db2.sql +++ b/sql-files/mob_db2.sql @@ -35,7 +35,6 @@ CREATE TABLE `mob_db2` ( `aMotion` smallint(6) unsigned NOT NULL default '0', `dMotion` smallint(6) unsigned NOT NULL default '0', `MEXP` mediumint(9) unsigned NOT NULL default '0', - `ExpPer` smallint(9) unsigned NOT NULL default '0', `MVP1id` smallint(9) unsigned NOT NULL default '0', `MVP1per` smallint(9) unsigned NOT NULL default '0', `MVP2id` smallint(9) unsigned NOT NULL default '0', @@ -68,51 +67,44 @@ CREATE TABLE `mob_db2` ( # Monsters Additional Database # # Structure of Database : -# REPLACE INTO `mob_db2` VALUES ('ID','Sprite_Name','kROName','iROName','LV','HP','SP','EXP','JEXP','Range1','ATK1','ATK2','DEF','MDEF','STR','AGI','VIT','INT','DEX','LUK','Range2','Range3','Scale','Race','Element','Mode','Speed','aDelay','aMotion','dMotion','MEXP','ExpPer','MVP1id','MVP1per','MVP2id','MVP2per','MVP3id','MVP3per','Drop1id','Drop1per','Drop2id','Drop2per','Drop3id','Drop3per','Drop4id','Drop4per','Drop5id','Drop5per','Drop6id','Drop6per','Drop7id','Drop7per','Drop8id','Drop8per','Drop9id','Drop9per','DropCardid','DropCardper'); - +# REPLACE INTO `mob_db` VALUES ( ID,'Sprite_Name','kROName','iROName',LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper); # Easter Event Monsters -# REPLACE INTO `mob_db2` VALUES (1920,'EASTER_EGG','Easter Egg','Easter Egg',3,300,0,4,4,0,1,2,20,20,1,1,1,1,1,20,10,12,0,0,60,128,1000,1001,1,1,0,0,0,0,0,0,0,0,1010,250,935,500,558,300,501,200,501,200,713,800,558,300,558,300,0,0,0,0); -# REPLACE INTO `mob_db2` VALUES (1921,'EASTER_BUNNY','Easter Bunny','Easter Bunny',6,1800,0,60,55,1,20,26,0,40,1,36,6,1,11,80,10,10,0,2,60,181,200,1456,456,336,0,0,0,0,0,0,0,0,2250,200,515,8000,727,1200,746,1500,706,30,622,50,534,5000,0,0,0,0,4006,70); - -# eAthena Dev Team -# REPLACE INTO `mob_db2` VALUES (1900,'VALARIS','Valaris','Valaris',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); -# REPLACE INTO `mob_db2` VALUES (1901,'VALARIS_WORSHIPPER','Valaris\'s Worshipper','Valaris\'s Worshipper',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1685,100,868,480,120,0,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1); -# REPLACE INTO `mob_db2` VALUES (1902,'MC_CAMERI','MC Cameri','MC Cameri',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); -# REPLACE INTO `mob_db2` VALUES (1903,'POKI','Poki#3','Poki#3',99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,1973,120,500,672,480,92100,7000,603,5500,617,3000,1723,1000,1228,100,1236,500,617,2500,1234,75,1237,125,1722,250,1724,100,1720,50,0,0,0,0); -# REPLACE INTO `mob_db2` VALUES (1904,'SENTRY','Sentry','Sentry',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,5000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); - +# REPLACE INTO `mob_db2` VALUES (1920,'EASTER_EGG','Easter Egg','Easter Egg',3,300,0,4,4,0,1,2,20,20,1,1,1,1,1,20,10,12,0,0,60,128,1000,1001,1,1,0,0,0,0,0,0,0,1010,250,935,500,558,300,501,200,501,200,713,800,558,300,558,300,0,0,0,0); +# REPLACE INTO `mob_db2` VALUES (1921,'EASTER_BUNNY','Easter Bunny','Easter Bunny',6,1800,0,60,55,1,20,26,0,40,1,36,6,1,11,80,10,10,0,2,60,181,200,1456,456,336,0,0,0,0,0,0,0,2250,200,515,8000,727,1200,746,1500,706,30,622,50,534,5000,0,0,0,0,4006,70); +# rAthena Dev Team +# REPLACE INTO `mob_db2` VALUES (1900,'VALARIS','Valaris','Valaris',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); +# REPLACE INTO `mob_db2` VALUES (1901,'VALARIS_WORSHIPPER','Valaris\'s Worshipper','Valaris\'s Worshipper',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,1685,100,868,480,120,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1); +# REPLACE INTO `mob_db2` VALUES (1902,'MC_CAMERI','MC Cameri','MC Cameri',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); +# REPLACE INTO `mob_db2` VALUES (1903,'POKI','Poki#3','Poki#3',99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,1973,120,500,672,480,92100,603,5500,617,3000,1723,1000,1228,100,1236,500,617,2500,1234,75,1237,125,1722,250,1724,100,1720,50,0,0,0,0); +# REPLACE INTO `mob_db2` VALUES (1904,'SENTRY','Sentry','Sentry',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1); # Custom Hollow Poring (overrrides/collides with META_ANDRE) -# REPLACE INTO `mob_db2` VALUES (1237,'HOLLOW_PORING','Hollow Poring','Hollow Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,10); +# REPLACE INTO `mob_db2` VALUES (1237,'HOLLOW_PORING','Hollow Poring','Hollow Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,10); # Custom Fire Poring. Warning, Colides with META_DENIRO -# REPLACE INTO `mob_db2` VALUES (1239,'FIRE_PORING','Fire Poring','Fire Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20); - +# REPLACE INTO `mob_db2` VALUES (1239,'FIRE_PORING','Fire Poring','Fire Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,131,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20); # Lunar New Year 2008 Event Monster overrides # Uncomment if event is enabled, as these drops modifications are nessecary. -# REPLACE INTO `mob_db2` VALUES (1145,'MARTIN','Martin','Martin',18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,7869,1500,0,0,4046,1); -# REPLACE INTO `mob_db2` VALUES (1175,'TAROU','Tarou','Tarou',11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,7869,2500,0,0,0,0,0,0,4028,1); -# REPLACE INTO `mob_db2` VALUES (1209,'CRAMP','Cramp','Cramp',56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,7869,1500,0,0,4296,1); - +# REPLACE INTO `mob_db2` VALUES (1145,'MARTIN','Martin','Martin',18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,7869,1500,0,0,4046,1); +# REPLACE INTO `mob_db2` VALUES (1175,'TAROU','Tarou','Tarou',11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,7869,2500,0,0,0,0,0,0,4028,1); +# REPLACE INTO `mob_db2` VALUES (1209,'CRAMP','Cramp','Cramp',56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,7869,1500,0,0,4296,1); # iRO St. Patricks Day 2008 Event Monster overrides # Uncomment if event is enabled, as these drops modifications are nessecary. -# REPLACE INTO `mob_db2` VALUES (1841,'G_SNAKE_','Snake Lord\'s Minon','Snake Lord\'s Minon',15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db2` VALUES (1842,'G_ANACONDAQ_','Snake Lord\'s Minon','Snake Lord\'s Minon',23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db2` VALUES (1843,'SIDE_WINDER_','Snake Lord\'s Minon','Snake Lord\'s Minon',43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db2` VALUES (1844,'G_ISIS_','Snake Lord\'s Minon','Snake Lord\'s Minon',47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,8,0,0,0,0,0,0,0,0,0,0,0,0); - +# REPLACE INTO `mob_db2` VALUES (1841,'G_SNAKE_','Snake Lord\'s Minon','Snake Lord\'s Minon',15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db2` VALUES (1842,'G_ANACONDAQ_','Snake Lord\'s Minon','Snake Lord\'s Minon',23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db2` VALUES (1843,'SIDE_WINDER_','Snake Lord\'s Minon','Snake Lord\'s Minon',43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db2` VALUES (1844,'G_ISIS_','Snake Lord\'s Minon','Snake Lord\'s Minon',47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,8,0,0,0,0,0,0,0,0,0,0,0,0); # iRO Christmas 2008 Event # Uncomment if event is enabled, as these drops modifications are nessecary. -# REPLACE INTO `mob_db2` VALUES (1244,'JAKK_XMAS','Christmas Jakk','Christmas Jakk',38,3581,0,1113,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0); -# REPLACE INTO `mob_db2` VALUES (1245,'GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,0,282,171,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0); -# REPLACE INTO `mob_db2` VALUES (1246,'COOKIE_XMAS','Christmas Cookie','Christmas Cookie',28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0); -# REPLACE INTO `mob_db2` VALUES (1247,'ANTONIO','Antonio','Antonio',10,10,0,3,2,1,13,20,100,0,1,1,1,50,100,100,10,12,1,3,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,0,604,500,12354,500,14550,500,5136,500,12132,500,12225,500,5811,500,0,0,0,0,4243,1); - +# REPLACE INTO `mob_db2` VALUES (1244,'JAKK_XMAS','Christmas Jakk','Christmas Jakk',38,3581,0,1113,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0); +# REPLACE INTO `mob_db2` VALUES (1245,'GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,0,282,171,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0); +# REPLACE INTO `mob_db2` VALUES (1246,'COOKIE_XMAS','Christmas Cookie','Christmas Cookie',28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0); +# REPLACE INTO `mob_db2` VALUES (1247,'ANTONIO','Antonio','Antonio',10,10,0,3,2,1,13,20,100,0,1,1,1,50,100,100,10,12,1,3,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,604,500,12354,500,14550,500,5136,500,12132,500,12225,500,5811,500,0,0,0,0,4243,1); # iRO Halloween 2009 Event # Uncomment if event is enabled. Uncomment the skills for Halloween Whisper in mob_skill_db2. -# REPLACE INTO `mob_db2` VALUES (3014,'HALLOWEEN_WHISPER','Halloween Whisper','Halloween Whisper',1,800,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,0,6,68,0x81,150,1960,960,504,0,0,0,0,0,0,0,0,12396,150,6299,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); -# REPLACE INTO `mob_db2` VALUES (3015,'HALLOWEEN_DARK_LORD','Halloween Dark Lord','Halloween Dark Lord',1,45,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,2,6,89,0x81,100,868,768,480,0,0,0,0,0,0,0,0,12396,800,12397,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); - +# REPLACE INTO `mob_db2` VALUES (3014,'HALLOWEEN_WHISPER','Halloween Whisper','Halloween Whisper',1,800,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,0,6,68,0x81,150,1960,960,504,0,0,0,0,0,0,0,12396,150,6299,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +# REPLACE INTO `mob_db2` VALUES (3015,'HALLOWEEN_DARK_LORD','Halloween Dark Lord','Halloween Dark Lord',1,45,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,2,6,89,0x81,100,868,768,480,0,0,0,0,0,0,0,12396,800,12397,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); # iRO Halloween 2008 Event # Uncomment if event is enabled. -# REPLACE INTO `mob_db2` VALUES (3000,'ZOMBIE','Zombie','Zombie',15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1); -# REPLACE INTO `mob_db2` VALUES (3001,'GHOUL','Ghoul','Ghoul',40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1); -# REPLACE INTO `mob_db2` VALUES (3002,'ZOMBIE_MASTER','Zombie Master','Zombie Master',62,14211,0,7610,2826,1,824,1084,37,26,25,20,30,5,77,35,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1); +# REPLACE INTO `mob_db2` VALUES (3000,'ZOMBIE','Zombie','Zombie',15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1); +# REPLACE INTO `mob_db2` VALUES (3001,'GHOUL','Ghoul','Ghoul',40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1); +# REPLACE INTO `mob_db2` VALUES (3002,'ZOMBIE_MASTER','Zombie Master','Zombie Master',62,14211,0,7610,2826,1,824,1084,37,26,25,20,30,5,77,35,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1); + diff --git a/sql-files/upgrade_svn15531_db.sql b/sql-files/upgrade_svn15531_db.sql new file mode 100644 index 000000000..ce0e56302 --- /dev/null +++ b/sql-files/upgrade_svn15531_db.sql @@ -0,0 +1,4 @@ +-- `ExpPer` column removed from `mob_db` and `mob_db2` tables + +ALTER TABLE `mob_db` DROP COLUMN `ExpPer`; +ALTER TABLE `mob_db2` DROP COLUMN `ExpPer`; diff --git a/src/map/atcommand.c b/src/map/atcommand.c index c723d6d73..716eb8f74 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -7196,11 +7196,11 @@ ACMD_FUNC(mobinfo) clif_displaymessage(fd, atcmd_output); // mvp if (mob->mexp) { - sprintf(atcmd_output, " MVP Bonus EXP:%u %02.02f%%", mob->mexp, (float)mob->mexpper / 100); + sprintf(atcmd_output, " MVP Bonus EXP:%u", mob->mexp); clif_displaymessage(fd, atcmd_output); strcpy(atcmd_output, " MVP Items:"); j = 0; - for (i = 0; i < 3; i++) { + for (i = 0; i < MAX_MVP_DROP; i++) { if (mob->mvpitem[i].nameid <= 0 || (item_data = itemdb_exists(mob->mvpitem[i].nameid)) == NULL) continue; if (mob->mvpitem[i].p > 0) { diff --git a/src/map/mob.c b/src/map/mob.c index cc3c8e6e6..a620959ea 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2355,7 +2355,6 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) if(mvp_sd && md->db->mexp > 0 && !md->special_state.ai) { int log_mvp[2] = {0}; - int j; unsigned int mexp; struct item item; double exp; @@ -2378,10 +2377,8 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) if(map[m].flag.nomvploot || type&1) ; //No drops. else - for(j=0;j<3;j++) + for(i = 0; i < MAX_MVP_DROP; i++) { - i = rnd() % 3; - if(md->db->mvpitem[i].nameid <= 0) continue; if(!itemdb_exists(md->db->mvpitem[i].nameid)) @@ -3586,12 +3583,10 @@ static bool mob_parse_dbrow(char** str) memcpy(&data.status, status, sizeof(struct status_data)); status_calc_misc(&data.bl, status, db->lv); - // MVP EXP Bonus, Chance: MEXP,ExpPer + // MVP EXP Bonus: MEXP // Some new MVP's MEXP multipled by high exp-rate cause overflow. [LuzZza] exp = (double)atoi(str[30]) * (double)battle_config.mvp_exp_rate / 100.; db->mexp = (unsigned int)cap_value(exp, 0, UINT_MAX); - - db->mexpper = atoi(str[31]); //Now that we know if it is an mvp or not, apply battle_config modifiers [Skotlex] maxhp = (double)status->max_hp; @@ -3610,16 +3605,16 @@ static bool mob_parse_dbrow(char** str) status->sp = status->max_sp; // MVP Drops: MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per - for(i = 0; i < 3; i++) { + for(i = 0; i < MAX_MVP_DROP; i++) { struct item_data *id; int rate_adjust = battle_config.item_rate_mvp;; - db->mvpitem[i].nameid = atoi(str[32+i*2]); + db->mvpitem[i].nameid = atoi(str[31+i*2]); if (!db->mvpitem[i].nameid) { db->mvpitem[i].p = 0; //No item.... continue; } item_dropratio_adjust(db->mvpitem[i].nameid, class_, &rate_adjust); - db->mvpitem[i].p = mob_drop_adjust(atoi(str[33+i*2]), rate_adjust, battle_config.item_drop_mvp_min, battle_config.item_drop_mvp_max); + db->mvpitem[i].p = mob_drop_adjust(atoi(str[32+i*2]), rate_adjust, battle_config.item_drop_mvp_min, battle_config.item_drop_mvp_max); //calculate and store Max available drop chance of the MVP item if (db->mvpitem[i].p) { @@ -3635,7 +3630,7 @@ static bool mob_parse_dbrow(char** str) int rate = 0, rate_adjust, type; unsigned short ratemin, ratemax; struct item_data *id; - k = 38+i*2; + k = 31 + MAX_MVP_DROP*2 + i*2; db->dropitem[i].nameid = atoi(str[k]); if (!db->dropitem[i].nameid) { db->dropitem[i].p = 0; //No drop. @@ -3747,7 +3742,7 @@ static void mob_readdb(void) } } - sv_readdb(db_path, filename[fi], ',', 38+2*MAX_MOB_DROP, 38+2*MAX_MOB_DROP, -1, &mob_readdb_sub); + sv_readdb(db_path, filename[fi], ',', 31+2*MAX_MVP_DROP+2*MAX_MOB_DROP, 38+2*MAX_MVP_DROP+2*MAX_MOB_DROP, -1, &mob_readdb_sub); } } @@ -3775,12 +3770,12 @@ static int mob_read_sqldb(void) { // wrap the result into a TXT-compatible format char line[1024]; - char* str[38+2*MAX_MOB_DROP]; + char* str[31+2*MAX_MVP_DROP+2*MAX_MOB_DROP]; char* p; int i; lines++; - for(i = 0, p = line; i < 38 + 2*MAX_MOB_DROP; i++) + for(i = 0, p = line; i < 31+2*MAX_MVP_DROP+2*MAX_MOB_DROP; i++) { char* data; size_t len; diff --git a/src/map/mob.h b/src/map/mob.h index 2c6d882c9..0ad95ff19 100644 --- a/src/map/mob.h +++ b/src/map/mob.h @@ -20,6 +20,7 @@ //The number of drops all mobs have and the max drop-slot that the steal skill will attempt to steal from. #define MAX_MOB_DROP 10 +#define MAX_MVP_DROP 3 #define MAX_STEAL_DROP 7 //Min time between AI executions @@ -89,12 +90,12 @@ struct spawn_info { struct mob_db { char sprite[NAME_LENGTH],name[NAME_LENGTH],jname[NAME_LENGTH]; unsigned int base_exp,job_exp; - unsigned int mexp,mexpper; + unsigned int mexp; short range2,range3; short race2; // celest unsigned short lv; struct { int nameid,p; } dropitem[MAX_MOB_DROP]; - struct { int nameid,p; } mvpitem[3]; + struct { int nameid,p; } mvpitem[MAX_MVP_DROP]; struct status_data status; struct view_data vd; short option; diff --git a/tools/mob_db.pl b/tools/mob_db.pl index a5d287839..3872153fa 100755 --- a/tools/mob_db.pl +++ b/tools/mob_db.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl $db = "mob_db"; -$nb_columns = 58; +$nb_columns = 57; @str_col = (1,2,3); $create_table = "# # Table structure for table `mob_db` @@ -39,7 +39,6 @@ CREATE TABLE `mob_db` ( `aMotion` smallint(6) unsigned NOT NULL default '0', `dMotion` smallint(6) unsigned NOT NULL default '0', `MEXP` mediumint(9) unsigned NOT NULL default '0', - `ExpPer` smallint(9) unsigned NOT NULL default '0', `MVP1id` smallint(9) unsigned NOT NULL default '0', `MVP1per` smallint(9) unsigned NOT NULL default '0', `MVP2id` smallint(9) unsigned NOT NULL default '0', -- cgit v1.2.3-70-g09d2 From 7b1562b07d55a2712021803eab923200d6891494 Mon Sep 17 00:00:00 2001 From: greenboxal2 Date: Thu, 14 Jun 2012 20:21:06 +0000 Subject: Added attack column as string type on TXT2SQL item_db conversion tool for renewal attack. (tid:65568) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16299 54d463be-8e91-2dee-dedb-b68131a5f0ec --- tools/item_db.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tools') diff --git a/tools/item_db.pl b/tools/item_db.pl index 1cbe2b9a3..a2b443de9 100755 --- a/tools/item_db.pl +++ b/tools/item_db.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl $db = "item_db"; $nb_columns = 22; -@str_col = (1,2,19,20,21); +@str_col = (1,2,7,19,20,21); $line_format = "([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),([^\,]*),(\{.*\}),(\{.*\}),(\{.*\})"; #$line_format = ; $create_table = "# -- cgit v1.2.3-70-g09d2 From bfb15e68b763800587fa57727fc4baaa0e5e2800 Mon Sep 17 00:00:00 2001 From: momacabu Date: Fri, 9 Nov 2012 00:26:36 +0000 Subject: - Removed backup.pl (for TXT servers) and vs9-to-vs8.php (outdated versions); - Merged @killmonster2 with @killmonster tid:73632; - Fixed bugreport:6764, auction code was misplaced; - Follow up to r16753 (bugreport:6523), fixed bugreport:6673, using Gravitational Field with Safety Wall would keep the character immobilized. Blame myself, thankyou Lunar for the fix; - Fixed bugreport:6514, @slaveclone wouldn't be targeted by monster. Thanks to zippy; - Fixed bugreport:6837, some code was duplicated; - Fixed bugreport:6768, removed some leftovers from TXT removal; - Fixed bugreport:6868, Unequipping a weapon with Incantation Samurai card will not kill you if you have less than 999 hp and are on a non-pvp map; - Fixed wrong bit field on ai field in mob_data structure. Credits to Ind. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16881 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/pre-re/item_db.txt | 2 +- db/re/item_db.txt | 2 +- sql-files/item_db.sql | 2 +- sql-files/item_db_re.sql | 2 +- src/char/int_elemental.c | 3 -- src/char/int_guild.h | 4 -- src/char/int_party.h | 2 - src/map/atcommand.c | 28 ++++--------- src/map/battle.c | 6 ++- src/map/elemental.c | 10 +---- src/map/elemental.h | 3 +- src/map/homunculus.c | 2 +- src/map/homunculus.h | 2 +- src/map/mail.c | 1 - src/map/mercenary.c | 10 +---- src/map/mercenary.h | 3 +- src/map/mob.h | 2 +- src/map/skill.c | 4 +- src/map/status.c | 10 ++--- tools/backup.pl | 100 ----------------------------------------------- tools/vs9-to-vs8.php | 46 ---------------------- 21 files changed, 29 insertions(+), 215 deletions(-) delete mode 100755 tools/backup.pl delete mode 100644 tools/vs9-to-vs8.php (limited to 'tools') diff --git a/db/pre-re/item_db.txt b/db/pre-re/item_db.txt index 410ed82c4..89808919d 100644 --- a/db/pre-re/item_db.txt +++ b/db/pre-re/item_db.txt @@ -1888,7 +1888,7 @@ 4260,Wootan_Shooter_Card,Wootan Shooter Card,6,20,,10,,,,,,,,769,,,,,{ bonus bDef,1; bonus2 bResEff,Eff_Confusion,2000; },{},{} 4261,Wootan_Fighter_Card,Wootan Fighter Card,6,20,,10,,,,,,,,769,,,,,{ bonus bDef,1; bonus2 bResEff,Eff_Bleeding,2000; },{},{} 4262,Evil_Cloud_Hermit_Card,Cloud Hermit Card,6,20,,10,,,,,,,,136,,,,,{ bonus3 bAddMonsterDropItem,12029,RC_Plant,100; },{},{} -4263,Incant_Samurai_Card,Samurai Spector Card,6,20,,10,,,,,,,,2,,,,,{ bonus bIgnoreDefRace,RC_NonBoss; bonus bHPrecovRate,-100; bonus2 bHPLossRate,666,10000; },{},{ heal -999,0; } +4263,Incant_Samurai_Card,Samurai Spector Card,6,20,,10,,,,,,,,2,,,,,{ bonus bIgnoreDefRace,RC_NonBoss; bonus bHPrecovRate,-100; bonus2 bHPLossRate,666,10000; },{},{ if( (Hp <= 999) && !getmapflag(strcharinfo(3),6) && !getmapflag(strcharinfo(3),7) && !getmapflag(strcharinfo(3),8) ) { heal (1 - Hp), 0; } else { heal -999, 0; } } 4264,Wind_Ghost_Card,Wind Ghost Card,6,20,,10,,,,,,,,136,,,,,{ bonus3 bAutoSpell,"WZ_JUPITEL",3+7*(getskilllv("WZ_JUPITEL")==10),20; },{},{} 4265,Li_Me_Mang_Ryang_Card,Jing Guai Card,6,20,,10,,,,,,,,136,,,,,{ bonus3 bAddMonsterDropItem,12033,RC_Angel,100; },{},{} 4266,Eclipse_Card,Eclipse Card,6,20,,10,,,,,,,,4,,,,,{ bonus bVit,1; },{},{} diff --git a/db/re/item_db.txt b/db/re/item_db.txt index 4aca0c4d0..3e0a84410 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -2168,7 +2168,7 @@ 4260,Wootan_Shooter_Card,Wootan Shooter Card,6,20,,10,,,,,,,,769,,,,,{ bonus bDef,1; bonus2 bResEff,Eff_Confusion,2000; },{},{} 4261,Wootan_Fighter_Card,Wootan Fighter Card,6,20,,10,,,,,,,,769,,,,,{ bonus bDef,1; bonus2 bResEff,Eff_Bleeding,2000; },{},{} 4262,Evil_Cloud_Hermit_Card,Cloud Hermit Card,6,20,,10,,,,,,,,136,,,,,{ bonus3 bAddMonsterDropItem,12029,RC_Plant,100; },{},{} -4263,Incant_Samurai_Card,Samurai Spector Card,6,20,,10,,,,,,,,2,,,,,{ bonus bIgnoreDefRace,RC_NonBoss; bonus bHPrecovRate,-100; bonus2 bHPLossRate,666,10000; },{},{ heal -999,0; } +4263,Incant_Samurai_Card,Samurai Spector Card,6,20,,10,,,,,,,,2,,,,,{ bonus bIgnoreDefRace,RC_NonBoss; bonus bHPrecovRate,-100; bonus2 bHPLossRate,666,10000; },{},{ if( (Hp <= 999) && !getmapflag(strcharinfo(3),6) && !getmapflag(strcharinfo(3),7) && !getmapflag(strcharinfo(3),8) ) { heal (1 - Hp), 0; } else { heal -999, 0; } } 4264,Wind_Ghost_Card,Wind Ghost Card,6,20,,10,,,,,,,,136,,,,,{ bonus3 bAutoSpell,"WZ_JUPITEL",3+7*(getskilllv("WZ_JUPITEL")==10),20; },{},{} 4265,Li_Me_Mang_Ryang_Card,Jing Guai Card,6,20,,10,,,,,,,,136,,,,,{ bonus3 bAddMonsterDropItem,12033,RC_Angel,100; },{},{} 4266,Eclipse_Card,Eclipse Card,6,20,,10,,,,,,,,4,,,,,{ bonus bVit,1; },{},{} diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index 6d39d1a22..27a7a7024 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -1919,7 +1919,7 @@ REPLACE INTO `item_db` VALUES (4259,'Wooden_Golem_Card','Wooden Golem Card',6,20 REPLACE INTO `item_db` VALUES (4260,'Wootan_Shooter_Card','Wootan Shooter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bDef,1; bonus2 bResEff,Eff_Confusion,2000;',NULL,NULL); REPLACE INTO `item_db` VALUES (4261,'Wootan_Fighter_Card','Wootan Fighter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bDef,1; bonus2 bResEff,Eff_Bleeding,2000;',NULL,NULL); REPLACE INTO `item_db` VALUES (4262,'Evil_Cloud_Hermit_Card','Cloud Hermit Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAddMonsterDropItem,12029,RC_Plant,100;',NULL,NULL); -REPLACE INTO `item_db` VALUES (4263,'Incant_Samurai_Card','Samurai Spector Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bIgnoreDefRace,RC_NonBoss; bonus bHPrecovRate,-100; bonus2 bHPLossRate,666,10000;',NULL,'heal -999,0;'); +REPLACE INTO `item_db` VALUES (4263,'Incant_Samurai_Card','Samurai Spector Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bIgnoreDefRace,RC_NonBoss; bonus bHPrecovRate,-100; bonus2 bHPLossRate,666,10000;',NULL,'if( (Hp <= 999) && !getmapflag(strcharinfo(3),6) && !getmapflag(strcharinfo(3),7) && !getmapflag(strcharinfo(3),8) ) { heal (1 - Hp), 0; } else { heal -999, 0; }'); REPLACE INTO `item_db` VALUES (4264,'Wind_Ghost_Card','Wind Ghost Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAutoSpell,"WZ_JUPITEL",3+7*(getskilllv("WZ_JUPITEL")==10),20;',NULL,NULL); REPLACE INTO `item_db` VALUES (4265,'Li_Me_Mang_Ryang_Card','Jing Guai Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAddMonsterDropItem,12033,RC_Angel,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (4266,'Eclipse_Card','Eclipse Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bVit,1;',NULL,NULL); diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index 176812c1c..dbbf2500b 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -2199,7 +2199,7 @@ REPLACE INTO `item_db_re` VALUES (4259,'Wooden_Golem_Card','Wooden Golem Card',6 REPLACE INTO `item_db_re` VALUES (4260,'Wootan_Shooter_Card','Wootan Shooter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bDef,1; bonus2 bResEff,Eff_Confusion,2000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (4261,'Wootan_Fighter_Card','Wootan Fighter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bDef,1; bonus2 bResEff,Eff_Bleeding,2000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (4262,'Evil_Cloud_Hermit_Card','Cloud Hermit Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAddMonsterDropItem,12029,RC_Plant,100;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (4263,'Incant_Samurai_Card','Samurai Spector Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bIgnoreDefRace,RC_NonBoss; bonus bHPrecovRate,-100; bonus2 bHPLossRate,666,10000;',NULL,'heal -999,0;'); +REPLACE INTO `item_db_re` VALUES (4263,'Incant_Samurai_Card','Samurai Spector Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bIgnoreDefRace,RC_NonBoss; bonus bHPrecovRate,-100; bonus2 bHPLossRate,666,10000;',NULL,'if( (Hp <= 999) && !getmapflag(strcharinfo(3),6) && !getmapflag(strcharinfo(3),7) && !getmapflag(strcharinfo(3),8) ) { heal (1 - Hp), 0; } else { heal -999, 0; }'); REPLACE INTO `item_db_re` VALUES (4264,'Wind_Ghost_Card','Wind Ghost Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAutoSpell,"WZ_JUPITEL",3+7*(getskilllv("WZ_JUPITEL")==10),20;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (4265,'Li_Me_Mang_Ryang_Card','Jing Guai Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus3 bAddMonsterDropItem,12033,RC_Angel,100;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (4266,'Eclipse_Card','Eclipse Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bVit,1;',NULL,NULL); diff --git a/src/char/int_elemental.c b/src/char/int_elemental.c index d81e10f84..7c76c4496 100644 --- a/src/char/int_elemental.c +++ b/src/char/int_elemental.c @@ -90,8 +90,6 @@ bool mapif_elemental_delete(int ele_id) { return true; } -#ifndef TXT_SQL_CONVERT - static void mapif_elemental_send(int fd, struct s_elemental *ele, unsigned char flag) { int size = sizeof(struct s_elemental) + 5; @@ -161,4 +159,3 @@ int inter_elemental_parse_frommap(int fd) { } return 1; } -#endif //TXT_SQL_CONVERT diff --git a/src/char/int_guild.h b/src/char/int_guild.h index 202b9b512..47c42dcc5 100644 --- a/src/char/int_guild.h +++ b/src/char/int_guild.h @@ -34,8 +34,4 @@ int inter_guild_charname_changed(int guild_id,int account_id, int char_id, char int inter_guild_CharOnline(int char_id, int guild_id); int inter_guild_CharOffline(int char_id, int guild_id); -//For the TXT->SQL converter. -int inter_guild_tosql(struct guild *g,int flag); -int inter_guildcastle_tosql(struct guild_castle *gc); - #endif /* _INT_GUILD_SQL_H_ */ diff --git a/src/char/int_party.h b/src/char/int_party.h index 703cd5bd5..d8cdcdc6a 100644 --- a/src/char/int_party.h +++ b/src/char/int_party.h @@ -22,7 +22,5 @@ void inter_party_sql_final(void); int inter_party_leave(int party_id,int account_id, int char_id); int inter_party_CharOnline(int char_id, int party_id); int inter_party_CharOffline(int char_id, int party_id); -//Required for the TXT->SQL converter -int inter_party_tosql(struct party *p, int flag, int index); #endif /* _INT_PARTY_SQL_H_ */ diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 45f14be6f..b7b59940e 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -2179,12 +2179,11 @@ static int atkillmonster_sub(struct block_list *bl, va_list ap) return 1; } -void atcommand_killmonster_sub(const int fd, struct map_session_data* sd, const char* message, const int drop) +ACMD_FUNC(killmonster) { - int map_id; + int map_id, drop_flag; char map_name[MAP_NAME_LENGTH_EXT]; - - if (!sd) return; + nullpo_retr(-1, sd); memset(map_name, '\0', sizeof(map_name)); @@ -2194,26 +2193,13 @@ void atcommand_killmonster_sub(const int fd, struct map_session_data* sd, const if ((map_id = map_mapname2mapid(map_name)) < 0) map_id = sd->bl.m; } + + drop_flag = strcmp(command+1, "killmonster2"); - map_foreachinmap(atkillmonster_sub, map_id, BL_MOB, drop); + map_foreachinmap(atkillmonster_sub, map_id, BL_MOB, -drop_flag); clif_displaymessage(fd, msg_txt(165)); // All monsters killed! - return; -} - -ACMD_FUNC(killmonster) -{ - atcommand_killmonster_sub(fd, sd, message, 1); - return 0; -} - -/*========================================== - * - *------------------------------------------*/ -ACMD_FUNC(killmonster2) -{ - atcommand_killmonster_sub(fd, sd, message, 0); return 0; } @@ -8866,7 +8852,7 @@ void atcommand_basecommands(void) { ACMD_DEF2("monstersmall", monster), ACMD_DEF2("monsterbig", monster), ACMD_DEF(killmonster), - ACMD_DEF(killmonster2), + ACMD_DEF2("killmonster2", killmonster), ACMD_DEF(refine), ACMD_DEF(produce), ACMD_DEF(memo), diff --git a/src/map/battle.c b/src/map/battle.c index 47f18e881..18aadf0ac 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -5230,8 +5230,10 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f if( !md->special_state.ai ) { //Normal mobs - if( (target->type == BL_MOB && t_bl->type == BL_PC && ((TBL_MOB*)target)->special_state.ai < 4) || - ( t_bl->type == BL_MOB && !((TBL_MOB*)t_bl)->special_state.ai ) ) + if( + ( target->type == BL_MOB && t_bl->type == BL_PC && ( ((TBL_MOB*)target)->special_state.ai != 4 && ((TBL_MOB*)target)->special_state.ai != 1 ) ) || + ( t_bl->type == BL_MOB && !((TBL_MOB*)t_bl)->special_state.ai ) + ) state |= BCT_PARTY; //Normal mobs with no ai are friends. else state |= BCT_ENEMY; //However, all else are enemies. diff --git a/src/map/elemental.c b/src/map/elemental.c index 3abab157f..1157e851e 100644 --- a/src/map/elemental.c +++ b/src/map/elemental.c @@ -457,13 +457,6 @@ int elemental_change_mode(struct elemental_data *ed, int mode) { return 1; } -void elemental_damage(struct elemental_data *ed, int hp, int sp) { - if( hp ) - clif_elemental_updatestatus(ed->master, SP_HP); - if( sp ) - clif_elemental_updatestatus(ed->master, SP_SP); -} - void elemental_heal(struct elemental_data *ed, int hp, int sp) { if( hp ) clif_elemental_updatestatus(ed->master, SP_HP); @@ -471,7 +464,7 @@ void elemental_heal(struct elemental_data *ed, int hp, int sp) { clif_elemental_updatestatus(ed->master, SP_SP); } -int elemental_dead(struct elemental_data *ed, struct block_list *src) { +int elemental_dead(struct elemental_data *ed) { elemental_delete(ed, 1); return 0; } @@ -645,7 +638,6 @@ static int elemental_ai_sub_foreachclient(struct map_session_data *sd, va_list a static int elemental_ai_timer(int tid, unsigned int tick, int id, intptr_t data) { map_foreachpc(elemental_ai_sub_foreachclient,tick); - return 0; } diff --git a/src/map/elemental.h b/src/map/elemental.h index 124c7ff83..698cf6fb9 100644 --- a/src/map/elemental.h +++ b/src/map/elemental.h @@ -67,9 +67,8 @@ int elemental_save(struct elemental_data *ed); int elemental_change_mode_ack(struct elemental_data *ed, int mode); int elemental_change_mode(struct elemental_data *ed, int mode); -void elemental_damage(struct elemental_data *ed, int hp, int sp); void elemental_heal(struct elemental_data *ed, int hp, int sp); -int elemental_dead(struct elemental_data *ed, struct block_list *src); +int elemental_dead(struct elemental_data *ed); int elemental_delete(struct elemental_data *ed, int reply); void elemental_summon_stop(struct elemental_data *ed); diff --git a/src/map/homunculus.c b/src/map/homunculus.c index 46da045a4..081e7078e 100644 --- a/src/map/homunculus.c +++ b/src/map/homunculus.c @@ -85,7 +85,7 @@ void merc_damage(struct homun_data *hd) { clif_hominfo(hd->master,hd,0); } -int merc_hom_dead(struct homun_data *hd, struct block_list *src) +int merc_hom_dead(struct homun_data *hd) { //There's no intimacy penalties on death (from Tharis) struct map_session_data *sd = hd->master; diff --git a/src/map/homunculus.h b/src/map/homunculus.h index 3470cd5f5..7ad9268b2 100644 --- a/src/map/homunculus.h +++ b/src/map/homunculus.h @@ -80,7 +80,7 @@ int merc_hom_recv_data(int account_id, struct s_homunculus *sh, int flag); //alb struct view_data* merc_get_hom_viewdata(int class_); int hom_class2mapid(int hom_class); void merc_damage(struct homun_data *hd); -int merc_hom_dead(struct homun_data *hd, struct block_list *src); +int merc_hom_dead(struct homun_data *hd); void merc_hom_skillup(struct homun_data *hd,int skillnum); int merc_hom_calc_skilltree(struct homun_data *hd); int merc_hom_checkskill(struct homun_data *hd,int skill_id); diff --git a/src/map/mail.c b/src/map/mail.c index ce099d0a1..70c73c0a4 100644 --- a/src/map/mail.c +++ b/src/map/mail.c @@ -20,7 +20,6 @@ void mail_clear(struct map_session_data *sd) sd->mail.index = 0; sd->mail.amount = 0; sd->mail.zeny = 0; - sd->auction.amount = 0; return; } diff --git a/src/map/mercenary.c b/src/map/mercenary.c index 45e8e04ce..832cc835b 100644 --- a/src/map/mercenary.c +++ b/src/map/mercenary.c @@ -344,14 +344,6 @@ int merc_data_received(struct s_mercenary *merc, bool flag) return 1; } -void mercenary_damage(struct mercenary_data *md, int hp, int sp) -{ - if( hp ) - clif_mercenary_updatestatus(md->master, SP_HP); - if( sp ) - clif_mercenary_updatestatus(md->master, SP_SP); -} - void mercenary_heal(struct mercenary_data *md, int hp, int sp) { if( hp ) @@ -360,7 +352,7 @@ void mercenary_heal(struct mercenary_data *md, int hp, int sp) clif_mercenary_updatestatus(md->master, SP_SP); } -int mercenary_dead(struct mercenary_data *md, struct block_list *src) +int mercenary_dead(struct mercenary_data *md) { merc_delete(md, 1); return 0; diff --git a/src/map/mercenary.h b/src/map/mercenary.h index 340ab1462..014bd8937 100644 --- a/src/map/mercenary.h +++ b/src/map/mercenary.h @@ -56,9 +56,8 @@ int merc_create(struct map_session_data *sd, int class_, unsigned int lifetime); int merc_data_received(struct s_mercenary *merc, bool flag); int mercenary_save(struct mercenary_data *md); -void mercenary_damage(struct mercenary_data *md, int hp, int sp); void mercenary_heal(struct mercenary_data *md, int hp, int sp); -int mercenary_dead(struct mercenary_data *md, struct block_list *src); +int mercenary_dead(struct mercenary_data *md); int merc_delete(struct mercenary_data *md, int reply); void merc_contract_stop(struct mercenary_data *md); diff --git a/src/map/mob.h b/src/map/mob.h index 797d2484b..d45962163 100644 --- a/src/map/mob.h +++ b/src/map/mob.h @@ -121,7 +121,7 @@ struct mob_data { char name[NAME_LENGTH]; struct { unsigned int size : 2; //Small/Big monsters. - unsigned int ai : 3; //Special ai for summoned monsters. + unsigned int ai : 4; //Special ai for summoned monsters. //0: Normal mob. //1: Standard summon, attacks mobs. //2: Alchemist Marine Sphere diff --git a/src/map/skill.c b/src/map/skill.c index 86516e337..7dcfa2552 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -11902,8 +11902,8 @@ static int skill_unit_effect (struct block_list* bl, va_list ap) skill_id = group->skill_id; //Target-type check. - if( !(group->bl_flag&bl->type && battle_check_target(&unit->bl,bl,group->target_flag)>0) && (flag&4) ) { - if( group->state.song_dance&0x1 || (group->src_id == bl->id && group->state.song_dance&0x2) ) + if( !(group->bl_flag&bl->type && battle_check_target(&unit->bl,bl,group->target_flag)>0) ) { + if( flag&4 && ((group->src_id == bl->id && group->state.song_dance&0x2) || skill_get_inf2(skill_id)&INF2_SONG_DANCE) ) skill_unit_onleft(skill_id, bl, tick);//Ensemble check to terminate it. } else { if( flag&1 ) diff --git a/src/map/status.c b/src/map/status.c index eff787956..e097dcdb1 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1224,8 +1224,8 @@ int status_damage(struct block_list *src,struct block_list *target,int hp, int s case BL_PC: pc_damage((TBL_PC*)target,src,hp,sp); break; case BL_MOB: mob_damage((TBL_MOB*)target, src, hp); break; case BL_HOM: merc_damage((TBL_HOM*)target); break; - case BL_MER: mercenary_damage((TBL_MER*)target,hp,sp); break; - case BL_ELEM: elemental_damage((TBL_ELEM*)target,hp,sp); break; + case BL_MER: mercenary_heal((TBL_MER*)target,hp,sp); break; + case BL_ELEM: elemental_heal((TBL_ELEM*)target,hp,sp); break; } if( src && target->type == BL_PC && ((TBL_PC*)target)->disguise ) {// stop walking when attacked in disguise to prevent walk-delay bug @@ -1248,9 +1248,9 @@ int status_damage(struct block_list *src,struct block_list *target,int hp, int s switch (target->type) { case BL_PC: flag = pc_dead((TBL_PC*)target,src); break; case BL_MOB: flag = mob_dead((TBL_MOB*)target, src, flag&4?3:0); break; - case BL_HOM: flag = merc_hom_dead((TBL_HOM*)target,src); break; - case BL_MER: flag = mercenary_dead((TBL_MER*)target,src); break; - case BL_ELEM: flag = elemental_dead((TBL_ELEM*)target,src); break; + case BL_HOM: flag = merc_hom_dead((TBL_HOM*)target); break; + case BL_MER: flag = mercenary_dead((TBL_MER*)target); break; + case BL_ELEM: flag = elemental_dead((TBL_ELEM*)target); break; default: //Unhandled case, do nothing to object. flag = 0; break; diff --git a/tools/backup.pl b/tools/backup.pl deleted file mode 100755 index 939c7eee7..000000000 --- a/tools/backup.pl +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/perl - -########################################################################## -# Athena用データバックアップツール -# -#  Athenaの各種データファイル*.txtをバックアップするツール -# -#------------------------------------------------------------------------- -# 設定方法 -#  実行する時のカレントフォルダからのデータへのパス、ファイルのリストを -#  正しく設定します。バックアップ先のフォルダは自動作成されないので、 -#  自分で作成しておく必要があります。 -#  フォルダの最後の「/」は省略できません。 -# -#  フォルダは引数でも指定できます。例>./backup ../save/ ./backup_data/ -#  フォルダの最後の「/」は省略できません。 -# -#  実行するとバックアップ先のフォルダへ、ファイル名に現在の日付と時刻を -#  つけてファイルをコピーします。 -# -# * toolフォルダ内にbackup_dataフォルダを作成し、 -#   athena.shの中に「./tool/backup ./save/ ./tool/backup_data/」 -# という行を追加すると、athenaを起動するたびにバックアップが取れます -# -# 復元するときは引数に「-r 日付と時刻」を指定します。 -#  またその後ろにフォルダを指定することも出来ます -#  例1> ./backup -r 200309191607 -#  例2> ./backup -r 200309191607 ../save ./backup_data/ -#  この例では2003/09/19の16:07分にバックアップしたデータを復元しています -# -#  復元するとき、Athenaディレクトリにあるデータは *.bak に名前を変更して -#  残しているので、いらない場合は rm *.bak などで消してください。 -# -########################################################################## - -$sdir="../save/"; #バックアップ元(Athenaのディレクトリ/save/) -$tdir="./backup_data/"; #バックアップ先 - -@files=( #ファイルのリスト - "account","athena","storage","party","guild","castle","pet" -); - - -#-------------------------------設定ここまで----------------------------- - - - - - - - - - - - -if($ARGV[0]=~/^\-r$/i || $ARGV[0]=~/\-\-(recover|restore)/i){ - #復元処理 - - $file=$ARGV[1]; - $sdir=$ARGV[2]||$sdir; - $tdir=$ARGV[3]||$tdir; - &restorecopy($_) foreach @files; - exit(0); -} - -#バックアップ処理 -$sdir=$ARGV[0]||$sdir; -$tdir=$ARGV[1]||$tdir; - -unless( -d $tdir ){ - print "$0: \"$tdir\" : No such directory\n"; - exit(1); -} - -(undef,$min,$hour,$day,$month,$year)=localtime; - -$file=sprintf("%04d%02d%02d%02d%02d", - $year+1900, $month+1, $day, $hour, $min ); - -&backupcopy($_) foreach @files; -exit(0); - -sub backupcopy { - my($name)= @_; - system("cp $sdir$name.txt $tdir$name$file.txt"); -} - -sub restorecopy { - my($name)= @_; - unless( -f "$sdir$name.txt" ){ - printf("$0: \"$sdir$name.txt\" not found!\n"); - return 0; - } - unless( -f "$tdir$name$file.txt" ){ - printf("$0: \"$tdir$name$file.txt\" not found!\n"); - return 0; - } - rename "$sdir$name.txt","$sdir$name.bak"; - system("cp $tdir$name$file.txt $sdir$name.txt"); -} diff --git a/tools/vs9-to-vs8.php b/tools/vs9-to-vs8.php deleted file mode 100644 index 9cc05fb76..000000000 --- a/tools/vs9-to-vs8.php +++ /dev/null @@ -1,46 +0,0 @@ - - -- cgit v1.2.3-70-g09d2 From 0c899a3bf5715095687ec30f1cae09cabee863e6 Mon Sep 17 00:00:00 2001 From: glighta Date: Sat, 24 Nov 2012 20:41:16 +0000 Subject: -Add tool/check-doc to verify if all script/atcommand are being documented. thx to Trojal -Upd SC_ASH, make skill fail at 50% rate git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16964 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/skill.c | 5 +++-- tools/check-doc | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100755 tools/check-doc (limited to 'tools') diff --git a/src/map/skill.c b/src/map/skill.c index c24ffc8c1..5d38cb242 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -10204,7 +10204,8 @@ int skill_castend_map (struct map_session_data *sd, short skill_num, const char (sd->sc.data[SC_STASIS] && skill_block_check(&sd->bl, SC_STASIS, skill_num)) || (sd->sc.data[SC_KAGEHUMI] && skill_block_check(&sd->bl, SC_KAGEHUMI, skill_num)) || sd->sc.data[SC_OBLIVIONCURSE] || - sd->sc.data[SC__MANHOLE] + sd->sc.data[SC__MANHOLE] || + (sd->sc.data[SC_ASH] && rnd()%2) //50% fail chance under ASH )) { skill_failed(sd); return 0; @@ -11119,7 +11120,7 @@ static int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, un case UNT_VOLCANIC_ASH: if (!sce) - sc_start(bl, SC_ASH, 50, sg->skill_lv, skill_get_time(MH_VOLCANIC_ASH, sg->skill_lv)); //50% chance + sc_start(bl, SC_ASH, 100, sg->skill_lv, skill_get_time(MH_VOLCANIC_ASH, sg->skill_lv)); break; case UNT_GD_LEADERSHIP: diff --git a/tools/check-doc b/tools/check-doc new file mode 100755 index 000000000..4e8d036e8 --- /dev/null +++ b/tools/check-doc @@ -0,0 +1,28 @@ +#!/bin/sh +# checking-doc script by trojal +# modified by lighta + +case $1 in + 'script') + #find which script commands are missing from doc/script_commands.txt + echo "Missing scipt documentation for function :" + awk '/BUILDIN_DEF\(.*\),/ {b=match($0,"BUILDIN_DEF(.*),");c=match($0,",");print substr($0,b+12,c-b-12);}' ../src/map/script.c | xargs -I{} sh -c '! grep -Lq {} ../doc/script_commands.txt && echo {}' + awk '/BUILDIN_DEF2\(.*\),/ {b=match($0,"BUILDIN_DEF2(.*),");c=match($0,",");d=match($0 ,"\",\"");print substr($0,c+2,d-c-2);}' ../src/map/script.c | xargs -I{} sh -c '! grep -Lq {} ../doc/script_commands.txt && echo {}' + ;; + + 'atc') + #find which atcommands are missing from doc/atcommands.txt + echo "Missing atcommand documentation for function :" + awk '/ACMD_DEF\(.*\),/ {b=match($0,"ACMD_DEF(.*),");c=match($0,",");print substr($0,b+9,c-b-10);}' ../src/map/atcommand.c | xargs -I{} sh -c '! grep -Lq {} ../doc/atcommands.txt && echo {}' + awk '/ACMD_DEF2\(.*\),/ {b=match($0,"ACMD_DEF2(.*),");c=match($0,",");print substr($0,b+10,c-b-10);}' ../src/map/atcommand.c | xargs -I{} sh -c '! grep -Lq {} ../doc/atcommands.txt && echo {}' + ;; + 'both') + $0 script + $0 atc + ;; + + *) + echo "Usage: check-doc { script | atc | both }" + ;; +esac + -- cgit v1.2.3-70-g09d2 From d9c5c4784a0abc43fb9e01f365a0d8b3a15a0692 Mon Sep 17 00:00:00 2001 From: thatakkarin Date: Sun, 25 Nov 2012 20:42:27 +0000 Subject: * Misc spelling fixes * Added @lkami to list of current @kami variations in doc/atcommands.txt git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16967 54d463be-8e91-2dee-dedb-b68131a5f0ec --- doc/atcommands.txt | 12 +++++++----- doc/item_db.txt | 2 +- doc/script_commands.txt | 24 ++++++++++++------------ tools/check-doc | 2 +- 4 files changed, 21 insertions(+), 19 deletions(-) (limited to 'tools') diff --git a/doc/atcommands.txt b/doc/atcommands.txt index b5a394031..dd1eb80dd 100644 --- a/doc/atcommands.txt +++ b/doc/atcommands.txt @@ -64,7 +64,7 @@ Server Uptime: 3 days, 8 hours, 6 minutes, 4 seconds. @refresh -Syncronizes the player's position on the client with the one stored on the server. +Synchronizes the player's position on the client with the one stored on the server. --------------------------------------- @@ -665,7 +665,7 @@ Drops all inventory and equipped items onto the floor. @storeall -Places all inventory and equpiped items directly into your Kafra Storage. +Places all inventory and equipped items directly into your Kafra Storage. --------------------------------------- @@ -728,7 +728,7 @@ If no coordinates are entered, a random location will be chosen. @follow Warps to the specified player. -Aditionally, @follow will track the player's movements until turned off. +Additionally, @follow will track the player's movements until turned off. --------------------------------------- @@ -916,7 +916,7 @@ Fully heals HP and SP. @raisemap @raise -Ressurection commands. +Resurrection commands. @alive will revive the attached player. @raisemap will revive all players on the map. @raise will revive all players on the server. @@ -1019,11 +1019,13 @@ Except for /nb and /nlb, the message will be prefixed with the name of the attac @kami @kamib @kamic +@lkami Announces a message without a name prefix. @kami will broadcast in yellow text. @kamib will broadcast in blue text. @kamic will broadcast in the specified color (a hexadecimal value). +@lkami will broadcast on the attached character's current map. Example: @kamic FF0000 This message is in red. @@ -1332,7 +1334,7 @@ Sets the hunger level of your pet, with 100 being "Stuffed". | 9. Homunculus Commands | ========================== -@makehomun +@makehomun Creates the specified homunculus. diff --git a/doc/item_db.txt b/doc/item_db.txt index a74ef0617..d474b08c9 100644 --- a/doc/item_db.txt +++ b/doc/item_db.txt @@ -13,7 +13,7 @@ ID: Item id AegisName: Server name to reference the item in scripts and lookups, should use no spaces. -Name: Name in english for displaying as output for @ and script commands. +Name: Name in English for displaying as output for @ and script commands. Type: 0 Healing item. diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 087daadd5..94f62849c 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -154,7 +154,7 @@ Monster name is the name the monsters will have on screen, and has no relation whatsoever to their names anywhere else. It's the mob id that counts, which identifies monster record in 'mob_db.txt' database of monsters. If the mob name is given as "--ja--", the 'japanese name' field from the monster database is -used, (which, in rAthena, actually contains an english name) if it's "--en--", +used, (which, in rAthena, actually contains an English name) if it's "--en--", it's the 'english name' from the monster database (which contains an uppercase name used to summon the monster with a GM command). @@ -163,7 +163,7 @@ executed, it is affected by spawn rates in 'battle_athena.conf'. Delay1 and delay2 control monster respawn delays - the first one is the fixed base respawn time, and the second is random variance on top of the base time. -Both values are given in miliseconds (1000 = 1 second). +Both values are given in milliseconds (1000 = 1 second). Note that the server also enforces a minimum respawn delay of 5 seconds. You can specify a custom level to use for the mob different from the one of @@ -361,7 +361,7 @@ through mobspawn (mob control commands) or the account ID of a character. Another way would be to right click on a mob, NPC or char as GM sprited char to view the GID. -This is mostly used for the new version of skill and the mob control commmands +This is mostly used for the new version of skill and the mob control commands implemented (but NEVER documented by Lance. Shame on you...). Item and pet scripts @@ -375,7 +375,7 @@ are executed once again to rebuild them. This also happens in several other situations (like upon login) but the full list is currently unknown. OnEquip_Script is a piece of script code run whenever the item is used by a character -by doubleclicking on it. OnUnequip_Script runs whenever the +by double-clicking on it. OnUnequip_Script runs whenever the equipment is unequip by a character Not all script commands work properly in the item scripts. Where commands and @@ -1020,7 +1020,7 @@ that color: mes "This is ^FF0000 red ^000000 and this is ^00FF00 green, ^000000 so."; Notice that the text coloring is handled purely by the client. If you use non- -english characters, the color codes might get screwed if they stick to letters +English characters, the color codes might get screwed if they stick to letters with no intervening space. Separating them with spaces from the letters on either side solves the problem. @@ -1491,7 +1491,7 @@ Note: !! A user-defined function must be declared /before/ a script attempts to !! call it. That is to say, any functions should be placed above scripts or NPCs - !! (or loaded in a seperate file first) before attempting to call them directly. + !! (or loaded in a separate file first) before attempting to call them directly. --------------------------------------- @@ -1988,7 +1988,7 @@ Example: for ( set .@i,0; .@i<.@bigloop; set .@i, .@i+1 ) { dothis; // will sleep the script for 1ms when detect an infinity loop to - // let rathena do what it need to do (socket, timer, process, etc.) + // let rAthena do what it need to do (socket, timer, process, etc.) } freeloop(0); // disable @@ -2509,7 +2509,7 @@ See 'getequipid' for a full list of valid equipment slots. *getitemname() Given the database ID number of an item, this function will return the text -stored in the 'japanese name' field (which, in rAthena, stores an english name +stored in the 'japanese name' field (which, in rAthena, stores an English name the players would normally see on screen.) --------------------------------------- @@ -2634,7 +2634,7 @@ random change of a refine succeeding or failing and then going through with it (which is what the official NPC refinery scripts use it for) // This will find a random number from 0 - 99 and if that is equal to or more -// than the value recoverd by this command it will go to L_Fail +// than the value recovered by this command it will go to L_Fail if (getequippercentrefinery(EQI_HAND_L)<=rand(100)) goto L_Fail; --------------------------------------- @@ -4644,7 +4644,7 @@ a maximum of 5 slots by default. Example: - // Gives the player oppurtunity to buy 4 different kinds of items. + // Gives the player opportunity to buy 4 different kinds of items. buyingstore 4; --------------------------------------- @@ -5384,7 +5384,7 @@ invoking character. Monster name and mob id obey the same rules as the one given at the beginning of this document for permanent monster spawns with the exceptions mentioned when describing 'monster' command. -The effect for the skill 'Call Homonuculus' will be displayed centered on the +The effect for the skill 'Call Homunculus' will be displayed centered on the invoking character. Timeout is the time in milliseconds the summon lives, and is set default @@ -5734,7 +5734,7 @@ Example 3: mes "[Man]"; mes "I have been waiting "+(getnpctimer(0)/1000)+" seconds for you."; - // We divide the timer returned by 1000 to convert milleseconds to seconds. + // We divide the timer returned by 1000 to convert milliseconds to seconds. close; Example 4: diff --git a/tools/check-doc b/tools/check-doc index 4e8d036e8..4a5dccc88 100755 --- a/tools/check-doc +++ b/tools/check-doc @@ -5,7 +5,7 @@ case $1 in 'script') #find which script commands are missing from doc/script_commands.txt - echo "Missing scipt documentation for function :" + echo "Missing script documentation for function :" awk '/BUILDIN_DEF\(.*\),/ {b=match($0,"BUILDIN_DEF(.*),");c=match($0,",");print substr($0,b+12,c-b-12);}' ../src/map/script.c | xargs -I{} sh -c '! grep -Lq {} ../doc/script_commands.txt && echo {}' awk '/BUILDIN_DEF2\(.*\),/ {b=match($0,"BUILDIN_DEF2(.*),");c=match($0,",");d=match($0 ,"\",\"");print substr($0,c+2,d-c-2);}' ../src/map/script.c | xargs -I{} sh -c '! grep -Lq {} ../doc/script_commands.txt && echo {}' ;; -- cgit v1.2.3-70-g09d2