summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE.md54
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md36
-rw-r--r--.github/ISSUE_TEMPLATE/feature_request.md19
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md33
-rw-r--r--.gitlab-ci.yml48
-rw-r--r--.mailmap95
-rw-r--r--.travis.yml12
-rw-r--r--CHANGELOG.md40
-rw-r--r--CONTRIBUTING.md24
-rw-r--r--Makefile.in11
-rw-r--r--README.md20
-rw-r--r--conf/channels.conf6
-rw-r--r--conf/char/char-server.conf7
-rw-r--r--conf/groups.conf3
-rw-r--r--conf/map/battle/items.conf8
-rw-r--r--conf/map/battle/skill.conf6
-rw-r--r--conf/messages.conf7
-rwxr-xr-xconfigure5
-rw-r--r--configure.ac2
-rw-r--r--db/pre-re/item_db.conf2465
-rw-r--r--db/pre-re/skill_db.conf2
-rw-r--r--db/re/item_db.conf2465
-rw-r--r--db/re/skill_db.conf2
-rw-r--r--doc/atcommands.txt6
-rw-r--r--doc/constants.md511
-rw-r--r--doc/effect_list.md1126
-rw-r--r--doc/effect_list.txt986
-rw-r--r--doc/global_configuration.md65
-rw-r--r--doc/global_configuration.txt69
-rw-r--r--doc/item_bonus.md436
-rw-r--r--doc/item_bonus.txt444
-rw-r--r--doc/permissions.md51
-rw-r--r--doc/permissions.txt39
-rw-r--r--doc/quest_variables.md262
-rw-r--r--doc/quest_variables.txt108
-rw-r--r--doc/sample/getiteminfo.txt9
-rw-r--r--doc/script_commands.txt93
-rw-r--r--npc/cities/jawaii.txt4
-rw-r--r--npc/cities/morocc.txt2
-rw-r--r--npc/dev/test.txt16
-rw-r--r--npc/events/gdevent_aru.txt36
-rw-r--r--npc/events/gdevent_sch.txt36
-rw-r--r--npc/jobs/2-2e/SoulLinker.txt2
-rw-r--r--npc/other/Global_Functions.txt37
-rw-r--r--npc/other/poring_war.txt4
-rw-r--r--npc/quests/kiel_hyre_quest.txt12
-rw-r--r--npc/quests/newgears/2004_headgears.txt16
-rw-r--r--npc/quests/quests_13_1.txt50
-rw-r--r--npc/quests/quests_airship.txt134
-rw-r--r--npc/quests/quests_hugel.txt4
-rw-r--r--npc/quests/quests_louyang.txt2
-rw-r--r--npc/quests/quests_moscovia.txt14
-rw-r--r--npc/quests/quests_rachel.txt8
-rw-r--r--npc/quests/seals/brisingamen_seal.txt4
-rw-r--r--npc/quests/thana_quest.txt14
-rw-r--r--npc/re/cities/dewata.txt8
-rw-r--r--npc/re/events/halloween_2014.txt18
-rw-r--r--npc/re/instances/BangungotHospital.txt10
-rw-r--r--npc/re/instances/WolfchevLaboratory.txt54
-rw-r--r--npc/re/jobs/2e/kagerou_oboro.txt14
-rw-r--r--npc/re/jobs/3-1/archbishop.txt2
-rw-r--r--npc/re/jobs/3-2/genetic.txt12
-rw-r--r--npc/re/jobs/3-2/sura.txt4
-rw-r--r--npc/re/jobs/novice/academy.txt10
-rw-r--r--npc/re/quests/eden/eden_iro.txt4
-rw-r--r--npc/re/quests/quests_brasilis.txt6
-rw-r--r--npc/re/quests/quests_malaya.txt24
-rw-r--r--sql-files/item_db.sql492
-rw-r--r--sql-files/item_db_re.sql493
-rw-r--r--sql-files/main.sql2
-rw-r--r--src/char/char.c69
-rw-r--r--src/common/HPMDataCheck.h5
-rw-r--r--src/common/Makefile.in16
-rw-r--r--src/common/console.c21
-rw-r--r--src/common/core.c42
-rw-r--r--src/common/memmgr.h5
-rw-r--r--src/common/mmo.h3
-rw-r--r--src/common/socket.c27
-rw-r--r--src/config/const.h5
-rw-r--r--src/map/achievement.c73
-rw-r--r--src/map/achievement.h4
-rw-r--r--src/map/atcommand.c36
-rw-r--r--src/map/battle.c37
-rw-r--r--src/map/battle.h6
-rw-r--r--src/map/channel.c17
-rw-r--r--src/map/channel.h1
-rw-r--r--src/map/clif.c246
-rw-r--r--src/map/clif.h6
-rw-r--r--src/map/guild.c5
-rw-r--r--src/map/map.c37
-rw-r--r--src/map/map.h3
-rw-r--r--src/map/messages_main.h131
-rw-r--r--src/map/messages_re.h93
-rw-r--r--src/map/messages_zero.h48
-rw-r--r--src/map/npc.c2
-rw-r--r--src/map/packets.h64
-rw-r--r--src/map/packets_keys_main.h866
-rw-r--r--src/map/packets_keys_zero.h7
-rw-r--r--src/map/packets_shuffle_main.h10
-rw-r--r--src/map/packets_shuffle_re.h9
-rw-r--r--src/map/packets_shuffle_zero.h7
-rw-r--r--src/map/packets_struct.h122
-rw-r--r--src/map/pc.c46
-rw-r--r--src/map/pc.h2
-rw-r--r--src/map/quest.c27
-rw-r--r--src/map/quest.h1
-rw-r--r--src/map/script.c462
-rw-r--r--src/map/script.h6
-rw-r--r--src/map/skill.c53
-rw-r--r--src/map/skill.h1
-rw-r--r--src/map/status.c23
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Defs.inc30
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc44
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc11
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc306
-rw-r--r--src/tool/Makefile.in88
-rwxr-xr-xtools/mobdbconverter.py4
-rw-r--r--tools/mobskilldbconverter.py2
-rw-r--r--tools/petdbconverter.py2
-rw-r--r--tools/utils/common.py7
120 files changed, 11151 insertions, 3110 deletions
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
deleted file mode 100644
index c661cbd47..000000000
--- a/.github/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,54 +0,0 @@
-[//]: # (**********************************)
-[//]: # (** Fill in the following fields **)
-[//]: # (**********************************)
-
-[//]: # (Note: Lines beginning with syntax such as this one, are comments and will not be visible in your report!)
-
-### Issue Prelude
-
-[//]: # (Please complete these mandatory steps and check the following boxes by putting an `x` inside the brackets _before_ filing your issue)
-
-- [ ] I have not modified the source prior to reproducing this issue.
-- [ ] I am using the latest version of Hercules.
-- [ ] I am aware that this report will be closed or deleted if it becomes obvious that I am stating the false.
-
-### Description
-
-[//]: # (Description of the problem or issue at length.)
-[//]: # (Please specify any battle configuration related to the components of this issue that have been changed from the default values. This will allow quicker determination of the cause of the problem.)
-
-### Current Behavior
-
-[//]: # (Describe at length what you noticed during your analysis.)
-[//]: # (If this is a crash, post the core/stack-dump or crash-log to https://gist.github.com/)
-[//]: # (If you are referencing from sources such as iROwiki or ratemyserver.net, please quote specific information rather than providing the links alone.)
-
-### Expected Behavior
-
-[//]: # (Tell us what should happen instead.)
-
-### Steps To Reproduce The Issue
-
-1. Step 1
-2. Step 2
-3. Step 3
-
-**Branch(es):**
-- [ ] master
-- [ ] other
-
-**Hercules rev. hash/commit:**
-
-Git revision src:
-
-[//]: # (Copy the first 3 lines of the login-server, char-server or map-server startup.)
-[//]: # ( [Info]: Hercules 64-bit for Mac OS X )
-[//]: # ( [Info]: Git revision src: 'a5918b329ca0826b04dca32ede783586403f58db' )
-[//]: # ( [Info]: Git revision scripts: 'a5918b329ca0826b04dca32ede783586403f58db' )
-
-### Operating System
-
-[//]: # (Mac OS X 10.12.3 16D32 [x86_64])
-[//]: # (Thank you for adhering to this process! It ensures your issue is resolved quickly and that neither your nor our time is needlessly wasted.)
-[//]: # (This template is for problem reports. For other types of report, edit it accordingly.)
-[//]: # (For fixes please create a Pull Request.)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..95da04be6
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,36 @@
+---
+name: Bug report
+about: Create a report to help us improve
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Use skill '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**System specs (please complete the following information):**
+ - OS: [e.g. windows 10 version 1809, macOS 10.14]
+ - Hercules Version [e.g. v2018.09.22]
+ - Mode: [renewal or pre-renewal?]
+ - Packet version: [e.g. 20101130]
+ - Client type: [e.g. main, RE, zero, sak, ad]
+
+**Plugins used or source modifications**
+If you are using any plugins besides the ones that come bundled with Hercules,
+please enumerate them here.
+
+**Additional context**
+Add any other context about the problem here. If the bug report is about a
+crash, please attach the core/stack-dump or crash-log, if any.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 000000000..654402b7f
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,19 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always
+frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've
+considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index c62641f08..48ddba651 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,37 +1,28 @@
-[//]: # (**********************************)
-[//]: # (** Fill in the following fields **)
-[//]: # (**********************************)
+<!-- Before you continue, please change "base: stable" to "base: master" and
+ enable the setting "[√] Allow edits from maintainers." when creating your
+ pull request if you have not already enabled it. -->
-[//]: # (Note: Lines beginning with syntax such as this one, are comments and will not be visible in your report!)
+<!-- Note: Lines with this <!-- syntax are comments and will not be visible in
+ your pull request. You can safely ignore or remove them. -->
### Pull Request Prelude
-[//]: # (Thank you for working on improving Hercules!)
-
-[//]: # (Please complete these steps and check the following boxes by putting an `x` inside the brackets _before_ filing your Pull Request.)
+<!-- Thank you for working on improving Hercules! -->
+<!-- Please complete these steps and check the following boxes by putting an `x`
+ inside the [brackets] before filing your Pull Request. -->
- [ ] I have followed [proper Hercules code styling][code].
- [ ] I have read and understood the [contribution guidelines][cont] before making this PR.
-- [ ] I am aware that this PR will be closed if the above-mentioned criteria are not fulfilled.
+- [ ] I am aware that this PR may be closed if the above-mentioned criteria are not fulfilled.
### Changes Proposed
-[//]: # (Describe at length, the changes that this pull request makes.)
-
-**Affected Branches:**
-
-[//]: # (Master? Slave?)
-
-**Issues addressed:**
-
-[//]: # (Issue Tracker Number if any.)
+<!-- Describe the changes that this pull request makes. -->
-### Known Issues and TODO List
+**Issues addressed:** <!-- Write here the issue number, if any. -->
-[//]: # (Insert checklist here)
-[//]: # (Syntax: - [ ] Checkbox)
-[//]: # (**NOTE** Enable the setting "[√] Allow edits from maintainers." when creating your pull request if you have not already enabled it.)
+<!-- You can safely ignore the links below: -->
[cont]: https://github.com/HerculesWS/Hercules/blob/master/CONTRIBUTING.md
[code]: https://github.com/HerculesWS/Hercules/wiki/Coding-Style
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d9a156298..fb038ea66 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -124,14 +124,22 @@ zero-2018:clang-4.0:
pre_re:clang-5.0:
<<: *branch_exceptions
- <<: *prerequisites
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - echo 'deb http://ftp.debian.org/debian stretch-backports main' >> /etc/apt/sources.list
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -t stretch-backports -y -qq clang-5.0
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok $SQLHOST
+ - ./tools/ci/travis.sh getplugins || true
stage: secondary
- image: debian:unstable
+ image: debian:stretch
services:
- - mariadb:10
+ - mariadb:10.1
variables:
<<: *base_vars
- INSTALL_PACKAGES: clang-5.0 mariadb-client libmariadbclient-dev-compat
+ INSTALL_PACKAGES: mariadb-client libmariadbclient-dev-compat
SQLHOST: mariadb
script:
- ./tools/ci/travis.sh build CC=clang-5.0 --enable-debug --enable-Werror --enable-buildbot --disable-renewal
@@ -139,14 +147,22 @@ pre_re:clang-5.0:
re:clang-5.0:
<<: *branch_exceptions
- <<: *prerequisites
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - echo 'deb http://ftp.debian.org/debian stretch-backports main' >> /etc/apt/sources.list
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -t stretch-backports -y -qq clang-5.0
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok $SQLHOST
+ - ./tools/ci/travis.sh getplugins || true
stage: secondary
- image: debian:unstable
+ image: debian:stretch
services:
- - mariadb:10
+ - mariadb:10.1
variables:
<<: *base_vars
- INSTALL_PACKAGES: clang-5.0 mariadb-client libmariadbclient-dev-compat
+ INSTALL_PACKAGES: mariadb-client libmariadbclient-dev-compat
SQLHOST: mariadb
script:
- ./tools/ci/travis.sh build CC=clang-5.0 --enable-debug --enable-Werror --enable-buildbot
@@ -154,14 +170,22 @@ re:clang-5.0:
zero-2018:clang-5.0:
<<: *branch_exceptions
- <<: *prerequisites
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - echo 'deb http://ftp.debian.org/debian stretch-backports main' >> /etc/apt/sources.list
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -t stretch-backports -y -qq clang-5.0
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok $SQLHOST
+ - ./tools/ci/travis.sh getplugins || true
stage: clients
- image: debian:unstable
+ image: debian:stretch
services:
- - mariadb:10
+ - mariadb:10.1
variables:
<<: *base_vars
- INSTALL_PACKAGES: clang-5.0 mariadb-client libmariadbclient-dev-compat
+ INSTALL_PACKAGES: mariadb-client libmariadbclient-dev-compat
SQLHOST: mariadb
script:
- ./tools/ci/travis.sh build CC=clang-5.0 --enable-debug --enable-Werror --enable-buildbot --enable-packetver-zero --enable-packetver=20180511
diff --git a/.mailmap b/.mailmap
index 0d3aea1ac..4a9b49d2d 100644
--- a/.mailmap
+++ b/.mailmap
@@ -7,3 +7,98 @@
<joseph.tk.ea@gmail.com> <j-tkay@54d463be-8e91-2dee-dedb-b68131a5f0ec>
<ind@henn.et> <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>
<Kenpachi.Developer@gmx.de> <kenpachi2k11@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<umage@netvor.sk> <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<ai4rei@users.noreply.github.com> <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<Kenji.Ito@gmx.de> <Playtester@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<masao@gmx.ch> <masao87@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<piotr.halaczkiewicz@gmail.com> <gepard1984@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<piotr.halaczkiewicz@gmail.com> <Gepard@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<missxantara@gmail.com> <xantara@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<lightaisme@gmail.com> <glighta@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<brianluau@users.noreply.github.com> <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<harrison@isabarwon.com> <calciumkid@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<fw@f-ws.de> <blacksirius@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<fw@f-ws.de> <sirius@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<jmish1987@gmail.com> <jmanfffreak@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<paradox924x@gmail.com> <Paradox924x@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<paradox924x@gmail.com> <Paradox924X@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<yomanda@gmail.com> <Yommy@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<masterofmuppets89@gmail.com> <MasterOfMuppets@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<flaviojs2005@gmail.com> <flaviojs@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<flaviojs2005@gmail.com> <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<flaviojs2005@gmail.com> <flaviojs2005@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<macabu.matheus@gmail.com> <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<Daegaladh@users.noreply.github.com> <daegaladh@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<greenboxal@gmail.com> <greenboxal2@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+<malufett.eat.my.binaries@gmail.com> <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+
+# old aliases
+
+<haru@dotalux.com> <haru@originsro.org>
+<ind@henn.et> <int@henn.et>
+<ind@henn.et> <notind@gmail.com>
+<ind@henn.et> <shennetsind@users.noreply.github.com>
+<dastgirp@gmail.com> <dastgir@users.noreply.github.com>
+<dastgirp@gmail.com> <dastgirpojee@rocketmail.com>
+<michieru-kun@hotmail.com> <Michieru@users.noreply.github.com>
+<michieru-kun@hotmail.com> <michieru@0-mail.com>
+<jedzkie13@rocketmail.com> <Jedzkie@users.noreply.github.com>
+<jedzkie13@rocketmail.com> <eikzdej@gmail.com>
+<jedzkie13@rocketmail.com> <jedzkie999@gmail.com>
+<Equinox1991@gmail.com> <Emistry@users.noreply.github.com>
+<gauvain.dauchy@free.fr> <alige@users.noreply.github.com>
+<guilherme.menaldo@outlook.com> <guilherme-gm@users.noreply.github.com>
+<dev@herc.ws> <Hercules@efficiently.awesome>
+<streusel@gravity.co.kr> <advance_me@hotmail.de>
+<streusel@gravity.co.kr> <m.me1@live.de>
+<ibrahem.h.basyone@gmail.com> <hemagx2@gmail.com>
+<Asheraf@users.noreply.github.com> <acheraf1998@gmail.com>
+<sagunkho@hotmail.com> <sagunxp@gmail.com>
+<git@gumi.ca> <mekolat@users.noreply.github.com>
+
+
+
+
+
+# missing from github:
+# - skotlex
+# - L0ne_W0lf
+# - Lupus
+# - celest
+# - Lance
+# - zephyrus
+# - amber
+# - Inkfish
+# - toms
+# - shadowlady
+# - codemaster
+# - Vicious
+# - samuray22
+# - Kevin
+# - eathenabot
+# - shadow
+# - mc_cameri
+# - evera
+# - SinSloth
+# - epoque11
+# - DracoRPG
+# - sketchyphoenix
+# - littlewolf
+# - eaac
+# - ajarn
+# - wizputer
+# - Nasedo
+# - valaris
+# - blackhole89
+# - protimus
+# - Komurka
+# - Poki#3
+# - cookiecrumbs
+# - Zido
+# - akrus
+# - markzd
+# - xazax-hun
+# - lordttseven
+# - musahiden
+# - Aria
+# - og2
diff --git a/.travis.yml b/.travis.yml
index fc28a5aef..80cf67145 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -38,7 +38,7 @@ matrix:
- compiler: false
include:
- compiler: gcc
- env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20180919 --enable-packetver-re --enable-buildbot" HPM="1"
+ env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20181031 --enable-packetver-re --enable-buildbot" HPM="1"
addons:
apt:
sources:
@@ -50,7 +50,7 @@ matrix:
- libxml-sax-perl
- libxml-parser-perl
- compiler: clang
- env: CONFIGURE_FLAGS="--enable-debug CC=clang-5.0 --enable-Werror --enable-packetver=20180919 --enable-packetver-re --enable-buildbot"
+ env: CONFIGURE_FLAGS="--enable-debug CC=clang-5.0 --enable-Werror --enable-packetver=20181031 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
@@ -68,7 +68,7 @@ matrix:
packages:
- clang-5.0
- compiler: clang
- env: CONFIGURE_FLAGS="--enable-debug CC=clang-4.0 --enable-Werror --enable-packetver=20180919 --enable-packetver-re --enable-buildbot"
+ env: CONFIGURE_FLAGS="--enable-debug CC=clang-4.0 --enable-Werror --enable-packetver=20181031 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
@@ -90,11 +90,11 @@ matrix:
- compiler: clang
env: CONFIGURE_FLAGS="--enable-debug --disable-renewal --enable-Werror --enable-buildbot"
- compiler: gcc
- env: CONFIGURE_FLAGS="--enable-debug --enable-Werror --enable-packetver=20180919 --enable-packetver-re --enable-buildbot"
+ env: CONFIGURE_FLAGS="--enable-debug --enable-Werror --enable-packetver=20181031 --enable-packetver-re --enable-buildbot"
- compiler: gcc
env: CONFIGURE_FLAGS="--enable-debug --disable-renewal --enable-Werror --enable-buildbot"
- compiler: gcc
- env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-5 --disable-manager --enable-Werror --enable-packetver=20180919 --enable-packetver-re --enable-buildbot"
+ env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-5 --disable-manager --enable-Werror --enable-packetver=20181031 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
@@ -110,7 +110,7 @@ matrix:
packages:
- gcc-5
- compiler: gcc
- env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20180919 --enable-packetver-re --enable-buildbot"
+ env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20181031 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 620281b74..c13ada3ce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,45 @@ and this project does not adhere to [Semantic Versioning](http://semver.org/spec
If you are reading this in a text editor, simply ignore this section
-->
+## [v2018.10.21] `October 21 2018`
+
+### Added
+
+- Unknown packets are now printed to the console, when the option to dump them to disk (`DUMP_UNKNOWN_PACKET`) is disabled. (part of #2226)
+- Added/updated packets, encryption keys and message tables for clients up to 2018-10-02 (#2226)
+- Implemented the script command `removespecialeffect()`. (part of #2226)
+- Implemented the atcommand `@camerainfo` and the script commands `camerainfo()` and `changecamera()`. (part of #2226)
+- Added options to enforce a minimum buy/sell price for NPC items, defaulting to the official values of 1 and 0, respectively. (#2208, issue #2177)
+- Added documentation for the script command `achievement_progress()`. (#2249)
+- Added/updated packets, encryption keys and message tables for clients up to 2018-10-17 (#2278)
+- Implemented script command `itempreview()`. (part of #2278)
+- Added placeholders for 493 items from kRO. (#2280)
+
+### Changed
+
+- Converted the effect list documentation to Markdown (`effect_list.md`). (#2230, issue #2215)
+- Improved the GitHub pull request and issue templates. (#2237)
+- Allowed `getd()` to work with constants and params (although this is a discouraged practice). (#2240)
+- Converted the permissions documentation to Markdown (`permissions.md`). (#2253)
+- Extended `getiteminfo()` and `setitmeinfo()` with the trade restriction information (`ITEMINFO_TRADE`). The `ITR_*` constants are made available to the script engine, and the global function `F_GetTradeRestriction()` has been provided, for convenience. (#2172)
+- Converted the global configuration documentation to Markdown (`global_configuration.md`). (#2229, issue #2216)
+- Removed duplicated code from the `showevent()` icon validation. (#2250)
+- Extended `setquestinfo()` with a mercenary class option (`QINFO_MERCENARY_CLASS`). (#2251)
+- Removed duplicated/diverging code from the `@bodystyle` command. (#2264)
+- Removed duplicated code for `prompt()`, now sharing the same function as `select()`. The new constants `MAX_MENU_OPTIONS` and `MAX_MENU_LENGTH` have been provided. (#2279)
+
+### Fixed
+
+- Fixed an assertion failure in the zeny achievement, when the amount of zeny is zero. (#2227)
+- Fixed issues when setting a char or account variable of another player. (#2238, issue #2212)
+- Fixed a failed assertion when a character is invited to and joins a guild. (#2235, issue #2210)
+- Fixed a failed assertion when `sc_end()` is called for `SC_BERSERK`. (#2239, issue #1388)
+- Fixed display issues with homunculus in old clients. (#2252)
+- Fixed damage reflection (through Reflect Shield, High Orc Card, etc) to work on traps. The old, unofficial, behavior can be restored through the battle configuration flag `trap_reflect`. (#2182, issue #1926)
+- Fixed Blast Mine and Claymore Trap damage, that wasn't getting split by the number of targets. (#2182, issue #1900)
+- Fixed an assertion failure when refining an item fails. (#2234, issue #2217)
+- Fixed the gitlab-ci builds with clang-5.0, which was removed from Debian testing/unstable. (58afe047cd)
+
## [v2018.09.23] `September 23 2018`
### Added
@@ -431,6 +470,7 @@ If you are reading this in a text editor, simply ignore this section
- New versioning scheme and project changelogs/release notes (#1853)
[Unreleased]: https://github.com/HerculesWS/Hercules/compare/stable...master
+[v2018.10.21]: https://github.com/HerculesWS/Hercules/compare/v2018.09.23...v2018.10.21
[v2018.09.23]: https://github.com/HerculesWS/Hercules/compare/v2018.08.26+1...v2018.09.23
[v2018.08.26+1]: https://github.com/HerculesWS/Hercules/compare/v2018.08.26...v2018.08.26+1
[v2018.08.26]: https://github.com/HerculesWS/Hercules/compare/v2018.07.29+2...v2018.08.26
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 94544487e..76f73698a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -7,14 +7,14 @@ follow so that we can have a chance of keeping on top of things.
## Hercules Core vs Modules
-Due to the nature of the project, and the wide range of different applications
-it has, we provide a plugin interface, to keep the core clean of unnecessary
+Due to the nature of the project and the wide range of different applications
+it has, we provide a plugin interface to keep the core clean of unnecessary
features.
Generally, bugfixes and improvements to existing code, as well as the
implementation of official Ragnarok Online features and content, should be part
-of the Hercules core, while custom functionalities should be moved to plugins,
-to avoid burdening the core with code potentially useful only to a small subset
+of the Hercules core while custom functionalities should be moved to plugins
+to avoid burdening the core with code that is potentially useful to only a small subset
of users.
If you are unsure of whether your contribution should be implemented as a
@@ -32,14 +32,13 @@ or drop us an email at dev@herc.ws
## Submitting an Issue on GitHub
-When you open an issue, in order for it to be helpful, you should include as
-much description as possible of the issue you are observing or feature you're
-suggesting.
+When you open an issue, you should include as much description as possible of
+the issue you are observing or feature you're suggesting.
If you're reporting an issue, you should describe your setup, and provide the
output of `./map-server --version`.
-If you report a crash, make sure that you include a backtrace of the crash,
+If you report a crash, make sure that you include a backtrace of the crash
generated with either gdb or Visual Studio (depending on your build
environment). For the backtrace to be useful, you need to compile Hercules in
debug mode.
@@ -51,10 +50,9 @@ debug mode.
* To quickly create a topic branch based on master; `git checkout -b
my_contribution master`. Please avoid working directly on the
`master` branch.
-* Make commits of logical units. Each commit you submit, must be atomic and
- complete. **Each commit must do one thing, and do it well.** For separate
- fixes, make separate commits. Even if this causes commits that only affect
- one line of code.
+* Make commits of logical units. Each commit you submit must be atomic and
+ complete. **Each commit must do one thing, and do it well.** Make separate commits
+ for separate fixes, even if this causes commits that only affect one line of code.
* Check for unnecessary whitespace with `git diff --check` before committing.
* Make sure you follow our [coding style
guidelines](https://github.com/HerculesWS/Hercules/wiki/Coding-Style).
@@ -75,7 +73,7 @@ necessary to create a new issue in GitHub.
* Submit a pull request to the repository in the HerculesWS organization.
* The dev team looks at Pull Requests on a weekly basis, compatibly with the
amount of patches in review queue and current workload.
-* After feedback has been given we expect responses within two weeks. After two
+* After feedback has been given, we expect responses within two weeks. After two
weeks we may close the pull request if it isn't showing any activity.
## Other ways to help
diff --git a/Makefile.in b/Makefile.in
index 3de5e0bf3..e85c1bb96 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -23,7 +23,7 @@
HAVE_MYSQL=@HAVE_MYSQL@
ifeq ($(HAVE_MYSQL),yes)
- ALL_DEPENDS=common_sql login_sql char_sql map_sql tools sysinfo | import
+ ALL_DEPENDS=common_sql login_sql char_sql map_sql sysinfo | import
SQL_DEPENDS=common_sql login_sql char_sql map_sql sysinfo | import
COMMON_SQL_DEPENDS=mt19937ar libconfig sysinfo
LOGIN_SQL_DEPENDS=mt19937ar libconfig common_sql sysinfo
@@ -53,7 +53,7 @@ HAVE_DOXYGEN=@HAVE_DOXYGEN@
MF_TARGETS = Makefile $(addsuffix /Makefile, src/common 3rdparty/mt19937ar \
3rdparty/libconfig src/char src/login src/map src/plugins \
- src/tool src/test tools/HPMHookGen tools/doxygen)
+ src/test tools/HPMHookGen tools/doxygen)
CC = @CC@
export CC
@@ -65,7 +65,6 @@ export CC
login_sql \
char_sql \
map_sql \
- tools \
plugins \
import \
test \
@@ -120,10 +119,6 @@ map_sql: $(MAP_SQL_DEPENDS) src/map/Makefile
@echo " MAKE $@"
@$(MAKE) -C src/map sql
-tools: $(TOOLS_DEPENDS) src/tool/Makefile
- @echo " MAKE $@"
- @$(MAKE) -C src/tool
-
test: src/test/Makefile
@echo " MAKE $@"
@$(MAKE) -C src/test
@@ -159,7 +154,6 @@ clean buildclean: $(MF_TARGETS)
@$(MAKE) -C src/char $@
@$(MAKE) -C src/map $@
@$(MAKE) -C src/plugins $@
- @$(MAKE) -C src/tool $@
@$(MAKE) -C src/test $@
@$(MAKE) -C tools/HPMHookGen $@
@$(MAKE) -C tools/doxygen $@
@@ -188,7 +182,6 @@ help: Makefile
@echo "'login_sql' - builds login server"
@echo "'char_sql' - builds char server"
@echo "'map_sql' - builds map server"
- @echo "'tools' - builds all the tools in src/tools"
@echo "'import' - builds conf/import folder from the template conf/import-tmpl"
@echo "'all' - builds all the above targets"
@echo "'sql' - builds sql servers (targets 'common_sql' 'login_sql' 'char_sql'"
diff --git a/README.md b/README.md
index 6a543cea6..1798bf394 100644
--- a/README.md
+++ b/README.md
@@ -29,17 +29,17 @@ Project Info:
Table of Contents
---------
-* 1 What is Hercules?
-* 2 Prerequisites
-* 3 Installation
-* 4 Troubleshooting
-* 5 Helpful Links
-* 6 More Documentation
+1. What is Hercules?
+2. Prerequisites
+3. Installation
+4. Troubleshooting
+5. Helpful Links
+6. More Documentation
What is Hercules?
-----------------
Hercules is a collaborative software development project revolving around the
-creation of a robust Massively Multiplayer Online Role Playing Game (MMORPG)
+creation of a robust Massively Multiplayer Online Role-Playing Game (MMORPG)
server package. Written in C, the program is very versatile and provides NPCs,
warps and modifications. The project is jointly managed by a group of
volunteers located around the world as well as a tremendous community providing
@@ -64,7 +64,7 @@ Platforms](https://github.com/HerculesWS/Hercules/wiki/Supported-Platforms) wiki
- git
- gcc or clang (version 4.5 or newer, recommended 5.0 or newer)
- GNU make
- - mysql (`mysql-server`) or mariadb
+ - MySQL (`mysql-server`) or MariaDB
- libmysqlclient (`mysql-devel`)
- zlib (`zlib-devel`)
- libpcre (`pcre-devel`)
@@ -137,7 +137,7 @@ Troubleshooting
---------------
If you're having problems with starting your server, the first thing you should
-do is check what's happening on your consoles. More often that not, all support
+do is check what's happening on your consoles. More often than not, all support
issues can be solved simply by looking at the error messages given.
Examples:
@@ -218,7 +218,7 @@ the weather. For an in-depth explanation, please see /doc/atcommands.txt
The Hercules emulator has a permission system that enables certain groups of
players to perform certain actions, or have access to certain visual
enhancements or in-game activity. To see what permissions are available, they
-are detailed in /doc/permissions.txt
+are detailed in /doc/permissions.md
### Others
There are more files in the /doc/ directory that will help you to create scripts
diff --git a/conf/channels.conf b/conf/channels.conf
index 9c2b567f4..c8f14aa27 100644
--- a/conf/channels.conf
+++ b/conf/channels.conf
@@ -64,5 +64,11 @@ chsys: (
irc_flood_protection_enabled: true /* Whether to enable anti-flood protection for outgoing messages */
irc_flood_protection_rate: 1000 /* The delay between messages during anti-flood protection (milliseconds) */
irc_flood_protection_burst: 3 /* The maximum number of messages that are sent at once burst size before triggering the anti-flood protection */
+
+ // @channel setopt MessageDelay <delay>
+ // Sets the maximum amount of message delay (in seconds) allowed for a channel.
+ // Default: 10
+ // Max: 255
+ channel_opt_msg_delay: 10
}
)
diff --git a/conf/char/char-server.conf b/conf/char/char-server.conf
index 76bd5e359..0f07731fb 100644
--- a/conf/char/char-server.conf
+++ b/conf/char/char-server.conf
@@ -50,7 +50,7 @@ char_configuration: {
// Server Communication username and password.
userid: "s1"
passwd: "p1"
-
+
// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
@@ -162,6 +162,11 @@ char_configuration: {
// Set the letters/symbols that you want use with the 'char_name_option' option.
// Note: Don't add spaces unless you mean to add 'space' to the list.
name_letters: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
+
+ // Block renaming if character is in a guild or a party? (BOOL)
+ // Athena: false Aegis: true
+ // This check is imposed by Aegis to avoid dead entries in databases and is not needed on Hercules, as we clear data properly
+ use_aegis_rename: false
}
deletion: {
diff --git a/conf/groups.conf b/conf/groups.conf
index 3f0c34ffb..5756a3412 100644
--- a/conf/groups.conf
+++ b/conf/groups.conf
@@ -47,7 +47,7 @@ Requires 'log_commands' to be enabled in 'conf/logs.conf'.
A group of settings
<permission> : <bool>
If a permission is not included, false is assumed.
-For a full list of available permissions, see: doc/permissions.txt
+For a full list of available permissions, see: doc/permissions.md
<inherit>
A list of group names that given group will inherit commands and permissions
@@ -126,6 +126,7 @@ groups: (
go: true
breakguild: true
channel: true
+ camerainfo: true
}
permissions: {
}
diff --git a/conf/map/battle/items.conf b/conf/map/battle/items.conf
index 144e04ea4..e834b80f6 100644
--- a/conf/map/battle/items.conf
+++ b/conf/map/battle/items.conf
@@ -123,3 +123,11 @@ boarding_halter_speed: 25
// Allow to use items when the storage is open?
// Official: false (Default)
storage_use_item: false
+
+// Minimum item buy price at shop
+// Default: 1
+min_item_buy_price: 1
+
+// Minimum item sell price at shop
+// Default: 0
+min_item_sell_price: 0
diff --git a/conf/map/battle/skill.conf b/conf/map/battle/skill.conf
index d258567a0..64bba68b5 100644
--- a/conf/map/battle/skill.conf
+++ b/conf/map/battle/skill.conf
@@ -307,6 +307,12 @@ dancing_weaponswitch_fix: true
// 1: Traps in GvG make player stop moving right when stepping over it.
skill_trap_type: 0
+// Trap Reflect
+// Whether the damage from traps must be reflected (for example by Reflect Shield or High Orc Card)?
+// true: Aegis - traps are reflected
+// false: Athena - traps are not reflected
+trap_reflect: true
+
// Max Possible Level of Monster skills
// Note: If your MVPs are too tough, reduce it to 10.
mob_max_skilllvl: 100
diff --git a/conf/messages.conf b/conf/messages.conf
index f986e4649..2f790b13f 100644
--- a/conf/messages.conf
+++ b/conf/messages.conf
@@ -448,7 +448,8 @@
// Return pet to egg message
451: You can't return your pet because your inventory is full.
-//452-497 FREE
+452: usage @camerainfo range rotation latitude
+//453-497 FREE
// Messages of others (not for GM commands)
// ----------------------------------------
@@ -1494,11 +1495,11 @@
1448: -- Available options
1449: option '%s' is already enabled, if you'd like to disable it type '@channel opt %s 0'
1450: option '%s' is now enabled for channel '%s'
-1451: value '%d' for option '%s' is out of range (limit is 0-10)
+1451: value '%d' for option '%s' is out of range (limit is 0-%d)
1452: option '%s' is now enabled for channel '%s' with %d seconds
1453: option '%s' is now disabled for channel '%s'
1454: option '%s' is not enabled on channel '%s'
-1455: You're talking too fast!
+1455: You cannot send a message to this channel for another %d seconds.
1456: -- %s ban <channel name> <character name>
1457: - bans <character name> from <channel name> channel
1458: -- %s banlist <channel name>
diff --git a/configure b/configure
index 7296be978..f585f787f 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.ac 150dff284.
+# From configure.ac 26efcebad.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69.
#
@@ -2199,7 +2199,7 @@ ac_config_files="$ac_config_files 3rdparty/mt19937ar/Makefile 3rdparty/libconfig
ac_config_files="$ac_config_files src/char/Makefile src/login/Makefile"
-ac_config_files="$ac_config_files src/map/Makefile src/plugins/Makefile src/tool/Makefile"
+ac_config_files="$ac_config_files src/map/Makefile src/plugins/Makefile"
ac_config_files="$ac_config_files src/test/Makefile"
@@ -10486,7 +10486,6 @@ do
"src/login/Makefile") CONFIG_FILES="$CONFIG_FILES src/login/Makefile" ;;
"src/map/Makefile") CONFIG_FILES="$CONFIG_FILES src/map/Makefile" ;;
"src/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/Makefile" ;;
- "src/tool/Makefile") CONFIG_FILES="$CONFIG_FILES src/tool/Makefile" ;;
"src/test/Makefile") CONFIG_FILES="$CONFIG_FILES src/test/Makefile" ;;
"tools/HPMHookGen/Makefile") CONFIG_FILES="$CONFIG_FILES tools/HPMHookGen/Makefile" ;;
"tools/doxygen/Makefile") CONFIG_FILES="$CONFIG_FILES tools/doxygen/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 2aad9d7e7..9e88b618b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,7 +27,7 @@ AC_CONFIG_SRCDIR([src/common/cbasetypes.h])
AC_CONFIG_FILES([Makefile src/common/Makefile])
AC_CONFIG_FILES([3rdparty/mt19937ar/Makefile 3rdparty/libconfig/Makefile])
AC_CONFIG_FILES([src/char/Makefile src/login/Makefile])
-AC_CONFIG_FILES([src/map/Makefile src/plugins/Makefile src/tool/Makefile])
+AC_CONFIG_FILES([src/map/Makefile src/plugins/Makefile])
AC_CONFIG_FILES([src/test/Makefile])
AC_CONFIG_FILES([tools/HPMHookGen/Makefile])
AC_CONFIG_FILES([tools/doxygen/Makefile])
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf
index 3f3b6d622..a929a596d 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -9503,6 +9503,11 @@ item_db: (
bonus bStr,10;
">
},
+{
+ Id: 1326
+ AegisName: "War_Axe_IL"
+ Name: "War_Axe_IL"
+},
//== Two-Handed Axes =======================================
{
@@ -18245,6 +18250,26 @@ item_db: (
bonus2 bAddSize,Size_Large,40;
">
},
+{
+ Id: 1846
+ AegisName: "Combo_Battle_Glove_IL"
+ Name: "Combo_Battle_Glove_IL"
+},
+{
+ Id: 1848
+ AegisName: "Rebeginer_SR_Nuckle"
+ Name: "Rebeginer_SR_Nuckle"
+},
+{
+ Id: 1862
+ AegisName: "Burning_Knuckle_OS"
+ Name: "Burning_Knuckle_OS"
+},
+{
+ Id: 1864
+ AegisName: "Evt_Iron_Nail_K"
+ Name: "Evt_Iron_Nail_K"
+},
//== Instruments ===========================================
{
@@ -19873,6 +19898,26 @@ item_db: (
bonus bInt,6;
">
},
+{
+ Id: 2039
+ AegisName: "Wizardy_Staff_IL"
+ Name: "Wizardy_Staff_IL"
+},
+{
+ Id: 2046
+ AegisName: "Rebeginer_WL_Staff"
+ Name: "Rebeginer_WL_Staff"
+},
+{
+ Id: 2051
+ AegisName: "Survival_Staff_IL"
+ Name: "Survival_Staff_IL"
+},
+{
+ Id: 2054
+ AegisName: "Evt_Iron_Staff"
+ Name: "Evt_Iron_Staff"
+},
//== Shields ===============================================
{
@@ -64849,6 +64894,11 @@ item_db: (
Type: "IT_PETARMOR"
Buy: 20
},
+{
+ Id: 10042
+ AegisName: "Dark_Mane"
+ Name: "Dark_Mane"
+},
//== Misc "Etc" Books ======================================
{
@@ -65597,6 +65647,51 @@ item_db: (
Script: <" itemheal rand(10, 40), 0; ">
},
{
+ Id: 11607
+ AegisName: "Crepe"
+ Name: "Crepe"
+},
+{
+ Id: 11608
+ AegisName: "Chocolate_Egg"
+ Name: "Chocolate_Egg"
+},
+{
+ Id: 11609
+ AegisName: "Yummy_Cookie_Egg"
+ Name: "Yummy_Cookie_Egg"
+},
+{
+ Id: 11611
+ AegisName: "Pop_Corn"
+ Name: "Pop_Corn"
+},
+{
+ Id: 11612
+ AegisName: "Aromatic_Pop_Corn"
+ Name: "Aromatic_Pop_Corn"
+},
+{
+ Id: 11614
+ AegisName: "Fresh_Milk"
+ Name: "Fresh_Milk"
+},
+{
+ Id: 11615
+ AegisName: "Sweet_Potato_"
+ Name: "Sweet_Potato_"
+},
+{
+ Id: 11620
+ AegisName: "Bearopy"
+ Name: "Bearopy"
+},
+{
+ Id: 11625
+ AegisName: "Aromatic_Pop_Corn_"
+ Name: "Aromatic_Pop_Corn_"
+},
+{
Id: 11701
AegisName: "Girl_Bunch_Of_Flower"
Name: "Girl's Bouquet"
@@ -77429,6 +77524,16 @@ item_db: (
}
Script: <" bonus bHit,-5; ">
},
+{
+ Id: 13144
+ AegisName: "Rebeginer_RL_Gun"
+ Name: "Rebeginer_RL_Gun"
+},
+{
+ Id: 13146
+ AegisName: "Calf_Deathadder"
+ Name: "Calf_Deathadder"
+},
//== Guns ==================================================
{
@@ -79274,6 +79379,21 @@ item_db: (
noauction: true
}
},
+{
+ Id: 13337
+ AegisName: "Huuma_Fluttering_Snow_IL"
+ Name: "Huuma_Fluttering_Snow_IL"
+},
+{
+ Id: 13338
+ AegisName: "Huuma_Bird_Wing_IL"
+ Name: "Huuma_Bird_Wing_IL"
+},
+{
+ Id: 13341
+ AegisName: "Rebeginer_KO_Humma"
+ Name: "Rebeginer_KO_Humma"
+},
//== More One-Handed Swords ================================
{
@@ -80053,6 +80173,26 @@ item_db: (
}
Script: <" bonus bUnbreakableWeapon,0; ">
},
+{
+ Id: 13469
+ AegisName: "Immaterial_Sword_IL"
+ Name: "Immaterial_Sword_IL"
+},
+{
+ Id: 13483
+ AegisName: "Rebeginer_GN_Sword"
+ Name: "Rebeginer_GN_Sword"
+},
+{
+ Id: 13493
+ AegisName: "Cannon_Rapier_OS"
+ Name: "Cannon_Rapier_OS"
+},
+{
+ Id: 13495
+ AegisName: "Evt_Bluefire_Sword"
+ Name: "Evt_Bluefire_Sword"
+},
//== More Cash Shop Items ==================================
{
@@ -93275,6 +93415,61 @@ item_db: (
noauction: true
}
},
+{
+ Id: 15212
+ AegisName: "YSF01_Plate"
+ Name: "YSF01_Plate"
+},
+{
+ Id: 15246
+ AegisName: "True_Hunting_Mail"
+ Name: "True_Hunting_Mail"
+},
+{
+ Id: 15247
+ AegisName: "R_Hunting_Mail"
+ Name: "R_Hunting_Mail"
+},
+{
+ Id: 15250
+ AegisName: "Rebeginer_Suits"
+ Name: "Rebeginer_Suits"
+},
+{
+ Id: 15280
+ AegisName: "S_CriticalHit_Armor"
+ Name: "S_CriticalHit_Armor"
+},
+{
+ Id: 15348
+ AegisName: "Goibne_Armor_IL"
+ Name: "Goibne_Armor_IL"
+},
+{
+ Id: 15376
+ AegisName: "Illusion_Armor_A"
+ Name: "Illusion_Armor_A"
+},
+{
+ Id: 15377
+ AegisName: "Illusion_Armor_B"
+ Name: "Illusion_Armor_B"
+},
+{
+ Id: 15383
+ AegisName: "Time_Overload_Robe"
+ Name: "Time_Overload_Robe"
+},
+{
+ Id: 15388
+ AegisName: "Schmidt_Suits"
+ Name: "Schmidt_Suits"
+},
+{
+ Id: 15389
+ AegisName: "Schmidt_Manteau"
+ Name: "Schmidt_Manteau"
+},
//== More Maces ============================================
{
@@ -93438,6 +93633,36 @@ item_db: (
Subtype: "W_MACE"
Script: <" bonus bUseSPrate, - getrefine(); ">
},
+{
+ Id: 16063
+ AegisName: "Long_Mace_IL"
+ Name: "Long_Mace_IL"
+},
+{
+ Id: 16065
+ AegisName: "Iron_Driver_IL"
+ Name: "Iron_Driver_IL"
+},
+{
+ Id: 16075
+ AegisName: "Rebeginer_NC_Mace"
+ Name: "Rebeginer_NC_Mace"
+},
+{
+ Id: 16076
+ AegisName: "Rebeginer_N2_Mace"
+ Name: "Rebeginer_N2_Mace"
+},
+{
+ Id: 16088
+ AegisName: "Saphir_Hall_OS"
+ Name: "Saphir_Hall_OS"
+},
+{
+ Id: 16089
+ AegisName: "Ultio_Spes_OS"
+ Name: "Ultio_Spes_OS"
+},
//== More Rental Boxes =====================================
{
@@ -93741,6 +93966,11 @@ item_db: (
Id: 16422
AegisName: "Baphomet_Horns_Box"
},
+{
+ Id: 16423
+ AegisName: "PoporingKey"
+ Name: "PoporingKey"
+},
*/
/*
Id: 16423
@@ -94037,6 +94267,111 @@ item_db: (
Weight: 10
Script: <" getitem(Cash_Hair_Coupon, 1); ">
},
+{
+ Id: 17774
+ AegisName: "Almighty_Plus_Box3"
+ Name: "Almighty_Plus_Box3"
+},
+{
+ Id: 17775
+ AegisName: "Almighty100_PlusBox3"
+ Name: "Almighty100_PlusBox3"
+},
+{
+ Id: 17882
+ AegisName: "Refine_Ore_Box17_Set10"
+ Name: "Refine_Ore_Box17_Set10"
+},
+{
+ Id: 17883
+ AegisName: "Refine_Ore_Box17"
+ Name: "Refine_Ore_Box17"
+},
+{
+ Id: 17884
+ AegisName: "HD_Refine_Ore_Box5"
+ Name: "HD_Refine_Ore_Box5"
+},
+{
+ Id: 17885
+ AegisName: "HD_High_Refine_Box3"
+ Name: "HD_High_Refine_Box3"
+},
+{
+ Id: 17886
+ AegisName: "Infinity_Box"
+ Name: "Infinity_Box"
+},
+{
+ Id: 17887
+ AegisName: "Infinity_10_Box"
+ Name: "Infinity_10_Box"
+},
+{
+ Id: 17894
+ AegisName: "New_Vigorgra_Package"
+ Name: "New_Vigorgra_Package"
+},
+{
+ Id: 17895
+ AegisName: "New_Vigorgra_Set"
+ Name: "New_Vigorgra_Set"
+},
+{
+ Id: 17914
+ AegisName: "2017_GStar_CostumeBox"
+ Name: "2017_GStar_CostumeBox"
+},
+{
+ Id: 17923
+ AegisName: "Refine_Ore_Box18"
+ Name: "Refine_Ore_Box18"
+},
+{
+ Id: 17924
+ AegisName: "Refine_Ore_Box18_Set10"
+ Name: "Refine_Ore_Box18_Set10"
+},
+{
+ Id: 17925
+ AegisName: "HD_Refine_Ore_Box6"
+ Name: "HD_Refine_Ore_Box6"
+},
+{
+ Id: 17926
+ AegisName: "HD_High_Refine_Box4"
+ Name: "HD_High_Refine_Box4"
+},
+{
+ Id: 17935
+ AegisName: "New_3_Potion_pack"
+ Name: "New_3_Potion_pack"
+},
+{
+ Id: 17936
+ AegisName: "New_3_Potion_10pack"
+ Name: "New_3_Potion_10pack"
+},
+{
+ Id: 17940
+ AegisName: "Nyangvine_Box10_3"
+ Name: "Nyangvine_Box10_3"
+},
+{
+ Id: 17941
+ AegisName: "Nyangvine_Box100_3"
+ Name: "Nyangvine_Box100_3"
+},
+{
+ Id: 17944
+ AegisName: "Almighty_Plus_Box4"
+ Name: "Almighty_Plus_Box4"
+},
+{
+ Id: 17945
+ AegisName: "Almighty100_PlusBox4"
+ Name: "Almighty100_PlusBox4"
+},
//== Mechanic / Geneticist Cannon Balls ====================
{
Id: 18000
@@ -94208,6 +94543,56 @@ item_db: (
bonus2 bResEff,Eff_Blind,5000;
">
},
+{
+ Id: 18149
+ AegisName: "Balistar_IL"
+ Name: "Balistar_IL"
+},
+{
+ Id: 18165
+ AegisName: "Rebeginer_RN_Bow"
+ Name: "Rebeginer_RN_Bow"
+},
+{
+ Id: 18166
+ AegisName: "Rebeginer_WM_Bow"
+ Name: "Rebeginer_WM_Bow"
+},
+{
+ Id: 18170
+ AegisName: "Neev_Bow_Of_Rogue"
+ Name: "Neev_Bow_Of_Rogue"
+},
+{
+ Id: 18174
+ AegisName: "Hunter_Bow_IL"
+ Name: "Hunter_Bow_IL"
+},
+{
+ Id: 18178
+ AegisName: "Virtual_Bow_OS"
+ Name: "Virtual_Bow_OS"
+},
+{
+ Id: 18179
+ AegisName: "MH_P89_OS"
+ Name: "MH_P89_OS"
+},
+{
+ Id: 18180
+ AegisName: "AC_B44_OS"
+ Name: "AC_B44_OS"
+},
+{
+ Id: 18182
+ AegisName: "Evt_Royal_Bow_K"
+ Name: "Evt_Royal_Bow_K"
+},
+{
+ Id: 18183
+ AegisName: "Evt_Narcis_Bow"
+ Name: "Evt_Narcis_Bow"
+},
//== More Headgears ========================================
{
@@ -94499,6 +94884,101 @@ item_db: (
bonus2 bMagicAddRace,RC_Demon,15;
">
},
+{
+ Id: 19209
+ AegisName: "Nurse_Cap_IL"
+ Name: "Nurse_Cap_IL"
+},
+{
+ Id: 19210
+ AegisName: "Apple_Of_Archer_IL"
+ Name: "Apple_Of_Archer_IL"
+},
+{
+ Id: 19223
+ AegisName: "Cap_IL"
+ Name: "Cap_IL"
+},
+{
+ Id: 19247
+ AegisName: "Fancy_Flower_IL"
+ Name: "Fancy_Flower_IL"
+},
+{
+ Id: 19264
+ AegisName: "GoldFish_Hat"
+ Name: "GoldFish_Hat"
+},
+{
+ Id: 19265
+ AegisName: "Smoky_TransformHat"
+ Name: "Smoky_TransformHat"
+},
+{
+ Id: 19277
+ AegisName: "Soda_In_Mouth"
+ Name: "Soda_In_Mouth"
+},
+{
+ Id: 19291
+ AegisName: "C_Shiba_Inu"
+ Name: "C_Shiba_Inu"
+},
+{
+ Id: 19294
+ AegisName: "C_CatEars_Cyber_HeadP_R"
+ Name: "C_CatEars_Cyber_HeadP_R"
+},
+{
+ Id: 19300
+ AegisName: "Dog_Officer"
+ Name: "Dog_Officer"
+},
+{
+ Id: 19310
+ AegisName: "Rebeginer_Cap"
+ Name: "Rebeginer_Cap"
+},
+{
+ Id: 19339
+ AegisName: "Egg_Crispinette"
+ Name: "Egg_Crispinette"
+},
+{
+ Id: 19344
+ AegisName: "Headband_Of_Power_IL"
+ Name: "Headband_Of_Power_IL"
+},
+{
+ Id: 19366
+ AegisName: "Goibne_Helmet_IL"
+ Name: "Goibne_Helmet_IL"
+},
+{
+ Id: 19382
+ AegisName: "Pop_Popcorn_Hat"
+ Name: "Pop_Popcorn_Hat"
+},
+{
+ Id: 19389
+ AegisName: "E_Oxygen_Mask"
+ Name: "E_Oxygen_Mask"
+},
+{
+ Id: 19396
+ AegisName: "Racing_C_Star"
+ Name: "Racing_C_Star"
+},
+{
+ Id: 19397
+ AegisName: "Racing_C_Soul"
+ Name: "Racing_C_Soul"
+},
+{
+ Id: 19404
+ AegisName: "Biting_Off_Rideword"
+ Name: "Biting_Off_Rideword"
+},
//== Costume System ========================================
{
@@ -94557,6 +95037,181 @@ item_db: (
Refine: false
ViewSprite: 654
},
+{
+ Id: 20514
+ AegisName: "C_Thanatos_Sword"
+ Name: "C_Thanatos_Sword"
+},
+{
+ Id: 20515
+ AegisName: "C_Magic_Circle"
+ Name: "C_Magic_Circle"
+},
+{
+ Id: 20516
+ AegisName: "C_Wings_of_Michael"
+ Name: "C_Wings_of_Michael"
+},
+{
+ Id: 20517
+ AegisName: "C_GiantCatBag_TW"
+ Name: "C_GiantCatBag_TW"
+},
+{
+ Id: 20528
+ AegisName: "C_GoldButterfly_Wing"
+ Name: "C_GoldButterfly_Wing"
+},
+{
+ Id: 20530
+ AegisName: "C_Wings_of_Gabriel"
+ Name: "C_Wings_of_Gabriel"
+},
+{
+ Id: 20533
+ AegisName: "C_PinkButterfly_Wing_T"
+ Name: "C_PinkButterfly_Wing_T"
+},
+{
+ Id: 20535
+ AegisName: "C_Digital_Space"
+ Name: "C_Digital_Space"
+},
+{
+ Id: 20838
+ AegisName: "Muffler_IL"
+ Name: "Muffler_IL"
+},
+{
+ Id: 20840
+ AegisName: "Cape_Of_Ancient_Lord_IL"
+ Name: "Cape_Of_Ancient_Lord_IL"
+},
+{
+ Id: 20847
+ AegisName: "Clack_Of_Servival_IL"
+ Name: "Clack_Of_Servival_IL"
+},
+{
+ Id: 20856
+ AegisName: "YSF01_Manteau"
+ Name: "YSF01_Manteau"
+},
+{
+ Id: 20902
+ AegisName: "True_Hunting_Manteau"
+ Name: "True_Hunting_Manteau"
+},
+{
+ Id: 20903
+ AegisName: "R_Hunting_Manteau"
+ Name: "R_Hunting_Manteau"
+},
+{
+ Id: 20906
+ AegisName: "Rebeginer_Manteau"
+ Name: "Rebeginer_Manteau"
+},
+{
+ Id: 20923
+ AegisName: "Goibne_Shoulder_IL"
+ Name: "Goibne_Shoulder_IL"
+},
+{
+ Id: 20933
+ AegisName: "Illusion_Engine_A"
+ Name: "Illusion_Engine_A"
+},
+{
+ Id: 20934
+ AegisName: "Illusion_Engine_B"
+ Name: "Illusion_Engine_B"
+},
+{
+ Id: 20939
+ AegisName: "Time_Overload_Hood"
+ Name: "Time_Overload_Hood"
+},
+{
+ Id: 20940
+ AegisName: "Violet_Halo"
+ Name: "Violet_Halo"
+},
+{
+ Id: 20944
+ AegisName: "Fairy_Cloth"
+ Name: "Fairy_Cloth"
+},
+{
+ Id: 21037
+ AegisName: "Rebeginer_RK_T_Sword"
+ Name: "Rebeginer_RK_T_Sword"
+},
+{
+ Id: 21047
+ AegisName: "Beam_Claymore_OS"
+ Name: "Beam_Claymore_OS"
+},
+{
+ Id: 21049
+ AegisName: "Evt_Oriental_Sword"
+ Name: "Evt_Oriental_Sword"
+},
+{
+ Id: 22133
+ AegisName: "Shoes_IL"
+ Name: "Shoes_IL"
+},
+{
+ Id: 22141
+ AegisName: "YSF01_Greave"
+ Name: "YSF01_Greave"
+},
+{
+ Id: 22168
+ AegisName: "True_Hunting_Boots"
+ Name: "True_Hunting_Boots"
+},
+{
+ Id: 22169
+ AegisName: "R_Hunting_Boots"
+ Name: "R_Hunting_Boots"
+},
+{
+ Id: 22171
+ AegisName: "ShoesOfGuardsman"
+ Name: "ShoesOfGuardsman"
+},
+{
+ Id: 22173
+ AegisName: "Rebeginer_Boots"
+ Name: "Rebeginer_Boots"
+},
+{
+ Id: 22190
+ AegisName: "Boots_IL"
+ Name: "Boots_IL"
+},
+{
+ Id: 22192
+ AegisName: "Goibne_Boots_IL"
+ Name: "Goibne_Boots_IL"
+},
+{
+ Id: 22196
+ AegisName: "Illusion_Leg_A"
+ Name: "Illusion_Leg_A"
+},
+{
+ Id: 22197
+ AegisName: "Illusion_Leg_B"
+ Name: "Illusion_Leg_B"
+},
+{
+ Id: 22204
+ AegisName: "Time_Overload_Boots"
+ Name: "Time_Overload_Boots"
+},
//== New Etc Items =========================================
{
@@ -94638,4 +95293,1814 @@ item_db: (
Type: "IT_USABLE"
Script: <" Zeny += rand(500, 550); ">
},
+{
+ Id: 23242
+ AegisName: "Fried_Chicken"
+ Name: "Fried_Chicken"
+},
+{
+ Id: 23243
+ AegisName: "Fried_Chicken_1"
+ Name: "Fried_Chicken_1"
+},
+{
+ Id: 23256
+ AegisName: "Elixir_Bandage"
+ Name: "Elixir_Bandage"
+},
+{
+ Id: 23257
+ AegisName: "Dew_Of_Old_Tree"
+ Name: "Dew_Of_Old_Tree"
+},
+{
+ Id: 23258
+ AegisName: "Foul_Rotten_Meat"
+ Name: "Foul_Rotten_Meat"
+},
+{
+ Id: 23259
+ AegisName: "St_Cupcake"
+ Name: "St_Cupcake"
+},
+{
+ Id: 23260
+ AegisName: "Parfait"
+ Name: "Parfait"
+},
+{
+ Id: 23261
+ AegisName: "Macaron"
+ Name: "Macaron"
+},
+{
+ Id: 23277
+ AegisName: "Mado_Box"
+ Name: "Mado_Box"
+},
+{
+ Id: 23332
+ AegisName: "Costama_EggV01"
+ Name: "Costama_EggV01"
+},
+{
+ Id: 23342
+ AegisName: "Vend_Arbeit1_1Lv"
+ Name: "Vend_Arbeit1_1Lv"
+},
+{
+ Id: 23343
+ AegisName: "Vend_Arbeit1_2Lv"
+ Name: "Vend_Arbeit1_2Lv"
+},
+{
+ Id: 23344
+ AegisName: "Vend_Arbeit1_3Lv"
+ Name: "Vend_Arbeit1_3Lv"
+},
+{
+ Id: 23345
+ AegisName: "Buy_Arbeit1_1Lv"
+ Name: "Buy_Arbeit1_1Lv"
+},
+{
+ Id: 23346
+ AegisName: "Buy_Arbeit1_2Lv"
+ Name: "Buy_Arbeit1_2Lv"
+},
+{
+ Id: 23347
+ AegisName: "Buy_Arbeit1_3Lv"
+ Name: "Buy_Arbeit1_3Lv"
+},
+{
+ Id: 23348
+ AegisName: "Vend_Arbeit_1Lv"
+ Name: "Vend_Arbeit_1Lv"
+},
+{
+ Id: 23349
+ AegisName: "Vend_Arbeit_2Lv"
+ Name: "Vend_Arbeit_2Lv"
+},
+{
+ Id: 23350
+ AegisName: "Vend_Arbeit_3Lv"
+ Name: "Vend_Arbeit_3Lv"
+},
+{
+ Id: 23351
+ AegisName: "Buy_Arbeit_1Lv"
+ Name: "Buy_Arbeit_1Lv"
+},
+{
+ Id: 23352
+ AegisName: "Buy_Arbeit_2Lv"
+ Name: "Buy_Arbeit_2Lv"
+},
+{
+ Id: 23353
+ AegisName: "Buy_Arbeit_3Lv"
+ Name: "Buy_Arbeit_3Lv"
+},
+{
+ Id: 23354
+ AegisName: "Vend_Arbeit1_1Lv_"
+ Name: "Vend_Arbeit1_1Lv_"
+},
+{
+ Id: 23355
+ AegisName: "Vend_Arbeit1_2Lv_"
+ Name: "Vend_Arbeit1_2Lv_"
+},
+{
+ Id: 23356
+ AegisName: "Vend_Arbeit1_3Lv_"
+ Name: "Vend_Arbeit1_3Lv_"
+},
+{
+ Id: 23357
+ AegisName: "Buy_Arbeit1_1Lv_"
+ Name: "Buy_Arbeit1_1Lv_"
+},
+{
+ Id: 23358
+ AegisName: "Buy_Arbeit1_2Lv_"
+ Name: "Buy_Arbeit1_2Lv_"
+},
+{
+ Id: 23359
+ AegisName: "Buy_Arbeit1_3Lv_"
+ Name: "Buy_Arbeit1_3Lv_"
+},
+{
+ Id: 23405
+ AegisName: "Green_Scroll_K2"
+ Name: "Green_Scroll_K2"
+},
+{
+ Id: 23440
+ AegisName: "Sentimental_Scroll"
+ Name: "Sentimental_Scroll"
+},
+{
+ Id: 23444
+ AegisName: "July_Hair_Box"
+ Name: "July_Hair_Box"
+},
+{
+ Id: 23446
+ AegisName: "Savage_Trap"
+ Name: "Savage_Trap"
+},
+{
+ Id: 23473
+ AegisName: "Infinity_Scroll"
+ Name: "Infinity_Scroll"
+},
+{
+ Id: 23475
+ AegisName: "Infinity_Drink"
+ Name: "Infinity_Drink"
+},
+{
+ Id: 23484
+ AegisName: "Firstaid_Box_5"
+ Name: "Firstaid_Box_5"
+},
+{
+ Id: 23485
+ AegisName: "Firstaid_Box_10"
+ Name: "Firstaid_Box_10"
+},
+{
+ Id: 23486
+ AegisName: "Firstaid_Box_15"
+ Name: "Firstaid_Box_15"
+},
+{
+ Id: 23487
+ AegisName: "Firstaid_Box_20"
+ Name: "Firstaid_Box_20"
+},
+{
+ Id: 23488
+ AegisName: "Firstaid_Box_25"
+ Name: "Firstaid_Box_25"
+},
+{
+ Id: 23489
+ AegisName: "Firstaid_Box_30"
+ Name: "Firstaid_Box_30"
+},
+{
+ Id: 23490
+ AegisName: "Firstaid_Box_35"
+ Name: "Firstaid_Box_35"
+},
+{
+ Id: 23491
+ AegisName: "Firstaid_Box_40"
+ Name: "Firstaid_Box_40"
+},
+{
+ Id: 23492
+ AegisName: "Firstaid_Box_45"
+ Name: "Firstaid_Box_45"
+},
+{
+ Id: 23493
+ AegisName: "Firstaid_Box_50"
+ Name: "Firstaid_Box_50"
+},
+{
+ Id: 23494
+ AegisName: "Firstaid_Box_55"
+ Name: "Firstaid_Box_55"
+},
+{
+ Id: 23495
+ AegisName: "Firstaid_Box_60"
+ Name: "Firstaid_Box_60"
+},
+{
+ Id: 23496
+ AegisName: "Firstaid_Box_65"
+ Name: "Firstaid_Box_65"
+},
+{
+ Id: 23497
+ AegisName: "Firstaid_Box_70"
+ Name: "Firstaid_Box_70"
+},
+{
+ Id: 23498
+ AegisName: "Firstaid_Box_75"
+ Name: "Firstaid_Box_75"
+},
+{
+ Id: 23499
+ AegisName: "Firstaid_Box_80"
+ Name: "Firstaid_Box_80"
+},
+{
+ Id: 23500
+ AegisName: "Firstaid_Box_85"
+ Name: "Firstaid_Box_85"
+},
+{
+ Id: 23501
+ AegisName: "Firstaid_Box_90"
+ Name: "Firstaid_Box_90"
+},
+{
+ Id: 23502
+ AegisName: "Firstaid_Box_95"
+ Name: "Firstaid_Box_95"
+},
+{
+ Id: 23503
+ AegisName: "Red_Potion_B_20"
+ Name: "Red_Potion_B_20"
+},
+{
+ Id: 23504
+ AegisName: "Orange_Potion_B_20"
+ Name: "Orange_Potion_B_20"
+},
+{
+ Id: 23505
+ AegisName: "Yellow_Potion_B_20"
+ Name: "Yellow_Potion_B_20"
+},
+{
+ Id: 23506
+ AegisName: "White_Potion_B_20"
+ Name: "White_Potion_B_20"
+},
+{
+ Id: 23533
+ AegisName: "Vote_Rose"
+ Name: "Vote_Rose"
+},
+{
+ Id: 23537
+ AegisName: "Bloody_Scroll"
+ Name: "Bloody_Scroll"
+},
+{
+ Id: 23549
+ AegisName: "Snow_Cookie"
+ Name: "Snow_Cookie"
+},
+{
+ Id: 23550
+ AegisName: "Winter_Cookie"
+ Name: "Winter_Cookie"
+},
+{
+ Id: 23551
+ AegisName: "Festi_Cookie"
+ Name: "Festi_Cookie"
+},
+{
+ Id: 23552
+ AegisName: "Flora_Cookie"
+ Name: "Flora_Cookie"
+},
+{
+ Id: 23554
+ AegisName: "Snow_Festa_CardPack"
+ Name: "Snow_Festa_CardPack"
+},
+{
+ Id: 23575
+ AegisName: "Adventurer_Box_1"
+ Name: "Adventurer_Box_1"
+},
+{
+ Id: 23576
+ AegisName: "Adventurer_Box_15"
+ Name: "Adventurer_Box_15"
+},
+{
+ Id: 23577
+ AegisName: "Adventurer_Box_30"
+ Name: "Adventurer_Box_30"
+},
+{
+ Id: 23578
+ AegisName: "Adventurer_Box_45"
+ Name: "Adventurer_Box_45"
+},
+{
+ Id: 23579
+ AegisName: "Adventurer_Box_60"
+ Name: "Adventurer_Box_60"
+},
+{
+ Id: 23580
+ AegisName: "Adventurer_Box_75"
+ Name: "Adventurer_Box_75"
+},
+{
+ Id: 23581
+ AegisName: "Adventurer_Box_90"
+ Name: "Adventurer_Box_90"
+},
+{
+ Id: 23582
+ AegisName: "E_Wing_Of_Fly_3Day_Box"
+ Name: "E_Wing_Of_Fly_3Day_Box"
+},
+{
+ Id: 23583
+ AegisName: "Rebeginer_Box"
+ Name: "Rebeginer_Box"
+},
+{
+ Id: 23584
+ AegisName: "Rebeginer_S_Box"
+ Name: "Rebeginer_S_Box"
+},
+{
+ Id: 23585
+ AegisName: "Rebeginer_Box_100"
+ Name: "Rebeginer_Box_100"
+},
+{
+ Id: 23586
+ AegisName: "Rebeginer_Box_110"
+ Name: "Rebeginer_Box_110"
+},
+{
+ Id: 23587
+ AegisName: "Rebeginer_Box_120"
+ Name: "Rebeginer_Box_120"
+},
+{
+ Id: 23618
+ AegisName: "2017_Special_Scroll"
+ Name: "2017_Special_Scroll"
+},
+{
+ Id: 23650
+ AegisName: "Ice_Scroll"
+ Name: "Ice_Scroll"
+},
+{
+ Id: 23661
+ AegisName: "2018_New_Year_Scroll"
+ Name: "2018_New_Year_Scroll"
+},
+{
+ Id: 23683
+ AegisName: "EVT_JAN02KR"
+ Name: "EVT_JAN02KR"
+},
+{
+ Id: 23700
+ AegisName: "Lunar_New_Year_Scroll"
+ Name: "Lunar_New_Year_Scroll"
+},
+{
+ Id: 23706
+ AegisName: "Reactor_Z"
+ Name: "Reactor_Z"
+},
+{
+ Id: 23707
+ AegisName: "Reactor_Z_"
+ Name: "Reactor_Z_"
+},
+{
+ Id: 23710
+ AegisName: "2018_Spring_Scroll"
+ Name: "2018_Spring_Scroll"
+},
+{
+ Id: 23723
+ AegisName: "Melon_Bread"
+ Name: "Melon_Bread"
+},
+{
+ Id: 23765
+ AegisName: "Costama_EggV02"
+ Name: "Costama_EggV02"
+},
+{
+ Id: 23771
+ AegisName: "Mysterious_Plastic"
+ Name: "Mysterious_Plastic"
+},
+{
+ Id: 23772
+ AegisName: "EP17_1_SPC01"
+ Name: "EP17_1_SPC01"
+},
+{
+ Id: 23773
+ AegisName: "EP17_1_SPC02"
+ Name: "EP17_1_SPC02"
+},
+{
+ Id: 23774
+ AegisName: "EP17_1_SPC03"
+ Name: "EP17_1_SPC03"
+},
+{
+ Id: 23775
+ AegisName: "EP17_1_SPC04"
+ Name: "EP17_1_SPC04"
+},
+{
+ Id: 23817
+ AegisName: "Bs_Making_Scrolls"
+ Name: "Bs_Making_Scrolls"
+},
+{
+ Id: 23878
+ AegisName: "StarSoul_Scroll"
+ Name: "StarSoul_Scroll"
+},
+{
+ Id: 23897
+ AegisName: "2018_Jump_Thx_Box"
+ Name: "2018_Jump_Thx_Box"
+},
+{
+ Id: 23898
+ AegisName: "Comp_Power_Booster"
+ Name: "Comp_Power_Booster"
+},
+{
+ Id: 23899
+ AegisName: "Comp_Almighty"
+ Name: "Comp_Almighty"
+},
+{
+ Id: 23900
+ AegisName: "Time_Overload_Box"
+ Name: "Time_Overload_Box"
+},
+{
+ Id: 23901
+ AegisName: "110LVUP"
+ Name: "110LVUP"
+},
+{
+ Id: 23921
+ AegisName: "Season_Evt_Reward"
+ Name: "Season_Evt_Reward"
+},
+{
+ Id: 23962
+ AegisName: "Malang_Cat_Can2"
+ Name: "Malang_Cat_Can2"
+},
+{
+ Id: 24380
+ AegisName: "Sentimental_Weapone_S"
+ Name: "Sentimental_Weapone_S"
+},
+{
+ Id: 24381
+ AegisName: "Sentimental_Earring_S"
+ Name: "Sentimental_Earring_S"
+},
+{
+ Id: 24382
+ AegisName: "Sentimental_Pendant_S"
+ Name: "Sentimental_Pendant_S"
+},
+{
+ Id: 24383
+ AegisName: "Enchanting_Weapone_S"
+ Name: "Enchanting_Weapone_S"
+},
+{
+ Id: 24384
+ AegisName: "Enchanting_Earring_S"
+ Name: "Enchanting_Earring_S"
+},
+{
+ Id: 24385
+ AegisName: "Enchanting_Pendant_S"
+ Name: "Enchanting_Pendant_S"
+},
+{
+ Id: 24386
+ AegisName: "S_Infinity_Weapon"
+ Name: "S_Infinity_Weapon"
+},
+{
+ Id: 24387
+ AegisName: "Rebeginer_Armor_S"
+ Name: "Rebeginer_Armor_S"
+},
+{
+ Id: 24388
+ AegisName: "Rebeginer_Shield_S"
+ Name: "Rebeginer_Shield_S"
+},
+{
+ Id: 24389
+ AegisName: "Rebeginer_Shoes_S"
+ Name: "Rebeginer_Shoes_S"
+},
+{
+ Id: 24390
+ AegisName: "Rebeginer_Weapon_S"
+ Name: "Rebeginer_Weapon_S"
+},
+{
+ Id: 24391
+ AegisName: "Rebeginer_Earring_S"
+ Name: "Rebeginer_Earring_S"
+},
+{
+ Id: 24392
+ AegisName: "Rebeginer_Pendant_S"
+ Name: "Rebeginer_Pendant_S"
+},
+{
+ Id: 24393
+ AegisName: "S_Physical_Shoes"
+ Name: "S_Physical_Shoes"
+},
+{
+ Id: 24394
+ AegisName: "S_Physical_Shield"
+ Name: "S_Physical_Shield"
+},
+{
+ Id: 24395
+ AegisName: "S_Physical_Armor"
+ Name: "S_Physical_Armor"
+},
+{
+ Id: 24396
+ AegisName: "S_Magical_Shoes"
+ Name: "S_Magical_Shoes"
+},
+{
+ Id: 24397
+ AegisName: "S_Magical_Shield"
+ Name: "S_Magical_Shield"
+},
+{
+ Id: 24398
+ AegisName: "S_Magical_Armor"
+ Name: "S_Magical_Armor"
+},
+{
+ Id: 24399
+ AegisName: "S_ImmunedAthena_Shield"
+ Name: "S_ImmunedAthena_Shield"
+},
+{
+ Id: 24400
+ AegisName: "S_HardChamption_Shoes"
+ Name: "S_HardChamption_Shoes"
+},
+{
+ Id: 24401
+ AegisName: "S_KingbirdAncient_Armor"
+ Name: "S_KingbirdAncient_Armor"
+},
+{
+ Id: 24402
+ AegisName: "S_Rebellion_Armor"
+ Name: "S_Rebellion_Armor"
+},
+{
+ Id: 24403
+ AegisName: "S_Kagerou_Armor"
+ Name: "S_Kagerou_Armor"
+},
+{
+ Id: 24404
+ AegisName: "S_Oboro_Armor"
+ Name: "S_Oboro_Armor"
+},
+{
+ Id: 24405
+ AegisName: "S_Rebellion_Shoes"
+ Name: "S_Rebellion_Shoes"
+},
+{
+ Id: 24406
+ AegisName: "S_Kagerou_Shoes"
+ Name: "S_Kagerou_Shoes"
+},
+{
+ Id: 24407
+ AegisName: "S_Oboro_Shoes"
+ Name: "S_Oboro_Shoes"
+},
+{
+ Id: 24408
+ AegisName: "S_DoramPhysical_Armor"
+ Name: "S_DoramPhysical_Armor"
+},
+{
+ Id: 24409
+ AegisName: "S_DoramPhysical_Shoes"
+ Name: "S_DoramPhysical_Shoes"
+},
+{
+ Id: 24410
+ AegisName: "S_DoramMagical_Armor"
+ Name: "S_DoramMagical_Armor"
+},
+{
+ Id: 24411
+ AegisName: "S_DoramMagical_Shoes"
+ Name: "S_DoramMagical_Shoes"
+},
+{
+ Id: 24412
+ AegisName: "S_Star_Emperor_Armor"
+ Name: "S_Star_Emperor_Armor"
+},
+{
+ Id: 24413
+ AegisName: "S_Star_Emperor_Shoes"
+ Name: "S_Star_Emperor_Shoes"
+},
+{
+ Id: 24414
+ AegisName: "S_Soul_Reaper_Armor"
+ Name: "S_Soul_Reaper_Armor"
+},
+{
+ Id: 24415
+ AegisName: "S_Soul_Reaper_Shoes"
+ Name: "S_Soul_Reaper_Shoes"
+},
+{
+ Id: 24416
+ AegisName: "S_Timeoverload_Weapon"
+ Name: "S_Timeoverload_Weapon"
+},
+{
+ Id: 24417
+ AegisName: "S_Timeoverload_Armor"
+ Name: "S_Timeoverload_Armor"
+},
+{
+ Id: 24418
+ AegisName: "S_Timeoverload_Shield"
+ Name: "S_Timeoverload_Shield"
+},
+{
+ Id: 24419
+ AegisName: "S_Timeoverload_Shoes"
+ Name: "S_Timeoverload_Shoes"
+},
+{
+ Id: 24420
+ AegisName: "S_Timeoverload_Earing"
+ Name: "S_Timeoverload_Earing"
+},
+{
+ Id: 24421
+ AegisName: "S_Timeoverload_Pandent"
+ Name: "S_Timeoverload_Pandent"
+},
+{
+ Id: 25258
+ AegisName: "BrokenArrow"
+ Name: "BrokenArrow"
+},
+{
+ Id: 25265
+ AegisName: "Shining_Spore"
+ Name: "Shining_Spore"
+},
+{
+ Id: 25266
+ AegisName: "Dried_Leaf_Of_Ygg"
+ Name: "Dried_Leaf_Of_Ygg"
+},
+{
+ Id: 25271
+ AegisName: "IllusionStone"
+ Name: "IllusionStone"
+},
+{
+ Id: 25290
+ AegisName: "Sweets_Coin"
+ Name: "Sweets_Coin"
+},
+{
+ Id: 25294
+ AegisName: "Clover_Ticket"
+ Name: "Clover_Ticket"
+},
+{
+ Id: 25295
+ AegisName: "Happiness_Clover"
+ Name: "Happiness_Clover"
+},
+{
+ Id: 25340
+ AegisName: "Golden_Corn"
+ Name: "Golden_Corn"
+},
+{
+ Id: 25375
+ AegisName: "Mightysoul_Essence"
+ Name: "Mightysoul_Essence"
+},
+{
+ Id: 25390
+ AegisName: "Captured_Savage"
+ Name: "Captured_Savage"
+},
+{
+ Id: 25391
+ AegisName: "Goodly_Bough"
+ Name: "Goodly_Bough"
+},
+{
+ Id: 25392
+ AegisName: "Free_Pass_Ticket"
+ Name: "Free_Pass_Ticket"
+},
+{
+ Id: 25393
+ AegisName: "Delicious_Corn"
+ Name: "Delicious_Corn"
+},
+{
+ Id: 25394
+ AegisName: "Fruit_Lunch"
+ Name: "Fruit_Lunch"
+},
+{
+ Id: 25395
+ AegisName: "Small_Embers"
+ Name: "Small_Embers"
+},
+{
+ Id: 25401
+ AegisName: "Black_Fur"
+ Name: "Black_Fur"
+},
+{
+ Id: 25408
+ AegisName: "Memory_Of_Gyol"
+ Name: "Memory_Of_Gyol"
+},
+{
+ Id: 25409
+ AegisName: "SuraStone_Top"
+ Name: "SuraStone_Top"
+},
+{
+ Id: 25410
+ AegisName: "SuraStone_Middle"
+ Name: "SuraStone_Middle"
+},
+{
+ Id: 25411
+ AegisName: "SuraStone_Bottom"
+ Name: "SuraStone_Bottom"
+},
+{
+ Id: 25412
+ AegisName: "SuraStone_Robe"
+ Name: "SuraStone_Robe"
+},
+{
+ Id: 25413
+ AegisName: "RangerStone_Top"
+ Name: "RangerStone_Top"
+},
+{
+ Id: 25414
+ AegisName: "RangerStone_Middle"
+ Name: "RangerStone_Middle"
+},
+{
+ Id: 25415
+ AegisName: "RangerStone_Bottom"
+ Name: "RangerStone_Bottom"
+},
+{
+ Id: 25416
+ AegisName: "RangerStone_Robe"
+ Name: "RangerStone_Robe"
+},
+{
+ Id: 25417
+ AegisName: "SorcererStone_Top"
+ Name: "SorcererStone_Top"
+},
+{
+ Id: 25418
+ AegisName: "SorcererStone_Middle"
+ Name: "SorcererStone_Middle"
+},
+{
+ Id: 25419
+ AegisName: "SorcererStone_Bottom"
+ Name: "SorcererStone_Bottom"
+},
+{
+ Id: 25420
+ AegisName: "SorcererStone_Robe"
+ Name: "SorcererStone_Robe"
+},
+{
+ Id: 25421
+ AegisName: "Pumpkin_Decor"
+ Name: "Pumpkin_Decor"
+},
+{
+ Id: 25422
+ AegisName: "White_Thin_Stem"
+ Name: "White_Thin_Stem"
+},
+{
+ Id: 25425
+ AegisName: "SnowFlower_Of_Spell"
+ Name: "SnowFlower_Of_Spell"
+},
+{
+ Id: 25426
+ AegisName: "Warm_Cotton"
+ Name: "Warm_Cotton"
+},
+{
+ Id: 25427
+ AegisName: "Rebeginer_W_Coupon"
+ Name: "Rebeginer_W_Coupon"
+},
+{
+ Id: 25428
+ AegisName: "Rebeginer_W_7Up"
+ Name: "Rebeginer_W_7Up"
+},
+{
+ Id: 25445
+ AegisName: "RuneknightStone_Top"
+ Name: "RuneknightStone_Top"
+},
+{
+ Id: 25446
+ AegisName: "RuneknightStone_Middle"
+ Name: "RuneknightStone_Middle"
+},
+{
+ Id: 25447
+ AegisName: "RuneknightStone_Bottom"
+ Name: "RuneknightStone_Bottom"
+},
+{
+ Id: 25448
+ AegisName: "RuneknightStone_Robe"
+ Name: "RuneknightStone_Robe"
+},
+{
+ Id: 25449
+ AegisName: "GeneticStone_Robe"
+ Name: "GeneticStone_Robe"
+},
+{
+ Id: 25450
+ AegisName: "GeneticStone_Top"
+ Name: "GeneticStone_Top"
+},
+{
+ Id: 25451
+ AegisName: "GeneticStone_Middle"
+ Name: "GeneticStone_Middle"
+},
+{
+ Id: 25452
+ AegisName: "GeneticStone_Bottom"
+ Name: "GeneticStone_Bottom"
+},
+{
+ Id: 25453
+ AegisName: "WarlockStone_Top"
+ Name: "WarlockStone_Top"
+},
+{
+ Id: 25454
+ AegisName: "WarlockStone_Middle"
+ Name: "WarlockStone_Middle"
+},
+{
+ Id: 25455
+ AegisName: "WarlockStone_Bottom"
+ Name: "WarlockStone_Bottom"
+},
+{
+ Id: 25456
+ AegisName: "WarlockStone_Robe"
+ Name: "WarlockStone_Robe"
+},
+{
+ Id: 25464
+ AegisName: "World_Tour_Ticket"
+ Name: "World_Tour_Ticket"
+},
+{
+ Id: 25479
+ AegisName: "Dogly_Bottle"
+ Name: "Dogly_Bottle"
+},
+{
+ Id: 25490
+ AegisName: "ShadowchaserStone_Top"
+ Name: "ShadowchaserStone_Top"
+},
+{
+ Id: 25491
+ AegisName: "ShadowchaseStone_Middle"
+ Name: "ShadowchaseStone_Middle"
+},
+{
+ Id: 25492
+ AegisName: "ShadowchaseStone_Bottom"
+ Name: "ShadowchaseStone_Bottom"
+},
+{
+ Id: 25493
+ AegisName: "ShadowchaserStone_Robe"
+ Name: "ShadowchaserStone_Robe"
+},
+{
+ Id: 25494
+ AegisName: "MechanicStone_Top"
+ Name: "MechanicStone_Top"
+},
+{
+ Id: 25495
+ AegisName: "MechanicStone_Middle"
+ Name: "MechanicStone_Middle"
+},
+{
+ Id: 25496
+ AegisName: "MechanicStone_Bottom"
+ Name: "MechanicStone_Bottom"
+},
+{
+ Id: 25497
+ AegisName: "MechanicStone_Robe"
+ Name: "MechanicStone_Robe"
+},
+{
+ Id: 25498
+ AegisName: "WanderMinstrelStone_Top"
+ Name: "WanderMinstrelStone_Top"
+},
+{
+ Id: 25499
+ AegisName: "WanderMinstStone_Middle"
+ Name: "WanderMinstStone_Middle"
+},
+{
+ Id: 25500
+ AegisName: "WanderMinstStone_Bottom"
+ Name: "WanderMinstStone_Bottom"
+},
+{
+ Id: 25501
+ AegisName: "WanderMinstreStone_Robe"
+ Name: "WanderMinstreStone_Robe"
+},
+{
+ Id: 25504
+ AegisName: "Visionary_Ticket"
+ Name: "Visionary_Ticket"
+},
+{
+ Id: 25508
+ AegisName: "Token_of_OrcGeneral"
+ Name: "Token_of_OrcGeneral"
+},
+{
+ Id: 25511
+ AegisName: "Evt_March04_KR"
+ Name: "Evt_March04_KR"
+},
+{
+ Id: 25512
+ AegisName: "Evt_March05_KR"
+ Name: "Evt_March05_KR"
+},
+{
+ Id: 25616
+ AegisName: "Green_Bearopy"
+ Name: "Green_Bearopy"
+},
+{
+ Id: 25622
+ AegisName: "White_Snake_Tear"
+ Name: "White_Snake_Tear"
+},
+{
+ Id: 25627
+ AegisName: "Gold_Card"
+ Name: "Gold_Card"
+},
+{
+ Id: 25629
+ AegisName: "Konts_Letter"
+ Name: "Konts_Letter"
+},
+{
+ Id: 25633
+ AegisName: "Token_Of_Wootan"
+ Name: "Token_Of_Wootan"
+},
+{
+ Id: 25634
+ AegisName: "Wootan_D_S_Piece"
+ Name: "Wootan_D_S_Piece"
+},
+{
+ Id: 25638
+ AegisName: "Token_Of_Bigstone"
+ Name: "Token_Of_Bigstone"
+},
+{
+ Id: 25639
+ AegisName: "Fragment_Of_Rock"
+ Name: "Fragment_Of_Rock"
+},
+{
+ Id: 25643
+ AegisName: "Autographed_Book"
+ Name: "Autographed_Book"
+},
+{
+ Id: 25655
+ AegisName: "Dalcom_Coin"
+ Name: "Dalcom_Coin"
+},
+{
+ Id: 25656
+ AegisName: "Stamp_Note"
+ Name: "Stamp_Note"
+},
+{
+ Id: 25657
+ AegisName: "Evt_July01_KR"
+ Name: "Evt_July01_KR"
+},
+{
+ Id: 25658
+ AegisName: "Evt_July02_KR"
+ Name: "Evt_July02_KR"
+},
+{
+ Id: 25659
+ AegisName: "Evt_May02_KR"
+ Name: "Evt_May02_KR"
+},
+{
+ Id: 25664
+ AegisName: "Evt_July03_KR"
+ Name: "Evt_July03_KR"
+},
+{
+ Id: 25665
+ AegisName: "Dienes_Envelope"
+ Name: "Dienes_Envelope"
+},
+{
+ Id: 25666
+ AegisName: "Id_Card"
+ Name: "Id_Card"
+},
+{
+ Id: 25668
+ AegisName: "Broken_Weapon"
+ Name: "Broken_Weapon"
+},
+{
+ Id: 25669
+ AegisName: "Unknown_Parts"
+ Name: "Unknown_Parts"
+},
+{
+ Id: 25706
+ AegisName: "HighpriestStone_Top"
+ Name: "HighpriestStone_Top"
+},
+{
+ Id: 25707
+ AegisName: "HighpriestStone_Middle"
+ Name: "HighpriestStone_Middle"
+},
+{
+ Id: 25708
+ AegisName: "HighpriestStone_Bottom"
+ Name: "HighpriestStone_Bottom"
+},
+{
+ Id: 25709
+ AegisName: "ArchbishopStone_Robe"
+ Name: "ArchbishopStone_Robe"
+},
+{
+ Id: 25710
+ AegisName: "PaladinStone_Top"
+ Name: "PaladinStone_Top"
+},
+{
+ Id: 25711
+ AegisName: "PaladinStone_Middle"
+ Name: "PaladinStone_Middle"
+},
+{
+ Id: 25712
+ AegisName: "PaladinStone_Bottom"
+ Name: "PaladinStone_Bottom"
+},
+{
+ Id: 25713
+ AegisName: "RoyalguardStone_Robe"
+ Name: "RoyalguardStone_Robe"
+},
+{
+ Id: 25714
+ AegisName: "AssacrossStone_Top"
+ Name: "AssacrossStone_Top"
+},
+{
+ Id: 25715
+ AegisName: "AssacrossStone_Middle"
+ Name: "AssacrossStone_Middle"
+},
+{
+ Id: 25716
+ AegisName: "AssacrossStone_Bottom"
+ Name: "AssacrossStone_Bottom"
+},
+{
+ Id: 25717
+ AegisName: "GuillcrossStone_Robe"
+ Name: "GuillcrossStone_Robe"
+},
+{
+ Id: 25723
+ AegisName: "Cor_Core"
+ Name: "Cor_Core"
+},
+{
+ Id: 25728
+ AegisName: "Shadowdecon_Ore"
+ Name: "Shadowdecon_Ore"
+},
+{
+ Id: 25729
+ AegisName: "Shadowdecon"
+ Name: "Shadowdecon"
+},
+{
+ Id: 25730
+ AegisName: "Zelunium_Ore"
+ Name: "Zelunium_Ore"
+},
+{
+ Id: 25731
+ AegisName: "Zelunium"
+ Name: "Zelunium"
+},
+{
+ Id: 25734
+ AegisName: "Sealed_Weapon_Ticket"
+ Name: "Sealed_Weapon_Ticket"
+},
+{
+ Id: 25735
+ AegisName: "Unsealing_Token"
+ Name: "Unsealing_Token"
+},
+{
+ Id: 25739
+ AegisName: "GH_Cursed_Crystal"
+ Name: "GH_Cursed_Crystal"
+},
+{
+ Id: 25740
+ AegisName: "GH_Cursed_Gemstone"
+ Name: "GH_Cursed_Gemstone"
+},
+{
+ Id: 26007
+ AegisName: "Spectral_Spear_IL"
+ Name: "Spectral_Spear_IL"
+},
+{
+ Id: 26015
+ AegisName: "Rebeginer_LG_Lance"
+ Name: "Rebeginer_LG_Lance"
+},
+{
+ Id: 26109
+ AegisName: "Staff_Of_Bordeaux_IL"
+ Name: "Staff_Of_Bordeaux_IL"
+},
+{
+ Id: 26110
+ AegisName: "CandyCaneRod"
+ Name: "CandyCaneRod"
+},
+{
+ Id: 26111
+ AegisName: "Metal_Foxtail"
+ Name: "Metal_Foxtail"
+},
+{
+ Id: 26119
+ AegisName: "Rebeginer_SO_Rod"
+ Name: "Rebeginer_SO_Rod"
+},
+{
+ Id: 26120
+ AegisName: "Rebeginer_DO_Rod"
+ Name: "Rebeginer_DO_Rod"
+},
+{
+ Id: 26151
+ AegisName: "Rutilus_Stick_OS"
+ Name: "Rutilus_Stick_OS"
+},
+{
+ Id: 26155
+ AegisName: "MeawFoxtail"
+ Name: "MeawFoxtail"
+},
+{
+ Id: 26156
+ AegisName: "Evt_Shadow_Staff_K"
+ Name: "Evt_Shadow_Staff_K"
+},
+{
+ Id: 28022
+ AegisName: "Infiltrator_IL"
+ Name: "Infiltrator_IL"
+},
+{
+ Id: 28023
+ AegisName: "Ghoul_Leg_IL"
+ Name: "Ghoul_Leg_IL"
+},
+{
+ Id: 28027
+ AegisName: "Rebeginer_GC_Katar"
+ Name: "Rebeginer_GC_Katar"
+},
+{
+ Id: 28038
+ AegisName: "Meuchler_OS"
+ Name: "Meuchler_OS"
+},
+{
+ Id: 28040
+ AegisName: "Evt_Shiver_Katar_K"
+ Name: "Evt_Shiver_Katar_K"
+},
+{
+ Id: 28136
+ AegisName: "Blasti_OS"
+ Name: "Blasti_OS"
+},
+{
+ Id: 28137
+ AegisName: "Evt_Avenger"
+ Name: "Evt_Avenger"
+},
+{
+ Id: 28240
+ AegisName: "Calf_Kingcobra"
+ Name: "Calf_Kingcobra"
+},
+{
+ Id: 28241
+ AegisName: "Calf_Diamondback"
+ Name: "Calf_Diamondback"
+},
+{
+ Id: 28242
+ AegisName: "Calf_Anaconda"
+ Name: "Calf_Anaconda"
+},
+{
+ Id: 28243
+ AegisName: "Calf_Python"
+ Name: "Calf_Python"
+},
+{
+ Id: 28244
+ AegisName: "Gate_KeeperDD_IL"
+ Name: "Gate_KeeperDD_IL"
+},
+{
+ Id: 28253
+ AegisName: "HR_S55_OS"
+ Name: "HR_S55_OS"
+},
+{
+ Id: 28508
+ AegisName: "Skul_Ring_IL"
+ Name: "Skul_Ring_IL"
+},
+{
+ Id: 28509
+ AegisName: "Ring_IL"
+ Name: "Ring_IL"
+},
+{
+ Id: 28510
+ AegisName: "Vampire_s_Servant"
+ Name: "Vampire_s_Servant"
+},
+{
+ Id: 28534
+ AegisName: "RKC_2017_Pendant"
+ Name: "RKC_2017_Pendant"
+},
+{
+ Id: 28535
+ AegisName: "RKC_2017_Ring"
+ Name: "RKC_2017_Ring"
+},
+{
+ Id: 28566
+ AegisName: "Rebeginer_Ring"
+ Name: "Rebeginer_Ring"
+},
+{
+ Id: 28612
+ AegisName: "Book_Of_The_Apo_IL"
+ Name: "Book_Of_The_Apo_IL"
+},
+{
+ Id: 28616
+ AegisName: "Rebeginer_AB_Bible"
+ Name: "Rebeginer_AB_Bible"
+},
+{
+ Id: 28626
+ AegisName: "Tablet_IL"
+ Name: "Tablet_IL"
+},
+{
+ Id: 28629
+ AegisName: "Circuit_Board_OS"
+ Name: "Circuit_Board_OS"
+},
+{
+ Id: 28631
+ AegisName: "Time_Kamiji"
+ Name: "Time_Kamiji"
+},
+{
+ Id: 28725
+ AegisName: "Moonlight_Sword_IL"
+ Name: "Moonlight_Sword_IL"
+},
+{
+ Id: 28740
+ AegisName: "Rebeginer_SC_Dagger"
+ Name: "Rebeginer_SC_Dagger"
+},
+{
+ Id: 28745
+ AegisName: "Counter_Dagger_IL"
+ Name: "Counter_Dagger_IL"
+},
+{
+ Id: 28755
+ AegisName: "Kuroiro_OS"
+ Name: "Kuroiro_OS"
+},
+{
+ Id: 28759
+ AegisName: "Evt_Magic_Sword"
+ Name: "Evt_Magic_Sword"
+},
+{
+ Id: 28922
+ AegisName: "Herald_Of_GOD_IL"
+ Name: "Herald_Of_GOD_IL"
+},
+{
+ Id: 28942
+ AegisName: "Bloody_Knight_Shield"
+ Name: "Bloody_Knight_Shield"
+},
+{
+ Id: 28945
+ AegisName: "Bloody_Knight_Shield_"
+ Name: "Bloody_Knight_Shield_"
+},
+{
+ Id: 28946
+ AegisName: "Bloody_Knight_Shield__"
+ Name: "Bloody_Knight_Shield__"
+},
+{
+ Id: 28953
+ AegisName: "Poring_B_Shield"
+ Name: "Poring_B_Shield"
+},
+{
+ Id: 29540
+ AegisName: "Deep_Black_Pearl"
+ Name: "Deep_Black_Pearl"
+},
+{
+ Id: 29547
+ AegisName: "Sea_Sapphire"
+ Name: "Sea_Sapphire"
+},
+{
+ Id: 29548
+ AegisName: "Red_Fog_Garnet"
+ Name: "Red_Fog_Garnet"
+},
+{
+ Id: 29549
+ AegisName: "Lightning_Topaz"
+ Name: "Lightning_Topaz"
+},
+{
+ Id: 29550
+ AegisName: "Poisoned_Amethyst"
+ Name: "Poisoned_Amethyst"
+},
+{
+ Id: 29551
+ AegisName: "Frost_Zircon"
+ Name: "Frost_Zircon"
+},
+{
+ Id: 29552
+ AegisName: "Deep_Black_Pearl_"
+ Name: "Deep_Black_Pearl_"
+},
+{
+ Id: 29587
+ AegisName: "Lightning_Topaz_"
+ Name: "Lightning_Topaz_"
+},
+{
+ Id: 29588
+ AegisName: "Bloody_Ruby"
+ Name: "Bloody_Ruby"
+},
+{
+ Id: 29589
+ AegisName: "GH_Cursed_Gemstone_"
+ Name: "GH_Cursed_Gemstone_"
+},
+{
+ Id: 29590
+ AegisName: "GH_Cursed_Crystal_"
+ Name: "GH_Cursed_Crystal_"
+},
+{
+ Id: 29591
+ AegisName: "Cursed_Emerald"
+ Name: "Cursed_Emerald"
+},
+{
+ Id: 29592
+ AegisName: "Shinee_Opal"
+ Name: "Shinee_Opal"
+},
+{
+ Id: 31172
+ AegisName: "Roast_Memory"
+ Name: "Roast_Memory"
+},
+{
+ Id: 31186
+ AegisName: "C_Black_Cat"
+ Name: "C_Black_Cat"
+},
+{
+ Id: 31195
+ AegisName: "Choco_Minihat"
+ Name: "Choco_Minihat"
+},
+{
+ Id: 31197
+ AegisName: "Egg_Crispinette_"
+ Name: "Egg_Crispinette_"
+},
+{
+ Id: 31208
+ AegisName: "Straight_Long_YL"
+ Name: "Straight_Long_YL"
+},
+{
+ Id: 31209
+ AegisName: "Straight_Long_WH"
+ Name: "Straight_Long_WH"
+},
+{
+ Id: 31249
+ AegisName: "Rabbit_Hopping"
+ Name: "Rabbit_Hopping"
+},
+{
+ Id: 31261
+ AegisName: "Soda_In_Mouth_"
+ Name: "Soda_In_Mouth_"
+},
+{
+ Id: 31300
+ AegisName: "Warm_Cat_Muffler"
+ Name: "Warm_Cat_Muffler"
+},
+{
+ Id: 31313
+ AegisName: "C_FallenAngelWingEar"
+ Name: "C_FallenAngelWingEar"
+},
+{
+ Id: 31314
+ AegisName: "C_Ghost_Holiday"
+ Name: "C_Ghost_Holiday"
+},
+{
+ Id: 31316
+ AegisName: "C_FlutterButterfly_BL"
+ Name: "C_FlutterButterfly_BL"
+},
+{
+ Id: 31329
+ AegisName: "C_Alice_Wig"
+ Name: "C_Alice_Wig"
+},
+{
+ Id: 31332
+ AegisName: "C_Khalitzburg_Helm_BL"
+ Name: "C_Khalitzburg_Helm_BL"
+},
+{
+ Id: 31368
+ AegisName: "Harvest_Festa_Hat"
+ Name: "Harvest_Festa_Hat"
+},
+{
+ Id: 31369
+ AegisName: "Straight_Long_WH_"
+ Name: "Straight_Long_WH_"
+},
+{
+ Id: 31370
+ AegisName: "Straight_Long_YL_"
+ Name: "Straight_Long_YL_"
+},
+{
+ Id: 31387
+ AegisName: "Jjakk"
+ Name: "Jjakk"
+},
+{
+ Id: 31389
+ AegisName: "White_Bird_Rose"
+ Name: "White_Bird_Rose"
+},
+{
+ Id: 31390
+ AegisName: "Let_It_Snow"
+ Name: "Let_It_Snow"
+},
+{
+ Id: 31396
+ AegisName: "C_Sorcerer_Hood"
+ Name: "C_Sorcerer_Hood"
+},
+{
+ Id: 31397
+ AegisName: "C_Pope_Sitting_Head"
+ Name: "C_Pope_Sitting_Head"
+},
+{
+ Id: 31398
+ AegisName: "C_Blinking_Thin_Eyes"
+ Name: "C_Blinking_Thin_Eyes"
+},
+{
+ Id: 31407
+ AegisName: "Alice_Wig_PK"
+ Name: "Alice_Wig_PK"
+},
+{
+ Id: 31415
+ AegisName: "C_Wanderer_Sakkat"
+ Name: "C_Wanderer_Sakkat"
+},
+{
+ Id: 31432
+ AegisName: "C_Luwmin_Ice"
+ Name: "C_Luwmin_Ice"
+},
+{
+ Id: 31433
+ AegisName: "C_Astro_Circle"
+ Name: "C_Astro_Circle"
+},
+{
+ Id: 31437
+ AegisName: "C_Baby_Penguin"
+ Name: "C_Baby_Penguin"
+},
+{
+ Id: 31439
+ AegisName: "C_Fluffy_Heart_Earmuffs"
+ Name: "C_Fluffy_Heart_Earmuffs"
+},
+{
+ Id: 31452
+ AegisName: "White_Cat"
+ Name: "White_Cat"
+},
+{
+ Id: 31454
+ AegisName: "Love_Feeling"
+ Name: "Love_Feeling"
+},
+{
+ Id: 31455
+ AegisName: "Enchanted_Dog"
+ Name: "Enchanted_Dog"
+},
+{
+ Id: 31460
+ AegisName: "C_Blessing_Sky_Lantern"
+ Name: "C_Blessing_Sky_Lantern"
+},
+{
+ Id: 31463
+ AegisName: "C_Flying_Drone"
+ Name: "C_Flying_Drone"
+},
+{
+ Id: 31465
+ AegisName: "Egg_Minihat"
+ Name: "Egg_Minihat"
+},
+{
+ Id: 31489
+ AegisName: "C_Bouquet_Hat"
+ Name: "C_Bouquet_Hat"
+},
+{
+ Id: 31490
+ AegisName: "C_Poring_Muffler"
+ Name: "C_Poring_Muffler"
+},
+{
+ Id: 31494
+ AegisName: "Volume_Low_Twin"
+ Name: "Volume_Low_Twin"
+},
+{
+ Id: 31495
+ AegisName: "Lolita_Two_Side_Up"
+ Name: "Lolita_Two_Side_Up"
+},
+{
+ Id: 31498
+ AegisName: "C_Elephangel_TH"
+ Name: "C_Elephangel_TH"
+},
+{
+ Id: 31516
+ AegisName: "Mini_Melon"
+ Name: "Mini_Melon"
+},
+{
+ Id: 31518
+ AegisName: "Pop_Popcorn_Hat_"
+ Name: "Pop_Popcorn_Hat_"
+},
+{
+ Id: 31519
+ AegisName: "Slurp_Slurp_Hat"
+ Name: "Slurp_Slurp_Hat"
+},
+{
+ Id: 31529
+ AegisName: "C_Happy_Rabbit_Ribbon"
+ Name: "C_Happy_Rabbit_Ribbon"
+},
+{
+ Id: 31580
+ AegisName: "Autumnal_Flavor"
+ Name: "Autumnal_Flavor"
+},
+{
+ Id: 31589
+ AegisName: "GOLD_MAJESTIC_GOUT"
+ Name: "GOLD_MAJESTIC_GOUT"
+},
+{
+ Id: 31606
+ AegisName: "C_Autumn_Headband"
+ Name: "C_Autumn_Headband"
+},
+{
+ Id: 32005
+ AegisName: "Pole_Axe_IL"
+ Name: "Pole_Axe_IL"
+},
+{
+ Id: 32013
+ AegisName: "Metal_Stick"
+ Name: "Metal_Stick"
+},
+{
+ Id: 32019
+ AegisName: "Boost_Lance_OS"
+ Name: "Boost_Lance_OS"
+},
+{
+ Id: 32021
+ AegisName: "Evt_Undine_Spear_K"
+ Name: "Evt_Undine_Spear_K"
+},
+{
+ Id: 32207
+ AegisName: "Illusion_B_R"
+ Name: "Illusion_B_R"
+},
+{
+ Id: 32208
+ AegisName: "Illusion_B_L"
+ Name: "Illusion_B_L"
+},
+{
+ Id: 32209
+ AegisName: "Illusion_BC_R"
+ Name: "Illusion_BC_R"
+},
+{
+ Id: 32210
+ AegisName: "Illusion_BC_L"
+ Name: "Illusion_BC_L"
+},
+{
+ Id: 32221
+ AegisName: "Time_Overload_Ring"
+ Name: "Time_Overload_Ring"
+},
+{
+ Id: 32237
+ AegisName: "Celine_Brooch"
+ Name: "Celine_Brooch"
+},
)
diff --git a/db/pre-re/skill_db.conf b/db/pre-re/skill_db.conf
index 4873012aa..21a0f0e78 100644
--- a/db/pre-re/skill_db.conf
+++ b/db/pre-re/skill_db.conf
@@ -4299,6 +4299,7 @@ skill_db: (
Element: "Ele_Wind"
DamageType: {
SplashArea: true
+ SplitDamage: true
IgnoreFlee: true
}
SplashRange: 1
@@ -4350,6 +4351,7 @@ skill_db: (
Element: "Ele_Fire"
DamageType: {
SplashArea: true
+ SplitDamage: true
IgnoreFlee: true
}
SplashRange: 2
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 093fc4868..e5a05e8bc 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -10138,6 +10138,11 @@ item_db: (
bonus bInt,8;
">
},
+{
+ Id: 1326
+ AegisName: "War_Axe_IL"
+ Name: "War_Axe_IL"
+},
//== Two-Handed Axes =======================================
{
@@ -21483,6 +21488,26 @@ item_db: (
if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }
">
},
+{
+ Id: 1846
+ AegisName: "Combo_Battle_Glove_IL"
+ Name: "Combo_Battle_Glove_IL"
+},
+{
+ Id: 1848
+ AegisName: "Rebeginer_SR_Nuckle"
+ Name: "Rebeginer_SR_Nuckle"
+},
+{
+ Id: 1862
+ AegisName: "Burning_Knuckle_OS"
+ Name: "Burning_Knuckle_OS"
+},
+{
+ Id: 1864
+ AegisName: "Evt_Iron_Nail_K"
+ Name: "Evt_Iron_Nail_K"
+},
//== Instruments ===========================================
{
@@ -24304,6 +24329,26 @@ item_db: (
bonus bUnbreakableWeapon,0;
">
},
+{
+ Id: 2039
+ AegisName: "Wizardy_Staff_IL"
+ Name: "Wizardy_Staff_IL"
+},
+{
+ Id: 2046
+ AegisName: "Rebeginer_WL_Staff"
+ Name: "Rebeginer_WL_Staff"
+},
+{
+ Id: 2051
+ AegisName: "Survival_Staff_IL"
+ Name: "Survival_Staff_IL"
+},
+{
+ Id: 2054
+ AegisName: "Evt_Iron_Staff"
+ Name: "Evt_Iron_Staff"
+},
//== Shields ===============================================
{
@@ -84036,6 +84081,11 @@ item_db: (
Type: "IT_PETARMOR"
Buy: 20
},
+{
+ Id: 10042
+ AegisName: "Dark_Mane"
+ Name: "Dark_Mane"
+},
//== Misc "Etc" Books ======================================
{
@@ -85233,6 +85283,51 @@ item_db: (
Script: <" itemheal rand(10,40),0; ">
},
{
+ Id: 11607
+ AegisName: "Crepe"
+ Name: "Crepe"
+},
+{
+ Id: 11608
+ AegisName: "Chocolate_Egg"
+ Name: "Chocolate_Egg"
+},
+{
+ Id: 11609
+ AegisName: "Yummy_Cookie_Egg"
+ Name: "Yummy_Cookie_Egg"
+},
+{
+ Id: 11611
+ AegisName: "Pop_Corn"
+ Name: "Pop_Corn"
+},
+{
+ Id: 11612
+ AegisName: "Aromatic_Pop_Corn"
+ Name: "Aromatic_Pop_Corn"
+},
+{
+ Id: 11614
+ AegisName: "Fresh_Milk"
+ Name: "Fresh_Milk"
+},
+{
+ Id: 11615
+ AegisName: "Sweet_Potato_"
+ Name: "Sweet_Potato_"
+},
+{
+ Id: 11620
+ AegisName: "Bearopy"
+ Name: "Bearopy"
+},
+{
+ Id: 11625
+ AegisName: "Aromatic_Pop_Corn_"
+ Name: "Aromatic_Pop_Corn_"
+},
+{
Id: 11701
AegisName: "Girl_Bunch_Of_Flower"
Name: "Girl's Bouquet"
@@ -101135,6 +101230,16 @@ item_db: (
Subtype: "W_REVOLVER"
Script: <" bonus bAtk,((min(getrefine(),15)) ** (2)); ">
},
+{
+ Id: 13144
+ AegisName: "Rebeginer_RL_Gun"
+ Name: "Rebeginer_RL_Gun"
+},
+{
+ Id: 13146
+ AegisName: "Calf_Deathadder"
+ Name: "Calf_Deathadder"
+},
//== Guns ==================================================
{
@@ -104090,6 +104195,21 @@ item_db: (
bonus bUnbreakableWeapon,0;
">
},
+{
+ Id: 13337
+ AegisName: "Huuma_Fluttering_Snow_IL"
+ Name: "Huuma_Fluttering_Snow_IL"
+},
+{
+ Id: 13338
+ AegisName: "Huuma_Bird_Wing_IL"
+ Name: "Huuma_Bird_Wing_IL"
+},
+{
+ Id: 13341
+ AegisName: "Rebeginer_KO_Humma"
+ Name: "Rebeginer_KO_Humma"
+},
//== More One-Handed Swords ================================
{
@@ -105472,6 +105592,26 @@ item_db: (
Subtype: "W_1HSWORD"
Script: <" bonus bAtk,((min(getrefine(),15)) ** (2)); ">
},
+{
+ Id: 13469
+ AegisName: "Immaterial_Sword_IL"
+ Name: "Immaterial_Sword_IL"
+},
+{
+ Id: 13483
+ AegisName: "Rebeginer_GN_Sword"
+ Name: "Rebeginer_GN_Sword"
+},
+{
+ Id: 13493
+ AegisName: "Cannon_Rapier_OS"
+ Name: "Cannon_Rapier_OS"
+},
+{
+ Id: 13495
+ AegisName: "Evt_Bluefire_Sword"
+ Name: "Evt_Bluefire_Sword"
+},
//== More Cash Shop Items ==================================
{
@@ -125009,6 +125149,61 @@ item_db: (
bonus bUseSPrate, -5;
">
},
+{
+ Id: 15212
+ AegisName: "YSF01_Plate"
+ Name: "YSF01_Plate"
+},
+{
+ Id: 15246
+ AegisName: "True_Hunting_Mail"
+ Name: "True_Hunting_Mail"
+},
+{
+ Id: 15247
+ AegisName: "R_Hunting_Mail"
+ Name: "R_Hunting_Mail"
+},
+{
+ Id: 15250
+ AegisName: "Rebeginer_Suits"
+ Name: "Rebeginer_Suits"
+},
+{
+ Id: 15280
+ AegisName: "S_CriticalHit_Armor"
+ Name: "S_CriticalHit_Armor"
+},
+{
+ Id: 15348
+ AegisName: "Goibne_Armor_IL"
+ Name: "Goibne_Armor_IL"
+},
+{
+ Id: 15376
+ AegisName: "Illusion_Armor_A"
+ Name: "Illusion_Armor_A"
+},
+{
+ Id: 15377
+ AegisName: "Illusion_Armor_B"
+ Name: "Illusion_Armor_B"
+},
+{
+ Id: 15383
+ AegisName: "Time_Overload_Robe"
+ Name: "Time_Overload_Robe"
+},
+{
+ Id: 15388
+ AegisName: "Schmidt_Suits"
+ Name: "Schmidt_Suits"
+},
+{
+ Id: 15389
+ AegisName: "Schmidt_Manteau"
+ Name: "Schmidt_Manteau"
+},
//== More Maces ============================================
{
@@ -126012,6 +126207,36 @@ item_db: (
bonus bUnbreakableWeapon,0;
">
},
+{
+ Id: 16063
+ AegisName: "Long_Mace_IL"
+ Name: "Long_Mace_IL"
+},
+{
+ Id: 16065
+ AegisName: "Iron_Driver_IL"
+ Name: "Iron_Driver_IL"
+},
+{
+ Id: 16075
+ AegisName: "Rebeginer_NC_Mace"
+ Name: "Rebeginer_NC_Mace"
+},
+{
+ Id: 16076
+ AegisName: "Rebeginer_N2_Mace"
+ Name: "Rebeginer_N2_Mace"
+},
+{
+ Id: 16088
+ AegisName: "Saphir_Hall_OS"
+ Name: "Saphir_Hall_OS"
+},
+{
+ Id: 16089
+ AegisName: "Ultio_Spes_OS"
+ Name: "Ultio_Spes_OS"
+},
//== More Rental Boxes =====================================
{
@@ -127246,6 +127471,11 @@ item_db: (
">
},
{
+ Id: 16423
+ AegisName: "PoporingKey"
+ Name: "PoporingKey"
+},
+{
Id: 16424
AegisName: "Executioner_Box_"
Name: "Executioner Box"
@@ -130381,6 +130611,111 @@ item_db: (
Weight: 10
Script: <" getitem(Cash_Hair_Coupon, 1); ">
},
+{
+ Id: 17774
+ AegisName: "Almighty_Plus_Box3"
+ Name: "Almighty_Plus_Box3"
+},
+{
+ Id: 17775
+ AegisName: "Almighty100_PlusBox3"
+ Name: "Almighty100_PlusBox3"
+},
+{
+ Id: 17882
+ AegisName: "Refine_Ore_Box17_Set10"
+ Name: "Refine_Ore_Box17_Set10"
+},
+{
+ Id: 17883
+ AegisName: "Refine_Ore_Box17"
+ Name: "Refine_Ore_Box17"
+},
+{
+ Id: 17884
+ AegisName: "HD_Refine_Ore_Box5"
+ Name: "HD_Refine_Ore_Box5"
+},
+{
+ Id: 17885
+ AegisName: "HD_High_Refine_Box3"
+ Name: "HD_High_Refine_Box3"
+},
+{
+ Id: 17886
+ AegisName: "Infinity_Box"
+ Name: "Infinity_Box"
+},
+{
+ Id: 17887
+ AegisName: "Infinity_10_Box"
+ Name: "Infinity_10_Box"
+},
+{
+ Id: 17894
+ AegisName: "New_Vigorgra_Package"
+ Name: "New_Vigorgra_Package"
+},
+{
+ Id: 17895
+ AegisName: "New_Vigorgra_Set"
+ Name: "New_Vigorgra_Set"
+},
+{
+ Id: 17914
+ AegisName: "2017_GStar_CostumeBox"
+ Name: "2017_GStar_CostumeBox"
+},
+{
+ Id: 17923
+ AegisName: "Refine_Ore_Box18"
+ Name: "Refine_Ore_Box18"
+},
+{
+ Id: 17924
+ AegisName: "Refine_Ore_Box18_Set10"
+ Name: "Refine_Ore_Box18_Set10"
+},
+{
+ Id: 17925
+ AegisName: "HD_Refine_Ore_Box6"
+ Name: "HD_Refine_Ore_Box6"
+},
+{
+ Id: 17926
+ AegisName: "HD_High_Refine_Box4"
+ Name: "HD_High_Refine_Box4"
+},
+{
+ Id: 17935
+ AegisName: "New_3_Potion_pack"
+ Name: "New_3_Potion_pack"
+},
+{
+ Id: 17936
+ AegisName: "New_3_Potion_10pack"
+ Name: "New_3_Potion_10pack"
+},
+{
+ Id: 17940
+ AegisName: "Nyangvine_Box10_3"
+ Name: "Nyangvine_Box10_3"
+},
+{
+ Id: 17941
+ AegisName: "Nyangvine_Box100_3"
+ Name: "Nyangvine_Box100_3"
+},
+{
+ Id: 17944
+ AegisName: "Almighty_Plus_Box4"
+ Name: "Almighty_Plus_Box4"
+},
+{
+ Id: 17945
+ AegisName: "Almighty100_PlusBox4"
+ Name: "Almighty100_PlusBox4"
+},
//== Mechanic / Geneticist Cannon Balls ====================
{
Id: 18000
@@ -131205,6 +131540,56 @@ item_db: (
if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }
">
},
+{
+ Id: 18149
+ AegisName: "Balistar_IL"
+ Name: "Balistar_IL"
+},
+{
+ Id: 18165
+ AegisName: "Rebeginer_RN_Bow"
+ Name: "Rebeginer_RN_Bow"
+},
+{
+ Id: 18166
+ AegisName: "Rebeginer_WM_Bow"
+ Name: "Rebeginer_WM_Bow"
+},
+{
+ Id: 18170
+ AegisName: "Neev_Bow_Of_Rogue"
+ Name: "Neev_Bow_Of_Rogue"
+},
+{
+ Id: 18174
+ AegisName: "Hunter_Bow_IL"
+ Name: "Hunter_Bow_IL"
+},
+{
+ Id: 18178
+ AegisName: "Virtual_Bow_OS"
+ Name: "Virtual_Bow_OS"
+},
+{
+ Id: 18179
+ AegisName: "MH_P89_OS"
+ Name: "MH_P89_OS"
+},
+{
+ Id: 18180
+ AegisName: "AC_B44_OS"
+ Name: "AC_B44_OS"
+},
+{
+ Id: 18182
+ AegisName: "Evt_Royal_Bow_K"
+ Name: "Evt_Royal_Bow_K"
+},
+{
+ Id: 18183
+ AegisName: "Evt_Narcis_Bow"
+ Name: "Evt_Narcis_Bow"
+},
//== More Headgears ========================================
{
@@ -138368,6 +138753,101 @@ item_db: (
bonus bHit,8;
">
},
+{
+ Id: 19209
+ AegisName: "Nurse_Cap_IL"
+ Name: "Nurse_Cap_IL"
+},
+{
+ Id: 19210
+ AegisName: "Apple_Of_Archer_IL"
+ Name: "Apple_Of_Archer_IL"
+},
+{
+ Id: 19223
+ AegisName: "Cap_IL"
+ Name: "Cap_IL"
+},
+{
+ Id: 19247
+ AegisName: "Fancy_Flower_IL"
+ Name: "Fancy_Flower_IL"
+},
+{
+ Id: 19264
+ AegisName: "GoldFish_Hat"
+ Name: "GoldFish_Hat"
+},
+{
+ Id: 19265
+ AegisName: "Smoky_TransformHat"
+ Name: "Smoky_TransformHat"
+},
+{
+ Id: 19277
+ AegisName: "Soda_In_Mouth"
+ Name: "Soda_In_Mouth"
+},
+{
+ Id: 19291
+ AegisName: "C_Shiba_Inu"
+ Name: "C_Shiba_Inu"
+},
+{
+ Id: 19294
+ AegisName: "C_CatEars_Cyber_HeadP_R"
+ Name: "C_CatEars_Cyber_HeadP_R"
+},
+{
+ Id: 19300
+ AegisName: "Dog_Officer"
+ Name: "Dog_Officer"
+},
+{
+ Id: 19310
+ AegisName: "Rebeginer_Cap"
+ Name: "Rebeginer_Cap"
+},
+{
+ Id: 19339
+ AegisName: "Egg_Crispinette"
+ Name: "Egg_Crispinette"
+},
+{
+ Id: 19344
+ AegisName: "Headband_Of_Power_IL"
+ Name: "Headband_Of_Power_IL"
+},
+{
+ Id: 19366
+ AegisName: "Goibne_Helmet_IL"
+ Name: "Goibne_Helmet_IL"
+},
+{
+ Id: 19382
+ AegisName: "Pop_Popcorn_Hat"
+ Name: "Pop_Popcorn_Hat"
+},
+{
+ Id: 19389
+ AegisName: "E_Oxygen_Mask"
+ Name: "E_Oxygen_Mask"
+},
+{
+ Id: 19396
+ AegisName: "Racing_C_Star"
+ Name: "Racing_C_Star"
+},
+{
+ Id: 19397
+ AegisName: "Racing_C_Soul"
+ Name: "Racing_C_Soul"
+},
+{
+ Id: 19404
+ AegisName: "Biting_Off_Rideword"
+ Name: "Biting_Off_Rideword"
+},
//== Costume System ========================================
{
@@ -145232,6 +145712,46 @@ item_db: (
Script: <" bonus bUnbreakableHelm,0; ">
},
{
+ Id: 20514
+ AegisName: "C_Thanatos_Sword"
+ Name: "C_Thanatos_Sword"
+},
+{
+ Id: 20515
+ AegisName: "C_Magic_Circle"
+ Name: "C_Magic_Circle"
+},
+{
+ Id: 20516
+ AegisName: "C_Wings_of_Michael"
+ Name: "C_Wings_of_Michael"
+},
+{
+ Id: 20517
+ AegisName: "C_GiantCatBag_TW"
+ Name: "C_GiantCatBag_TW"
+},
+{
+ Id: 20528
+ AegisName: "C_GoldButterfly_Wing"
+ Name: "C_GoldButterfly_Wing"
+},
+{
+ Id: 20530
+ AegisName: "C_Wings_of_Gabriel"
+ Name: "C_Wings_of_Gabriel"
+},
+{
+ Id: 20533
+ AegisName: "C_PinkButterfly_Wing_T"
+ Name: "C_PinkButterfly_Wing_T"
+},
+{
+ Id: 20535
+ AegisName: "C_Digital_Space"
+ Name: "C_Digital_Space"
+},
+{
Id: 20600
AegisName: "Fantastic_Aura"
Name: "Fantastic Aura"
@@ -145923,6 +146443,71 @@ item_db: (
bonus bLuk, getrefine() / 2;
">
},
+{
+ Id: 20838
+ AegisName: "Muffler_IL"
+ Name: "Muffler_IL"
+},
+{
+ Id: 20840
+ AegisName: "Cape_Of_Ancient_Lord_IL"
+ Name: "Cape_Of_Ancient_Lord_IL"
+},
+{
+ Id: 20847
+ AegisName: "Clack_Of_Servival_IL"
+ Name: "Clack_Of_Servival_IL"
+},
+{
+ Id: 20856
+ AegisName: "YSF01_Manteau"
+ Name: "YSF01_Manteau"
+},
+{
+ Id: 20902
+ AegisName: "True_Hunting_Manteau"
+ Name: "True_Hunting_Manteau"
+},
+{
+ Id: 20903
+ AegisName: "R_Hunting_Manteau"
+ Name: "R_Hunting_Manteau"
+},
+{
+ Id: 20906
+ AegisName: "Rebeginer_Manteau"
+ Name: "Rebeginer_Manteau"
+},
+{
+ Id: 20923
+ AegisName: "Goibne_Shoulder_IL"
+ Name: "Goibne_Shoulder_IL"
+},
+{
+ Id: 20933
+ AegisName: "Illusion_Engine_A"
+ Name: "Illusion_Engine_A"
+},
+{
+ Id: 20934
+ AegisName: "Illusion_Engine_B"
+ Name: "Illusion_Engine_B"
+},
+{
+ Id: 20939
+ AegisName: "Time_Overload_Hood"
+ Name: "Time_Overload_Hood"
+},
+{
+ Id: 20940
+ AegisName: "Violet_Halo"
+ Name: "Violet_Halo"
+},
+{
+ Id: 20944
+ AegisName: "Fairy_Cloth"
+ Name: "Fairy_Cloth"
+},
//== New Two-Handed Swords =================================
{
@@ -146402,6 +146987,21 @@ item_db: (
if(getrefine()>=9) { skill LK_BERSERK,1; }
">
},
+{
+ Id: 21037
+ AegisName: "Rebeginer_RK_T_Sword"
+ Name: "Rebeginer_RK_T_Sword"
+},
+{
+ Id: 21047
+ AegisName: "Beam_Claymore_OS"
+ Name: "Beam_Claymore_OS"
+},
+{
+ Id: 21049
+ AegisName: "Evt_Oriental_Sword"
+ Name: "Evt_Oriental_Sword"
+},
//== New Shoes =============================================
{
@@ -147183,6 +147783,61 @@ item_db: (
bonus2 bSkillUseSP, SU_LOPE, 5;
">
},
+{
+ Id: 22133
+ AegisName: "Shoes_IL"
+ Name: "Shoes_IL"
+},
+{
+ Id: 22141
+ AegisName: "YSF01_Greave"
+ Name: "YSF01_Greave"
+},
+{
+ Id: 22168
+ AegisName: "True_Hunting_Boots"
+ Name: "True_Hunting_Boots"
+},
+{
+ Id: 22169
+ AegisName: "R_Hunting_Boots"
+ Name: "R_Hunting_Boots"
+},
+{
+ Id: 22171
+ AegisName: "ShoesOfGuardsman"
+ Name: "ShoesOfGuardsman"
+},
+{
+ Id: 22173
+ AegisName: "Rebeginer_Boots"
+ Name: "Rebeginer_Boots"
+},
+{
+ Id: 22190
+ AegisName: "Boots_IL"
+ Name: "Boots_IL"
+},
+{
+ Id: 22192
+ AegisName: "Goibne_Boots_IL"
+ Name: "Goibne_Boots_IL"
+},
+{
+ Id: 22196
+ AegisName: "Illusion_Leg_A"
+ Name: "Illusion_Leg_A"
+},
+{
+ Id: 22197
+ AegisName: "Illusion_Leg_B"
+ Name: "Illusion_Leg_B"
+},
+{
+ Id: 22204
+ AegisName: "Time_Overload_Boots"
+ Name: "Time_Overload_Boots"
+},
//== New Etc Items =========================================
{
@@ -147527,6 +148182,511 @@ item_db: (
Type: "IT_USABLE"
Script: <" Zeny += rand(500, 550); ">
},
+{
+ Id: 23242
+ AegisName: "Fried_Chicken"
+ Name: "Fried_Chicken"
+},
+{
+ Id: 23243
+ AegisName: "Fried_Chicken_1"
+ Name: "Fried_Chicken_1"
+},
+{
+ Id: 23256
+ AegisName: "Elixir_Bandage"
+ Name: "Elixir_Bandage"
+},
+{
+ Id: 23257
+ AegisName: "Dew_Of_Old_Tree"
+ Name: "Dew_Of_Old_Tree"
+},
+{
+ Id: 23258
+ AegisName: "Foul_Rotten_Meat"
+ Name: "Foul_Rotten_Meat"
+},
+{
+ Id: 23259
+ AegisName: "St_Cupcake"
+ Name: "St_Cupcake"
+},
+{
+ Id: 23260
+ AegisName: "Parfait"
+ Name: "Parfait"
+},
+{
+ Id: 23261
+ AegisName: "Macaron"
+ Name: "Macaron"
+},
+{
+ Id: 23277
+ AegisName: "Mado_Box"
+ Name: "Mado_Box"
+},
+{
+ Id: 23332
+ AegisName: "Costama_EggV01"
+ Name: "Costama_EggV01"
+},
+{
+ Id: 23342
+ AegisName: "Vend_Arbeit1_1Lv"
+ Name: "Vend_Arbeit1_1Lv"
+},
+{
+ Id: 23343
+ AegisName: "Vend_Arbeit1_2Lv"
+ Name: "Vend_Arbeit1_2Lv"
+},
+{
+ Id: 23344
+ AegisName: "Vend_Arbeit1_3Lv"
+ Name: "Vend_Arbeit1_3Lv"
+},
+{
+ Id: 23345
+ AegisName: "Buy_Arbeit1_1Lv"
+ Name: "Buy_Arbeit1_1Lv"
+},
+{
+ Id: 23346
+ AegisName: "Buy_Arbeit1_2Lv"
+ Name: "Buy_Arbeit1_2Lv"
+},
+{
+ Id: 23347
+ AegisName: "Buy_Arbeit1_3Lv"
+ Name: "Buy_Arbeit1_3Lv"
+},
+{
+ Id: 23348
+ AegisName: "Vend_Arbeit_1Lv"
+ Name: "Vend_Arbeit_1Lv"
+},
+{
+ Id: 23349
+ AegisName: "Vend_Arbeit_2Lv"
+ Name: "Vend_Arbeit_2Lv"
+},
+{
+ Id: 23350
+ AegisName: "Vend_Arbeit_3Lv"
+ Name: "Vend_Arbeit_3Lv"
+},
+{
+ Id: 23351
+ AegisName: "Buy_Arbeit_1Lv"
+ Name: "Buy_Arbeit_1Lv"
+},
+{
+ Id: 23352
+ AegisName: "Buy_Arbeit_2Lv"
+ Name: "Buy_Arbeit_2Lv"
+},
+{
+ Id: 23353
+ AegisName: "Buy_Arbeit_3Lv"
+ Name: "Buy_Arbeit_3Lv"
+},
+{
+ Id: 23354
+ AegisName: "Vend_Arbeit1_1Lv_"
+ Name: "Vend_Arbeit1_1Lv_"
+},
+{
+ Id: 23355
+ AegisName: "Vend_Arbeit1_2Lv_"
+ Name: "Vend_Arbeit1_2Lv_"
+},
+{
+ Id: 23356
+ AegisName: "Vend_Arbeit1_3Lv_"
+ Name: "Vend_Arbeit1_3Lv_"
+},
+{
+ Id: 23357
+ AegisName: "Buy_Arbeit1_1Lv_"
+ Name: "Buy_Arbeit1_1Lv_"
+},
+{
+ Id: 23358
+ AegisName: "Buy_Arbeit1_2Lv_"
+ Name: "Buy_Arbeit1_2Lv_"
+},
+{
+ Id: 23359
+ AegisName: "Buy_Arbeit1_3Lv_"
+ Name: "Buy_Arbeit1_3Lv_"
+},
+{
+ Id: 23405
+ AegisName: "Green_Scroll_K2"
+ Name: "Green_Scroll_K2"
+},
+{
+ Id: 23440
+ AegisName: "Sentimental_Scroll"
+ Name: "Sentimental_Scroll"
+},
+{
+ Id: 23444
+ AegisName: "July_Hair_Box"
+ Name: "July_Hair_Box"
+},
+{
+ Id: 23446
+ AegisName: "Savage_Trap"
+ Name: "Savage_Trap"
+},
+{
+ Id: 23473
+ AegisName: "Infinity_Scroll"
+ Name: "Infinity_Scroll"
+},
+{
+ Id: 23475
+ AegisName: "Infinity_Drink"
+ Name: "Infinity_Drink"
+},
+{
+ Id: 23484
+ AegisName: "Firstaid_Box_5"
+ Name: "Firstaid_Box_5"
+},
+{
+ Id: 23485
+ AegisName: "Firstaid_Box_10"
+ Name: "Firstaid_Box_10"
+},
+{
+ Id: 23486
+ AegisName: "Firstaid_Box_15"
+ Name: "Firstaid_Box_15"
+},
+{
+ Id: 23487
+ AegisName: "Firstaid_Box_20"
+ Name: "Firstaid_Box_20"
+},
+{
+ Id: 23488
+ AegisName: "Firstaid_Box_25"
+ Name: "Firstaid_Box_25"
+},
+{
+ Id: 23489
+ AegisName: "Firstaid_Box_30"
+ Name: "Firstaid_Box_30"
+},
+{
+ Id: 23490
+ AegisName: "Firstaid_Box_35"
+ Name: "Firstaid_Box_35"
+},
+{
+ Id: 23491
+ AegisName: "Firstaid_Box_40"
+ Name: "Firstaid_Box_40"
+},
+{
+ Id: 23492
+ AegisName: "Firstaid_Box_45"
+ Name: "Firstaid_Box_45"
+},
+{
+ Id: 23493
+ AegisName: "Firstaid_Box_50"
+ Name: "Firstaid_Box_50"
+},
+{
+ Id: 23494
+ AegisName: "Firstaid_Box_55"
+ Name: "Firstaid_Box_55"
+},
+{
+ Id: 23495
+ AegisName: "Firstaid_Box_60"
+ Name: "Firstaid_Box_60"
+},
+{
+ Id: 23496
+ AegisName: "Firstaid_Box_65"
+ Name: "Firstaid_Box_65"
+},
+{
+ Id: 23497
+ AegisName: "Firstaid_Box_70"
+ Name: "Firstaid_Box_70"
+},
+{
+ Id: 23498
+ AegisName: "Firstaid_Box_75"
+ Name: "Firstaid_Box_75"
+},
+{
+ Id: 23499
+ AegisName: "Firstaid_Box_80"
+ Name: "Firstaid_Box_80"
+},
+{
+ Id: 23500
+ AegisName: "Firstaid_Box_85"
+ Name: "Firstaid_Box_85"
+},
+{
+ Id: 23501
+ AegisName: "Firstaid_Box_90"
+ Name: "Firstaid_Box_90"
+},
+{
+ Id: 23502
+ AegisName: "Firstaid_Box_95"
+ Name: "Firstaid_Box_95"
+},
+{
+ Id: 23503
+ AegisName: "Red_Potion_B_20"
+ Name: "Red_Potion_B_20"
+},
+{
+ Id: 23504
+ AegisName: "Orange_Potion_B_20"
+ Name: "Orange_Potion_B_20"
+},
+{
+ Id: 23505
+ AegisName: "Yellow_Potion_B_20"
+ Name: "Yellow_Potion_B_20"
+},
+{
+ Id: 23506
+ AegisName: "White_Potion_B_20"
+ Name: "White_Potion_B_20"
+},
+{
+ Id: 23533
+ AegisName: "Vote_Rose"
+ Name: "Vote_Rose"
+},
+{
+ Id: 23537
+ AegisName: "Bloody_Scroll"
+ Name: "Bloody_Scroll"
+},
+{
+ Id: 23549
+ AegisName: "Snow_Cookie"
+ Name: "Snow_Cookie"
+},
+{
+ Id: 23550
+ AegisName: "Winter_Cookie"
+ Name: "Winter_Cookie"
+},
+{
+ Id: 23551
+ AegisName: "Festi_Cookie"
+ Name: "Festi_Cookie"
+},
+{
+ Id: 23552
+ AegisName: "Flora_Cookie"
+ Name: "Flora_Cookie"
+},
+{
+ Id: 23554
+ AegisName: "Snow_Festa_CardPack"
+ Name: "Snow_Festa_CardPack"
+},
+{
+ Id: 23575
+ AegisName: "Adventurer_Box_1"
+ Name: "Adventurer_Box_1"
+},
+{
+ Id: 23576
+ AegisName: "Adventurer_Box_15"
+ Name: "Adventurer_Box_15"
+},
+{
+ Id: 23577
+ AegisName: "Adventurer_Box_30"
+ Name: "Adventurer_Box_30"
+},
+{
+ Id: 23578
+ AegisName: "Adventurer_Box_45"
+ Name: "Adventurer_Box_45"
+},
+{
+ Id: 23579
+ AegisName: "Adventurer_Box_60"
+ Name: "Adventurer_Box_60"
+},
+{
+ Id: 23580
+ AegisName: "Adventurer_Box_75"
+ Name: "Adventurer_Box_75"
+},
+{
+ Id: 23581
+ AegisName: "Adventurer_Box_90"
+ Name: "Adventurer_Box_90"
+},
+{
+ Id: 23582
+ AegisName: "E_Wing_Of_Fly_3Day_Box"
+ Name: "E_Wing_Of_Fly_3Day_Box"
+},
+{
+ Id: 23583
+ AegisName: "Rebeginer_Box"
+ Name: "Rebeginer_Box"
+},
+{
+ Id: 23584
+ AegisName: "Rebeginer_S_Box"
+ Name: "Rebeginer_S_Box"
+},
+{
+ Id: 23585
+ AegisName: "Rebeginer_Box_100"
+ Name: "Rebeginer_Box_100"
+},
+{
+ Id: 23586
+ AegisName: "Rebeginer_Box_110"
+ Name: "Rebeginer_Box_110"
+},
+{
+ Id: 23587
+ AegisName: "Rebeginer_Box_120"
+ Name: "Rebeginer_Box_120"
+},
+{
+ Id: 23618
+ AegisName: "2017_Special_Scroll"
+ Name: "2017_Special_Scroll"
+},
+{
+ Id: 23650
+ AegisName: "Ice_Scroll"
+ Name: "Ice_Scroll"
+},
+{
+ Id: 23661
+ AegisName: "2018_New_Year_Scroll"
+ Name: "2018_New_Year_Scroll"
+},
+{
+ Id: 23683
+ AegisName: "EVT_JAN02KR"
+ Name: "EVT_JAN02KR"
+},
+{
+ Id: 23700
+ AegisName: "Lunar_New_Year_Scroll"
+ Name: "Lunar_New_Year_Scroll"
+},
+{
+ Id: 23706
+ AegisName: "Reactor_Z"
+ Name: "Reactor_Z"
+},
+{
+ Id: 23707
+ AegisName: "Reactor_Z_"
+ Name: "Reactor_Z_"
+},
+{
+ Id: 23710
+ AegisName: "2018_Spring_Scroll"
+ Name: "2018_Spring_Scroll"
+},
+{
+ Id: 23723
+ AegisName: "Melon_Bread"
+ Name: "Melon_Bread"
+},
+{
+ Id: 23765
+ AegisName: "Costama_EggV02"
+ Name: "Costama_EggV02"
+},
+{
+ Id: 23771
+ AegisName: "Mysterious_Plastic"
+ Name: "Mysterious_Plastic"
+},
+{
+ Id: 23772
+ AegisName: "EP17_1_SPC01"
+ Name: "EP17_1_SPC01"
+},
+{
+ Id: 23773
+ AegisName: "EP17_1_SPC02"
+ Name: "EP17_1_SPC02"
+},
+{
+ Id: 23774
+ AegisName: "EP17_1_SPC03"
+ Name: "EP17_1_SPC03"
+},
+{
+ Id: 23775
+ AegisName: "EP17_1_SPC04"
+ Name: "EP17_1_SPC04"
+},
+{
+ Id: 23817
+ AegisName: "Bs_Making_Scrolls"
+ Name: "Bs_Making_Scrolls"
+},
+{
+ Id: 23878
+ AegisName: "StarSoul_Scroll"
+ Name: "StarSoul_Scroll"
+},
+{
+ Id: 23897
+ AegisName: "2018_Jump_Thx_Box"
+ Name: "2018_Jump_Thx_Box"
+},
+{
+ Id: 23898
+ AegisName: "Comp_Power_Booster"
+ Name: "Comp_Power_Booster"
+},
+{
+ Id: 23899
+ AegisName: "Comp_Almighty"
+ Name: "Comp_Almighty"
+},
+{
+ Id: 23900
+ AegisName: "Time_Overload_Box"
+ Name: "Time_Overload_Box"
+},
+{
+ Id: 23901
+ AegisName: "110LVUP"
+ Name: "110LVUP"
+},
+{
+ Id: 23921
+ AegisName: "Season_Evt_Reward"
+ Name: "Season_Evt_Reward"
+},
+{
+ Id: 23962
+ AegisName: "Malang_Cat_Can2"
+ Name: "Malang_Cat_Can2"
+},
//== Shadow Equipments =====================================
{
@@ -150437,6 +151597,751 @@ item_db: (
if (getrefine()>=9) { bonus bDelayrate,-1; }
">
},
+{
+ Id: 24380
+ AegisName: "Sentimental_Weapone_S"
+ Name: "Sentimental_Weapone_S"
+},
+{
+ Id: 24381
+ AegisName: "Sentimental_Earring_S"
+ Name: "Sentimental_Earring_S"
+},
+{
+ Id: 24382
+ AegisName: "Sentimental_Pendant_S"
+ Name: "Sentimental_Pendant_S"
+},
+{
+ Id: 24383
+ AegisName: "Enchanting_Weapone_S"
+ Name: "Enchanting_Weapone_S"
+},
+{
+ Id: 24384
+ AegisName: "Enchanting_Earring_S"
+ Name: "Enchanting_Earring_S"
+},
+{
+ Id: 24385
+ AegisName: "Enchanting_Pendant_S"
+ Name: "Enchanting_Pendant_S"
+},
+{
+ Id: 24386
+ AegisName: "S_Infinity_Weapon"
+ Name: "S_Infinity_Weapon"
+},
+{
+ Id: 24387
+ AegisName: "Rebeginer_Armor_S"
+ Name: "Rebeginer_Armor_S"
+},
+{
+ Id: 24388
+ AegisName: "Rebeginer_Shield_S"
+ Name: "Rebeginer_Shield_S"
+},
+{
+ Id: 24389
+ AegisName: "Rebeginer_Shoes_S"
+ Name: "Rebeginer_Shoes_S"
+},
+{
+ Id: 24390
+ AegisName: "Rebeginer_Weapon_S"
+ Name: "Rebeginer_Weapon_S"
+},
+{
+ Id: 24391
+ AegisName: "Rebeginer_Earring_S"
+ Name: "Rebeginer_Earring_S"
+},
+{
+ Id: 24392
+ AegisName: "Rebeginer_Pendant_S"
+ Name: "Rebeginer_Pendant_S"
+},
+{
+ Id: 24393
+ AegisName: "S_Physical_Shoes"
+ Name: "S_Physical_Shoes"
+},
+{
+ Id: 24394
+ AegisName: "S_Physical_Shield"
+ Name: "S_Physical_Shield"
+},
+{
+ Id: 24395
+ AegisName: "S_Physical_Armor"
+ Name: "S_Physical_Armor"
+},
+{
+ Id: 24396
+ AegisName: "S_Magical_Shoes"
+ Name: "S_Magical_Shoes"
+},
+{
+ Id: 24397
+ AegisName: "S_Magical_Shield"
+ Name: "S_Magical_Shield"
+},
+{
+ Id: 24398
+ AegisName: "S_Magical_Armor"
+ Name: "S_Magical_Armor"
+},
+{
+ Id: 24399
+ AegisName: "S_ImmunedAthena_Shield"
+ Name: "S_ImmunedAthena_Shield"
+},
+{
+ Id: 24400
+ AegisName: "S_HardChamption_Shoes"
+ Name: "S_HardChamption_Shoes"
+},
+{
+ Id: 24401
+ AegisName: "S_KingbirdAncient_Armor"
+ Name: "S_KingbirdAncient_Armor"
+},
+{
+ Id: 24402
+ AegisName: "S_Rebellion_Armor"
+ Name: "S_Rebellion_Armor"
+},
+{
+ Id: 24403
+ AegisName: "S_Kagerou_Armor"
+ Name: "S_Kagerou_Armor"
+},
+{
+ Id: 24404
+ AegisName: "S_Oboro_Armor"
+ Name: "S_Oboro_Armor"
+},
+{
+ Id: 24405
+ AegisName: "S_Rebellion_Shoes"
+ Name: "S_Rebellion_Shoes"
+},
+{
+ Id: 24406
+ AegisName: "S_Kagerou_Shoes"
+ Name: "S_Kagerou_Shoes"
+},
+{
+ Id: 24407
+ AegisName: "S_Oboro_Shoes"
+ Name: "S_Oboro_Shoes"
+},
+{
+ Id: 24408
+ AegisName: "S_DoramPhysical_Armor"
+ Name: "S_DoramPhysical_Armor"
+},
+{
+ Id: 24409
+ AegisName: "S_DoramPhysical_Shoes"
+ Name: "S_DoramPhysical_Shoes"
+},
+{
+ Id: 24410
+ AegisName: "S_DoramMagical_Armor"
+ Name: "S_DoramMagical_Armor"
+},
+{
+ Id: 24411
+ AegisName: "S_DoramMagical_Shoes"
+ Name: "S_DoramMagical_Shoes"
+},
+{
+ Id: 24412
+ AegisName: "S_Star_Emperor_Armor"
+ Name: "S_Star_Emperor_Armor"
+},
+{
+ Id: 24413
+ AegisName: "S_Star_Emperor_Shoes"
+ Name: "S_Star_Emperor_Shoes"
+},
+{
+ Id: 24414
+ AegisName: "S_Soul_Reaper_Armor"
+ Name: "S_Soul_Reaper_Armor"
+},
+{
+ Id: 24415
+ AegisName: "S_Soul_Reaper_Shoes"
+ Name: "S_Soul_Reaper_Shoes"
+},
+{
+ Id: 24416
+ AegisName: "S_Timeoverload_Weapon"
+ Name: "S_Timeoverload_Weapon"
+},
+{
+ Id: 24417
+ AegisName: "S_Timeoverload_Armor"
+ Name: "S_Timeoverload_Armor"
+},
+{
+ Id: 24418
+ AegisName: "S_Timeoverload_Shield"
+ Name: "S_Timeoverload_Shield"
+},
+{
+ Id: 24419
+ AegisName: "S_Timeoverload_Shoes"
+ Name: "S_Timeoverload_Shoes"
+},
+{
+ Id: 24420
+ AegisName: "S_Timeoverload_Earing"
+ Name: "S_Timeoverload_Earing"
+},
+{
+ Id: 24421
+ AegisName: "S_Timeoverload_Pandent"
+ Name: "S_Timeoverload_Pandent"
+},
+{
+ Id: 25258
+ AegisName: "BrokenArrow"
+ Name: "BrokenArrow"
+},
+{
+ Id: 25265
+ AegisName: "Shining_Spore"
+ Name: "Shining_Spore"
+},
+{
+ Id: 25266
+ AegisName: "Dried_Leaf_Of_Ygg"
+ Name: "Dried_Leaf_Of_Ygg"
+},
+{
+ Id: 25271
+ AegisName: "IllusionStone"
+ Name: "IllusionStone"
+},
+{
+ Id: 25290
+ AegisName: "Sweets_Coin"
+ Name: "Sweets_Coin"
+},
+{
+ Id: 25294
+ AegisName: "Clover_Ticket"
+ Name: "Clover_Ticket"
+},
+{
+ Id: 25295
+ AegisName: "Happiness_Clover"
+ Name: "Happiness_Clover"
+},
+{
+ Id: 25340
+ AegisName: "Golden_Corn"
+ Name: "Golden_Corn"
+},
+{
+ Id: 25375
+ AegisName: "Mightysoul_Essence"
+ Name: "Mightysoul_Essence"
+},
+{
+ Id: 25390
+ AegisName: "Captured_Savage"
+ Name: "Captured_Savage"
+},
+{
+ Id: 25391
+ AegisName: "Goodly_Bough"
+ Name: "Goodly_Bough"
+},
+{
+ Id: 25392
+ AegisName: "Free_Pass_Ticket"
+ Name: "Free_Pass_Ticket"
+},
+{
+ Id: 25393
+ AegisName: "Delicious_Corn"
+ Name: "Delicious_Corn"
+},
+{
+ Id: 25394
+ AegisName: "Fruit_Lunch"
+ Name: "Fruit_Lunch"
+},
+{
+ Id: 25395
+ AegisName: "Small_Embers"
+ Name: "Small_Embers"
+},
+{
+ Id: 25401
+ AegisName: "Black_Fur"
+ Name: "Black_Fur"
+},
+{
+ Id: 25408
+ AegisName: "Memory_Of_Gyol"
+ Name: "Memory_Of_Gyol"
+},
+{
+ Id: 25409
+ AegisName: "SuraStone_Top"
+ Name: "SuraStone_Top"
+},
+{
+ Id: 25410
+ AegisName: "SuraStone_Middle"
+ Name: "SuraStone_Middle"
+},
+{
+ Id: 25411
+ AegisName: "SuraStone_Bottom"
+ Name: "SuraStone_Bottom"
+},
+{
+ Id: 25412
+ AegisName: "SuraStone_Robe"
+ Name: "SuraStone_Robe"
+},
+{
+ Id: 25413
+ AegisName: "RangerStone_Top"
+ Name: "RangerStone_Top"
+},
+{
+ Id: 25414
+ AegisName: "RangerStone_Middle"
+ Name: "RangerStone_Middle"
+},
+{
+ Id: 25415
+ AegisName: "RangerStone_Bottom"
+ Name: "RangerStone_Bottom"
+},
+{
+ Id: 25416
+ AegisName: "RangerStone_Robe"
+ Name: "RangerStone_Robe"
+},
+{
+ Id: 25417
+ AegisName: "SorcererStone_Top"
+ Name: "SorcererStone_Top"
+},
+{
+ Id: 25418
+ AegisName: "SorcererStone_Middle"
+ Name: "SorcererStone_Middle"
+},
+{
+ Id: 25419
+ AegisName: "SorcererStone_Bottom"
+ Name: "SorcererStone_Bottom"
+},
+{
+ Id: 25420
+ AegisName: "SorcererStone_Robe"
+ Name: "SorcererStone_Robe"
+},
+{
+ Id: 25421
+ AegisName: "Pumpkin_Decor"
+ Name: "Pumpkin_Decor"
+},
+{
+ Id: 25422
+ AegisName: "White_Thin_Stem"
+ Name: "White_Thin_Stem"
+},
+{
+ Id: 25425
+ AegisName: "SnowFlower_Of_Spell"
+ Name: "SnowFlower_Of_Spell"
+},
+{
+ Id: 25426
+ AegisName: "Warm_Cotton"
+ Name: "Warm_Cotton"
+},
+{
+ Id: 25427
+ AegisName: "Rebeginer_W_Coupon"
+ Name: "Rebeginer_W_Coupon"
+},
+{
+ Id: 25428
+ AegisName: "Rebeginer_W_7Up"
+ Name: "Rebeginer_W_7Up"
+},
+{
+ Id: 25445
+ AegisName: "RuneknightStone_Top"
+ Name: "RuneknightStone_Top"
+},
+{
+ Id: 25446
+ AegisName: "RuneknightStone_Middle"
+ Name: "RuneknightStone_Middle"
+},
+{
+ Id: 25447
+ AegisName: "RuneknightStone_Bottom"
+ Name: "RuneknightStone_Bottom"
+},
+{
+ Id: 25448
+ AegisName: "RuneknightStone_Robe"
+ Name: "RuneknightStone_Robe"
+},
+{
+ Id: 25449
+ AegisName: "GeneticStone_Robe"
+ Name: "GeneticStone_Robe"
+},
+{
+ Id: 25450
+ AegisName: "GeneticStone_Top"
+ Name: "GeneticStone_Top"
+},
+{
+ Id: 25451
+ AegisName: "GeneticStone_Middle"
+ Name: "GeneticStone_Middle"
+},
+{
+ Id: 25452
+ AegisName: "GeneticStone_Bottom"
+ Name: "GeneticStone_Bottom"
+},
+{
+ Id: 25453
+ AegisName: "WarlockStone_Top"
+ Name: "WarlockStone_Top"
+},
+{
+ Id: 25454
+ AegisName: "WarlockStone_Middle"
+ Name: "WarlockStone_Middle"
+},
+{
+ Id: 25455
+ AegisName: "WarlockStone_Bottom"
+ Name: "WarlockStone_Bottom"
+},
+{
+ Id: 25456
+ AegisName: "WarlockStone_Robe"
+ Name: "WarlockStone_Robe"
+},
+{
+ Id: 25464
+ AegisName: "World_Tour_Ticket"
+ Name: "World_Tour_Ticket"
+},
+{
+ Id: 25479
+ AegisName: "Dogly_Bottle"
+ Name: "Dogly_Bottle"
+},
+{
+ Id: 25490
+ AegisName: "ShadowchaserStone_Top"
+ Name: "ShadowchaserStone_Top"
+},
+{
+ Id: 25491
+ AegisName: "ShadowchaseStone_Middle"
+ Name: "ShadowchaseStone_Middle"
+},
+{
+ Id: 25492
+ AegisName: "ShadowchaseStone_Bottom"
+ Name: "ShadowchaseStone_Bottom"
+},
+{
+ Id: 25493
+ AegisName: "ShadowchaserStone_Robe"
+ Name: "ShadowchaserStone_Robe"
+},
+{
+ Id: 25494
+ AegisName: "MechanicStone_Top"
+ Name: "MechanicStone_Top"
+},
+{
+ Id: 25495
+ AegisName: "MechanicStone_Middle"
+ Name: "MechanicStone_Middle"
+},
+{
+ Id: 25496
+ AegisName: "MechanicStone_Bottom"
+ Name: "MechanicStone_Bottom"
+},
+{
+ Id: 25497
+ AegisName: "MechanicStone_Robe"
+ Name: "MechanicStone_Robe"
+},
+{
+ Id: 25498
+ AegisName: "WanderMinstrelStone_Top"
+ Name: "WanderMinstrelStone_Top"
+},
+{
+ Id: 25499
+ AegisName: "WanderMinstStone_Middle"
+ Name: "WanderMinstStone_Middle"
+},
+{
+ Id: 25500
+ AegisName: "WanderMinstStone_Bottom"
+ Name: "WanderMinstStone_Bottom"
+},
+{
+ Id: 25501
+ AegisName: "WanderMinstreStone_Robe"
+ Name: "WanderMinstreStone_Robe"
+},
+{
+ Id: 25504
+ AegisName: "Visionary_Ticket"
+ Name: "Visionary_Ticket"
+},
+{
+ Id: 25508
+ AegisName: "Token_of_OrcGeneral"
+ Name: "Token_of_OrcGeneral"
+},
+{
+ Id: 25511
+ AegisName: "Evt_March04_KR"
+ Name: "Evt_March04_KR"
+},
+{
+ Id: 25512
+ AegisName: "Evt_March05_KR"
+ Name: "Evt_March05_KR"
+},
+{
+ Id: 25616
+ AegisName: "Green_Bearopy"
+ Name: "Green_Bearopy"
+},
+{
+ Id: 25622
+ AegisName: "White_Snake_Tear"
+ Name: "White_Snake_Tear"
+},
+{
+ Id: 25627
+ AegisName: "Gold_Card"
+ Name: "Gold_Card"
+},
+{
+ Id: 25629
+ AegisName: "Konts_Letter"
+ Name: "Konts_Letter"
+},
+{
+ Id: 25633
+ AegisName: "Token_Of_Wootan"
+ Name: "Token_Of_Wootan"
+},
+{
+ Id: 25634
+ AegisName: "Wootan_D_S_Piece"
+ Name: "Wootan_D_S_Piece"
+},
+{
+ Id: 25638
+ AegisName: "Token_Of_Bigstone"
+ Name: "Token_Of_Bigstone"
+},
+{
+ Id: 25639
+ AegisName: "Fragment_Of_Rock"
+ Name: "Fragment_Of_Rock"
+},
+{
+ Id: 25643
+ AegisName: "Autographed_Book"
+ Name: "Autographed_Book"
+},
+{
+ Id: 25655
+ AegisName: "Dalcom_Coin"
+ Name: "Dalcom_Coin"
+},
+{
+ Id: 25656
+ AegisName: "Stamp_Note"
+ Name: "Stamp_Note"
+},
+{
+ Id: 25657
+ AegisName: "Evt_July01_KR"
+ Name: "Evt_July01_KR"
+},
+{
+ Id: 25658
+ AegisName: "Evt_July02_KR"
+ Name: "Evt_July02_KR"
+},
+{
+ Id: 25659
+ AegisName: "Evt_May02_KR"
+ Name: "Evt_May02_KR"
+},
+{
+ Id: 25664
+ AegisName: "Evt_July03_KR"
+ Name: "Evt_July03_KR"
+},
+{
+ Id: 25665
+ AegisName: "Dienes_Envelope"
+ Name: "Dienes_Envelope"
+},
+{
+ Id: 25666
+ AegisName: "Id_Card"
+ Name: "Id_Card"
+},
+{
+ Id: 25668
+ AegisName: "Broken_Weapon"
+ Name: "Broken_Weapon"
+},
+{
+ Id: 25669
+ AegisName: "Unknown_Parts"
+ Name: "Unknown_Parts"
+},
+{
+ Id: 25706
+ AegisName: "HighpriestStone_Top"
+ Name: "HighpriestStone_Top"
+},
+{
+ Id: 25707
+ AegisName: "HighpriestStone_Middle"
+ Name: "HighpriestStone_Middle"
+},
+{
+ Id: 25708
+ AegisName: "HighpriestStone_Bottom"
+ Name: "HighpriestStone_Bottom"
+},
+{
+ Id: 25709
+ AegisName: "ArchbishopStone_Robe"
+ Name: "ArchbishopStone_Robe"
+},
+{
+ Id: 25710
+ AegisName: "PaladinStone_Top"
+ Name: "PaladinStone_Top"
+},
+{
+ Id: 25711
+ AegisName: "PaladinStone_Middle"
+ Name: "PaladinStone_Middle"
+},
+{
+ Id: 25712
+ AegisName: "PaladinStone_Bottom"
+ Name: "PaladinStone_Bottom"
+},
+{
+ Id: 25713
+ AegisName: "RoyalguardStone_Robe"
+ Name: "RoyalguardStone_Robe"
+},
+{
+ Id: 25714
+ AegisName: "AssacrossStone_Top"
+ Name: "AssacrossStone_Top"
+},
+{
+ Id: 25715
+ AegisName: "AssacrossStone_Middle"
+ Name: "AssacrossStone_Middle"
+},
+{
+ Id: 25716
+ AegisName: "AssacrossStone_Bottom"
+ Name: "AssacrossStone_Bottom"
+},
+{
+ Id: 25717
+ AegisName: "GuillcrossStone_Robe"
+ Name: "GuillcrossStone_Robe"
+},
+{
+ Id: 25723
+ AegisName: "Cor_Core"
+ Name: "Cor_Core"
+},
+{
+ Id: 25728
+ AegisName: "Shadowdecon_Ore"
+ Name: "Shadowdecon_Ore"
+},
+{
+ Id: 25729
+ AegisName: "Shadowdecon"
+ Name: "Shadowdecon"
+},
+{
+ Id: 25730
+ AegisName: "Zelunium_Ore"
+ Name: "Zelunium_Ore"
+},
+{
+ Id: 25731
+ AegisName: "Zelunium"
+ Name: "Zelunium"
+},
+{
+ Id: 25734
+ AegisName: "Sealed_Weapon_Ticket"
+ Name: "Sealed_Weapon_Ticket"
+},
+{
+ Id: 25735
+ AegisName: "Unsealing_Token"
+ Name: "Unsealing_Token"
+},
+{
+ Id: 25739
+ AegisName: "GH_Cursed_Crystal"
+ Name: "GH_Cursed_Crystal"
+},
+{
+ Id: 25740
+ AegisName: "GH_Cursed_Gemstone"
+ Name: "GH_Cursed_Gemstone"
+},
+{
+ Id: 26007
+ AegisName: "Spectral_Spear_IL"
+ Name: "Spectral_Spear_IL"
+},
+{
+ Id: 26015
+ AegisName: "Rebeginer_LG_Lance"
+ Name: "Rebeginer_LG_Lance"
+},
//== New Staffs ============================================
{
Id: 26101
@@ -150462,6 +152367,46 @@ item_db: (
bonus bLongAtkRate,7;
">
},
+{
+ Id: 26109
+ AegisName: "Staff_Of_Bordeaux_IL"
+ Name: "Staff_Of_Bordeaux_IL"
+},
+{
+ Id: 26110
+ AegisName: "CandyCaneRod"
+ Name: "CandyCaneRod"
+},
+{
+ Id: 26111
+ AegisName: "Metal_Foxtail"
+ Name: "Metal_Foxtail"
+},
+{
+ Id: 26119
+ AegisName: "Rebeginer_SO_Rod"
+ Name: "Rebeginer_SO_Rod"
+},
+{
+ Id: 26120
+ AegisName: "Rebeginer_DO_Rod"
+ Name: "Rebeginer_DO_Rod"
+},
+{
+ Id: 26151
+ AegisName: "Rutilus_Stick_OS"
+ Name: "Rutilus_Stick_OS"
+},
+{
+ Id: 26155
+ AegisName: "MeawFoxtail"
+ Name: "MeawFoxtail"
+},
+{
+ Id: 26156
+ AegisName: "Evt_Shadow_Staff_K"
+ Name: "Evt_Shadow_Staff_K"
+},
//== New Cards
@@ -150641,6 +152586,31 @@ item_db: (
bonus bUnbreakableWeapon,0;
">
},
+{
+ Id: 28022
+ AegisName: "Infiltrator_IL"
+ Name: "Infiltrator_IL"
+},
+{
+ Id: 28023
+ AegisName: "Ghoul_Leg_IL"
+ Name: "Ghoul_Leg_IL"
+},
+{
+ Id: 28027
+ AegisName: "Rebeginer_GC_Katar"
+ Name: "Rebeginer_GC_Katar"
+},
+{
+ Id: 28038
+ AegisName: "Meuchler_OS"
+ Name: "Meuchler_OS"
+},
+{
+ Id: 28040
+ AegisName: "Evt_Shiver_Katar_K"
+ Name: "Evt_Shiver_Katar_K"
+},
//== New Axes ==============================================
{
@@ -150792,6 +152762,16 @@ item_db: (
bonus bUnbreakableWeapon,0;
">
},
+{
+ Id: 28136
+ AegisName: "Blasti_OS"
+ Name: "Blasti_OS"
+},
+{
+ Id: 28137
+ AegisName: "Evt_Avenger"
+ Name: "Evt_Avenger"
+},
//== New Grenade Launcher ==================================
{
@@ -150898,6 +152878,36 @@ item_db: (
bonus bUnbreakableWeapon,0;
">
},
+{
+ Id: 28240
+ AegisName: "Calf_Kingcobra"
+ Name: "Calf_Kingcobra"
+},
+{
+ Id: 28241
+ AegisName: "Calf_Diamondback"
+ Name: "Calf_Diamondback"
+},
+{
+ Id: 28242
+ AegisName: "Calf_Anaconda"
+ Name: "Calf_Anaconda"
+},
+{
+ Id: 28243
+ AegisName: "Calf_Python"
+ Name: "Calf_Python"
+},
+{
+ Id: 28244
+ AegisName: "Gate_KeeperDD_IL"
+ Name: "Gate_KeeperDD_IL"
+},
+{
+ Id: 28253
+ AegisName: "HR_S55_OS"
+ Name: "HR_S55_OS"
+},
//== New Accessories =======================================
{
@@ -151433,6 +153443,36 @@ item_db: (
//Need to confirm damage formula
">
},
+{
+ Id: 28508
+ AegisName: "Skul_Ring_IL"
+ Name: "Skul_Ring_IL"
+},
+{
+ Id: 28509
+ AegisName: "Ring_IL"
+ Name: "Ring_IL"
+},
+{
+ Id: 28510
+ AegisName: "Vampire_s_Servant"
+ Name: "Vampire_s_Servant"
+},
+{
+ Id: 28534
+ AegisName: "RKC_2017_Pendant"
+ Name: "RKC_2017_Pendant"
+},
+{
+ Id: 28535
+ AegisName: "RKC_2017_Ring"
+ Name: "RKC_2017_Ring"
+},
+{
+ Id: 28566
+ AegisName: "Rebeginer_Ring"
+ Name: "Rebeginer_Ring"
+},
//== New Books =============================================
{
@@ -151486,6 +153526,31 @@ item_db: (
bonus bUnbreakableWeapon,0;
">
},
+{
+ Id: 28612
+ AegisName: "Book_Of_The_Apo_IL"
+ Name: "Book_Of_The_Apo_IL"
+},
+{
+ Id: 28616
+ AegisName: "Rebeginer_AB_Bible"
+ Name: "Rebeginer_AB_Bible"
+},
+{
+ Id: 28626
+ AegisName: "Tablet_IL"
+ Name: "Tablet_IL"
+},
+{
+ Id: 28629
+ AegisName: "Circuit_Board_OS"
+ Name: "Circuit_Board_OS"
+},
+{
+ Id: 28631
+ AegisName: "Time_Kamiji"
+ Name: "Time_Kamiji"
+},
//== New Daggers ===========================================
{
@@ -151634,6 +153699,31 @@ item_db: (
bonus bMatk,((min(getrefine(),15)) ** (2))/2;
">
},
+{
+ Id: 28725
+ AegisName: "Moonlight_Sword_IL"
+ Name: "Moonlight_Sword_IL"
+},
+{
+ Id: 28740
+ AegisName: "Rebeginer_SC_Dagger"
+ Name: "Rebeginer_SC_Dagger"
+},
+{
+ Id: 28745
+ AegisName: "Counter_Dagger_IL"
+ Name: "Counter_Dagger_IL"
+},
+{
+ Id: 28755
+ AegisName: "Kuroiro_OS"
+ Name: "Kuroiro_OS"
+},
+{
+ Id: 28759
+ AegisName: "Evt_Magic_Sword"
+ Name: "Evt_Magic_Sword"
+},
//== New Shields ===========================================
{
@@ -151711,6 +153801,31 @@ item_db: (
}
">
},
+{
+ Id: 28922
+ AegisName: "Herald_Of_GOD_IL"
+ Name: "Herald_Of_GOD_IL"
+},
+{
+ Id: 28942
+ AegisName: "Bloody_Knight_Shield"
+ Name: "Bloody_Knight_Shield"
+},
+{
+ Id: 28945
+ AegisName: "Bloody_Knight_Shield_"
+ Name: "Bloody_Knight_Shield_"
+},
+{
+ Id: 28946
+ AegisName: "Bloody_Knight_Shield__"
+ Name: "Bloody_Knight_Shield__"
+},
+{
+ Id: 28953
+ AegisName: "Poring_B_Shield"
+ Name: "Poring_B_Shield"
+},
//== New Enchantment Stones ================================
{
@@ -152041,4 +154156,354 @@ item_db: (
Loc: ["EQP_HELM", "EQP_ARMS", "EQP_GARMENT", "EQP_ACC", "EQP_ARMOR", "EQP_SHOES"]
Script: <" bonus2 bExpAddRace, RC_All, 2; ">
},
+{
+ Id: 29540
+ AegisName: "Deep_Black_Pearl"
+ Name: "Deep_Black_Pearl"
+},
+{
+ Id: 29547
+ AegisName: "Sea_Sapphire"
+ Name: "Sea_Sapphire"
+},
+{
+ Id: 29548
+ AegisName: "Red_Fog_Garnet"
+ Name: "Red_Fog_Garnet"
+},
+{
+ Id: 29549
+ AegisName: "Lightning_Topaz"
+ Name: "Lightning_Topaz"
+},
+{
+ Id: 29550
+ AegisName: "Poisoned_Amethyst"
+ Name: "Poisoned_Amethyst"
+},
+{
+ Id: 29551
+ AegisName: "Frost_Zircon"
+ Name: "Frost_Zircon"
+},
+{
+ Id: 29552
+ AegisName: "Deep_Black_Pearl_"
+ Name: "Deep_Black_Pearl_"
+},
+{
+ Id: 29587
+ AegisName: "Lightning_Topaz_"
+ Name: "Lightning_Topaz_"
+},
+{
+ Id: 29588
+ AegisName: "Bloody_Ruby"
+ Name: "Bloody_Ruby"
+},
+{
+ Id: 29589
+ AegisName: "GH_Cursed_Gemstone_"
+ Name: "GH_Cursed_Gemstone_"
+},
+{
+ Id: 29590
+ AegisName: "GH_Cursed_Crystal_"
+ Name: "GH_Cursed_Crystal_"
+},
+{
+ Id: 29591
+ AegisName: "Cursed_Emerald"
+ Name: "Cursed_Emerald"
+},
+{
+ Id: 29592
+ AegisName: "Shinee_Opal"
+ Name: "Shinee_Opal"
+},
+{
+ Id: 31172
+ AegisName: "Roast_Memory"
+ Name: "Roast_Memory"
+},
+{
+ Id: 31186
+ AegisName: "C_Black_Cat"
+ Name: "C_Black_Cat"
+},
+{
+ Id: 31195
+ AegisName: "Choco_Minihat"
+ Name: "Choco_Minihat"
+},
+{
+ Id: 31197
+ AegisName: "Egg_Crispinette_"
+ Name: "Egg_Crispinette_"
+},
+{
+ Id: 31208
+ AegisName: "Straight_Long_YL"
+ Name: "Straight_Long_YL"
+},
+{
+ Id: 31209
+ AegisName: "Straight_Long_WH"
+ Name: "Straight_Long_WH"
+},
+{
+ Id: 31249
+ AegisName: "Rabbit_Hopping"
+ Name: "Rabbit_Hopping"
+},
+{
+ Id: 31261
+ AegisName: "Soda_In_Mouth_"
+ Name: "Soda_In_Mouth_"
+},
+{
+ Id: 31300
+ AegisName: "Warm_Cat_Muffler"
+ Name: "Warm_Cat_Muffler"
+},
+{
+ Id: 31313
+ AegisName: "C_FallenAngelWingEar"
+ Name: "C_FallenAngelWingEar"
+},
+{
+ Id: 31314
+ AegisName: "C_Ghost_Holiday"
+ Name: "C_Ghost_Holiday"
+},
+{
+ Id: 31316
+ AegisName: "C_FlutterButterfly_BL"
+ Name: "C_FlutterButterfly_BL"
+},
+{
+ Id: 31329
+ AegisName: "C_Alice_Wig"
+ Name: "C_Alice_Wig"
+},
+{
+ Id: 31332
+ AegisName: "C_Khalitzburg_Helm_BL"
+ Name: "C_Khalitzburg_Helm_BL"
+},
+{
+ Id: 31368
+ AegisName: "Harvest_Festa_Hat"
+ Name: "Harvest_Festa_Hat"
+},
+{
+ Id: 31369
+ AegisName: "Straight_Long_WH_"
+ Name: "Straight_Long_WH_"
+},
+{
+ Id: 31370
+ AegisName: "Straight_Long_YL_"
+ Name: "Straight_Long_YL_"
+},
+{
+ Id: 31387
+ AegisName: "Jjakk"
+ Name: "Jjakk"
+},
+{
+ Id: 31389
+ AegisName: "White_Bird_Rose"
+ Name: "White_Bird_Rose"
+},
+{
+ Id: 31390
+ AegisName: "Let_It_Snow"
+ Name: "Let_It_Snow"
+},
+{
+ Id: 31396
+ AegisName: "C_Sorcerer_Hood"
+ Name: "C_Sorcerer_Hood"
+},
+{
+ Id: 31397
+ AegisName: "C_Pope_Sitting_Head"
+ Name: "C_Pope_Sitting_Head"
+},
+{
+ Id: 31398
+ AegisName: "C_Blinking_Thin_Eyes"
+ Name: "C_Blinking_Thin_Eyes"
+},
+{
+ Id: 31407
+ AegisName: "Alice_Wig_PK"
+ Name: "Alice_Wig_PK"
+},
+{
+ Id: 31415
+ AegisName: "C_Wanderer_Sakkat"
+ Name: "C_Wanderer_Sakkat"
+},
+{
+ Id: 31432
+ AegisName: "C_Luwmin_Ice"
+ Name: "C_Luwmin_Ice"
+},
+{
+ Id: 31433
+ AegisName: "C_Astro_Circle"
+ Name: "C_Astro_Circle"
+},
+{
+ Id: 31437
+ AegisName: "C_Baby_Penguin"
+ Name: "C_Baby_Penguin"
+},
+{
+ Id: 31439
+ AegisName: "C_Fluffy_Heart_Earmuffs"
+ Name: "C_Fluffy_Heart_Earmuffs"
+},
+{
+ Id: 31452
+ AegisName: "White_Cat"
+ Name: "White_Cat"
+},
+{
+ Id: 31454
+ AegisName: "Love_Feeling"
+ Name: "Love_Feeling"
+},
+{
+ Id: 31455
+ AegisName: "Enchanted_Dog"
+ Name: "Enchanted_Dog"
+},
+{
+ Id: 31460
+ AegisName: "C_Blessing_Sky_Lantern"
+ Name: "C_Blessing_Sky_Lantern"
+},
+{
+ Id: 31463
+ AegisName: "C_Flying_Drone"
+ Name: "C_Flying_Drone"
+},
+{
+ Id: 31465
+ AegisName: "Egg_Minihat"
+ Name: "Egg_Minihat"
+},
+{
+ Id: 31489
+ AegisName: "C_Bouquet_Hat"
+ Name: "C_Bouquet_Hat"
+},
+{
+ Id: 31490
+ AegisName: "C_Poring_Muffler"
+ Name: "C_Poring_Muffler"
+},
+{
+ Id: 31494
+ AegisName: "Volume_Low_Twin"
+ Name: "Volume_Low_Twin"
+},
+{
+ Id: 31495
+ AegisName: "Lolita_Two_Side_Up"
+ Name: "Lolita_Two_Side_Up"
+},
+{
+ Id: 31498
+ AegisName: "C_Elephangel_TH"
+ Name: "C_Elephangel_TH"
+},
+{
+ Id: 31516
+ AegisName: "Mini_Melon"
+ Name: "Mini_Melon"
+},
+{
+ Id: 31518
+ AegisName: "Pop_Popcorn_Hat_"
+ Name: "Pop_Popcorn_Hat_"
+},
+{
+ Id: 31519
+ AegisName: "Slurp_Slurp_Hat"
+ Name: "Slurp_Slurp_Hat"
+},
+{
+ Id: 31529
+ AegisName: "C_Happy_Rabbit_Ribbon"
+ Name: "C_Happy_Rabbit_Ribbon"
+},
+{
+ Id: 31580
+ AegisName: "Autumnal_Flavor"
+ Name: "Autumnal_Flavor"
+},
+{
+ Id: 31589
+ AegisName: "GOLD_MAJESTIC_GOUT"
+ Name: "GOLD_MAJESTIC_GOUT"
+},
+{
+ Id: 31606
+ AegisName: "C_Autumn_Headband"
+ Name: "C_Autumn_Headband"
+},
+{
+ Id: 32005
+ AegisName: "Pole_Axe_IL"
+ Name: "Pole_Axe_IL"
+},
+{
+ Id: 32013
+ AegisName: "Metal_Stick"
+ Name: "Metal_Stick"
+},
+{
+ Id: 32019
+ AegisName: "Boost_Lance_OS"
+ Name: "Boost_Lance_OS"
+},
+{
+ Id: 32021
+ AegisName: "Evt_Undine_Spear_K"
+ Name: "Evt_Undine_Spear_K"
+},
+{
+ Id: 32207
+ AegisName: "Illusion_B_R"
+ Name: "Illusion_B_R"
+},
+{
+ Id: 32208
+ AegisName: "Illusion_B_L"
+ Name: "Illusion_B_L"
+},
+{
+ Id: 32209
+ AegisName: "Illusion_BC_R"
+ Name: "Illusion_BC_R"
+},
+{
+ Id: 32210
+ AegisName: "Illusion_BC_L"
+ Name: "Illusion_BC_L"
+},
+{
+ Id: 32221
+ AegisName: "Time_Overload_Ring"
+ Name: "Time_Overload_Ring"
+},
+{
+ Id: 32237
+ AegisName: "Celine_Brooch"
+ Name: "Celine_Brooch"
+},
)
diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf
index 4863e4051..ec8548ab2 100644
--- a/db/re/skill_db.conf
+++ b/db/re/skill_db.conf
@@ -4520,6 +4520,7 @@ skill_db: (
Element: "Ele_Wind"
DamageType: {
SplashArea: true
+ SplitDamage: true
IgnoreFlee: true
}
SplashRange: 1
@@ -4572,6 +4573,7 @@ skill_db: (
Element: "Ele_Fire"
DamageType: {
SplashArea: true
+ SplitDamage: true
IgnoreFlee: true
}
SplashRange: 2
diff --git a/doc/atcommands.txt b/doc/atcommands.txt
index fb3628e00..b455d9151 100644
--- a/doc/atcommands.txt
+++ b/doc/atcommands.txt
@@ -1498,3 +1498,9 @@ Reloads the 'conf/clans.conf' file.
Obs: it will reload 'db/clans.conf' too since it's included inside 'conf/clans.conf'
---------------------------------------
+
+@camerainfo {<range>, <rotation>, <latitude>}
+
+Allow show/hide or change client camera parameters
+
+---------------------------------------
diff --git a/doc/constants.md b/doc/constants.md
index 451f2a5fe..276881a43 100644
--- a/doc/constants.md
+++ b/doc/constants.md
@@ -3991,6 +3991,8 @@
- `MAX_BG_MEMBERS`: 30
- `MAX_CHAT_USERS`: 20
- `MAX_REFINE`: 20
+- `MAX_MENU_OPTIONS`: 255
+- `MAX_MENU_LENGTH`: 2048
### status options
@@ -4278,6 +4280,7 @@
- `ITEMINFO_VIEWID`: 14
- `ITEMINFO_MATK`: 15
- `ITEMINFO_VIEWSPRITE`: 16
+- `ITEMINFO_TRADE`: 17
### monster skill states
@@ -4367,6 +4370,7 @@
- `QINFO_HOMUN_LEVEL`: 5
- `QINFO_HOMUN_TYPE`: 6
- `QINFO_QUEST`: 7
+- `QINFO_MERCENARY_CLASS`: 8
### function types
@@ -4375,6 +4379,20 @@
- `FUNCTION_IS_LOCAL`: 3
- `FUNCTION_IS_LABEL`: 4
+### item trade restrictions
+
+- `ITR_NONE`: 0
+- `ITR_NODROP`: 1
+- `ITR_NOTRADE`: 2
+- `ITR_PARTNEROVERRIDE`: 4
+- `ITR_NOSELLTONPC`: 8
+- `ITR_NOCART`: 16
+- `ITR_NOSTORAGE`: 32
+- `ITR_NOGSTORAGE`: 64
+- `ITR_NOMAIL`: 128
+- `ITR_NOAUCTION`: 256
+- `ITR_ALL`: 511
+
### Renewal
- `RENEWAL`: 1
@@ -8583,6 +8601,7 @@
- `Dofle_Axe`: 1318
- `TE_Woe_Axe`: 1319
- `Ru_Gold_Axe`: 1323
+- `War_Axe_IL`: 1326
- `Battle_Axe`: 1351
- `Battle_Axe_`: 1352
- `Battle_Axe__`: 1353
@@ -9015,6 +9034,10 @@
- `Spartacus`: 1835
- `Thanos_Knuckle`: 1836
- `Scarlet_Knuckle`: 1839
+- `Combo_Battle_Glove_IL`: 1846
+- `Rebeginer_SR_Nuckle`: 1848
+- `Burning_Knuckle_OS`: 1862
+- `Evt_Iron_Nail_K`: 1864
- `Violin_of_Vicious_Mind`: 1900
- `Violin`: 1901
- `Violin_`: 1902
@@ -9129,6 +9152,10 @@
- `Infinity_Staff`: 2024
- `Scarlet_Staff`: 2025
- `Staff_of_Vicious_Mind`: 2026
+- `Wizardy_Staff_IL`: 2039
+- `Rebeginer_WL_Staff`: 2046
+- `Survival_Staff_IL`: 2051
+- `Evt_Iron_Staff`: 2054
- `Guard`: 2101
- `Guard_`: 2102
- `Buckler`: 2103
@@ -13530,6 +13557,7 @@
- `Black_Butterfly_Mask`: 10037
- `Horn_Protector`: 10038
- `Tw_Backpack`: 10039
+- `Dark_Mane`: 10042
- `Prontera_Book_01`: 11000
- `Adventure_Story01`: 11001
- `Great_Chef_Orleans01`: 11002
@@ -13653,6 +13681,15 @@
- `Trance_Candy_Y`: 11594
- `Trance_Candy_G`: 11595
- `Catnip_Fruit`: 11602
+- `Crepe`: 11607
+- `Chocolate_Egg`: 11608
+- `Yummy_Cookie_Egg`: 11609
+- `Pop_Corn`: 11611
+- `Aromatic_Pop_Corn`: 11612
+- `Fresh_Milk`: 11614
+- `Sweet_Potato_`: 11615
+- `Bearopy`: 11620
+- `Aromatic_Pop_Corn_`: 11625
- `Girl_Bunch_Of_Flower`: 11701
- `Moon_Cookie`: 11702
- `Mysterious_Blood`: 11703
@@ -14712,6 +14749,8 @@
- `ALTAIR_ARES_`: 13124
- `Scarlet_Revolver`: 13127
- `Revolver_of_Vicious_Mind`: 13128
+- `Rebeginer_RL_Gun`: 13144
+- `Calf_Deathadder`: 13146
- `Branch`: 13150
- `The_Cyclone`: 13151
- `The_Cyclone_`: 13152
@@ -14853,6 +14892,9 @@
- `TE_Woe_Huuma`: 13317
- `Scarlet_Huuma`: 13327
- `Huuma_Shuriken_of_Vicious_Mind`: 13328
+- `Huuma_Fluttering_Snow_IL`: 13337
+- `Huuma_Bird_Wing_IL`: 13338
+- `Rebeginer_KO_Humma`: 13341
- `Cutlas_`: 13400
- `Excalibur_C`: 13401
- `Cutlas_C`: 13402
@@ -14896,6 +14938,10 @@
- `Pala`: 13444
- `Scarlet_Saber`: 13454
- `Saber_of_Vicious_Mind`: 13455
+- `Immaterial_Sword_IL`: 13469
+- `Rebeginer_GN_Sword`: 13483
+- `Cannon_Rapier_OS`: 13493
+- `Evt_Bluefire_Sword`: 13495
- `Insurance60_Package`: 13500
- `Assorted_Scroll_Box`: 13501
- `Drooping_Kitty_Box`: 13502
@@ -15947,6 +15993,17 @@
- `White_Shirt`: 15150
- `White_Eco_Shirt`: 15151
- `Elegant_Doram_Suit`: 15156
+- `YSF01_Plate`: 15212
+- `True_Hunting_Mail`: 15246
+- `R_Hunting_Mail`: 15247
+- `Rebeginer_Suits`: 15250
+- `S_CriticalHit_Armor`: 15280
+- `Goibne_Armor_IL`: 15348
+- `Illusion_Armor_A`: 15376
+- `Illusion_Armor_B`: 15377
+- `Time_Overload_Robe`: 15383
+- `Schmidt_Suits`: 15388
+- `Schmidt_Manteau`: 15389
- `Erde`: 16000
- `Red_Square_Bag`: 16001
- `Stunner_C`: 16002
@@ -15982,6 +16039,12 @@
- `Spoon`: 16039
- `Scarlet_Mace`: 16040
- `Mace_of_Vicious_Mind`: 16041
+- `Long_Mace_IL`: 16063
+- `Iron_Driver_IL`: 16065
+- `Rebeginer_NC_Mace`: 16075
+- `Rebeginer_N2_Mace`: 16076
+- `Saphir_Hall_OS`: 16088
+- `Ultio_Spes_OS`: 16089
- `Lady_Tanee_Doll_Box`: 16131
- `Lunatic_Hat_Box`: 16132
- `King_Frog_Hat_Box`: 16134
@@ -16063,6 +16126,7 @@
- `Giant_Fly_Wing_Box_500`: 16418
- `Greed_Scroll_Box_30`: 16419
- `Adventurer_Pack`: 16420
+- `PoporingKey`: 16423
- `Executioner_Box_`: 16424
- `Cutlus_Box`: 16425
- `Moonlight_Dagger_Box`: 16426
@@ -16341,6 +16405,27 @@
- `DEX_Biscuit_Stick_Box`: 17274
- `LUK_Biscuit_Stick_Box`: 17275
- `Jeremy_Beauty_Coupon_Box`: 17336
+- `Almighty_Plus_Box3`: 17774
+- `Almighty100_PlusBox3`: 17775
+- `Refine_Ore_Box17_Set10`: 17882
+- `Refine_Ore_Box17`: 17883
+- `HD_Refine_Ore_Box5`: 17884
+- `HD_High_Refine_Box3`: 17885
+- `Infinity_Box`: 17886
+- `Infinity_10_Box`: 17887
+- `New_Vigorgra_Package`: 17894
+- `New_Vigorgra_Set`: 17895
+- `2017_GStar_CostumeBox`: 17914
+- `Refine_Ore_Box18`: 17923
+- `Refine_Ore_Box18_Set10`: 17924
+- `HD_Refine_Ore_Box6`: 17925
+- `HD_High_Refine_Box4`: 17926
+- `New_3_Potion_pack`: 17935
+- `New_3_Potion_10pack`: 17936
+- `Nyangvine_Box10_3`: 17940
+- `Nyangvine_Box100_3`: 17941
+- `Almighty_Plus_Box4`: 17944
+- `Almighty100_PlusBox4`: 17945
- `Cannon_Ball`: 18000
- `Holy_Cannon_Ball`: 18001
- `Dark_Cannon_Ball`: 18002
@@ -16374,6 +16459,16 @@
- `Ru_Blue_Bow`: 18126
- `Infinity_Bow`: 18128
- `Scarlet_Bow`: 18130
+- `Balistar_IL`: 18149
+- `Rebeginer_RN_Bow`: 18165
+- `Rebeginer_WM_Bow`: 18166
+- `Neev_Bow_Of_Rogue`: 18170
+- `Hunter_Bow_IL`: 18174
+- `Virtual_Bow_OS`: 18178
+- `MH_P89_OS`: 18179
+- `AC_B44_OS`: 18180
+- `Evt_Royal_Bow_K`: 18182
+- `Evt_Narcis_Bow`: 18183
- `Cheer_Scarf6`: 18500
- `Cheer_Scarf8`: 18501
- `Cheer_Scarf10`: 18502
@@ -16801,6 +16896,25 @@
- `Sigruns_Wing_`: 19085
- `Robo_Eye_`: 19086
- `Angel_Spirit_`: 19087
+- `Nurse_Cap_IL`: 19209
+- `Apple_Of_Archer_IL`: 19210
+- `Cap_IL`: 19223
+- `Fancy_Flower_IL`: 19247
+- `GoldFish_Hat`: 19264
+- `Smoky_TransformHat`: 19265
+- `Soda_In_Mouth`: 19277
+- `C_Shiba_Inu`: 19291
+- `C_CatEars_Cyber_HeadP_R`: 19294
+- `Dog_Officer`: 19300
+- `Rebeginer_Cap`: 19310
+- `Egg_Crispinette`: 19339
+- `Headband_Of_Power_IL`: 19344
+- `Goibne_Helmet_IL`: 19366
+- `Pop_Popcorn_Hat`: 19382
+- `E_Oxygen_Mask`: 19389
+- `Racing_C_Star`: 19396
+- `Racing_C_Soul`: 19397
+- `Biting_Off_Rideword`: 19404
- `T_Mr_Smile`: 19500
- `T_Spinx_Helm`: 19501
- `T_Goggle`: 19502
@@ -17572,6 +17686,14 @@
- `C_Pure_White_Ribbon`: 20332
- `C_Family_Hat`: 20333
- `T_Archangel_Wing`: 20500
+- `C_Thanatos_Sword`: 20514
+- `C_Magic_Circle`: 20515
+- `C_Wings_of_Michael`: 20516
+- `C_GiantCatBag_TW`: 20517
+- `C_GoldButterfly_Wing`: 20528
+- `C_Wings_of_Gabriel`: 20530
+- `C_PinkButterfly_Wing_T`: 20533
+- `C_Digital_Space`: 20535
- `Fantastic_Aura`: 20600
- `Egir_Manteau`: 20700
- `TE_Woe_Muffler`: 20702
@@ -17611,6 +17733,19 @@
- `Private_Doram_Manteau`: 20788
- `Luxury_Doram_Manteau`: 20789
- `Elegant_Doram_Manteau`: 20790
+- `Muffler_IL`: 20838
+- `Cape_Of_Ancient_Lord_IL`: 20840
+- `Clack_Of_Servival_IL`: 20847
+- `YSF01_Manteau`: 20856
+- `True_Hunting_Manteau`: 20902
+- `R_Hunting_Manteau`: 20903
+- `Rebeginer_Manteau`: 20906
+- `Goibne_Shoulder_IL`: 20923
+- `Illusion_Engine_A`: 20933
+- `Illusion_Engine_B`: 20934
+- `Time_Overload_Hood`: 20939
+- `Violet_Halo`: 20940
+- `Fairy_Cloth`: 20944
- `Upg_Twohand_Sword`: 21000
- `Velum_Claymore`: 21001
- `Velum_Katzbalger`: 21002
@@ -17630,6 +17765,9 @@
- `Two_Handed_Sword_of_Vicious_Mind`: 21016
- `Lindy_Hop`: 21018
- `Onimaru`: 21019
+- `Rebeginer_RK_T_Sword`: 21037
+- `Beam_Claymore_OS`: 21047
+- `Evt_Oriental_Sword`: 21049
- `Temporal_Str_Boots`: 22000
- `Temporal_Int_Boots`: 22001
- `Temporal_Agi_Boots`: 22002
@@ -17670,6 +17808,17 @@
- `Private_Doram_Shoes`: 22083
- `Luxury_Doram_Shoes`: 22084
- `Elegant_Doram_Shoes`: 22085
+- `Shoes_IL`: 22133
+- `YSF01_Greave`: 22141
+- `True_Hunting_Boots`: 22168
+- `R_Hunting_Boots`: 22169
+- `ShoesOfGuardsman`: 22171
+- `Rebeginer_Boots`: 22173
+- `Boots_IL`: 22190
+- `Goibne_Boots_IL`: 22192
+- `Illusion_Leg_A`: 22196
+- `Illusion_Leg_B`: 22197
+- `Time_Overload_Boots`: 22204
- `Para_Team_Mark_`: 22508
- `Candy_Holder`: 22514
- `Key_Of_Twisted_Time`: 22515
@@ -17701,6 +17850,107 @@
- `Integer_Time`: 22837
- `Something_Candy_Holder`: 22838
- `Old_Money_Pocket`: 22876
+- `Fried_Chicken`: 23242
+- `Fried_Chicken_1`: 23243
+- `Elixir_Bandage`: 23256
+- `Dew_Of_Old_Tree`: 23257
+- `Foul_Rotten_Meat`: 23258
+- `St_Cupcake`: 23259
+- `Parfait`: 23260
+- `Macaron`: 23261
+- `Mado_Box`: 23277
+- `Costama_EggV01`: 23332
+- `Vend_Arbeit1_1Lv`: 23342
+- `Vend_Arbeit1_2Lv`: 23343
+- `Vend_Arbeit1_3Lv`: 23344
+- `Buy_Arbeit1_1Lv`: 23345
+- `Buy_Arbeit1_2Lv`: 23346
+- `Buy_Arbeit1_3Lv`: 23347
+- `Vend_Arbeit_1Lv`: 23348
+- `Vend_Arbeit_2Lv`: 23349
+- `Vend_Arbeit_3Lv`: 23350
+- `Buy_Arbeit_1Lv`: 23351
+- `Buy_Arbeit_2Lv`: 23352
+- `Buy_Arbeit_3Lv`: 23353
+- `Vend_Arbeit1_1Lv_`: 23354
+- `Vend_Arbeit1_2Lv_`: 23355
+- `Vend_Arbeit1_3Lv_`: 23356
+- `Buy_Arbeit1_1Lv_`: 23357
+- `Buy_Arbeit1_2Lv_`: 23358
+- `Buy_Arbeit1_3Lv_`: 23359
+- `Green_Scroll_K2`: 23405
+- `Sentimental_Scroll`: 23440
+- `July_Hair_Box`: 23444
+- `Savage_Trap`: 23446
+- `Infinity_Scroll`: 23473
+- `Infinity_Drink`: 23475
+- `Firstaid_Box_5`: 23484
+- `Firstaid_Box_10`: 23485
+- `Firstaid_Box_15`: 23486
+- `Firstaid_Box_20`: 23487
+- `Firstaid_Box_25`: 23488
+- `Firstaid_Box_30`: 23489
+- `Firstaid_Box_35`: 23490
+- `Firstaid_Box_40`: 23491
+- `Firstaid_Box_45`: 23492
+- `Firstaid_Box_50`: 23493
+- `Firstaid_Box_55`: 23494
+- `Firstaid_Box_60`: 23495
+- `Firstaid_Box_65`: 23496
+- `Firstaid_Box_70`: 23497
+- `Firstaid_Box_75`: 23498
+- `Firstaid_Box_80`: 23499
+- `Firstaid_Box_85`: 23500
+- `Firstaid_Box_90`: 23501
+- `Firstaid_Box_95`: 23502
+- `Red_Potion_B_20`: 23503
+- `Orange_Potion_B_20`: 23504
+- `Yellow_Potion_B_20`: 23505
+- `White_Potion_B_20`: 23506
+- `Vote_Rose`: 23533
+- `Bloody_Scroll`: 23537
+- `Snow_Cookie`: 23549
+- `Winter_Cookie`: 23550
+- `Festi_Cookie`: 23551
+- `Flora_Cookie`: 23552
+- `Snow_Festa_CardPack`: 23554
+- `Adventurer_Box_1`: 23575
+- `Adventurer_Box_15`: 23576
+- `Adventurer_Box_30`: 23577
+- `Adventurer_Box_45`: 23578
+- `Adventurer_Box_60`: 23579
+- `Adventurer_Box_75`: 23580
+- `Adventurer_Box_90`: 23581
+- `E_Wing_Of_Fly_3Day_Box`: 23582
+- `Rebeginer_Box`: 23583
+- `Rebeginer_S_Box`: 23584
+- `Rebeginer_Box_100`: 23585
+- `Rebeginer_Box_110`: 23586
+- `Rebeginer_Box_120`: 23587
+- `2017_Special_Scroll`: 23618
+- `Ice_Scroll`: 23650
+- `2018_New_Year_Scroll`: 23661
+- `EVT_JAN02KR`: 23683
+- `Lunar_New_Year_Scroll`: 23700
+- `Reactor_Z`: 23706
+- `Reactor_Z_`: 23707
+- `2018_Spring_Scroll`: 23710
+- `Melon_Bread`: 23723
+- `Costama_EggV02`: 23765
+- `Mysterious_Plastic`: 23771
+- `EP17_1_SPC01`: 23772
+- `EP17_1_SPC02`: 23773
+- `EP17_1_SPC03`: 23774
+- `EP17_1_SPC04`: 23775
+- `Bs_Making_Scrolls`: 23817
+- `StarSoul_Scroll`: 23878
+- `2018_Jump_Thx_Box`: 23897
+- `Comp_Power_Booster`: 23898
+- `Comp_Almighty`: 23899
+- `Time_Overload_Box`: 23900
+- `110LVUP`: 23901
+- `Season_Evt_Reward`: 23921
+- `Malang_Cat_Can2`: 23962
- `T1_Shadow_Armor`: 24000
- `T1_Shadow_Weapon`: 24001
- `T1_Shadow_Shield`: 24002
@@ -17947,7 +18197,164 @@
- `S_Reload_Shoes`: 24243
- `S_Reload_Shield`: 24244
- `S_Reload_Armor`: 24245
+- `Sentimental_Weapone_S`: 24380
+- `Sentimental_Earring_S`: 24381
+- `Sentimental_Pendant_S`: 24382
+- `Enchanting_Weapone_S`: 24383
+- `Enchanting_Earring_S`: 24384
+- `Enchanting_Pendant_S`: 24385
+- `S_Infinity_Weapon`: 24386
+- `Rebeginer_Armor_S`: 24387
+- `Rebeginer_Shield_S`: 24388
+- `Rebeginer_Shoes_S`: 24389
+- `Rebeginer_Weapon_S`: 24390
+- `Rebeginer_Earring_S`: 24391
+- `Rebeginer_Pendant_S`: 24392
+- `S_Physical_Shoes`: 24393
+- `S_Physical_Shield`: 24394
+- `S_Physical_Armor`: 24395
+- `S_Magical_Shoes`: 24396
+- `S_Magical_Shield`: 24397
+- `S_Magical_Armor`: 24398
+- `S_ImmunedAthena_Shield`: 24399
+- `S_HardChamption_Shoes`: 24400
+- `S_KingbirdAncient_Armor`: 24401
+- `S_Rebellion_Armor`: 24402
+- `S_Kagerou_Armor`: 24403
+- `S_Oboro_Armor`: 24404
+- `S_Rebellion_Shoes`: 24405
+- `S_Kagerou_Shoes`: 24406
+- `S_Oboro_Shoes`: 24407
+- `S_DoramPhysical_Armor`: 24408
+- `S_DoramPhysical_Shoes`: 24409
+- `S_DoramMagical_Armor`: 24410
+- `S_DoramMagical_Shoes`: 24411
+- `S_Star_Emperor_Armor`: 24412
+- `S_Star_Emperor_Shoes`: 24413
+- `S_Soul_Reaper_Armor`: 24414
+- `S_Soul_Reaper_Shoes`: 24415
+- `S_Timeoverload_Weapon`: 24416
+- `S_Timeoverload_Armor`: 24417
+- `S_Timeoverload_Shield`: 24418
+- `S_Timeoverload_Shoes`: 24419
+- `S_Timeoverload_Earing`: 24420
+- `S_Timeoverload_Pandent`: 24421
+- `BrokenArrow`: 25258
+- `Shining_Spore`: 25265
+- `Dried_Leaf_Of_Ygg`: 25266
+- `IllusionStone`: 25271
+- `Sweets_Coin`: 25290
+- `Clover_Ticket`: 25294
+- `Happiness_Clover`: 25295
+- `Golden_Corn`: 25340
+- `Mightysoul_Essence`: 25375
+- `Captured_Savage`: 25390
+- `Goodly_Bough`: 25391
+- `Free_Pass_Ticket`: 25392
+- `Delicious_Corn`: 25393
+- `Fruit_Lunch`: 25394
+- `Small_Embers`: 25395
+- `Black_Fur`: 25401
+- `Memory_Of_Gyol`: 25408
+- `SuraStone_Top`: 25409
+- `SuraStone_Middle`: 25410
+- `SuraStone_Bottom`: 25411
+- `SuraStone_Robe`: 25412
+- `RangerStone_Top`: 25413
+- `RangerStone_Middle`: 25414
+- `RangerStone_Bottom`: 25415
+- `RangerStone_Robe`: 25416
+- `SorcererStone_Top`: 25417
+- `SorcererStone_Middle`: 25418
+- `SorcererStone_Bottom`: 25419
+- `SorcererStone_Robe`: 25420
+- `Pumpkin_Decor`: 25421
+- `White_Thin_Stem`: 25422
+- `SnowFlower_Of_Spell`: 25425
+- `Warm_Cotton`: 25426
+- `Rebeginer_W_Coupon`: 25427
+- `Rebeginer_W_7Up`: 25428
+- `RuneknightStone_Top`: 25445
+- `RuneknightStone_Middle`: 25446
+- `RuneknightStone_Bottom`: 25447
+- `RuneknightStone_Robe`: 25448
+- `GeneticStone_Robe`: 25449
+- `GeneticStone_Top`: 25450
+- `GeneticStone_Middle`: 25451
+- `GeneticStone_Bottom`: 25452
+- `WarlockStone_Top`: 25453
+- `WarlockStone_Middle`: 25454
+- `WarlockStone_Bottom`: 25455
+- `WarlockStone_Robe`: 25456
+- `World_Tour_Ticket`: 25464
+- `Dogly_Bottle`: 25479
+- `ShadowchaserStone_Top`: 25490
+- `ShadowchaseStone_Middle`: 25491
+- `ShadowchaseStone_Bottom`: 25492
+- `ShadowchaserStone_Robe`: 25493
+- `MechanicStone_Top`: 25494
+- `MechanicStone_Middle`: 25495
+- `MechanicStone_Bottom`: 25496
+- `MechanicStone_Robe`: 25497
+- `WanderMinstrelStone_Top`: 25498
+- `WanderMinstStone_Middle`: 25499
+- `WanderMinstStone_Bottom`: 25500
+- `WanderMinstreStone_Robe`: 25501
+- `Visionary_Ticket`: 25504
+- `Token_of_OrcGeneral`: 25508
+- `Evt_March04_KR`: 25511
+- `Evt_March05_KR`: 25512
+- `Green_Bearopy`: 25616
+- `White_Snake_Tear`: 25622
+- `Gold_Card`: 25627
+- `Konts_Letter`: 25629
+- `Token_Of_Wootan`: 25633
+- `Wootan_D_S_Piece`: 25634
+- `Token_Of_Bigstone`: 25638
+- `Fragment_Of_Rock`: 25639
+- `Autographed_Book`: 25643
+- `Dalcom_Coin`: 25655
+- `Stamp_Note`: 25656
+- `Evt_July01_KR`: 25657
+- `Evt_July02_KR`: 25658
+- `Evt_May02_KR`: 25659
+- `Evt_July03_KR`: 25664
+- `Dienes_Envelope`: 25665
+- `Id_Card`: 25666
+- `Broken_Weapon`: 25668
+- `Unknown_Parts`: 25669
+- `HighpriestStone_Top`: 25706
+- `HighpriestStone_Middle`: 25707
+- `HighpriestStone_Bottom`: 25708
+- `ArchbishopStone_Robe`: 25709
+- `PaladinStone_Top`: 25710
+- `PaladinStone_Middle`: 25711
+- `PaladinStone_Bottom`: 25712
+- `RoyalguardStone_Robe`: 25713
+- `AssacrossStone_Top`: 25714
+- `AssacrossStone_Middle`: 25715
+- `AssacrossStone_Bottom`: 25716
+- `GuillcrossStone_Robe`: 25717
+- `Cor_Core`: 25723
+- `Shadowdecon_Ore`: 25728
+- `Shadowdecon`: 25729
+- `Zelunium_Ore`: 25730
+- `Zelunium`: 25731
+- `Sealed_Weapon_Ticket`: 25734
+- `Unsealing_Token`: 25735
+- `GH_Cursed_Crystal`: 25739
+- `GH_Cursed_Gemstone`: 25740
+- `Spectral_Spear_IL`: 26007
+- `Rebeginer_LG_Lance`: 26015
- `Paradise_Foxtail_Staff_III`: 26101
+- `Staff_Of_Bordeaux_IL`: 26109
+- `CandyCaneRod`: 26110
+- `Metal_Foxtail`: 26111
+- `Rebeginer_SO_Rod`: 26119
+- `Rebeginer_DO_Rod`: 26120
+- `Rutilus_Stick_OS`: 26151
+- `MeawFoxtail`: 26155
+- `Evt_Shadow_Staff_K`: 26156
- `Faceworm_Queen_Card`: 27164
- `Captain_Felock_Card`: 27182
- `Thanos_Katar`: 28000
@@ -17956,16 +18363,29 @@
- `Scarlet_Katar`: 28007
- `Katar_of_Vicious_Mind`: 28008
- `Juliette_de_Rachel`: 28010
+- `Infiltrator_IL`: 28022
+- `Ghoul_Leg_IL`: 28023
+- `Rebeginer_GC_Katar`: 28027
+- `Meuchler_OS`: 28038
+- `Evt_Shiver_Katar_K`: 28040
- `Thanos_Axe`: 28100
- `Tornado_Axe`: 28101
- `Infinity_Two_handed_Axe`: 28105
- `Scarlet_Twohand_Axe`: 28106
- `Two_Handed_Axe_of_Vicious_Mind`: 28107
+- `Blasti_OS`: 28136
+- `Evt_Avenger`: 28137
- `END_OF_HORIZON`: 28200
- `Southern_Cross_R`: 28201
- `Southern_Cross_R_`: 28202
- `Half_BF_Rifle1`: 28203
- `Half_BF_Shotgun1`: 28204
+- `Calf_Kingcobra`: 28240
+- `Calf_Diamondback`: 28241
+- `Calf_Anaconda`: 28242
+- `Calf_Python`: 28243
+- `Gate_KeeperDD_IL`: 28244
+- `HR_S55_OS`: 28253
- `Bless_Of_Moon`: 28306
- `Earring_Of_Sarah_L`: 28310
- `Earring_Of_Sarah_R`: 28311
@@ -17997,15 +18417,36 @@
- `Shiny_Branch_Talisman`: 28422
- `Fresh_Tuna_Talisman`: 28423
- `Chubby_Worm_Talisman`: 28424
+- `Skul_Ring_IL`: 28508
+- `Ring_IL`: 28509
+- `Vampire_s_Servant`: 28510
+- `RKC_2017_Pendant`: 28534
+- `RKC_2017_Ring`: 28535
+- `Rebeginer_Ring`: 28566
- `Scarlet_Bible`: 28604
- `Book_of_Vicious_Mind`: 28605
+- `Book_Of_The_Apo_IL`: 28612
+- `Rebeginer_AB_Bible`: 28616
+- `Tablet_IL`: 28626
+- `Circuit_Board_OS`: 28629
+- `Time_Kamiji`: 28631
- `Infinity_Dagger`: 28703
- `Twilight_Desert_`: 28704
- `Scarlet_Dagger`: 28705
- `Dagger_of_Vicious_Mind`: 28706
+- `Moonlight_Sword_IL`: 28725
+- `Rebeginer_SC_Dagger`: 28740
+- `Counter_Dagger_IL`: 28745
+- `Kuroiro_OS`: 28755
+- `Evt_Magic_Sword`: 28759
- `Praetorian_Shield`: 28900
- `Cursed_Mad_Bunny`: 28901
- `Mad_Bunny_`: 28902
+- `Herald_Of_GOD_IL`: 28922
+- `Bloody_Knight_Shield`: 28942
+- `Bloody_Knight_Shield_`: 28945
+- `Bloody_Knight_Shield__`: 28946
+- `Poring_B_Shield`: 28953
- `Rune_Of_Magic1`: 29000
- `Rune_Of_Magic2`: 29001
- `Rune_Of_Magic3`: 29002
@@ -18033,6 +18474,76 @@
- `LUK3_INT3`: 29025
- `DEF20`: 29026
- `EXP2`: 29027
+- `Deep_Black_Pearl`: 29540
+- `Sea_Sapphire`: 29547
+- `Red_Fog_Garnet`: 29548
+- `Lightning_Topaz`: 29549
+- `Poisoned_Amethyst`: 29550
+- `Frost_Zircon`: 29551
+- `Deep_Black_Pearl_`: 29552
+- `Lightning_Topaz_`: 29587
+- `Bloody_Ruby`: 29588
+- `GH_Cursed_Gemstone_`: 29589
+- `GH_Cursed_Crystal_`: 29590
+- `Cursed_Emerald`: 29591
+- `Shinee_Opal`: 29592
+- `Roast_Memory`: 31172
+- `C_Black_Cat`: 31186
+- `Choco_Minihat`: 31195
+- `Egg_Crispinette_`: 31197
+- `Straight_Long_YL`: 31208
+- `Straight_Long_WH`: 31209
+- `Rabbit_Hopping`: 31249
+- `Soda_In_Mouth_`: 31261
+- `Warm_Cat_Muffler`: 31300
+- `C_FallenAngelWingEar`: 31313
+- `C_Ghost_Holiday`: 31314
+- `C_FlutterButterfly_BL`: 31316
+- `C_Alice_Wig`: 31329
+- `C_Khalitzburg_Helm_BL`: 31332
+- `Harvest_Festa_Hat`: 31368
+- `Straight_Long_WH_`: 31369
+- `Straight_Long_YL_`: 31370
+- `Jjakk`: 31387
+- `White_Bird_Rose`: 31389
+- `Let_It_Snow`: 31390
+- `C_Sorcerer_Hood`: 31396
+- `C_Pope_Sitting_Head`: 31397
+- `C_Blinking_Thin_Eyes`: 31398
+- `Alice_Wig_PK`: 31407
+- `C_Wanderer_Sakkat`: 31415
+- `C_Luwmin_Ice`: 31432
+- `C_Astro_Circle`: 31433
+- `C_Baby_Penguin`: 31437
+- `C_Fluffy_Heart_Earmuffs`: 31439
+- `White_Cat`: 31452
+- `Love_Feeling`: 31454
+- `Enchanted_Dog`: 31455
+- `C_Blessing_Sky_Lantern`: 31460
+- `C_Flying_Drone`: 31463
+- `Egg_Minihat`: 31465
+- `C_Bouquet_Hat`: 31489
+- `C_Poring_Muffler`: 31490
+- `Volume_Low_Twin`: 31494
+- `Lolita_Two_Side_Up`: 31495
+- `C_Elephangel_TH`: 31498
+- `Mini_Melon`: 31516
+- `Pop_Popcorn_Hat_`: 31518
+- `Slurp_Slurp_Hat`: 31519
+- `C_Happy_Rabbit_Ribbon`: 31529
+- `Autumnal_Flavor`: 31580
+- `GOLD_MAJESTIC_GOUT`: 31589
+- `C_Autumn_Headband`: 31606
+- `Pole_Axe_IL`: 32005
+- `Metal_Stick`: 32013
+- `Boost_Lance_OS`: 32019
+- `Evt_Undine_Spear_K`: 32021
+- `Illusion_B_R`: 32207
+- `Illusion_B_L`: 32208
+- `Illusion_BC_R`: 32209
+- `Illusion_BC_L`: 32210
+- `Time_Overload_Ring`: 32221
+- `Celine_Brooch`: 32237
> End of list
diff --git a/doc/effect_list.md b/doc/effect_list.md
new file mode 100644
index 000000000..8ba8d36c9
--- /dev/null
+++ b/doc/effect_list.md
@@ -0,0 +1,1126 @@
+# Client Effects List
+A list of client-side effects sorted by ID in ascending order.
+
+# Copyright
+> This file is part of Hercules.
+> http://herc.ws - http://github.com/HerculesWS/Hercules
+>
+> Copyright (C) 2012-2018 Hercules Dev Team
+> Copyright (C) Athena Dev Teams
+>
+> Hercules 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 3 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, see <http://www.gnu.org/licenses/>.
+
+## Description
+The following is a compiled list of visual and sound effects which the client
+can produce. Each list entry contains a number and a short description of the
+effect. You can produce these effects ingame by using the `@effect` atcommand.
+It's also possible to attach effects to item/npc scripts by using the
+`specialeffect()` script command.
+
+ ID | Constant Name | Description
+ --: | :----------------------------- | :----------------------------------
+ -1 | EF_NONE | None
+ 0 | EF_HIT1 | Regular Hit
+ 1 | EF_HIT2 | Bash
+ 2 | EF_HIT3 | Melee Skill Hit
+ 3 | EF_HIT4 | Melee Skill Hit
+ 4 | EF_HIT5 | Melee Skill Hit
+ 5 | EF_HIT6 | Melee Skill Hit
+ 6 | EF_ENTRY | Being Warped
+ 7 | EF_EXIT | Item Heal effect
+ 8 | EF_WARP | Yellow Ripple Effect
+ 9 | EF_ENHANCE | Different Type of Heal
+ 10 | EF_COIN | Mammonite
+ 11 | EF_ENDURE | Endure
+ 12 | EF_BEGINSPELL | Yellow cast aura
+ 13 | EF_GLASSWALL | Blue Box
+ 14 | EF_HEALSP | Blue restoring effect
+ 15 | EF_SOULSTRIKE | Soul Strike
+ 16 | EF_BASH | Hide
+ 17 | EF_MAGNUMBREAK | Magnum Break
+ 18 | EF_STEAL | Steal
+ 19 | EF_HIDING | (Invalid)
+ 20 | EF_PATTACK | Envenom/Poison
+ 21 | EF_DETOXICATION | Detoxify
+ 22 | EF_SIGHT | Sight
+ 23 | EF_STONECURSE | Stone Curse
+ 24 | EF_FIREBALL | Fire Ball
+ 25 | EF_FIREWALL | Fire Wall
+ 26 | EF_ICEARROW | A sound (a swipe?)
+ 27 | EF_FROSTDIVER | Frost Diver (Traveling to Target)
+ 28 | EF_FROSTDIVER2 | Frost Diver (Hitting)
+ 29 | EF_LIGHTBOLT | Lightning Bolt
+ 30 | EF_THUNDERSTORM | Thunder Storm
+ 31 | EF_FIREARROW | Weird bubbles launching from feet
+ 32 | EF_NAPALMBEAT | Small clustered explosions
+ 33 | EF_RUWACH | Ruwach
+ 34 | EF_TELEPORTATION | Old Map Exit Animation (unused)
+ 35 | EF_READYPORTAL | Old Warp Portal (unused)
+ 36 | EF_PORTAL | Old Warp Portal (unused)
+ 37 | EF_INCAGILITY | AGI Up
+ 38 | EF_DECAGILITY | AGI Down
+ 39 | EF_AQUA | Aqua Benedicta
+ 40 | EF_SIGNUM | Signum Crucis
+ 41 | EF_ANGELUS | Angelus
+ 42 | EF_BLESSING | Blessing
+ 43 | EF_INCAGIDEX | Dex + Agi Up
+ 44 | EF_SMOKE | Little Fog Smoke.
+ 45 | EF_FIREFLY | Faint Little Ball Things.
+ 46 | EF_SANDWIND | Sand Wind
+ 47 | EF_TORCH | Torch
+ 48 | EF_SPRAYPOND | Small Piece of Glass
+ 49 | EF_FIREHIT | Firebolt/Wall Hits
+ 50 | EF_FIRESPLASHHIT | Spinning Fire Thing
+ 51 | EF_COLDHIT | Ice Elemental Hit
+ 52 | EF_WINDHIT | Wind Elemental Hit
+ 53 | EF_POISONHIT | Puff of Purpulish Smoke?
+ 54 | EF_BEGINSPELL2 | Cast Initiation Aura (Water Element)
+ 55 | EF_BEGINSPELL3 | Cast Initiation Aura (Fire Element)
+ 56 | EF_BEGINSPELL4 | Cast Initiation Aura (Wind Element)
+ 57 | EF_BEGINSPELL5 | Cast Initiation Aura (Earth Element)
+ 58 | EF_BEGINSPELL6 | Cast Initiation Aura (Holy Element)
+ 59 | EF_BEGINSPELL7 | Cast Initiation Aura (Poison Element)
+ 60 | EF_LOCKON | Cast target circle
+ 61 | EF_WARPZONE | Old Warp Portal (NPC Warp, unused)
+ 62 | EF_SIGHTRASHER | Sight Trasher
+ 63 | EF_BARRIER | Moonlight Sphere
+ 64 | EF_ARROWSHOT | Something Like Puruple/Yellow Light Bullet
+ 65 | EF_INVENOM | Something Like Absorb of Power
+ 66 | EF_CURE | Cure
+ 67 | EF_PROVOKE | Provoke
+ 68 | EF_MVP | MVP Banner
+ 69 | EF_SKIDTRAP | Skid Trap
+ 70 | EF_BRANDISHSPEAR | Brandish Spear
+ 71 | EF_CONE | Spiral White balls
+ 72 | EF_SPHERE | Bigger Spiral White balls
+ 73 | EF_BOWLINGBASH | Blue/White Small Aura
+ 74 | EF_ICEWALL | Ice Wall
+ 75 | EF_GLORIA | Gloria
+ 76 | EF_MAGNIFICAT | Magnificat
+ 77 | EF_RESURRECTION | Resurrection
+ 78 | EF_RECOVERY | Status Recovery
+ 79 | EF_EARTHSPIKE | Earth Spike
+ 80 | EF_SPEARBMR | Spear Boomerang
+ 81 | EF_PIERCE | Skill hit
+ 82 | EF_TURNUNDEAD | Turn Undead
+ 83 | EF_SANCTUARY | Sanctuary
+ 84 | EF_IMPOSITIO | Impositio Manus
+ 85 | EF_LEXAETERNA | Lex Aeterna
+ 86 | EF_ASPERSIO | Aspersio
+ 87 | EF_LEXDIVINA | Lex Divina
+ 88 | EF_SUFFRAGIUM | Suffragium
+ 89 | EF_STORMGUST | Storm Gust
+ 90 | EF_LORD | Lord of Vermilion
+ 91 | EF_BENEDICTIO | B. S. Sacramenti
+ 92 | EF_METEORSTORM | Meteor Storm
+ 93 | EF_YUFITEL | Jupitel Thunder (Ball)
+ 94 | EF_YUFITELHIT | Jupitel Thunder (Hit)
+ 95 | EF_QUAGMIRE | Quagmire
+ 96 | EF_FIREPILLAR | Fire Pillar
+ 97 | EF_FIREPILLARBOMB | Fire Pillar/Land Mine hit
+ 98 | EF_HASTEUP | Adrenaline Rush
+ 99 | EF_FLASHER | Flasher Trap
+ 100 | EF_REMOVETRAP | Yellow ball fountain
+ 101 | EF_REPAIRWEAPON | Weapon Repair
+ 102 | EF_CRASHEARTH | Hammerfall
+ 103 | EF_PERFECTION | Weapon Perfection
+ 104 | EF_MAXPOWER | Maximize Power
+ 105 | EF_BLASTMINE | (nothing)
+ 106 | EF_BLASTMINEBOMB | Blast Mine Trap
+ 107 | EF_CLAYMORE | Claymore Trap
+ 108 | EF_FREEZING | Freezing Trap
+ 109 | EF_BUBBLE | Bailaban Blue bubble Map Effect
+ 110 | EF_GASPUSH | Trap Used by Giearth
+ 111 | EF_SPRINGTRAP | Spring Trap
+ 112 | EF_KYRIE | Kyrie Eleison
+ 113 | EF_MAGNUS | Magnus Exorcismus
+ 114 | EF_BOTTOM | Old Magnus Exorcismus Map Unit (unused)
+ 115 | EF_BLITZBEAT | Blitz Beat
+ 116 | EF_WATERBALL | Fling Watersphere
+ 117 | EF_WATERBALL2 | Waterball
+ 118 | EF_FIREIVY | Fling Firesphere
+ 119 | EF_DETECTING | Detect
+ 120 | EF_CLOAKING | Cloaking
+ 121 | EF_SONICBLOW | Sonic Blow (Part 1/2)
+ 122 | EF_SONICBLOWHIT | Multi hit effect
+ 123 | EF_GRIMTOOTH | Grimtooth Cast
+ 124 | EF_VENOMDUST | Venom Dust
+ 125 | EF_ENCHANTPOISON | Enchant Poison
+ 126 | EF_POISONREACT | Poison React
+ 127 | EF_POISONREACT2 | Small Posion React
+ 128 | EF_OVERTHRUST | Over Thrust
+ 129 | EF_SPLASHER | Venom Splasher Explosion
+ 130 | EF_TWOHANDQUICKEN | Two-Hand Quicken
+ 131 | EF_AUTOCOUNTER | Auto-Counter Hit
+ 132 | EF_GRIMTOOTHATK | Grimtooth Hit
+ 133 | EF_FREEZE | Ice Effect (Used by NPCs)
+ 134 | EF_FREEZED | Ice Effect (Used by NPCs)
+ 135 | EF_ICECRASH | Ice Effect (Used by NPCs)
+ 136 | EF_SLOWPOISON | Slow Poison
+ 137 | EF_BOTTOM2 | Old Sanctuary Map Unit (unused)
+ 138 | EF_FIREPILLARON | Fire pillar
+ 139 | EF_SANDMAN | Sandman Trap
+ 140 | EF_REVIVE | Ressurection Aura
+ 141 | EF_PNEUMA | Pneuma
+ 142 | EF_HEAVENSDRIVE | Heaven's Drive
+ 143 | EF_SONICBLOW2 | Sonic Blow (Part 2/2)
+ 144 | EF_BRANDISH2 | Brandish Spear Pre-Hit Effect
+ 145 | EF_SHOCKWAVE | Shockwave Trap
+ 146 | EF_SHOCKWAVEHIT | Shockwave Trap Hit
+ 147 | EF_EARTHHIT | Pierce Hit
+ 148 | EF_PIERCESELF | Pierce Cast Animation
+ 149 | EF_BOWLINGSELF | Bowling Bash
+ 150 | EF_SPEARSTABSELF | Pierce Cast Animation
+ 151 | EF_SPEARBMRSELF | Spear Boomerang Cast
+ 152 | EF_HOLYHIT | Turn Undead
+ 153 | EF_CONCENTRATION | Increase Concentration
+ 154 | EF_REFINEOK | Refine Success
+ 155 | EF_REFINEFAIL | Refine Fail
+ 156 | EF_JOBCHANGE | jobchange.str not found error
+ 157 | EF_LVUP | levelup.str not found error
+ 158 | EF_JOBLVUP | Job Level Up
+ 159 | EF_TOPRANK | PvP circle
+ 160 | EF_PARTY | PvP Party Circle
+ 161 | EF_RAIN | (Nothing)
+ 162 | EF_SNOW | Snow
+ 163 | EF_SAKURA | White Sakura Leaves
+ 164 | EF_STATUS_STATE | (Nothing)
+ 165 | EF_BANJJAKII | Comodo Fireworks Ball
+ 166 | EF_MAKEBLUR | Energy Coat (Visual Effect)
+ 167 | EF_TAMINGSUCCESS | (Nothing)
+ 168 | EF_TAMINGFAILED | (Nothing)
+ 169 | EF_ENERGYCOAT | Energy Coat Animation
+ 170 | EF_CARTREVOLUTION | Cart Revolution
+ 171 | EF_VENOMDUST2 | Venom Dust Map Unit
+ 172 | EF_CHANGEDARK | Change Element (Dark)
+ 173 | EF_CHANGEFIRE | Change Element (Fire)
+ 174 | EF_CHANGECOLD | Change Element (Water)
+ 175 | EF_CHANGEWIND | Change Element (Wind)
+ 176 | EF_CHANGEFLAME | Change Element (Fire)
+ 177 | EF_CHANGEEARTH | Change Element (Earth)
+ 178 | EF_CHAINGEHOLY | Change Element (Holy)
+ 179 | EF_CHANGEPOISON | Change Element (Poison)
+ 180 | EF_HITDARK | Darkness Attack
+ 181 | EF_MENTALBREAK | Mental Breaker
+ 182 | EF_MAGICALATTHIT | Magical Hit
+ 183 | EF_SUI_EXPLOSION | Self Destruction
+ 184 | EF_DARKATTACK | (Nothing)
+ 185 | EF_SUICIDE | (Nothing)
+ 186 | EF_COMBOATTACK1 | Combo Attack 1
+ 187 | EF_COMBOATTACK2 | Combo Attack 2
+ 188 | EF_COMBOATTACK3 | Combo Attack 3
+ 189 | EF_COMBOATTACK4 | Combo Attack 4
+ 190 | EF_COMBOATTACK5 | Combo Attack 5
+ 191 | EF_GUIDEDATTACK | Guided Attack
+ 192 | EF_POISONATTACK | Poison Attack
+ 193 | EF_SILENCEATTACK | Silence Attack
+ 194 | EF_STUNATTACK | Stun Attack
+ 195 | EF_PETRIFYATTACK | Petrify Attack
+ 196 | EF_CURSEATTACK | Curse Attack
+ 197 | EF_SLEEPATTACK | Sleep Attack
+ 198 | EF_TELEKHIT | (Nothing)
+ 199 | EF_PONG | Small Popping Bubble Map Effect
+ 200 | EF_LEVEL99 | Normal level 99 Aura (Middle)
+ 201 | EF_LEVEL99_2 | Normal level 99 Aura (Bottom)
+ 202 | EF_LEVEL99_3 | Lv 99 Aura Bubble
+ 203 | EF_GUMGANG | Fury (Visual Effect)
+ 204 | EF_POTION1 | Red Herb/Potion
+ 205 | EF_POTION2 | Orange Potion
+ 206 | EF_POTION3 | Yellow Herb/Potion
+ 207 | EF_POTION4 | White Herb/Potion
+ 208 | EF_POTION5 | Blue Herb/Potion
+ 209 | EF_POTION6 | Green Herb/Potion
+ 210 | EF_POTION7 | Yellow Circle Healing Effect
+ 211 | EF_POTION8 | Blue Circle Healing Effect
+ 212 | EF_DARKBREATH | Dark Breath
+ 213 | EF_DEFFENDER | Defender
+ 214 | EF_KEEPING | Keeping
+ 215 | EF_SUMMONSLAVE | Summon Slave
+ 216 | EF_BLOODDRAIN | Blood Drain
+ 217 | EF_ENERGYDRAIN | Energy Drain
+ 218 | EF_POTION_CON | Concentration Potion
+ 219 | EF_POTION_ | Awakening Potion
+ 220 | EF_POTION_BERSERK | Berserk Potion
+ 221 | EF_POTIONPILLAR | Intense light beam
+ 222 | EF_DEFENDER | Defender (Crusader)
+ 223 | EF_GANBANTEIN | Holy Cast Aura
+ 224 | EF_WIND | Wind (Map effect)
+ 225 | EF_VOLCANO | Volcano casting effect
+ 226 | EF_GRANDCROSS | Grand Cross Effect
+ 227 | EF_INTIMIDATE | Snatch
+ 228 | EF_CHOOKGI | (Nothing)
+ 229 | EF_CLOUD | (Nothing)
+ 230 | EF_CLOUD2 | (Nothing)
+ 231 | EF_MAPPILLAR | Map Light Pillar Animation 1
+ 232 | EF_LINELINK | Sacrifice (Visual Effect)
+ 233 | EF_CLOUD3 | Fog
+ 234 | EF_SPELLBREAKER | Spell Breaker
+ 235 | EF_DISPELL | Dispell
+ 236 | EF_DELUGE | Deluge Cast Aura
+ 237 | EF_VIOLENTGALE | Violent Gale Cast Aura
+ 238 | EF_LANDPROTECTOR | Magnetic Earth Cast Aura
+ 239 | EF_BOTTOM_VO | Volcano (Visual Effect)
+ 240 | EF_BOTTOM_DE | Deluge (Visual Effect)
+ 241 | EF_BOTTOM_VI | Violent Gale (Visual Effect)
+ 242 | EF_BOTTOM_LA | Magnetic Earth (Visual Effect)
+ 243 | EF_FASTMOVE | (Invalid)
+ 244 | EF_MAGICROD | Magic Rod
+ 245 | EF_HOLYCROSS | Holy Cross
+ 246 | EF_SHIELDCHARGE | Shield Charge
+ 247 | EF_MAPPILLAR2 | Map Light Pillar Animation 2
+ 248 | EF_PROVIDENCE | Resistant Souls
+ 249 | EF_SHIELDBOOMERANG | Shield Boomerang
+ 250 | EF_SPEARQUICKEN | Spear Quicken
+ 251 | EF_DEVOTION | Devotion
+ 252 | EF_REFLECTSHIELD | Reflect Shield
+ 253 | EF_ABSORBSPIRITS | Absorb Spirit Spheres
+ 254 | EF_STEELBODY | Mental Strength (Visual Effect)
+ 255 | EF_FLAMELAUNCHER | Elemental Endow (Fire)
+ 256 | EF_FROSTWEAPON | Elemental Endow (Water)
+ 257 | EF_LIGHTNINGLOADER | Elemental Endow (Wind)
+ 258 | EF_SEISMICWEAPON | Elemental Endow (Earth)
+ 259 | EF_MAPPILLAR3 | Map Light Pillar Animation 3
+ 260 | EF_MAPPILLAR4 | Map Light Pillar Animation 4
+ 261 | EF_GUMGANG2 | Fury Cast Animation
+ 262 | EF_TEIHIT1 | Raging Quadruple Blow
+ 263 | EF_GUMGANG3 | Raging Quadruple Blow 2
+ 264 | EF_TEIHIT2 | (Nothing)
+ 265 | EF_TANJI | Throw Spirit Sphere
+ 266 | EF_TEIHIT1X | Raging Quadruple Blow 3
+ 267 | EF_CHIMTO | Occult Impaction
+ 268 | EF_STEALCOIN | Steal Coin
+ 269 | EF_STRIPWEAPON | Divest Weapon
+ 270 | EF_STRIPSHIELD | Divest Shield
+ 271 | EF_STRIPARMOR | Divest Armor
+ 272 | EF_STRIPHELM | Divest Helm
+ 273 | EF_CHAINCOMBO | Raging Quadruple Blow 4
+ 274 | EF_RG_COIN | Steal Coin Animation
+ 275 | EF_BACKSTAP | Back Stab Animation
+ 276 | EF_TEIHIT3 | Raging Thrust
+ 277 | EF_BOTTOM_DISSONANCE | Dissoance Map Unit
+ 278 | EF_BOTTOM_LULLABY | Lullaby Map Unit
+ 279 | EF_BOTTOM_RICHMANKIM | Mr Kim a Rich Man Map Unit
+ 280 | EF_BOTTOM_ETERNALCHAOS | Eternal Chaos Map Unit
+ 281 | EF_BOTTOM_DRUMBATTLEFIELD | A Drum on the Battlefield Map Unit
+ 282 | EF_BOTTOM_RINGNIBELUNGEN | The Ring Of Nibelungen Map Unit
+ 283 | EF_BOTTOM_ROKISWEIL | Loki's Veil Map Unit
+ 284 | EF_BOTTOM_INTOABYSS | Into the Abyss Map Unit
+ 285 | EF_BOTTOM_SIEGFRIED | Invunerable Siegfriend Map Unit
+ 286 | EF_BOTTOM_WHISTLE | A Wistle Map Unit
+ 287 | EF_BOTTOM_ASSASSINCROSS | Assassin Cross of Sunset Map Unit
+ 288 | EF_BOTTOM_POEMBRAGI | A Poem of Bragi Map Unit
+ 289 | EF_BOTTOM_APPLEIDUN | The Apple Of Idun Map Unit
+ 290 | EF_BOTTOM_UGLYDANCE | Ugly Dance Map Unit
+ 291 | EF_BOTTOM_HUMMING | Humming Map Unit
+ 292 | EF_BOTTOM_DONTFORGETME | Please don't Forget Me Map Unit
+ 293 | EF_BOTTOM_FORTUNEKISS | Fortune's Kiss Map Unit
+ 294 | EF_BOTTOM_SERVICEFORYOU | Service For You Map Unit
+ 295 | EF_TALK_FROSTJOKE | Frost Joke
+ 296 | EF_TALK_SCREAM | Scream
+ 297 | EF_POKJUK | Fire Works (Visual Effect)
+ 298 | EF_THROWITEM | Acid Terror Animnation
+ 299 | EF_THROWITEM2 | (Nothing)
+ 300 | EF_CHEMICALPROTECTION | Chemical Protection
+ 301 | EF_POKJUK_SOUND | Fire Works (Sound Effect)
+ 302 | EF_DEMONSTRATION | Bomb
+ 303 | EF_CHEMICAL2 | (Unused)
+ 304 | EF_TELEPORTATION2 | Teleportation Animation
+ 305 | EF_PHARMACY_OK | Pharmacy Success
+ 306 | EF_PHARMACY_FAIL | Pharmacy Failed
+ 307 | EF_FORESTLIGHT | Forest Light 1
+ 308 | EF_THROWITEM3 | Throw Stone
+ 309 | EF_FIRSTAID | First Aid
+ 310 | EF_SPRINKLESAND | Sprinkle Sand
+ 311 | EF_LOUD | Crazy Uproar
+ 312 | EF_HEAL | Heal Effect
+ 313 | EF_HEAL2 | Heal Effect 2
+ 314 | EF_EXIT2 | Old Map Exit effect (Unused)
+ 315 | EF_GLASSWALL2 | Safety Wall
+ 316 | EF_READYPORTAL2 | Warp Portal Animation 1
+ 317 | EF_PORTAL2 | Warp Portal Animation 2
+ 318 | EF_BOTTOM_MAG | Magnus Exorcisimus Map Unit
+ 319 | EF_BOTTOM_SANC | Sanctuary Map Unit
+ 320 | EF_HEAL3 | Offensive Heal
+ 321 | EF_WARPZONE2 | Warp NPC
+ 322 | EF_FORESTLIGHT2 | Forest Light 2
+ 323 | EF_FORESTLIGHT3 | Forest Light 3
+ 324 | EF_FORESTLIGHT4 | Forest Light 4
+ 325 | EF_HEAL4 | Heal Effect 4
+ 326 | EF_FOOT | Chase Walk Left Foot
+ 327 | EF_FOOT2 | Chse Walk Right Foot
+ 328 | EF_BEGINASURA | Monk Asura Strike
+ 329 | EF_TRIPLEATTACK | Triple Strike
+ 330 | EF_HITLINE | Combo Finish
+ 331 | EF_HPTIME | Natural HP Regeneration
+ 332 | EF_SPTIME | Natural SP Regeneration
+ 333 | EF_MAPLE | Autumn Leaves
+ 334 | EF_BLIND | Blind
+ 335 | EF_POISON | Poison
+ 336 | EF_GUARD | Kyrie Eleison/Parrying Shield
+ 337 | EF_JOBLVUP50 | Class Change
+ 338 | EF_ANGEL2 | Super Novice/Taekwon Level Up Angel
+ 339 | EF_MAGNUM2 | Spiral Pierce
+ 340 | EF_CALLZONE | (Nothing)
+ 341 | EF_PORTAL3 | Wedding Warp Portal
+ 342 | EF_COUPLECASTING | Wedding Skill
+ 343 | EF_HEARTCASTING | Another Merry Skill
+ 344 | EF_ENTRY2 | Character map entry effect
+ 345 | EF_SAINTWING | Wings (Animated)
+ 346 | EF_SPHEREWIND | Like Moonlight But Blue
+ 347 | EF_COLORPAPER | Wedding Ceremony
+ 348 | EF_LIGHTSPHERE | Like 1000 Blade trepassing
+ 349 | EF_WATERFALL | Waterfall (Horizonatal)
+ 350 | EF_WATERFALL_90 | Waterfall (Vertical)
+ 351 | EF_WATERFALL_SMALL | Small Waterfall (Horizonatal)
+ 352 | EF_WATERFALL_SMALL_90 | Small Waterfall (Vertical)
+ 353 | EF_WATERFALL_T2 | Dark Waterfall (Horizonatal)
+ 354 | EF_WATERFALL_T2_90 | Dark Waterfall (Vertical)
+ 355 | EF_WATERFALL_SMALL_T2 | Dark Small Waterfall (Horizonatal)
+ 356 | EF_WATERFALL_SMALL_T2_90 | Dark Small Waterfall (Vertical)
+ 357 | EF_MINI_TETRIS | (Nothing)
+ 358 | EF_GHOST | Niflheim Ghost
+ 359 | EF_BAT | Niflheim Bat Slow
+ 360 | EF_BAT2 | Niflheim Bat Fast
+ 361 | EF_SOULBREAKER | Soul Destroyer
+ 362 | EF_LEVEL99_4 | Trancendant Level 99 Aura 1
+ 363 | EF_VALLENTINE | Valentine Day Heart With Wings
+ 364 | EF_VALLENTINE2 | Valentine Day Heart
+ 365 | EF_PRESSURE | Gloria Domini
+ 366 | EF_BASH3D | Martyr's Reckoning
+ 367 | EF_AURABLADE | Aura Blade
+ 368 | EF_REDBODY | Berserk
+ 369 | EF_LKCONCENTRATION | Concentration
+ 370 | EF_BOTTOM_GOSPEL | Gospel Map Unit
+ 371 | EF_ANGEL | Level Up
+ 372 | EF_DEVIL | Death
+ 373 | EF_DRAGONSMOKE | House Smoke
+ 374 | EF_BOTTOM_BASILICA | Basilica
+ 375 | EF_ASSUMPTIO | Assumptio (Visual Effect)
+ 376 | EF_HITLINE2 | Palm Strike
+ 377 | EF_BASH3D2 | Matyr's Reckoning 2
+ 378 | EF_ENERGYDRAIN2 | Soul Drain (1st Part)
+ 379 | EF_TRANSBLUEBODY | Soul Drain (2nd Part)
+ 380 | EF_MAGICCRASHER | Magic Crasher
+ 381 | EF_LIGHTSPHERE2 | Blue Starburst (Unknown use)
+ 382 | EF_LIGHTBLADE | (Nothing)
+ 383 | EF_ENERGYDRAIN3 | Health Conversion
+ 384 | EF_LINELINK2 | Soul Change (Sound Effect)
+ 385 | EF_LINKLIGHT | Soul Change (Visual Effect)
+ 386 | EF_TRUESIGHT | True Sight
+ 387 | EF_FALCONASSAULT | Falcon Assault
+ 388 | EF_TRIPLEATTACK2 | Focused Arrow Strike (Sound Effect)
+ 389 | EF_PORTAL4 | Wind Walk
+ 390 | EF_MELTDOWN | Shattering Strike
+ 391 | EF_CARTBOOST | Cart Boost
+ 392 | EF_REJECTSWORD | Reject Sword
+ 393 | EF_TRIPLEATTACK3 | Arrow Vulcan
+ 394 | EF_SPHEREWIND2 | Sheltering Bliss
+ 395 | EF_LINELINK3 | Marionette Control (Sound Effect)
+ 396 | EF_PINKBODY | Marionette Control (Visual Effect)
+ 397 | EF_LEVEL99_5 | Trancended 99 Aura (Middle)
+ 398 | EF_LEVEL99_6 | Trancended 99 Aura (Bottom)
+ 399 | EF_BASH3D3 | Head Crush
+ 400 | EF_BASH3D4 | Joint Beat
+ 401 | EF_NAPALMVALCAN | Napalm Vulcan Sound
+ 402 | EF_PORTAL5 | Dangerous Soul Collect
+ 403 | EF_MAGICCRASHER2 | Mind Breaker
+ 404 | EF_BOTTOM_SPIDER | Fiber Lock
+ 405 | EF_BOTTOM_FOGWALL | Wall Of Fog
+ 406 | EF_SOULBURN | Soul Burn
+ 407 | EF_SOULCHANGE | Soul Change
+ 408 | EF_BABY | Mom, Dad, I love you! (Baby Skill)
+ 409 | EF_SOULBREAKER2 | Meteor Assault
+ 410 | EF_RAINBOW | Rainbow
+ 411 | EF_PEONG | Leap
+ 412 | EF_TANJI2 | Like Throw Spirit Sphere
+ 413 | EF_PRESSEDBODY | Axe Kick
+ 414 | EF_SPINEDBODY | Round Kick
+ 415 | EF_KICKEDBODY | Counter Kick
+ 416 | EF_AIRTEXTURE | (Nothing)
+ 417 | EF_HITBODY | Flash
+ 418 | EF_DOUBLEGUMGANG | Warmth Lightning
+ 419 | EF_REFLECTBODY | Kaite (Visual Effect)
+ 420 | EF_BABYBODY | Eswoo (Small) (Visual Effect)
+ 421 | EF_BABYBODY2 | Eswoo (Alt. Small) (Visual Effect)
+ 422 | EF_GIANTBODY | Eswoo (Normal) (Visual Effect)
+ 423 | EF_GIANTBODY2 | Eswoo (Alt. Normal) (Visual Effect)
+ 424 | EF_ASURABODY | Spirit Link (Visual Effect)
+ 425 | EF_4WAYBODY | Esma Hit (Visual Effect)
+ 426 | EF_QUAKEBODY | Sprint Collision (Visual Effect)
+ 427 | EF_ASURABODY_MONSTER | (Nothing)
+ 428 | EF_HITLINE3 | (Nothing)
+ 429 | EF_HITLINE4 | Taekwon Kick Hit 1
+ 430 | EF_HITLINE5 | Taekwon Kick Hit 2
+ 431 | EF_HITLINE6 | Taekwon Kick Hit 3
+ 432 | EF_ELECTRIC | Solar, Lunar and Stellar Perception (Visual Effect)
+ 433 | EF_ELECTRIC2 | Solar, Lunar and Stellar Opposition (Visual Effect)
+ 434 | EF_HITLINE7 | Taekwon Kick Hit 4
+ 435 | EF_STORMKICK | Whirlwind Kick
+ 436 | EF_HALFSPHERE | White Barrier (Unused)
+ 437 | EF_ATTACKENERGY | White barrier 2 (Unused)
+ 438 | EF_ATTACKENERGY2 | Kaite Reflect Animation
+ 439 | EF_CHEMICAL3 | Flying Side Kick
+ 440 | EF_ASSUMPTIO2 | Assumptio (Animation)
+ 441 | EF_BLUECASTING | Comfort Skills Cast Aura
+ 442 | EF_RUN | Foot Prints caused by Sprint.
+ 443 | EF_STOPRUN | (Nothing)
+ 444 | EF_STOPEFFECT | Sprint Stop Animation
+ 445 | EF_JUMPBODY | High Jump (Jump)
+ 446 | EF_LANDBODY | High Jump (Return Down)
+ 447 | EF_FOOT3 | Running Left Foot
+ 448 | EF_FOOT4 | Running Right Foot
+ 449 | EF_TAE_READY | KA-Spell (1st Part)
+ 450 | EF_GRANDCROSS2 | Darkcross
+ 451 | EF_SOULSTRIKE2 | Dark Strike
+ 452 | EF_YUFITEL2 | Something Like Jupitel Thunder
+ 453 | EF_NPC_STOP | Paralized
+ 454 | EF_DARKCASTING | Like Blind
+ 455 | EF_GUMGANGNPC | Another Warmth Lightning
+ 456 | EF_AGIUP | Power Up
+ 457 | EF_JUMPKICK | Flying Side Kick (2nd Part)
+ 458 | EF_QUAKEBODY2 | Running/Sprint (running into a wall)
+ 459 | EF_STORMKICK1 | Brown tornado that spins sprite (unused)
+ 460 | EF_STORMKICK2 | Green tornado (unused)
+ 461 | EF_STORMKICK3 | Blue tornado (unused)
+ 462 | EF_STORMKICK4 | Kaupe Dodge Effect
+ 463 | EF_STORMKICK5 | Kaupe Dodge Effect
+ 464 | EF_STORMKICK6 | White tornado (unused)
+ 465 | EF_STORMKICK7 | Purple tornado (unused)
+ 466 | EF_SPINEDBODY2 | Another Round Kick
+ 467 | EF_BEGINASURA1 | Warm/Mild Wind (Earth)
+ 468 | EF_BEGINASURA2 | Warm/Mild Wind (Wind)
+ 469 | EF_BEGINASURA3 | Warm/Mild Wind (Water)
+ 470 | EF_BEGINASURA4 | Warm/Mild Wind (Fire)
+ 471 | EF_BEGINASURA5 | Warm/Mild Wind (Undead)
+ 472 | EF_BEGINASURA6 | Warm/Mild Wind (Shadow)
+ 473 | EF_BEGINASURA7 | Warm/Mild Wind (Holy)
+ 474 | EF_AURABLADE2 | (Nothing)
+ 475 | EF_DEVIL1 | Demon of The Sun Moon And Stars (Level 1)
+ 476 | EF_DEVIL2 | Demon of The Sun Moon And Stars (Level 2)
+ 477 | EF_DEVIL3 | Demon of The Sun Moon And Stars (Level 3)
+ 478 | EF_DEVIL4 | Demon of The Sun Moon And Stars (Level 4)
+ 479 | EF_DEVIL5 | Demon of The Sun Moon And Stars (Level 5)
+ 480 | EF_DEVIL6 | Demon of The Sun Moon And Stars (Level 6)
+ 481 | EF_DEVIL7 | Demon of The Sun Moon And Stars (Level 7)
+ 482 | EF_DEVIL8 | Demon of The Sun Moon And Stars (Level 8)
+ 483 | EF_DEVIL9 | Demon of The Sun Moon And Stars (Level 9)
+ 484 | EF_DEVIL10 | Demon of The Sun Moon And Stars (Level 10)
+ 485 | EF_DOUBLEGUMGANG2 | Mental Strength Lightning but White
+ 486 | EF_DOUBLEGUMGANG3 | Mental Strength Lightning
+ 487 | EF_BLACKDEVIL | Demon of The Sun Moon And Stars Ground Effect
+ 488 | EF_FLOWERCAST | Comfort Skills
+ 489 | EF_FLOWERCAST2 | (Nothing)
+ 490 | EF_FLOWERCAST3 | (Nothing)
+ 491 | EF_MOCHI | Element Potions
+ 492 | EF_LAMADAN | Cooking Foods
+ 493 | EF_EDP | Enchant Deadly Poison
+ 494 | EF_SHIELDBOOMERANG2 | Throwing Tomahawk
+ 495 | EF_RG_COIN2 | Full Strip Sound
+ 496 | EF_GUARD2 | Preserve
+ 497 | EF_SLIM | Twilight Alchemy 1
+ 498 | EF_SLIM2 | Twilight Alchemy 2
+ 499 | EF_SLIM3 | Twilight Alchemy 3
+ 500 | EF_CHEMICALBODY | Player Become Blue with Blue Aura
+ 501 | EF_CASTSPIN | Chase Walk Animation
+ 502 | EF_PIERCEBODY | Player Become Yellow with Yellow Aura
+ 503 | EF_SOULLINK | Soul Link Word
+ 504 | EF_CHOOKGI2 | (Nothing)
+ 505 | EF_MEMORIZE | Memorize
+ 506 | EF_SOULLIGHT | (Nothing)
+ 507 | EF_MAPAE | Authoritative Badge
+ 508 | EF_ITEMPOKJUK | Fire Cracker
+ 509 | EF_05VAL | Valentine Day Hearth (Wings)
+ 510 | EF_BEGINASURA11 | Champion Asura Strike
+ 511 | EF_NIGHT | (Nothing)
+ 512 | EF_CHEMICAL2DASH | Chain Crush Combo
+ 513 | EF_GROUNDSAMPLE | Area Cast
+ 514 | EF_GI_EXPLOSION | Really Big Circle
+ 515 | EF_CLOUD4 | Einbroch Fog
+ 516 | EF_CLOUD5 | Airship Cloud
+ 517 | EF_BOTTOM_HERMODE | (Nothing)
+ 518 | EF_CARTTER | Cart Termination
+ 519 | EF_ITEMFAST | Speed Down Potion
+ 520 | EF_SHIELDBOOMERANG3 | Shield Bumerang
+ 521 | EF_DOUBLECASTBODY | Player Become Red with Red Aura
+ 522 | EF_GRAVITATION | Gravitation Field
+ 523 | EF_TAROTCARD1 | Tarot Card of Fate (The Fool)
+ 524 | EF_TAROTCARD2 | Tarot Card of Fate (The Magician)
+ 525 | EF_TAROTCARD3 | Tarot Card of Fate (The High Priestess)
+ 526 | EF_TAROTCARD4 | Tarot Card of Fate (The Chariot)
+ 527 | EF_TAROTCARD5 | Tarot Card of Fate (Strength)
+ 528 | EF_TAROTCARD6 | Tarot Card of Fate (The Lovers)
+ 529 | EF_TAROTCARD7 | Tarot Card of Fate (The Wheel of Fortune)
+ 530 | EF_TAROTCARD8 | Tarot Card of Fate (The Hanged Man)
+ 531 | EF_TAROTCARD9 | Tarot Card of Fate (Death)
+ 532 | EF_TAROTCARD10 | Tarot Card of Fate (Temperance)
+ 533 | EF_TAROTCARD11 | Tarot Card of Fate (The Devil)
+ 534 | EF_TAROTCARD12 | Tarot Card of Fate (The Tower)
+ 535 | EF_TAROTCARD13 | Tarot Card of Fate (The Star)
+ 536 | EF_TAROTCARD14 | Tarot Card of Fate (The Sun)
+ 537 | EF_ACIDDEMON | Acid Demonstration
+ 538 | EF_GREENBODY | Player Become Green with Green Aura
+ 539 | EF_THROWITEM4 | Throw Random Bottle
+ 540 | EF_BABYBODY_BACK | Instant Small->Normal
+ 541 | EF_THROWITEM5 | (Nothing)
+ 542 | EF_BLUEBODY | KA-Spell (1st Part)
+ 543 | EF_HATED | Kahii
+ 544 | EF_REDLIGHTBODY | Warmth Red Sprite
+ 545 | EF_RO2YEAR | Sound And... PUFF Client Crash :P
+ 546 | EF_SMA_READY | Kaupe
+ 547 | EF_STIN | Estin
+ 548 | EF_RED_HIT | Instant Red Sprite
+ 549 | EF_BLUE_HIT | Instant Blue Sprite
+ 550 | EF_QUAKEBODY3 | Another Effect like Running Hit
+ 551 | EF_SMA | Effect Like Estun but with Circle
+ 552 | EF_SMA2 | (Nothing)
+ 553 | EF_STIN2 | Esma
+ 554 | EF_HITTEXTURE | Large White Cloud
+ 555 | EF_STIN3 | Estun
+ 556 | EF_SMA3 | (Nothing)
+ 557 | EF_BLUEFALL | Juperos Energy Waterfall (Horizontal)
+ 558 | EF_BLUEFALL_90 | Juperos Energy Waterfall (Vertical)
+ 559 | EF_FASTBLUEFALL | Juperos Energy Waterfall Fast (Horizontal)
+ 560 | EF_FASTBLUEFALL_90 | Juperos Energy Waterfall Fast (Vertical)
+ 561 | EF_BIG_PORTAL | Juperos Warp
+ 562 | EF_BIG_PORTAL2 | Juperos Warp
+ 563 | EF_SCREEN_QUAKE | Earthquake Effect (Juperos Elevator)
+ 564 | EF_HOMUNCASTING | Wedding Cast
+ 565 | EF_HFLIMOON1 | Filir Moonlight Lvl 1
+ 566 | EF_HFLIMOON2 | Filir Moonlight Lvl 2
+ 567 | EF_HFLIMOON3 | Filir Moonlight Lvl 3
+ 568 | EF_HO_UP | Another Job Level Up
+ 569 | EF_HAMIDEFENCE | Amistr Bulwark
+ 570 | EF_HAMICASTLE | Amistr Castling
+ 571 | EF_HAMIBLOOD | Amistr Bloodlust
+ 572 | EF_HATED2 | Warmth Soul
+ 573 | EF_TWILIGHT1 | Twilight Alchemy 1
+ 574 | EF_TWILIGHT2 | Twilight Alchemy 2
+ 575 | EF_TWILIGHT3 | Twilight Alchemy 3
+ 576 | EF_ITEM_THUNDER | Box Effect (Thunder)
+ 577 | EF_ITEM_CLOUD | Box Effect (Cloud)
+ 578 | EF_ITEM_CURSE | Box Effect (Curse)
+ 579 | EF_ITEM_ZZZ | Box Effect (Sleep)
+ 580 | EF_ITEM_RAIN | Box Effect (Rain)
+ 581 | EF_ITEM_LIGHT | Box Effect (Sunlight)
+ 582 | EF_ANGEL3 | Another Super Novice/Taekwon Angel
+ 583 | EF_M01 | Warmth Hit
+ 584 | EF_M02 | Full Buster
+ 585 | EF_M03 | 5 Medium Size Explosion
+ 586 | EF_M04 | Somatology Lab Mobs Aura
+ 587 | EF_M05 | Big Purple Flame
+ 588 | EF_M06 | Little Red Flame
+ 589 | EF_M07 | Eswoo
+ 590 | EF_KAIZEL | Running Stop
+ 591 | EF_KAAHI | (Nothing)
+ 592 | EF_CLOUD6 | Thanatos Tower Bloody Clouds
+ 593 | EF_FOOD01 | Food Effect (STR)
+ 594 | EF_FOOD02 | Food Effect (INT)
+ 595 | EF_FOOD03 | Food Effect (VIT)
+ 596 | EF_FOOD04 | Food Effect (AGI)
+ 597 | EF_FOOD05 | Food Effect (DEX)
+ 598 | EF_FOOD06 | Food Effect (LUK)
+ 599 | EF_SHRINK | Cast Time Sound and Flashing Animation on Player
+ 600 | EF_THROWITEM6 | Throw Venom Knife
+ 601 | EF_SIGHT2 | Sight Blaster
+ 602 | EF_QUAKEBODY4 | Close Confine (Grab Effect)
+ 603 | EF_FIREHIT2 | Spinning fire ball (like 50, but smaller)
+ 604 | EF_NPC_STOP2 | Close Confine (Ground Effect)
+ 605 | EF_NPC_STOP2_DEL | (Nothing)
+ 606 | EF_FVOICE | Pang Voice (Visual Effect)
+ 607 | EF_WINK | Wink of Charm (Visual Effect)
+ 608 | EF_COOKING_OK | Cooking Success
+ 609 | EF_COOKING_FAIL | Cooking Failed
+ 610 | EF_TEMP_OK | Success
+ 611 | EF_TEMP_FAIL | Failed
+ 612 | EF_HAPGYEOK | Korean Words and /no1 Emoticon
+ 613 | EF_THROWITEM7 | Throw Shuriken
+ 614 | EF_THROWITEM8 | Throw Kunai
+ 615 | EF_THROWITEM9 | Throw Fumma Shuriken
+ 616 | EF_THROWITEM10 | Throw Money
+ 617 | EF_BUNSINJYUTSU | Illusionary Shadow
+ 618 | EF_KOUENKA | Crimson Fire Bolossom
+ 619 | EF_HYOUSENSOU | Lightning Spear Of Ice
+ 620 | EF_BOTTOM_SUITON | Water Escape Technique
+ 621 | EF_STIN4 | Wind Blade
+ 622 | EF_THUNDERSTORM2 | Lightning Crash
+ 623 | EF_CHEMICAL4 | Piercing Shot
+ 624 | EF_STIN5 | Kamaitachi
+ 625 | EF_MADNESS_BLUE | Madness Canceller
+ 626 | EF_MADNESS_RED | Adjustment
+ 627 | EF_RG_COIN3 | Disarm (Sound Effect)
+ 628 | EF_BASH3D5 | Dust
+ 629 | EF_CHOOKGI3 | (Nothing)
+ 630 | EF_KIRIKAGE | Shadow Slash
+ 631 | EF_TATAMI | Reverse Tatami Map Unit
+ 632 | EF_KASUMIKIRI | Mist Slash
+ 633 | EF_ISSEN | Final Strike
+ 634 | EF_KAEN | Crimson Fire Formation
+ 635 | EF_BAKU | Dragon Fire Formation
+ 636 | EF_HYOUSYOURAKU | Falling Ice Pillar
+ 637 | EF_DESPERADO | Desperado
+ 638 | EF_LIGHTNING_S | Ground Drift Grenade
+ 639 | EF_BLIND_S | Ground Drift Grenade
+ 640 | EF_POISON_S | Ground Drift Grenade
+ 641 | EF_FREEZING_S | Ground Drift Grenade
+ 642 | EF_FLARE_S | Ground Drift Grenade
+ 643 | EF_RAPIDSHOWER | Rapid Shower
+ 644 | EF_MAGICALBULLET | Magic Bullet
+ 645 | EF_SPREADATTACK | Spread Attack
+ 646 | EF_TRACKCASTING | Tracking (Shown While Casting)
+ 647 | EF_TRACKING | Tracking
+ 648 | EF_TRIPLEACTION | Triple Action
+ 649 | EF_BULLSEYE | Bull's Eye
+ 650 | EF_MAP_MAGICZONE | Ice Cave Level 4 Circle
+ 651 | EF_MAP_MAGICZONE2 | Ice Cave Level 4 Big Circle
+ 652 | EF_DAMAGE1 | Like Regeneration Number but Red with a Sound
+ 653 | EF_DAMAGE1_2 | Like Regeneration Number but Red
+ 654 | EF_DAMAGE1_3 | Like Regeneration Number but Purple
+ 655 | EF_UNDEADBODY | Mobs Skill (Change Undead Element)
+ 656 | EF_UNDEADBODY_DEL | Last animation before Change Undead Element finish
+ 657 | EF_GREEN_NUMBER | (Nothing)
+ 658 | EF_BLUE_NUMBER | (Nothing)
+ 659 | EF_RED_NUMBER | (Nothing)
+ 660 | EF_PURPLE_NUMBER | (Nothing)
+ 661 | EF_BLACK_NUMBER | (Nothing)
+ 662 | EF_WHITE_NUMBER | (Nothing)
+ 663 | EF_YELLOW_NUMBER | (Nothing)
+ 664 | EF_PINK_NUMBER | (Nothing)
+ 665 | EF_BUBBLE_DROP | Little Blue Ball Falling From the Sky
+ 666 | EF_NPC_EARTHQUAKE | Earthquake
+ 667 | EF_DA_SPACE | (Nothing)
+ 668 | EF_DRAGONFEAR | Dragonfear
+ 669 | EF_BLEEDING | Wide Bleeding
+ 670 | EF_WIDECONFUSE | Dragon fear (Visual Effect)
+ 671 | EF_BOTTOM_RUNNER | The Japan Earth Symbol (like 'Seven Wind Lv1', but on the ground)
+ 672 | EF_BOTTOM_TRANSFER | The Japan Wind Symbol (like 'Seven Wind Lv2', but on the ground)
+ 673 | EF_CRYSTAL_BLUE | Map turns Blue (like Soul Link)
+ 674 | EF_BOTTOM_EVILLAND | Evil Land Cell
+ 675 | EF_GUARD3 | Like Parrying/Kyrie Eleison barrier but Yellow with small Cross in every barrier piece
+ 676 | EF_NPC_SLOWCAST | Slow Casting
+ 677 | EF_CRITICALWOUND | Critical Wounds/Bleeding Attack
+ 678 | EF_GREEN99_3 | White 99 Aura Bubbles
+ 679 | EF_GREEN99_5 | Green Aura (Middle)
+ 680 | EF_GREEN99_6 | Green Aura (Bottom)
+ 681 | EF_MAPSPHERE | Dimensional Gorge Map Effect
+ 682 | EF_POK_LOVE | I Love You Banner
+ 683 | EF_POK_WHITE | Happy White Day Banner
+ 684 | EF_POK_VALEN | Happy Valentine Day Banner
+ 685 | EF_POK_BIRTH | Happy Birthday Banner
+ 686 | EF_POK_CHRISTMAS | Merry Christmas Banner
+ 687 | EF_MAP_MAGICZONE3 | Cast Circle-Like effect 1
+ 688 | EF_MAP_MAGICZONE4 | Cast Circle-Like effect 2
+ 689 | EF_DUST | Endless Tower Map Effect
+ 690 | EF_TORCH_RED | Burning Flame (Red)
+ 691 | EF_TORCH_GREEN | Burning Flame (Green)
+ 692 | EF_MAP_GHOST | Unknown Aura Bubbles (Small ghosts)
+ 693 | EF_GLOW1 | Translucent yellow circle
+ 694 | EF_GLOW2 | Translucent green circle
+ 695 | EF_GLOW4 | Rotating green light
+ 696 | EF_TORCH_PURPLE | The same of 690 and 691 but Blue/Purple
+ 697 | EF_CLOUD7 | (Nothing)
+ 698 | EF_CLOUD8 | (Nothing)
+ 699 | EF_FLOWERLEAF | Fall of powder from the sky and raise of some leaf
+ 700 | EF_MAPSPHERE2 | Big Colored Green Sphere.
+ 701 | EF_GLOW11 | Huge Blue Sphere
+ 702 | EF_GLOW12 | Little Colored Violet Sphere
+ 703 | EF_CIRCLELIGHT | Light Infiltration with fall of pownder
+ 704 | EF_ITEM315 | Client Error (mobile_ef02.str)
+ 705 | EF_ITEM316 | Client Error (mobile_ef01.str)
+ 706 | EF_ITEM317 | Client Error (mobile_ef03.str)
+ 707 | EF_ITEM318 | Client Crash :P
+ 708 | EF_STORM_MIN | Storm Gust (same as 89)
+ 709 | EF_POK_JAP | A Firework that split in 4 mini fireworks
+ 710 | EF_MAP_GREENLIGHT | A Sphere like Effect 701 but Green, and a bit more larger
+ 711 | EF_MAP_MAGICWALL | A big violet wall
+ 712 | EF_MAP_GREENLIGHT2 | A Little Flame Sphere
+ 713 | EF_YELLOWFLY1 | A lot of Very Small and Yellow Sphere
+ 714 | EF_YELLOWFLY2 | (Nothing)
+ 715 | EF_BOTTOM_BLUE | Little blue Basilica
+ 716 | EF_BOTTOM_BLUE2 | Same as 715
+ 717 | EF_WEWISH | Christmas Carol (copy of Angelus)
+ 718 | EF_FIREPILLARON2 | Judex (Visual Effect)
+ 719 | EF_FORESTLIGHT5 | Renovatio (light beam)
+ 720 | EF_SOULBREAKER3 | Yellow version of Soul Breaker
+ 721 | EF_ADO_STR | Adoramus (lightning bolt)
+ 722 | EF_IGN_STR | Ignition Break (big explosion)
+ 723 | EF_CHIMTO2 | Hundred Spear (sound effect)
+ 724 | EF_WINDCUTTER | Green version of Detecting
+ 725 | EF_DETECT2 | Oratorio (like Detecting)
+ 726 | EF_FROSTMYSTY | Frost Misty (blue vapor and bubbles)
+ 727 | EF_CRIMSON_STR | Crimson Rock
+ 728 | EF_HELL_STR | Small fire (part of Hell Inferno)
+ 729 | EF_SPR_MASH | Marsh of Abyss (like Close Confine)
+ 730 | EF_SPR_SOULE | Small, cartoony explosion (part of Soul Expansion)
+ 731 | EF_DHOWL_STR | Dragon Howling (blinking, expanding circle)
+ 732 | EF_EARTHWALL | Spike from the ground
+ 733 | EF_SOULBREAKER4 | Fluffy Ball flying by
+ 734 | EF_CHAINL_STR | Chain Lightning
+ 735 | EF_CHOOKGI_FIRE | (Nothing)
+ 736 | EF_CHOOKGI_WIND | (Nothing)
+ 737 | EF_CHOOKGI_WATER | (Nothing)
+ 738 | EF_CHOOKGI_GROUND | (Nothing)
+ 739 | EF_MAGENTA_TRAP | Old Magenta Trap
+ 740 | EF_COBALT_TRAP | Old Cobald Trap
+ 741 | EF_MAIZE_TRAP | Old Maize Trap
+ 742 | EF_VERDURE_TRAP | Old Verdure Trap
+ 743 | EF_NORMAL_TRAP | White Ranger Trap
+ 744 | EF_CLOAKING2 | Camouflage
+ 745 | EF_AIMED_STR | Aimed Bolt (crosshairs)
+ 746 | EF_ARROWSTORM_STR | Arrow Storm
+ 747 | EF_LAULAMUS_STR | Falling white feathers
+ 748 | EF_LAUAGNUS_STR | Falling blue feathers
+ 749 | EF_MILSHIELD_STR | Millennium Shield
+ 750 | EF_CONCENTRATION2 | Detonator (blue sparkles)
+ 751 | EF_FIREBALL2 | Releasing summoned warlock spheres
+ 752 | EF_BUNSINJYUTSU2 | Like Energy Coat, but not as dark
+ 753 | EF_CLEARTIME | Clearance
+ 754 | EF_GLASSWALL3 | Green warp portal (root of Epiclesis)
+ 755 | EF_ORATIO | Oratio (spinning blue symbol)
+ 756 | EF_POTION_BERSERK2 | Enchant Blade (like Berserk Potion)
+ 757 | EF_CIRCLEPOWER | Third Class Aura (Middle)
+ 758 | EF_ROLLING1 | Rolling Cutter - Spin Count 1
+ 759 | EF_ROLLING2 | Rolling Cutter - Spin Count 2
+ 760 | EF_ROLLING3 | Rolling Cutter - Spin Count 3
+ 761 | EF_ROLLING4 | Rolling Cutter - Spin Count 4
+ 762 | EF_ROLLING5 | Rolling Cutter - Spin Count 5
+ 763 | EF_ROLLING6 | Rolling Cutter - Spin Count 6
+ 764 | EF_ROLLING7 | Rolling Cutter - Spin Count 7
+ 765 | EF_ROLLING8 | Rolling Cutter - Spin Count 8
+ 766 | EF_ROLLING9 | Rolling Cutter - Spin Count 9
+ 767 | EF_ROLLING10 | Rolling Cutter - Spin Count 10
+ 768 | EF_PURPLEBODY | Blinking
+ 769 | EF_STIN6 | Cross Ripper Slasher (flying knives)
+ 770 | EF_RG_COIN4 | Strip sound
+ 771 | EF_POISONWAV | Poison sound
+ 772 | EF_POISONSMOKE | Poison particles
+ 773 | EF_GUMGANG4 | Expanding purple aura (part of Phantom Menace)
+ 774 | EF_SHIELDBOOMERANG4 | Axe Boomerang
+ 775 | EF_CASTSPIN2 | Spinning character sprite
+ 776 | EF_VULCANWAV | Like Desperado sound effect
+ 777 | EF_AGIUP2 | Faded light from the ground [S]
+ 778 | EF_DETECT3 | Expanding white aura (like Clearance)
+ 779 | EF_AGIUP3 | Faded light from the ground [S]
+ 780 | EF_DETECT4 | Expanding red aura (from Infrared Scan)
+ 781 | EF_ELECTRIC3 | Magnetic Field (purple chains)
+ 782 | EF_GUARD4 | All-around shield [S]
+ 783 | EF_BOTTOM_BARRIER | Yellow shaft of light
+ 784 | EF_BOTTOM_STEALTH | White shaft of light
+ 785 | EF_REPAIRTIME | Upward flying wrenches
+ 786 | EF_NC_ANAL | Symbol with bleeping sound [S]
+ 787 | EF_FIRETHROW | Flare Launcher (line of fire)
+ 788 | EF_VENOMIMPRESS | Venom Impress (green skull)
+ 789 | EF_FROSTMISTY | Freezing Status Effect (two ancillas)
+ 790 | EF_BURNING | Burning Status Effect (flame symbol)
+ 791 | EF_COLDTHROW | Two ice shots
+ 792 | EF_MAKEHALLU | Upward streaming white particles
+ 793 | EF_HALLUTIME | Same, but more brief
+ 794 | EF_INFRAREDSCAN | Infrared Scan (red lasers)
+ 795 | EF_CRASHAXE | Power Swing (axe crash)
+ 796 | EF_GTHUNDER | Spinning blue triangles
+ 797 | EF_STONERING | Stapo
+ 798 | EF_INTIMIDATE2 | Red triangles (like Intimidate)
+ 799 | EF_STASIS | Stasis (expanding blue mist) [S]
+ 800 | EF_REDLINE | Hell Inferno (red lights)
+ 801 | EF_FROSTDIVER3 | Jack Frost unit (ice spikes)
+ 802 | EF_BOTTOM_BASILICA2 | White Imprison
+ 803 | EF_RECOGNIZED | Recognized Spell
+ 804 | EF_TETRA | Tetra Vortex [S]
+ 805 | EF_TETRACASTING | Tetra Vortex cast animation (blinking colors)
+ 806 | EF_FIREBALL3 | Flying by as fast as a rocket
+ 807 | EF_INTIMIDATE3 | Kidnapping sound
+ 808 | EF_RECOGNIZED2 | Like Recognized Spell, but one symbol
+ 809 | EF_CLOAKING3 | Shadowy filter [S]
+ 810 | EF_INTIMIDATE4 | Damp thud sound [S]
+ 811 | EF_STRETCH | Body Painting
+ 812 | EF_BLACKBODY | Black expanding aura
+ 813 | EF_ENERVATION | Masquerade - Enervation
+ 814 | EF_ENERVATION2 | Masquerade - Groomy
+ 815 | EF_ENERVATION3 | Masquerade - Ignorance
+ 816 | EF_ENERVATION4 | Masquerade - Laziness
+ 817 | EF_ENERVATION5 | Masquerade - Unlucky
+ 818 | EF_ENERVATION6 | Masquerade - Weakness
+ 819 | EF_LINELINK4 | (Nothing)
+ 820 | EF_RG_COIN5 | Strip Accessory
+ 821 | EF_WATERFALL_ANI | Waterfall
+ 822 | EF_BOTTOM_MANHOLE | Dimension Door (spinning blue aura)
+ 823 | EF_MANHOLE | in-the-manhole effect
+ 824 | EF_MAKEFEINT | Some filter
+ 825 | EF_FORESTLIGHT6 | Dimension Door (aura + blue light)
+ 826 | EF_DARKCASTING2 | Expanding black casting anim.
+ 827 | EF_BOTTOM_ANI | Chaos Panic (spinning brown aura)
+ 828 | EF_BOTTOM_MAELSTROM | Maelstrom (spinning pink aura)
+ 829 | EF_BOTTOM_BLOODYLUST | Bloody Lust (spinning red aura)
+ 830 | EF_BEGINSPELL_N1 | Blue aura (Arch Bishop cast animation)
+ 831 | EF_BEGINSPELL_N2 | Blue cone [S]
+ 832 | EF_HEAL_N | Sonic Wave
+ 833 | EF_CHOOKGI_N | (Nothing)
+ 834 | EF_JOBLVUP50_2 | Light shooting away circlish
+ 835 | EF_CHEMICAL2DASH2 | Fastness yellow-reddish
+ 836 | EF_CHEMICAL2DASH3 | Fastness yellow-pinkish
+ 837 | EF_ROLLINGCAST | Casting [S]
+ 838 | EF_WATER_BELOW | Watery aura
+ 839 | EF_WATER_FADE | [Client Error]
+ 840 | EF_BEGINSPELL_N3 | Red cone
+ 841 | EF_BEGINSPELL_N4 | Green cone
+ 842 | EF_BEGINSPELL_N5 | Yellow cone
+ 843 | EF_BEGINSPELL_N6 | White cone
+ 844 | EF_BEGINSPELL_N7 | Purple cone
+ 845 | EF_BEGINSPELL_N8 | light-bluish turquoise cone
+ 846 | EF_WATER_SMOKE | (Nothing)
+ 847 | EF_DANCE1 | Gloomy Day (white/red light rays)
+ 848 | EF_DANCE2 | Gloomy Day (white/blue light rays)
+ 849 | EF_LINKPARTICLE | (Nothing)
+ 850 | EF_SOULLIGHT2 | (Nothing)
+ 851 | EF_SPR_PARTICLE | Green mushy-foggy stuff (dull)
+ 852 | EF_SPR_PARTICLE2 | Green mushy-foggy stuff (bright)
+ 853 | EF_SPR_PLANT | Bright green flower area
+ 854 | EF_CHEMICAL_V | Blue beam of light with notes
+ 855 | EF_SHOOTPARTICLE | (Nothing)
+ 856 | EF_BOT_REVERB | Reverberation (red eighth notes)
+ 857 | EF_RAIN_PARTICLE | Severe Rainstorm (falling red and blue beams)
+ 858 | EF_CHEMICAL_V2 | Deep Sleep Lullaby (two red beams and music notes)
+ 859 | EF_SECRA | Holograph of text (blue)
+ 860 | EF_BOT_REVERB2 | Distorted note (blue)
+ 861 | EF_CIRCLEPOWER2 | Green aura (from Circle of Life's Melody)
+ 862 | EF_SECRA2 | Randomize Spell (holograph of text)
+ 863 | EF_CHEMICAL_V3 | Dominion Impulse (two spears of light)
+ 864 | EF_ENERVATION7 | Gloomy Day (colorful lines)
+ 865 | EF_CIRCLEPOWER3 | Blue aura (from Song of Mana)
+ 866 | EF_SPR_PLANT2 | Dance with a Warg (Wargs)
+ 867 | EF_CIRCLEPOWER4 | Yellow aura (from Dance with a Warg)
+ 868 | EF_SPR_PLANT3 | Song of Mana (Violies)
+ 869 | EF_RG_COIN6 | Strip sound [S]
+ 870 | EF_SPR_PLANT4 | Ghostly Succubuses of fire
+ 871 | EF_CIRCLEPOWER5 | Red aura (from Lerad's Dew)
+ 872 | EF_SPR_PLANT5 | Lerad's Dew (Minerals)
+ 873 | EF_CIRCLEPOWER6 | Stargate-wormhole stuff (bright purple)
+ 874 | EF_SPR_PLANT6 | Melody of Sink (Ktullanuxes)
+ 875 | EF_CIRCLEPOWER7 | Stargate-wormhole stuff (bright turquoise)
+ 876 | EF_SPR_PLANT7 | Warcry of Beyond (Garms)
+ 877 | EF_CIRCLEPOWER8 | Stargate-wormhole stuff (white)
+ 878 | EF_SPR_PLANT8 | Unlimited Humming Voice (Miyabi Ningyos)
+ 879 | EF_HEARTASURA | Siren's Voice (heart-like)
+ 880 | EF_BEGINSPELL_150 | Bluish castish cone
+ 881 | EF_LEVEL99_150 | Blue aura
+ 882 | EF_PRIMECHARGE | Whirl of fireflies (red)
+ 883 | EF_GLASSWALL4 | Epiclesis (transparent green tree)
+ 884 | EF_GRADIUS_LASER | Green beam
+ 885 | EF_BASH3D6 | Blue light beams
+ 886 | EF_GUMGANG5 | Blue castish cone
+ 887 | EF_HITLINE8 | Wavy sparks
+ 888 | EF_ELECTRIC4 | Earth Shaker (same as 432)
+ 889 | EF_TEIHIT1T | Fast light beams
+ 890 | EF_SPINMOVE | Rotation
+ 891 | EF_FIREBALL4 | Magic shots [S]
+ 892 | EF_TRIPLEATTACK4 | Fastness with hitting sound[S]
+ 893 | EF_CHEMICAL3S | Blue-white light passing by
+ 894 | EF_GROUNDSHAKE | (Nothing)
+ 895 | EF_DQ9_CHARGE | Big wheel of flat light beams
+ 896 | EF_DQ9_CHARGE2 | Still sun shaped lightning aura
+ 897 | EF_DQ9_CHARGE3 | Animated sun shaped lightning aura
+ 898 | EF_DQ9_CHARGE4 | Animated, curvy sun shaped lightning aura
+ 899 | EF_BLUELINE | White/red light shots from below
+ 900 | EF_SELFSCROLL | Animated, slow curvy sun shaped lightning aura
+ 901 | EF_SPR_LIGHTPRINT | Explosion
+ 902 | EF_PNG_TEST | Floating bedtable texture
+ 903 | EF_BEGINSPELL_YB | Castish flamey cone
+ 904 | EF_CHEMICAL2DASH4 | Yellow/pink lights passing by
+ 905 | EF_GROUNDSHAKE2 | Expanding circle
+ 906 | EF_PRESSURE2 | Shield Press (falling shield)
+ 907 | EF_RG_COIN7 | Chainy, metalish sound [S]
+ 908 | EF_PRIMECHARGE2 | Prestige (sphere of yellow particles)
+ 909 | EF_PRIMECHARGE3 | Banding (sphere of red particles)
+ 910 | EF_PRIMECHARGE4 | Inspiration (sphere of blue particles)
+ 911 | EF_GREENCASTING | Green castish animation [S]
+ 912 | EF_WALLOFTHORN | Wall of Thorns unit (green fog cloud)
+ 913 | EF_FIREBALL5 | Magic projectiles
+ 914 | EF_THROWITEM11 | (Nothing)
+ 915 | EF_SPR_PLANT9 | Crazy Weed
+ 916 | EF_DEMONICFIRE | Demonic Fire
+ 917 | EF_DEMONICFIRE2 | More angry, demonic flames
+ 918 | EF_DEMONICFIRE3 | Fire Insignia (demonic flames)
+ 919 | EF_HELLSPLANT | Hell's Plant (green snapping plant)
+ 920 | EF_FIREWALL2 | Fire Walk unit
+ 921 | EF_VACUUM | Vacuum Extreme (whirlwind)
+ 922 | EF_SPR_PLANT10 | Psychic Wave
+ 923 | EF_SPR_LIGHTPRINT2 | Poison Buster
+ 924 | EF_POISONSMOKE2 | Poisoning animation
+ 925 | EF_MAKEHALLU2 | Some filter
+ 926 | EF_SHOCKWAVE2 | Electric Walk unit
+ 927 | EF_SPR_PLANT11 | Earth Grave (speary roots)
+ 928 | EF_COLDTHROW2 | Ice cloud projectiles
+ 929 | EF_DEMONICFIRE4 | Warmer (field of flames)
+ 930 | EF_PRESSURE3 | Varetyr Spear (falling spear)
+ 931 | EF_LINKPARTICLE2 | (Nothing)
+ 932 | EF_SOULLIGHT3 | Firefly
+ 933 | EF_CHAREFFECT | [Client Crash]
+ 934 | EF_GUMGANG6 | White, castishly expanding cone
+ 935 | EF_FIREBALL6 | Green magic projectile
+ 936 | EF_GUMGANG7 | Red, castishly expanding cone
+ 937 | EF_GUMGANG8 | Yellow, castishly expanding cone
+ 938 | EF_GUMGANG9 | Dark-red, castishly expanding cone
+ 939 | EF_BOTTOM_DE2 | Blue, conish aura
+ 940 | EF_COLDSTATUS | Snow flake
+ 941 | EF_SPR_LIGHTPRINT3 | Explosion of red, demonic fire
+ 942 | EF_WATERBALL3 | Expanding, white dome
+ 943 | EF_HEAL_N2 | Green, fluffy projectile
+ 944 | EF_RAIN_PARTICLE2 | Falling gems
+ 945 | EF_CLOUD9 | (Nothing)
+ 946 | EF_YELLOWFLY3 | Floating lights
+ 947 | EF_EL_GUST | Blue lightning sphere
+ 948 | EF_EL_BLAST | Two blue lightning spheres
+ 949 | EF_EL_AQUAPLAY | Flat, spinning diamond
+ 950 | EF_EL_UPHEAVAL | Circling, planetlike spheres
+ 951 | EF_EL_WILD_STORM | Three lightning spheres
+ 952 | EF_EL_CHILLY_AIR | Flat, spinning gem and two lightning spheres
+ 953 | EF_EL_CURSED_SOIL | Spinning, planetlike spheres
+ 954 | EF_EL_COOLER | Two lightblue glowing spheres
+ 955 | EF_EL_TROPIC | Three spinning flame spheres
+ 956 | EF_EL_PYROTECHNIC | Flame
+ 957 | EF_EL_PETROLOGY | Spinning planetlike sphere
+ 958 | EF_EL_HEATER | Two flames
+ 959 | EF_POISON_MIST | Purple flame
+ 960 | EF_ERASER_CUTTER | Small yellow explosion
+ 961 | EF_SILENT_BREEZE | Cartoony whirlwind
+ 962 | EF_MAGMA_FLOW | Rising fire
+ 963 | EF_GRAYBODY | Dark filter (like Stone Curse)
+ 964 | EF_LAVA_SLIDE | Same as 920
+ 965 | EF_SONIC_CLAW | Small white explosion
+ 966 | EF_TINDER_BREAKER | Bone crack
+ 967 | EF_MIDNIGHT_FRENZY | Another little explosion
+ 968 | EF_MACRO |
+ 969 | EF_CHEMICAL_ALLRANGE |
+ 970 | EF_TETRA_FIRE |
+ 971 | EF_TETRA_WATER |
+ 972 | EF_TETRA_WIND |
+ 973 | EF_TETRA_GROUND |
+ 974 | EF_EMITTER |
+ 975 | EF_VOLCANIC_ASH |
+ 976 | EF_LEVEL99_ORB1 |
+ 977 | EF_LEVEL99_ORB2 |
+ 978 | EF_LEVEL150 |
+ 979 | EF_LEVEL150_SUB |
+ 980 | EF_THROWITEM4_1 |
+ 981 | EF_THROW_HAPPOKUNAI |
+ 982 | EF_THROW_MULTIPLE_COIN |
+ 983 | EF_THROW_BAKURETSU |
+ 984 | EF_ROTATE_HUUMARANKA |
+ 985 | EF_ROTATE_BG |
+ 986 | EF_ROTATE_LINE_GRAY |
+ 987 | EF_2011RWC |
+ 988 | EF_2011RWC2 |
+ 989 | EF_KAIHOU |
+ 990 | EF_GROUND_EXPLOSION |
+ 991 | EF_KG_KAGEHUMI |
+ 992 | EF_KO_ZENKAI_WATER |
+ 993 | EF_KO_ZENKAI_LAND |
+ 994 | EF_KO_ZENKAI_FIRE |
+ 995 | EF_KO_ZENKAI_WIND |
+ 996 | EF_KO_JYUMONJIKIRI |
+ 997 | EF_KO_SETSUDAN |
+ 998 | EF_RED_CROSS |
+ 999 | EF_KO_IZAYOI |
+1000 | EF_ROTATE_LINE_BLUE |
+1001 | EF_KG_KYOMU |
+1002 | EF_KO_HUUMARANKA |
+1003 | EF_BLUELIGHTBODY |
+1004 | EF_KAGEMUSYA |
+1005 | EF_OB_GENSOU |
+1006 | EF_NO100_FIRECRACKER |
+1007 | EF_KO_MAKIBISHI |
+1008 | EF_KAIHOU1 |
+1009 | EF_AKAITSUKI |
+1010 | EF_ZANGETSU |
+1011 | EF_GENSOU |
+1012 | EF_HAT_EFFECT |
+1013 | EF_CHERRYBLOSSOM |
+1014 | EF_EVENT_CLOUD |
+1015 | EF_RUN_MAKE_OK |
+1016 | EF_RUN_MAKE_FAILURE |
+1017 | EF_MIRESULT_MAKE_OK |
+1018 | EF_MIRESULT_MAKE_FAIL |
+1019 | EF_ALL_RAY_OF_PROTECTION |
+1020 | EF_VENOMFOG |
+1021 | EF_DUSTSTORM |
+1022 | EF_LEVEL160 |
+1023 | EF_LEVEL160_SUB |
+1024 | EF_MAPCHAIN |
+1025 | EF_MAGIC_FLOOR |
+1026 | EF_ICEMINE |
+1027 | EF_FLAMECORSS |
+1028 | EF_ICEMINE_1 |
+1029 | EF_DANCE_BLADE_ATK |
+1030 | EF_DARKPIERCING |
+1031 | EF_INVINCIBLEOFF2 |
+1032 | EF_MAXPAIN |
+1033 | EF_DEATHSUMMON |
+1034 | EF_MOONSTAR |
+1035 | EF_STRANGELIGHTS |
+1036 | EF_SUPER_STAR |
+1037 | EF_YELLOBODY |
+1038 | EF_COLORPAPER2 |
+1039 | EF_EVILS_PAW |
+1040 | EF_GC_DARKCROW |
+1041 | EF_RK_DRAGONBREATH_WATER |
+1042 | EF_ALL_FULL_THROTTLE |
+1043 | EF_SR_FLASHCOMBO |
+1044 | EF_RK_LUXANIMA |
+1045 | EF_CLOUD10 |
+1046 | EF_SO_ELEMENTAL_SHIELD |
+1047 | EF_AB_OFFERTORIUM |
+1048 | EF_WL_TELEKINESIS_INTENSE |
+1049 | EF_GN_ILLUSIONDOPING |
+1050 | EF_NC_MAGMA_ERUPTION |
+1051 | EF_LG_KINGS_GRACE |
+1052 | EF_BLOODDRAIN2 |
+1053 | EF_NPC_WIDEWEB |
+1054 | EF_NPC_BURNT |
+1055 | EF_NPC_CHILL |
+1056 | EF_RA_UNLIMIT |
+1057 | EF_AB_OFFERTORIUM_RING |
+1058 | EF_SC_ESCAPE |
+1059 | EF_WM_FRIGG_SONG |
+1060 | EF_FLICKER |
+1061 | EF_C_MAKER |
+1062 | EF_HAMMER_OF_GOD |
+1063 | EF_MASS_SPIRAL |
+1064 | EF_FIRE_RAIN |
+1065 | EF_WHITEBODY |
+1066 | EF_BANISHING_BUSTER |
+1067 | EF_SLUGSHOT |
+1068 | EF_D_TAIL |
+1069 | EF_BIND_TRAP1 |
+1070 | EF_BIND_TRAP2 |
+1071 | EF_BIND_TRAP3 |
+1072 | EF_JUMPBODY1 |
+1073 | EF_ANIMATED_EMITTER |
+1074 | EF_RL_EXPLOSION |
+1075 | EF_C_MAKER_1 |
+1076 | EF_QD_SHOT |
+1077 | EF_P_ALTER |
+1078 | EF_S_STORM |
+1079 | EF_MUSIC_HAT |
+1080 | EF_CLOUD_KILL |
+1081 | EF_ESCAPE |
+1082 | EF_XENO_SLASHER |
+1083 | EF_FLOWERSMOKE |
+1084 | EF_FSTONE |
+1085 | EF_QSCARABA |
+1086 | EF_LJOSALFAR |
+1087 | EF_HAPPINESSSTAR |
+1088 | EF_POWER_OF_GAIA |
+1089 | EF_MAPLE_FALLS |
+1090 | EF_MARKING_USE_CHANGEMONSTER |
+1091 | EF_MAGICAL_FEATHER |
+1092 | EF_MERMAID_LONGING |
+1093 | EF_GIFT_OF_SNOW |
+1094 | EF_ACH_COMPLETE |
+1095 | EF_TIME_ACCESSORY |
+1096 | EF_SPRITEMABLE |
+1097 | EF_TUNAPARTY |
diff --git a/doc/effect_list.txt b/doc/effect_list.txt
deleted file mode 100644
index 01ea2753b..000000000
--- a/doc/effect_list.txt
+++ /dev/null
@@ -1,986 +0,0 @@
-//===== Hercules Documentation ===============================
-//= Client Effects List
-//===== By: ==================================================
-//= Hercules Dev Team
-//===== Current Version: =====================================
-//= 20120822
-//===== Description: =========================================
-//= A list of client-side effects sorted by ID.
-//============================================================
-
-The following is a compiled list of visual and sound effects which the client
-can produce when receiving a packet with id 0x1f3 (01f3 <ID>.l <type>.l).
-Each list entry contains a number and a short description of the effect.
-You can produce these effects ingame by doing "@effect <number> 22" (22=self).
-It's also possible to attach effects to item/npc scripts by using 'misceffect'.
-
-Number Description
------- -----------
-0. Regular Hit
-1. Bash
-2. Melee Skill Hit
-3. Melee Skill Hit
-4. Melee Skill Hit
-5. Melee Skill Hit
-6. Being Warped
-7. Item Heal effect
-8. Yellow Ripple Effect
-9. Different Type of Heal
-10. Mammonite
-11. Endure
-12. Yellow cast aura
-13. Blue Box
-14. Blue restoring effect
-15. Soul Strike
-16. Hide
-17. Magnum Break
-18. Steal
-19. (Invalid)
-20. Envenom/Poison
-21. Detoxify
-22. Sight
-23. Stone Curse
-24. Fire Ball
-25. Fire Wall
-26. A sound (a swipe?)
-27. Frost Diver (Traveling to Target)
-28. Frost Diver (Hitting)
-29. Lightning Bolt
-30. Thunder Storm
-31. Weird bubbles launching from feet
-32. Small clustered explosions
-33. Ruwach
-34. Old Map Exit Animation (unused)
-35. Old Warp Portal (unused)
-36. Old Warp Portal (unused)
-37. AGI Up
-38. AGI Down
-39. Aqua Benedicta
-40. Signum Crucis
-41. Angelus
-42. Blessing
-43. Dex + Agi Up
-44. Little Fog Smoke.
-45. Faint Little Ball Things.
-46. Sand Wind
-47. Torch
-48. Small Piece of Glass
-49. Firebolt/Wall Hits
-50. Spinning Fire Thing
-51. Ice Elemental Hit
-52. Wind Elemental Hit
-53. Puff of Purpulish Smoke?
-54. Cast Initiation Aura (Water Element)
-55. Cast Initiation Aura (Fire Element)
-56. Cast Initiation Aura (Wind Element)
-57. Cast Initiation Aura (Earth Element)
-58. Cast Initiation Aura (Holy Element)
-59. Cast Initiation Aura (Poison Element)
-60. Cast target circle
-61. Old Warp Portal (NPC Warp, unused)
-62. Sight Trasher
-63. Moonlight Sphere
-64. Something Like Puruple/Yellow Light Bullet
-65. Something Like Absorb of Power
-66. Cure
-67. Provoke
-68. MVP Banner
-69. Skid Trap
-70. Brandish Spear
-71. Spiral White balls
-72. Bigger Spiral White balls
-73. Blue/White Small Aura
-74. Ice Wall
-75. Gloria
-76. Magnificat
-77. Resurrection
-78. Status Recovery
-79. Earth Spike
-80. Spear Boomerang
-81. Skill hit
-82. Turn Undead
-83. Sanctuary
-84. Impositio Manus
-85. Lex Aeterna
-86. Aspersio
-87. Lex Divina
-88. Suffragium
-89. Storm Gust
-90. Lord of Vermilion
-91. B. S. Sacramenti
-92. Meteor Storm
-93. Jupitel Thunder (Ball)
-94. Jupitel Thunder (Hit)
-95. Quagmire
-96. Fire Pillar
-97. Fire Pillar/Land Mine hit
-98. Adrenaline Rush
-99. Flasher Trap
-100. Yellow ball fountain
-101. Weapon Repair
-102. Hammerfall
-103. Weapon Perfection
-104. Maximize Power
-105. (nothing)
-106. Blast Mine Trap
-107. Claymore Trap
-108. Freezing Trap
-109. Bailaban Blue bubble Map Effect
-110. Trap Used by Giearth
-111. Spring Trap
-112. Kyrie Eleison
-113. Magnus Exorcismus
-114. Old Magnus Exorcismus Map Unit (unused)
-115. Blitz Beat
-116. Fling Watersphere
-117. Waterball
-118. Fling Firesphere
-119. Detect
-120. Cloaking
-121. Sonic Blow (Part 1/2)
-122. Multi hit effect
-123. Grimtooth Cast
-124. Venom Dust
-125. Enchant Poison
-126. Poison React
-127. Small Posion React
-128. Over Thrust
-129. Venom Splasher Explosion
-130. Two-Hand Quicken
-131. Auto-Counter Hit
-132. Grimtooth Hit
-133. Ice Effect (Used by NPCs)
-134. Ice Effect (Used by NPCs)
-135. Ice Effect (Used by NPCs)
-136. Slow Poison
-137. Old Sanctuary Map Unit (unused)
-138. Fire pillar
-139. Sandman Trap
-140. Ressurection Aura
-141. Pneuma
-142. Heaven's Drive
-143. Sonic Blow (Part 2/2)
-144. Brandish Spear Pre-Hit Effect
-145. Shockwave Trap
-146. Shockwave Trap Hit
-147. Pierce Hit
-148. Pierce Cast Animation
-149. Bowling Bash
-150. Pierce Cast Animation
-151. Spear Boomerang Cast
-152. Turn Undead
-153. Increase Concentration
-154. Refine Success
-155. Refine Fail
-156. jobchange.str not found error
-157. levelup.str not found error
-158. Job Level Up
-159. PvP circle
-160. PvP Party Circle
-161. (Nothing)
-162. Snow
-163. White Sakura Leaves
-164. (Nothing)
-165. Comodo Fireworks Ball
-166. Energy Coat (Visual Effect)
-167. (Nothing)
-168. (Nothing)
-169. Energy Coat Animation
-170. Cart Revolution
-171. Venom Dust Map Unit
-172. Change Element (Dark)
-173. Change Element (Fire)
-174. Change Element (Water)
-175. Change Element (Wind)
-176. Change Element (Fire)
-177. Change Element (Earth)
-178. Change Element (Holy)
-179. Change Element (Poison)
-180. Darkness Attack
-181. Mental Breaker
-182. Magical Hit
-183. Self Destruction
-184. (Nothing)
-185. (Nothing)
-186. Combo Attack 1
-187. Combo Attack 2
-188. Combo Attack 3
-189. Combo Attack 4
-190. Combo Attack 5
-191. Guided Attack
-192. Poison Attack
-193. Silence Attack
-194. Stun Attack
-195. Petrify Attack
-196. Curse Attack
-197. Sleep Attack
-198. (Nothing)
-199. Small Popping Bubble Map Effect
-200. Normal level 99 Aura (Middle)
-201. Normal level 99 Aura (Bottom)
-202. Lv 99 Aura Bubble
-203. Fury (Visual Effect)
-204. Red Herb/Potion
-205. Orange Potion
-206. Yellow Herb/Potion
-207. White Herb/Potion
-208. Blue Herb/Potion
-209. Green Herb/Potion
-210. Yellow Circle Healing Effect
-211. Blue Circle Healing Effect
-212. Dark Breath
-213. Defender
-214. Keeping
-215. Summon Slave
-216. Blood Drain
-217. Energy Drain
-218. Concentration Potion
-219. Awakening Potion
-220. Berserk Potion
-221. Intense light beam
-222. Defender (Crusader)
-223. Holy Cast Aura
-224. Wind (Map effect)
-225. Volcano casting effect
-226. Grand Cross Effect
-227. Snatch
-228. (Nothing)
-229. (Nothing)
-230. (Nothing)
-231. Map Light Pillar Animation 1
-232. Sacrifice (Visual Effect)
-233. Fog
-234. Spell Breaker
-235. Dispell
-236. Deluge Cast Aura
-237. Violent Gale Cast Aura
-238. Magnetic Earth Cast Aura
-239. Volcano (Visual Effect)
-240. Deluge (Visual Effect)
-241. Violent Gale (Visual Effect)
-242. Magnetic Earth (Visual Effect)
-243. (Invalid)
-244. Magic Rod
-245. Holy Cross
-246. Shield Charge
-247. Map Light Pillar Animation 2
-248. Resistant Souls
-249. Shield Boomerang
-250. Spear Quicken
-251. Devotion
-252. Reflect Shield
-253. Absorb Spirit Spheres
-254. Mental Strength (Visual Effect)
-255. Elemental Endow (Fire)
-256. Elemental Endow (Water)
-257. Elemental Endow (Wind)
-258. Elemental Endow (Earth)
-259. Map Light Pillar Animation 3
-260. Map Light Pillar Animation 4
-261. Fury Cast Animation
-262. Raging Quadruple Blow
-263. Raging Quadruple Blow 2
-264. (Nothing)
-265. Throw Spirit Sphere
-266. Raging Quadruple Blow 3
-267. Occult Impaction
-268. Steal Coin
-269. Divest Weapon
-270. Divest Shield
-271. Divest Armor
-272. Divest Helm
-273. Raging Quadruple Blow 4
-274. Steal Coin Animation
-275. Back Stab Animation
-276. Raging Thrust
-277. Dissoance Map Unit
-278. Lullaby Map Unit
-279. Mr Kim a Rich Man Map Unit
-280. Eternal Chaos Map Unit
-281. A Drum on the Battlefield Map Unit
-282. The Ring Of Nibelungen Map Unit
-283. Loki's Veil Map Unit
-284. Into the Abyss Map Unit
-285. Invunerable Siegfriend Map Unit
-286. A Wistle Map Unit
-287. Assassin Cross of Sunset Map Unit
-288. A Poem of Bragi Map Unit
-289. The Apple Of Idun Map Unit
-290. Ugly Dance Map Unit
-291. Humming Map Unit
-292. Please don't Forget Me Map Unit
-293. Fortune's Kiss Map Unit
-294. Service For You Map Unit
-295. Frost Joke
-296. Scream
-297. Fire Works (Visual Effect)
-298. Acid Terror Animnation
-299. (Nothing)
-300. Chemical Protection
-301. Fire Works (Sound Effect)
-302. Bomb
-303. (Unused)
-304. Teleportation Animation
-305. Pharmacy Success
-306. Pharmacy Failed
-307. Forest Light 1
-308. Throw Stone
-309. First Aid
-310. Sprinkle Sand
-311. Crazy Uproar
-312. Heal Effect
-313. Heal Effect 2
-314. Old Map Exit effect (Unused)
-315. Safety Wall
-316. Warp Portal Animation 1
-317. Warp Portal Animation 2
-318. Magnus Exorcisimus Map Unit
-319. Sanctuary Map Unit
-320. Offensive Heal
-321. Warp NPC
-322. Forest Light 2
-323. Forest Light 3
-324. Forest Light 4
-325. Heal Effect 4
-326. Chase Walk Left Foot
-327. Chse Walk Right Foot
-328. Monk Asura Strike
-329. Triple Strike
-330. Combo Finish
-331. Natural HP Regeneration
-332. Natural SP Regeneration
-333. Autumn Leaves
-334. Blind
-335. Poison
-336. Kyrie Eleison/Parrying Shield
-337. Class Change
-338. Super Novice/Taekwon Level Up Angel
-339. Spiral Pierce
-340. (Nothing)
-341. Wedding Warp Portal
-342. Wedding Skill
-343. Another Merry Skill
-344. Character map entry effect
-345. Wings (Animated)
-346. Like Moonlight But Blue
-347. Wedding Ceremony
-348. Like 1000 Blade trepassing
-349. Waterfall (Horizonatal)
-350. Waterfall (Vertical)
-351. Small Waterfall (Horizonatal)
-352. Small Waterfall (Vertical)
-353. Dark Waterfall (Horizonatal)
-354. Dark Waterfall (Vertical)
-355. Dark Small Waterfall (Horizonatal)
-356. Dark Small Waterfall (Vertical)
-357. (Nothing)
-358. Niflheim Ghost
-359. Niflheim Bat Slow
-360. Niflheim Bat Fast
-361. Soul Destroyer
-362. Trancendant Level 99 Aura 1
-363. Valentine Day Heart With Wings
-364. Valentine Day Heart
-365. Gloria Domini
-366. Martyr's Reckoning
-367. Aura Blade
-368. Berserk
-369. Concentration
-370. Gospel Map Unit
-371. Level Up
-372. Death
-373. House Smoke
-374. Basilica
-375. Assumptio (Visual Effect)
-376. Palm Strike
-377. Matyr's Reckoning 2
-378. Soul Drain (1st Part)
-379. Soul Drain (2nd Part)
-380. Magic Crasher
-381. Blue Starburst (Unknown use)
-382. (Nothing)
-383. Health Conversion
-384. Soul Change (Sound Effect)
-385. Soul Change (Visual Effect)
-386. True Sight
-387. Falcon Assault
-388. Focused Arrow Strike (Sound Effect)
-389. Wind Walk
-390. Shattering Strike
-391. Cart Boost
-392. Reject Sword
-393. Arrow Vulcan
-394. Sheltering Bliss
-395. Marionette Control (Sound Effect)
-396. Marionette Control (Visual Effect)
-397. Trancended 99 Aura (Middle)
-398. Trancended 99 Aura (Bottom)
-399. Head Crush
-400. Joint Beat
-401. Napalm Vulcan Sound
-402. Dangerous Soul Collect
-403. Mind Breaker
-404. Fiber Lock
-405. Wall Of Fog
-406. Soul Burn
-407. Soul Change
-408. Mom, Dad, I love you! (Baby Skill)
-409. Meteor Assault
-410. Rainbow
-411. Leap
-412. Like Throw Spirit Sphere
-413. Axe Kick
-414. Round Kick
-415. Counter Kick
-416. (Nothing)
-417. Flash
-418. Warmth Lightning
-419. Kaite (Visual Effect)
-420. Eswoo (Small) (Visual Effect)
-421. Eswoo (Alt. Small) (Visual Effect)
-422. Eswoo (Normal) (Visual Effect)
-423. Eswoo (Alt. Normal) (Visual Effect)
-424. Spirit Link (Visual Effect)
-425. Esma Hit (Visual Effect)
-426. Sprint Collision (Visual Effect)
-427. (Nothing)
-428. (Nothing)
-429. Taekwon Kick Hit 1
-430. Taekwon Kick Hit 2
-431. Taekwon Kick Hit 3
-432. Solar, Lunar and Stellar Perception (Visual Effect)
-433. Solar, Lunar and Stellar Opposition (Visual Effect)
-434. Taekwon Kick Hit 4
-435. Whirlwind Kick
-436. White Barrier (Unused)
-437. White barrier 2 (Unused)
-438. Kaite Reflect Animation
-439. Flying Side Kick
-440. Assumptio (Animation)
-441. Comfort Skills Cast Aura
-442. Foot Prints caused by Sprint.
-443. (Nothing)
-444. Sprint Stop Animation
-445. High Jump (Jump)
-446. High Jump (Return Down)
-447. Running Left Foot
-448. Running Right Foot
-449. KA-Spell (1st Part)
-450. Darkcross
-451. Dark Strike
-452. Something Like Jupitel Thunder
-453. Paralized
-454. Like Blind
-455. Another Warmth Lightning
-456. Power Up
-457. Flying Side Kick (2nd Part)
-458. Running/Sprint (running into a wall)
-459. Brown tornado that spins sprite (unused)
-460. Green tornado (unused)
-461. Blue tornado (unused)
-462. Kaupe Dodge Effect
-463. Kaupe Dodge Effect
-464. White tornado (unused)
-465. Purple tornado (unused)
-466. Another Round Kick
-467. Warm/Mild Wind (Earth)
-468. Warm/Mild Wind (Wind)
-469. Warm/Mild Wind (Water)
-470. Warm/Mild Wind (Fire)
-471. Warm/Mild Wind (Undead)
-472. Warm/Mild Wind (Shadow)
-473. Warm/Mild Wind (Holy)
-474. (Nothing)
-475. Demon of The Sun Moon And Stars (Level 1)
-476. Demon of The Sun Moon And Stars (Level 2)
-477. Demon of The Sun Moon And Stars (Level 3)
-478. Demon of The Sun Moon And Stars (Level 4)
-479. Demon of The Sun Moon And Stars (Level 5)
-480. Demon of The Sun Moon And Stars (Level 6)
-481. Demon of The Sun Moon And Stars (Level 7)
-482. Demon of The Sun Moon And Stars (Level 8)
-483. Demon of The Sun Moon And Stars (Level 9)
-484. Demon of The Sun Moon And Stars (Level 10)
-485. Mental Strength Lightning but White
-486. Mental Strength Lightning
-487. Demon of The Sun Moon And Stars Ground Effect
-488. Comfort Skills
-489. (Nothing)
-490. (Nothing)
-491. Element Potions
-492. Cooking Foods
-493. Enchant Deadly Poison
-494. Throwing Tomahawk
-495. Full Strip Sound
-496. Preserve
-497. Twilight Alchemy 1
-498. Twilight Alchemy 2
-499. Twilight Alchemy 3
-500. Player Become Blue with Blue Aura
-501. Chase Walk Animation
-502. Player Become Yellow with Yellow Aura
-503. Soul Link Word
-504. (Nothing)
-505. Memorize
-506. (Nothing)
-507. Authoritative Badge
-508. Fire Cracker
-509. Valentine Day Hearth (Wings)
-510. Champion Asura Strike
-511. (Nothing)
-512. Chain Crush Combo
-513. Area Cast
-514. Really Big Circle
-515. Einbroch Fog
-516. Airship Cloud
-517. (Nothing)
-518. Cart Termination
-519. Speed Down Potion
-520. Shield Bumerang
-521. Player Become Red with Red Aura
-522. Gravitation Field
-523. Tarot Card of Fate (The Fool)
-524. Tarot Card of Fate (The Magician)
-525. Tarot Card of Fate (The High Priestess)
-526. Tarot Card of Fate (The Chariot)
-527. Tarot Card of Fate (Strength)
-528. Tarot Card of Fate (The Lovers)
-529. Tarot Card of Fate (The Wheel of Fortune)
-530. Tarot Card of Fate (The Hanged Man)
-531. Tarot Card of Fate (Death)
-532. Tarot Card of Fate (Temperance)
-533. Tarot Card of Fate (The Devil)
-534. Tarot Card of Fate (The Tower)
-535. Tarot Card of Fate (The Star)
-536. Tarot Card of Fate (The Sun)
-537. Acid Demonstration
-538. Player Become Green with Green Aura
-539. Throw Random Bottle
-540. Instant Small->Normal
-541. (Nothing)
-542. KA-Spell (1st Part)
-543. Kahii
-544. Warmth Red Sprite
-545. Sound And... PUFF Client Crash :P
-546. Kaupe
-547. Estin
-548. Instant Red Sprite
-549. Instant Blue Sprite
-550. Another Effect like Running Hit
-551. Effect Like Estun but with Circle
-552. (Nothing)
-553. Esma
-554. Large White Cloud
-555. Estun
-556. (Nothing)
-557. Juperos Energy Waterfall (Horizontal)
-558. Juperos Energy Waterfall (Vertical)
-559. Juperos Energy Waterfall Fast (Horizontal)
-560. Juperos Energy Waterfall Fast (Vertical)
-561. Juperos Warp
-562. Juperos Warp
-563. Earthquake Effect (Juperos Elevator)
-564. Wedding Cast
-565. Filir Moonlight Lvl 1
-566. Filir Moonlight Lvl 2
-567. Filir Moonlight Lvl 3
-568. Another Job Level Up
-569. Amistr Bulwark
-570. Amistr Castling
-571. Amistr Bloodlust
-572. Warmth Soul
-573. Twilight Alchemy 1
-574. Twilight Alchemy 2
-575. Twilight Alchemy 3
-576. Box Effect (Thunder)
-577. Box Effect (Cloud)
-578. Box Effect (Curse)
-579. Box Effect (Sleep)
-580. Box Effect (Rain)
-581. Box Effect (Sunlight)
-582. Another Super Novice/Taekwon Angel
-583. Warmth Hit
-584. Full Buster
-585. 5 Medium Size Explosion
-586. Somatology Lab Mobs Aura
-587. Big Purple Flame
-588. Little Red Flame
-589. Eswoo
-590. Running Stop
-591. (Nothing)
-592. Thanatos Tower Bloody Clouds
-593. Food Effect (STR)
-594. Food Effect (INT)
-595. Food Effect (VIT)
-596. Food Effect (AGI)
-597. Food Effect (DEX)
-598. Food Effect (LUK)
-599. Cast Time Sound and Flashing Animation on Player
-600. Throw Venom Knife
-601. Sight Blaster
-602. Close Confine (Grab Effect)
-603. Spinning fire ball (like 50, but smaller)
-604. Close Confine (Ground Effect)
-605. (Nothing)
-606. Pang Voice (Visual Effect)
-607. Wink of Charm (Visual Effect)
-608. Cooking Success
-609. Cooking Failed
-610. Success
-611. Failed
-612. Korean Words and /no1 Emoticon
-613. Throw Shuriken
-614. Throw Kunai
-615. Throw Fumma Shuriken
-616. Throw Money
-617. Illusionary Shadow
-618. Crimson Fire Bolossom
-619. Lightning Spear Of Ice
-620. Water Escape Technique
-621. Wind Blade
-622. Lightning Crash
-623. Piercing Shot
-624. Kamaitachi
-625. Madness Canceller
-626. Adjustment
-627. Disarm (Sound Effect)
-628. Dust
-629. (Nothing)
-630. Shadow Slash
-631. Reverse Tatami Map Unit
-632. Mist Slash
-633. Final Strike
-634. Crimson Fire Formation
-635. Dragon Fire Formation
-636. Falling Ice Pillar
-637. Desperado
-638. Ground Drift Grenade
-639. Ground Drift Grenade
-640. Ground Drift Grenade
-641. Ground Drift Grenade
-642. Ground Drift Grenade
-643. Rapid Shower
-644. Magic Bullet
-645. Spread Attack
-646. Tracking (Shown While Casting)
-647. Tracking
-648. Triple Action
-649. Bull's Eye
-650. Ice Cave Level 4 Circle
-651. Ice Cave Level 4 Big Circle
-652. Like Regeneration Number but Red with a Sound
-653. Like Regeneration Number but Red
-654. Like Regeneration Number but Purple
-655. Mobs Skill (Change Undead Element)
-656. Last animation before Change Undead Element finish
-657. (Nothing)
-658. (Nothing)
-659. (Nothing)
-660. (Nothing)
-661. (Nothing)
-662. (Nothing)
-663. (Nothing)
-664. (Nothing)
-665. Little Blue Ball Falling From the Sky
-666. Earthquake
-667. (Nothing)
-668. Dragonfear
-669. Wide Bleeding
-670. Dragon fear (Visual Effect)
-671. The Japan Earth Symbol (like 'Seven Wind Lv1', but on the ground)
-672. The Japan Wind Symbol (like 'Seven Wind Lv2', but on the ground)
-673. Map turns Blue (like Soul Link)
-674. Evil Land Cell
-675. Like Parrying/Kyrie Eleison barrier but Yellow with small Cross in every barrier piece
-676. Slow Casting
-677. Critical Wounds/Bleeding Attack
-678. White 99 Aura Bubbles
-679. Green Aura (Middle)
-680. Green Aura (Bottom)
-681. Dimensional Gorge Map Effect
-682. I Love You Banner
-683. Happy White Day Banner
-684. Happy Valentine Day Banner
-685. Happy Birthday Banner
-686. Merry Christmas Banner
-687. Cast Circle-Like effect 1
-688. Cast Circle-Like effect 2
-689. Endless Tower Map Effect
-690. Burning Flame (Red)
-691. Burning Flame (Green)
-692. Unknown Aura Bubbles (Small ghosts)
-693. Translucent yellow circle
-694. Translucent green circle
-695. Rotating green light
-696. The same of 690 and 691 but Blue/Purple
-697. (Nothing)
-698. (Nothing)
-699. Fall of powder from the sky and raise of some leaf
-700. Big Colored Green Sphere.
-701. Huge Blue Sphere
-702. Little Colored Violet Sphere
-703. Light Infiltration with fall of pownder
-704. Client Error (mobile_ef02.str)
-705. Client Error (mobile_ef01.str)
-706. Client Error (mobile_ef03.str)
-707. Client Crash :P
-708. Storm Gust (same as 89)
-709. A Firework that split in 4 mini fireworks
-710. A Sphere like Effect 701 but Green, and a bit more larger
-711. A big violet wall
-712. A Little Flame Sphere
-713. A lot of Very Small and Yellow Sphere
-714. (Nothing)
-715. Little blue Basilica
-716. Same as 715
-717. Christmas Carol (copy of Angelus)
-718. Judex (Visual Effect)
-719. Renovatio (light beam)
-720. Yellow version of Soul Breaker
-721. Adoramus (lightning bolt)
-722. Ignition Break (big explosion)
-723. Hundred Spear (sound effect)
-724. Green version of Detecting
-725. Oratorio (like Detecting)
-726. Frost Misty (blue vapor and bubbles)
-727. Crimson Rock
-728. Small fire (part of Hell Inferno)
-729. Marsh of Abyss (like Close Confine)
-730. Small, cartoony explosion (part of Soul Expansion)
-731. Dragon Howling (blinking, expanding circle)
-732. Spike from the ground
-733. Fluffy Ball flying by
-734. Chain Lightning
-735. (Nothing)
-736. (Nothing)
-737. (Nothing)
-738. (Nothing)
-739. Old Magenta Trap
-740. Old Cobald Trap
-741. Old Maize Trap
-742. Old Verdure Trap
-743. White Ranger Trap
-744. Camouflage
-745. Aimed Bolt (crosshairs)
-746. Arrow Storm
-747. Falling white feathers
-748. Falling blue feathers
-749. Millennium Shield
-750. Detonator (blue sparkles)
-751. Releasing summoned warlock spheres
-752. Like Energy Coat, but not as dark
-753. Clearance
-754. Green warp portal (root of Epiclesis)
-755. Oratio (spinning blue symbol)
-756. Enchant Blade (like Berserk Potion)
-757. Third Class Aura (Middle)
-758. Rolling Cutter - Spin Count 1
-759. Rolling Cutter - Spin Count 2
-760. Rolling Cutter - Spin Count 3
-761. Rolling Cutter - Spin Count 4
-762. Rolling Cutter - Spin Count 5
-763. Rolling Cutter - Spin Count 6
-764. Rolling Cutter - Spin Count 7
-765. Rolling Cutter - Spin Count 8
-766. Rolling Cutter - Spin Count 9
-767. Rolling Cutter - Spin Count 10
-768. Blinking
-769. Cross Ripper Slasher (flying knives)
-770. Strip sound
-771. Poison sound
-772. Poison particles
-773. Expanding purple aura (part of Phantom Menace)
-774. Axe Boomerang
-775. Spinning character sprite
-776. Like Desperado sound effect
-777. Faded light from the ground [S]
-778. Expanding white aura (like Clearance)
-779. Faded light from the ground [S]
-780. Expanding red aura (from Infrared Scan)
-781. Magnetic Field (purple chains)
-782. All-around shield [S]
-783. Yellow shaft of light
-784. White shaft of light
-785. Upward flying wrenches
-786. Symbol with bleeping sound [S]
-787. Flare Launcher (line of fire)
-788. Venom Impress (green skull)
-789. Freezing Status Effect (two ancillas)
-790. Burning Status Effect (flame symbol)
-791. Two ice shots
-792. Upward streaming white particles
-793. Same, but more brief
-794. Infrared Scan (red lasers)
-795. Power Swing (axe crash)
-796. Spinning blue triangles
-797. Stapo
-798. Red triangles (like Intimidate)
-799. Stasis (expanding blue mist) [S]
-800. Hell Inferno (red lights)
-801. Jack Frost unit (ice spikes)
-802. White Imprison
-803. Recognized Spell
-804. Tetra Vortex [S]
-805. Tetra Vortex cast animation (blinking colors)
-806. Flying by as fast as a rocket
-807. Kidnapping sound
-808. Like Recognized Spell, but one symbol
-809. Shadowy filter [S]
-810. Damp thud sound [S]
-811. Body Painting
-812. Black expanding aura
-813. Masquerade - Enervation
-814. Masquerade - Groomy
-815. Masquerade - Ignorance
-816. Masquerade - Laziness
-817. Masquerade - Unlucky
-818. Masquerade - Weakness
-819. (Nothing)
-820. Strip Accessory
-821. Waterfall
-822. Dimension Door (spinning blue aura)
-823. in-the-manhole effect
-824. Some filter
-825. Dimension Door (aura + blue light)
-826. Expanding black casting anim.
-827. Chaos Panic (spinning brown aura)
-828. Maelstrom (spinning pink aura)
-829. Bloody Lust (spinning red aura)
-830. Blue aura (Arch Bishop cast animation)
-831. Blue cone [S]
-832. Sonic Wave
-833. (Nothing)
-834. Light shooting away circlish
-835. Fastness yellow-reddish
-836. Fastness yellow-pinkish
-837. Casting [S]
-838. Watery aura
-839. [Client Error]
-840. Red cone
-841. Green cone
-842. Yellow cone
-843. White cone
-844. Purple cone
-845. light-bluish turquoise cone
-846. (Nothing)
-847. Gloomy Day (white/red light rays)
-848. Gloomy Day (white/blue light rays)
-849. (Nothing)
-850. (Nothing)
-851. Green mushy-foggy stuff (dull)
-852. Green mushy-foggy stuff (bright)
-853. Bright green flower area
-854. Blue beam of light with notes
-855. (Nothing)
-856. Reverberation (red eighth notes)
-857. Severe Rainstorm (falling red and blue beams)
-858. Deep Sleep Lullaby (two red beams and music notes)
-859. Holograph of text (blue)
-860. Distorted note (blue)
-861. Green aura (from Circle of Life's Melody)
-862. Randomize Spell (holograph of text)
-863. Dominion Impulse (two spears of light)
-864. Gloomy Day (colorful lines)
-865. Blue aura (from Song of Mana)
-866. Dance with a Warg (Wargs)
-867. Yellow aura (from Dance with a Warg)
-868. Song of Mana (Violies)
-869. Strip sound [S]
-870. Ghostly Succubuses of fire
-871. Red aura (from Lerad's Dew)
-872. Lerad's Dew (Minerals)
-873. Stargate-wormhole stuff (bright purple)
-874. Melody of Sink (Ktullanuxes)
-875. Stargate-wormhole stuff (bright turquoise)
-876. Warcry of Beyond (Garms)
-877. Stargate-wormhole stuff (white)
-878. Unlimited Humming Voice (Miyabi Ningyos)
-879. Siren's Voice (heart-like)
-880. Bluish castish cone
-881. Blue aura
-882. Whirl of fireflies (red)
-883. Epiclesis (transparent green tree)
-884. Green beam
-885. Blue light beams
-886. Blue castish cone
-887. Wavy sparks
-888. Earth Shaker (same as 432)
-889. Fast light beams
-890. Rotation
-891. Magic shots [S]
-892. Fastness with hitting sound[S]
-893. Blue-white light passing by
-894. (Nothing)
-895. Big wheel of flat light beams
-896. Still sun shaped lightning aura
-897. Animated sun shaped lightning aura
-898. Animated, curvy sun shaped lightning aura
-899. White/red light shots from below
-900. Animated, slow curvy sun shaped lightning aura
-901. Explosion
-902. Floating bedtable texture
-903. Castish flamey cone
-904. Yellow/pink lights passing by
-905. Expanding circle
-906. Shield Press (falling shield)
-907. Chainy, metalish sound [S]
-908. Prestige (sphere of yellow particles)
-909. Banding (sphere of red particles)
-910. Inspiration (sphere of blue particles)
-911. Green castish animation [S]
-912. Wall of Thorns unit (green fog cloud)
-913. Magic projectiles
-914. (Nothing)
-915. Crazy Weed
-916. Demonic Fire
-917. More angry, demonic flames
-918. Fire Insignia (demonic flames)
-919. Hell's Plant (green snapping plant)
-920. Fire Walk unit
-921. Vacuum Extreme (whirlwind)
-922. Psychic Wave
-923. Poison Buster
-924. Poisoning animation
-925. Some filter
-926. Electric Walk unit
-927. Earth Grave (speary roots)
-928. Ice cloud projectiles
-929. Warmer (field of flames)
-930. Varetyr Spear (falling spear)
-931. (Nothing)
-932. Firefly
-933. [Client Crash]
-934. White, castishly expanding cone
-935. Green magic projectile
-936. Red, castishly expanding cone
-937. Yellow, castishly expanding cone
-938. Dark-red, castishly expanding cone
-939. Blue, conish aura
-940. Snow flake
-941. Explosion of red, demonic fire
-942. Expanding, white dome
-943. Green, fluffy projectile
-944. Falling gems
-945. (Nothing)
-946. Floating lights
-947. Blue lightning sphere
-948. Two blue lightning spheres
-949. Flat, spinning diamond
-950. Circling, planetlike spheres
-951. Three lightning spheres
-952. Flat, spinning gem and two lightning spheres
-953. Spinning, planetlike spheres
-954. Two lightblue glowing spheres
-955. Three spinning flame spheres
-956. Flame
-957. Spinning planetlike sphere
-958. Two flames
-959. Purple flame
-960. Small yellow explosion
-961. Cartoony whirlwind
-962. Rising fire
-963. Dark filter (like Stone Curse)
-964. Same as 920
-965. Small white explosion
-966. Bone crack
-967. Another little explosion
diff --git a/doc/global_configuration.md b/doc/global_configuration.md
new file mode 100644
index 000000000..b0e99e698
--- /dev/null
+++ b/doc/global_configuration.md
@@ -0,0 +1,65 @@
+# Global configuration reference
+
+## What is global configuration?
+
+Global configuration is an import system that allows configuration files to be
+shared between servers (login, char, map), but can also be used independently
+in each server.
+
+
+## How does it work?
+
+It works by using the `@include` directive from libconfig:
+
+> "A configuration file may "include" the contents of another file using an
+> include directive. This directive has the effect of inlining the contents of
+> the named file at the point of inclusion.
+
+An include directive must appear on its own line and takes this form:
+
+```
+ @include "filename"
+```
+
+Any backslashes or double quotes in the filename must be escaped as `\\` and
+`\"`, respectively.
+
+
+## How do I stop using global configurations?
+
+To stop using global configuration, all you have to do is copy the contents of
+the file being imported and paste it _exactly_ where the include directive was.
+
+### Example
+
+If you want map server and char server to have their own separate SQL connection
+settings, you would search in `conf/map/map-server.conf` and
+`conf/char/char-server.conf` for this line:
+
+```
+ @include "conf/global/sql_connection.conf"
+```
+
+And replace it with:
+
+```
+ sql_connection: {
+ // [INTER] You can specify the codepage to use in your mySQL tables here.
+ // (Note that this feature requires MySQL 4.1+)
+ //default_codepage: ""
+
+ // [LOGIN] Is `userid` in account_db case sensitive?
+ //case_sensitive: false
+
+ // 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)"
+ // and you have localhost, switch it to 127.0.0.1
+ db_hostname: "127.0.0.1"
+ db_port: 3306
+ db_username: "ragnarok"
+ db_password: "ragnarok"
+ db_database: "ragnarok"
+ //codepage:""
+ }
+```
diff --git a/doc/global_configuration.txt b/doc/global_configuration.txt
deleted file mode 100644
index a000a4572..000000000
--- a/doc/global_configuration.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-//===== Hercules Documentation ===============================
-//= Global configuration reference
-//===== By: ==================================================
-//= Panikon (Hercules Dev. Team)
-//===== Current Version: =====================================
-//= 20140616
-//===== Description: =========================================
-//= Global configurations found in conf/global/
-//============================================================
-
-- What are global configurations?
-
-Global configurations are configurations that can be shared between servers,
-but can also be set independently in each server.
-
-- How do they work?
-
-They work by using an include system that is available with libconfig:
-
- "A configuration file may "include" the contents of another file using an
- include directive. This directive has the effect of inlining the contents of
- the named file at the point of inclusion.
-
- An include directive must appear on its own line in the input. It has the
- form:
-
- @include "filename"
-
- Any backslashes or double quotes in the filename must be escaped as '\\' and
- '\"', respectively."
- From libconfig's documentation
-
-So each file that is included is actually inside each one of the main
-configuration files and thus a change in the first will be a change in the
-latter.
-Note: the @include directive is read by the server executable, so any path
-should be from were it is and NOT from where the main configuration file is!
-
-- How do I stop using global configurations?
-
-To stop using global configurations is very simple, all you have to do is copy
-the contents that are inside the global configuration file and put them
-_exactly_ where the include directive were in the main configuration file.
-
-E.g.
- Find in any file:
- @include "conf/global/sql_connection.conf"
- Replace it with:
- sql_connection: {
- // [INTER] You can specify the codepage to use in your mySQL tables here.
- // (Note that this feature requires MySQL 4.1+)
- //default_codepage: ""
-
- // [LOGIN] Is `userid` in account_db case sensitive?
- //case_sensitive: false
-
- // 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)"
- // and you have localhost, switch it to 127.0.0.1
- db_hostname: "127.0.0.1"
- db_port: 3306
- db_username: "ragnarok"
- db_password: "ragnarok"
- db_database: "ragnarok"
- //codepage:""
- }
- If the main configuration file belongs to the map server, for instance, you
- don't need to include default_codepage and case_sensitive.
diff --git a/doc/item_bonus.md b/doc/item_bonus.md
new file mode 100644
index 000000000..b9fc17ee4
--- /dev/null
+++ b/doc/item_bonus.md
@@ -0,0 +1,436 @@
+# Hercules Item Bonuses List
+
+<!--
+# Copyright
+> This file is part of Hercules.
+> http://herc.ws - http://github.com/HerculesWS/Hercules
+>
+> Copyright (C) 2012-2018 Hercules Dev Team
+> Copyright (C) Athena Dev Teams
+>
+> Hercules 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 3 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, see <http://www.gnu.org/licenses/>.
+-->
+
+## Description
+List of script instructions used in item bonuses, mainly `bonus`/`bonus2`/`bonus3`/`bonus4`/`bonus5` arguments and etc.
+
+
+## Constants
+This table contains all available constants referenced in the `bonus` commands.
+
+Race (`r`) | Status effect (`eff`) | Element (`e`) | Monster Race (`mr`) | Size (`s`)
+:----------------- | :-------------------- | :------------- | :------------------ | :-----------
+RC_Formless | Eff_Stone | Ele_Neutral | RC2_Goblin | Size_Small
+RC_Undead | Eff_Freeze | Ele_Water | RC2_Kobold | Size_Medium
+RC_Brute | Eff_Stun | Ele_Earth | RC2_Orc | Size_Large
+RC_Plant | Eff_Sleep | Ele_Fire | RC2_Golem |
+RC_Insect | Eff_Poison | Ele_Wind | RC2_Guardian |
+RC_Fish | Eff_Curse | Ele_Poison | RC2_Ninja |
+RC_Demon | Eff_Silence | Ele_Holy | RC2_Scaraba |
+RC_DemiHuman | Eff_Confusion | Ele_Dark | RC2_Turtle |
+RC_Angel | Eff_Blind | Ele_Ghost | |
+RC_Dragon | Eff_Bleeding | Ele_Undead | |
+RC_Player | Eff_DPoison | Ele_All | |
+RC_Boss | Eff_Fear | | |
+RC_NonBoss | Eff_Cold | | |
+RC_NonDemiHuman | Eff_Burning | | |
+RC_NonPlayer | Eff_Deepsleep | | |
+RC_DemiPlayer | | | |
+RC_NonDemiPlayer | | | |
+RC_All | | | |
+
+
+### Trigger criteria (`bf`)
+ Type 1 | Description
+:----------------- | :------------------------------
+`BF_WEAPON` | Trigger on weapon skills
+`BF_MAGIC` | Trigger on magic skills
+`BF_MISC` | Trigger on misc skills
+
+(Default: `BF_WEAPON`)
+
+ Type 2 | Description
+:----------------- | :------------------------------
+`BF_SHORT` | Trigger on melee attacks
+`BF_LONG` | Trigger on ranged attacks
+
+(Default: `BF_SHORT`+`BF_LONG`)
+
+ Type 3 | Description
+:----------------- | :------------------------------
+`BF_NORMAL` | Trigger on normal attacks
+`BF_SKILL` | Trigger on skills
+
+(Default: `BF_SKILL` if type is `BF_MISC` or `BF_MAGIC`, `BF_NORMAL` if type is `BF_WEAPON`)
+
+
+### Attack Trigger Criteria (`abf`)
+ Type 1 | Description
+:----------------- | :------------------------------
+`ATF_SELF` | Trigger on self
+`ATF_TARGET` | Trigger on target
+
+(Default: `ATF_TARGET`)
+
+ Type 2 | Description
+:----------------- | :------------------------------
+`ATF_SHORT` | Trigger on melee attack
+`ATF_LONG` | Trigger on ranged attack
+
+(Default: `ATF_SHORT`+`ATF_LONG`)
+
+ Type 3 | Description
+:----------------- | :------------------------------
+`ATF_WEAPON` | Trigger on Weapon Skills
+`ATF_MAGIC` | Trigger on magic attacks
+`ATF_MISC` | Trigger on misc skills
+`ATF_SKILL` | Trigger on skill attack
+
+(Default: `ATF_WEAPON`)
+
+ Type 4 | Description
+:----------------- | :------------------------------
+`ATF_SELF` | Trigger effect on self.
+`ATF_TARGET` | Trigger effect on target (default)
+`ATF_SHORT` | Trigger on melee attacks
+`ATF_LONG` | Trigger in ranged attacks (default: trigger on all attacks)
+
+(Default: `ATF_TARGET`)
+
+ Other values | Remarks
+:----------------- | :------------------------------
+Skill (`sk`) | see `db/(pre-)re/skill_db.txt` (NOTE: Both skill IDs and names, with and without quotes, are supported.)
+Monster id (`mid`) | see `db/(pre-)re/mob_db.txt`
+Item id (`id`) | see `db/(pre-)re/item_db.conf`
+Item chain (`ic`) | see `db/(pre-)re/item_chain.conf` (Only Constants)
+Item group (`ig`) | see `db/(pre-)re/item_group.conf` (ItemID)
+Weapon type (`w`) | see `doc/item_db.txt` -> View -> Weapons
+Class (`c`) | see `db/(pre-re)/mob_db.txt` -> For Players, `c` = JobID
+
+---------------
+
+
+## Bonuses
+---------------
+The format of bonuses listed in this file is as follows:
+ * 1. Basic Bonuses
+ * 2. Extended Bonuses
+ * 3. Group-specific Bonuses
+ * 4. Status-related Bonuses
+ * 5. AutoSpell Bonuses
+ * 6. Misc Bonuses
+
+
+---------------
+
+### 1. Basic Bonuses
+
+Base Stats | Description
+:-------------------------------- | :-------------------------
+bonus bStr,`n`; | STR + `n`
+bonus bAgi,`n`; | AGI + `n`
+bonus bVit,`n`; | VIT + `n`
+bonus bInt,`n`; | INT + `n`
+bonus bDex,`n`; | DEX + `n`
+bonus bLuk,`n`; | LUK + `n`
+bonus bAgiVit,`n`; | AGI + `n`, VIT + `n`
+bonus bAgiDexStr,`n`; | STR + `n`, AGI + `n`, DEX + `n`
+bonus bAllStats,`n`; | STR + `n`, AGI + `n`, VIT + `n`, INT + `n`, DEX + `n`, LUK + `n`
+
+HP/SP | Description
+:-------------------------------- | :-------------------------
+bonus bMaxHP,`n`; | MaxHP + `n`
+bonus bMaxHPrate,`n`; | MaxHP + `n`%
+bonus bMaxSP,`n`; | MaxSP + `n`
+bonus bMaxSPrate,`n`; | MaxSP + `n`%
+
+Attack/Def | Description
+:-------------------------------- | :-------------------------
+bonus bAtk,`n`; | ATK + `n`
+bonus bAtk2,`n`; | ATK2 + `n`
+bonus bAtkRate,`n`; | Attack Power + `n`%
+bonus bBaseAtk,`n`; | Basic Attack Power + `n`
+bonus bDef,`n`; | Equipment DEF + `n`
+bonus bDef2,`n`; | VIT based DEF + `n`
+bonus bDefRate,`n`; | Equipment DEF + `n`%
+bonus bDef2Rate,`n`; | VIT based DEF + `n`%
+
+Magic Attack/Def | Description
+:-------------------------------- | :-------------------------
+bonus bMatk,`n`; | Magical attack power + `n`
+bonus bMatkRate,`n`; | Magical attack power + `n`%
+bonus bMdef,`n`; | Equipment MDEF + `n`
+bonus bMdef2,`n`; | INT based MDEF + `n`
+bonus bMdefRate,`n`; | Equipment MDEF + `n`%
+bonus bMdef2Rate,`n`; | INT based MDEF + `n`%
+
+Other Stats | Description
+:-------------------------------- | :-------------------------
+bonus bHit,`n`; | Hit + `n`
+bonus bHitRate,`n`; | Hit + `n`%
+bonus bCritical,`n`; | Critical + `n`
+bonus bCriticalRate,`n`; | Critical + `n`%
+bonus bFlee,`n`; | Flee + `n`
+bonus bFleeRate,`n`; | Flee + `n`%
+bonus bFlee2,`n`; | Perfect Dodge + `n`
+bonus bFlee2Rate,`n`; | Perfect Dodge + `n`%
+bonus bPerfectHitRate,`n`; | On-target impact attack probability `n`% (only the highest among all is applied)
+bonus bPerfectHitAddRate,`n`; | On-target impact attack probability + `n`%
+bonus bSpeedRate,`n`; | Moving speed + `n`% (only the highest among all is applied)
+bonus bSpeedAddRate,`n`; | Moving speed + `n`%
+bonus bAspd,`n`; | Attack speed + `n`
+bonus bAspdRate,`n`; | Attack speed + `n`%
+bonus bAtkRange,`n`; | Attack range + `n`
+bonus bAddMaxWeight,`n`; | MaxWeight + `n` (in units of 0.1)
+
+
+---------------
+
+### 2. Extended Bonuses
+
+HP | Description
+:-------------------------------- | :-------------------------
+bonus bHPrecovRate,`n`; | Natural HP recovery ratio + `n`%
+bonus2 bHPRegenRate,`n`,`t`; | Gain `n` HP every `t` milliseconds
+bonus2 bHPLossRate,`n`,`t`; | Lose `n` HP every `t` millisecond
+
+SP | Description
+:-------------------------------- | :-------------------------
+bonus bSPrecovRate,`n`; | Natural SP recovery ratio + `n`%
+bonus2 bSPRegenRate,`n`,`t`; | Gain `n` SP every `t` milliseconds
+bonus2 bSPLossRate,`n`,`t`; | Lose `n` SP every `t` milliseconds
+bonus bUseSPrate,`n`; | SP consumption + `n`%
+bonus2 bSkillUseSP,`sk`,`n`; | Reduces SP consumption of skill `sk` by n.
+bonus2 bSkillUseSPrate,`sk`,`n`; | Reduces SP consumption of skill `sk` by `n`%
+bonus bNoRegen,`x`; | Stops regeneration for `x` (`x`: 1=HP, 2=SP)
+
+Attack/Def | Description
+:-------------------------------- | :-------------------------
+bonus bNearAtkDef,`n`; | Adds `n`% damage reduction against melee physical attacks
+bonus bLongAtkDef,`n`; | Adds `n`% damage reduction against ranged physical attacks
+bonus bMagicAtkDef,`n`; | Adds `n`% damage reduction against magical attacks
+bonus bMiscAtkDef,`n`; | Adds `n`% damage reduction against MISC attacks (traps, falcon, ...)
+bonus bCriticalDef,`n`; | Decreases Chance of being hit by critical by `n`%
+bonus2 bSkillAtk,`sk`,`n`; | Increase damage of skill `sk` by `n`%
+bonus2 bWeaponAtk,`w`,`n`; | Adds `n` ATK when weapon of type `w` is equipped
+bonus2 bWeaponAtkRate,`w`,`n`; | Adds `n`% damage to weapon attacks when weapon of type `w` is equipped
+bonus bLongAtkRate,`n`; | Increases damage of ranged attacks by `n`%
+bonus bCritAtkRate,`n`; | Increase critical damage by +`n`%
+bonus bNoWeaponDamage,`n`; | Prevents from receiving `n`% physical damage
+bonus bNoMagicDamage,`n`; | Prevents from receiving `n`% magical effect (Attack, Healing, Support spells are all blocked)
+bonus bNoMiscDamage,`n`; | Adds `n`% reduction to received misc damage
+
+Heal | Description
+:-------------------------------- | :-------------------------
+bonus bHealPower,`n`; | Increase heal amount of all heal skills used by player on self by `n`%
+bonus bHealPower2,`n`; | Increase heal amount if you are healed by any skills of others by `n`%
+bonus2 bSkillHeal,`sk`,`n`; | Increase heal amount of skill `sk` by `n`%
+bonus2 bSkillHeal2,`sk`,`n`; | Increase heal amount if you are healed by skill `sk` by `n`%
+bonus bAddItemHealRate,`n`; | Increases HP recovered by `n`% for healing items.
+bonus2 bAddItemHealRate,`id`,`n`; | Increases HP recovered by `n`% for item `id`/`ig`
+
+Skill Cast | Description
+:---------------------------------- | :-------------------------
+bonus bCastrate,`n`; | Skill casting time rate + `n`%
+bonus2 bCastrate,`sk`,`n`; | Adjust casting time of skill `sk` by `n`%
+bonus bFixedCastrate,`n`; | Increases fixed cast time of all skills by `n`%
+bonus2 bFixedCastrate,`s`,`n`; | Increases fixed cast time of skill `sk` by `n`%
+bonus bFixedCast,`t`; | Increases fixed cast time of all skills by `t` milliseconds
+bonus2 bSkillFixedCast,`sk`,`t`; | Increases fixed cast time of skill `sk` by `t` milliseconds
+bonus bVariableCastrate,`n`; | Increases variable cast time of all skills by `n`%
+bonus2 bVariableCastrate,`sk`,`n`; | Increases variable cast time of skill `sk` by `n`%
+bonus bVariableCast,`t`; | Increases variable cast time of all skills by `t` milliseconds
+bonus2 bSkillVariableCast,`sk`,`t`; | Increases variable cast time of skill `sk` by `t` milliseconds
+bonus bNoCastCancel,`n`; | Prevents casting from being interrupted when hit (does not work in GvG | `n` is meaningless)
+bonus bNoCastCancel2,`n`; | Prevents casting from being interrupted when hit (works even in GvG | `n` is meaningless)
+bonus bDelayrate,`n`; | Increases skill delay by `n`%
+bonus2 bSkillCooldown,`sk`,`t`; | Increases cooldown of skill `sk` by `t` milliseconds
+
+
+---------------
+
+### 3. Group-specific Bonuses
+
+Damage Modifiers | Description
+:----------------------------------- | :-------------------------
+bonus2 bAddSize,`s`,`n`; | +n% Physical damage against size `s`
+bonus2 bMagicAddSize,`s`,`n`; | +n% Magical damage against size `s`
+bonus2 bSubSize,`s`,`n`; | +n% Damage reduction against size `s`
+bonus2 bAddRaceTolerance,`r`,`n`; | +n% tolerance against race `r` (Renewal Only)
+bonus2 bAddRace,`r`,`n`; | +n% Physical damage against race `r`
+bonus2 bMagicAddRace,`n`,`x`; | +n% Magical damage against race `r`
+bonus2 bSubRace,`r`,`n`; | +n% Damage reduction against race `r`
+bonus2 bAddRace2,`mr`,`n`; | +n% Damage Against monster race `mr`
+bonus2 bSubRace2,`mr`,`n`; | +n% Damage reduction against monster race `mr`
+bonus2 bAddEle,`e`,`n`; | +n% Physical damage against element `e`
+bonus2 bMagicAddEle,`e`,`n`; | +n% Magical damage against element `e`
+bonus2 bMagicAtkEle,`e`,`n`; | Increases damage of element `e` magic by `n`%
+bonus3 bAddEle,`e`,`n`,`bf`; | +n% physical damage against element `e`
+bonus2 bSubEle,`e`,`n`; | +n% Damage reduction against element `e`
+bonus3 bSubEle,`e`,`n`,`bf`; | +n% Damage reduction against element `e`.
+bonus2 bAddDamageClass,`c`,`x`; | +n% extra physical damage against monsters of class `c`
+bonus2 bAddMagicDamageClass,`c`,`x`; | +n% extra magical damage against monsters of class `c`
+bonus2 bAddDefClass,`c`,`x`; | +n% physical damage reduction against monsters of class `c`
+bonus2 bAddMDefClass,`c`,`x`; | +n% magical damage reduction against monsters of class `c`
+bonus2 bCriticalAddRace,`r`,`n`; | +`n` Critical Against race `r`
+
+Attack/Def | Description
+:------------------------------------- | :-------------------------
+bonus bAtkEle,`e`; | Gives the player's attacks element `e`
+bonus bDefEle,`e`; | Gives the player's defense element `e`
+bonus bDefRatioAtkEle,`e`; | Deals more damage to enemies of element `e` with higher defense
+bonus bDefRatioAtkRace,`r`; | Deals more damage to enemies of race `r` with higher defense
+bonus4 bSetDefRace,`r`,`n`,`t`,`y`; | Set DEF to `y` of an enemy of race `r` at `n`/100% for `t` milliseconds with normal attack
+bonus4 bSetMDefRace,`r`,`n`,`t`,`y`; | Set MDEF to `y` of an enemy of race `r` at `n`/100% for `t` milliseconds with normal attack
+
+Ignore Def | Description
+:-------------------------------- | :-------------------------
+bonus bIgnoreDefRace,`r`; | Disregard DEF against enemies of race `r`
+bonus bIgnoreMDefRace,`r`; | Disregard MDEF against enemies of race `r`
+bonus bIgnoreDefEle,`e`; | Disregard DEF against enemies of element `e`
+bonus bIgnoreMDefEle,`e`; | Disregard MDEF against enemies of element `e`
+bonus2 bIgnoreDefRate,`r`,`n`; | Disregard `n`% of the target's DEF if the target belongs to race `r`
+bonus2 bIgnoreMdefRate,`r`,`n`; | Disregard `n`% of the target's MDEF if the target belongs to race `r`
+bonus bIgnoreMdefRate,`n`; | Disregard `n`% of the target's MDEF
+
+Experience | Description
+:-------------------------------- | :-------------------------
+bonus2 bExpAddRace,`r`,`n`; | +n% Experience from enemies of race `r`
+
+
+---------------
+
+### 4. Status-related Bonuses
+
+Status-related Bonuses | Description
+:------------------------------------------- | :-------------------------
+bonus2 bResEff,`e`,`n`; | Adds a `n`/100% tolerance to effect `e`
+bonus2 bAddEff,`eff`,`n`; | Adds a `n`/100% chance to cause effect `eff` to the target when attacking
+bonus2 bAddEff2,`eff`,`n`; | Adds a `n`/100% chance to cause effect `eff` on self when attacking.
+bonus3 bAddEff,`eff`,`n`,`abf`; | Adds a `n`/100% chance to cause effect `eff` to the target when attacking for target abf
+bonus4 bAddEff,`eff`,`n`,`abf`,`t`; | Adds a `n`/100% chance to cause effect `eff` to the target when attacking for target `abf` for `t` milliseconds <br/> (Note:The effect can't be avoided nor its duration reduced. Duration: 0-65535)
+bonus3 bAddEffOnSkill,`sk`,`eff`,`n`; | Adds a `n`/100% chance to cause effect `eff` on enemy when using skill `sk`
+bonus4 bAddEffOnSkill,`sk`,`eff`,`n`,`abf`; | Adds a `n`/100% chance to cause effect `eff` when using skill `sk`
+bonus2 bAddEffWhenHit,`eff`,`n`; | `n`/100% chance to cause effect `eff` to the enemy when being hit by physical damage
+bonus3 bAddEffWhenHit,`eff`,`n`,`abf`; | Adds a `n`/100% chance to cause effect `eff` to the enemy when being hit by physical damage
+bonus2 bWeaponComaRace,`r`,`n`; | Adds a `n`/100% chance to cause Coma when attacking a monster of race `r` with a weapon attack
+bonus2 bWeaponComaEle,`e`,`n`; | Adds a `n`/100% chance to cause Coma when attacking a monster of element `e` with weapon attack
+
+
+---------------
+
+### 5. AutoSpell Bonuses
+
+NOTES:
+ - For all AutoSpell bonuses, target must be within the spell's range to go off.
+ - By default, AutoSpell skills are casted on target unless it is a self or support skill (inf = 4/16).
+
+AutoSpell Bonuses | Description
+:------------------------------------------------- | :-------------------------
+bonus4 bAutoSpellOnSkill,`sk`,`x`,`y`,`n`; | Adds a `n`/10% chance to autospell skill `x` at level `y` when using skill `sk`
+bonus5 bAutoSpellOnSkill,`sk`,`x`,`y`,`n`,`i`; | Adds a `n`/10% chance to autospell skill `x` at level `y` when using skill `sk` <br/> i: <br/> Flags (bitfield)<br/> &1: Forces the skill to be casted on self, rather than on the target of skill `sk`<br/> &2: Random skill level between 1 and l is chosen.
+bonus4 bAutoSpell,`sk`,`y`,`n`,`i`; | `n`/10% chance to cast skill `sk` of level `y` when attacking
+bonus5 bAutoSpell,`sk`,`y`,`n`,`bf`,`i`; | `n`/10% chance to cast skill `sk` of level `y` when attacking
+bonus4 bAutoSpellWhenHit,`sk`,`y`,`n`,`i`; | `n`/10% chance to cast skill `sk` of level `y` when being hit by a direct attack
+bonus5 bAutoSpellWhenHit,`sk`,`y`,`n`,`bf`,`i`; | `n`/10% chance to cast skill `sk` of level `y` when being hit by a direct attack <br/>i: <br/>0 = cast on self <br/>1 = cast on enemy, not on self <br/>2 = use random skill lv in [1..y] <br/>3 = 1+2 (random lv on enemy)
+bonus3 bAutoSpellWhenHit,`sk`,`x`,`n`; | `n`/10% chance to cast skill `sk` of level `x` on attacker when being hit by a direct attack
+bonus3 bAutoSpell,`sk`,`x`,`n`; | Auto Spell casting on attack of spell `sk` at level `x` with `n`/10% chance
+
+
+---------------
+
+### 6. Misc Bonuses
+
+HP/SP Drain | Description
+:------------------------------------- | :-------------------------
+bonus bHPDrainValue,`n`; | Heals +`n` HP with weapon attack.
+bonus2 bHPDrainValue,`n`,`x`; | Heals +`n` HP with weapon attack. When `x` is non-zero, the HP is drained instead.
+bonus2 bHPDrainRate,`n`,`x`; | `n`/10% probability to drain `x`% HP when attacking
+bonus bSPDrainValue,`n`; | When hitting a monster by physical attack, you gain `n` SP
+bonus2 bSPDrainRate,`n`,`x`; | `n`/10% probability to drain `x`% SP when attacking
+bonus2 bSPDrainValue,`n`,`x`; | When hitting a monster by physical attack <br/> x: <br/> 0: Gain `n` SP <br/> 1: drain `n` SP from target
+bonus3 bSPDrainRate,`n`,`x`,`y`; | When attacking there is a `n`/10% chance to either gain SP equivalent to `x`% of damage dealt, OR drain the amount of sp from the enemy. <br/> y: <br/> 0: Gain SP <br/> 1: Drain SP from target
+bonus2 bHPDrainValueRace,`r`,`n`; | Heals +`n` HP when attacking a monster of race `r` with weapon attack.
+bonus2 bSPDrainValueRace,`r`,`n`; | Heals +`n` SP when attacking a monster of race `r` with weapon attack.
+bonus3 bHPDrainRateRace,`r`,`n`,`x`; | Adds a `n`/10% chance to receive `x`% of damage dealt as HP from a monster of race `r` with weapon attack.
+bonus3 bSPDrainRateRace,`r`,`n`,`x`; | Adds a `n`/10% chance to receive `x`% of damage dealt as SP from a monster of race `r` with weapon attack.
+
+HP/SP Vanish | Description
+:------------------------------------- | :-------------------------
+bonus2 bHPVanishRate,`n`,`x`; | Add the (`n`/10)% chance of decreasing enemy HP amount by `x`% when attacking
+bonus2 bSPVanishRate,`n`,`x`; | Add the (`n`/10)% chance of decreasing enemy SP amount by `x`% when attacking
+bonus3 bHPVanishRate,`n`,`x`,`bf`; | Add the (`n`/10)% chance of decreasing enemy HP amount by `x`% when attacking for criteria `bf`
+bonus3 bSPVanishRate,`n`,`x`,`bf`; | Add the (`n`/10)% chance of decreasing enemy SP amount by `x`% when attacking for criteria `bf`
+
+HP/SP Gain | Description
+:------------------------------------- | :-------------------------
+bonus bHPGainValue,`n`; | When killing a monster by physical attack, you gain `n` HP
+bonus bSPGainValue,`n`; | When killing a monster by physical attack, you gain `n` SP
+bonus bMagicHPGainValue,`n`; | Gains +`n` HP when killing an enemy with magic attack
+bonus bMagicSPGainValue,`n`; | Gains +`n` SP when killing an enemy with magic attack
+bonus2 bHPGainRaceAttack,`r`,`n`; | Heals `n` HP when attacking race `r` on every hit
+bonus2 bSPGainRaceAttack,`r`,`n`; | Heals `n` SP when attacking race `r` on every hit
+bonus2 bSPGainRace,`r`,`n`; | When killing a monster of race `r` by physical attack gain `n` SP
+
+Damage return | Description
+:------------------------------------- | :-------------------------
+bonus bMagicDamageReturn,`n`; | Adds a `n`% chance to reflect targetted magic spells back to the enemy that caused it
+bonus bShortWeaponDamageReturn,`n`; | Reflects `n`% of received melee damage back to the enemy that caused it
+bonus bLongWeaponDamageReturn,`n`; | Reflects `n`% of received ranged damage back to the enemy that caused it
+
+NOTE:
+ - `n` is meaningless if not mentioned.
+
+Strip/Break equipment | Description
+:--------------------------------------- | :-------------------------
+bonus bUnstripable,`n`; | Equipment cannot be taken off via strip skills
+bonus bUnstripableWeapon,`n`; | Weapon cannot be taken off via Strip skills
+bonus bUnstripableArmor,`n`; | Armor cannot be taken off via Strip skills
+bonus bUnstripableHelm,`n`; | Helm cannot be taken off via Strip skills
+bonus bUnstripableShield,`n`; | Shield cannot be taken off via Strip skills
+bonus bUnbreakable,`n`; | Reduces the break chance of all equipped equipment by `n`%.
+bonus bUnbreakableGarment,`n`; | Garment cannot be damaged/broken by any means
+bonus bUnbreakableWeapon,`n`; | Weapon cannot be damaged/broken by any means
+bonus bUnbreakableArmor,`n`; | Armor cannot be damaged/broken by any means
+bonus bUnbreakableHelm,`n`; | Helm cannot be damaged/broken by any means
+bonus bUnbreakableShield,`n`; | Shield cannot be damaged/broken by any means
+bonus bUnbreakableShoes,`n`; | Shoes cannot be damaged/broken by any means
+bonus bBreakWeaponRate,`n`; | Adds a `n`/100% chance to break enemy's weapon while attacking (Stackable)
+bonus bBreakArmorRate,`n`; | Adds a `n`/100% chance to break enemy's armor while attacking (Stackable)
+
+NOTE:
+ - `n` is meaningless if not mentioned.
+
+Monster Related | Description
+:----------------------------------------- | :-------------------------
+bonus3 bAddClassDropItem,`id`,`c`,`n`; | Adds a `n`/100% chance of dropping item id when killing monster mid
+bonus2 bAddMonsterDropItem,`id`,`n`; | Adds a `n`/100% chance for item id to be dropped, when killing any monster.
+bonus3 bAddMonsterDropItem,`id`,`r`,`n`; | Adds a `n`/100% chance for item id to be dropped, when killing any monster of race `r`. <br/> If `n` is negative value, then it's a part of formula <br/> `chance = -y*(killed_mob_level/10)+1`
+bonus bAddMonsterDropChainItem,`ic`; | Able to get Item of chain `ic` when you kill a monster
+bonus2 bAddMonsterDropChainItem,`ic`,`r`; | Able to get item of chain `ic` when you kill a monster of race `r`
+bonus2 bGetZenyNum,`x`,`n`; | When killing a monster, there is a `n`% chance of gaining 1~x zeny (only the highest among all is applied).
+bonus2 bAddGetZenyNum,`x`,`n`; | When killing a monster, there is a `n`% chance of gaining 1~x zeny (Stackable) <br/> x: <br/> < 0: Max Zeny gain is `(-x*monster_level)`
+
+Misc effects | Description
+:------------------------------------- | :-------------------------
+skill i,`n`; | Gives skill #i at level n
+bonus bDoubleRate,`n`; | Double Attack probability +n% (works with all weapons | only the highest among all is applied)
+bonus bDoubleAddRate,`n`; | Double Attack probability +n% (works with all weapons)
+bonus bSplashRange,`n`; | Splash attack radius +`n` (highest is applied)
+bonus bSplashAddRange,`n`; | Splash attack radius + `n` (e.g. `n`=1 makes a `3*3` cells area, `n`=2 a `5*5` area, etc) <br/> `n`: <br/> 1: 3*3 Area <br/> 2: 5*5 Area <br/> ...
+bonus bClassChange,`n`; | Gives a `n`/100% chance to change the attacked monster's class with normal attack.
+bonus bAddStealRate,`n`; | `n`/100% increase to Steal skill success chance
+bonus bRestartFullRecover,`n`; | When reviving, HP and SP are fully healed
+bonus bNoSizeFix,`n`; | The attack revision with the size of the monster is not received
+bonus bNoGemStone,`n`; | Skills requiring Gemstones do no require them (Hocus Pocus will still require 1 Yellow Gemstone)
+bonus bIntravision,`n`; | Always see Hiding and Cloaking players/mobs <br/> `n`: is meaningless
+bonus2 bAddSkillBlow,`sk`,`n`; | Knockbacks the target by `n` cells when using skill `sk`
+bonus bNoKnockback,`n`; | Character is no longer knocked back by enemy skills with such effect (`n` is meaningless)
+bonus bPerfectHide,`n`; | Hidden/cloaked character is no longer detected by monsters with 'detector' mode (`n` is meaningless).
+
diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt
deleted file mode 100644
index dd176d919..000000000
--- a/doc/item_bonus.txt
+++ /dev/null
@@ -1,444 +0,0 @@
-//===== Hercules Documentation ===============================
-//= Hercules Item Bonuses List
-//===== By: ==================================================
-//= Hercules Dev Team
-//===== Current Version: =====================================
-//= 20150624
-//===== Description: =========================================
-//= List of script instructions used in item bonuses,
-//= mainly bonus/bonus2/bonus3/bonus4/bonus5 arguments.
-//============================================================
-
-Constants
----------
-This list contains all available constants referenced in the 'bonus' commands.
-
-* Status effect (eff)
- Eff_Stone, Eff_Freeze, Eff_Stun, Eff_Sleep, Eff_Poison, Eff_Curse, Eff_Silence,
- Eff_Confusion, Eff_Blind, Eff_Bleeding, Eff_DPoison, Eff_Fear, Eff_Cold,
- Eff_Burning, Eff_Deepsleep
-
-* Element (e)
- Ele_Neutral, Ele_Water, Ele_Earth, Ele_Fire, Ele_Wind, Ele_Poison,
- Ele_Holy, Ele_Dark, Ele_Ghost, Ele_Undead, Ele_All
-
-* Race (r)
- RC_Formless, RC_Undead, RC_Brute, RC_Plant, RC_Insect, RC_Fish,
- RC_Demon, RC_DemiHuman, RC_Angel, RC_Dragon, RC_Player, RC_Boss,
- RC_NonBoss, RC_NonDemiHuman, RC_NonPlayer, RC_DemiPlayer,
- RC_NonDemiPlayer, RC_All
-
-* Monster Race (mr)
- RC2_Goblin, RC2_Kobold, RC2_Orc, RC2_Golem, RC2_Guardian, RC2_Ninja,
- RC2_Scaraba, RC2_Turtle
-
-* Size (s)
- Size_Small, Size_Medium, Size_Large
-
-* Trigger criteria (bf)
- BF_WEAPON: Trigger on weapon skills
- BF_MAGIC: Trigger on magic skills
- BF_MISC: Trigger on misc skills
- (Default: BF_WEAPON)
-
- BF_SHORT: Trigger on melee attacks
- BF_LONG: Trigger on ranged attacks
- (Default: BF_SHORT+BF_LONG)
-
- BF_NORMAL: Trigger on normal attacks
- BF_SKILL: Trigger on skills
- (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON)
-
-* Attack Trigger Criteria (abf)
- ATF_SELF: Trigger on self
- ATF_TARGET: Trigger on target
- (Default: ATF_TARGET)
-
- ATF_SHORT: Trigger on melee attack
- ATF_LONG: Trigger on ranged attack
- (Default: ATF_SHORT+ATF_LONG)
-
- ATF_WEAPON: Trigger on Weapon Skills
- ATF_MAGIC: Trigger on magic attacks
- ATF_MISC: Trigger on misc skills
- ATF_SKILL: Trigger on skill attack
- (Default: ATF_WEAPON)
-
-ATF_SELF: Trigger effect on self.
- ATF_TARGET: Trigger effect on target (default)
- ATF_SHORT: Trigger on melee attacks
- ATF_LONG: Trigger in ranged attacks (default: trigger on all attacks)
-* Other values:
- Skill (sk): see 'db/(pre-)re/skill_db.txt' (NOTE: Both skill IDs and names, with and without quotes, are supported.)
- Monster id (mid): see 'db/(pre-)re/mob_db.txt'
- Item id (id): see 'db/(pre-)re/item_db.conf'
- Item chain (ic): see 'db/(pre-)re/item_chain.conf' (Only Constants)
- Item group (ig): see 'db/(pre-)re/item_group.conf' (ItemID)
- Weapon type (w): see 'doc/item_db.txt' -> View -> Weapons
- Class (c): see 'db/(pre-re)/mob_db.txt' -> For Players, c = JobID
-
-Bonuses
--------
-The format of bonuses listed in this file is as follows:
- 1. Basic Bonuses
- 2. Extended Bonuses
- 3. Group-specific Bonuses
- 4. Status-related Bonuses
- 5. AutoSpell Bonuses
- 6. Misc Bonuses
-
-====================
-| 1. Basic Bonuses |
-====================
-
-Base Stats
-----------
-bonus bStr,n; STR + n
-bonus bAgi,n; AGI + n
-bonus bVit,n; VIT + n
-bonus bInt,n; INT + n
-bonus bDex,n; DEX + n
-bonus bLuk,n; LUK + n
-bonus bAgiVit,n; AGI + n, VIT + n
-bonus bAgiDexStr,n; STR + n, AGI + n, DEX + n
-bonus bAllStats,n; STR + n, AGI + n, VIT + n, INT + n, DEX + n, LUK + n
-
-HP/SP
------
-bonus bMaxHP,n; MaxHP + n
-bonus bMaxHPrate,n; MaxHP + n%
-bonus bMaxSP,n; MaxSP + n
-bonus bMaxSPrate,n; MaxSP + n%
-
-Attack/Def
-----------
-bonus bAtk,n; ATK + n
-bonus bAtk2,n; ATK2 + n
-bonus bAtkRate,n; Attack Power + n%
-bonus bBaseAtk,n; Basic Attack Power + n
-bonus bDef,n; Equipment DEF + n
-bonus bDef2,n; VIT based DEF + n
-bonus bDefRate,n; Equipment DEF + n%
-bonus bDef2Rate,n; VIT based DEF + n%
-
-Magic Attack/Def
-----------------
-bonus bMatk,n; Magical attack power + n
-bonus bMatkRate,n; Magical attack power + n%
-bonus bMdef,n; Equipment MDEF + n
-bonus bMdef2,n; INT based MDEF + n
-bonus bMdefRate,n; Equipment MDEF + n%
-bonus bMdef2Rate,n; INT based MDEF + n%
-
-Other Stats
------------
-bonus bHit,n; Hit + n
-bonus bHitRate,n; Hit + n%
-bonus bCritical,n; Critical + n
-bonus bCriticalRate,n; Critical + n%
-bonus bFlee,n; Flee + n
-bonus bFleeRate,n; Flee + n%
-bonus bFlee2,n; Perfect Dodge + n
-bonus bFlee2Rate,n; Perfect Dodge + n%
-bonus bPerfectHitRate,n; On-target impact attack probability n% (only the highest among all is applied)
-bonus bPerfectHitAddRate,n; On-target impact attack probability + n%
-bonus bSpeedRate,n; Moving speed + n% (only the highest among all is applied)
-bonus bSpeedAddRate,n; Moving speed + n%
-bonus bAspd,n; Attack speed + n
-bonus bAspdRate,n; Attack speed + n%
-bonus bAtkRange,n; Attack range + n
-bonus bAddMaxWeight,n; MaxWeight + n (in units of 0.1)
-
-=======================
-| 2. Extended Bonuses |
-=======================
-
-HP
---
-bonus bHPrecovRate,n; Natural HP recovery ratio + n%
-bonus2 bHPRegenRate,n,t; Gain n HP every t milliseconds
-bonus2 bHPLossRate,n,t; Lose n HP every t millisecond
-
-SP
---
-bonus bSPrecovRate,n; Natural SP recovery ratio + n%
-bonus2 bSPRegenRate,n,t; Gain n SP every t milliseconds
-bonus2 bSPLossRate,n,t; Lose n SP every t milliseconds
-bonus bUseSPrate,n; SP consumption + n%
-bonus2 bSkillUseSP,sk,n; Reduces SP consumption of skill sk by n.
-bonus2 bSkillUseSPrate,sk,n; Reduces SP consumption of skill sk by n%
-bonus bNoRegen,x; Stops regeneration for x (x: 1=HP, 2=SP)
-
-Attack/Def
-----------
-bonus bNearAtkDef,n; Adds n% damage reduction against melee physical attacks
-bonus bLongAtkDef,n; Adds n% damage reduction against ranged physical attacks
-bonus bMagicAtkDef,n; Adds n% damage reduction against magical attacks
-bonus bMiscAtkDef,n; Adds n% damage reduction against MISC attacks (traps, falcon, ...)
-bonus bCriticalDef,n; Decreases Chance of being hit by critical by n%
-
-bonus2 bSkillAtk,sk,n; Increase damage of skill sk by n%
-bonus2 bWeaponAtk,w,n; Adds n ATK when weapon of type w is equipped
-bonus2 bWeaponAtkRate,w,n; Adds n% damage to weapon attacks when weapon of type w is equipped
-bonus bLongAtkRate,n; Increases damage of ranged attacks by n%
-bonus bCritAtkRate,n; Increase critical damage by +n%
-
-bonus bNoWeaponDamage,n; Prevents from receiving n% physical damage
-bonus bNoMagicDamage,n; Prevents from receiving n% magical effect (Attack, Healing, Support spells are all blocked)
-bonus bNoMiscDamage,n; Adds n% reduction to received misc damage
-
-Heal
-----
-bonus bHealPower,n; Increase heal amount of all heal skills used by player on self by n%
-bonus bHealPower2,n; Increase heal amount if you are healed by any skills of others by n%
-
-bonus2 bSkillHeal,sk,n; Increase heal amount of skill sk by n%
-bonus2 bSkillHeal2,sk,n; Increase heal amount if you are healed by skill sk by n%
-
-bonus bAddItemHealRate,n; Increases HP recovered by n% for healing items.
-bonus2 bAddItemHealRate,id,n; Increases HP recovered by n% for item id/ig
-
-Skill Cast
-----------
-bonus bCastrate,n; Skill casting time rate + n%
-bonus2 bCastrate,sk,n; Adjust casting time of skill sk by n%
-
-bonus bFixedCastrate,n; Increases fixed cast time of all skills by n%
-bonus2 bFixedCastrate,s,n; Increases fixed cast time of skill sk by n%
-bonus bFixedCast,t; Increases fixed cast time of all skills by t milliseconds
-bonus2 bSkillFixedCast,sk,t; Increases fixed cast time of skill sk by t milliseconds
-
-bonus bVariableCastrate,n; Increases variable cast time of all skills by n%
-bonus2 bVariableCastrate,sk,n; Increases variable cast time of skill sk by n%
-bonus bVariableCast,t; Increases variable cast time of all skills by t milliseconds
-bonus2 bSkillVariableCast,sk,t; Increases variable cast time of skill sk by t milliseconds
-
-bonus bNoCastCancel,n; Prevents casting from being interrupted when hit (does not work in GvG | n is meaningless)
-bonus bNoCastCancel2,n; Prevents casting from being interrupted when hit (works even in GvG | n is meaningless)
-
-bonus bDelayrate,n; Increases skill delay by n%
-bonus2 bSkillCooldown,sk,t; Increases cooldown of skill sk by t milliseconds
-
-=============================
-| 3. Group-specific Bonuses |
-=============================
-
-Damage Modifiers
-----------------
-bonus2 bAddSize,s,n; +n% Physical damage against size s
-bonus2 bMagicAddSize,s,n; +n% Magical damage against size s
-bonus2 bSubSize,s,n; +n% Damage reduction against size s
-
-bonus2 bAddRaceTolerance,r,n; +n% tolerance against race r (Renewal Only)
-
-bonus2 bAddRace,r,n; +n% Physical damage against race r
-bonus2 bMagicAddRace,n,x; +n% Magical damage against race r
-bonus2 bSubRace,r,n; +n% Damage reduction against race r
-
-bonus2 bAddRace2,mr,n; +n% Damage Against monster race mr
-bonus2 bSubRace2,mr,n; +n% Damage reduction against monster race mr
-
-bonus2 bAddEle,e,n; +n% Physical damage against element e
-bonus2 bMagicAddEle,e,n; +n% Magical damage against element e
-bonus2 bMagicAtkEle,e,n; Increases damage of element e magic by n%
-bonus3 bAddEle,e,n,bf; +n% physical damage against element e
-bonus2 bSubEle,e,n; +n% Damage reduction against element e
-bonus3 bSubEle,e,n,bf; +n% Damage reduction against element e.
-
-bonus2 bAddDamageClass,c,x; +n% extra physical damage against monsters of class c
-bonus2 bAddMagicDamageClass,c,x; +n% extra magical damage against monsters of class c
-bonus2 bAddDefClass,c,x; +n% physical damage reduction against monsters of class c
-bonus2 bAddMDefClass,c,x; +n% magical damage reduction against monsters of class c
-bonus2 bCriticalAddRace,r,n; +n Critical Against race r
-
-Attack/Def
-----------
-bonus bAtkEle,e; Gives the player's attacks element e
-bonus bDefEle,e; Gives the player's defense element e
-
-bonus bDefRatioAtkEle,e; Deals more damage to enemies of element e with higher defense
-bonus bDefRatioAtkRace,r; Deals more damage to enemies of race r with higher defense
-
-bonus4 bSetDefRace,r,n,t,y; Set DEF to y of an enemy of race r at n/100% for t milliseconds with normal attack
-bonus4 bSetMDefRace,r,n,t,y; Set MDEF to y of an enemy of race r at n/100% for t milliseconds with normal attack
-
-Ignore Def
-----------
-bonus bIgnoreDefRace,r; Disregard DEF against enemies of race r
-bonus bIgnoreMDefRace,r; Disregard MDEF against enemies of race r
-
-bonus bIgnoreDefEle,e; Disregard DEF against enemies of element e
-bonus bIgnoreMDefEle,e; Disregard MDEF against enemies of element e
-
-bonus2 bIgnoreDefRate,r,n; Disregard n% of the target's DEF if the target belongs to race r
-bonus2 bIgnoreMdefRate,r,n; Disregard n% of the target's MDEF if the target belongs to race r
-
-bonus bIgnoreMdefRate,n; Disregard n% of the target's MDEF
-
-Experience
-----------
-bonus2 bExpAddRace,r,n; +n% Experience from enemies of race r
-
-=============================
-| 4. Status-related Bonuses |
-=============================
-bonus2 bResEff,e,n; Adds a n/100% tolerance to effect e
-bonus2 bAddEff,eff,n; Adds a n/100% chance to cause effect eff to the target when attacking
-bonus2 bAddEff2,eff,n; Adds a n/100% chance to cause effect eff on self when attacking.
-bonus3 bAddEff,eff,n,abf; Adds a n/100% chance to cause effect eff to the target when attacking for target abf
-bonus4 bAddEff,eff,n,abf,t; Adds a n/100% chance to cause effect eff to the target when attacking for target abf for t milliseconds
- (Note:The effect can't be avoided nor its duration reduced. Duration: 0-65535)
-bonus3 bAddEffOnSkill,sk,eff,n; Adds a n/100% chance to cause effect eff on enemy when using skill sk
-bonus4 bAddEffOnSkill,sk,eff,n,abf; Adds a n/100% chance to cause effect eff when using skill sk
-
-bonus2 bAddEffWhenHit,eff,n; n/100% chance to cause effect eff to the enemy when being hit by physical damage
-bonus3 bAddEffWhenHit,eff,n,abf; Adds a n/100% chance to cause effect eff to the enemy when being hit by physical damage
-
-bonus2 bWeaponComaRace,r,n; Adds a n/100% chance to cause Coma when attacking a monster of race r with a weapon attack
-bonus2 bWeaponComaEle,e,n; Adds a n/100% chance to cause Coma when attacking a monster of element e with weapon attack
-
-========================
-| 5. AutoSpell Bonuses |
-========================
-NOTES:
- - For all AutoSpell bonuses, target must be within the spell's range to go off.
- - By default, AutoSpell skills are casted on target unless it is a self or support skill (inf = 4/16).
-
-bonus4 bAutoSpellOnSkill,sk,x,y,n; Adds a n/10% chance to autospell skill x at level y when using skill sk
-bonus5 bAutoSpellOnSkill,sk,x,y,n,i; Adds a n/10% chance to autospell skill x at level y when using skill sk
- i: Flags (bitfield)
- &1: Forces the skill to be casted on self, rather than on the target of skill sk
- &2: Random skill level between 1 and l is chosen.
-
-bonus4 bAutoSpell,sk,y,n,i; n/10% chance to cast skill sk of level y when attacking
-bonus5 bAutoSpell,sk,y,n,bf,i; n/10% chance to cast skill sk of level y when attacking
-bonus4 bAutoSpellWhenHit,sk,y,n,i; n/10% chance to cast skill sk of level y when being hit by a direct attack
-bonus5 bAutoSpellWhenHit,sk,y,n,bf,i; n/10% chance to cast skill sk of level y when being hit by a direct attack
- i:
- 0 = cast on self
- 1 = cast on enemy, not on self
- 2 = use random skill lv in [1..y]
- 3 = 1+2 (random lv on enemy)
-
-bonus3 bAutoSpellWhenHit,sk,x,n; n/10% chance to cast skill sk of level x on attacker when being hit by a direct attack
-bonus3 bAutoSpell,sk,x,n; Auto Spell casting on attack of spell sk at level x with n/10% chance
-
-===================
-| 6. Misc Bonuses |
-===================
-
-HP/SP Drain
------------
-bonus bHPDrainValue,n; Heals +n HP with weapon attack.
-bonus2 bHPDrainValue,n,x; Heals +n HP with weapon attack. When x is non-zero, the HP is drained instead.
-bonus2 bHPDrainRate,n,x; n/10% probability to drain x% HP when attacking
-
-bonus bSPDrainValue,n; When hitting a monster by physical attack, you gain n SP
-bonus2 bSPDrainRate,n,x; n/10% probability to drain x% SP when attacking
-bonus2 bSPDrainValue,n,x; When hitting a monster by physical attack
- x:
- 0: Gain n SP
- 1: drain n SP from target
-bonus3 bSPDrainRate,n,x,y; When attacking there is a n/10% chance to either gain SP equivalent to x% of damage dealt,
- OR drain the amount of sp from the enemy.
- y:
- 0: Gain SP
- 1: Drain SP from target
-
-bonus2 bHPDrainValueRace,r,n; Heals +n HP when attacking a monster of race r with weapon attack.
-bonus2 bSPDrainValueRace,r,n; Heals +n SP when attacking a monster of race r with weapon attack.
-
-bonus3 bHPDrainRateRace,r,n,x; Adds a n/10% chance to receive x% of damage dealt as HP from a monster of race r with weapon attack.
-bonus3 bSPDrainRateRace,r,n,x; Adds a n/10% chance to receive x% of damage dealt as SP from a monster of race r with weapon attack.
-
-HP/SP Vanish
-------------
-bonus2 bHPVanishRate,n,x; Add the (n/10)% chance of decreasing enemy HP amount by x% when attacking
-bonus2 bSPVanishRate,n,x; Add the (n/10)% chance of decreasing enemy SP amount by x% when attacking
-
-bonus3 bHPVanishRate,n,x,bf; Add the (n/10)% chance of decreasing enemy HP amount by x% when attacking for criteria bf
-bonus3 bSPVanishRate,n,x,bf; Add the (n/10)% chance of decreasing enemy SP amount by x% when attacking for criteria bf
-
-HP/SP Gain
-----------
-bonus bHPGainValue,n; When killing a monster by physical attack, you gain n HP
-bonus bSPGainValue,n; When killing a monster by physical attack, you gain n SP
-
-bonus bMagicHPGainValue,n; Gains +n HP when killing an enemy with magic attack
-bonus bMagicSPGainValue,n; Gains +n SP when killing an enemy with magic attack
-
-bonus2 bHPGainRaceAttack,r,n; Heals n HP when attacking Race r on every hit
-bonus2 bSPGainRaceAttack,r,n; Heals n SP when attacking Race r on every hit
-
-bonus2 bSPGainRace,r,n; When killing a monster of race r by physical attack gain n SP
-
-Damage return
--------------
-bonus bMagicDamageReturn,n; Adds a n% chance to reflect targetted magic spells back to the enemy that caused it
-bonus bShortWeaponDamageReturn,n; Reflects n% of received melee damage back to the enemy that caused it
-bonus bLongWeaponDamageReturn,n; Reflects n% of received ranged damage back to the enemy that caused it
-
-Strip/Break equipment
----------------------
-NOTE:
- - n is meaningless if not mentioned.
-bonus bUnstripable,n; Equipment cannot be taken off via strip skills
-bonus bUnstripableWeapon,n; Weapon cannot be taken off via Strip skills
-bonus bUnstripableArmor,n; Armor cannot be taken off via Strip skills
-bonus bUnstripableHelm,n; Helm cannot be taken off via Strip skills
-bonus bUnstripableShield,n; Shield cannot be taken off via Strip skills
-
-bonus bUnbreakable,n; Reduces the break chance of all equipped equipment by n%.
-bonus bUnbreakableGarment,n; Garment cannot be damaged/broken by any means
-bonus bUnbreakableWeapon,n; Weapon cannot be damaged/broken by any means
-bonus bUnbreakableArmor,n; Armor cannot be damaged/broken by any means
-bonus bUnbreakableHelm,n; Helm cannot be damaged/broken by any means
-bonus bUnbreakableShield,n; Shield cannot be damaged/broken by any means
-bonus bUnbreakableShoes,n; Shoes cannot be damaged/broken by any means
-
-bonus bBreakWeaponRate,n; Adds a n/100% chance to break enemy's weapon while attacking (Stackable)
-bonus bBreakArmorRate,n; Adds a n/100% chance to break enemy's armor while attacking (Stackable)
-
-Monster Related
----------------
-bonus3 bAddClassDropItem,id,c,n; Adds a n/100% chance of dropping item id when killing monster mid
-
-bonus2 bAddMonsterDropItem,id,n; Adds a n/100% chance for item id to be dropped, when killing any monster.
-bonus3 bAddMonsterDropItem,id,r,n; Adds a n/100% chance for item id to be dropped, when killing any monster of race r.
- If 'n' is negative value, then it's a part of formula
- chance = -y*(killed_mob_level/10)+1
-
-bonus bAddMonsterDropChainItem,ic; Able to get Item of chain ic when you kill a monster
-bonus2 bAddMonsterDropChainItem,ic,r; Able to get item of chain ic when you kill a monster of race r
-
-bonus2 bGetZenyNum,x,n; When killing a monster, there is a n% chance of gaining 1~x zeny (only the highest among all is applied).
-bonus2 bAddGetZenyNum,x,n; When killing a monster, there is a n% chance of gaining 1~x zeny (Stackable)
- x:
- < 0: Max Zeny gain is (-x*monster_level)
-
-Misc effects
-------------
-skill i,n; Gives skill #i at level n
-
-bonus bDoubleRate,n; Double Attack probability +n% (works with all weapons | only the highest among all is applied)
-bonus bDoubleAddRate,n; Double Attack probability +n% (works with all weapons)
-
-bonus bSplashRange,n; Splash attack radius +n (highest is applied)
-bonus bSplashAddRange,n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc)
- n:
- 1: 3*3 Area
- 2: 5*5 Area
- ...
-
-bonus bClassChange,n; Gives a n/100% chance to change the attacked monster's class with normal attack.
-bonus bAddStealRate,n; n/100% increase to Steal skill success chance
-bonus bRestartFullRecover,n; When reviving, HP and SP are fully healed
-bonus bNoSizeFix,n; The attack revision with the size of the monster is not received
-bonus bNoGemStone,n; Skills requiring Gemstones do no require them (Hocus Pocus will still require 1 Yellow Gemstone)
-bonus bIntravision,n; Always see Hiding and Cloaking players/mobs
- n: is meaningless
-
-bonus2 bAddSkillBlow,sk,n; Knockbacks the target by n cells when using skill sk
-bonus bNoKnockback,n; Character is no longer knocked back by enemy skills with such effect (n is meaningless)
-
-bonus bPerfectHide,n; Hidden/cloaked character is no longer detected by monsters with 'detector' mode (n is meaningless).
diff --git a/doc/permissions.md b/doc/permissions.md
new file mode 100644
index 000000000..7d29b59fd
--- /dev/null
+++ b/doc/permissions.md
@@ -0,0 +1,51 @@
+# Group Permission List
+A list of player group permission, configured in `conf/groups.conf`.
+
+## Copyright
+> This file is part of Hercules.
+> http://herc.ws - http://github.com/HerculesWS/Hercules
+>
+> Copyright (C) 2012-2018 Hercules Dev Team
+> Copyright (C) Athena Dev Teams
+>
+> Hercules 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 3 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, see <http://www.gnu.org/licenses/>.
+
+## Description
+The Hercules emulator has a permission system that enables certain groups of players to perform certain actions, or have access to certain visual enhancements or in-game activity.
+
+Permission | Description
+:------------------------ | :---------------------------------------------
+can_trade | Ability to trade or otherwise distribute items (drop, storage, vending etc).
+can_party | Ability to join parties.
+all_skill | Ability to use all skills.
+all_equipment | Ability to equip anything (can cause client errors).
+skill_unconditional | Ability to use skills without meeting the required conditions (SP, items, etc).
+join_chat | Ability to join a password protected chatrooms.
+kick_chat | Protection from being kicked from a chat.
+hide_session | Hides player session from being displayed by `@commands`.
+who_display_aid | Ability to see GMs and Account/Char IDs in the `@who` command.
+hack_info | Ability to receive all informations about any player that try to hack, spoof a name, etc.
+any_warp | Ability to bypass nowarp, nowarpto, noteleport and nomemo mapflags. This option is mainly used in commands which modify a character's map/coordinates (like `@memo`, `@mapmove`, `@go`, `@jump`, etc).
+view_hpmeter | Ability to see HP bar of every player.
+view_equipment | Ability to view players equipment regardless of their setting.
+use_check | Ability to use client command `/check` (display character status).
+use_changemaptype | Ability to use client command `/changemaptype`.
+all_commands | Ability to use all atcommands and charcommands.
+receive_requests | Ability to receive `@requests`.
+show_bossmobs | Ability to see boss mobs with `@showmobs`.
+disable_pvm | Ability to disable Player vs. Monster (PvM).
+disable_pvp | Ability to disable Player vs. Player (PvP).
+disable_commands_when_dead | Ability to disable atcommands usage when dead.
+can_trade_bound | Ability to trade or otherwise distribute bound items (drop, storage, vending etc).
+hchsys_admin | Hercules Chat System Admin (Ability to modify channel settings regardless of ownership and join password-protected channels without requiring a password.)
+disable_pickup | Ability to disable the player from picking up any item from ground, they can still receive items picked up by others means like party share píck.
+disable_exp | Ability to disable the player from gaining any experience point.
+disable_store | Ability to disable the player from using/openning npc and player stores.
+disable_skill_usage | Ability to disable the player from using any skill.
+
diff --git a/doc/permissions.txt b/doc/permissions.txt
deleted file mode 100644
index bc84f86b6..000000000
--- a/doc/permissions.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-//===== Hercules Documentation ===============================
-//= Permission List
-//===== By: ==================================================
-//= Hercules Dev Team
-//===== Current Version: =====================================
-//= 20131031
-//===== Description: =========================================
-//= Player group permissions, configured in conf/groups.conf.
-//============================================================
-
-can_trade : Ability to trade or otherwise distribute items (drop, storage, vending etc...).
-can_party : Ability to join parties.
-all_skill : Ability to use all skills.
-all_equipment : Ability to equip anything (can cause client errors).
-skill_unconditional : Ability to use skills without meeting the required conditions (SP, items, etc...).
-join_chat : Ability to join a password protected chatrooms.
-kick_chat : Protection from being kicked from a chat.
-hide_session : Hides player session from being displayed by @commands.
-who_display_aid : Ability to see GMs and Account/Char IDs in the @who command.
-hack_info : Ability to receive all informations about any player that try to hack, spoof a name, etc.
-any_warp : Ability to bypass nowarp, nowarpto, noteleport and nomemo mapflags.
- This option is mainly used in commands which modify a character's
- map/coordinates (like @memo, @mapmove, @go, @jump, etc...).
-view_hpmeter : Ability to see HP bar of every player.
-view_equipment : Ability to view players equipment regardless of their setting.
-use_check : Ability to use client command /check (display character status).
-use_changemaptype : Ability to use client command /changemaptype.
-all_commands : Ability to use all atcommands and charcommands.
-receive_requests : Ability to receive @requests.
-show_bossmobs : Ability to see boss mobs with @showmobs.
-disable_pvm : Ability to disable Player vs. Monster.
-disable_pvp : Ability to disable Player vs. Player.
-disable_commands_when_dead : Ability to disable @command usage when dead.
-can_trade_bound: Ability to trade or otherwise distribute bound items (drop, storage, vending etc...).
-hchsys_admin : Hercules Chat System Admin (Ability to modify channel settings regardless of ownership and join password-protected channels without requiring a password.)
-disable_pickup: Ability to disable the player from picking up any item from ground, they can still receive items picked up by others means like party share píck.
-disable_exp: Ability to disable the player from gaining any experience point.
-disable_store: Ability to disable the player from using/openning npc and player stores.
-disable_skill_usage: Ability to disable the player from using any skill.
diff --git a/doc/quest_variables.md b/doc/quest_variables.md
new file mode 100644
index 000000000..2f8922c41
--- /dev/null
+++ b/doc/quest_variables.md
@@ -0,0 +1,262 @@
+# Quest Variables
+
+<!--
+## Copyright
+> This file is part of Hercules.
+> http://herc.ws - http://github.com/HerculesWS/Hercules
+>
+> Copyright (C) 2012-2018 Hercules Dev Team
+> Copyright (C) Athena Dev Teams
+>
+> Hercules 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 3 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, see <http://www.gnu.org/licenses/>.
+-->
+
+## Description
+This file should help to understand and manage bit-wise quest variables.
+You can store up to 31 boolean value into a single variable.
+
+## Sample Variable: `MISC_QUEST`
+
+Quest # No | Sample Quest
+:-------------| :------------
+Description | How to assign a bit-wise value and check it.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| X;```
+Check Value | ```if (MISC_QUEST & X) { ... }```
+
+- Where `X` refer to the bit-wise value that could be used to represent the state/progress of a quest.
+
+--------------------------------------------------------------
+
+## Example
+
+Quest # 1 | Juice Maker Quest
+:-------------| :------------
+Description | How to make juices. This bit keeps final state of the quest.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 1;```
+Check Value | ```if (MISC_QUEST & 1) { ... }```
+
+Quest # 2 | Tempestra Quest
+:-------------| :------------
+Description | Determines if player has given a potion to Tempestra.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 2;```
+Check Value | ```if (MISC_QUEST & 2) { ... }```
+
+Quest # 3 | Morgenstein Quest
+:-------------| :------------
+Description | How to make Mixture & Counteragent. This bit keeps final state of the quest.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 4;```
+Check Value | ```if (MISC_QUEST & 4) { ... }```
+
+Quest # 4 | Prontera Culvert Quest
+:-------------| :------------
+Description | Determines if player can enter Prontera Culverts.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 8;```
+Check Value | ```if (MISC_QUEST & 8) { ... }```
+
+Quest # 5 | Edgar's Offer
+:-------------| :------------
+Description | Cheap ticket from Izlude to Alberta. This bit keeps final state of the quest.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 16;```
+Check Value | ```if (MISC_QUEST & 16) { ... }```
+
+Quest # 6 | Piano Quest
+:-------------| :------------
+Description | The only way from Niflheim to Umbala.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 32;```
+Check Value | ```if (MISC_QUEST & 32) { ... }```
+
+Quest # 7 | Bio Ethics Quest
+:-------------| :------------
+Description | Quest for homunculus skill for alchemists. This bit keeps final state of the quest.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 64;```
+Check Value | ```if (MISC_QUEST & 64) { ... }```
+
+Quest # 8 | DTS Warper
+:-------------| :------------
+Description | Determines if player has already voted.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 128;```
+Check Value | ```if (MISC_QUEST & 128) { ... }```
+
+Quest # 9 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 256;```
+Check Value | ```if (MISC_QUEST & 256) { ... }```
+
+Quest # 10 | Cube Room
+:-------------| :------------
+Description | Lighthalzen Cube Room quest (to enter Bio-Lab)
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 512;```
+Check Value | ```if (MISC_QUEST & 512) { ... }```
+
+Quest # 11 | Reset Skills Event
+:-------------| :------------
+Description | Yuno, Hypnotist Teacher
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 1024;```
+Check Value | ```if (MISC_QUEST & 1024) { ... }```
+
+Quest # 12 | Slotted Arm Guard Quest
+:-------------| :------------
+Description | Ninja Job Room, Boshuu
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 2048;```
+Check Value | ```if (MISC_QUEST & 2048) { ... }```
+
+Quest # 13 | Improved Arm Guard Quest
+:-------------| :------------
+Description | Ninja Job Room, Basshu
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 4096;```
+Check Value | ```if (MISC_QUEST & 4096) { ... }```
+
+Quest # 14 | Rachel Sanctuary Quest
+:-------------| :------------
+Description | Determines if player can access Rachel Santuary.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 8192;```
+Check Value | ```if (MISC_QUEST & 8192) { ... }```
+
+Quest # 15 | Message Delivery Quest
+:-------------| :------------
+Description | Send a message to Elly, in Niflheim from Erious.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 16384;```
+Check Value | ```if (MISC_QUEST & 16384) { ... }```
+
+Quest # 16 | Umbala Domestic Dispute?
+:-------------| :------------
+Description | Reward: 1 Yggdrasil Leaf.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 32768;```
+Check Value | ```if (MISC_QUEST & 32768) { ... }```
+
+Quest # 17 | Access to the Turtle Island
+:-------------| :------------
+Description | Reward: ~1 Old Card Album , Old Violet Box, GB.
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 65536;```
+Check Value | ```if (MISC_QUEST & 65536) { ... }```
+
+Quest # 18 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 131072;```
+Check Value | ```if (MISC_QUEST & 131072) { ... }```
+
+Quest # 19 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 262144;```
+Check Value | ```if (MISC_QUEST & 262144) { ... }```
+
+Quest # 20 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 524288;```
+Check Value | ```if (MISC_QUEST & 524288) { ... }```
+
+Quest # 21 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 1048576;```
+Check Value | ```if (MISC_QUEST & 1048576) { ... }```
+
+Quest # 22 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 2097152;```
+Check Value | ```if (MISC_QUEST & 2097152) { ... }```
+
+Quest # 23 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 4194304;```
+Check Value | ```if (MISC_QUEST & 4194304) { ... }```
+
+Quest # 24 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 8388608;```
+Check Value | ```if (MISC_QUEST & 8388608) { ... }```
+
+Quest # 25 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 16777216;```
+Check Value | ```if (MISC_QUEST & 16777216) { ... }```
+
+Quest # 26 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 33554432;```
+Check Value | ```if (MISC_QUEST & 33554432) { ... }```
+
+Quest # 27 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 67108864;```
+Check Value | ```if (MISC_QUEST & 67108864) { ... }```
+
+Quest # 28 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 134217728;```
+Check Value | ```if (MISC_QUEST & 134217728) { ... }```
+
+Quest # 29 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 268435456;```
+Check Value | ```if (MISC_QUEST & 268435456) { ... }```
+
+Quest # 30 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 536870912;```
+Check Value | ```if (MISC_QUEST & 536870912) { ... }```
+
+Quest # 31 | -
+:-------------| :------------
+Description | -
+Assign Value | ```MISC_QUEST = MISC_QUEST \| 1073741824;```
+Check Value | ```if (MISC_QUEST & 1073741824) { ... }```
+
+### Quest#32 and onwards
+You had to use a new variable to store it.
+The existing variable `MISC_QUEST`'s value may overflow as it already reaching the max value.
+Basically the cycle repeat every 32th quests, unless the limit has been lifted in the future.
+
+ No | Formulae | Bits Value | Accumulate
+:--:|:-----------:|-----------:|-------------:
+ 1 | 2 ^ 0 | 1 | 1
+ 2 | 2 ^ 1 | 2 | 3
+ 3 | 2 ^ 2 | 4 | 7
+ 4 | 2 ^ 3 | 8 | 15
+ 5 | 2 ^ 4 | 16 | 31
+ 6 | 2 ^ 5 | 32 | 63
+ 7 | 2 ^ 6 | 64 | 127
+ 8 | 2 ^ 7 | 128 | 255
+ 9 | 2 ^ 8 | 256 | 511
+ 10 | 2 ^ 9 | 512 | 1023
+ 11 | 2 ^ 10 | 1024 | 2047
+ 12 | 2 ^ 11 | 2048 | 4095
+ 13 | 2 ^ 12 | 4096 | 8191
+ 14 | 2 ^ 13 | 8192 | 16383
+ 15 | 2 ^ 14 | 16384 | 32767
+ 16 | 2 ^ 15 | 32768 | 65535
+ 17 | 2 ^ 16 | 65536 | 131071
+ 18 | 2 ^ 17 | 131072 | 262143
+ 19 | 2 ^ 18 | 262144 | 524287
+ 20 | 2 ^ 19 | 524288 | 1048575
+ 21 | 2 ^ 20 | 1048576 | 2097151
+ 22 | 2 ^ 21 | 2097152 | 4194303
+ 23 | 2 ^ 22 | 4194304 | 8388607
+ 24 | 2 ^ 23 | 8388608 | 16777215
+ 25 | 2 ^ 24 | 16777216 | 33554431
+ 26 | 2 ^ 25 | 33554432 | 67108863
+ 27 | 2 ^ 26 | 67108864 | 134217727
+ 28 | 2 ^ 27 | 134217728 | 268435455
+ 29 | 2 ^ 28 | 268435456 | 536870911
+ 30 | 2 ^ 29 | 536870912 | 1073741823
+ 31 | 2 ^ 30 | 1073741824 | 2147483647
+
diff --git a/doc/quest_variables.txt b/doc/quest_variables.txt
deleted file mode 100644
index 0be144183..000000000
--- a/doc/quest_variables.txt
+++ /dev/null
@@ -1,108 +0,0 @@
-//===== Hercules Documentation ===============================
-//= Permanent Quest Variables
-//===== By: ==================================================
-//= Lupus
-//===== Current Version: =====================================
-//= 20120826
-//===== Description: =========================================
-//= This file should help to understand and manage bit-wise
-//= quest variables. You can store up to 31 boolean value into
-//= a single variable.
-//============================================================
-
-Variable: MISC_QUEST
---------------------------------------------------------------
-
-Quest: Juice Maker Quest
-Info: How to make juices. This bit keeps final state of the quest.
-How to set: set MISC_QUEST, MISC_QUEST | 1;
-How to check: if (MISC_QUEST & 1) {}
-
-Quest: Tempestra Quest
-Info: Determines if player has given a potion to Tempestra.
-How to set: set MISC_QUEST, MISC_QUEST | 2;
-How to check: if (MISC_QUEST & 2) {}
-
-Quest: Morgenstein Quest
-Info: How to make Mixture & Counteragent. This bit keeps final state of the quest.
-How to set: set MISC_QUEST, MISC_QUEST | 4;
-How to check: if (MISC_QUEST & 4) {}
-
-Quest: Prontera Culvert Quest
-Info: Determines if player can enter Prontera Culverts.
-How to set: set MISC_QUEST, MISC_QUEST | 8;
-How to check: if (MISC_QUEST & 8) {}
-
-Quest: Edgar's Offer
-Info: Cheap ticket from Izlude to Alberta. This bit keeps final state of the quest.
-How to set: set MISC_QUEST, MISC_QUEST | 16;
-How to check: if (MISC_QUEST & 16) {}
-
-Quest: Piano Quest
-Info: The only way from Niflheim to Umbala.
-How to set: set MISC_QUEST, MISC_QUEST | 32;
-How to check: if (MISC_QUEST & 32) {}
-
-Quest: Bio Ethics Quest
-Info: Quest for homunculus skill for alchemists. This bit keeps final state of the quest.
-How to set: set MISC_QUEST, MISC_QUEST|64;
-How to check: if (MISC_QUEST & 64) {}
-
-Quest: DTS Warper
-Info: Determines if player has already voted.
-How to set: set MISC_QUEST, MISC_QUEST|128;
-How to check: if (MISC_QUEST & 128) {}
-
-Quest: -
-Info: -
-How to set: set MISC_QUEST, MISC_QUEST | 256;
-How to check: if (MISC_QUEST & 256) {}
-
-Quest: Cube Room
-Info: Lighthalzen Cube Room quest (to enter Bio-Lab)
-How to set: set MISC_QUEST, MISC_QUEST | 512;
-How to check: if (MISC_QUEST & 512) {}
-
-Quest: Reset Skills Event
-Info: Yuno, Hypnotist Teacher
-How to set: set MISC_QUEST, MISC_QUEST | 1024;
-How to check: if (MISC_QUEST & 1024) {}
-
-Quest: Slotted Arm Guard Quest
-Info: Ninja Job Room, Boshuu
-How to set: set MISC_QUEST, MISC_QUEST | 2048;
-How to check: if (MISC_QUEST & 2048) {}
-
-Quest: Improved Arm Guard Quest
-Info: Ninja Job Room, Basshu
-How to set: set MISC_QUEST, MISC_QUEST | 4096;
-How to check: if (MISC_QUEST & 4096) {}
-
-Quest: Rachel Sanctuary Quest
-Info: Determines if player can access Rachel Santuary.
-How to set: set MISC_QUEST, MISC_QUEST | 8192;
-How to check: if (MISC_QUEST & 8192) {}
-
-Quest: Message Delivery Quest
-Info: Send a message to Elly, in Niflheim from Erious.
-How to set: set MISC_QUEST, MISC_QUEST | 16384;
-How to check: if (MISC_QUEST & 16384) {}
-
-Quest: Umbala Domestic Dispute?
-Info: Reward: 1 Yggdrasil Leaf.
-How to set: set MISC_QUEST, MISC_QUEST | 32768;
-How to check: if (MISC_QUEST & 32768) {}
-
-Quest: Access to the Turtle Island
-Info: Reward: ~1 OCA, OVB, GB.
-How to set: set MISC_QUEST, MISC_QUEST | 65536;
-How to check: if (MISC_QUEST & 65536) {}
-
-
-Variable: MISC_QUEST2
---------------------------------------------------------------
-
-Quest: -
-Info: -
-How to set: set MISC_QUEST2, MISC_QUEST2 | ?;
-How to check: if (MISC_QUEST2 & ?) {}
diff --git a/doc/sample/getiteminfo.txt b/doc/sample/getiteminfo.txt
index 57407c072..9d5121635 100644
--- a/doc/sample/getiteminfo.txt
+++ b/doc/sample/getiteminfo.txt
@@ -9,12 +9,12 @@
//============================================================
prontera,156,179,6 script test_getiteminfo 4_F_KAFRA1,{
- mes "Please enter an item ID.";
- input .@value;
+ mes("Please enter an item ID.");
+ input(.@value);
// This line uses an INTERNAL function of your client to show item name by its ID!
// ^nItemID^XXXX -> Item Name
- mes "Item ID: "+.@value+" ^nItemID^"+.@value;
+ mesf("Item ID: %d ^nItemID^%d", .@value, .@value);
mes("Current item info:");
mesf("Buy Price: %d", getiteminfo(.@value, ITEMINFO_BUYPRICE));
@@ -34,5 +34,8 @@ prontera,156,179,6 script test_getiteminfo 4_F_KAFRA1,{
mesf("View ID: %d", getiteminfo(.@value, ITEMINFO_VIEWID));
mesf("MATK: %d", getiteminfo(.@value, ITEMINFO_MATK));
mesf("View Sprite: %d", getiteminfo(.@value, ITEMINFO_VIEWSPRITE));
+
+ .@trade$ = callfunc("F_GetTradeRestriction", .@value);
+ mesf("Trade Restriction: %s", .@trade$);
close;
}
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 343eb02cb..90d4d77cc 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -714,6 +714,8 @@ MAX_BANK_ZENY - Maximum Zeny in the bank
MAX_BG_MEMBERS - Maximum BattleGround members
MAX_CHAT_USERS - Maximum Chat users
MAX_REFINE - Maximum Refine level
+MAX_MENU_OPTIONS - Maximum NPC menu options
+MAX_MENU_LENGTH - Maximum NPC menu string length
Send targets and status options are also hard-coded and can be found
in 'doc/constants.md'.
@@ -1600,21 +1602,24 @@ perfectly equivalent.
---------------------------------------
*select("<option>"{, "<option>", ...})
-*prompt("<option>"{, "<option>", ...})
This function is a handy replacement for 'menu' that doesn't use a complex
-label structure. It will return the number of menu option picked,
-starting with 1. Like 'menu', it will also set the variable @menu to
-contain the option the user picked.
+label structure. It will return the number of the menu option picked,
+starting with 1. If the player presses cancel, the script is terminated.
- if (select("Yes:No") == 1)
+ if (select("Yes", "No") == 1)
mes("You said yes, I know.");
And like 'menu', the selected option is consistent with grouped options
and empty options.
-'prompt' works almost the same as select, except that when a character
-clicks the Cancel button, this function will return 255 instead.
+---------------------------------------
+
+*prompt("<option>"{, "<option>", ...})
+
+This function behaves exactly like select(), but when a player presses cancel
+it returns MAX_MENU_OPTIONS and the script is not terminated. You almost always
+want to use select() rather than prompt().
---------------------------------------
@@ -2574,15 +2579,12 @@ playerattached() to check for the character attached to the script.
---------------------------------------
-*getnpcid(<type>{, "<npc name>"})
+*getnpcid({"<npc name>"})
Retrieves IDs of the currently invoked NPC. If a unique npc name is given,
-IDs of that NPC are retrieved instead. Type specifies what ID to retrieve
-and can be one of the following:
+IDs of that NPC are retrieved instead.
- 0 - Unit ID (GID)
-
-If an invalid type is given or the NPC does not exist, 0 is returned.
+If the NPC does not exist, 0 is returned.
---------------------------------------
@@ -3239,6 +3241,7 @@ Valid types are:
ITEMINFO_VIEWID - View ID ("Sprite" field in the Item DB)
ITEMINFO_MATK - MATK (only relevant if RENEWAL is set)
ITEMINFO_VIEWSPRITE - View Sprite ("ViewSprite" field in the Item DB)
+ ITEMINFO_TRADE - Trade Restriction (see "doc/constant.md": item trade restriction)
Check sample in doc/sample/getiteminfo.txt
@@ -5992,6 +5995,17 @@ Example usage:
---------------------------------------
+*removespecialeffect(<effect number>{, <send_target>{, <unit id>{, <account id>}}})
+*removespecialeffect(<effect number>{, <send_target>{, "<NPC Name>"{, <account id>}}})
+
+Works for:
+ main client from version 2018-10-02
+ re client from version 2018-10-02
+This command will remove special effect. All parameters same with specialeffect.
+Examples and detailed explanation about parameters see in specialeffect.
+
+---------------------------------------
+
*specialeffect2(<effect number>{, <send_target>{, "<Player Name>"}})
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ -8114,7 +8128,7 @@ built-in atcommands and custom atcommands.
*has_permission("<permission>"{, <account id>})
Check if the attached or specified player has the specified permission
-and returns true or false accordingly. See doc/permissions.txt for
+and returns true or false accordingly. See doc/permissions.md for
details about permissions.
Valid <permission> are:
@@ -8587,6 +8601,18 @@ Example:
---------------------------------------
+*data_to_string(<data>)
+
+Returns a string representation of the given data, similar to the .toString()
+method in JavaScript.
+
+Example:
+
+ data_to_string(DATATYPE_VAR) // "DATATYPE_VAR"
+ data_to_string(.@foo) // ".@foo"
+
+---------------------------------------
+
*charisalpha("<string>", <position>)
This function will return true if the character number Position in the given
@@ -9418,6 +9444,7 @@ supported types: values
QINFO_HOMUN_LEVEL: min
QINFO_HOMUN_TYPE: homunculus_type (0 - regular, 1 - evolved, 2 - S)
QINFO_QUEST: quest_id, state // append to the quests list on each use
+ QINFO_MERCENARY_CLASS: mercenary_class
---------------------------------------
@@ -10172,3 +10199,41 @@ Show in client message by <message_id> from msg string table.
Optional <color> can be used for set color for whole message.
---------------------------------------
+
+*camerainfo()
+
+Show or hide camera info window.
+Works for 20160525 clients or newer.
+
+---------------------------------------
+
+*changecamera(<range>, <rotation>, <latitude>{, <target>})
+
+Change camera range, rotation, latitude.
+The optional target parameter specifies who will get changed
+camera.
+Works for 20160525 clients or newer.
+
+---------------------------------------
+
+*achievement_progress(<ach_id>, <obj_idx>, <progress>, <incremental>{, <account_id>});
+
+Make the player progress in the specified achievement.
+aid - achievement ID
+obj_idx - achievement objective index.
+progress - objective progress towards goal.
+incremental - (boolean) true to add the progress towards the goal,
+ false to use the progress only as a comparand.
+account_id - (optional) AID to perform on (default to attached player).
+
+returns progress on success and false on failure
+
+---------------------------------------
+
+*itempreview(<index>)
+
+Update already opened preview window with item from
+ inventory with given index.
+Works for 20181017 RE and main clients or newer.
+
+---------------------------------------
diff --git a/npc/cities/jawaii.txt b/npc/cities/jawaii.txt
index b48b960d2..71ec8264f 100644
--- a/npc/cities/jawaii.txt
+++ b/npc/cities/jawaii.txt
@@ -1271,7 +1271,7 @@ prt_in,173,13,4 script Customer#SoloHan 4_M_04,{
next;
mes "[Bachewcca]";
mes "^666666*Grunt!*^000000";
- specialeffect(EF_TALK_SCREAM, AREA, getnpcid(0, "Customer#Bachewcca"));
+ specialeffect(EF_TALK_SCREAM, AREA, getnpcid("Customer#Bachewcca"));
next;
mes "[SoloHan]";
mes "To...";
@@ -1377,7 +1377,7 @@ prt_in,173,13,4 script Customer#SoloHan 4_M_04,{
next;
mes "[Bachewcca]";
mes "^666666*Grrr...!*^000000";
- specialeffect(EF_THROWITEM, AREA, getnpcid(0, "Customer#Bachewcca"));
+ specialeffect(EF_THROWITEM, AREA, getnpcid("Customer#Bachewcca"));
close;
}
mes "Oh man...";
diff --git a/npc/cities/morocc.txt b/npc/cities/morocc.txt
index a79148fbf..e4400e7af 100644
--- a/npc/cities/morocc.txt
+++ b/npc/cities/morocc.txt
@@ -138,7 +138,7 @@ morocc,223,102,0 script Volunteer - Morroc#06::MocVolunteer 2_M_BARD_ORIENT,{
next;
mes "[Ringing Voice]";
mes "Be quiet! Can't you see what's going on?!";
- specialeffect(EF_HIT2, AREA, getnpcid(0, "Volunteer - Morroc#06"));
+ specialeffect(EF_HIT2, AREA, getnpcid("Volunteer - Morroc#06"));
next;
mes "[Morroc Volunteer]";
mes "Heyyy, you're being too harsh, Senyorita. Your fist may be as fragile as you are, but it sure can hurt somebody.";
diff --git a/npc/dev/test.txt b/npc/dev/test.txt
index bdbc52ed4..2822ee65c 100644
--- a/npc/dev/test.txt
+++ b/npc/dev/test.txt
@@ -651,6 +651,12 @@ function script HerculesSelfTestHelper {
setd(".@x", getd(".@y"));
callsub(OnCheck, "setd getd", .@x, .@y);
+ // getd types
+ callsub(OnCheck, "Getdatatype (getd: param)", getdatatype(getd("Hp")), DATATYPE_INT | DATATYPE_PARAM);
+ callsub(OnCheck, "Getdatatype (getd: const)", getdatatype(getd("DATATYPE_CONST")), DATATYPE_INT | DATATYPE_CONST);
+ callsub(OnCheck, "Getdatatype (getd: numeric var)", getdatatype(getd(".@foo")), DATATYPE_INT | DATATYPE_VAR);
+ callsub(OnCheck, "Getdatatype (getd: string var)", getdatatype(getd(".@foo$")), DATATYPE_STR | DATATYPE_VAR);
+
// getvariableofnpc
.x = 2;
set getvariableofnpc(.x, "TestVarOfAnotherNPC"), 1;
@@ -769,6 +775,16 @@ function script HerculesSelfTestHelper {
callsub(OnCheck, "Getdatatype (getarg integer value)", callsub(OnTestGetdatatype, 5), DATATYPE_INT);
callsub(OnCheck, "Getdatatype (getarg string)", callsub(OnTestGetdatatype, "foo"), DATATYPE_STR | DATATYPE_CONST);
+ callsub(OnCheck, "data_to_string (NIL)", data_to_string(), "");
+ callsub(OnCheck, "data_to_string (empty string)", data_to_string(""), "");
+ callsub(OnCheck, "data_to_string (string)", data_to_string("foo"), "foo");
+ callsub(OnCheck, "data_to_string (integer)", data_to_string(5), "5");
+ callsub(OnCheck, "data_to_string (parameter)", data_to_string(Hp), "Hp");
+ callsub(OnCheck, "data_to_string (constant)", data_to_string(DATATYPE_CONST), "DATATYPE_CONST");
+ callsub(OnCheck, "data_to_string (label)", data_to_string(OnTestGetdatatype), "OnTestGetdatatype");
+ callsub(OnCheck, "data_to_string (string variable)", data_to_string(.@x$), ".@x$");
+ callsub(OnCheck, "data_to_string (integer variable)", data_to_string(.@x), ".@x");
+
if (.errors) {
debugmes "Script engine self-test [ \033[0;31mFAILED\033[0m ]";
debugmes "**** The test was completed with " + .errors + " errors. ****";
diff --git a/npc/events/gdevent_aru.txt b/npc/events/gdevent_aru.txt
index 4e8a3c6e8..0a3eef0b1 100644
--- a/npc/events/gdevent_aru.txt
+++ b/npc/events/gdevent_aru.txt
@@ -1351,33 +1351,33 @@ OnMVP:
end;
OnTimer1000:
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_1_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_3_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_5_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_7_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_9_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_1_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_3_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_5_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_7_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_9_a"));
end;
OnTimer2000:
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_2_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_4_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_6_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_8_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_2_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_4_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_6_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_8_a"));
end;
OnTimer3000:
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_1_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_3_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_5_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_7_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_9_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_1_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_3_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_5_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_7_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_9_a"));
end;
OnTimer4000:
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_2_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_4_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_6_a"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_8_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_2_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_4_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_6_a"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_8_a"));
stopnpctimer;
end;
}
diff --git a/npc/events/gdevent_sch.txt b/npc/events/gdevent_sch.txt
index 1b55f8492..add37bcb9 100644
--- a/npc/events/gdevent_sch.txt
+++ b/npc/events/gdevent_sch.txt
@@ -1348,33 +1348,33 @@ OnMVP:
end;
OnTimer1000:
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_1_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_3_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_5_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_7_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_9_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_1_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_3_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_5_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_7_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_9_s"));
end;
OnTimer2000:
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_2_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_4_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_6_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_8_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_2_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_4_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_6_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_8_s"));
end;
OnTimer3000:
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_1_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_3_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_5_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_7_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_9_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_1_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_3_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_5_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_7_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_9_s"));
end;
OnTimer4000:
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_2_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_4_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_6_s"));
- specialeffect(EF_MVP, AREA, getnpcid(0, "paper_sp_8_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_2_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_4_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_6_s"));
+ specialeffect(EF_MVP, AREA, getnpcid("paper_sp_8_s"));
stopnpctimer;
end;
}
diff --git a/npc/jobs/2-2e/SoulLinker.txt b/npc/jobs/2-2e/SoulLinker.txt
index db916fc35..6fc4e3aaa 100644
--- a/npc/jobs/2-2e/SoulLinker.txt
+++ b/npc/jobs/2-2e/SoulLinker.txt
@@ -434,7 +434,7 @@ OnTouch:
mes "[Maia]";
mes "This Witherless Rose will";
mes "wither away instead of you...";
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "Maia#link2"));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid("Maia#link2"));
next;
mes "[Maia]";
mes "This Witherless Rose will";
diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt
index 9882e9d71..904ed7165 100644
--- a/npc/other/Global_Functions.txt
+++ b/npc/other/Global_Functions.txt
@@ -438,3 +438,40 @@ function script F_ShuffleNumbers {
function script F_MesColor {
return sprintf("^%06X", min(getarg(0), 0xFFFFFF));
}
+
+//== Function F_GetTradeRestriction ========================
+// Function to get item trade restriction
+// Examples:
+// mes "Red Potion Restriction: "+ callfunc("F_GetTradeRestriction", Red_Potion);
+function script F_GetTradeRestriction {
+ .@trade = getiteminfo(getarg(0), ITEMINFO_TRADE);
+
+ if (.@trade == 0) {
+ return "None";
+ }
+ .@trade$ = "";
+ if (.@trade & ITR_NODROP) {
+ .@trade$ += "NoDrop|";
+ }
+ if (.@trade & ITR_NOTRADE) {
+ .@trade$ += "NoTrade|";
+ }
+ if (.@trade & ITR_PARTNEROVERRIDE) {
+ .@trade$ += "PartnerOverride|";
+ }
+ if (.@trade & ITR_NOSELLTONPC) {
+ .@trade$ += "NoSellToNpc|";
+ }
+ if (.@trade & ITR_NOSTORAGE) {
+ .@trade$ += "NoStorage|";
+ }
+ if (.@trade & ITR_NOGSTORAGE) {
+ .@trade$ += "NoGuildStorage|";
+ }
+ if (.@trade & ITR_NOMAIL) {
+ .@trade$ += "NoMail|";
+ }
+ if (.@trade & ITR_NOAUCTION) {
+ .@trade$ += "NoAuction|";
+ }
+}
diff --git a/npc/other/poring_war.txt b/npc/other/poring_war.txt
index d89bb3fed..326c601be 100644
--- a/npc/other/poring_war.txt
+++ b/npc/other/poring_war.txt
@@ -1052,7 +1052,7 @@ OnInit:
OnEnable:
enablenpc "#wop_warp_a";
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "#wop_warp_a"));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid("#wop_warp_a"));
end;
OnDisable:
@@ -1074,7 +1074,7 @@ OnInit:
OnEnable:
enablenpc "#wop_warp_d";
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "#wop_warp_d"));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid("#wop_warp_d"));
end;
OnDisable:
diff --git a/npc/quests/kiel_hyre_quest.txt b/npc/quests/kiel_hyre_quest.txt
index b51207737..677a81f8d 100644
--- a/npc/quests/kiel_hyre_quest.txt
+++ b/npc/quests/kiel_hyre_quest.txt
@@ -1967,7 +1967,7 @@ kh_vila,184,20,0 script Book#kh1::BookKHQ1 HIDDEN_NPC,{
mes "wall slides opens open";
mes "to reveal a secret path.^000000";
KielHyreQuest = 28;
- specialeffect(EF_READYPORTAL2, AREA, getnpcid(0, "Wall#kh"));
+ specialeffect(EF_READYPORTAL2, AREA, getnpcid("Wall#kh"));
close;
}
else {
@@ -6393,11 +6393,11 @@ kh_kiehl02,50,52,4 script Kiehl#Original 4_M_KHKIEL,{
next;
mes "[Mitchell]";
mes "Nooooo!";
- specialeffect(PF_FOGWALL, AREA, getnpcid(0, "Mitchell#KiehlRoom"));
- specialeffect(PF_FOGWALL, AREA, getnpcid(0, "Agent#KHAgent1"));
- specialeffect(PF_FOGWALL, AREA, getnpcid(0, "Agent#KHAgent2"));
- specialeffect(PF_FOGWALL, AREA, getnpcid(0, "Agent#KHAgent3"));
- specialeffect(PF_FOGWALL, AREA, getnpcid(0, "Agent#KHAgent4"));
+ specialeffect(PF_FOGWALL, AREA, getnpcid("Mitchell#KiehlRoom"));
+ specialeffect(PF_FOGWALL, AREA, getnpcid("Agent#KHAgent1"));
+ specialeffect(PF_FOGWALL, AREA, getnpcid("Agent#KHAgent2"));
+ specialeffect(PF_FOGWALL, AREA, getnpcid("Agent#KHAgent3"));
+ specialeffect(PF_FOGWALL, AREA, getnpcid("Agent#KHAgent4"));
next;
cutin "kh_kiel03",2;
mes "[Kiehl]";
diff --git a/npc/quests/newgears/2004_headgears.txt b/npc/quests/newgears/2004_headgears.txt
index eb07fb029..9e1728c65 100644
--- a/npc/quests/newgears/2004_headgears.txt
+++ b/npc/quests/newgears/2004_headgears.txt
@@ -1927,10 +1927,10 @@ alde_alche,88,180,0 script Muscle Man#Alarm Mask 4_M_ALCHE_A,{
enablenpc " #Alarm Mask Man2";
enablenpc " #Alarm Mask Man3";
enablenpc " #Alarm Mask Man4";
- specialeffect(EF_CLAYMORE, AREA, getnpcid(0, " #Alarm Mask Man1"));
- specialeffect(EF_CLAYMORE, AREA, getnpcid(0, " #Alarm Mask Man2"));
- specialeffect(EF_CLAYMORE, AREA, getnpcid(0, " #Alarm Mask Man3"));
- specialeffect(EF_CLAYMORE, AREA, getnpcid(0, " #Alarm Mask Man4"));
+ specialeffect(EF_CLAYMORE, AREA, getnpcid(" #Alarm Mask Man1"));
+ specialeffect(EF_CLAYMORE, AREA, getnpcid(" #Alarm Mask Man2"));
+ specialeffect(EF_CLAYMORE, AREA, getnpcid(" #Alarm Mask Man3"));
+ specialeffect(EF_CLAYMORE, AREA, getnpcid(" #Alarm Mask Man4"));
initnpctimer;
if (countitem(Needle_Of_Alarm) > 2999 && countitem(Mr_Scream) > 0) {
if (select("Give him items", "Cancel") == 1) {
@@ -2042,10 +2042,10 @@ OnTimer4000:
disablenpc " #Alarm Mask Man2";
disablenpc " #Alarm Mask Man3";
disablenpc " #Alarm Mask Man4";
- specialeffect(EF_CLAYMORE, AREA, getnpcid(0, " #Alarm Mask Man1"));
- specialeffect(EF_CLAYMORE, AREA, getnpcid(0, " #Alarm Mask Man2"));
- specialeffect(EF_CLAYMORE, AREA, getnpcid(0, " #Alarm Mask Man3"));
- specialeffect(EF_CLAYMORE, AREA, getnpcid(0, " #Alarm Mask Man4"));
+ specialeffect(EF_CLAYMORE, AREA, getnpcid(" #Alarm Mask Man1"));
+ specialeffect(EF_CLAYMORE, AREA, getnpcid(" #Alarm Mask Man2"));
+ specialeffect(EF_CLAYMORE, AREA, getnpcid(" #Alarm Mask Man3"));
+ specialeffect(EF_CLAYMORE, AREA, getnpcid(" #Alarm Mask Man4"));
stopnpctimer;
end;
}
diff --git a/npc/quests/quests_13_1.txt b/npc/quests/quests_13_1.txt
index 17cacaff6..b1e4f90b3 100644
--- a/npc/quests/quests_13_1.txt
+++ b/npc/quests/quests_13_1.txt
@@ -9844,7 +9844,7 @@ mid_camp,206,286,3 script Expedition Messenger 4_M_MOCASS1,{
next;
mes "[Expedition Messenger]";
mes "What's up? Why haven't you left...?";
- specialeffect(EF_SOULBREAKER, AREA, getnpcid(0, "Expedition Messenger"));
+ specialeffect(EF_SOULBREAKER, AREA, getnpcid("Expedition Messenger"));
next;
mes "[Expedition Messenger]";
mes "Argh... Why are you doing this?!";
@@ -9871,8 +9871,8 @@ mid_camp,206,286,3 script Expedition Messenger 4_M_MOCASS1,{
mes "[???]";
mes "Argh...";
next;
- specialeffect(EF_SOULBREAKER, AREA, getnpcid(0, "Expedition Messenger#3"));
- specialeffect(EF_SOULBREAKER, AREA, getnpcid(0, "Expedition Messenger#3"));
+ specialeffect(EF_SOULBREAKER, AREA, getnpcid("Expedition Messenger#3"));
+ specialeffect(EF_SOULBREAKER, AREA, getnpcid("Expedition Messenger#3"));
mes "[???]";
mes "Argh... You...";
next;
@@ -9924,8 +9924,8 @@ mid_camp,206,286,3 script Expedition Messenger 4_M_MOCASS1,{
mes "[???]";
mes "Argh!";
next;
- specialeffect(EF_SOULBREAKER, AREA, getnpcid(0, "Expedition Messenger#3"));
- specialeffect(EF_SOULBREAKER, AREA, getnpcid(0, "Expedition Messenger#3"));
+ specialeffect(EF_SOULBREAKER, AREA, getnpcid("Expedition Messenger#3"));
+ specialeffect(EF_SOULBREAKER, AREA, getnpcid("Expedition Messenger#3"));
mes "[???]";
mes "Argh... You...";
next;
@@ -11548,7 +11548,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
specialeffect EF_BEGINSPELL2;
next;
mes "- The fire sparked, but then it immediatly blew out. -";
- specialeffect(EF_FIREARROW, AREA, getnpcid(0, "Wet Firewood#moc2"));
+ specialeffect(EF_FIREARROW, AREA, getnpcid("Wet Firewood#moc2"));
next;
mes "[Defaria]";
mes "...............";
@@ -11567,7 +11567,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
specialeffect EF_BEGINSPELL2;
next;
mes "- The fire sparked, but then it immediately blew out.-";
- specialeffect(EF_FIREARROW, AREA, getnpcid(0, "Wet Firewood#moc2"));
+ specialeffect(EF_FIREARROW, AREA, getnpcid("Wet Firewood#moc2"));
next;
mes "[Defaria]";
mes "...............";
@@ -11804,8 +11804,8 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
mes "Hopefully I can make a fire with your nice logs....";
specialeffect EF_BEGINSPELL2;
next;
- specialeffect(EF_FIREWALL, AREA, getnpcid(0, "Wet Firewood#moc2"));
- specialeffect(EF_TORCH, AREA, getnpcid(0, "Wet Firewood#moc2"));
+ specialeffect(EF_FIREWALL, AREA, getnpcid("Wet Firewood#moc2"));
+ specialeffect(EF_TORCH, AREA, getnpcid("Wet Firewood#moc2"));
mes "[Defaria]";
mes "Oh, this is as great as I'd hoped!";
mes "I guess my magic hasn't gotten that rusty after all..";
@@ -13096,17 +13096,17 @@ que_job01,144,54,3 script Rin#moc_room2_2 4_F_ACROSS,{
cutin "moc2_dan02",255;
switch(select("Smack his head.", "Punch his stomach.", "Slap his face.")) {
case 1:
- specialeffect(EF_HIT2, AREA, getnpcid(0, "Rayan#moc_room2_2"));
+ specialeffect(EF_HIT2, AREA, getnpcid("Rayan#moc_room2_2"));
mes "- Wanting to stop Rayan from going berserk, you smacked the back of his head with the journal. Rayan staggered and then fell to the ground. Nice job! -";
next;
break;
case 2:
- specialeffect(EF_HIT4, AREA, getnpcid(0, "Rayan#moc_room2_2"));
+ specialeffect(EF_HIT4, AREA, getnpcid("Rayan#moc_room2_2"));
mes "- Wanting to stop Rayan from going berserk, you sucker punched him in the 'ole bread basket. Rayan staggered and then fell to the ground...! -";
next;
break;
case 3:
- specialeffect(EF_HIT1, AREA, getnpcid(0, "Rayan#moc_room2_2"));
+ specialeffect(EF_HIT1, AREA, getnpcid("Rayan#moc_room2_2"));
mes "- Wanting to stop Rayan from going berserk, you slapped his face with the journal. Rayan staggered and then fell onto the ground. Wah! -";
next;
break;
@@ -13117,7 +13117,7 @@ que_job01,144,54,3 script Rin#moc_room2_2 4_F_ACROSS,{
mes "[Rayan]";
mes "Ahh....";
mes "....? Isn't.. Isn't this?!....";
- specialeffect(EF_POISON, AREA, getnpcid(0, "Rayan#moc_room2_2"));
+ specialeffect(EF_POISON, AREA, getnpcid("Rayan#moc_room2_2"));
next;
mes "[Rin]";
mes "Wah! What's going on?";
@@ -13159,7 +13159,7 @@ que_job01,144,54,3 script Rin#moc_room2_2 4_F_ACROSS,{
mes "You're Rin, right?";
mes "This is the last time you'll ever see me.";
mes "Haha... Muhahahahaha!!";
- specialeffect(EF_ENTRY, AREA, getnpcid(0, "Rayan#moc_room2_2"));
+ specialeffect(EF_ENTRY, AREA, getnpcid("Rayan#moc_room2_2"));
donpcevent "Rayan#moc_room2_2::OnDisable";
next;
cutin "moc2_rin03",2;
@@ -13533,8 +13533,8 @@ OnTouch:
mes "Why? Why is Rin here? Wait, where am I?";
mes "Argh.. I can't move at all...";
next;
- specialeffect(EF_BEGINSPELL2, AREA, getnpcid(0, "Dandelion Member#moc2_1"));
- specialeffect(EF_BEGINSPELL2, AREA, getnpcid(0, "Dandelion Member#moc2_2"));
+ specialeffect(EF_BEGINSPELL2, AREA, getnpcid("Dandelion Member#moc2_1"));
+ specialeffect(EF_BEGINSPELL2, AREA, getnpcid("Dandelion Member#moc2_2"));
emotion e_gasp,"Rin#moc2_bt_rin01";
emotion e_gasp,1;
mes "[Rin]";
@@ -13543,8 +13543,8 @@ OnTouch:
next;
donpcevent "Rin#moc2_bt_rin01::OnDisable";
donpcevent "Rin#moc2_bt_rin02::OnEnable";
- specialeffect(EF_ICECRASH, AREA, getnpcid(0, "Rin#moc2_bt_rin01"));
- specialeffect(EF_METEORSTORM, AREA, getnpcid(0, "Rin#moc2_bt_rin01"));
+ specialeffect(EF_ICECRASH, AREA, getnpcid("Rin#moc2_bt_rin01"));
+ specialeffect(EF_METEORSTORM, AREA, getnpcid("Rin#moc2_bt_rin01"));
mes "[Rayan]";
mes "Hah, how impressive! You run like a rabbit!";
mes "I should have you killed you when I had the chance.";
@@ -13561,16 +13561,16 @@ OnTouch:
donpcevent "Dandelion Member#moc2_4::OnEnable";
donpcevent "Dandelion Member#moc2_5::OnEnable";
next;
- specialeffect(EF_FREEZED, AREA, getnpcid(0, "Rin#moc2_bt_rin02"));
+ specialeffect(EF_FREEZED, AREA, getnpcid("Rin#moc2_bt_rin02"));
emotion e_gasp;
mapannounce "que_dan01", "Rin: When.. When did you...!?!",bc_map,"0x7b68ee";
mes "[Rayan]";
mes "I'm sorry that I have to do this.";
mes "...";
mes "Kill her.";
- specialeffect(EF_BEGINSPELL2, AREA, getnpcid(0, "Dandelion Member#moc2_3"));
- specialeffect(EF_BEGINSPELL2, AREA, getnpcid(0, "Dandelion Member#moc2_4"));
- specialeffect(EF_BEGINSPELL2, AREA, getnpcid(0, "Dandelion Member#moc2_5"));
+ specialeffect(EF_BEGINSPELL2, AREA, getnpcid("Dandelion Member#moc2_3"));
+ specialeffect(EF_BEGINSPELL2, AREA, getnpcid("Dandelion Member#moc2_4"));
+ specialeffect(EF_BEGINSPELL2, AREA, getnpcid("Dandelion Member#moc2_5"));
next;
mapannounce "que_dan01", "Rayan: Follow me as soon as you take care of her. Our next meeting place is the usual place. I'm leaving.",bc_map,"0xA8A8A8";
donpcevent "Rayan#moc2_bt_r01::OnDisable";
@@ -13578,9 +13578,9 @@ OnTouch:
donpcevent "Dandelion Member#moc2_2::OnDisable";
mes "[" + strcharinfo(PC_NAME) + "]";
mes "Rin-!!!";
- specialeffect(EF_LIGHTBOLT, AREA, getnpcid(0, "Rin#moc2_bt_rin02"));
- specialeffect(EF_FIREPILLARBOMB, AREA, getnpcid(0, "Rin#moc2_bt_rin02"));
- specialeffect(EF_METEORSTORM, AREA, getnpcid(0, "Rin#moc2_bt_rin02"));
+ specialeffect(EF_LIGHTBOLT, AREA, getnpcid("Rin#moc2_bt_rin02"));
+ specialeffect(EF_FIREPILLARBOMB, AREA, getnpcid("Rin#moc2_bt_rin02"));
+ specialeffect(EF_METEORSTORM, AREA, getnpcid("Rin#moc2_bt_rin02"));
donpcevent "Rin#moc2_bt_rin02::OnDisable";
next;
mes "You feel helpless: you can do nothing but watch her slowly get overpowered..";
diff --git a/npc/quests/quests_airship.txt b/npc/quests/quests_airship.txt
index 9c096c83e..bc6d73fad 100644
--- a/npc/quests/quests_airship.txt
+++ b/npc/quests/quests_airship.txt
@@ -1038,23 +1038,23 @@ ein_in01,125,99,3 script Tarsha Cherno 4_F_EINWOMAN,{
ein_in01,127,94,3 script #exp_ein HIDDEN_NPC,{ end; }
function script F_Cherno {
- specialeffect(EF_COMBOATTACK1, AREA, getnpcid(0, "#exp_ein"));
+ specialeffect(EF_COMBOATTACK1, AREA, getnpcid("#exp_ein"));
mes("^33355F*Bang*^000000");
next();
- specialeffect(EF_COMBOATTACK2, AREA, getnpcid(0, "#exp_ein"));
+ specialeffect(EF_COMBOATTACK2, AREA, getnpcid("#exp_ein"));
mes("^3355FF*Bang*^000000");
if (getarg(0) == true) {
mes("^3355FF*Beeeeeep*^000000");
}
next();
- specialeffect(EF_COMBOATTACK3, AREA, getnpcid(0, "#exp_ein"));
+ specialeffect(EF_COMBOATTACK3, AREA, getnpcid("#exp_ein"));
mes("^3355FF*Bang*^000000");
if (getarg(0) == true) {
mes("^3355FF*Beeeeeep*^000000");
mes("^3355FF*Boop Boop Boop*^000000");
}
next();
- specialeffect(EF_POISONATTACK, AREA, getnpcid(0, "#exp_ein"));
+ specialeffect(EF_POISONATTACK, AREA, getnpcid("#exp_ein"));
mes("^33355F*Crash!*^000000");
mes(".....");
emotion(e_swt, false, "Theo Cherno");
@@ -1717,65 +1717,65 @@ OnTimer68000:
end;
OnTimer73000:
mapannounce("airplane_01", _("*Kzzz...Drrrr...Boom! CRASH!*"), bc_map, C_LIME);
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom6#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom6#airplane"));
end;
OnTimer73500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom7#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom7#airplane"));
end;
OnTimer74000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom8#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom8#airplane"));
end;
OnTimer74500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom9#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom9#airplane"));
end;
OnTimer75000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom10#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom10#airplane"));
end;
OnTimer75500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom6#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom6#airplane"));
end;
OnTimer76000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom7#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom7#airplane"));
end;
OnTimer76500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom8#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom8#airplane"));
end;
OnTimer77000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom9#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom9#airplane"));
end;
OnTimer77500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom10#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom10#airplane"));
end;
OnTimer78000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom6#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom6#airplane"));
mapannounce("airplane_01", _("Engineer: Oh no! We've got a problem with the Number One Rear Engine!"), bc_map, C_LIME);
end;
OnTimer79000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom7#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom7#airplane"));
end;
OnTimer80000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom8#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom8#airplane"));
end;
OnTimer81000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom9#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom9#airplane"));
end;
OnTimer82000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom10#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom10#airplane"));
end;
OnTimer83000:
mapannounce("airplane_01", _("Pilot: Hurry! Get the women, old people and children somewhere safe first! Hurry!"), bc_map, C_LIME);
end;
OnTimer84000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom6#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom6#airplane"));
end;
OnTimer85000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom7#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom7#airplane"));
end;
OnTimer86000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom8#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom8#airplane"));
end;
OnTimer87000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom7#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom7#airplane"));
end;
OnTimer88000:
emotion(e_ag, false, "Airship Captain#02");
@@ -1791,46 +1791,46 @@ OnTimer98000:
end;
OnTimer103000:
mapannounce("airplane_01", _("*Bang! Bang Bang! Bang Bang! Bang Bang Bang!*"), bc_map, C_LIME);
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer103500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom1#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom1#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer104000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom2#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom2#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer104500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom3#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom3#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer105000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom4#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom4#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer105500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom5#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom5#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer106000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom0#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom0#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer106500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom1#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom1#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer107000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom2#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom2#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer107500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom4#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom4#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer108000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom5#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom5#airplane"));
killmonster "airplane_01","Airship#airplane02::OnCaptainMobDead";
end;
OnTimer113000:
@@ -1839,59 +1839,59 @@ OnTimer113000:
end;
OnTimer118000:
mapannounce("airplane_01", _("*Bang! Bang Bang! Bang Bang! Bang Bang Bang!*"), bc_map, C_LIME);
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer118500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom6#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom6#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer119000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom7#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom7#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer119500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom8#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom8#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer120000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom9#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom9#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer120500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom10#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom10#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer121000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom6#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom6#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer121500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom7#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom7#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer122000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom8#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom8#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer122500:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom9#airplane"));
- specialeffect(EF_HIT5, AREA, getnpcid(0, "Airship Captain#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom9#airplane"));
+ specialeffect(EF_HIT5, AREA, getnpcid("Airship Captain#02"));
end;
OnTimer123000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom8#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom8#airplane"));
mapannounce("airplane_01", _("*Boom! Boom Boom! Boom Boom! Boom!*"), bc_map, C_LIME);
end;
OnTimer124000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom9#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom9#airplane"));
end;
OnTimer125000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom10#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom10#airplane"));
end;
OnTimer126000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom6#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom6#airplane"));
end;
OnTimer127000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "boom7#airplane"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("boom7#airplane"));
end;
OnTimer128000:
emotion(e_an, false, "Airship Captain#02");
diff --git a/npc/quests/quests_hugel.txt b/npc/quests/quests_hugel.txt
index 415d37d5b..9af2ab5fc 100644
--- a/npc/quests/quests_hugel.txt
+++ b/npc/quests/quests_hugel.txt
@@ -297,7 +297,7 @@ hu_in01,387,245,0 script Allen Schuwell 4_M_DIEMAN,2,2,{
mes "medicine you're";
mes "supposed to";
mes "need so badly.";
- specialeffect(EF_CHANGECOLD, AREA, getnpcid(0, "Postell Schuwell#D"));
+ specialeffect(EF_CHANGECOLD, AREA, getnpcid("Postell Schuwell#D"));
next;
mes "[Allen]";
mes "Thank goodness...";
@@ -9384,7 +9384,7 @@ OnTouch:
mes "followed. Hold on a sec";
mes "while I take care of him.";
next;
- specialeffect(EF_SONICBLOWHIT, AREA, getnpcid(0, "Hit"));
+ specialeffect(EF_SONICBLOWHIT, AREA, getnpcid("Hit"));
mes "[???]";
mes "Ha!";
next;
diff --git a/npc/quests/quests_louyang.txt b/npc/quests/quests_louyang.txt
index 61888cab4..03816faf2 100644
--- a/npc/quests/quests_louyang.txt
+++ b/npc/quests/quests_louyang.txt
@@ -4122,7 +4122,7 @@ lou_fild01,224,348,0 script Lady#delivery 4_F_CHNDRESS3,{
Zeny -= 100;
}
close2;
- specialeffect(EF_BLASTMINEBOMB, AREA, getnpcid(0, " #fire"));
+ specialeffect(EF_BLASTMINEBOMB, AREA, getnpcid(" #fire"));
end;
}
mes "[Lady]";
diff --git a/npc/quests/quests_moscovia.txt b/npc/quests/quests_moscovia.txt
index d8f3d750f..e49886dbd 100644
--- a/npc/quests/quests_moscovia.txt
+++ b/npc/quests/quests_moscovia.txt
@@ -7096,15 +7096,15 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
mes "- The wind disappears and -";
mes "- a very young girl appears -";
donpcevent "Maria Morebna#rus46::OnEnable";
- specialeffect(EF_FREEZED, AREA, getnpcid(0, "Maria Morebna#rus46"));
+ specialeffect(EF_FREEZED, AREA, getnpcid("Maria Morebna#rus46"));
next;
mes "[Maria Morebna]";
mes "Thank you!";
mes "I'm finally out of there! Now I can.....................aaaaak!!!....";
next;
- specialeffect(EF_HIT2, AREA, getnpcid(0, "Maria Morebna#rus46"));
- specialeffect(EF_DARKBREATH, AREA, getnpcid(0, "Maria Morebna#rus46"));
- specialeffect(EF_DEVIL, AREA, getnpcid(0, "Maria Morebna#rus46"));
+ specialeffect(EF_HIT2, AREA, getnpcid("Maria Morebna#rus46"));
+ specialeffect(EF_DARKBREATH, AREA, getnpcid("Maria Morebna#rus46"));
+ specialeffect(EF_DEVIL, AREA, getnpcid("Maria Morebna#rus46"));
mes "- Maria is attacked -";
mes "- and falls down!! -";
next;
@@ -7133,7 +7133,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
mes "Gray Wolf...";
mes "You think you can fight me?!";
next;
- specialeffect(EF_FIREHIT, AREA, getnpcid(0, "Gray Wolf#rus05"));
+ specialeffect(EF_FIREHIT, AREA, getnpcid("Gray Wolf#rus05"));
mes "- Staggering from -";
mes "- Koshei's flames, -";
mes "- Gray Wolf quickly tell me -";
@@ -7261,7 +7261,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
mes "- The wounds and -";
mes "- curses on her body -";
mes "- are removed !! -";
- specialeffect(EF_ABSORBSPIRITS, AREA, getnpcid(0, "Maria Morebna#rus46"));
+ specialeffect(EF_ABSORBSPIRITS, AREA, getnpcid("Maria Morebna#rus46"));
next;
mes "["+ strcharinfo(PC_NAME) +"]";
mes "Ok! Next...";
@@ -7291,7 +7291,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
next;
}
mes "- !! -";
- specialeffect(EF_RESURRECTION, AREA, getnpcid(0, "Maria Morebna#rus46"));
+ specialeffect(EF_RESURRECTION, AREA, getnpcid("Maria Morebna#rus46"));
next;
mes "[Gray Wolf]";
mes "Success!!";
diff --git a/npc/quests/quests_rachel.txt b/npc/quests/quests_rachel.txt
index 39b3a7b97..43e4beadb 100644
--- a/npc/quests/quests_rachel.txt
+++ b/npc/quests/quests_rachel.txt
@@ -3722,10 +3722,10 @@ OnStart:
enablenpc "#ice_4f_2";
enablenpc "#ice_4f_3";
enablenpc "#ice_4f_4";
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "#ice_4f_1"));
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "#ice_4f_2"));
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "#ice_4f_3"));
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "#ice_4f_4"));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid("#ice_4f_1"));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid("#ice_4f_2"));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid("#ice_4f_3"));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid("#ice_4f_4"));
end;
OnTimer60000:
diff --git a/npc/quests/seals/brisingamen_seal.txt b/npc/quests/seals/brisingamen_seal.txt
index 815459c41..ed63847a2 100644
--- a/npc/quests/seals/brisingamen_seal.txt
+++ b/npc/quests/seals/brisingamen_seal.txt
@@ -3226,7 +3226,7 @@ OnTouch:
mes "Go, Lowen!";
mes "Cast Grand Cross, now!^000000";
next;
- specialeffect(EF_BEGINSPELL7, AREA, getnpcid(0, "#lowen"));
+ specialeffect(EF_BEGINSPELL7, AREA, getnpcid("#lowen"));
mapannounce "que_god02","Mwahaha! Mortals are such fools...",0,0xA8A8A8;
donpcevent "#brisinsummon::OnDoppel1Off";
donpcevent "#brisinsummon::OnDoppel2On";
@@ -3237,7 +3237,7 @@ OnTouch:
mes "[" + strcharinfo(PC_NAME) + "]";
mes " ??!!!";
next;
- specialeffect(EF_BEGINSPELL7, AREA, getnpcid(0, "#doppelganger2"));
+ specialeffect(EF_BEGINSPELL7, AREA, getnpcid("#doppelganger2"));
mes "[Male Voice]";
mes "Lowen!";
mes "Noooooooooo!!!";
diff --git a/npc/quests/thana_quest.txt b/npc/quests/thana_quest.txt
index 4363a6a27..ea01a926d 100644
--- a/npc/quests/thana_quest.txt
+++ b/npc/quests/thana_quest.txt
@@ -2088,11 +2088,11 @@ OnTimer1000:
OnTimer5000:
.@pillar = 1;
OnTimer3000:
- specialeffect(EF_BEGINSPELL7, AREA, getnpcid(0, "#tteffect05"));
- specialeffect(EF_BEGINSPELL3, AREA, getnpcid(0, "#tteffect04"));
- specialeffect(EF_BEGINSPELL2, AREA, getnpcid(0, "#tteffect03"));
- specialeffect(EF_BEGINSPELL4, AREA, getnpcid(0, "#tteffect02"));
- specialeffect(EF_BEGINSPELL5, AREA, getnpcid(0, "#tteffect01"));
+ specialeffect(EF_BEGINSPELL7, AREA, getnpcid("#tteffect05"));
+ specialeffect(EF_BEGINSPELL3, AREA, getnpcid("#tteffect04"));
+ specialeffect(EF_BEGINSPELL2, AREA, getnpcid("#tteffect03"));
+ specialeffect(EF_BEGINSPELL4, AREA, getnpcid("#tteffect02"));
+ specialeffect(EF_BEGINSPELL5, AREA, getnpcid("#tteffect01"));
if (.@pillar) specialeffect EF_MAPPILLAR2;
end;
}
@@ -2235,8 +2235,8 @@ OnDisable:
thana_boss,141,218,0 script #sommon_thanatos FAKE_NPC,{
OnEnable:
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, "#sommon_thanatos"));
- specialeffect(EF_SEISMICWEAPON, AREA, getnpcid(0, "#sommon_thanatos"));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid("#sommon_thanatos"));
+ specialeffect(EF_SEISMICWEAPON, AREA, getnpcid("#sommon_thanatos"));
monster "thana_boss",141,218,"Thanatos Phantom",1708,1,"#sommon_thanatos::OnMyMobDead";
end;
OnMyMobDead:
diff --git a/npc/re/cities/dewata.txt b/npc/re/cities/dewata.txt
index 064cdc461..d8bac5986 100644
--- a/npc/re/cities/dewata.txt
+++ b/npc/re/cities/dewata.txt
@@ -569,10 +569,10 @@ dewata,89,191,6 script Small Shrine#dew1 CLEAR_NPC,{
L_Wish:
mes "Mysterious energy comes out from the shrine.";
- specialeffect(EF_FLASHER, AREA, getnpcid(0, "Small Shrine#dew1"));
- specialeffect(EF_FLASHER, AREA, getnpcid(0, "Small Shrine#dew2"));
- specialeffect(EF_FLASHER, AREA, getnpcid(0, "Small Shrine#dew3"));
- specialeffect(EF_FLASHER, AREA, getnpcid(0, "Small Shrine#dew4"));
+ specialeffect(EF_FLASHER, AREA, getnpcid("Small Shrine#dew1"));
+ specialeffect(EF_FLASHER, AREA, getnpcid("Small Shrine#dew2"));
+ specialeffect(EF_FLASHER, AREA, getnpcid("Small Shrine#dew3"));
+ specialeffect(EF_FLASHER, AREA, getnpcid("Small Shrine#dew4"));
next;
mes "You have received the shrine's blessing.";
specialeffect(EF_BLESSING, AREA, playerattached());
diff --git a/npc/re/events/halloween_2014.txt b/npc/re/events/halloween_2014.txt
index 50786f2e9..fbfb417bb 100644
--- a/npc/re/events/halloween_2014.txt
+++ b/npc/re/events/halloween_2014.txt
@@ -170,7 +170,7 @@
mes "[Mighty Priest]";
mes "Dear Odin, show me your love!";
mes "Heal me with your love! Great!! Bam!!!!!";
- specialeffect(EF_HEAL2, AREA, getnpcid(0, "Exhausted Priest#pron14hal"));
+ specialeffect(EF_HEAL2, AREA, getnpcid("Exhausted Priest#pron14hal"));
emotion e_swt, 1;
next;
mes "[Mighty Priest]";
@@ -1373,8 +1373,8 @@ niflheim,193,186,6 script Bonfire Spirit#14hal 4_TRACE,{
OnTimer21000:
OnTimer23000:
OnTimer25000:
- specialeffect(EF_TORCH, AREA, getnpcid(0, "Bonfire Spirit#14hal"));
- specialeffect(EF_DRAGONSMOKE, AREA, getnpcid(0, "Bonfire Spirit#14hal"));
+ specialeffect(EF_TORCH, AREA, getnpcid("Bonfire Spirit#14hal"));
+ specialeffect(EF_DRAGONSMOKE, AREA, getnpcid("Bonfire Spirit#14hal"));
end;
OnTimer5000:
@@ -1383,16 +1383,16 @@ niflheim,193,186,6 script Bonfire Spirit#14hal 4_TRACE,{
OnTimer13000:
OnTimer14000:
OnTimer16000:
- specialeffect(EF_DRAGONSMOKE, AREA, getnpcid(0, "Bonfire Spirit#14hal"));
+ specialeffect(EF_DRAGONSMOKE, AREA, getnpcid("Bonfire Spirit#14hal"));
end;
OnTimer19000:
npctalk "Oh, No! The fire is dying!!!! Fire!!!!!!!!!!!!";
- specialeffect(EF_DRAGONSMOKE, AREA, getnpcid(0, "Bonfire Spirit#14hal"));
+ specialeffect(EF_DRAGONSMOKE, AREA, getnpcid("Bonfire Spirit#14hal"));
end;
OnTimer20000:
- specialeffect(EF_SIGHTRASHER, AREA, getnpcid(0, "Bonfire Spirit#14hal"));
+ specialeffect(EF_SIGHTRASHER, AREA, getnpcid("Bonfire Spirit#14hal"));
end;
OnTimer27000:
@@ -1543,7 +1543,7 @@ prt_church,96,91,4 script Spiritual Sister#14hal 1_F_PRIEST,5,5,{
mes "This is enough. I can make it soon.";
mes "Odin Crystal power! with Holy light!!!!";
next;
- specialeffect(EF_HOLYHIT, AREA, getnpcid(0, "Spiritual Sister#14hal"));
+ specialeffect(EF_HOLYHIT, AREA, getnpcid("Spiritual Sister#14hal"));
mes "[Sister Haley]";
mes "Whoa~ It's done.";
mes "Hold ^0000cd this in your pocket^000000 and go to the crowd with live and dead ones, you will see who is dead or live.";
@@ -1691,7 +1691,7 @@ xmas_in,160,175,1 script Worried Wife#14hal 4_F_05,{
mes "["+strcharinfo(PC_NAME)+"]";
mes "It's almost ran out.. Why not he wakes up..";
mes "Oh!!";
- specialeffect(EF_RESURRECTION, AREA, getnpcid(0, "Richard#14hal02"));
+ specialeffect(EF_RESURRECTION, AREA, getnpcid("Richard#14hal02"));
next;
mes "[Richard]";
mes "Uhh.. Umm..";
@@ -1726,7 +1726,7 @@ xmas_in,160,175,1 script Worried Wife#14hal 4_F_05,{
next;
mes "[Richard's Daughter]";
mes "Dad!!!";
- specialeffect(EF_SONICBLOWHIT, AREA, getnpcid(0, "Richard#14hal02"));
+ specialeffect(EF_SONICBLOWHIT, AREA, getnpcid("Richard#14hal02"));
next;
mes "[Richard]";
mes "O, Ouch!!!";
diff --git a/npc/re/instances/BangungotHospital.txt b/npc/re/instances/BangungotHospital.txt
index 6972322e1..4af583879 100644
--- a/npc/re/instances/BangungotHospital.txt
+++ b/npc/re/instances/BangungotHospital.txt
@@ -404,7 +404,7 @@ OnInstanceInit:
disablenpc instance_npcname("#Memorial Start_time");
end;
OnEnable:
- specialeffect(EF_BAT2, AREA, getnpcid(0, instance_npcname("#Memorial Start")));
+ specialeffect(EF_BAT2, AREA, getnpcid(instance_npcname("#Memorial Start")));
initnpctimer;
end;
OnDisable:
@@ -890,19 +890,19 @@ OnStopTimer:
end;
OnTimer1000:
mapannounce instance_mapname("1@ma_h"),"- Bangungot's Pillar of Spirit is curing Bangungot. If you don't hunt it now, he will fully recover!! -",bc_map,"0xFF8200";
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, instance_npcname("#Patternwarp45")));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid(instance_npcname("#Patternwarp45")));
end;
OnTimer7000:
mapannounce instance_mapname("1@ma_h"),"Bangungot: I never die!!!!",bc_map,"0xFF82FF";
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, instance_npcname("#Patternwarp45")));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid(instance_npcname("#Patternwarp45")));
end;
OnTimer14000:
mapannounce instance_mapname("1@ma_h"),"Bangungot: If you dare, kill me!! I will revive soon!!!",bc_map,"0xFF82FF";
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, instance_npcname("#Patternwarp45")));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid(instance_npcname("#Patternwarp45")));
end;
OnTimer21000:
mapannounce instance_mapname("1@ma_h"),"Bangungot: I cannot die this way...!!!!",bc_map,"0xFF82FF";
- specialeffect(EF_MAPPILLAR2, AREA, getnpcid(0, instance_npcname("#Patternwarp45")));
+ specialeffect(EF_MAPPILLAR2, AREA, getnpcid(instance_npcname("#Patternwarp45")));
end;
OnTimer30000:
donpcevent instance_npcname("#Summon Pillar")+"::OnReset";
diff --git a/npc/re/instances/WolfchevLaboratory.txt b/npc/re/instances/WolfchevLaboratory.txt
index efb32be7e..3bbb74ad1 100644
--- a/npc/re/instances/WolfchevLaboratory.txt
+++ b/npc/re/instances/WolfchevLaboratory.txt
@@ -1108,7 +1108,7 @@ lhz_cube,233,24,4 script Sorcerer#Bio4Reward 4_M_UMDANCEKID,{
if (.@menu==2){ .@equip_card[3] = 0; }
else { .@equip_card[2] = 0; }
.@equip_item = getequipid(.@position);
- specialeffect(EF_BEGINSPELL2, AREA, getnpcid(0, "Sorcerer#Bio4Reward"));
+ specialeffect(EF_BEGINSPELL2, AREA, getnpcid("Sorcerer#Bio4Reward"));
progressbar "ffff00", 2;
specialeffect(EF_FROSTWEAPON, AREA, playerattached());
delitem Goast_Chill, 10;
@@ -1303,7 +1303,7 @@ lhz_cube,233,24,4 script Sorcerer#Bio4Reward 4_M_UMDANCEKID,{
setarray .@equip_card[0], getequipcardid(.@position,0),getequipcardid(.@position,1),getequipcardid(.@position,2),getequipcardid(.@position,3);
.@equip_card[(.@socket_type-1)] = .@enchant;
.@equip_item = getequipid(.@position);
- specialeffect(EF_BEGINSPELL3, AREA, getnpcid(0, "Sorcerer#Bio4Reward"));
+ specialeffect(EF_BEGINSPELL3, AREA, getnpcid("Sorcerer#Bio4Reward"));
progressbar "ffff00", 2;
if (.@socket_type == 3)
delitem Blood_Thirst, 10;
@@ -1608,42 +1608,42 @@ que_lhz,1,1,0 script #Eventctrl FAKE_NPC,{
end;
OnTimer1000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "#01"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("#01"));
specialeffect EF_BEGINASURA, "Human Guinea pig#01";
end;
OnTimer2000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "#02"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("#02"));
specialeffect EF_BEGINASURA, "Human Guinea pig#02";
end;
OnTimer3000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "#03"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("#03"));
specialeffect EF_BEGINASURA, "Human Guinea pig#03";
end;
OnTimer4000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "#04"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("#04"));
specialeffect EF_BEGINASURA, "Human Guinea pig#04";
end;
OnTimer5000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "#05"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("#05"));
specialeffect EF_BEGINASURA, "Human Guinea pig#05";
end;
OnTimer6000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "#06"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("#06"));
specialeffect EF_BEGINASURA, "Human Guinea pig#06";
end;
OnTimer7000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "#07"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("#07"));
specialeffect EF_BEGINASURA, "Human Guinea pig#07";
end;
OnTimer8000:
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, "#08"));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid("#08"));
specialeffect EF_BEGINASURA, "Human Guinea pig#08";
stopnpctimer;
end;
@@ -2441,7 +2441,7 @@ lhz_dun04,147,279,0 script Laboratory Entrance#memo CLEAR_NPC,{
OnTimer63000:
for(.@i = 1; .@i < 7; .@i++) {
- specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid(0, instance_npcname("Valve#2_"+.@i+"")));
+ specialeffect(EF_SUI_EXPLOSION, AREA, getnpcid( instance_npcname("Valve#2_"+.@i+"")));
disablenpc instance_npcname("Valve#2_"+.@i+"");
}
'broken_pipes += 1;
@@ -2845,73 +2845,73 @@ lhz_dun04,147,279,0 script Laboratory Entrance#memo CLEAR_NPC,{
OnTimer1000:
mapannounce instance_mapname("1@lhz"),"Whisper: Who are you....",bc_map,"0x7DCBF0";
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Seyren Windsor#boss01")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Seyren Windsor#boss01")));
end;
OnTimer2000:
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Cecile Damon#boss02")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Cecile Damon#boss02")));
end;
OnTimer3000:
mapannounce instance_mapname("1@lhz"),"Whisper: Do not approach more...",bc_map,"0x7DCBF0";
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Gertie Wie#boss03")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Gertie Wie#boss03")));
end;
OnTimer4000:
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Eremes Guile#boss04")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Eremes Guile#boss04")));
end;
OnTimer5000:
mapannounce instance_mapname("1@lhz"),"Whisper: This is a very dangerous place..",bc_map,"0x7DCBF0";
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Trentini#boss05")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Trentini#boss05")));
end;
OnTimer6000:
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Chen Liu#boss06")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Chen Liu#boss06")));
end;
OnTimer7000:
mapannounce instance_mapname("1@lhz"),"Whisper: You won't go out alive....",bc_map,"0x7DCBF0";
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Alphochio Basil#boss07")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Alphochio Basil#boss07")));
end;
OnTimer8000:
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Flamel Emul#boss08")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Flamel Emul#boss08")));
end;
OnTimer9000:
mapannounce instance_mapname("1@lhz"),"Whisper: If you don't want to be a part of us....",bc_map,"0x7DCBF0";
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Randel Lawrence#boss09")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Randel Lawrence#boss09")));
end;
OnTimer10000:
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Celia Alde#boss10")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Celia Alde#boss10")));
end;
OnTimer11000:
mapannounce instance_mapname("1@lhz"),"Whisper: Leave now....",bc_map,"0x7DCBF0";
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Kathryne Keyron#boss11")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Kathryne Keyron#boss11")));
end;
OnTimer12000:
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Margaretha Sorin#boss12")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Margaretha Sorin#boss12")));
end;
OnTimer13000:
mapannounce instance_mapname("1@lhz"),"Whisper: Before this place is thoroughly filled with sorrow and pain....",bc_map,"0x7DCBF0";
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Howard Alt-Eisen#boss13")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Howard Alt-Eisen#boss13")));
end;
OnTimer14000:
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Type_**Gren#boss14")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Type_**Gren#boss14")));
end;
OnTimer15000:
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Type_**Roke#boss15")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Type_**Roke#boss15")));
end;
OnTimer16000:
- specialeffect(EF_SPHERE, AREA, getnpcid(0, instance_npcname("Type_**Dree#boss16")));
+ specialeffect(EF_SPHERE, AREA, getnpcid(instance_npcname("Type_**Dree#boss16")));
end;
OnTimer17000:
diff --git a/npc/re/jobs/2e/kagerou_oboro.txt b/npc/re/jobs/2e/kagerou_oboro.txt
index efb1faf03..5c54a0114 100644
--- a/npc/re/jobs/2e/kagerou_oboro.txt
+++ b/npc/re/jobs/2e/kagerou_oboro.txt
@@ -1990,15 +1990,15 @@ job_ko,127,125,4 script Red Leopard Joe#ko 4_M_JOB_ASSASSIN,{
mes "[Red Leopard Joe]";
mes "Let's now create a new prototype weapon.";
next;
- specialeffect(EF_GUIDEDATTACK, AREA, getnpcid(0, "Crafting Tools#ko_01"));
+ specialeffect(EF_GUIDEDATTACK, AREA, getnpcid("Crafting Tools#ko_01"));
mes "[Red Leopard Joe]";
mes "Feel free to use tools from here, and...";
next;
- specialeffect(EF_GUIDEDATTACK, AREA, getnpcid(0, "Crafting Tools#ko_02"));
+ specialeffect(EF_GUIDEDATTACK, AREA, getnpcid("Crafting Tools#ko_02"));
mes "[Red Leopard Joe]";
mes "...there...";
next;
- specialeffect(EF_GUIDEDATTACK, AREA, getnpcid(0, "Crafting Tools#ko_03"));
+ specialeffect(EF_GUIDEDATTACK, AREA, getnpcid("Crafting Tools#ko_03"));
setquest 5142;
mes "[Red Leopard Joe]";
mes "...and everywhere else. Now let's begin!!";
@@ -2183,15 +2183,15 @@ L_Weapon:
next;
switch(select("Crafting tools?", "I don't have enough materials.", "How do you expect me to make a weapon?" + getarg(0))) {
case 1:
- specialeffect(EF_GUIDEDATTACK, AREA, getnpcid(0, "Crafting Tools#ko_01"));
+ specialeffect(EF_GUIDEDATTACK, AREA, getnpcid("Crafting Tools#ko_01"));
mes "[Red Leopard Joe]";
mes "Feel free to use tools from here, and...";
next;
- specialeffect(EF_GUIDEDATTACK, AREA, getnpcid(0, "Crafting Tools#ko_02"));
+ specialeffect(EF_GUIDEDATTACK, AREA, getnpcid("Crafting Tools#ko_02"));
mes "[Red Leopard Joe]";
mes "...there...";
next;
- specialeffect(EF_GUIDEDATTACK, AREA, getnpcid(0, "Crafting Tools#ko_03"));
+ specialeffect(EF_GUIDEDATTACK, AREA, getnpcid("Crafting Tools#ko_03"));
mes "[Red Leopard Joe]";
mes "...and everywhere else.";
close;
@@ -2199,7 +2199,7 @@ L_Weapon:
mes "[Red Leopard Joe]";
mes "You haven't brought enough materials?";
next;
- specialeffect(EF_GUIDEDATTACK, AREA, getnpcid(0, "Drawer#ko"));
+ specialeffect(EF_GUIDEDATTACK, AREA, getnpcid("Drawer#ko"));
mes "[Red Leopard Joe]";
mes "Then we'll have to pay a visit to the village. Try the ^FF0000drawer^000000 over there. It'll take you to the village.";
close;
diff --git a/npc/re/jobs/3-1/archbishop.txt b/npc/re/jobs/3-1/archbishop.txt
index 6b04533db..e59492ce5 100644
--- a/npc/re/jobs/3-1/archbishop.txt
+++ b/npc/re/jobs/3-1/archbishop.txt
@@ -1262,7 +1262,7 @@ OnTouch:
mes "So bright and warm....";
next;
mes "- Shoooo -";
- specialeffect(EF_CLOAKING, AREA, getnpcid(0, "Valkyrie Anguhilde#end"));
+ specialeffect(EF_CLOAKING, AREA, getnpcid("Valkyrie Anguhilde#end"));
hideonnpc "Valkyrie Anguhilde#end";
emotion e_omg,1;
next;
diff --git a/npc/re/jobs/3-2/genetic.txt b/npc/re/jobs/3-2/genetic.txt
index e85819f97..d9fb1bce6 100644
--- a/npc/re/jobs/3-2/genetic.txt
+++ b/npc/re/jobs/3-2/genetic.txt
@@ -189,11 +189,11 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "- Zooooooooooooooooing -";
specialeffect EF_ENDURE;
next;
- specialeffect(EF_REPAIRWEAPON, AREA, getnpcid(0, "#from1to2gen"));
+ specialeffect(EF_REPAIRWEAPON, AREA, getnpcid("#from1to2gen"));
mes "- (Screeching Sounds)!!! -";
mes "- (Screeching)!!! -";
next;
- specialeffect(EF_CRASHEARTH, AREA, getnpcid(0, "#from1to2gen"));
+ specialeffect(EF_CRASHEARTH, AREA, getnpcid("#from1to2gen"));
mes "- Bump! Bump! Bump! -";
next;
mes "[Devries]";
@@ -451,8 +451,8 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "Damn!";
next;
if (job_gen == 60) {
- specialeffect(EF_FLASHER, AREA, getnpcid(0, "Super Cultivator#gen"));
- specialeffect(EF_PHARMACY_OK, AREA, getnpcid(0, "Super Cultivator#gen"));
+ specialeffect(EF_FLASHER, AREA, getnpcid("Super Cultivator#gen"));
+ specialeffect(EF_PHARMACY_OK, AREA, getnpcid("Super Cultivator#gen"));
mes "[Devries]";
mes "Popo, look at that!";
mes "That's really a mysterious plant!";
@@ -485,8 +485,8 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
job_gen = 62;
changequest 2215,2216;
} else {
- specialeffect(EF_SPELLBREAKER, AREA, getnpcid(0, "Super Cultivator#gen"));
- specialeffect(EF_PHARMACY_FAIL, AREA, getnpcid(0, "Super Cultivator#gen"));
+ specialeffect(EF_SPELLBREAKER, AREA, getnpcid("Super Cultivator#gen"));
+ specialeffect(EF_PHARMACY_FAIL, AREA, getnpcid("Super Cultivator#gen"));
mes "[Devries]";
mes "Uh oh! You failed, Popo.";
mes "It didn't grow at all, it's withered already.";
diff --git a/npc/re/jobs/3-2/sura.txt b/npc/re/jobs/3-2/sura.txt
index 567469d46..63e689acc 100644
--- a/npc/re/jobs/3-2/sura.txt
+++ b/npc/re/jobs/3-2/sura.txt
@@ -130,8 +130,8 @@ ve_in,237,125,0 script King Crab#job_shu 1_M_PAY_ELDER,{
next;
mes "[King Crab & Sludge Worm]";
mes "Aaaaaahhhhhhhhk!!!!!!!!";
- specialeffect(EF_FIRESPLASHHIT, AREA, getnpcid(0, "King Crab#job_shu"));
- specialeffect(EF_FIRESPLASHHIT, AREA, getnpcid(0, "Sludge Worm#job_shu"));
+ specialeffect(EF_FIRESPLASHHIT, AREA, getnpcid("King Crab#job_shu"));
+ specialeffect(EF_FIRESPLASHHIT, AREA, getnpcid("Sludge Worm#job_shu"));
next;
mes "- What is that amazing power? -";
mes "- I've never seen this -";
diff --git a/npc/re/jobs/novice/academy.txt b/npc/re/jobs/novice/academy.txt
index a69f7008d..3b260d3db 100644
--- a/npc/re/jobs/novice/academy.txt
+++ b/npc/re/jobs/novice/academy.txt
@@ -2328,7 +2328,7 @@ izlude,140,249,7 script Academy Student#0 4_M_NOV_RUMIN,{
close();
}
if (questprogress(7478) == 1 && !questprogress(7479)) {
- specialeffect(EF_STEAL, AREA, getnpcid(0, "Cultivated Red Plant#"+strnpcinfo(NPC_NAME_HIDDEN)));
+ specialeffect(EF_STEAL, AREA, getnpcid("Cultivated Red Plant#"+strnpcinfo(NPC_NAME_HIDDEN)));
donpcevent("Cultivated Red Plant#"+strnpcinfo(NPC_NAME_HIDDEN)+"::OnDisable");
emotion(e_gasp, 1);
emotion(e_heh);
@@ -5693,7 +5693,7 @@ izlude,95,146,5 script Mom#iz 4_F_CAVE1,{
mes("^0000cd[Come to me, honey~]^000000");
next();
enablenpc("Etinifni#"+strnpcinfo(NPC_NAME_HIDDEN));
- specialeffect(EF_PORTAL, AREA, getnpcid(0, "Etinifni#"+strnpcinfo(NPC_NAME_HIDDEN)));
+ specialeffect(EF_PORTAL, AREA, getnpcid("Etinifni#"+strnpcinfo(NPC_NAME_HIDDEN)));
mes("[Etinifni]");
mes("What's up? Where am I?");
next();
@@ -5779,7 +5779,7 @@ izlude,99,138,3 script Romantic Male#iz 4_M_SITDOWN,{
mes("[Romantic Male]");
mes("Are you lifting up our good old memories renting my wedding dress and your tuxedo!! It will strenghthen our relationship, won't it?");
next();
- specialeffect(EF_HEARTCASTING, AREA, getnpcid(0, "Romantic Female#"+strnpcinfo(NPC_NAME_HIDDEN)));
+ specialeffect(EF_HEARTCASTING, AREA, getnpcid("Romantic Female#"+strnpcinfo(NPC_NAME_HIDDEN)));
emotion(e_kis, 0, "Romantic Female#"+strnpcinfo(NPC_NAME_HIDDEN));
mes("[Romantic Male]");
mes("Honey~~ I love you!! Sweetheart~");
@@ -5813,7 +5813,7 @@ izlude,97,138,5 script Romantic Female#iz 4_F_SITDOWN,{
mes("[Romantic Female]");
mes("You are tired of sitting, aren't you?");
next();
- specialeffect(EF_HEARTCASTING, AREA, getnpcid(0, "Romantic Female#"+strnpcinfo(NPC_NAME_HIDDEN)));
+ specialeffect(EF_HEARTCASTING, AREA, getnpcid("Romantic Female#"+strnpcinfo(NPC_NAME_HIDDEN)));
emotion(e_kis, 0, "Romantic Female#"+strnpcinfo(NPC_NAME_HIDDEN));
mes("[Romantic Female]");
mes("My sweetheart!!! I love you!!!");
@@ -5821,7 +5821,7 @@ izlude,97,138,5 script Romantic Female#iz 4_F_SITDOWN,{
mes("[Romantic Male]");
mes("Yes, thank you for sharing your SP! You are also tired, aren't you?");
next();
- specialeffect(EF_HEARTCASTING, AREA, getnpcid(0, "Romantic Male#"+strnpcinfo(NPC_NAME_HIDDEN)));
+ specialeffect(EF_HEARTCASTING, AREA, getnpcid("Romantic Male#"+strnpcinfo(NPC_NAME_HIDDEN)));
emotion(e_kis2, 0, "Romantic Male#"+strnpcinfo(NPC_NAME_HIDDEN));
mes("[Romantic Male]");
mes("My sweetheart!! I love you!!!");
diff --git a/npc/re/quests/eden/eden_iro.txt b/npc/re/quests/eden/eden_iro.txt
index 874e514a3..aae9a5566 100644
--- a/npc/re/quests/eden/eden_iro.txt
+++ b/npc/re/quests/eden/eden_iro.txt
@@ -835,8 +835,8 @@ OnInit:
initnpctimer;
end;
OnTimer5000:
- specialeffect(EF_REFINEOK, AREA, getnpcid(0, "Suhnmi#eden"));
- specialeffect(EF_REFINEOK, AREA, getnpcid(0, "Mighty Hammer#ed"));
+ specialeffect(EF_REFINEOK, AREA, getnpcid("Suhnmi#eden"));
+ specialeffect(EF_REFINEOK, AREA, getnpcid("Mighty Hammer#ed"));
initnpctimer;
end;
}
diff --git a/npc/re/quests/quests_brasilis.txt b/npc/re/quests/quests_brasilis.txt
index ad7aed094..4a60fd2bb 100644
--- a/npc/re/quests/quests_brasilis.txt
+++ b/npc/re/quests/quests_brasilis.txt
@@ -828,7 +828,7 @@ brasilis,203,64,3 script Strange Kid#bra 4_M_KID1,{
brasilis,56,224,7 script Mage Paje#bra 4_M_BIBI,{
mes "[Mage Paje]";
mes "Abracadabra~";
- specialeffect(EF_POISONHIT, AREA, getnpcid(0, "Poring#bra"));
+ specialeffect(EF_POISONHIT, AREA, getnpcid("Poring#bra"));
setarray .@display[0], 4_NFCOCK, 4_CAT, 4_PORING;
setnpcdisplay "Poring#bra",.@display[rand(3)];
if (brazil_gua != 5) close;
@@ -950,7 +950,7 @@ OnTouch_:
mes "Smelling! This smell is from a human!";
mes "Somewhere, a human!";
mes "I got it. You are!!!";
- specialeffect(EF_HIT1, AREA, getnpcid(0, "Jaguar#bra"));
+ specialeffect(EF_HIT1, AREA, getnpcid("Jaguar#bra"));
emotion e_omg,1;
next;
mes "[Jaguar]";
@@ -1875,7 +1875,7 @@ bra_dun02,71,200,3 script Water lily#bra HIDDEN_NPC,{
next;
mes "- munch -";
mes "- mumble mumble mumble -";
- specialeffect(EF_POTION7, AREA, getnpcid(0, "Recluse#bra"));
+ specialeffect(EF_POTION7, AREA, getnpcid("Recluse#bra"));
next;
mes "[Jasi]";
mes "Uh, this taste... is!";
diff --git a/npc/re/quests/quests_malaya.txt b/npc/re/quests/quests_malaya.txt
index 542b7c2cd..091d8527a 100644
--- a/npc/re/quests/quests_malaya.txt
+++ b/npc/re/quests/quests_malaya.txt
@@ -7330,14 +7330,14 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
close;
}
mes "The voice seems to be coming from the bushes near the entrance of the hospital.";
- specialeffect(EF_STEAL, AREA, getnpcid(0, "Bushes#ma"));
+ specialeffect(EF_STEAL, AREA, getnpcid("Bushes#ma"));
malaya_bang = 13;
changequest 11293,11294;
close;
} else if (malaya_bang == 13) {
mes "The voice seems to be coming from the bushes near the entrance of the hospital.";
mes "Let's check around.";
- specialeffect(EF_STEAL, AREA, getnpcid(0, "Bushes#ma"));
+ specialeffect(EF_STEAL, AREA, getnpcid("Bushes#ma"));
close;
} else if (malaya_bang == 14) {
mes "[Nurse Las]";
@@ -8789,11 +8789,11 @@ ma_fild01,172,223,6 script Tattooist#pin 4_M_BARYO_OLD,{
next;
mes "The Tattooist placed the Ancient Grudges around the workplace.";
next;
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#01"));
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#02"));
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#03"));
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#04"));
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#05"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#01"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#02"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#03"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#04"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#05"));
mes "The Ancient Grudge lit up and tools starts to glow. He smiled satisfyingly at the glowing tools and materials.";
next;
mes "And then "+.@name$+" stared intensely at the doll as if to remember every detail of it in his head.";
@@ -8903,11 +8903,11 @@ ma_fild01,172,223,6 script Tattooist#pin 4_M_BARYO_OLD,{
}
mes "He held up the powder in both hands and then blew it onto the drawing.";
next;
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#01"));
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#02"));
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#03"));
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#04"));
- specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid(0, "Ancient Grudge#05"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#01"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#02"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#03"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#04"));
+ specialeffect(EF_FLAMELAUNCHER, AREA, getnpcid("Ancient Grudge#05"));
mes "All Ancient Grudges started to burn and then the glowing light from the "+.@name$+" drawing faded away.";
next;
specialeffect EF_LIGHTSPHERE;
diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql
index da69f9fd3..49fb9d24a 100644
--- a/sql-files/item_db.sql
+++ b/sql-files/item_db.sql
@@ -696,6 +696,7 @@ REPLACE INTO `item_db` VALUES ('1312','Orcish_Axe_C','Orcish Axe','4','6','0','0
REPLACE INTO `item_db` VALUES ('1313','Tourist_Axe','Tourist Axe','4','6','0','0','500','77','0','0','1','0','414947','63','2','2','1','1',NULL,'0','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2;','','');
REPLACE INTO `item_db` VALUES ('1314','F_Tomahawk_C','Tomahawk','4','7','2','1','0','200','0','0','1','0','279714','63','2','34','4','0',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Wind;','','');
REPLACE INTO `item_db` VALUES ('1315','F_Right_Epsilon_C','Light Epsilon','4','7','1','0','0','229','0','0','1','0','279714','63','2','34','4','1',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bStr,10;','','');
+REPLACE INTO `item_db` VALUES ('1326','War_Axe_IL','War_Axe_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1351','Battle_Axe','Battle Axe','4','7','5400','2700','1500','80','0','0','1','3','279714','63','2','34','1','3',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1352','Battle_Axe_','Battle Axe','4','7','5400','2700','1500','80','0','0','1','4','279714','63','2','34','1','3',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1353','Battle_Axe__','Battle Axe','4','7','5400','2700','1500','80','0','0','1','0','279714','63','2','34','1','3',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -1033,6 +1034,10 @@ REPLACE INTO `item_db` VALUES ('1826','Krieger_Knuckle1','Glorious Claw','4','12
REPLACE INTO `item_db` VALUES ('1827','Krieger_Knuckle2','Glorious Fist','4','12','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus2 bCastrate,MO_EXTREMITYFIST,-100; bonus4 bAutoSpellOnSkill,MO_EXPLOSIONSPIRITS,CH_SOULCOLLECT,1,1000; }','','');
REPLACE INTO `item_db` VALUES ('1828','Monk_Knuckle','Monk Knuckle','4','12','20','10','0','150','0','0','1','0','33024','63','2','2','4','0',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; bonus2 bSkillAtk,MO_FINGEROFFENSIVE,25;','','');
REPLACE INTO `item_db` VALUES ('1829','Fist_C','Fist','4','12','0','0','0','150','0','0','1','0','33024','63','2','2','3','1',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','','');
+REPLACE INTO `item_db` VALUES ('1846','Combo_Battle_Glove_IL','Combo_Battle_Glove_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('1848','Rebeginer_SR_Nuckle','Rebeginer_SR_Nuckle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('1862','Burning_Knuckle_OS','Burning_Knuckle_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('1864','Evt_Iron_Nail_K','Evt_Iron_Nail_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1901','Violin','Violin','4','13','4000','2000','700','50','0','0','1','3','524288','63','1','2','1','2',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1902','Violin_','Violin','4','13','4000','2000','700','50','0','0','1','4','524288','63','1','2','1','2',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1903','Mandolin','Mandolin','4','13','18000','9000','400','90','0','0','1','2','524288','63','1','2','2','14',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -1103,6 +1108,10 @@ REPLACE INTO `item_db` VALUES ('2003','Destruction_Rod_M','Staff of Destruction'
REPLACE INTO `item_db` VALUES ('2004','Kronos','Kronos','4','23','20','10','1000','30','0','0','1','0','66052','2','2','34','4','50',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,20; bonus bInt,3+(getrefine()/2); bonus bMaxHP,300+(50*getrefine()/2); autobonus \"{ bonus bMatkRate,12; bonus bUseSPrate,20; }\",1,5000,BF_MAGIC,\"{ specialeffect(EF_ENHANCE, AREA, playerattached()); }\";','','');
REPLACE INTO `item_db` VALUES ('2005','Dea_Staff','Dea Staff','4','23','20','10','1000','30','0','0','1','1','33040','2','2','34','3','50',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bMatkRate,15+getrefine()/2; bonus bInt,6; bonus bVit,2; autobonus3 \"{ }\",20,1000,AL_HEAL,\"{ specialeffect(EF_MAGICALATTHIT, AREA, playerattached()); heal 0,200; }\";','','');
REPLACE INTO `item_db` VALUES ('2006','G_Staff_Of_Light','Staff Of Light','4','23','20','10','1900','80','0','0','1','0','8454660','63','2','34','4','60',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','//bonus bMatk,150; bonus bAtkEle,Ele_Holy; bonus bInt,6;','','');
+REPLACE INTO `item_db` VALUES ('2039','Wizardy_Staff_IL','Wizardy_Staff_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('2046','Rebeginer_WL_Staff','Rebeginer_WL_Staff','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('2051','Survival_Staff_IL','Survival_Staff_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('2054','Evt_Iron_Staff','Evt_Iron_Staff','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('2101','Guard','Guard','5','0','500','250','300','0','0','3','0','0','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('2102','Guard_','Guard','5','0','500','250','300','0','0','3','0','1','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('2103','Buckler','Buckler','5','0','14000','7000','600','0','0','4','0','0','972274','63','2','32','0','0',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4242,6 +4251,7 @@ REPLACE INTO `item_db` VALUES ('10035','Windup_Spring','Spring','8','0','20','10
REPLACE INTO `item_db` VALUES ('10036','Hell_Horn','Horn Of Hell','8','0','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('10037','Black_Butterfly_Mask','Black Butterfly Mask','8','0','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('10038','Horn_Protector','Horn Barrier','8','0','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('10042','Dark_Mane','Dark_Mane','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11000','Prontera_Book_01','History book of Prontera','3','0','8000','4000','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11001','Adventure_Story01','Adventure Story Vol.1','3','0','8000','4000','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11002','Great_Chef_Orleans01','Chef King Orleans Vol.1','3','0','8000','4000','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4332,6 +4342,15 @@ REPLACE INTO `item_db` VALUES ('11529','MAAMOUL_','Maamoul','0','0','500','250',
REPLACE INTO `item_db` VALUES ('11530','Jujube','Jujube','0','0','10','5','100','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 30,0;','','');
REPLACE INTO `item_db` VALUES ('11531','Coffee','Coffee','0','0','10','5','100','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 0,10;','','');
REPLACE INTO `item_db` VALUES ('11602','Catnip_Fruit','Catnip Fruit','0','0','15','7','1','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(10, 40), 0;','','');
+REPLACE INTO `item_db` VALUES ('11607','Crepe','Crepe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11608','Chocolate_Egg','Chocolate_Egg','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11609','Yummy_Cookie_Egg','Yummy_Cookie_Egg','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11611','Pop_Corn','Pop_Corn','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11612','Aromatic_Pop_Corn','Aromatic_Pop_Corn','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11614','Fresh_Milk','Fresh_Milk','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11615','Sweet_Potato_','Sweet_Potato_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11620','Bearopy','Bearopy','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11625','Aromatic_Pop_Corn_','Aromatic_Pop_Corn_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11701','Girl_Bunch_Of_Flower','Girl\'s Bouquet','0','0','20','10','50','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0;','','');
REPLACE INTO `item_db` VALUES ('11702','Moon_Cookie','Moon Cookie','0','0','0','0','300','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11703','Mysterious_Blood','Mystery Blood','0','0','0','0','30','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 0,rand(25,35);','','');
@@ -5163,6 +5182,8 @@ REPLACE INTO `item_db` VALUES ('13109','Wasteland_Outlaw_C','Wasteland Outlaw','
REPLACE INTO `item_db` VALUES ('13110','Krieger_Pistol1','Glorious Pistol','4','17','0','0','0','80','0','0','7','0','16777216','63','2','34','4','80',NULL,'1','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((getrefine()-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,GS_RAPIDSHOWER,GS_GLITTERING,1,1000; bonus2 bSkillAtk,GS_RAPIDSHOWER,getrefine()*2; }','','');
REPLACE INTO `item_db` VALUES ('13112','P_Revolver1','Eden Revlover I','4','17','0','0','0','4','0','0','7','0','16777216','63','2','34','1','26',NULL,'0','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','','');
REPLACE INTO `item_db` VALUES ('13113','P_Revolver2','Eden Revlover II','4','17','0','0','0','60','0','0','7','0','16777216','63','2','34','1','40',NULL,'0','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','','');
+REPLACE INTO `item_db` VALUES ('13144','Rebeginer_RL_Gun','Rebeginer_RL_Gun','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13146','Calf_Deathadder','Calf_Deathadder','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13150','Branch','Branch','4','18','3000','1500','500','50','0','0','9','3','16777216','63','2','34','1','1',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13151','The_Cyclone','Cyclone','4','18','17500','8750','700','120','0','0','9','1','16777216','63','2','34','2','24',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCritical,10;','','');
REPLACE INTO `item_db` VALUES ('13152','The_Cyclone_','Cyclone','4','18','17500','8750','700','120','0','0','9','2','16777216','63','2','34','2','24',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCritical,10;','','');
@@ -5253,6 +5274,9 @@ REPLACE INTO `item_db` VALUES ('13306','BF_Huuma_Shuriken2','Valorous Huuma Fron
REPLACE INTO `item_db` VALUES ('13307','Krieger_Huuma_Shuriken1','Glorious Shuriken','4','22','20','10','0','55','0','0','1','0','33554432','63','2','34','4','80',NULL,'1','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bMatkRate,15; autobonus \"{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }\",50,10000; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,(getrefine()-3)*(getrefine()-3); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus5 bAutoSpellOnSkill,NJ_ISSEN,AL_HEAL,10,1000,1; bonus4 bAutoSpellOnSkill,NJ_HUUMA,NPC_CRITICALWOUND,2,200; }','','');
REPLACE INTO `item_db` VALUES ('13308','Huuma_Blaze_I','Huuma Blaze Shuriken','4','22','0','0','0','230','0','0','1','0','33554432','63','2','34','4','0',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtkEle,Ele_Fire; bonus bDex,2;','','');
REPLACE INTO `item_db` VALUES ('13309','Huuma_Giant_Wheel_C','Huuma Giant Wheel Shuriken','4','22','0','0','0','99','0','0','1','0','33554432','63','2','34','4','1',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13337','Huuma_Fluttering_Snow_IL','Huuma_Fluttering_Snow_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13338','Huuma_Bird_Wing_IL','Huuma_Bird_Wing_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13341','Rebeginer_KO_Humma','Rebeginer_KO_Humma','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13400','Cutlas_','Cutlus','4','2','20','10','900','150','0','0','1','1','414946','63','2','2','4','40',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill SM_BASH,5; bonus bStr,2; bonus bDef,1;','','');
REPLACE INTO `item_db` VALUES ('13401','Excalibur_C','Excalibur','4','2','1','0','0','199','0','0','1','0','414946','63','2','2','4','1',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bInt,10; bonus bLuk,10; bonus bAtkEle,Ele_Holy;','','');
REPLACE INTO `item_db` VALUES ('13402','Cutlas_C','Cutlus','4','2','2','1','0','185','0','0','1','0','414946','63','2','2','4','0',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill SM_BASH,5; bonus bStr,2; bonus bDef,1;','','');
@@ -5276,6 +5300,10 @@ REPLACE INTO `item_db` VALUES ('13419','Holy_Saber','Holy saber','4','2','20','1
REPLACE INTO `item_db` VALUES ('13420','Honglyuns_Sword','Honglyun\'s Sword','4','2','20','10','1200','160','0','0','1','1','414946','63','2','2','4','70',NULL,'1','0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Fire; bonus bStr,2; bonus bInt,2;','','');
REPLACE INTO `item_db` VALUES ('13421','Ruber','Ruber','4','2','20','10','1500','170','0','0','1','1','279714','2','2','2','3','50',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{ bonus2 bSkillAtk,KN_BOWLINGBASH,20; bonus2 bSkillAtk,SM_BASH,20; }\",5,15000,BF_WEAPON,\"{ specialeffect(EF_ENHANCE, AREA, playerattached()); }\";','','');
REPLACE INTO `item_db` VALUES ('13422','Flamberge_C','Flamberge','4','2','0','0','0','185','0','0','1','0','16512','63','2','2','3','1',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db` VALUES ('13469','Immaterial_Sword_IL','Immaterial_Sword_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13483','Rebeginer_GN_Sword','Rebeginer_GN_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13493','Cannon_Rapier_OS','Cannon_Rapier_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13495','Evt_Bluefire_Sword','Evt_Bluefire_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13500','Insurance60_Package','Life Insurrance Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14500,10;','','');
REPLACE INTO `item_db` VALUES ('13501','Assorted_Scroll_Box','Experience Scroll Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13502','Drooping_Kitty_Box','Refined Drooping Cat Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 5279,604800;','','');
@@ -6184,12 +6212,29 @@ REPLACE INTO `item_db` VALUES ('14608','Luxurious_Dinner_E','Manchu-Han Imperial
REPLACE INTO `item_db` VALUES ('14609','Spoiled_Cuisine','Spoiled Cuisine','2','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 10,10;','','');
REPLACE INTO `item_db` VALUES ('15000','Bone_Plate','Bone Plate','5','0','20','10','1000','0','0','7','0','1','414946','2','2','16','0','85',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bMdef,3; bonus2 bIgnoreDefRate,RC_DemiPlayer,10; bonus2 bIgnoreDefRate,RC_Brute,10; bonus3 bAutoSpellWhenHit,NPC_WIDEBLEEDING,1,10;','','');
REPLACE INTO `item_db` VALUES ('15001','Odins_Blessing_I','Odin\'s Blessing','5','0','0','0','0','0','0','10','0','0','18446744073709551614','63','2','16','0','0',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15212','YSF01_Plate','YSF01_Plate','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15246','True_Hunting_Mail','True_Hunting_Mail','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15247','R_Hunting_Mail','R_Hunting_Mail','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15250','Rebeginer_Suits','Rebeginer_Suits','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15280','S_CriticalHit_Armor','S_CriticalHit_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15348','Goibne_Armor_IL','Goibne_Armor_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15376','Illusion_Armor_A','Illusion_Armor_A','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15377','Illusion_Armor_B','Illusion_Armor_B','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15383','Time_Overload_Robe','Time_Overload_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15388','Schmidt_Suits','Schmidt_Suits','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15389','Schmidt_Manteau','Schmidt_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('16000','Erde','Erde','4','8','20','10','500','130','0','0','1','2','312754','2','2','2','4','50',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,AM_ACIDTERROR,20; bonus2 bSkillAtk,AM_DEMONSTRATION,20; bonus bMaxSP,50; bonus bHealPower,10;','','');
REPLACE INTO `item_db` VALUES ('16001','Red_Square_Bag','Red Square Bag','4','8','20','10','500','130','0','0','1','2','312754','2','2','2','3','50',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','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;','','');
REPLACE INTO `item_db` VALUES ('16002','Stunner_C','Stunner','4','8','0','0','0','175','0','0','1','0','33040','63','2','2','3','1',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddEff,Eff_Stun,1000; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','','');
REPLACE INTO `item_db` VALUES ('16030','Pilebuncker_S','Pile Bunker S','4','8','0','0','3000','400','0','0','1','1','1024','56','2','2','4','130',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate, (getrefine() / 2);','','');
REPLACE INTO `item_db` VALUES ('16031','Pilebuncker_P','Pile Bunker P','4','8','0','0','4000','450','0','0','1','0','1024','56','2','2','4','130',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk, (getrefine() * 5);','','');
REPLACE INTO `item_db` VALUES ('16032','Pilebuncker_T','Pile Bunker T','4','8','0','0','3500','400','0','0','1','1','1024','56','2','2','4','130',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUseSPrate, - getrefine();','','');
+REPLACE INTO `item_db` VALUES ('16063','Long_Mace_IL','Long_Mace_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16065','Iron_Driver_IL','Iron_Driver_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16075','Rebeginer_NC_Mace','Rebeginer_NC_Mace','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16076','Rebeginer_N2_Mace','Rebeginer_N2_Mace','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16088','Saphir_Hall_OS','Saphir_Hall_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16089','Ultio_Spes_OS','Ultio_Spes_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('16134','King_Frog_Hat_Box','Frog King Hat Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5528,1;','','');
REPLACE INTO `item_db` VALUES ('16135','Evils_Bone_Hat_Box','Satanic Bone Helm Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','getitem 5529,1;','','');
REPLACE INTO `item_db` VALUES ('16247','Dragon_Arhat_Mask_Box','Dragon Arhat Mask Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5565,1;','','');
@@ -6207,6 +6252,27 @@ REPLACE INTO `item_db` VALUES ('16843','Beauty_Gift_Box','Beauty Gift Box','2','
REPLACE INTO `item_db` VALUES ('16854','Clothing_Dye_Box','Clothing Dye Box','2','0','0','0','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem(Clothing_Dye_Coupon, 1);','','');
REPLACE INTO `item_db` VALUES ('16855','Clothing_Dye_Orig_Box','Clothing Dye Orig Box','2','0','0','0','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem(Clothing_Dye_Coupon2, 1);','','');
REPLACE INTO `item_db` VALUES ('17336','Jeremy_Beauty_Coupon_Box','Jeremy\'s Beauty Coupon Box','2','0','0','0','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem(Cash_Hair_Coupon, 1);','','');
+REPLACE INTO `item_db` VALUES ('17774','Almighty_Plus_Box3','Almighty_Plus_Box3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17775','Almighty100_PlusBox3','Almighty100_PlusBox3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17882','Refine_Ore_Box17_Set10','Refine_Ore_Box17_Set10','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17883','Refine_Ore_Box17','Refine_Ore_Box17','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17884','HD_Refine_Ore_Box5','HD_Refine_Ore_Box5','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17885','HD_High_Refine_Box3','HD_High_Refine_Box3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17886','Infinity_Box','Infinity_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17887','Infinity_10_Box','Infinity_10_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17894','New_Vigorgra_Package','New_Vigorgra_Package','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17895','New_Vigorgra_Set','New_Vigorgra_Set','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17914','2017_GStar_CostumeBox','2017_GStar_CostumeBox','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17923','Refine_Ore_Box18','Refine_Ore_Box18','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17924','Refine_Ore_Box18_Set10','Refine_Ore_Box18_Set10','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17925','HD_Refine_Ore_Box6','HD_Refine_Ore_Box6','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17926','HD_High_Refine_Box4','HD_High_Refine_Box4','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17935','New_3_Potion_pack','New_3_Potion_pack','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17936','New_3_Potion_10pack','New_3_Potion_10pack','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17940','Nyangvine_Box10_3','Nyangvine_Box10_3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17941','Nyangvine_Box100_3','Nyangvine_Box100_3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17944','Almighty_Plus_Box4','Almighty_Plus_Box4','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17945','Almighty100_PlusBox4','Almighty100_PlusBox4','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18000','Cannon_Ball','Cannon Ball','10','8','100','50','10','100','0','0','0','0','263168','8','2','32768','0','99',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18001','Holy_Cannon_Ball','Holy Cannon Ball','10','8','200','100','10','120','0','0','0','0','263168','8','2','32768','0','99',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy;','','');
REPLACE INTO `item_db` VALUES ('18002','Dark_Cannon_Ball','Dark Cannon Ball','10','8','200','100','10','120','0','0','0','0','263168','8','2','32768','0','99',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Dark;','','');
@@ -6215,6 +6281,16 @@ REPLACE INTO `item_db` VALUES ('18004','Iron_Cannon_Ball','Iron Cannon Ball','10
REPLACE INTO `item_db` VALUES ('18100','Shooting_Star_C','Shooting Star','4','11','20','10','0','190','0','0','5','0','526336','63','2','34','4','1',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLongAtkRate,20;','','');
REPLACE INTO `item_db` VALUES ('18101','F_Bow_Of_Rudra_C','Rudra Bow','4','11','2','1','0','185','0','0','5','0','657480','63','2','34','4','0',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bInt,5; skill AL_CURE,1; skill AL_HEAL,1; bonus2 bResEff,Eff_Poison,5000; bonus2 bResEff,Eff_Curse,5000; bonus2 bResEff,Eff_Silence,5000; bonus2 bResEff,Eff_Confusion,5000; bonus2 bResEff,Eff_Blind,5000;','','');
REPLACE INTO `item_db` VALUES ('18102','E_Bow_Of_Rudra_C','Rudra Bow','4','11','2','1','0','185','0','0','5','0','657480','63','2','34','4','0',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bInt,5; skill AL_CURE,1; skill AL_HEAL,1; bonus2 bResEff,Eff_Poison,5000; bonus2 bResEff,Eff_Curse,5000; bonus2 bResEff,Eff_Silence,5000; bonus2 bResEff,Eff_Confusion,5000; bonus2 bResEff,Eff_Blind,5000;','','');
+REPLACE INTO `item_db` VALUES ('18149','Balistar_IL','Balistar_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18165','Rebeginer_RN_Bow','Rebeginer_RN_Bow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18166','Rebeginer_WM_Bow','Rebeginer_WM_Bow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18170','Neev_Bow_Of_Rogue','Neev_Bow_Of_Rogue','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18174','Hunter_Bow_IL','Hunter_Bow_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18178','Virtual_Bow_OS','Virtual_Bow_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18179','MH_P89_OS','MH_P89_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18180','AC_B44_OS','AC_B44_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18182','Evt_Royal_Bow_K','Evt_Royal_Bow_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18183','Evt_Narcis_Bow','Evt_Narcis_Bow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18500','Cheer_Scarf6','Cheer Scarf6','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1','0','1',NULL,'0','0','369','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18501','Cheer_Scarf8','Cheer Scarf8','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1','0','1',NULL,'0','0','369','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18502','Cheer_Scarf10','Cheer Scarf10','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1','0','1',NULL,'0','0','369','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6231,14 +6307,430 @@ REPLACE INTO `item_db` VALUES ('18612','White_Musang_Hat','White Musang Hat','5'
REPLACE INTO `item_db` VALUES ('18613','Black_Musang_Hat','Black Musang Hat','5','0','40','20','200','0','0','3','0','1','18446744073709551615','63','2','256','0','0',NULL,'1','0','771','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; bonus bDex,2; bonus bAgi,1; bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db` VALUES ('18620','Heart_Eyepatch','Heart Eyepatch','5','0','5','2','200','0','0','2','0','0','18446744073709551615','63','2','512','0','20',NULL,'1','0','779','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18656','Wit_Pumpkin_Hat','Witch\'s Pumpkin Hat','5','0','20','10','300','0','0','10','0','0','18446744073709551615','63','2','256','0','20',NULL,'1','0','717','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,10; bonus bStr,2; bonus bInt,2; bonus2 bMagicAddRace,RC_Undead,15; bonus2 bMagicAddRace,RC_Demon,15;','','');
+REPLACE INTO `item_db` VALUES ('19209','Nurse_Cap_IL','Nurse_Cap_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19210','Apple_Of_Archer_IL','Apple_Of_Archer_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19223','Cap_IL','Cap_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19247','Fancy_Flower_IL','Fancy_Flower_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19264','GoldFish_Hat','GoldFish_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19265','Smoky_TransformHat','Smoky_TransformHat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19277','Soda_In_Mouth','Soda_In_Mouth','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19291','C_Shiba_Inu','C_Shiba_Inu','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19294','C_CatEars_Cyber_HeadP_R','C_CatEars_Cyber_HeadP_R','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19300','Dog_Officer','Dog_Officer','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19310','Rebeginer_Cap','Rebeginer_Cap','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19339','Egg_Crispinette','Egg_Crispinette','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19344','Headband_Of_Power_IL','Headband_Of_Power_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19366','Goibne_Helmet_IL','Goibne_Helmet_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19382','Pop_Popcorn_Hat','Pop_Popcorn_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19389','E_Oxygen_Mask','E_Oxygen_Mask','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19396','Racing_C_Star','Racing_C_Star','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19397','Racing_C_Soul','Racing_C_Soul','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19404','Biting_Off_Rideword','Biting_Off_Rideword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19500','T_Mr_Smile','T Mr Smile','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','6144','0','0',NULL,'0','0','65','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2;','','');
REPLACE INTO `item_db` VALUES ('19501','T_Spinx_Helm','T Spinx Helm','5','0','0','0','0','0','0','0','0','1','18446744073709551615','63','2','5120','0','0',NULL,'0','0','137','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19504','T_Sunglasses','T Sunglasses','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','2048','0','0',NULL,'0','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19505','T_Cigarette','T Cigarette','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','4096','0','0',NULL,'0','0','54','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19506','T_Valkyrie_Feather_Band','T Valkyrie Feather Band','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1024','0','0',NULL,'1','0','300','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19507','Fine_Sun','Clear Sun','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1024','0','1',NULL,'0','0','654','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20514','C_Thanatos_Sword','C_Thanatos_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20515','C_Magic_Circle','C_Magic_Circle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20516','C_Wings_of_Michael','C_Wings_of_Michael','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20517','C_GiantCatBag_TW','C_GiantCatBag_TW','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20528','C_GoldButterfly_Wing','C_GoldButterfly_Wing','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20530','C_Wings_of_Gabriel','C_Wings_of_Gabriel','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20533','C_PinkButterfly_Wing_T','C_PinkButterfly_Wing_T','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20535','C_Digital_Space','C_Digital_Space','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20838','Muffler_IL','Muffler_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20840','Cape_Of_Ancient_Lord_IL','Cape_Of_Ancient_Lord_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20847','Clack_Of_Servival_IL','Clack_Of_Servival_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20856','YSF01_Manteau','YSF01_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20902','True_Hunting_Manteau','True_Hunting_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20903','R_Hunting_Manteau','R_Hunting_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20906','Rebeginer_Manteau','Rebeginer_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20923','Goibne_Shoulder_IL','Goibne_Shoulder_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20933','Illusion_Engine_A','Illusion_Engine_A','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20934','Illusion_Engine_B','Illusion_Engine_B','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20939','Time_Overload_Hood','Time_Overload_Hood','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20940','Violet_Halo','Violet_Halo','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20944','Fairy_Cloth','Fairy_Cloth','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('21037','Rebeginer_RK_T_Sword','Rebeginer_RK_T_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('21047','Beam_Claymore_OS','Beam_Claymore_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('21049','Evt_Oriental_Sword','Evt_Oriental_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22133','Shoes_IL','Shoes_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22141','YSF01_Greave','YSF01_Greave','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22168','True_Hunting_Boots','True_Hunting_Boots','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22169','R_Hunting_Boots','R_Hunting_Boots','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22171','ShoesOfGuardsman','ShoesOfGuardsman','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22173','Rebeginer_Boots','Rebeginer_Boots','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22190','Boots_IL','Boots_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22192','Goibne_Boots_IL','Goibne_Boots_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22196','Illusion_Leg_A','Illusion_Leg_A','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22197','Illusion_Leg_B','Illusion_Leg_B','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22204','Time_Overload_Boots','Time_Overload_Boots','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('22540','Runstone_Lux','Lux Anima Rune','11','0','2','1','100','0','0','0','0','0','128','8','2','0','0','0',NULL,'0','1','0','0','0','0','60000','475',NULL,'0',NULL,'20','1','0','itemskill RK_LUXANIMA,1;','','');
REPLACE INTO `item_db` VALUES ('22777','Buff_Gift_Set','Buff Gift Set','2','0','20','10','100','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','getitem 14534,5; getitem 12215,5; getitem 12216,5;','','');
REPLACE INTO `item_db` VALUES ('22808','Special_Gift_Box','Special Gift Box','2','0','10','5','100','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('22837','Integer_Time','Integer Time','2','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','50',NULL,'0','1','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','TmpRouletteBronze += 1;','','');
REPLACE INTO `item_db` VALUES ('22876','Old_Money_Pocket','Old Money Pocket','2','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','Zeny += rand(500, 550);','','');
+REPLACE INTO `item_db` VALUES ('23242','Fried_Chicken','Fried_Chicken','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23243','Fried_Chicken_1','Fried_Chicken_1','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23256','Elixir_Bandage','Elixir_Bandage','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23257','Dew_Of_Old_Tree','Dew_Of_Old_Tree','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23258','Foul_Rotten_Meat','Foul_Rotten_Meat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23259','St_Cupcake','St_Cupcake','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23260','Parfait','Parfait','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23261','Macaron','Macaron','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23277','Mado_Box','Mado_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23332','Costama_EggV01','Costama_EggV01','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23342','Vend_Arbeit1_1Lv','Vend_Arbeit1_1Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23343','Vend_Arbeit1_2Lv','Vend_Arbeit1_2Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23344','Vend_Arbeit1_3Lv','Vend_Arbeit1_3Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23345','Buy_Arbeit1_1Lv','Buy_Arbeit1_1Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23346','Buy_Arbeit1_2Lv','Buy_Arbeit1_2Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23347','Buy_Arbeit1_3Lv','Buy_Arbeit1_3Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23348','Vend_Arbeit_1Lv','Vend_Arbeit_1Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23349','Vend_Arbeit_2Lv','Vend_Arbeit_2Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23350','Vend_Arbeit_3Lv','Vend_Arbeit_3Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23351','Buy_Arbeit_1Lv','Buy_Arbeit_1Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23352','Buy_Arbeit_2Lv','Buy_Arbeit_2Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23353','Buy_Arbeit_3Lv','Buy_Arbeit_3Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23354','Vend_Arbeit1_1Lv_','Vend_Arbeit1_1Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23355','Vend_Arbeit1_2Lv_','Vend_Arbeit1_2Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23356','Vend_Arbeit1_3Lv_','Vend_Arbeit1_3Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23357','Buy_Arbeit1_1Lv_','Buy_Arbeit1_1Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23358','Buy_Arbeit1_2Lv_','Buy_Arbeit1_2Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23359','Buy_Arbeit1_3Lv_','Buy_Arbeit1_3Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23405','Green_Scroll_K2','Green_Scroll_K2','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23440','Sentimental_Scroll','Sentimental_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23444','July_Hair_Box','July_Hair_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23446','Savage_Trap','Savage_Trap','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23473','Infinity_Scroll','Infinity_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23475','Infinity_Drink','Infinity_Drink','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23484','Firstaid_Box_5','Firstaid_Box_5','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23485','Firstaid_Box_10','Firstaid_Box_10','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23486','Firstaid_Box_15','Firstaid_Box_15','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23487','Firstaid_Box_20','Firstaid_Box_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23488','Firstaid_Box_25','Firstaid_Box_25','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23489','Firstaid_Box_30','Firstaid_Box_30','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23490','Firstaid_Box_35','Firstaid_Box_35','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23491','Firstaid_Box_40','Firstaid_Box_40','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23492','Firstaid_Box_45','Firstaid_Box_45','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23493','Firstaid_Box_50','Firstaid_Box_50','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23494','Firstaid_Box_55','Firstaid_Box_55','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23495','Firstaid_Box_60','Firstaid_Box_60','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23496','Firstaid_Box_65','Firstaid_Box_65','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23497','Firstaid_Box_70','Firstaid_Box_70','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23498','Firstaid_Box_75','Firstaid_Box_75','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23499','Firstaid_Box_80','Firstaid_Box_80','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23500','Firstaid_Box_85','Firstaid_Box_85','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23501','Firstaid_Box_90','Firstaid_Box_90','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23502','Firstaid_Box_95','Firstaid_Box_95','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23503','Red_Potion_B_20','Red_Potion_B_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23504','Orange_Potion_B_20','Orange_Potion_B_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23505','Yellow_Potion_B_20','Yellow_Potion_B_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23506','White_Potion_B_20','White_Potion_B_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23533','Vote_Rose','Vote_Rose','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23537','Bloody_Scroll','Bloody_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23549','Snow_Cookie','Snow_Cookie','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23550','Winter_Cookie','Winter_Cookie','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23551','Festi_Cookie','Festi_Cookie','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23552','Flora_Cookie','Flora_Cookie','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23554','Snow_Festa_CardPack','Snow_Festa_CardPack','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23575','Adventurer_Box_1','Adventurer_Box_1','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23576','Adventurer_Box_15','Adventurer_Box_15','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23577','Adventurer_Box_30','Adventurer_Box_30','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23578','Adventurer_Box_45','Adventurer_Box_45','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23579','Adventurer_Box_60','Adventurer_Box_60','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23580','Adventurer_Box_75','Adventurer_Box_75','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23581','Adventurer_Box_90','Adventurer_Box_90','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23582','E_Wing_Of_Fly_3Day_Box','E_Wing_Of_Fly_3Day_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23583','Rebeginer_Box','Rebeginer_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23584','Rebeginer_S_Box','Rebeginer_S_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23585','Rebeginer_Box_100','Rebeginer_Box_100','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23586','Rebeginer_Box_110','Rebeginer_Box_110','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23587','Rebeginer_Box_120','Rebeginer_Box_120','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23618','2017_Special_Scroll','2017_Special_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23650','Ice_Scroll','Ice_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23661','2018_New_Year_Scroll','2018_New_Year_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23683','EVT_JAN02KR','EVT_JAN02KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23700','Lunar_New_Year_Scroll','Lunar_New_Year_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23706','Reactor_Z','Reactor_Z','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23707','Reactor_Z_','Reactor_Z_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23710','2018_Spring_Scroll','2018_Spring_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23723','Melon_Bread','Melon_Bread','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23765','Costama_EggV02','Costama_EggV02','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23771','Mysterious_Plastic','Mysterious_Plastic','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23772','EP17_1_SPC01','EP17_1_SPC01','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23773','EP17_1_SPC02','EP17_1_SPC02','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23774','EP17_1_SPC03','EP17_1_SPC03','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23775','EP17_1_SPC04','EP17_1_SPC04','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23817','Bs_Making_Scrolls','Bs_Making_Scrolls','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23878','StarSoul_Scroll','StarSoul_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23897','2018_Jump_Thx_Box','2018_Jump_Thx_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23898','Comp_Power_Booster','Comp_Power_Booster','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23899','Comp_Almighty','Comp_Almighty','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23900','Time_Overload_Box','Time_Overload_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23901','110LVUP','110LVUP','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23921','Season_Evt_Reward','Season_Evt_Reward','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23962','Malang_Cat_Can2','Malang_Cat_Can2','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24380','Sentimental_Weapone_S','Sentimental_Weapone_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24381','Sentimental_Earring_S','Sentimental_Earring_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24382','Sentimental_Pendant_S','Sentimental_Pendant_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24383','Enchanting_Weapone_S','Enchanting_Weapone_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24384','Enchanting_Earring_S','Enchanting_Earring_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24385','Enchanting_Pendant_S','Enchanting_Pendant_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24386','S_Infinity_Weapon','S_Infinity_Weapon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24387','Rebeginer_Armor_S','Rebeginer_Armor_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24388','Rebeginer_Shield_S','Rebeginer_Shield_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24389','Rebeginer_Shoes_S','Rebeginer_Shoes_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24390','Rebeginer_Weapon_S','Rebeginer_Weapon_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24391','Rebeginer_Earring_S','Rebeginer_Earring_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24392','Rebeginer_Pendant_S','Rebeginer_Pendant_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24393','S_Physical_Shoes','S_Physical_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24394','S_Physical_Shield','S_Physical_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24395','S_Physical_Armor','S_Physical_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24396','S_Magical_Shoes','S_Magical_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24397','S_Magical_Shield','S_Magical_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24398','S_Magical_Armor','S_Magical_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24399','S_ImmunedAthena_Shield','S_ImmunedAthena_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24400','S_HardChamption_Shoes','S_HardChamption_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24401','S_KingbirdAncient_Armor','S_KingbirdAncient_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24402','S_Rebellion_Armor','S_Rebellion_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24403','S_Kagerou_Armor','S_Kagerou_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24404','S_Oboro_Armor','S_Oboro_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24405','S_Rebellion_Shoes','S_Rebellion_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24406','S_Kagerou_Shoes','S_Kagerou_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24407','S_Oboro_Shoes','S_Oboro_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24408','S_DoramPhysical_Armor','S_DoramPhysical_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24409','S_DoramPhysical_Shoes','S_DoramPhysical_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24410','S_DoramMagical_Armor','S_DoramMagical_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24411','S_DoramMagical_Shoes','S_DoramMagical_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24412','S_Star_Emperor_Armor','S_Star_Emperor_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24413','S_Star_Emperor_Shoes','S_Star_Emperor_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24414','S_Soul_Reaper_Armor','S_Soul_Reaper_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24415','S_Soul_Reaper_Shoes','S_Soul_Reaper_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24416','S_Timeoverload_Weapon','S_Timeoverload_Weapon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24417','S_Timeoverload_Armor','S_Timeoverload_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24418','S_Timeoverload_Shield','S_Timeoverload_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24419','S_Timeoverload_Shoes','S_Timeoverload_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24420','S_Timeoverload_Earing','S_Timeoverload_Earing','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24421','S_Timeoverload_Pandent','S_Timeoverload_Pandent','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25258','BrokenArrow','BrokenArrow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25265','Shining_Spore','Shining_Spore','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25266','Dried_Leaf_Of_Ygg','Dried_Leaf_Of_Ygg','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25271','IllusionStone','IllusionStone','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25290','Sweets_Coin','Sweets_Coin','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25294','Clover_Ticket','Clover_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25295','Happiness_Clover','Happiness_Clover','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25340','Golden_Corn','Golden_Corn','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25375','Mightysoul_Essence','Mightysoul_Essence','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25390','Captured_Savage','Captured_Savage','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25391','Goodly_Bough','Goodly_Bough','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25392','Free_Pass_Ticket','Free_Pass_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25393','Delicious_Corn','Delicious_Corn','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25394','Fruit_Lunch','Fruit_Lunch','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25395','Small_Embers','Small_Embers','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25401','Black_Fur','Black_Fur','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25408','Memory_Of_Gyol','Memory_Of_Gyol','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25409','SuraStone_Top','SuraStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25410','SuraStone_Middle','SuraStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25411','SuraStone_Bottom','SuraStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25412','SuraStone_Robe','SuraStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25413','RangerStone_Top','RangerStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25414','RangerStone_Middle','RangerStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25415','RangerStone_Bottom','RangerStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25416','RangerStone_Robe','RangerStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25417','SorcererStone_Top','SorcererStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25418','SorcererStone_Middle','SorcererStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25419','SorcererStone_Bottom','SorcererStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25420','SorcererStone_Robe','SorcererStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25421','Pumpkin_Decor','Pumpkin_Decor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25422','White_Thin_Stem','White_Thin_Stem','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25425','SnowFlower_Of_Spell','SnowFlower_Of_Spell','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25426','Warm_Cotton','Warm_Cotton','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25427','Rebeginer_W_Coupon','Rebeginer_W_Coupon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25428','Rebeginer_W_7Up','Rebeginer_W_7Up','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25445','RuneknightStone_Top','RuneknightStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25446','RuneknightStone_Middle','RuneknightStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25447','RuneknightStone_Bottom','RuneknightStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25448','RuneknightStone_Robe','RuneknightStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25449','GeneticStone_Robe','GeneticStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25450','GeneticStone_Top','GeneticStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25451','GeneticStone_Middle','GeneticStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25452','GeneticStone_Bottom','GeneticStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25453','WarlockStone_Top','WarlockStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25454','WarlockStone_Middle','WarlockStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25455','WarlockStone_Bottom','WarlockStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25456','WarlockStone_Robe','WarlockStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25464','World_Tour_Ticket','World_Tour_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25479','Dogly_Bottle','Dogly_Bottle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25490','ShadowchaserStone_Top','ShadowchaserStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25491','ShadowchaseStone_Middle','ShadowchaseStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25492','ShadowchaseStone_Bottom','ShadowchaseStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25493','ShadowchaserStone_Robe','ShadowchaserStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25494','MechanicStone_Top','MechanicStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25495','MechanicStone_Middle','MechanicStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25496','MechanicStone_Bottom','MechanicStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25497','MechanicStone_Robe','MechanicStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25498','WanderMinstrelStone_Top','WanderMinstrelStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25499','WanderMinstStone_Middle','WanderMinstStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25500','WanderMinstStone_Bottom','WanderMinstStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25501','WanderMinstreStone_Robe','WanderMinstreStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25504','Visionary_Ticket','Visionary_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25508','Token_of_OrcGeneral','Token_of_OrcGeneral','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25511','Evt_March04_KR','Evt_March04_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25512','Evt_March05_KR','Evt_March05_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25616','Green_Bearopy','Green_Bearopy','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25622','White_Snake_Tear','White_Snake_Tear','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25627','Gold_Card','Gold_Card','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25629','Konts_Letter','Konts_Letter','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25633','Token_Of_Wootan','Token_Of_Wootan','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25634','Wootan_D_S_Piece','Wootan_D_S_Piece','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25638','Token_Of_Bigstone','Token_Of_Bigstone','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25639','Fragment_Of_Rock','Fragment_Of_Rock','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25643','Autographed_Book','Autographed_Book','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25655','Dalcom_Coin','Dalcom_Coin','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25656','Stamp_Note','Stamp_Note','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25657','Evt_July01_KR','Evt_July01_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25658','Evt_July02_KR','Evt_July02_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25659','Evt_May02_KR','Evt_May02_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25664','Evt_July03_KR','Evt_July03_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25665','Dienes_Envelope','Dienes_Envelope','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25666','Id_Card','Id_Card','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25668','Broken_Weapon','Broken_Weapon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25669','Unknown_Parts','Unknown_Parts','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25706','HighpriestStone_Top','HighpriestStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25707','HighpriestStone_Middle','HighpriestStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25708','HighpriestStone_Bottom','HighpriestStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25709','ArchbishopStone_Robe','ArchbishopStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25710','PaladinStone_Top','PaladinStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25711','PaladinStone_Middle','PaladinStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25712','PaladinStone_Bottom','PaladinStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25713','RoyalguardStone_Robe','RoyalguardStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25714','AssacrossStone_Top','AssacrossStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25715','AssacrossStone_Middle','AssacrossStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25716','AssacrossStone_Bottom','AssacrossStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25717','GuillcrossStone_Robe','GuillcrossStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25723','Cor_Core','Cor_Core','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25728','Shadowdecon_Ore','Shadowdecon_Ore','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25729','Shadowdecon','Shadowdecon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25730','Zelunium_Ore','Zelunium_Ore','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25731','Zelunium','Zelunium','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25734','Sealed_Weapon_Ticket','Sealed_Weapon_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25735','Unsealing_Token','Unsealing_Token','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25739','GH_Cursed_Crystal','GH_Cursed_Crystal','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25740','GH_Cursed_Gemstone','GH_Cursed_Gemstone','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26007','Spectral_Spear_IL','Spectral_Spear_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26015','Rebeginer_LG_Lance','Rebeginer_LG_Lance','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26109','Staff_Of_Bordeaux_IL','Staff_Of_Bordeaux_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26110','CandyCaneRod','CandyCaneRod','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26111','Metal_Foxtail','Metal_Foxtail','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26119','Rebeginer_SO_Rod','Rebeginer_SO_Rod','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26120','Rebeginer_DO_Rod','Rebeginer_DO_Rod','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26151','Rutilus_Stick_OS','Rutilus_Stick_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26155','MeawFoxtail','MeawFoxtail','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26156','Evt_Shadow_Staff_K','Evt_Shadow_Staff_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28022','Infiltrator_IL','Infiltrator_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28023','Ghoul_Leg_IL','Ghoul_Leg_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28027','Rebeginer_GC_Katar','Rebeginer_GC_Katar','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28038','Meuchler_OS','Meuchler_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28040','Evt_Shiver_Katar_K','Evt_Shiver_Katar_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28136','Blasti_OS','Blasti_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28137','Evt_Avenger','Evt_Avenger','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28240','Calf_Kingcobra','Calf_Kingcobra','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28241','Calf_Diamondback','Calf_Diamondback','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28242','Calf_Anaconda','Calf_Anaconda','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28243','Calf_Python','Calf_Python','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28244','Gate_KeeperDD_IL','Gate_KeeperDD_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28253','HR_S55_OS','HR_S55_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28508','Skul_Ring_IL','Skul_Ring_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28509','Ring_IL','Ring_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28510','Vampire_s_Servant','Vampire_s_Servant','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28534','RKC_2017_Pendant','RKC_2017_Pendant','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28535','RKC_2017_Ring','RKC_2017_Ring','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28566','Rebeginer_Ring','Rebeginer_Ring','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28612','Book_Of_The_Apo_IL','Book_Of_The_Apo_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28616','Rebeginer_AB_Bible','Rebeginer_AB_Bible','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28626','Tablet_IL','Tablet_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28629','Circuit_Board_OS','Circuit_Board_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28631','Time_Kamiji','Time_Kamiji','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28725','Moonlight_Sword_IL','Moonlight_Sword_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28740','Rebeginer_SC_Dagger','Rebeginer_SC_Dagger','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28745','Counter_Dagger_IL','Counter_Dagger_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28755','Kuroiro_OS','Kuroiro_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28759','Evt_Magic_Sword','Evt_Magic_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28922','Herald_Of_GOD_IL','Herald_Of_GOD_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28942','Bloody_Knight_Shield','Bloody_Knight_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28945','Bloody_Knight_Shield_','Bloody_Knight_Shield_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28946','Bloody_Knight_Shield__','Bloody_Knight_Shield__','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28953','Poring_B_Shield','Poring_B_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29540','Deep_Black_Pearl','Deep_Black_Pearl','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29547','Sea_Sapphire','Sea_Sapphire','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29548','Red_Fog_Garnet','Red_Fog_Garnet','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29549','Lightning_Topaz','Lightning_Topaz','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29550','Poisoned_Amethyst','Poisoned_Amethyst','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29551','Frost_Zircon','Frost_Zircon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29552','Deep_Black_Pearl_','Deep_Black_Pearl_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29587','Lightning_Topaz_','Lightning_Topaz_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29588','Bloody_Ruby','Bloody_Ruby','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29589','GH_Cursed_Gemstone_','GH_Cursed_Gemstone_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29590','GH_Cursed_Crystal_','GH_Cursed_Crystal_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29591','Cursed_Emerald','Cursed_Emerald','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29592','Shinee_Opal','Shinee_Opal','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31172','Roast_Memory','Roast_Memory','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31186','C_Black_Cat','C_Black_Cat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31195','Choco_Minihat','Choco_Minihat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31197','Egg_Crispinette_','Egg_Crispinette_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31208','Straight_Long_YL','Straight_Long_YL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31209','Straight_Long_WH','Straight_Long_WH','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31249','Rabbit_Hopping','Rabbit_Hopping','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31261','Soda_In_Mouth_','Soda_In_Mouth_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31300','Warm_Cat_Muffler','Warm_Cat_Muffler','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31313','C_FallenAngelWingEar','C_FallenAngelWingEar','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31314','C_Ghost_Holiday','C_Ghost_Holiday','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31316','C_FlutterButterfly_BL','C_FlutterButterfly_BL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31329','C_Alice_Wig','C_Alice_Wig','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31332','C_Khalitzburg_Helm_BL','C_Khalitzburg_Helm_BL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31368','Harvest_Festa_Hat','Harvest_Festa_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31369','Straight_Long_WH_','Straight_Long_WH_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31370','Straight_Long_YL_','Straight_Long_YL_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31387','Jjakk','Jjakk','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31389','White_Bird_Rose','White_Bird_Rose','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31390','Let_It_Snow','Let_It_Snow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31396','C_Sorcerer_Hood','C_Sorcerer_Hood','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31397','C_Pope_Sitting_Head','C_Pope_Sitting_Head','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31398','C_Blinking_Thin_Eyes','C_Blinking_Thin_Eyes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31407','Alice_Wig_PK','Alice_Wig_PK','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31415','C_Wanderer_Sakkat','C_Wanderer_Sakkat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31432','C_Luwmin_Ice','C_Luwmin_Ice','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31433','C_Astro_Circle','C_Astro_Circle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31437','C_Baby_Penguin','C_Baby_Penguin','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31439','C_Fluffy_Heart_Earmuffs','C_Fluffy_Heart_Earmuffs','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31452','White_Cat','White_Cat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31454','Love_Feeling','Love_Feeling','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31455','Enchanted_Dog','Enchanted_Dog','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31460','C_Blessing_Sky_Lantern','C_Blessing_Sky_Lantern','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31463','C_Flying_Drone','C_Flying_Drone','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31465','Egg_Minihat','Egg_Minihat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31489','C_Bouquet_Hat','C_Bouquet_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31490','C_Poring_Muffler','C_Poring_Muffler','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31494','Volume_Low_Twin','Volume_Low_Twin','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31495','Lolita_Two_Side_Up','Lolita_Two_Side_Up','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31498','C_Elephangel_TH','C_Elephangel_TH','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31516','Mini_Melon','Mini_Melon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31518','Pop_Popcorn_Hat_','Pop_Popcorn_Hat_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31519','Slurp_Slurp_Hat','Slurp_Slurp_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31529','C_Happy_Rabbit_Ribbon','C_Happy_Rabbit_Ribbon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31580','Autumnal_Flavor','Autumnal_Flavor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31589','GOLD_MAJESTIC_GOUT','GOLD_MAJESTIC_GOUT','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31606','C_Autumn_Headband','C_Autumn_Headband','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32005','Pole_Axe_IL','Pole_Axe_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32013','Metal_Stick','Metal_Stick','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32019','Boost_Lance_OS','Boost_Lance_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32021','Evt_Undine_Spear_K','Evt_Undine_Spear_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32207','Illusion_B_R','Illusion_B_R','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32208','Illusion_B_L','Illusion_B_L','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32209','Illusion_BC_R','Illusion_BC_R','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32210','Illusion_BC_L','Illusion_BC_L','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32221','Time_Overload_Ring','Time_Overload_Ring','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32237','Celine_Brooch','Celine_Brooch','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql
index 118a4417b..855bd9154 100644
--- a/sql-files/item_db_re.sql
+++ b/sql-files/item_db_re.sql
@@ -725,6 +725,7 @@ REPLACE INTO `item_db` VALUES ('1317','Academy_Axe','Academy Axe','4','6','0','0
REPLACE INTO `item_db` VALUES ('1318','Dofle_Axe','Deflation Axe','4','6','50000','25000','1800','180','0','0','1','2','414946','63','2','2','4','105',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db` VALUES ('1319','TE_Woe_Axe','TE WoE Axe','4','6','20','10','0','100','0','0','1','0','414947','63','2','2','3','40',NULL,'0','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Freeze,1000;','','');
REPLACE INTO `item_db` VALUES ('1323','Ru_Gold_Axe','Ru Gold Axe','4','6','20','10','1800','180','0','0','1','2','262144','56','2','2','3','120',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,8; bonus bInt,8;','','');
+REPLACE INTO `item_db` VALUES ('1326','War_Axe_IL','War_Axe_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1351','Battle_Axe','Battle Axe','4','7','5400','2700','1500','80','0','0','1','3','279714','63','2','34','1','3',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1352','Battle_Axe_','Battle Axe','4','7','5400','2700','1500','80','0','0','1','4','279714','63','2','34','1','3',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1353','Battle_Axe__','Battle Axe','4','7','5400','2700','1500','80','0','0','1','0','279714','63','2','34','1','3',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -1157,6 +1158,10 @@ REPLACE INTO `item_db` VALUES ('1834','TE_Woe_Fist','TE WoE Fist','4','12','20',
REPLACE INTO `item_db` VALUES ('1835','Spartacus','Spartacus','4','12','20','10','600','100','0','0','1','2','33024','63','2','2','4','50',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtkRate,getrefine(); if(getrefine()>9) bonus bNoSizeFix,0;','','');
REPLACE INTO `item_db` VALUES ('1836','Thanos_Knuckle','Thanatos Knuckles','4','12','20','10','1600','60','100','0','1','1','32768','56','2','2','4','120',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000;','','heal -1000,0;');
REPLACE INTO `item_db` VALUES ('1839','Scarlet_Knuckle','Crimson Knuckle','4','12','20','10','1000','100','0','0','1','2','33024','63','2','2','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','','');
+REPLACE INTO `item_db` VALUES ('1846','Combo_Battle_Glove_IL','Combo_Battle_Glove_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('1848','Rebeginer_SR_Nuckle','Rebeginer_SR_Nuckle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('1862','Burning_Knuckle_OS','Burning_Knuckle_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('1864','Evt_Iron_Nail_K','Evt_Iron_Nail_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1900','Violin_of_Vicious_Mind','Violin of Vicious Mind','4','13','20','10','1300','130','50','0','1','1','524288','63','1','2','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2;','','');
REPLACE INTO `item_db` VALUES ('1901','Violin','Violin','4','13','4000','2000','700','50','0','0','1','3','524288','63','1','2','1','2',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1902','Violin_','Violin','4','13','4000','2000','700','50','0','0','1','4','524288','63','1','2','1','2',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -1271,6 +1276,10 @@ REPLACE INTO `item_db` VALUES ('2023','Thanos_Rod','Thanatos Two-Handed Staff','
REPLACE INTO `item_db` VALUES ('2024','Infinity_Staff','Infinity Staff','4','23','20','10','500','30','170','0','0','1','8454656','56','2','34','4','100',NULL,'1','0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('2025','Scarlet_Staff','Staff of Crimson','4','23','20','10','1000','100','150','0','1','2','8454660','63','2','34','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bInt,5; bonus bMatk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bMatk,(((BaseLevel-70)/10)*5); }','','');
REPLACE INTO `item_db` VALUES ('2026','Staff_of_Vicious_Mind','Staff of Vicious Mind','4','23','20','10','1000','100','200','0','1','1','8454660','63','2','34','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bMatk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db` VALUES ('2039','Wizardy_Staff_IL','Wizardy_Staff_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('2046','Rebeginer_WL_Staff','Rebeginer_WL_Staff','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('2051','Survival_Staff_IL','Survival_Staff_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('2054','Evt_Iron_Staff','Evt_Iron_Staff','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('2101','Guard','Guard','5','0','500','250','300','0','0','20','0','0','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('2102','Guard_','Guard','5','0','500','250','300','0','0','20','0','1','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('2103','Buckler','Buckler','5','0','14000','7000','600','0','0','40','0','0','972274','63','2','32','0','0',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -5672,6 +5681,7 @@ REPLACE INTO `item_db` VALUES ('10036','Hell_Horn','Horn Of Hell','8','0','20','
REPLACE INTO `item_db` VALUES ('10037','Black_Butterfly_Mask','Black Butterfly Mask','8','0','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('10038','Horn_Protector','Horn Barrier','8','0','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('10039','Tw_Backpack','Tw Backpack','8','0','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('10042','Dark_Mane','Dark_Mane','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11000','Prontera_Book_01','History book of Prontera','3','0','8000','4000','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11001','Adventure_Story01','Adventure Story Vol.1','3','0','8000','4000','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11002','Great_Chef_Orleans01','Chef King Orleans Vol.1','3','0','8000','4000','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -5795,6 +5805,15 @@ REPLACE INTO `item_db` VALUES ('11593','Trance_Candy_B','Blue Transform Candy','
REPLACE INTO `item_db` VALUES ('11594','Trance_Candy_Y','Yellow Transform Candy','0','0','0','0','30','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(45,65),0; specialeffect(EF_CLOAKING, AREA, playerattached()); showscript \"Trans-Form-!! Jack Fo-rm!!\"; montransform JAKK, 600000, SC_MTF_PUMPKIN, 2000;','','');
REPLACE INTO `item_db` VALUES ('11595','Trance_Candy_G','Green Transform Candy','0','0','0','0','30','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(45,65),0; specialeffect(EF_CLOAKING, AREA, playerattached()); showscript \"Trans-Form-!! Cube Fo-rm!!\"; montransform QUVE, 600000, SC_MTF_HITFLEE, 10, 20;','','');
REPLACE INTO `item_db` VALUES ('11602','Catnip_Fruit','Catnip Fruit','0','0','15','7','1','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(10,40),0;','','');
+REPLACE INTO `item_db` VALUES ('11607','Crepe','Crepe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11608','Chocolate_Egg','Chocolate_Egg','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11609','Yummy_Cookie_Egg','Yummy_Cookie_Egg','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11611','Pop_Corn','Pop_Corn','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11612','Aromatic_Pop_Corn','Aromatic_Pop_Corn','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11614','Fresh_Milk','Fresh_Milk','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11615','Sweet_Potato_','Sweet_Potato_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11620','Bearopy','Bearopy','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('11625','Aromatic_Pop_Corn_','Aromatic_Pop_Corn_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11701','Girl_Bunch_Of_Flower','Girl\'s Bouquet','0','0','20','10','50','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0;','','');
REPLACE INTO `item_db` VALUES ('11702','Moon_Cookie','Moon Cookie','0','0','0','0','300','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('11703','Mysterious_Blood','Mystery Blood','0','0','0','0','30','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 0,rand(25,35);','','');
@@ -6854,6 +6873,8 @@ REPLACE INTO `item_db` VALUES ('13122','ALTAIR_ARES','Altea & Ares','4','17','14
REPLACE INTO `item_db` VALUES ('13124','ALTAIR_ARES_','Altea & Ares','4','17','1450000','725000','1000','200','0','0','9','1','1073741824','63','2','34','3','140',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,5; bonus bDelayrate,10; bonus bLongAtkRate,30;','','');
REPLACE INTO `item_db` VALUES ('13127','Scarlet_Revolver','Crimson Revolver','4','17','20','10','1000','100','0','0','7','2','16777216','63','2','34','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','','');
REPLACE INTO `item_db` VALUES ('13128','Revolver_of_Vicious_Mind','Revolver of Vicious Mind','4','17','20','10','1500','150','0','0','7','1','16777216','63','2','34','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','','');
+REPLACE INTO `item_db` VALUES ('13144','Rebeginer_RL_Gun','Rebeginer_RL_Gun','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13146','Calf_Deathadder','Calf_Deathadder','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13150','Branch','Branch','4','18','3000','1500','500','50','0','0','9','3','16777216','1','2','34','1','0',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13151','The_Cyclone','Cyclone','4','18','17500','8750','700','120','0','0','9','1','16777216','1','2','34','2','24',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCritical,10;','','');
REPLACE INTO `item_db` VALUES ('13152','The_Cyclone_','Cyclone','4','18','17500','8750','700','120','0','0','9','2','16777216','1','2','34','2','24',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCritical,10;','','');
@@ -6995,6 +7016,9 @@ REPLACE INTO `item_db` VALUES ('13316','Upg_Huuma_Shuriken','Upg Huuma Shuriken'
REPLACE INTO `item_db` VALUES ('13317','TE_Woe_Huuma','TE Woe Huuma','4','22','0','0','0','80','100','0','1','0','570425344','1','2','34','3','40',NULL,'0','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Bleeding,1000;','','');
REPLACE INTO `item_db` VALUES ('13327','Scarlet_Huuma','Crimson Huuma Shuriken','4','22','20','10','1000','100','0','0','1','2','570425344','63','2','34','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','','');
REPLACE INTO `item_db` VALUES ('13328','Huuma_Shuriken_of_Vicious_Mind','Huuma Shuriken of Vicious Mind','4','22','20','10','1500','150','50','0','1','1','570425344','63','2','34','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2; bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db` VALUES ('13337','Huuma_Fluttering_Snow_IL','Huuma_Fluttering_Snow_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13338','Huuma_Bird_Wing_IL','Huuma_Bird_Wing_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13341','Rebeginer_KO_Humma','Rebeginer_KO_Humma','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13400','Cutlas_','Cutlus','4','2','20','10','900','150','0','0','1','1','414946','63','2','2','4','40',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill SM_BASH,5; bonus bStr,2; bonus bDef,1;','','');
REPLACE INTO `item_db` VALUES ('13401','Excalibur_C','Excalibur','4','2','1','0','0','199','0','0','1','0','414946','63','2','2','4','0',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bInt,10; bonus bLuk,10; bonus bAtkEle,Ele_Holy;','','');
REPLACE INTO `item_db` VALUES ('13402','Cutlas_C','Cutlas','4','2','2','1','0','185','0','0','1','0','414946','63','2','2','4','0',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','skill SM_BASH,5; bonus bStr,2; bonus bDef,1;','','');
@@ -7038,6 +7062,10 @@ REPLACE INTO `item_db` VALUES ('13442','Old_Parasol','Old Parasol','4','2','20',
REPLACE INTO `item_db` VALUES ('13444','Pala','Pala','4','2','20','10','700','190','0','0','0','1','414946','63','2','2','3','0',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,8;','','');
REPLACE INTO `item_db` VALUES ('13454','Scarlet_Saber','Crimson Saber','4','2','20','10','850','85','0','0','1','2','414947','63','2','2','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','','');
REPLACE INTO `item_db` VALUES ('13455','Saber_of_Vicious_Mind','Saber of Vicious Mind','4','2','20','10','1350','135','0','0','1','1','414947','63','2','2','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','','');
+REPLACE INTO `item_db` VALUES ('13469','Immaterial_Sword_IL','Immaterial_Sword_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13483','Rebeginer_GN_Sword','Rebeginer_GN_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13493','Cannon_Rapier_OS','Cannon_Rapier_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('13495','Evt_Bluefire_Sword','Evt_Bluefire_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13500','Insurance60_Package','Life Insurrance Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14500,10;','','');
REPLACE INTO `item_db` VALUES ('13501','Assorted_Scroll_Box','Experience Scroll Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13502','Drooping_Kitty_Box','Refined Drooping Cat Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 5279,604800;','','');
@@ -8089,6 +8117,17 @@ REPLACE INTO `item_db` VALUES ('15138','Aegir_Armor','Aegir Armor','5','0','2000
REPLACE INTO `item_db` VALUES ('15150','White_Shirt','White Shirt','5','0','20','10','50','0','0','25','0','1','0','63','2','16','0','6',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,70; bonus bFlee,5;','','');
REPLACE INTO `item_db` VALUES ('15151','White_Eco_Shirt','White Eco-Shirt','5','0','20','10','100','0','0','40','0','1','0','63','2','16','0','15',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,150; bonus bFlee,10;','','');
REPLACE INTO `item_db` VALUES ('15156','Elegant_Doram_Suit','Elegant Doram Suit','5','0','20','10','900','0','0','120','0','1','0','63','2','16','0','175',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHPrate, 15; bonus bMaxSPrate, 15; bonus bDex, getrefine(); bonus bInt, getrefine(); if (getrefine() > 9) bonus bUseSPrate, -5;','','');
+REPLACE INTO `item_db` VALUES ('15212','YSF01_Plate','YSF01_Plate','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15246','True_Hunting_Mail','True_Hunting_Mail','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15247','R_Hunting_Mail','R_Hunting_Mail','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15250','Rebeginer_Suits','Rebeginer_Suits','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15280','S_CriticalHit_Armor','S_CriticalHit_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15348','Goibne_Armor_IL','Goibne_Armor_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15376','Illusion_Armor_A','Illusion_Armor_A','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15377','Illusion_Armor_B','Illusion_Armor_B','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15383','Time_Overload_Robe','Time_Overload_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15388','Schmidt_Suits','Schmidt_Suits','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('15389','Schmidt_Manteau','Schmidt_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('16000','Erde','Erde','4','8','20','10','500','130','0','0','1','2','312754','58','2','2','3','50',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,AM_ACIDTERROR,20; bonus2 bSkillAtk,AM_DEMONSTRATION,20; bonus bMaxSP,50; bonus bHealPower,10;','','');
REPLACE INTO `item_db` VALUES ('16001','Red_Square_Bag','Red Square Bag','4','8','20','10','500','130','0','0','1','2','312754','58','2','2','3','50',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','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; }','','');
REPLACE INTO `item_db` VALUES ('16002','Stunner_C','Stunner','4','8','0','0','0','175','0','0','1','0','33040','63','2','2','3','0',NULL,'0','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddEff,Eff_Stun,1000; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','','');
@@ -8124,6 +8163,12 @@ REPLACE INTO `item_db` VALUES ('16032','Pilebuncker_T','Pile Bunker T','4','8','
REPLACE INTO `item_db` VALUES ('16039','Spoon','Spoon','4','8','20','10','100','80','0','0','1','1','312755','63','2','2','3','40',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspd,10; bonus2 bAddEff,Eff_Curse,1000;','','');
REPLACE INTO `item_db` VALUES ('16040','Scarlet_Mace','Crimson Mace','4','8','20','10','800','80','0','0','1','2','312755','63','2','2','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','','');
REPLACE INTO `item_db` VALUES ('16041','Mace_of_Vicious_Mind','Mace of Vicious Mind','4','8','20','10','1300','130','0','0','1','1','312755','63','2','2','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db` VALUES ('16063','Long_Mace_IL','Long_Mace_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16065','Iron_Driver_IL','Iron_Driver_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16075','Rebeginer_NC_Mace','Rebeginer_NC_Mace','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16076','Rebeginer_N2_Mace','Rebeginer_N2_Mace','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16088','Saphir_Hall_OS','Saphir_Hall_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('16089','Ultio_Spes_OS','Ultio_Spes_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('16131','Lady_Tanee_Doll_Box','Tanigumi Girl Doll Box','18','0','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5526,1;','','');
REPLACE INTO `item_db` VALUES ('16132','Lunatic_Hat_Box','Lunatic Hat Box','18','0','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5527,1;','','');
REPLACE INTO `item_db` VALUES ('16134','King_Frog_Hat_Box','Frog King Hat Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5528,1;','','');
@@ -8205,6 +8250,7 @@ REPLACE INTO `item_db` VALUES ('16415','FTurtle_Hat_Box','Turtle Hat Box','18','
REPLACE INTO `item_db` VALUES ('16418','Giant_Fly_Wing_Box_500','Giant Fly Wing Box 500','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 12212,500;','','');
REPLACE INTO `item_db` VALUES ('16419','Greed_Scroll_Box_30','Greed Scroll 30 Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14529,30;','','');
REPLACE INTO `item_db` VALUES ('16420','Adventurer_Pack','Adventurer Pack','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 12208,10; getitem 12210,10; getitem 12216,20; getitem 12215,20; getitem 7621,10; getitem 12209,10; getitem 12211,5; getitem 12450,10; getitem 12448,10; getitem 12446,10; getitem 12206,10; getitem 12445,10; getitem 12447,10;','','');
+REPLACE INTO `item_db` VALUES ('16423','PoporingKey','PoporingKey','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('16424','Executioner_Box_','Executioner Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 1174,604800;','','');
REPLACE INTO `item_db` VALUES ('16425','Cutlus_Box','Cutlus Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 13402,604800;','','');
REPLACE INTO `item_db` VALUES ('16426','Moonlight_Dagger_Box','Moonlight Dagger Box','18','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 13026,604800;','','');
@@ -8483,6 +8529,27 @@ REPLACE INTO `item_db` VALUES ('17273','INT_Biscuit_Stick_Box','Bar of Knowledge
REPLACE INTO `item_db` VALUES ('17274','DEX_Biscuit_Stick_Box','Bar of Tricks Box','18','0','0','0','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem DEX_Biscuit_Stick,20;','','');
REPLACE INTO `item_db` VALUES ('17275','LUK_Biscuit_Stick_Box','Bar of Luck Box','18','0','0','0','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem LUK_Biscuit_Stick,20;','','');
REPLACE INTO `item_db` VALUES ('17336','Jeremy_Beauty_Coupon_Box','Jeremy\'s Beauty Coupon Box','2','0','0','0','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem(Cash_Hair_Coupon, 1);','','');
+REPLACE INTO `item_db` VALUES ('17774','Almighty_Plus_Box3','Almighty_Plus_Box3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17775','Almighty100_PlusBox3','Almighty100_PlusBox3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17882','Refine_Ore_Box17_Set10','Refine_Ore_Box17_Set10','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17883','Refine_Ore_Box17','Refine_Ore_Box17','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17884','HD_Refine_Ore_Box5','HD_Refine_Ore_Box5','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17885','HD_High_Refine_Box3','HD_High_Refine_Box3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17886','Infinity_Box','Infinity_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17887','Infinity_10_Box','Infinity_10_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17894','New_Vigorgra_Package','New_Vigorgra_Package','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17895','New_Vigorgra_Set','New_Vigorgra_Set','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17914','2017_GStar_CostumeBox','2017_GStar_CostumeBox','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17923','Refine_Ore_Box18','Refine_Ore_Box18','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17924','Refine_Ore_Box18_Set10','Refine_Ore_Box18_Set10','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17925','HD_Refine_Ore_Box6','HD_Refine_Ore_Box6','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17926','HD_High_Refine_Box4','HD_High_Refine_Box4','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17935','New_3_Potion_pack','New_3_Potion_pack','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17936','New_3_Potion_10pack','New_3_Potion_10pack','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17940','Nyangvine_Box10_3','Nyangvine_Box10_3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17941','Nyangvine_Box100_3','Nyangvine_Box100_3','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17944','Almighty_Plus_Box4','Almighty_Plus_Box4','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17945','Almighty100_PlusBox4','Almighty100_PlusBox4','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18000','Cannon_Ball','Cannon Ball','10','8','100','50','10','100','0','0','0','0','263168','8','2','32768','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18001','Holy_Cannon_Ball','Holy Cannon Ball','10','8','200','100','10','120','0','0','0','0','263168','8','2','32768','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy;','','');
REPLACE INTO `item_db` VALUES ('18002','Dark_Cannon_Ball','Dark Cannon Ball','10','8','200','100','10','120','0','0','0','0','263168','8','2','32768','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Dark;','','');
@@ -8516,6 +8583,16 @@ REPLACE INTO `item_db` VALUES ('18124','Half_BF_Bow1','Half BF Bow1','4','11','0
REPLACE INTO `item_db` VALUES ('18126','Ru_Blue_Bow','Blue Bow','4','11','20','10','1200','170','0','0','5','1','2048','56','2','34','3','100',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,5; bonus bDex,5;','','');
REPLACE INTO `item_db` VALUES ('18128','Infinity_Bow','Infinity Bow','4','11','0','0','500','160','0','0','5','1','657480','56','2','34','4','100',NULL,'1','0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18130','Scarlet_Bow','Crimson Bow','4','11','20','10','1200','120','0','0','5','2','657416','63','2','34','3','7',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','','');
+REPLACE INTO `item_db` VALUES ('18149','Balistar_IL','Balistar_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18165','Rebeginer_RN_Bow','Rebeginer_RN_Bow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18166','Rebeginer_WM_Bow','Rebeginer_WM_Bow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18170','Neev_Bow_Of_Rogue','Neev_Bow_Of_Rogue','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18174','Hunter_Bow_IL','Hunter_Bow_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18178','Virtual_Bow_OS','Virtual_Bow_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18179','MH_P89_OS','MH_P89_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18180','AC_B44_OS','AC_B44_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18182','Evt_Royal_Bow_K','Evt_Royal_Bow_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('18183','Evt_Narcis_Bow','Evt_Narcis_Bow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18500','Cheer_Scarf6','Cheering scarf VI','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1','0','0',NULL,'0','0','369','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace, RC_All, 60;','','');
REPLACE INTO `item_db` VALUES ('18501','Cheer_Scarf8','Cheering scarf VIII','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1','0','0',NULL,'0','0','369','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace, RC_All, 80;','','');
REPLACE INTO `item_db` VALUES ('18502','Cheer_Scarf10','Cheering scarf X','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1','0','0',NULL,'0','0','369','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace, RC_All, 100;','','');
@@ -8943,6 +9020,25 @@ REPLACE INTO `item_db` VALUES ('19081','Faceworm_Egg_Shell','Faceworm Egg Shell'
REPLACE INTO `item_db` VALUES ('19085','Sigruns_Wing_','Sigrun\'s Wings','5','0','20','10','100','0','0','2','0','1','18446744073709551615','63','2','512','0','0',NULL,'0','0','568','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief||(BaseJob==Job_Taekwon&&Class!=Job_Soul_Linker)) { bonus bAspd,1; bonus bAgi,-2; } else if(BaseClass==Job_Mage||BaseClass==Job_Acolyte||Class==Job_Ninja||Class==Job_Soul_Linker) { bonus bMatk,3; bonus bHealPower,1; } else if(BaseClass==Job_Archer||BaseClass==Job_Gunslinger) { bonus bLongAtkRate,1; } else if(BaseJob==Job_Novice||BaseJob==Job_SuperNovice) { bonus bMaxHP,60; bonus bMaxSP,30; }','','');
REPLACE INTO `item_db` VALUES ('19086','Robo_Eye_','Robo Eye','5','0','20','10','200','0','0','2','0','1','18446744073709551615','63','2','512','0','10',NULL,'0','0','345','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bAddRace, RC_All, 1; bonus bMatkRate,1; bonus bDex,1;','','');
REPLACE INTO `item_db` VALUES ('19087','Angel_Spirit_','Angel Spirit','5','0','20','10','200','0','0','0','0','1','18446744073709551615','63','2','512','0','0',NULL,'0','0','394','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bHit,8;','','');
+REPLACE INTO `item_db` VALUES ('19209','Nurse_Cap_IL','Nurse_Cap_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19210','Apple_Of_Archer_IL','Apple_Of_Archer_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19223','Cap_IL','Cap_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19247','Fancy_Flower_IL','Fancy_Flower_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19264','GoldFish_Hat','GoldFish_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19265','Smoky_TransformHat','Smoky_TransformHat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19277','Soda_In_Mouth','Soda_In_Mouth','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19291','C_Shiba_Inu','C_Shiba_Inu','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19294','C_CatEars_Cyber_HeadP_R','C_CatEars_Cyber_HeadP_R','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19300','Dog_Officer','Dog_Officer','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19310','Rebeginer_Cap','Rebeginer_Cap','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19339','Egg_Crispinette','Egg_Crispinette','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19344','Headband_Of_Power_IL','Headband_Of_Power_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19366','Goibne_Helmet_IL','Goibne_Helmet_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19382','Pop_Popcorn_Hat','Pop_Popcorn_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19389','E_Oxygen_Mask','E_Oxygen_Mask','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19396','Racing_C_Star','Racing_C_Star','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19397','Racing_C_Soul','Racing_C_Soul','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19404','Biting_Off_Rideword','Biting_Off_Rideword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19500','T_Mr_Smile','Costume Mr. Smile','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','6144','0','0',NULL,'0','0','65','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2;','','');
REPLACE INTO `item_db` VALUES ('19501','T_Spinx_Helm','Costume Sphinx Hat','5','0','0','0','0','0','0','0','0','1','18446744073709551615','63','2','5120','0','0',NULL,'0','0','137','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19502','T_Goggle','Costume Goggles','5','0','20','10','0','0','0','0','0','0','18446744073709551615','63','2','3072','0','0',NULL,'0','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -9714,6 +9810,14 @@ REPLACE INTO `item_db` VALUES ('20331','C_Desert_Prince','Costume Desert Prince'
REPLACE INTO `item_db` VALUES ('20332','C_Pure_White_Ribbon','Costume Pure White Ribbon','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1024','0','0',NULL,'1','0','1175','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('20333','C_Family_Hat','Costume Family Hat','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1024','0','0',NULL,'1','0','650','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('20500','T_Archangel_Wing','T Archangel\'s Wings','5','0','0','0','100','0','0','0','0','0','18446744073709551615','63','2','8192','0','0',NULL,'0','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0;','','');
+REPLACE INTO `item_db` VALUES ('20514','C_Thanatos_Sword','C_Thanatos_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20515','C_Magic_Circle','C_Magic_Circle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20516','C_Wings_of_Michael','C_Wings_of_Michael','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20517','C_GiantCatBag_TW','C_GiantCatBag_TW','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20528','C_GoldButterfly_Wing','C_GoldButterfly_Wing','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20530','C_Wings_of_Gabriel','C_Wings_of_Gabriel','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20533','C_PinkButterfly_Wing_T','C_PinkButterfly_Wing_T','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20535','C_Digital_Space','C_Digital_Space','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('20600','Fantastic_Aura','Fantastic Aura','5','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','16384','0','0',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db` VALUES ('20700','Egir_Manteau','Aegir Mantle','5','0','200000','100000','300','0','0','10','0','1','18446744073709551615','63','2','4','0','110',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableGarment, 0; if (BaseClass == Job_Mage || BaseClass == Job_Archer || BaseClass == Job_Acolyte) bonus bFlee2, 5 + (getequiprefinerycnt(EQI_GARMENT) * 2); else if (BaseClass == Job_Swordman || BaseClass == Job_Merchant || BaseClass == Job_Thief) bonus bShortWeaponDamageReturn, 5 + (getequiprefinerycnt(EQI_GARMENT) * 2);','','');
REPLACE INTO `item_db` VALUES ('20702','TE_Woe_Muffler','TE Woe Muffler','5','0','0','0','0','0','0','5','0','0','18446744073709551615','63','2','4','0','40',NULL,'0','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,5; bonus bUnbreakableGarment,1; bonus2 bAddRace,RC_Player,5; bonus2 bMagicAddRace,RC_Player,5; bonus2 bResEff,Eff_Freeze,25;','','');
@@ -9753,6 +9857,19 @@ REPLACE INTO `item_db` VALUES ('20778','Crimson_Stole','Crimson Stole','5','0','
REPLACE INTO `item_db` VALUES ('20788','Private_Doram_Manteau','Private Doram Manteau','5','0','20','10','300','0','0','20','0','1','0','63','2','4','0','100',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,5; bonus2 bSubEle,Ele_Neutral,2; bonus bFlee2,getrefine()/3;','','');
REPLACE INTO `item_db` VALUES ('20789','Luxury_Doram_Manteau','Luxury Doram Manteau','5','0','20','10','400','0','0','25','0','1','0','63','2','4','0','140',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee, 7; bonus2 bSubEle,Ele_Neutral, 3; bonus bFlee2, getrefine() / 3; bonus bLuk, getrefine() / 3;','','');
REPLACE INTO `item_db` VALUES ('20790','Elegant_Doram_Manteau','Elegant Doram Manteau','5','0','20','10','500','0','0','30','0','1','0','63','2','4','0','175',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee, 10; bonus2 bSubEle,Ele_Neutral, 5; bonus bFlee2, getrefine() / 2; bonus bInt, getrefine() / 2; bonus bDex, getrefine() / 2; bonus bLuk, getrefine() / 2;','','');
+REPLACE INTO `item_db` VALUES ('20838','Muffler_IL','Muffler_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20840','Cape_Of_Ancient_Lord_IL','Cape_Of_Ancient_Lord_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20847','Clack_Of_Servival_IL','Clack_Of_Servival_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20856','YSF01_Manteau','YSF01_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20902','True_Hunting_Manteau','True_Hunting_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20903','R_Hunting_Manteau','R_Hunting_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20906','Rebeginer_Manteau','Rebeginer_Manteau','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20923','Goibne_Shoulder_IL','Goibne_Shoulder_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20933','Illusion_Engine_A','Illusion_Engine_A','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20934','Illusion_Engine_B','Illusion_Engine_B','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20939','Time_Overload_Hood','Time_Overload_Hood','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20940','Violet_Halo','Violet_Halo','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('20944','Fairy_Cloth','Fairy_Cloth','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('21000','Upg_Twohand_Sword','Upgrade Two-Hand Sword','4','3','20','10','1500','100','0','0','1','1','16514','63','2','34','3','0',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*12); bonus bMatk,(getrefine()*5); if(BaseLevel>70) { bonus bBaseAtk,(((BaseLevel-70)/10)*10); }','','');
REPLACE INTO `item_db` VALUES ('21001','Velum_Claymore','Vellum Claymore','4','3','20','10','3500','260','0','0','2','0','16514','63','2','34','4','95',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,80; bonus2 bIgnoreDefRate,RC_DemiPlayer,30; if(getrefine()>=6) { bonus2 bAddRace,RC_DemiPlayer,40; } if(getrefine()>=9) { autobonus2 \"{ bonus bShortWeaponDamageReturn,20; bonus bMagicDamageReturn,20; }\",200,1000,BF_WEAPON,\"{ specialeffect(EF_REFLECTSHIELD, AREA, playerattached()); }\"; }','','');
REPLACE INTO `item_db` VALUES ('21002','Velum_Katzbalger','Vellum Katzbalger','4','3','20','10','2500','100','0','0','1','0','16514','63','2','34','4','95',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bHPVanishRate, 1000, 8, BF_NORMAL;','','');
@@ -9772,6 +9889,9 @@ REPLACE INTO `item_db` VALUES ('21015','Scarlet_Twohand_Sword','Crimson Two-Hand
REPLACE INTO `item_db` VALUES ('21016','Two_Handed_Sword_of_Vicious_Mind','Two-Handed Sword of Vicious Mind','4','3','20','10','2200','220','0','0','1','1','16514','63','2','34','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','','');
REPLACE INTO `item_db` VALUES ('21018','Lindy_Hop','Lindy Hop','4','3','20','10','3400','340','0','0','1','2','16514','56','2','34','4','170',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtkRate,getrefine()/2; bonus bAspdRate,getrefine();','','');
REPLACE INTO `item_db` VALUES ('21019','Onimaru','Onimaru','4','3','0','0','4200','75','0','0','1','2','128','56','2','34','4','130',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,min(readparam(bStr),120); if(readparam(bStr)>=95) { bonus bAtk,40; } if(readparam(bStr)>=108) { bonus bAtk,40; } if(readparam(bStr)>=120) { bonus bAtk,40; } if(getrefine()>=7) { bonus3 bAutoSpell,NPC_WIDECURSE,5,10; } /* Custom - JRO */ if(getrefine()>=9) { skill LK_BERSERK,1; }','','');
+REPLACE INTO `item_db` VALUES ('21037','Rebeginer_RK_T_Sword','Rebeginer_RK_T_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('21047','Beam_Claymore_OS','Beam_Claymore_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('21049','Evt_Oriental_Sword','Evt_Oriental_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('22000','Temporal_Str_Boots','Temporal STR Boots','5','0','20','10','600','0','0','25','0','0','18446744073709551615','56','2','64','0','99',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,300+((getrefine()/3)*100); bonus bMaxSP,30+((getrefine()/3)*10); bonus bAtk,(getrefine()/3)*7; if(readparam(bStr)>=120) { bonus bAtk,50; }','','');
REPLACE INTO `item_db` VALUES ('22001','Temporal_Int_Boots','Temporal INT Boots','5','0','20','10','600','0','0','20','0','0','18446744073709551615','56','2','64','0','99',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,300+((getrefine()/3)*100); bonus bMaxSP,30+((getrefine()/3)*10); bonus bMatk,(getrefine()/3)*10; if(readparam(bInt)>=120) { bonus bMatk,60; bonus bMdef,5; }','','');
REPLACE INTO `item_db` VALUES ('22002','Temporal_Agi_Boots','Temporal AGI Boots','5','0','20','10','600','0','0','25','0','0','18446744073709551615','56','2','64','0','99',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,300+((getrefine()/3)*100); bonus bMaxSP,30+((getrefine()/3)*10); bonus bAspdRate,(getrefine()/3)*3; if(readparam(bAgi)>=120) { bonus bAspd,1; }','','');
@@ -9812,6 +9932,17 @@ REPLACE INTO `item_db` VALUES ('22077','Red_Eco_Friendly_Shoes','Red Eco-Friendl
REPLACE INTO `item_db` VALUES ('22083','Private_Doram_Shoes','Private Doram Shoes','5','0','20','10','500','0','0','25','0','1','0','63','2','64','0','100',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP, 100; bonus bMaxSP, 50; bonus bHPrecovRate, getrefine() * 10 / 3; bonus bSPrecovRate, getrefine() * 10 / 3;','','');
REPLACE INTO `item_db` VALUES ('22084','Luxury_Doram_Shoes','Luxury Doram Shoes','5','0','20','10','600','0','0','30','0','1','0','63','2','64','0','140',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP, 300; bonus bMaxSP, 100; bonus bHPrecovRate, 20 * getrefine() / 3; bonus bSPrecovRate, 20 * getrefine() / 3;','','');
REPLACE INTO `item_db` VALUES ('22085','Elegant_Doram_Shoes','Elegant Doram Shoes','5','0','20','10','700','0','0','35','0','1','0','63','2','64','0','175',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHPrate, 10; bonus bMaxSPrate, 5; bonus bMaxHP, 100 * getrefine() / 2; bonus bMaxSP, 20 * getrefine() / 2; if ((getrefine() / 2) >= 4) bonus2 bSkillUseSP, SU_LOPE, 5;','','');
+REPLACE INTO `item_db` VALUES ('22133','Shoes_IL','Shoes_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22141','YSF01_Greave','YSF01_Greave','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22168','True_Hunting_Boots','True_Hunting_Boots','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22169','R_Hunting_Boots','R_Hunting_Boots','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22171','ShoesOfGuardsman','ShoesOfGuardsman','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22173','Rebeginer_Boots','Rebeginer_Boots','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22190','Boots_IL','Boots_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22192','Goibne_Boots_IL','Goibne_Boots_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22196','Illusion_Leg_A','Illusion_Leg_A','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22197','Illusion_Leg_B','Illusion_Leg_B','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22204','Time_Overload_Boots','Time_Overload_Boots','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('22508','Para_Team_Mark_','Eden Group Mark','11','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','1200000','507',NULL,'0',NULL,'0',NULL,'0','warp \"moc_para01\", 171, 115;','','');
REPLACE INTO `item_db` VALUES ('22514','Candy_Holder','Candy Holder','11','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('22515','Key_Of_Twisted_Time','Twisted Key of Time','3','0','10','5','300','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -9843,6 +9974,107 @@ REPLACE INTO `item_db` VALUES ('22808','Special_Gift_Box','Special Gift Box','2'
REPLACE INTO `item_db` VALUES ('22837','Integer_Time','Integer Time','2','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','50',NULL,'0','1','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','TmpRouletteBronze += 1;','','');
REPLACE INTO `item_db` VALUES ('22838','Something_Candy_Holder','Pumpkin Candy Holder','2','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 22838,1;','','');
REPLACE INTO `item_db` VALUES ('22876','Old_Money_Pocket','Old Money Pocket','2','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','Zeny += rand(500, 550);','','');
+REPLACE INTO `item_db` VALUES ('23242','Fried_Chicken','Fried_Chicken','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23243','Fried_Chicken_1','Fried_Chicken_1','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23256','Elixir_Bandage','Elixir_Bandage','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23257','Dew_Of_Old_Tree','Dew_Of_Old_Tree','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23258','Foul_Rotten_Meat','Foul_Rotten_Meat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23259','St_Cupcake','St_Cupcake','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23260','Parfait','Parfait','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23261','Macaron','Macaron','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23277','Mado_Box','Mado_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23332','Costama_EggV01','Costama_EggV01','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23342','Vend_Arbeit1_1Lv','Vend_Arbeit1_1Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23343','Vend_Arbeit1_2Lv','Vend_Arbeit1_2Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23344','Vend_Arbeit1_3Lv','Vend_Arbeit1_3Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23345','Buy_Arbeit1_1Lv','Buy_Arbeit1_1Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23346','Buy_Arbeit1_2Lv','Buy_Arbeit1_2Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23347','Buy_Arbeit1_3Lv','Buy_Arbeit1_3Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23348','Vend_Arbeit_1Lv','Vend_Arbeit_1Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23349','Vend_Arbeit_2Lv','Vend_Arbeit_2Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23350','Vend_Arbeit_3Lv','Vend_Arbeit_3Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23351','Buy_Arbeit_1Lv','Buy_Arbeit_1Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23352','Buy_Arbeit_2Lv','Buy_Arbeit_2Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23353','Buy_Arbeit_3Lv','Buy_Arbeit_3Lv','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23354','Vend_Arbeit1_1Lv_','Vend_Arbeit1_1Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23355','Vend_Arbeit1_2Lv_','Vend_Arbeit1_2Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23356','Vend_Arbeit1_3Lv_','Vend_Arbeit1_3Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23357','Buy_Arbeit1_1Lv_','Buy_Arbeit1_1Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23358','Buy_Arbeit1_2Lv_','Buy_Arbeit1_2Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23359','Buy_Arbeit1_3Lv_','Buy_Arbeit1_3Lv_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23405','Green_Scroll_K2','Green_Scroll_K2','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23440','Sentimental_Scroll','Sentimental_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23444','July_Hair_Box','July_Hair_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23446','Savage_Trap','Savage_Trap','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23473','Infinity_Scroll','Infinity_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23475','Infinity_Drink','Infinity_Drink','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23484','Firstaid_Box_5','Firstaid_Box_5','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23485','Firstaid_Box_10','Firstaid_Box_10','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23486','Firstaid_Box_15','Firstaid_Box_15','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23487','Firstaid_Box_20','Firstaid_Box_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23488','Firstaid_Box_25','Firstaid_Box_25','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23489','Firstaid_Box_30','Firstaid_Box_30','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23490','Firstaid_Box_35','Firstaid_Box_35','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23491','Firstaid_Box_40','Firstaid_Box_40','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23492','Firstaid_Box_45','Firstaid_Box_45','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23493','Firstaid_Box_50','Firstaid_Box_50','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23494','Firstaid_Box_55','Firstaid_Box_55','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23495','Firstaid_Box_60','Firstaid_Box_60','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23496','Firstaid_Box_65','Firstaid_Box_65','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23497','Firstaid_Box_70','Firstaid_Box_70','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23498','Firstaid_Box_75','Firstaid_Box_75','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23499','Firstaid_Box_80','Firstaid_Box_80','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23500','Firstaid_Box_85','Firstaid_Box_85','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23501','Firstaid_Box_90','Firstaid_Box_90','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23502','Firstaid_Box_95','Firstaid_Box_95','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23503','Red_Potion_B_20','Red_Potion_B_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23504','Orange_Potion_B_20','Orange_Potion_B_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23505','Yellow_Potion_B_20','Yellow_Potion_B_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23506','White_Potion_B_20','White_Potion_B_20','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23533','Vote_Rose','Vote_Rose','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23537','Bloody_Scroll','Bloody_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23549','Snow_Cookie','Snow_Cookie','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23550','Winter_Cookie','Winter_Cookie','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23551','Festi_Cookie','Festi_Cookie','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23552','Flora_Cookie','Flora_Cookie','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23554','Snow_Festa_CardPack','Snow_Festa_CardPack','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23575','Adventurer_Box_1','Adventurer_Box_1','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23576','Adventurer_Box_15','Adventurer_Box_15','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23577','Adventurer_Box_30','Adventurer_Box_30','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23578','Adventurer_Box_45','Adventurer_Box_45','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23579','Adventurer_Box_60','Adventurer_Box_60','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23580','Adventurer_Box_75','Adventurer_Box_75','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23581','Adventurer_Box_90','Adventurer_Box_90','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23582','E_Wing_Of_Fly_3Day_Box','E_Wing_Of_Fly_3Day_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23583','Rebeginer_Box','Rebeginer_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23584','Rebeginer_S_Box','Rebeginer_S_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23585','Rebeginer_Box_100','Rebeginer_Box_100','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23586','Rebeginer_Box_110','Rebeginer_Box_110','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23587','Rebeginer_Box_120','Rebeginer_Box_120','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23618','2017_Special_Scroll','2017_Special_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23650','Ice_Scroll','Ice_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23661','2018_New_Year_Scroll','2018_New_Year_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23683','EVT_JAN02KR','EVT_JAN02KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23700','Lunar_New_Year_Scroll','Lunar_New_Year_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23706','Reactor_Z','Reactor_Z','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23707','Reactor_Z_','Reactor_Z_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23710','2018_Spring_Scroll','2018_Spring_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23723','Melon_Bread','Melon_Bread','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23765','Costama_EggV02','Costama_EggV02','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23771','Mysterious_Plastic','Mysterious_Plastic','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23772','EP17_1_SPC01','EP17_1_SPC01','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23773','EP17_1_SPC02','EP17_1_SPC02','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23774','EP17_1_SPC03','EP17_1_SPC03','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23775','EP17_1_SPC04','EP17_1_SPC04','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23817','Bs_Making_Scrolls','Bs_Making_Scrolls','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23878','StarSoul_Scroll','StarSoul_Scroll','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23897','2018_Jump_Thx_Box','2018_Jump_Thx_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23898','Comp_Power_Booster','Comp_Power_Booster','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23899','Comp_Almighty','Comp_Almighty','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23900','Time_Overload_Box','Time_Overload_Box','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23901','110LVUP','110LVUP','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23921','Season_Evt_Reward','Season_Evt_Reward','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('23962','Malang_Cat_Can2','Malang_Cat_Can2','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('24000','T1_Shadow_Armor','T STR1 Armor Shadow','5','0','10','5','0','0','0','0','0','0','18446744073709551615','63','2','65536','0','0',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1;','','');
REPLACE INTO `item_db` VALUES ('24001','T1_Shadow_Weapon','T DEX1 Weapon Shadow','5','0','10','5','0','0','0','0','0','0','18446744073709551615','63','2','131072','0','0',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,1;','','');
REPLACE INTO `item_db` VALUES ('24002','T1_Shadow_Shield','T LUK1 Shield Shadow','5','0','10','5','0','0','0','0','0','0','18446744073709551615','63','2','262144','0','0',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,1;','','');
@@ -10089,7 +10321,164 @@ REPLACE INTO `item_db` VALUES ('24242','S_Caster_Armor','Caster Shadow Armor','5
REPLACE INTO `item_db` VALUES ('24243','S_Reload_Shoes','Reload Shadow Shoes','5','0','10','5','0','0','0','0','0','0','18446744073709551615','63','2','524288','0','0',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDelayrate,-1; if (getrefine()>=7) { bonus bDelayrate,-1; } if (getrefine()>=9) { bonus bDelayrate,-1; }','','');
REPLACE INTO `item_db` VALUES ('24244','S_Reload_Shield','Reload Shadow Shield','5','0','10','5','0','0','0','0','0','0','18446744073709551615','63','2','262144','0','0',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDelayrate,-1; if (getrefine()>=7) { bonus bDelayrate,-1; } if (getrefine()>=9) { bonus bDelayrate,-1; }','','');
REPLACE INTO `item_db` VALUES ('24245','S_Reload_Armor','Reload Shadow Armor','5','0','10','5','0','0','0','0','0','0','18446744073709551615','63','2','65536','0','0',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDelayrate,-1; if (getrefine()>=7) { bonus bDelayrate,-1; } if (getrefine()>=9) { bonus bDelayrate,-1; }','','');
+REPLACE INTO `item_db` VALUES ('24380','Sentimental_Weapone_S','Sentimental_Weapone_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24381','Sentimental_Earring_S','Sentimental_Earring_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24382','Sentimental_Pendant_S','Sentimental_Pendant_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24383','Enchanting_Weapone_S','Enchanting_Weapone_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24384','Enchanting_Earring_S','Enchanting_Earring_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24385','Enchanting_Pendant_S','Enchanting_Pendant_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24386','S_Infinity_Weapon','S_Infinity_Weapon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24387','Rebeginer_Armor_S','Rebeginer_Armor_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24388','Rebeginer_Shield_S','Rebeginer_Shield_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24389','Rebeginer_Shoes_S','Rebeginer_Shoes_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24390','Rebeginer_Weapon_S','Rebeginer_Weapon_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24391','Rebeginer_Earring_S','Rebeginer_Earring_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24392','Rebeginer_Pendant_S','Rebeginer_Pendant_S','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24393','S_Physical_Shoes','S_Physical_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24394','S_Physical_Shield','S_Physical_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24395','S_Physical_Armor','S_Physical_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24396','S_Magical_Shoes','S_Magical_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24397','S_Magical_Shield','S_Magical_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24398','S_Magical_Armor','S_Magical_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24399','S_ImmunedAthena_Shield','S_ImmunedAthena_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24400','S_HardChamption_Shoes','S_HardChamption_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24401','S_KingbirdAncient_Armor','S_KingbirdAncient_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24402','S_Rebellion_Armor','S_Rebellion_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24403','S_Kagerou_Armor','S_Kagerou_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24404','S_Oboro_Armor','S_Oboro_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24405','S_Rebellion_Shoes','S_Rebellion_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24406','S_Kagerou_Shoes','S_Kagerou_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24407','S_Oboro_Shoes','S_Oboro_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24408','S_DoramPhysical_Armor','S_DoramPhysical_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24409','S_DoramPhysical_Shoes','S_DoramPhysical_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24410','S_DoramMagical_Armor','S_DoramMagical_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24411','S_DoramMagical_Shoes','S_DoramMagical_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24412','S_Star_Emperor_Armor','S_Star_Emperor_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24413','S_Star_Emperor_Shoes','S_Star_Emperor_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24414','S_Soul_Reaper_Armor','S_Soul_Reaper_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24415','S_Soul_Reaper_Shoes','S_Soul_Reaper_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24416','S_Timeoverload_Weapon','S_Timeoverload_Weapon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24417','S_Timeoverload_Armor','S_Timeoverload_Armor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24418','S_Timeoverload_Shield','S_Timeoverload_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24419','S_Timeoverload_Shoes','S_Timeoverload_Shoes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24420','S_Timeoverload_Earing','S_Timeoverload_Earing','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('24421','S_Timeoverload_Pandent','S_Timeoverload_Pandent','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25258','BrokenArrow','BrokenArrow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25265','Shining_Spore','Shining_Spore','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25266','Dried_Leaf_Of_Ygg','Dried_Leaf_Of_Ygg','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25271','IllusionStone','IllusionStone','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25290','Sweets_Coin','Sweets_Coin','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25294','Clover_Ticket','Clover_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25295','Happiness_Clover','Happiness_Clover','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25340','Golden_Corn','Golden_Corn','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25375','Mightysoul_Essence','Mightysoul_Essence','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25390','Captured_Savage','Captured_Savage','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25391','Goodly_Bough','Goodly_Bough','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25392','Free_Pass_Ticket','Free_Pass_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25393','Delicious_Corn','Delicious_Corn','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25394','Fruit_Lunch','Fruit_Lunch','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25395','Small_Embers','Small_Embers','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25401','Black_Fur','Black_Fur','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25408','Memory_Of_Gyol','Memory_Of_Gyol','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25409','SuraStone_Top','SuraStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25410','SuraStone_Middle','SuraStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25411','SuraStone_Bottom','SuraStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25412','SuraStone_Robe','SuraStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25413','RangerStone_Top','RangerStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25414','RangerStone_Middle','RangerStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25415','RangerStone_Bottom','RangerStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25416','RangerStone_Robe','RangerStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25417','SorcererStone_Top','SorcererStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25418','SorcererStone_Middle','SorcererStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25419','SorcererStone_Bottom','SorcererStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25420','SorcererStone_Robe','SorcererStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25421','Pumpkin_Decor','Pumpkin_Decor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25422','White_Thin_Stem','White_Thin_Stem','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25425','SnowFlower_Of_Spell','SnowFlower_Of_Spell','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25426','Warm_Cotton','Warm_Cotton','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25427','Rebeginer_W_Coupon','Rebeginer_W_Coupon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25428','Rebeginer_W_7Up','Rebeginer_W_7Up','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25445','RuneknightStone_Top','RuneknightStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25446','RuneknightStone_Middle','RuneknightStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25447','RuneknightStone_Bottom','RuneknightStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25448','RuneknightStone_Robe','RuneknightStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25449','GeneticStone_Robe','GeneticStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25450','GeneticStone_Top','GeneticStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25451','GeneticStone_Middle','GeneticStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25452','GeneticStone_Bottom','GeneticStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25453','WarlockStone_Top','WarlockStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25454','WarlockStone_Middle','WarlockStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25455','WarlockStone_Bottom','WarlockStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25456','WarlockStone_Robe','WarlockStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25464','World_Tour_Ticket','World_Tour_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25479','Dogly_Bottle','Dogly_Bottle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25490','ShadowchaserStone_Top','ShadowchaserStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25491','ShadowchaseStone_Middle','ShadowchaseStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25492','ShadowchaseStone_Bottom','ShadowchaseStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25493','ShadowchaserStone_Robe','ShadowchaserStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25494','MechanicStone_Top','MechanicStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25495','MechanicStone_Middle','MechanicStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25496','MechanicStone_Bottom','MechanicStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25497','MechanicStone_Robe','MechanicStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25498','WanderMinstrelStone_Top','WanderMinstrelStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25499','WanderMinstStone_Middle','WanderMinstStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25500','WanderMinstStone_Bottom','WanderMinstStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25501','WanderMinstreStone_Robe','WanderMinstreStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25504','Visionary_Ticket','Visionary_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25508','Token_of_OrcGeneral','Token_of_OrcGeneral','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25511','Evt_March04_KR','Evt_March04_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25512','Evt_March05_KR','Evt_March05_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25616','Green_Bearopy','Green_Bearopy','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25622','White_Snake_Tear','White_Snake_Tear','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25627','Gold_Card','Gold_Card','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25629','Konts_Letter','Konts_Letter','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25633','Token_Of_Wootan','Token_Of_Wootan','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25634','Wootan_D_S_Piece','Wootan_D_S_Piece','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25638','Token_Of_Bigstone','Token_Of_Bigstone','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25639','Fragment_Of_Rock','Fragment_Of_Rock','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25643','Autographed_Book','Autographed_Book','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25655','Dalcom_Coin','Dalcom_Coin','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25656','Stamp_Note','Stamp_Note','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25657','Evt_July01_KR','Evt_July01_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25658','Evt_July02_KR','Evt_July02_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25659','Evt_May02_KR','Evt_May02_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25664','Evt_July03_KR','Evt_July03_KR','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25665','Dienes_Envelope','Dienes_Envelope','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25666','Id_Card','Id_Card','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25668','Broken_Weapon','Broken_Weapon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25669','Unknown_Parts','Unknown_Parts','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25706','HighpriestStone_Top','HighpriestStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25707','HighpriestStone_Middle','HighpriestStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25708','HighpriestStone_Bottom','HighpriestStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25709','ArchbishopStone_Robe','ArchbishopStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25710','PaladinStone_Top','PaladinStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25711','PaladinStone_Middle','PaladinStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25712','PaladinStone_Bottom','PaladinStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25713','RoyalguardStone_Robe','RoyalguardStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25714','AssacrossStone_Top','AssacrossStone_Top','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25715','AssacrossStone_Middle','AssacrossStone_Middle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25716','AssacrossStone_Bottom','AssacrossStone_Bottom','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25717','GuillcrossStone_Robe','GuillcrossStone_Robe','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25723','Cor_Core','Cor_Core','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25728','Shadowdecon_Ore','Shadowdecon_Ore','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25729','Shadowdecon','Shadowdecon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25730','Zelunium_Ore','Zelunium_Ore','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25731','Zelunium','Zelunium','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25734','Sealed_Weapon_Ticket','Sealed_Weapon_Ticket','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25735','Unsealing_Token','Unsealing_Token','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25739','GH_Cursed_Crystal','GH_Cursed_Crystal','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('25740','GH_Cursed_Gemstone','GH_Cursed_Gemstone','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26007','Spectral_Spear_IL','Spectral_Spear_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26015','Rebeginer_LG_Lance','Rebeginer_LG_Lance','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('26101','Paradise_Foxtail_Staff_III','Eden Group Foxtail Staff III','4','10','20','10','0','150','195','0','1','0','0','7','2','2','3','60',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,5; bonus bInt,5; bonus bLongAtkRate,7;','','');
+REPLACE INTO `item_db` VALUES ('26109','Staff_Of_Bordeaux_IL','Staff_Of_Bordeaux_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26110','CandyCaneRod','CandyCaneRod','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26111','Metal_Foxtail','Metal_Foxtail','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26119','Rebeginer_SO_Rod','Rebeginer_SO_Rod','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26120','Rebeginer_DO_Rod','Rebeginer_DO_Rod','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26151','Rutilus_Stick_OS','Rutilus_Stick_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26155','MeawFoxtail','MeawFoxtail','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('26156','Evt_Shadow_Staff_K','Evt_Shadow_Staff_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('27164','Faceworm_Queen_Card','Faceworm Queen Card','6','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','64','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus(bMaxHPrate, -10); bonus(bCritical, 15 + getrefine()); bonus(bCritAtkRate, getrefine());','','');
REPLACE INTO `item_db` VALUES ('27182','Captain_Felock_Card','Captain Felock Card','6','0','20','10','10','0','0','0','0','0','18446744073709551615','63','2','2','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus(bAtk, 30); bonus2(bSkillAtk, RL_AM_BLAST, getrefine() >= 10 ? 60 : 30); bonus2(bSkillAtk, RL_HAMMER_OF_GOD, getrefine() >= 10 ? 60 : 30);','','');
REPLACE INTO `item_db` VALUES ('28000','Thanos_Katar','Thanatos Katar','4','16','20','10','1800','220','80','0','1','1','4096','56','2','34','4','120',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000;','','heal -1000,0;');
@@ -10098,16 +10487,29 @@ REPLACE INTO `item_db` VALUES ('28002','Half_BF_Katar2','Half BF Katar2','4','16
REPLACE INTO `item_db` VALUES ('28007','Scarlet_Katar','Crimson Katar','4','16','20','10','1300','130','0','0','1','2','4096','63','2','34','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,5*((BaseLevel-70)/10); }','','');
REPLACE INTO `item_db` VALUES ('28008','Katar_of_Vicious_Mind','Katar of Vicious Mind','4','16','20','10','1800','180','0','0','1','1','4096','63','2','34','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','','');
REPLACE INTO `item_db` VALUES ('28010','Juliette_de_Rachel','Juliette de Rachel','4','16','20','10','2500','300','0','0','1','2','4096','56','2','34','4','170',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkRate,getrefine()/2; bonus bAspdRate,getrefine(); bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db` VALUES ('28022','Infiltrator_IL','Infiltrator_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28023','Ghoul_Leg_IL','Ghoul_Leg_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28027','Rebeginer_GC_Katar','Rebeginer_GC_Katar','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28038','Meuchler_OS','Meuchler_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28040','Evt_Shiver_Katar_K','Evt_Shiver_Katar_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28100','Thanos_Axe','Thanatos Axe','4','7','20','10','4000','300','80','0','1','1','279714','56','2','34','4','120',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000;','','heal -1000,0;');
REPLACE INTO `item_db` VALUES ('28101','Tornado_Axe','Axe Tornado','4','7','500','250','4000','320','0','0','1','1','279714','56','2','34','4','100',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Wind; bonus2 bSkillCooldown,NC_AXETORNADO,-1000;','','');
REPLACE INTO `item_db` VALUES ('28105','Infinity_Two_handed_Axe','Infinity Two-handed Axe','4','7','20','10','500','265','0','0','1','1','279714','56','2','34','4','100',NULL,'1','0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28106','Scarlet_Twohand_Axe','Crimson Two-handed Axe','4','7','20','10','2000','200','0','0','1','2','279714','63','2','34','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','','');
REPLACE INTO `item_db` VALUES ('28107','Two_Handed_Axe_of_Vicious_Mind','Two-Handed Axe of Vicious Mind','4','7','20','10','2500','250','0','0','1','1','279714','63','2','34','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db` VALUES ('28136','Blasti_OS','Blasti_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28137','Evt_Avenger','Evt_Avenger','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28200','END_OF_HORIZON','End Of The Horizon','4','21','2700000','1350000','2400','410','0','0','9','1','1073741824','63','2','34','4','110',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28201','Southern_Cross_R','Southern Cross','4','21','2800000','1400000','2000','480','0','0','9','0','1073741824','63','2','34','4','141',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,GC_CROSSIMPACT,1,50;','','');
REPLACE INTO `item_db` VALUES ('28202','Southern_Cross_R_','Southern Cross','4','21','2800000','1400000','2000','480','0','0','9','1','1073741824','63','2','34','4','141',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,GC_CROSSIMPACT,1,50;','','');
REPLACE INTO `item_db` VALUES ('28203','Half_BF_Rifle1','Half BF Rifle1','4','18','0','0','0','50','0','0','9','0','1090519040','63','2','34','3','80',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bHit,8; bonus bCritical,8; bonus2 bAddRace,RC_DemiPlayer,30; bonus2 bVariableCastrate,GS_TRACKING,-20; bonus2 bIgnoreDefRate,RC_DemiPlayer,10; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db` VALUES ('28204','Half_BF_Shotgun1','Half BF Shotgun1','4','20','0','0','0','100','0','0','9','0','1090519040','63','2','34','3','80',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiPlayer,30; bonus2 bIgnoreDefRate,RC_DemiPlayer,10; autobonus \"{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }\",30,6000,BF_WEAPON,\"{ specialeffect(EF_BASH3D, AREA, playerattached()); }\"; bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db` VALUES ('28240','Calf_Kingcobra','Calf_Kingcobra','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28241','Calf_Diamondback','Calf_Diamondback','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28242','Calf_Anaconda','Calf_Anaconda','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28243','Calf_Python','Calf_Python','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28244','Gate_KeeperDD_IL','Gate_KeeperDD_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28253','HR_S55_OS','HR_S55_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28306','Bless_Of_Moon','Luna\'s Blessing','5','0','0','0','100','0','0','5','0','0','18446744073709551615','63','2','136','0','0',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3; bonus bAllStats,1; bonus5 bAutoSpell,CG_TAROTCARD,5,100,BF_WEAPON|BF_MAGIC,1;','','');
REPLACE INTO `item_db` VALUES ('28310','Earring_Of_Sarah_L','Sarah\'s Left Earring','5','0','0','0','100','0','0','0','0','0','18446744073709551615','63','2','136','0','145',NULL,'0','0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','skill AL_HEAL,1;','','');
REPLACE INTO `item_db` VALUES ('28311','Earring_Of_Sarah_R','Sarah\'s Right Earring','5','0','0','0','100','0','0','0','0','0','18446744073709551615','63','2','136','0','145',NULL,'0','0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','skill AL_TELEPORT,1;','','');
@@ -10139,15 +10541,36 @@ REPLACE INTO `item_db` VALUES ('28421','Greater_Rabbit_Talisman','Greater Rabbit
REPLACE INTO `item_db` VALUES ('28422','Shiny_Branch_Talisman','Shiny Branch Talisman','5','0','0','0','100','0','0','1','0','1','0','63','2','136','0','100',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bVariableCastrate,SU_SV_STEMSPEAR,-50; bonus2 bSkillAtk,SU_SV_STEMSPEAR,(readparam(bInt)/2)+(20 * getskilllv(SU_SV_STEMSPEAR)); //Need to confirm damage formula','','');
REPLACE INTO `item_db` VALUES ('28423','Fresh_Tuna_Talisman','Fresh Tuna Talisman','5','0','0','0','100','0','0','1','0','1','0','63','2','136','0','100',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillCooldown,SU_TUNAPARTY,-5000; bonus3 bAutoSpellWhenHit,SU_TUNAPARTY,max(1,getskilllv(SU_TUNAPARTY)),10;','','');
REPLACE INTO `item_db` VALUES ('28424','Chubby_Worm_Talisman','Chubby Worm Talisman','5','0','0','0','100','0','0','1','0','1','0','63','2','136','0','100',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bVariableCastrate,SU_PICKYPECK,-50; bonus2 bSkillAtk,SU_PICKYPECK,(readparam(bDex)/2)+(20 * getskilllv(SU_PICKYPECK)); //Need to confirm damage formula','','');
+REPLACE INTO `item_db` VALUES ('28508','Skul_Ring_IL','Skul_Ring_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28509','Ring_IL','Ring_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28510','Vampire_s_Servant','Vampire_s_Servant','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28534','RKC_2017_Pendant','RKC_2017_Pendant','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28535','RKC_2017_Ring','RKC_2017_Ring','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28566','Rebeginer_Ring','Rebeginer_Ring','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28604','Scarlet_Bible','Crimson Bible','4','15','20','10','450','45','0','0','1','2','4260096','63','2','2','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','','');
REPLACE INTO `item_db` VALUES ('28605','Book_of_Vicious_Mind','Book of Vicious Mind','4','15','20','10','950','95','0','0','1','1','4260096','63','2','2','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db` VALUES ('28612','Book_Of_The_Apo_IL','Book_Of_The_Apo_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28616','Rebeginer_AB_Bible','Rebeginer_AB_Bible','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28626','Tablet_IL','Tablet_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28629','Circuit_Board_OS','Circuit_Board_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28631','Time_Kamiji','Time_Kamiji','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28703','Infinity_Dagger','Infinity Dagger','4','1','20','10','500','125','100','0','1','1','579821295','63','2','2','4','100',NULL,'1','0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28704','Twilight_Desert_','Desert Twilight','4','1','20','10','600','130','0','0','1','4','4096','58','2','2','2','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28705','Scarlet_Dagger','Crimson Dagger','4','1','20','10','550','55','0','0','1','2','579821295','63','2','2','3','70',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','','');
REPLACE INTO `item_db` VALUES ('28706','Dagger_of_Vicious_Mind','Dagger of Vicious Mind','4','1','20','10','1050','105','50','0','1','1','579821295','63','2','2','4','160',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2;','','');
+REPLACE INTO `item_db` VALUES ('28725','Moonlight_Sword_IL','Moonlight_Sword_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28740','Rebeginer_SC_Dagger','Rebeginer_SC_Dagger','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28745','Counter_Dagger_IL','Counter_Dagger_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28755','Kuroiro_OS','Kuroiro_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28759','Evt_Magic_Sword','Evt_Magic_Sword','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('28900','Praetorian_Shield','Praetorian Shield','5','0','20','10','3000','0','0','30','0','1','18446744073709551615','63','2','32','0','100',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill LG_SHIELDSPELL,1; bonus3 bAutoSpellWhenHit,HP_ASSUMPTIO,3,20+(getrefine()); bonus bDef,getrefine()*10; bonus bMdef,getrefine();','','');
REPLACE INTO `item_db` VALUES ('28901','Cursed_Mad_Bunny','Cursed Mad Bunny','5','0','0','0','100','0','0','0','0','0','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspd,3; bonus bAtkRate,5; bonus bMatkRate,5; bonus bShortWeaponDamageReturn,10; autobonus \"{ bonus bMagicDamageReturn,60; }\",100,2000,BF_MAGIC,\"{ specialeffect(EF_NONE, AREA, playerattached()); }\"; if(getrefine()>6) { bonus bAtk,5; bonus bMatk,5; } if(getrefine()>8) { bonus bAtk,10; bonus bMatk,10; } if(getrefine()>11) { bonus bNoCastCancel,0; bonus bCritical,10; }','','');
REPLACE INTO `item_db` VALUES ('28902','Mad_Bunny_','Mad Bunny','5','0','0','0','100','0','0','0','0','1','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkRate,5; bonus bMatkRate,5; bonus bShortWeaponDamageReturn,10; autobonus \"{ bonus bMagicDamageReturn,60; }\",100,2000,BF_MAGIC,\"{ specialeffect(EF_NONE, AREA, playerattached()); }\"; if(getrefine()>6) { bonus bAtk,5; bonus bMatk,5; } if(getrefine()>8) { bonus bAtk,10; bonus bMatk,10; } if(getrefine()>11) { bonus bNoCastCancel,0; bonus bCritical,10; }','','');
+REPLACE INTO `item_db` VALUES ('28922','Herald_Of_GOD_IL','Herald_Of_GOD_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28942','Bloody_Knight_Shield','Bloody_Knight_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28945','Bloody_Knight_Shield_','Bloody_Knight_Shield_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28946','Bloody_Knight_Shield__','Bloody_Knight_Shield__','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('28953','Poring_B_Shield','Poring_B_Shield','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('29000','Rune_Of_Magic1','Rune Of Magic Power 1Lv','6','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1023','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (getrefine() >= 7) bonus bInt, 5; if (getrefine() >= 10) bonus bMatkRate, 5;','','');
REPLACE INTO `item_db` VALUES ('29001','Rune_Of_Magic2','Rune Of Magic Power 2Lv','6','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1023','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (getrefine() >= 7) bonus bInt, 6; if (getrefine() >= 11) { bonus bInt, 1; bonus bMatkRate, 7; }','','');
REPLACE INTO `item_db` VALUES ('29002','Rune_Of_Magic3','Rune Of Magic Power 3Lv','6','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1023','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (getrefine() >= 7) bonus bInt, 7; if (getrefine() >= 12) { bonus bInt, 1; bonus bMatkRate, 8; } if (getrefine() >= 13) { bonus bInt, 1; bonus bMatkRate, 2; }','','');
@@ -10175,3 +10598,73 @@ REPLACE INTO `item_db` VALUES ('29024','LUK3_STR3','LUK+3 STR-3','6','0','0','0'
REPLACE INTO `item_db` VALUES ('29025','LUK3_INT3','LUK+3 INT-3','6','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1023','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk, 3; bonus bInt, -3;','','');
REPLACE INTO `item_db` VALUES ('29026','DEF20','DEF+20','6','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1023','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDef, 20;','','');
REPLACE INTO `item_db` VALUES ('29027','EXP2','EXP+2%','6','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1023','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bExpAddRace, RC_All, 2;','','');
+REPLACE INTO `item_db` VALUES ('29540','Deep_Black_Pearl','Deep_Black_Pearl','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29547','Sea_Sapphire','Sea_Sapphire','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29548','Red_Fog_Garnet','Red_Fog_Garnet','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29549','Lightning_Topaz','Lightning_Topaz','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29550','Poisoned_Amethyst','Poisoned_Amethyst','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29551','Frost_Zircon','Frost_Zircon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29552','Deep_Black_Pearl_','Deep_Black_Pearl_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29587','Lightning_Topaz_','Lightning_Topaz_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29588','Bloody_Ruby','Bloody_Ruby','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29589','GH_Cursed_Gemstone_','GH_Cursed_Gemstone_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29590','GH_Cursed_Crystal_','GH_Cursed_Crystal_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29591','Cursed_Emerald','Cursed_Emerald','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('29592','Shinee_Opal','Shinee_Opal','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31172','Roast_Memory','Roast_Memory','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31186','C_Black_Cat','C_Black_Cat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31195','Choco_Minihat','Choco_Minihat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31197','Egg_Crispinette_','Egg_Crispinette_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31208','Straight_Long_YL','Straight_Long_YL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31209','Straight_Long_WH','Straight_Long_WH','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31249','Rabbit_Hopping','Rabbit_Hopping','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31261','Soda_In_Mouth_','Soda_In_Mouth_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31300','Warm_Cat_Muffler','Warm_Cat_Muffler','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31313','C_FallenAngelWingEar','C_FallenAngelWingEar','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31314','C_Ghost_Holiday','C_Ghost_Holiday','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31316','C_FlutterButterfly_BL','C_FlutterButterfly_BL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31329','C_Alice_Wig','C_Alice_Wig','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31332','C_Khalitzburg_Helm_BL','C_Khalitzburg_Helm_BL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31368','Harvest_Festa_Hat','Harvest_Festa_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31369','Straight_Long_WH_','Straight_Long_WH_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31370','Straight_Long_YL_','Straight_Long_YL_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31387','Jjakk','Jjakk','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31389','White_Bird_Rose','White_Bird_Rose','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31390','Let_It_Snow','Let_It_Snow','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31396','C_Sorcerer_Hood','C_Sorcerer_Hood','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31397','C_Pope_Sitting_Head','C_Pope_Sitting_Head','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31398','C_Blinking_Thin_Eyes','C_Blinking_Thin_Eyes','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31407','Alice_Wig_PK','Alice_Wig_PK','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31415','C_Wanderer_Sakkat','C_Wanderer_Sakkat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31432','C_Luwmin_Ice','C_Luwmin_Ice','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31433','C_Astro_Circle','C_Astro_Circle','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31437','C_Baby_Penguin','C_Baby_Penguin','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31439','C_Fluffy_Heart_Earmuffs','C_Fluffy_Heart_Earmuffs','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31452','White_Cat','White_Cat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31454','Love_Feeling','Love_Feeling','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31455','Enchanted_Dog','Enchanted_Dog','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31460','C_Blessing_Sky_Lantern','C_Blessing_Sky_Lantern','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31463','C_Flying_Drone','C_Flying_Drone','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31465','Egg_Minihat','Egg_Minihat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31489','C_Bouquet_Hat','C_Bouquet_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31490','C_Poring_Muffler','C_Poring_Muffler','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31494','Volume_Low_Twin','Volume_Low_Twin','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31495','Lolita_Two_Side_Up','Lolita_Two_Side_Up','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31498','C_Elephangel_TH','C_Elephangel_TH','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31516','Mini_Melon','Mini_Melon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31518','Pop_Popcorn_Hat_','Pop_Popcorn_Hat_','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31519','Slurp_Slurp_Hat','Slurp_Slurp_Hat','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31529','C_Happy_Rabbit_Ribbon','C_Happy_Rabbit_Ribbon','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31580','Autumnal_Flavor','Autumnal_Flavor','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31589','GOLD_MAJESTIC_GOUT','GOLD_MAJESTIC_GOUT','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('31606','C_Autumn_Headband','C_Autumn_Headband','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32005','Pole_Axe_IL','Pole_Axe_IL','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32013','Metal_Stick','Metal_Stick','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32019','Boost_Lance_OS','Boost_Lance_OS','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32021','Evt_Undine_Spear_K','Evt_Undine_Spear_K','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32207','Illusion_B_R','Illusion_B_R','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32208','Illusion_B_L','Illusion_B_L','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32209','Illusion_BC_R','Illusion_BC_R','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32210','Illusion_BC_L','Illusion_BC_L','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32221','Time_Overload_Ring','Time_Overload_Ring','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('32237','Celine_Brooch','Celine_Brooch','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
diff --git a/sql-files/main.sql b/sql-files/main.sql
index d918d4a35..37bfaf0ec 100644
--- a/sql-files/main.sql
+++ b/sql-files/main.sql
@@ -293,7 +293,7 @@ CREATE TABLE IF NOT EXISTS `charlog` (
`str` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`agi` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`vit` INT(11) UNSIGNED NOT NULL DEFAULT '0',
- `INT` INT(11) UNSIGNED NOT NULL DEFAULT '0',
+ `int` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`dex` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`luk` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`hair` TINYINT(4) NOT NULL DEFAULT '0',
diff --git a/src/char/char.c b/src/char/char.c
index 54f6ca7d1..8c3618887 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -139,6 +139,7 @@ char char_name_letters[1024] = ""; // list of letters/symbols allowed (or not) i
static int char_del_level = 0; ///< From which level you can delete character [Lupus]
static int char_del_delay = 86400;
static bool char_aegis_delete = false; ///< Verify if char is in guild/party or char and reacts as Aegis does (disallow deletion), @see chr->delete2_req.
+static bool char_aegis_rename = false; // whether or not the player can be renamed while in party/guild
static int max_connect_user = -1;
static int gm_allow_group = -1;
@@ -1514,6 +1515,14 @@ static int char_rename_char_sql(struct char_session_data *sd, int char_id)
if( char_dat.rename == 0 )
return 1;
+ if (char_aegis_rename) {
+ if (char_dat.guild_id > 0) {
+ return 5; // MSG_FAILED_RENAME_BELONGS_TO_GUILD
+ } else if (char_dat.party_id > 0) {
+ return 6; // MSG_FAILED_RENAME_BELONGS_TO_PARTY
+ }
+ }
+
SQL->EscapeStringLen(inter->sql_handle, esc_name, sd->new_name, strnlen(sd->new_name, NAME_LENGTH));
// check if the char exist
@@ -1539,9 +1548,20 @@ static int char_rename_char_sql(struct char_session_data *sd, int char_id)
// log change
if (chr->enable_logs) {
if (SQL_ERROR == SQL->Query(inter->sql_handle,
- "INSERT INTO `%s` (`time`, `char_msg`,`account_id`,`char_id`,`char_num`,`name`,`str`,`agi`,`vit`,`int`,`dex`,`luk`,`hair`,`hair_color`)"
- "VALUES (NOW(), '%s', '%d', '%d', '%d', '%s', '0', '0', '0', '0', '0', '0', '0', '0')",
- charlog_db, "change char name", sd->account_id, char_dat.char_id, char_dat.slot, esc_name))
+ "INSERT INTO `%s` ("
+ " `time`, `char_msg`, `account_id`, `char_id`, `char_num`, `class`, `name`,"
+ " `str`, `agi`, `vit`, `int`, `dex`, `luk`,"
+ " `hair`, `hair_color`"
+ ") VALUES ("
+ " NOW(), 'change char name', '%d', '%d', '%d', '%d', '%s',"
+ " '%d', '%d', '%d', '%d', '%d', '%d',"
+ " '%d', '%d'"
+ ")",
+ charlog_db,
+ sd->account_id, char_dat.char_id, char_dat.slot, char_dat.class, esc_name,
+ char_dat.str, char_dat.agi, char_dat.vit, char_dat.int_, char_dat.dex, char_dat.luk,
+ char_dat.hair, char_dat.hair_color
+ ))
Sql_ShowDebug(inter->sql_handle);
}
@@ -2132,17 +2152,20 @@ static void char_mmo_char_send_ban_list(int fd, struct char_session_data *sd)
//----------------------------------------
static void char_mmo_char_send_slots_info(int fd, struct char_session_data *sd)
{
+// also probably supported client 2013-02-15aRagexe but not 2013-02-15bRagexe [4144]
+#if PACKETVER_MAIN_NUM >= 20130612 || PACKETVER_RE_NUM >= 20130115 || defined(PACKETVER_ZERO)
nullpo_retv(sd);
- WFIFOHEAD(fd,29);
- WFIFOW(fd,0) = 0x82d;
- WFIFOW(fd,2) = 29;
- WFIFOB(fd,4) = sd->char_slots;
- WFIFOB(fd,5) = MAX_CHARS - sd->char_slots;
- WFIFOB(fd,6) = 0;
- WFIFOB(fd,7) = sd->char_slots;
- WFIFOB(fd,8) = sd->char_slots;
- memset(WFIFOP(fd,9), 0, 20); // unused bytes
- WFIFOSET(fd,29);
+ WFIFOHEAD(fd, 29);
+ WFIFOW(fd, 0) = 0x82d;
+ WFIFOW(fd, 2) = 29;
+ WFIFOB(fd, 4) = sd->char_slots;
+ WFIFOB(fd, 5) = MAX_CHARS - sd->char_slots;
+ WFIFOB(fd, 6) = 0;
+ WFIFOB(fd, 7) = sd->char_slots;
+ WFIFOB(fd, 8) = sd->char_slots;
+ memset(WFIFOP(fd, 9), 0, 20); // unused bytes
+ WFIFOSET(fd, 29);
+#endif
}
//----------------------------------------
// Function to send characters to a player
@@ -2409,12 +2432,8 @@ static void char_parse_fromlogin_account_data(int fd)
chr->auth_error(i, 0);
} else {
// send characters to player
- #if PACKETVER >= 20130000
chr->mmo_char_send_slots_info(i, sd);
chr->mmo_char_send_characters(i, sd);
- #else
- chr->mmo_char_send_characters(i, sd);
- #endif
#if PACKETVER >= 20060819
chr->mmo_char_send_ban_list(i, sd);
#endif
@@ -4558,8 +4577,19 @@ static void char_parse_char_select(int fd, struct char_session_data *sd, uint32
// FIXME: Why are we re-escaping the name if it was already escaped in rename/make_new_char? [Panikon]
SQL->EscapeStringLen(inter->sql_handle, esc_name, char_dat.name, strnlen(char_dat.name, NAME_LENGTH));
if (SQL_ERROR == SQL->Query(inter->sql_handle,
- "INSERT INTO `%s`(`time`, `account_id`, `char_id`, `char_num`, `name`) VALUES (NOW(), '%d', '%d', '%d', '%s')",
- charlog_db, sd->account_id, cd->char_id, slot, esc_name))
+ "INSERT INTO `%s`("
+ " `time`, `char_msg`, `account_id`, `char_id`, `char_num`, `class`, `name`,"
+ " `str`, `agi`, `vit`, `int`, `dex`, `luk`,"
+ " `hair`, `hair_color`"
+ ") VALUES ("
+ " NOW(), 'char select', '%d', '%d', '%d', '%d', '%s',"
+ " '%d', '%d', '%d', '%d', '%d', '%d',"
+ " '%d', '%d')",
+ charlog_db,
+ sd->account_id, cd->char_id, slot, char_dat.class, esc_name,
+ char_dat.str, char_dat.agi, char_dat.vit, char_dat.int_, char_dat.dex, char_dat.luk,
+ char_dat.hair, char_dat.hair_color
+ ))
Sql_ShowDebug(inter->sql_handle);
}
ShowInfo("Selected char: (Account %d: %d - %s)\n", sd->account_id, slot, char_dat.name);
@@ -5848,6 +5878,7 @@ static bool char_config_read_player_name(const char *filename, const struct conf
libconfig->setting_lookup_mutable_string(setting, "name_letters", char_name_letters, sizeof(char_name_letters));
libconfig->setting_lookup_int(setting, "name_option", &char_name_option);
libconfig->setting_lookup_bool_real(setting, "name_ignoring_case", &name_ignoring_case);
+ libconfig->setting_lookup_bool_real(setting, "use_aegis_rename", &char_aegis_rename);
return true;
}
diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h
index f5875fe11..ecdc83740 100644
--- a/src/common/HPMDataCheck.h
+++ b/src/common/HPMDataCheck.h
@@ -660,6 +660,9 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "PACKET_ZC_ADD_ITEM_TO_MAIL", sizeof(struct PACKET_ZC_ADD_ITEM_TO_MAIL), SERVER_TYPE_MAP },
{ "PACKET_ZC_ADD_ITEM_TO_STORE", sizeof(struct PACKET_ZC_ADD_ITEM_TO_STORE), SERVER_TYPE_MAP },
{ "PACKET_ZC_ADD_MEMBER_TO_GROUP", sizeof(struct PACKET_ZC_ADD_MEMBER_TO_GROUP), SERVER_TYPE_MAP },
+ { "PACKET_ZC_AUTOSPELLLIST1", sizeof(struct PACKET_ZC_AUTOSPELLLIST1), SERVER_TYPE_MAP },
+ { "PACKET_ZC_AUTOSPELLLIST2", sizeof(struct PACKET_ZC_AUTOSPELLLIST2), SERVER_TYPE_MAP },
+ { "PACKET_ZC_CAMERA_INFO", sizeof(struct PACKET_ZC_CAMERA_INFO), SERVER_TYPE_MAP },
{ "PACKET_ZC_CASH_ITEM_DELETE", sizeof(struct PACKET_ZC_CASH_ITEM_DELETE), SERVER_TYPE_MAP },
{ "PACKET_ZC_CASH_TIME_COUNTER", sizeof(struct PACKET_ZC_CASH_TIME_COUNTER), SERVER_TYPE_MAP },
{ "PACKET_ZC_CHECKNAME", sizeof(struct PACKET_ZC_CHECKNAME), SERVER_TYPE_MAP },
@@ -676,6 +679,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "PACKET_ZC_INVENTORY_MOVE_FAILED", sizeof(struct PACKET_ZC_INVENTORY_MOVE_FAILED), SERVER_TYPE_MAP },
{ "PACKET_ZC_ITEM_ENTRY", sizeof(struct PACKET_ZC_ITEM_ENTRY), SERVER_TYPE_MAP },
{ "PACKET_ZC_ITEM_PICKUP_PARTY", sizeof(struct PACKET_ZC_ITEM_PICKUP_PARTY), SERVER_TYPE_MAP },
+ { "PACKET_ZC_ITEM_PREVIEW", sizeof(struct PACKET_ZC_ITEM_PREVIEW), SERVER_TYPE_MAP },
{ "PACKET_ZC_MAIL_LIST", sizeof(struct PACKET_ZC_MAIL_LIST), SERVER_TYPE_MAP },
{ "PACKET_ZC_MAKABLEITEMLIST", sizeof(struct PACKET_ZC_MAKABLEITEMLIST), SERVER_TYPE_MAP },
{ "PACKET_ZC_MAKABLEITEMLIST_sub", sizeof(struct PACKET_ZC_MAKABLEITEMLIST_sub), SERVER_TYPE_MAP },
@@ -707,6 +711,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "PACKET_ZC_PRIVATE_AIRSHIP_RESPONSE", sizeof(struct PACKET_ZC_PRIVATE_AIRSHIP_RESPONSE), SERVER_TYPE_MAP },
{ "PACKET_ZC_PROPERTY_HOMUN", sizeof(struct PACKET_ZC_PROPERTY_HOMUN), SERVER_TYPE_MAP },
{ "PACKET_ZC_READ_MAIL", sizeof(struct PACKET_ZC_READ_MAIL), SERVER_TYPE_MAP },
+ { "PACKET_ZC_REMOVE_EFFECT", sizeof(struct PACKET_ZC_REMOVE_EFFECT), SERVER_TYPE_MAP },
{ "PACKET_ZC_REPAIRITEMLIST", sizeof(struct PACKET_ZC_REPAIRITEMLIST), SERVER_TYPE_MAP },
{ "PACKET_ZC_REPAIRITEMLIST_sub", sizeof(struct PACKET_ZC_REPAIRITEMLIST_sub), SERVER_TYPE_MAP },
{ "PACKET_ZC_SEARCH_STORE_INFO_ACK", sizeof(struct PACKET_ZC_SEARCH_STORE_INFO_ACK), SERVER_TYPE_MAP },
diff --git a/src/common/Makefile.in b/src/common/Makefile.in
index f65138521..67fe9c0d4 100644
--- a/src/common/Makefile.in
+++ b/src/common/Makefile.in
@@ -44,8 +44,6 @@ COMMON_C = $(COMMON_SHARED_C)
COMMON_SHARED_OBJ = $(patsubst %.c,%.o,$(COMMON_SHARED_C))
COMMON_OBJ = $(addprefix obj_all/, $(COMMON_SHARED_OBJ) \
console.o core.o memmgr.o socket.o)
-COMMON_MINI_OBJ = $(addprefix obj_all/, $(COMMON_SHARED_OBJ) \
- miniconsole.o minicore.o minimemmgr.o minisocket.o)
COMMON_C += console.c core.c memmgr.c socket.c
COMMON_H = atomic.h cbasetypes.h conf.h console.h core.h db.h des.h ers.h \
grfio.h hercules.h HPM.h HPMi.h memmgr.h mapindex.h md5calc.h \
@@ -61,7 +59,7 @@ SYSINFO_INC = sysinfo.inc
HAVE_MYSQL=@HAVE_MYSQL@
ifeq ($(HAVE_MYSQL),yes)
- SQL_DEPENDS=common common_sql common_mini
+ SQL_DEPENDS=common common_sql
else
SQL_DEPENDS=needs_mysql
endif
@@ -72,7 +70,7 @@ CC = @CC@
export CC
#####################################################################
-.PHONY: all sql common common_sql common_mini clean buildclean help
+.PHONY: all sql common common_sql clean buildclean help
all: sql
@@ -119,18 +117,12 @@ obj_all/common.a: $(COMMON_OBJ) Makefile
@echo " AR $@"
@@AR@ rcs obj_all/common.a $(COMMON_OBJ)
-obj_all/common_mini.a: $(COMMON_MINI_OBJ) Makefile
- @echo " AR $@"
- @@AR@ rcs obj_all/common_mini.a $(COMMON_MINI_OBJ)
-
obj_sql/common_sql.a: $(COMMON_SQL_OBJ) Makefile
@echo " AR $@"
@@AR@ rcs obj_sql/common_sql.a $(COMMON_SQL_OBJ)
common: $(COMMON_OBJ) $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) obj_all/common.a Makefile
-common_mini: $(COMMON_MINI_OBJ) $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) obj_all/common_mini.a Makefile
-
common_sql: $(COMMON_SQL_OBJ) obj_sql/common_sql.a Makefile
# missing object files
@@ -150,10 +142,6 @@ obj_all/%.o: %.c $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | $(SYSIN
@echo " CC $<"
@$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
-obj_all/mini%.o: %.c $$(filter %.p.h, $(COMMON_PH)) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | $(SYSINFO_INC) obj_all
- @echo " CC $<"
- @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) -DMINICORE @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
-
obj_sql/%.o: %.c $$(filter %.p.h, $(COMMON_PH)) $(COMMON_H) $(COMMON_SQL_H) $(CONFIG_H) $(LIBCONFIG_H) | $(SYSINFO_INC) obj_sql
@echo " CC $<"
@$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
diff --git a/src/common/console.c b/src/common/console.c
index 5923775b7..a990d86b3 100644
--- a/src/common/console.c
+++ b/src/common/console.c
@@ -23,24 +23,21 @@
#include "config/core.h" // CONSOLE_INPUT, MAX_CONSOLE_INPUT
#include "console.h"
+#include "common/atomic.h"
#include "common/cbasetypes.h"
#include "common/core.h"
+#include "common/ers.h"
+#include "common/memmgr.h"
#include "common/mmo.h"
+#include "common/mutex.h"
#include "common/nullpo.h"
#include "common/showmsg.h"
+#include "common/spinlock.h"
+#include "common/sql.h"
+#include "common/strlib.h"
#include "common/sysinfo.h"
-
-#ifndef MINICORE
-# include "common/atomic.h"
-# include "common/ers.h"
-# include "common/memmgr.h"
-# include "common/mutex.h"
-# include "common/spinlock.h"
-# include "common/sql.h"
-# include "common/strlib.h"
-# include "common/thread.h"
-# include "common/timer.h"
-#endif
+#include "common/thread.h"
+#include "common/timer.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/common/core.c b/src/common/core.c
index 9fd33c4e0..1ecf1df83 100644
--- a/src/common/core.c
+++ b/src/common/core.c
@@ -23,32 +23,29 @@
#include "config/core.h"
#include "core.h"
+#include "common/HPM.h"
#include "common/cbasetypes.h"
+#include "common/conf.h"
#include "common/console.h"
#include "common/db.h"
#include "common/des.h"
+#include "common/ers.h"
#include "common/grfio.h"
+#include "common/md5calc.h"
#include "common/memmgr.h"
#include "common/mmo.h"
+#include "common/mutex.h"
#include "common/nullpo.h"
+#include "common/random.h"
#include "common/showmsg.h"
+#include "common/socket.h"
+#include "common/sql.h"
#include "common/strlib.h"
#include "common/sysinfo.h"
+#include "common/thread.h"
#include "common/timer.h"
#include "common/utils.h"
-#ifndef MINICORE
-# include "common/HPM.h"
-# include "common/conf.h"
-# include "common/ers.h"
-# include "common/md5calc.h"
-# include "common/mutex.h"
-# include "common/random.h"
-# include "common/socket.h"
-# include "common/sql.h"
-# include "common/thread.h"
-#endif
-
#ifndef _WIN32
# include <unistd.h>
#else
@@ -83,7 +80,6 @@
static struct core_interface core_s;
struct core_interface *core = &core_s;
-#ifndef MINICORE // minimalist Core
// Added by Gabuzomeu
//
// This is an implementation of signal() using sigaction() for portability.
@@ -196,7 +192,6 @@ static void signals_init(void)
compat_signal(SIGTRAP, SIG_DFL);
#endif
}
-#endif
/**
* Warns the user if executed as superuser (root)
@@ -250,10 +245,8 @@ static bool usercheck(void)
static void core_defaults(void)
{
nullpo_defaults();
-#ifndef MINICORE
hpm_defaults();
HCache_defaults();
-#endif
sysinfo_defaults();
console_defaults();
strlib_defaults();
@@ -262,7 +255,6 @@ static void core_defaults(void)
cmdline_defaults();
des_defaults();
grfio_defaults(); // Note: grfio is lazily loaded. grfio->init() and grfio->final() are not automatically called.
-#ifndef MINICORE
mutex_defaults();
libconfig_defaults();
sql_defaults();
@@ -272,7 +264,6 @@ static void core_defaults(void)
rnd_defaults();
md5_defaults();
thread_defaults();
-#endif
}
/**
@@ -280,12 +271,8 @@ static void core_defaults(void)
*/
static const char *cmdline_arg_source(struct CmdlineArgData *arg)
{
-#ifdef MINICORE
- return "core";
-#else // !MINICORE
nullpo_retr(NULL, arg);
return HPM->pid2name(arg->pluginID);
-#endif // MINICORE
}
/**
@@ -446,15 +433,9 @@ static int cmdline_exec(int argc, char **argv, unsigned int options)
*/
static void cmdline_init(void)
{
-#ifdef MINICORE
- // Minicore has no HPM. This value isn't used, but the arg_add function requires it, so we're (re)defining it here
-#define HPM_PID_CORE ((unsigned int)-1)
-#endif
CMDLINEARG_DEF(help, 'h', "Displays this help screen", CMDLINE_OPT_NORMAL);
CMDLINEARG_DEF(version, 'v', "Displays the server's version.", CMDLINE_OPT_NORMAL);
-#ifndef MINICORE
CMDLINEARG_DEF2(load-plugin, loadplugin, "Loads an additional plugin (can be repeated).", CMDLINE_OPT_PARAM|CMDLINE_OPT_PREINIT);
-#endif // !MINICORE
cmdline_args_init_local();
}
@@ -521,10 +502,6 @@ int main(int argc, char **argv)
if (!usercheck())
return EXIT_FAILURE;
-#ifdef MINICORE // minimalist Core
- do_init(argc,argv);
- do_final();
-#else// not MINICORE
set_server_type();
Sql_Init();
@@ -567,7 +544,6 @@ int main(int argc, char **argv)
thread->final();
ers_final();
rnd->final();
-#endif
cmdline->final();
//sysinfo->final(); Called by iMalloc->final()
diff --git a/src/common/memmgr.h b/src/common/memmgr.h
index 90c35f244..c7147cc5e 100644
--- a/src/common/memmgr.h
+++ b/src/common/memmgr.h
@@ -42,11 +42,6 @@
// Enable memory manager logging by default
#define LOG_MEMMGR
-// no logging for minicore
-#if defined(MINICORE) && defined(LOG_MEMMGR)
- #undef LOG_MEMMGR
-#endif
-
# define aMalloc(n) (iMalloc->malloc((n),ALC_MARK))
# define aCalloc(m,n) (iMalloc->calloc((m),(n),ALC_MARK))
# define aRealloc(p,n) (iMalloc->realloc((p),(n),ALC_MARK))
diff --git a/src/common/mmo.h b/src/common/mmo.h
index d6946cecc..9bcf82cc7 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -1331,7 +1331,8 @@ enum questinfo_type {
QINFO_ITEM,
QINFO_HOMUN_LEVEL,
QINFO_HOMUN_TYPE,
- QINFO_QUEST
+ QINFO_QUEST,
+ QINFO_MERCENARY_CLASS
};
/* packet size constant for itemlist */
diff --git a/src/common/socket.c b/src/common/socket.c
index 290c7a1b3..fd86414d6 100644
--- a/src/common/socket.c
+++ b/src/common/socket.c
@@ -301,10 +301,8 @@ static uint32 send_shortlist_set[(FD_SETSIZE+31)/32];// to know if specific fd's
static int create_session(int fd, RecvFunc func_recv, SendFunc func_send, ParseFunc func_parse);
-#ifndef MINICORE
- static int ip_rules = 1;
- static int connect_check(uint32 ip);
-#endif // MINICORE
+static int ip_rules = 1;
+static int connect_check(uint32 ip);
static const char *error_msg(void)
{
@@ -556,12 +554,10 @@ static int connect_client(int listen_fd)
setsocketopts(fd,NULL);
sockt->set_nonblocking(fd, 1);
-#ifndef MINICORE
if( ip_rules && !connect_check(ntohl(client_address.sin_addr.s_addr)) ) {
sockt->close(fd);
return -1;
}
-#endif // MINICORE
#ifndef SOCKET_EPOLL
// Select Based Event Dispatcher
@@ -1065,9 +1061,6 @@ static int do_sockets(int next)
return 0;
}
-//////////////////////////////
-#ifndef MINICORE
-//////////////////////////////
// IP rules and DDoS protection
struct connect_history {
@@ -1326,11 +1319,6 @@ static bool access_list_add(struct config_setting_t *setting, const char *list_n
return true;
}
-//////////////////////////////
-#endif // MINICORE
-//////////////////////////////
-
-#ifndef MINICORE
/**
* Reads 'socket_configuration/ip_rules' and initializes required variables.
*
@@ -1387,9 +1375,7 @@ static bool socket_config_read_iprules(const char *filename, struct config_t *co
return true;
}
-#endif // ! MINICORE
-#ifndef MINICORE
/**
* Reads 'socket_configuration/ddos' and initializes required variables.
*
@@ -1419,7 +1405,6 @@ static bool socket_config_read_ddos(const char *filename, struct config_t *confi
return true;
}
-#endif // ! MINICORE
/**
* Reads 'socket_configuration' and initializes required variables.
@@ -1464,7 +1449,6 @@ static bool socket_config_read(const char *filename, bool imported)
}
#endif // SOCKET_EPOLL
-#ifndef MINICORE
{
uint32 ui32 = 0;
libconfig->setting_lookup_bool(setting, "debug", &access_debug);
@@ -1477,7 +1461,6 @@ static bool socket_config_read(const char *filename, bool imported)
retval = false;
if (!socket_config_read_ddos(filename, &config, imported))
retval = false;
-#endif // MINICORE
// import should overwrite any previous configuration, so it should be called last
if (libconfig->lookup_string(&config, "import", &import) == CONFIG_TRUE) {
@@ -1496,12 +1479,10 @@ static bool socket_config_read(const char *filename, bool imported)
static void socket_final(void)
{
int i;
-#ifndef MINICORE
if( connect_history )
db_destroy(connect_history);
VECTOR_CLEAR(access_allow);
VECTOR_CLEAR(access_deny);
-#endif // MINICORE
for( i = 1; i < sockt->fd_max; i++ )
if(sockt->session[i])
@@ -1686,10 +1667,8 @@ static void socket_init(void)
}
#endif // defined(HAVE_SETRLIMIT) && !defined(CYGWIN)
-#ifndef MINICORE
VECTOR_INIT(access_allow);
VECTOR_INIT(access_deny);
-#endif // ! MINICORE
// Get initial local ips
sockt->naddr_ = sockt->getips(sockt->addr_,16);
@@ -1729,12 +1708,10 @@ static void socket_init(void)
// should hold enough buffer (it is a vacuum so to speak) as it is never flushed. [Skotlex]
create_session(0, null_recv, null_send, null_parse);
-#ifndef MINICORE
// Delete old connection history every 5 minutes
connect_history = uidb_alloc(DB_OPT_RELEASE_DATA);
timer->add_func_list(connect_check_clear, "connect_check_clear");
timer->add_interval(timer->gettick()+1000, connect_check_clear, 0, 0, 5*60*1000);
-#endif // MINICORE
ShowInfo("Server supports up to '"CL_WHITE"%"PRIu64""CL_RESET"' concurrent connections.\n", rlim_cur);
}
diff --git a/src/config/const.h b/src/config/const.h
index 3b35e354e..4767b5721 100644
--- a/src/config/const.h
+++ b/src/config/const.h
@@ -114,11 +114,6 @@
} while(0)
#endif
-/* console_input doesn't go well with minicore */
-#ifdef MINICORE
- #undef CONSOLE_INPUT
-#endif
-
/**
* End of File
**/
diff --git a/src/map/achievement.c b/src/map/achievement.c
index 1fb513ea0..7148acae8 100644
--- a/src/map/achievement.c
+++ b/src/map/achievement.c
@@ -772,6 +772,10 @@ static void achievement_validate_refine(struct map_session_data *sd, unsigned in
criteria.goal = sd->status.inventory[idx].refine;
+ // achievement should not trigger if refine is 0
+ if (criteria.goal == 0)
+ return;
+
/* Universal */
achievement->validate_type(sd,
success ? ACH_EQUIP_REFINE_SUCCESS : ACH_EQUIP_REFINE_FAILURE,
@@ -1016,44 +1020,56 @@ static bool achievement_check_title(struct map_session_data *sd, int title_id) {
return false;
}
-/**
- * Achievement rewards are given to player
- * @param sd session data
- * @param ad achievement data
- */
-static void achievement_get_rewards(struct map_session_data *sd, const struct achievement_data *ad) {
- int i = 0;
- struct achievement *ach = NULL;
-
+static void achievement_get_rewards_buffs(struct map_session_data *sd, const struct achievement_data *ad)
+{
nullpo_retv(sd);
nullpo_retv(ad);
- if ((ach = achievement->ensure(sd, ad)) == NULL)
- return;
-
- /* Buff */
if (ad->rewards.bonus != NULL)
script->run(ad->rewards.bonus, 0, sd->bl.id, 0);
+}
- /* Give Items */
- for (i = 0; i < VECTOR_LENGTH(ad->rewards.item); i++) {
- struct item it = { 0 };
- int total = 0;
+// TODO: kro send items by rodex
+static void achievement_get_rewards_items(struct map_session_data *sd, const struct achievement_data *ad)
+{
+ nullpo_retv(sd);
+ nullpo_retv(ad);
- it.nameid = VECTOR_INDEX(ad->rewards.item, i).id;
- total = VECTOR_INDEX(ad->rewards.item, i).amount;
+ struct item it = { 0 };
+ it.identify = 1;
- it.identify = 1;
+ for (int i = 0; i < VECTOR_LENGTH(ad->rewards.item); i++) {
+ it.nameid = VECTOR_INDEX(ad->rewards.item, i).id;
+ int total = VECTOR_INDEX(ad->rewards.item, i).amount;
//Check if it's stackable.
if (!itemdb->isstackable(it.nameid)) {
- int j = 0;
- for (j = 0; j < total; ++j)
- pc->additem(sd, &it, (it.amount = 1), LOG_TYPE_SCRIPT);
+ it.amount = 1;
+ for (int j = 0; j < total; ++j)
+ pc->additem(sd, &it, 1, LOG_TYPE_SCRIPT);
} else {
- pc->additem(sd, &it, (it.amount = total), LOG_TYPE_SCRIPT);
+ it.amount = total;
+ pc->additem(sd, &it, total, LOG_TYPE_SCRIPT);
}
}
+}
+
+/**
+ * Achievement rewards are given to player
+ * @param sd session data
+ * @param ad achievement data
+ */
+static bool achievement_get_rewards(struct map_session_data *sd, const struct achievement_data *ad)
+{
+ nullpo_retr(false, sd);
+ nullpo_retr(false, ad);
+
+ struct achievement *ach = achievement->ensure(sd, ad);
+ if (ach == NULL)
+ return false;
+
+ /* Buff */
+ achievement->get_rewards_buffs(sd, ad);
ach->rewarded_at = time(NULL);
@@ -1062,9 +1078,14 @@ static void achievement_get_rewards(struct map_session_data *sd, const struct ac
VECTOR_PUSH(sd->title_ids, ad->rewards.title_id);
clif->achievement_send_list(sd->fd, sd);
} else {
- clif->achievement_reward_ack(sd->fd, sd, ad);
clif->achievement_send_update(sd->fd, sd, ad); // send update.
+ clif->achievement_reward_ack(sd->fd, sd, ad);
}
+
+ /* Give Items */
+ achievement->get_rewards_items(sd, ad);
+
+ return true;
}
/**
@@ -1977,4 +1998,6 @@ void achievement_defaults(void)
achievement->init_titles = achievement_init_titles;
achievement->check_title = achievement_check_title;
achievement->get_rewards = achievement_get_rewards;
+ achievement->get_rewards_buffs = achievement_get_rewards_buffs;
+ achievement->get_rewards_items = achievement_get_rewards_items;
}
diff --git a/src/map/achievement.h b/src/map/achievement.h
index beba120a2..de5eaa060 100644
--- a/src/map/achievement.h
+++ b/src/map/achievement.h
@@ -277,7 +277,9 @@ struct achievement_interface {
/* */
void (*init_titles) (struct map_session_data *sd);
bool (*check_title) (struct map_session_data *sd, int title_id);
- void (*get_rewards) (struct map_session_data *sd, const struct achievement_data *ad);
+ bool (*get_rewards) (struct map_session_data *sd, const struct achievement_data *ad);
+ void (*get_rewards_buffs) (struct map_session_data *sd, const struct achievement_data *ad);
+ void (*get_rewards_items) (struct map_session_data *sd, const struct achievement_data *ad);
};
#ifdef HERCULES_CORE
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 2538f797c..236975b32 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -1776,18 +1776,7 @@ ACMD(bodystyle)
memset(atcmd_output, '\0', sizeof(atcmd_output));
- if ((sd->job & MAPID_THIRDMASK) != MAPID_GUILLOTINE_CROSS
- && (sd->job & MAPID_THIRDMASK) != MAPID_GENETIC
- && (sd->job & MAPID_THIRDMASK) != MAPID_MECHANIC
- && (sd->job & MAPID_THIRDMASK) != MAPID_ROYAL_GUARD
- && (sd->job & MAPID_THIRDMASK) != MAPID_ARCH_BISHOP
- && (sd->job & MAPID_THIRDMASK) != MAPID_RANGER
- && (sd->job & MAPID_THIRDMASK) != MAPID_WARLOCK
- && (sd->job & MAPID_THIRDMASK) != MAPID_SHADOW_CHASER
- && (sd->job & MAPID_THIRDMASK) != MAPID_MINSTRELWANDERER
- && (sd->job & MAPID_THIRDMASK) != MAPID_SORCERER
- && (sd->job & MAPID_THIRDMASK) != MAPID_SURA
- ) {
+ if (!pc->has_second_costume(sd)) {
clif->message(fd, msg_fd(fd, 35)); // This job has no alternate body styles.
return false;
}
@@ -9398,8 +9387,8 @@ ACMD(channel)
} else {
int v = atoi(sub3);
if (k == HCS_OPT_MSG_DELAY) {
- if (v < 0 || v > 10) {
- safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1451), v, opt_str[k]);// value '%d' for option '%s' is out of range (limit is 0-10)
+ if (v < 0 || v > channel->config->channel_opt_msg_delay) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1451), v, opt_str[k], channel->config->channel_opt_msg_delay);// value '%d' for option '%s' is out of range (limit is 0-%d)
clif->message(fd, atcmd_output);
return false;
}
@@ -9810,6 +9799,24 @@ ACMD(reloadclans)
return true;
}
+// show camera window or change camera parameters
+ACMD(camerainfo)
+{
+ if (*message == '\0') {
+ clif->camera_showWindow(sd);
+ return true;
+ }
+ float range = 0;
+ float rotation = 0;
+ float latitude = 0;
+ if (sscanf(message, "%15f %15f %15f", &range, &rotation, &latitude) < 3) {
+ clif->message(fd, msg_fd(fd, 452)); // usage @camerainfo range rotation latitude
+ return false;
+ }
+ clif->camera_change(sd, range, rotation, latitude, SELF);
+ return true;
+}
+
/**
* Fills the reference of available commands in atcommand DBMap
**/
@@ -10092,6 +10099,7 @@ static void atcommand_basecommands(void)
ACMD_DEF(leaveclan),
ACMD_DEF(reloadclans),
ACMD_DEF(setzone),
+ ACMD_DEF(camerainfo),
};
int i;
diff --git a/src/map/battle.c b/src/map/battle.c
index fceb30be1..44241bf23 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -4339,6 +4339,8 @@ static struct Damage battle_calc_misc_attack(struct block_list *src, struct bloc
}
break;
}
+
+ battle->reflect_trap(target, src, &md, skill_id);
return md;
}
@@ -6008,6 +6010,37 @@ static void battle_reflect_damage(struct block_list *target, struct block_list *
#undef NORMALIZE_RDAMAGE
}
+/**
+ * Reflects damage from certain traps, if battle_config.trap_reflect is true.
+ * @param target : Player who triggered the trap
+ * @param src : Player who set the trap
+ * @param md : Trap damage structure
+ * @param skill_id : Trap skill ID
+ */
+static void battle_reflect_trap(struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id)
+{
+ if (battle_config.trap_reflect == true) {
+ if (src != target) { // Don't reflect your own damage
+ switch (skill_id) {
+ case HT_CLAYMORETRAP:
+ case HT_LANDMINE:
+ case HT_FREEZINGTRAP:
+ case HT_BLASTMINE:
+ // Needs official info
+ //case RA_CLUSTERBOMB:
+ //case RA_FIRINGTRAP:
+ //case RA_ICEBOUNDTRAP:
+ //case GN_THORNS_TRAP:
+ //case KO_MAKIBISHI:
+ case MA_LANDMINE:
+ case MA_FREEZINGTRAP:
+ battle->reflect_damage(target, src, md, skill_id);
+ break;
+ }
+ }
+ }
+}
+
static void battle_drain(struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss)
{
struct weapon_data *wd;
@@ -7325,6 +7358,7 @@ static const struct battle_data {
* Hercules
**/
{ "skill_trap_type", &battle_config.skill_trap_type, 0, 0, 1, },
+ { "trap_reflect", &battle_config.trap_reflect, 1, 0, 1, },
{ "item_restricted_consumption_type", &battle_config.item_restricted_consumption_type,1, 0, 1, },
{ "unequip_restricted_equipment", &battle_config.unequip_restricted_equipment, 0, 0, 3, },
{ "max_walk_path", &battle_config.max_walk_path, 17, 1, MAX_WALKPATH, },
@@ -7371,6 +7405,8 @@ static const struct battle_data {
{ "storage_use_item", &battle_config.storage_use_item, 0, 0, 1, },
{ "features/enable_attendance_system", &battle_config.feature_enable_attendance_system,1, 0, 1, },
{ "features/feature_attendance_endtime",&battle_config.feature_attendance_endtime, 1, 0, 99999999, },
+ { "min_item_buy_price", &battle_config.min_item_buy_price, 1, 0, INT_MAX, },
+ { "min_item_sell_price", &battle_config.min_item_sell_price, 0, 0, INT_MAX, },
};
static bool battle_set_value_sub(int index, int value)
@@ -7614,6 +7650,7 @@ void battle_defaults(void)
battle->delay_damage = battle_delay_damage;
battle->drain = battle_drain;
battle->reflect_damage = battle_reflect_damage;
+ battle->reflect_trap = battle_reflect_trap;
battle->attr_ratio = battle_attr_ratio;
battle->attr_fix = battle_attr_fix;
battle->calc_cardfix = battle_calc_cardfix;
diff --git a/src/map/battle.h b/src/map/battle.h
index 9f5207e95..02536e4a1 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -506,6 +506,7 @@ struct Battle_Config {
/** Hercules **/
int skill_trap_type;
+ int trap_reflect;
int item_restricted_consumption_type;
int unequip_restricted_equipment;
int max_walk_path;
@@ -570,6 +571,9 @@ struct Battle_Config {
int feature_enable_attendance_system;
int feature_attendance_endtime;
+
+ int min_item_buy_price;
+ int min_item_sell_price;
};
/* criteria for battle_config.idletime_critera */
@@ -636,6 +640,8 @@ struct battle_interface {
void (*drain) (struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss);
/* damage reflect */
void (*reflect_damage) (struct block_list *target, struct block_list *src, struct Damage *wd,uint16 skill_id);
+ /* trap reflect */
+ void(*reflect_trap) (struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id);
/* attribute rate */
int (*attr_ratio) (int atk_elem, int def_type, int def_lv);
/* applies attribute modifiers */
diff --git a/src/map/channel.c b/src/map/channel.c
index f1946385d..3ba56b100 100644
--- a/src/map/channel.c
+++ b/src/map/channel.c
@@ -276,7 +276,9 @@ static void channel_send(struct channel_data *chan, struct map_session_data *sd,
if (sd && chan->msg_delay != 0
&& DIFF_TICK(sd->hchsysch_tick + chan->msg_delay*1000, timer->gettick()) > 0
&& !pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN)) {
- clif->messagecolor_self(sd->fd, COLOR_RED, msg_sd(sd,1455));
+ char output[CHAT_SIZE_MAX];
+ sprintf(output, msg_sd(sd, 1455), DIFF_TICK(sd->hchsysch_tick + chan->msg_delay * 1000, timer->gettick()) / 1000); // "You cannot send a message to this channel for another %d seconds."
+ clif->messagecolor_self(sd->fd, COLOR_RED, output);
return;
} else if (sd) {
int i;
@@ -622,7 +624,8 @@ static void read_channels_config(void)
irc_autojoin = 0,
irc_flood_protection_rate = 0,
irc_flood_protection_burst = 0,
- irc_flood_protection_enabled = 0;
+ irc_flood_protection_enabled = 0,
+ channel_opt_msg_delay = 10;
if( !libconfig->setting_lookup_string(settings, "map_local_channel_name", &local_name) )
local_name = "map";
@@ -818,6 +821,16 @@ static void read_channels_config(void)
}
}
+ libconfig->setting_lookup_int(settings, "channel_opt_msg_delay", &channel_opt_msg_delay);
+ if (channel_opt_msg_delay < 0) {
+ ShowWarning("channels.conf: channel_opt_msg_delay value '%d' must be from 0-255. Defaulting to 0...\n", channel_opt_msg_delay);
+ channel_opt_msg_delay = 0;
+ } else if (channel_opt_msg_delay > 255) {
+ ShowWarning("channels.conf: channel_opt_msg_delay value '%d' must be from 0-255. Defaulting to 255...\n", channel_opt_msg_delay);
+ channel_opt_msg_delay = 255;
+ }
+ channel->config->channel_opt_msg_delay = channel_opt_msg_delay;
+
ShowStatus("Done reading '"CL_WHITE"%u"CL_RESET"' channels in '"CL_WHITE"%s"CL_RESET"'.\n", db_size(channel->db), config_filename);
}
libconfig->destroy(&channels_conf);
diff --git a/src/map/channel.h b/src/map/channel.h
index 4ac3c6037..c56227c66 100644
--- a/src/map/channel.h
+++ b/src/map/channel.h
@@ -75,6 +75,7 @@ struct Channel_Config {
char irc_server[40], irc_channel[50], irc_nick[40], irc_nick_pw[30];
unsigned short irc_server_port;
bool irc_use_ghost;
+ int channel_opt_msg_delay;
};
struct channel_ban_entry {
diff --git a/src/map/clif.c b/src/map/clif.c
index 76625f0ba..44cefcd7e 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -2789,11 +2789,11 @@ static void clif_item_normal(short idx, struct NORMALITEM_INFO *p, struct item *
static void clif_inventoryList(struct map_session_data *sd)
{
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
clif->inventoryStart(sd, INVTYPE_INVENTORY, "");
#endif
clif->inventoryItems(sd, INVTYPE_INVENTORY);
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
clif->inventoryEnd(sd, INVTYPE_INVENTORY);
#endif
}
@@ -2816,7 +2816,7 @@ static void clif_inventoryItems(struct map_session_data *sd, enum inventory_type
if (normal) {
itemlist_normal.PacketType = inventorylistnormalType;
itemlist_normal.PacketLength = (sizeof(itemlist_normal) - sizeof(itemlist_normal.list)) + (sizeof(struct NORMALITEM_INFO) * normal);
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
itemlist_normal.invType = type;
#endif
@@ -2829,7 +2829,7 @@ static void clif_inventoryItems(struct map_session_data *sd, enum inventory_type
if( equip ) {
itemlist_equip.PacketType = inventorylistequipType;
itemlist_equip.PacketLength = (sizeof(itemlist_equip) - sizeof(itemlist_equip.list)) + (sizeof(struct EQUIPITEM_INFO) * equip);
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
itemlist_equip.invType = type;
#endif
@@ -2849,7 +2849,7 @@ static void clif_inventoryItems(struct map_session_data *sd, enum inventory_type
static void clif_equipList(struct map_session_data *sd)
{
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
clif->inventoryStart(sd, INVTYPE_INVENTORY, "");
clif->inventoryItems(sd, INVTYPE_INVENTORY);
clif->inventoryEnd(sd, INVTYPE_INVENTORY);
@@ -2876,7 +2876,7 @@ static void clif_equipItems(struct map_session_data *sd, enum inventory_type typ
if (equip) {
itemlist_equip.PacketType = inventorylistequipType;
itemlist_equip.PacketLength = (sizeof(itemlist_equip) - sizeof(itemlist_equip.list)) + (sizeof(struct EQUIPITEM_INFO) * equip);
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
itemlist_equip.invType = type;
#endif
@@ -2914,7 +2914,7 @@ static void clif_guildStorageList(struct map_session_data *sd, struct item *item
static void clif_inventoryStart(struct map_session_data *sd, enum inventory_type type, const char *name)
{
-#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
nullpo_retv(sd);
nullpo_retv(name);
@@ -2922,10 +2922,10 @@ static void clif_inventoryStart(struct map_session_data *sd, enum inventory_type
memset(buf, 0, sizeof(buf));
struct ZC_INVENTORY_START *p = (struct ZC_INVENTORY_START *)buf;
p->packetType = 0xb08;
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
p->invType = type;
#endif
-#if PACKETVER_RE_NUM >= 20180919 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180919 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
int strLen = (int)safestrnlen(name, 24);
if (strLen > 24)
strLen = 24;
@@ -2942,12 +2942,12 @@ static void clif_inventoryStart(struct map_session_data *sd, enum inventory_type
static void clif_inventoryEnd(struct map_session_data *sd, enum inventory_type type)
{
-#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
nullpo_retv(sd);
struct ZC_INVENTORY_END p;
p.packetType = 0xb0b;
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
p.invType = type;
#endif
p.flag = 0;
@@ -2983,10 +2983,10 @@ static void clif_storageItems(struct map_session_data *sd, enum inventory_type t
storelist_normal.PacketType = storageListNormalType;
storelist_normal.PacketLength = ( sizeof( storelist_normal ) - sizeof( storelist_normal.list ) ) + (sizeof(struct NORMALITEM_INFO) * normal);
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
storelist_normal.invType = type;
#endif
-#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919
+#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919 && PACKETVER_MAIN_NUM < 20181002
safestrncpy(storelist_normal.name, "Storage", NAME_LENGTH);
#endif
@@ -2997,10 +2997,10 @@ static void clif_storageItems(struct map_session_data *sd, enum inventory_type t
storelist_equip.PacketType = storageListEquipType;
storelist_equip.PacketLength = ( sizeof( storelist_equip ) - sizeof( storelist_equip.list ) ) + (sizeof(struct EQUIPITEM_INFO) * equip);
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
storelist_equip.invType = type;
#endif
-#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919
+#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919 && PACKETVER_MAIN_NUM < 20181002
safestrncpy(storelist_equip.name, "Storage", NAME_LENGTH);
#endif
@@ -3013,11 +3013,11 @@ static void clif_storageItems(struct map_session_data *sd, enum inventory_type t
static void clif_cartList(struct map_session_data *sd)
{
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
clif->inventoryStart(sd, INVTYPE_CART, "");
#endif
clif->cartItems(sd, INVTYPE_CART);
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
clif->inventoryEnd(sd, INVTYPE_CART);
#endif
}
@@ -3043,7 +3043,7 @@ static void clif_cartItems(struct map_session_data *sd, enum inventory_type type
if (normal) {
itemlist_normal.PacketType = cartlistnormalType;
itemlist_normal.PacketLength = (sizeof(itemlist_normal) - sizeof(itemlist_normal.list)) + (sizeof(struct NORMALITEM_INFO) * normal);
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
itemlist_normal.invType = type;
#endif
@@ -3053,7 +3053,7 @@ static void clif_cartItems(struct map_session_data *sd, enum inventory_type type
if (equip) {
itemlist_equip.PacketType = cartlistequipType;
itemlist_equip.PacketLength = (sizeof(itemlist_equip) - sizeof(itemlist_equip.list)) + (sizeof(struct EQUIPITEM_INFO) * equip);
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
itemlist_equip.invType = type;
#endif
@@ -7503,44 +7503,43 @@ static void clif_pet_food(struct map_session_data *sd, int foodid, int fail)
/// 01cd { <skill id>.L }*7
static void clif_autospell(struct map_session_data *sd, uint16 skill_lv)
{
- int fd;
-
nullpo_retv(sd);
- fd=sd->fd;
- WFIFOHEAD(fd,packet_len(0x1cd));
- WFIFOW(fd, 0)=0x1cd;
+ int fd = sd->fd;
+#if PACKETVER_RE_NUM >= 20181031
+ // reserve space for 7 skills
+ WFIFOHEAD(fd, sizeof(struct PACKET_ZC_AUTOSPELLLIST) + 4 * 7);
+#else
+ WFIFOHEAD(fd, sizeof(struct PACKET_ZC_AUTOSPELLLIST));
+#endif
+ struct PACKET_ZC_AUTOSPELLLIST *p = WFIFOP(fd, 0);
+ memset(p, 0, sizeof(struct PACKET_ZC_AUTOSPELLLIST));
+ p->packetType = autoSpellList;
+ int index = 0;
- if(skill_lv>0 && pc->checkskill(sd,MG_NAPALMBEAT)>0)
- WFIFOL(fd,2)= MG_NAPALMBEAT;
- else
- WFIFOL(fd,2)= 0x00000000;
- if(skill_lv>1 && pc->checkskill(sd,MG_COLDBOLT)>0)
- WFIFOL(fd,6)= MG_COLDBOLT;
- else
- WFIFOL(fd,6)= 0x00000000;
- if(skill_lv>1 && pc->checkskill(sd,MG_FIREBOLT)>0)
- WFIFOL(fd,10)= MG_FIREBOLT;
- else
- WFIFOL(fd,10)= 0x00000000;
- if(skill_lv>1 && pc->checkskill(sd,MG_LIGHTNINGBOLT)>0)
- WFIFOL(fd,14)= MG_LIGHTNINGBOLT;
- else
- WFIFOL(fd,14)= 0x00000000;
- if(skill_lv>4 && pc->checkskill(sd,MG_SOULSTRIKE)>0)
- WFIFOL(fd,18)= MG_SOULSTRIKE;
- else
- WFIFOL(fd,18)= 0x00000000;
- if(skill_lv>7 && pc->checkskill(sd,MG_FIREBALL)>0)
- WFIFOL(fd,22)= MG_FIREBALL;
- else
- WFIFOL(fd,22)= 0x00000000;
- if(skill_lv>9 && pc->checkskill(sd,MG_FROSTDIVER)>0)
- WFIFOL(fd,26)= MG_FROSTDIVER;
- else
- WFIFOL(fd,26)= 0x00000000;
+ if (skill_lv > 0 && pc->checkskill(sd, MG_NAPALMBEAT) > 0)
+ p->skills[index++] = MG_NAPALMBEAT;
+ if (skill_lv > 1 && pc->checkskill(sd, MG_COLDBOLT) > 0)
+ p->skills[index++] = MG_COLDBOLT;
+ if (skill_lv > 1 && pc->checkskill(sd, MG_FIREBOLT) > 0)
+ p->skills[index++] = MG_FIREBOLT;
+ if (skill_lv > 1 && pc->checkskill(sd, MG_LIGHTNINGBOLT) > 0)
+ p->skills[index++] = MG_LIGHTNINGBOLT;
+ if (skill_lv > 4 && pc->checkskill(sd, MG_SOULSTRIKE) > 0)
+ p->skills[index++] = MG_SOULSTRIKE;
+ if (skill_lv > 7 && pc->checkskill(sd, MG_FIREBALL) > 0)
+ p->skills[index++] = MG_FIREBALL;
+ if (skill_lv > 9 && pc->checkskill(sd, MG_FROSTDIVER) > 0)
+ p->skills[index++] = MG_FROSTDIVER;
+
+#if PACKETVER_RE_NUM >= 20181031
+ const int len = sizeof(struct PACKET_ZC_AUTOSPELLLIST) + index * 4;
+ p->packetLength = len;
+#else
+ const int len = sizeof(struct PACKET_ZC_AUTOSPELLLIST);
+#endif
+ WFIFOSET(fd, len);
- WFIFOSET(fd,packet_len(0x1cd));
sd->menuskill_id = SA_AUTOSPELL;
sd->menuskill_val = skill_lv;
}
@@ -7721,6 +7720,7 @@ static void clif_mvp_noitem(struct map_session_data *sd)
/// 1 = "You are already in a Guild."
/// 2 = "That Guild Name already exists."
/// 3 = "You need the necessary item to create a Guild."
+/// 4 = "Can't create a Guild in this area."
static void clif_guild_created(struct map_session_data *sd, int flag)
{
int fd;
@@ -8207,6 +8207,7 @@ static void clif_guild_invite(struct map_session_data *sd, struct guild *g)
/// 1 = Offer rejected.
/// 2 = Offer accepted.
/// 3 = Guild full.
+/// 4 = Offline or not exists
static void clif_guild_inviteack(struct map_session_data *sd, int flag)
{
int fd;
@@ -8863,6 +8864,45 @@ static void clif_specialeffect_value(struct block_list *bl, int effect_id, int n
clif->send(buf, packet_len(0x284), bl, SELF);
}
}
+
+/// Remove special effects (ZC_REMOVE_EFFECT).
+/// 0b0d <id>.L <effect id>.L
+/// effect id:
+/// @see doc/effect_list.txt
+static void clif_removeSpecialEffect(struct block_list *bl, int effectId, enum send_target target)
+{
+#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002 || PACKETVER_ZERO_NUM >= 20181010
+ nullpo_retv(bl);
+
+ struct PACKET_ZC_REMOVE_EFFECT p;
+ p.packetType = 0xb0d;
+ p.aid = bl->id;
+ p.effectId = effectId;
+
+ clif->send(&p, sizeof(p), bl, target);
+
+ if (clif->isdisguised(bl)) {
+ p.aid = -bl->id;
+ clif->send(&p, sizeof(p), bl, SELF);
+ }
+#endif
+}
+
+static void clif_removeSpecialEffect_single(struct block_list *bl, int effectId, struct block_list *targetBl)
+{
+#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002 || PACKETVER_ZERO_NUM >= 20181010
+ nullpo_retv(bl);
+ nullpo_retv(targetBl);
+
+ struct PACKET_ZC_REMOVE_EFFECT p;
+ p.packetType = 0xb0d;
+ p.aid = bl->id;
+ p.effectId = effectId;
+
+ clif->send(&p, sizeof(p), targetBl, SELF);
+#endif
+}
+
/**
* Modification of clif_messagecolor to send colored messages to players to chat log only (doesn't display overhead).
*
@@ -9631,7 +9671,9 @@ static void clif_msgtable_str_color(struct map_session_data *sd, enum clif_messa
p->PacketType = 0xa6f;
p->PacketLength = len;
p->messageId = msg_id;
+#if PACKETVER >= 20160406
p->color = color;
+#endif
safestrncpy(p->messageString, value, message_len);
p->messageString[message_len] = 0;
@@ -12301,7 +12343,7 @@ static void clif_parse_NpcSelectMenu(int fd, struct map_session_data *sd)
int npc_id = RFIFOL(fd,2);
uint8 select = RFIFOB(fd,6);
- if( (select > sd->npc_menu && select != 0xff) || select == 0 ) {
+ if( (select > sd->npc_menu && select != MAX_MENU_OPTIONS) || select == 0 ) {
#ifdef SECURE_NPCTIMEOUT
if( sd->npc_idle_timer != INVALID_TIMER ) {
#endif
@@ -16831,7 +16873,11 @@ static void clif_quest_send_list(struct map_session_data *sd)
real_len += sizeof(info->objectives[j]);
mob_data = mob->db(qi->objectives[j].mob);
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ info->objectives[j].huntIdent = sd->quest_log[i].quest_id;
+ info->objectives[j].huntIdent2 = j;
+ info->objectives[j].mobType = 0; // Info Needed
+#elif PACKETVER >= 20150513
info->objectives[j].huntIdent = (sd->quest_log[i].quest_id * 1000) + j;
info->objectives[j].mobType = 0; // Info Needed
#endif
@@ -16920,7 +16966,11 @@ static void clif_quest_add(struct map_session_data *sd, struct quest *qd)
monster = mob->db(qi->objectives[i].mob);
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ packet->objectives[i].huntIdent = qd->quest_id;
+ packet->objectives[i].huntIdent2 = i;
+ packet->objectives[i].mobType = 0; // Info Needed
+#elif PACKETVER >= 20150513
packet->objectives[i].huntIdent = (qd->quest_id * 1000) + i;
packet->objectives[i].mobType = 0; // Info Needed
#endif
@@ -16981,7 +17031,10 @@ static void clif_quest_update_objective(struct map_session_data *sd, struct ques
real_len += sizeof(packet->objectives[i]);
packet->objectives[i].questID = qd->quest_id;
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ packet->objectives[i].huntIdent = qd->quest_id;
+ packet->objectives[i].huntIdent2 = i;
+#elif PACKETVER >= 20150513
packet->objectives[i].huntIdent = (qd->quest_id * 1000) + i;
#else
packet->objectives[i].mob_id = qi->objectives[i].mob;
@@ -17556,6 +17609,7 @@ static int clif_instance(int instance_id, int type, int flag)
case 2:
// S 0x2cc <Standby Position>.W
// To announce Instancing queue creation if no maps available
+ // flag is priority, negative value mean cancel reservation
WBUFW(buf,0) = 0x02CC;
WBUFW(buf,2) = flag;
clif->send(buf,packet_len(0x02CC),&sd->bl,target);
@@ -18837,8 +18891,20 @@ static void clif_monster_hp_bar(struct mob_data *md, struct map_session_data *sd
}
/* [Ind/Hercules] placeholder for unsupported incoming packets (avoids server disconnecting client) */
-static void __attribute__ ((unused)) clif_parse_dull(int fd, struct map_session_data *sd)
+static void clif_parse_dull(int fd, struct map_session_data *sd)
{
+ const int cmd = clif->cmd;
+ Assert_retv(cmd <= MAX_PACKET_DB && cmd >= MIN_PACKET_DB);
+
+ int packet_len = packet_db[cmd].len;
+ if (packet_len == -1) { // variable-length packet
+ packet_len = RFIFOW(fd, 2);
+ }
+ if (sd) {
+ ShowWarning("Unhandled packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", (uint32)cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
+ } else {
+ ShowWarning("Unhandled packet 0x%04X (length %d), session #%d\n", (uint32)cmd, packet_len, fd);
+ }
return;
}
@@ -20624,7 +20690,7 @@ static void clif_achievement_reward_ack(int fd, struct map_session_data *sd, con
nullpo_retv(ad);
p.packet_id = achievementRewardAckType;
- p.received = 1;
+ p.failed = 0;
p.ach_id = ad->id;
clif->send(&p, packet_len(achievementRewardAckType), &sd->bl, SELF);
@@ -21868,6 +21934,54 @@ static void clif_parse_memorial_dungeon_command(int fd, struct map_session_data
}
}
+static void clif_camera_showWindow(struct map_session_data *sd)
+{
+#if PACKETVER >= 20160525
+ nullpo_retv(sd);
+ struct PACKET_ZC_CAMERA_INFO p;
+ p.packetType = 0xa78;
+ p.action = 1;
+ p.range = 0;
+ p.rotation = 0;
+ p.latitude = 0;
+ clif->send(&p, sizeof(p), &sd->bl, SELF);
+#endif
+}
+
+static void clif_camera_change(struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target)
+{
+#if PACKETVER >= 20160525
+ nullpo_retv(sd);
+ struct PACKET_ZC_CAMERA_INFO p;
+ p.packetType = 0xa78;
+ p.action = 0;
+ p.range = range;
+ p.rotation = rotation;
+ p.latitude = latitude;
+ clif->send(&p, sizeof(p), &sd->bl, target);
+#endif
+}
+
+// show item preview in already opened preview window
+static void clif_item_preview(struct map_session_data *sd, int n)
+{
+#if PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO)
+ nullpo_retv(sd);
+ Assert_retv(n >= 0 && n < MAX_INVENTORY);
+
+ struct PACKET_ZC_ITEM_PREVIEW p;
+ p.packetType = itemPreview;
+ p.index = n + 2;
+#if PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024
+ p.isDamaged = (sd->status.inventory[n].attribute & ATTR_BROKEN) != 0 ? 1 : 0;
+#endif
+ p.refiningLevel = sd->status.inventory[n].refine;
+ clif->addcards(&p.slot, &sd->status.inventory[n]);
+ clif->add_item_options(&p.option_data[0], &sd->status.inventory[n]);
+ clif->send(&p, sizeof(p), &sd->bl, SELF);
+#endif
+}
+
/*==========================================
* Main client packet processing function
*------------------------------------------*/
@@ -21919,6 +22033,7 @@ static int clif_parse(int fd)
parse_cmd_func = clif->parse_cmd;
cmd = parse_cmd_func(fd,sd);
+ clif->cmd = cmd;
if (VECTOR_LENGTH(HPM->packets[hpClif_Parse]) > 0) {
int result = HPM->parse_packets(fd,cmd,hpClif_Parse);
@@ -21982,8 +22097,8 @@ static int clif_parse(int fd)
else
packet_db[cmd].func(fd, sd);
}
-#ifdef DUMP_UNKNOWN_PACKET
else {
+#ifdef DUMP_UNKNOWN_PACKET
const char* packet_txt = "save/packet.txt";
FILE* fp;
@@ -22009,8 +22124,10 @@ static int clif_parse(int fd)
ShowDump(RFIFOP(fd,0), packet_len);
}
- }
+#else
+ clif->pDull(fd, sd);
#endif
+ }
RFIFOSKIP(fd, packet_len);
@@ -22182,6 +22299,7 @@ void clif_defaults(void)
clif->map_port = 5121;
clif->ally_only = false;
clif->delayed_damage_ers = NULL;
+ clif->cmd = -1;
/* core */
clif->init = do_init_clif;
clif->final = do_final_clif;
@@ -22416,6 +22534,8 @@ void clif_defaults(void)
clif->specialeffect = clif_specialeffect;
clif->specialeffect_single = clif_specialeffect_single;
clif->specialeffect_value = clif_specialeffect_value;
+ clif->removeSpecialEffect = clif_removeSpecialEffect;
+ clif->removeSpecialEffect_single = clif_removeSpecialEffect_single;
clif->millenniumshield = clif_millenniumshield;
clif->spiritcharm = clif_charm;
clif->charm_single = clif_charm_single;
@@ -23026,6 +23146,10 @@ void clif_defaults(void)
clif->cz_req_style_change_sub = clif_cz_req_style_change_sub;
clif->style_change_response = clif_style_change_response;
+ clif->camera_showWindow = clif_camera_showWindow;
+ clif->camera_change = clif_camera_change;
+ clif->item_preview = clif_item_preview;
+
// -- Pet Evolution
clif->pPetEvolution = clif_parse_pet_evolution;
clif->petEvolutionResult = clif_pet_evolution_result;
diff --git a/src/map/clif.h b/src/map/clif.h
index 86e53e1e9..b76c5ed70 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -684,6 +684,7 @@ struct clif_interface {
uint16 map_port;
char map_ip_str[128];
int map_fd;
+ int cmd;
/* for clif_clearunit_delayed */
struct eri *delay_clearunit_ers;
/* Cash Shop [Ind/Hercules] */
@@ -939,6 +940,8 @@ struct clif_interface {
void (*specialeffect) (struct block_list* bl, int type, enum send_target target);
void (*specialeffect_single) (struct block_list* bl, int type, int fd);
void (*specialeffect_value) (struct block_list* bl, int effect_id, int num, send_target target);
+ void (*removeSpecialEffect) (struct block_list *bl, int effectId, enum send_target target);
+ void (*removeSpecialEffect_single) (struct block_list *bl, int effectId, struct block_list *targetBl);
void (*millenniumshield) (struct block_list *bl, short shields );
void (*spiritcharm) (struct map_session_data *sd);
void (*charm_single) (int fd, struct map_session_data *sd);
@@ -1549,6 +1552,9 @@ struct clif_interface {
void (*petEvolutionResult) (int fd, enum pet_evolution_result result);
void (*party_dead_notification) (struct map_session_data *sd);
void (*pMemorialDungeonCommand) (int fd, struct map_session_data *sd);
+ void (*camera_showWindow) (struct map_session_data *sd);
+ void (*camera_change) (struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target);
+ void (*item_preview) (struct map_session_data *sd, int n);
};
#ifdef HERCULES_CORE
diff --git a/src/map/guild.c b/src/map/guild.c
index 780d21326..757dbb445 100644
--- a/src/map/guild.c
+++ b/src/map/guild.c
@@ -721,7 +721,6 @@ static int guild_reply_invite(struct map_session_data *sd, int guild_id, int fla
}
else
{// accepted
- struct guild_member m;
struct guild* g;
int i;
@@ -741,8 +740,8 @@ static int guild_reply_invite(struct map_session_data *sd, int guild_id, int fla
return 0;
}
- guild->makemember(&m,sd);
- intif->guild_addmember(guild_id, &m);
+ guild->makemember(&g->member[i], sd);
+ intif->guild_addmember(guild_id, &g->member[i]);
//TODO: send a minimap update to this player
}
diff --git a/src/map/map.c b/src/map/map.c
index 343f219b8..d4d6e3323 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -635,6 +635,18 @@ static int map_foreachinmap(int (*func)(struct block_list*, va_list), int16 m, i
return returnCount;
}
+static int map_forcountinmap(int (*func)(struct block_list*, va_list), int16 m, int count, int type, ...)
+{
+ int returnCount;
+ va_list ap;
+
+ va_start(ap, type);
+ returnCount = map->vforcountinarea(func, m, 0, 0, map->list[m].bxs, map->list[m].bys, count, type, ap);
+ va_end(ap);
+
+ return returnCount;
+}
+
/**
* Applies func to every block_list object of bl_type type on all maps
* of instance instance_id.
@@ -3695,7 +3707,7 @@ static void map_zonedb_reload(void)
{
// first, reset maps to their initial zones:
for (int i = 0; i < map->count; i++) {
- map->zone_remove(i);
+ map->zone_remove_all(i);
if (battle_config.pk_mode) {
map->list[i].flag.pvp = 1;
@@ -4676,6 +4688,27 @@ static void map_zone_remove(int m)
map->list[m].zone_mf = NULL;
map->list[m].zone_mf_count = 0;
}
+// this one removes every flag, even if they were previously turned on before
+// the current zone was applied
+static void map_zone_remove_all(int m)
+{
+ Assert_retv(m >= 0 && m < map->count);
+
+ for (unsigned short k = 0; k < map->list[m].zone_mf_count; k++) {
+ char flag[MAP_ZONE_MAPFLAG_LENGTH];
+
+ memcpy(flag, map->list[m].zone_mf[k], MAP_ZONE_MAPFLAG_LENGTH);
+ strtok(flag, "\t");
+
+ npc->parse_mapflag(map->list[m].name, "", flag, "off", "", "", "", NULL);
+ aFree(map->list[m].zone_mf[k]);
+ map->list[m].zone_mf[k] = NULL;
+ }
+
+ aFree(map->list[m].zone_mf);
+ map->list[m].zone_mf = NULL;
+ map->list[m].zone_mf_count = 0;
+}
static inline void map_zone_mf_cache_add(int m, char *rflag)
{
Assert_retv(m >= 0 && m < map->count);
@@ -6828,6 +6861,7 @@ void map_defaults(void)
/* funcs */
map->zone_init = map_zone_init;
map->zone_remove = map_zone_remove;
+ map->zone_remove_all = map_zone_remove_all;
map->zone_apply = map_zone_apply;
map->zone_change = map_zone_change;
map->zone_change2 = map_zone_change2;
@@ -6901,6 +6935,7 @@ void map_defaults(void)
map->foreachinpath = map_foreachinpath;
map->vforeachinmap = map_vforeachinmap;
map->foreachinmap = map_foreachinmap;
+ map->forcountinmap = map_forcountinmap;
map->vforeachininstance = map_vforeachininstance;
map->foreachininstance = map_foreachininstance;
diff --git a/src/map/map.h b/src/map/map.h
index d50666d4b..4267c2c88 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -815,6 +815,7 @@ struct questinfo {
struct s_homunculus homunculus;
int homunculus_type;
VECTOR_DECL(struct questinfo_qreq) quest_requirement;
+ int mercenary_class;
};
@@ -1219,6 +1220,7 @@ END_ZEROED_BLOCK;
/* funcs */
void (*zone_init) (void);
void (*zone_remove) (int m);
+ void (*zone_remove_all) (int m);
void (*zone_apply) (int m, struct map_zone_data *zone, const char* start, const char* buffer, const char* filepath);
void (*zone_change) (int m, struct map_zone_data *zone, const char* start, const char* buffer, const char* filepath);
void (*zone_change2) (int m, struct map_zone_data *zone);
@@ -1292,6 +1294,7 @@ END_ZEROED_BLOCK;
int (*foreachinpath) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, ...);
int (*vforeachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, va_list args);
int (*foreachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, ...);
+ int (*forcountinmap) (int (*func)(struct block_list*,va_list), int16 m, int count, int type, ...);
int (*vforeachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type, va_list ap);
int (*foreachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type,...);
diff --git a/src/map/messages_main.h b/src/map/messages_main.h
index f26fdb50b..4bef783ec 100644
--- a/src/map/messages_main.h
+++ b/src/map/messages_main.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -23,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20180829
+Latest version: 20181107
*/
enum clif_messages {
@@ -17569,9 +17570,11 @@ DEATH: %.1f%% (Basic 100.0%% VIP Bonus %.1f%% + %s %.1f%%)
MSG_ID_AFB = 0xafb,
#endif
#if PACKETVER >= 20150826
-/*20150826 to latest
+/*20150826 to 20180919
해당 태그는 이름으로 사용하실 수 없습니다.
Name with this tag cannot be used.
+20181002 to latest
+ 해당 내용은 이름으로 사용하실 수 없습니다.
*/
MSG_ID_AFC = 0xafc,
#endif
@@ -21285,6 +21288,130 @@ NOW LOADING..
*/
MSG_ID_DD5 = 0xdd5,
#endif
+#if PACKETVER >= 20181002
+/*20181002 to latest
+삭제
+*/
+ MSG_ID_DD6 = 0xdd6,
+/*20181002 to latest
+답장
+*/
+ MSG_ID_DD7 = 0xdd7,
+/*20181002 to latest
+전송
+*/
+ MSG_ID_DD8 = 0xdd8,
+/*20181002 to latest
+이름확인
+*/
+ MSG_ID_DD9 = 0xdd9,
+/*20181002 to latest
+공지
+Notice
+*/
+ MSG_ID_DDA = 0xdda,
+/*20181002 to latest
+일반
+General
+*/
+ MSG_ID_DDB = 0xddb,
+/*20181002 to latest
+반송
+Clear
+*/
+ MSG_ID_DDC = 0xddc,
+/*20181002 to latest
+검색
+Search
+*/
+ MSG_ID_DDD = 0xddd,
+#endif
+#if PACKETVER >= 20181031
+/*20181031 to latest
+펫 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDE = 0xdde,
+/*20181031 to latest
+호문 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDF = 0xddf,
+/*20181031 to latest
+화폐
+*/
+ MSG_ID_DE0 = 0xde0,
+/*20181031 to latest
+%s %d개
+*/
+ MSG_ID_DE1 = 0xde1,
+/*20181031 to latest
+교환에 실패하였습니다.
+*/
+ MSG_ID_DE2 = 0xde2,
+/*20181031 to latest
+교환이 잘 이루어졌습니다.
+*/
+ MSG_ID_DE3 = 0xde3,
+/*20181031 to latest
+교환에 필요한 재화가 부족합니다.
+*/
+ MSG_ID_DE4 = 0xde4,
+/*20181031 to latest
+해당 아이템은 이미 판매되어 재고가 부족합니다.
+*/
+ MSG_ID_DE5 = 0xde5,
+/*20181031 to latest
+사망
+*/
+ MSG_ID_DE6 = 0xde6,
+/*20181031 to latest
+PvP
+*/
+ MSG_ID_DE7 = 0xde7,
+/*20181031 to latest
+아이템 소지 확장
+*/
+ MSG_ID_DE8 = 0xde8,
+/*20181031 to 20181031
+(^0000ff%s^000000)을 소모하여, 아이템 최대 소지 종류수를 확장하시겠습니까?
+(^0000ff%d^000000)에서 (^0000ff%d^000000)로 확장됩니다.
+^ff0000※ 소모된 아이템 및 확장된 최대 소지 종류수는 되돌릴 수 없습니다.^000000
+20181107 to latest
+^0000ff%s^000000을 소모하여, 아이템 최대 소지 종류수를 확장하시겠습니까?
+(^0000ff%d^000000)에서 (^0000ff%d^000000)로 확장됩니다.
+^ff0000※ 소모된 아이템 및 확장된 최대 소지 종류수는 되돌릴 수 없습니다.^000000
+*/
+ MSG_ID_DE9 = 0xde9,
+/*20181031 to 20181031
+아이템 소지 종류 수 확장에 실패하였습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 실패하였습니다.
+*/
+ MSG_ID_DEA = 0xdea,
+/*20181031 to 20181031
+아이템 소지 종류 수 확장을 위해, 다른 작업을 종료하여 주시기 바랍니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장을 위해, 다른 작업을 종료하여 주시기 바랍니다.
+*/
+ MSG_ID_DEB = 0xdeb,
+/*20181031 to 20181031
+아이템 소지 확장에 필요한 아이템을 소지하고 있지 않습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 필요한 아이템을 소지하고 있지 않습니다.
+*/
+ MSG_ID_DEC = 0xdec,
+/*20181031 to 20181031
+이미 아이템 소지 종류 수 확장이 최대로 적용 중입니다.
+20181107 to latest
+더 이상 아이템 최대 소지 종류수를 확장 할 수 없습니다.
+*/
+ MSG_ID_DED = 0xded,
+/*20181031 to 20181031
+아이템 소지 확장에 성공하였습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 성공하였습니다.
+*/
+ MSG_ID_DEE = 0xdee,
+#endif
};
#endif /* MAP_MESSAGES_MAIN_H */
diff --git a/src/map/messages_re.h b/src/map/messages_re.h
index c263150e3..ee1a05b93 100644
--- a/src/map/messages_re.h
+++ b/src/map/messages_re.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -23,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20180919
+Latest version: 20181107
*/
enum clif_messages {
@@ -17045,9 +17046,11 @@ DEATH: %.1f%% (Basic 100.0%% VIP Bonus %.1f%% + %s %.1f%%)
MSG_ID_AFB = 0xafb,
#endif
#if PACKETVER >= 20150826
-/*20150826 to latest
+/*20150826 to 20180919
해당 태그는 이름으로 사용하실 수 없습니다.
Name with this tag cannot be used.
+20181002 to latest
+ 해당 내용은 이름으로 사용하실 수 없습니다.
*/
MSG_ID_AFC = 0xafc,
#endif
@@ -20802,6 +20805,92 @@ Search
*/
MSG_ID_DDD = 0xddd,
#endif
+#if PACKETVER >= 20181031
+/*20181031 to latest
+펫 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDE = 0xdde,
+/*20181031 to latest
+호문 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDF = 0xddf,
+/*20181031 to latest
+화폐
+*/
+ MSG_ID_DE0 = 0xde0,
+/*20181031 to latest
+%s %d개
+*/
+ MSG_ID_DE1 = 0xde1,
+/*20181031 to latest
+교환에 실패하였습니다.
+*/
+ MSG_ID_DE2 = 0xde2,
+/*20181031 to latest
+교환이 잘 이루어졌습니다.
+*/
+ MSG_ID_DE3 = 0xde3,
+/*20181031 to latest
+교환에 필요한 재화가 부족합니다.
+*/
+ MSG_ID_DE4 = 0xde4,
+/*20181031 to latest
+해당 아이템은 이미 판매되어 재고가 부족합니다.
+*/
+ MSG_ID_DE5 = 0xde5,
+/*20181031 to latest
+사망
+*/
+ MSG_ID_DE6 = 0xde6,
+/*20181031 to latest
+PvP
+*/
+ MSG_ID_DE7 = 0xde7,
+/*20181031 to latest
+아이템 소지 확장
+*/
+ MSG_ID_DE8 = 0xde8,
+/*20181031 to 20181031
+(^0000ff%s^000000)을 소모하여, 아이템 최대 소지 종류수를 확장하시겠습니까?
+(^0000ff%d^000000)에서 (^0000ff%d^000000)로 확장됩니다.
+^ff0000※ 소모된 아이템 및 확장된 최대 소지 종류수는 되돌릴 수 없습니다.^000000
+20181107 to latest
+^0000ff%s^000000을 소모하여, 아이템 최대 소지 종류수를 확장하시겠습니까?
+(^0000ff%d^000000)에서 (^0000ff%d^000000)로 확장됩니다.
+^ff0000※ 소모된 아이템 및 확장된 최대 소지 종류수는 되돌릴 수 없습니다.^000000
+*/
+ MSG_ID_DE9 = 0xde9,
+/*20181031 to 20181031
+아이템 소지 종류 수 확장에 실패하였습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 실패하였습니다.
+*/
+ MSG_ID_DEA = 0xdea,
+/*20181031 to 20181031
+아이템 소지 종류 수 확장을 위해, 다른 작업을 종료하여 주시기 바랍니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장을 위해, 다른 작업을 종료하여 주시기 바랍니다.
+*/
+ MSG_ID_DEB = 0xdeb,
+/*20181031 to 20181031
+아이템 소지 확장에 필요한 아이템을 소지하고 있지 않습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 필요한 아이템을 소지하고 있지 않습니다.
+*/
+ MSG_ID_DEC = 0xdec,
+/*20181031 to 20181031
+이미 아이템 소지 종류 수 확장이 최대로 적용 중입니다.
+20181107 to latest
+더 이상 아이템 최대 소지 종류수를 확장 할 수 없습니다.
+*/
+ MSG_ID_DED = 0xded,
+/*20181031 to 20181031
+아이템 소지 확장에 성공하였습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 성공하였습니다.
+*/
+ MSG_ID_DEE = 0xdee,
+#endif
};
#endif /* MAP_MESSAGES_RE_H */
diff --git a/src/map/messages_zero.h b/src/map/messages_zero.h
index c562bb07c..dc2f87a76 100644
--- a/src/map/messages_zero.h
+++ b/src/map/messages_zero.h
@@ -23,7 +23,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20180919
+Latest version: 20181024
*/
enum clif_messages {
@@ -13926,9 +13926,11 @@ DEATH : %.1f%% ( basic 100.0%% VIP Bonus %.1f%% + %s %.1f%%)
DEATH: %.1f%% (Basic 100.0%% VIP Bonus %.1f%% + %s %.1f%%)
*/
MSG_ID_AFB = 0xafb,
-/*20171018 to latest
+/*20171018 to 20180928
해당 태그는 이름으로 사용하실 수 없습니다.
Name with this tag cannot be used.
+20181010 to latest
+ 해당 내용은 이름으로 사용하실 수 없습니다.
*/
MSG_ID_AFC = 0xafc,
/*20171018 to latest
@@ -17420,6 +17422,48 @@ Search
*/
MSG_ID_DDD = 0xddd,
#endif
+#if PACKETVER >= 20181024
+/*20181024 to latest
+펫 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDE = 0xdde,
+/*20181024 to latest
+호문 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDF = 0xddf,
+/*20181024 to latest
+화폐
+*/
+ MSG_ID_DE0 = 0xde0,
+/*20181024 to latest
+%s %d개
+*/
+ MSG_ID_DE1 = 0xde1,
+/*20181024 to latest
+교환에 실패하였습니다.
+*/
+ MSG_ID_DE2 = 0xde2,
+/*20181024 to latest
+교환이 잘 이루어졌습니다.
+*/
+ MSG_ID_DE3 = 0xde3,
+/*20181024 to latest
+교환에 필요한 재화가 부족합니다.
+*/
+ MSG_ID_DE4 = 0xde4,
+/*20181024 to latest
+해당 아이템은 이미 판매되어 재고가 부족합니다.
+*/
+ MSG_ID_DE5 = 0xde5,
+/*20181024 to latest
+사망
+*/
+ MSG_ID_DE6 = 0xde6,
+/*20181024 to latest
+PvP
+*/
+ MSG_ID_DE7 = 0xde7,
+#endif
};
#endif /* MAP_MESSAGES_ZERO_H */
diff --git a/src/map/npc.c b/src/map/npc.c
index a8bf7d371..7f57a9c50 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -4971,6 +4971,7 @@ static int npc_reload(void)
npc->npc_mob = npc->npc_cache_mob = npc->npc_delay_mob = 0;
// reset mapflags
+ map->zone_reload();
map->flags_init();
// Reprocess npc files and reload constants
@@ -4980,7 +4981,6 @@ static int npc_reload(void)
instance->reload();
- map->zone_reload();
map->zone_init();
npc->motd = npc->name2id("HerculesMOTD"); /* [Ind/Hercules] */
diff --git a/src/map/packets.h b/src/map/packets.h
index a897601b3..09c061920 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -4337,4 +4337,68 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0b0d,10,clif->pDull/*,XXX*/);
#endif
+
+// 2018-10-02aRagexe
+#if PACKETVER_MAIN_NUM >= 20181002
+// new packets
+ packet(0x0b10,10,clif->pDull/*,XXX*/);
+ packet(0x0b11,4,clif->pDull/*,XXX*/);
+// changed packet sizes
+ packet(0x0b08,-1); // ZC_INVENTORY_START
+#endif
+
+// 2018-10-02aRagexeRE
+#if PACKETVER_RE_NUM >= 20181002
+// new packets
+ packet(0x0b10,10,clif->pDull/*,XXX*/);
+ packet(0x0b11,4,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+
+// 2018-10-10_2aRagexe_zero
+#if PACKETVER_ZERO_NUM >= 20181010
+// new packets
+ packet(0x0b10,10,clif->pDull/*,XXX*/);
+ packet(0x0b11,4,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+
+// 2018-10-17bRagexe
+#if PACKETVER_MAIN_NUM >= 20181017
+// new packets
+ packet(0x0b12,2,clif->pDull/*,XXX*/);
+ packet(0x0b13,40); // ZC_ITEM_PREVIEW
+// changed packet sizes
+#endif
+
+// 2018-10-17bRagexeRE
+#if PACKETVER_RE_NUM >= 20181017
+// new packets
+ packet(0x0b12,2,clif->pDull/*,XXX*/);
+ packet(0x0b13,48); // ZC_ITEM_PREVIEW
+// changed packet sizes
+#endif
+
+// 2018-10-24_2aRagexe_zero
+#if PACKETVER_ZERO_NUM >= 20181024
+// new packets
+ packet(0x0b12,2,clif->pDull/*,XXX*/);
+ packet(0x0b13,40); // ZC_ITEM_PREVIEW
+// changed packet sizes
+#endif
+
+#ifndef PACKETVER_ZERO
+// 2018-10-31aRagexe, 2018-10-31cRagexeRE
+#if PACKETVER >= 20181031
+// new packets
+ packet(0x0b14,2,clif->pDull/*,XXX*/);
+ packet(0x0b15,7,clif->pDull/*,XXX*/);
+ packet(0x0b16,2,clif->pDull/*,XXX*/);
+ packet(0x0b17,3,clif->pDull/*,XXX*/);
+ packet(0x0b18,4,clif->pDull/*,XXX*/);
+ packet(0x0b19,2,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+#endif // PACKETVER_ZERO
+
#endif /* MAP_PACKETS_H */
diff --git a/src/map/packets_keys_main.h b/src/map/packets_keys_main.h
index a9d9a7020..48a3c5d2b 100644
--- a/src/map/packets_keys_main.h
+++ b/src/map/packets_keys_main.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,71 +34,163 @@
#if PACKETVER == 20101123 || \
PACKETVER == 20101124 || \
PACKETVER == 20101126
- packetKeys(0x49357D72,0x22C370A1,0x5F836591);
+ packetKeys(0x49357d72,0x22c370a1,0x5f836591);
+#endif
+
+// 2010-11-23aRagexeRE, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-25aRagexeRE, 2010-11-26aRagexeRE, 2010-11-30aRagexeRE, 2010-12-07aRagexeRE, 2010-12-14aRagexeRE, 2010-12-21aRagexeRE, 2010-12-23aRagexeRE, 2010-12-28aRagexeRE, 2011-01-04aRagexeRE, 2011-01-05aRagexeRE, 2011-01-11aRagexeRE, 2011-01-18aRagexeRE, 2011-01-25aRagexeRE, 2011-01-26aRagexeRE, 2011-01-26bRagexeRE, 2011-01-31aRagexeRE, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE, 2011-02-08aRagexeRE, 2011-02-15aRagexeRE, 2011-02-22aRagexeRE, 2011-02-23aRagexeRE, 2011-02-23bRagexeRE, 2011-02-24aRagexeRE, 2011-02-25aRagexeRE, 2011-02-28aRagexeRE, 2011-03-08aRagexeRE, 2011-03-09aRagexeRE, 2011-03-09bRagexeRE, 2011-03-09cRagexeRE, 2011-03-09dRagexeRE, 2011-03-15aRagexeRE, 2011-03-22aRagexeRE, 2011-03-29aRagexeRE, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE, 2011-04-05aRagexeRE, 2011-04-12aRagexeRE, 2011-04-19aRagexeRE, 2011-04-20aRagexeRE, 2011-04-26aRagexeRE, 2011-04-27aRagexeRE, 2011-05-03aRagexeRE, 2011-05-11aRagexeRE, 2011-05-17bRagexeRE, 2011-05-24aRagexeRE, 2011-05-26aRagexeRE, 2011-05-31aRagexeRE, 2011-06-07aRagexeRE, 2011-06-08aRagexeRE, 2011-06-08bRagexeRE, 2011-06-08cRagexeRE, 2011-06-09aRagexeRE, 2011-06-14bRagexeRE, 2011-06-22aRagexeRE, 2011-06-28aRagexeRE, 2011-07-06aRagexeRE, 2011-07-13aRagexeRE, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE, 2011-07-19aRagexeRE, 2011-07-26aRagexeRE, 2011-08-03aRagexeRE, 2011-08-03bRagexeRE, 2011-08-10aRagexeRE, 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE, 2018-10-17_02aRagexe, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexe, 2018-10-17_03aRagexeRE, 2018-10-17bRagexe, 2018-10-17bRagexeRE, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-10-31cRagexeRE, 2018-11-07aRagexe, 2018-11-07aRagexeRE
+#if PACKETVER == 20101123 || \
+ PACKETVER == 20101124 || \
+ PACKETVER == 20101125 || \
+ PACKETVER == 20101126 || \
+ PACKETVER == 20101130 || \
+ PACKETVER == 20101207 || \
+ PACKETVER == 20101214 || \
+ PACKETVER == 20101221 || \
+ PACKETVER == 20101223 || \
+ PACKETVER == 20101228 || \
+ PACKETVER == 20110104 || \
+ PACKETVER == 20110105 || \
+ PACKETVER == 20110111 || \
+ PACKETVER == 20110118 || \
+ PACKETVER == 20110125 || \
+ PACKETVER == 20110126 || \
+ PACKETVER == 20110131 || \
+ PACKETVER == 20110208 || \
+ PACKETVER == 20110215 || \
+ PACKETVER == 20110222 || \
+ PACKETVER == 20110223 || \
+ PACKETVER == 20110224 || \
+ PACKETVER == 20110225 || \
+ PACKETVER == 20110228 || \
+ PACKETVER == 20110308 || \
+ PACKETVER == 20110309 || \
+ PACKETVER == 20110315 || \
+ PACKETVER == 20110322 || \
+ PACKETVER == 20110329 || \
+ PACKETVER == 20110330 || \
+ PACKETVER == 20110405 || \
+ PACKETVER == 20110412 || \
+ PACKETVER == 20110419 || \
+ PACKETVER == 20110420 || \
+ PACKETVER == 20110426 || \
+ PACKETVER == 20110427 || \
+ PACKETVER == 20110503 || \
+ PACKETVER == 20110511 || \
+ PACKETVER == 20110517 || \
+ PACKETVER == 20110524 || \
+ PACKETVER == 20110526 || \
+ PACKETVER == 20110531 || \
+ PACKETVER == 20110607 || \
+ PACKETVER == 20110608 || \
+ PACKETVER == 20110609 || \
+ PACKETVER == 20110614 || \
+ PACKETVER == 20110622 || \
+ PACKETVER == 20110628 || \
+ PACKETVER == 20110706 || \
+ PACKETVER == 20110713 || \
+ PACKETVER == 20110719 || \
+ PACKETVER == 20110726 || \
+ PACKETVER == 20110803 || \
+ PACKETVER == 20110810 || \
+ PACKETVER == 20131223 || \
+ PACKETVER == 20140508 || \
+ PACKETVER == 20140611 || \
+ PACKETVER == 20150225 || \
+ PACKETVER == 20180315 || \
+ PACKETVER == 20180321 || \
+ PACKETVER == 20180328 || \
+ PACKETVER == 20180404 || \
+ PACKETVER == 20180418 || \
+ PACKETVER == 20180425 || \
+ PACKETVER == 20180502 || \
+ PACKETVER == 20180509 || \
+ PACKETVER == 20180516 || \
+ PACKETVER == 20180523 || \
+ PACKETVER == 20180530 || \
+ PACKETVER == 20180605 || \
+ PACKETVER == 20180612 || \
+ PACKETVER == 20180620 || \
+ PACKETVER == 20180621 || \
+ PACKETVER == 20180704 || \
+ PACKETVER == 20180711 || \
+ PACKETVER == 20180718 || \
+ PACKETVER == 20180801 || \
+ PACKETVER == 20180808 || \
+ PACKETVER == 20180822 || \
+ PACKETVER == 20180829 || \
+ PACKETVER == 20180831 || \
+ PACKETVER == 20180912 || \
+ PACKETVER == 20180919 || \
+ PACKETVER == 20181002 || \
+ PACKETVER == 20181017 || \
+ PACKETVER == 20181024 || \
+ PACKETVER == 20181031 || \
+ PACKETVER >= 20181107
+ packetKeys(0x00000000,0x00000000,0x00000000);
#endif
// 2010-11-30aRagexe
#if PACKETVER == 20101130
- packetKeys(0x3726593C,0x0EFD5EE8,0x79036DF9);
+ packetKeys(0x3726593c,0x0efd5ee8,0x79036df9);
#endif
// 2010-12-07bRagexe
#if PACKETVER == 20101207
- packetKeys(0x66111112,0x2B7B53AA,0x04E76DF8);
+ packetKeys(0x66111112,0x2b7b53aa,0x04e76df8);
#endif
// 2010-12-14aRagexe
#if PACKETVER == 20101214
- packetKeys(0x5E535D06,0x4E297F0E,0x400B6AD8);
+ packetKeys(0x5e535d06,0x4e297f0e,0x400b6ad8);
#endif
// 2010-12-21aRagexe
#if PACKETVER == 20101221
- packetKeys(0x0448466A,0x41554AC9,0x5B4710B2);
+ packetKeys(0x0448466a,0x41554ac9,0x5b4710b2);
#endif
// 2010-12-28aRagexe
#if PACKETVER == 20101228
- packetKeys(0x50C638A5,0x4BF86B20,0x480C3746);
+ packetKeys(0x50c638a5,0x4bf86b20,0x480c3746);
#endif
// 2011-01-04aRagexe
#if PACKETVER == 20110104
- packetKeys(0x55DB401F,0x047D4E02,0x6D8F2EA3);
+ packetKeys(0x55db401f,0x047d4e02,0x6d8f2ea3);
#endif
// 2011-01-11aRagexe
#if PACKETVER == 20110111
- packetKeys(0x2D5F6302,0x2A361CD6,0x39D661D6);
+ packetKeys(0x2d5f6302,0x2a361cd6,0x39d661d6);
#endif
// 2011-01-18aRagexe
#if PACKETVER == 20110118
- packetKeys(0x3C777D2D,0x00541A1D,0x5E0053A2);
+ packetKeys(0x3c777d2d,0x00541a1d,0x5e0053a2);
#endif
// 2011-01-25aRagexe, 2011-01-26aRagexe, 2011-01-26bRagexe, 2011-01-31aRagexe
#if PACKETVER == 20110125 || \
PACKETVER == 20110126 || \
PACKETVER == 20110131
- packetKeys(0x6BB84BB0,0x4C004382,0x10AE3260);
+ packetKeys(0x6bb84bb0,0x4c004382,0x10ae3260);
#endif
// 2011-01-31bRagexe, 2011-02-01aRagexe
#if PACKETVER == 20110131 || \
PACKETVER == 20110201
- packetKeys(0x68871E62,0x60D17266,0x74726DAA);
+ packetKeys(0x68871e62,0x60d17266,0x74726daa);
#endif
// 2011-02-08aRagexe, 2011-02-10aRagexe, 2011-02-10bRagexe
#if PACKETVER == 20110208 || \
PACKETVER == 20110210
- packetKeys(0x72BA4E9D,0x281E1DF1,0x208255AA);
+ packetKeys(0x72ba4e9d,0x281e1df1,0x208255aa);
#endif
// 2011-02-15aRagexe
#if PACKETVER == 20110215
- packetKeys(0x1B174D76,0x32005014,0x7B8B72D5);
+ packetKeys(0x1b174d76,0x32005014,0x7b8b72d5);
#endif
// 2011-02-22aRagexe, 2011-02-23aRagexe, 2011-02-23bRagexe, 2011-02-24aRagexe, 2011-02-25aRagexe, 2011-02-25bRagexe
@@ -105,70 +198,70 @@
PACKETVER == 20110223 || \
PACKETVER == 20110224 || \
PACKETVER == 20110225
- packetKeys(0x48F73B56,0x155F7D66,0x44AB57CE);
+ packetKeys(0x48f73b56,0x155f7d66,0x44ab57ce);
#endif
// 2011-02-28aRagexe
#if PACKETVER == 20110228
- packetKeys(0x26385EBF,0x7A8C7534,0x60AE2C34);
+ packetKeys(0x26385ebf,0x7a8c7534,0x60ae2c34);
#endif
// 2011-03-08aRagexe, 2011-03-09aRagexe, 2011-03-09bRagexe, 2011-03-09cRagexe, 2011-03-09dRagexe
#if PACKETVER == 20110308 || \
PACKETVER == 20110309
- packetKeys(0x003F1B20,0x7A1E12A3,0x34994AAD);
+ packetKeys(0x003f1b20,0x7a1e12a3,0x34994aad);
#endif
// 2011-03-15aRagexe, 2011-03-16aRagexe
#if PACKETVER == 20110315 || \
PACKETVER == 20110316
- packetKeys(0x62967D7D,0x34833D1A,0x26D45ECA);
+ packetKeys(0x62967d7d,0x34833d1a,0x26d45eca);
#endif
// 2011-03-22aRagexe
#if PACKETVER == 20110322
- packetKeys(0x5870617C,0x638D5376,0x739F4817);
+ packetKeys(0x5870617c,0x638d5376,0x739f4817);
#endif
// 2011-03-29aRagexe, 2011-03-30aRagexe
#if PACKETVER == 20110329 || \
PACKETVER == 20110330
- packetKeys(0x06900BB7,0x45DB687B,0x197B017B);
+ packetKeys(0x06900bb7,0x45db687b,0x197b017b);
#endif
// 2011-04-05aRagexe
#if PACKETVER == 20110405
- packetKeys(0x248D5C37,0x1C6A1B37,0x1F644FDB);
+ packetKeys(0x248d5c37,0x1c6a1b37,0x1f644fdb);
#endif
// 2011-04-12bRagexe
#if PACKETVER == 20110412
- packetKeys(0x3DE86BFC,0x0DD47F80,0x42481C9B);
+ packetKeys(0x3de86bfc,0x0dd47f80,0x42481c9b);
#endif
// 2011-04-19aRagexe
#if PACKETVER == 20110419
- packetKeys(0x26073204,0x62013A51,0x22AC58E0);
+ packetKeys(0x26073204,0x62013a51,0x22ac58e0);
#endif
// 2011-04-26aRagexe
#if PACKETVER == 20110426
- packetKeys(0x392813F9,0x09905054,0x40DB732E);
+ packetKeys(0x392813f9,0x09905054,0x40db732e);
#endif
// 2011-05-03aRagexe
#if PACKETVER == 20110503
- packetKeys(0x28BE32EE,0x1D506FCB,0x63832421);
+ packetKeys(0x28be32ee,0x1d506fcb,0x63832421);
#endif
// 2011-05-11aRagexe
#if PACKETVER == 20110511
- packetKeys(0x6A715733,0x3C5C0D74,0x408A48EC);
+ packetKeys(0x6a715733,0x3c5c0d74,0x408a48ec);
#endif
// 2011-05-17aRagexe
#if PACKETVER == 20110517
- packetKeys(0x07FE0C72,0x46766BAD,0x5EB5126A);
+ packetKeys(0x07fe0c72,0x46766bad,0x5eb5126a);
#endif
// 2011-05-23aRagexe, 2011-05-26bRagexe
@@ -179,323 +272,323 @@
// 2011-05-31aRagexe
#if PACKETVER == 20110531
- packetKeys(0x5ABA2C7C,0x3CD22073,0x78953988);
+ packetKeys(0x5aba2c7c,0x3cd22073,0x78953988);
#endif
// 2011-06-07aRagexe, 2011-06-08aRagexe, 2011-06-08bRagexe, 2011-06-08cRagexe, 2011-06-09aRagexe
#if PACKETVER == 20110607 || \
PACKETVER == 20110608 || \
PACKETVER == 20110609
- packetKeys(0x76B0426C,0x0DD74DEB,0x1F92228E);
+ packetKeys(0x76b0426c,0x0dd74deb,0x1f92228e);
#endif
// 2011-06-14aRagexe
#if PACKETVER == 20110614
- packetKeys(0x5749027B,0x71710972,0x5B096475);
+ packetKeys(0x5749027b,0x71710972,0x5b096475);
#endif
// 2011-06-20aRagexe
#if PACKETVER == 20110620
- packetKeys(0x3A1760D4,0x254E0DF9,0x440E2357);
+ packetKeys(0x3a1760d4,0x254e0df9,0x440e2357);
#endif
// 2011-06-27aRagexe
#if PACKETVER == 20110627
- packetKeys(0x3EFC29BD,0x699E4B11,0x7B900A13);
+ packetKeys(0x3efc29bd,0x699e4b11,0x7b900a13);
#endif
// 2011-07-05aRagexe
#if PACKETVER == 20110705
- packetKeys(0x48801A5E,0x68FC7726,0x081D7F6E);
+ packetKeys(0x48801a5e,0x68fc7726,0x081d7f6e);
#endif
// 2011-07-11bRagexe, 2011-07-13aRagexe, 2011-07-13bRagexe
#if PACKETVER == 20110711 || \
PACKETVER == 20110713
- packetKeys(0x489C544B,0x33BA1C25,0x2DE66E4E);
+ packetKeys(0x489c544b,0x33ba1c25,0x2de66e4e);
#endif
// 2011-07-18aRagexe
#if PACKETVER == 20110718
- packetKeys(0x08464674,0x1EEB3BD5,0x33395199);
+ packetKeys(0x08464674,0x1eeb3bd5,0x33395199);
#endif
// 2011-07-26aRagexe
#if PACKETVER == 20110726
- packetKeys(0x41E5730B,0x119C6C11,0x5356524A);
+ packetKeys(0x41e5730b,0x119c6c11,0x5356524a);
#endif
// 2011-08-02aRagexe
#if PACKETVER == 20110802
- packetKeys(0x607C08A1,0x65B20528,0x360571E9);
+ packetKeys(0x607c08a1,0x65b20528,0x360571e9);
#endif
// 2011-08-09aRagexe
#if PACKETVER == 20110809
- packetKeys(0x742A559A,0x047F425D,0x5C8C2CA0);
+ packetKeys(0x742a559a,0x047f425d,0x5c8c2ca0);
#endif
// 2011-08-16aRagexe, 2011-08-16aRagexeRE, 2011-08-17aRagexe, 2011-08-17aRagexeRE, 2011-08-17bRagexe, 2011-08-17bRagexeRE
#if PACKETVER == 20110816 || \
PACKETVER == 20110817
- packetKeys(0x053D5CED,0x3DED6DED,0x6DED6DED);
+ packetKeys(0x053d5ced,0x3ded6ded,0x6ded6ded);
#endif
// 2011-08-23aRagexe, 2011-08-23aRagexeRE, 2011-08-24aRagexe, 2011-08-24aRagexeRE, 2011-08-24bRagexeRE
#if PACKETVER == 20110823 || \
PACKETVER == 20110824
- packetKeys(0x35C91401,0x262A5556,0x28FA03AA);
+ packetKeys(0x35c91401,0x262a5556,0x28fa03aa);
#endif
// 2011-08-31aRagexe, 2011-08-31aRagexeRE, 2011-08-31bRagexe, 2011-08-31bRagexeRE, 2011-08-31cRagexe, 2011-08-31cRagexeRE, 2011-08-31dRagexeRE, 2011-08-31eRagexeRE
#if PACKETVER == 20110831
- packetKeys(0x3AD67ED0,0x44703C69,0x6F876809);
+ packetKeys(0x3ad67ed0,0x44703c69,0x6f876809);
#endif
// 2011-09-06aRagexe, 2011-09-06aRagexeRE, 2011-09-14aRagexe, 2011-09-14aRagexeRE
#if PACKETVER == 20110906 || \
PACKETVER == 20110914
- packetKeys(0x350124EC,0x39A14595,0x0DE56125);
+ packetKeys(0x350124ec,0x39a14595,0x0de56125);
#endif
// 2011-09-20aRagexe, 2011-09-20aRagexeRE, 2011-09-20aRagexeRE2
#if PACKETVER == 20110920
- packetKeys(0x79C91A12,0x20450CC0,0x584B2A38);
+ packetKeys(0x79c91a12,0x20450cc0,0x584b2a38);
#endif
// 2011-09-28aRagexe, 2011-09-28aRagexe-retry, 2011-09-28aRagexeRE, 2011-09-29aRagexe, 2011-09-29aRagexeRE
#if PACKETVER == 20110928 || \
PACKETVER == 20110929
- packetKeys(0x26567512,0x4B0732DF,0x57D266C6);
+ packetKeys(0x26567512,0x4b0732df,0x57d266c6);
#endif
// 2011-10-04aRagexe, 2011-10-04aRagexeRE, 2011-10-05aRagexe, 2011-10-05aRagexeRE
#if PACKETVER == 20111004 || \
PACKETVER == 20111005
- packetKeys(0x291E6762,0x77CD391A,0x60AC2F16);
+ packetKeys(0x291e6762,0x77cd391a,0x60ac2f16);
#endif
// 2011-10-10aRagexe, 2011-10-10bRagexeRE, 2011-10-12aRagexeRE, 2011-10-12bRagexe
#if PACKETVER == 20111010 || \
PACKETVER == 20111012
- packetKeys(0x7F3C2D29,0x59B01DE6,0x1DBB44CA);
+ packetKeys(0x7f3c2d29,0x59b01de6,0x1dbb44ca);
#endif
// 2011-10-17aRagexe, 2011-10-17aRagexeRE, 2011-10-19aRagexeRE, 2011-10-19bRagexeRE, 2011-10-21aRagexe, 2011-10-21aRagexeRE, 2011-10-21cRagexe
#if PACKETVER == 20111017 || \
PACKETVER == 20111019 || \
PACKETVER == 20111021
- packetKeys(0x357D55DC,0x5A8D759F,0x245C30F5);
+ packetKeys(0x357d55dc,0x5a8d759f,0x245c30f5);
#endif
// 2011-10-25aRagexe, 2011-10-25aRagexeRE
#if PACKETVER == 20111025
- packetKeys(0x50AE1A63,0x3CE579B5,0x29C10406);
+ packetKeys(0x50ae1a63,0x3ce579b5,0x29c10406);
#endif
// 2011-11-01cRagexe, 2011-11-01cRagexeRE, 2011-11-02aRagexe, 2011-11-02aRagexeRE
#if PACKETVER == 20111101 || \
PACKETVER == 20111102
- packetKeys(0x5324329D,0x5D545D52,0x06137269);
+ packetKeys(0x5324329d,0x5d545d52,0x06137269);
#endif
// 2011-11-08aRagexe, 2011-11-08aRagexeRE, 2011-11-09aRagexe, 2011-11-09aRagexeRE, 2011-11-09bRagexe, 2011-11-09cRagexe, 2011-11-09dRagexe, 2011-11-09eRagexe
#if PACKETVER == 20111108 || \
PACKETVER == 20111109
- packetKeys(0x0B642BDA,0x6ECB1D1C,0x61C7454B);
+ packetKeys(0x0b642bda,0x6ecb1d1c,0x61c7454b);
#endif
// 2011-11-14aRagexe, 2011-11-14aRagexeRE, 2011-11-16aRagexe, 2011-11-16aRagexeRE
#if PACKETVER == 20111114 || \
PACKETVER == 20111116
- packetKeys(0x419D0DB0,0x74916BF4,0x027371B4);
+ packetKeys(0x419d0db0,0x74916bf4,0x027371b4);
#endif
// 2011-11-22aRagexe, 2011-11-22aRagexeRE, 2011-11-23aRagexe
#if PACKETVER == 20111122 || \
PACKETVER == 20111123
- packetKeys(0x3B550F07,0x1F666C7C,0x60304EF5);
+ packetKeys(0x3b550f07,0x1f666c7c,0x60304ef5);
#endif
// 2011-12-07aRagexe, 2011-12-07aRagexeRE
#if PACKETVER == 20111207
- packetKeys(0x2A610886,0x3E09165E,0x57C11888);
+ packetKeys(0x2a610886,0x3e09165e,0x57c11888);
#endif
// 2011-12-13aRagexe, 2011-12-13aRagexeRE, 2011-12-14aRagexe, 2011-12-14aRagexeRE, 2011-12-14bRagexeRE, 2011-12-14cRagexeRE
#if PACKETVER == 20111213 || \
PACKETVER == 20111214
- packetKeys(0x5151306B,0x7AE32886,0x53060628);
+ packetKeys(0x5151306b,0x7ae32886,0x53060628);
#endif
// 2011-12-20bRagexe, 2011-12-20bRagexeRE
#if PACKETVER == 20111220
- packetKeys(0x05D53871,0x7D0027B4,0x29975333);
+ packetKeys(0x05d53871,0x7d0027b4,0x29975333);
#endif
// 2011-12-27aRagexe, 2011-12-27aRagexeRE, 2011-12-28aRagexe, 2011-12-28aRagexeRE
#if PACKETVER == 20111227 || \
PACKETVER == 20111228
- packetKeys(0x0FF87E93,0x6CFF7860,0x3A3D1DEC);
+ packetKeys(0x0ff87e93,0x6cff7860,0x3a3d1dec);
#endif
// 2012-01-03aRagexe, 2012-01-03bRagexeRE, 2012-01-04aRagexe, 2012-01-04aRagexeRE, 2012-01-04bRagexe
#if PACKETVER == 20120103 || \
PACKETVER == 20120104
- packetKeys(0x262034A1,0x674542A5,0x73A50BA5);
+ packetKeys(0x262034a1,0x674542a5,0x73a50ba5);
#endif
// 2012-01-10aRagexeRE, 2012-01-10bRagexe
#if PACKETVER == 20120110
- packetKeys(0x2B412AFC,0x4FF94487,0x6705339D);
+ packetKeys(0x2b412afc,0x4ff94487,0x6705339d);
#endif
// 2012-01-17aRagexe, 2012-01-17aRagexeRE, 2012-01-18aRagexe
#if PACKETVER == 20120117 || \
PACKETVER == 20120118
- packetKeys(0x24E32C2E,0x48DD17A5,0x64F8771A);
+ packetKeys(0x24e32c2e,0x48dd17a5,0x64f8771a);
#endif
// 2012-01-20aRagexe, 2012-01-20aRagexeRE
#if PACKETVER == 20120120
- packetKeys(0x504345D0,0x3D427B1B,0x794C2DCC);
+ packetKeys(0x504345d0,0x3d427b1b,0x794c2dcc);
#endif
// 2012-01-31aRagexe, 2012-01-31cRagexeRE, 2012-02-01aRagexeRE, 2012-02-02aRagexe, 2012-02-02aRagexeRE, 2012-02-02bRagexe, 2012-02-02bRagexeRE
#if PACKETVER == 20120131 || \
PACKETVER == 20120201 || \
PACKETVER == 20120202
- packetKeys(0x2CFC0A71,0x2BA91D8D,0x087E39E0);
+ packetKeys(0x2cfc0a71,0x2ba91d8d,0x087e39e0);
#endif
// 2012-02-07bRagexe, 2012-02-07bRagexeRE, 2012-02-08aRagexe, 2012-02-09aRagexe
#if PACKETVER == 20120207 || \
PACKETVER == 20120208 || \
PACKETVER == 20120209
- packetKeys(0x1D373F5D,0x5ACD604D,0x1C4D7C4D);
+ packetKeys(0x1d373f5d,0x5acd604d,0x1c4d7c4d);
#endif
// 2012-02-14bRagexe, 2012-02-14bRagexeRE, 2012-02-15aRagexe
#if PACKETVER == 20120214 || \
PACKETVER == 20120215
- packetKeys(0x7A255EFA,0x30977276,0x2D4A0448);
+ packetKeys(0x7a255efa,0x30977276,0x2d4a0448);
#endif
// 2012-02-21aRagexe, 2012-02-21aRagexeRE, 2012-02-22aRagexe, 2012-02-22aRagexeRE
#if PACKETVER == 20120221 || \
PACKETVER == 20120222
- packetKeys(0x1CA5130F,0x43ED240A,0x7FEA3BE0);
+ packetKeys(0x1ca5130f,0x43ed240a,0x7fea3be0);
#endif
// 2012-02-28bRagexe, 2012-02-28bRagexeRE, 2012-02-29aRagexe, 2012-02-29aRagexeRE
#if PACKETVER == 20120228 || \
PACKETVER == 20120229
- packetKeys(0x520B4C64,0x2800407D,0x47651458);
+ packetKeys(0x520b4c64,0x2800407d,0x47651458);
#endif
// 2012-03-07aRagexe, 2012-03-07aRagexeRE, 2012-03-07bRagexe, 2012-03-07bRagexeRE, 2012-03-07cRagexe, 2012-03-07cRagexeRE, 2012-03-07dRagexe, 2012-03-07dRagexeRE, 2012-03-07eRagexeRE, 2012-03-07fRagexeRE
#if PACKETVER == 20120307
- packetKeys(0x382A6DEF,0x5CBE7202,0x61F46637);
+ packetKeys(0x382a6def,0x5cbe7202,0x61f46637);
#endif
// 2012-03-14aRagexe, 2012-03-14aRagexeRE, 2012-03-14bRagexe, 2012-03-14bRagexeRE, 2012-03-14cRagexe, 2012-03-14cRagexeRE
#if PACKETVER == 20120314
- packetKeys(0x689C1729,0x11812639,0x60F82967);
+ packetKeys(0x689c1729,0x11812639,0x60f82967);
#endif
// 2012-03-20aRagexe, 2012-03-20aRagexeRE, 2012-03-21aRagexeRE
#if PACKETVER == 20120320 || \
PACKETVER == 20120321
- packetKeys(0x21F9683F,0x710C5CA5,0x1FD910E9);
+ packetKeys(0x21f9683f,0x710c5ca5,0x1fd910e9);
#endif
// 2012-03-28aRagexe, 2012-03-28aRagexeRE, 2012-03-28bRagexe, 2012-03-28bRagexeRE, 2012-03-28cRagexe, 2012-03-28cRagexeRE, 2012-03-28dRagexe, 2012-03-28dRagexeRE, 2012-03-28eRagexeRE, 2012-03-28fRagexeRE, 2012-03-28gRagexeRE
#if PACKETVER == 20120328
- packetKeys(0x75B8553B,0x37F20B12,0x385C2B40);
+ packetKeys(0x75b8553b,0x37f20b12,0x385c2b40);
#endif
// 2012-04-04aRagexe, 2012-04-04aRagexeRE
#if PACKETVER == 20120404
- packetKeys(0x0036310C,0x2DCD0BED,0x1EE62A78);
+ packetKeys(0x0036310c,0x2dcd0bed,0x1ee62a78);
#endif
// 2012-04-10aRagexe, 2012-04-10aRagexeRE
#if PACKETVER == 20120410
- packetKeys(0x01581359,0x452D6FFA,0x6AFB6E2E);
+ packetKeys(0x01581359,0x452d6ffa,0x6afb6e2e);
#endif
// 2012-04-17aRagexe, 2012-04-17aRagexeRE, 2012-04-18aRagexeRE
#if PACKETVER == 20120417 || \
PACKETVER == 20120418
- packetKeys(0x01540E48,0x13041224,0x31247924);
+ packetKeys(0x01540e48,0x13041224,0x31247924);
#endif
// 2012-04-24aRagexe, 2012-04-24aRagexeRE
#if PACKETVER == 20120424
- packetKeys(0x411D1DBB,0x4CBA4848,0x1A432FC4);
+ packetKeys(0x411d1dbb,0x4cba4848,0x1a432fc4);
#endif
// 2012-05-02aRagexeRE, 2012-05-03aRagexe, 2012-05-03aRagexeRE, 2012-05-03bRagexe
#if PACKETVER == 20120502 || \
PACKETVER == 20120503
- packetKeys(0x37A91D19,0x10190019,0x00190019);
+ packetKeys(0x37a91d19,0x10190019,0x00190019);
#endif
// 2012-05-08aRagexe, 2012-05-08aRagexeRE, 2012-05-09aRagexeRE, 2012-05-09bRagexeRE
#if PACKETVER == 20120508 || \
PACKETVER == 20120509
- packetKeys(0x16CF3301,0x1F472B9B,0x0B4A3CD2);
+ packetKeys(0x16cf3301,0x1f472b9b,0x0b4a3cd2);
#endif
// 2012-05-15aRagexe, 2012-05-15aRagexeRE
#if PACKETVER == 20120515
- packetKeys(0x4A715EF9,0x79103E4F,0x405C1238);
+ packetKeys(0x4a715ef9,0x79103e4f,0x405c1238);
#endif
// 2012-05-22aRagexe, 2012-05-23aRagexe, 2012-05-23aRagexeRE, 2012-05-23bRagexeRE, 2012-05-25aRagexeRE
#if PACKETVER == 20120522 || \
PACKETVER == 20120523 || \
PACKETVER == 20120525
- packetKeys(0x70EB4CCB,0x0487713C,0x398D4B08);
+ packetKeys(0x70eb4ccb,0x0487713c,0x398d4b08);
#endif
// 2012-05-29bRagexe, 2012-05-29bRagexeRE
#if PACKETVER == 20120529
- packetKeys(0x53415DDE,0x34953E16,0x27623DF2);
+ packetKeys(0x53415dde,0x34953e16,0x27623df2);
#endif
// 2012-06-01aRagexeRE, 2012-06-04aRagexe, 2012-06-05aRagexeRE
#if PACKETVER == 20120601 || \
PACKETVER == 20120604 || \
PACKETVER == 20120605
- packetKeys(0x68CA3080,0x31B74BDD,0x505208F1);
+ packetKeys(0x68ca3080,0x31b74bdd,0x505208f1);
#endif
// 2012-06-12aRagexe, 2012-06-12aRagexeRE
#if PACKETVER == 20120612
- packetKeys(0x32E45D64,0x35643564,0x35643564);
+ packetKeys(0x32e45d64,0x35643564,0x35643564);
#endif
// 2012-06-18aRagexe, 2012-06-18aRagexeRE
#if PACKETVER == 20120618
- packetKeys(0x261F261F,0x261F261F,0x261F261F);
+ packetKeys(0x261f261f,0x261f261f,0x261f261f);
#endif
// 2012-06-26aRagexe, 2012-06-26aRagexeRE, 2012-06-27aRagexe, 2012-06-27aRagexeRE
#if PACKETVER == 20120626 || \
PACKETVER == 20120627
- packetKeys(0x02277E66,0x045723F1,0x7107392C);
+ packetKeys(0x02277e66,0x045723f1,0x7107392c);
#endif
// 2012-07-02aRagexe, 2012-07-02aRagexeRE
#if PACKETVER == 20120702
- packetKeys(0x25733B31,0x53486CFD,0x398649BD);
+ packetKeys(0x25733b31,0x53486cfd,0x398649bd);
#endif
// 2012-07-10aRagexe, 2012-07-10aRagexeRE, 2012-07-12aRagexe, 2012-07-12aRagexeRE
#if PACKETVER == 20120710 || \
PACKETVER == 20120712
- packetKeys(0x0E8B7AFB,0x6930362D,0x42D33A57);
+ packetKeys(0x0e8b7afb,0x6930362d,0x42d33a57);
#endif
// 2012-07-16aRagexe, 2012-07-16aRagexeRE
@@ -505,486 +598,453 @@
// 2012-07-24aRagexe, 2012-07-24aRagexeRE
#if PACKETVER == 20120724
- packetKeys(0x783D5BC6,0x3AAC2176,0x66616F02);
+ packetKeys(0x783d5bc6,0x3aac2176,0x66616f02);
#endif
// 2012-08-01aRagexe, 2012-08-01aRagexeRE, 2012-08-01bRagexe, 2012-08-01bRagexeRE
#if PACKETVER == 20120801
- packetKeys(0x71FB6768,0x5843166B,0x6CB445C6);
+ packetKeys(0x71fb6768,0x5843166b,0x6cb445c6);
#endif
// 2012-08-08aRagexe, 2012-08-08aRagexeRE, 2012-08-08bRagexe, 2012-08-08bRagexeRE, 2012-08-08cRagexe, 2012-08-08cRagexeRE, 2012-08-08dRagexeRE
#if PACKETVER == 20120808
- packetKeys(0x5D5068BB,0x36732065,0x47CF7367);
+ packetKeys(0x5d5068bb,0x36732065,0x47cf7367);
#endif
// 2012-08-14aRagexe, 2012-08-14aRagexeRE, 2012-08-14bRagexe, 2012-08-14bRagexeRE
#if PACKETVER == 20120814
- packetKeys(0x203E21BD,0x047459FB,0x56AF5A97);
+ packetKeys(0x203e21bd,0x047459fb,0x56af5a97);
#endif
// 2012-08-22aRagexe, 2012-08-22aRagexeRE, 2012-08-22bRagexe, 2012-08-22bRagexeRE, 2012-08-22cRagexe, 2012-08-22cRagexeRE
#if PACKETVER == 20120822
- packetKeys(0x06A92E7B,0x3D324F29,0x5FD63004);
+ packetKeys(0x06a92e7b,0x3d324f29,0x5fd63004);
#endif
// 2012-08-30aRagexe, 2012-08-30aRagexeRE, 2012-08-30bRagexeRE
#if PACKETVER == 20120830
- packetKeys(0x0AF1363D,0x4AB33E3B,0x48421DBE);
+ packetKeys(0x0af1363d,0x4ab33e3b,0x48421dbe);
#endif
// 2012-09-05aRagexe, 2012-09-05aRagexeRE
#if PACKETVER == 20120905
- packetKeys(0x04F50D80,0x092F5C4D,0x29BF3DCF);
+ packetKeys(0x04f50d80,0x092f5c4d,0x29bf3dcf);
#endif
// 2012-09-11aRagexe, 2012-09-11aRagexeRE
#if PACKETVER == 20120911
- packetKeys(0x1F3D1145,0x02DB3C32,0x4BE34C49);
+ packetKeys(0x1f3d1145,0x02db3c32,0x4be34c49);
#endif
// 2012-09-19aRagexe, 2012-09-19aRagexeRE
#if PACKETVER == 20120919
- packetKeys(0x72E00F24,0x4EA02D80,0x7C803480);
+ packetKeys(0x72e00f24,0x4ea02d80,0x7c803480);
#endif
// 2012-09-25aRagexe, 2012-09-25aRagexeRE, 2012-09-26aRagexe, 2012-09-26aRagexeRE
#if PACKETVER == 20120925 || \
PACKETVER == 20120926
- packetKeys(0x43A66E22,0x36C2229F,0x08172ECE);
+ packetKeys(0x43a66e22,0x36c2229f,0x08172ece);
#endif
// 2012-10-10aRagexe, 2012-10-10aRagexeRE, 2012-10-10bRagexe, 2012-10-10bRagexeRE, 2012-10-11aRagexeRE
#if PACKETVER == 20121010 || \
PACKETVER == 20121011
- packetKeys(0x169733E2,0x4C4640DC,0x31636531);
+ packetKeys(0x169733e2,0x4c4640dc,0x31636531);
#endif
// 2012-10-17aRagexe, 2012-10-17aRagexeRE, 2012-10-17bRagexe, 2012-10-17bRagexeRE
#if PACKETVER == 20121017
- packetKeys(0x340C0C31,0x33205EA8,0x55964BFF);
+ packetKeys(0x340c0c31,0x33205ea8,0x55964bff);
#endif
// 2012-10-24aRagexe, 2012-10-24aRagexeRE
#if PACKETVER == 20121024
- packetKeys(0x6166335C,0x45393483,0x7EDC5478);
+ packetKeys(0x6166335c,0x45393483,0x7edc5478);
#endif
// 2012-10-31aRagexe, 2012-10-31aRagexeRE
#if PACKETVER == 20121031
- packetKeys(0x66EB7ADB,0x242864BB,0x354A4CDE);
+ packetKeys(0x66eb7adb,0x242864bb,0x354a4cde);
#endif
// 2012-11-07aRagexe, 2012-11-07aRagexeRE
#if PACKETVER == 20121107
- packetKeys(0x49967892,0x48025276,0x1E192CA3);
+ packetKeys(0x49967892,0x48025276,0x1e192ca3);
#endif
// 2012-11-14aRagexe, 2012-11-14aRagexeRE
#if PACKETVER == 20121114
- packetKeys(0x3473545C,0x2706445C,0x79647616);
+ packetKeys(0x3473545c,0x2706445c,0x79647616);
#endif
// 2012-11-21aRagexe, 2012-11-21aRagexeRE
#if PACKETVER == 20121121
- packetKeys(0x6EB54B0B,0x3F2A6BE5,0x0B2866E6);
+ packetKeys(0x6eb54b0b,0x3f2a6be5,0x0b2866e6);
#endif
// 2012-11-28aRagexe, 2012-11-28aRagexeRE
#if PACKETVER == 20121128
- packetKeys(0x146D4D5E,0x5C3D161B,0x759250B8);
+ packetKeys(0x146d4d5e,0x5c3d161b,0x759250b8);
#endif
// 2012-12-05aRagexe, 2012-12-05aRagexeRE, 2012-12-05bRagexe, 2012-12-05bRagexeRE
#if PACKETVER == 20121205
- packetKeys(0x218C64B6,0x4EFE17AE,0x27EA5E74);
+ packetKeys(0x218c64b6,0x4efe17ae,0x27ea5e74);
#endif
// 2012-12-12aRagexe, 2012-12-12aRagexeRE, 2012-12-12bRagexe, 2012-12-12bRagexeRE, 2012-12-12cRagexeRE
#if PACKETVER == 20121212
- packetKeys(0x7F8026F0,0x32EE2A4B,0x73746C0E);
+ packetKeys(0x7f8026f0,0x32ee2a4b,0x73746c0e);
#endif
// 2012-12-18aRagexe, 2012-12-18aRagexeRE, 2012-12-18bRagexe, 2012-12-18bRagexeRE
#if PACKETVER == 20121218
- packetKeys(0x6A5450A2,0x4322498A,0x2C6574FB);
+ packetKeys(0x6a5450a2,0x4322498a,0x2c6574fb);
#endif
// 2012-12-27aRagexe, 2012-12-27aRagexeRE
#if PACKETVER == 20121227
- packetKeys(0x71773018,0x36A14EEB,0x28CD5A20);
+ packetKeys(0x71773018,0x36a14eeb,0x28cd5a20);
#endif
// 2013-01-03aRagexe, 2013-01-03aRagexeRE, 2013-01-07aRagexe
#if PACKETVER == 20130103 || \
PACKETVER == 20130107
- packetKeys(0x1E1A559A,0x199A799A,0x799A799A);
+ packetKeys(0x1e1a559a,0x199a799a,0x799a799a);
#endif
// 2013-01-09aRagexe, 2013-01-09aRagexeRE
#if PACKETVER == 20130109
- packetKeys(0x6435360F,0x0A283678,0x64A04AC7);
+ packetKeys(0x6435360f,0x0a283678,0x64a04ac7);
#endif
// 2013-01-15aRagexeRE, 2013-01-15bRagexe, 2013-01-16aRagexe, 2013-01-16aRagexeRE, 2013-01-16bRagexe
#if PACKETVER == 20130115 || \
PACKETVER == 20130116
- packetKeys(0x273C25CD,0x06AA48AF,0x45A01BD4);
+ packetKeys(0x273c25cd,0x06aa48af,0x45a01bd4);
#endif
// 2013-01-21aRagexe, 2013-01-21aRagexeRE
#if PACKETVER == 20130121
- packetKeys(0x5DD874B0,0x7D98233F,0x28FF5566);
+ packetKeys(0x5dd874b0,0x7d98233f,0x28ff5566);
#endif
// 2013-01-30aRagexe, 2013-01-30aRagexeRE
#if PACKETVER == 20130130
- packetKeys(0x1EA57961,0x27786856,0x30301FA0);
+ packetKeys(0x1ea57961,0x27786856,0x30301fa0);
#endif
// 2013-02-06aRagexe, 2013-02-06aRagexeRE
#if PACKETVER == 20130206
- packetKeys(0x1D8F4227,0x675812AA,0x29132929);
+ packetKeys(0x1d8f4227,0x675812aa,0x29132929);
#endif
// 2013-02-15aRagexe, 2013-02-15aRagexeRE, 2013-02-15bRagexe
#if PACKETVER == 20130215
- packetKeys(0x69FB1C38,0x7D386860,0x62805311);
+ packetKeys(0x69fb1c38,0x7d386860,0x62805311);
#endif
// 2013-02-20aRagexe, 2013-02-20bRagexeRE
#if PACKETVER == 20130220
- packetKeys(0x0D555256,0x28C26722,0x72220A22);
+ packetKeys(0x0d555256,0x28c26722,0x72220a22);
#endif
// 2013-02-27aRagexe, 2013-02-27aRagexeRE
#if PACKETVER == 20130227
- packetKeys(0x44F86842,0x43786A7A,0x71654528);
+ packetKeys(0x44f86842,0x43786a7a,0x71654528);
#endif
// 2013-03-06aRagexe, 2013-03-06aRagexeRE, 2013-03-06bRagexeRE
#if PACKETVER == 20130306
- packetKeys(0x7E274326,0x7D182DF2,0x4FC27DFA);
+ packetKeys(0x7e274326,0x7d182df2,0x4fc27dfa);
#endif
// 2013-03-13aRagexe, 2013-03-13aRagexeRE, 2013-03-13bRagexeRE, 2013-03-13cRagexeRE
#if PACKETVER == 20130313
- packetKeys(0x560021C3,0x6A5D110F,0x52BD40A5);
+ packetKeys(0x560021c3,0x6a5d110f,0x52bd40a5);
#endif
// 2013-03-20bRagexeRE, 2013-03-20cRagexeRE, 2013-03-20dRagexe, 2013-03-20eRagexe
#if PACKETVER == 20130320
- packetKeys(0x3F094C49,0x55F86C1E,0x58AA359A);
+ packetKeys(0x3f094c49,0x55f86c1e,0x58aa359a);
#endif
// 2013-03-27bRagexe, 2013-03-27bRagexeRE
#if PACKETVER == 20130327
- packetKeys(0x114B1BA0,0x2C4F0AE2,0x5FA1183F);
+ packetKeys(0x114b1ba0,0x2c4f0ae2,0x5fa1183f);
#endif
// 2013-04-03aRagexe, 2013-04-03aRagexeRE
#if PACKETVER == 20130403
- packetKeys(0x424A43AE,0x4A9D5EBE,0x4B3518A9);
+ packetKeys(0x424a43ae,0x4a9d5ebe,0x4b3518a9);
#endif
// 2013-04-10aRagexe, 2013-04-10aRagexeRE
#if PACKETVER == 20130410
- packetKeys(0x3AD52ACA,0x314D1AED,0x086E415E);
+ packetKeys(0x3ad52aca,0x314d1aed,0x086e415e);
#endif
// 2013-04-17aRagexe, 2013-04-17aRagexeRE
#if PACKETVER == 20130417
- packetKeys(0x7FB13B83,0x6E003749,0x07A02B94);
+ packetKeys(0x7fb13b83,0x6e003749,0x07a02b94);
#endif
// 2013-04-24aRagexe, 2013-04-24aRagexeRE
#if PACKETVER == 20130424
- packetKeys(0x79F679F6,0x79F679F6,0x79F679F6);
+ packetKeys(0x79f679f6,0x79f679f6,0x79f679f6);
#endif
// 2013-05-02aRagexe, 2013-05-02aRagexeRE, 2013-05-02bRagexe
#if PACKETVER == 20130502
- packetKeys(0x62E733B9,0x62204281,0x7F044DCA);
+ packetKeys(0x62e733b9,0x62204281,0x7f044dca);
#endif
// 2013-05-08bRagexe, 2013-05-08bRagexeRE, 2013-05-08cRagexe, 2013-05-08dRagexe, 2013-05-08eRagexe, 2013-05-08fRagexe
#if PACKETVER == 20130508
- packetKeys(0x25421E49,0x175200BA,0x6C0B5239);
+ packetKeys(0x25421e49,0x175200ba,0x6c0b5239);
#endif
// 2013-05-15aRagexe, 2013-05-15aRagexeRE
#if PACKETVER == 20130515
- packetKeys(0x75794A38,0x58A96BC1,0x296E6FB8);
+ packetKeys(0x75794a38,0x58a96bc1,0x296e6fb8);
#endif
// 2013-05-22aRagexe, 2013-05-22aRagexeRE
#if PACKETVER == 20130522
- packetKeys(0x6948050B,0x06511D9D,0x725D4DF1);
+ packetKeys(0x6948050b,0x06511d9d,0x725d4df1);
#endif
// 2013-05-29aRagexe, 2013-05-29aRagexeRE
#if PACKETVER == 20130529
- packetKeys(0x023A6C87,0x14BF1F1E,0x5CC70CC9);
+ packetKeys(0x023a6c87,0x14bf1f1e,0x5cc70cc9);
#endif
// 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
#if PACKETVER == 20130605
- packetKeys(0x646E08D9,0x5F153AB5,0x61B509B5);
+ packetKeys(0x646e08d9,0x5f153ab5,0x61b509b5);
#endif
// 2013-06-12aRagexe, 2013-06-12bRagexe, 2013-06-12bRagexeRE, 2013-06-12cRagexe, 2013-06-12dRagexe, 2013-06-12eRagexe
#if PACKETVER == 20130612
- packetKeys(0x6D166F66,0x3C000FCF,0x295B0FCB);
+ packetKeys(0x6d166f66,0x3c000fcf,0x295b0fcb);
#endif
// 2013-06-18#1aRagexe, 2013-06-18#1aRagexeRE
#if PACKETVER == 20130618
- packetKeys(0x434115DE,0x34A10FE9,0x6791428E);
+ packetKeys(0x434115de,0x34a10fe9,0x6791428e);
#endif
// 2013-06-26_3bRagexeRE, 2013-06-26_3cRagexe, 2013-06-26aRagexeRE, 2013-06-26bRagexe
#if PACKETVER == 20130626
- packetKeys(0x38F453EF,0x6A040FD8,0x65BD6668);
+ packetKeys(0x38f453ef,0x6a040fd8,0x65bd6668);
#endif
// 2013-07-03aRagexe, 2013-07-03bRagexeRE
#if PACKETVER == 20130703
- packetKeys(0x4FF90E23,0x0F1432F2,0x4CFA1EDA);
+ packetKeys(0x4ff90e23,0x0f1432f2,0x4cfa1eda);
#endif
// 2013-07-10aRagexeRE, 2013-07-10bRagexe, 2013-07-10bRagexeRE, 2013-07-10cRagexeRE, 2013-07-10dRagexeRE, 2013-07-10eRagexeRE
#if PACKETVER == 20130710
- packetKeys(0x4A9C4237,0x4CCF3F8F,0x458F758F);
+ packetKeys(0x4a9c4237,0x4ccf3f8f,0x458f758f);
#endif
// 2013-07-17cRagexe, 2013-07-17cRagexeRE, 2013-07-17dRagexeRE, 2013-07-17eRagexeRE
#if PACKETVER == 20130717
- packetKeys(0x5EE5520C,0x5F9E00CF,0x2BED4F91);
+ packetKeys(0x5ee5520c,0x5f9e00cf,0x2bed4f91);
#endif
// 2013-07-24eRagexe, 2013-07-24eRagexeRE, 2013-07-24fRagexeRE
#if PACKETVER == 20130724
- packetKeys(0x3C243BF5,0x42CC4E2F,0x02106EC6);
+ packetKeys(0x3c243bf5,0x42cc4e2f,0x02106ec6);
#endif
// 2013-07-31cRagexe, 2013-07-31cRagexeRE
#if PACKETVER == 20130731
- packetKeys(0x1E9D11A6,0x21A232B8,0x6A9E02B7);
+ packetKeys(0x1e9d11a6,0x21a232b8,0x6a9e02b7);
#endif
// 2013-08-07aRagexe, 2013-08-07aRagexeRE
#if PACKETVER == 20130807
- packetKeys(0x7E241DE0,0x5E805580,0x3D807D80);
+ packetKeys(0x7e241de0,0x5e805580,0x3d807d80);
#endif
// 2013-08-14aRagexe, 2013-08-14aRagexeRE
#if PACKETVER == 20130814
- packetKeys(0x23A23148,0x0C41420E,0x53785AD7);
+ packetKeys(0x23a23148,0x0c41420e,0x53785ad7);
#endif
// 2013-08-21bRagexe, 2013-08-21dRagexeRE
#if PACKETVER == 20130821
- packetKeys(0x51673F38,0x01663512,0x5CFF0B3D);
+ packetKeys(0x51673f38,0x01663512,0x5cff0b3d);
#endif
// 2013-08-28bRagexe, 2013-08-28bRagexeRE, 2013-08-28cRagexe, 2013-08-28cRagexeRE
#if PACKETVER == 20130828
- packetKeys(0x02EF7A9A,0x4882042F,0x76796678);
+ packetKeys(0x02ef7a9a,0x4882042f,0x76796678);
#endif
// 2013-09-04aRagexe, 2013-09-04bRagexeRE
#if PACKETVER == 20130904
- packetKeys(0x41AF20C5,0x0997799E,0x4AE803A0);
+ packetKeys(0x41af20c5,0x0997799e,0x4ae803a0);
#endif
// 2013-09-11aRagexe, 2013-09-11aRagexeRE, 2013-09-11bRagexe, 2013-09-11bRagexeRE
#if PACKETVER == 20130911
- packetKeys(0x232B3F47,0x0AD0515F,0x1CA31828);
+ packetKeys(0x232b3f47,0x0ad0515f,0x1ca31828);
#endif
// 2013-09-17aRagexe, 2013-09-17aRagexeRE
#if PACKETVER == 20130917
- packetKeys(0x5C9164C5,0x32B62F83,0x52864548);
+ packetKeys(0x5c9164c5,0x32b62f83,0x52864548);
#endif
// 2013-09-25aRagexe, 2013-09-25aRagexeRE, 2013-09-25bRagexe, 2013-09-25bRagexeRE, 2013-09-25cRagexe
#if PACKETVER == 20130925
- packetKeys(0x4B9C279A,0x0C7849C4,0x72A77646);
+ packetKeys(0x4b9c279a,0x0c7849c4,0x72a77646);
#endif
// 2013-10-02aRagexe, 2013-10-02aRagexeRE
#if PACKETVER == 20131002
- packetKeys(0x63A466F7,0x635362F3,0x41F369F3);
+ packetKeys(0x63a466f7,0x635362f3,0x41f369f3);
#endif
// 2013-10-08aRagexe, 2013-10-08bRagexeRE
#if PACKETVER == 20131008
- packetKeys(0x64924AAD,0x08CA0445,0x1CBC36DE);
+ packetKeys(0x64924aad,0x08ca0445,0x1cbc36de);
#endif
// 2013-10-16aRagexe, 2013-10-16aRagexeRE, 2013-10-16bRagexe, 2013-10-16bRagexeRE
#if PACKETVER == 20131016
- packetKeys(0x33AD7A93,0x720C7C49,0x12C4205A);
+ packetKeys(0x33ad7a93,0x720c7c49,0x12c4205a);
#endif
// 2013-10-23aRagexe, 2013-10-23aRagexeRE
#if PACKETVER == 20131023
- packetKeys(0x02EF6163,0x2B774814,0x58EC3036);
+ packetKeys(0x02ef6163,0x2b774814,0x58ec3036);
#endif
// 2013-10-30aRagexe, 2013-10-30aRagexeRE
#if PACKETVER == 20131030
- packetKeys(0x4A6A3EFF,0x7E2D5237,0x01CA019E);
+ packetKeys(0x4a6a3eff,0x7e2d5237,0x01ca019e);
#endif
// 2013-11-06aRagexe, 2013-11-06aRagexeRE, 2013-11-07aRagexe, 2013-11-07bRagexe, 2013-11-07cRagexe, 2013-11-08aRagexe
#if PACKETVER == 20131106 || \
PACKETVER == 20131107 || \
PACKETVER == 20131108
- packetKeys(0x143E528F,0x5CA05899,0x44B85B23);
+ packetKeys(0x143e528f,0x5ca05899,0x44b85b23);
#endif
// 2013-11-13aRagexeRE, 2013-11-13bRagexe
#if PACKETVER == 20131113
- packetKeys(0x44EA14CD,0x49311C88,0x40C86C31);
+ packetKeys(0x44ea14cd,0x49311c88,0x40c86c31);
#endif
// 2013-11-20dRagexe, 2013-11-20eRagexeRE
#if PACKETVER == 20131120
- packetKeys(0x541E5172,0x1B1D30A0,0x28AA7CE5);
+ packetKeys(0x541e5172,0x1b1d30a0,0x28aa7ce5);
#endif
// 2013-11-27aRagexeRE, 2013-11-27bRagexe, 2013-11-27bRagexeRE
#if PACKETVER == 20131127
- packetKeys(0x21426A48,0x5C505D6A,0x046D06AD);
+ packetKeys(0x21426a48,0x5c505d6a,0x046d06ad);
#endif
// 2013-12-04dRagexeRE, 2013-12-04eRagexe, 2013-12-04eRagexeRE
#if PACKETVER == 20131204
- packetKeys(0x792760B2,0x5AF45387,0x36165603);
+ packetKeys(0x792760b2,0x5af45387,0x36165603);
#endif
// 2013-12-11cRagexe, 2013-12-11cRagexeRE, 2013-12-11dRagexe, 2013-12-11eRagexeRE
#if PACKETVER == 20131211
- packetKeys(0x55B0394E,0x4D341FF2,0x60BC1DC3);
+ packetKeys(0x55b0394e,0x4d341ff2,0x60bc1dc3);
#endif
// 2013-12-18aRagexeRE, 2013-12-18bRagexe
#if PACKETVER == 20131218
- packetKeys(0x6A596301,0x76866D0E,0x32294A45);
-#endif
-
-// 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE
-#if PACKETVER == 20131223 || \
- PACKETVER == 20140508 || \
- PACKETVER == 20140611 || \
- PACKETVER == 20150225 || \
- PACKETVER == 20180315 || \
- PACKETVER == 20180321 || \
- PACKETVER == 20180328 || \
- PACKETVER == 20180404 || \
- PACKETVER == 20180418 || \
- PACKETVER == 20180425 || \
- PACKETVER == 20180502 || \
- PACKETVER == 20180509 || \
- PACKETVER == 20180516 || \
- PACKETVER == 20180523 || \
- PACKETVER == 20180530 || \
- PACKETVER == 20180605 || \
- PACKETVER == 20180612 || \
- PACKETVER == 20180620 || \
- PACKETVER == 20180621 || \
- PACKETVER == 20180704 || \
- PACKETVER == 20180711 || \
- PACKETVER == 20180718 || \
- PACKETVER == 20180801 || \
- PACKETVER == 20180808 || \
- PACKETVER == 20180822 || \
- PACKETVER == 20180829 || \
- PACKETVER == 20180831 || \
- PACKETVER == 20180912 || \
- PACKETVER >= 20180919
- packetKeys(0x00000000,0x00000000,0x00000000);
+ packetKeys(0x6a596301,0x76866d0e,0x32294a45);
#endif
// 2013-12-23bRagexe, 2013-12-23bRagexeRE, 2013-12-23cRagexe, 2013-12-23xRagexeRE
#if PACKETVER == 20131223
- packetKeys(0x631C511C,0x111C111C,0x111C111C);
+ packetKeys(0x631c511c,0x111c111c,0x111c111c);
#endif
// 2013-12-30aRagexe, 2013-12-30aRagexeRE
#if PACKETVER == 20131230
- packetKeys(0x611B7097,0x01F957A1,0x768A0FCB);
+ packetKeys(0x611b7097,0x01f957a1,0x768a0fcb);
#endif
// 2014-01-08bRagexeRE, 2014-01-08cRagexe, 2014-01-08cRagexeRE, 2014-01-08dRagexe
#if PACKETVER == 20140108
- packetKeys(0x4A1E26F2,0x231E7EFE,0x61FE19FE);
+ packetKeys(0x4a1e26f2,0x231e7efe,0x61fe19fe);
#endif
// 2014-01-15aRagexe, 2014-01-15bRagexe, 2014-01-15cRagexe, 2014-01-15cRagexeRE, 2014-01-15dRagexeRE, 2014-01-15eRagexe, 2014-01-15eRagexeRE
#if PACKETVER == 20140115
- packetKeys(0x63224335,0x0F3A1F27,0x6D217B24);
+ packetKeys(0x63224335,0x0f3a1f27,0x6d217b24);
#endif
// 2014-01-22aRagexe, 2014-01-22aRagexeRE
#if PACKETVER == 20140122
- packetKeys(0x6123177B,0x05B42C99,0x71702594);
+ packetKeys(0x6123177b,0x05b42c99,0x71702594);
#endif
// 2014-01-29aRagexe, 2014-01-29bRagexeRE, 2014-01-29cRagexe
#if PACKETVER == 20140129
- packetKeys(0x2E52163C,0x605E518B,0x3C7A62CB);
+ packetKeys(0x2e52163c,0x605e518b,0x3c7a62cb);
#endif
// 2014-02-05bRagexe, 2014-02-05bRagexeRE
#if PACKETVER == 20140205
- packetKeys(0x63DC7BDC,0x7BDC7BDC,0x7BDC7BDC);
+ packetKeys(0x63dc7bdc,0x7bdc7bdc,0x7bdc7bdc);
#endif
// 2014-02-12aRagexe, 2014-02-12aRagexeRE
#if PACKETVER == 20140212
- packetKeys(0x46837074,0x65292E89,0x77237F9C);
+ packetKeys(0x46837074,0x65292e89,0x77237f9c);
#endif
// 2014-02-19aRagexe, 2014-02-19aRagexeRE, 2014-02-19bRagexeRE
#if PACKETVER == 20140219
- packetKeys(0x4E3C5327,0x3A6B5469,0x2CE36AED);
+ packetKeys(0x4e3c5327,0x3a6b5469,0x2ce36aed);
#endif
// 2014-02-26aRagexe, 2014-02-26aRagexeRE, 2014-02-26bRagexeRE
#if PACKETVER == 20140226
- packetKeys(0x36D71056,0x52122F5E,0x6FF76E99);
+ packetKeys(0x36d71056,0x52122f5e,0x6ff76e99);
#endif
// 2014-03-05aRagexe, 2014-03-05aRagexeRE, 2014-03-05bRagexe, 2014-03-05bRagexeRE
#if PACKETVER == 20140305
- packetKeys(0x116763F2,0x41117DAC,0x7FD13C45);
+ packetKeys(0x116763f2,0x41117dac,0x7fd13c45);
#endif
// 2014-03-12bRagexeRE, 2014-03-12dRagexe
#if PACKETVER == 20140312
- packetKeys(0x48911E4E,0x58CB2EB3,0x05232619);
+ packetKeys(0x48911e4e,0x58cb2eb3,0x05232619);
#endif
// 2014-03-19aRagexe, 2014-03-19aRagexeRE
#if PACKETVER == 20140319
- packetKeys(0x3DA44383,0x1ABB165F,0x5B6846B9);
+ packetKeys(0x3da44383,0x1abb165f,0x5b6846b9);
#endif
// 2014-03-26aRagexe, 2014-03-26cRagexeRE
#if PACKETVER == 20140326
- packetKeys(0x68E72AF6,0x27DB4C3D,0x348F2677);
+ packetKeys(0x68e72af6,0x27db4c3d,0x348f2677);
#endif
// 2014-04-02eRagexeRE, 2014-04-02fRagexe, 2014-04-02fRagexeRE, 2014-04-02gRagexe
#if PACKETVER == 20140402
- packetKeys(0x15D3271C,0x004D725B,0x111A3A37);
+ packetKeys(0x15d3271c,0x004d725b,0x111a3a37);
#endif
// 2014-04-09aRagexe, 2014-04-09aRagexeRE, 2014-04-09bRagexe
#if PACKETVER == 20140409
- packetKeys(0x7F6C390F,0x139C254C,0x7F25708C);
+ packetKeys(0x7f6c390f,0x139c254c,0x7f25708c);
#endif
// 2014-04-16aRagexe, 2014-04-16aRagexeRE, 2014-04-16bRagexe
@@ -994,464 +1054,464 @@
// 2014-04-23aRagexe, 2014-04-23aRagexeRE
#if PACKETVER == 20140423
- packetKeys(0x7E0D6B56,0x74673CD3,0x2EBA4940);
+ packetKeys(0x7e0d6b56,0x74673cd3,0x2eba4940);
#endif
// 2014-04-30aRagexe, 2014-04-30aRagexeRE
#if PACKETVER == 20140430
- packetKeys(0x400145D8,0x3FE50155,0x11624F70);
+ packetKeys(0x400145d8,0x3fe50155,0x11624f70);
#endif
// 2014-05-08bRagexe, 2014-05-08bRagexeRE
#if PACKETVER == 20140508
- packetKeys(0x087E57EC,0x25224F4A,0x024F12C6);
+ packetKeys(0x087e57ec,0x25224f4a,0x024f12c6);
#endif
// 2014-05-14bRagexe, 2014-05-14bRagexeRE, 2014-05-14cRagexeRE
#if PACKETVER == 20140514
- packetKeys(0x4BE46730,0x047926E0,0x37773BBB);
+ packetKeys(0x4be46730,0x047926e0,0x37773bbb);
#endif
// 2014-05-21aRagexeRE, 2014-05-21bRagexe
#if PACKETVER == 20140521
- packetKeys(0x14ED2D86,0x17371C33,0x2D0473C8);
+ packetKeys(0x14ed2d86,0x17371c33,0x2d0473c8);
#endif
// 2014-05-28aRagexe, 2014-05-28aRagexeRE
#if PACKETVER == 20140528
- packetKeys(0x579445EB,0x26734878,0x7C861628);
+ packetKeys(0x579445eb,0x26734878,0x7c861628);
#endif
// 2014-06-05aRagexe, 2014-06-05aRagexeRE, 2014-06-05bRagexe
#if PACKETVER == 20140605
- packetKeys(0x5ABC4223,0x04DD2636,0x0D5850E0);
+ packetKeys(0x5abc4223,0x04dd2636,0x0d5850e0);
#endif
// 2014-06-11bRagexeRE, 2014-06-11cRagexe, 2014-06-11dRagexe, 2014-06-11hRagexe, 2014-06-12aRagexe, 2014-06-13aRagexe
#if PACKETVER == 20140611 || \
PACKETVER == 20140612 || \
PACKETVER == 20140613
- packetKeys(0x4FC83479,0x3AB04D1F,0x477B4010);
+ packetKeys(0x4fc83479,0x3ab04d1f,0x477b4010);
#endif
// 2014-06-18aRagexe, 2014-06-18cRagexeRE
#if PACKETVER == 20140618
- packetKeys(0x2DB507BB,0x11BA12E7,0x7F447760);
+ packetKeys(0x2db507bb,0x11ba12e7,0x7f447760);
#endif
// 2014-06-25aRagexe, 2014-06-25aRagexeRE, 2014-06-25bRagexe
#if PACKETVER == 20140625
- packetKeys(0x09987045,0x644B1051,0x1A091CB8);
+ packetKeys(0x09987045,0x644b1051,0x1a091cb8);
#endif
// 2014-07-02aRagexe, 2014-07-02aRagexeRE
#if PACKETVER == 20140702
- packetKeys(0x5C4574F4,0x5D446386,0x48BD24C9);
+ packetKeys(0x5c4574f4,0x5d446386,0x48bd24c9);
#endif
// 2014-07-09aRagexe, 2014-07-09aRagexeRE
#if PACKETVER == 20140709
- packetKeys(0x2C7A6E92,0x324F1B85,0x29916FC2);
+ packetKeys(0x2c7a6e92,0x324f1b85,0x29916fc2);
#endif
// 2014-07-16aRagexe, 2014-07-16aRagexeRE, 2014-07-16bRagexe, 2014-07-16cRagexe
#if PACKETVER == 20140716
- packetKeys(0x0EB20408,0x6D6C4292,0x4F6E4CF3);
+ packetKeys(0x0eb20408,0x6d6c4292,0x4f6e4cf3);
#endif
// 2014-07-23aRagexe, 2014-07-23aRagexeRE, 2014-07-23bRagexe, 2014-07-23bRagexeRE
#if PACKETVER == 20140723
- packetKeys(0x42A21713,0x51CE6EAD,0x102F7B0B);
+ packetKeys(0x42a21713,0x51ce6ead,0x102f7b0b);
#endif
// 2014-07-30aRagexe, 2014-07-30bRagexeRE
#if PACKETVER == 20140730
- packetKeys(0x63CE4E53,0x04F969A3,0x690954DB);
+ packetKeys(0x63ce4e53,0x04f969a3,0x690954db);
#endif
// 2014-08-06aRagexe, 2014-08-06aRagexeRE, 2014-08-06bRagexe
#if PACKETVER == 20140806
- packetKeys(0x0D5B69AC,0x3C001F20,0x0C201420);
+ packetKeys(0x0d5b69ac,0x3c001f20,0x0c201420);
#endif
// 2014-08-13aRagexe, 2014-08-13aRagexeRE, 2014-08-13bRagexe, 2014-08-14aRagexe
#if PACKETVER == 20140813 || \
PACKETVER == 20140814
- packetKeys(0x7AD51E0A,0x28C72C46,0x210205BD);
+ packetKeys(0x7ad51e0a,0x28c72c46,0x210205bd);
#endif
// 2014-08-20aRagexe, 2014-08-20aRagexeRE
#if PACKETVER == 20140820
- packetKeys(0x374F15D0,0x64C87DEC,0x65CE2A41);
+ packetKeys(0x374f15d0,0x64c87dec,0x65ce2a41);
#endif
// 2014-08-27aRagexe, 2014-08-27aRagexeRE
#if PACKETVER == 20140827
- packetKeys(0x53814CA2,0x27DE193E,0x503E683E);
+ packetKeys(0x53814ca2,0x27de193e,0x503e683e);
#endif
// 2014-09-03aRagexe, 2014-09-03aRagexeRE
#if PACKETVER == 20140903
- packetKeys(0x2F386F34,0x0F935365,0x76A43888);
+ packetKeys(0x2f386f34,0x0f935365,0x76a43888);
#endif
// 2014-09-17aRagexe, 2014-09-17cRagexeRE
#if PACKETVER == 20140917
- packetKeys(0x180118EA,0x440134CF,0x3A99179D);
+ packetKeys(0x180118ea,0x440134cf,0x3a99179d);
#endif
// 2014-09-24bRagexeRE, 2014-09-24cRagexe, 2014-09-24cRagexeRE
#if PACKETVER == 20140924
- packetKeys(0x6F5222D8,0x593B798C,0x4CBD655E);
+ packetKeys(0x6f5222d8,0x593b798c,0x4cbd655e);
#endif
// 2014-10-01aRagexe, 2014-10-01bRagexeRE, 2014-10-01cRagexeRE
#if PACKETVER == 20141001
- packetKeys(0x6D882C11,0x7DF959E2,0x4F3F60E8);
+ packetKeys(0x6d882c11,0x7df959e2,0x4f3f60e8);
#endif
// 2014-10-08aRagexe, 2014-10-08bRagexe, 2014-10-08bRagexeRE, 2014-10-08cRagexe, 2014-10-08cRagexeRE, 2014-10-08dRagexe
#if PACKETVER == 20141008
- packetKeys(0x754365B3,0x36B326B3,0x26B326B3);
+ packetKeys(0x754365b3,0x36b326b3,0x26b326b3);
#endif
// 2014-10-15bRagexe, 2014-10-15bRagexeRE, 2014-10-15cRagexe, 2014-10-15dRagexe, 2014-10-16aRagexe, 2014-10-16aRagexeRE
#if PACKETVER == 20141015 || \
PACKETVER == 20141016
- packetKeys(0x2DFF467C,0x444B37EE,0x2C1B634F);
+ packetKeys(0x2dff467c,0x444b37ee,0x2c1b634f);
#endif
// 2014-10-22aRagexeRE, 2014-10-22bRagexe
#if PACKETVER == 20141022
- packetKeys(0x290551EA,0x2B952C75,0x2D67669B);
+ packetKeys(0x290551ea,0x2b952c75,0x2d67669b);
#endif
// 2014-10-29aRagexe, 2014-10-29aRagexeRE
#if PACKETVER == 20141029
- packetKeys(0x1AFD581D,0x2E1D4E1D,0x4E1D4E1D);
+ packetKeys(0x1afd581d,0x2e1d4e1d,0x4e1d4e1d);
#endif
// 2014-11-05aRagexe, 2014-11-05aRagexeRE, 2014-11-05bRagexe, 2014-11-05bRagexeRE
#if PACKETVER == 20141105
- packetKeys(0x7F310819,0x5FF45401,0x2D303DD9);
+ packetKeys(0x7f310819,0x5ff45401,0x2d303dd9);
#endif
// 2014-11-12aRagexeRE, 2014-11-12cRagexe, 2014-11-12dRagexe
#if PACKETVER == 20141112
- packetKeys(0x430C0C27,0x067153CF,0x5E5439A9);
+ packetKeys(0x430c0c27,0x067153cf,0x5e5439a9);
#endif
// 2014-11-19bRagexeRE, 2014-11-19dRagexe
#if PACKETVER == 20141119
- packetKeys(0x7A7E7EDE,0x24EB02E3,0x71603607);
+ packetKeys(0x7a7e7ede,0x24eb02e3,0x71603607);
#endif
// 2014-11-26aRagexe, 2014-11-26aRagexeRE, 2014-11-26bRagexe, 2014-11-26bRagexeRE, 2014-11-26cRagexe, 2014-11-26cRagexeRE, 2014-11-26dRagexe, 2014-11-26dRagexeRE, 2014-11-26eRagexeRE
#if PACKETVER == 20141126
- packetKeys(0x01E14C42,0x56D73044,0x4B3278DF);
+ packetKeys(0x01e14c42,0x56d73044,0x4b3278df);
#endif
// 2014-12-03aRagexe, 2014-12-03aRagexeRE
#if PACKETVER == 20141203
- packetKeys(0x66CB52E4,0x1EB84093,0x33563E18);
+ packetKeys(0x66cb52e4,0x1eb84093,0x33563e18);
#endif
// 2014-12-10bRagexe, 2014-12-10cRagexe, 2014-12-10cRagexeRE
#if PACKETVER == 20141210
- packetKeys(0x0B0B1DD3,0x26EF1797,0x4F40370B);
+ packetKeys(0x0b0b1dd3,0x26ef1797,0x4f40370b);
#endif
// 2014-12-17aRagexe, 2014-12-17aRagexeRE
#if PACKETVER == 20141217
- packetKeys(0x01AB478C,0x0FDE58F2,0x1DAC7303);
+ packetKeys(0x01ab478c,0x0fde58f2,0x1dac7303);
#endif
// 2014-12-23cRagexeRE, 2014-12-24aRagexe
#if PACKETVER == 20141223 || \
PACKETVER == 20141224
- packetKeys(0x2E8936E6,0x34463C46,0x67CD3885);
+ packetKeys(0x2e8936e6,0x34463c46,0x67cd3885);
#endif
// 2014-12-31aRagexe, 2014-12-31aRagexeRE
#if PACKETVER == 20141231
- packetKeys(0x154C347E,0x54B26512,0x52126A12);
+ packetKeys(0x154c347e,0x54b26512,0x52126a12);
#endif
// 2015-01-07aRagexe, 2015-01-07aRagexeRE
#if PACKETVER == 20150107
- packetKeys(0x6C494A14,0x4DDB6427,0x3E6D7B65);
+ packetKeys(0x6c494a14,0x4ddb6427,0x3e6d7b65);
#endif
// 2015-01-14aRagexe, 2015-01-14aRagexeRE, 2015-01-14bRagexe, 2015-01-14cRagexe, 2015-01-14dRagexe
#if PACKETVER == 20150114
- packetKeys(0x21C96102,0x13142934,0x1ABF4EA3);
+ packetKeys(0x21c96102,0x13142934,0x1abf4ea3);
#endif
// 2015-01-21aRagexe, 2015-01-21aRagexeRE, 2015-01-21bRagexeRE
#if PACKETVER == 20150121
- packetKeys(0x0B9D2AF5,0x658A3346,0x379E3654);
+ packetKeys(0x0b9d2af5,0x658a3346,0x379e3654);
#endif
// 2015-01-28aRagexe, 2015-01-28aRagexeRE, 2015-01-29aRagexe, 2015-01-30aRagexe
#if PACKETVER == 20150128 || \
PACKETVER == 20150129 || \
PACKETVER == 20150130
- packetKeys(0x77CA2D55,0x28B608F0,0x75B47957);
+ packetKeys(0x77ca2d55,0x28b608f0,0x75b47957);
#endif
// 2015-02-04aRagexe, 2015-02-04cRagexeRE
#if PACKETVER == 20150204
- packetKeys(0x134529DB,0x5B4F6CEF,0x29EF11EF);
+ packetKeys(0x134529db,0x5b4f6cef,0x29ef11ef);
#endif
// 2015-02-11aRagexe, 2015-02-11aRagexeRE
#if PACKETVER == 20150211
- packetKeys(0x33911A25,0x1E6945FD,0x7385623A);
+ packetKeys(0x33911a25,0x1e6945fd,0x7385623a);
#endif
// 2015-02-17aRagexe, 2015-02-17aRagexeRE
#if PACKETVER == 20150217
- packetKeys(0x731B731B,0x731B731B,0x731B731B);
+ packetKeys(0x731b731b,0x731b731b,0x731b731b);
#endif
// 2015-02-25aRagexeRE, 2015-02-25bRagexeRE, 2015-02-25cRagexeRE, 2015-02-25dRagexeRE, 2015-02-25eRagexe, 2015-02-25eRagexeRE, 2015-02-25fRagexe, 2015-02-25gRagexe, 2015-02-25iRagexe, 2015-02-25jRagexe, 2015-02-26aRagexe, 2015-02-26aRagexeRE
#if PACKETVER == 20150225 || \
PACKETVER == 20150226
- packetKeys(0x57FD4B7B,0x19CC16FB,0x0D255D72);
+ packetKeys(0x57fd4b7b,0x19cc16fb,0x0d255d72);
#endif
// 2015-03-04aRagexe, 2015-03-04aRagexeRE, 2015-03-04bRagexeRE
#if PACKETVER == 20150304
- packetKeys(0x1A657B1C,0x7E1806E7,0x55396A5C);
+ packetKeys(0x1a657b1c,0x7e1806e7,0x55396a5c);
#endif
// 2015-03-11aRagexe, 2015-03-11aRagexeRE, 2015-03-11bRagexe, 2015-03-11bRagexeRE
#if PACKETVER == 20150311
- packetKeys(0x48C45D97,0x06CE09B0,0x5836642F);
+ packetKeys(0x48c45d97,0x06ce09b0,0x5836642f);
#endif
// 2015-03-18aRagexe, 2015-03-18aRagexeRE, 2015-03-18bRagexe, 2015-03-18bRagexeRE, 2015-03-18cRagexeRE
#if PACKETVER == 20150318
- packetKeys(0x1B3738E7,0x0AD4238F,0x7D252A1F);
+ packetKeys(0x1b3738e7,0x0ad4238f,0x7d252a1f);
#endif
// 2015-03-25aRagexe, 2015-03-25bRagexeRE, 2015-03-25cRagexeRE
#if PACKETVER == 20150325
- packetKeys(0x68F62B8C,0x337C3468,0x38FC0AC7);
+ packetKeys(0x68f62b8c,0x337c3468,0x38fc0ac7);
#endif
// 2015-04-01aRagexe, 2015-04-01bRagexeRE
#if PACKETVER == 20150401
- packetKeys(0x207F3A08,0x57E6160C,0x02A60382);
+ packetKeys(0x207f3a08,0x57e6160c,0x02a60382);
#endif
// 2015-04-08aRagexe, 2015-04-08aRagexeRE
#if PACKETVER == 20150408
- packetKeys(0x39812C9D,0x23DA516E,0x59A33DD2);
+ packetKeys(0x39812c9d,0x23da516e,0x59a33dd2);
#endif
// 2015-04-15aRagexe, 2015-04-15aRagexeRE
#if PACKETVER == 20150415
- packetKeys(0x7EC44F6A,0x7DE57139,0x60DA5436);
+ packetKeys(0x7ec44f6a,0x7de57139,0x60da5436);
#endif
// 2015-04-22aRagexe, 2015-04-22aRagexeRE
#if PACKETVER == 20150422
- packetKeys(0x10D22CE2,0x69E279E2,0x79E279E2);
+ packetKeys(0x10d22ce2,0x69e279e2,0x79e279e2);
#endif
// 2015-04-29aRagexe, 2015-04-29aRagexeRE
#if PACKETVER == 20150429
- packetKeys(0x2BF61A71,0x565D5DDF,0x0FB90019);
+ packetKeys(0x2bf61a71,0x565d5ddf,0x0fb90019);
#endif
// 2015-05-07bRagexe, 2015-05-07bRagexeRE, 2015-05-07cRagexe
#if PACKETVER == 20150507
- packetKeys(0x55B54373,0x58967821,0x67F41832);
+ packetKeys(0x55b54373,0x58967821,0x67f41832);
#endif
// 2015-05-13aRagexe, 2015-05-13aRagexeRE
#if PACKETVER == 20150513
- packetKeys(0x62C86D09,0x75944F17,0x112C133D);
+ packetKeys(0x62c86d09,0x75944f17,0x112c133d);
#endif
// 2015-05-20aRagexe, 2015-05-20aRagexeRE
#if PACKETVER == 20150520
- packetKeys(0x17430238,0x44DE585F,0x56A40616);
+ packetKeys(0x17430238,0x44de585f,0x56a40616);
#endif
// 2015-05-27aRagexe, 2015-05-27aRagexeRE
#if PACKETVER == 20150527
- packetKeys(0x35AE7BAE,0x3BAE3BAE,0x3BAE3BAE);
+ packetKeys(0x35ae7bae,0x3bae3bae,0x3bae3bae);
#endif
// 2015-06-03aRagexe, 2015-06-03bRagexeRE
#if PACKETVER == 20150603
- packetKeys(0x1DDD245D,0x309446E0,0x58E53F1F);
+ packetKeys(0x1ddd245d,0x309446e0,0x58e53f1f);
#endif
// 2015-06-10aRagexe, 2015-06-10aRagexeRE
#if PACKETVER == 20150610
- packetKeys(0x2FC406D3,0x7B3E32F5,0x02B80B47);
+ packetKeys(0x2fc406d3,0x7b3e32f5,0x02b80b47);
#endif
// 2015-06-17aRagexe, 2015-06-17aRagexeRE, 2015-06-18aRagexe, 2015-06-18aRagexeRE
#if PACKETVER == 20150617 || \
PACKETVER == 20150618
- packetKeys(0x250F7E09,0x25416076,0x029A780E);
+ packetKeys(0x250f7e09,0x25416076,0x029a780e);
#endif
// 2015-06-24aRagexe, 2015-06-24aRagexeRE
#if PACKETVER == 20150624
- packetKeys(0x440B0E24,0x1BEA7A4C,0x2C646784);
+ packetKeys(0x440b0e24,0x1bea7a4c,0x2c646784);
#endif
// 2015-07-01bRagexe, 2015-07-01bRagexeRE, 2015-07-02aRagexe
#if PACKETVER == 20150701 || \
PACKETVER == 20150702
- packetKeys(0x4DD55F9B,0x70C67B03,0x78C60DB6);
+ packetKeys(0x4dd55f9b,0x70c67b03,0x78c60db6);
#endif
// 2015-07-08bRagexeRE, 2015-07-08cRagexe, 2015-07-08cRagexeRE, 2015-07-08dRagexeRE
#if PACKETVER == 20150708
- packetKeys(0x451C5E19,0x5661750B,0x2F4644AC);
+ packetKeys(0x451c5e19,0x5661750b,0x2f4644ac);
#endif
// 2015-07-15aRagexe, 2015-07-15aRagexeRE
#if PACKETVER == 20150715
- packetKeys(0x1F805483,0x67745585,0x7FCE189C);
+ packetKeys(0x1f805483,0x67745585,0x7fce189c);
#endif
// 2015-07-22bRagexe, 2015-07-22bRagexeRE
#if PACKETVER == 20150722
- packetKeys(0x41FA53D4,0x2CF044E2,0x663A3F1D);
+ packetKeys(0x41fa53d4,0x2cf044e2,0x663a3f1d);
#endif
// 2015-07-29aRagexe, 2015-07-29aRagexeRE
#if PACKETVER == 20150729
- packetKeys(0x08EE40A9,0x206F3D7F,0x0AE37339);
+ packetKeys(0x08ee40a9,0x206f3d7f,0x0ae37339);
#endif
// 2015-08-05aRagexe, 2015-08-05dRagexeRE
#if PACKETVER == 20150805
- packetKeys(0x1C3F243F,0x243F243F,0x243F243F);
+ packetKeys(0x1c3f243f,0x243f243f,0x243f243f);
#endif
// 2015-08-12aRagexe, 2015-08-12aRagexeRE
#if PACKETVER == 20150812
- packetKeys(0x0B6F64A8,0x5BCC47EC,0x00EC08EC);
+ packetKeys(0x0b6f64a8,0x5bcc47ec,0x00ec08ec);
#endif
// 2015-08-19aRagexe, 2015-08-19aRagexeRE, 2015-08-19bRagexeRE
#if PACKETVER == 20150819
- packetKeys(0x1A2400E0,0x736E5686,0x10F315D5);
+ packetKeys(0x1a2400e0,0x736e5686,0x10f315d5);
#endif
// 2015-08-26aRagexe, 2015-08-26aRagexeRE, 2015-08-26bRagexe, 2015-08-26bRagexeRE
#if PACKETVER == 20150826
- packetKeys(0x77883C56,0x1829359F,0x0DE635B6);
+ packetKeys(0x77883c56,0x1829359f,0x0de635b6);
#endif
// 2015-09-02aRagexe, 2015-09-02aRagexeRE
#if PACKETVER == 20150902
- packetKeys(0x4EDB18C1,0x6B9355BA,0x38AA6239);
+ packetKeys(0x4edb18c1,0x6b9355ba,0x38aa6239);
#endif
// 2015-09-09aRagexe, 2015-09-09aRagexeRE
#if PACKETVER == 20150909
- packetKeys(0x19AB2BF0,0x04754299,0x48770736);
+ packetKeys(0x19ab2bf0,0x04754299,0x48770736);
#endif
// 2015-09-16aRagexe, 2015-09-16cRagexe, 2015-09-16cRagexeRE
#if PACKETVER == 20150916
- packetKeys(0x17F83A19,0x116944F4,0x1CC541E9);
+ packetKeys(0x17f83a19,0x116944f4,0x1cc541e9);
#endif
// 2015-09-23bRagexe, 2015-09-23bRagexeRE, 2015-09-23cRagexe, 2015-09-23dRagexe, 2015-09-23eRagexe, 2015-09-23eRagexeRE, 2015-09-23fRagexe, 2015-09-23fRagexeRE
#if PACKETVER == 20150923
- packetKeys(0x765742B9,0x22D61C2F,0x7DA94FB2);
+ packetKeys(0x765742b9,0x22d61c2f,0x7da94fb2);
#endif
// 2015-10-01aRagexe, 2015-10-01bRagexeRE
#if PACKETVER == 20151001
- packetKeys(0x5CFF4561,0x32514AD1,0x06D126D1);
+ packetKeys(0x5cff4561,0x32514ad1,0x06d126d1);
#endif
// 2015-10-07aRagexe, 2015-10-07aRagexeRE
#if PACKETVER == 20151007
- packetKeys(0x3C6447A8,0x032170D7,0x6490476C);
+ packetKeys(0x3c6447a8,0x032170d7,0x6490476c);
#endif
// 2015-10-14bRagexe, 2015-10-14bRagexeRE
#if PACKETVER == 20151014
- packetKeys(0x402728A8,0x5D0E309F,0x240018FD);
+ packetKeys(0x402728a8,0x5d0e309f,0x240018fd);
#endif
// 2015-10-21aRagexe, 2015-10-21aRagexeRE, 2015-10-22aRagexe, 2015-10-22aRagexeRE
#if PACKETVER == 20151021 || \
PACKETVER == 20151022
- packetKeys(0x0311104D,0x46C326D6,0x00E82720);
+ packetKeys(0x0311104d,0x46c326d6,0x00e82720);
#endif
// 2015-10-28bRagexeRE, 2015-10-28bRagexeRE_2, 2015-10-28cRagexe, 2015-10-28cRagexeRE, 2015-10-28dRagexe, 2015-10-28dRagexeRE, 2015-10-29aRagexe, 2015-10-29aRagexeRE
#if PACKETVER == 20151028 || \
PACKETVER == 20151029
- packetKeys(0x45B945B9,0x45B945B9,0x45B945B9);
+ packetKeys(0x45b945b9,0x45b945b9,0x45b945b9);
#endif
// 2015-11-04aRagexe, 2015-11-04aRagexeRE
#if PACKETVER == 20151104
- packetKeys(0x4C17382A,0x7ED174C9,0x29961E4F);
+ packetKeys(0x4c17382a,0x7ed174c9,0x29961e4f);
#endif
// 2015-11-11aRagexe, 2015-11-11aRagexeRE, 2015-11-11bRagexe
#if PACKETVER == 20151111
- packetKeys(0x46097C77,0x5F193871,0x29140A21);
+ packetKeys(0x46097c77,0x5f193871,0x29140a21);
#endif
// 2015-11-18aRagexe, 2015-11-18aRagexeRE
#if PACKETVER == 20151118
- packetKeys(0x734C3241,0x6E846F34,0x731C06D6);
+ packetKeys(0x734c3241,0x6e846f34,0x731c06d6);
#endif
// 2015-11-25bRagexe, 2015-11-25bRagexeRE, 2015-11-25cRagexeRE, 2015-11-25dRagexe, 2015-11-25dRagexeRE
#if PACKETVER == 20151125
- packetKeys(0x237446C0,0x5EFB343A,0x0EDF06C5);
+ packetKeys(0x237446c0,0x5efb343a,0x0edf06c5);
#endif
// 2015-12-02aRagexe, 2015-12-02bRagexeRE
#if PACKETVER == 20151202
- packetKeys(0x4EDE52DE,0x52DE52DE,0x52DE52DE);
+ packetKeys(0x4ede52de,0x52de52de,0x52de52de);
#endif
// 2015-12-09aRagexe, 2015-12-09aRagexeRE
#if PACKETVER == 20151209
- packetKeys(0x652C5898,0x7A351FB3,0x67EA2886);
+ packetKeys(0x652c5898,0x7a351fb3,0x67ea2886);
#endif
// 2015-12-16aRagexe, 2015-12-16aRagexeRE
#if PACKETVER == 20151216
- packetKeys(0x25DD643D,0x61AC39DE,0x77A8206D);
+ packetKeys(0x25dd643d,0x61ac39de,0x77a8206d);
#endif
// 2015-12-23bRagexe, 2015-12-23bRagexeRE
#if PACKETVER == 20151223
- packetKeys(0x347D68D0,0x2C705320,0x7B4A199D);
+ packetKeys(0x347d68d0,0x2c705320,0x7b4a199d);
#endif
// 2015-12-30aRagexe, 2015-12-30aRagexeRE
#if PACKETVER == 20151230
- packetKeys(0x54C51241,0x33883499,0x3CDA35F0);
+ packetKeys(0x54c51241,0x33883499,0x3cda35f0);
#endif
// 2016-01-06aRagexe, 2016-01-06aRagexeRE
#if PACKETVER == 20160106
- packetKeys(0x40520265,0x33FE26FC,0x7136294F);
+ packetKeys(0x40520265,0x33fe26fc,0x7136294f);
#endif
// 2016-01-13aRagexe, 2016-01-13aRagexeRE, 2016-01-13bRagexe, 2016-01-13bRagexeRE, 2016-01-13bRagexeRE_2, 2016-01-13bRagexe_2, 2016-01-13cRagexeRE
#if PACKETVER == 20160113
- packetKeys(0x18005C4B,0x19A94A72,0x73F678EC);
+ packetKeys(0x18005c4b,0x19a94a72,0x73f678ec);
#endif
// 2016-01-20aRagexe, 2016-01-20aRagexeRE
@@ -1461,549 +1521,549 @@
// 2016-01-27aRagexeRE, 2016-01-27aRagexeRE_2, 2016-01-27bRagexeRE, 2016-01-27cRagexe, 2016-01-27dRagexe
#if PACKETVER == 20160127
- packetKeys(0x6B1E7146,0x612C47E6,0x274E56EE);
+ packetKeys(0x6b1e7146,0x612c47e6,0x274e56ee);
#endif
// 2016-02-03aRagexe, 2016-02-03aRagexeRE
#if PACKETVER == 20160203
- packetKeys(0x3E1411AF,0x6C744497,0x7CFA1BDE);
+ packetKeys(0x3e1411af,0x6c744497,0x7cfa1bde);
#endif
// 2016-02-11aRagexe, 2016-02-11aRagexeRE
#if PACKETVER == 20160211
- packetKeys(0x613813EA,0x05251DAB,0x1FD35E33);
+ packetKeys(0x613813ea,0x05251dab,0x1fd35e33);
#endif
// 2016-02-17aRagexe, 2016-02-17aRagexeRE, 2016-02-17bRagexeRE, 2016-02-17bRagexeRE_2, 2016-02-17cRagexeRE
#if PACKETVER == 20160217
- packetKeys(0x25895A8E,0x09421C19,0x763A2D7A);
+ packetKeys(0x25895a8e,0x09421c19,0x763a2d7a);
#endif
// 2016-02-24aRagexe, 2016-02-24aRagexeRE, 2016-02-24bRagexeRE
#if PACKETVER == 20160224
- packetKeys(0x7088019A,0x13471F02,0x42356A7D);
+ packetKeys(0x7088019a,0x13471f02,0x42356a7d);
#endif
// 2016-03-02bRagexe, 2016-03-02bRagexeRE
#if PACKETVER == 20160302
- packetKeys(0x7B4441B9,0x5BBC63AF,0x45DA0E71);
+ packetKeys(0x7b4441b9,0x5bbc63af,0x45da0e71);
#endif
// 2016-03-09aRagexeRE, 2016-03-09cRagexe
#if PACKETVER == 20160309
- packetKeys(0x21587520,0x353A7706,0x1B722B25);
+ packetKeys(0x21587520,0x353a7706,0x1b722b25);
#endif
// 2016-03-16aRagexe, 2016-03-16aRagexeRE, 2016-03-18aRagexe
#if PACKETVER == 20160316 || \
PACKETVER == 20160318
- packetKeys(0x62363E36,0x3E363E36,0x3E363E36);
+ packetKeys(0x62363e36,0x3e363e36,0x3e363e36);
#endif
// 2016-03-23aRagexe, 2016-03-23aRagexeRE, 2016-03-23bRagexe, 2016-03-23bRagexeRE
#if PACKETVER == 20160323
- packetKeys(0x73E35A83,0x62142FA8,0x12BA36BD);
+ packetKeys(0x73e35a83,0x62142fa8,0x12ba36bd);
#endif
// 2016-03-30aRagexe, 2016-03-30aRagexeRE, 2016-03-30bRagexe
#if PACKETVER == 20160330
- packetKeys(0x02050940,0x545336FF,0x7E7D4902);
+ packetKeys(0x02050940,0x545336ff,0x7e7d4902);
#endif
// 2016-04-06aRagexe, 2016-04-06aRagexeRE, 2016-04-06bRagexe
#if PACKETVER == 20160406
- packetKeys(0x568611EA,0x32457D8D,0x2B020477);
+ packetKeys(0x568611ea,0x32457d8d,0x2b020477);
#endif
// 2016-04-14aRagexe, 2016-04-14aRagexeRE, 2016-04-14bRagexe, 2016-04-14bRagexeRE, 2016-04-14bRagexe_2, 2016-04-14cRagexe
#if PACKETVER == 20160414
- packetKeys(0x31BD479A,0x40C61398,0x397C1A80);
+ packetKeys(0x31bd479a,0x40c61398,0x397c1a80);
#endif
// 2016-04-20aRagexeRE, 2016-04-20cRagexe
#if PACKETVER == 20160420
- packetKeys(0x67D2163A,0x3068215B,0x4835474D);
+ packetKeys(0x67d2163a,0x3068215b,0x4835474d);
#endif
// 2016-04-27aRagexe, 2016-04-27aRagexeRE
#if PACKETVER == 20160427
- packetKeys(0x12DC378E,0x4E3E7EBE,0x0ABE2ABE);
+ packetKeys(0x12dc378e,0x4e3e7ebe,0x0abe2abe);
#endif
// 2016-05-04aRagexe, 2016-05-04aRagexeRE
#if PACKETVER == 20160504
- packetKeys(0x09E0544C,0x0231251D,0x2F4E195F);
+ packetKeys(0x09e0544c,0x0231251d,0x2f4e195f);
#endif
// 2016-05-11aRagexe, 2016-05-11aRagexeRE, 2016-05-11bRagexeRE
#if PACKETVER == 20160511
- packetKeys(0x3C666FE2,0x27E84E3E,0x53E11BA5);
+ packetKeys(0x3c666fe2,0x27e84e3e,0x53e11ba5);
#endif
// 2016-05-18aRagexe, 2016-05-18aRagexeRE
#if PACKETVER == 20160518
- packetKeys(0x57DB7CA1,0x1FEA1629,0x26DD244D);
+ packetKeys(0x57db7ca1,0x1fea1629,0x26dd244d);
#endif
// 2016-05-25aRagexe, 2016-05-25aRagexeRE, 2016-05-26aRagexe
#if PACKETVER == 20160525 || \
PACKETVER == 20160526
- packetKeys(0x485C45B6,0x47DC6192,0x76B34A36);
+ packetKeys(0x485c45b6,0x47dc6192,0x76b34a36);
#endif
// 2016-06-01aRagexe, 2016-06-01aRagexeRE
#if PACKETVER == 20160601
- packetKeys(0x3DAD32C4,0x59F001BE,0x73F65E56);
+ packetKeys(0x3dad32c4,0x59f001be,0x73f65e56);
#endif
// 2016-06-08aRagexe, 2016-06-08aRagexeRE, 2016-06-08bRagexe, 2016-06-08bRagexeRE, 2016-06-09aRagexe
#if PACKETVER == 20160608 || \
PACKETVER == 20160609
- packetKeys(0x11D74609,0x77C43E8A,0x44290F53);
+ packetKeys(0x11d74609,0x77c43e8a,0x44290f53);
#endif
// 2016-06-15aRagexe, 2016-06-15aRagexeRE
#if PACKETVER == 20160615
- packetKeys(0x062C5C26,0x6CF47E82,0x4DD53480);
+ packetKeys(0x062c5c26,0x6cf47e82,0x4dd53480);
#endif
// 2016-06-22aRagexe, 2016-06-22aRagexeRE
#if PACKETVER == 20160622
- packetKeys(0x426548AB,0x5C0F5DD4,0x03022710);
+ packetKeys(0x426548ab,0x5c0f5dd4,0x03022710);
#endif
// 2016-06-29aRagexe, 2016-06-29aRagexeRE, 2016-06-30aRagexe, 2016-06-30aRagexeRE
#if PACKETVER == 20160629 || \
PACKETVER == 20160630
- packetKeys(0x0DF31CCC,0x54281606,0x5C4C6855);
+ packetKeys(0x0df31ccc,0x54281606,0x5c4c6855);
#endif
// 2016-07-06bRagexe, 2016-07-06cRagexeRE
#if PACKETVER == 20160706
- packetKeys(0x33A766D0,0x743F04F8,0x0FA0276C);
+ packetKeys(0x33a766d0,0x743f04f8,0x0fa0276c);
#endif
// 2016-07-13aRagexe, 2016-07-13aRagexeRE, 2016-07-13bRagexe, 2016-07-13bRagexeRE, 2016-07-13cRagexe, 2016-07-13dRagexe
#if PACKETVER == 20160713
- packetKeys(0x714F2495,0x7DDC6F32,0x3FD8533D);
+ packetKeys(0x714f2495,0x7ddc6f32,0x3fd8533d);
#endif
// 2016-07-20aRagexe, 2016-07-20aRagexeRE, 2016-07-20bRagexe, 2016-07-20bRagexeRE
#if PACKETVER == 20160720
- packetKeys(0x4F8A19C0,0x2D8E085C,0x37BB67D6);
+ packetKeys(0x4f8a19c0,0x2d8e085c,0x37bb67d6);
#endif
// 2016-07-27aRagexe, 2016-07-27aRagexeRE, 2016-07-27bRagexe, 2016-07-27bRagexeRE
#if PACKETVER == 20160727
- packetKeys(0x3C6952AB,0x26E4077F,0x37E25DF7);
+ packetKeys(0x3c6952ab,0x26e4077f,0x37e25df7);
#endif
// 2016-08-03bRagexe, 2016-08-03bRagexeRE
#if PACKETVER == 20160803
- packetKeys(0x67F438C2,0x512A4EB7,0x2D353182);
+ packetKeys(0x67f438c2,0x512a4eb7,0x2d353182);
#endif
// 2016-08-10aRagexe, 2016-08-10aRagexeRE
#if PACKETVER == 20160810
- packetKeys(0x2F252886,0x242234A2,0x48BC5032);
+ packetKeys(0x2f252886,0x242234a2,0x48bc5032);
#endif
// 2016-08-17aRagexe, 2016-08-17aRagexeRE
#if PACKETVER == 20160817
- packetKeys(0x675E6900,0x3F8E1D16,0x58D650E5);
+ packetKeys(0x675e6900,0x3f8e1d16,0x58d650e5);
#endif
// 2016-08-24aRagexe, 2016-08-24aRagexeRE
#if PACKETVER == 20160824
- packetKeys(0x2FA92FA9,0x2FA92FA9,0x2FA92FA9);
+ packetKeys(0x2fa92fa9,0x2fa92fa9,0x2fa92fa9);
#endif
// 2016-08-31aRagexe, 2016-08-31aRagexeRE, 2016-08-31bRagexe, 2016-08-31bRagexeRE
#if PACKETVER == 20160831
- packetKeys(0x564E13B0,0x7F680549,0x382D273B);
+ packetKeys(0x564e13b0,0x7f680549,0x382d273b);
#endif
// 2016-09-07aRagexe, 2016-09-07aRagexeRE
#if PACKETVER == 20160907
- packetKeys(0x32E5237D,0x57BD4DBD,0x5DBD5DBD);
+ packetKeys(0x32e5237d,0x57bd4dbd,0x5dbd5dbd);
#endif
// 2016-09-13aRagexe, 2016-09-13aRagexeRE
#if PACKETVER == 20160913
- packetKeys(0x7C79748F,0x1AA03B1D,0x6EAC4747);
+ packetKeys(0x7c79748f,0x1aa03b1d,0x6eac4747);
#endif
// 2016-09-21aRagexe, 2016-09-21bRagexeRE
#if PACKETVER == 20160921
- packetKeys(0x11CD15CD,0x15CD15CD,0x15CD15CD);
+ packetKeys(0x11cd15cd,0x15cd15cd,0x15cd15cd);
#endif
// 2016-09-28cRagexe, 2016-09-28cRagexeRE, 2016-09-28dRagexeRE
#if PACKETVER == 20160928
- packetKeys(0x2F8C67F5,0x22D42C38,0x57513774);
+ packetKeys(0x2f8c67f5,0x22d42c38,0x57513774);
#endif
// 2016-10-05aRagexe, 2016-10-05aRagexeRE
#if PACKETVER == 20161005
- packetKeys(0x5BAE21F8,0x021E2FFC,0x3BEB7C31);
+ packetKeys(0x5bae21f8,0x021e2ffc,0x3beb7c31);
#endif
// 2016-10-12aRagexe, 2016-10-12aRagexeRE
#if PACKETVER == 20161012
- packetKeys(0x5E2311F2,0x14FD012C,0x76EB64F6);
+ packetKeys(0x5e2311f2,0x14fd012c,0x76eb64f6);
#endif
// 2016-10-19aRagexe, 2016-10-19aRagexeRE
#if PACKETVER == 20161019
- packetKeys(0x34882F11,0x7C870E70,0x7E61350D);
+ packetKeys(0x34882f11,0x7c870e70,0x7e61350d);
#endif
// 2016-10-26bRagexe, 2016-10-26bRagexeRE, 2016-10-26cRagexe, 2016-10-26cRagexeRE
#if PACKETVER == 20161026
- packetKeys(0x2CB86AE6,0x7D12660E,0x1B004DEB);
+ packetKeys(0x2cb86ae6,0x7d12660e,0x1b004deb);
#endif
// 2016-11-02aRagexe, 2016-11-02aRagexeRE, 2016-11-03aRagexe, 2016-11-03aRagexeRE
#if PACKETVER == 20161102 || \
PACKETVER == 20161103
- packetKeys(0x76725C17,0x72FE4EC1,0x07A91BFD);
+ packetKeys(0x76725c17,0x72fe4ec1,0x07a91bfd);
#endif
// 2016-11-09aRagexe, 2016-11-09aRagexeRE, 2016-11-09bRagexe, 2016-11-09bRagexeRE, 2016-11-09cRagexeRE, 2016-11-09dRagexeRE
#if PACKETVER == 20161109
- packetKeys(0x0A5277C0,0x2DB17506,0x0E8F26DA);
+ packetKeys(0x0a5277c0,0x2db17506,0x0e8f26da);
#endif
// 2016-11-16aRagexe, 2016-11-16bRagexeRE, 2016-11-16cRagexeRE
#if PACKETVER == 20161116
- packetKeys(0x780C5C3F,0x15E92272,0x2BA770C5);
+ packetKeys(0x780c5c3f,0x15e92272,0x2ba770c5);
#endif
// 2016-11-23aRagexe, 2016-11-23aRagexeRE
#if PACKETVER == 20161123
- packetKeys(0x66FF559F,0x00D3535B,0x236246F7);
+ packetKeys(0x66ff559f,0x00d3535b,0x236246f7);
#endif
// 2016-11-30aRagexe, 2016-11-30aRagexeRE, 2016-11-30bRagexe, 2016-11-30bRagexeRE
#if PACKETVER == 20161130
- packetKeys(0x2ED80296,0x0D837373,0x20266F9A);
+ packetKeys(0x2ed80296,0x0d837373,0x20266f9a);
#endif
// 2016-12-07cRagexe, 2016-12-07cRagexeRE, 2016-12-07dRagexeRE, 2016-12-07eRagexe, 2016-12-07eRagexeRE
#if PACKETVER == 20161207
- packetKeys(0x52D267AA,0x4FE42156,0x1292153E);
+ packetKeys(0x52d267aa,0x4fe42156,0x1292153e);
#endif
// 2016-12-14bRagexe, 2016-12-14bRagexeRE, 2016-12-14cRagexe, 2016-12-14cRagexeRE
#if PACKETVER == 20161214
- packetKeys(0x4DDE217B,0x07863AE0,0x5B591656);
+ packetKeys(0x4dde217b,0x07863ae0,0x5b591656);
#endif
// 2016-12-21aRagexe, 2016-12-21aRagexeRE, 2016-12-21bRagexe, 2016-12-21bRagexeRE, 2016-12-21cRagexeRE, 2016-12-21dRagexeRE
#if PACKETVER == 20161221
- packetKeys(0x69CB4F56,0x793C165E,0x673A2354);
+ packetKeys(0x69cb4f56,0x793c165e,0x673a2354);
#endif
// 2016-12-28aRagexe, 2016-12-28aRagexeRE
#if PACKETVER == 20161228
- packetKeys(0x09366971,0x005672F1,0x6F3712AE);
+ packetKeys(0x09366971,0x005672f1,0x6f3712ae);
#endif
// 2017-01-04aRagexe, 2017-01-04bRagexeRE
#if PACKETVER == 20170104
- packetKeys(0x44416BC3,0x6C8D1817,0x072D75D5);
+ packetKeys(0x44416bc3,0x6c8d1817,0x072d75d5);
#endif
// 2017-01-11aRagexe, 2017-01-11aRagexeRE
#if PACKETVER == 20170111
- packetKeys(0x19B637F9,0x0E9C378A,0x41673186);
+ packetKeys(0x19b637f9,0x0e9c378a,0x41673186);
#endif
// 2017-01-18aRagexe, 2017-01-18aRagexeRE
#if PACKETVER == 20170118
- packetKeys(0x456B36EB,0x15EB34B0,0x18C42E43);
+ packetKeys(0x456b36eb,0x15eb34b0,0x18c42e43);
#endif
// 2017-01-25aRagexe, 2017-01-25aRagexeRE
#if PACKETVER == 20170125
- packetKeys(0x066E04FE,0x3004224A,0x04FF0458);
+ packetKeys(0x066e04fe,0x3004224a,0x04ff0458);
#endif
// 2017-02-01aRagexe, 2017-02-01aRagexeRE
#if PACKETVER == 20170201
- packetKeys(0x2011228E,0x00453005,0x628E7F0A);
+ packetKeys(0x2011228e,0x00453005,0x628e7f0a);
#endif
// 2017-02-08aRagexeRE, 2017-02-08bRagexe, 2017-02-08bRagexeRE
#if PACKETVER == 20170208
- packetKeys(0x6A764E5F,0x0609570D,0x28AE07FA);
+ packetKeys(0x6a764e5f,0x0609570d,0x28ae07fa);
#endif
// 2017-02-15aRagexe, 2017-02-15aRagexeRE
#if PACKETVER == 20170215
- packetKeys(0x50C01315,0x51012A42,0x679E16C3);
+ packetKeys(0x50c01315,0x51012a42,0x679e16c3);
#endif
// 2017-02-22aRagexe, 2017-02-22aRagexeRE
#if PACKETVER == 20170222
- packetKeys(0x5A242F2F,0x6C556187,0x73C022CB);
+ packetKeys(0x5a242f2f,0x6c556187,0x73c022cb);
#endif
// 2017-02-28aRagexe, 2017-02-28aRagexeRE, 2017-02-28bRagexe
#if PACKETVER == 20170228
- packetKeys(0x771D4F2B,0x20EF1F4C,0x0D5135C8);
+ packetKeys(0x771d4f2b,0x20ef1f4c,0x0d5135c8);
#endif
// 2017-03-08aRagexe, 2017-03-08bRagexeRE
#if PACKETVER == 20170308
- packetKeys(0x653470A9,0x6B316A71,0x5C712C71);
+ packetKeys(0x653470a9,0x6b316a71,0x5c712c71);
#endif
// 2017-03-15cRagexe, 2017-03-15cRagexeRE
#if PACKETVER == 20170315
- packetKeys(0x399A0856,0x56642A94,0x7F77157D);
+ packetKeys(0x399a0856,0x56642a94,0x7f77157d);
#endif
// 2017-03-22aRagexe, 2017-03-22aRagexeRE, 2017-03-22bRagexe, 2017-03-22bRagexeRE
#if PACKETVER == 20170322
- packetKeys(0x2050167B,0x01731233,0x40337033);
+ packetKeys(0x2050167b,0x01731233,0x40337033);
#endif
// 2017-03-29bRagexe, 2017-03-29cRagexe, 2017-03-29cRagexeRE, 2017-03-29dRagexeRE
#if PACKETVER == 20170329
- packetKeys(0x18B31A80,0x1B0B1D56,0x16857D6A);
+ packetKeys(0x18b31a80,0x1b0b1d56,0x16857d6a);
#endif
// 2017-04-05bRagexe, 2017-04-05bRagexeRE, 2017-04-05cRagexe, 2017-04-05cRagexeRE
#if PACKETVER == 20170405
- packetKeys(0x1FDE7DAC,0x2F9F5B63,0x3F2062AF);
+ packetKeys(0x1fde7dac,0x2f9f5b63,0x3f2062af);
#endif
// 2017-04-12aRagexe, 2017-04-12aRagexeRE
#if PACKETVER == 20170412
- packetKeys(0x39223393,0x5C847779,0x10217985);
+ packetKeys(0x39223393,0x5c847779,0x10217985);
#endif
// 2017-04-19aRagexe, 2017-04-19bRagexeRE
#if PACKETVER == 20170419
- packetKeys(0x1F8F4B3F,0x2E481F03,0x39ED4178);
+ packetKeys(0x1f8f4b3f,0x2e481f03,0x39ed4178);
#endif
// 2017-04-26bRagexe, 2017-04-26dRagexeRE
#if PACKETVER == 20170426
- packetKeys(0x167642A7,0x1DEC3D26,0x6D046D4C);
+ packetKeys(0x167642a7,0x1dec3d26,0x6d046d4c);
#endif
// 2017-05-02aRagexe, 2017-05-02bRagexe, 2017-05-02dRagexeRE
#if PACKETVER == 20170502
- packetKeys(0x05224194,0x466D4204,0x31F02EE0);
+ packetKeys(0x05224194,0x466d4204,0x31f02ee0);
#endif
// 2017-05-17aRagexe, 2017-05-17aRagexeRE, 2017-05-17bRagexeRE
#if PACKETVER == 20170517
- packetKeys(0x2CC4749A,0x1FA954DC,0x72276857);
+ packetKeys(0x2cc4749a,0x1fa954dc,0x72276857);
#endif
// 2017-05-24aRagexe, 2017-05-24aRagexeRE, 2017-05-24bRagexe
#if PACKETVER == 20170524
- packetKeys(0x0B4E03A6,0x2B93427C,0x583D4477);
+ packetKeys(0x0b4e03a6,0x2b93427c,0x583d4477);
#endif
// 2017-05-31aRagexe, 2017-05-31aRagexeRE
#if PACKETVER == 20170531
- packetKeys(0x03FA5A97,0x20B802D5,0x339F1977);
+ packetKeys(0x03fa5a97,0x20b802d5,0x339f1977);
#endif
// 2017-06-07bRagexeRE, 2017-06-07cRagexe, 2017-06-07cRagexeRE
#if PACKETVER == 20170607
- packetKeys(0x50564ACD,0x79CA4E15,0x405F4894);
+ packetKeys(0x50564acd,0x79ca4e15,0x405f4894);
#endif
// 2017-06-14bRagexe, 2017-06-14bRagexeRE
#if PACKETVER == 20170614
- packetKeys(0x5ED10A48,0x667F4301,0x2E5D761F);
+ packetKeys(0x5ed10a48,0x667f4301,0x2e5d761f);
#endif
// 2017-06-21aRagexeRE, 2017-06-21bRagexe
#if PACKETVER == 20170621
- packetKeys(0x155F34EC,0x2D943FA9,0x3D9170EB);
+ packetKeys(0x155f34ec,0x2d943fa9,0x3d9170eb);
#endif
// 2017-06-28bRagexe, 2017-06-28bRagexeRE
#if PACKETVER == 20170628
- packetKeys(0x04691C86,0x43C210E2,0x2FE277E2);
+ packetKeys(0x04691c86,0x43c210e2,0x2fe277e2);
#endif
// 2017-07-05aRagexe, 2017-07-05aRagexeRE
#if PACKETVER == 20170705
- packetKeys(0x7EB000AE,0x02FB1DBC,0x5CB131E6);
+ packetKeys(0x7eb000ae,0x02fb1dbc,0x5cb131e6);
#endif
// 2017-07-12bRagexe, 2017-07-12bRagexeRE
#if PACKETVER == 20170712
- packetKeys(0x2C3C202C,0x3F2C2F2C,0x2F2C2F2C);
+ packetKeys(0x2c3c202c,0x3f2c2f2c,0x2f2c2f2c);
#endif
// 2017-07-19aRagexe, 2017-07-19aRagexeRE
#if PACKETVER == 20170719
- packetKeys(0x46465C88,0x10116F66,0x200866F9);
+ packetKeys(0x46465c88,0x10116f66,0x200866f9);
#endif
// 2017-07-26aRagexe, 2017-07-26cRagexeRE
#if PACKETVER == 20170726
- packetKeys(0x102F23DB,0x7E767751,0x3BC172EF);
+ packetKeys(0x102f23db,0x7e767751,0x3bc172ef);
#endif
// 2017-08-01aRagexe, 2017-08-01aRagexeRE, 2017-08-01bRagexe
#if PACKETVER == 20170801
- packetKeys(0x26B52A7F,0x5377619D,0x4F580AC4);
+ packetKeys(0x26b52a7f,0x5377619d,0x4f580ac4);
#endif
// 2017-08-09cRagexe, 2017-08-09cRagexeRE
#if PACKETVER == 20170809
- packetKeys(0x452156CB,0x71442624,0x2EE66D1C);
+ packetKeys(0x452156cb,0x71442624,0x2ee66d1c);
#endif
// 2017-08-16cRagexe, 2017-08-16cRagexeRE, 2017-08-16dRagexe, 2017-08-16dRagexeRE
#if PACKETVER == 20170816
- packetKeys(0x78914673,0x3F8B7634,0x55B814BC);
+ packetKeys(0x78914673,0x3f8b7634,0x55b814bc);
#endif
// 2017-08-23aRagexe, 2017-08-23aRagexeRE
#if PACKETVER == 20170823
- packetKeys(0x22677205,0x393D1002,0x58DC6BB4);
+ packetKeys(0x22677205,0x393d1002,0x58dc6bb4);
#endif
// 2017-08-30aRagexe, 2017-08-30aRagexeRE, 2017-08-30bRagexe, 2017-08-30bRagexeRE
#if PACKETVER == 20170830
- packetKeys(0x1D49592B,0x00970C17,0x1E640103);
+ packetKeys(0x1d49592b,0x00970c17,0x1e640103);
#endif
// 2017-09-06cRagexe, 2017-09-06cRagexeRE
#if PACKETVER == 20170906
- packetKeys(0x7DEF7677,0x351F36E6,0x52303485);
+ packetKeys(0x7def7677,0x351f36e6,0x52303485);
#endif
// 2017-09-13bRagexeRE, 2017-09-13cRagexe
#if PACKETVER == 20170913
- packetKeys(0x7A645935,0x1DA05062,0x5A7A4C43);
+ packetKeys(0x7a645935,0x1da05062,0x5a7a4c43);
#endif
// 2017-09-20aRagexe, 2017-09-20bRagexeRE
#if PACKETVER == 20170920
- packetKeys(0x53024DA5,0x04EC212D,0x0BF87CD4);
+ packetKeys(0x53024da5,0x04ec212d,0x0bf87cd4);
#endif
// 2017-09-27bRagexe, 2017-09-27bRagexeRE, 2017-09-27cRagexe, 2017-09-27dRagexe, 2017-09-27dRagexeRE
#if PACKETVER == 20170927
- packetKeys(0x15624100,0x0CE1463E,0x0E5D6534);
+ packetKeys(0x15624100,0x0ce1463e,0x0e5d6534);
#endif
// 2017-10-02cRagexe, 2017-10-02cRagexeRE
#if PACKETVER == 20171002
- packetKeys(0x15E1716C,0x4E765B63,0x357D2370);
+ packetKeys(0x15e1716c,0x4e765b63,0x357d2370);
#endif
// 2017-10-11aRagexe, 2017-10-11aRagexeRE, 2017-10-11bRagexe, 2017-10-11bRagexeRE
#if PACKETVER == 20171011
- packetKeys(0x4F121B3E,0x12670E17,0x19896C11);
+ packetKeys(0x4f121b3e,0x12670e17,0x19896c11);
#endif
// 2017-10-18aRagexe, 2017-10-18aRagexeRE
#if PACKETVER == 20171018
- packetKeys(0x2CAA109C,0x158C1EC2,0x7A5E58F3);
+ packetKeys(0x2caa109c,0x158c1ec2,0x7a5e58f3);
#endif
// 2017-10-25bRagexe, 2017-10-25bRagexeRE, 2017-10-25cRagexe, 2017-10-25cRagexeRE, 2017-10-25dRagexe, 2017-10-25dRagexeRE, 2017-10-25eRagexe, 2017-10-25eRagexeRE
#if PACKETVER == 20171025
- packetKeys(0x165C565C,0x565C565C,0x565C565C);
+ packetKeys(0x165c565c,0x565c565c,0x565c565c);
#endif
// 2017-11-01aRagexe, 2017-11-01bRagexeRE
#if PACKETVER == 20171101
- packetKeys(0x7056317F,0x7EEE0589,0x02672373);
+ packetKeys(0x7056317f,0x7eee0589,0x02672373);
#endif
// 2017-11-08aRagexe, 2017-11-08bRagexeRE
#if PACKETVER == 20171108
- packetKeys(0x03695685,0x7FAC12CE,0x182F7A7B);
+ packetKeys(0x03695685,0x7fac12ce,0x182f7a7b);
#endif
// 2017-11-15aRagexe, 2017-11-15aRagexeRE
#if PACKETVER == 20171115
- packetKeys(0x23B97A3B,0x34610993,0x2892070E);
+ packetKeys(0x23b97a3b,0x34610993,0x2892070e);
#endif
// 2017-11-22aRagexe, 2017-11-22bRagexeRE
#if PACKETVER == 20171122
- packetKeys(0x03221B0E,0x73AB7A5F,0x0DD80FD4);
+ packetKeys(0x03221b0e,0x73ab7a5f,0x0dd80fd4);
#endif
// 2017-11-29aRagexe, 2017-11-29aRagexeRE
#if PACKETVER == 20171129
- packetKeys(0x581B77A7,0x62F74D7A,0x4F102173);
+ packetKeys(0x581b77a7,0x62f74d7a,0x4f102173);
#endif
// 2017-12-06aRagexeRE, 2017-12-06bRagexe, 2017-12-06cRagexe
#if PACKETVER == 20171206
- packetKeys(0x39D54BD3,0x577A0C21,0x4C1C316E);
+ packetKeys(0x39d54bd3,0x577a0c21,0x4c1c316e);
#endif
// 2017-12-13bRagexe, 2017-12-13bRagexeRE
#if PACKETVER == 20171213
- packetKeys(0x44E41107,0x3B126921,0x00E06AAC);
+ packetKeys(0x44e41107,0x3b126921,0x00e06aac);
#endif
// 2017-12-20aRagexe, 2017-12-20aRagexeRE
#if PACKETVER == 20171220
- packetKeys(0x6EFE009A,0x440B7BFA,0x052339C8);
+ packetKeys(0x6efe009a,0x440b7bfa,0x052339c8);
#endif
// 2017-12-27aRagexe, 2017-12-27aRagexeRE
#if PACKETVER == 20171227
- packetKeys(0x257A2F6E,0x51140EEE,0x00FA4452);
+ packetKeys(0x257a2f6e,0x51140eee,0x00fa4452);
#endif
// 2018-01-03aRagexe, 2018-01-03aRagexeRE, 2018-01-03bRagexe, 2018-01-03bRagexeRE
#if PACKETVER == 20180103
- packetKeys(0x348F4BD7,0x7A425A54,0x628F589A);
+ packetKeys(0x348f4bd7,0x7a425a54,0x628f589a);
#endif
// 2018-01-17aRagexe, 2018-01-17aRagexeRE
#if PACKETVER == 20180117
- packetKeys(0x21F477F4,0x37F437F4,0x37F437F4);
+ packetKeys(0x21f477f4,0x37f437f4,0x37f437f4);
#endif
// 2018-01-24bRagexe, 2018-01-24bRagexeRE, 2018-01-31Ragexe
#if PACKETVER == 20180124 || \
PACKETVER == 20180131
- packetKeys(0x7EAA1CE0,0x415D1CFD,0x4C8F19FA);
+ packetKeys(0x7eaa1ce0,0x415d1cfd,0x4c8f19fa);
#endif
// 2018-02-07bRagexe, 2018-02-07bRagexeRE, 2018-02-07cRagexe
#if PACKETVER == 20180207
- packetKeys(0x45AA1B44,0x20E716B7,0x5388105C);
+ packetKeys(0x45aa1b44,0x20e716b7,0x5388105c);
#endif
// 2018-02-13aRagexe, 2018-02-13aRagexeRE, 2018-02-13bRagexe
#if PACKETVER == 20180213
- packetKeys(0x189D69B2,0x43B85EAD,0x2B7A687E);
+ packetKeys(0x189d69b2,0x43b85ead,0x2b7a687e);
#endif
// 2018-02-21aRagexeRE, 2018-02-21bRagexe, 2018-02-21bRagexeRE
#if PACKETVER == 20180221
- packetKeys(0x6E2F6233,0x193B0A66,0x0D1D2CA5);
+ packetKeys(0x6e2f6233,0x193b0a66,0x0d1d2ca5);
#endif
// 2018-03-07bRagexe, 2018-03-07bRagexeRE, 2018-03-09aRagexe
#if PACKETVER == 20180307 || \
PACKETVER == 20180309
- packetKeys(0x47DA10EB,0x4B922CCF,0x765C5055);
+ packetKeys(0x47da10eb,0x4b922ccf,0x765c5055);
#endif
// 2018-03-14nRagexe
#if PACKETVER == 20180314
- packetKeys(0x2FF07149,0x00596EA3,0x2B853026);
+ packetKeys(0x2ff07149,0x00596ea3,0x2b853026);
#endif
diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h
index bbc1f7332..5794ca309 100644
--- a/src/map/packets_keys_zero.h
+++ b/src/map/packets_keys_zero.h
@@ -29,7 +29,7 @@
/* This file is autogenerated, please do not commit manual changes */
-// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero
+// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero
#if PACKETVER == 20171018 || \
PACKETVER == 20171019 || \
PACKETVER == 20171023 || \
@@ -58,7 +58,10 @@
PACKETVER == 20180829 || \
PACKETVER == 20180905 || \
PACKETVER == 20180912 || \
- PACKETVER >= 20180919
+ PACKETVER == 20180919 || \
+ PACKETVER == 20180928 || \
+ PACKETVER == 20181010 || \
+ PACKETVER >= 20181024
packetKeys(0x00000000,0x00000000,0x00000000);
#endif
diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h
index 8bc395da1..34848f78a 100644
--- a/src/map/packets_shuffle_main.h
+++ b/src/map/packets_shuffle_main.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -3344,7 +3345,7 @@
packet(0x0969,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
#endif
-// 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-28bRagexe, 2018-04-04bRagexe, 2018-04-18aRagexe, 2018-04-25cRagexe, 2018-05-02bRagexe, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-23aRagexe, 2018-05-30aRagexe, 2018-06-05bRagexe, 2018-06-20cRagexe, 2018-06-20eRagexe, 2018-06-21aRagexe, 2018-07-04aRagexe, 2018-07-18bRagexe, 2018-07-18cRagexe, 2018-08-01cRagexe, 2018-08-08bRagexe, 2018-08-22cRagexe, 2018-08-29aRagexe, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-19aRagexe
+// 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-28bRagexe, 2018-04-04bRagexe, 2018-04-18aRagexe, 2018-04-25cRagexe, 2018-05-02bRagexe, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-23aRagexe, 2018-05-30aRagexe, 2018-06-05bRagexe, 2018-06-20cRagexe, 2018-06-20eRagexe, 2018-06-21aRagexe, 2018-07-04aRagexe, 2018-07-18bRagexe, 2018-07-18cRagexe, 2018-08-01cRagexe, 2018-08-08bRagexe, 2018-08-22cRagexe, 2018-08-29aRagexe, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-19aRagexe, 2018-10-02aRagexe, 2018-10-02bRagexe, 2018-10-17_02aRagexe, 2018-10-17_03aRagexe, 2018-10-17bRagexe, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-11-07aRagexe
#if PACKETVER == 20140611 || \
PACKETVER == 20150225 || \
PACKETVER == 20180315 || \
@@ -3369,7 +3370,12 @@
PACKETVER == 20180829 || \
PACKETVER == 20180831 || \
PACKETVER == 20180912 || \
- PACKETVER >= 20180919
+ PACKETVER == 20180919 || \
+ PACKETVER == 20181002 || \
+ PACKETVER == 20181017 || \
+ PACKETVER == 20181024 || \
+ PACKETVER == 20181031 || \
+ PACKETVER >= 20181107
packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
diff --git a/src/map/packets_shuffle_re.h b/src/map/packets_shuffle_re.h
index 157a8a431..de59bfb84 100644
--- a/src/map/packets_shuffle_re.h
+++ b/src/map/packets_shuffle_re.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -9662,7 +9663,7 @@
packet(0x083c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
#endif
-// 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexeRE, 2018-08-01cRagexeRE, 2018-08-08bRagexeRE, 2018-08-22cRagexeRE, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-09-12dRagexeRE, 2018-09-19aRagexeRE
+// 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexeRE, 2018-08-01cRagexeRE, 2018-08-08bRagexeRE, 2018-08-22cRagexeRE, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-09-12dRagexeRE, 2018-09-19aRagexeRE, 2018-10-02aRagexeRE, 2018-10-02bRagexeRE, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexeRE, 2018-10-17bRagexeRE, 2018-10-31cRagexeRE, 2018-11-07aRagexeRE
#if PACKETVER == 20180704 || \
PACKETVER == 20180711 || \
PACKETVER == 20180718 || \
@@ -9671,7 +9672,11 @@
PACKETVER == 20180822 || \
PACKETVER == 20180829 || \
PACKETVER == 20180912 || \
- PACKETVER >= 20180919
+ PACKETVER == 20180919 || \
+ PACKETVER == 20181002 || \
+ PACKETVER == 20181017 || \
+ PACKETVER == 20181031 || \
+ PACKETVER >= 20181107
packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h
index b7253fdda..4d7dd9c7c 100644
--- a/src/map/packets_shuffle_zero.h
+++ b/src/map/packets_shuffle_zero.h
@@ -36,7 +36,7 @@
/* This file is autogenerated, please do not commit manual changes */
-// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero
+// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero
#if PACKETVER == 20171018 || \
PACKETVER == 20171019 || \
PACKETVER == 20171023 || \
@@ -65,7 +65,10 @@
PACKETVER == 20180829 || \
PACKETVER == 20180905 || \
PACKETVER == 20180912 || \
- PACKETVER >= 20180919
+ PACKETVER == 20180919 || \
+ PACKETVER == 20180928 || \
+ PACKETVER == 20181010 || \
+ PACKETVER >= 20181024
packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index af76a66d7..374769728 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -198,7 +198,7 @@ enum packet_headers {
#else
dropflooritemType = 0x9e,
#endif
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
inventorylistnormalType = 0xb09,
#elif PACKETVER >= 20120925
inventorylistnormalType = 0x991,
@@ -209,7 +209,7 @@ enum packet_headers {
#else
inventorylistnormalType = 0xa3,
#endif
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
inventorylistequipType = 0xb0a,
#elif PACKETVER >= 20150226
inventorylistequipType = 0xa0d,
@@ -222,7 +222,7 @@ enum packet_headers {
#else
inventorylistequipType = 0xa4,
#endif
-#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
storageListNormalType = 0xb09,
#elif PACKETVER >= 20120925
storageListNormalType = 0x995,
@@ -233,7 +233,7 @@ enum packet_headers {
#else
storageListNormalType = 0xa5,
#endif
-#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
storageListEquipType = 0xb0a,
#elif PACKETVER >= 20150226
storageListEquipType = 0xa10,
@@ -246,7 +246,7 @@ enum packet_headers {
#else
storageListEquipType = 0xa6,
#endif
-#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
cartlistnormalType = 0xb09,
#elif PACKETVER >= 20120925
cartlistnormalType = 0x993,
@@ -257,7 +257,7 @@ enum packet_headers {
#else
cartlistnormalType = 0x123,
#endif
-#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
cartlistequipType = 0xb0a,
#elif PACKETVER >= 20150226
cartlistequipType = 0xa0f,
@@ -324,7 +324,9 @@ enum packet_headers {
achievementUpdateType = 0xa24,
achievementRewardAckType = 0xa26,
#endif // PACKETVER >= 20141016
-#if PACKETVER >= 20150513 // [4144] 0x09f8 handling in client from 2014-10-29aRagexe and 2014-03-26cRagexeRE
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ questListType = 0xaff, ///< ZC_ALL_QUEST_LIST4
+#elif PACKETVER >= 20150513 // [4144] 0x09f8 handling in client from 2014-10-29aRagexe and 2014-03-26cRagexeRE
questListType = 0x9f8, ///< ZC_ALL_QUEST_LIST3
#elif PACKETVER >= 20141022
questListType = 0x97a, ///< ZC_ALL_QUEST_LIST2
@@ -378,12 +380,16 @@ enum packet_headers {
clanLeave = 0x0989, ///< ZC_ACK_CLAN_LEAVE
clanMessage = 0x098E, ///< ZC_NOTIFY_CLAN_CHAT
#endif
-#if PACKETVER >= 20150513 // [4144] 0x09f9 handled in client from 2014-10-29aRagexe and 2014-03-26cRagexeRE
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ questAddType = 0xb0c,
+#elif PACKETVER >= 20150513 // [4144] 0x09f9 handled in client from 2014-10-29aRagexe and 2014-03-26cRagexeRE
questAddType = 0x9f9,
#else
questAddType = 0x2b3,
#endif // PACKETVER < 20150513
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ questUpdateType = 0xafe,
+#elif PACKETVER >= 20150513
questUpdateType = 0x9fa,
#else
questUpdateType = 0x2b5,
@@ -445,6 +451,16 @@ enum packet_headers {
#else
guildLeave = 0x15a,
#endif
+#if PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024
+ itemPreview = 0xb13,
+#else
+ itemPreview = 0xab9,
+#endif
+#if PACKETVER_RE_NUM >= 20181031
+ autoSpellList = 0xafb,
+#else
+ autoSpellList = 0x1cd,
+#endif
};
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
@@ -1174,7 +1190,7 @@ struct packet_roulette_itemrecv_ack {
struct packet_itemlist_normal {
int16 PacketType;
int16 PacketLength;
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
uint8 invType;
#endif
struct NORMALITEM_INFO list[MAX_ITEMLIST];
@@ -1183,7 +1199,7 @@ struct packet_itemlist_normal {
struct packet_itemlist_equip {
int16 PacketType;
int16 PacketLength;
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
uint8 invType;
#endif
struct EQUIPITEM_INFO list[MAX_ITEMLIST];
@@ -1192,10 +1208,10 @@ struct packet_itemlist_equip {
struct ZC_STORE_ITEMLIST_NORMAL {
int16 PacketType;
int16 PacketLength;
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
uint8 invType;
#endif
-#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919
+#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919 && PACKETVER_MAIN_NUM < 20181002
char name[NAME_LENGTH];
#endif
struct NORMALITEM_INFO list[MAX_ITEMLIST];
@@ -1203,13 +1219,13 @@ struct ZC_STORE_ITEMLIST_NORMAL {
struct ZC_INVENTORY_START {
int16 packetType;
-#if PACKETVER_RE_NUM >= 20180919 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180919 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
int16 packetLength;
#endif
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
uint8 invType;
#endif
-#if PACKETVER_RE_NUM >= 20180919 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180919 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
char name[];
#else
char name[NAME_LENGTH];
@@ -1218,7 +1234,7 @@ struct ZC_INVENTORY_START {
struct ZC_INVENTORY_END {
int16 packetType;
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
uint8 invType;
#endif
char flag;
@@ -1227,10 +1243,10 @@ struct ZC_INVENTORY_END {
struct ZC_STORE_ITEMLIST_EQUIP {
int16 PacketType;
int16 PacketLength;
-#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
uint8 invType;
#endif
-#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919
+#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919 && PACKETVER_MAIN_NUM < 20181002
char name[NAME_LENGTH];
#endif
struct EQUIPITEM_INFO list[MAX_ITEMLIST];
@@ -1449,7 +1465,11 @@ struct packet_hotkey {
* MISSION_HUNT_INFO_EX (PACKETVER >= 20150513)
*/
struct packet_mission_info_sub {
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ uint32 huntIdent;
+ uint32 huntIdent2;
+ uint32 mobType;
+#elif PACKETVER >= 20150513
uint32 huntIdent;
uint32 mobType;
#endif
@@ -1819,7 +1839,11 @@ struct PACKET_ZC_NOTIFY_CLAN_CHAT {
* PACKET_ZC_MISSION_HUNT_EX (PACKETVER >= 20150513)
*/
struct packet_quest_hunt_sub {
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ uint32 huntIdent;
+ uint32 huntIdent2;
+ uint32 mobType;
+#elif PACKETVER >= 20150513
uint32 huntIdent;
uint32 mobType;
#endif
@@ -1853,7 +1877,10 @@ struct packet_quest_add_header {
*/
struct packet_quest_update_hunt {
uint32 questID;
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ uint32 huntIdent;
+ uint32 huntIdent2;
+#elif PACKETVER >= 20150513
uint32 huntIdent;
#else
uint32 mob_id;
@@ -1906,7 +1933,9 @@ struct PACKET_ZC_FORMATSTRING_MSG_COLOR {
uint16 PacketType;
uint16 PacketLength;
uint16 messageId;
+#if PACKETVER >= 20160406
uint32 color;
+#endif
char messageString[];
} __attribute__((packed));
@@ -2274,8 +2303,13 @@ struct PACKET_ZC_PROPERTY_HOMUN {
uint16 mdef;
uint16 flee;
uint16 amotion;
+#if PACKETVER < 20150513
+ uint16 hp;
+ uint16 maxHp;
+#else
uint32 hp;
uint32 maxHp;
+#endif
uint16 sp;
uint16 maxSp;
uint32 exp;
@@ -2722,7 +2756,7 @@ struct packet_achievement_update {
struct packet_achievement_reward_ack {
uint16 packet_id;
- uint8 received;
+ uint8 failed;
uint32 ach_id;
} __attribute__((packed));
@@ -2836,6 +2870,48 @@ struct PACKET_CZ_MEMORIALDUNGEON_COMMAND {
int32 command;
} __attribute__((packed));
+struct PACKET_ZC_REMOVE_EFFECT {
+ int16 packetType;
+ uint32 aid;
+ uint32 effectId;
+} __attribute__((packed));
+
+struct PACKET_ZC_CAMERA_INFO {
+ int16 packetType;
+ int8 action;
+ float range;
+ float rotation;
+ float latitude;
+} __attribute__((packed));
+
+struct PACKET_ZC_ITEM_PREVIEW {
+ int16 packetType;
+ int16 index;
+#if PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024
+ int8 isDamaged;
+#endif
+ int16 refiningLevel;
+ struct EQUIPSLOTINFO slot;
+ struct ItemOptions option_data[MAX_ITEM_OPTIONS];
+} __attribute__((packed));
+
+#if PACKETVER_RE_NUM >= 20181031
+#define PACKET_ZC_AUTOSPELLLIST PACKET_ZC_AUTOSPELLLIST2
+#else
+#define PACKET_ZC_AUTOSPELLLIST PACKET_ZC_AUTOSPELLLIST1
+#endif
+
+struct PACKET_ZC_AUTOSPELLLIST1 {
+ int16 packetType;
+ int skills[7];
+} __attribute__((packed));
+
+struct PACKET_ZC_AUTOSPELLLIST2 {
+ int16 packetType;
+ int16 packetLength;
+ int skills[];
+} __attribute__((packed));
+
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
#pragma pack(pop)
#endif // not NetBSD < 6 / Solaris
diff --git a/src/map/pc.c b/src/map/pc.c
index 961dda9f5..b8a6912ee 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -4402,8 +4402,6 @@ static int pc_insert_card(struct map_session_data *sd, int idx_card, int idx_equ
static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
{
int skill_lv, rate1 = 0, rate2 = 0;
- if (orig_value <= 0)
- return 0;
if ((skill_lv=pc->checkskill(sd,MC_DISCOUNT)) > 0) // merchant discount
rate1 = 5+skill_lv*2-((skill_lv==10)? 1:0);
if ((skill_lv=pc->checkskill(sd,RG_COMPULSION)) > 0) // rogue discount
@@ -4412,8 +4410,9 @@ static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
rate1 = rate2;
if (rate1 != 0)
orig_value = apply_percentrate(orig_value, 100-rate1, 100);
- if (orig_value < 1)
- orig_value = 1;
+
+ if (orig_value < battle_config.min_item_buy_price)
+ orig_value = battle_config.min_item_buy_price;
return orig_value;
}
@@ -4423,14 +4422,13 @@ static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
static int pc_modifysellvalue(struct map_session_data *sd, int orig_value)
{
int skill_lv, rate = 0;
- if (orig_value <= 0)
- return 0;
if ((skill_lv=pc->checkskill(sd,MC_OVERCHARGE)) > 0) //OverCharge
rate = 5+skill_lv*2-((skill_lv==10)? 1:0);
if (rate != 0)
orig_value = apply_percentrate(orig_value, 100+rate, 100);
- if (orig_value < 1)
- orig_value = 1;
+
+ if (orig_value < battle_config.min_item_sell_price)
+ orig_value = battle_config.min_item_sell_price;
return orig_value;
}
@@ -4506,14 +4504,15 @@ static int pc_payzeny(struct map_session_data *sd, int zeny, enum e_log_pick_typ
sd->status.zeny -= zeny;
clif->updatestatus(sd,SP_ZENY);
- achievement->validate_zeny(sd, -zeny); // Achievements [Smokexyz/Hercules]
+ if (zeny > 0) {
+ achievement->validate_zeny(sd, -zeny); // Achievements [Smokexyz/Hercules]
+ logs->zeny(sd, type, tsd ? tsd : sd, -zeny);
- if(!tsd) tsd = sd;
- logs->zeny(sd, type, tsd, -zeny);
- if( zeny > 0 && sd->state.showzeny ) {
- char output[255];
- sprintf(output, "Removed %dz.", zeny);
- clif_disp_onlyself(sd, output);
+ if (sd->state.showzeny) {
+ char output[255];
+ sprintf(output, "Removed %dz.", zeny);
+ clif_disp_onlyself(sd, output);
+ }
}
return 0;
@@ -4644,14 +4643,15 @@ static int pc_getzeny(struct map_session_data *sd, int zeny, enum e_log_pick_typ
sd->status.zeny += zeny;
clif->updatestatus(sd,SP_ZENY);
- achievement->validate_zeny(sd, zeny); // Achievements [Smokexyz/Hercules]
+ if (zeny > 0) {
+ achievement->validate_zeny(sd, zeny); // Achievements [Smokexyz/Hercules]
+ logs->zeny(sd, type, tsd ? tsd : sd, zeny);
- if(!tsd) tsd = sd;
- logs->zeny(sd, type, tsd, zeny);
- if( zeny > 0 && sd->state.showzeny ) {
- char output[255];
- sprintf(output, "Gained %dz.", zeny);
- clif_disp_onlyself(sd, output);
+ if (sd->state.showzeny) {
+ char output[255];
+ sprintf(output, "Gained %dz.", zeny);
+ clif_disp_onlyself(sd, output);
+ }
}
return 0;
@@ -4689,7 +4689,7 @@ static int pc_search_inventory(struct map_session_data *sd, int item_id)
* 6 = ?
* 7 = stack limitation
*------------------------------------------*/
-static int pc_additem(struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type)
+static int pc_additem(struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type)
{
struct item_data *data;
int i;
diff --git a/src/map/pc.h b/src/map/pc.h
index 17a9b8200..4ee5f560b 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -937,7 +937,7 @@ END_ZEROED_BLOCK; /* End */
int (*inventoryblank) (struct map_session_data *sd);
int (*search_inventory) (struct map_session_data *sd,int item_id);
int (*payzeny) (struct map_session_data *sd,int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
- int (*additem) (struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type);
+ int (*additem) (struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type);
int (*getzeny) (struct map_session_data *sd,int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
int (*delitem) (struct map_session_data *sd,int n,int amount,int type, short reason, e_log_pick_type log_type);
diff --git a/src/map/quest.c b/src/map/quest.c
index 02bf7638b..f10d6847f 100644
--- a/src/map/quest.c
+++ b/src/map/quest.c
@@ -30,6 +30,7 @@
#include "map/itemdb.h"
#include "map/log.h"
#include "map/map.h"
+#include "map/mercenary.h"
#include "map/mob.h"
#include "map/npc.h"
#include "map/party.h"
@@ -719,6 +720,8 @@ static bool quest_questinfo_validate(struct map_session_data *sd, struct questin
return false;
if (VECTOR_LENGTH(qi->quest_requirement) > 0 && quest->questinfo_validate_quests(sd, qi) == false)
return false;
+ if (qi->mercenary_class != 0 && quest->questinfo_validate_mercenary_class(sd, qi) == false)
+ return false;
return true;
}
@@ -901,6 +904,29 @@ static bool quest_questinfo_validate_quests(struct map_session_data *sd, struct
}
/**
+ * Validate mercenary class required for the questinfo
+ *
+ * @param sd session data.
+ * @param qi questinfo data.
+ *
+ * @retval true if player have a mercenary with the given class.
+ * @retval false if player does NOT have a mercenary with the given class.
+ */
+static bool quest_questinfo_validate_mercenary_class(struct map_session_data *sd, struct questinfo *qi)
+{
+ nullpo_retr(false, sd);
+ nullpo_retr(false, qi);
+
+ if (sd->md == NULL)
+ return false;
+
+ if (sd->md->mercenary.class_ != qi->mercenary_class)
+ return false;
+
+ return true;
+}
+
+/**
* Clears the questinfo data vector
*
* @param m mapindex.
@@ -993,5 +1019,6 @@ void quest_defaults(void)
quest->questinfo_validate_homunculus_level = quest_questinfo_validate_homunculus_level;
quest->questinfo_validate_homunculus_type = quest_questinfo_validate_homunculus_type;
quest->questinfo_validate_quests = quest_questinfo_validate_quests;
+ quest->questinfo_validate_mercenary_class = quest_questinfo_validate_mercenary_class;
quest->questinfo_vector_clear = quest_questinfo_vector_clear;
}
diff --git a/src/map/quest.h b/src/map/quest.h
index 305a48df1..206a7902f 100644
--- a/src/map/quest.h
+++ b/src/map/quest.h
@@ -92,6 +92,7 @@ struct quest_interface {
bool (*questinfo_validate_homunculus_level) (struct map_session_data *sd, struct questinfo *qi);
bool (*questinfo_validate_homunculus_type) (struct map_session_data *sd, struct questinfo *qi);
bool (*questinfo_validate_quests) (struct map_session_data *sd, struct questinfo *qi);
+ bool (*questinfo_validate_mercenary_class) (struct map_session_data *sd, struct questinfo *qi);
void (*questinfo_vector_clear) (int m);
};
diff --git a/src/map/script.c b/src/map/script.c
index b787d0138..8c09bb8d8 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -3316,95 +3316,28 @@ static void set_reg_npcscope_str(struct script_state *st, struct reg_db *n, int6
static void set_reg_pc_ref_str(struct script_state *st, struct reg_db *n, int64 num, const char *name, const char *str)
{
- struct script_reg_str *p = NULL;
- unsigned int index = script_getvaridx(num);
-
- nullpo_retv(n);
-
- if ((p = i64db_get(n->vars, num)) != NULL) {
- if (str[0]) {
- if (p->value) {
- aFree(p->value);
- } else if (index) {
- script->array_update(n, num, false);
- }
- p->value = aStrdup(str);
- } else {
- p->value = NULL;
- if (index) {
- script->array_update(n, num, true);
- }
- }
-
- if (!pc->reg_load) {
- p->flag.update = 1;
- }
- } else if (str[0]) {
- struct DBData prev;
- if (index) {
- script->array_update(n, num, false);
- }
-
- p = ers_alloc(pc->str_reg_ers, struct script_reg_str);
- p->value = aStrdup(str);
+ struct DBIterator *iter = db_iterator(map->pc_db);
- if (!pc->reg_load) {
- p->flag.update = 1;
- }
- p->flag.type = 1;
-
- if(n->vars->put(n->vars, DB->i642key(num), DB->ptr2data(p), &prev)) {
- p = DB->data2ptr(&prev);
- if (p->value) {
- aFree(p->value);
- }
- ers_free(pc->str_reg_ers, p);
+ for (struct map_session_data *sd = dbi_first(iter); dbi_exists(iter); sd = dbi_next(iter)) {
+ if (sd != NULL && n == &sd->regs) {
+ pc->setregistry_str(sd, num, str);
+ break;
}
}
+ dbi_destroy(iter);
}
static void set_reg_pc_ref_num(struct script_state *st, struct reg_db *n, int64 num, const char *name, int val)
{
- struct script_reg_num *p = NULL;
- unsigned int index = script_getvaridx(num);
-
- nullpo_retv(n);
-
- if ((p = i64db_get(n->vars, num)) != NULL) {
- if (val) {
- if (!p->value && index) {
- script->array_update(n, num, false);
- }
- p->value = val;
- } else {
- p->value = 0;
- if (index) {
- script->array_update(n, num, true);
- }
- }
+ struct DBIterator *iter = db_iterator(map->pc_db);
- if (!pc->reg_load) {
- p->flag.update = 1;
- }
- } else if (val) {
- struct DBData prev;
- if (index) {
- script->array_update(n, num, false);
- }
-
- p = ers_alloc(pc->num_reg_ers, struct script_reg_num);
- p->value = val;
-
- if (!pc->reg_load) {
- p->flag.update = 1;
- }
- p->flag.type = 1;
-
- if(n->vars->put(n->vars, DB->i642key(num), DB->ptr2data(p), &prev)) {
- p = DB->data2ptr(&prev);
- ers_free(pc->num_reg_ers, p);
+ for (struct map_session_data *sd = dbi_first(iter); dbi_exists(iter); sd = dbi_next(iter)) {
+ if (sd != NULL && n == &sd->regs) {
+ pc->setregistry(sd, num, val);
+ break;
}
}
+ dbi_destroy(iter);
}
static void set_reg_npcscope_num(struct script_state *st, struct reg_db *n, int64 num, const char *name, int val)
@@ -6166,11 +6099,11 @@ static BUILDIN(menu)
sd->state.menu_or_input = 1;
/* menus beyond this length crash the client (see bugreport:6402) */
- if( StrBuf->Length(&buf) >= 2047 ) {
+ if( StrBuf->Length(&buf) >= MAX_MENU_LENGTH - 1 ) {
struct npc_data * nd = map->id2nd(st->oid);
char* menu;
- CREATE(menu, char, 2048);
- safestrncpy(menu, StrBuf->Value(&buf), 2047);
+ CREATE(menu, char, MAX_MENU_LENGTH);
+ safestrncpy(menu, StrBuf->Value(&buf), MAX_MENU_LENGTH - 1);
ShowWarning("NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StrBuf->Length(&buf));
clif->scriptmenu(sd, st->oid, menu);
aFree(menu);
@@ -6179,13 +6112,13 @@ static BUILDIN(menu)
StrBuf->Destroy(&buf);
- if( sd->npc_menu >= 0xff )
+ if( sd->npc_menu >= MAX_MENU_OPTIONS )
{// client supports only up to 254 entries; 0 is not used and 255 is reserved for cancel; excess entries are displayed but cause 'uint8' overflow
- ShowWarning("buildin_menu: Too many options specified (current=%d, max=254).\n", sd->npc_menu);
+ ShowWarning("buildin_menu: Too many options specified (current=%d, max=%d).\n", sd->npc_menu, MAX_MENU_OPTIONS - 1);
script->reportsrc(st);
}
}
- else if( sd->npc_menu == 0xff )
+ else if( sd->npc_menu == MAX_MENU_OPTIONS )
{// Cancel was pressed
sd->state.menu_or_input = 0;
st->state = END;
@@ -6267,11 +6200,11 @@ static BUILDIN(select)
sd->state.menu_or_input = 1;
/* menus beyond this length crash the client (see bugreport:6402) */
- if( StrBuf->Length(&buf) >= 2047 ) {
+ if( StrBuf->Length(&buf) >= MAX_MENU_LENGTH - 1 ) {
struct npc_data * nd = map->id2nd(st->oid);
char* menu;
- CREATE(menu, char, 2048);
- safestrncpy(menu, StrBuf->Value(&buf), 2047);
+ CREATE(menu, char, MAX_MENU_LENGTH);
+ safestrncpy(menu, StrBuf->Value(&buf), MAX_MENU_LENGTH - 1);
ShowWarning("NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StrBuf->Length(&buf));
clif->scriptmenu(sd, st->oid, menu);
aFree(menu);
@@ -6279,107 +6212,31 @@ static BUILDIN(select)
clif->scriptmenu(sd, st->oid, StrBuf->Value(&buf));
StrBuf->Destroy(&buf);
- if( sd->npc_menu >= 0xff ) {
- ShowWarning("buildin_select: Too many options specified (current=%d, max=254).\n", sd->npc_menu);
+ if( sd->npc_menu >= MAX_MENU_OPTIONS ) {
+ ShowWarning("buildin_select: Too many options specified (current=%d, max=%d).\n", sd->npc_menu, MAX_MENU_OPTIONS - 1);
script->reportsrc(st);
}
- } else if( sd->npc_menu == 0xff ) {// Cancel was pressed
+ } else if(sd->npc_menu == MAX_MENU_OPTIONS) { // Cancel was pressed
sd->state.menu_or_input = 0;
- st->state = END;
- } else {// return selected option
- int menu = 0;
-
- sd->state.menu_or_input = 0;
- for( i = 2; i <= script_lastdata(st); ++i ) {
- text = script_getstr(st, i);
- sd->npc_menu -= script->menu_countoptions(text, sd->npc_menu, &menu);
- if( sd->npc_menu <= 0 )
- break;// entry found
- }
- pc->setreg(sd, script->add_variable("@menu"), menu);
- script_pushint(st, menu);
- st->state = RUN;
- }
- return true;
-}
-
-/// Displays a menu with options and returns the selected option.
-/// Behaves like 'menu' without the target labels, except when cancel is
-/// pressed.
-/// When cancel is pressed, the script continues and 255 is returned.
-///
-/// prompt(<option_text>{,<option_text>,...}) -> <selected_option>
-///
-/// @see menu
-static BUILDIN(prompt)
-{
- int i;
- const char *text;
- struct map_session_data *sd = script->rid2sd(st);
- if (sd == NULL)
- return true;
-
-#ifdef SECURE_NPCTIMEOUT
- sd->npc_idle_type = NPCT_MENU;
-#endif
-
- if( sd->state.menu_or_input == 0 )
- {
- struct StringBuf buf;
-
- StrBuf->Init(&buf);
- sd->npc_menu = 0;
- for( i = 2; i <= script_lastdata(st); ++i )
- {
- text = script_getstr(st, i);
- if( sd->npc_menu > 0 )
- StrBuf->AppendStr(&buf, ":");
- StrBuf->AppendStr(&buf, text);
- sd->npc_menu += script->menu_countoptions(text, 0, NULL);
- }
-
- st->state = RERUNLINE;
- sd->state.menu_or_input = 1;
-
- /* menus beyond this length crash the client (see bugreport:6402) */
- if( StrBuf->Length(&buf) >= 2047 ) {
- struct npc_data * nd = map->id2nd(st->oid);
- char* menu;
- CREATE(menu, char, 2048);
- safestrncpy(menu, StrBuf->Value(&buf), 2047);
- ShowWarning("NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StrBuf->Length(&buf));
- clif->scriptmenu(sd, st->oid, menu);
- aFree(menu);
- } else
- clif->scriptmenu(sd, st->oid, StrBuf->Value(&buf));
- StrBuf->Destroy(&buf);
- if( sd->npc_menu >= 0xff )
- {
- ShowWarning("buildin_prompt: Too many options specified (current=%d, max=254).\n", sd->npc_menu);
- script->reportsrc(st);
+ if (strncmp(get_buildin_name(st), "prompt", 6) == 0) {
+ pc->setreg(sd, script->add_variable("@menu"), MAX_MENU_OPTIONS);
+ script_pushint(st, MAX_MENU_OPTIONS); // XXX: we should really be pushing -1 instead
+ st->state = RUN;
+ } else {
+ st->state = END;
}
- }
- else if( sd->npc_menu == 0xff )
- {// Cancel was pressed
- sd->state.menu_or_input = 0;
- pc->setreg(sd, script->add_variable("@menu"), 0xff);
- script_pushint(st, 0xff);
- st->state = RUN;
- }
- else
- {// return selected option
+ } else {// return selected option
int menu = 0;
sd->state.menu_or_input = 0;
- for( i = 2; i <= script_lastdata(st); ++i )
- {
+ for( i = 2; i <= script_lastdata(st); ++i ) {
text = script_getstr(st, i);
sd->npc_menu -= script->menu_countoptions(text, sd->npc_menu, &menu);
if( sd->npc_menu <= 0 )
break;// entry found
}
- pc->setreg(sd, script->add_variable("@menu"), menu);
+ pc->setreg(sd, script->add_variable("@menu"), menu); // TODO: throw a deprecation warning for scripts using @menu
script_pushint(st, menu);
st->state = RUN;
}
@@ -8841,32 +8698,23 @@ static BUILDIN(getcharid)
return true;
}
+
/*==========================================
* returns the GID of an NPC
*------------------------------------------*/
static BUILDIN(getnpcid)
{
- int num = script_getnum(st,2);
- struct npc_data* nd = NULL;
-
- if( script_hasdata(st,3) )
- {// unique npc name
- if( ( nd = npc->name2id(script_getstr(st,3)) ) == NULL )
- {
- ShowError("buildin_getnpcid: No such NPC '%s'.\n", script_getstr(st,3));
- script_pushint(st,0);
- return false;
+ if (script_hasdata(st, 2)) {
+ if (script_isinttype(st, 2)) {
+ // Deprecate old form - getnpcid(<type>{, <"npc name">})
+ ShowWarning("buildin_getnpcid: Use of type is deprecated. Format - getnpcid({<\"npc name\">})\n");
+ script_pushint(st, 0);
+ } else {
+ struct npc_data *nd = npc->name2id(script_getstr(st, 2));
+ script_pushint(st, (nd != NULL) ? nd->bl.id : 0);
}
- }
-
- switch (num) {
- case 0:
- script_pushint(st,nd ? nd->bl.id : st->oid);
- break;
- default:
- ShowError("buildin_getnpcid: invalid parameter (%d).\n", num);
- script_pushint(st,0);
- return false;
+ } else {
+ script_pushint(st, st->oid);
}
return true;
@@ -11443,7 +11291,7 @@ static int buildin_getunits_sub(struct block_list *bl, va_list ap)
(const void *)h64BPTRSIZE(bl->id), ref);
(*count)++;
- return 0;
+ return 1;
}
static int buildin_getunits_sub_pc(struct map_session_data *sd, va_list ap)
@@ -11515,18 +11363,10 @@ static BUILDIN(getunits)
int16 x2 = script_getnum(st, 8);
int16 y2 = script_getnum(st, 9);
- // FIXME: map_foreachinarea does NOT stop iterating when the callback
- // function returns -1. we still limit the array size, but
- // this doesn't break the loop. We need a foreach function
- // that behaves like map_foreachiddb, but for areas
- map->foreachinarea(buildin_getunits_sub, m, x1, y1, x2, y2, type,
+ map->forcountinarea(buildin_getunits_sub, m, x1, y1, x2, y2, limit, type,
st, sd, id, start, &count, limit, name, ref, type);
} else {
- // FIXME: map_foreachinmap does NOT stop iterating when the callback
- // function returns -1. we still limit the array size, but
- // this doesn't break the loop. We need a foreach function
- // that behaves like map_foreachiddb, but for maps
- map->foreachinmap(buildin_getunits_sub, m, type,
+ map->forcountinmap(buildin_getunits_sub, m, limit, type,
st, sd, id, start, &count, limit, name, ref, type);
}
} else {
@@ -12335,7 +12175,9 @@ static BUILDIN(sc_end)
}
//This should help status_change_end force disabling the SC in case it has no limit.
- sce->val1 = sce->val2 = sce->val3 = sce->val4 = 0;
+ if (type != SC_BERSERK)
+ sce->val1 = 0; // SC_BERSERK requires skill_lv that's stored in sce->val1 when being removed [KirieZ]
+ sce->val2 = sce->val3 = sce->val4 = 0;
status_change_end(bl, (sc_type)type, INVALID_TIMER);
}
else
@@ -14480,6 +14322,9 @@ static BUILDIN(getiteminfo)
case ITEMINFO_VIEWSPRITE:
script_pushint(st, it->view_sprite);
break;
+ case ITEMINFO_TRADE:
+ script_pushint(st, it->flag.trade_restriction);
+ break;
default:
ShowError("buildin_getiteminfo: Invalid item type %d.\n", n);
script_pushint(st,-1);
@@ -14746,6 +14591,9 @@ static BUILDIN(setiteminfo)
case ITEMINFO_VIEWSPRITE:
it->view_sprite = value;
break;
+ case ITEMINFO_TRADE:
+ it->flag.trade_restriction = value;
+ break;
default:
ShowError("buildin_setiteminfo: invalid type %d.\n", n);
script_pushint(st,-1);
@@ -15428,6 +15276,50 @@ static BUILDIN(specialeffect2)
return true;
}
+static BUILDIN(removespecialeffect)
+{
+ struct block_list *bl = NULL;
+ int type = script_getnum(st, 2);
+ enum send_target target = AREA;
+
+ if (script_hasdata(st, 3)) {
+ target = script_getnum(st, 3);
+ }
+
+ if (script_hasdata(st, 4)) {
+ if (script_isstringtype(st, 4)) {
+ struct npc_data *nd = npc->name2id(script_getstr(st, 4));
+ if (nd != NULL) {
+ bl = &nd->bl;
+ }
+ } else {
+ bl = map->id2bl(script_getnum(st, 4));
+ }
+ } else {
+ bl = map->id2bl(st->oid);
+ }
+
+ if (bl == NULL) {
+ return true;
+ }
+
+ if (target == SELF) {
+ struct map_session_data *sd;
+ if (script_hasdata(st, 5)) {
+ sd = map->id2sd(script_getnum(st, 5));
+ } else {
+ sd = script->rid2sd(st);
+ }
+ if (sd != NULL) {
+ clif->removeSpecialEffect_single(bl, type, &sd->bl);
+ }
+ } else {
+ clif->removeSpecialEffect(bl, type, target);
+ }
+
+ return true;
+}
+
/*==========================================
* Nude [Valaris]
*------------------------------------------*/
@@ -16816,6 +16708,63 @@ static BUILDIN(getdatatype)
return true;
}
+static BUILDIN(data_to_string)
+{
+ if (script_hasdata(st, 2)) {
+ struct script_data *data = script_getdata(st, 2);
+
+ if (data_isstring(data)) {
+ script_pushcopy(st, 2);
+ } else if (data_isint(data)) {
+ char *str = NULL;
+
+ CREATE(str, char, 20);
+ safesnprintf(str, 20, "%"PRId64"", data->u.num);
+ script_pushstr(st, str);
+ } else if (data_islabel(data)) {
+ const char *str = "";
+
+ // XXX: because all we have is the label pos we can't be sure which
+ // one is the correct label if more than one has the same pos.
+ // We might want to store both the pos and str_data index in
+ // data->u.num, similar to how C_NAME stores both the array
+ // index and str_data index in u.num with bitmasking. This
+ // would also avoid the awkward for() loops as we could
+ // directly access the string with script->get_str().
+
+ if (st->oid) {
+ struct npc_data *nd = map->id2nd(st->oid);
+
+ for (int i = 0; i < nd->u.scr.label_list_num; ++i) {
+ if (nd->u.scr.label_list[i].pos == data->u.num) {
+ str = nd->u.scr.label_list[i].name;
+ break;
+ }
+ }
+ } else {
+ for (int i = LABEL_START; script->str_data[i].next != 0; i = script->str_data[i].next) {
+ if (script->str_data[i].label == data->u.num) {
+ str = script->get_str(i);
+ break;
+ }
+ }
+ }
+
+ script_pushconststr(st, str);
+ } else if (data_isreference(data)) {
+ script_pushstrcopy(st, reference_getname(data));
+ } else {
+ ShowWarning("script:data_to_string: unknown data type!\n");
+ script->reportdata(data);
+ script_pushconststr(st, "");
+ }
+ } else {
+ script_pushconststr(st, ""); // NIL
+ }
+
+ return true;
+}
+
//=======================================================
// chr <int>
//-------------------------------------------------------
@@ -17870,7 +17819,9 @@ static BUILDIN(getd)
id = script->add_variable(varname);
- if (script->str_data[id].type != C_NAME) {
+ if (script->str_data[id].type != C_NAME && // variable
+ script->str_data[id].type != C_PARAM && // param
+ script->str_data[id].type != C_INT) { // constant
ShowError("script:getd: `%s` is already used by something that is not a variable.\n", varname);
st->state = END;
return false;
@@ -20698,7 +20649,7 @@ static BUILDIN(getvariableofpc)
}
if (!sd->regs.vars)
- sd->regs.vars = i64db_alloc(DB_OPT_RELEASE_DATA);
+ sd->regs.vars = i64db_alloc(DB_OPT_BASE);
script->push_val(st->stack, C_NAME, reference_getuid(data), &sd->regs);
return true;
@@ -21190,6 +21141,17 @@ static BUILDIN(setquestinfo)
VECTOR_PUSH(qi->quest_requirement, quest_req);
break;
}
+ case QINFO_MERCENARY_CLASS:
+ {
+ int mer_class = script_getnum(st, 3);
+
+ if (!mercenary->class(mer_class)) {
+ ShowWarning("buildin_setquestinfo: invalid mercenary class given (%d).\n", mer_class);
+ return false;
+ }
+ qi->mercenary_class = mer_class;
+ break;
+ }
default:
ShowWarning("buildin_setquestinfo: invalid type given (%u).\n", type);
return false;
@@ -21343,18 +21305,7 @@ static BUILDIN(showevent)
}
}
-#if PACKETVER >= 20170315
- if (icon < 0 || (icon > 10 && icon != 9999))
- icon = 9999;
-#elif PACKETVER >= 20120410
- if (icon < 0 || (icon > 8 && icon != 9999) || icon == 7)
- icon = 9999; // Default to nothing if icon id is invalid.
-#else
- if (icon < 0 || icon > 7)
- icon = 0;
- else
- icon = icon + 1;
-#endif
+ icon = quest->questinfo_validate_icon(icon);
clif->quest_show_event(sd, &nd->bl, icon, color);
return true;
@@ -24803,6 +24754,42 @@ static BUILDIN(msgtable2)
return true;
}
+// show/hide camera info
+static BUILDIN(camerainfo)
+{
+ struct map_session_data *sd = script_rid2sd(st);
+ if (sd == NULL)
+ return false;
+
+ clif->camera_showWindow(sd);
+ return true;
+}
+
+// allow change some camera parameters
+static BUILDIN(changecamera)
+{
+ struct map_session_data *sd = script_rid2sd(st);
+ if (sd == NULL)
+ return false;
+
+ enum send_target target = SELF;
+ if (script_hasdata(st, 5)) {
+ target = script_getnum(st, 5);
+ }
+ clif->camera_change(sd, (float)script_getnum(st, 2), (float)script_getnum(st, 3), (float)script_getnum(st, 4), target);
+ return true;
+}
+
+// update preview window to given item
+static BUILDIN(itempreview)
+{
+ struct map_session_data *sd = script_rid2sd(st);
+ if (sd == NULL)
+ return false;
+ clif->item_preview(sd, script_getnum(st, 2));
+ return true;
+}
+
/**
* Adds a built-in script function.
*
@@ -24971,7 +24958,7 @@ static void script_parse_builtin(void)
BUILDIN_DEF(close2,""),
BUILDIN_DEF(menu,"sl*"),
BUILDIN_DEF(select,"s*"), //for future jA script compatibility
- BUILDIN_DEF(prompt,"s*"),
+ BUILDIN_DEF2(select, "prompt", "s*"),
//
BUILDIN_DEF(goto,"l"),
BUILDIN_DEF(callsub,"l*"),
@@ -25020,7 +25007,7 @@ static void script_parse_builtin(void)
BUILDIN_DEF(readparam,"i?"),
BUILDIN_DEF(setparam,"ii?"),
BUILDIN_DEF(getcharid,"i?"),
- BUILDIN_DEF(getnpcid,"i?"),
+ BUILDIN_DEF(getnpcid, "?"),
BUILDIN_DEF(getpartyname,"i"),
BUILDIN_DEF(getpartymember,"i?"),
BUILDIN_DEF(getpartyleader,"i?"),
@@ -25199,6 +25186,7 @@ static void script_parse_builtin(void)
BUILDIN_DEF(skilleffect,"vi"), // skill effect [Celest]
BUILDIN_DEF(npcskilleffect,"viii"), // npc skill effect [Valaris]
BUILDIN_DEF(specialeffect,"i???"), // npc skill effect [Valaris]
+ BUILDIN_DEF(removespecialeffect,"i???"),
BUILDIN_DEF_DEPRECATED(specialeffect2,"i??"), // skill effect on players[Valaris]
BUILDIN_DEF(nude,""), // nude command [Valaris]
BUILDIN_DEF(mapwarp,"ssii??"), // Added by RoVeRT
@@ -25251,6 +25239,8 @@ static void script_parse_builtin(void)
BUILDIN_DEF(charat,"si"),
BUILDIN_DEF(isstr,"v"),
BUILDIN_DEF(getdatatype, "?"),
+ BUILDIN_DEF(data_to_string, "?"),
+ BUILDIN_DEF2(getd, "string_to_data", "?"),
BUILDIN_DEF(chr,"i"),
BUILDIN_DEF(ord,"s"),
BUILDIN_DEF(setchar,"ssi"),
@@ -25532,6 +25522,12 @@ static void script_parse_builtin(void)
// -- HatEffect
BUILDIN_DEF(hateffect, "ii"),
+
+ // camera
+ BUILDIN_DEF(camerainfo, ""),
+ BUILDIN_DEF(changecamera, "iii?"),
+
+ BUILDIN_DEF(itempreview, "i"),
};
int i, len = ARRAYLENGTH(BUILDIN);
RECREATE(script->buildin, char *, script->buildin_count + len); // Pre-alloc to speed up
@@ -25578,6 +25574,8 @@ static void script_hardcoded_constants(void)
script->set_constant("MAX_BG_MEMBERS",MAX_BG_MEMBERS,false, false);
script->set_constant("MAX_CHAT_USERS",MAX_CHAT_USERS,false, false);
script->set_constant("MAX_REFINE",MAX_REFINE,false, false);
+ script->set_constant("MAX_MENU_OPTIONS", MAX_MENU_OPTIONS, false, false);
+ script->set_constant("MAX_MENU_LENGTH", MAX_MENU_LENGTH, false, false);
script->constdb_comment("status options");
script->set_constant("Option_Nothing",OPTION_NOTHING,false, false);
@@ -25847,6 +25845,7 @@ static void script_hardcoded_constants(void)
script->set_constant("ITEMINFO_VIEWID", ITEMINFO_VIEWID, false, false);
script->set_constant("ITEMINFO_MATK", ITEMINFO_MATK, false, false);
script->set_constant("ITEMINFO_VIEWSPRITE", ITEMINFO_VIEWSPRITE, false, false);
+ script->set_constant("ITEMINFO_TRADE", ITEMINFO_TRADE, false, false);
script->constdb_comment("monster skill states");
script->set_constant("MSS_ANY", MSS_ANY, false, false);
@@ -25930,6 +25929,7 @@ static void script_hardcoded_constants(void)
script->set_constant("QINFO_HOMUN_LEVEL", QINFO_HOMUN_LEVEL, false, false);
script->set_constant("QINFO_HOMUN_TYPE", QINFO_HOMUN_TYPE, false, false);
script->set_constant("QINFO_QUEST", QINFO_QUEST, false, false);
+ script->set_constant("QINFO_MERCENARY_CLASS", QINFO_MERCENARY_CLASS, false, false);
script->constdb_comment("function types");
script->set_constant("FUNCTION_IS_COMMAND", FUNCTION_IS_COMMAND, false, false);
@@ -25937,6 +25937,20 @@ static void script_hardcoded_constants(void)
script->set_constant("FUNCTION_IS_LOCAL", FUNCTION_IS_LOCAL, false, false);
script->set_constant("FUNCTION_IS_LABEL", FUNCTION_IS_LABEL, false, false);
+ script->constdb_comment("item trade restrictions");
+ script->set_constant("ITR_NONE", ITR_NONE, false, false);
+ script->set_constant("ITR_NODROP", ITR_NODROP, false, false);
+ script->set_constant("ITR_NOTRADE", ITR_NOTRADE, false, false);
+ script->set_constant("ITR_PARTNEROVERRIDE", ITR_PARTNEROVERRIDE, false, false);
+ script->set_constant("ITR_NOSELLTONPC", ITR_NOSELLTONPC, false, false);
+ script->set_constant("ITR_NOCART", ITR_NOCART, false, false);
+ script->set_constant("ITR_NOSTORAGE", ITR_NOSTORAGE, false, false);
+ script->set_constant("ITR_NOGSTORAGE", ITR_NOGSTORAGE, false, false);
+ script->set_constant("ITR_NOMAIL", ITR_NOMAIL, false, false);
+ script->set_constant("ITR_NOAUCTION", ITR_NOAUCTION, false, false);
+ script->set_constant("ITR_ALL", ITR_ALL, false, false);
+
+
script->constdb_comment("Renewal");
#ifdef RENEWAL
script->set_constant("RENEWAL", 1, false, false);
diff --git a/src/map/script.h b/src/map/script.h
index 9c72b793c..549ad3284 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -64,6 +64,9 @@ struct item_data;
#define SCRIPT_EQUIP_TABLE_SIZE 20
+#define MAX_MENU_OPTIONS 0xFF
+#define MAX_MENU_LENGTH 0x800
+
//#define SCRIPT_DEBUG_DISP
//#define SCRIPT_DEBUG_DISASM
//#define SCRIPT_DEBUG_HASH
@@ -177,6 +180,8 @@ struct item_data;
#define BUILDIN(x) bool buildin_ ## x (struct script_state* st)
+#define get_buildin_name(st) ( script->get_str((int)(script_getdata((st), 0)->u.num)) )
+
#define script_fetch(st, n, t) do { \
if( script_hasdata((st),(n)) ) \
(t)=script_getnum((st),(n)); \
@@ -450,6 +455,7 @@ enum script_iteminfo_types {
ITEMINFO_VIEWID,
ITEMINFO_MATK,
ITEMINFO_VIEWSPRITE,
+ ITEMINFO_TRADE,
ITEMINFO_MAX
};
diff --git a/src/map/skill.c b/src/map/skill.c
index 4eaab5457..9857badbe 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -4138,7 +4138,7 @@ static int skill_activate_reverberation(struct block_list *bl, va_list ap)
if( su->alive && (sg = su->group) != NULL && sg->skill_id == WM_REVERBERATION && sg->unit_id == UNT_REVERBERATION ) {
int64 tick = timer->gettick();
clif->changetraplook(bl,UNT_USED_TRAPS);
- map->foreachinrange(skill->trap_splash, bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, bl, tick);
+ skill->trap_do_splash(bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
su->limit = DIFF_TICK32(tick,sg->tick)+1500;
sg->unit_id = UNT_USED_TRAPS;
}
@@ -12644,7 +12644,7 @@ static int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int
if (sg->src_id == bl->id)
break; //Does not affect the caster.
clif->changetraplook(&src->bl,UNT_USED_TRAPS);
- map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
sg->unit_id = UNT_USED_TRAPS;
sg->limit = DIFF_TICK32(tick,sg->tick) + 1500;
break;
@@ -12938,7 +12938,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b
}
- map->foreachinrange(skill->trap_splash, &src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl, tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again.
}
break;
@@ -12969,10 +12969,10 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b
case UNT_FREEZINGTRAP:
case UNT_FIREPILLAR_ACTIVE:
case UNT_CLAYMORETRAP:
- if( sg->unit_id == UNT_FIRINGTRAP || sg->unit_id == UNT_ICEBOUNDTRAP || sg->unit_id == UNT_CLAYMORETRAP )
- map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag|BL_SKILL|~BCT_SELF, &src->bl,tick);
+ if (sg->unit_id == UNT_FIRINGTRAP || sg->unit_id == UNT_ICEBOUNDTRAP || sg->unit_id == UNT_CLAYMORETRAP)
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag | BL_SKILL | ~BCT_SELF, tick);
else
- map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
if (sg->unit_id != UNT_FIREPILLAR_ACTIVE)
clif->changetraplook(&src->bl, sg->unit_id==UNT_LANDMINE?UNT_FIREPILLAR_ACTIVE:UNT_USED_TRAPS);
sg->limit=DIFF_TICK32(tick,sg->tick)+1500 +
@@ -13203,9 +13203,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b
case UNT_GROUNDDRIFT_POISON:
case UNT_GROUNDDRIFT_WATER:
case UNT_GROUNDDRIFT_FIRE:
- map->foreachinrange(skill->trap_splash,&src->bl,
- skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag,
- &src->bl,tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
sg->unit_id = UNT_USED_TRAPS;
//clif->changetraplook(&src->bl, UNT_FIREPILLAR_ACTIVE);
sg->limit=DIFF_TICK32(tick,sg->tick)+1500;
@@ -13266,7 +13264,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b
case UNT_REVERBERATION:
clif->changetraplook(&src->bl,UNT_USED_TRAPS);
- map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
sg->limit = DIFF_TICK32(tick,sg->tick)+1500;
sg->unit_id = UNT_USED_TRAPS;
break;
@@ -16630,10 +16628,10 @@ static int skill_detonator(struct block_list *bl, va_list ap)
case UNT_CLAYMORETRAP:
case UNT_FIRINGTRAP:
case UNT_ICEBOUNDTRAP:
- map->foreachinrange(skill->trap_splash,bl,skill->get_splash(su->group->skill_id,su->group->skill_lv),su->group->bl_flag|BL_SKILL|~BCT_SELF,bl,su->group->tick);
+ skill->trap_do_splash(bl, su->group->skill_id, su->group->skill_lv, su->group->bl_flag | BL_SKILL | ~BCT_SELF, su->group->tick);
break;
default:
- map->foreachinrange(skill->trap_splash,bl,skill->get_splash(su->group->skill_id,su->group->skill_lv),su->group->bl_flag,bl,su->group->tick);
+ skill->trap_do_splash(bl, su->group->skill_id, su->group->skill_lv, su->group->bl_flag, su->group->tick);
}
clif->changetraplook(bl, UNT_USED_TRAPS);
su->group->limit = DIFF_TICK32(timer->gettick(),su->group->tick) +
@@ -16766,6 +16764,27 @@ static int skill_chastle_mob_changetarget(struct block_list *bl, va_list ap)
return 0;
}
+/**
+ * Does final adjustments (e.g. count enemies affected by splash) then runs trap splash function (skill_trap_splash).
+ *
+ * @param bl : trap skill unit's bl
+ * @param skill_id : Trap Skill ID
+ * @param skill_lv : Trap Skill Level
+ * @param bl_flag : Flag representing units affected by this trap
+ * @param tick : tick related to this trap
+ */
+static void skill_trap_do_splash(struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick)
+{
+ int enemy_count = 0;
+
+ if (skill->get_nk(skill_id) & NK_SPLASHSPLIT) {
+ enemy_count = map->foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), BL_CHAR, bl, skill_id, skill_lv, tick, BCT_ENEMY, skill->area_sub_count);
+ enemy_count = max(1, enemy_count); // Don't let enemy_count be 0 when spliting trap damage
+ }
+
+ map->foreachinrange(skill->trap_splash, bl, skill->get_splash(skill_id, skill_lv), bl_flag, bl, tick, enemy_count);
+}
+
/*==========================================
*
*------------------------------------------*/
@@ -16776,6 +16795,7 @@ static int skill_trap_splash(struct block_list *bl, va_list ap)
struct skill_unit *src_su = NULL;
struct skill_unit_group *sg;
struct block_list *ss;
+ int enemy_count = va_arg(ap, int);
nullpo_ret(bl);
nullpo_ret(src);
@@ -16870,7 +16890,7 @@ static int skill_trap_splash(struct block_list *bl, va_list ap)
}
/* Fall through */
default:
- skill->attack(skill->get_type(sg->skill_id),ss,src,bl,sg->skill_id,sg->skill_lv,tick,0);
+ skill->attack(skill->get_type(sg->skill_id), ss, src, bl, sg->skill_id, sg->skill_lv, tick, enemy_count);
break;
}
return 1;
@@ -17585,7 +17605,7 @@ static int skill_unit_timer_sub(union DBKey key, struct DBData *data, va_list ap
break;
}
clif->changetraplook(bl,UNT_USED_TRAPS);
- map->foreachinrange(skill->trap_splash, bl, skill->get_splash(group->skill_id, group->skill_lv), group->bl_flag, bl, tick);
+ skill->trap_do_splash(bl, group->skill_id, group->skill_lv, group->bl_flag, tick);
group->limit = DIFF_TICK32(tick,group->tick)+1500;
su->limit = DIFF_TICK32(tick,group->tick)+1500;
group->unit_id = UNT_USED_TRAPS;
@@ -18973,7 +18993,7 @@ static int skill_destroy_trap(struct block_list *bl, va_list ap)
case UNT_CLAYMORETRAP:
case UNT_FIRINGTRAP:
case UNT_ICEBOUNDTRAP:
- map->foreachinrange(skill->trap_splash,&su->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag|BL_SKILL|~BCT_SELF, &su->bl,tick);
+ skill->trap_do_splash(&su->bl, sg->skill_id, sg->skill_lv, sg->bl_flag | BL_SKILL | ~BCT_SELF, tick);
break;
case UNT_LANDMINE:
case UNT_BLASTMINE:
@@ -18982,7 +19002,7 @@ static int skill_destroy_trap(struct block_list *bl, va_list ap)
case UNT_FLASHER:
case UNT_FREEZINGTRAP:
case UNT_CLUSTERBOMB:
- map->foreachinrange(skill->trap_splash,&su->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &su->bl,tick);
+ skill->trap_do_splash(&su->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
break;
}
// Traps aren't recovered.
@@ -21578,6 +21598,7 @@ void skill_defaults(void)
skill->onskillusage = skill_onskillusage;
skill->cell_overlap = skill_cell_overlap;
skill->timerskill = skill_timerskill;
+ skill->trap_do_splash = skill_trap_do_splash;
skill->trap_splash = skill_trap_splash;
skill->check_condition_mercenary = skill_check_condition_mercenary;
skill->locate_element_field = skill_locate_element_field;
diff --git a/src/map/skill.h b/src/map/skill.h
index 97134224e..0ace19927 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -2059,6 +2059,7 @@ struct skill_interface {
int (*onskillusage) (struct map_session_data *sd, struct block_list *bl, uint16 skill_id, int64 tick);
int (*cell_overlap) (struct block_list *bl, va_list ap);
int (*timerskill) (int tid, int64 tick, int id, intptr_t data);
+ void (*trap_do_splash) (struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick);
int (*trap_splash) (struct block_list *bl, va_list ap);
int (*check_condition_mercenary) (struct block_list *bl, int skill_id, int lv, int type);
struct skill_unit_group *(*locate_element_field) (struct block_list *bl);
diff --git a/src/map/status.c b/src/map/status.c
index 2bd3700b3..370432ce7 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -10557,20 +10557,9 @@ static bool status_is_immune_to_status(struct status_change *sc, enum sc_type ty
if (type >= SC_COMMON_MIN && type <= SC_COMMON_MAX) // Confirmed.
return true; // Immune to status ailements
switch (type) {
- case SC_DEEP_SLEEP:
case SC__CHAOS:
- case SC_BURNING:
- case SC_STUN:
- case SC_SLEEP:
- case SC_CURSE:
case SC_STONE:
- case SC_POISON:
- case SC_BLIND:
- case SC_SILENCE:
- case SC_BLOODING:
- case SC_FREEZE:
case SC_FROSTMISTY:
- case SC_COLD:
case SC_TOXIN:
case SC_PARALYSE:
case SC_VENOMBLEED:
@@ -10586,20 +10575,9 @@ static bool status_is_immune_to_status(struct status_change *sc, enum sc_type ty
if (type >= SC_COMMON_MIN && type <= SC_COMMON_MAX)
return true; // Immune to status ailements
switch (type) {
- case SC_POISON:
- case SC_BLIND:
- case SC_STUN:
- case SC_SILENCE:
case SC__CHAOS:
case SC_STONE:
- case SC_SLEEP:
- case SC_BLOODING:
- case SC_CURSE:
- case SC_BURNING:
case SC_FROSTMISTY:
- case SC_FREEZE:
- case SC_COLD:
- case SC_FEAR:
case SC_TOXIN:
case SC_PARALYSE:
case SC_VENOMBLEED:
@@ -10608,7 +10586,6 @@ static bool status_is_immune_to_status(struct status_change *sc, enum sc_type ty
case SC_PYREXIA:
case SC_OBLIVIONCURSE:
case SC_LEECHESEND:
- case SC_DEEP_SLEEP:
case SC_SATURDAY_NIGHT_FEVER:
case SC__BODYPAINT:
case SC__ENERVATION:
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc
index f80dc9003..72387a8af 100644
--- a/src/plugins/HPMHooking/HPMHooking.Defs.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc
@@ -176,8 +176,12 @@ typedef void (*HPMHOOK_pre_achievement_init_titles) (struct map_session_data **s
typedef void (*HPMHOOK_post_achievement_init_titles) (struct map_session_data *sd);
typedef bool (*HPMHOOK_pre_achievement_check_title) (struct map_session_data **sd, int *title_id);
typedef bool (*HPMHOOK_post_achievement_check_title) (bool retVal___, struct map_session_data *sd, int title_id);
-typedef void (*HPMHOOK_pre_achievement_get_rewards) (struct map_session_data **sd, const struct achievement_data **ad);
-typedef void (*HPMHOOK_post_achievement_get_rewards) (struct map_session_data *sd, const struct achievement_data *ad);
+typedef bool (*HPMHOOK_pre_achievement_get_rewards) (struct map_session_data **sd, const struct achievement_data **ad);
+typedef bool (*HPMHOOK_post_achievement_get_rewards) (bool retVal___, struct map_session_data *sd, const struct achievement_data *ad);
+typedef void (*HPMHOOK_pre_achievement_get_rewards_buffs) (struct map_session_data **sd, const struct achievement_data **ad);
+typedef void (*HPMHOOK_post_achievement_get_rewards_buffs) (struct map_session_data *sd, const struct achievement_data *ad);
+typedef void (*HPMHOOK_pre_achievement_get_rewards_items) (struct map_session_data **sd, const struct achievement_data **ad);
+typedef void (*HPMHOOK_post_achievement_get_rewards_items) (struct map_session_data *sd, const struct achievement_data *ad);
#endif // MAP_ACHIEVEMENT_H
#ifdef MAP_ATCOMMAND_H /* atcommand */
typedef void (*HPMHOOK_pre_atcommand_init) (bool *minimal);
@@ -278,6 +282,8 @@ typedef void (*HPMHOOK_pre_battle_drain) (struct map_session_data **sd, struct b
typedef void (*HPMHOOK_post_battle_drain) (struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss);
typedef void (*HPMHOOK_pre_battle_reflect_damage) (struct block_list **target, struct block_list **src, struct Damage **wd, uint16 *skill_id);
typedef void (*HPMHOOK_post_battle_reflect_damage) (struct block_list *target, struct block_list *src, struct Damage *wd, uint16 skill_id);
+typedef void (*HPMHOOK_pre_battle_reflect_trap) (struct block_list **target, struct block_list **src, struct Damage **md, uint16 *skill_id);
+typedef void (*HPMHOOK_post_battle_reflect_trap) (struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id);
typedef int (*HPMHOOK_pre_battle_attr_ratio) (int *atk_elem, int *def_type, int *def_lv);
typedef int (*HPMHOOK_post_battle_attr_ratio) (int retVal___, int atk_elem, int def_type, int def_lv);
typedef int64 (*HPMHOOK_pre_battle_attr_fix) (struct block_list **src, struct block_list **target, int64 *damage, int *atk_elem, int *def_type, int *def_lv);
@@ -1512,6 +1518,10 @@ typedef void (*HPMHOOK_pre_clif_specialeffect_single) (struct block_list **bl, i
typedef void (*HPMHOOK_post_clif_specialeffect_single) (struct block_list *bl, int type, int fd);
typedef void (*HPMHOOK_pre_clif_specialeffect_value) (struct block_list **bl, int *effect_id, int *num, send_target *target);
typedef void (*HPMHOOK_post_clif_specialeffect_value) (struct block_list *bl, int effect_id, int num, send_target target);
+typedef void (*HPMHOOK_pre_clif_removeSpecialEffect) (struct block_list **bl, int *effectId, enum send_target *target);
+typedef void (*HPMHOOK_post_clif_removeSpecialEffect) (struct block_list *bl, int effectId, enum send_target target);
+typedef void (*HPMHOOK_pre_clif_removeSpecialEffect_single) (struct block_list **bl, int *effectId, struct block_list **targetBl);
+typedef void (*HPMHOOK_post_clif_removeSpecialEffect_single) (struct block_list *bl, int effectId, struct block_list *targetBl);
typedef void (*HPMHOOK_pre_clif_millenniumshield) (struct block_list **bl, short *shields);
typedef void (*HPMHOOK_post_clif_millenniumshield) (struct block_list *bl, short shields);
typedef void (*HPMHOOK_pre_clif_spiritcharm) (struct map_session_data **sd);
@@ -2616,6 +2626,12 @@ typedef void (*HPMHOOK_pre_clif_party_dead_notification) (struct map_session_dat
typedef void (*HPMHOOK_post_clif_party_dead_notification) (struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pMemorialDungeonCommand) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_pMemorialDungeonCommand) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_camera_showWindow) (struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_camera_showWindow) (struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_camera_change) (struct map_session_data **sd, float *range, float *rotation, float *latitude, enum send_target *target);
+typedef void (*HPMHOOK_post_clif_camera_change) (struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target);
+typedef void (*HPMHOOK_pre_clif_item_preview) (struct map_session_data **sd, int *n);
+typedef void (*HPMHOOK_post_clif_item_preview) (struct map_session_data *sd, int n);
#endif // MAP_CLIF_H
#ifdef COMMON_CORE_H /* cmdline */
typedef void (*HPMHOOK_pre_cmdline_init) (void);
@@ -4442,6 +4458,8 @@ typedef void (*HPMHOOK_pre_map_zone_init) (void);
typedef void (*HPMHOOK_post_map_zone_init) (void);
typedef void (*HPMHOOK_pre_map_zone_remove) (int *m);
typedef void (*HPMHOOK_post_map_zone_remove) (int m);
+typedef void (*HPMHOOK_pre_map_zone_remove_all) (int *m);
+typedef void (*HPMHOOK_post_map_zone_remove_all) (int m);
typedef void (*HPMHOOK_pre_map_zone_apply) (int *m, struct map_zone_data **zone, const char **start, const char **buffer, const char **filepath);
typedef void (*HPMHOOK_post_map_zone_apply) (int m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath);
typedef void (*HPMHOOK_pre_map_zone_change) (int *m, struct map_zone_data **zone, const char **start, const char **buffer, const char **filepath);
@@ -5872,8 +5890,8 @@ typedef int (*HPMHOOK_pre_pc_search_inventory) (struct map_session_data **sd, in
typedef int (*HPMHOOK_post_pc_search_inventory) (int retVal___, struct map_session_data *sd, int item_id);
typedef int (*HPMHOOK_pre_pc_payzeny) (struct map_session_data **sd, int *zeny, enum e_log_pick_type *type, struct map_session_data **tsd);
typedef int (*HPMHOOK_post_pc_payzeny) (int retVal___, struct map_session_data *sd, int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
-typedef int (*HPMHOOK_pre_pc_additem) (struct map_session_data **sd, struct item **item_data, int *amount, e_log_pick_type *log_type);
-typedef int (*HPMHOOK_post_pc_additem) (int retVal___, struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type);
+typedef int (*HPMHOOK_pre_pc_additem) (struct map_session_data **sd, const struct item **item_data, int *amount, e_log_pick_type *log_type);
+typedef int (*HPMHOOK_post_pc_additem) (int retVal___, struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type);
typedef int (*HPMHOOK_pre_pc_getzeny) (struct map_session_data **sd, int *zeny, enum e_log_pick_type *type, struct map_session_data **tsd);
typedef int (*HPMHOOK_post_pc_getzeny) (int retVal___, struct map_session_data *sd, int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
typedef int (*HPMHOOK_pre_pc_delitem) (struct map_session_data **sd, int *n, int *amount, int *type, short *reason, e_log_pick_type *log_type);
@@ -6468,6 +6486,8 @@ typedef bool (*HPMHOOK_pre_quest_questinfo_validate_homunculus_type) (struct map
typedef bool (*HPMHOOK_post_quest_questinfo_validate_homunculus_type) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
typedef bool (*HPMHOOK_pre_quest_questinfo_validate_quests) (struct map_session_data **sd, struct questinfo **qi);
typedef bool (*HPMHOOK_post_quest_questinfo_validate_quests) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_mercenary_class) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_mercenary_class) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
typedef void (*HPMHOOK_pre_quest_questinfo_vector_clear) (int *m);
typedef void (*HPMHOOK_post_quest_questinfo_vector_clear) (int m);
#endif // MAP_QUEST_H
@@ -7186,6 +7206,8 @@ typedef int (*HPMHOOK_pre_skill_cell_overlap) (struct block_list **bl, va_list a
typedef int (*HPMHOOK_post_skill_cell_overlap) (int retVal___, struct block_list *bl, va_list ap);
typedef int (*HPMHOOK_pre_skill_timerskill) (int *tid, int64 *tick, int *id, intptr_t *data);
typedef int (*HPMHOOK_post_skill_timerskill) (int retVal___, int tid, int64 tick, int id, intptr_t data);
+typedef void (*HPMHOOK_pre_skill_trap_do_splash) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int *bl_flag, int64 *tick);
+typedef void (*HPMHOOK_post_skill_trap_do_splash) (struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick);
typedef int (*HPMHOOK_pre_skill_trap_splash) (struct block_list **bl, va_list ap);
typedef int (*HPMHOOK_post_skill_trap_splash) (int retVal___, struct block_list *bl, va_list ap);
typedef int (*HPMHOOK_pre_skill_check_condition_mercenary) (struct block_list **bl, int *skill_id, int *lv, int *type);
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index 8762975e1..873e82c48 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -136,6 +136,10 @@ struct {
struct HPMHookPoint *HP_achievement_check_title_post;
struct HPMHookPoint *HP_achievement_get_rewards_pre;
struct HPMHookPoint *HP_achievement_get_rewards_post;
+ struct HPMHookPoint *HP_achievement_get_rewards_buffs_pre;
+ struct HPMHookPoint *HP_achievement_get_rewards_buffs_post;
+ struct HPMHookPoint *HP_achievement_get_rewards_items_pre;
+ struct HPMHookPoint *HP_achievement_get_rewards_items_post;
struct HPMHookPoint *HP_atcommand_init_pre;
struct HPMHookPoint *HP_atcommand_init_post;
struct HPMHookPoint *HP_atcommand_final_pre;
@@ -232,6 +236,8 @@ struct {
struct HPMHookPoint *HP_battle_drain_post;
struct HPMHookPoint *HP_battle_reflect_damage_pre;
struct HPMHookPoint *HP_battle_reflect_damage_post;
+ struct HPMHookPoint *HP_battle_reflect_trap_pre;
+ struct HPMHookPoint *HP_battle_reflect_trap_post;
struct HPMHookPoint *HP_battle_attr_ratio_pre;
struct HPMHookPoint *HP_battle_attr_ratio_post;
struct HPMHookPoint *HP_battle_attr_fix_pre;
@@ -1104,6 +1110,10 @@ struct {
struct HPMHookPoint *HP_clif_specialeffect_single_post;
struct HPMHookPoint *HP_clif_specialeffect_value_pre;
struct HPMHookPoint *HP_clif_specialeffect_value_post;
+ struct HPMHookPoint *HP_clif_removeSpecialEffect_pre;
+ struct HPMHookPoint *HP_clif_removeSpecialEffect_post;
+ struct HPMHookPoint *HP_clif_removeSpecialEffect_single_pre;
+ struct HPMHookPoint *HP_clif_removeSpecialEffect_single_post;
struct HPMHookPoint *HP_clif_millenniumshield_pre;
struct HPMHookPoint *HP_clif_millenniumshield_post;
struct HPMHookPoint *HP_clif_spiritcharm_pre;
@@ -2208,6 +2218,12 @@ struct {
struct HPMHookPoint *HP_clif_party_dead_notification_post;
struct HPMHookPoint *HP_clif_pMemorialDungeonCommand_pre;
struct HPMHookPoint *HP_clif_pMemorialDungeonCommand_post;
+ struct HPMHookPoint *HP_clif_camera_showWindow_pre;
+ struct HPMHookPoint *HP_clif_camera_showWindow_post;
+ struct HPMHookPoint *HP_clif_camera_change_pre;
+ struct HPMHookPoint *HP_clif_camera_change_post;
+ struct HPMHookPoint *HP_clif_item_preview_pre;
+ struct HPMHookPoint *HP_clif_item_preview_post;
struct HPMHookPoint *HP_cmdline_init_pre;
struct HPMHookPoint *HP_cmdline_init_post;
struct HPMHookPoint *HP_cmdline_final_pre;
@@ -3372,6 +3388,8 @@ struct {
struct HPMHookPoint *HP_map_zone_init_post;
struct HPMHookPoint *HP_map_zone_remove_pre;
struct HPMHookPoint *HP_map_zone_remove_post;
+ struct HPMHookPoint *HP_map_zone_remove_all_pre;
+ struct HPMHookPoint *HP_map_zone_remove_all_post;
struct HPMHookPoint *HP_map_zone_apply_pre;
struct HPMHookPoint *HP_map_zone_apply_post;
struct HPMHookPoint *HP_map_zone_change_pre;
@@ -4996,6 +5014,8 @@ struct {
struct HPMHookPoint *HP_quest_questinfo_validate_homunculus_type_post;
struct HPMHookPoint *HP_quest_questinfo_validate_quests_pre;
struct HPMHookPoint *HP_quest_questinfo_validate_quests_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_mercenary_class_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_mercenary_class_post;
struct HPMHookPoint *HP_quest_questinfo_vector_clear_pre;
struct HPMHookPoint *HP_quest_questinfo_vector_clear_post;
struct HPMHookPoint *HP_rnd_init_pre;
@@ -5702,6 +5722,8 @@ struct {
struct HPMHookPoint *HP_skill_cell_overlap_post;
struct HPMHookPoint *HP_skill_timerskill_pre;
struct HPMHookPoint *HP_skill_timerskill_post;
+ struct HPMHookPoint *HP_skill_trap_do_splash_pre;
+ struct HPMHookPoint *HP_skill_trap_do_splash_post;
struct HPMHookPoint *HP_skill_trap_splash_pre;
struct HPMHookPoint *HP_skill_trap_splash_post;
struct HPMHookPoint *HP_skill_check_condition_mercenary_pre;
@@ -6719,6 +6741,10 @@ struct {
int HP_achievement_check_title_post;
int HP_achievement_get_rewards_pre;
int HP_achievement_get_rewards_post;
+ int HP_achievement_get_rewards_buffs_pre;
+ int HP_achievement_get_rewards_buffs_post;
+ int HP_achievement_get_rewards_items_pre;
+ int HP_achievement_get_rewards_items_post;
int HP_atcommand_init_pre;
int HP_atcommand_init_post;
int HP_atcommand_final_pre;
@@ -6815,6 +6841,8 @@ struct {
int HP_battle_drain_post;
int HP_battle_reflect_damage_pre;
int HP_battle_reflect_damage_post;
+ int HP_battle_reflect_trap_pre;
+ int HP_battle_reflect_trap_post;
int HP_battle_attr_ratio_pre;
int HP_battle_attr_ratio_post;
int HP_battle_attr_fix_pre;
@@ -7687,6 +7715,10 @@ struct {
int HP_clif_specialeffect_single_post;
int HP_clif_specialeffect_value_pre;
int HP_clif_specialeffect_value_post;
+ int HP_clif_removeSpecialEffect_pre;
+ int HP_clif_removeSpecialEffect_post;
+ int HP_clif_removeSpecialEffect_single_pre;
+ int HP_clif_removeSpecialEffect_single_post;
int HP_clif_millenniumshield_pre;
int HP_clif_millenniumshield_post;
int HP_clif_spiritcharm_pre;
@@ -8791,6 +8823,12 @@ struct {
int HP_clif_party_dead_notification_post;
int HP_clif_pMemorialDungeonCommand_pre;
int HP_clif_pMemorialDungeonCommand_post;
+ int HP_clif_camera_showWindow_pre;
+ int HP_clif_camera_showWindow_post;
+ int HP_clif_camera_change_pre;
+ int HP_clif_camera_change_post;
+ int HP_clif_item_preview_pre;
+ int HP_clif_item_preview_post;
int HP_cmdline_init_pre;
int HP_cmdline_init_post;
int HP_cmdline_final_pre;
@@ -9955,6 +9993,8 @@ struct {
int HP_map_zone_init_post;
int HP_map_zone_remove_pre;
int HP_map_zone_remove_post;
+ int HP_map_zone_remove_all_pre;
+ int HP_map_zone_remove_all_post;
int HP_map_zone_apply_pre;
int HP_map_zone_apply_post;
int HP_map_zone_change_pre;
@@ -11579,6 +11619,8 @@ struct {
int HP_quest_questinfo_validate_homunculus_type_post;
int HP_quest_questinfo_validate_quests_pre;
int HP_quest_questinfo_validate_quests_post;
+ int HP_quest_questinfo_validate_mercenary_class_pre;
+ int HP_quest_questinfo_validate_mercenary_class_post;
int HP_quest_questinfo_vector_clear_pre;
int HP_quest_questinfo_vector_clear_post;
int HP_rnd_init_pre;
@@ -12285,6 +12327,8 @@ struct {
int HP_skill_cell_overlap_post;
int HP_skill_timerskill_pre;
int HP_skill_timerskill_post;
+ int HP_skill_trap_do_splash_pre;
+ int HP_skill_trap_do_splash_post;
int HP_skill_trap_splash_pre;
int HP_skill_trap_splash_post;
int HP_skill_check_condition_mercenary_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index 2f3f1840f..838968ce0 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -83,6 +83,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(achievement->init_titles, HP_achievement_init_titles) },
{ HP_POP(achievement->check_title, HP_achievement_check_title) },
{ HP_POP(achievement->get_rewards, HP_achievement_get_rewards) },
+ { HP_POP(achievement->get_rewards_buffs, HP_achievement_get_rewards_buffs) },
+ { HP_POP(achievement->get_rewards_items, HP_achievement_get_rewards_items) },
/* atcommand_interface */
{ HP_POP(atcommand->init, HP_atcommand_init) },
{ HP_POP(atcommand->final, HP_atcommand_final) },
@@ -133,6 +135,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(battle->delay_damage, HP_battle_delay_damage) },
{ HP_POP(battle->drain, HP_battle_drain) },
{ HP_POP(battle->reflect_damage, HP_battle_reflect_damage) },
+ { HP_POP(battle->reflect_trap, HP_battle_reflect_trap) },
{ HP_POP(battle->attr_ratio, HP_battle_attr_ratio) },
{ HP_POP(battle->attr_fix, HP_battle_attr_fix) },
{ HP_POP(battle->calc_cardfix, HP_battle_calc_cardfix) },
@@ -576,6 +579,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->specialeffect, HP_clif_specialeffect) },
{ HP_POP(clif->specialeffect_single, HP_clif_specialeffect_single) },
{ HP_POP(clif->specialeffect_value, HP_clif_specialeffect_value) },
+ { HP_POP(clif->removeSpecialEffect, HP_clif_removeSpecialEffect) },
+ { HP_POP(clif->removeSpecialEffect_single, HP_clif_removeSpecialEffect_single) },
{ HP_POP(clif->millenniumshield, HP_clif_millenniumshield) },
{ HP_POP(clif->spiritcharm, HP_clif_spiritcharm) },
{ HP_POP(clif->charm_single, HP_clif_charm_single) },
@@ -1128,6 +1133,9 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->petEvolutionResult, HP_clif_petEvolutionResult) },
{ HP_POP(clif->party_dead_notification, HP_clif_party_dead_notification) },
{ HP_POP(clif->pMemorialDungeonCommand, HP_clif_pMemorialDungeonCommand) },
+ { HP_POP(clif->camera_showWindow, HP_clif_camera_showWindow) },
+ { HP_POP(clif->camera_change, HP_clif_camera_change) },
+ { HP_POP(clif->item_preview, HP_clif_item_preview) },
/* cmdline_interface */
{ HP_POP(cmdline->init, HP_cmdline_init) },
{ HP_POP(cmdline->final, HP_cmdline_final) },
@@ -1729,6 +1737,7 @@ struct HookingPointData HookingPoints[] = {
/* map_interface */
{ HP_POP(map->zone_init, HP_map_zone_init) },
{ HP_POP(map->zone_remove, HP_map_zone_remove) },
+ { HP_POP(map->zone_remove_all, HP_map_zone_remove_all) },
{ HP_POP(map->zone_apply, HP_map_zone_apply) },
{ HP_POP(map->zone_change, HP_map_zone_change) },
{ HP_POP(map->zone_change2, HP_map_zone_change2) },
@@ -2558,6 +2567,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(quest->questinfo_validate_homunculus_level, HP_quest_questinfo_validate_homunculus_level) },
{ HP_POP(quest->questinfo_validate_homunculus_type, HP_quest_questinfo_validate_homunculus_type) },
{ HP_POP(quest->questinfo_validate_quests, HP_quest_questinfo_validate_quests) },
+ { HP_POP(quest->questinfo_validate_mercenary_class, HP_quest_questinfo_validate_mercenary_class) },
{ HP_POP(quest->questinfo_vector_clear, HP_quest_questinfo_vector_clear) },
/* rnd_interface */
{ HP_POP(rnd->init, HP_rnd_init) },
@@ -2917,6 +2927,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->onskillusage, HP_skill_onskillusage) },
{ HP_POP(skill->cell_overlap, HP_skill_cell_overlap) },
{ HP_POP(skill->timerskill, HP_skill_timerskill) },
+ { HP_POP(skill->trap_do_splash, HP_skill_trap_do_splash) },
{ HP_POP(skill->trap_splash, HP_skill_trap_splash) },
{ HP_POP(skill->check_condition_mercenary, HP_skill_check_condition_mercenary) },
{ HP_POP(skill->locate_element_field, HP_skill_locate_element_field) },
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index 860e47f1b..d8f515444 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -1459,27 +1459,80 @@ bool HP_achievement_check_title(struct map_session_data *sd, int title_id) {
}
return retVal___;
}
-void HP_achievement_get_rewards(struct map_session_data *sd, const struct achievement_data *ad) {
+bool HP_achievement_get_rewards(struct map_session_data *sd, const struct achievement_data *ad) {
int hIndex = 0;
+ bool retVal___ = false;
if (HPMHooks.count.HP_achievement_get_rewards_pre > 0) {
- void (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad);
+ bool (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_achievement_get_rewards_pre[hIndex].func;
- preHookFunc(&sd, &ad);
+ retVal___ = preHookFunc(&sd, &ad);
}
if (*HPMforce_return) {
*HPMforce_return = false;
- return;
+ return retVal___;
}
}
{
- HPMHooks.source.achievement.get_rewards(sd, ad);
+ retVal___ = HPMHooks.source.achievement.get_rewards(sd, ad);
}
if (HPMHooks.count.HP_achievement_get_rewards_post > 0) {
- void (*postHookFunc) (struct map_session_data *sd, const struct achievement_data *ad);
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, const struct achievement_data *ad);
for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_achievement_get_rewards_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, ad);
+ }
+ }
+ return retVal___;
+}
+void HP_achievement_get_rewards_buffs(struct map_session_data *sd, const struct achievement_data *ad) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_achievement_get_rewards_buffs_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_buffs_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_achievement_get_rewards_buffs_pre[hIndex].func;
+ preHookFunc(&sd, &ad);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.achievement.get_rewards_buffs(sd, ad);
+ }
+ if (HPMHooks.count.HP_achievement_get_rewards_buffs_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, const struct achievement_data *ad);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_buffs_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_achievement_get_rewards_buffs_post[hIndex].func;
+ postHookFunc(sd, ad);
+ }
+ }
+ return;
+}
+void HP_achievement_get_rewards_items(struct map_session_data *sd, const struct achievement_data *ad) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_achievement_get_rewards_items_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_items_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_achievement_get_rewards_items_pre[hIndex].func;
+ preHookFunc(&sd, &ad);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.achievement.get_rewards_items(sd, ad);
+ }
+ if (HPMHooks.count.HP_achievement_get_rewards_items_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, const struct achievement_data *ad);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_items_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_achievement_get_rewards_items_post[hIndex].func;
postHookFunc(sd, ad);
}
}
@@ -2806,6 +2859,32 @@ void HP_battle_reflect_damage(struct block_list *target, struct block_list *src,
}
return;
}
+void HP_battle_reflect_trap(struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_battle_reflect_trap_pre > 0) {
+ void (*preHookFunc) (struct block_list **target, struct block_list **src, struct Damage **md, uint16 *skill_id);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_battle_reflect_trap_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_battle_reflect_trap_pre[hIndex].func;
+ preHookFunc(&target, &src, &md, &skill_id);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.battle.reflect_trap(target, src, md, skill_id);
+ }
+ if (HPMHooks.count.HP_battle_reflect_trap_post > 0) {
+ void (*postHookFunc) (struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_battle_reflect_trap_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_battle_reflect_trap_post[hIndex].func;
+ postHookFunc(target, src, md, skill_id);
+ }
+ }
+ return;
+}
int HP_battle_attr_ratio(int atk_elem, int def_type, int def_lv) {
int hIndex = 0;
int retVal___ = 0;
@@ -14403,6 +14482,58 @@ void HP_clif_specialeffect_value(struct block_list *bl, int effect_id, int num,
}
return;
}
+void HP_clif_removeSpecialEffect(struct block_list *bl, int effectId, enum send_target target) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_removeSpecialEffect_pre > 0) {
+ void (*preHookFunc) (struct block_list **bl, int *effectId, enum send_target *target);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_removeSpecialEffect_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_removeSpecialEffect_pre[hIndex].func;
+ preHookFunc(&bl, &effectId, &target);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.removeSpecialEffect(bl, effectId, target);
+ }
+ if (HPMHooks.count.HP_clif_removeSpecialEffect_post > 0) {
+ void (*postHookFunc) (struct block_list *bl, int effectId, enum send_target target);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_removeSpecialEffect_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_removeSpecialEffect_post[hIndex].func;
+ postHookFunc(bl, effectId, target);
+ }
+ }
+ return;
+}
+void HP_clif_removeSpecialEffect_single(struct block_list *bl, int effectId, struct block_list *targetBl) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_removeSpecialEffect_single_pre > 0) {
+ void (*preHookFunc) (struct block_list **bl, int *effectId, struct block_list **targetBl);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_removeSpecialEffect_single_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_removeSpecialEffect_single_pre[hIndex].func;
+ preHookFunc(&bl, &effectId, &targetBl);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.removeSpecialEffect_single(bl, effectId, targetBl);
+ }
+ if (HPMHooks.count.HP_clif_removeSpecialEffect_single_post > 0) {
+ void (*postHookFunc) (struct block_list *bl, int effectId, struct block_list *targetBl);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_removeSpecialEffect_single_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_removeSpecialEffect_single_post[hIndex].func;
+ postHookFunc(bl, effectId, targetBl);
+ }
+ }
+ return;
+}
void HP_clif_millenniumshield(struct block_list *bl, short shields) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_millenniumshield_pre > 0) {
@@ -28782,6 +28913,84 @@ void HP_clif_pMemorialDungeonCommand(int fd, struct map_session_data *sd) {
}
return;
}
+void HP_clif_camera_showWindow(struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_camera_showWindow_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_camera_showWindow_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_camera_showWindow_pre[hIndex].func;
+ preHookFunc(&sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.camera_showWindow(sd);
+ }
+ if (HPMHooks.count.HP_clif_camera_showWindow_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_camera_showWindow_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_camera_showWindow_post[hIndex].func;
+ postHookFunc(sd);
+ }
+ }
+ return;
+}
+void HP_clif_camera_change(struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_camera_change_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, float *range, float *rotation, float *latitude, enum send_target *target);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_camera_change_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_camera_change_pre[hIndex].func;
+ preHookFunc(&sd, &range, &rotation, &latitude, &target);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.camera_change(sd, range, rotation, latitude, target);
+ }
+ if (HPMHooks.count.HP_clif_camera_change_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_camera_change_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_camera_change_post[hIndex].func;
+ postHookFunc(sd, range, rotation, latitude, target);
+ }
+ }
+ return;
+}
+void HP_clif_item_preview(struct map_session_data *sd, int n) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_item_preview_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, int *n);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_preview_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_item_preview_pre[hIndex].func;
+ preHookFunc(&sd, &n);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.item_preview(sd, n);
+ }
+ if (HPMHooks.count.HP_clif_item_preview_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, int n);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_preview_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_item_preview_post[hIndex].func;
+ postHookFunc(sd, n);
+ }
+ }
+ return;
+}
/* cmdline_interface */
void HP_cmdline_init(void) {
int hIndex = 0;
@@ -44415,6 +44624,32 @@ void HP_map_zone_remove(int m) {
}
return;
}
+void HP_map_zone_remove_all(int m) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_map_zone_remove_all_pre > 0) {
+ void (*preHookFunc) (int *m);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_remove_all_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_map_zone_remove_all_pre[hIndex].func;
+ preHookFunc(&m);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.map.zone_remove_all(m);
+ }
+ if (HPMHooks.count.HP_map_zone_remove_all_post > 0) {
+ void (*postHookFunc) (int m);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_remove_all_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_map_zone_remove_all_post[hIndex].func;
+ postHookFunc(m);
+ }
+ }
+ return;
+}
void HP_map_zone_apply(int m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath) {
int hIndex = 0;
if (HPMHooks.count.HP_map_zone_apply_pre > 0) {
@@ -59054,11 +59289,11 @@ int HP_pc_payzeny(struct map_session_data *sd, int zeny, enum e_log_pick_type ty
}
return retVal___;
}
-int HP_pc_additem(struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type) {
+int HP_pc_additem(struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_pc_additem_pre > 0) {
- int (*preHookFunc) (struct map_session_data **sd, struct item **item_data, int *amount, e_log_pick_type *log_type);
+ int (*preHookFunc) (struct map_session_data **sd, const struct item **item_data, int *amount, e_log_pick_type *log_type);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_additem_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_additem_pre[hIndex].func;
@@ -59073,7 +59308,7 @@ int HP_pc_additem(struct map_session_data *sd, struct item *item_data, int amoun
retVal___ = HPMHooks.source.pc.additem(sd, item_data, amount, log_type);
}
if (HPMHooks.count.HP_pc_additem_post > 0) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type);
+ int (*postHookFunc) (int retVal___, struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_additem_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_additem_post[hIndex].func;
retVal___ = postHookFunc(retVal___, sd, item_data, amount, log_type);
@@ -66552,6 +66787,33 @@ bool HP_quest_questinfo_validate_quests(struct map_session_data *sd, struct ques
}
return retVal___;
}
+bool HP_quest_questinfo_validate_mercenary_class(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_mercenary_class_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_mercenary_class(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_mercenary_class_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
void HP_quest_questinfo_vector_clear(int m) {
int hIndex = 0;
if (HPMHooks.count.HP_quest_questinfo_vector_clear_pre > 0) {
@@ -76185,6 +76447,32 @@ int HP_skill_timerskill(int tid, int64 tick, int id, intptr_t data) {
}
return retVal___;
}
+void HP_skill_trap_do_splash(struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_skill_trap_do_splash_pre > 0) {
+ void (*preHookFunc) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int *bl_flag, int64 *tick);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_trap_do_splash_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_trap_do_splash_pre[hIndex].func;
+ preHookFunc(&bl, &skill_id, &skill_lv, &bl_flag, &tick);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.skill.trap_do_splash(bl, skill_id, skill_lv, bl_flag, tick);
+ }
+ if (HPMHooks.count.HP_skill_trap_do_splash_post > 0) {
+ void (*postHookFunc) (struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_trap_do_splash_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_trap_do_splash_post[hIndex].func;
+ postHookFunc(bl, skill_id, skill_lv, bl_flag, tick);
+ }
+ }
+ return;
+}
int HP_skill_trap_splash(struct block_list *bl, va_list ap) {
int hIndex = 0;
int retVal___ = 0;
diff --git a/src/tool/Makefile.in b/src/tool/Makefile.in
deleted file mode 100644
index d4c178218..000000000
--- a/src/tool/Makefile.in
+++ /dev/null
@@ -1,88 +0,0 @@
-# This file is part of Hercules.
-# http://herc.ws - http://github.com/HerculesWS/Hercules
-#
-# Copyright (C) 2012-2018 Hercules Dev Team
-# Copyright (C) Athena Dev Teams
-#
-# Hercules 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 3 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, see <http://www.gnu.org/licenses/>.
-
-# @configure_input@
-
-CONFIG_D = ../config
-CONFIG_H = $(wildcard $(CONFIG_D)/*.h) $(wildcard $(CONFIG_D)/*/*.h)
-
-COMMON_D = ../common
-COMMON_H = $(filter-out %.p.h, $(wildcard $(COMMON_D)/*.h))
-SYSINFO_INC = $(COMMON_D)/sysinfo.inc
-COMMON_INCLUDE = -I..
-
-THIRDPARTY_D = ../../3rdparty
-THIRDPARTY_INCLUDE = -I$(THIRDPARTY_D)
-
-LIBCONFIG_D = $(THIRDPARTY_D)/libconfig
-LIBCONFIG_OBJ = $(addprefix $(LIBCONFIG_D)/, libconfig.o grammar.o scanctx.o \
- scanner.o strbuf.o)
-LIBCONFIG_H = $(addprefix $(LIBCONFIG_D)/, libconfig.h grammar.h parsectx.h \
- scanctx.h scanner.h strbuf.h wincompat.h)
-
-@SET_MAKE@
-
-CC = @CC@
-export CC
-
-#####################################################################
-.PHONY: all clean buildclean help
-
-all: Makefile
-
-buildclean:
- @echo " CLEAN tool (build temp files)"
- @rm -rf obj_all/*.o
-
-clean: buildclean
- @echo " CLEAN tool"
-
-help:
- @echo "possible targets are 'all' 'clean' 'help'"
- @echo "'all' - builds all above targets"
- @echo "'clean' - cleans builds and objects"
- @echo "'buildclean' - cleans build temporary (object) files, without deleting the"
- @echo " executables"
- @echo "'help' - outputs this message"
-
-#####################################################################
-
-Makefile: Makefile.in
- @$(MAKE) -C ../.. src/tool/Makefile
-
-$(SYSINFO_INC): $(COMMON_H) $(CONFIG_H) $(LIBCONFIG_H)
- @echo " MAKE $@"
- @$(MAKE) -C ../.. sysinfo
-
-obj_all:
- @echo " MKDIR obj_all"
- @-mkdir obj_all
-
-obj_all/%.o: %.c $(COMMON_H) $(CONFIG_H) $(LIBCONFIG_H) | obj_all
- @echo " CC $<"
- @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
-
-# missing common object files
-$(COMMON_D)/obj_all/common_mini.a:
- @echo " MAKE $@"
- @$(MAKE) -C $(COMMON_D) common_mini
-
-$(LIBCONFIG_OBJ):
- @echo " MAKE $@"
- @$(MAKE) -C $(LIBCONFIG_D)
diff --git a/tools/mobdbconverter.py b/tools/mobdbconverter.py
index 78047aed9..683e28274 100755
--- a/tools/mobdbconverter.py
+++ b/tools/mobdbconverter.py
@@ -188,7 +188,7 @@ def convertFile(inFile, itemDb):
printField("ChaseRange", fields[21])
printField("Size", fields[22])
printField("Race", fields[23])
- print("\tElement: ({0}, {1})".format(int(fields[24]) % 10, int(fields[24]) / 20));
+ print("\tElement: ({0}, {1})".format(int(fields[24]) % 10, int(int(fields[24]) / 20)));
mode = int(fields[25], 0)
if mode != 0:
startGroup("Mode")
@@ -260,7 +260,7 @@ def readItemDB(inFile, itemDb):
elif line[:3] == "Id:":
try:
itemId = int(line[4:])
- except:
+ except ValueError:
started = False
if itemId != 0 and itemName != "":
# was need for remove wrong characters
diff --git a/tools/mobskilldbconverter.py b/tools/mobskilldbconverter.py
index 310331043..4ba042062 100644
--- a/tools/mobskilldbconverter.py
+++ b/tools/mobskilldbconverter.py
@@ -206,7 +206,7 @@ def LoadOldDB(mode, serverpath):
continue
try:
Db[MonsterId][skillidx]['val{}'.format(i)] = int(entry[12 + i])
- except:
+ except ValueError:
Db[MonsterId][skillidx]['val{}'.format(i)] = int(entry[12 + i], 16)
Db[MonsterId][skillidx]['Emotion'] = entry[17]
Db[MonsterId][skillidx]['ChatMsgID'] = entry[18]
diff --git a/tools/petdbconverter.py b/tools/petdbconverter.py
index 261c1e6ad..1b7d2e4d6 100644
--- a/tools/petdbconverter.py
+++ b/tools/petdbconverter.py
@@ -175,7 +175,7 @@ def readItemDB(inFile, itemDb):
elif line[:3] == "Id:":
try:
itemId = int(line[4:])
- except:
+ except ValueError:
started = False
if itemId != 0 and itemName != "":
# was need for remove wrong characters
diff --git a/tools/utils/common.py b/tools/utils/common.py
index 7b7811654..acceb9b30 100644
--- a/tools/utils/common.py
+++ b/tools/utils/common.py
@@ -35,13 +35,13 @@ def LoadDBConsts(DBname, mode, serverpath):
with io.open(filename) as f:
config = libconf.load(f)
db = config[DBname]
- if DBname is 'item_db':
+ if DBname == 'item_db':
for i, v in enumerate(db):
consts[db[i].Id] = db[i].AegisName
- elif DBname is 'mob_db':
+ elif DBname == 'mob_db':
for i, v in enumerate(db):
consts[db[i].Id] = db[i].SpriteName
- elif DBname is 'skill_db':
+ elif DBname == 'skill_db':
for i, v in enumerate(db):
consts[db[i].Id] = db[i].Name
else:
@@ -55,7 +55,6 @@ def LoadDB(DBname, mode, serverpath):
if os.path.isfile(serverpath + 'db/{}2.conf'.format(DBname)):
filenames.append(serverpath + 'db/{}2.conf'.format(DBname))
- consts = dict()
for filename in filenames:
with io.open(filename) as f:
config = libconf.load(f)