summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/battle/player.conf7
-rw-r--r--conf/maps.conf6
-rwxr-xr-xconfigure5
-rw-r--r--configure.in3
-rw-r--r--db/const.txt114
-rw-r--r--db/map_index.txt1
-rw-r--r--db/pre-re/item_db.conf386
-rw-r--r--db/re/item_combo_db.txt15
-rw-r--r--db/re/item_db.conf1932
-rw-r--r--db/re/mob_db.conf922
-rw-r--r--db/sc_config.txt42
-rw-r--r--doc/item_db.txt10
-rw-r--r--doc/sample/npc_test_time.txt26
-rw-r--r--doc/script_commands.txt84
-rw-r--r--doc/woe_time_explanation.txt77
-rw-r--r--npc/airports/airships.txt8
-rw-r--r--npc/custom/bgqueue/flavius.txt8
-rw-r--r--npc/custom/etc/airplane.txt4
-rw-r--r--npc/custom/etc/bank_kafra.txt2
-rw-r--r--npc/custom/events/valentinesdayexp.txt10
-rw-r--r--npc/custom/events/xmas_rings_event.txt2
-rw-r--r--npc/custom/quests/thq/THQS_QuestNPC.txt8
-rw-r--r--npc/custom/woe_controller.txt8
-rw-r--r--npc/events/idul_fitri.txt2
-rw-r--r--npc/other/Global_Functions.txt8
-rw-r--r--npc/other/arena/arena_lvl50.txt8
-rw-r--r--npc/other/arena/arena_lvl60.txt8
-rw-r--r--npc/other/arena/arena_lvl70.txt8
-rw-r--r--npc/other/arena/arena_lvl80.txt8
-rw-r--r--npc/other/arena/arena_party.txt8
-rw-r--r--npc/other/comodo_gambling.txt4
-rw-r--r--npc/pre-re/merchants/shops.txt68
-rw-r--r--npc/quests/first_class/tu_archer.txt4
-rw-r--r--npc/quests/guildrelay.txt60
-rw-r--r--npc/quests/newgears/2010_headgears.txt2
-rw-r--r--npc/quests/partyrelay.txt6
-rw-r--r--npc/quests/quests_ein.txt4
-rw-r--r--npc/quests/quests_lighthalzen.txt8
-rw-r--r--npc/quests/quests_louyang.txt66
-rw-r--r--npc/quests/quests_moscovia.txt17
-rw-r--r--npc/quests/quests_umbala.txt6
-rw-r--r--npc/quests/the_sign_quest.txt19
-rw-r--r--npc/re/jobs/novice/academy.txt2
-rw-r--r--npc/re/merchants/shops.txt457
-rw-r--r--npc/re/quests/eden/eden_iro.txt159
-rw-r--r--npc/re/quests/quests_mora.txt2
-rw-r--r--npc/re/woe-fe/invest_main.txt14
-rw-r--r--npc/woe-fe/agit_controller.txt16
-rw-r--r--npc/woe-se/agit_start_se.txt16
-rw-r--r--sql-files/item_db.sql164
-rw-r--r--sql-files/item_db_re.sql439
-rw-r--r--src/char/Makefile.in4
-rw-r--r--src/common/HPMDataCheck.h9
-rw-r--r--src/common/Makefile.in2
-rw-r--r--src/common/cbasetypes.h3
-rw-r--r--src/common/console.h8
-rw-r--r--src/common/memmgr.c2
-rw-r--r--src/common/mmo.h6
-rw-r--r--src/common/socket.c39
-rw-r--r--src/login/Makefile.in2
-rw-r--r--src/map/Makefile.in9
-rw-r--r--src/map/atcommand.c4
-rw-r--r--src/map/battle.c13
-rw-r--r--src/map/battle.h3
-rw-r--r--src/map/battleground.c163
-rw-r--r--src/map/clif.c8
-rw-r--r--src/map/map.c14
-rw-r--r--src/map/mob.c9
-rw-r--r--src/map/npc.c569
-rw-r--r--src/map/npc.h49
-rw-r--r--src/map/packets_struct.h8
-rw-r--r--src/map/party.h23
-rw-r--r--src/map/pc.c148
-rw-r--r--src/map/pc.h3
-rw-r--r--src/map/script.c613
-rw-r--r--src/map/script.h55
-rw-r--r--src/map/skill.c26
-rw-r--r--src/map/status.c308
-rw-r--r--src/map/status.h39
-rw-r--r--src/map/unit.c5
-rw-r--r--src/map/unit.h12
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc28
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc7
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc224
-rw-r--r--src/plugins/Makefile.in4
-rw-r--r--src/test/Makefile.in2
-rw-r--r--tools/HPMHookGen/doxygen.conf3
-rw-r--r--vcproj-10/char-server.vcxproj4
-rw-r--r--vcproj-10/login-server.vcxproj4
-rw-r--r--vcproj-10/plugin-HPMHooking_char.vcxproj4
-rw-r--r--vcproj-10/plugin-HPMHooking_login.vcxproj4
-rw-r--r--vcproj-10/plugin-HPMHooking_map.vcxproj6
-rw-r--r--vcproj-10/plugin-sample.vcxproj4
-rw-r--r--vcproj-11/char-server.vcxproj4
-rw-r--r--vcproj-11/login-server.vcxproj4
-rw-r--r--vcproj-11/plugin-HPMHooking_char.vcxproj4
-rw-r--r--vcproj-11/plugin-HPMHooking_login.vcxproj4
-rw-r--r--vcproj-11/plugin-HPMHooking_map.vcxproj4
-rw-r--r--vcproj-11/plugin-sample.vcxproj4
-rw-r--r--vcproj-12/char-server.vcxproj4
-rw-r--r--vcproj-12/login-server.vcxproj4
-rw-r--r--vcproj-12/plugin-HPMHooking_char.vcxproj4
-rw-r--r--vcproj-12/plugin-HPMHooking_login.vcxproj4
-rw-r--r--vcproj-12/plugin-HPMHooking_map.vcxproj4
-rw-r--r--vcproj-12/plugin-sample.vcxproj4
-rw-r--r--vcproj-14/char-server.vcxproj4
-rw-r--r--vcproj-14/login-server.vcxproj4
-rw-r--r--vcproj-14/plugin-HPMHooking_char.vcxproj4
-rw-r--r--vcproj-14/plugin-HPMHooking_login.vcxproj4
-rw-r--r--vcproj-14/plugin-HPMHooking_map.vcxproj4
-rw-r--r--vcproj-14/plugin-sample.vcxproj4
111 files changed, 5636 insertions, 2149 deletions
diff --git a/conf/battle/player.conf b/conf/battle/player.conf
index babd6cfc3..2682a34c7 100644
--- a/conf/battle/player.conf
+++ b/conf/battle/player.conf
@@ -51,6 +51,9 @@ basic_skill_check: yes
// Value is also affected by 'invincible_time_inc' mapflag
player_invincible_time: 5000
+// When set to true, it prevent portal abuse for avoid hits. Official value is false.
+fix_warp_hit_delay_abuse: false
+
// The time interval for HP to restore naturally. (in milliseconds)
natural_healhp_interval: 6000
@@ -148,6 +151,10 @@ idle_no_autoloot: 0
// Default: 3 (0: disabled).
min_npc_vendchat_distance: 3
+// If min_npc_vendchat_distance is enabled,
+// can players vend/chat room nearby hidden npc? (Ie: FAKE_NPC/HIDDEN_WARP_NPC)
+vendchat_near_hiddennpc: no
+
// Super Novice's fury is enabled to increments of 10%, such as at 10.0%, 20.0% - 80.0%, 90.0%
// Changing snovice_call_type config to 1 enables its use at 0%, for maxed super novices.
// default: 0
diff --git a/conf/maps.conf b/conf/maps.conf
index 404eb7f3e..529afa9ce 100644
--- a/conf/maps.conf
+++ b/conf/maps.conf
@@ -1115,7 +1115,7 @@ map: 2@gl_k
map: silk_lair
map: evt_bomb
-//Wave Mode Memorial Dungeon
+// Wave Mode Memorial Dungeon
map: 1@def01
map: 1@def02
map: 1@def03
@@ -1133,7 +1133,7 @@ map: 1@spa
map: dali
map: dali02
-//Episode 14.3
+// Episode 14.3
map: moro_vol
map: moro_cav
map: 1@dth1
@@ -1144,7 +1144,7 @@ map: 1@xm_d
map: 1@eom
map: 1@jtb
-//Clock Tower Nightmare Mode
+// Clock Tower Nightmare Mode
map: c_tower2_
map: c_tower3_
diff --git a/configure b/configure
index 629451942..d9a15ac7d 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.in d2e3acb.
+# From configure.in 60dc92a.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69.
#
@@ -8166,6 +8166,7 @@ fi
if test "$HAVE_PCRE" = "yes" ; then
PCRE_LIBS="-lpcre"
+ PCRE_CFLAGS="-DPCRE_SUPPORT"
fi
else
PCRE_OLD_LDFLAGS="$LDFLAGS" ; LDFLAGS="$LDFLAGS -L$PCRE_HOME/lib"
@@ -8214,7 +8215,7 @@ fi
LDFLAGS="$PCRE_OLD_LDFLAGS"
if test "$HAVE_PCRE" = "yes" ; then
PCRE_LIBS="-L$PCRE_HOME/lib -lpcre"
- test -d "$PCRE_HOME/include" && PCRE_CFLAGS="-I$PCRE_HOME/include"
+ test -d "$PCRE_HOME/include" && PCRE_CFLAGS="-I$PCRE_HOME/include -DPCRE_SUPPORT"
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking PCRE library (optional)" >&5
diff --git a/configure.in b/configure.in
index 5bb0dff65..aa7f74783 100644
--- a/configure.in
+++ b/configure.in
@@ -1309,6 +1309,7 @@ else
AC_CHECK_LIB([pcre], [pcre_study], [HAVE_PCRE="yes"], [])
if test "$HAVE_PCRE" = "yes" ; then
PCRE_LIBS="-lpcre"
+ PCRE_CFLAGS="-DPCRE_SUPPORT"
fi
else
PCRE_OLD_LDFLAGS="$LDFLAGS" ; LDFLAGS="$LDFLAGS -L$PCRE_HOME/lib"
@@ -1318,7 +1319,7 @@ else
LDFLAGS="$PCRE_OLD_LDFLAGS"
if test "$HAVE_PCRE" = "yes" ; then
PCRE_LIBS="-L$PCRE_HOME/lib -lpcre"
- test -d "$PCRE_HOME/include" && PCRE_CFLAGS="-I$PCRE_HOME/include"
+ test -d "$PCRE_HOME/include" && PCRE_CFLAGS="-I$PCRE_HOME/include -DPCRE_SUPPORT"
fi
fi
AC_MSG_CHECKING([PCRE library (optional)])
diff --git a/db/const.txt b/db/const.txt
index ca78c223d..3f0fbdbd0 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -1286,6 +1286,37 @@ SC_MTF_HITFLEE 587
SC_LJOSALFAR 588
SC_MERMAID_LONGING 589
+SC_ACARAJE 590
+SC_TARGET_ASPD 591
+
+// Geffen Scrolls
+SC_SKELSCROLL 592
+SC_DISTRUCTIONSCROLL 593
+SC_ROYALSCROLL 594
+SC_IMMUNITYSCROLL 595
+SC_MYSTICSCROLL 596
+SC_BATTLESCROLL 597
+SC_ARMORSCROLL 598
+SC_FREYJASCROLL 599
+SC_SOULSCROLL 600
+
+// Eden Crystal Synthesis
+SC_QUEST_BUFF1 601
+SC_QUEST_BUFF2 602
+SC_QUEST_BUFF3 603
+
+// Geffen Magic Tournament
+SC_GEFFEN_MAGIC1 604
+SC_GEFFEN_MAGIC2 605
+SC_GEFFEN_MAGIC3 606
+SC_FENRIR_CARD 607
+
+SC_ATKER_ASPD 608
+SC_ATKER_MOVESPEED 609
+
+SC_FOOD_CRITICALSUCCESSVALUE 610
+SC_CUP_OF_BOZA 611
+
e_gasp 0
e_what 1
e_ho 2
@@ -3252,6 +3283,67 @@ THANATOS_KEEP 10009
4_JP_EDGA_H 10111
4_JP_BRAGOLEM_H 10112
4_EL_AQUA 10113
+4_EP16_NIHIL 10114
+4_EP16_SPICA 10115
+4_EP16_SKIA 10116
+4_EP16_PETER 10117
+4_EP16_CRUX 10118
+4_EP16_GRANZ 10119
+4_EP16_STOLZ 10120
+4_EP16_EGEO 10121
+4_EP16_COOK 10122
+4_EP16_MARK 10123
+4_EP16_TAMARIN 10124
+4_EP16_POE 10125
+4_EP16_ISAAC 10126
+4_EP16_HELMUT 10127
+4_EP16_WOLF 10128
+4_EP16_MEYER 10129
+4_EP16_AGNES 10130
+4_EP16_FOOD 10131
+4_EP16_LOUVIERE 10132
+4_EP16_MAX 10133
+4_EP16_SPIEGEL 10134
+4_MOONLIGHT 10135
+4_MISTRESS 10136
+4_DRACULA 10137
+4_STORMKNIGHT 10138
+4_TATTER 10139
+4_AS_RAGGED_GOLEM 10140
+4_AS_BLOODY_KNIGHT 10141
+4_AS_WIND_GHOST 10142
+4_F_BIJOU 10143
+4_EP16_COOK2 10144
+4_SERVICE_30_M_01 10145
+4_SERVICE_30_F_01 10146
+4_SCR_AT_ROBOTS 10147
+4_F_RANGER 10148
+4_WAG 10149
+4_NPC_TRAP 10150
+4_RAGGLER 10151
+4_DR_PEPE 10152
+4_DR_GAMBERI 10153
+4_DR_AGLIO 10154
+4_DR_OLIO 10155
+4_DR_STELO 10156
+4_DR_TORTEL 10157
+4_BASIL_SLAVE 10158
+4_DOU_JINDO 10159
+4_DOU_SIBA 10160
+4_TARUTUPI 10161
+4_DR_SOLDIER 10162
+4_DR_M_01 10163
+4_DR_M_02 10164
+4_DR_F_01 10165
+4_DR_F_02 10166
+4_DR_KID_01 10167
+4_JP_2015EVT 10168
+4_ALLIGATOR 10169
+4_ANOLIAN 10170
+4_TACNU 10171
+4_CENERE 10172
+4_F_ARUNA_POP2 10173
+4_JACK_HEAD 10174
MER_LIF 6001
MER_AMISTR 6002
@@ -3356,9 +3448,9 @@ IT_AMMO 10
IT_DELAYCONSUME 11
IT_CASH 18
-HQO_OnLogout 1
-HQO_OnDeath 2
-HQO_OnMapChange 3
+QUEUEOPT_LOGOUT 1
+QUEUEOPT_DEATH 2
+QUEUEOPT_MAPCHANGE 3
IOT_NONE 0
IOT_CHAR 1
@@ -3400,14 +3492,14 @@ MOUNT_DRAGON_BLUE 7
MOUNT_DRAGON_RED 8
// gettime( <param> )
-SECOND 1
-MINUTE 2
-HOUR 3
-WEEKDAY 4
-DAYOFMONTH 5
-MONTH 6
-YEAR 7
-DAYOFYEAR 8
+GETTIME_SECOND 1
+GETTIME_MINUTE 2
+GETTIME_HOUR 3
+GETTIME_WEEKDAY 4
+GETTIME_DAYOFMONTH 5
+GETTIME_MONTH 6
+GETTIME_YEAR 7
+GETTIME_DAYOFYEAR 8
// Weekday
SUNDAY 0
diff --git a/db/map_index.txt b/db/map_index.txt
index 7e43f7cd2..332361071 100644
--- a/db/map_index.txt
+++ b/db/map_index.txt
@@ -934,7 +934,6 @@ moro_cav
c_tower2_
c_tower3_
-
// Only add maps under this line if they are not standard maps!
//======================================================================================
// - Other/Extra maps -
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf
index 42d75e300..3219e02df 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -37,13 +37,13 @@ item_db: (
override: GroupID (int, defaults to 100)
nodrop: true/false (boolean, defaults to false)
notrade: true/false (boolean, defaults to false)
- partneroverride: true/false (boolean, defaults to false)
- noselltonpc: true/false (boolean, defaults to false)
- nocart: true/false (boolean, defaults to false)
nostorage: true/false (boolean, defaults to false)
- nogstorage: true/false (boolean, defaults to false)
+ nocart: true/false (boolean, defaults to false)
+ noselltonpc: true/false (boolean, defaults to false)
nomail: true/false (boolean, defaults to false)
- noauction: true/false (boolean, defaults to false)
+ noauction: true/false (boolean, defaults to false)
+ nogstorage: true/false (boolean, defaults to false)
+ partneroverride: true/false (boolean, defaults to false)
}
Nouse: { (defaults to no restrictions)
override: GroupID (int, defaults to 100)
@@ -25353,7 +25353,7 @@ item_db: (
skill MG_FIREBOLT,1;
">
},
-// Cards
+// Cards
// ===================================================================
{
Id: 4001
@@ -38844,7 +38844,10 @@ item_db: (
Weight: 100
Loc: 256
View: 433
- Script: <" if(gettime(6)==9&&gettime(5)>=10&&gettime(5)<=24) bonus bAllStats, 4; ">
+ Script: <"
+ if (gettime(GETTIME_MONTH) == SEPTEMBER && gettime(GETTIME_DAYOFMONTH) >= 10 && gettime(GETTIME_DAYOFMONTH) <= 24)
+ bonus bAllStats, 4;
+ ">
},
{
Id: 5433
@@ -62458,7 +62461,7 @@ item_db: (
BuyingStore: true
Script: <"
sc_start SC_FOOD_STR,1200000,10;
- percentheal 20,20;
+ percentheal 20,10;
">
},
{
@@ -62794,6 +62797,7 @@ item_db: (
Buy: 20
Weight: 300
BuyingStore: true
+ Script: <" sc_start SC_FOOD_BASICAVOIDANCE,180000,30; ">
},
{
Id: 12102
@@ -62803,6 +62807,7 @@ item_db: (
Buy: 20
Weight: 300
BuyingStore: true
+ Script: <" sc_start SC_FOOD_BASICHIT,180000,30; ">
},
{
Id: 12103
@@ -63137,8 +63142,8 @@ item_db: (
Buy: 0
Weight: 80
Script: <"
- if(gettime(5)!=MDiceCone) {
- MDiceCone = gettime(5);
+ if (gettime(GETTIME_DAYOFMONTH) != MDiceCone) {
+ MDiceCone = gettime(GETTIME_DAYOFMONTH);
percentheal 50,50;
}
@@ -64015,7 +64020,7 @@ item_db: (
Buy: 20
Weight: 100
BuyingStore: true
- Script: <" sc_start SC_INCLUK,1200000,21; ">
+ Script: <" sc_start SC_FOOD_LUK,1200000,21; ">
},
{
Id: 12199
@@ -64051,7 +64056,9 @@ item_db: (
Buy: 20
Weight: 200
},
-// Cash Shop Usable Items
+
+// Cash Shop Usable Items
+// ===================================================================
{
Id: 12202
AegisName: "Str_Dish10_"
@@ -64062,15 +64069,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_STR_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_STR,1800000,10;
+ percentheal 20,10;
">
},
{
@@ -64083,14 +64090,14 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_AGI_CASH,1800000,10;
+ sc_start SC_FOOD_AGI,1800000,10;
percentheal 15,5;
">
},
@@ -64104,15 +64111,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_INT_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_INT,1800000,10;
+ percentheal 10,20;
">
},
{
@@ -64125,15 +64132,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_DEX_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_DEX,1800000,10;
+ percentheal 10,10;
">
},
{
@@ -64146,15 +64153,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_LUK_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_LUK,1800000,10;
+ percentheal 14,8;
">
},
{
@@ -64167,15 +64174,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_VIT_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_VIT,1800000,10;
+ percentheal 25,0;
">
},
{
@@ -64770,7 +64777,14 @@ item_db: (
Buy: 2
Weight: 100
EquipLv: 20
- Script: <" sc_start SC_INCALLSTATUS,600000,3; ">
+ Script: <"
+ sc_start SC_FOOD_STR,600000,3;
+ sc_start SC_FOOD_DEX,600000,3;
+ sc_start SC_FOOD_AGI,600000,3;
+ sc_start SC_FOOD_INT,600000,3;
+ sc_start SC_FOOD_VIT,600000,3;
+ sc_start SC_FOOD_LUK,600000,3;
+ ">
},
{
Id: 12248
@@ -64798,7 +64812,7 @@ item_db: (
Weight: 10
Script: <"
sc_start SC_FOOD_STR,3600000,10;
- percentheal 20,20;
+ percentheal 20,10;
">
},
{
@@ -65151,7 +65165,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_INCHIT,600000,33; ">
+ Script: <" sc_start SC_FOOD_BASICHIT,600000,33; ">
},
{
Id: 12273
@@ -65169,7 +65183,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_INCFLEE,600000,33; ">
+ Script: <" sc_start SC_FOOD_BASICAVOIDANCE,600000,33; ">
},
{
Id: 12274
@@ -65181,17 +65195,14 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <"
- sc_start SC_INCMHPRATE,36000000,5;
- percentheal 10,0;
- ">
+ Script: <" sc_start2 SC_ATKER_ASPD,3600000,5,10; ">
},
{
Id: 12275
@@ -65203,17 +65214,14 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <"
- sc_start SC_INCMSPRATE,36000000,5;
- percentheal 0,10;
- ">
+ Script: <" sc_start2 SC_ATKER_MOVESPEED,3600000,5,10; ">
},
{
Id: 12276
@@ -65295,7 +65303,12 @@ item_db: (
Buy: 0
Weight: 10
Script: <"
- sc_start SC_INCALLSTATUS,5400000,3;
+ sc_start SC_FOOD_STR,5400000,3;
+ sc_start SC_FOOD_DEX,5400000,3;
+ sc_start SC_FOOD_AGI,5400000,3;
+ sc_start SC_FOOD_INT,5400000,3;
+ sc_start SC_FOOD_VIT,5400000,3;
+ sc_start SC_FOOD_LUK,5400000,3;
sc_start SC_PLUSATTACKPOWER,5400000,15;
sc_start SC_PLUSMAGICPOWER,5400000,15;
">
@@ -65308,11 +65321,11 @@ item_db: (
Buy: 0
Weight: 10
Script: <"
- sc_start SC_CHASEWALK2,5400000,8;
- sc_start SC_INCDEX,5400000,4;
- sc_start SC_INCAGI,5400000,6;
+ sc_start SC_FOOD_STR,5400000,8;
+ sc_start SC_FOOD_DEX,5400000,4;
+ sc_start SC_FOOD_AGI,5400000,6;
sc_start SC_PLUSATTACKPOWER,5400000,32;
- sc_start SC_INCFLEE,5400000,5;
+ sc_start SC_FOOD_BASICAVOIDANCE,5400000,5;
">
},
{
@@ -65323,9 +65336,9 @@ item_db: (
Buy: 0
Weight: 10
Script: <"
- sc_start SC_INCINT,5400000,8;
- sc_start SC_INCVIT,5400000,4;
- sc_start SC_INCDEX,5400000,6;
+ sc_start SC_FOOD_INT,5400000,8;
+ sc_start SC_FOOD_VIT,5400000,4;
+ sc_start SC_FOOD_DEX,5400000,6;
sc_start SC_PLUSMAGICPOWER,5400000,40;
">
},
@@ -65337,9 +65350,9 @@ item_db: (
Buy: 0
Weight: 10
Script: <"
- sc_start SC_INCDEX,5400000,8;
- sc_start SC_INCLUK,5400000,4;
- sc_start SC_INCAGI,5400000,6;
+ sc_start SC_FOOD_DEX,5400000,8;
+ sc_start SC_FOOD_LUK,5400000,4;
+ sc_start SC_FOOD_AGI,5400000,6;
sc_start SC_PLUSATTACKPOWER,5400000,24;
sc_start SC_PLUSMAGICPOWER,5400000,24;
">
@@ -65547,14 +65560,17 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" sc_start SC_ATKER_BLOOD,3600000,15; ">
+ Script: <"
+ specialeffect2 EF_SPELLBREAKER;
+ sc_start SC_ATKER_BLOOD,3600000,15;
+ ">
},
{
Id: 12299
@@ -65566,14 +65582,17 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" sc_start SC_TARGET_BLOOD,3600000,10; ">
+ Script: <"
+ specialeffect2 EF_GUARD;
+ sc_start SC_TARGET_BLOOD,3600000,10;
+ ">
},
{
Id: 12300
@@ -65772,7 +65791,7 @@ item_db: (
Nouse: {
sitting: true
}
- Script: <" sc_start SC_INCFLEE,600000,10; ">
+ Script: <" sc_start SC_FOOD_BASICAVOIDANCE,600000,10; ">
},
{
Id: 12311
@@ -65871,8 +65890,8 @@ item_db: (
Buy: 0
Weight: 300
Script: <"
- sc_start SC_INCATKRATE,600000,5;
- sc_start SC_INCMATKRATE,600000,5;
+ sc_start SC_PLUSATTACKPOWER,600000,5;
+ sc_start SC_PLUSMAGICPOWER,600000,5;
">
},
{
@@ -65883,8 +65902,8 @@ item_db: (
Buy: 0
Weight: 300
Script: <"
- sc_start SC_INCHIT,600000,10;
- sc_start SC_PLUSAVOIDVALUE,600000,20;
+ sc_start SC_FOOD_BASICHIT,600000,10;
+ sc_start SC_FOOD_BASICAVOIDANCE,600000,20;
">
},
{
@@ -65894,7 +65913,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 300
- Script: <" sc_start SC_CRITICALPERCENT,600000,7; ">
+ Script: <" sc_start SC_FOOD_CRITICALSUCCESSVALUE,600000,7; ">
},
{
Id: 12322
@@ -65983,6 +66002,7 @@ item_db: (
Type: 2
Buy: 1000
Weight: 50
+ Script: <" sc_start SC_FOOD_LUK,3600000,20; ">
},
{
Id: 12328
@@ -65991,7 +66011,14 @@ item_db: (
Type: 2
Buy: 1800
Weight: 100
- Script: <" sc_start SC_INCLUK,3600000,20; ">
+ Script: <"
+ sc_start SC_FOOD_STR,20000,10;
+ sc_start SC_FOOD_DEX,20000,10;
+ sc_start SC_FOOD_AGI,20000,10;
+ sc_start SC_FOOD_INT,20000,10;
+ sc_start SC_FOOD_VIT,20000,10;
+ sc_start SC_FOOD_LUK,20000,10;
+ ">
},
{
Id: 12329
@@ -66115,9 +66142,9 @@ item_db: (
Buy: 100
Weight: 100
Script: <"
- sc_start SC_CHASEWALK2,180000,2;
- sc_start SC_INCINT,180000,2;
- sc_start SC_INCAGI,180000,2;
+ sc_start SC_FOOD_STR,180000,2;
+ sc_start SC_FOOD_INT,180000,2;
+ sc_start SC_FOOD_AGI,180000,2;
">
},
{
@@ -66688,7 +66715,7 @@ item_db: (
}
Script: <"
specialeffect2 EF_STEAL;
- sc_start SC_INCHITRATE,120000,5;
+ sc_start2 SC_ACARAJE,120000,5,10;
">
},
{
@@ -67024,16 +67051,17 @@ item_db: (
sitting: true
}
Script: <"
- if(rand(1,10)==1) itemskill AL_TELEPORT,1;
- else if(rand(1,10)==2) itemskill AL_TELEPORT,3;
- else if(rand(1,10)==3) percentheal 50,0;
- else if(rand(1,10)==4) percentheal 0,50;
- else if(rand(1,10)==5) end;
- else if(rand(1,10)==6) getitem 512,1;
- else if(rand(1,10)==7) itemskill ALL_REVERSEORCISH,1;
- else if(rand(1,10)==8) specialeffect2 247;
- else if(rand(1,10)==9) specialeffect2 338;
- else specialeffect2 10;
+ .@temp = rand(1,10);
+ if (.@temp == 1) itemskill AL_TELEPORT,1;
+ else if (.@temp == 2) itemskill AL_TELEPORT,3;
+ else if (.@temp == 3) percentheal 50,0;
+ else if (.@temp == 4) percentheal 0,50;
+ else if (.@temp == 5) percentheal 50,50;
+ else if (.@temp == 6) getitem Apple,1;
+ else if (.@temp == 7) itemskill ALL_REVERSEORCISH,1;
+ else if (.@temp == 8) specialeffect2 EF_MAPPILLAR2;
+ else if (.@temp == 9) specialeffect2 EF_ANGEL2;
+ else specialeffect2 EF_COIN;
">
},
{
@@ -67052,16 +67080,17 @@ item_db: (
sitting: true
}
Script: <"
- if(rand(1,10)==1) itemskill TF_DETOXIFY,1;
- else if(rand(1,10)==2) itemskill TF_PICKSTONE,1;
- else if(rand(1,10)==3) itemskill BA_FROSTJOKER,1;
- else if(rand(1,10)==4) itemskill DC_SCREAM,1;
- else if(rand(1,10)==5) end;
- else if(rand(1,10)==6) getitem 909,1;
- else if(rand(1,10)==7) itemskill AL_RUWACH,1;
- else if(rand(1,10)==8) specialeffect2 328;
- else if(rand(1,10)==9) specialeffect2 68;
- else specialeffect2 196;
+ .@temp = rand(1,10);
+ if (.@temp == 1) itemskill TF_DETOXIFY,1;
+ else if (.@temp == 2) itemskill TF_PICKSTONE,1;
+ else if (.@temp == 3) itemskill BA_FROSTJOKER,1;
+ else if (.@temp == 4) itemskill DC_SCREAM,1;
+ else if (.@temp == 5) percentheal 50,50;
+ else if (.@temp == 6) getitem Jellopy,1;
+ else if (.@temp == 7) itemskill AL_RUWACH,1;
+ else if (.@temp == 8) specialeffect2 EF_BEGINASURA;
+ else if (.@temp == 9) specialeffect2 EF_MVP;
+ else specialeffect2 EF_CURSEATTACK;
">
},
{
@@ -67104,7 +67133,7 @@ item_db: (
Name: "Rune Kn Test Int"
Type: 2
Buy: 0
- Script: <" sc_start SC_INCINT,300000,40; ">
+ Script: <" sc_start SC_FOOD_INT,300000,40; ">
},
{
Id: 12402
@@ -67411,7 +67440,7 @@ item_db: (
Weight: 10
BuyingStore: true
Script: <"
- sc_start SC_EXTRACT_WHITE_POTION_Z,500000,0;
+ sc_start SC_EXTRACT_WHITE_POTION_Z,500000,20;
heal 1000,0;
">
},
@@ -67486,7 +67515,7 @@ item_db: (
Weight: 10
BuyingStore: true
Script: <"
- sc_start SC_VITATA_500,500000,0;
+ sc_start2 SC_VITATA_500,500000,20,5;
itemheal 0,200;
">
},
@@ -68410,6 +68439,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem White_Potion,100; ">
},
{
Id: 12532
@@ -68426,6 +68456,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Royal_Jelly,100; ">
},
{
Id: 12533
@@ -68442,6 +68473,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Blue_Herb,100; ">
},
{
Id: 12534
@@ -68458,6 +68490,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Seed_Of_Yggdrasil,30; ">
},
// unknown type, not in database
/*
@@ -68477,6 +68510,7 @@ item_db: (
Buy: 20
Weight: 100
BuyingStore: true
+ Script: <" percentheal 20,20; ">
},
{
Id: 12537
@@ -68600,6 +68634,7 @@ item_db: (
Type: 2
Buy: 100
Weight: 50
+ Script: <" sc_start SC_POISON,12000,0; ">
},
{
Id: 12547
@@ -68633,6 +68668,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem White_Slim_Potion,200; ">
},
{
Id: 12550
@@ -68649,6 +68685,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Poison_Bottle,30; ">
},
{
Id: 12551
@@ -68852,6 +68889,7 @@ item_db: (
Buy: 500
Weight: 250
BuyingStore: true
+ Script: <" getitem Arrow_Of_Elf,500; ">
},
{
Id: 12576
@@ -68861,6 +68899,7 @@ item_db: (
Buy: 500
Weight: 250
BuyingStore: true
+ Script: <" getitem Hunting_Arrow,500; ">
},
{
Id: 12577
@@ -68938,8 +68977,8 @@ item_db: (
Buy: 0
Weight: 200
Script: <"
- getrandgroupitem 12702,1;
- getrandgroupitem 12702,1;
+ getrandgroupitem Old_Bleu_Box,1;
+ getrandgroupitem Old_Bleu_Box,1;
">
},
{
@@ -69057,6 +69096,7 @@ item_db: (
Type: 2
Buy: 2
Weight: 100
+ Script: <" percentheal 0,50; ">
},
{
Id: 12713
@@ -69469,6 +69509,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 10
+ Script: <" percentheal 10,10; ">
},
{
Id: 12740
@@ -69500,6 +69541,7 @@ item_db: (
Name: "Valentine Gift Box"
Type: 2
Buy: 0
+ Script: <" getitem Valentine_Gold_Ring,1; ">
},
{
Id: 12743
@@ -69507,6 +69549,7 @@ item_db: (
Name: "Valentine Gift Box"
Type: 2
Buy: 0
+ Script: <" getitem Valentine_Silver_Ring,1; ">
},
{
Id: 12744
@@ -69514,6 +69557,7 @@ item_db: (
Name: "Chocolate Box"
Type: 2
Buy: 0
+ Script: <" getitem Chocolate,1; ">
},
{
Id: 12745
@@ -69525,13 +69569,14 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
+ Script: <" sc_start SC_SKELSCROLL,1800000,5; ">
},
{
Id: 12746
@@ -69543,17 +69588,13 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <"
- autobonus "{bonus2 bAddRace,RC_Boss,5}",10000,1800000;
- autobonus "{bonus2 bAddRace,RC_Angel,5;}",10000,1800000;
- autobonus "{bonus2 bAddEle,Ele_Holy,5;}",10000,1800000;
- ">
+ Script: <" sc_start SC_DISTRUCTIONSCROLL,1800000,5; ">
},
{
Id: 12747
@@ -69562,7 +69603,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <" autobonus "{bonus2 bSubRace,RC_Boss,5;}",10000,1800000; ">
+ Script: <" sc_start SC_ROYALSCROLL,1800000,5; ">
},
{
Id: 12748
@@ -69571,7 +69612,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <" autobonus "{bonus2 bAddEle,Ele_Neutral,-5;}",10000,1800000; ">
+ Script: <" sc_start SC_IMMUNITYSCROLL,1800000,5; ">
},
{
Id: 12749
@@ -69580,7 +69621,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <" sc_start SC_PLUSMAGICPOWER,180000,5; ">
+ Script: <" sc_start SC_MYSTICSCROLL,1800000,5; ">
},
{
Id: 12750
@@ -69589,10 +69630,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <"
- sc_start SC_ATTHASTE_POTION3,1800000,5;
- sc_start SC_PLUSATTACKPOWER,1800000,5;
- ">
+ Script: <" sc_start SC_BATTLESCROLL,1800000,5; ">
},
{
Id: 12751
@@ -69601,10 +69639,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <"
- sc_start SC_PROTECT_DEF,1800000,5;
- sc_start SC_FOOD_BASICAVOIDANCE,1800000,10;
- ">
+ Script: <" sc_start2 SC_ARMORSCROLL,1800000,5,10; ">
},
{
Id: 12752
@@ -69613,10 +69648,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <"
- sc_start SC_PROTECT_MDEF,1800000,5;
- sc_start SC_INCFLEE2,1800000,10;
- ">
+ Script: <" sc_start2 SC_FREYJASCROLL,1800000,5,10; ">
},
{
Id: 12753
@@ -69625,10 +69657,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <"
- sc_start SC_INCMHPRATE,1800000,5;
- sc_start SC_INCMSPRATE,1800000,5;
- ">
+ Script: <" sc_start SC_SOULSCROLL,1800000,5; ">
},
{
Id: 12754
@@ -69646,6 +69675,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" percentheal 50,50; ">
},
{
Id: 12755
@@ -69663,6 +69693,11 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <"
+ specialeffect2 EF_POK_JAP;
+ itemskill MO_CALLSPIRITS,3;
+ itemskill MO_FINGEROFFENSIVE,5;
+ ">
},
{
Id: 12756
@@ -69766,6 +69801,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" sc_start SC_CASH_PLUSONLYJOBEXP,1800000,25; ">
},
{
Id: 12767
@@ -69910,10 +69946,10 @@ item_db: (
noauction: true
}
Script: <"
- getitem 545,100;
- getitem 546,100;
- getitem 547,100;
- getitem 505,100;
+ getitem Red_Slim_Potion,100;
+ getitem Yellow_Slim_Potion,100;
+ getitem White_Slim_Potion,100;
+ getitem Blue_Potion,100;
">
},
{
@@ -69925,8 +69961,8 @@ item_db: (
Weight: 10
Script: <"
if(getskilllv(HT_FALCON)) {
- if(checkoption(Option_Wug)||checkoption(Option_Wugrider)) end;
- if(checkfalcon()==1) {
+ if(checkoption(Option_Wug) || checkoption(Option_Wugrider)) end;
+ if(checkfalcon() == 1) {
setfalcon 0;
}
else {
@@ -76117,7 +76153,7 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Script: <" getitem 14530,1; ">
+ Script: <" getitem Flee_30_Scroll,1; ">
},
{
Id: 13625
@@ -76126,7 +76162,7 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Script: <" getitem 14531,1; ">
+ Script: <" getitem Accuracy_30_Scroll,1; ">
},
{
Id: 13626
@@ -86357,7 +86393,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 14600,20; ">
+ Script: <" getitem Mental_Potion,20; ">
},
{
Id: 14350
@@ -86371,7 +86407,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 14600,50; ">
+ Script: <" getitem Mental_Potion,50; ">
},
{
Id: 14351
@@ -86385,7 +86421,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 14601,20; ">
+ Script: <" getitem Tyr's_Blessing,20; ">
},
{
Id: 14352
@@ -86399,7 +86435,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 14601,50; ">
+ Script: <" getitem Tyr's_Blessing,50; ">
},
{
Id: 14363
@@ -86690,7 +86726,7 @@ item_db: (
Type: 2
Buy: 800
Weight: 20
- Script: <" sc_start SC_ATTHASTE_POTION1,1800000,0; ">
+ Script: <" sc_start SC_ATTHASTE_POTION1,1800000,4; ">
},
{
Id: 14510
@@ -86701,7 +86737,7 @@ item_db: (
Weight: 20
Job: 0xFFF7FEEF
EquipLv: 40
- Script: <" sc_start SC_ATTHASTE_POTION2,1800000,0; ">
+ Script: <" sc_start SC_ATTHASTE_POTION2,1800000,6; ">
},
{
Id: 14511
@@ -86712,7 +86748,7 @@ item_db: (
Weight: 20
Job: 0x01E646A6
EquipLv: 85
- Script: <" sc_start SC_ATTHASTE_POTION3,1800000,0; ">
+ Script: <" sc_start SC_ATTHASTE_POTION3,1800000,9; ">
},
{
Id: 14512
@@ -86906,7 +86942,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 10
- Script: <" sc_start SC_INCFLEE,1800000,30; ">
+ Script: <" sc_start SC_FOOD_BASICAVOIDANCE,1800000,30; ">
},
{
Id: 14531
@@ -86915,7 +86951,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 10
- Script: <" sc_start SC_INCHIT,1800000,30; ">
+ Script: <" sc_start SC_FOOD_BASICHIT,1800000,30; ">
},
{
Id: 14532
@@ -87930,6 +87966,10 @@ item_db: (
noselltonpc: true
nogstorage: true
}
+ Script: <"
+ specialeffect2 EF_SPELLBREAKER;
+ sc_start SC_TARGET_ASPD,1800000,10;
+ ">
},
{
Id: 14601
@@ -87944,8 +87984,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_INCFLEE,300000,30;
- sc_start SC_INCHIT,300000,30;
+ sc_start SC_FOOD_BASICAVOIDANCE,300000,30;
+ sc_start SC_FOOD_BASICHIT,300000,30;
sc_start SC_PLUSATTACKPOWER,300000,20;
sc_start SC_PLUSMAGICPOWER,300000,20;
">
@@ -88049,7 +88089,14 @@ item_db: (
Type: 2
Buy: 10000
Weight: 600
- Script: <" sc_start SC_INCALLSTATUS,3600000,3; ">
+ Script: <"
+ sc_start SC_FOOD_STR,3600000,3;
+ sc_start SC_FOOD_DEX,3600000,3;
+ sc_start SC_FOOD_AGI,3600000,3;
+ sc_start SC_FOOD_INT,3600000,3;
+ sc_start SC_FOOD_VIT,3600000,3;
+ sc_start SC_FOOD_LUK,3600000,3;
+ ">
},
{
Id: 14608
@@ -88063,7 +88110,14 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" sc_start SC_INCALLSTATUS,3600000,6; ">
+ Script: <"
+ sc_start SC_FOOD_STR,3600000,6;
+ sc_start SC_FOOD_DEX,3600000,6;
+ sc_start SC_FOOD_AGI,3600000,6;
+ sc_start SC_FOOD_INT,3600000,6;
+ sc_start SC_FOOD_VIT,3600000,6;
+ sc_start SC_FOOD_LUK,3600000,6;
+ ">
},
{
Id: 14609
@@ -88073,7 +88127,9 @@ item_db: (
Buy: 0
Script: <" percentheal 10,10; ">
},
-// More Armors
+
+// More Armors
+// ===================================================================
{
Id: 15000
AegisName: "Bone_Plate"
@@ -88753,7 +88809,9 @@ item_db: (
Weight: 10
Script: <" getitem 12581,50; ">
},
-// Mechanic/Genetic Cannonballs
+
+// Mechanic/Genetic Cannonballs
+// ===================================================================
{
Id: 18000
AegisName: "Cannon_Ball"
@@ -88827,7 +88885,9 @@ item_db: (
EquipLv: 99
View: 8
},
-// More Bows
+
+// More Bows
+// ===================================================================
{
Id: 18100
AegisName: "Shooting_Star"
@@ -88893,7 +88953,9 @@ item_db: (
bonus2 bResEff,Eff_Blind,5000;
">
},
-// More Headgears
+
+// More Headgears
+// ===================================================================
{
Id: 18500
AegisName: "Cheer_Scarf6"
diff --git a/db/re/item_combo_db.txt b/db/re/item_combo_db.txt
index 2efef8691..26ea5435f 100644
--- a/db/re/item_combo_db.txt
+++ b/db/re/item_combo_db.txt
@@ -71,10 +71,8 @@
1741:2748,{ bonus bAtk,25; bonus3 bAddEff,Eff_Curse,200,ATF_WEAPON|ATF_LONG|ATF_TARGET; }
1746:1773,{ bonus bLongAtkRate,50; }
1764:18541,{ bonus bCritAtkRate,5; }
-1775:18113,{ bonus bLongAtkRate,70; }
-1776:18113,{ bonus bLongAtkRate,40; }
-1775:18114,{ bonus bLongAtkRate,50; }
-1776:18114,{ bonus bLongAtkRate,20; }
+1775:18114,{ bonus bLongAtkRate,70; }
+1776:18114,{ bonus bLongAtkRate,40; }
1935:2988,{ bonus2 bSkillAtk,CG_ARROWVULCAN,200; bonus2 bSkillUseSP,CG_ARROWVULCAN,20; }
1990:2989,{ bonus2 bSkillAtk,CG_ARROWVULCAN,200; }
2001:2677,{ bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }
@@ -260,7 +258,15 @@
4509:19023,{ bonus2 bSubRace,RC_Insect,10; bonus2 bResEff,Eff_Confusion,10000; }
4517:5967,{ bonus bInt,1; bonus bCritAtkRate,5; if(BaseClass==Job_Archer) { bonus bCritAtkRate,10; } }
4606:20778,{ bonus bMaxSPrate,44; bonus bSPGainValue,-(20+(getequiprefinerycnt(EQI_GARMENT)/2)); }
+4608:4609,{ bonus2 bAddSize,Size_Medium,15; bonus2 bAddSize,Size_Large,15; bonus2 bSubSize,Size_Medium,5; bonus2 bSubSize,Size_Large,5; }
4635:4636,{ bonus2 bResEff,Eff_Burning,10000; }
+4642:4646,{ bonus bAtkRate,10; bonus bMatkRate,10; }
+4643:4646,{ bonus bAtkRate,10; bonus bMatkRate,10; }
+4644:4646,{ bonus bAtkRate,10; bonus bMatkRate,10; }
+4645:4646,{ bonus bAtkRate,10; bonus bMatkRate,10; }
+4653:4654,{ bonus2 bSubRace,RC_Brute,5; bonus2 bSubRace,RC_Undead,5; bonus2 bIgnoreMdefRate,50,RC_Brute; bonus2 bIgnoreMdefRate,50,RC_Undead; }
+4653:4655,{ bonus2 bSubRace,RC_Brute,5; bonus2 bSubRace,RC_Undead,5; bonus2 bIgnoreDefRate,50,RC_Brute; bonus2 bIgnoreDefRate,50,RC_Undead; }
+//4656:4657,{ bonus2 bSubEle,Ele_Neutral,5; /* Increase the probability of causing Sleep to all targets on 11x11 cells. */ }
5007:18913,{ bonus2 bExpAddRace,RC_NonBoss,5; bonus2 bExpAddRace,RC_Boss,5; }
5021:18824,{ bonus bMaxHP,100; bonus2 bSubEle,Ele_Neutral,getequiprefinerycnt(EQI_HEAD_TOP); }
5040:5442,{ bonus bAspdRate,3; bonus bVariableCastrate,3; }
@@ -279,6 +285,7 @@
5470:5653,{ bonus bDex,1; bonus bLongAtkRate,3; }
5690:13428,{ bonus2 bAddRace,RC_DemiPlayer,10; bonus bHit,10; }
5890:28306,{ bonus2 bAddRace,RC_Boss,3; bonus2 bAddRace,RC_NonBoss,3; }
+5932:1737,{ if (Class == Job_Ranger || Class == Job_Ranger_T) skill HT_BLITZBEAT,5*getequiprefinerycnt(EQI_HAND_R); }
//5967:28321,{ skill HT_BLITZBEAT,-200; }
13027:15044,{ bonus3 bAddMonsterDropItem,929,RC_Brute,100+(getequiprefinerycnt(EQI_HAND_R)*10); bonus3 bAddMonsterDropItem,929,RC_DemiPlayer,100+(getequiprefinerycnt(EQI_HAND_R)*10); bonus3 bAddMonsterDropItem,970,RC_Brute,20+(getequiprefinerycnt(EQI_HAND_R)*2); bonus3 bAddMonsterDropItem,970,RC_DemiPlayer,20+(getequiprefinerycnt(EQI_HAND_R)*2); }
13034:13035,{ bonus bMaxSP,20; bonus bMaxHPrate,5; bonus bHit,10; bonus2 bAddSize,Size_Large,30; autobonus "{ bonus bAspdRate,100; }",1,7000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; }
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index e920b3d5f..66d1d6e30 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -37,13 +37,13 @@ item_db: (
override: GroupID (int, defaults to 100)
nodrop: true/false (boolean, defaults to false)
notrade: true/false (boolean, defaults to false)
- partneroverride: true/false (boolean, defaults to false)
- noselltonpc: true/false (boolean, defaults to false)
- nocart: true/false (boolean, defaults to false)
nostorage: true/false (boolean, defaults to false)
- nogstorage: true/false (boolean, defaults to false)
+ nocart: true/false (boolean, defaults to false)
+ noselltonpc: true/false (boolean, defaults to false)
nomail: true/false (boolean, defaults to false)
- noauction: true/false (boolean, defaults to false)
+ noauction: true/false (boolean, defaults to false)
+ nogstorage: true/false (boolean, defaults to false)
+ partneroverride: true/false (boolean, defaults to false)
}
Nouse: { (defaults to no restrictions)
override: GroupID (int, defaults to 100)
@@ -28971,7 +28971,6 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
- nostorage: true
nogstorage: true
nomail: true
noauction: true
@@ -30850,9 +30849,6 @@ item_db: (
Refine: false
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <" bonus bUseSPrate,-5; ">
},
@@ -30867,9 +30863,6 @@ item_db: (
Refine: false
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <" bonus bInt,2; ">
},
@@ -30885,9 +30878,6 @@ item_db: (
Refine: false
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus bStr,2;
@@ -30906,9 +30896,6 @@ item_db: (
Refine: false
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <" autobonus "{ bonus bAspdRate,2; }",10,10000,0,"{ specialeffect2 EF_POTION_BERSERK; }"; ">
},
@@ -30925,9 +30912,6 @@ item_db: (
Refine: false
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus bAllStats,1;
@@ -31787,9 +31771,6 @@ item_db: (
Refine: false
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <" bonus bInt,2; ">
},
@@ -31805,9 +31786,6 @@ item_db: (
Refine: false
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus bDex,2;
@@ -31826,9 +31804,6 @@ item_db: (
Refine: false
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <" autobonus "{ bonus bMaxHPrate,10; }",10,10000,0,"{ specialeffect2 EF_POTION_BERSERK; }"; ">
},
@@ -32440,15 +32415,6 @@ item_db: (
Loc: 136
EquipLv: 110
Refine: false
- Trade: {
- nodrop: true
- notrade: true
- nocart: true
- nostorage: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <"
bonus bVit,2;
bonus bHealPower,2;
@@ -32465,15 +32431,6 @@ item_db: (
Loc: 136
EquipLv: 110
Refine: false
- Trade: {
- nodrop: true
- notrade: true
- nocart: true
- nostorage: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <"
bonus bInt,2;
bonus bHealPower,2;
@@ -32490,15 +32447,6 @@ item_db: (
Loc: 136
EquipLv: 110
Refine: false
- Trade: {
- nodrop: true
- notrade: true
- nocart: true
- nostorage: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <"
bonus bDex,2;
bonus bHealPower,2;
@@ -32794,7 +32742,7 @@ item_db: (
Type: 5
Buy: 0
Loc: 136
- EquipLv: [1, 60]
+ EquipLv: [1, 120]
Refine: false
Trade: {
nodrop: true
@@ -32807,10 +32755,12 @@ item_db: (
noauction: true
}
Script: <"
- bonus bBaseAtk,15;
- bonus bMatk,15;
+ bonus bBaseAtk,30;
+ bonus bMatk,30;
bonus2 bExpAddRace,RC_Boss,15;
bonus2 bExpAddRace,RC_NonBoss,15;
+ skill CR_AUTOGUARD,3;
+ skill AL_CURE,1;
">
},
{
@@ -33945,7 +33895,7 @@ item_db: (
">
},
-// Cards
+// Cards
// ===================================================================
{
Id: 4001
@@ -40804,7 +40754,7 @@ item_db: (
Loc: 64
Script: <"
bonus bAspd,1;
- bonus bMaxHPrate,-10;
+ bonus bMaxSPrate,-10;
">
},
{
@@ -41301,7 +41251,7 @@ item_db: (
Buy: 20
Weight: 10
Loc: 4
- Script: <" bonus bLongAtkDef,readparam(bDex)/10; ">
+ Script: <" bonus bLongAtkRate,1*(readparam(bDex)/10); ">
},
{
Id: 4594
@@ -41762,11 +41712,777 @@ item_db: (
Weight: 10
Loc: 32
Script: <"
- /*bonus bSPrecovRate,-100;*/
+ bonus bSPrecovRate,-100;
/*Each time you get a physical attack, recover SP by 1.*/
">
},
-// Armor Enchant System
+{
+ Id: 4642
+ AegisName: "Infinite_Toad_Card"
+ Name: "Infinite Toad Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 64
+ Script: <"
+ bonus bFlee2,2;
+ if (getrefine() > 6) bonus bFlee2,2;
+ if (getrefine() > 8) bonus bFlee2,3;
+ ">
+},
+{
+ Id: 4643
+ AegisName: "Infinite_Vagabond_Wolf_Card"
+ Name: "Infinite Vagabond Wolf Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 64
+ Script: <"
+ bonus bAtk,10;
+ if (getrefine() > 6) bonus bAtk,10;
+ if (getrefine() > 8) bonus bAtk,15;
+ ">
+},
+{
+ Id: 4644
+ AegisName: "Infinite_Vocal_Card"
+ Name: "Infinite Vocal Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 64
+ Script: <"
+ bonus bMdef,5;
+ if (getrefine() > 6) bonus bMdef,10;
+ if (getrefine() > 8) bonus bMdef,15;
+ ">
+},
+{
+ Id: 4645
+ AegisName: "Infinite_Eclipse_Card"
+ Name: "Infinite Eclipse Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 64
+ Script: <"
+ bonus bMaxHP,300;
+ if (getrefine() > 6) bonus bMaxHP,300;
+ if (getrefine() > 8) bonus bMaxHP,400;
+ ">
+},
+{
+ Id: 4646
+ AegisName: "Infinite_Chimera_Card"
+ Name: "Infinite Chimera Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ bonus bMaxHPrate,8; bonus bMaxSPrate,4;
+ ">
+},
+{
+ Id: 4647
+ AegisName: "Infinite_Osiris_Card"
+ Name: "Infinite_Osiris_Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 136
+ Script: <" bonus bHPGainValue,300; ">
+},
+{
+ Id: 4648
+ AegisName: "Infinite_Eddga_Card"
+ Name: "Infinite_Eddga_Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 64
+ Script: <" bonus3 bAutoSpellWhenHit,SM_PROVOKE,10,500; ">
+},
+{
+ Id: 4649
+ AegisName: "Infinite_Phreeoni_Card"
+ Name: "Infinite Phreeoni Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <" bonus bCritical,100; ">
+},
+{
+ Id: 4650
+ AegisName: "Infinite_Orc_Hero_Card"
+ Name: "Infinite Orc Hero Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 769
+ Script: <"
+ bonus bVit,3;
+ bonus3 bAddEffWhenHit,Eff_Stun,10000,BF_MAGIC; /* NOTE: Works only on monsters, going to test further in Official servers if also works on players. [Frost] */
+ ">
+},
+{
+ Id: 4651
+ AegisName: "Infinite_Tao_Gunka_Card"
+ Name: "Infinite Tao Gunka Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 16
+ Script: <"
+ bonus bMaxHP,10000;
+ bonus bAgi,-10;
+ ">
+},
+{
+ Id: 4652
+ AegisName: "Nightmare_Amon_Ra_Card"
+ Name: "Nightmare Amon Ra Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 16
+ Script: <"
+ bonus2 bMagicAddEle,Ele_Shadow,50;
+ bonus2 bMagicAddEle,Ele_Undead,50;
+ bonus2 bMagicAddRace,RC_Demon,50;
+ bonus2 bMagicAddRace,RC_Undead,50;
+ ">
+},
+{
+ Id: 4653
+ AegisName: "Nightmare_Arclouse_Card"
+ Name: "Nightmare Arclouse Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 32
+ Script: <"
+ bonus2 bSubRace,RC_Brute,20;
+ bonus2 bSubRace,RC_Undead,20;
+ ">
+},
+{
+ Id: 4654
+ AegisName: "Nightmare_Mimic_Card"
+ Name: "Nightmare Mimic Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bMagicAddRace,RC_Brute,5;
+ bonus2 bMagicAddRace,RC_Undead,5;
+ ">
+},
+{
+ Id: 4655
+ AegisName: "Nightmare_Minorous_Card"
+ Name: "Nightmare Minorous Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bAddRace,RC_Brute,10;
+ bonus2 bAddRace,RC_Undead,10;
+ ">
+},
+{
+ Id: 4656
+ AegisName: "Nightmare_Mummy_Card"
+ Name: "Nightmare Mummy Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 64
+ Script: <" /* When physically and magically attacked, chance to cause Sleep to all targets on 11x11 cells. */ ">
+},
+{
+ Id: 4657
+ AegisName: "Nightmare_Ancient_Mummy_Card"
+ Name: "Nightmare Ancient Mummy Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ bonus2 bSubEle,Ele_Neutral,15;
+ bonus2 bMagicAtkEle,Ele_Fire,3+(getrefine()*3);
+ ">
+},
+{
+ Id: 4658
+ AegisName: "Nightmare_Verit_Card"
+ Name: "Nightmare Verit Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 64
+ Script: <"
+ bonus bMatkRate,5;
+ if (getrefine() > 6) bonus bMatkRate,3;
+ if (getrefine() > 8) bonus bMatkRate,2;
+ ">
+},
+{
+ Id: 4659
+ AegisName: "Eggring_Card"
+ Name: "Eggring Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 16
+ Script: <"
+ bonus bLuk,2;
+ bonus bMaxHP,50;
+ ">
+},
+{
+ Id: 4660
+ AegisName: "Scout_Basilisk_Card"
+ Name: "Scout Basilisk Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 32
+ Script: <"
+ bonus2 bSubSize,Size_Small,5;
+ bonus2 bSubSize,Size_Medium,5;
+ ">
+},
+{
+ Id: 4661
+ AegisName: "Charge_Basilisk_Card"
+ Name: "Charge Basilisk Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 32
+ Script: <"
+ bonus2 bSubSize,Size_Small,-15;
+ bonus2 bSubSize,Size_Medium,20;
+ bonus2 bSubSize,Size_Large,20;
+ ">
+},
+{
+ Id: 4662
+ AegisName: "Big_Eggring_Card"
+ Name: "Big Eggring Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ bonus bAtk,25;
+ bonus bMatk,25;
+ bonus bAspdRate,10;
+ bonus bMaxHP,1000;
+ bonus bLongAtkRate,5;
+ bonus bCritAtkRate,10;
+ bonus bAtk,-5/(readparam(bStr)*10);
+ bonus bAspdRate,-2/(readparam(bAgi)*10);
+ bonus bMatk,-5/(readparam(bInt)*10);
+ bonus bMaxHP,-200/(readparam(bVit)*10);
+ bonus bLongAtkRate,-1/(readparam(bDex)*10);
+ bonus bCritAtkRate,-2/(readparam(bLuk)*10);
+ ">
+},
+{
+ Id: 4663
+ AegisName: "Leaf_Lunatic_Card"
+ Name: "Leaf Lunatic Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 64
+ Script: <" bonus bMaxSP,5; ">
+},
+{
+ Id: 4664
+ AegisName: "Grass_Fabre_Card"
+ Name: "Grass Fabre Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 16
+ Script: <"
+ bonus bLuk,1;
+ bonus bMaxHP,100;
+ ">
+},
+{
+ Id: 4665
+ AegisName: "Wild_Hornet_Card"
+ Name: "Wild Hornet Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <" bonus bAtk,5; ">
+},
+{
+ Id: 4666
+ AegisName: "Swift_Roda_Frog_Card"
+ Name: "Swift Roda Frog Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 16
+ Script: <"
+ bonus bMaxSP,10;
+ bonus bMaxHP,300;
+ ">
+},
+{
+ Id: 4667
+ AegisName: "Hunter_Wolf_Card"
+ Name: "Hunter Wolf Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 64
+ Script: <" bonus bMaxSP,30; ">
+},
+{
+ Id: 4668
+ AegisName: "Trance_Spore_Card"
+ Name: "Trance Spore Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 769
+ Script: <"
+ bonus bVit,1;
+ bonus bInt,1;
+ ">
+},
+{
+ Id: 4669
+ AegisName: "Jungle_Mandragora_Card"
+ Name: "Jungle Mandragora Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bMagicAddEle,Ele_Wind,3;
+ if (getrefine() > 6) bonus2 bMagicAddEle,Ele_Wind,5;
+ if (getrefine() > 8) bonus2 bMagicAddEle,Ele_Wind,7;
+ ">
+},
+{
+ Id: 4670
+ AegisName: "Fruit_Pom_Spider"
+ Name: "Fruit Pom Spider"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bMagicAddEle,Ele_Fire,3;
+ if (getrefine() > 6) bonus2 bMagicAddEle,Ele_Fire,5;
+ if (getrefine() > 8) bonus2 bMagicAddEle,Ele_Fire,7;
+ ">
+},
+{
+ Id: 4671
+ AegisName: "Sorcerer_Celia_Card"
+ Name: "Sorcerer Celia Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Sorcerer || Class == Job_Sorcerer_T) {
+ bonus bMaxHPrate,10;
+ bonus bMatkRate,10;
+ }
+ ">
+},
+{
+ Id: 4672
+ AegisName: "Sura_Chen_Card"
+ Name: "Sura Chen Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Sura || Class == Job_Sura_T) {
+ bonus bMaxHPrate,10;
+ bonus bAtkRate,10;
+ }
+ ">
+},
+{
+ Id: 4673
+ AegisName: "Minstrel_Alphoccio_Card"
+ Name: "Minstrel Alphoccio Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Minstrel || Class == Job_Minstrel_T) {
+ bonus bMaxHPrate,15;
+ bonus bMaxSPrate,10;
+ }
+ ">
+},
+{
+ Id: 4674
+ AegisName: "Guillotine_Cross_Eremes_Card"
+ Name: "Guillotine Cross Eremes Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Guillotine_Cross || Class == Job_Guillotine_Cross_T) {
+ bonus bFlee2,10;
+ bonus bAtkRate,15;
+ }
+ ">
+},
+{
+ Id: 4675
+ AegisName: "Arch_Bishop_Magaleta_Card"
+ Name: "Arch Bishop Magaleta Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Arch_Bishop || Class == Job_Arch_Bishop_T) {
+ bonus bMaxHPrate,10;
+ bonus bHealPower,15;
+ }
+ ">
+},
+{
+ Id: 4676
+ AegisName: "Ranger_Cecil_Card"
+ Name: "Ranger Cecil Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Ranger || Class == Job_Ranger_T) {
+ bonus bCritical,20;
+ bonus bLongAtkRate,15;
+ }
+ ">
+},
+{
+ Id: 4677
+ AegisName: "Mechanic_Howard_Card"
+ Name: "Merchanic Howard Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Mechanic || Class == Job_Mechanic_T) {
+ bonus bHit,20;
+ bonus bAtkRate,15;
+ }
+ ">
+},
+{
+ Id: 4678
+ AegisName: "Warlock_Kathryne_Card"
+ Name: "Warlock Kathryne Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Warlock || Class == Job_Warlock_T) {
+ bonus bMdef,80;
+ bonus bMatkRate,15;
+ }
+ ">
+},
+{
+ Id: 4679
+ AegisName: "Rune_Knight_Seyren_Card"
+ Name: "Rune Knight Seyren Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T) {
+ bonus bAspd,2;
+ bonus bAtkRate,15;
+ }
+ ">
+},
+{
+ Id: 4680
+ AegisName: "Royal_Guard_Randel_Card"
+ Name: "Royal Guard Randel Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Royal_Guard || Class == Job_Royal_Guard_T) {
+ bonus bDef,350;
+ bonus bAtkRate,10;
+ }
+ ">
+},
+{
+ Id: 4681
+ AegisName: "Genetic_Flamel_Card"
+ Name: "Genetic Flamel Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Genetic || Class == Job_Genetic_T) {
+ bonus bFlee,20;
+ bonus bAtkRate,15;
+ }
+ ">
+},
+{
+ Id: 4682
+ AegisName: "Shadow_Chaser_Gertie_Card"
+ Name: "Shadow Chaser Gertie Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T) {
+ bonus bAtkRate,5;
+ bonus bMatkRate,15;
+ }
+ ">
+},
+{
+ Id: 4683
+ AegisName: "Wanderer_Trentini_Card"
+ Name: "Wanderer Trentini Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 4
+ Script: <"
+ if (BaseLevel == 175) bonus bAllStats,10;
+ if (getrefine() >= 10) bonus bAllStats,10;
+ if (Class == Job_Wanderer || Class == Job_Wanderer_T) {
+ bonus bMaxHPrate,10;
+ bonus bMaxSPrate,15;
+ }
+ ">
+},
+{
+ Id: 4684
+ AegisName: "True_Eremes_Guile_Card"
+ Name: "True Eremes Guile Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,GC_CROSSIMPACT,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,GC_CROSSIMPACT,200;
+ ">
+},
+{
+ Id: 4685
+ AegisName: "True_Margaretha_Sorin_Card"
+ Name: "True Margaretha Sorin Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,AB_JUDEX,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,AB_JUDEX,200;
+ ">
+},
+{
+ Id: 4686
+ AegisName: "True_Kathryne_Keyron_Card"
+ Name: "True Kathryne Keyron Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,WL_HELLINFERNO,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,WL_HELLINFERNO,200;
+ ">
+},
+{
+ Id: 4687
+ AegisName: "True_Cecil_Damon_Card"
+ Name: "True Cecil Damon Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,RA_AIMEDBOLT,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,RA_AIMEDBOLT,200;
+ ">
+},
+{
+ Id: 4688
+ AegisName: "True_Howard_Alt-Eisen_Card"
+ Name: "True Howard Alt-Eisen Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,NC_POWERSWING,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,NC_POWERSWING,200;
+ ">
+},
+{
+ Id: 4689
+ AegisName: "True_Seyren_Windsor_Card"
+ Name: "True Seyren Windsor Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,RK_SONICWAVE,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,RK_SONICWAVE,200;
+ ">
+},
+{
+ Id: 4690
+ AegisName: "True_Randel_Lawrence_Card"
+ Name: "True Randel Lawrence Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,LG_BANISHINGPOINT,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,LG_BANISHINGPOINT,200;
+ ">
+},
+{
+ Id: 4691
+ AegisName: "True_Flamel_Emure_Card"
+ Name: "True Flamel Emure Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,GN_CARTCANNON,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,GN_CARTCANNON,200;
+ ">
+},
+{
+ Id: 4692
+ AegisName: "True_Celia_Alde_Card"
+ Name: "True Celia Alde Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,SO_CLOUD_KILL,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,SO_CLOUDKILL,200;
+ ">
+},
+{
+ Id: 4693
+ AegisName: "True_Chen_Liu_Card"
+ Name: "True Chen Liu Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,SR_DRAGONCOMBO,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,SR_DRAGONCOMBO,200;
+ ">
+},
+{
+ Id: 4694
+ AegisName: "True_Gertie_Card"
+ Name: "True Gertie Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,SC_FEINTBOMB,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,SC_FEINTBOMB,200;
+ ">
+},
+{
+ Id: 4695
+ AegisName: "True_Trentini_Card"
+ Name: "True Trentini Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,WM_METALICSOUND,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,WM_METALICSOUND,200;
+ ">
+},
+{
+ Id: 4696
+ AegisName: "True_Alphoccio_Card"
+ Name: "True Alphoccio Card"
+ Type: 6
+ Buy: 20
+ Weight: 10
+ Loc: 2
+ Script: <"
+ bonus2 bSkillAtk,WM_REVERBERATION,100;
+ if (getrefine() >= 10) bonus2 bSkillAtk,WM_REVERBERATION,200;
+ ">
+},
+
+// Armor Enchant System
// ===================================================================
{
Id: 4700
@@ -50280,9 +50996,6 @@ item_db: (
Trade: {
nodrop: true
noselltonpc: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus bDex,3;
@@ -50388,9 +51101,6 @@ item_db: (
View: 431
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus2 bSubEle,Ele_Fire,20;
@@ -50422,7 +51132,10 @@ item_db: (
Weight: 100
Loc: 256
View: 433
- Script: <" if(gettime(6)==9&&gettime(5)>=10&&gettime(5)<=24) bonus bAllStats,4; ">
+ Script: <"
+ if (gettime(GETTIME_MONTH) == SEPTEMBER && gettime(GETTIME_DAYOFMONTH) >= 10 && gettime(GETTIME_DAYOFMONTH) <= 24)
+ bonus bAllStats,4;
+ ">
},
{
Id: 5433
@@ -51232,9 +51945,6 @@ item_db: (
View: 476
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus bMdef,3;
@@ -51254,9 +51964,6 @@ item_db: (
View: 477
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus bAllStats,2;
@@ -51276,9 +51983,6 @@ item_db: (
View: 478
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus bAspdRate,10;
@@ -51298,9 +52002,6 @@ item_db: (
View: 479
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <" bonus bStr,3; ">
},
@@ -51317,9 +52018,6 @@ item_db: (
View: 480
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus bUnbreakableHelm,0;
@@ -52941,9 +53639,6 @@ item_db: (
View: 479
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
bonus bDex,3;
@@ -58058,8 +58753,8 @@ item_db: (
},
{
Id: 5932
- AegisName: "Birdcage_of_paradise"
- Name: "Birdcage of paradise"
+ AegisName: "Birdcage_Of_Paradise"
+ Name: "Birdcage Of Paradise"
Type: 5
Buy: 20
Weight: 800
@@ -58071,11 +58766,8 @@ item_db: (
bonus bLuk,5;
bonus bCritical,5;
bonus bFlee2,5;
- if(BaseClass==Job_Ranger||BaseClass==Job_Ranger_T) {
+ if (Class == Job_Ranger || Class == Job_Ranger_T) {
skill HT_BLITZBEAT,5*getrefine();
- if (isequipped(Ixion_Wing)) {
- skill HT_BLITZBEAT,5*getequiprefinerycnt(EQI_HAND_R);
- }
}
">
},
@@ -59797,7 +60489,6 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
- nostorage: true
nogstorage: true
nomail: true
noauction: true
@@ -59893,7 +60584,6 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
- nostorage: true
nogstorage: true
nomail: true
noauction: true
@@ -59909,7 +60599,6 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
- nostorage: true
nogstorage: true
nomail: true
noauction: true
@@ -61089,9 +61778,6 @@ item_db: (
Trade: {
nodrop: true
noselltonpc: true
- nogstorage: true
- nomail: true
- noauction: true
}
},
{
@@ -64764,6 +65450,14 @@ item_db: (
AegisName: "Solo_Troops_Badge"
Name: "Single Union Badge"
Buy: 0
+ Trade: {
+ nodrop: true
+ notrade: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
},
{
Id: 6913
@@ -66427,6 +67121,10 @@ item_db: (
Buy: 0
BuyingStore: true
Trade: {
+ nodrop: true
+ notrade: true
+ nocart: true
+ nostorage: true
nogstorage: true
nomail: true
noauction: true
@@ -69376,7 +70074,7 @@ item_db: (
Id: 7521
AegisName: "Flame_Stone"
Name: "Flame Stone"
- Buy: 150
+ Buy: 112
Weight: 10
BuyingStore: true
},
@@ -69384,7 +70082,7 @@ item_db: (
Id: 7522
AegisName: "Ice_Stone"
Name: "Ice Stone"
- Buy: 150
+ Buy: 112
Weight: 10
BuyingStore: true
},
@@ -69392,7 +70090,7 @@ item_db: (
Id: 7523
AegisName: "Wind_Stone"
Name: "Wind Stone"
- Buy: 150
+ Buy: 112
Weight: 10
BuyingStore: true
},
@@ -69400,7 +70098,7 @@ item_db: (
Id: 7524
AegisName: "Shadow_Orb"
Name: "Shadow Orb"
- Buy: 300
+ Buy: 225
Weight: 20
BuyingStore: true
},
@@ -71039,8 +71737,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71051,8 +71747,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71063,8 +71757,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71075,8 +71767,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71087,8 +71777,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71099,8 +71787,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71111,8 +71797,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71123,8 +71807,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71135,8 +71817,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71147,8 +71827,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71159,8 +71837,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -71171,8 +71847,6 @@ item_db: (
Weight: 10
Trade: {
noselltonpc: true
- nomail: true
- noauction: true
}
},
{
@@ -73451,9 +74125,6 @@ item_db: (
Buy: 0
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
},
{
@@ -73463,9 +74134,6 @@ item_db: (
Buy: 0
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
},
{
@@ -74004,10 +74672,6 @@ item_db: (
Buy: 20
Trade: {
nodrop: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
}
},
{
@@ -76679,7 +77343,7 @@ item_db: (
BuyingStore: true
Script: <"
sc_start SC_FOOD_STR,1200000,10;
- percentheal 20,20;
+ percentheal 20,10;
">
},
{
@@ -77015,6 +77679,7 @@ item_db: (
Buy: 20
Weight: 300
BuyingStore: true
+ Script: <" sc_start SC_FOOD_BASICAVOIDANCE,180000,30; ">
},
{
Id: 12102
@@ -77024,6 +77689,7 @@ item_db: (
Buy: 20
Weight: 300
BuyingStore: true
+ Script: <" sc_start SC_FOOD_BASICHIT,180000,30; ">
},
{
Id: 12103
@@ -77358,8 +78024,8 @@ item_db: (
Buy: 0
Weight: 80
Script: <"
- if(gettime(5)!=MDiceCone) {
- MDiceCone = gettime(5);
+ if (gettime(GETTIME_DAYOFMONTH) != MDiceCone) {
+ MDiceCone = gettime(GETTIME_DAYOFMONTH);
percentheal 50,50;
}
">
@@ -78239,7 +78905,7 @@ item_db: (
Buy: 20
Weight: 100
BuyingStore: true
- Script: <" sc_start SC_INCLUK,1200000,21; ">
+ Script: <" sc_start SC_FOOD_LUK,1200000,21; ">
},
{
Id: 12199
@@ -78275,7 +78941,9 @@ item_db: (
Buy: 20
Weight: 200
},
-// Cash Shop Usable Items
+
+// Cash Shop Usable Items
+// ===================================================================
{
Id: 12202
AegisName: "Str_Dish10_"
@@ -78286,15 +78954,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_STR_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_STR,1800000,10;
+ percentheal 20,10;
">
},
{
@@ -78307,14 +78975,14 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_AGI_CASH,1800000,10;
+ sc_start SC_FOOD_AGI,1800000,10;
percentheal 15,5;
">
},
@@ -78328,15 +78996,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_INT_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_INT,1800000,10;
+ percentheal 10,20;
">
},
{
@@ -78349,15 +79017,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_DEX_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_DEX,1800000,10;
+ percentheal 10,10;
">
},
{
@@ -78370,15 +79038,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_LUK_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_LUK,1800000,10;
+ percentheal 14,8;
">
},
{
@@ -78391,15 +79059,15 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
Script: <"
- sc_start SC_FOOD_VIT_CASH,1800000,10;
- percentheal 15,5;
+ sc_start SC_FOOD_VIT,1800000,10;
+ percentheal 25,0;
">
},
{
@@ -79006,7 +79674,14 @@ item_db: (
Type: 2
Buy: 2
Weight: 100
- Script: <" sc_start SC_INCALLSTATUS,600000,3; ">
+ Script: <"
+ sc_start SC_FOOD_STR,600000,3;
+ sc_start SC_FOOD_DEX,600000,3;
+ sc_start SC_FOOD_AGI,600000,3;
+ sc_start SC_FOOD_INT,600000,3;
+ sc_start SC_FOOD_VIT,600000,3;
+ sc_start SC_FOOD_LUK,600000,3;
+ ">
},
{
Id: 12248
@@ -79034,7 +79709,7 @@ item_db: (
Weight: 10
Script: <"
sc_start SC_FOOD_STR,3600000,10;
- percentheal 20,20;
+ percentheal 20,10;
">
},
{
@@ -79383,7 +80058,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_INCHIT,600000,33; ">
+ Script: <" sc_start SC_FOOD_BASICHIT,600000,33; ">
},
{
Id: 12273
@@ -79400,7 +80075,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_INCFLEE,600000,33; ">
+ Script: <" sc_start SC_FOOD_BASICAVOIDANCE,600000,33; ">
},
{
Id: 12274
@@ -79412,17 +80087,14 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <"
- sc_start SC_INCMHPRATE,36000000,5;
- percentheal 10,0;
- ">
+ Script: <" sc_start2 SC_ATKER_ASPD,3600000,5,10; ">
},
{
Id: 12275
@@ -79434,17 +80106,14 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <"
- sc_start SC_INCMSPRATE,36000000,5;
- percentheal 0,10;
- ">
+ Script: <" sc_start2 SC_ATKER_MOVESPEED,3600000,5,10; ">
},
{
Id: 12276
@@ -79538,7 +80207,12 @@ item_db: (
Buy: 0
Weight: 10
Script: <"
- sc_start SC_INCALLSTATUS,5400000,3;
+ sc_start SC_FOOD_STR,5400000,3;
+ sc_start SC_FOOD_DEX,5400000,3;
+ sc_start SC_FOOD_AGI,5400000,3;
+ sc_start SC_FOOD_INT,5400000,3;
+ sc_start SC_FOOD_VIT,5400000,3;
+ sc_start SC_FOOD_LUK,5400000,3;
sc_start SC_PLUSATTACKPOWER,5400000,15;
sc_start SC_PLUSMAGICPOWER,5400000,15;
">
@@ -79551,11 +80225,11 @@ item_db: (
Buy: 0
Weight: 10
Script: <"
- sc_start SC_CHASEWALK2,5400000,8;
- sc_start SC_INCDEX,5400000,4;
- sc_start SC_INCAGI,5400000,6;
+ sc_start SC_FOOD_STR,5400000,8;
+ sc_start SC_FOOD_DEX,5400000,4;
+ sc_start SC_FOOD_AGI,5400000,6;
sc_start SC_PLUSATTACKPOWER,5400000,32;
- sc_start SC_INCFLEE,5400000,5;
+ sc_start SC_FOOD_BASICAVOIDANCE,5400000,5;
">
},
{
@@ -79566,9 +80240,9 @@ item_db: (
Buy: 0
Weight: 10
Script: <"
- sc_start SC_INCINT,5400000,8;
- sc_start SC_INCVIT,5400000,4;
- sc_start SC_INCDEX,5400000,6;
+ sc_start SC_FOOD_INT,5400000,8;
+ sc_start SC_FOOD_VIT,5400000,4;
+ sc_start SC_FOOD_DEX,5400000,6;
sc_start SC_PLUSMAGICPOWER,5400000,40;
">
},
@@ -79580,9 +80254,9 @@ item_db: (
Buy: 0
Weight: 10
Script: <"
- sc_start SC_INCDEX,5400000,8;
- sc_start SC_INCLUK,5400000,4;
- sc_start SC_INCAGI,5400000,6;
+ sc_start SC_FOOD_DEX,5400000,8;
+ sc_start SC_FOOD_LUK,5400000,4;
+ sc_start SC_FOOD_AGI,5400000,6;
sc_start SC_PLUSATTACKPOWER,5400000,24;
sc_start SC_PLUSMAGICPOWER,5400000,24;
">
@@ -79790,14 +80464,17 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" sc_start SC_ATKER_BLOOD,3600000,15; ">
+ Script: <"
+ specialeffect2 EF_SPELLBREAKER;
+ sc_start SC_ATKER_BLOOD,3600000,15;
+ ">
},
{
Id: 12299
@@ -79809,14 +80486,17 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" sc_start SC_TARGET_BLOOD,3600000,10; ">
+ Script: <"
+ specialeffect2 EF_GUARD;
+ sc_start SC_TARGET_BLOOD,3600000,10;
+ ">
},
{
Id: 12300
@@ -80015,7 +80695,7 @@ item_db: (
Nouse: {
sitting: true
}
- Script: <" sc_start SC_INCFLEE,600000,10; ">
+ Script: <" sc_start SC_FOOD_BASICAVOIDANCE,600000,10; ">
},
{
Id: 12311
@@ -80077,6 +80757,7 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
+ nostorage: true
nogstorage: true
nomail: true
noauction: true
@@ -80131,8 +80812,8 @@ item_db: (
noauction: true
}
Script: <"
- sc_start SC_INCATKRATE,600000,5;
- sc_start SC_INCMATKRATE,600000,5;
+ sc_start SC_PLUSATTACKPOWER,600000,5;
+ sc_start SC_PLUSMAGICPOWER,600000,5;
">
},
{
@@ -80151,8 +80832,8 @@ item_db: (
noauction: true
}
Script: <"
- sc_start SC_INCHIT,600000,10;
- sc_start SC_PLUSAVOIDVALUE,600000,20;
+ sc_start SC_FOOD_BASICHIT,600000,10;
+ sc_start SC_FOOD_BASICAVOIDANCE,600000,20;
">
},
{
@@ -80170,7 +80851,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_CRITICALPERCENT,600000,7; ">
+ Script: <" sc_start SC_FOOD_CRITICALSUCCESSVALUE,600000,7; ">
},
{
Id: 12322
@@ -80265,6 +80946,7 @@ item_db: (
Type: 2
Buy: 1000
Weight: 50
+ Script: <" sc_start SC_FOOD_LUK,3600000,20; ">
},
{
Id: 12328
@@ -80273,7 +80955,14 @@ item_db: (
Type: 2
Buy: 1800
Weight: 100
- Script: <" sc_start SC_INCLUK,3600000,20; ">
+ Script: <"
+ sc_start SC_FOOD_STR,20000,10;
+ sc_start SC_FOOD_DEX,20000,10;
+ sc_start SC_FOOD_AGI,20000,10;
+ sc_start SC_FOOD_INT,20000,10;
+ sc_start SC_FOOD_VIT,20000,10;
+ sc_start SC_FOOD_LUK,20000,10;
+ ">
},
{
Id: 12329
@@ -80395,9 +81084,9 @@ item_db: (
Buy: 100
Weight: 100
Script: <"
- sc_start SC_CHASEWALK2,180000,2;
- sc_start SC_INCINT,180000,2;
- sc_start SC_INCAGI,180000,2;
+ sc_start SC_FOOD_STR,180000,2;
+ sc_start SC_FOOD_INT,180000,2;
+ sc_start SC_FOOD_AGI,180000,2;
">
},
{
@@ -80882,7 +81571,7 @@ item_db: (
Weight: 80
Script: <"
specialeffect2 EF_STEAL;
- sc_start SC_INCHITRATE,120000,5;
+ sc_start2 SC_ACARAJE,120000,5,10;
">
},
{
@@ -81217,16 +81906,17 @@ item_db: (
sitting: true
}
Script: <"
- if(rand(1,10)==1) itemskill AL_TELEPORT,1;
- else if(rand(1,10)==2) itemskill AL_TELEPORT,3;
- else if(rand(1,10)==3) percentheal 50,0;
- else if(rand(1,10)==4) percentheal 0,50;
- else if(rand(1,10)==5) end;
- else if(rand(1,10)==6) getitem 512,1;
- else if(rand(1,10)==7) itemskill ALL_REVERSEORCISH,1;
- else if(rand(1,10)==8) specialeffect2 247;
- else if(rand(1,10)==9) specialeffect2 338;
- else specialeffect2 10;
+ .@temp = rand(1,10);
+ if (.@temp == 1) itemskill AL_TELEPORT,1;
+ else if (.@temp == 2) itemskill AL_TELEPORT,3;
+ else if (.@temp == 3) percentheal 50,0;
+ else if (.@temp == 4) percentheal 0,50;
+ else if (.@temp == 5) percentheal 50,50;
+ else if (.@temp == 6) getitem Apple,1;
+ else if (.@temp == 7) itemskill ALL_REVERSEORCISH,1;
+ else if (.@temp == 8) specialeffect2 EF_MAPPILLAR2;
+ else if (.@temp == 9) specialeffect2 EF_ANGEL2;
+ else specialeffect2 EF_COIN;
">
},
{
@@ -81240,16 +81930,17 @@ item_db: (
sitting: true
}
Script: <"
- if(rand(1,10)==1) itemskill TF_DETOXIFY,1;
- else if(rand(1,10)==2) itemskill TF_PICKSTONE,1;
- else if(rand(1,10)==3) itemskill BA_FROSTJOKER,1;
- else if(rand(1,10)==4) itemskill DC_SCREAM,1;
- else if(rand(1,10)==5) end;
- else if(rand(1,10)==6) getitem 909,1;
- else if(rand(1,10)==7) itemskill AL_RUWACH,1;
- else if(rand(1,10)==8) specialeffect2 328;
- else if(rand(1,10)==9) specialeffect2 68;
- else specialeffect2 196;
+ .@temp = rand(1,10);
+ if (.@temp == 1) itemskill TF_DETOXIFY,1;
+ else if (.@temp == 2) itemskill TF_PICKSTONE,1;
+ else if (.@temp == 3) itemskill BA_FROSTJOKER,1;
+ else if (.@temp == 4) itemskill DC_SCREAM,1;
+ else if (.@temp == 5) percentheal 50,50;
+ else if (.@temp == 6) getitem Jellopy,1;
+ else if (.@temp == 7) itemskill AL_RUWACH,1;
+ else if (.@temp == 8) specialeffect2 EF_BEGINASURA;
+ else if (.@temp == 9) specialeffect2 EF_MVP;
+ else specialeffect2 EF_CURSEATTACK;
">
},
{
@@ -81292,7 +81983,7 @@ item_db: (
Name: "Rune Kn Test Int"
Type: 2
Buy: 0
- Script: <" sc_start SC_INCINT,300000,40; ">
+ Script: <" sc_start SC_FOOD_INT,300000,40; ">
},
{
Id: 12402
@@ -81361,6 +82052,11 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <"
+ percentheal 30,30;
+ skilleffect AL_BLESSING,0;
+ sc_start SC_BLESSING,140000,5;
+ ">
},
{
Id: 12406
@@ -81632,7 +82328,7 @@ item_db: (
Weight: 70
BuyingStore: true
Script: <"
- sc_start SC_EXTRACT_WHITE_POTION_Z,500000,0;
+ sc_start SC_EXTRACT_WHITE_POTION_Z,500000,20;
heal 1000,0;
">
},
@@ -81703,7 +82399,7 @@ item_db: (
Type: 2
Buy: 1000
Weight: 50
- Script: <" sc_start SC_STOMACHACHE,60000,rand(5,10); ">
+ Script: <" sc_start SC_STOMACHACHE,60000,rand(5,10);">
},
{
Id: 12436
@@ -81714,7 +82410,7 @@ item_db: (
Weight: 50
BuyingStore: true
Script: <"
- sc_start SC_VITATA_500,500000,0;
+ sc_start2 SC_VITATA_500,500000,20,5;
heal 0,200;
">
},
@@ -82792,7 +83488,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 504,100; ">
+ Script: <" getitem White_Potion,100; ">
},
{
Id: 12532
@@ -82809,7 +83505,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 526,100; ">
+ Script: <" getitem Royal_Jelly,100; ">
},
{
Id: 12533
@@ -82826,7 +83522,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 510,100; ">
+ Script: <" getitem Blue_Herb,100; ">
},
{
Id: 12534
@@ -82843,6 +83539,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Seed_Of_Yggdrasil,30; ">
},
{
Id: 12536
@@ -82852,6 +83549,7 @@ item_db: (
Buy: 20
Weight: 100
BuyingStore: true
+ Script: <" percentheal 20,20; ">
},
{
Id: 12537
@@ -82985,7 +83683,7 @@ item_db: (
Type: 2
Buy: 100
Weight: 50
- Script: <" sc_start SC_POISON,50000,0; ">
+ Script: <" sc_start SC_POISON,12000,0; ">
},
{
Id: 12547
@@ -83019,7 +83717,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 547,200; ">
+ Script: <" getitem White_Slim_Potion,200; ">
},
{
Id: 12550
@@ -83036,7 +83734,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 678,30; ">
+ Script: <" getitem Poison_Bottle,30; ">
},
{
Id: 12551
@@ -83325,7 +84023,7 @@ item_db: (
Weight: 250
EquipLv: 100
BuyingStore: true
- Script: <" getitem 1773,500; ">
+ Script: <" getitem Arrow_Of_Elf,500; ">
},
{
Id: 12576
@@ -83335,7 +84033,7 @@ item_db: (
Buy: 500
Weight: 250
BuyingStore: true
- Script: <" getitem 1774,500; ">
+ Script: <" getitem Hunting_Arrow,500; ">
},
{
Id: 12577
@@ -83841,12 +84539,6 @@ item_db: (
Type: 0
Buy: 0
Weight: 50
- Trade: {
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" percentheal 3,3; ">
},
{
@@ -83951,7 +84643,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 13208,200; ">
+ Script: <" getitem Gong_Bung,200; ">
},
{
Id: 12638
@@ -83969,6 +84661,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Dried_Squid,200; ">
},
{
Id: 12639
@@ -83986,6 +84679,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Flying_Fish,200; ">
},
{
Id: 12640
@@ -84003,6 +84697,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Starfish,200; ">
},
{
Id: 12641
@@ -84036,7 +84731,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 504,100; ">
+ Script: <" getitem Fruit_Of_Mastela,100; ">
},
{
Id: 12643
@@ -84044,7 +84739,7 @@ item_db: (
Name: "E Coin Pack50"
Type: 2
Buy: 0
- Script: <" getitem 6422,50; ">
+ Script: <" getitem Egrade_Coin,50; ">
},
{
Id: 12644
@@ -84087,6 +84782,11 @@ item_db: (
Type: 2
Buy: 20
Weight: 30
+ Script:<"
+ sc_start SC_FOOD_LUK,6000,10;
+ sc_start SC_PLUSATTACKPOWER,6000,20;
+ sc_start SC_PLUSMAGICPOWER,6000,20;
+ ">
},
{
Id: 12647
@@ -84103,6 +84803,12 @@ item_db: (
Type: 11
Buy: 20
Weight: 100
+ Script: <"
+ getitem Red_Potion,10;
+ getitem Orange_Potion,10;
+ getitem Yellow_Potion,10;
+ getitem Blue_Potion,10;
+ ">
},
{
Id: 12649
@@ -84121,6 +84827,14 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <"
+ getitem Str_Dish08,5;
+ getitem Agi_Dish08,5;
+ getitem Int_Dish08,5;
+ getitem Vit_Dish08,5;
+ getitem Dex_Dish08,5;
+ getitem Luk_Dish08,5;
+ ">
},
{
Id: 12650
@@ -84139,6 +84853,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Comp_Battle_Manual,5; ">
},
{
Id: 12651
@@ -84157,6 +84872,12 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <"
+ getitem High_Weapon_Box,1;
+ getitem Octo_Hstick,Box,1;
+ getitem Octo_Hstick,Box,1;
+ getitem Octo_Hstick_Box,1;
+ ">
},
{
Id: 12652
@@ -84175,6 +84896,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem High_Coin_Pocket,10; ">
},
{
Id: 12653
@@ -84193,6 +84915,12 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <"
+ getitem Protection_Seagod_Box,1;
+ getitem Protection_Seagod_Box,1;
+ getitem Protection_Seagod_Box,1;
+ getitem Dark_Snake_Lord_Hat,1;
+ ">
},
{
Id: 12654
@@ -84433,10 +85161,10 @@ item_db: (
noauction: true
}
Script: <"
- getitem 617,2;
- getitem 12263,2;
- getitem 12329,3;
- getitem 12330,2;
+ getitem Old_Violet_Box,2;
+ getitem Comp_Battle_Manual,2;
+ getitem Recall_MaleGM,3;
+ getitem Recall_FemaleGM,2;
">
},
{
@@ -84471,7 +85199,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 500
- Script: <" getrandgroupitem 12675,1; ">
+ Script: <" getrandgroupitem Sg_Weapon_Supply_Box,1; ">
},
{
Id: 12676
@@ -84480,7 +85208,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 200
- Script: <" getitem 11547,50; ">
+ Script: <" getitem Woe_Violet_Potion,50; ">
},
{
Id: 12677
@@ -84490,7 +85218,7 @@ item_db: (
Buy: 2
Weight: 100
EquipLv: 130
- Script: <" getitem 1776,200; ">
+ Script: <" getitem Siege_Arrow_S,200; ">
},
{
Id: 12678
@@ -84500,7 +85228,7 @@ item_db: (
Buy: 2
Weight: 100
EquipLv: 95
- Script: <" getitem 1775,200; ">
+ Script: <" getitem Siege_Arrow_A,200; ">
},
{
Id: 12679
@@ -84509,7 +85237,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 200
- Script: <" getitem 11548,30; ">
+ Script: <" getitem Woe_White_Potion,30; ">
},
{
Id: 12680
@@ -84518,7 +85246,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 200
- Script: <" getitem 11549,10; ">
+ Script: <" getitem Woe_Blue_Potion,10; ">
},
{
Id: 12681
@@ -84543,7 +85271,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 200
- Script: <" getitem 11547,50; ">
+ Script: <" getitem Woe_Violet_Potion,50; ">
},
{
Id: 12684
@@ -84731,8 +85459,8 @@ item_db: (
noauction: true
}
Script: <"
- getrandgroupitem 12702,1;
- getrandgroupitem 12702,1;
+ getrandgroupitem Old_Bleu_Box,1;
+ getrandgroupitem Old_Bleu_Box,1;
">
},
{
@@ -84853,6 +85581,7 @@ item_db: (
Buy: 2
Weight: 100
EquipLv: 50
+ Script: <" percentheal 0,50; ">
},
{
Id: 12713
@@ -84877,7 +85606,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getrandgroupitem 12714,1; ">
+ Script: <" getrandgroupitem Easter_Scroll,1; ">
},
{
Id: 12715
@@ -85251,6 +85980,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 10
+ Script: <" percentheal 10,10; ">
},
{
Id: 12740
@@ -85292,6 +86022,7 @@ item_db: (
Name: "Valentine Gift Box"
Type: 2
Buy: 0
+ Script: <" getitem Valentine_Gold_Ring,1; ">
},
{
Id: 12743
@@ -85299,6 +86030,7 @@ item_db: (
Name: "Valentine Gift Box"
Type: 2
Buy: 0
+ Script: <" getitem Valentine_Silver_Ring,1; ">
},
{
Id: 12744
@@ -85306,24 +86038,26 @@ item_db: (
Name: "Chocolate Box"
Type: 2
Buy: 0
+ Script: <" getitem Chocolate,1; ">
},
{
Id: 12745
AegisName: "Skull_Scroll"
- Name: "Vivid Notation"
+ Name: "Skull Scroll"
Type: 2
Buy: 20
Weight: 10
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
- nocart: true
nostorage: true
- nogstorage: true
+ nocart: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
+ Script: <" sc_start SC_SKELSCROLL,1800000,5; ">
},
{
Id: 12746
@@ -85332,11 +86066,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <"
- autobonus "{bonus2 bAddRace,RC_Boss,5;}",10000,1800000;
- autobonus "{bonus2 bAddRace,RC_Angel,5;}",10000,1800000;
- autobonus "{bonus2 bAddEle,Ele_Holy,5;}",10000,1800000;
- ">
+ Script: <" sc_start SC_DISTRUCTIONSCROLL,1800000,5; ">
},
{
Id: 12747
@@ -85345,7 +86075,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <" autobonus "{bonus2 bSubRace,RC_Boss,5;}",10000,1800000; ">
+ Script: <" sc_start SC_ROYALSCROLL,1800000,5; ">
},
{
Id: 12748
@@ -85354,7 +86084,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <" autobonus "{bonus2 bAddEle,Ele_Neutral,-5;}",10000,1800000; ">
+ Script: <" sc_start SC_IMMUNITYSCROLL,1800000,5; ">
},
{
Id: 12749
@@ -85363,7 +86093,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <" sc_start SC_PLUSMAGICPOWER,180000,5; ">
+ Script: <" sc_start SC_MYSTICSCROLL,1800000,5; ">
},
{
Id: 12750
@@ -85372,10 +86102,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <"
- sc_start SC_ATTHASTE_POTION3,1800000,5;
- sc_start SC_PLUSATTACKPOWER,1800000,5;
- ">
+ Script: <" sc_start SC_BATTLESCROLL,1800000,5; ">
},
{
Id: 12751
@@ -85384,10 +86111,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <"
- sc_start SC_PROTECT_DEF,1800000,5;
- sc_start SC_FOOD_BASICAVOIDANCE,1800000,10;
- ">
+ Script: <" sc_start2 SC_ARMORSCROLL,1800000,5,10; ">
},
{
Id: 12752
@@ -85396,10 +86120,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <"
- sc_start SC_PROTECT_MDEF,1800000,5;
- sc_start SC_INCFLEE2,1800000,10;
- ">
+ Script: <" sc_start2 SC_FREYJASCROLL,1800000,5,10; ">
},
{
Id: 12753
@@ -85408,10 +86129,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Script: <"
- sc_start SC_INCMHPRATE,1800000,5;
- sc_start SC_INCMSPRATE,1800000,5;
- ">
+ Script: <" sc_start SC_SOULSCROLL,1800000,5; ">
},
{
Id: 12754
@@ -85420,6 +86138,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 10
+ Script: <" percentheal 50,50; ">
},
{
Id: 12755
@@ -85428,6 +86147,11 @@ item_db: (
Type: 2
Buy: 2
Weight: 10
+ Script: <"
+ specialeffect2 EF_POK_JAP;
+ itemskill MO_CALLSPIRITS,3;
+ itemskill MO_FINGEROFFENSIVE,5;
+ ">
},
{
Id: 12756
@@ -85523,6 +86247,7 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" sc_start SC_CASH_PLUSONLYJOBEXP,1800000,25; ">
},
{
Id: 12767
@@ -85822,6 +86547,61 @@ item_db: (
Weight: 10
},
{
+ Id: 12807
+ AegisName: "Mercenary_Casting_"
+ Name: "Mercenary Casting"
+ Type: 2
+ Buy: 0
+ EquipLv: 20
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <"
+ getitem Bow_Mercenary_Scroll8,5;
+ getitem SwordMercenary_Scroll8,5;
+ getitem Spear_Mercenary_Scroll8,5;
+ getitem Mother_Love_Box,1;
+ ">
+},
+{
+ Id: 12808
+ AegisName: "Mother_Love_Box"
+ Name: "Mother_Love_Box"
+ Type: 2
+ Buy: 0
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" rentitem Mother_Heart,1209600; ">
+},
+{
+ Id: 12809
+ AegisName: "Level_Up_Box"
+ Name: "Level Up Box"
+ Type: 2
+ Buy: 0
+ EquipLv: 120
+ Script: <"
+ getitem Comp_Battle_Manual,5;
+ getitem Comp_Bubble_Gum,5;
+ getitem Comp_Insurance,5;
+ getitem Reward_Job_BM25,5;
+ getitem Zherlthsh_Tck_Box_,1;
+ ">
+},
+{
Id: 12812
AegisName: "Snow_Flip"
Name: "Snow Flip"
@@ -85874,6 +86654,16 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <" getitem Level_Up_Box,1; ">
+},
+{
+ Id: 12819
+ AegisName: "Zherlthsh_Tck_Box_"
+ Name: "Zherlthsh Ticket Box"
+ Type: 2
+ Buy: 0
+ EquipLv: 150
+ Script: <" getitem Zherlthsh_Ticket,1; ">
},
{
Id: 12831
@@ -85892,16 +86682,25 @@ item_db: (
noauction: true
}
Script: <"
- getitem 545,100;
- getitem 546,100;
- getitem 547,100;
- getitem 505,100;
+ getitem Red_Slim_Potion,100;
+ getitem Yellow_Slim_Potion,100;
+ getitem White_Slim_Potion,100;
+ getitem Blue_Potion,100;
">
},
{
Id: 12845
AegisName: "Amatsu_Butterfly_Wing"
Name: "Amatsu Butterfly Wing"
+ Trade: {
+ nodrop: true
+ notrade: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
},
{
Id: 12846
@@ -85926,6 +86725,7 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
+ nostorage: true
nogstorage: true
nomail: true
noauction: true
@@ -85939,8 +86739,8 @@ item_db: (
Buy: 0
Script: <"
if(getskilllv(HT_FALCON)) {
- if(checkoption(Option_Wug)||checkoption(Option_Wugrider)) end;
- if(checkfalcon()==1) {
+ if(checkoption(Option_Wug) || checkoption(Option_Wugrider)) end;
+ if(checkfalcon() == 1) {
setfalcon 0;
}
else {
@@ -85990,6 +86790,89 @@ item_db: (
Weight: 10
},
{
+ Id: 12884
+ AegisName: "C_Center_Potion"
+ Name: "Infinite Concentration Potion"
+ Type: 11
+ Trade: {
+ nodrop: true
+ notrade: true
+ nostorage: true
+ nocart: true
+ noselltonpc: true
+ nomail: true
+ noauction: true
+ nogstorage: true
+ }
+ Script: <"
+ sc_start SC_ATTHASTE_POTION1,1800000,4;
+ specialeffect2 EF_POTION_CON; /* NOTE: No special effect when used. */
+ ">
+},
+{
+ Id: 12885
+ AegisName: "C_Awakening_Potion"
+ Name: "Infinite Awakening Potion"
+ Type: 11
+ Job: 0xFFF7FEEF
+ EquipLv: 40
+ Trade: {
+ nodrop: true
+ notrade: true
+ nostorage: true
+ nocart: true
+ noselltonpc: true
+ nomail: true
+ noauction: true
+ nogstorage: true
+ }
+ Script: <"
+ sc_start SC_ATTHASTE_POTION2,1800000,6;
+ specialeffect2 EF_POTION_; /* NOTE: No special effect when used. */
+ ">
+},
+{
+ Id: 12886
+ AegisName: "C_Berserk_Potion"
+ Name: "Infinite Berserk Potion"
+ Type: 11
+ Job: 0x01E646A6
+ EquipLv: 85
+ Trade: {
+ nodrop: true
+ notrade: true
+ nostorage: true
+ nocart: true
+ noselltonpc: true
+ nomail: true
+ noauction: true
+ nogstorage: true
+ }
+ Script: <"
+ sc_start SC_ATTHASTE_POTION3,1800000,9;
+ specialeffect2 EF_POTION_BERSERK; /* NOTE: No special effect when used. */
+ ">
+},
+{
+ Id: 12887
+ AegisName: "C_Wing_Of_Fly"
+ Name: "Infinite Fly Wing"
+ Type: 11
+ Trade: {
+ nodrop: true
+ notrade: true
+ nostorage: true
+ nocart: true
+ noselltonpc: true
+ nomail: true
+ noauction: true
+ nogstorage: true
+ }
+ Script: <"
+ warp strcharinfo(3),0,0; /* NOTE: Temporary script until we get the correct information. */
+ ">
+},
+{
Id: 12900
AegisName: "Battle_Manual_Box"
Name: "Battle Manual Box"
@@ -88832,9 +89715,6 @@ item_db: (
View: 1
Trade: {
nodrop: true
- nogstorage: true
- nomail: true
- noauction: true
}
Script: <"
if(getrefine()>=3) {
@@ -95533,7 +96413,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14530,1; ">
+ Script: <" getitem Flee_30_Scroll,1; ">
},
{
Id: 13625
@@ -95551,7 +96431,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14531,1; ">
+ Script: <" getitem Accuracy_30_Scroll,1; ">
},
{
Id: 13626
@@ -108266,13 +109146,13 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" getitem 14600,20; ">
+ Script: <" getitem Mental_Potion,20; ">
},
{
Id: 14350
@@ -108284,13 +109164,13 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" getitem 14600,50; ">
+ Script: <" getitem Mental_Potion,50; ">
},
{
Id: 14351
@@ -108308,7 +109188,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14601,20; ">
+ Script: <" getitem Tyr's_Blessing,20; ">
},
{
Id: 14352
@@ -108326,7 +109206,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14601,50; ">
+ Script: <" getitem Tyr's_Blessing,50; ">
},
{
Id: 14361
@@ -108906,7 +109786,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_ATTHASTE_POTION1,1800000,0; ">
+ Script: <" sc_start SC_ATTHASTE_POTION1,1800000,4; ">
},
{
Id: 14510
@@ -108925,7 +109805,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_ATTHASTE_POTION2,1800000,0; ">
+ Script: <" sc_start SC_ATTHASTE_POTION2,1800000,6; ">
},
{
Id: 14511
@@ -108944,7 +109824,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_ATTHASTE_POTION3,1800000,0; ">
+ Script: <" sc_start SC_ATTHASTE_POTION3,1800000,9; ">
},
{
Id: 14512
@@ -109292,7 +110172,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_INCFLEE,1800000,30; ">
+ Script: <" sc_start SC_FOOD_BASICAVOIDANCE,1800000,30; ">
},
{
Id: 14531
@@ -109310,7 +110190,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" sc_start SC_INCHIT,1800000,30; ">
+ Script: <" sc_start SC_FOOD_BASICHIT,1800000,30; ">
},
{
Id: 14532
@@ -110662,12 +111542,16 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
+ Script: <"
+ specialeffect2 EF_SPELLBREAKER;
+ sc_start SC_TARGET_ASPD,1800000,10;
+ ">
},
{
Id: 14601
@@ -110686,8 +111570,8 @@ item_db: (
noauction: true
}
Script: <"
- sc_start SC_INCFLEE,300000,30;
- sc_start SC_INCHIT,300000,30;
+ sc_start SC_FOOD_BASICAVOIDANCE,300000,30;
+ sc_start SC_FOOD_BASICHIT,300000,30;
sc_start SC_PLUSATTACKPOWER,300000,20;
sc_start SC_PLUSMAGICPOWER,300000,20;
">
@@ -110797,7 +111681,14 @@ item_db: (
Type: 2
Buy: 10000
Weight: 600
- Script: <" sc_start SC_INCALLSTATUS,3600000,3; ">
+ Script: <"
+ sc_start SC_FOOD_STR,3600000,3;
+ sc_start SC_FOOD_DEX,3600000,3;
+ sc_start SC_FOOD_AGI,3600000,3;
+ sc_start SC_FOOD_INT,3600000,3;
+ sc_start SC_FOOD_VIT,3600000,3;
+ sc_start SC_FOOD_LUK,3600000,3;
+ ">
},
{
Id: 14608
@@ -110806,7 +111697,14 @@ item_db: (
Type: 2
Buy: 20000
Weight: 1200
- Script: <" sc_start SC_INCALLSTATUS,3600000,6; ">
+ Script: <"
+ sc_start SC_FOOD_STR,3600000,6;
+ sc_start SC_FOOD_DEX,3600000,6;
+ sc_start SC_FOOD_AGI,3600000,6;
+ sc_start SC_FOOD_INT,3600000,6;
+ sc_start SC_FOOD_VIT,3600000,6;
+ sc_start SC_FOOD_LUK,3600000,6;
+ ">
},
{
Id: 14609
@@ -110901,6 +111799,10 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <"
+ sc_start SC_FOOD_STR,180000,15;
+ sc_start SC_PLUSATTACKPOWER,60000,rand(11,111);
+ ">
},
{
Id: 14617
@@ -110918,6 +111820,10 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <"
+ sc_start SC_FOOD_VIT,180000,15;
+ percentheal rand(11,33),0;
+ ">
},
{
Id: 14618
@@ -110935,8 +111841,89 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <"
+ sc_start SC_FOOD_AGI,180000,15;
+ sc_start SC_FOOD_BASICAVOIDANCE,60000,rand(11,33);
+ ">
+},
+{
+ Id: 14619
+ AegisName: "INT_Biscuit_Stick"
+ Name: "Bar of Knowledge"
+ Type: 11
+ Buy: 0
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <"
+ sc_start SC_FOOD_INT,180000,15;
+ sc_start SC_PLUSMAGICPOWER,60000,rand(11,111);
+ ">
+},
+{
+ Id: 14620
+ AegisName: "DEX_Biscuit_Stick"
+ Name: "Bar of Tricks"
+ Type: 11
+ Buy: 0
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <"
+ sc_start SC_FOOD_DEX,180000,15;
+ sc_start SC_FOOD_BASICHIT,60000,rand(11,33);
+ ">
},
{
+ Id: 14621
+ AegisName: "LUK_Biscuit_Stick"
+ Name: "Bar of Luck"
+ Type: 11
+ Buy: 0
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <"
+ sc_start SC_FOOD_LUK,180000,15;
+ sc_start SC_CRITICALSUCCESSVALUE,60000,rand(11,13);
+ ">
+},
+{
+ Id: 14674
+ AegisName: "Cup_Of_Boza"
+ Name: "Cup Of Boza"
+ Type: 2
+ Buy: 20
+ Weight: 10
+ Script: <"
+ sc_start2 SC_CUP_OF_BOZA,120000,10,5;
+ ">
+},
+
+// More Armors
+// ===================================================================
+{
Id: 15000
AegisName: "Bone_Plate"
Name: "Bone Plate"
@@ -113870,7 +114857,6 @@ item_db: (
Script: <" packageitem(); ">
},
{
-
Id: 16381
AegisName: "WoE_Teleport_Scroll_100_Box"
Name: "WoE Teleport Scroll 100 Box"
@@ -114151,15 +115137,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" getitem 12212,500; ">
},
{
@@ -114169,15 +115146,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" getitem 14529,30; ">
},
{
@@ -114187,15 +115155,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <"
getitem 12208,10;
getitem 12210,10;
@@ -114219,15 +115178,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" rentitem 1174,604800; ">
},
{
@@ -114237,15 +115187,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" rentitem 13402,604800; ">
},
{
@@ -114255,15 +115196,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" rentitem 13026,604800; ">
},
{
@@ -114273,15 +115205,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" rentitem 1534,604800; ">
},
{
@@ -114291,15 +115214,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" rentitem 13403,604800; ">
},
{
@@ -114309,15 +115223,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" rentitem 1374,604800; ">
},
{
@@ -114327,15 +115232,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" rentitem 1729,604800; ">
},
{
@@ -114345,15 +115241,6 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Trade: {
- nodrop: true
- notrade: true
- noselltonpc: true
- nocart: true
- nogstorage: true
- nomail: true
- noauction: true
- }
Script: <" rentitem 1419,604800; ">
},
{
@@ -116983,6 +117870,78 @@ item_db: (
Script: <" packageitem(); ">
},
{
+ Id: 17226
+ AegisName: "C_Center_Potion_Box"
+ Name: "Infinite Concentration Potion Box"
+ Type: 18
+ Buy: 10
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" rentitem C_Center_Potion,604800; ">
+},
+{
+ Id: 17227
+ AegisName: "C_Awakening_Potion_Box"
+ Name: "Infinite Awakening Potion Box"
+ Type: 18
+ Buy: 10
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" rentitem C_Awakening_Potion,604800; ">
+},
+{
+ Id: 17228
+ AegisName: "C_Berserk_Potion_Box"
+ Name: "Infinite Berserk Potion Box"
+ Type: 18
+ Buy: 10
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" rentitem Infinite_Berserk_Potion,604800; ">
+},
+{
+ Id: 17229
+ AegisName: "C_Wing_Of_Fly_Box"
+ Name: "Infinite Fly Wing Box"
+ Type: 18
+ Buy: 10
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" rentitem C_Wing_Of_Fly,604800; ">
+},
+{
Id: 17233
AegisName: "Scroll_Of_Death"
Name: "Scroll Of Death"
@@ -117091,12 +118050,13 @@ item_db: (
Trade: {
nodrop: true
notrade: true
- noselltonpc: true
nocart: true
- nogstorage: true
+ noselltonpc: true
nomail: true
noauction: true
+ nogstorage: true
}
+ Script: <" rentitem C_Wing_Of_Fly,259200; ">
},
{
Id: 17252
@@ -117199,12 +118159,12 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14616,20; ">
+ Script: <" getitem STR_Biscuit_Stick,20; ">
},
{
Id: 17271
AegisName: "VIT_Biscuit_Stick_Box"
- Name: "VIT Biscuit Stick Box"
+ Name: "Bar of Fitness Box"
Type: 18
Buy: 0
Weight: 10
@@ -117217,9 +118177,84 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14617,20; ">
+ Script: <" getitem VIT_Biscuit_Stick,20; ">
},
{
+ Id: 17272
+ AegisName: "AGI_Biscuit_Stick_Box"
+ Name: "Bar of Agility Box"
+ Type: 18
+ Buy: 0
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" getitem AGI_Biscuit_Stick,20; ">
+},
+{
+ Id: 17273
+ AegisName: "INT_Biscuit_Stick_Box"
+ Name: "Bar of Knowledge Box"
+ Type: 18
+ Buy: 0
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" getitem INT_Biscuit_Stick,20; ">
+},
+{
+ Id: 17274
+ AegisName: "DEX_Biscuit_Stick_Box"
+ Name: "Bar of Tricks Box"
+ Type: 18
+ Buy: 0
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" getitem DEX_Biscuit_Stick,20; ">
+},
+{
+ Id: 17275
+ AegisName: "LUK_Biscuit_Stick_Box"
+ Name: "Bar of Luck Box"
+ Type: 18
+ Buy: 0
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" getitem LUK_Biscuit_Stick,20; ">
+},
+
+// Mechanic/Genetic Cannonballs
+// ===================================================================
+{
Id: 18000
AegisName: "Cannon_Ball"
Name: "Cannon Ball"
@@ -117287,6 +118322,9 @@ item_db: (
Loc: 32768
View: 8
},
+
+// More Bows
+// ===================================================================
{
Id: 18100
AegisName: "Shooting_Star_C"
@@ -117882,6 +118920,9 @@ item_db: (
if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }
">
},
+
+// More Headgears
+// ===================================================================
{
Id: 18500
AegisName: "Cheer_Scarf6"
@@ -125788,7 +126829,6 @@ item_db: (
Name: "Costume Invisible Cap"
Type: 5
Loc: 4096
- View: 0
},
{
Id: 19603
@@ -125806,7 +126846,6 @@ item_db: (
Name: "Costume Invisible Mask"
Type: 5
Loc: 4096
- View: 0
},
{
Id: 19605
@@ -127960,6 +128999,10 @@ item_db: (
Type: 5
Loc: 7168
View: 549
+ Trade: {
+ nomail: true
+ noauction: true
+ }
},
{
Id: 19876
@@ -128008,6 +129051,10 @@ item_db: (
Type: 5
Loc: 1024
View: 1085
+ Trade: {
+ nomail: true
+ noauction: true
+ }
},
{
Id: 19882
@@ -133220,7 +134267,6 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
- Upper: 63
Script: <" sc_start SC_FOOD_INT,3600000,30; ">
},
{
@@ -133229,7 +134275,6 @@ item_db: (
Name: "Hangul Day Event Box"
Type: 2
Buy: 20
- Upper: 63
Script: <"
getitem 22675,10;
getitem 607,9;
@@ -133241,7 +134286,6 @@ item_db: (
Name: "Death Bin"
Type: 18
Buy: 10
- Upper: 63
EquipLv: 170
Script: <" /* ToDo */ ">
},
@@ -133251,7 +134295,14 @@ item_db: (
Name: "Single Union Christmas Gift"
Type: 2
Buy: 0
- Upper: 63
+ Trade: {
+ nodrop: true
+ notrade: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
Script: <" /* ToDo GroupItem */ ">
},
{
@@ -133261,7 +134312,6 @@ item_db: (
Type: 0
Buy: 0
Weight: 50
- Upper: 63
Script: <" percentheal 5,5; ">
},
{
diff --git a/db/re/mob_db.conf b/db/re/mob_db.conf
index dd96b3793..65cd78914 100644
--- a/db/re/mob_db.conf
+++ b/db/re/mob_db.conf
@@ -64730,26 +64730,910 @@ mob_db: (
//2546,GUARDDOG2
//2547,MER_GARM_BABY
//2548,MER_HILLSRION
-//2549,GEFFEN_MAGE_1
-//2550,GEFFEN_MAGE_2
-//2551,GEFFEN_MAGE_3_1
-//2552,GEFFEN_MAGE_3_2
-//2553,GEFFEN_MAGE_3_3
-//2554,GEFFEN_MAGE_4
-//2555,GEFFEN_MAGE_5
-//2556,GEFFEN_MAGE_6
-//2557,GEFFEN_MAGE_7
-//2558,GEFFEN_MAGE_8
-//2559,GEFFEN_MAGE_9
-//2560,GEFFEN_MAGE_10
-//2561,GEFFEN_MAGE_11
-//2562,GEFFEN_MAGE_12
-//2563,FEI_KANABIAN
-//2564,GEFFEN_FENRIR
-//2565,ALPHONSE
+
+// Geffen Magic Tournament Monsters
+{
+ Id: 2549
+ SpriteName: "GEFFEN_MAGE_1"
+ Name: "Ahri"
+ Lv: 90
+ Hp: 100000
+ Sp: 1
+ Exp: 8900
+ JExp: 4550
+ AttackRange: 1
+ Attack: [329, 424]
+ Def: 64
+ Mdef: 38
+ Stats: {
+ Str: 50
+ Agi: 50
+ Vit: 50
+ Int: 50
+ Dex: 130
+ Luk: 50
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2550
+ SpriteName: "GEFFEN_MAGE_2"
+ Name: "Dio Anemos"
+ Lv: 95
+ Hp: 200000
+ Sp: 1
+ Exp: 9440
+ JExp: 4430
+ AttackRange: 1
+ Attack: [478, 649]
+ Def: 129
+ Mdef: 18
+ Stats: {
+ Str: 40
+ Agi: 40
+ Vit: 50
+ Int: 80
+ Dex: 130
+ Luk: 60
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2551
+ SpriteName: "GEFFEN_MAGE_3_1"
+ Name: "Geffen Shoplifter"
+ Lv: 100
+ Hp: 300000
+ Sp: 1
+ Exp: 9780
+ JExp: 3665
+ AttackRange: 1
+ Attack: [478, 632]
+ Def: 93
+ Mdef: 36
+ Stats: {
+ Str: 70
+ Agi: 70
+ Vit: 40
+ Int: 40
+ Dex: 140
+ Luk: 60
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2552
+ SpriteName: "GEFFEN_MAGE_3_2"
+ Name: "Geffen Bully"
+ Lv: 100
+ Hp: 300000
+ Sp: 1
+ Exp: 9780
+ JExp: 3665
+ AttackRange: 1
+ Attack: [478, 362]
+ Def: 93
+ Mdef: 36
+ Stats: {
+ Str: 70
+ Agi: 50
+ Vit: 70
+ Int: 40
+ Dex: 140
+ Luk: 40
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2553
+ SpriteName: "GEFFEN_MAGE_3_3"
+ Name: "Geffen Gang Member"
+ Lv: 100
+ Hp: 300000
+ Sp: 1
+ Exp: 9780
+ JExp: 3665
+ AttackRange: 1
+ Attack: [468, 622]
+ Def: 93
+ Mdef: 36
+ Stats: {
+ Str: 60
+ Agi: 80
+ Vit: 30
+ Int: 30
+ Dex: 140
+ Luk: 70
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2554
+ SpriteName: "GEFFEN_MAGE_4"
+ Name: "Faymont"
+ Lv: 105
+ Hp: 400000
+ Sp: 1
+ Exp: 11660
+ JExp: 4370
+ AttackRange: 1
+ Attack: [477, 633]
+ Def: 114
+ Mdef: 21
+ Stats: {
+ Str: 60
+ Agi: 60
+ Vit: 60
+ Int: 60
+ Dex: 140
+ Luk: 60
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2555
+ SpriteName: "GEFFEN_MAGE_5"
+ Name: "Ordre"
+ Lv: 110
+ Hp: 600000
+ Sp: 1
+ Exp: 15610
+ JExp: 4861
+ AttackRange: 1
+ Attack: [654, 906]
+ Def: 107
+ Mdef: 21
+ Stats: {
+ Str: 40
+ Agi: 70
+ Vit: 40
+ Int: 100
+ Dex: 150
+ Luk: 60
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2556
+ SpriteName: "GEFFEN_MAGE_6"
+ Name: "Blut Hase"
+ Lv: 120
+ Hp: 1000000
+ Sp: 1
+ Exp: 20560
+ JExp: 10010
+ AttackRange: 1
+ Attack: [480, 601]
+ Def: 66
+ Mdef: 47
+ Stats: {
+ Str: 120
+ Agi: 120
+ Vit: 120
+ Int: 50
+ Dex: 150
+ Luk: 60
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2557
+ SpriteName: "GEFFEN_MAGE_7"
+ Name: "Kuro Akuma"
+ Lv: 130
+ Hp: 1200000
+ Sp: 1
+ Exp: 26100
+ JExp: 12030
+ AttackRange: 1
+ Attack: [761, 1026]
+ Def: 134
+ Mdef: 10
+ Stats: {
+ Str: 100
+ Agi: 100
+ Vit: 100
+ Int: 100
+ Dex: 145
+ Luk: 100
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2558
+ SpriteName: "GEFFEN_MAGE_8"
+ Name: "Ifodes"
+ Lv: 140
+ Hp: 1400000
+ Sp: 1
+ Exp: 46150
+ JExp: 18900
+ AttackRange: 1
+ Attack: [676, 869]
+ Def: 120
+ Mdef: 60
+ Stats: {
+ Str: 150
+ Agi: 100
+ Vit: 100
+ Int: 50
+ Dex: 170
+ Luk: 100
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2559
+ SpriteName: "GEFFEN_MAGE_9"
+ Name: "Licheniyes"
+ Lv: 145
+ Hp: 1600000
+ Sp: 1
+ Exp: 52060
+ JExp: 24105
+ AttackRange: 1
+ Attack: [763, 1048]
+ Def: 140
+ Mdef: 57
+ Stats: {
+ Str: 50
+ Agi: 100
+ Vit: 50
+ Int: 200
+ Dex: 220
+ Luk: 75
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2560
+ SpriteName: "GEFFEN_MAGE_10"
+ Name: "Orodic"
+ Lv: 150
+ Hp: 2000000
+ Sp: 1
+ Exp: 60027
+ JExp: 40237
+ AttackRange: 1
+ Attack: [950, 1250]
+ Def: 165
+ Mdef: 62
+ Stats: {
+ Str: 200
+ Agi: 150
+ Vit: 50
+ Int: 50
+ Dex: 170
+ Luk: 100
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2561
+ SpriteName: "GEFFEN_MAGE_11"
+ Name: "Ju"
+ Lv: 155
+ Hp: 5000000
+ Sp: 1
+ Exp: 75335
+ JExp: 52130
+ AttackRange: 1
+ Attack: [1045, 1465]
+ Def: 170
+ Mdef: 65
+ Stats: {
+ Str: 50
+ Agi: 100
+ Vit: 100
+ Int: 200
+ Dex: 220
+ Luk: 100
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2562
+ SpriteName: "GEFFEN_MAGE_12"
+ Name: "Dwigh"
+ Lv: 160
+ Hp: 7000000
+ Sp: 1
+ Exp: 151317
+ JExp: 123000
+ AttackRange: 1
+ Attack: [1410, 2010]
+ Def: 175
+ Mdef: 65
+ Stats: {
+ Str: 50
+ Agi: 100
+ Vit: 100
+ Int: 250
+ Dex: 220
+ Luk: 100
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2563
+ SpriteName: "FEI_KANABIAN"
+ Name: "Fay Kanavian"
+ Lv: 160
+ Hp: 8000000
+ Sp: 1
+ Exp: 157975
+ JExp: 110571
+ AttackRange: 1
+ Attack: [1710, 2460]
+ Def: 175
+ Mdef: 65
+ Stats: {
+ Str: 50
+ Agi: 100
+ Vit: 100
+ Int: 250
+ Dex: 220
+ Luk: 100
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2564
+ SpriteName: "GEFFEN_FENRIR"
+ Name: "Fenrir"
+ Lv: 160
+ Hp: 20000000
+ Sp: 1
+ Exp: 323300
+ JExp: 300000
+ AttackRange: 1
+ Attack: [2160, 3060]
+ Def: 200
+ Mdef: 70
+ Stats: {
+ Str: 200
+ Agi: 100
+ Vit: 200
+ Int: 200
+ Dex: 220
+ Luk: 100
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (8, 2)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2565
+ SpriteName: "ALPHONSE"
+ Name: "Alphonse"
+ Lv: 150
+ Hp: 1000000
+ Sp: 1
+ Exp: 0
+ JExp: 0
+ AttackRange: 1
+ Attack: [650, 850]
+ Def: 100
+ Mdef: 20
+ Stats: {
+ Str: 100
+ Agi: 100
+ Vit: 50
+ Int: 50
+ Dex: 170
+ Luk: 100
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (2, 2)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
//2566,ALPHONSE_JR
-//2567,E_GEFFEN_MAGE_3_2
-//2568,E_GEFFEN_MAGE_3_3
+{
+ Id: 2566
+ SpriteName: "ALPHONSE_JR"
+ Name: "Alphonse Jr"
+ Lv: 150
+ Hp: 100000
+ Sp: 1
+ Exp: 0
+ JExp: 0
+ AttackRange: 1
+ Attack: [450, 550]
+ Def: 80
+ Mdef: 20
+ Stats: {
+ Str: 100
+ Agi: 100
+ Vit: 50
+ Int: 50
+ Dex: 170
+ Luk: 100
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 1
+ Race: 7
+ Element: (2, 3)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2567
+ SpriteName: "E_GEFFEN_MAGE_3_2"
+ Name: "E_GEFFEN_MAGE_3_2" /* Needs more information */
+ Lv: 50
+ Hp: 0
+ Sp: 1
+ Exp: 0
+ JExp: 0
+ AttackRange: 1
+ Attack: [0, 0]
+ Def: 0
+ Mdef: 0
+ Stats: {
+ Str: 0
+ Agi: 0
+ Vit: 0
+ Int: 0
+ Dex: 0
+ Luk: 0
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 0
+ Race: 0
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+{
+ Id: 2568
+ SpriteName: "E_GEFFEN_MAGE_3_3"
+ Name: "E_GEFFEN_MAGE_3_3" /* Needs more information */
+ Lv: 50
+ Hp: 0
+ Sp: 1
+ Exp: 0
+ JExp: 0
+ AttackRange: 1
+ Attack: [0, 0]
+ Def: 0
+ Mdef: 0
+ Stats: {
+ Str: 0
+ Agi: 0
+ Vit: 0
+ Int: 0
+ Dex: 0
+ Luk: 0
+ }
+ ViewRange: 10
+ ChaseRange: 12
+ Size: 0
+ Race: 0
+ Element: (0, 1)
+ Mode: { /* Needs more information */
+ CanMove: true
+ Aggressive: true
+ CastSensorIdle: true
+ CanAttack: true
+ CastSensorChase: true
+ ChangeChase: true
+ ChangeTargetMelee: true
+ ChangeTargetChase: true
+ }
+ MoveSpeed: 200 /* Needs more information */
+ AttackDelay: 676 /* Needs more information */
+ AttackMotion: 648 /* Needs more information */
+ DamageMotion: 432 /* Needs more information */
+ MvpExp: 0
+ Drops: {
+ /* Needs more information */
+ }
+},
+
//2569,G_ANOPHELES
//2570,G_BREEZE
//2571,G_BUTOIJO
diff --git a/db/sc_config.txt b/db/sc_config.txt
index 650409f6c..14ba7b500 100644
--- a/db/sc_config.txt
+++ b/db/sc_config.txt
@@ -89,7 +89,7 @@ SC_SAFETYWALL, 28
SC_PNEUMA, 28
SC_ASSUMPTIO, 16
SC_BASILICA, 26
-//SC_GROUNDMAGIC, 26 //is divided to SC_VOLCANO, 0xSC_DELUGE, 0xSC_VIOLENTGALE
+//SC_GROUNDMAGIC, 26 // is divided to SC_VOLCANO, 0xSC_DELUGE, 0xSC_VIOLENTGALE
SC_VOLCANO, 26
SC_DELUGE, 26
SC_VIOLENTGALE, 26
@@ -158,7 +158,7 @@ SC_FOOD_INT, 92
SC_FOOD_LUK, 92
SC_FOOD_BASICAVOIDANCE, 88
SC_FOOD_BASICHIT, 88
-//SC_FOOD_CRITICALSUCCESSVALUE, 24
+SC_FOOD_CRITICALSUCCESSVALUE, 24
SC_CASH_PLUSEXP, 93
SC_CASH_DEATHPENALTY, 93
SC_CASH_RECEIVEITEM, 93
@@ -205,9 +205,9 @@ SC_S_LIFEPOTION, 92
SC_L_LIFEPOTION, 92
SC_CRITICALPERCENT, 92
SC_PLUSAVOIDVALUE, 92
-//SC_ATKER_ASPD, 28
-//SC_TARGET_ASPD, 92
-//SC_ATKER_MOVESPEED, 28
+SC_ATKER_ASPD, 28
+SC_TARGET_ASPD, 92
+SC_ATKER_MOVESPEED, 28
SC_ATKER_BLOOD, 28
SC_TARGET_BLOOD, 30
SC_ARMOR_PROPERTY, 29
@@ -317,7 +317,7 @@ SC_RAISINGDRAGON, 30
SC__IGNORANCE, 16
SC__LAZINESS, 16
SC_LIGHTNINGWALK, 28
-//SC_ACARAJE, 24
+SC_ACARAJE, 24
SC__UNLUCKY, 16
SC_CURSEDCIRCLE_ATKER, 28
SC_CURSEDCIRCLE_TARGET, 28
@@ -397,9 +397,31 @@ SC_MTF_MLEATKED,12
SC_MTF_CRIDAMAGE, 12
SC_FULL_THROTTLE, 18
SC_REBOUND, 18
-SC_TELEKINESIS_INTENSE,18
+SC_TELEKINESIS_INTENSE, 18
-//Guild Auras should not be saved
+// Geffen Scrolls
+SC_SKELSCROLL, 69
+SC_DISTRUCTIONSCROLL, 69
+SC_ROYALSCROLL, 69
+SC_IMMUNITYSCROLL, 69
+SC_MYSTICSCROLL, 69
+SC_BATTLESCROLL, 69
+SC_ARMORSCROLL, 69
+SC_FREYJASCROLL, 69
+SC_SOULSCROLL, 69
+
+// Eden Crystal Synthesis [Needs more info]
+//SC_QUEST_BUFF1, ??
+//SC_QUEST_BUFF2, ??
+//SC_QUEST_BUFF3, ??
+
+// Geffen Magic Tournament [Needs more info]
+SC_GEFFEN_MAGIC1, 2
+SC_GEFFEN_MAGIC2, 2
+SC_GEFFEN_MAGIC3, 2
+//SC_FENRIR_CARD, ??
+
+// Guild Auras should not be saved
SC_LEADERSHIP,78
SC_GLORYWOUNDS,78
SC_SOULCOLD,78
@@ -439,6 +461,8 @@ SC_MOONSTAR, 207
SC_SUPER_STAR, 207
SC_STRANGELIGHTS, 207
SC_DECORATION_OF_MUSIC, 207
+SC_LJOSALFAR, 207
+SC_MERMAID_LONGING, 207
-//Cant Clear
+// Cant Clear
SC_ALL_RIDING, 141
diff --git a/doc/item_db.txt b/doc/item_db.txt
index b2afc5612..087725025 100644
--- a/doc/item_db.txt
+++ b/doc/item_db.txt
@@ -42,13 +42,13 @@ item_db: (
override: GroupID (int, defaults to 100)
nodrop: true/false (boolean, defaults to false)
notrade: true/false (boolean, defaults to false)
- partneroverride: true/false (boolean, defaults to false)
- noselltonpc: true/false (boolean, defaults to false)
- nocart: true/false (boolean, defaults to false)
nostorage: true/false (boolean, defaults to false)
- nogstorage: true/false (boolean, defaults to false)
+ nocart: true/false (boolean, defaults to false)
+ noselltonpc: true/false (boolean, defaults to false)
nomail: true/false (boolean, defaults to false)
- noauction: true/false (boolean, defaults to false)
+ noauction: true/false (boolean, defaults to false)
+ nogstorage: true/false (boolean, defaults to false)
+ partneroverride: true/false (boolean, defaults to false)
}
Nouse: { (defaults to no restrictions)
override: GroupID (int, defaults to 100)
diff --git a/doc/sample/npc_test_time.txt b/doc/sample/npc_test_time.txt
index 2af1dadd8..c3d4eae1d 100644
--- a/doc/sample/npc_test_time.txt
+++ b/doc/sample/npc_test_time.txt
@@ -3,23 +3,23 @@
//===== By: ==================================================
//= rAthena Dev Team
//===== Current Version: =====================================
-//= 20070315
-//===== Description: =========================================
+//= 20151115
+//===== Description: =========================================
//= Demonstrates time commands.
//============================================================
prontera,157,181,6 script Time Sample 8W_SOLDIER,{
mes "[Time Sample]";
- mes "System Tick : " + gettimetick(0);
- mes " Time Tick : " + gettimetick(1);
- mes " GetTime(0) : " + gettime(0);
- mes " GetTime(1) : " + gettime(1) + " (Sec)";
- mes " GetTime(2) : " + gettime(2) + " (Min)";
- mes " GetTime(3) : " + gettime(3) + " (Hour)";
- mes " GetTime(4) : " + gettime(4) + " (WeekDay)";
- mes " GetTime(5) : " + gettime(5) + " (MonthDay)";
- mes " GetTime(6) : " + gettime(6) + " (Month)";
- mes " GetTime(7) : " + gettime(7) + " (Year)";
- mes " GetTimeStr : " + gettimestr("%Y-%m/%d %H:%M:%S",19);
+ mes " System Tick : " + gettimetick(0);
+ mes " Time Tick : " + gettimetick(1);
+ mes " GETTIME_SECOND : " + gettime(GETTIME_SECOND) + " (Sec)";
+ mes " GETTIME_MINUTE : " + gettime(GETTIME_MINUTE) + " (Min)";
+ mes " GETTIME_HOUR : " + gettime(GETTIME_HOUR) + " (Hour)";
+ mes " GETTIME_WEEKDAY : " + gettime(GETTIME_WEEKDAY) + " (WeekDay)";
+ mes "GETTIME_DAYOFMONTH : " + gettime(GETTIME_DAYOFMONTH) + " (MonthDay)";
+ mes " GETTIME_MONTH : " + gettime(GETTIME_MONTH) + " (Month)";
+ mes " GETTIME_YEAR : " + gettime(GETTIME_YEAR) + " (Year)";
+ mes " GETTIME_DAYOFYEAR : " + gettime(GETTIME_DAYOFYEAR) + " (Day of Year)";
+ mes " gettimestr : " + gettimestr("%Y-%m/%d %H:%M:%S",19);
close;
}
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 218bb4803..f5fdab851 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -2777,6 +2777,7 @@ See 'getequipid' for a full list of valid equipment slots.
Given the database ID number of an item, this function will return the
text stored in the 'japanese name' field (which, in Hercules, stores an
English name the players would normally see on screen).
+Return "null" if no such item exist.
---------------------------------------
@@ -3181,30 +3182,28 @@ Valid types are :
This function returns specified information about the current system time.
-Valid types are listed in const.txt:
- 1 - SECOND - Seconds (of a minute)
- 2 - MINUTE - Minutes (of an hour)
- 3 - HOUR - Hour (of a day)
- 4 - WEEKDAY - Week day (0 for Sunday, 6 is Saturday)
- - Additional: (SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY)
- 5 - DAYOFMONTH - Day of the month.
- 6 - MONTH - Number of the month.
- - Additional: ( JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER)
- 7 - YEAR - Year.
- 8 - DAYOFYEAR - Day of the year.
+Valid types:
+ 1 - GETTIME_SECOND - Seconds (of a minute)
+ 2 - GETTIME_MINUTE - Minutes (of an hour)
+ 3 - GETTIME_HOUR - Hour (of a day)
+ 4 - GETTIME_WEEKDAY - Week day (0 for Sunday, 6 is Saturday)
+ - Additional: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
+ 5 - GETTIME_DAYOFMONTH - Day of the month.
+ 6 - GETTIME_MONTH - Number of the month.
+ - Additional: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
+ 7 - GETTIME_YEAR - Year
+ 8 - GETTIME_DAYOFYEAR - Day of the year.
It will only return numbers based on types.
Example :
- if ( gettime(WEEKDAY) == SATURDAY ) {
+ if (gettime(GETTIME_WEEKDAY) == SATURDAY) {
mes "It's a Saturday. I don't work on Saturdays.";
+ } else if (gettime(GETTIME_MONTH) == JANUARY) {
+ mes "It's January. I don't work on January.";
+ } else if (gettime(GETTIME_MONTH) == OCTOBER && gettime(GETTIME_DAYOFMONTH) == 31) {
+ mes "It's Halloween.";
}
- else if ( gettime(MONTH) == JANUARY ) {
- mes "It's a January. I don't work on January.";
- }
- else if ( gettime(MONTH) == OCTOBER && gettime(DAYOFMONTH) == 31 ) {
- mes "It's a Halloween.";
- }
-
+
---------------------------------------
*gettimestr(<format string>,<max length>)
@@ -3249,6 +3248,8 @@ Currently being used in the PVP scripts to check if a PVP room is full of
not, if the number returned it equal to the maximum allowed it will not
let you enter.
+Return -1 if the map name is invalid.
+
---------------------------------------
*getareausers({"<map name>",}{<x1>,<y1>,<x2>,<y2>})
@@ -7578,7 +7579,7 @@ OnClock0600:
end;
OnInit:
// setting correct mode upon server start-up
- if(gettime(3)>=6 && gettime(3)<18) end;
+ if (gettime(GETTIME_HOUR) >= 6 && gettime(GETTIME_HOUR) < 18) end;
OnClock1800:
night;
end;
@@ -8964,17 +8965,21 @@ Returns the amount of entries in the queue instance of <queue_id>.
---------------------------------------
-*queueadd(<queue_id>,<var_id>);
+*queueadd(<queue_id>, <var_id>);
+
+Adds <var_id> to queue of <queue_id>.
-Adds <var_id> to queue of <queue_id>, returning 1 if <var_id> is already
-present in the queue, otherwise returning 0.
+Returns false if <var_id> couldn't be added (was already present in the queue),
+true otherwise.
---------------------------------------
-*queueremove(<queue_id>,<var_id>);
+*queueremove(<queue_id>, <var_id>);
-Removes <var_id> from queue of <queue_id>, returning 1 if <var_id> is not
-present in the queue, otherwise returning 0.
+Removes <var_id> from queue of <queue_id>.
+
+Returns false if <var_id> couldn't be removed (wasn't present in the queue),
+true otherwise.
---------------------------------------
@@ -8984,20 +8989,26 @@ Modifies <queue_id>'s <optionType>. When <option val> is not present
<optionType> is removed from <queue_id>. When present it modifies
<queue_id>'s <optionType> with the new <option val> value.
+Returns true on success, false on failure.
+
Currently 3 options are available:
-HQO_OnDeath (1), HQO_OnLogout (2), HQO_OnMapChange (3)
+- QUEUEOPT_DEATH (1)
+- QUEUEOPT_LOGOUT (2)
+- QUEUEOPT_MAPCHANGE (3)
-Note: The constant names are not final.
+When the QUEUEOPT_MAPCHANGE event is triggered, it sets a temp char var
+@Queue_Destination_Map$ with the destination map name.
Example:
- queueopt(.@queue_id,0,"MyNPC::MyOnQueueMemberDeathEventName");
+ queueopt(.@queue_id, QUEUEOPT_DEATH, "MyNPC::MyOnQueueMemberDeathEventName");
---------------------------------------
*queuedel(<queue_id>);
-Deletes <queue_id> and returns 1 when <queue_id> is not found, otherwise
-0 is returned.
+Deletes the queue <queue_id>.
+
+Returns false if the queue wasn't found, true otherwise.
---------------------------------------
@@ -9011,8 +9022,10 @@ even if you remove them from the queue.
---------------------------------------
*qicheck(<queue_iterator_id>);
-checks whether there is a next member in the iterator's queue, 1 when
-it does, 0 otherwise.
+
+Checks whether the current member in the iterator's queue exists.
+
+Returns 1 when it does, 0 otherwise.
---------------------------------------
@@ -9030,8 +9043,9 @@ Example:
*qiclear(<queue_iterator_id>);
-Deletes a queue iterator from memory and returns 1 when it fails,
-otherwise 0 is returned.
+Deletes a queue iterator from memory.
+
+Returns false when it fails, otherwise 1 is returned.
---------------------------------------
//=====================================
diff --git a/doc/woe_time_explanation.txt b/doc/woe_time_explanation.txt
index 9f288eae7..d030355f8 100644
--- a/doc/woe_time_explanation.txt
+++ b/doc/woe_time_explanation.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= erKURITA
//===== Current Version: =====================================
-//= 20120717
+//= 20151115
//===== Description: =========================================
//= Details on the behavior of the default WoE controller.
//============================================================
@@ -15,19 +15,8 @@ OnClock<time> triggers when <time> is reached.
The format is HHMM, where H = hour, M = minute.
OnClock2350: would run at 23:50, server time.
-gettime(<type>) is a function that checks for certain
-information regarding time. The types are:
-
- 1 - Seconds (of a minute)
- 2 - Minutes (of an hour)
- 3 - Hour (of a day), ranging from 0 to 23
- 4 - Weekday, ranging from 0 (Sunday) to 6 (Saturday)
- 5 - Day of the month
- 6 - Number of the month
- 7 - Year
- 8 - Day of the year
-
-This way, we can check for a desired minute, hour, day, month, etc.
+gettime(<type>) is a function that checks for certain information regarding
+time. For more information about it, see script_commands.txt.
-------------------------------------------------------------------------------
@@ -40,45 +29,36 @@ Now the structure:
These 4 labels will run one after the other, reaching the next check:
- if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
- if((gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
- if((gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) goto L_Start;
+ if ((gettime(GETTIME_WEEKDAY) == TUESDAY && gettime(GETTIME_HOUR) >= 21 && gettime(GETTIME_HOUR) < 23) ||
+ (gettime(GETTIME_WEEKDAY) == THURSDAY && gettime(GETTIME_HOUR) >= 21 && gettime(GETTIME_HOUR) < 23) ||
+ (gettime(GETTIME_WEEKDAY) == SATURDAY && gettime(GETTIME_HOUR) >= 16 && gettime(GETTIME_HOUR) < 18)) {
+ agitstart();
+ }
This part will check for the times. Since both Start and End times run
through the same chain of commands, these are important checks to ensure
it's the right time. Let's take the following example:
- if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23))
+ if (gettime(GETTIME_WEEKDAY) == TUESDAY && gettime(GETTIME_HOUR) >= 21 && gettime(GETTIME_HOUR) < 23)
-The first gettime() is checking for a type 4, the day of the week, and it's
-comparing it to the one desired, which is 2 (Tuesday). The function will
+The first gettime() is checking for type GETTIME_WEEKDAY, the day of the week,
+and it's comparing it to the one desired, which is TUESDAY. The function will
return either 1 (true) or 0 (false).
-The second gettime is checking type 3, the hour, and it's comparing
+The second gettime is checking type GETTIME_HOUR, the hour, and it's comparing
it to 21. If the first part is greater than or equal to (>=) the second part,
the comparison will return 1.
The third and last gettime is checking again for the hour, but the time has to be less
than the specified time (in this case, 23).
-Now, look at the parentheses. Parentheses are very important when making comparisons
-and conditions. Check the order of these. I'll place dummy characters for this example:
-
- if ((X && (Y && Z)) goto L_Start;
-
-It's saying, if Y and Z are true, the condition is met. Now let's use another set
-of dummy characters. We're checking if (Y && Z) = G:
-
- if (X && G) goto L_Start;
-
-It's saying that if X and G are true, the condition is met, thus proceeding to L_Start.
-
Now, the last part of the script, regarding the end of WoE time:
- if((gettime(4)==2) && (gettime(3)==23)) goto L_End;
- if((gettime(4)==4) && (gettime(3)==23)) goto L_End;
- if((gettime(4)==6) && (gettime(3)==18)) goto L_End;
- end;
+ if ((gettime(GETTIME_WEEKDAY) == TUESDAY && gettime(GETTIME_HOUR) == 23) ||
+ (gettime(GETTIME_WEEKDAY) == THURSDAY && gettime(GETTIME_HOUR) == 23) ||
+ (gettime(GETTIME_WEEKDAY) == SATURDAY && gettime(GETTIME_HOUR) == 18)) {
+ agitend();
+ }
This is the same as before, but it's checking for the day in the first gettime() and
the hour on the second. If both conditions are true, WoE will end. We're checking
@@ -95,8 +75,23 @@ An example of how to set the WoE so it starts on Monday, at 4 pm and ends up at
OnClock1600: // 16:00 = 4 pm
OnClock2200: // 22:00 = 10 pm
- OnAgitInit: // This can only be written once: put OnClock above and the checks below.
-
- if ((gettime(4)==1) && (gettime(3)>=16 && gettime(3)<22)) goto L_Start;
- if ((gettime(4)==1) && (gettime(3)==22) goto L_End;
+ OnAgitInit: // This label should appear once and only once in the script
+
+ // starting time checks
+ if (gettime(GETTIME_WEEKDAY) == MONDAY && gettime(GETTIME_HOUR) >= 16 && gettime(GETTIME_HOUR) < 22) {
+ if (!agitcheck()) {
+ agitstart;
+ callsub S_DisplayOwners;
+ }
+ end;
+ }
+
+ // end time checks
+ if (gettime(GETTIME_WEEKDAY) == MONDAY && gettime(GETTIME_HOUR) == 22) {
+ if (agitcheck()) {
+ agitend;
+ callsub S_DisplayOwners;
+ }
+ end;
+ }
end; // Don't forget this!
diff --git a/npc/airports/airships.txt b/npc/airports/airships.txt
index 2faab33af..58652ab56 100644
--- a/npc/airports/airships.txt
+++ b/npc/airports/airships.txt
@@ -1135,18 +1135,18 @@ airplane_01,32,61,4 script Nils#ein 1_M_03,1,1,{
mes .@line1_1$[.@wordtest];
mes .@line1_2$[.@wordtest];
mes .@line1_3$[.@wordtest];
- .@start_time = gettime(HOUR)*60*60 + gettime(MINUTE)*60 + gettime(SECOND);
+ .@start_time = gettime(GETTIME_HOUR)*60*60 + gettime(GETTIME_MINUTE)*60 + gettime(GETTIME_SECOND);
next;
input .@save1$;
- .@end_time = gettime(HOUR)*60*60 + gettime(MINUTE)*60 + gettime(SECOND);
+ .@end_time = gettime(GETTIME_HOUR)*60*60 + gettime(GETTIME_MINUTE)*60 + gettime(GETTIME_SECOND);
.@total_time = .@end_time - .@start_time;
mes "[Nils]";
mes .@line2_1$[.@wordtest];
mes .@line2_2$[.@wordtest];
- .@start_time = gettime(HOUR)*60*60 + gettime(MINUTE)*60 + gettime(SECOND);
+ .@start_time = gettime(GETTIME_HOUR)*60*60 + gettime(GETTIME_MINUTE)*60 + gettime(GETTIME_SECOND);
next;
input .@save2$;
- .@end_time = gettime(HOUR)*60*60 + gettime(MINUTE)*60 + gettime(SECOND);
+ .@end_time = gettime(GETTIME_HOUR)*60*60 + gettime(GETTIME_MINUTE)*60 + gettime(GETTIME_SECOND);
.@total_time = .@total_time + (.@start_time - .@end_time);
.@tasoo = (.@letters[.@wordtest] / .@total_time) * 6;
if ((.@save1$ == .@word1$[.@wordtest]) && (.@save2$ == .@word2$[.@wordtest])) {
diff --git a/npc/custom/bgqueue/flavius.txt b/npc/custom/bgqueue/flavius.txt
index f93821264..99a4d5e0a 100644
--- a/npc/custom/bgqueue/flavius.txt
+++ b/npc/custom/bgqueue/flavius.txt
@@ -33,8 +33,8 @@ OnPlayerListReady:
set $@Croix_QueueBG1, queue();
set $@Guill_QueueBG1, queue();
- queueopt($@Guill_QueueBG1,HQO_OnLogout,"start#bat_b01::OnGuillaumeQuit");
- queueopt($@Croix_QueueBG1,HQO_OnLogout,"start#bat_b01::OnCroixQuit");
+ queueopt($@Guill_QueueBG1, QUEUEOPT_LOGOUT, "start#bat_b01::OnGuillaumeQuit");
+ queueopt($@Croix_QueueBG1, QUEUEOPT_LOGOUT, "start#bat_b01::OnCroixQuit");
set .@i, 0;
@@ -143,8 +143,8 @@ OnPlayerListReady:
bg_warp $@FlaviusBG1_id2,"bat_b01",311,224;
/* after warp */
- queueopt($@Guill_QueueBG1,HQO_OnMapChange,"start#bat_b01::OnGuillaumeQuit");
- queueopt($@Croix_QueueBG1,HQO_OnMapChange,"start#bat_b01::OnCroixQuit");
+ queueopt($@Guill_QueueBG1, QUEUEOPT_MAPCHANGE, "start#bat_b01::OnGuillaumeQuit");
+ queueopt($@Croix_QueueBG1, QUEUEOPT_MAPCHANGE, "start#bat_b01::OnCroixQuit");
donpcevent "countdown#bat_b01::OnEnable";
end;
diff --git a/npc/custom/etc/airplane.txt b/npc/custom/etc/airplane.txt
index de321ebfd..544dbed61 100644
--- a/npc/custom/etc/airplane.txt
+++ b/npc/custom/etc/airplane.txt
@@ -385,7 +385,7 @@ function script F_Itin {
seta:
set @tempo, @tempo + 1;
- set @time, gettime(HOUR);
+ set @time, gettime(GETTIME_HOUR);
set @minutes, 5 * @tempo - 5;
set @minutess, 5 * @tempo - 2;
if(@minutes<10)set @minutes$, "0" + @minutes;
@@ -406,7 +406,7 @@ seta:
setb:
if($@currenttime - 1==@tempo)goto setc;
set @tempo, @tempo + 1;
- set @time, gettime(HOUR) + 1;
+ set @time, gettime(GETTIME_HOUR) + 1;
set @minutes, 5 * @tempo - 5;
set @minutess, 5 * @tempo - 2;
if(@minutes<10)set @minutes$, "0" + @minutes;
diff --git a/npc/custom/etc/bank_kafra.txt b/npc/custom/etc/bank_kafra.txt
index 02a0b1846..c4e16a9ec 100644
--- a/npc/custom/etc/bank_kafra.txt
+++ b/npc/custom/etc/bank_kafra.txt
@@ -22,7 +22,7 @@
mes"[Maniss]";
mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!";
- set @kb_int,(gettime(MONTH)*31)+gettime(DAYOFMONTH); //today's number
+ set @kb_int,(gettime(GETTIME_MONTH)*31)+gettime(GETTIME_DAYOFMONTH); //today's number
set @income,0;
//calculate %
if (#kafrabank<=0 || #kb_int>=@kb_int) goto L_NoIncomeToday;
diff --git a/npc/custom/events/valentinesdayexp.txt b/npc/custom/events/valentinesdayexp.txt
index 7a22909e6..933afc647 100644
--- a/npc/custom/events/valentinesdayexp.txt
+++ b/npc/custom/events/valentinesdayexp.txt
@@ -19,7 +19,7 @@ prontera,156,172,4 script Tine 1_M_MERCHANT,{
// mes "@dsv: "+@dsv;
// mes "ispartneron()=="+ispartneron();
// mes "sex == "+Sex;
-// if(@dsv == gettime(HOUR)+1) mes "@dsv == gettime(HOUR)+1";
+// if(@dsv == gettime(GETTIME_HOUR)+1) mes "@dsv == gettime(GETTIME_HOUR)+1";
mes "[Tine]";
mes "The legend says that on 14th February... on the Day of Saint Valentine...";
@@ -60,14 +60,14 @@ M_INFO:
OnInit:
//559,Hand-made_Chocolate
- setitemscript 559,"{ itemheal 50,50; if(Sex==0 || @dsv == gettime(HOUR)+1 || ispartneron()==0)end; set @dsv,gettime(HOUR)+1; misceffect 113; }";
+ setitemscript 559,"{ itemheal 50,50; if(Sex==0 || @dsv == gettime(GETTIME_HOUR)+1 || ispartneron()==0)end; set @dsv,gettime(GETTIME_HOUR)+1; misceffect 113; }";
//560,Hand-made_White_Chocolate
- setitemscript 560,"{ itemheal 50,50; if(Sex || @dsv == gettime(HOUR)+1 || ispartneron()==0)end; set @dsv,gettime(HOUR)+1; misceffect 113; }";
+ setitemscript 560,"{ itemheal 50,50; if(Sex || @dsv == gettime(GETTIME_HOUR)+1 || ispartneron()==0)end; set @dsv,gettime(GETTIME_HOUR)+1; misceffect 113; }";
//2634,Wedding_Ring_M,Wedding Ring,5,,10,0,,0,,0,127918079,7,1,136,,0,0,0,{ skill 334,1; skill 335,1; skill 336,1; }
- setitemscript 2634,"{ skill 334,1; skill 335,1; skill 336,1; if(@dsv == gettime(HOUR)+1 && ispartneron()){ bonus2 bExpAddRace,5,50; bonus2 bExpAddRace,6,50; bonus2 bExpAddRace,7,50; bonus2 bExpAddRace,8,50; bonus2 bExpAddRace,1,50; } }";
+ setitemscript 2634,"{ skill 334,1; skill 335,1; skill 336,1; if(@dsv == gettime(GETTIME_HOUR)+1 && ispartneron()){ bonus2 bExpAddRace,5,50; bonus2 bExpAddRace,6,50; bonus2 bExpAddRace,7,50; bonus2 bExpAddRace,8,50; bonus2 bExpAddRace,1,50; } }";
//2635,Wedding_Ring_F,Wedding Ring,5,,10,0,,0,,0,127918079,7,0,136,,0,0,0,{ skill 334,1; skill 335,1; skill 336,1; }
- setitemscript 2635,"{ skill 334,1; skill 335,1; skill 336,1; if(@dsv == gettime(HOUR)+1 && ispartneron()){ bonus2 bExpAddRace,0,50; bonus2 bExpAddRace,9,50; bonus2 bExpAddRace,2,50; bonus2 bExpAddRace,3,50; bonus2 bExpAddRace,4,50; } }";
+ setitemscript 2635,"{ skill 334,1; skill 335,1; skill 336,1; if(@dsv == gettime(GETTIME_HOUR)+1 && ispartneron()){ bonus2 bExpAddRace,0,50; bonus2 bExpAddRace,9,50; bonus2 bExpAddRace,2,50; bonus2 bExpAddRace,3,50; bonus2 bExpAddRace,4,50; } }";
end;
}
diff --git a/npc/custom/events/xmas_rings_event.txt b/npc/custom/events/xmas_rings_event.txt
index 0bbf36df1..71be79aa5 100644
--- a/npc/custom/events/xmas_rings_event.txt
+++ b/npc/custom/events/xmas_rings_event.txt
@@ -89,7 +89,7 @@ M_QUEST:
OnInit:
//Santa's Hat
- setitemscript 2236,"{ bonus bMdef,1; bonus bLuk,1; if(isequipped(2636,2637)){if(@xmr == gettime(MINUTE))end; set @xmr,gettime(MINUTE); misceffect 410; end;} if(isequipped(2636)){if(@xmr == gettime(MINUTE))end; set @xmr,gettime(MINUTE); misceffect 72;} if(isequipped(2637)){if(@xmr == gettime(MINUTE))end; set @xmr,gettime(MINUTE); misceffect 338;}}";
+ setitemscript 2236,"{ bonus bMdef,1; bonus bLuk,1; if(isequipped(2636,2637)){if(@xmr == gettime(GETTIME_MINUTE))end; set @xmr,gettime(GETTIME_MINUTE); misceffect 410; end;} if(isequipped(2636)){if(@xmr == gettime(GETTIME_MINUTE))end; set @xmr,gettime(GETTIME_MINUTE); misceffect 72;} if(isequipped(2637)){if(@xmr == gettime(GETTIME_MINUTE))end; set @xmr,gettime(GETTIME_MINUTE); misceffect 338;}}";
//Gold Xmas Ring
setitemscript 2636,"{ bonus bLoseSPWhenUnequip,30; if(isequipped(2236)==0)end; if(getskilllv(\"AL_HEAL\")){skill \"TF_HIDING\",4+isequipped(2637);}else{skill \"AL_HEAL\",1+4*isequipped(2637);} }";
//Silver Xmas Ring
diff --git a/npc/custom/quests/thq/THQS_QuestNPC.txt b/npc/custom/quests/thq/THQS_QuestNPC.txt
index 55b1b5676..9b655625c 100644
--- a/npc/custom/quests/thq/THQS_QuestNPC.txt
+++ b/npc/custom/quests/thq/THQS_QuestNPC.txt
@@ -44,7 +44,7 @@ N_PayZeny:
set On_Quest, 0;
Zeny -= 2500;
//add time delay penalty. You can get another quest after 2 - 3 hours. [Lupus]
- set #THQ_DELAY, (gettime(YEAR)*12*31*24+gettime(MONTH)*31*24+gettime(DAYOFMONTH)*24+gettime(HOUR)+rand(2,3));
+ set #THQ_DELAY, (gettime(GETTIME_YEAR)*12*31*24+gettime(GETTIME_MONTH)*31*24+gettime(GETTIME_DAYOFMONTH)*24+gettime(GETTIME_HOUR)+rand(2,3));
mes "[Guy]";
mes "Its sad to see someone give a quest up...";
mes "Shame on you.";
@@ -59,7 +59,7 @@ N_ZenyFail:
N_NewQuest:
if (Event_THQS == 0) goto N_Signup;
//checking if time penalty is over [Lupus]
- if (#THQ_DELAY > (gettime(YEAR)*12*31*24 + gettime(MONTH)*31*24 + gettime(DAYOFMONTH)*24 + gettime(HOUR)) ) goto L_NoQuestsForYet;
+ if (#THQ_DELAY > (gettime(GETTIME_YEAR)*12*31*24 + gettime(GETTIME_MONTH)*31*24 + gettime(GETTIME_DAYOFMONTH)*24 + gettime(GETTIME_HOUR)) ) goto L_NoQuestsForYet;
mes "[Guy]";
mes "Ahh welcome fellow Treasure Hunter.";
mes "You currently have ^FF0000"+#Treasure_Token+"^000000 treasure tokens!!!";
@@ -71,7 +71,7 @@ N_NewQuest:
mes "Ok lets see what quest we can give you today.";
mes "The quest names in ^FF0000This Colour^000000 mean that they are more challanging then the rest, but have better rewards.";
next;
- set #THQ_DELAY,(gettime(YEAR)*12*31*24+gettime(MONTH)*31*24+gettime(DAYOFMONTH)*24+gettime(HOUR) + 1); //you can get another quest after 1 hour [Lupus]
+ set #THQ_DELAY,(gettime(GETTIME_YEAR)*12*31*24+gettime(GETTIME_MONTH)*31*24+gettime(GETTIME_DAYOFMONTH)*24+gettime(GETTIME_HOUR) + 1); //you can get another quest after 1 hour [Lupus]
emotion 21;
if(@treasure_job==0) set @treasure_job,rand(1,10); //doesn't allow cheaters to pick any quest they want
if(@treasure_job==2) goto N_JobList2;
@@ -100,7 +100,7 @@ N_Signup:
L_NoQuestsForYet:
mes "[Guy]";
mes "I'm afraid there aren't any Quests for you yet.";
- mes "Call in "+ (#THQ_DELAY - (gettime(YEAR)*12*31*24+gettime(MONTH)*31*24+gettime(DAYOFMONTH)*24+gettime(HOUR)) )+" hours later.";
+ mes "Call in "+ (#THQ_DELAY - (gettime(GETTIME_YEAR)*12*31*24+gettime(GETTIME_MONTH)*31*24+gettime(GETTIME_DAYOFMONTH)*24+gettime(GETTIME_HOUR)) )+" hours later.";
emotion 17;
close;
diff --git a/npc/custom/woe_controller.txt b/npc/custom/woe_controller.txt
index 86590ebc8..9e35d1ef7 100644
--- a/npc/custom/woe_controller.txt
+++ b/npc/custom/woe_controller.txt
@@ -102,7 +102,7 @@ OnMinute00:
freeloop(1);
if (agitcheck() || agitcheck2()) {
for(set .@i,0; .@i<.Size; set .@i,.@i+4)
- if (gettime(WEEKDAY) == $WOE_CONTROL[.@i] && gettime(HOUR) == $WOE_CONTROL[.@i+2]) {
+ if (gettime(GETTIME_WEEKDAY) == $WOE_CONTROL[.@i] && gettime(GETTIME_HOUR) == $WOE_CONTROL[.@i+2]) {
OnWOEEnd:
announce "The War Of Emperium is over!",bc_all|bc_woe;
agitend; agitend2;
@@ -120,7 +120,7 @@ OnMinute00:
if ((!agitcheck() && !agitcheck2()) || .Init) {
if (!agitcheck() && !agitcheck2()) set .Init,0;
for(set .@i,0; .@i<.Size; set .@i,.@i+4)
- if (gettime(WEEKDAY) == $WOE_CONTROL[.@i] && gettime(HOUR) >= $WOE_CONTROL[.@i+1] && gettime(HOUR) < $WOE_CONTROL[.@i+2]) {
+ if (gettime(GETTIME_WEEKDAY) == $WOE_CONTROL[.@i] && gettime(GETTIME_HOUR) >= $WOE_CONTROL[.@i+1] && gettime(GETTIME_HOUR) < $WOE_CONTROL[.@i+2]) {
deletearray .Active[0],2;
set .Active[0], $WOE_CONTROL[.@i+3];
if (.Init) { agitend; agitend2; }
@@ -208,7 +208,7 @@ while(1) {
if (agitcheck() || agitcheck2()) {
if (.Active[0]) {
for(set .@i,0; .@i<.Size; set .@i,.@i+4)
- if (gettime(WEEKDAY) == $WOE_CONTROL[.@i] && gettime(HOUR) >= $WOE_CONTROL[.@i+1] && gettime(HOUR) < $WOE_CONTROL[.@i+2]) {
+ if (gettime(GETTIME_WEEKDAY) == $WOE_CONTROL[.@i] && gettime(GETTIME_HOUR) >= $WOE_CONTROL[.@i+1] && gettime(GETTIME_HOUR) < $WOE_CONTROL[.@i+2]) {
set .@i, $WOE_CONTROL[.@i+2];
break;
}
@@ -220,7 +220,7 @@ while(1) {
mes "The War of Emperium is ^0055FFactive^000000.";
} else {
for(set .@i,0; .@i<.Size; set .@i,.@i+4)
- if ((gettime(WEEKDAY) == $WOE_CONTROL[.@i] && gettime(HOUR) <= $WOE_CONTROL[.@i+1]) || gettime(WEEKDAY) < $WOE_CONTROL[.@i]) {
+ if ((gettime(GETTIME_WEEKDAY) == $WOE_CONTROL[.@i] && gettime(GETTIME_HOUR) <= $WOE_CONTROL[.@i+1]) || gettime(GETTIME_WEEKDAY) < $WOE_CONTROL[.@i]) {
setarray .@time[0],$WOE_CONTROL[.@i],$WOE_CONTROL[.@i+1];
break;
}
diff --git a/npc/events/idul_fitri.txt b/npc/events/idul_fitri.txt
index cca86d1fc..df24208eb 100644
--- a/npc/events/idul_fitri.txt
+++ b/npc/events/idul_fitri.txt
@@ -12,7 +12,7 @@
prontera,146,92,3 script Cellerb 1_M_MERCHANT,{
mes "[Staff Idul Fitri]";
- if((gettime(MONTH)==OCTOBER && (gettime(DAYOFMONTH)==24 || gettime(DAYOFMONTH)==25))==0) {
+ if ((gettime(GETTIME_MONTH)==OCTOBER && (gettime(GETTIME_DAYOFMONTH)==24 || gettime(GETTIME_DAYOFMONTH)==25))==0) {
mes "Congratulation! Celebrate Feast Day Of Ramadan Idul Fitri 1427 H.";
specialeffect EF_SANDMAN;
close;
diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt
index ff5b78b2d..dc675f8d0 100644
--- a/npc/other/Global_Functions.txt
+++ b/npc/other/Global_Functions.txt
@@ -46,10 +46,10 @@
// Returns a number with commas based on precision of digits and custom separator.
// -- callfunc "F_InsertComma",<number>{,<precision>,<separator>}
// Examples:
-// callfunc("F_InsertComma",7777777{,<precision>,<separator>}) // returns "7,777,777"
-// callfunc("F_InsertComma",1000000000,3,","}) // returns "1,000,000,000"
-// callfunc("F_InsertComma",1000000000,3,"_"}) // returns "1_000_000_000"
-// callfunc("F_InsertComma",1000000000,4) // returns "10,0000,0000"
+// callfunc("F_InsertComma",7777777) // returns "7,777,777"
+// callfunc("F_InsertComma",1000000000,3,",") // returns "1,000,000,000"
+// callfunc("F_InsertComma",1000000000,3,"_") // returns "1_000_000_000"
+// callfunc("F_InsertComma",1000000000,4) // returns "10,0000,0000"
//////////////////////////////////////////////////////////////////////////////////
function script F_InsertComma {
.@value = getarg(0);
diff --git a/npc/other/arena/arena_lvl50.txt b/npc/other/arena/arena_lvl50.txt
index 015dc64db..2c1301368 100644
--- a/npc/other/arena/arena_lvl50.txt
+++ b/npc/other/arena/arena_lvl50.txt
@@ -37,8 +37,8 @@ force_1-1,99,20,4 script Heel and Toe#arena 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- $arena_min50st = gettime(MINUTE);
- $arena_sec50st = gettime(SECOND);
+ $arena_min50st = gettime(GETTIME_MINUTE);
+ $arena_sec50st = gettime(GETTIME_SECOND);
end;
OnTimer3000:
@@ -774,8 +774,8 @@ OnMyMobDead:
donpcevent "Heel and Toe#arena::On09_End";
donpcevent "arena#50::OnReset_09";
donpcevent "arena#50::OnReset_All";
- $arena_min50end = gettime(MINUTE);
- $arena_sec50end = gettime(SECOND);
+ $arena_min50end = gettime(GETTIME_MINUTE);
+ $arena_sec50end = gettime(GETTIME_SECOND);
}
end;
}
diff --git a/npc/other/arena/arena_lvl60.txt b/npc/other/arena/arena_lvl60.txt
index 7fbaea869..71f80dcd4 100644
--- a/npc/other/arena/arena_lvl60.txt
+++ b/npc/other/arena/arena_lvl60.txt
@@ -38,8 +38,8 @@ force_2-1,99,20,4 script Minilover#arena 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- $arena_min60st = gettime(MINUTE);
- $arena_sec60st = gettime(SECOND);
+ $arena_min60st = gettime(GETTIME_MINUTE);
+ $arena_sec60st = gettime(GETTIME_SECOND);
end;
OnTimer3000:
@@ -784,8 +784,8 @@ OnMyMobDead:
donpcevent "Minilover#arena::On09_End";
donpcevent "arena#60::OnReset_09";
donpcevent "arena#60::OnReset_All";
- $arena_min60end = gettime(MINUTE);
- $arena_sec60end = gettime(SECOND);
+ $arena_min60end = gettime(GETTIME_MINUTE);
+ $arena_sec60end = gettime(GETTIME_SECOND);
}
end;
}
diff --git a/npc/other/arena/arena_lvl70.txt b/npc/other/arena/arena_lvl70.txt
index a0b88f5dd..889089107 100644
--- a/npc/other/arena/arena_lvl70.txt
+++ b/npc/other/arena/arena_lvl70.txt
@@ -37,8 +37,8 @@ force_3-1,99,20,4 script Cadillac#arena 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- $arena_min70st = gettime(MINUTE);
- $arena_sec70st = gettime(SECOND);
+ $arena_min70st = gettime(GETTIME_MINUTE);
+ $arena_sec70st = gettime(GETTIME_SECOND);
end;
OnTimer3000:
@@ -749,8 +749,8 @@ OnMyMobDead:
donpcevent "Cadillac#arena::On09_End";
donpcevent "arena#70::OnReset_09";
donpcevent "arena#70::OnReset_All";
- $arena_min70end = gettime(MINUTE);
- $arena_sec70end = gettime(SECOND);
+ $arena_min70end = gettime(GETTIME_MINUTE);
+ $arena_sec70end = gettime(GETTIME_SECOND);
}
end;
}
diff --git a/npc/other/arena/arena_lvl80.txt b/npc/other/arena/arena_lvl80.txt
index 8922a3376..1529e555d 100644
--- a/npc/other/arena/arena_lvl80.txt
+++ b/npc/other/arena/arena_lvl80.txt
@@ -37,8 +37,8 @@ force_4-1,99,20,4 script Octus#arena 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- $arena_min80st = gettime(MINUTE);
- $arena_sec80st = gettime(SECOND);
+ $arena_min80st = gettime(GETTIME_MINUTE);
+ $arena_sec80st = gettime(GETTIME_SECOND);
end;
OnTimer3000:
@@ -730,8 +730,8 @@ OnMyMobDead:
donpcevent "Octus#arena::On09_End";
donpcevent "arena#80::OnReset_09";
donpcevent "arena#80::OnReset_All";
- $arena_min80end = gettime(MINUTE);
- $arena_sec80end = gettime(SECOND);
+ $arena_min80end = gettime(GETTIME_MINUTE);
+ $arena_sec80end = gettime(GETTIME_SECOND);
}
end;
}
diff --git a/npc/other/arena/arena_party.txt b/npc/other/arena/arena_party.txt
index 3011e7a43..ac9c5ff53 100644
--- a/npc/other/arena/arena_party.txt
+++ b/npc/other/arena/arena_party.txt
@@ -147,8 +147,8 @@ OnTouch:
force_1-2,99,31,4 script Slipslowrun#party 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- $arena_minptst = gettime(MINUTE);
- $arena_secptst = gettime(SECOND);
+ $arena_minptst = gettime(GETTIME_MINUTE);
+ $arena_secptst = gettime(GETTIME_SECOND);
end;
OnTimer2000:
@@ -412,8 +412,8 @@ OnReset:
force_1-2,95,187,0 script force_09_exit WARPNPC,1,1,{
OnTouch:
- $arena_minptend = gettime(MINUTE);
- $arena_secptend = gettime(SECOND);
+ $arena_minptend = gettime(GETTIME_MINUTE);
+ $arena_secptend = gettime(GETTIME_SECOND);
warp "prt_are_in",73,139;
donpcevent "#arn_timer_pt::OnEnter";
donpcevent "arena_p::OnReset";
diff --git a/npc/other/comodo_gambling.txt b/npc/other/comodo_gambling.txt
index 3d0e2b389..e5631049b 100644
--- a/npc/other/comodo_gambling.txt
+++ b/npc/other/comodo_gambling.txt
@@ -219,7 +219,7 @@ comodo,219,158,6 script Kachua 4_F_02,{
else if ((.@gamble1 > 150) && (.@gamble1 < 201)) .@item = 2304; // Jacket[1]
else if ((.@gamble1 > 200) && (.@gamble1 < 251)) .@item = 2305; // Adventurer's Suit
else if ((.@gamble1 > 250) && (.@gamble1 < 300)) .@item = 2301; // Cotton Shirt
- else if ((.@gamble1 > 301) && (.@gamble1 < 351)) .@item = 2307; // Mantle
+ else if ((.@gamble1 > 302) && (.@gamble1 < 351)) .@item = 2307; // Mantle
else if ((.@gamble1 > 350) && (.@gamble1 < 401)) .@item = 2309; // Coat
else if ((.@gamble1 > 400) && (.@gamble1 < 402)) .@item = 2322; // Silk Robe[1]
else if ((.@gamble1 > 401) && (.@gamble1 < 403)) .@item = 2310; // Coat[1]
@@ -371,7 +371,7 @@ comodo,219,158,6 script Kachua 4_F_02,{
else if ((.@gamble1 > 0) && (.@gamble1 < 201)) .@item = 2101; // Guard
else if ((.@gamble1 > 204) && (.@gamble1 < 301)) .@item = 2103; // Buckler
else if ((.@gamble1 > 300) && (.@gamble1 < 401)) .@item = 2107; // Mirror Shield
- else if ((.@gamble1 > 401) && (.@gamble1 < 481)) .@item = 2105; // Shield
+ else if ((.@gamble1 > 400) && (.@gamble1 < 481)) .@item = 2105; // Shield
else if ((.@gamble1 > 480) && (.@gamble1 < 501)) .@item = 2108; // Mirror Shield[1]
break;
default: // Cancel button / hack
diff --git a/npc/pre-re/merchants/shops.txt b/npc/pre-re/merchants/shops.txt
index d303f35b4..e18498015 100644
--- a/npc/pre-re/merchants/shops.txt
+++ b/npc/pre-re/merchants/shops.txt
@@ -3,20 +3,74 @@
//===== By: ==================================================
//= Daegaladh
//===== Current Version: =====================================
-//= 1.1
+//= 1.2
//===== Description: =========================================
//= Pre-renewal-specific town shop NPCs.
//===== Additional Comments: =================================
//= 1.0 First version.
//= 1.1 Moved Izlude shops to pre-re/re paths. [Streusel]
+//= 1.2 Converted to trader format. [Frost]
//============================================================
//=======================================================
// Izlude
//=======================================================
-izlude,105,99,0 shop Butcher#iz 1_M_JOBGUIDER,517:-1
-izlude,94,98,4 shop Fruit Gardener#iz 1_M_INNKEEPER,512:-1,513:-1,515:-1,516:-1
-izlude,105,92,7 shop Vendor from Milk Ranch#i 4_F_01,519:-1
-izlude,164,138,4 shop Pet Groomer#iz 4_F_TELEPORTER,537:-1,643:-1,10013:-1,10014:-1,554:-1,6113:-1,6114:-1,6115:-1
-izlude_in,115,61,0 shop Tool Dealer#iz 1_M_01,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,1750:-1
-izlude_in,121,64,3 shop Trading Merchant#iz 4_M_HUMERCHANT,13200:-1,13201:-1,13202:-1,13150:-1,13102:-1,13151:-1,13154:-1,13155:-1,13163:-1,13165:-1,13168:-1
+izlude,105,99,0 trader Butcher#iz 1_M_JOBGUIDER,{
+OnInit:
+ sellitem Meat;
+}
+
+izlude,94,98,4 trader Fruit Gardener#iz 1_M_INNKEEPER,{
+OnInit:
+ sellitem Apple;
+ sellitem Banana;
+ sellitem Carrot;
+ sellitem Sweet_Potato;
+}
+
+izlude,105,92,7 trader Vendor from Milk Ranch#i 4_F_01,{
+OnInit:
+ sellitem Milk;
+}
+
+izlude,164,138,4 trader Pet Groomer#iz 4_F_TELEPORTER,{
+OnInit:
+ sellitem Pet_Food;
+ sellitem Pet_Incubator;
+ sellitem Backpack;
+ sellitem Rocker_Glasses;
+ sellitem Mojji;
+ sellitem Vital_Flower_;
+ sellitem Flame_Gemstone;
+ sellitem Bun_;
+}
+
+izlude_in,115,61,0 trader Tool Dealer#iz 1_M_01,{
+OnInit:
+ sellitem Spectacles;
+ sellitem Red_Potion;
+ sellitem Orange_Potion;
+ sellitem Yellow_Potion;
+ sellitem Green_Potion;
+ sellitem Center_Potion;
+ sellitem Awakening_Potion;
+ sellitem Wing_Of_Fly;
+ sellitem Wing_Of_Butterfly;
+ sellitem Booby_Trap;
+ sellitem Arrow;
+}
+
+izlude_in,121,64,3 trader Trading Merchant#iz 4_M_HUMERCHANT,{
+OnInit:
+ sellitem Bullet;
+ sellitem Silver_Bullet;
+ sellitem Shell_Of_Blood;
+ sellitem Branch;
+ sellitem Crimson_Bolt;
+ sellitem The_Cyclone;
+ sellitem Rolling_Stone;
+ sellitem Black_Rose;
+ sellitem Long_Barrel;
+ sellitem Jungle_Carbine;
+ sellitem Thunder_P;
+}
diff --git a/npc/quests/first_class/tu_archer.txt b/npc/quests/first_class/tu_archer.txt
index c2b34db1a..2ca63f2f5 100644
--- a/npc/quests/first_class/tu_archer.txt
+++ b/npc/quests/first_class/tu_archer.txt
@@ -1400,7 +1400,7 @@ pay_arche,76,135,3 script #Target HIDDEN_NPC,{ end; }
- script ::Acolyte_Tu -1,{
mes "[Acolyte]";
if(tu_archer01 == 14){
- if(gettime(HOUR) >= 18 && gettime(HOUR) < 22){
+ if (gettime(GETTIME_HOUR) >= 18 && gettime(GETTIME_HOUR) < 22) {
mes "H-hello!";
mes "Umm, umm...";
mes "Are you R-Reidin Corse's";
@@ -1500,7 +1500,7 @@ pay_arche,76,135,3 script #Target HIDDEN_NPC,{ end; }
close;
}
} else if(tu_archer01 == 15){
- if((gettime(HOUR) >= 18) && (gettime(HOUR) < 22)){
+ if (gettime(GETTIME_HOUR) >= 18 && gettime(GETTIME_HOUR) < 22) {
mes "^666666Zzzzz...^000000";
mes "Wh-wha...?";
mes "Who are you?";
diff --git a/npc/quests/guildrelay.txt b/npc/quests/guildrelay.txt
index de61abad4..6c12574f0 100644
--- a/npc/quests/guildrelay.txt
+++ b/npc/quests/guildrelay.txt
@@ -70,7 +70,7 @@
if (strcharinfo(0) == getguildmaster(.@GID)) {
if (guildrelay_q == 100) {
if (guildtime > 22) {
- if ((gettime(HOUR) > 1) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 1 && gettime(GETTIME_HOUR) < guildtime) {
mes "[" + .@name$ + "]";
mes "Oh, you're back. So did you";
mes "rest up enough? I'm sure the";
@@ -127,7 +127,7 @@
}
}
else if (guildtime > 22) {
- if ((gettime(HOUR) > 0) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 0 && gettime(GETTIME_HOUR) < guildtime) {
mes "[" + .@name$ + "]";
mes "Oh, you're back. So did you";
mes "rest up enough? I'm sure the";
@@ -182,8 +182,7 @@
mes "come back to me later.";
close;
}
- }
- else if ((gettime(HOUR) - guildtime) > 2) {
+ } else if (gettime(GETTIME_HOUR) - guildtime > 2) {
mes "[" + .@name$ + "]";
mes "Oh, you're back. So did you";
mes "rest up enough? I'm sure the";
@@ -240,7 +239,9 @@
}
}
else if (guildrelay_q == 150) {
- if (((guildtime > 22) && (gettime(HOUR) > 1) && (gettime(HOUR) < guildtime)) || ((guildtime > 21) && (gettime(HOUR) > 0) && (gettime(HOUR) < guildtime)) || ((gettime(HOUR) - guildtime) > 2)) {
+ if ((guildtime > 22 && gettime(GETTIME_HOUR) > 1 && gettime(GETTIME_HOUR) < guildtime)
+ || (guildtime > 21 && gettime(GETTIME_HOUR) > 0 && gettime(GETTIME_HOUR) < guildtime)
+ || (gettime(GETTIME_HOUR) - guildtime > 2)) {
mes "[" + .@name$ + "]";
mes "Ah, you look well rested,";
mes "master. It is now time for";
@@ -304,12 +305,12 @@
}
}
else if (guildrelay_q == 25) {
- if (((guildtime > 22) && ((gettime(HOUR) > 4) && (gettime(HOUR) < guildtime)))
- || ((guildtime > 21) && ((gettime(HOUR) > 3) && (gettime(HOUR) < guildtime)))
- || ((guildtime > 20) && ((gettime(HOUR) > 2) && (gettime(HOUR) < guildtime)))
- || ((guildtime > 19) && ((gettime(HOUR) > 1) && (gettime(HOUR) < guildtime)))
- || ((guildtime > 18) && ((gettime(HOUR) > 0) && (gettime(HOUR) < guildtime)))
- || ((gettime(HOUR) - guildtime) > 5)) {
+ if ((guildtime > 22 && gettime(GETTIME_HOUR) > 4 && gettime(GETTIME_HOUR) < guildtime)
+ || (guildtime > 21 && gettime(GETTIME_HOUR) > 3 && gettime(GETTIME_HOUR) < guildtime)
+ || (guildtime > 20 && gettime(GETTIME_HOUR) > 2 && gettime(GETTIME_HOUR) < guildtime)
+ || (guildtime > 19 && gettime(GETTIME_HOUR) > 1 && gettime(GETTIME_HOUR) < guildtime)
+ || (guildtime > 18 && gettime(GETTIME_HOUR) > 0 && gettime(GETTIME_HOUR) < guildtime)
+ || gettime(GETTIME_HOUR) - guildtime > 5) {
mes "[" + .@name$ + "]";
mes "Ah, have you rested well,";
mes "master? Please excuse my";
@@ -413,7 +414,7 @@
mes "Hand me the spirit, and allow";
mes "me to give you your guild's reward.";
delitem 7239,1; //Soul_Of_Proceeding
- guildtime = gettime(HOUR);
+ guildtime = gettime(GETTIME_HOUR);
guildrelay_q = 100;
.@incen_item = rand(1,100);
if ((.@incen_item > 0) && (.@incen_item < 25)) {
@@ -481,7 +482,7 @@
mes "challenges that you will all";
mes "face together. Good work!";
delitem 7245,1; //Soul_Of_Friendship
- guildtime = gettime(HOUR);
+ guildtime = gettime(GETTIME_HOUR);
guildrelay_q = 150;
.@incen_item = rand(1,100);
if ((.@incen_item > 0) && (.@incen_item < 16)) {
@@ -574,7 +575,7 @@
mes "Tristan III, and share it with";
mes "guild. Once again, good work.";
delitem 7251,1; //Soul_Of_Victory
- guildtime = gettime(HOUR);
+ guildtime = gettime(GETTIME_HOUR);
guildrelay_q = 25;
.@incen_item = rand(1,100);
if ((.@incen_item > 0) && (.@incen_item < 26)) {
@@ -1409,11 +1410,11 @@
mes "don't you worry about it.";
delitem 7235,1; //Soul_Of_Courage
guildrelay_q = 4;
- guildtime = gettime(HOUR);
+ guildtime = gettime(GETTIME_HOUR);
close;
}
if ((guildtime > 22) && (guildrelay_q == 4) && (BaseJob == Job_Blacksmith)) {
- if ((gettime(HOUR) > 2) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 2 && gettime(GETTIME_HOUR) < guildtime) {
mes "[" + .@name$ + "]";
mes "I guess enough time";
mes "has passed. You ready";
@@ -1427,7 +1428,7 @@
}
}
if ((guildtime > 21) && (guildrelay_q == 4) && (BaseJob == Job_Blacksmith)) {
- if ((gettime(HOUR) > 0101) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 0101 && gettime(GETTIME_HOUR) < guildtime) { // FIXME[Haru]: hour is clearly wrong
mes "[" + .@name$ + "]";
mes "I guess enough time";
mes "has passed. You ready";
@@ -1441,7 +1442,7 @@
}
}
if ((guildtime > 20) && (guildrelay_q == 4) && (BaseJob == Job_Blacksmith)) {
- if ((gettime(HOUR) > 0001) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 0001 && gettime(GETTIME_HOUR) < guildtime) { // FIXME[Haru]: Hour is probably wrong
mes "[" + .@name$ + "]";
mes "I guess enough time";
mes "has passed. You ready";
@@ -1454,7 +1455,7 @@
close;
}
}
- if ((gettime(HOUR) - guildtime > 0300) && (guildrelay_q == 4) && (BaseJob == Job_Blacksmith)) {
+ if (gettime(GETTIME_HOUR) - guildtime > 0300 && guildrelay_q == 4 && BaseJob == Job_Blacksmith) { // FIXME[Haru]: Hour is clearly wrong
mes "[" + .@name$ + "]";
mes "I guess enough time";
mes "has passed. You ready";
@@ -1795,11 +1796,11 @@
mes "in order to be successful.";
delitem 7240,1; //Soul_Of_Confidence
guildrelay_q = 9;
- guildtime = gettime(HOUR);
+ guildtime = gettime(GETTIME_HOUR);
close;
}
if ((guildtime > 22) && (guildrelay_q == 9) && (BaseJob == Job_Sage)) {
- if ((gettime(HOUR) > 02) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 2 && gettime(GETTIME_HOUR) < guildtime) {
mes "[" + .@name$ + "]";
mes "So did you spend some";
mes "quality time with your";
@@ -1830,7 +1831,7 @@
}
}
else if ((guildtime > 21) && (guildrelay_q == 9) && (BaseJob == Job_Sage)) {
- if ((gettime(HOUR) > 01) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 1 && gettime(GETTIME_HOUR) < guildtime) {
mes "[" + .@name$ + "]";
mes "So did you spend some";
mes "quality time with your";
@@ -1861,7 +1862,7 @@
}
}
else if ((guildtime > 20) && (guildrelay_q == 9) && (BaseJob == Job_Sage)) {
- if ((gettime(HOUR) > 0) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 0 && gettime(GETTIME_HOUR) < guildtime) {
mes "[" + .@name$ + "]";
mes "So did you spend some";
mes "quality time with your";
@@ -1890,8 +1891,7 @@
mes "dreams, passions, and goals!";
close;
}
- }
- else if ((gettime(HOUR) - guildtime > 3) && (guildrelay_q == 9) && (BaseJob == Job_Sage)) {
+ } else if (gettime(GETTIME_HOUR) - guildtime > 3 && guildrelay_q == 9 && BaseJob == Job_Sage) {
mes "[" + .@name$ + "]";
mes "So did you spend some";
mes "quality time with your";
@@ -2765,11 +2765,11 @@
mes "to your feelings this time...";
delitem 7249,1; //Soul_Of_Service
guildrelay_q = 21;
- guildtime = gettime(HOUR);
+ guildtime = gettime(GETTIME_HOUR);
close;
}
if ((guildtime > 22) && (guildrelay_q == 21) && (BaseJob == Job_Crusader)) {
- if ((gettime(HOUR) > 2) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 2 && gettime(GETTIME_HOUR) < guildtime) {
mes "[" + .@name$ + "]";
mes "Yes. You've come at just";
mes "the right time. Remember";
@@ -2791,7 +2791,7 @@
}
}
if ((guildtime > 21) && (guildrelay_q == 21) && (BaseJob == Job_Crusader)) {
- if ((gettime(HOUR) > 1) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 1 && gettime(GETTIME_HOUR) < guildtime) {
mes "[" + .@name$ + "]";
mes "Yes. You've come at just";
mes "the right time. Remember";
@@ -2813,7 +2813,7 @@
}
}
if ((guildtime > 20) && (guildrelay_q == 21) && (BaseJob == Job_Crusader)) {
- if ((gettime(HOUR) > 0) && (gettime(HOUR) < guildtime)) {
+ if (gettime(GETTIME_HOUR) > 0 && gettime(GETTIME_HOUR) < guildtime) {
mes "[" + .@name$ + "]";
mes "Yes. You've come at just";
mes "the right time. Remember";
@@ -2834,7 +2834,7 @@
close;
}
}
- if ((gettime(HOUR) - guildtime > 3) && (guildrelay_q == 21) && (BaseJob == Job_Crusader)) {
+ if (gettime(GETTIME_HOUR) - guildtime > 3 && guildrelay_q == 21 && BaseJob == Job_Crusader) {
mes "[" + .@name$ + "]";
mes "Yes. You've come at just";
mes "the right time. Remember";
diff --git a/npc/quests/newgears/2010_headgears.txt b/npc/quests/newgears/2010_headgears.txt
index 3dfa0b754..34d1e8b2b 100644
--- a/npc/quests/newgears/2010_headgears.txt
+++ b/npc/quests/newgears/2010_headgears.txt
@@ -1036,7 +1036,7 @@ alberta,120,206,3 script Alonie#Solo_Play_Box 4_M_UMKID,{
mes "My affection-lacked student!";
mes "This is the end of your training!";
next;
- if (gettime(HOUR) < 12) {
+ if (gettime(GETTIME_HOUR) < 12) {
if (checkweight(Solo_Play_Box1,1) == 0) {
mes "[Alonie]";
mes "Playing outside with this heavy bag?";
diff --git a/npc/quests/partyrelay.txt b/npc/quests/partyrelay.txt
index 0a0c3948c..151e5c193 100644
--- a/npc/quests/partyrelay.txt
+++ b/npc/quests/partyrelay.txt
@@ -401,7 +401,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "instructions, didn't you?";
close;
}
- .@relaytime = gettime(HOUR);
+ .@relaytime = gettime(GETTIME_HOUR);
if (party_relay == 28) {
mes "[Gatan]";
mes "Say, I don't think it's";
@@ -1837,7 +1837,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
mes "with any of the other guys?";
close;
}
- .@relaytime = gettime(HOUR);
+ .@relaytime = gettime(GETTIME_HOUR);
if (party_relay == 30) {
mes "[Bafhail]";
mes "Did you give that ticket";
@@ -2471,7 +2471,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "have to meet either, but...";
close;
}
- .@relaytime = gettime(HOUR);
+ .@relaytime = gettime(GETTIME_HOUR);
getmapxy(.@m$,.@x,.@y,1,strnpcinfo(3));
.@juwi = getareausers(.@m$,.@x-8,.@y-8,.@x+8,.@y+8);
if (party_relay == 32) {
diff --git a/npc/quests/quests_ein.txt b/npc/quests/quests_ein.txt
index c5a470507..d2bf684a0 100644
--- a/npc/quests/quests_ein.txt
+++ b/npc/quests/quests_ein.txt
@@ -5692,7 +5692,7 @@ OnTouch:
mes "Failure to do so will result";
mes "in lockout. Please wait.";
next;
- .@startseconds = gettime(HOUR)*60*60+gettime(MINUTE)*60+gettime(SECOND);
+ .@startseconds = gettime(GETTIME_HOUR)*60*60+gettime(GETTIME_MINUTE)*60+gettime(GETTIME_SECOND);
mes "[Security System]";
switch(rand(1,7)) {
case 1:
@@ -5761,7 +5761,7 @@ OnTouch:
}
next;
input .@input2$;
- .@endtime = gettime(HOUR)*60*60+gettime(MINUTE)*60+gettime(SECOND);
+ .@endtime = gettime(GETTIME_HOUR)*60*60+gettime(GETTIME_MINUTE)*60+gettime(GETTIME_SECOND);
.@time = .@endtime-.@startseconds;
mes "[Security System]";
if ((.@input1$ == .@word1$) && (.@input2$ == .@word2$)) {
diff --git a/npc/quests/quests_lighthalzen.txt b/npc/quests/quests_lighthalzen.txt
index 2636b1f77..d7b184f6c 100644
--- a/npc/quests/quests_lighthalzen.txt
+++ b/npc/quests/quests_lighthalzen.txt
@@ -85,7 +85,7 @@ lighthalzen,267,200,3 script Guard#lhz01 4_M_LGTGUARD,{
$@Lhz_Gangster_Alert = 100;
close;
}
- if (gettime(HOUR) >= 22 || gettime(HOUR) < 2) {
+ if (gettime(GETTIME_HOUR) >= 22 || gettime(GETTIME_HOUR) < 2) {
mes "[Guard]";
mes "Zzzz... Zzz...";
mes "ZZZzzzzzzzzzz...";
@@ -152,7 +152,7 @@ lighthalzen,294,223,7 script Guard#lhz02 4_M_LGTGUARD,{
$@Lhz_Gangster_Alert = 100;
close;
}
- if (gettime(HOUR) >= 22 || gettime(HOUR) < 2) {
+ if (gettime(GETTIME_HOUR) >= 22 || gettime(GETTIME_HOUR) < 2) {
mes "[Guard]";
mes "Zzzz... Zzz...";
mes "ZZZzzzzzzzzzz...";
@@ -7378,8 +7378,8 @@ yuno_pre,69,20,4 script Secretary#1 4_F_LGTGIRL,{
mes "Membership Card.^000000";
close;
}
- if(((gettime(HOUR) > 10) && (gettime(HOUR) < 15)) || ((gettime(HOUR) > 19) && (gettime(HOUR) <= 23)))
- {
+ if ((gettime(GETTIME_HOUR) > 10 && gettime(GETTIME_HOUR) < 15)
+ || (gettime(GETTIME_HOUR) > 19 && gettime(GETTIME_HOUR) <= 23)) {
mes "^3355FFYou suavely flash";
mes "your ''Secret Wing''";
mes "Membership Card.^000000";
diff --git a/npc/quests/quests_louyang.txt b/npc/quests/quests_louyang.txt
index 8d5113cd5..c4658a3aa 100644
--- a/npc/quests/quests_louyang.txt
+++ b/npc/quests/quests_louyang.txt
@@ -38,7 +38,7 @@
// Soup Quest :: lou_tre
//============================================================
lou_in02,53,174,7 script Employee#1 4_M_CHNMAN,6,62,{
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 22) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 22) {
mes "[Chang Pai]";
mes "Welcome, welcome!";
mes "We are ready to serve you~!";
@@ -51,7 +51,7 @@ lou_in02,53,174,7 script Employee#1 4_M_CHNMAN,6,62,{
OnTouch:
if (ch_tre == 2 || ch_tre == 3) {
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 14) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 14) {
if (rand(1,10) < 9) {
mes "[Chang Pai]";
mes "Wait, who are you?!";
@@ -63,8 +63,7 @@ OnTouch:
ch_tre = 1;
close;
}
- }
- else if (gettime(HOUR) >= 14 && gettime(HOUR) < 17) {
+ } else if (gettime(GETTIME_HOUR) >= 14 && gettime(GETTIME_HOUR) < 17) {
if (rand(1,10) < 10) {
mes "[Chang Pai]";
mes "Wait, who are you?!";
@@ -76,8 +75,7 @@ OnTouch:
ch_tre = 1;
close;
}
- }
- else if (gettime(HOUR) >= 17 && gettime(HOUR) < 21) {
+ } else if (gettime(GETTIME_HOUR) >= 17 && gettime(GETTIME_HOUR) < 21) {
if (rand(1,10) < 6) {
mes "[Chang Pai]";
mes "Wait, who are you?!";
@@ -113,7 +111,7 @@ OnTouch:
}
lou_in02,76,181,3 script Employee#2 4_M_CHNMAN,2,2,{
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 22) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 22) {
mes "[Huang Jia Xian]";
mes "Welcome~";
mes "Sorry for making you wait. If you wish to rest, please go upstairs.";
@@ -138,7 +136,7 @@ lou_in02,76,181,3 script Employee#2 4_M_CHNMAN,2,2,{
OnTouch:
if (ch_tre == 2 || ch_tre == 3) {
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 14) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 14) {
if (rand(1,10) < 9) {
mes "[Huang Jia Xian]";
mes "What the...?";
@@ -151,8 +149,7 @@ OnTouch:
ch_tre = 1;
close;
}
- }
- else if (gettime(HOUR) >= 14 && gettime(HOUR) < 17) {
+ } else if (gettime(GETTIME_HOUR) >= 14 && gettime(GETTIME_HOUR) < 17) {
if (rand(1,10) < 10) {
mes "[Huang Jia Xian]";
mes "What the...?";
@@ -165,8 +162,7 @@ OnTouch:
ch_tre = 1;
close;
}
- }
- else if (gettime(HOUR) >= 17 && gettime(HOUR) < 22) {
+ } else if (gettime(GETTIME_HOUR) >= 17 && gettime(GETTIME_HOUR) < 22) {
if (rand(1,10) < 6) {
mes "[Huang Jia Xian]";
mes "What the...?";
@@ -203,7 +199,7 @@ OnTouch:
}
lou_in02,61,175,3 script Employee#3 4_F_CHNWOMAN,2,2,{
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 22) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 22) {
if (ch_tre == 5) {
mes "[Ya Hua]";
mes "Welcome, welcome!";
@@ -234,7 +230,7 @@ lou_in02,61,175,3 script Employee#3 4_F_CHNWOMAN,2,2,{
OnTouch:
if (ch_tre == 2 || ch_tre == 3) {
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 14) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 14) {
if (rand(1,10) < 9) {
mes "[Ya Hua]";
mes "What do you think";
@@ -247,8 +243,7 @@ OnTouch:
ch_tre = 1;
close;
}
- }
- else if (gettime(HOUR) >= 14 && gettime(HOUR) < 17) {
+ } else if (gettime(GETTIME_HOUR) >= 14 && gettime(GETTIME_HOUR) < 17) {
if (rand(1,10) < 10) {
mes "[Ya Hua]";
mes "What do you think";
@@ -261,8 +256,7 @@ OnTouch:
ch_tre = 1;
close;
}
- }
- else if (gettime(HOUR) >= 17 && gettime(HOUR) < 22) {
+ } else if (gettime(GETTIME_HOUR) >= 17 && gettime(GETTIME_HOUR) < 22) {
if (rand(1,10) < 6) {
mes "[Ya Hua]";
mes "What do you think";
@@ -367,7 +361,7 @@ lou_in02,62,183,3 script Chef#1-2 4_M_CHNCOOK,2,2,{
OnTouch:
if (ch_tre == 2 || ch_tre == 3) {
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 14) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 14) {
if (rand(1,10) < 9) {
mes "[Wang Shi Long]";
mes "Hey, what do you";
@@ -381,8 +375,7 @@ OnTouch:
warp "louyang",280,161;
close;
}
- }
- else if (gettime(HOUR) >= 14 && gettime(HOUR) < 17) {
+ } else if (gettime(GETTIME_HOUR) >= 14 && gettime(GETTIME_HOUR) < 17) {
if (rand(1,10) < 10) {
mes "[Wang Shi Long]";
mes "Hey, what do you";
@@ -396,8 +389,7 @@ OnTouch:
warp "louyang",280,161;
close;
}
- }
- else if (gettime(HOUR) >= 17 && gettime(HOUR) < 22) {
+ } else if (gettime(GETTIME_HOUR) >= 17 && gettime(GETTIME_HOUR) < 22) {
if (rand(1,10) < 6) {
mes "[Wang Shi Long]";
mes "Hey, what do you";
@@ -720,16 +712,14 @@ lou_in02,50,185,5 script Pot#1 HIDDEN_NPC,{
mes "^3131FFYou take a careful look around.";
mes "It wouldn't be wise to steal this now if anyone is watching.^000000";
next;
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 14) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 14) {
mes "^3131FFThe restaurant doesn't seem busy right now, so there's only a few employees and customers.^000000";
- }
- else if (gettime(HOUR) >= 14 && gettime(HOUR) < 17) {
+ } else if (gettime(GETTIME_HOUR) >= 14 && gettime(GETTIME_HOUR) < 17) {
mes "^3131FFOnly the restaurant";
mes "employees are around,";
mes "and they busy chatting";
mes "amongst each other.^000000";
- }
- else if (gettime(HOUR) >= 17 && gettime(HOUR) < 22) {
+ } else if (gettime(GETTIME_HOUR) >= 17 && gettime(GETTIME_HOUR) < 22) {
mes "^3131FFThe restaurant is filled";
mes "with customers, and the";
mes "hustle and bustle of the";
@@ -770,7 +760,7 @@ lou_in02,50,185,5 script Pot#1 HIDDEN_NPC,{
mes "^3131FFHowever, it's empty.^000000";
close;
}
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 22) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 22) {
mes "[Chef]";
mes "Ah...!";
mes "Please, do not";
@@ -792,16 +782,14 @@ lou_in02,49,185,5 script Pot#2 HIDDEN_NPC,{
mes "^3131FFYou take a careful look around.";
mes "It wouldn't be wise to steal this now if anyone is watching.^000000";
next;
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 14) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 14) {
mes "^3131FFThe restaurant doesn't seem busy right now, so there's only a few employees and customers.^000000";
- }
- else if (gettime(HOUR) >= 14 && gettime(HOUR) < 17) {
+ } else if (gettime(GETTIME_HOUR) >= 14 && gettime(GETTIME_HOUR) < 17) {
mes "^3131FFOnly the restaurant";
mes "employees are around,";
mes "and they busy chatting";
mes "amongst each other.^000000";
- }
- else if (gettime(HOUR) >= 17 && gettime(HOUR) < 22) {
+ } else if (gettime(GETTIME_HOUR) >= 17 && gettime(GETTIME_HOUR) < 22) {
mes "^3131FFThe restaurant is filled";
mes "with customers, and the";
mes "hustle and bustle of the";
@@ -842,7 +830,7 @@ lou_in02,49,185,5 script Pot#2 HIDDEN_NPC,{
mes "an empty pot.^000000";
close;
}
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 22) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 22) {
mes "[Chef]";
mes "Ah...!";
mes "Please, do not";
@@ -894,7 +882,7 @@ lou_in02,58,183,5 script Chef Assistant#lou1 4_M_CHNMONK,5,5,{
OnTouch:
if (ch_tre == 2 || ch_tre == 3) {
- if (gettime(HOUR) >= 10 && gettime(HOUR) < 14) {
+ if (gettime(GETTIME_HOUR) >= 10 && gettime(GETTIME_HOUR) < 14) {
if (rand(1,10) < 9) {
mes "[Jin Wei Ling]";
mes "Wait! Who are you!";
@@ -907,8 +895,7 @@ OnTouch:
ch_tre = 1;
close;
}
- }
- else if (gettime(HOUR) >= 14 && gettime(HOUR) < 17) {
+ } else if (gettime(GETTIME_HOUR) >= 14 && gettime(GETTIME_HOUR) < 17) {
if (rand(1,10) < 10) {
mes "[Jin Wei Ling]";
mes "Wait! Who are you!";
@@ -921,8 +908,7 @@ OnTouch:
ch_tre = 1;
close;
}
- }
- else if (gettime(HOUR) >= 17 && gettime(HOUR) < 22) {
+ } else if (gettime(GETTIME_HOUR) >= 17 && gettime(GETTIME_HOUR) < 22) {
if (rand(1,10) < 6) {
mes "[Jin Wei Ling]";
mes "Wait! Who are you!";
diff --git a/npc/quests/quests_moscovia.txt b/npc/quests/quests_moscovia.txt
index caedd20b6..2ae62a0ae 100644
--- a/npc/quests/quests_moscovia.txt
+++ b/npc/quests/quests_moscovia.txt
@@ -752,7 +752,10 @@ moscovia,135,49,5 script Mr. Ibanoff#npc 4_M_RUSBALD,{
mos_whale_edq = 19;
close;
}
- if ((gettime(HOUR) >= 0 && gettime(HOUR) < 3) || (gettime(HOUR) >= 6 && gettime(HOUR) < 9) || (gettime(HOUR) >= 12 && gettime(HOUR) < 15) || (gettime(HOUR) >= 18 && gettime(HOUR) < 21)) {
+ if ((gettime(GETTIME_HOUR) >= 0 && gettime(GETTIME_HOUR) < 3)
+ || (gettime(GETTIME_HOUR) >= 6 && gettime(GETTIME_HOUR) < 9)
+ || (gettime(GETTIME_HOUR) >= 12 && gettime(GETTIME_HOUR) < 15)
+ || (gettime(GETTIME_HOUR) >= 18 && gettime(GETTIME_HOUR) < 21)) {
mes "[Mr. Ibanoff]";
mes "Hmm. It's not a bad time.";
mes "We should hurry up";
@@ -8676,7 +8679,7 @@ OnTouch:
end;
}
if (rhea_rus_hair == 2) {
- if (gettime(HOUR)>=23 || gettime(HOUR)<=5) {
+ if (gettime(GETTIME_HOUR) >= 23 || gettime(GETTIME_HOUR) <= 5) {
mes "- Splash !! -";
next;
if (countitem(523) > 0) {
@@ -8701,7 +8704,7 @@ OnTouch:
mes "And please, tell him to stop suffering and to be happy. This is my request.";
close;
} else if (rhea_rus_hair == 7) {
- if (gettime(HOUR)>=23 || gettime(HOUR)<=5) {
+ if (gettime(GETTIME_HOUR) >= 23 || gettime(GETTIME_HOUR) <= 5) {
mes "- Splash !! -";
next;
if (countitem(523) > 0) {
@@ -9520,11 +9523,13 @@ mosk_fild02,243,270,0 script Marozka#rus31 4_M_LGTGRAND,{
mes "[Marozka]";
mes "I will begin making it now... let me see... Could you please come back to me in an hour?";
rhea_rus_quiz = 4;
- rus_time01 = gettime(HOUR);
- rus_time02 = gettime(WEEKDAY);
+ rus_time01 = gettime(GETTIME_HOUR);
+ rus_time02 = gettime(GETTIME_WEEKDAY);
close;
} else if (rhea_rus_quiz == 4) {
- if (rus_time01 < gettime(HOUR) || rus_time02 < gettime(WEEKDAY) || (rus_time02 == 6 && gettime(WEEKDAY) == SUNDAY)) {
+ if (rus_time01 < gettime(GETTIME_HOUR)
+ || rus_time02 < gettime(GETTIME_WEEKDAY)
+ || (rus_time02 == SATURDAY && gettime(GETTIME_WEEKDAY) == SUNDAY)) {
mes "[Marozka]";
mes "Ah, just in time.";
mes "I have finally finished making the 'Golden Thread'. Just wait one more second and it'll be ready.";
diff --git a/npc/quests/quests_umbala.txt b/npc/quests/quests_umbala.txt
index 7010ba494..3bcbb7e1d 100644
--- a/npc/quests/quests_umbala.txt
+++ b/npc/quests/quests_umbala.txt
@@ -1126,7 +1126,7 @@ um_in,101,73,3 script Wainatan 4_F_UMWOMAN,{
close;
}
if (um_wind == 1) {
- if (gettime(HOUR) > 18) {
+ if (gettime(GETTIME_HOUR) > 18) {
um_wind = 2;
emotion e_an;
mes "[Wainatan]";
@@ -1170,7 +1170,7 @@ um_in,94,123,5 script Bertztan 4_F_UMWOMAN,{
close;
}
if (um_wind == 2) {
- if (gettime(HOUR) > 18) {
+ if (gettime(GETTIME_HOUR) > 18) {
um_wind = 3;
emotion e_an;
mes "[Bertztan]";
@@ -1222,7 +1222,7 @@ umbala,145,217,3 script Chabimatan 4_F_UMWOMAN,{
close;
}
if (um_wind == 3) {
- if (gettime(HOUR) > 18) {
+ if (gettime(GETTIME_HOUR) > 18) {
um_wind = 4;
emotion e_an;
mes "[Chabimatan]";
diff --git a/npc/quests/the_sign_quest.txt b/npc/quests/the_sign_quest.txt
index 48872392e..5ce92aa0e 100644
--- a/npc/quests/the_sign_quest.txt
+++ b/npc/quests/the_sign_quest.txt
@@ -553,7 +553,7 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
mes "this and come back later~";
delitem 7314,1; //The_Sign
sign_q = 138;
- .@stime_s = gettime(HOUR);
+ .@stime_s = gettime(GETTIME_HOUR);
if (.@stime_s < 1) sign_sq = 1;
else if (.@stime_s < 3) sign_sq = 2;
else if (.@stime_s < 5) sign_sq = 3;
@@ -568,7 +568,7 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
else sign_sq = 12;
}
else if (sign_q == 138) {
- .@stime_s1 = gettime(HOUR);
+ .@stime_s1 = gettime(GETTIME_HOUR);
if (.@stime_s1 < 1) {
if (sign_sq == 11) {
.@pass_s = 1;
@@ -2567,7 +2567,7 @@ aldeba_in,139,103,5 script Monograph#sign HIDDEN_NPC,{
aldeba_in,155,101,3 script Sir Jore#sign 1_M_SIGNALCHE,7,7,{
callfunc "F_UpdateSignVars";
- if ((gettime(HOUR) > 16) && (gettime(HOUR) < 22)) {
+ if (gettime(GETTIME_HOUR) > 16 && gettime(GETTIME_HOUR) < 22) {
if (sign_q == 15) {
mes "["+ strcharinfo(0) +"]";
mes "Excuse me...";
@@ -2857,8 +2857,7 @@ aldeba_in,155,101,3 script Sir Jore#sign 1_M_SIGNALCHE,7,7,{
mes "What's the answer?!";
close;
}
- }
- else if ((gettime(HOUR) > 6) && (gettime(HOUR) < 17)) {
+ } else if (gettime(GETTIME_HOUR) > 6 && gettime(GETTIME_HOUR) < 17) {
mes "^3355FFYou find a tense man";
mes "holding test tubes between";
mes "his fingers, standing in a pile";
@@ -2938,7 +2937,7 @@ OnTouch:
aldeba_in,156,118,4 script Piru Piru#sign 8_F,{
callfunc "F_UpdateSignVars";
mes "[Piru Piru]";
- if ((gettime(HOUR) >= 12) && (gettime(HOUR) <= 24)) { //235959
+ if (gettime(GETTIME_HOUR) >= 12 && gettime(GETTIME_HOUR) <= 24) { //235959
if (sign_q == 17) {
emotion e_sob;
mes "Oh, I'm sooo tired~";
@@ -3018,7 +3017,7 @@ aldeba_in,156,118,4 script Piru Piru#sign 8_F,{
close;
}
}
- else if ((gettime(HOUR) >= 6) && (gettime(HOUR) < 12)) {
+ else if (gettime(GETTIME_HOUR) >= 6 && gettime(GETTIME_HOUR) < 12) {
mes "Everyday we study and";
mes "take notes and test and";
mes "experiment and record";
@@ -4533,7 +4532,7 @@ cmd_in02,88,51,4 script Strange Guy#sign 1_M_SIGNART,{
}
}
else if (sign_q == 27) {
- if ((gettime(HOUR) > 18) && (gettime(HOUR) < 23)) {
+ if (gettime(GETTIME_HOUR) > 18 && gettime(GETTIME_HOUR) < 23) {
mes "Nice, you're here";
mes "just in time. Well,";
mes "all that matters is that";
@@ -7550,7 +7549,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
mes "But I'll do my best for you.";
delitem 7314,1; //The_Sign
sign_q = 140;
- .@stime_e = gettime(HOUR);
+ .@stime_e = gettime(GETTIME_HOUR);
if (.@stime_e < 2) sign_sq = 1;
else if (.@stime_e < 4) sign_sq = 2;
else if (.@stime_e < 6) sign_sq = 3;
@@ -7566,7 +7565,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
close;
}
else if (sign_q == 140) {
- .@stime_e1 = gettime(HOUR);
+ .@stime_e1 = gettime(GETTIME_HOUR);
if (.@stime_e1 < 2) {
if (sign_sq == 11) {
.@pass_s1 = 1;
diff --git a/npc/re/jobs/novice/academy.txt b/npc/re/jobs/novice/academy.txt
index f9449f398..a7fb905e8 100644
--- a/npc/re/jobs/novice/academy.txt
+++ b/npc/re/jobs/novice/academy.txt
@@ -12849,7 +12849,7 @@ izlude_d,153,126,1 duplicate(Refinery Owner Han#iz) Refinery Owner Han#iz_d 4_M_
}
if (countitem(.@material) > 0 && Zeny >= .@price) {
delitem .@material, 1;
- Zeny -= .@material;
+ Zeny -= .@price;
} else {
mes "[Refining Machine Wagjak]";
mes "^FF0000- error number 8282 -^000000";
diff --git a/npc/re/merchants/shops.txt b/npc/re/merchants/shops.txt
index c90f89a5a..220d76476 100644
--- a/npc/re/merchants/shops.txt
+++ b/npc/re/merchants/shops.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Hercules Dev Team
//===== Current Version: =====================================
-//= 1.7
+//= 1.9
//===== Description: =========================================
//= Renewal-specific town shop NPCs.
//===== Additional Comments: =================================
@@ -15,113 +15,445 @@
//= 1.5 Added Dewata merchants. [Lemongrass]
//= 1.6 Added Mora and Port Malaya merchants.
//= 1.7 Added Izlude duplicates. [Euphy]
+//= 1.8 Converted to trader format. [Frost]
+//= 1.9 Change the item sequence of Black Marketeer according to kRO. [Frost]
//============================================================
//=======================================================
// Comodo
//=======================================================
-comodo,106,213,5 shop Tropic Fruit Dealer 4_F_07,6258:-1
-comodo,196,162,3 shop Harive#candy 4_M_MINSTREL,11513:-1,6144:-1
+comodo,106,213,5 trader Tropic Fruit Dealer 4_F_07,{
+OnInit:
+ sellitem Comodo_Tropic_Fruit;
+}
+
+comodo,196,162,3 trader Harive#candy 4_M_MINSTREL,{
+OnInit:
+ sellitem Protect_Neck_Candy;
+ sellitem Heartbroken_Tears;
+}
//=======================================================
// Dewata
//=======================================================
-dewata,218,164,4 shop Weapon Dealer 4_M_DEWMAN,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1
-dewata,182,164,6 shop Tool Dealer 4_M_DEWMAN,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,2239:-1,713:-1
-dewata,145,267,6 shop Fruit Gardener 4_M_DEWOLDWOMAN,512:-1,513:-1,515:-1,516:-1,535:-1
-dewata,158,182,6 shop Armor Dealer 4_M_DEWMAN,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2328:-1,2627:-1
+dewata,218,164,4 trader Weapon Dealer 4_M_DEWMAN,{
+OnInit:
+ sellitem Main_Gauche;
+ sellitem Stiletto;
+ sellitem Blade;
+ sellitem Ring_Pommel_Saber;
+ sellitem Katana;
+ sellitem Bastard_Sword;
+ sellitem Pike;
+ sellitem Partizan;
+ sellitem Hammer;
+ sellitem Chain;
+}
+
+dewata,182,164,6 trader Tool Dealer 4_M_DEWMAN,{
+OnInit:
+ sellitem Spectacles;
+ sellitem Arrow;
+ sellitem Red_Potion;
+ sellitem Orange_Potion;
+ sellitem Yellow_Potion;
+ sellitem White_Potion;
+ sellitem Center_Potion;
+ sellitem Awakening_Potion;
+ sellitem Wing_Of_Fly;
+ sellitem Wing_Of_Butterfly;
+ sellitem Booby_Trap;
+ sellitem One_Eyed_Glass;
+ sellitem Empty_Bottle;
+}
+
+dewata,145,267,6 trader Fruit Gardener 4_M_DEWOLDWOMAN,{
+OnInit:
+ sellitem Apple;
+ sellitem Banana;
+ sellitem Carrot;
+ sellitem Sweet_Potato;
+ sellitem Pumpkin;
+}
+
+dewata,158,182,6 trader Armor Dealer 4_M_DEWMAN,{
+OnInit:
+ sellitem Bandana;
+ sellitem Sandals;
+ sellitem Shoes;
+ sellitem Hood;
+ sellitem Muffler;
+ sellitem Guard;
+ sellitem Buckler;
+ sellitem Adventure_Suit;
+ sellitem Silk_Robe;
+ sellitem Silver_Robe;
+ sellitem Wooden_Mail;
+ sellitem Belt;
+}
//=======================================================
// Einbroch
//=======================================================
-einbroch,122,250,4 shop Black Marketeer#ein 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
+einbroch,122,250,4 trader Black Marketeer#ein 1_M_03,{
+OnInit:
+ sellitem Flame_Thrower;
+ sellitem Accelerator;
+ sellitem Hovering_Booster;
+ sellitem Suicidal_Device;
+ sellitem Shape_Shifter;
+ sellitem Cooling_Device;
+ sellitem Mag_Field_Generator;
+ sellitem Barrier_Builder;
+ sellitem Repair_Kit;
+ sellitem Cannon_Ball;
+ sellitem Holy_Cannon_Ball;
+ sellitem Dark_Cannon_Ball;
+ sellitem Soul_Cannon_Ball;
+ sellitem Iron_Cannon_Ball;
+ sellitem Vulcan_Bullet;
+ sellitem Magic_Gear_Fuel;
+ sellitem Liquid_Condensed_Bullet;
+ sellitem Monkey_Wrench;
+ sellitem Camouflage_Generator;
+ sellitem RepairA;
+ sellitem RepairB;
+ sellitem RepairC;
+}
//=======================================================
// El Dicastes
//=======================================================
-dic_in01,238,107,5 shop Peddler#dic 4_M_HUMERCHANT,601:-1,602:-1,611:-1,610:-1
-dicastes01,207,200,6 shop Points Merchant#dic 1_F_01,6360:-1,6361:-1,6362:-1,6363:-1
+dic_in01,238,107,5 trader Peddler#dic 4_M_HUMERCHANT,{
+OnInit:
+ sellitem Wing_Of_Fly;
+ sellitem Wing_Of_Butterfly;
+ sellitem Spectacles;
+ sellitem Leaf_Of_Yggdrasil;
+}
+
+dicastes01,207,200,6 trader Points Merchant#dic 1_F_01,{
+OnInit:
+ sellitem Scarlet_Pts;
+ sellitem Indigo_Pts;
+ sellitem Yellow_Wish_Pts;
+ sellitem Lime_Green_Pts;
+}
//=======================================================
// Izlude
//=======================================================
-izlude,124,165,4 shop Fruit Gardener#iz 1_M_INNKEEPER,512:-1,513:-1,515:-1,516:-1
+izlude,124,165,4 trader Fruit Gardener#iz 1_M_INNKEEPER,{
+OnInit:
+ sellitem Apple;
+ sellitem Banana;
+ sellitem Carrot;
+ sellitem Sweet_Potato;
+}
+
izlude_a,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_a 1_M_INNKEEPER
izlude_b,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_b 1_M_INNKEEPER
izlude_c,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_c 1_M_INNKEEPER
izlude_d,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_d 1_M_INNKEEPER
-izlude,160,186,0 shop Butcher#iz 1_M_JOBGUIDER,517:-1
+
+izlude,160,186,0 trader Butcher#iz 1_M_JOBGUIDER,{
+OnInit:
+ sellitem Meat;
+}
+
izlude_a,160,186,0 duplicate(Butcher#iz) Butcher#iz_a 1_M_JOBGUIDER
izlude_b,160,186,0 duplicate(Butcher#iz) Butcher#iz_b 1_M_JOBGUIDER
izlude_c,160,186,0 duplicate(Butcher#iz) Butcher#iz_c 1_M_JOBGUIDER
izlude_d,160,186,0 duplicate(Butcher#iz) Butcher#iz_d 1_M_JOBGUIDER
-izlude,128,158,7 shop Vendor from Milk Ranch#i 4_F_01,519:-1
+
+izlude,128,158,7 trader Vendor from Milk Ranch#i 4_F_01,{
+OnInit:
+ sellitem Milk;
+}
+
izlude_a,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#a 4_F_01
izlude_b,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#b 4_F_01
izlude_c,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#c 4_F_01
izlude_d,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#d 4_F_01
-izlude_in,72,98,3 shop Pet Groomer#iz 4_F_TELEPORTER,537:-1,643:-1,10013:-1,10014:-1,554:-1,6113:-1,6114:-1,6115:-1
-izlude_in,57,110,0 shop Tool Dealer#iz 1_M_01,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,1750:-1
-izlude_in,72,102,3 shop Trading Merchant#iz 4_M_HUMERCHANT,13200:-1,13201:-1,13202:-1,13150:-1,13102:-1,13151:-1,13154:-1,13155:-1,13163:-1,13165:-1,13168:-1
+
+izlude_in,72,98,3 trader Pet Groomer#iz 4_F_TELEPORTER,{
+OnInit:
+ sellitem Pet_Food;
+ sellitem Pet_Incubator;
+ sellitem Backpack;
+ sellitem Rocker_Glasses;
+ sellitem Mojji;
+ sellitem Vital_Flower_;
+ sellitem Flame_Gemstone;
+ sellitem Bun_;
+}
+
+izlude_in,57,110,0 trader Tool Dealer#iz 1_M_01,{
+OnInit:
+ sellitem Spectacles;
+ sellitem Red_Potion;
+ sellitem Orange_Potion;
+ sellitem Yellow_Potion;
+ sellitem White_Potion;
+ sellitem Green_Potion;
+ sellitem Center_Potion;
+ sellitem Awakening_Potion;
+ sellitem Wing_Of_Fly;
+ sellitem Wing_Of_Butterfly;
+ sellitem Booby_Trap;
+ sellitem Arrow;
+}
+
+izlude_in,72,102,3 trader Trading Merchant#iz 4_M_HUMERCHANT,{
+OnInit:
+ sellitem Bullet;
+ sellitem Silver_Bullet;
+ sellitem Shell_Of_Blood;
+ sellitem Branch;
+ sellitem Crimson_Bolt;
+ sellitem The_Cyclone;
+ sellitem Rolling_Stone;
+ sellitem Black_Rose;
+ sellitem Long_Barrel;
+ sellitem Jungle_Carbine;
+ sellitem Thunder_P;
+}
//=======================================================
// Juno
//=======================================================
-s_atelier,114,117,1 shop Part-Timer#sc_yuno 4_F_03,6123:-1,6120:-1
+s_atelier,114,117,1 trader Part-Timer#sc_yuno 4_F_03,{
+OnInit:
+ sellitem Surface_Paint;
+ sellitem Face_Paint;
+}
//=======================================================
// Lighthalzen
//=======================================================
-lighthalzen,337,240,4 shop Trap Specialist#lhz 1_F_01,7940:-1,12341:-1
-lhz_in03,181,17,4 shop Black Marketeer#lhz 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
-s_atelier,15,65,5 shop Part-Timer#sc_lgt 4_M_ORIENT02,6123:-1,6120:-1
+lighthalzen,337,240,4 trader Trap Specialist#lhz 1_F_01,{
+OnInit:
+ sellitem Special_Alloy_Trap;
+ sellitem Special_Alloy_Trap_Box;
+}
+
+lhz_in03,181,17,4 trader Black Marketeer#lhz 1_M_03,{
+OnInit:
+ sellitem Flame_Thrower;
+ sellitem Accelerator;
+ sellitem Hovering_Booster;
+ sellitem Suicidal_Device;
+ sellitem Shape_Shifter;
+ sellitem Cooling_Device;
+ sellitem Mag_Field_Generator;
+ sellitem Barrier_Builder;
+ sellitem Repair_Kit;
+ sellitem Cannon_Ball;
+ sellitem Holy_Cannon_Ball;
+ sellitem Dark_Cannon_Ball;
+ sellitem Soul_Cannon_Ball;
+ sellitem Iron_Cannon_Ball;
+ sellitem Vulcan_Bullet;
+ sellitem Magic_Gear_Fuel;
+ sellitem Liquid_Condensed_Bullet;
+ sellitem Monkey_Wrench;
+ sellitem Camouflage_Generator;
+ sellitem RepairA;
+ sellitem RepairB;
+ sellitem RepairC;
+}
+
+s_atelier,15,65,5 trader Part-Timer#sc_lgt 4_M_ORIENT02,{
+OnInit:
+ sellitem Surface_Paint;
+ sellitem Face_Paint;
+}
//=======================================================
// Malangdo
//=======================================================
-malangdo,232,163,5 shop Tool Dealer Myo 4_CAT_ADV2,611:-1,1750:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,713:-1
+malangdo,232,163,5 trader Tool Dealer Myo 4_CAT_ADV2,{
+OnInit:
+ sellitem Spectacles;
+ sellitem Arrow;
+ sellitem Center_Potion;
+ sellitem Awakening_Potion;
+ sellitem Wing_Of_Fly;
+ sellitem Wing_Of_Butterfly;
+ sellitem Booby_Trap;
+ sellitem Empty_Bottle;
+}
//=======================================================
// Mora
//=======================================================
-mora,100,118,4 shop Tool Dealer#mora 4_M_RAFLE_OLD,11522:-1,11523:-1,11524:-1,602:-1,601:-1,611:-1,1773:-1,1774:-1
-mora,138,110,4 shop Mora Chef 4_F_RAFLE_PK,11519:-1
+mora,100,118,4 trader Tool Dealer#mora 4_M_RAFLE_OLD,{
+OnInit:
+ sellitem Red_Raffle_Sap;
+ sellitem Yellow_Raffle_Sap;
+ sellitem White_Raffle_Sap;
+ sellitem Wing_Of_Butterfly;
+ sellitem Wing_Of_Fly;
+ sellitem Spectacles;
+ sellitem Arrow_Of_Elf;
+ sellitem Hunting_Arrow;
+}
+
+mora,138,110,4 trader Mora Chef 4_F_RAFLE_PK,{
+OnInit:
+ sellitem Beef_Toast;
+}
//=======================================================
// Mid Camp
//=======================================================
-mid_camp,129,284,4 shop Trap Specialist#mid 1_F_01,7940:-1,12341:-1
-mid_camp,184,263,4 shop Black Marketeer#mid 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
+mid_camp,129,284,4 trader Trap Specialist#mid 1_F_01,{
+OnInit:
+ sellitem Special_Alloy_Trap;
+ sellitem Special_Alloy_Trap_Box;
+}
+
+mid_camp,184,263,4 trader Black Marketeer#mid 1_M_03,{
+OnInit:
+ sellitem Flame_Thrower;
+ sellitem Accelerator;
+ sellitem Hovering_Booster;
+ sellitem Suicidal_Device;
+ sellitem Shape_Shifter;
+ sellitem Cooling_Device;
+ sellitem Mag_Field_Generator;
+ sellitem Barrier_Builder;
+ sellitem Repair_Kit;
+ sellitem Cannon_Ball;
+ sellitem Holy_Cannon_Ball;
+ sellitem Dark_Cannon_Ball;
+ sellitem Soul_Cannon_Ball;
+ sellitem Iron_Cannon_Ball;
+ sellitem Vulcan_Bullet;
+ sellitem Magic_Gear_Fuel;
+ sellitem Liquid_Condensed_Bullet;
+ sellitem Monkey_Wrench;
+ sellitem Camouflage_Generator;
+ sellitem RepairA;
+ sellitem RepairB;
+ sellitem RepairC;
+}
//=======================================================
// Payon
//=======================================================
-payon,123,109,4 shop Trap Specialist#pay 1_F_01,7940:-1,12341:-1
+payon,123,109,4 trader Trap Specialist#pay 1_F_01,{
+OnInit:
+ sellitem Special_Alloy_Trap;
+ sellitem Special_Alloy_Trap_Box;
+}
//=======================================================
// Port Malaya
//=======================================================
-ma_in01,73,22,3 shop Weapon Dealer#ma 4_M_DEWMAN,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1
-ma_in01,22,23,3 shop Tool Dealer#ma 4_M_DEWMAN,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,2239:-1
-malaya,150,261,3 shop Fruit Gardener#ma 4_M_DEWOLDWOMAN,512:-1,513:-1,515:-1,516:-1,535:-1
-ma_in01,67,13,5 shop Armor Dealer#ma 4_M_DEWMAN,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2328:-1,2627:-1
+ma_in01,73,22,3 trader Weapon Dealer#ma 4_M_DEWMAN,{
+OnInit:
+ sellitem Main_Gauche;
+ sellitem Stiletto;
+ sellitem Blade;
+ sellitem Ring_Pommel_Saber;
+ sellitem Katana;
+ sellitem Bastard_Sword;
+ sellitem Pike;
+ sellitem Partizan;
+ sellitem Hammer;
+ sellitem Chain;
+}
+
+ma_in01,22,23,3 trader Tool Dealer#ma 4_M_DEWMAN,{
+OnInit:
+ sellitem Spectacles;
+ sellitem Arrow;
+ sellitem Red_Potion;
+ sellitem Orange_Potion;
+ sellitem Yellow_Potion;
+ sellitem White_Potion;
+ sellitem Center_Potion;
+ sellitem Awakening_Potion;
+ sellitem Wing_Of_Fly;
+ sellitem Wing_Of_Butterfly;
+ sellitem Booby_Trap;
+ sellitem One_Eyed_Glass;
+}
+
+malaya,150,261,3 trader Fruit Gardener#ma 4_M_DEWOLDWOMAN,{
+OnInit:
+ sellitem Apple;
+ sellitem Banana;
+ sellitem Carrot;
+ sellitem Sweet_Potato;
+ sellitem Pumpkin;
+}
+
+ma_in01,67,13,5 trader Armor Dealer#ma 4_M_DEWMAN,{
+OnInit:
+ sellitem Bandana;
+ sellitem Sandals;
+ sellitem Shoes;
+ sellitem Hood;
+ sellitem Muffler;
+ sellitem Guard;
+ sellitem Buckler;
+ sellitem Adventure_Suit;
+ sellitem Silk_Robe;
+ sellitem Silver_Robe;
+ sellitem Wooden_Mail;
+ sellitem Belt;
+}
//=======================================================
// Prontera
//=======================================================
-//prontera,104,88,5 shop Stuff Gimme 4_M_MASKMAN,616:-1
-prt_in,109,68,4 shop Trap Specialist#prt 1_F_01,7940:-1,12341:-1
-prt_in,175,137,4 shop Black Marketeer#prt 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
-s_atelier,17,110,1 shop Part-Timer#sc_prt 1_F_02,6123:-1,6120:-1
+/*
+prontera,104,88,5 trader Stuff Gimme 4_M_MASKMAN,{
+OnInit:
+ sellitem Old_Card_Album;
+}
+*/
-//=======================================================
-// Rachel
-//=======================================================
-ra_in01,263,281,4 shop Trap Specialist#ra 1_F_01,7940:-1,12341:-1
-ra_in01,257,266,4 shop Black Marketeer#ra 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
-s_atelier,137,60,3 shop Part-Timer#sc_ra 1_F_GYPSY,6123:-1,6120:-1
+prt_in,109,68,4 trader Trap Specialist#prt 1_F_01,{
+OnInit:
+ sellitem Special_Alloy_Trap;
+ sellitem Special_Alloy_Trap_Box;
+}
+
+prt_in,175,137,4 trader Black Marketeer#prt 1_M_03,{
+OnInit:
+ sellitem Flame_Thrower;
+ sellitem Accelerator;
+ sellitem Hovering_Booster;
+ sellitem Suicidal_Device;
+ sellitem Shape_Shifter;
+ sellitem Cooling_Device;
+ sellitem Mag_Field_Generator;
+ sellitem Barrier_Builder;
+ sellitem Repair_Kit;
+ sellitem Cannon_Ball;
+ sellitem Holy_Cannon_Ball;
+ sellitem Dark_Cannon_Ball;
+ sellitem Soul_Cannon_Ball;
+ sellitem Iron_Cannon_Ball;
+ sellitem Vulcan_Bullet;
+ sellitem Magic_Gear_Fuel;
+ sellitem Liquid_Condensed_Bullet;
+ sellitem Monkey_Wrench;
+ sellitem Camouflage_Generator;
+ sellitem RepairA;
+ sellitem RepairB;
+ sellitem RepairC;
+}
+
+s_atelier,17,110,1 trader Part-Timer#sc_prt 1_F_02,{
+OnInit:
+ sellitem Surface_Paint;
+ sellitem Face_Paint;
+}
-// Ninja Shops
prontera,178,244,3 trader Amatsu Trader#nin 4_M_01,{
OnInit:
sellitem Shuriken;
@@ -129,6 +461,7 @@ OnInit:
sellitem Flash_Shuriken;
sellitem Sharp_Leaf_Shuriken;
sellitem Thorn_Needle_Shuriken;
+ sellitem Explosive_Kunai;
sellitem Makibishi;
sellitem Arm_Guard;
sellitem Fox_Armguard;
@@ -136,8 +469,50 @@ OnInit:
sellitem Flame_Stone;
sellitem Ice_Stone;
sellitem Wind_Stone;
+ sellitem Shadow_Orb;
sellitem Charm_Fire;
sellitem Charm_Ice;
sellitem Charm_Wind;
sellitem Charm_Earth;
}
+
+//=======================================================
+// Rachel
+//=======================================================
+ra_in01,263,281,4 trader Trap Specialist#ra 1_F_01,{
+OnInit:
+ sellitem Special_Alloy_Trap;
+ sellitem Special_Alloy_Trap_Box;
+}
+
+ra_in01,257,266,4 trader Black Marketeer#ra 1_M_03,{
+OnInit:
+ sellitem Flame_Thrower;
+ sellitem Accelerator;
+ sellitem Hovering_Booster;
+ sellitem Suicidal_Device;
+ sellitem Shape_Shifter;
+ sellitem Cooling_Device;
+ sellitem Mag_Field_Generator;
+ sellitem Barrier_Builder;
+ sellitem Repair_Kit;
+ sellitem Cannon_Ball;
+ sellitem Holy_Cannon_Ball;
+ sellitem Dark_Cannon_Ball;
+ sellitem Soul_Cannon_Ball;
+ sellitem Iron_Cannon_Ball;
+ sellitem Vulcan_Bullet;
+ sellitem Magic_Gear_Fuel;
+ sellitem Liquid_Condensed_Bullet;
+ sellitem Monkey_Wrench;
+ sellitem Camouflage_Generator;
+ sellitem RepairA;
+ sellitem RepairB;
+ sellitem RepairC;
+}
+
+s_atelier,137,60,3 trader Part-Timer#sc_ra 1_F_GYPSY,{
+OnInit:
+ sellitem Surface_Paint;
+ sellitem Face_Paint;
+}
diff --git a/npc/re/quests/eden/eden_iro.txt b/npc/re/quests/eden/eden_iro.txt
index 4f65498ea..45dc608ac 100644
--- a/npc/re/quests/eden/eden_iro.txt
+++ b/npc/re/quests/eden/eden_iro.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= -SkittleNugget-
//===== Current Version: =====================================
-//= 1.2
+//= 1.3
//===== Description: =========================================
//= Eden scripts custom to iRO (disabled by default).
//= You may need iRO's data.grf to view some of the items.
@@ -11,6 +11,7 @@
//= 1.0 First version.
//= 1.1 Edited and added more NPCs, lots of placeholders. [Euphy]
//= 1.2 Added Mail Annex Station scripts, commented out. [Euphy]
+//= 1.3 Converted Kafra Cash Shop NPC's and Mail Annex Tool Dealer to trader format. [Frost]
//============================================================
// Acolyte Warper (part of other/acolyte_warp.txt)
@@ -603,7 +604,6 @@ L_Exchange:
return;
}
-
// Kafra Stacker
//============================================================
moc_para01,41,169,2 script Kafra Stacker#eden 4_M_ALCHE_B,{
@@ -674,12 +674,132 @@ moc_para01,38,162,2 script Code the Redeemer#Give1 4_M_YOUNGKNIGHT,{
//============================================================
/* Due to the irregularity of iRO's databases, some of these sprites may not display properly. */
-moc_para01,32,171,6 cashshop Kafra Headgears#eden1 4_F_KAFRA3,14024:500,14098:150,17081:300,14097:500,14094:1000,14017:400,14099:300
-moc_para01,35,174,2 cashshop Kafra Dye Shop#dyes2 4_F_KAFRA4,6287:150
-moc_para01,37,170,2 cashshop Kafra Consumables#eden3 4_F_KAFRA6,13810:5,14167:400,16556:100,14111:75,14075:25,16419:30,14107:70,14104:50,14112:25,14082:30,14091:60,14088:30,14085:60,14169:40,14170:40,14172:40,14173:40,14171:40,14174:40,14159:100,14160:100,14161:100,14162:100,14163:100:14164:100,16420:1500
-moc_para01,32,174,2 cashshop Kafra Rental Items#eden 4_F_KAFRA7,16683:150,16682:50,14126:250,14125:250,16430:250,14137:250,14127:250,14118:250,14119:250,14132:250,16425:250,14124:250,14133:250,14130:250,16424:250,14136:250,14122:250,16426:250,14135:250,14134:250,14138:250,16428:250,16431:250,14139:250,14131:250,16429:250,16427:250
-moc_para01,37,172,2 cashshop Kafra Costume#eden5 4_F_KAFRA8,16974:300,16972:600,16973:150,16975:150,16977:150,17014:150,17015:150
-moc_para01,35,168,1 cashshop Kafra Utility Shop#eden 4_F_KAFRA5,16677:25,13990:400,16396:100,16394:100,17106:500,6241:10,6240:10,6225:15,6226:15,14002:5,6294:500,7776:50,7619:30,7620:30,12208:40,14156:400,12210:40,14158:400,14042:50,14044:50,14046:50,14048:50,14114:50,14166:40,16418:500,16381:400,14165:100,14157:100,14178:100
+moc_para01,32,171,6 trader Kafra Headgears#eden1 4_F_KAFRA3,{
+OnInit:
+ tradertype(NST_CASH);
+ sellitem F_Robo_Eye_Box,500;
+ sellitem F_Pecopeco_Hairband_Box,150;
+ sellitem Yggdrasil_Crown_Box,300;
+ sellitem F_Chick_Hat_Box,500;
+ sellitem F_Flying_Angel_Box,1000;
+ sellitem F_All_In_One_Ring_Box,400;
+ sellitem F_Red_Glasses_Box,300;
+}
+
+moc_para01,35,174,2 trader Kafra Dye Shop#dyes2 4_F_KAFRA4,{
+OnInit:
+ tradertype(NST_CASH);
+ sellitem F_Clothing_Dye_Coupon,150;
+}
+
+moc_para01,37,170,2 trader Kafra Consumables#eden3 4_F_KAFRA6,{
+OnInit:
+ tradertype(NST_CASH);
+ sellitem Blue_Potion_Box,5;
+ sellitem F_Neuralizer_Box,400;
+ sellitem FPr_Reset_Stone_Box,100;
+ sellitem F_Abrasive_Box10,75;
+ sellitem F_G_O_I_Box10,25;
+ sellitem Greed_Scroll_Box_30,30;
+ sellitem F_M_Life_Potion_Box,70;
+ sellitem F_S_Life_Potion_Box,50;
+ sellitem F_Regeneration_Box5,25;
+ sellitem FS_Def_Potion_Box10,30;
+ sellitem FB_Mdef_Potion_Box10,60;
+ sellitem FS_Mdef_Potion_Box10,30;
+ sellitem FB_Def_Potion_Box10,60;
+ sellitem F_Blessing_10_Scroll_Box,40;
+ sellitem F_Inc_Agi_10_Scroll_Box,40;
+ sellitem F_Assumptio_5_Scroll_Box,40;
+ sellitem F_Wind_Walk_10_Scroll_Box,40;
+ sellitem F_Aspersio_5_Scroll_Box,40;
+ sellitem F_Adrenaline_Scroll_Box,40;
+ sellitem F_Str_Dish_Box,100;
+ sellitem F_Agi_Dish_Box,100;
+ sellitem F_Int_Dish_Box,100;
+ sellitem F_Dex_Dish_Box,100;
+ sellitem F_Luk_Dish_Box,100;
+ sellitem F_Vit_Dish_Box,100;
+ sellitem Adventurer_Pack,1500;
+}
+
+moc_para01,32,174,2 trader Kafra Rental Items#eden 4_F_KAFRA7,{
+OnInit:
+ tradertype(NST_CASH);
+ sellitem B_Halter_Box_30Days,150;
+ sellitem Boarding_Halter_Box,50;
+ sellitem F_Apple_Of_Archer_Box,250;
+ sellitem F_Asura_Box,250;
+ sellitem Rudra_Bow_Box,250;
+ sellitem F_Brooch_Box,250;
+ sellitem F_Bunny_Band_Box,250;
+ sellitem F_Combat_Knife_Box,250;
+ sellitem F_Counter_Dagger_Box,250;
+ sellitem F_Critical_Ring_Box,250;
+ sellitem Cutlus_Box,250;
+ sellitem F_Diary_Of_Great_Sage,250;
+ sellitem F_Earring_Box,250;
+ sellitem F_Elven_Ears_Box,250;
+ sellitem Executioner_Box_,250;
+ sellitem F_Glove_Box,250;
+ sellitem F_Right_Epsilon_Box,250;
+ sellitem Moonlight_Dagger_Box,250;
+ sellitem F_Necklace_Box,250;
+ sellitem F_Ring_Box,250;
+ sellitem F_Rosary_Box,250;
+ sellitem Solar_Sword_Box_,250;
+ sellitem Pole_Axe_Box_,250;
+ sellitem F_Safety_Ring_Box,250;
+ sellitem F_Steel_Flower_Box,250;
+ sellitem Tomahawk_Box_,250;
+ sellitem Wrench_Box,250;
+}
+
+moc_para01,37,172,2 trader Kafra Costume#eden5 4_F_KAFRA8,{
+OnInit:
+ tradertype(NST_CASH);
+ sellitem Comin_Actor_Box,300;
+ sellitem Weather_Report_Box,600;
+ sellitem Yellow_Hat_Box,150;
+ sellitem Singing_Bird_Box,150;
+ sellitem Red_Minicrown_Box,150;
+ sellitem Butterfly_ear_Box,150;
+ sellitem Stuckhead_Screw_Box,150;
+}
+
+moc_para01,35,168,1 trader Kafra Utility Shop#eden 4_F_KAFRA5,{
+OnInit:
+ tradertype(NST_CASH);
+ sellitem Universal_Catalog_Gold_Box10,25;
+ sellitem Job_Manual50_Box,400;
+ sellitem HD_Elu_Box10,100;
+ sellitem HD_Ori_Box10,100;
+ sellitem Max_Weight_Up_10Box,500;
+ sellitem HD_Elunium,10;
+ sellitem HD_Oridecon,10;
+ sellitem HD_Carnium,15;
+ sellitem HD_Bradium,15;
+ sellitem Adv_Siege_Supply_Box,5;
+ sellitem F_Marriage_Covenant,500;
+ sellitem Max_Weight_Up_Scroll,50;
+ sellitem Enriched_Elunium,30;
+ sellitem Enriched_Oridecon,30;
+ sellitem Battle_Manual,40;
+ sellitem F_Battle_Manual_Box,400;
+ sellitem Bubble_Gum,40;
+ sellitem F_Bubble_Gum_Box,400;
+ sellitem F_WOB_Rune_Box10,50;
+ sellitem F_WOB_Schwaltz_Box10,50;
+ sellitem F_WOB_Rachel_Box10,50;
+ sellitem F_WOB_Local_Box10,50;
+ sellitem F_Dun_Tele_Scroll_Box10,50;
+ sellitem F_Giant_Fly_Wing_Box,40;
+ sellitem Giant_Fly_Wing_Box_500,500;
+ sellitem WoE_Teleport_Scroll_100_Box,400;
+ sellitem F_Kafra_Card_Box,100;
+ sellitem F_Insurance_Package,100;
+ sellitem F_Token_Of_Siegfried_Box,100;
+}
// Duplicate NPCs
//============================================================
@@ -829,6 +949,25 @@ auction_03,152,42,4 script Kafra Employee#annex 4_F_KAFRA1,{
}
}
-auction_03,145,47,2 shop Tool Dealer#annex 4_M_01,611:-1,501:-1,502:-1,503:-1,506:-1,504:-1,645:-1,656:-1,657:-1,601:-1,602:-1,1065:-1,911:-1,910:-1,717:-1,1092:-1,1093:-1,713:400
-
+auction_03,145,47,2 trader Tool Dealer#annex 4_M_01,{
+OnInit:
+ sellitem Spectacles;
+ sellitem Red_Potion;
+ sellitem Orange_Potion;
+ sellitem Yellow_Potion;
+ sellitem Green_Potion;
+ sellitem White_Potion;
+ sellitem Center_Potion;
+ sellitem Awakening_Potion;
+ sellitem Berserk_Potion;
+ sellitem Wing_Of_Fly;
+ sellitem Wing_Of_Butterfly;
+ sellitem Booby_Trap;
+ sellitem Scell;
+ sellitem Garlet;
+ sellitem Blue_Gemstone;
+ sellitem Empty_Cylinder;
+ sellitem Empty_Potion;
+ sellitem Empty_Bottle,400;
+}
*/
diff --git a/npc/re/quests/quests_mora.txt b/npc/re/quests/quests_mora.txt
index 6bfb908d1..53b63e881 100644
--- a/npc/re/quests/quests_mora.txt
+++ b/npc/re/quests/quests_mora.txt
@@ -2519,7 +2519,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
close;
}
// NPC disabled from 12am ~ 5am.
- if (gettime(HOUR) >= 0 && gettime(HOUR) < 5) {
+ if (gettime(GETTIME_HOUR) >= 0 && gettime(GETTIME_HOUR) < 5) {
if (ep14_1_muk > 0) {
mes "[Raffle Researcher]";
mes "Don't humans sleep?";
diff --git a/npc/re/woe-fe/invest_main.txt b/npc/re/woe-fe/invest_main.txt
index 88e88d385..b0f594f7f 100644
--- a/npc/re/woe-fe/invest_main.txt
+++ b/npc/re/woe-fe/invest_main.txt
@@ -62,31 +62,31 @@ $@vfund_*_extra
- script #invest_timer -1,{
OnClock0000: // Open investments on Wed (1 hour after WoE)
- if (gettime(WEEKDAY) == WEDNESDAY && !agitcheck()) {
+ if (gettime(GETTIME_WEEKDAY) == WEDNESDAY && !agitcheck()) {
$2011_agit_invest = 1;
donpcevent "#fund_master::OnInvest_start";
}
end;
OnClock1200: // Close investments on Fri (60 hours after investments open)
- if (gettime(WEEKDAY) == FRIDAY && !agitcheck()) {
+ if (gettime(GETTIME_WEEKDAY) == FRIDAY && !agitcheck()) {
$2011_agit_invest = 2;
donpcevent "#fund_master::OnInvest_stop";
}
end;
OnClock1235: // Open dungeons on Fri (at least 31 minutes after investments close)
- if (gettime(WEEKDAY) == FRIDAY && !agitcheck())
+ if (gettime(GETTIME_WEEKDAY) == FRIDAY && !agitcheck())
donpcevent "#fund_master::OnResult";
end;
OnClock2000: // Close dungeons on Tues (1 hour before WoE)
- if (gettime(WEEKDAY) == TUESDAY)
+ if (gettime(GETTIME_WEEKDAY) == TUESDAY)
donpcevent "#fund_master::OnReset";
end;
}
function script F_Invest_Status {
- .@day = gettime(WEEKDAY);
- .@hour = gettime(HOUR);
- .@minute = gettime(MINUTE);
+ .@day = gettime(GETTIME_WEEKDAY);
+ .@hour = gettime(GETTIME_HOUR);
+ .@minute = gettime(GETTIME_MINUTE);
// Inactive.
if (agitcheck())
diff --git a/npc/woe-fe/agit_controller.txt b/npc/woe-fe/agit_controller.txt
index 8d038c322..3644ad67b 100644
--- a/npc/woe-fe/agit_controller.txt
+++ b/npc/woe-fe/agit_controller.txt
@@ -7,10 +7,6 @@
//= 2.0a
//===== Description: =========================================
//= Auto Start for War of Emperium
-//=============================================
-//= gettime(3): Gets hour (24 hour time)
-//= gettime(4): Gets day of week 1=Monday, 2=Tuesday,
-//= 3=Wednesday, 4=Thursday, etc.
//===== Additional Comments: =================================
//= v1.1a changed OnInit to OnAgitInit.[kobra_k88]
//= v1.2 added gettime checks. removed $AgitStarted var.[kobra_k88]
@@ -44,9 +40,9 @@ OnClock1800: //end time for Sat(6)
OnAgitInit:
// starting time checks
- if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23) ||
- (gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23) ||
- (gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) {
+ if((gettime(GETTIME_WEEKDAY) == TUESDAY && gettime(GETTIME_HOUR) >= 21 && gettime(GETTIME_HOUR) < 23) ||
+ (gettime(GETTIME_WEEKDAY) == THURSDAY && gettime(GETTIME_HOUR) >= 21 && gettime(GETTIME_HOUR) < 23) ||
+ (gettime(GETTIME_WEEKDAY) == SATURDAY && gettime(GETTIME_HOUR) >= 16 && gettime(GETTIME_HOUR) < 18)) {
if (!agitcheck()) {
agitstart;
callsub S_DisplayOwners;
@@ -55,9 +51,9 @@ OnAgitInit:
}
// end time checks
- if ((gettime(4)==2) && (gettime(3)==23) ||
- (gettime(4)==4) && (gettime(3)==23) ||
- (gettime(4)==6) && (gettime(3)==18)) {
+ if ((gettime(GETTIME_WEEKDAY) == 2 && gettime(GETTIME_HOUR) == 23) ||
+ (gettime(GETTIME_WEEKDAY) == 4 && gettime(GETTIME_HOUR) == 23) ||
+ (gettime(GETTIME_WEEKDAY) == 6 && gettime(GETTIME_HOUR) == 18)) {
if (agitcheck()) {
agitend;
callsub S_DisplayOwners;
diff --git a/npc/woe-se/agit_start_se.txt b/npc/woe-se/agit_start_se.txt
index 74f03cb28..c225d9874 100644
--- a/npc/woe-se/agit_start_se.txt
+++ b/npc/woe-se/agit_start_se.txt
@@ -7,10 +7,6 @@
//===== Description: =========================================
//= Auto Start for War of Emperium
//= To know how to set up WoE times, go to doc\woe_time_explanation.txt
-//=============================================
-//= gettime(3): Gets hour (24 hour time)
-//= gettime(4): Gets day of week 1=Monday, 2=Tuesday,
-//= 3=Wednesday, 4=Thursday, etc.
//===== Additional Comments: =================================
//= 1.0 Copy/Paste of the original setter.
//============================================================
@@ -27,9 +23,9 @@ OnClock2300: //end time for Sat(6)
OnAgitInit2:
// starting time checks
- if((gettime(4)==2) && (gettime(3)>=18 && gettime(3)<21) ||
- (gettime(4)==4) && (gettime(3)>=18 && gettime(3)<21) ||
- (gettime(4)==6) && (gettime(3)>=22 && gettime(3)<23)) {
+ if((gettime(GETTIME_WEEKDAY) == 2 && gettime(GETTIME_HOUR) >= 18 && gettime(GETTIME_HOUR) < 21) ||
+ (gettime(GETTIME_WEEKDAY) == 4 && gettime(GETTIME_HOUR) >= 18 && gettime(GETTIME_HOUR) < 21) ||
+ (gettime(GETTIME_WEEKDAY) == 6 && gettime(GETTIME_HOUR) >= 22 && gettime(GETTIME_HOUR) < 23)) {
if (!agitcheck2()) {
agitstart2;
}
@@ -37,9 +33,9 @@ OnAgitInit2:
}
// end time checks
- if ((gettime(4)==2) && (gettime(3)==21) ||
- (gettime(4)==4) && (gettime(3)==21) ||
- (gettime(4)==6) && (gettime(3)==23)) {
+ if ((gettime(GETTIME_WEEKDAY) == 2 && gettime(GETTIME_HOUR) == 21) ||
+ (gettime(GETTIME_WEEKDAY) == 4 && gettime(GETTIME_HOUR) == 21) ||
+ (gettime(GETTIME_WEEKDAY) == 6 && gettime(GETTIME_HOUR) == 23)) {
if (agitcheck2()) {
agitend2;
}
diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql
index 5a48cd4cb..1ac39234e 100644
--- a/sql-files/item_db.sql
+++ b/sql-files/item_db.sql
@@ -2581,7 +2581,7 @@ REPLACE INTO `item_db` VALUES ('5428','Bread_Bag1','RWC Anniversary Bread Envelo
REPLACE INTO `item_db` VALUES ('5429','Bogy_Cap','Bogy Cap','5','20','10','100','0','0','2','0','1','4294967295','63','2','256','0','0',NULL,'1','430','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bHPrecovRate, 5; bonus bSPrecovRate, 5;','','');
REPLACE INTO `item_db` VALUES ('5430','Sacred_Torch_Coronet','Torch Cap','5','20','10','0','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'0','431','0','0','0','0','65',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Fire,20; skill MG_FIREBOLT,5;','','');
REPLACE INTO `item_db` VALUES ('5431','Chicken_Hat','Chicken Hat','5','20','10','1000','0','0','0','0','1','4294967295','63','2','256','0','30',NULL,'1','432','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,MC_LOUD,1,30; bonus bAspdRate,5;','','');
-REPLACE INTO `item_db` VALUES ('5432','Brazil_Baseball_Cap','bRO 4th Anniversary Hat','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','433','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(gettime(6)==9&&gettime(5)>=10&&gettime(5)<=24) bonus bAllStats, 4;','','');
+REPLACE INTO `item_db` VALUES ('5432','Brazil_Baseball_Cap','bRO 4th Anniversary Hat','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','433','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (gettime(GETTIME_MONTH) == SEPTEMBER && gettime(GETTIME_DAYOFMONTH) >= 10 && gettime(GETTIME_DAYOFMONTH) <= 24) bonus bAllStats, 4;','','');
REPLACE INTO `item_db` VALUES ('5433','Golden_Wreath','Golden Laurel','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','434','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('5435','Coke_Hat','Red Minstrel Hat','5','20','10','100','0','0','1','0','1','4294967295','63','2','256','0','40',NULL,'1','436','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,1; bonus bMaxSP,80; bonus bMdef,3; if(getrefine()>5) { bonus bMdef,getrefine()-5; bonus bMaxSP,(getrefine()-5)*10; }','','');
REPLACE INTO `item_db` VALUES ('5436','Bride\'s_Corolla','Bride\'s Corolla','5','20','10','200','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','437','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,3; bonus bMdef,2;','','');
@@ -4381,7 +4381,7 @@ REPLACE INTO `item_db` VALUES ('12071','Str_Dish06','Shiny Marinade Beef','0','2
REPLACE INTO `item_db` VALUES ('12072','Str_Dish07','Whole Roast','0','40000','20000','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,7; percentheal 10,4;','','');
REPLACE INTO `item_db` VALUES ('12073','Str_Dish08','Bearfoot Special','0','60000','30000','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,8; percentheal 15,6;','','');
REPLACE INTO `item_db` VALUES ('12074','Str_Dish09','Tendon Satay','0','80000','40000','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,9; percentheal 15,8;','','');
-REPLACE INTO `item_db` VALUES ('12075','Str_Dish10','Steamed Tongue','0','100000','50000','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,10; percentheal 20,20;','','');
+REPLACE INTO `item_db` VALUES ('12075','Str_Dish10','Steamed Tongue','0','100000','50000','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,10; percentheal 20,10;','','');
REPLACE INTO `item_db` VALUES ('12076','Int_Dish06','Red Mushroom Wine','0','20000','10000','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1200000,6; percentheal 2,10;','','');
REPLACE INTO `item_db` VALUES ('12077','Int_Dish07','Special Royal Jelly Herbal Tea','0','40000','20000','800','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1200000,7; percentheal 4,10;','','');
REPLACE INTO `item_db` VALUES ('12078','Int_Dish08','Royal Family Tea','0','60000','30000','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1200000,8; percentheal 6,10;','','');
@@ -4407,8 +4407,8 @@ REPLACE INTO `item_db` VALUES ('12097','Luk_Dish07','Assorted Shish Kebob','0','
REPLACE INTO `item_db` VALUES ('12098','Luk_Dish08','Strawberry Flavored Rice Ball','0','60000','30000','400','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1200000,8; percentheal 9,3;','','');
REPLACE INTO `item_db` VALUES ('12099','Luk_Dish09','Blood Flavored Soda','0','80000','40000','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1200000,9; percentheal 10,4;','','');
REPLACE INTO `item_db` VALUES ('12100','Luk_Dish10','Cooked Nine Tail\'s Tails','0','100000','50000','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1200000,10; percentheal 14,8;','','');
-REPLACE INTO `item_db` VALUES ('12101','Citron','Citron','0','20','10','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12102','Meat_Skewer','Grilled Skewer','0','20','10','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12101','Citron','Citron','0','20','10','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,180000,30;','','');
+REPLACE INTO `item_db` VALUES ('12102','Meat_Skewer','Grilled Skewer','0','20','10','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICHIT,180000,30;','','');
REPLACE INTO `item_db` VALUES ('12103','Bloody_Dead_Branch','Bloody Branch','2','10000','5000','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','monster \"this\",-1,-1,\"--ja--\",-3,1,\"\";','','');
REPLACE INTO `item_db` VALUES ('12104','Random_Quiver','Random Quiver','2','10000','5000','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12104,1;','','');
REPLACE INTO `item_db` VALUES ('12105','Set_Of_Taiming_Item','Taming Gift Set','2','10000','5000','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12105,1; getrandgroupitem 12105,1; getrandgroupitem 12105,1;','','');
@@ -4439,7 +4439,7 @@ REPLACE INTO `item_db` VALUES ('12129','Fantastic_Cooking_Kits','Fantastic Cooki
REPLACE INTO `item_db` VALUES ('12130','Cookie_Bag','Cookie Bag','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12130,1; getrandgroupitem 12130,1; getrandgroupitem 12130,1;','','');
REPLACE INTO `item_db` VALUES ('12131','Lucky_Potion','Lucky Potion','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12132','Red_Bag','Santa\'s Bag','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_XMAS,600000,0;','','');
-REPLACE INTO `item_db` VALUES ('12133','Ice_Cream_','McDonald\'s Ice Cone','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(gettime(5)!=MDiceCone) { MDiceCone = gettime(5); percentheal 50,50; }','','');
+REPLACE INTO `item_db` VALUES ('12133','Ice_Cream_','McDonald\'s Ice Cone','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (gettime(GETTIME_DAYOFMONTH) != MDiceCone) { MDiceCone = gettime(GETTIME_DAYOFMONTH); percentheal 50,50; }','','');
REPLACE INTO `item_db` VALUES ('12134','Red_Envelope','Red Envelope','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','Zeny += rand(1000,10000);','','');
REPLACE INTO `item_db` VALUES ('12135','Green_Ale','Green Ale','2','20','10','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,50; sc_start SC_CONFUSION,10000,0,1000,SCFLAG_NONE;','','');
REPLACE INTO `item_db` VALUES ('12136','Women\'s_Bundle','Women\'s Bundle','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem callfunc(\"F_RandMes\",4,558,529,2668,7518),1;','','');
@@ -4504,16 +4504,16 @@ REPLACE INTO `item_db` VALUES ('12194','Hometown_Gift','Hometown Gift','2','20',
REPLACE INTO `item_db` VALUES ('12195','Plain_Rice_Cake','Plain Rice Cake','0','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 0,20;','','');
REPLACE INTO `item_db` VALUES ('12196','Hearty_Rice_Cake','Hearty Rice Cake','0','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,0;','','');
REPLACE INTO `item_db` VALUES ('12197','Salty_Rice_Cake','Salty Rice Cake','0','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 10,10;','','');
-REPLACE INTO `item_db` VALUES ('12198','Lucky_Rice_Cake','Lucky Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCLUK,1200000,21;','','');
+REPLACE INTO `item_db` VALUES ('12198','Lucky_Rice_Cake','Lucky Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1200000,21;','','');
REPLACE INTO `item_db` VALUES ('12199','Rice_Scroll','Scroll of Magic','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12200','Event_Cake','X-mas Cake','11','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill PR_MAGNIFICAT,3;','','');
REPLACE INTO `item_db` VALUES ('12201','Red_Box_C','Commonplace Red Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12202','Str_Dish10_','Steamed Tongue','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12203','Agi_Dish10_','Steamed Scorpion','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_AGI_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12204','Int_Dish10_','Dragon Breath Cocktail','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12205','Dex_Dish10_','Hwergelmir\'s Tonic','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12206','Luk_Dish10_','Cooked Nine Tail\'s Tails','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12207','Vit_Dish10_','Stew Of Immortality','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_VIT_CASH,1800000,10; percentheal 15,5;','','');
+REPLACE INTO `item_db` VALUES ('12202','Str_Dish10_','Steamed Tongue','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1800000,10; percentheal 20,10;','','');
+REPLACE INTO `item_db` VALUES ('12203','Agi_Dish10_','Steamed Scorpion','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_AGI,1800000,10; percentheal 15,5;','','');
+REPLACE INTO `item_db` VALUES ('12204','Int_Dish10_','Dragon Breath Cocktail','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1800000,10; percentheal 10,20;','','');
+REPLACE INTO `item_db` VALUES ('12205','Dex_Dish10_','Hwergelmir\'s Tonic','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX,1800000,10; percentheal 10,10;','','');
+REPLACE INTO `item_db` VALUES ('12206','Luk_Dish10_','Cooked Nine Tail\'s Tails','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1800000,10; percentheal 14,8;','','');
+REPLACE INTO `item_db` VALUES ('12207','Vit_Dish10_','Stew Of Immortality','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_VIT,1800000,10; percentheal 25,0;','','');
REPLACE INTO `item_db` VALUES ('12208','Battle_Manual','Battle Manual','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','60000','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,50;','','');
REPLACE INTO `item_db` VALUES ('12209','Insurance','Life Insurance','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_DEATHPENALTY,1800000,0;','','');
REPLACE INTO `item_db` VALUES ('12210','Bubble_Gum','Bubble Gum','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','60000','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_RECEIVEITEM,1800000,200;','','');
@@ -4550,10 +4550,10 @@ REPLACE INTO `item_db` VALUES ('12243','M_Berserk_Potion','Mercenary Berserk Pot
REPLACE INTO `item_db` VALUES ('12244','Old_Gift_Box','Old Gift Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12244,1;','','');
REPLACE INTO `item_db` VALUES ('12245','Green_Ale_US','Green Ale','0','5000','2500','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 100,0;','','');
REPLACE INTO `item_db` VALUES ('12246','Magic_Card_Album','Mystical Card Album','2','10000','5000','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12246,1;','','');
-REPLACE INTO `item_db` VALUES ('12247','Halohalo','Halo-Halo','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','20',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCALLSTATUS,600000,3;','','');
+REPLACE INTO `item_db` VALUES ('12247','Halohalo','Halo-Halo','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','20',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,600000,3; sc_start SC_FOOD_DEX,600000,3; sc_start SC_FOOD_AGI,600000,3; sc_start SC_FOOD_INT,600000,3; sc_start SC_FOOD_VIT,600000,3; sc_start SC_FOOD_LUK,600000,3;','','');
REPLACE INTO `item_db` VALUES ('12248','Masquerade_Ball_Box','Fancy Ball Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12248,1;','','');
REPLACE INTO `item_db` VALUES ('12249','Payroll_Of_Kafra_','Payment Statement for Kafra Employee','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12250','Str_Dish10_M','Steamed Tongue','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,3600000,10; percentheal 20,20;','','');
+REPLACE INTO `item_db` VALUES ('12250','Str_Dish10_M','Steamed Tongue','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,3600000,10; percentheal 20,10;','','');
REPLACE INTO `item_db` VALUES ('12251','Agi_Dish10_M','Steamed Desert Scorpions','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_AGI,3600000,10; percentheal 15,5;','','');
REPLACE INTO `item_db` VALUES ('12252','Int_Dish10_M','Dragon Breath Cocktail','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,3600000,10; percentheal 10,20;','','');
REPLACE INTO `item_db` VALUES ('12253','Dex_Dish10_M','Hwergelmir\'s Tonic','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX,3600000,10; percentheal 10,10;','','');
@@ -4575,20 +4575,20 @@ REPLACE INTO `item_db` VALUES ('12268','Rainbow_Cake_','Rainbow Cake','2','2','1
REPLACE INTO `item_db` VALUES ('12269','Tasty_Colonel','Tasty Pink Ration','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,600000,15;','','');
REPLACE INTO `item_db` VALUES ('12270','Tasty_Major','Tasty White Ration','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,600000,15;','','');
REPLACE INTO `item_db` VALUES ('12271','Mre_A','Military Ration A','0','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','percentheal 5,0;','','');
-REPLACE INTO `item_db` VALUES ('12272','Mre_B','Military Ration B','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCHIT,600000,33;','','');
-REPLACE INTO `item_db` VALUES ('12273','Mre_C','Military Ration C','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCFLEE,600000,33;','','');
-REPLACE INTO `item_db` VALUES ('12274','Gold_Pill_1','Daehwandan','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMHPRATE,36000000,5; percentheal 10,0;','','');
-REPLACE INTO `item_db` VALUES ('12275','Gold_Pill_2','Taecheongdan','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMSPRATE,36000000,5; percentheal 0,10;','','');
+REPLACE INTO `item_db` VALUES ('12272','Mre_B','Military Ration B','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICHIT,600000,33;','','');
+REPLACE INTO `item_db` VALUES ('12273','Mre_C','Military Ration C','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,600000,33;','','');
+REPLACE INTO `item_db` VALUES ('12274','Gold_Pill_1','Daehwandan','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_ATKER_ASPD,3600000,5,10;','','');
+REPLACE INTO `item_db` VALUES ('12275','Gold_Pill_2','Taecheongdan','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_ATKER_MOVESPEED,3600000,5,10;','','');
REPLACE INTO `item_db` VALUES ('12276','Mimic_Scroll','Mimic Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2058,1800000;','','');
REPLACE INTO `item_db` VALUES ('12277','Disguise_Scroll','Disguise Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2059,1800000;','','');
REPLACE INTO `item_db` VALUES ('12278','Alice_Scroll','Alice Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2060,1800000;','','');
REPLACE INTO `item_db` VALUES ('12279','Undead_Element_Scroll','Undead Elemental Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start4 SC_ARMOR_RESIST,300000,20,20,20,20;','','');
REPLACE INTO `item_db` VALUES ('12280','Holy_Element_Scroll','Holy Elemental Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_BENEDICTIO; sc_start SC_BENEDICTIO,300000,1;','','');
REPLACE INTO `item_db` VALUES ('12281','Tresure_Box_WoE','Event Treasure Box','2','20','10','150','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12281,1;','','');
-REPLACE INTO `item_db` VALUES ('12282','Internet_Cafe1','Internet Cafe1','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCALLSTATUS,5400000,3; sc_start SC_PLUSATTACKPOWER,5400000,15; sc_start SC_PLUSMAGICPOWER,5400000,15;','','');
-REPLACE INTO `item_db` VALUES ('12283','Internet_Cafe2','Internet Cafe2','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CHASEWALK2,5400000,8; sc_start SC_INCDEX,5400000,4; sc_start SC_INCAGI,5400000,6; sc_start SC_PLUSATTACKPOWER,5400000,32; sc_start SC_INCFLEE,5400000,5;','','');
-REPLACE INTO `item_db` VALUES ('12284','Internet_Cafe3','Internet Cafe3','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCINT,5400000,8; sc_start SC_INCVIT,5400000,4; sc_start SC_INCDEX,5400000,6; sc_start SC_PLUSMAGICPOWER,5400000,40;','','');
-REPLACE INTO `item_db` VALUES ('12285','Internet_Cafe4','Internet Cafe4','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCDEX,5400000,8; sc_start SC_INCLUK,5400000,4; sc_start SC_INCAGI,5400000,6; sc_start SC_PLUSATTACKPOWER,5400000,24; sc_start SC_PLUSMAGICPOWER,5400000,24;','','');
+REPLACE INTO `item_db` VALUES ('12282','Internet_Cafe1','Internet Cafe1','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,5400000,3; sc_start SC_FOOD_DEX,5400000,3; sc_start SC_FOOD_AGI,5400000,3; sc_start SC_FOOD_INT,5400000,3; sc_start SC_FOOD_VIT,5400000,3; sc_start SC_FOOD_LUK,5400000,3; sc_start SC_PLUSATTACKPOWER,5400000,15; sc_start SC_PLUSMAGICPOWER,5400000,15;','','');
+REPLACE INTO `item_db` VALUES ('12283','Internet_Cafe2','Internet Cafe2','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,5400000,8; sc_start SC_FOOD_DEX,5400000,4; sc_start SC_FOOD_AGI,5400000,6; sc_start SC_PLUSATTACKPOWER,5400000,32; sc_start SC_FOOD_BASICAVOIDANCE,5400000,5;','','');
+REPLACE INTO `item_db` VALUES ('12284','Internet_Cafe3','Internet Cafe3','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,5400000,8; sc_start SC_FOOD_VIT,5400000,4; sc_start SC_FOOD_DEX,5400000,6; sc_start SC_PLUSMAGICPOWER,5400000,40;','','');
+REPLACE INTO `item_db` VALUES ('12285','Internet_Cafe4','Internet Cafe4','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX,5400000,8; sc_start SC_FOOD_LUK,5400000,4; sc_start SC_FOOD_AGI,5400000,6; sc_start SC_PLUSATTACKPOWER,5400000,24; sc_start SC_PLUSMAGICPOWER,5400000,24;','','');
REPLACE INTO `item_db` VALUES ('12286','Masquerade_Ball_Box2','Masquerade Ball Box2','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12286,1;','','');
REPLACE INTO `item_db` VALUES ('12287','Love_Angel','Love Angel Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 1;','','');
REPLACE INTO `item_db` VALUES ('12288','Squirrel','Squirrel Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 2;','','');
@@ -4601,8 +4601,8 @@ REPLACE INTO `item_db` VALUES ('12294','PC_Bang_Coin_Box1','PC-Room Coin Box','2
REPLACE INTO `item_db` VALUES ('12295','PC_Bang_Coin_Box2','PC-Room Coin Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem 2739,1;','','');
REPLACE INTO `item_db` VALUES ('12296','PC_Bang_Coin_Box3','PC-Room Coin Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem 2738,1;','','');
REPLACE INTO `item_db` VALUES ('12297','PC_Bang_Coin_Box4','PC-Room Coin Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem 2738,2;','','');
-REPLACE INTO `item_db` VALUES ('12298','SP_Potion','SP Consumption Reduction Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATKER_BLOOD,3600000,15;','','');
-REPLACE INTO `item_db` VALUES ('12299','Mega_Resist_Potion','Mega Resist Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_TARGET_BLOOD,3600000,10;','','');
+REPLACE INTO `item_db` VALUES ('12298','SP_Potion','SP Consumption Reduction Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_SPELLBREAKER; sc_start SC_ATKER_BLOOD,3600000,15;','','');
+REPLACE INTO `item_db` VALUES ('12299','Mega_Resist_Potion','Mega Resist Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_GUARD; sc_start SC_TARGET_BLOOD,3600000,10;','','');
REPLACE INTO `item_db` VALUES ('12300','Wild_Rose_Scroll','Wild Rose Contract','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','mercenary_create 1965,1800000;','','');
REPLACE INTO `item_db` VALUES ('12301','Doppelganger_Scroll','Doppelganger Contract','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','mercenary_create 1966,1800000;','','');
REPLACE INTO `item_db` VALUES ('12302','Ygnizem_Scroll','Egnigem Cenia Contract','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','mercenary_create 1967,1800000;','','');
@@ -4613,7 +4613,7 @@ REPLACE INTO `item_db` VALUES ('12306','Newcomer','Freshman Magic Powder','11','
REPLACE INTO `item_db` VALUES ('12307','Kid','Kid Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 7;','','');
REPLACE INTO `item_db` VALUES ('12308','Magic_Castle','Magic Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 8;','','');
REPLACE INTO `item_db` VALUES ('12309','Bulging_Head','JJangu Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 9;','','');
-REPLACE INTO `item_db` VALUES ('12310','Spray_Of_Flowers','Spray Of Flowers','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'1',NULL,'0',NULL,'0','sc_start SC_INCFLEE,600000,10;','','');
+REPLACE INTO `item_db` VALUES ('12310','Spray_Of_Flowers','Spray Of Flowers','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'1',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,600000,10;','','');
REPLACE INTO `item_db` VALUES ('12311','Large_Spray_Of_Flowers','Huge Spray Of Flowers','11','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'1',NULL,'0',NULL,'0','itemskill ALL_PARTYFLEE,1;','','');
REPLACE INTO `item_db` VALUES ('12312','Thick_Manual50','Thick Battle Manual','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,3600000,50;','','');
REPLACE INTO `item_db` VALUES ('12313','Protection_Of_Angel','Guardian Angel','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'1',NULL,'0',NULL,'0','itemskill ALL_ANGEL_PROTECT,1;','','');
@@ -4622,16 +4622,16 @@ REPLACE INTO `item_db` VALUES ('12315','Goddess_Bless','Goddess Of Blessing','2'
REPLACE INTO `item_db` VALUES ('12316','Angel_Bless','Angel Of Blessing','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12317','Powder_Snow','Snow Powder','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','end;','','');
REPLACE INTO `item_db` VALUES ('12318','Little_Heart','Small Hearts','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12319','Strawberry_Cake','Rune Strawberry Cake','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCATKRATE,600000,5; sc_start SC_INCMATKRATE,600000,5;','','');
-REPLACE INTO `item_db` VALUES ('12320','Pineapple_Juice','Schwartzwald Pine Jubilee','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCHIT,600000,10; sc_start SC_PLUSAVOIDVALUE,600000,20;','','');
-REPLACE INTO `item_db` VALUES ('12321','Spicy_Sandwich','Arunafeltz Desert Sandwich','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CRITICALPERCENT,600000,7;','','');
+REPLACE INTO `item_db` VALUES ('12319','Strawberry_Cake','Rune Strawberry Cake','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,600000,5; sc_start SC_PLUSMAGICPOWER,600000,5;','','');
+REPLACE INTO `item_db` VALUES ('12320','Pineapple_Juice','Schwartzwald Pine Jubilee','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICHIT,600000,10; sc_start SC_FOOD_BASICAVOIDANCE,600000,20;','','');
+REPLACE INTO `item_db` VALUES ('12321','Spicy_Sandwich','Arunafeltz Desert Sandwich','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_CRITICALSUCCESSVALUE,600000,7;','','');
REPLACE INTO `item_db` VALUES ('12322','Chocolate_Pie','Chocolate Pie','0','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 5,5;','','');
REPLACE INTO `item_db` VALUES ('12323','N_Fly_Wing','Novice Fly Wing','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'1',NULL,'0',NULL,'0','itemskill AL_TELEPORT,1;','','');
REPLACE INTO `item_db` VALUES ('12324','N_Butterfly_Wing','Novice Butterfly Wing','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'1',NULL,'0',NULL,'0','itemskill AL_TELEPORT,3;','','');
REPLACE INTO `item_db` VALUES ('12325','N_Magnifier','Novice Magnifier','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'1',NULL,'0',NULL,'0','itemskill MC_IDENTIFY,1;','','');
REPLACE INTO `item_db` VALUES ('12326','J_Firecracker','Large Firecracker','2','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12327','Charm_Of_Luck','Charm Of Luck','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12328','Charm_Of_Happiness','Charm Of Happiness','2','1800','900','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCLUK,3600000,20;','','');
+REPLACE INTO `item_db` VALUES ('12327','Charm_Of_Luck','Charm Of Luck','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,3600000,20;','','');
+REPLACE INTO `item_db` VALUES ('12328','Charm_Of_Happiness','Charm Of Happiness','2','1800','900','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,20000,10; sc_start SC_FOOD_DEX,20000,10; sc_start SC_FOOD_AGI,20000,10; sc_start SC_FOOD_INT,20000,10; sc_start SC_FOOD_VIT,20000,10; sc_start SC_FOOD_LUK,20000,10;','','');
REPLACE INTO `item_db` VALUES ('12329','Recall_MaleGM','Summon Male GameMaster Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2000,1800000;','','');
REPLACE INTO `item_db` VALUES ('12330','Recall_FemaleGM','Summon Female GameMaster Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2001,1800000;','','');
REPLACE INTO `item_db` VALUES ('12331','Ginseng','Ginseng','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','percentheal 6,0;','','');
@@ -4641,7 +4641,7 @@ REPLACE INTO `item_db` VALUES ('12334','Cherish_Box','Treasure Edition Helm Box'
REPLACE INTO `item_db` VALUES ('12335','Yummy_Skewered_Dish','Grilled Delicious Skewer','0','1000','500','350','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 60,60;','','');
REPLACE INTO `item_db` VALUES ('12336','Baked_Mushroom','Grilled Mushroom','0','500','250','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 30,30;','','');
REPLACE INTO `item_db` VALUES ('12337','Grilled_Sausage','Grilled Sausages','0','300','150','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 20,20;','','');
-REPLACE INTO `item_db` VALUES ('12338','Grilled_Corn','Grilled Corn','2','100','50','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CHASEWALK2,180000,2; sc_start SC_INCINT,180000,2; sc_start SC_INCAGI,180000,2;','','');
+REPLACE INTO `item_db` VALUES ('12338','Grilled_Corn','Grilled Corn','2','100','50','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,180000,2; sc_start SC_FOOD_INT,180000,2; sc_start SC_FOOD_AGI,180000,2;','','');
REPLACE INTO `item_db` VALUES ('12339','Cherish_Box_Ori','Treasure Edition Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12339,1;','','');
REPLACE INTO `item_db` VALUES ('12340','Mysterious_Rice_Powder','Chewy Rice Powder','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'1',NULL,'0',NULL,'0','pet 1815;','','');
REPLACE INTO `item_db` VALUES ('12341','Special_Alloy_Trap_Box','Special Alloy Trap Box','2','30000','15000','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 7940,100;','','');
@@ -4678,7 +4678,7 @@ REPLACE INTO `item_db` VALUES ('12371','Magical_Lithography','Magical Lithograph
REPLACE INTO `item_db` VALUES ('12372','Hell_Contract','Hell Contract','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','pet 1379;','','');
REPLACE INTO `item_db` VALUES ('12373','Boy\'s_Naivety','Boy\'s Pure Heart','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','pet 1370;','','');
REPLACE INTO `item_db` VALUES ('12374','Flaming_Ice','Ice Fireworks','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','pet 1837;','','');
-REPLACE INTO `item_db` VALUES ('12375','Acaraje','Akaraje','2','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_STEAL; sc_start SC_INCHITRATE,120000,5;','','');
+REPLACE INTO `item_db` VALUES ('12375','Acaraje','Akaraje','2','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_STEAL; sc_start2 SC_ACARAJE,120000,5,10;','','');
REPLACE INTO `item_db` VALUES ('12376','Mysterious_Can2','Mysterious Can2','2','10','5','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12377','Mysterious_PET_Bottle2','Mysterious PET Bottle2','2','10','5','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12378','2009_Rice_Cake_Soup','Rice Cake Soup','2','10','5','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4699,12 +4699,12 @@ REPLACE INTO `item_db` VALUES ('12392','RepairA','Repair A','0','220','110','70'
REPLACE INTO `item_db` VALUES ('12393','RepairB','Repair B','0','500','250','70','0','0','0','0','0','1024','8','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12394','RepairC','Repair C','0','1100','550','70','0','0','0','0','0','1024','8','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12395','Tantanmen','Tantan Noodle','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','pet 1519;','','');
-REPLACE INTO `item_db` VALUES ('12396','Fools_Day_Box','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'1',NULL,'0',NULL,'0','if(rand(1,10)==1) itemskill AL_TELEPORT,1; else if(rand(1,10)==2) itemskill AL_TELEPORT,3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill ALL_REVERSEORCISH,1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10;','','');
-REPLACE INTO `item_db` VALUES ('12397','Fools_Day_Box2','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'1',NULL,'0',NULL,'0','if(rand(1,10)==1) itemskill TF_DETOXIFY,1; else if(rand(1,10)==2) itemskill TF_PICKSTONE,1; else if(rand(1,10)==3) itemskill BA_FROSTJOKER,1; else if(rand(1,10)==4) itemskill DC_SCREAM,1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill AL_RUWACH,1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196;','','');
+REPLACE INTO `item_db` VALUES ('12396','Fools_Day_Box','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'1',NULL,'0',NULL,'0','.@temp = rand(1,10); if (.@temp == 1) itemskill AL_TELEPORT,1; else if (.@temp == 2) itemskill AL_TELEPORT,3; else if (.@temp == 3) percentheal 50,0; else if (.@temp == 4) percentheal 0,50; else if (.@temp == 5) percentheal 50,50; else if (.@temp == 6) getitem Apple,1; else if (.@temp == 7) itemskill ALL_REVERSEORCISH,1; else if (.@temp == 8) specialeffect2 EF_MAPPILLAR2; else if (.@temp == 9) specialeffect2 EF_ANGEL2; else specialeffect2 EF_COIN;','','');
+REPLACE INTO `item_db` VALUES ('12397','Fools_Day_Box2','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'1',NULL,'0',NULL,'0','.@temp = rand(1,10); if (.@temp == 1) itemskill TF_DETOXIFY,1; else if (.@temp == 2) itemskill TF_PICKSTONE,1; else if (.@temp == 3) itemskill BA_FROSTJOKER,1; else if (.@temp == 4) itemskill DC_SCREAM,1; else if (.@temp == 5) percentheal 50,50; else if (.@temp == 6) getitem Jellopy,1; else if (.@temp == 7) itemskill AL_RUWACH,1; else if (.@temp == 8) specialeffect2 EF_BEGINASURA; else if (.@temp == 9) specialeffect2 EF_MVP; else specialeffect2 EF_CURSEATTACK;','','');
REPLACE INTO `item_db` VALUES ('12398','PCBang_Gift_Box','PCBang Gift Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12399','Castle_Treasure_Box','Castle Treasure Box','2','20','10','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12400','Water_Of_Blessing_','Water Of Blessing ','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12401','Rune_Kn_Test_Int','Rune Kn Test Int','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCINT,300000,40;','','');
+REPLACE INTO `item_db` VALUES ('12401','Rune_Kn_Test_Int','Rune Kn Test Int','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,300000,40;','','');
REPLACE INTO `item_db` VALUES ('12402','29Fruit','29Fruit','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12403','Lucky_Egg_C2','Lucky Egg2','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12404','Acti_Potion','Acti Potion','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4731,7 +4731,7 @@ REPLACE INTO `item_db` VALUES ('12424','HP_Increase_Potion_(Large)','HP Increase
REPLACE INTO `item_db` VALUES ('12425','SP_Increase_Potion_(Small)','SP Increase Potion (Small)','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMSPRATE,500000,2; percentheal 0,2;','','');
REPLACE INTO `item_db` VALUES ('12426','SP_Increase_Potion_(Medium)','SP Increase Potion (Medium)','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMSPRATE,500000,4; percentheal 0,4;','','');
REPLACE INTO `item_db` VALUES ('12427','SP_Increase_Potion_(Large)','SP Increase Potion (Large)','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMSPRATE,500000,8; percentheal 0,8;','','');
-REPLACE INTO `item_db` VALUES ('12428','Enrich_White_PotionZ','Concentrated White Potion Z','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_EXTRACT_WHITE_POTION_Z,500000,0; heal 1000,0;','','');
+REPLACE INTO `item_db` VALUES ('12428','Enrich_White_PotionZ','Concentrated White Potion Z','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_EXTRACT_WHITE_POTION_Z,500000,20; heal 1000,0;','','');
REPLACE INTO `item_db` VALUES ('12429','Savage_BBQ','Savage Full Roast','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_SAVAGE_STEAK,300000,20;','','');
REPLACE INTO `item_db` VALUES ('12430','Wug_Blood_Cocktail','Cocktail Warg Blood','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_COCKTAIL_WARG_BLOOD,300000,20;','','');
REPLACE INTO `item_db` VALUES ('12431','Minor_Brisket','Minor Stew','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_MINOR_BBQ,300000,20;','','');
@@ -4739,7 +4739,7 @@ REPLACE INTO `item_db` VALUES ('12432','Siroma_Icetea','Siroma Iced Tea','2','0'
REPLACE INTO `item_db` VALUES ('12433','Drocera_Herb_Stew','Drosera Herb Salad','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DROCERA_HERB_STEAMED,300000,20;','','');
REPLACE INTO `item_db` VALUES ('12434','Petti_Tail_Noodle','Petite Tail Noodles','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PUTTI_TAILS_NOODLES,300000,20;','','');
REPLACE INTO `item_db` VALUES ('12435','Black_Thing','Black Mass','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_STOMACHACHE,60000,rand(5,10);','','');
-REPLACE INTO `item_db` VALUES ('12436','Vitata500','Vitata 500','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_VITATA_500,500000,0; itemheal 0,200;','','');
+REPLACE INTO `item_db` VALUES ('12436','Vitata500','Vitata 500','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_VITATA_500,500000,20,5; itemheal 0,200;','','');
REPLACE INTO `item_db` VALUES ('12437','Enrich_Celermine_Juice','Concentrated Ceromain Soup','2','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_EXTRACT_SALAMINE_JUICE,500000,10;','','');
REPLACE INTO `item_db` VALUES ('12438','F_Giant_Fly_Wing','F Giant Fly Wing','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12439','F_Battle_Manual','F Battle Manual','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4832,11 +4832,11 @@ REPLACE INTO `item_db` VALUES ('12527','E_Adrenaline_Scroll','E Adrenaline Scrol
REPLACE INTO `item_db` VALUES ('12528','E_Convex_Mirror','E Convex Mirror','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12529','White_Slim_Potion_Box','White Slim Potion Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12530','Mastela_Fruit_Box','Mastela Fruit Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12531','White_Potion_Box','White Potion Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12532','Royal_Jelly_Box2','Royal Jelly Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12533','Blue_Herb_Box2','Blue Herb Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12534','Yggdrasil_Seed_Box','Yggdrasil Seed Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12536','NY_Rice_Cake_Soup','NY Rice Cake Soup','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12531','White_Potion_Box','White Potion Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem White_Potion,100;','','');
+REPLACE INTO `item_db` VALUES ('12532','Royal_Jelly_Box2','Royal Jelly Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Royal_Jelly,100;','','');
+REPLACE INTO `item_db` VALUES ('12533','Blue_Herb_Box2','Blue Herb Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Blue_Herb,100;','','');
+REPLACE INTO `item_db` VALUES ('12534','Yggdrasil_Seed_Box','Yggdrasil Seed Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Seed_Of_Yggdrasil,30;','','');
+REPLACE INTO `item_db` VALUES ('12536','NY_Rice_Cake_Soup','NY Rice Cake Soup','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 20,20;','','');
REPLACE INTO `item_db` VALUES ('12537','Solo_Gift_Basket','Solo Gift Basket','2','1000','500','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12538','Couple_Event_Basket','Couple Event Basket','2','2000','1000','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12539','Splendid_Box','Splendid Box','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4846,11 +4846,11 @@ REPLACE INTO `item_db` VALUES ('12542','Fortune_Cookie2','Fortune Cookie2','2','
REPLACE INTO `item_db` VALUES ('12543','Fortune_Cookie3','Fortune Cookie3','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12544','Mystic_Tree_Branch','Mystic Tree Branch','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12545','Lucky_Egg_C5','Lucky Egg C5','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
-REPLACE INTO `item_db` VALUES ('12546','Suspicious_Dish','Suspicious Dish','2','100','50','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12546','Suspicious_Dish','Suspicious Dish','2','100','50','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_POISON,12000,0;','','');
REPLACE INTO `item_db` VALUES ('12547','Chalcenodny_Box','Chalcenodny Box','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12548','Buy_Market_Permit2','Shabby Purchase Street Stall License','2','500','250','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','buyingstore 2;','','');
-REPLACE INTO `item_db` VALUES ('12549','White_Slim_Pot_Box2','White Slim Pot Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12550','Poison_Bottle_Box2','Poison Bottle Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12549','White_Slim_Pot_Box2','White Slim Pot Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem White_Slim_Potion,200;','','');
+REPLACE INTO `item_db` VALUES ('12550','Poison_Bottle_Box2','Poison Bottle Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Poison_Bottle,30;','','');
REPLACE INTO `item_db` VALUES ('12551','MVP_Tele_Scroll','MVP Tele Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12552','Quest_Tele_Scroll','Quest Tele Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12553','Brysinggamen_Piece_Box','Brysinggamen Piece Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4875,8 +4875,8 @@ REPLACE INTO `item_db` VALUES ('12571','Cheer_Scarf10_Box','Cheer Scarf10 Box','
REPLACE INTO `item_db` VALUES ('12572','Cheer_Scarf10_Box2','Cheer Scarf10 Box2','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12573','Fruit_Basket','Fruit Basket','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12574','Mora_Berry','Mora Berry','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12575','Arrow_Of_Elf_Cntr','Arrow Of Elf Cntr','2','500','250','250','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12576','Hunting_Arrow_Cntr','Hunting Arrow Cntr','2','500','250','250','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12575','Arrow_Of_Elf_Cntr','Arrow Of Elf Cntr','2','500','250','250','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Arrow_Of_Elf,500;','','');
+REPLACE INTO `item_db` VALUES ('12576','Hunting_Arrow_Cntr','Hunting Arrow Cntr','2','500','250','250','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Hunting_Arrow,500;','','');
REPLACE INTO `item_db` VALUES ('12577','Lucky_Egg_C6','Lucky Egg C6','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12578','Rapid_Life_Water','Rapid Life Water','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12579','Ring_Of_Valkyrie_Box','Ring Of Valkyrie Box','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4885,7 +4885,7 @@ REPLACE INTO `item_db` VALUES ('12581','Vending_Search_Scroll2','Universal Catal
REPLACE INTO `item_db` VALUES ('12591','Uni_Catalog_Bz','Universal Catalog Bronze','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','searchstores 10,1;','','');
REPLACE INTO `item_db` VALUES ('12609','Old_Ore_Box','Old Ore Box','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12701','Old_Blue_Box_F','Old Blue Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12702','Old_Bleu_Box','Old Navy Box','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12702,1; getrandgroupitem 12702,1;','','');
+REPLACE INTO `item_db` VALUES ('12702','Old_Bleu_Box','Old Navy Box','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem Old_Bleu_Box,1; getrandgroupitem Old_Bleu_Box,1;','','');
REPLACE INTO `item_db` VALUES ('12703','Holy_Egg_2','Holy Egg','11','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12704','Elixir_Of_Life','Elixir of Life','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','85',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','percentheal 100,0;','','');
REPLACE INTO `item_db` VALUES ('12705','Noble_Nameplate','Noble Nameplate','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','90',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,100;','','');
@@ -4895,7 +4895,7 @@ REPLACE INTO `item_db` VALUES ('12708','Lucky_Cookie03','Lucky Cookie','11','0',
REPLACE INTO `item_db` VALUES ('12709','Guyak_Candy','Guyak Candy','0','0','0','150','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 30,30;','','');
REPLACE INTO `item_db` VALUES ('12710','Guyak_Pudding','Guyak Pudding','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12711','Pretzel','Pretzel','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,90),0;','','');
-REPLACE INTO `item_db` VALUES ('12712','Green_Beer','Green Beer','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12712','Green_Beer','Green Beer','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 0,50;','','');
REPLACE INTO `item_db` VALUES ('12713','Monster_Extract','Monster Extract','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12714','Easter_Scroll','Easter Scroll','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12714,1;','','');
REPLACE INTO `item_db` VALUES ('12715','Black_Treasure_Box','Black Treasure Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4922,23 +4922,23 @@ REPLACE INTO `item_db` VALUES ('12735','Runstone_Ancient','Ancient Rune','0','2'
REPLACE INTO `item_db` VALUES ('12736','Runstone_Mystic','Mystic Rune','0','2','1','100','0','0','0','0','0','128','8','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','makerune 14;','','');
REPLACE INTO `item_db` VALUES ('12737','Runstone_Ordinary','General Rune','0','2','1','100','0','0','0','0','0','128','8','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','makerune 2;','','');
REPLACE INTO `item_db` VALUES ('12738','Runstone_Rare','Rare Rune','0','2','1','100','0','0','0','0','0','128','8','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','makerune 8;','','');
-REPLACE INTO `item_db` VALUES ('12739','Snow_Flower','Snow Flowers','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12739','Snow_Flower','Snow Flowers','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 10,10;','','');
REPLACE INTO `item_db` VALUES ('12740','Inc_Str_Scroll','Amplification Scroll','2','1','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12741','Inc_Int_Scroll','Intellect Amplification Scroll','2','1','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12742','Valentine_Gift_Box1','Valentine Gift Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12743','Valentine_Gift_Box2','Valentine Gift Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12744','Chocotate_Box','Chocolate Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12745','Skull_Scroll','Skull Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12746','Destruction_Scroll','Destruction Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bAddRace,RC_Boss,5}\",10000,1800000; autobonus \"{bonus2 bAddRace,RC_Angel,5;}\",10000,1800000; autobonus \"{bonus2 bAddEle,Ele_Holy,5;}\",10000,1800000;','','');
-REPLACE INTO `item_db` VALUES ('12747','Royal_Scroll','Royal Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bSubRace,RC_Boss,5;}\",10000,1800000;','','');
-REPLACE INTO `item_db` VALUES ('12748','Immune_Scroll','Immune Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bAddEle,Ele_Neutral,-5;}\",10000,1800000;','','');
-REPLACE INTO `item_db` VALUES ('12749','Mystic_Scroll','Mystic Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,180000,5;','','');
-REPLACE INTO `item_db` VALUES ('12750','Battle_Scroll','Battle Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,1800000,5; sc_start SC_PLUSATTACKPOWER,1800000,5;','','');
-REPLACE INTO `item_db` VALUES ('12751','Armor_Scroll','Armor Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_DEF,1800000,5; sc_start SC_FOOD_BASICAVOIDANCE,1800000,10;','','');
-REPLACE INTO `item_db` VALUES ('12752','Prayer_Scroll','Prayer Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_MDEF,1800000,5; sc_start SC_INCFLEE2,1800000,10;','','');
-REPLACE INTO `item_db` VALUES ('12753','Soul_Scroll','Soul Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMHPRATE,1800000,5; sc_start SC_INCMSPRATE,1800000,5;','','');
-REPLACE INTO `item_db` VALUES ('12754','New_Year_Bun','New Year Bun','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12755','Traditional_Firecrack','Traditional Firecrack','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12742','Valentine_Gift_Box1','Valentine Gift Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Valentine_Gold_Ring,1;','','');
+REPLACE INTO `item_db` VALUES ('12743','Valentine_Gift_Box2','Valentine Gift Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Valentine_Silver_Ring,1;','','');
+REPLACE INTO `item_db` VALUES ('12744','Chocotate_Box','Chocolate Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Chocolate,1;','','');
+REPLACE INTO `item_db` VALUES ('12745','Skull_Scroll','Skull Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_SKELSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12746','Destruction_Scroll','Destruction Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DISTRUCTIONSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12747','Royal_Scroll','Royal Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ROYALSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12748','Immune_Scroll','Immune Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_IMMUNITYSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12749','Mystic_Scroll','Mystic Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_MYSTICSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12750','Battle_Scroll','Battle Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_BATTLESCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12751','Armor_Scroll','Armor Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_ARMORSCROLL,1800000,5,10;','','');
+REPLACE INTO `item_db` VALUES ('12752','Prayer_Scroll','Prayer Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_FREYJASCROLL,1800000,5,10;','','');
+REPLACE INTO `item_db` VALUES ('12753','Soul_Scroll','Soul Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_SOULSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12754','New_Year_Bun','New Year Bun','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','percentheal 50,50;','','');
+REPLACE INTO `item_db` VALUES ('12755','Traditional_Firecrack','Traditional Firecrack','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_POK_JAP; itemskill MO_CALLSPIRITS,3; itemskill MO_FINGEROFFENSIVE,5;','','');
REPLACE INTO `item_db` VALUES ('12756','New_Gift_Envelope','New Gift Envelope','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12757','Loyal_Ring1_Box','Loyal Ring1 Box','2','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12758','Loyal_Ring2_Box','Loyal Ring2 Box','2','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4949,7 +4949,7 @@ REPLACE INTO `item_db` VALUES ('12762','Bubble_Gum_Orange','Bubble Gum Orange','
REPLACE INTO `item_db` VALUES ('12763','Bubble_Gum_Red','Bubble Gum Red','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12764','Fools_Day_Box_Tw','Fools Day Box Tw','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12765','Summer_Knight_Box','Summer Knight Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12766','Reward_Job_BM25','Reward Job BM25','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12766','Reward_Job_BM25','Reward Job BM25','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSONLYJOBEXP,1800000,25;','','');
REPLACE INTO `item_db` VALUES ('12767','Passion_FB_Hat_Box','Passion FB Hat Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12768','Cool_FB_Hat_Box','Cool FB Hat Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12769','Victory_FB_Hat_Box','Victory FB Hat Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
@@ -4959,8 +4959,8 @@ REPLACE INTO `item_db` VALUES ('12772','Cool_Hat_Box2','Cool Hat Box2','2','0','
REPLACE INTO `item_db` VALUES ('12773','Victory_Hat_Box2','Victory Hat Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12786','Change_Slot_Card','Character Position Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','SlotChange += 1;','','');
REPLACE INTO `item_db` VALUES ('12790','Change_Name_Card','Name Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','CharRename += 1;','','');
-REPLACE INTO `item_db` VALUES ('12831','Potion_Box','Potion Box','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 545,100; getitem 546,100; getitem 547,100; getitem 505,100;','','');
-REPLACE INTO `item_db` VALUES ('12848','Falcon_Flute','Falcon Flute','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(HT_FALCON)) { if(checkoption(Option_Wug)||checkoption(Option_Wugrider)) end; if(checkfalcon()==1) { setfalcon 0; } else { setfalcon 1; } }','','');
+REPLACE INTO `item_db` VALUES ('12831','Potion_Box','Potion Box','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Red_Slim_Potion,100; getitem Yellow_Slim_Potion,100; getitem White_Slim_Potion,100; getitem Blue_Potion,100;','','');
+REPLACE INTO `item_db` VALUES ('12848','Falcon_Flute','Falcon Flute','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(HT_FALCON)) { if(checkoption(Option_Wug) || checkoption(Option_Wugrider)) end; if(checkfalcon() == 1) { setfalcon 0; } else { setfalcon 1; } }','','');
REPLACE INTO `item_db` VALUES ('12900','Battle_Manual_Box','Battle Manual Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','getitem 12208,10;','','');
REPLACE INTO `item_db` VALUES ('12901','Insurance_Package','Insurance Package','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','getitem 12209,10;','','');
REPLACE INTO `item_db` VALUES ('12902','Bubble_Gum_Box','Bubble Gum Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','getitem 12210,10;','','');
@@ -5359,8 +5359,8 @@ REPLACE INTO `item_db` VALUES ('13620','Super_Pet_Egg4','Super Pet Egg 4','2','2
REPLACE INTO `item_db` VALUES ('13621','Greed_Box30','Greed Scroll 30 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14529,30;','','');
REPLACE INTO `item_db` VALUES ('13622','Greed_Box50','Greed Scroll 50 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14529,50;','','');
REPLACE INTO `item_db` VALUES ('13623','Greed_Box100','Greed Scroll 100 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14529,100;','','');
-REPLACE INTO `item_db` VALUES ('13624','Flee_30_Scroll_Box','Evasion Scroll Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14530,1;','','');
-REPLACE INTO `item_db` VALUES ('13625','Accuracy_30_Scroll_Box','Concentration Scroll Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14531,1;','','');
+REPLACE INTO `item_db` VALUES ('13624','Flee_30_Scroll_Box','Evasion Scroll Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Flee_30_Scroll,1;','','');
+REPLACE INTO `item_db` VALUES ('13625','Accuracy_30_Scroll_Box','Concentration Scroll Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Accuracy_30_Scroll,1;','','');
REPLACE INTO `item_db` VALUES ('13626','Super_Card_Pet_Egg_Box1','Super Card Pet Egg Box 1','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 13630,1;','','');
REPLACE INTO `item_db` VALUES ('13627','Super_Card_Pet_Egg_Box2','Super Card Pet Egg Box 2','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 13631,1;','','');
REPLACE INTO `item_db` VALUES ('13628','Super_Card_Pet_Egg_Box3','Super Card Pet Egg Box 3','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 13632,1;','','');
@@ -6014,10 +6014,10 @@ REPLACE INTO `item_db` VALUES ('14317','Bacsojin_Scroll','Bacsojin Scroll','2','
REPLACE INTO `item_db` VALUES ('14343','Spiked_Scarf_Box','Spiked Scarf Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5462,1;','','');
REPLACE INTO `item_db` VALUES ('14344','Rainbow_Scarf_Box','Rainbow Scarf Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5463,1;','','');
REPLACE INTO `item_db` VALUES ('14345','Animal_Scroll','Animal Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
-REPLACE INTO `item_db` VALUES ('14349','Mental_Potion20_Box','Mental Potion 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 14600,20;','','');
-REPLACE INTO `item_db` VALUES ('14350','Mental_Potion50_Box','Mental Potion 50 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 14600,50;','','');
-REPLACE INTO `item_db` VALUES ('14351','Tyr\'s_Blessing20_Box','Tyr\'s Blessing 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 14601,20;','','');
-REPLACE INTO `item_db` VALUES ('14352','Tyr\'s_Blessing50_Box','Tyr\'s Blessing 50 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 14601,50;','','');
+REPLACE INTO `item_db` VALUES ('14349','Mental_Potion20_Box','Mental Potion 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem Mental_Potion,20;','','');
+REPLACE INTO `item_db` VALUES ('14350','Mental_Potion50_Box','Mental Potion 50 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem Mental_Potion,50;','','');
+REPLACE INTO `item_db` VALUES ('14351','Tyr\'s_Blessing20_Box','Tyr\'s Blessing 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem Tyr\'s_Blessing,20;','','');
+REPLACE INTO `item_db` VALUES ('14352','Tyr\'s_Blessing50_Box','Tyr\'s Blessing 50 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem Tyr\'s_Blessing,50;','','');
REPLACE INTO `item_db` VALUES ('14363','Heart_Scroll','Heart Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('14375','Holy_Celestial_Axe_Box','Celestial Axe Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','getitem 1383,1;','','');
REPLACE INTO `item_db` VALUES ('14376','Angeling_Pot_Box','Angeling Potion Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 12350,1;','','');
@@ -6036,9 +6036,9 @@ REPLACE INTO `item_db` VALUES ('14466','Valentine_Pledge_Box','Valentine\'s Embl
REPLACE INTO `item_db` VALUES ('14469','Ox_Tail_Scroll','Ox Tail Egg','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('14500','Insurance60','Life Insurrance Certificate','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_DEATHPENALTY,3600000,0;','','');
REPLACE INTO `item_db` VALUES ('14508','Zeny_Scroll','Zeny Pet Egg Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14509','Light_Center_Pot','Light Concentration Potion','2','800','400','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION1,1800000,0;','','');
-REPLACE INTO `item_db` VALUES ('14510','Light_Awakening_Pot','Light Awakening Potion','2','1500','750','20','0','0','0','0','0','2146959087','63','2','0','0','40',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION2,1800000,0;','','');
-REPLACE INTO `item_db` VALUES ('14511','Light_Berserk_Pot','Light Berserk Potion','2','3000','1500','20','0','0','0','0','0','31868582','63','2','0','0','85',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,1800000,0;','','');
+REPLACE INTO `item_db` VALUES ('14509','Light_Center_Pot','Light Concentration Potion','2','800','400','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION1,1800000,4;','','');
+REPLACE INTO `item_db` VALUES ('14510','Light_Awakening_Pot','Light Awakening Potion','2','1500','750','20','0','0','0','0','0','2146959087','63','2','0','0','40',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION2,1800000,6;','','');
+REPLACE INTO `item_db` VALUES ('14511','Light_Berserk_Pot','Light Berserk Potion','2','3000','1500','20','0','0','0','0','0','31868582','63','2','0','0','85',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,1800000,9;','','');
REPLACE INTO `item_db` VALUES ('14512','Meteor_10_Scroll','Meteor Storm Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill WZ_METEOR,10;','','');
REPLACE INTO `item_db` VALUES ('14513','Storm_10_Scroll','Storm Gust Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill WZ_STORMGUST,10;','','');
REPLACE INTO `item_db` VALUES ('14514','Vermilion_10_Scroll','Lord of Vermilion Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill WZ_VERMILION,10;','','');
@@ -6057,8 +6057,8 @@ REPLACE INTO `item_db` VALUES ('14526','Oriental_Pastry','Oriental Pastry','2','
REPLACE INTO `item_db` VALUES ('14527','Dun_Tele_Scroll1','Dungeon Teleport Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','callfunc \"F_CashDungeon\",1;','','');
REPLACE INTO `item_db` VALUES ('14528','PVP_Tele_Scroll','PVP Teleport Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('14529','Greed_Scroll','Greed Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','itemskill BS_GREED,1;','','');
-REPLACE INTO `item_db` VALUES ('14530','Flee_30_Scroll','Evasion Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCFLEE,1800000,30;','','');
-REPLACE INTO `item_db` VALUES ('14531','Accuracy_30_Scroll','Concentration Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCHIT,1800000,30;','','');
+REPLACE INTO `item_db` VALUES ('14530','Flee_30_Scroll','Evasion Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,1800000,30;','','');
+REPLACE INTO `item_db` VALUES ('14531','Accuracy_30_Scroll','Concentration Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICHIT,1800000,30;','','');
REPLACE INTO `item_db` VALUES ('14532','Battle_Manual25','Field Manual 25%','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,25;','','');
REPLACE INTO `item_db` VALUES ('14533','Battle_Manual100','Field Manual 100%','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,100;','','');
REPLACE INTO `item_db` VALUES ('14534','Small_Life_Potion','Small Life Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','specialeffect2 320; sc_start4 SC_S_LIFEPOTION,600000,-5,5,0,0;','','');
@@ -6127,15 +6127,15 @@ REPLACE INTO `item_db` VALUES ('14596','Pierre_Treasurebox','Pierre\'s Treasure
REPLACE INTO `item_db` VALUES ('14597','PhreeoniS','Phreeoni Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,180000,4121;','','');
REPLACE INTO `item_db` VALUES ('14598','GhostringS','Ghostring Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,60000,4047;','','');
REPLACE INTO `item_db` VALUES ('14599','Greed_Scroll_C','Greed Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14600','Mental_Potion','Mental Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14601','Tyr\'s_Blessing','Tyr\'s Blessing','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCFLEE,300000,30; sc_start SC_INCHIT,300000,30; sc_start SC_PLUSATTACKPOWER,300000,20; sc_start SC_PLUSMAGICPOWER,300000,20;','','');
+REPLACE INTO `item_db` VALUES ('14600','Mental_Potion','Mental Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_SPELLBREAKER; sc_start SC_TARGET_ASPD,1800000,10;','','');
+REPLACE INTO `item_db` VALUES ('14601','Tyr\'s_Blessing','Tyr\'s Blessing','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,300000,30; sc_start SC_FOOD_BASICHIT,300000,30; sc_start SC_PLUSATTACKPOWER,300000,20; sc_start SC_PLUSMAGICPOWER,300000,20;','','');
REPLACE INTO `item_db` VALUES ('14602','TaogunkaS','Tao Gunka Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,180000,4302;','','');
REPLACE INTO `item_db` VALUES ('14603','MistressS','Mistress Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,180000,4132;','','');
REPLACE INTO `item_db` VALUES ('14604','Orc_HeroS','Orc Hero Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,60000,4143;','','');
REPLACE INTO `item_db` VALUES ('14605','Orc_LoadS','Orc Lord Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,180000,4135;','','');
REPLACE INTO `item_db` VALUES ('14606','Job_Manual25','JOB Battle Manual','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14607','Luxurious_Dinner_W','Luxurious Western Food','2','10000','5000','600','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCALLSTATUS,3600000,3;','','');
-REPLACE INTO `item_db` VALUES ('14608','Luxurious_Dinner_E','Manchu-Han Imperial Feast','2','20000','10000','1200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCALLSTATUS,3600000,6;','','');
+REPLACE INTO `item_db` VALUES ('14607','Luxurious_Dinner_W','Luxurious Western Food','2','10000','5000','600','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,3600000,3; sc_start SC_FOOD_DEX,3600000,3; sc_start SC_FOOD_AGI,3600000,3; sc_start SC_FOOD_INT,3600000,3; sc_start SC_FOOD_VIT,3600000,3; sc_start SC_FOOD_LUK,3600000,3;','','');
+REPLACE INTO `item_db` VALUES ('14608','Luxurious_Dinner_E','Manchu-Han Imperial Feast','2','20000','10000','1200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,3600000,6; sc_start SC_FOOD_DEX,3600000,6; sc_start SC_FOOD_AGI,3600000,6; sc_start SC_FOOD_INT,3600000,6; sc_start SC_FOOD_VIT,3600000,6; sc_start SC_FOOD_LUK,3600000,6;','','');
REPLACE INTO `item_db` VALUES ('14609','Spoiled_Cuisine','Spoiled Cuisine','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','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','20','10','1000','0','0','7','0','1','414946','2','2','16','0','85',NULL,'1','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','Odin\'s_Blessing_I','Odin\'s Blessing','5','0','0','0','0','0','10','0','0','2147483646','63','2','16','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql
index 5408d8023..c9b0462f2 100644
--- a/sql-files/item_db_re.sql
+++ b/sql-files/item_db_re.sql
@@ -1801,7 +1801,7 @@ REPLACE INTO `item_db` VALUES ('2682','Ring_Of_Water','Ring of Water','5','20','
REPLACE INTO `item_db` VALUES ('2683','Ring_Of_Fire','Ring of Fire','5','20','10','100','0','0','1','0','0','2147483646','63','2','136','0','20',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Fire,5;','','');
REPLACE INTO `item_db` VALUES ('2684','Ring_Of_Wind','Ring of Wind','5','20','10','100','0','0','1','0','0','2147483646','63','2','136','0','20',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Wind,5;','','');
REPLACE INTO `item_db` VALUES ('2685','Ring_Of_Earth','Ring of Earth','5','20','10','100','0','0','1','0','0','2147483646','63','2','136','0','20',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Earth,5;','','');
-REPLACE INTO `item_db` VALUES ('2686','Elven_Ears_C','Rental Elven Ears','5','1','0','0','0','0','2','0','0','2147483646','63','2','512','0','0',NULL,'0','73','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bInt,1;','','');
+REPLACE INTO `item_db` VALUES ('2686','Elven_Ears_C','Rental Elven Ears','5','1','0','0','0','0','2','0','0','2147483646','63','2','512','0','0',NULL,'0','73','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bInt,1;','','');
REPLACE INTO `item_db` VALUES ('2687','Steel_Flower_C','Rental Steel Flower','5','1','0','0','0','0','1','0','0','2147483646','63','2','1','0','0',NULL,'0','56','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubRace,RC_Plant,3;','','');
REPLACE INTO `item_db` VALUES ('2688','Critical_Ring_C','Rental Critical Ring','5','1','0','0','0','0','0','0','0','2147483646','63','2','136','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bCritical,10;','','');
REPLACE INTO `item_db` VALUES ('2689','Earring_C','Rental Earring','5','1','0','0','0','0','0','0','0','2147483646','63','2','136','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bInt,3;','','');
@@ -1892,11 +1892,11 @@ REPLACE INTO `item_db` VALUES ('2773','Krieger_Ring2','Glorious Popularized Ring
REPLACE INTO `item_db` VALUES ('2774','Krieger_Ring3','Glorious Mass-Production Ring','5','20','10','0','0','0','0','0','0','2147483646','63','2','136','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,1;','','');
REPLACE INTO `item_db` VALUES ('2775','Lure','Lure','5','20','10','100','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('2776','Cool_Towel','Adventurer\'s Trusty Towel','5','20','10','100','0','0','0','0','1','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','sc_start SC_SUMMER,-1,0;','sc_end SC_SUMMER;');
-REPLACE INTO `item_db` VALUES ('2777','Shaman_Ring','Shaman Ring','5','20','10','100','0','0','0','0','1','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bUseSPrate,-5;','','');
-REPLACE INTO `item_db` VALUES ('2778','Shaman_Earing','Shaman Earrings','5','20','10','100','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2;','','');
-REPLACE INTO `item_db` VALUES ('2779','Dark_Knight_Belt','Dark Knight Belt','5','20','10','500','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bAgi,1;','','');
-REPLACE INTO `item_db` VALUES ('2780','Dark_Knight_Glove','Dark Knight Glove','5','20','10','500','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','autobonus \"{ bonus bAspdRate,2; }\",10,10000,0,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
-REPLACE INTO `item_db` VALUES ('2781','Aumdura\'s_Grace','Aumdura\'s Benefit','5','20','10','100','0','0','1','0','1','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,1; bonus bMdef,1;','','');
+REPLACE INTO `item_db` VALUES ('2777','Shaman_Ring','Shaman Ring','5','20','10','100','0','0','0','0','1','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bUseSPrate,-5;','','');
+REPLACE INTO `item_db` VALUES ('2778','Shaman_Earing','Shaman Earrings','5','20','10','100','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2;','','');
+REPLACE INTO `item_db` VALUES ('2779','Dark_Knight_Belt','Dark Knight Belt','5','20','10','500','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bAgi,1;','','');
+REPLACE INTO `item_db` VALUES ('2780','Dark_Knight_Glove','Dark Knight Glove','5','20','10','500','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','autobonus \"{ bonus bAspdRate,2; }\",10,10000,0,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
+REPLACE INTO `item_db` VALUES ('2781','Aumdura\'s_Grace','Aumdura\'s Benefit','5','20','10','100','0','0','1','0','1','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,1; bonus bMdef,1;','','');
REPLACE INTO `item_db` VALUES ('2782','Ring_Of_Wise_King','Ring of the Ancient Wise King','5','20','10','100','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,50; bonus bMaxSP,20;','','');
REPLACE INTO `item_db` VALUES ('2783','Eyes_Stone_Ring','Eye Stone Ring','5','20','10','100','0','0','0','0','1','4294967295','63','2','136','0','70',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bCritical,2; bonus bMaxSP,25;','','');
REPLACE INTO `item_db` VALUES ('2784','Oh_Holy_Night','Christmas Musicbox','5','20','10','100','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill ALL_WEWISH,1;','','');
@@ -1940,9 +1940,9 @@ REPLACE INTO `item_db` VALUES ('2821','Acolyte_Manual','Acolyte Manual','5','0',
REPLACE INTO `item_db` VALUES ('2822','Archer_Manual','Archer Manual','5','0','0','100','0','0','0','0','0','1','47','2','136','0','1','12','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,100; skill AC_OWL,1; skill AC_CONCENTRATION,1;','','');
REPLACE INTO `item_db` VALUES ('2823','Merchant_Manual','Merchant Manual','5','0','0','100','0','0','0','0','0','1','47','2','136','0','1','12','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,100; skill MC_DISCOUNT,1; skill MC_OVERCHARGE,10; skill MC_IDENTIFY,1; skill MC_MAMMONITE,1;','','');
REPLACE INTO `item_db` VALUES ('2824','Mage_Manual','Mage Manual','5','0','0','100','0','0','0','0','0','1','47','2','136','0','1','12','0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,100; skill MG_SRECOVERY,1; skill MG_COLDBOLT,1; skill MG_FIREWALL,1; skill MG_FIREBOLT,1;','','');
-REPLACE INTO `item_db` VALUES ('2825','Shaman_EaringB','Shaman Earrings','5','20','10','100','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2;','','');
-REPLACE INTO `item_db` VALUES ('2826','Dark_Knight_BeltB','Dark Knight Belt','5','20','10','500','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bAgi,1;','','');
-REPLACE INTO `item_db` VALUES ('2827','Dark_Knight_GloveB','Dark Knight Glove','5','20','10','500','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','autobonus \"{ bonus bMaxHPrate,10; }\",10,10000,0,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
+REPLACE INTO `item_db` VALUES ('2825','Shaman_EaringB','Shaman Earrings','5','20','10','100','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2;','','');
+REPLACE INTO `item_db` VALUES ('2826','Dark_Knight_BeltB','Dark Knight Belt','5','20','10','500','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bAgi,1;','','');
+REPLACE INTO `item_db` VALUES ('2827','Dark_Knight_GloveB','Dark Knight Glove','5','20','10','500','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','autobonus \"{ bonus bMaxHPrate,10; }\",10,10000,0,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
REPLACE INTO `item_db` VALUES ('2828','Upg_Clip','Upg Clip','5','20','10','100','0','0','0','0','1','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHPrate,3; bonus bMaxSP,30;','','');
REPLACE INTO `item_db` VALUES ('2829','Greed_Clip','Greed Clip','5','0','0','0','0','0','0','0','0','2147483646','63','2','136','0','10',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('2830','Magingiorde_C','Ephemeral Magingiorde','5','20','10','0','0','0','2','0','0','4294967295','63','2','136','0','94',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,40; bonus bMdef,7;','','');
@@ -1979,9 +1979,9 @@ REPLACE INTO `item_db` VALUES ('2860','Aqua_Orb','Aqua Orb','5','20','10','200',
REPLACE INTO `item_db` VALUES ('2861','Crimson_Orb','Crimson Orb','5','20','10','200','0','0','2','0','0','512','56','2','136','0','100',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,2; bonus bInt,1; bonus2 bSubEle,Ele_Fire,15; bonus3 bAutoSpellWhenHit,WZ_SIGHTRASHER,3,30;','','');
REPLACE INTO `item_db` VALUES ('2862','Forest_Orb','Forest Orb','5','20','10','200','0','0','2','0','0','512','56','2','136','0','100',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,2; bonus bInt,1; bonus2 bSubEle,Ele_Earth,15; bonus3 bAutoSpellWhenHit,WZ_QUAGMIRE,3,30;','','');
REPLACE INTO `item_db` VALUES ('2863','Ring_Of_Valkyrie','Ring of The Valkyrie','5','0','0','0','0','0','2','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bExpAddRace,RC_Boss,5; bonus2 bExpAddRace,RC_NonBoss,5;','','');
-REPLACE INTO `item_db` VALUES ('2864','Light_Of_Cure','Light Of Cure','5','20','10','0','0','0','0','0','0','256','56','2','136','0','110',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bVit,2; bonus bHealPower,2;','','');
-REPLACE INTO `item_db` VALUES ('2865','Seal_Of_Cathedral','Seal Of Cathedral','5','20','10','0','0','0','0','0','0','256','56','2','136','0','110',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; bonus bHealPower,2;','','');
-REPLACE INTO `item_db` VALUES ('2866','Ring_Of_Archbishop','Ring Of Archbishop','5','20','10','0','0','0','0','0','0','256','56','2','136','0','110',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bHealPower,2;','','');
+REPLACE INTO `item_db` VALUES ('2864','Light_Of_Cure','Light Of Cure','5','20','10','0','0','0','0','0','0','256','56','2','136','0','110',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVit,2; bonus bHealPower,2;','','');
+REPLACE INTO `item_db` VALUES ('2865','Seal_Of_Cathedral','Seal Of Cathedral','5','20','10','0','0','0','0','0','0','256','56','2','136','0','110',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; bonus bHealPower,2;','','');
+REPLACE INTO `item_db` VALUES ('2866','Ring_Of_Archbishop','Ring Of Archbishop','5','20','10','0','0','0','0','0','0','256','56','2','136','0','110',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bHealPower,2;','','');
REPLACE INTO `item_db` VALUES ('2867','Broken_Bamboo_Piece','Broken Bamboo Piece','5','20','10','100','0','0','2','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,2;','','');
REPLACE INTO `item_db` VALUES ('2868','Green_Batik','Green Batik','5','20','10','100','0','0','1','0','0','2147483646','63','2','136','0','45',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bInt,1; bonus bDex,1; bonus bMdef,1;','','');
REPLACE INTO `item_db` VALUES ('2869','Colorful_Ketupat','Colorful Ketupat','5','20','10','100','0','0','0','0','0','2147483646','63','2','136','0','45',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bInt,1; bonus bDex,1;','','');
@@ -2000,7 +2000,7 @@ REPLACE INTO `item_db` VALUES ('2881','Orleans_Necklace','Orlean\'s Necklace','5
REPLACE INTO `item_db` VALUES ('2882','Ecoro_Cardslip','Card Sleeves ECO ?RO','5','20','10','100','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVit,1; bonus bLuk,1;','','');
REPLACE INTO `item_db` VALUES ('2883','Ur_Seal','Ur\'s Seal','5','20','10','200','0','0','4','0','1','128','56','2','136','0','100',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHPrate,2; bonus2 bSkillUseSP,LK_SPIRALPIERCE,5; bonus2 bSkillUseSP,RK_HUNDREDSPEAR,5;','','');
REPLACE INTO `item_db` VALUES ('2884','Peuz_Seal','Peuz\'s Seal','5','20','10','200','0','0','3','0','1','128','56','2','136','0','100',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,20; bonus bMaxSP,20;','','');
-REPLACE INTO `item_db` VALUES ('2885','Mother_Heart','Mother\'s Heart','5','0','0','0','0','0','0','0','0','4294967295','63','2','136','0','1','60','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,15; bonus bMatk,15; bonus2 bExpAddRace,RC_Boss,15; bonus2 bExpAddRace,RC_NonBoss,15;','','');
+REPLACE INTO `item_db` VALUES ('2885','Mother_Heart','Mother\'s Heart','5','0','0','0','0','0','0','0','0','4294967295','63','2','136','0','1','120','0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,30; bonus bMatk,30; bonus2 bExpAddRace,RC_Boss,15; bonus2 bExpAddRace,RC_NonBoss,15; skill CR_AUTOGUARD,3; skill AL_CURE,1;','','');
REPLACE INTO `item_db` VALUES ('2886','Sabah_Ring','Sapha Ring','5','20','10','100','0','0','0','0','0','4096','56','2','136','0','100',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bCritical,3; bonus2 bSkillUseSP,GC_DARKILLUSION,5;','','');
REPLACE INTO `item_db` VALUES ('2887','Nab_Ring','Nab Ring','5','20','10','100','0','0','0','0','0','4096','56','2','136','0','100',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,10; bonus bMatk,20;','','');
REPLACE INTO `item_db` VALUES ('2888','School_Bag','Attending School Back','5','20','10','1000','0','0','0','0','1','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,3; bonus bVariableCastrate,-3; if(BaseLevel<80) { bonus bMaxHP,200; bonus bMaxSP,100; }','','');
@@ -2626,7 +2626,7 @@ REPLACE INTO `item_db` VALUES ('4555','Scrat_Card','Scrat Card','6','20','10','1
REPLACE INTO `item_db` VALUES ('4556','Fenrir_Card','Fenrir Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,50; bonus bMatk,(getrefine()*5); bonus bFixedCastrate,-70;','','');
REPLACE INTO `item_db` VALUES ('4557','Weakened_Fenrir_Card','Weakened Fenrir Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,25;','','');
REPLACE INTO `item_db` VALUES ('4558','Chun_Tree_Card','Chun Tree Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Earth,20; bonus3 bAutoSpellWhenHit,PR_KYRIE,2,20;','','');
-REPLACE INTO `item_db` VALUES ('4559','Devil_Morocc_Card','Devil Morocc Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspd,1; bonus bMaxHPrate,-10;','','');
+REPLACE INTO `item_db` VALUES ('4559','Devil_Morocc_Card','Devil Morocc Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspd,1; bonus bMaxSPrate,-10;','','');
REPLACE INTO `item_db` VALUES ('4560','Clown_Card','Clown Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,20; if(readparam(bVit)>=110) { bonus bFlee,20; } if(getiteminfo(getequipid(EQI_HAND_R),11)==13) { skill BA_POEMBRAGI,10; }','','');
REPLACE INTO `item_db` VALUES ('4561','Professor_Card','Professor Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,7; if(readparam(bDex)>=110) { bonus bMatkRate,7; } bonus5 bAutoSpellWhenHit,SA_LANDPROTECTOR,5,70,BF_MAGIC,0;','','');
REPLACE INTO `item_db` VALUES ('4562','Champion_Card','Champion Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkRate,7; if(readparam(bAgi)>=110) { bonus bAtkRate,7; } bonus5 bAutoSpellWhenHit,MO_INVESTIGATE,5,70,BF_WEAPON,1;','','');
@@ -2660,7 +2660,7 @@ REPLACE INTO `item_db` VALUES ('4589','Jejeling_Card','Jejeling Card','6','20','
REPLACE INTO `item_db` VALUES ('4590','Bangungot_Card','Bangungot Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,4; bonus5 bAutoSpellWhenHit,NPC_WIDESLEEP,3,2500,BF_MAGIC,0;','','');
REPLACE INTO `item_db` VALUES ('4591','Bakonawa_Card','Bakonawa Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,4; bonus2 bAddEffWhenHit,Eff_Bleeding,2000;','','');
REPLACE INTO `item_db` VALUES ('4592','Buwaya_Card','Buwaya Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVit,4; bonus5 bAutoSpellWhenHit,NPC_WIDESTONE,3,2500,BF_MAGIC,0;','','');
-REPLACE INTO `item_db` VALUES ('4593','Menblatt_Card','Menblatt Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLongAtkDef,readparam(bDex)/10;','','');
+REPLACE INTO `item_db` VALUES ('4593','Menblatt_Card','Menblatt Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLongAtkRate,1*(readparam(bDex)/10);','','');
REPLACE INTO `item_db` VALUES ('4594','Petal_Card','Petal Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bCritAtkRate,2*(readparam(bLuk)/10);','','');
REPLACE INTO `item_db` VALUES ('4595','Cenere_Card','Cenere Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,2*(readparam(bAgi)/10); bonus bDelayrate,-2*(readparam(bAgi)/10);','','');
REPLACE INTO `item_db` VALUES ('4596','Antique_Book_Card','Antique Book Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,5*(readparam(bInt)/10);','','');
@@ -2694,7 +2694,62 @@ REPLACE INTO `item_db` VALUES ('4637','Immortal_Corps_Card','Immortal Corps Card
REPLACE INTO `item_db` VALUES ('4638','Watcher_Card','Watcher Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,30; /* When attacked by enemy, drain 5 SP from user. */','','');
REPLACE INTO `item_db` VALUES ('4639','Taffy_Card','Taffy Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkRate,1;','','');
REPLACE INTO `item_db` VALUES ('4640','Frozen_Wolf_Card','Frozen Wolf Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,1;','','');
-REPLACE INTO `item_db` VALUES ('4641','Zombie_Guard_Card','Zombie Guard Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','32','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('4641','Zombie_Guard_Card','Zombie Guard Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','32','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bSPrecovRate,-100; /*Each time you get a physical attack, recover SP by 1.*/','','');
+REPLACE INTO `item_db` VALUES ('4642','Infinite_Toad_Card','Infinite Toad Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee2,2; if (getrefine() > 6) bonus bFlee2,2; if (getrefine() > 8) bonus bFlee2,3;','','');
+REPLACE INTO `item_db` VALUES ('4643','Infinite_Vagabond_Wolf_Card','Infinite Vagabond Wolf Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,10; if (getrefine() > 6) bonus bAtk,10; if (getrefine() > 8) bonus bAtk,15;','','');
+REPLACE INTO `item_db` VALUES ('4644','Infinite_Vocal_Card','Infinite Vocal Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,5; if (getrefine() > 6) bonus bMdef,10; if (getrefine() > 8) bonus bMdef,15;','','');
+REPLACE INTO `item_db` VALUES ('4645','Infinite_Eclipse_Card','Infinite Eclipse Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,300; if (getrefine() > 6) bonus bMaxHP,300; if (getrefine() > 8) bonus bMaxHP,400;','','');
+REPLACE INTO `item_db` VALUES ('4646','Infinite_Chimera_Card','Infinite Chimera Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHPrate,8; bonus bMaxSPrate,4;','','');
+REPLACE INTO `item_db` VALUES ('4647','Infinite_Osiris_Card','Infinite_Osiris_Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHPGainValue,300;','','');
+REPLACE INTO `item_db` VALUES ('4648','Infinite_Eddga_Card','Infinite_Eddga_Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpellWhenHit,SM_PROVOKE,10,500;','','');
+REPLACE INTO `item_db` VALUES ('4649','Infinite_Phreeoni_Card','Infinite Phreeoni Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bCritical,100;','','');
+REPLACE INTO `item_db` VALUES ('4650','Infinite_Orc_Hero_Card','Infinite Orc Hero Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVit,3; bonus3 bAddEffWhenHit,Eff_Stun,10000,BF_MAGIC; /* NOTE: Works only on monsters, going to test further in Official servers if also works on players. [Frost] */','','');
+REPLACE INTO `item_db` VALUES ('4651','Infinite_Tao_Gunka_Card','Infinite Tao Gunka Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,10000; bonus bAgi,-10;','','');
+REPLACE INTO `item_db` VALUES ('4652','Nightmare_Amon_Ra_Card','Nightmare Amon Ra Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bMagicAddEle,Ele_Shadow,50; bonus2 bMagicAddEle,Ele_Undead,50; bonus2 bMagicAddRace,RC_Demon,50; bonus2 bMagicAddRace,RC_Undead,50;','','');
+REPLACE INTO `item_db` VALUES ('4653','Nightmare_Arclouse_Card','Nightmare Arclouse Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','32','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubRace,RC_Brute,20; bonus2 bSubRace,RC_Undead,20;','','');
+REPLACE INTO `item_db` VALUES ('4654','Nightmare_Mimic_Card','Nightmare Mimic Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bMagicAddRace,RC_Brute,5; bonus2 bMagicAddRace,RC_Undead,5;','','');
+REPLACE INTO `item_db` VALUES ('4655','Nightmare_Minorous_Card','Nightmare Minorous Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Brute,10; bonus2 bAddRace,RC_Undead,10;','','');
+REPLACE INTO `item_db` VALUES ('4656','Nightmare_Mummy_Card','Nightmare Mummy Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('4657','Nightmare_Ancient_Mummy_Card','Nightmare Ancient Mummy Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Neutral,15; bonus2 bMagicAtkEle,Ele_Fire,3+(getrefine()*3);','','');
+REPLACE INTO `item_db` VALUES ('4658','Nightmare_Verit_Card','Nightmare Verit Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,5; if (getrefine() > 6) bonus bMatkRate,3; if (getrefine() > 8) bonus bMatkRate,2;','','');
+REPLACE INTO `item_db` VALUES ('4659','Eggring_Card','Eggring Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,2; bonus bMaxHP,50;','','');
+REPLACE INTO `item_db` VALUES ('4660','Scout_Basilisk_Card','Scout Basilisk Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','32','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubSize,Size_Small,5; bonus2 bSubSize,Size_Medium,5;','','');
+REPLACE INTO `item_db` VALUES ('4661','Charge_Basilisk_Card','Charge Basilisk Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','32','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubSize,Size_Small,-15; bonus2 bSubSize,Size_Medium,20; bonus2 bSubSize,Size_Large,20;','','');
+REPLACE INTO `item_db` VALUES ('4662','Big_Eggring_Card','Big Eggring Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,25; bonus bMatk,25; bonus bAspdRate,10; bonus bMaxHP,1000; bonus bLongAtkRate,5; bonus bCritAtkRate,10; bonus bAtk,-5/(readparam(bStr)*10); bonus bAspdRate,-2/(readparam(bAgi)*10); bonus bMatk,-5/(readparam(bInt)*10); bonus bMaxHP,-200/(readparam(bVit)*10); bonus bLongAtkRate,-1/(readparam(bDex)*10); bonus bCritAtkRate,-2/(readparam(bLuk)*10);','','');
+REPLACE INTO `item_db` VALUES ('4663','Leaf_Lunatic_Card','Leaf Lunatic Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,5;','','');
+REPLACE INTO `item_db` VALUES ('4664','Grass_Fabre_Card','Grass Fabre Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,1; bonus bMaxHP,100;','','');
+REPLACE INTO `item_db` VALUES ('4665','Wild_Hornet_Card','Wild Hornet Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,5;','','');
+REPLACE INTO `item_db` VALUES ('4666','Swift_Roda_Frog_Card','Swift Roda Frog Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,10; bonus bMaxHP,300;','','');
+REPLACE INTO `item_db` VALUES ('4667','Hunter_Wolf_Card','Hunter Wolf Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,30;','','');
+REPLACE INTO `item_db` VALUES ('4668','Trance_Spore_Card','Trance Spore Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVit,1; bonus bInt,1;','','');
+REPLACE INTO `item_db` VALUES ('4669','Jungle_Mandragora_Card','Jungle Mandragora Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bMagicAddEle,Ele_Wind,3; if (getrefine() > 6) bonus2 bMagicAddEle,Ele_Wind,5; if (getrefine() > 8) bonus2 bMagicAddEle,Ele_Wind,7;','','');
+REPLACE INTO `item_db` VALUES ('4670','Fruit_Pom_Spider','Fruit Pom Spider','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bMagicAddEle,Ele_Fire,3; if (getrefine() > 6) bonus2 bMagicAddEle,Ele_Fire,5; if (getrefine() > 8) bonus2 bMagicAddEle,Ele_Fire,7;','','');
+REPLACE INTO `item_db` VALUES ('4671','Sorcerer_Celia_Card','Sorcerer Celia Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Sorcerer || Class == Job_Sorcerer_T) { bonus bMaxHPrate,10; bonus bMatkRate,10; }','','');
+REPLACE INTO `item_db` VALUES ('4672','Sura_Chen_Card','Sura Chen Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Sura || Class == Job_Sura_T) { bonus bMaxHPrate,10; bonus bAtkRate,10; }','','');
+REPLACE INTO `item_db` VALUES ('4673','Minstrel_Alphoccio_Card','Minstrel Alphoccio Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Minstrel || Class == Job_Minstrel_T) { bonus bMaxHPrate,15; bonus bMaxSPrate,10; }','','');
+REPLACE INTO `item_db` VALUES ('4674','Guillotine_Cross_Eremes_Card','Guillotine Cross Eremes Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Guillotine_Cross || Class == Job_Guillotine_Cross_T) { bonus bFlee2,10; bonus bAtkRate,15; }','','');
+REPLACE INTO `item_db` VALUES ('4675','Arch_Bishop_Magaleta_Card','Arch Bishop Magaleta Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Arch_Bishop || Class == Job_Arch_Bishop_T) { bonus bMaxHPrate,10; bonus bHealPower,15; }','','');
+REPLACE INTO `item_db` VALUES ('4676','Ranger_Cecil_Card','Ranger Cecil Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Ranger || Class == Job_Ranger_T) { bonus bCritical,20; bonus bLongAtkRate,15; }','','');
+REPLACE INTO `item_db` VALUES ('4677','Mechanic_Howard_Card','Merchanic Howard Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Mechanic || Class == Job_Mechanic_T) { bonus bHit,20; bonus bAtkRate,15; }','','');
+REPLACE INTO `item_db` VALUES ('4678','Warlock_Kathryne_Card','Warlock Kathryne Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Warlock || Class == Job_Warlock_T) { bonus bMdef,80; bonus bMatkRate,15; }','','');
+REPLACE INTO `item_db` VALUES ('4679','Rune_Knight_Seyren_Card','Rune Knight Seyren Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T) { bonus bAspd,2; bonus bAtkRate,15; }','','');
+REPLACE INTO `item_db` VALUES ('4680','Royal_Guard_Randel_Card','Royal Guard Randel Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Royal_Guard || Class == Job_Royal_Guard_T) { bonus bDef,350; bonus bAtkRate,10; }','','');
+REPLACE INTO `item_db` VALUES ('4681','Genetic_Flamel_Card','Genetic Flamel Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Genetic || Class == Job_Genetic_T) { bonus bFlee,20; bonus bAtkRate,15; }','','');
+REPLACE INTO `item_db` VALUES ('4682','Shadow_Chaser_Gertie_Card','Shadow Chaser Gertie Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T) { bonus bAtkRate,5; bonus bMatkRate,15; }','','');
+REPLACE INTO `item_db` VALUES ('4683','Wanderer_Trentini_Card','Wanderer Trentini Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (BaseLevel == 175) bonus bAllStats,10; if (getrefine() >= 10) bonus bAllStats,10; if (Class == Job_Wanderer || Class == Job_Wanderer_T) { bonus bMaxHPrate,10; bonus bMaxSPrate,15; }','','');
+REPLACE INTO `item_db` VALUES ('4684','True_Eremes_Guile_Card','True Eremes Guile Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,GC_CROSSIMPACT,100; if (getrefine() >= 10) bonus2 bSkillAtk,GC_CROSSIMPACT,200;','','');
+REPLACE INTO `item_db` VALUES ('4685','True_Margaretha_Sorin_Card','True Margaretha Sorin Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,AB_JUDEX,100; if (getrefine() >= 10) bonus2 bSkillAtk,AB_JUDEX,200;','','');
+REPLACE INTO `item_db` VALUES ('4686','True_Kathryne_Keyron_Card','True Kathryne Keyron Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,WL_HELLINFERNO,100; if (getrefine() >= 10) bonus2 bSkillAtk,WL_HELLINFERNO,200;','','');
+REPLACE INTO `item_db` VALUES ('4687','True_Cecil_Damon_Card','True Cecil Damon Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,RA_AIMEDBOLT,100; if (getrefine() >= 10) bonus2 bSkillAtk,RA_AIMEDBOLT,200;','','');
+REPLACE INTO `item_db` VALUES ('4688','True_Howard_Alt-Eisen_Card','True Howard Alt-Eisen Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,NC_POWERSWING,100; if (getrefine() >= 10) bonus2 bSkillAtk,NC_POWERSWING,200;','','');
+REPLACE INTO `item_db` VALUES ('4689','True_Seyren_Windsor_Card','True Seyren Windsor Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,RK_SONICWAVE,100; if (getrefine() >= 10) bonus2 bSkillAtk,RK_SONICWAVE,200;','','');
+REPLACE INTO `item_db` VALUES ('4690','True_Randel_Lawrence_Card','True Randel Lawrence Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,LG_BANISHINGPOINT,100; if (getrefine() >= 10) bonus2 bSkillAtk,LG_BANISHINGPOINT,200;','','');
+REPLACE INTO `item_db` VALUES ('4691','True_Flamel_Emure_Card','True Flamel Emure Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,GN_CARTCANNON,100; if (getrefine() >= 10) bonus2 bSkillAtk,GN_CARTCANNON,200;','','');
+REPLACE INTO `item_db` VALUES ('4692','True_Celia_Alde_Card','True Celia Alde Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SO_CLOUD_KILL,100; if (getrefine() >= 10) bonus2 bSkillAtk,SO_CLOUDKILL,200;','','');
+REPLACE INTO `item_db` VALUES ('4693','True_Chen_Liu_Card','True Chen Liu Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SR_DRAGONCOMBO,100; if (getrefine() >= 10) bonus2 bSkillAtk,SR_DRAGONCOMBO,200;','','');
+REPLACE INTO `item_db` VALUES ('4694','True_Gertie_Card','True Gertie Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SC_FEINTBOMB,100; if (getrefine() >= 10) bonus2 bSkillAtk,SC_FEINTBOMB,200;','','');
+REPLACE INTO `item_db` VALUES ('4695','True_Trentini_Card','True Trentini Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,WM_METALICSOUND,100; if (getrefine() >= 10) bonus2 bSkillAtk,WM_METALICSOUND,200;','','');
+REPLACE INTO `item_db` VALUES ('4696','True_Alphoccio_Card','True Alphoccio Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,WM_REVERBERATION,100; if (getrefine() >= 10) bonus2 bSkillAtk,WM_REVERBERATION,200;','','');
REPLACE INTO `item_db` VALUES ('4700','Strength1','STR+1','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1;','','');
REPLACE INTO `item_db` VALUES ('4701','Strength2','STR+2','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2;','','');
REPLACE INTO `item_db` VALUES ('4702','Strength3','STR+3','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,3;','','');
@@ -3284,16 +3339,16 @@ REPLACE INTO `item_db` VALUES ('5419','Evolved_Leaf','Leaves Of Grass','5','20',
REPLACE INTO `item_db` VALUES ('5420','Mask_Of_Ifrit','Ifrit Mask','5','20','10','800','0','0','12','0','1','2147483646','63','2','769','0','50',NULL,'0','421','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,2; bonus bMdef,5; bonus2 bSubEle,Ele_Fire,10; bonus2 bSubEle,Ele_Water,-10; skill MG_SIGHT,1; bonus3 bAutoSpellWhenHit,WZ_METEOR,3,50; bonus3 bAutoSpell,MG_FIREBOLT,3,50;','','sc_end SC_SIGHT;');
REPLACE INTO `item_db` VALUES ('5421','Ifrit\'s_Ear','Ifrit\'s Ears','5','20','10','300','0','0','0','0','0','2147483646','63','2','512','0','50',NULL,'0','422','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus bInt,1; bonus bStr,1; bonus bMdef,3; bonus2 bSkillAtk,MG_FIREBOLT,2; bonus2 bSkillAtk,WZ_FIREPILLAR,2; bonus2 bSkillAtk,WZ_METEOR,2; bonus2 bSkillAtk,SM_BASH,2; bonus2 bSkillAtk,SM_MAGNUM,2; bonus2 bSkillAtk,KN_PIERCE,2; bonus2 bSubEle,Ele_Fire,5; bonus2 bSubEle,Ele_Water,-5;','','');
REPLACE INTO `item_db` VALUES ('5422','Linguistic_Book_Cap','Linguistic Book Hat','5','20','10','70','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','423','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,1; bonus bMdef,2;','','');
-REPLACE INTO `item_db` VALUES ('5423','Lovecap_China','I LOVE CHINA','5','20','10','250','0','0','10','0','0','4294967295','63','2','256','0','0',NULL,'0','424','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bDex,3; bonus2 bAddRaceTolerance,RC_DemiPlayer,10;','','');
+REPLACE INTO `item_db` VALUES ('5423','Lovecap_China','I LOVE CHINA','5','20','10','250','0','0','10','0','0','4294967295','63','2','256','0','0',NULL,'0','424','0','0','0','0','9',NULL,'0',NULL,'0',NULL,'0','bonus bDex,3; bonus2 bAddRaceTolerance,RC_DemiPlayer,10;','','');
REPLACE INTO `item_db` VALUES ('5424','Fanta_Orange_Can','Fanta Orange Can Hat','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','425','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('5425','Fanta_Grape_Can','Fanta Grape Can Hat','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','426','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('5426','Karada_Meguri_Tea_Hat','Karada Meguricha Hat','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','427','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,1;','','');
REPLACE INTO `item_db` VALUES ('5427','Royal_Milk_Tea_Hat','Black Tea Kochakaden Hat','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','428','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,1;','','');
REPLACE INTO `item_db` VALUES ('5428','Bread_Bag1','RWC Anniversary Bread Envelope','5','20','10','100','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'1','429','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRaceTolerance,RC_DemiPlayer,12;','','');
REPLACE INTO `item_db` VALUES ('5429','Bogy_Cap','Dokebi Hat','5','20','10','100','0','0','4','0','1','4294967295','63','2','256','0','0',NULL,'1','430','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHPrecovRate,5; bonus bSPrecovRate,5;','','');
-REPLACE INTO `item_db` VALUES ('5430','Sacred_Torch_Coronet','Promethean Crown','5','20','10','250','0','0','6','0','0','4294967295','63','2','256','0','0',NULL,'0','431','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Fire,20; skill MG_FIREBOLT,5;','','');
+REPLACE INTO `item_db` VALUES ('5430','Sacred_Torch_Coronet','Promethean Crown','5','20','10','250','0','0','6','0','0','4294967295','63','2','256','0','0',NULL,'0','431','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Fire,20; skill MG_FIREBOLT,5;','','');
REPLACE INTO `item_db` VALUES ('5431','Chicken_Hat','Chicken Hat','5','20','10','1000','0','0','0','0','1','4294967295','63','2','256','0','30',NULL,'1','432','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,MC_LOUD,1,30; bonus bAspdRate,5;','','');
-REPLACE INTO `item_db` VALUES ('5432','Brazil_Baseball_Cap','bRO 4th Anniversary Hat','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','433','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(gettime(6)==9&&gettime(5)>=10&&gettime(5)<=24) bonus bAllStats,4;','','');
+REPLACE INTO `item_db` VALUES ('5432','Brazil_Baseball_Cap','bRO 4th Anniversary Hat','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','433','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (gettime(GETTIME_MONTH) == SEPTEMBER && gettime(GETTIME_DAYOFMONTH) >= 10 && gettime(GETTIME_DAYOFMONTH) <= 24) bonus bAllStats,4;','','');
REPLACE INTO `item_db` VALUES ('5433','Golden_Wreath','Champion\'s Wreath','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','434','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('5434','Cola_Can','Coca-Cola Bottle','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','435','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('5435','Coke_Hat','Coca-Cola Hat','5','20','10','100','0','0','2','0','1','4294967295','63','2','256','0','40',NULL,'1','436','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,1; bonus bMaxSP,80; bonus bMdef,3; if(getrefine()>5) { bonus bMdef,getrefine()-5; bonus bMaxSP,(getrefine()-5)*10; }','','');
@@ -3340,11 +3395,11 @@ REPLACE INTO `item_db` VALUES ('5475','Cube_Mask','Quove Hat','5','20','10','100
REPLACE INTO `item_db` VALUES ('5476','Hairband_Of_Grandpeco','Grand Peco Headdress','5','20','10','800','0','0','5','0','0','4294967295','63','2','768','0','0',NULL,'1','473','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bMaxHPrate,-10; bonus2 bAddRace2,RC2_Orc,15;','','');
REPLACE INTO `item_db` VALUES ('5477','Bro_Flag','Brazilian Flag Hat','5','20','10','100','0','0','2','0','1','4294967295','63','2','256','0','30',NULL,'1','474','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('5478','Classic_Hat','Classic Hat','5','20','10','500','0','0','4','0','0','4294967295','63','2','256','0','0',NULL,'1','475','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bMaxHP,300;','','');
-REPLACE INTO `item_db` VALUES ('5479','Shaman\'s_Hair_Ornament','Shaman\'s Hair Decoration','5','20','10','300','0','0','2','0','0','4294967295','63','2','256','0','0',NULL,'1','476','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3; bonus bMaxHP,50; bonus2 bSubEle,Ele_Neutral,5;','','');
-REPLACE INTO `item_db` VALUES ('5480','Bizofnil_Wing_Deco','Bijofnil Wings','5','20','10','1000','0','0','6','0','0','4294967295','63','2','256','0','0',NULL,'1','477','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,2; bonus3 bAutoSpell,PR_IMPOSITIO,3,3;','','');
-REPLACE INTO `item_db` VALUES ('5481','Hermose_Cap','Hermode Cap','5','20','10','1000','0','0','2','0','1','4294967295','63','2','256','0','0',NULL,'1','478','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,10; bonus bBaseAtk,-20; bonus bMatkRate,-10;','','');
-REPLACE INTO `item_db` VALUES ('5482','Dark_Knight_Mask','Dark Knight Mask','5','20','10','3000','0','0','5','0','0','4294967295','63','2','769','0','0',NULL,'1','479','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bStr,3;','','');
-REPLACE INTO `item_db` VALUES ('5483','Odin_Mask','Odin Mask','5','20','10','100','0','0','1','0','0','4294967295','63','2','513','0','0',NULL,'0','480','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus bHit,-10; bonus2 bAddRace,RC_DemiPlayer,6;','','');
+REPLACE INTO `item_db` VALUES ('5479','Shaman\'s_Hair_Ornament','Shaman\'s Hair Decoration','5','20','10','300','0','0','2','0','0','4294967295','63','2','256','0','0',NULL,'1','476','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3; bonus bMaxHP,50; bonus2 bSubEle,Ele_Neutral,5;','','');
+REPLACE INTO `item_db` VALUES ('5480','Bizofnil_Wing_Deco','Bijofnil Wings','5','20','10','1000','0','0','6','0','0','4294967295','63','2','256','0','0',NULL,'1','477','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,2; bonus3 bAutoSpell,PR_IMPOSITIO,3,3;','','');
+REPLACE INTO `item_db` VALUES ('5481','Hermose_Cap','Hermode Cap','5','20','10','1000','0','0','2','0','1','4294967295','63','2','256','0','0',NULL,'1','478','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,10; bonus bBaseAtk,-20; bonus bMatkRate,-10;','','');
+REPLACE INTO `item_db` VALUES ('5482','Dark_Knight_Mask','Dark Knight Mask','5','20','10','3000','0','0','5','0','0','4294967295','63','2','769','0','0',NULL,'1','479','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bStr,3;','','');
+REPLACE INTO `item_db` VALUES ('5483','Odin_Mask','Odin Mask','5','20','10','100','0','0','1','0','0','4294967295','63','2','513','0','0',NULL,'0','480','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus bHit,-10; bonus2 bAddRace,RC_DemiPlayer,6;','','');
REPLACE INTO `item_db` VALUES ('5484','Taiwan_Flag_Hat','Holidays Hat','5','20','10','500','0','0','8','0','0','4294967295','63','2','256','0','0',NULL,'0','482','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,5; bonus bInt,5; bonus bVit,5; bonus bDex,5; bonus bAgi,5; bonus bLuk,5;','','');
REPLACE INTO `item_db` VALUES ('5485','Tiger_Face','Tiger Face','5','20','10','1000','0','0','3','0','0','4294967295','63','2','769','0','60',NULL,'1','483','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRaceTolerance,RC_Brute,5; bonus2 bAddRace,RC_Brute,5; bonus2 bMagicAddRace,RC_Brute,5;','','');
REPLACE INTO `item_db` VALUES ('5486','J_Anniversary_Hat','Anniversary Hat','5','20','10','300','0','0','6','0','0','4294967295','63','2','256','0','0',NULL,'1','395','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,2;','','');
@@ -3438,7 +3493,7 @@ REPLACE INTO `item_db` VALUES ('5573','Bogy_Horn','Dokebi Horn','5','20','10','1
REPLACE INTO `item_db` VALUES ('5574','Pencil_In_Mouth','Well-Chewed Pencil','5','20','10','100','0','0','0','0','0','4294967295','63','2','1','0','10',NULL,'0','555','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus bDex,2; bonus bHitRate,3;','','');
REPLACE INTO `item_db` VALUES ('5575','Onigiri_Hat','Rice Ball Hat','5','20','10','100','0','0','6','0','1','4294967295','63','2','256','0','30',NULL,'0','556','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('5576','Japan_Winecup','Wine Cup','5','20','10','100','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','557','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0;','','');
-REPLACE INTO `item_db` VALUES ('5577','Dark_Knight_MaskB','Dark Knight Mask','5','20','10','3000','0','0','5','0','0','4294967295','63','2','769','0','0',NULL,'1','479','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','bonus bDex,3; bonus bStr,3;','','');
+REPLACE INTO `item_db` VALUES ('5577','Dark_Knight_MaskB','Dark Knight Mask','5','20','10','3000','0','0','5','0','0','4294967295','63','2','769','0','0',NULL,'1','479','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','bonus bDex,3; bonus bStr,3;','','');
REPLACE INTO `item_db` VALUES ('5578','Voyage_Hat','Voyage Hat','5','200','100','10','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','236','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2;','','');
REPLACE INTO `item_db` VALUES ('5579','Wanderer\'s_Sakkat','Wanderer\'s Sakkat','5','20','10','300','0','0','2','0','1','4294967295','63','2','768','0','0',NULL,'1','558','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus bFlee,3; if(getrefine()>6) { bonus bFlee,2; bonus bAgi,2; } if(getrefine()>8) { bonus bCritical,10; bonus bAspdRate,8; }','','');
REPLACE INTO `item_db` VALUES ('5580','Red_Beret','Red Beret','5','20','10','100','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'0','559','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,5; bonus2 bAddRace,RC_Player,5; bonus2 bAddRaceTolerance,RC_DemiPlayer,5; bonus2 bAddRaceTolerance,RC_Player,5;','','');
@@ -3740,7 +3795,7 @@ REPLACE INTO `item_db` VALUES ('5906','Oni_Horns_','Oni Horns','5','20','10','20
REPLACE INTO `item_db` VALUES ('5907','Sea_Captain_Hat','Sea Captain Hat','5','20','10','200','0','0','20','0','1','1024','56','2','256','0','100',NULL,'1','1128','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,NC_AXETORNADO,20; bonus2 bSkillAtk,NC_AXEBOOMERANG,20; if(getrefine()>6) { bonus2 bSkillAtk,NC_AXETORNADO,getskilllv(BS_WEAPONRESEARCH); } if(getrefine()>8) { bonus2 bSkillAtk,NC_AXETORNADO,getskilllv(NC_TRAININGAXE); }','','');
REPLACE INTO `item_db` VALUES ('5918','Gambler_Seal','Gambler Seal','5','20','10','500','0','0','0','0','0','4294967295','63','2','512','0','70',NULL,'0','1202','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bCritical,3; bonus bCritAtkRate,3;','','');
REPLACE INTO `item_db` VALUES ('5921','Fish_Monster\'s_Grill','Fish Monster\'s Grill','5','0','0','200','0','0','1','0','0','4294967295','63','2','512','0','10',NULL,'1','1218','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('5932','Birdcage_of_paradise','Birdcage of paradise','5','20','10','800','0','0','6','0','0','4294967295','63','2','256','0','40',NULL,'1','1286','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,5; bonus bCritical,5; bonus bFlee2,5; if(BaseClass==Job_Ranger||BaseClass==Job_Ranger_T) { skill HT_BLITZBEAT,5*getrefine(); if (isequipped(Ixion_Wing)) { skill HT_BLITZBEAT,5*getequiprefinerycnt(EQI_HAND_R); } }','','');
+REPLACE INTO `item_db` VALUES ('5932','Birdcage_Of_Paradise','Birdcage Of Paradise','5','20','10','800','0','0','6','0','0','4294967295','63','2','256','0','40',NULL,'1','1286','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,5; bonus bCritical,5; bonus bFlee2,5; if (Class == Job_Ranger || Class == Job_Ranger_T) { skill HT_BLITZBEAT,5*getrefine(); }','','');
REPLACE INTO `item_db` VALUES ('5933','Crow_Tengu_Mask','Crow Tengu Mask','5','20','10','300','0','0','0','0','0','4294967295','63','2','512','0','80',NULL,'1','1287','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkRate,1; bonus bLongAtkRate,2; if(readparam(bStr)>=108) { bonus bAtkRate,1; bonus bLongAtkRate,2; } if(readparam(bStr)>=120) { bonus bAtkRate,2; bonus bLongAtkRate,3; }','','');
REPLACE INTO `item_db` VALUES ('5934','Happy_Balloon','Happy Balloon','5','0','0','100','0','0','0','0','0','4294967295','63','2','1','0','10',NULL,'0','1289','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus bMdef,5; bonus2 bAddMonsterDropItem,644,30; /*Custom - JRO*/ /*+Mistcase card, when base Luk is 77 or more, Has change to drops \\\'Happy Box\\\' when killing a monster.*/','','');
REPLACE INTO `item_db` VALUES ('5941','Joystick_Hat','Joystick Hat','5','0','0','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','1305','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,5; bonus bLuk,5; bonus4 bAutoSpell,BS_ADRENALINE,5,100,0; bonus5 bAutoSpellWhenHit,AC_CONCENTRATION,5,100,BF_WEAPON,0;','','');
@@ -3885,14 +3940,14 @@ REPLACE INTO `item_db` VALUES ('6132','Ticket_Incubus','Incubus Exchange Coupon'
REPLACE INTO `item_db` VALUES ('6133','Ticket_Miyabi_Ningyo','Miyabi Ningyo Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6134','Ticket_Whisper','Giant Whisper Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6135','Ticket_Wicked_Nymph','Evil Nymph Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('6136','Ticket_Medusa','Medusa Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('6136','Ticket_Medusa','Medusa Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6137','Ticket_Stoneshooter','Stone Shooter Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6138','Ticket_Marionette','Marionette Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6139','Ticket_Leafcat','Leaf Cat Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6140','Ticket_Dullahan','Dullahan Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6141','Ticket_Shinobi','Shinobi Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('6142','Ticket_Golem','Golem Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('6143','Ticket_Civil_Servant','Civil Servant Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('6142','Ticket_Golem','Golem Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('6143','Ticket_Civil_Servant','Civil Servant Exchange Coupon','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6144','Heartbroken_Tears','Regrettable Tears','3','1250','625','2','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6145','Vulcan_Bullet','Vulcan Bullet','3','12','6','2','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6146','Magic_Gear_Fuel','Magic Gear Fuel','3','375','187','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -3990,7 +4045,7 @@ REPLACE INTO `item_db` VALUES ('6238','Guarantee_Weapon_11Up','Safe to 11 Weapon
REPLACE INTO `item_db` VALUES ('6239','Guarantee_Armor_11Up','Safe to 11 Armor Certificate','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6240','HD_Oridecon','HD Oridecon','3','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6241','HD_Elunium','HD Elunium','3','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('6242','Midgard_Coin','Midgard Coin','3','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('6242','Midgard_Coin','Midgard Coin','3','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','9',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6243','Exchange_Coupon','WPS Point Token','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6244','Gun_Powder','Gun Powder','3','10','5','1','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6245','Black_Powder','Black Powder','3','125','62','1','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4343,7 +4398,7 @@ REPLACE INTO `item_db` VALUES ('6682','Bag_Of_Selling_Goods','Bag Of Selling Goo
REPLACE INTO `item_db` VALUES ('6712','Lovely_Stick','Love Wand','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6804','Organic_Pumpkin','Organic Pumpkin','3','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6805','Inorganic_Pumpkin','Inorganic Pumpkin','3','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('6821','Solo_Troops_Badge','Single Union Badge','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('6821','Solo_Troops_Badge','Single Union Badge','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6913','Sacred_Rosary','Sacred Rosary','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6914','Black_Soul','Black Soul','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6915','Captured_Soul','Captured Soul','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4545,7 +4600,7 @@ REPLACE INTO `item_db` VALUES ('7195','Air_Rifle','Slingshot','3','210','105','1
REPLACE INTO `item_db` VALUES ('7196','Shoulder_Protection','Shoulder Protector','3','230','115','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7197','Tough_Vines','Tough Vines','3','500','250','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7198','Great_Leaf','Huge Leaf','3','610','305','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7199','Coupon','Event Tickets','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','448',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7199','Coupon','Event Tickets','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7200','Flexible_String','Elastic Band','3','380','190','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7201','Log','Log','3','250','125','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7202','Beetle_Nipper','Pincher of Beetle','3','290','145','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4866,10 +4921,10 @@ REPLACE INTO `item_db` VALUES ('7517','Gold_Coin_','Gold Coin','3','1000','500',
REPLACE INTO `item_db` VALUES ('7518','Women\'s_Medal','Women\'s Medal','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7519','Money_Envelope','Handsel','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7520','Chinese_Scroll','Please Be Rich','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7521','Flame_Stone','Flame Stone','3','150','75','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7522','Ice_Stone','Ice Stone','3','150','75','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7523','Wind_Stone','Wind Stone','3','150','75','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7524','Shadow_Orb','Shadow Orb','3','300','150','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7521','Flame_Stone','Flame Stone','3','112','56','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7522','Ice_Stone','Ice Stone','3','112','56','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7523','Wind_Stone','Wind Stone','3','112','56','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7524','Shadow_Orb','Shadow Orb','3','225','112','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7525','Summer_Feast_Ticket','Summer Festival Ticket','3','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7526','Manuscript_Paper','Manuscript Paper','3','2','1','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7527','Life_Book','Book About True Life','3','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','506',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -5022,18 +5077,18 @@ REPLACE INTO `item_db` VALUES ('7726','Token_Of_King','Token of King','3','20','
REPLACE INTO `item_db` VALUES ('7727','HP_Doctor_Ticket','HP Doctor Ticket','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7728','SP_Doctor_Ticket','SP Doctor Ticket','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7729','Rok_Star_Badge','Rok Star Badge','3','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7730','Mission_Certificate1','Mission Ticket 1','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7731','Mission_Certificate2','Mission Ticket 2','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7732','Mission_Certificate3','Mission Ticket 3','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7733','Mission_Certificate4','Mission Ticket 4','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7734','Mission_Certificate5','Mission Ticket 5','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7735','Mission_Certificate6','Mission Ticket 6','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7736','Mission_Certificate7','Mission Ticket 7','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7737','Mission_Certificate8','Mission Ticket 8','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7738','Mission_Certificate9','Mission Ticket 9','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7739','Mission_Certificate10','Mission Ticket 10','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7740','Mission_Certificate11','Mission Ticket 11','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7741','Mission_Certificate12','Mission Ticket 12','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','392',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7730','Mission_Certificate1','Mission Ticket 1','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7731','Mission_Certificate2','Mission Ticket 2','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7732','Mission_Certificate3','Mission Ticket 3','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7733','Mission_Certificate4','Mission Ticket 4','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7734','Mission_Certificate5','Mission Ticket 5','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7735','Mission_Certificate6','Mission Ticket 6','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7736','Mission_Certificate7','Mission Ticket 7','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7737','Mission_Certificate8','Mission Ticket 8','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7738','Mission_Certificate9','Mission Ticket 9','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7739','Mission_Certificate10','Mission Ticket 10','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7740','Mission_Certificate11','Mission Ticket 11','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7741','Mission_Certificate12','Mission Ticket 12','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','8',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7742','Kaong','Kaong','3','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7743','Gulaman','Gulaman','3','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7744','Leche_Flan','Leche Flan','3','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -5249,8 +5304,8 @@ REPLACE INTO `item_db` VALUES ('7955','Lost_Card1','Forgotten Card 1','3','10','
REPLACE INTO `item_db` VALUES ('7956','Lost_Card2','Forgotten Card 2','3','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7957','Lost_Card3','Forgotten Card 3','3','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7958','Lost_Card4','Forgotten Card 4','3','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7959','Ancient_Gold_Coin','UP Coin','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('7960','Ancient_Silver_Coin','Ancient Silver','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7959','Ancient_Gold_Coin','UP Coin','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('7960','Ancient_Silver_Coin','Ancient Silver','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7961','Weapon_Exchange','Weapon Exchange Ticket','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7962','Treasure_Map1','Treasure Map1','3','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('7963','Treasure_Map2','Treasure Map2','3','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -5317,7 +5372,7 @@ REPLACE INTO `item_db` VALUES ('9024','Bapho_Jr._Egg','Bapho Jr. Egg','7','20','
REPLACE INTO `item_db` VALUES ('9025','Bongun_Egg','Bongun Egg','7','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('9026','Zherlthsh_Egg','Zealotus Egg','7','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('9027','Alice_Egg','Alice Egg','7','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('9028','Rice_Cake_Egg','Hard Rice Cake','7','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','465',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('9028','Rice_Cake_Egg','Hard Rice Cake','7','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('9029','Santa_Goblin_Egg','X-mas Goblin\'s Egg','7','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('9030','Chung_E_Egg','Green Maiden Egg','7','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('9031','Spring_Rabbit_Egg','Spring Rabbit Egg','7','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -5598,7 +5653,7 @@ REPLACE INTO `item_db` VALUES ('12071','Str_Dish06','Shiny Marinade Beef','0','0
REPLACE INTO `item_db` VALUES ('12072','Str_Dish07','Whole Roast','0','0','0','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,7; percentheal 10,4;','','');
REPLACE INTO `item_db` VALUES ('12073','Str_Dish08','Bearfoot Special','0','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,8; percentheal 15,6;','','');
REPLACE INTO `item_db` VALUES ('12074','Str_Dish09','Tendon Satay','0','0','0','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,9; percentheal 15,8;','','');
-REPLACE INTO `item_db` VALUES ('12075','Str_Dish10','Steamed Tongue','0','0','0','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,10; percentheal 20,20;','','');
+REPLACE INTO `item_db` VALUES ('12075','Str_Dish10','Steamed Tongue','0','0','0','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1200000,10; percentheal 20,10;','','');
REPLACE INTO `item_db` VALUES ('12076','Int_Dish06','Red Mushroom Wine','0','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1200000,6; percentheal 2,10;','','');
REPLACE INTO `item_db` VALUES ('12077','Int_Dish07','Special Royal Jelly Herbal Tea','0','0','0','800','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1200000,7; percentheal 4,10;','','');
REPLACE INTO `item_db` VALUES ('12078','Int_Dish08','Royal Family Tea','0','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1200000,8; percentheal 6,10;','','');
@@ -5624,8 +5679,8 @@ REPLACE INTO `item_db` VALUES ('12097','Luk_Dish07','Assorted Shish Kebob','0','
REPLACE INTO `item_db` VALUES ('12098','Luk_Dish08','Strawberry Flavored Rice Ball','0','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1200000,8; percentheal 9,3;','','');
REPLACE INTO `item_db` VALUES ('12099','Luk_Dish09','Blood Flavored Soda','0','0','0','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1200000,9; percentheal 10,4;','','');
REPLACE INTO `item_db` VALUES ('12100','Luk_Dish10','Cooked Nine Tail\'s Tails','0','0','0','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1200000,10; percentheal 14,8;','','');
-REPLACE INTO `item_db` VALUES ('12101','Citron','Citron','0','20','10','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12102','Meat_Skewer','Grilled Skewer','0','20','10','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12101','Citron','Citron','0','20','10','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,180000,30;','','');
+REPLACE INTO `item_db` VALUES ('12102','Meat_Skewer','Grilled Skewer','0','20','10','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICHIT,180000,30;','','');
REPLACE INTO `item_db` VALUES ('12103','Bloody_Dead_Branch','Bloody Branch','2','10000','5000','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','monster \"this\",-1,-1,\"--ja--\",-3,1,\"\";','','');
REPLACE INTO `item_db` VALUES ('12104','Random_Quiver','Random Quiver','2','10000','5000','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12104,1;','','');
REPLACE INTO `item_db` VALUES ('12105','Set_Of_Taiming_Item','Taming Gift Set','2','10000','5000','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12105,1; getrandgroupitem 12105,1; getrandgroupitem 12105,1;','','');
@@ -5656,7 +5711,7 @@ REPLACE INTO `item_db` VALUES ('12129','Fantastic_Cooking_Kits','Fantastic Cooki
REPLACE INTO `item_db` VALUES ('12130','Cookie_Bag','Cookie Bag','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12130,1; getrandgroupitem 12130,1; getrandgroupitem 12130,1;','','');
REPLACE INTO `item_db` VALUES ('12131','Lucky_Potion','Lucky Potion','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12132','Red_Bag','Santa\'s Bag','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_XMAS,600000,0;','','');
-REPLACE INTO `item_db` VALUES ('12133','Ice_Cream_','McDonald\'s Ice Cone','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(gettime(5)!=MDiceCone) { MDiceCone = gettime(5); percentheal 50,50; }','','');
+REPLACE INTO `item_db` VALUES ('12133','Ice_Cream_','McDonald\'s Ice Cone','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (gettime(GETTIME_DAYOFMONTH) != MDiceCone) { MDiceCone = gettime(GETTIME_DAYOFMONTH); percentheal 50,50; }','','');
REPLACE INTO `item_db` VALUES ('12134','Red_Envelope','Red Envelope','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','Zeny += rand(1000,10000);','','');
REPLACE INTO `item_db` VALUES ('12135','Green_Ale','Green Ale','2','20','10','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,50; sc_start SC_CONFUSION,10000,0,1000,SCFLAG_NONE;','','');
REPLACE INTO `item_db` VALUES ('12136','Women\'s_Bundle','Women\'s Bundle','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem callfunc(\"F_RandMes\",4,558,529,2668,7518),1;','','');
@@ -5721,16 +5776,16 @@ REPLACE INTO `item_db` VALUES ('12194','Hometown_Gift','Hometown Gift','2','20',
REPLACE INTO `item_db` VALUES ('12195','Plain_Rice_Cake','Plain Rice Cake','0','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 0,20;','','');
REPLACE INTO `item_db` VALUES ('12196','Hearty_Rice_Cake','Hearty Rice Cake','0','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,0;','','');
REPLACE INTO `item_db` VALUES ('12197','Salty_Rice_Cake','Salty Rice Cake','0','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 10,10;','','');
-REPLACE INTO `item_db` VALUES ('12198','Lucky_Rice_Cake','Lucky Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCLUK,1200000,21;','','');
+REPLACE INTO `item_db` VALUES ('12198','Lucky_Rice_Cake','Lucky Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1200000,21;','','');
REPLACE INTO `item_db` VALUES ('12199','Rice_Scroll','Scroll of Magic','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12200','Event_Cake','X-mas Cake','11','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill PR_MAGNIFICAT,3;','','');
REPLACE INTO `item_db` VALUES ('12201','Red_Box_C','Commonplace Red Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12202','Str_Dish10_','Steamed Tongue','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12203','Agi_Dish10_','Steamed Scorpion','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_AGI_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12204','Int_Dish10_','Dragon Breath Cocktail','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12205','Dex_Dish10_','Hwergelmir\'s Tonic','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12206','Luk_Dish10_','Cooked Nine Tail\'s Tails','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK_CASH,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12207','Vit_Dish10_','Stew Of Immortality','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_VIT_CASH,1800000,10; percentheal 15,5;','','');
+REPLACE INTO `item_db` VALUES ('12202','Str_Dish10_','Steamed Tongue','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1800000,10; percentheal 20,10;','','');
+REPLACE INTO `item_db` VALUES ('12203','Agi_Dish10_','Steamed Scorpion','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_AGI,1800000,10; percentheal 15,5;','','');
+REPLACE INTO `item_db` VALUES ('12204','Int_Dish10_','Dragon Breath Cocktail','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1800000,10; percentheal 10,20;','','');
+REPLACE INTO `item_db` VALUES ('12205','Dex_Dish10_','Hwergelmir\'s Tonic','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX,1800000,10; percentheal 10,10;','','');
+REPLACE INTO `item_db` VALUES ('12206','Luk_Dish10_','Cooked Nine Tail\'s Tails','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1800000,10; percentheal 14,8;','','');
+REPLACE INTO `item_db` VALUES ('12207','Vit_Dish10_','Stew Of Immortality','0','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_VIT,1800000,10; percentheal 25,0;','','');
REPLACE INTO `item_db` VALUES ('12208','Battle_Manual','Battle Manual','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','60000','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,50;','','');
REPLACE INTO `item_db` VALUES ('12209','Insurance','Life Insurance','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_DEATHPENALTY,1800000,0;','','');
REPLACE INTO `item_db` VALUES ('12210','Bubble_Gum','Bubble Gum','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','60000','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_RECEIVEITEM,1800000,200;','','');
@@ -5767,10 +5822,10 @@ REPLACE INTO `item_db` VALUES ('12243','M_Berserk_Potion','Mercenary Berserk Pot
REPLACE INTO `item_db` VALUES ('12244','Old_Gift_Box','Old Gift Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12244,1;','','');
REPLACE INTO `item_db` VALUES ('12245','Green_Ale_US','Green Ale','0','5000','2500','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 100,0;','','');
REPLACE INTO `item_db` VALUES ('12246','Magic_Card_Album','Mystical Card Album','2','10000','5000','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12246,1;','','');
-REPLACE INTO `item_db` VALUES ('12247','Halohalo','Halo-Halo','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCALLSTATUS,600000,3;','','');
+REPLACE INTO `item_db` VALUES ('12247','Halohalo','Halo-Halo','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,600000,3; sc_start SC_FOOD_DEX,600000,3; sc_start SC_FOOD_AGI,600000,3; sc_start SC_FOOD_INT,600000,3; sc_start SC_FOOD_VIT,600000,3; sc_start SC_FOOD_LUK,600000,3;','','');
REPLACE INTO `item_db` VALUES ('12248','Masquerade_Ball_Box','Fancy Ball Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12248,1;','','');
REPLACE INTO `item_db` VALUES ('12249','Payroll_Of_Kafra_','Payment Statement for Kafra Employee','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12250','Str_Dish10_M','Steamed Tongue','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,3600000,10; percentheal 20,20;','','');
+REPLACE INTO `item_db` VALUES ('12250','Str_Dish10_M','Steamed Tongue','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,3600000,10; percentheal 20,10;','','');
REPLACE INTO `item_db` VALUES ('12251','Agi_Dish10_M','Steamed Desert Scorpions','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_AGI,3600000,10; percentheal 15,5;','','');
REPLACE INTO `item_db` VALUES ('12252','Int_Dish10_M','Dragon Breath Cocktail','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,3600000,10; percentheal 10,20;','','');
REPLACE INTO `item_db` VALUES ('12253','Dex_Dish10_M','Hwergelmir\'s Tonic','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX,3600000,10; percentheal 10,10;','','');
@@ -5792,20 +5847,20 @@ REPLACE INTO `item_db` VALUES ('12268','Rainbow_Cake_','Rainbow Cake','2','2','1
REPLACE INTO `item_db` VALUES ('12269','Tasty_Colonel','Tasty Pink Ration','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,600000,15;','','');
REPLACE INTO `item_db` VALUES ('12270','Tasty_Major','Tasty White Ration','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,600000,15;','','');
REPLACE INTO `item_db` VALUES ('12271','Mre_A','Military Ration A','0','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','percentheal 5,0;','','');
-REPLACE INTO `item_db` VALUES ('12272','Mre_B','Military Ration B','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCHIT,600000,33;','','');
-REPLACE INTO `item_db` VALUES ('12273','Mre_C','Military Ration C','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCFLEE,600000,33;','','');
-REPLACE INTO `item_db` VALUES ('12274','Gold_Pill_1','Daehwandan','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMHPRATE,36000000,5; percentheal 10,0;','','');
-REPLACE INTO `item_db` VALUES ('12275','Gold_Pill_2','Taecheongdan','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMSPRATE,36000000,5; percentheal 0,10;','','');
+REPLACE INTO `item_db` VALUES ('12272','Mre_B','Military Ration B','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICHIT,600000,33;','','');
+REPLACE INTO `item_db` VALUES ('12273','Mre_C','Military Ration C','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,600000,33;','','');
+REPLACE INTO `item_db` VALUES ('12274','Gold_Pill_1','Daehwandan','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_ATKER_ASPD,3600000,5,10;','','');
+REPLACE INTO `item_db` VALUES ('12275','Gold_Pill_2','Taecheongdan','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_ATKER_MOVESPEED,3600000,5,10;','','');
REPLACE INTO `item_db` VALUES ('12276','Mimic_Scroll','Mimic Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2058,1800000;','','');
REPLACE INTO `item_db` VALUES ('12277','Disguise_Scroll','Disguise Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2059,1800000;','','');
REPLACE INTO `item_db` VALUES ('12278','Alice_Scroll','Alice Contract','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2060,1800000;','','');
REPLACE INTO `item_db` VALUES ('12279','Undead_Element_Scroll','Undead Elemental Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start4 SC_ARMOR_RESIST,300000,20,20,20,20;','','');
REPLACE INTO `item_db` VALUES ('12280','Holy_Element_Scroll','Holy Elemental Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_BENEDICTIO; sc_start SC_BENEDICTIO,300000,1;','','');
REPLACE INTO `item_db` VALUES ('12281','Tresure_Box_WoE','Event Treasure Box','2','20','10','150','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
-REPLACE INTO `item_db` VALUES ('12282','Internet_Cafe1','Internet Cafe1','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCALLSTATUS,5400000,3; sc_start SC_PLUSATTACKPOWER,5400000,15; sc_start SC_PLUSMAGICPOWER,5400000,15;','','');
-REPLACE INTO `item_db` VALUES ('12283','Internet_Cafe2','Internet Cafe2','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CHASEWALK2,5400000,8; sc_start SC_INCDEX,5400000,4; sc_start SC_INCAGI,5400000,6; sc_start SC_PLUSATTACKPOWER,5400000,32; sc_start SC_INCFLEE,5400000,5;','','');
-REPLACE INTO `item_db` VALUES ('12284','Internet_Cafe3','Internet Cafe3','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCINT,5400000,8; sc_start SC_INCVIT,5400000,4; sc_start SC_INCDEX,5400000,6; sc_start SC_PLUSMAGICPOWER,5400000,40;','','');
-REPLACE INTO `item_db` VALUES ('12285','Internet_Cafe4','Internet Cafe4','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCDEX,5400000,8; sc_start SC_INCLUK,5400000,4; sc_start SC_INCAGI,5400000,6; sc_start SC_PLUSATTACKPOWER,5400000,24; sc_start SC_PLUSMAGICPOWER,5400000,24;','','');
+REPLACE INTO `item_db` VALUES ('12282','Internet_Cafe1','Internet Cafe1','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,5400000,3; sc_start SC_FOOD_DEX,5400000,3; sc_start SC_FOOD_AGI,5400000,3; sc_start SC_FOOD_INT,5400000,3; sc_start SC_FOOD_VIT,5400000,3; sc_start SC_FOOD_LUK,5400000,3; sc_start SC_PLUSATTACKPOWER,5400000,15; sc_start SC_PLUSMAGICPOWER,5400000,15;','','');
+REPLACE INTO `item_db` VALUES ('12283','Internet_Cafe2','Internet Cafe2','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,5400000,8; sc_start SC_FOOD_DEX,5400000,4; sc_start SC_FOOD_AGI,5400000,6; sc_start SC_PLUSATTACKPOWER,5400000,32; sc_start SC_FOOD_BASICAVOIDANCE,5400000,5;','','');
+REPLACE INTO `item_db` VALUES ('12284','Internet_Cafe3','Internet Cafe3','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,5400000,8; sc_start SC_FOOD_VIT,5400000,4; sc_start SC_FOOD_DEX,5400000,6; sc_start SC_PLUSMAGICPOWER,5400000,40;','','');
+REPLACE INTO `item_db` VALUES ('12285','Internet_Cafe4','Internet Cafe4','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX,5400000,8; sc_start SC_FOOD_LUK,5400000,4; sc_start SC_FOOD_AGI,5400000,6; sc_start SC_PLUSATTACKPOWER,5400000,24; sc_start SC_PLUSMAGICPOWER,5400000,24;','','');
REPLACE INTO `item_db` VALUES ('12286','Masquerade_Ball_Box2','Masquerade Ball Box2','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12286,1;','','');
REPLACE INTO `item_db` VALUES ('12287','Love_Angel','Love Angel Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 1;','','');
REPLACE INTO `item_db` VALUES ('12288','Squirrel','Squirrel Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 2;','','');
@@ -5818,8 +5873,8 @@ REPLACE INTO `item_db` VALUES ('12294','PC_Bang_Coin_Box1','Blue Christmas Cheer
REPLACE INTO `item_db` VALUES ('12295','PC_Bang_Coin_Box2','Groove Pack 1','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem 2739,1;','','');
REPLACE INTO `item_db` VALUES ('12296','PC_Bang_Coin_Box3','Splendid Spring Hat Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem 2738,1;','','');
REPLACE INTO `item_db` VALUES ('12297','PC_Bang_Coin_Box4','Expanded Party Buff Scroll Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem 2738,2;','','');
-REPLACE INTO `item_db` VALUES ('12298','SP_Potion','SP Consumption Reduction Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATKER_BLOOD,3600000,15;','','');
-REPLACE INTO `item_db` VALUES ('12299','Mega_Resist_Potion','Mega Resist Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_TARGET_BLOOD,3600000,10;','','');
+REPLACE INTO `item_db` VALUES ('12298','SP_Potion','SP Consumption Reduction Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_SPELLBREAKER; sc_start SC_ATKER_BLOOD,3600000,15;','','');
+REPLACE INTO `item_db` VALUES ('12299','Mega_Resist_Potion','Mega Resist Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_GUARD; sc_start SC_TARGET_BLOOD,3600000,10;','','');
REPLACE INTO `item_db` VALUES ('12300','Wild_Rose_Scroll','Wild Rose Contract','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','mercenary_create 1965,1800000;','','');
REPLACE INTO `item_db` VALUES ('12301','Doppelganger_Scroll','Doppelganger Contract','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','mercenary_create 1966,1800000;','','');
REPLACE INTO `item_db` VALUES ('12302','Ygnizem_Scroll','Egnigem Cenia Contract','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','mercenary_create 1967,1800000;','','');
@@ -5830,25 +5885,25 @@ REPLACE INTO `item_db` VALUES ('12306','Newcomer','Freshman Magic Powder','11','
REPLACE INTO `item_db` VALUES ('12307','Kid','Kid Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 7;','','');
REPLACE INTO `item_db` VALUES ('12308','Magic_Castle','Magic Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 8;','','');
REPLACE INTO `item_db` VALUES ('12309','Bulging_Head','JJangu Magic Powder','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','setfont 9;','','');
-REPLACE INTO `item_db` VALUES ('12310','Spray_Of_Flowers','Spray Of Flowers','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'1',NULL,'0',NULL,'0','sc_start SC_INCFLEE,600000,10;','','');
+REPLACE INTO `item_db` VALUES ('12310','Spray_Of_Flowers','Spray Of Flowers','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'1',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,600000,10;','','');
REPLACE INTO `item_db` VALUES ('12311','Large_Spray_Of_Flowers','Huge Spray Of Flowers','11','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'1',NULL,'0',NULL,'0','itemskill ALL_PARTYFLEE,1;','','');
REPLACE INTO `item_db` VALUES ('12312','Thick_Manual50','Thick Battle Manual','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,3600000,50;','','');
REPLACE INTO `item_db` VALUES ('12313','Protection_Of_Angel','Guardian Angel','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'1',NULL,'0',NULL,'0','itemskill ALL_ANGEL_PROTECT,1;','','');
-REPLACE INTO `item_db` VALUES ('12314','Noive_Box','Noive Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12314','Noive_Box','Noive Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12315','Goddess_Bless','Goddess Of Blessing','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12316','Angel_Bless','Angel Of Blessing','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12317','Powder_Snow','Snow Powder','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','end;','','');
REPLACE INTO `item_db` VALUES ('12318','Little_Heart','Small Hearts','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12319','Strawberry_Cake','Rune Strawberry Cake','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCATKRATE,600000,5; sc_start SC_INCMATKRATE,600000,5;','','');
-REPLACE INTO `item_db` VALUES ('12320','Pineapple_Juice','Schwartzwald Pine Jubilee','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCHIT,600000,10; sc_start SC_PLUSAVOIDVALUE,600000,20;','','');
-REPLACE INTO `item_db` VALUES ('12321','Spicy_Sandwich','Arunafeltz Desert Sandwich','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CRITICALPERCENT,600000,7;','','');
+REPLACE INTO `item_db` VALUES ('12319','Strawberry_Cake','Rune Strawberry Cake','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,600000,5; sc_start SC_PLUSMAGICPOWER,600000,5;','','');
+REPLACE INTO `item_db` VALUES ('12320','Pineapple_Juice','Schwartzwald Pine Jubilee','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICHIT,600000,10; sc_start SC_FOOD_BASICAVOIDANCE,600000,20;','','');
+REPLACE INTO `item_db` VALUES ('12321','Spicy_Sandwich','Arunafeltz Desert Sandwich','2','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_CRITICALSUCCESSVALUE,600000,7;','','');
REPLACE INTO `item_db` VALUES ('12322','Chocolate_Pie','Chocolate Pie','0','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','percentheal 5,5;','','');
REPLACE INTO `item_db` VALUES ('12323','N_Fly_Wing','Novice Fly Wing','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'1',NULL,'0',NULL,'0','itemskill AL_TELEPORT,1;','','');
REPLACE INTO `item_db` VALUES ('12324','N_Butterfly_Wing','Novice Butterfly Wing','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'1',NULL,'0',NULL,'0','itemskill AL_TELEPORT,3;','','');
REPLACE INTO `item_db` VALUES ('12325','N_Magnifier','Novice Magnifier','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'1',NULL,'0',NULL,'0','itemskill MC_IDENTIFY,1;','','');
REPLACE INTO `item_db` VALUES ('12326','J_Firecracker','Firecracker','2','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12327','Charm_Of_Luck','Unsuitable Of Lucky','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12328','Charm_Of_Happiness','Unsuitable Of Happyness','2','1800','900','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCLUK,3600000,20;','','');
+REPLACE INTO `item_db` VALUES ('12327','Charm_Of_Luck','Unsuitable Of Lucky','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,3600000,20;','','');
+REPLACE INTO `item_db` VALUES ('12328','Charm_Of_Happiness','Unsuitable Of Happyness','2','1800','900','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,20000,10; sc_start SC_FOOD_DEX,20000,10; sc_start SC_FOOD_AGI,20000,10; sc_start SC_FOOD_INT,20000,10; sc_start SC_FOOD_VIT,20000,10; sc_start SC_FOOD_LUK,20000,10;','','');
REPLACE INTO `item_db` VALUES ('12329','Recall_MaleGM','Support Game Master','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2000,1800000;','','');
REPLACE INTO `item_db` VALUES ('12330','Recall_FemaleGM','Support Game Master','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2001,1800000;','','');
REPLACE INTO `item_db` VALUES ('12331','Ginseng','Ginseng','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','percentheal 6,0;','','');
@@ -5858,7 +5913,7 @@ REPLACE INTO `item_db` VALUES ('12334','Cherish_Box','Treasure Edition Helm Box'
REPLACE INTO `item_db` VALUES ('12335','Yummy_Skewered_Dish','Grilled Delicious Skewer','0','1000','500','350','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 60,60;','','');
REPLACE INTO `item_db` VALUES ('12336','Baked_Mushroom','Grilled Mushroom','0','500','250','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 30,30;','','');
REPLACE INTO `item_db` VALUES ('12337','Grilled_Sausage','Grilled Sausages','0','300','150','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 20,20;','','');
-REPLACE INTO `item_db` VALUES ('12338','Grilled_Corn','Grilled Corn','2','100','50','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CHASEWALK2,180000,2; sc_start SC_INCINT,180000,2; sc_start SC_INCAGI,180000,2;','','');
+REPLACE INTO `item_db` VALUES ('12338','Grilled_Corn','Grilled Corn','2','100','50','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,180000,2; sc_start SC_FOOD_INT,180000,2; sc_start SC_FOOD_AGI,180000,2;','','');
REPLACE INTO `item_db` VALUES ('12339','Cherish_Box_Ori','Treasure Edition Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12339,1;','','');
REPLACE INTO `item_db` VALUES ('12340','Mysterious_Rice_Powder','Chewy Rice Powder','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'1',NULL,'0',NULL,'0','pet 1815;','','');
REPLACE INTO `item_db` VALUES ('12341','Special_Alloy_Trap_Box','Special Alloy Trap Box','2','30000','15000','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 7940,100;','','');
@@ -5895,7 +5950,7 @@ REPLACE INTO `item_db` VALUES ('12371','Magical_Lithography','Magical Lithograph
REPLACE INTO `item_db` VALUES ('12372','Hell_Contract','Hell Contract','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','pet 1379;','','');
REPLACE INTO `item_db` VALUES ('12373','Boy\'s_Naivety','Boy\'s Pure Heart','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','pet 1370;','','');
REPLACE INTO `item_db` VALUES ('12374','Flaming_Ice','Ice Fireworks','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','pet 1837;','','');
-REPLACE INTO `item_db` VALUES ('12375','Acaraje','Akaraje','2','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_STEAL; sc_start SC_INCHITRATE,120000,5;','','');
+REPLACE INTO `item_db` VALUES ('12375','Acaraje','Akaraje','2','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_STEAL; sc_start2 SC_ACARAJE,120000,5,10;','','');
REPLACE INTO `item_db` VALUES ('12376','Mysterious_Can2','Mysterious Can2','2','10','5','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 3,0; itemskill PR_GLORIA,2;','','');
REPLACE INTO `item_db` VALUES ('12377','Mysterious_PET_Bottle2','Mysterious PET Bottle2','2','10','5','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 0,3; itemskill PR_MAGNIFICAT,1;','','');
REPLACE INTO `item_db` VALUES ('12378','2009_Rice_Cake_Soup','Rice Cake Soup','2','10','5','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,50;','','');
@@ -5916,16 +5971,16 @@ REPLACE INTO `item_db` VALUES ('12392','RepairA','Repair A','0','275','137','100
REPLACE INTO `item_db` VALUES ('12393','RepairB','Repair B','0','625','312','140','0','0','0','0','0','1024','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(checkmount() == MOUNT_MADO) itemheal rand(300,400),0;','','');
REPLACE INTO `item_db` VALUES ('12394','RepairC','Repair C','0','1375','687','180','0','0','0','0','0','1024','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(checkmount() == MOUNT_MADO) itemheal rand(400,500),0;','','');
REPLACE INTO `item_db` VALUES ('12395','Tantanmen','Tantan Noodle','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','pet 1519;','','');
-REPLACE INTO `item_db` VALUES ('12396','Fools_Day_Box','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','if(rand(1,10)==1) itemskill AL_TELEPORT,1; else if(rand(1,10)==2) itemskill AL_TELEPORT,3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill ALL_REVERSEORCISH,1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10;','','');
-REPLACE INTO `item_db` VALUES ('12397','Fools_Day_Box2','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','if(rand(1,10)==1) itemskill TF_DETOXIFY,1; else if(rand(1,10)==2) itemskill TF_PICKSTONE,1; else if(rand(1,10)==3) itemskill BA_FROSTJOKER,1; else if(rand(1,10)==4) itemskill DC_SCREAM,1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill AL_RUWACH,1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196;','','');
+REPLACE INTO `item_db` VALUES ('12396','Fools_Day_Box','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','.@temp = rand(1,10); if (.@temp == 1) itemskill AL_TELEPORT,1; else if (.@temp == 2) itemskill AL_TELEPORT,3; else if (.@temp == 3) percentheal 50,0; else if (.@temp == 4) percentheal 0,50; else if (.@temp == 5) percentheal 50,50; else if (.@temp == 6) getitem Apple,1; else if (.@temp == 7) itemskill ALL_REVERSEORCISH,1; else if (.@temp == 8) specialeffect2 EF_MAPPILLAR2; else if (.@temp == 9) specialeffect2 EF_ANGEL2; else specialeffect2 EF_COIN;','','');
+REPLACE INTO `item_db` VALUES ('12397','Fools_Day_Box2','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','.@temp = rand(1,10); if (.@temp == 1) itemskill TF_DETOXIFY,1; else if (.@temp == 2) itemskill TF_PICKSTONE,1; else if (.@temp == 3) itemskill BA_FROSTJOKER,1; else if (.@temp == 4) itemskill DC_SCREAM,1; else if (.@temp == 5) percentheal 50,50; else if (.@temp == 6) getitem Jellopy,1; else if (.@temp == 7) itemskill AL_RUWACH,1; else if (.@temp == 8) specialeffect2 EF_BEGINASURA; else if (.@temp == 9) specialeffect2 EF_MVP; else specialeffect2 EF_CURSEATTACK;','','');
REPLACE INTO `item_db` VALUES ('12398','PCBang_Gift_Box','PCRoom Gift Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12399','Castle_Treasure_Box','Castle Treasure Box','2','20','10','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12400','Water_Of_Blessing_','Water Of Blessing','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12401','Rune_Kn_Test_Int','Rune Kn Test Int','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCINT,300000,40;','','');
+REPLACE INTO `item_db` VALUES ('12401','Rune_Kn_Test_Int','Rune Kn Test Int','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,300000,40;','','');
REPLACE INTO `item_db` VALUES ('12402','29Fruit','29Truth','0','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','percentheal 5,5;','','');
REPLACE INTO `item_db` VALUES ('12403','Lucky_Egg_C2','RWC2011 Lucky Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12404','Acti_Potion','Activation Potion','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12405','Underripe_Yggseed','Unripe Seed Of Yggdrasil','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12405','Underripe_Yggseed','Unripe Seed Of Yggdrasil','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','percentheal 30,30; skilleffect AL_BLESSING,0; sc_start SC_BLESSING,140000,5;','','');
REPLACE INTO `item_db` VALUES ('12406','Psychic_ArmorS','Psychic Armor Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12407','PCBang_Coupon_Box','PCRoom Coupon Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12408','Leaf_Cat_Ball','Hydra Ball','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','pet 2081;','','');
@@ -5948,15 +6003,15 @@ REPLACE INTO `item_db` VALUES ('12424','HP_Increase_PotionL','HP Increase Potion
REPLACE INTO `item_db` VALUES ('12425','SP_Increase_PotionS','SP Increase Potion(Small)','0','100','50','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMSPRATE,500000,((BaseLevel/10)-5); percentheal 0,2;','','');
REPLACE INTO `item_db` VALUES ('12426','SP_Increase_PotionM','SP Increase Potion(Mid)','0','100','50','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMSPRATE,500000,(BaseLevel/10); percentheal 0,4;','','');
REPLACE INTO `item_db` VALUES ('12427','SP_Increase_PotionL','SP Increase Potion(Large)','0','100','50','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMSPRATE,500000,((BaseLevel/10)+5); percentheal 0,8;','','');
-REPLACE INTO `item_db` VALUES ('12428','Enrich_White_PotionZ','Enriched White PotionZ','0','100','50','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_EXTRACT_WHITE_POTION_Z,500000,0; heal 1000,0;','','');
+REPLACE INTO `item_db` VALUES ('12428','Enrich_White_PotionZ','Enriched White PotionZ','0','100','50','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_EXTRACT_WHITE_POTION_Z,500000,20; heal 1000,0;','','');
REPLACE INTO `item_db` VALUES ('12429','Savage_BBQ','Savage BBQ','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_SAVAGE_STEAK,300000,20;','','');
REPLACE INTO `item_db` VALUES ('12430','Wug_Blood_Cocktail','Warg Blood Cocktail','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_COCKTAIL_WARG_BLOOD,300000,20;','','');
REPLACE INTO `item_db` VALUES ('12431','Minor_Brisket','Minor Brisket','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_MINOR_BBQ,300000,20;','','');
REPLACE INTO `item_db` VALUES ('12432','Siroma_Icetea','Siroma Icetea','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_SIROMA_ICE_TEA,300000,20;','','');
REPLACE INTO `item_db` VALUES ('12433','Drocera_Herb_Stew','Drosera Herb Stew','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DROCERA_HERB_STEAMED,300000,20;','','');
REPLACE INTO `item_db` VALUES ('12434','Petti_Tail_Noodle','Petite Tail Noodles','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PUTTI_TAILS_NOODLES,300000,20;','','');
-REPLACE INTO `item_db` VALUES ('12435','Black_Thing','Black Thing','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_STOMACHACHE,60000,rand(5,10);','','');
-REPLACE INTO `item_db` VALUES ('12436','Vitata500','Vitata500','0','100','50','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_VITATA_500,500000,0; heal 0,200;','','');
+REPLACE INTO `item_db` VALUES ('12435','Black_Thing','Black Thing','2','1000','500','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_STOMACHACHE,60000,rand(5,10)','','');
+REPLACE INTO `item_db` VALUES ('12436','Vitata500','Vitata500','0','100','50','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_VITATA_500,500000,20,5; heal 0,200;','','');
REPLACE INTO `item_db` VALUES ('12437','Enrich_Celermine_Juice','Enrich Celermine Juice','2','100','50','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_EXTRACT_SALAMINE_JUICE,500000,10;','','');
REPLACE INTO `item_db` VALUES ('12438','F_Giant_Fly_Wing','Giant Fly Wing','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12439','F_Battle_Manual','Old Battle Manual','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6049,11 +6104,11 @@ REPLACE INTO `item_db` VALUES ('12527','E_Adrenaline_Scroll','E Adrenaline Scrol
REPLACE INTO `item_db` VALUES ('12528','E_Convex_Mirror','E Convex Mirror','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12529','White_Slim_Potion_Box','Condensed White Potion Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12530','Mastela_Fruit_Box','Mastela Fruit Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12531','White_Potion_Box','White Potion 100 Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 504,100;','','');
-REPLACE INTO `item_db` VALUES ('12532','Royal_Jelly_Box2','Royal Jelly Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 526,100;','','');
-REPLACE INTO `item_db` VALUES ('12533','Blue_Herb_Box2','Blue Herb Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 510,100;','','');
-REPLACE INTO `item_db` VALUES ('12534','Yggdrasil_Seed_Box','Yggdrasil Seed Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12536','NY_Rice_Cake_Soup','New Year\'s Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12531','White_Potion_Box','White Potion 100 Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem White_Potion,100;','','');
+REPLACE INTO `item_db` VALUES ('12532','Royal_Jelly_Box2','Royal Jelly Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Royal_Jelly,100;','','');
+REPLACE INTO `item_db` VALUES ('12533','Blue_Herb_Box2','Blue Herb Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Blue_Herb,100;','','');
+REPLACE INTO `item_db` VALUES ('12534','Yggdrasil_Seed_Box','Yggdrasil Seed Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Seed_Of_Yggdrasil,30;','','');
+REPLACE INTO `item_db` VALUES ('12536','NY_Rice_Cake_Soup','New Year\'s Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 20,20;','','');
REPLACE INTO `item_db` VALUES ('12537','Solo_Gift_Basket','Gift Chocolate Basket','2','1000','500','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12538','Couple_Event_Basket','Firecracker Basket','2','2000','1000','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12539','Splendid_Box','Brilliant Box','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6063,11 +6118,11 @@ REPLACE INTO `item_db` VALUES ('12542','Fortune_Cookie2','Fortune Cookie2','2','
REPLACE INTO `item_db` VALUES ('12543','Fortune_Cookie3','Fortune Cookie3','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12544','Mystic_Tree_Branch','Mystic Tree Branch','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12545','Lucky_Egg_C5','Fortune Egg','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
-REPLACE INTO `item_db` VALUES ('12546','Suspicious_Dish','Dark matter','2','100','50','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_POISON,50000,0;','','');
+REPLACE INTO `item_db` VALUES ('12546','Suspicious_Dish','Dark matter','2','100','50','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_POISON,12000,0;','','');
REPLACE INTO `item_db` VALUES ('12547','Chalcenodny_Box','Chalcenodny Box','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12548','Buy_Market_Permit2','Black Market Bulk Buyer Shop License','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','buyingstore 2;','','');
-REPLACE INTO `item_db` VALUES ('12549','White_Slim_Pot_Box2','Condensed White Potion 200 Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 547,200;','','');
-REPLACE INTO `item_db` VALUES ('12550','Poison_Bottle_Box2','Poison Bottle Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 678,30;','','');
+REPLACE INTO `item_db` VALUES ('12549','White_Slim_Pot_Box2','Condensed White Potion 200 Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem White_Slim_Potion,200;','','');
+REPLACE INTO `item_db` VALUES ('12550','Poison_Bottle_Box2','Poison Bottle Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Poison_Bottle,30;','','');
REPLACE INTO `item_db` VALUES ('12551','MVP_Tele_Scroll','MVP Tele Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12552','Quest_Tele_Scroll','Quest Tele Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12553','Brysinggamen_Piece_Box','Brysinggamen Keep Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6092,8 +6147,8 @@ REPLACE INTO `item_db` VALUES ('12571','Cheer_Scarf10_Box','Cheering scarf X Box
REPLACE INTO `item_db` VALUES ('12572','Cheer_Scarf10_Box2','Cheering scarf X Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12573','Fruit_Basket','Fruit Basket','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12574','Mora_Berry','Mora Berry','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','120',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 0,rand(50,65);','','');
-REPLACE INTO `item_db` VALUES ('12575','Arrow_Of_Elf_Cntr','Elf\'s Arrow Quiver','2','500','250','250','0','0','0','0','0','4294967295','63','2','0','0','100',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 1773,500;','','');
-REPLACE INTO `item_db` VALUES ('12576','Hunting_Arrow_Cntr','Hunting Arrow Quiver','2','500','250','250','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 1774,500;','','');
+REPLACE INTO `item_db` VALUES ('12575','Arrow_Of_Elf_Cntr','Elf\'s Arrow Quiver','2','500','250','250','0','0','0','0','0','4294967295','63','2','0','0','100',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Arrow_Of_Elf,500;','','');
+REPLACE INTO `item_db` VALUES ('12576','Hunting_Arrow_Cntr','Hunting Arrow Quiver','2','500','250','250','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Hunting_Arrow,500;','','');
REPLACE INTO `item_db` VALUES ('12577','Lucky_Egg_C6','Fortune Egg','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12578','Rapid_Life_Water','Rapid Water','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12579','Ring_Of_Valkyrie_Box','Ring of The Valkyrie Box','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6136,7 +6191,7 @@ REPLACE INTO `item_db` VALUES ('12620','Dgrade_Pocket','Dgrade Pocket','2','20',
REPLACE INTO `item_db` VALUES ('12621','Egrade_Pocket','Egrade Pocket','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12622','Boarding_Halter','Halter Lead','11','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','3000','507',NULL,'0',NULL,'0',NULL,'0','setcashmount();','','');
REPLACE INTO `item_db` VALUES ('12623','High_Weapon_Box','High Weapon Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12623,1;','','');
-REPLACE INTO `item_db` VALUES ('12624','Delicious_Jelly','Delicious Jelly','0','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','464',NULL,'0',NULL,'0',NULL,'0','percentheal 3,3;','','');
+REPLACE INTO `item_db` VALUES ('12624','Delicious_Jelly','Delicious Jelly','0','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 3,3;','','');
REPLACE INTO `item_db` VALUES ('12625','Sapa_Feat_Cert_Pack','Proof Of Sapha\'s Honor Package','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12626','Wander_Man_Scroll','Wanderman Scroll','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12627','Wicked_Nymph_Scroll','Wicked Nymph Scroll','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6146,23 +6201,23 @@ REPLACE INTO `item_db` VALUES ('12630','Teddy_Bear_Scroll','Teddy Bear Scroll','
REPLACE INTO `item_db` VALUES ('12631','Macro_Stone_A','Stone (1Hour)','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12632','Macro_Stone_B','Stone (1Hour)','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12636','Malang_Sp_Can','Malang Sp Can','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','warp \"malangdo\",140,114;','','');
-REPLACE INTO `item_db` VALUES ('12637','Gong_Bug_Pocket','Gong Bug Pocket','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 13208,200;','','');
-REPLACE INTO `item_db` VALUES ('12638','Dried_Squid_Box','Dried Squid Box','11','20','10','2000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12639','Flying_Fish_Box','Flying Fish Box','11','20','10','2000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12640','Starfish_Box','Starfish Box','11','20','10','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12637','Gong_Bug_Pocket','Gong Bug Pocket','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Gong_Bung,200;','','');
+REPLACE INTO `item_db` VALUES ('12638','Dried_Squid_Box','Dried Squid Box','11','20','10','2000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Dried_Squid,200;','','');
+REPLACE INTO `item_db` VALUES ('12639','Flying_Fish_Box','Flying Fish Box','11','20','10','2000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Flying_Fish,200;','','');
+REPLACE INTO `item_db` VALUES ('12640','Starfish_Box','Starfish Box','11','20','10','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Starfish,200;','','');
REPLACE INTO `item_db` VALUES ('12641','Lucky_Egg_C8','New Recruit Pack','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12642','Fruit_Of_Mastela_Box2','Fruit Box (100)','0','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 504,100;','','');
-REPLACE INTO `item_db` VALUES ('12643','E_Coin_Pack50','E Coin Pack50','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 6422,50;','','');
+REPLACE INTO `item_db` VALUES ('12642','Fruit_Of_Mastela_Box2','Fruit Box (100)','0','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Fruit_Of_Mastela,100;','','');
+REPLACE INTO `item_db` VALUES ('12643','E_Coin_Pack50','E Coin Pack50','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Egrade_Coin,50;','','');
REPLACE INTO `item_db` VALUES ('12644','PCBang_Coupon_Box4','PCRoom Coupon Box IV','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12645','J_Aspersio_5_Scroll_C','Sacred Scroll','11','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12646','Takoyaki','Fired Octopus','2','20','10','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12646','Takoyaki','Fired Octopus','2','20','10','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,6000,10; sc_start SC_PLUSATTACKPOWER,6000,20; sc_start SC_PLUSMAGICPOWER,6000,20;','','');
REPLACE INTO `item_db` VALUES ('12647','Ink_Ball','See Ink','2','20','10','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12648','Special_Potion_Set','Comprehensive Set Of Potions','11','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12649','Lv70_Imperial_Gift','Level 70 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12650','Lv90_Imperial_Gift','Level 90 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12651','Lv110_Imperial_Gift','Level 110 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12652','Lv130_Imperial_Gift','Level 130 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12653','Lv150_Imperial_Gift','Level 150 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12648','Special_Potion_Set','Comprehensive Set Of Potions','11','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Red_Potion,10; getitem Orange_Potion,10; getitem Yellow_Potion,10; getitem Blue_Potion,10;','','');
+REPLACE INTO `item_db` VALUES ('12649','Lv70_Imperial_Gift','Level 70 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem Str_Dish08,5; getitem Agi_Dish08,5; getitem Int_Dish08,5; getitem Vit_Dish08,5; getitem Dex_Dish08,5; getitem Luk_Dish08,5;','','');
+REPLACE INTO `item_db` VALUES ('12650','Lv90_Imperial_Gift','Level 90 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem Comp_Battle_Manual,5;','','');
+REPLACE INTO `item_db` VALUES ('12651','Lv110_Imperial_Gift','Level 110 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem High_Weapon_Box,1; getitem Octo_Hstick,Box,1; getitem Octo_Hstick,Box,1; getitem Octo_Hstick_Box,1;','','');
+REPLACE INTO `item_db` VALUES ('12652','Lv130_Imperial_Gift','Level 130 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem High_Coin_Pocket,10;','','');
+REPLACE INTO `item_db` VALUES ('12653','Lv150_Imperial_Gift','Level 150 Bounty','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem Protection_Seagod_Box,1; getitem Protection_Seagod_Box,1; getitem Protection_Seagod_Box,1; getitem Dark_Snake_Lord_Hat,1;','','');
REPLACE INTO `item_db` VALUES ('12654','Lucky_Egg_C9','Recruit\'s Mount Gift','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12655','Brain_Powder','Brain Powder','11','2000','1000','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12656','Magical_Powder','Magical Powder','11','3000','1500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6181,18 +6236,18 @@ REPLACE INTO `item_db` VALUES ('12668','Thai_Perfume_ASPD','Thai Perfume(ASPD)',
REPLACE INTO `item_db` VALUES ('12669','Thai_Perfume_CAST','Thai Perfume(CAST)','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12670','Beast_Powder','Beast Powder','11','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12671','99lv_Battle_Manual','99lv Battle Manual','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12672','Start_New_Box','Start New Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','getitem 617,2; getitem 12263,2; getitem 12329,3; getitem 12330,2;','','');
+REPLACE INTO `item_db` VALUES ('12672','Start_New_Box','Start New Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','getitem Old_Violet_Box,2; getitem Comp_Battle_Manual,2; getitem Recall_MaleGM,3; getitem Recall_FemaleGM,2;','','');
REPLACE INTO `item_db` VALUES ('12673','Lucky_Egg_C10','Lucky Egg C10','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12674','God_Material_Box','God Material Box','2','20','10','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12675','Sg_Weapon_Supply_Box','Siege Weapon Supply Box','2','20','10','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12675,1;','','');
-REPLACE INTO `item_db` VALUES ('12676','Sg_Violet_Potion_Box','Siege Violet Potion Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 11547,50;','','');
-REPLACE INTO `item_db` VALUES ('12677','Siege_Arrow_Quiver_S','Siege Arrow Quiver S','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','130',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 1776,200;','','');
-REPLACE INTO `item_db` VALUES ('12678','Siege_Arrow_Quiver_A','Siege Arrow Quiver A','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','95',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 1775,200;','','');
-REPLACE INTO `item_db` VALUES ('12679','Sg_White_Potion_Box','Siege White Potion Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 11548,30;','','');
-REPLACE INTO `item_db` VALUES ('12680','Sg_Blue_Potion_Box','Siege Blue Potion Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 11549,10;','','');
+REPLACE INTO `item_db` VALUES ('12675','Sg_Weapon_Supply_Box','Siege Weapon Supply Box','2','20','10','500','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem Sg_Weapon_Supply_Box,1;','','');
+REPLACE INTO `item_db` VALUES ('12676','Sg_Violet_Potion_Box','Siege Violet Potion Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Woe_Violet_Potion,50;','','');
+REPLACE INTO `item_db` VALUES ('12677','Siege_Arrow_Quiver_S','Siege Arrow Quiver S','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','130',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Siege_Arrow_S,200;','','');
+REPLACE INTO `item_db` VALUES ('12678','Siege_Arrow_Quiver_A','Siege Arrow Quiver A','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','95',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Siege_Arrow_A,200;','','');
+REPLACE INTO `item_db` VALUES ('12679','Sg_White_Potion_Box','Siege White Potion Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Woe_White_Potion,30;','','');
+REPLACE INTO `item_db` VALUES ('12680','Sg_Blue_Potion_Box','Siege Blue Potion Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Woe_Blue_Potion,10;','','');
REPLACE INTO `item_db` VALUES ('12681','Nestea_Lemon','Nestea Lemon','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12682','Nestea_Blacktea','Nestea Black Tea','2','0','0','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12683','Sg_Vi_Potion_Box200','Siege Violet Potion Box (200)','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 11547,50;','','');
+REPLACE INTO `item_db` VALUES ('12683','Sg_Vi_Potion_Box200','Siege Violet Potion Box (200)','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Woe_Violet_Potion,50;','','');
REPLACE INTO `item_db` VALUES ('12684','ASPD_Potion','ASPD Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12685','Gryphon_Egg_Scroll','Gryphon Egg Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12686','Str_Dish20','Str Dish20','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6211,7 +6266,7 @@ REPLACE INTO `item_db` VALUES ('12698','Old_C_Album_Weapon','Weapon Card Album',
REPLACE INTO `item_db` VALUES ('12699','Tikbalang_Belt','Tikbalang Harness','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','pet 2313;','','');
REPLACE INTO `item_db` VALUES ('12700','Insideout_Shirt','Inside-out Shirt','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','warp \"malaya\",242,211;','','');
REPLACE INTO `item_db` VALUES ('12701','Old_Blue_Box_F','Old Blue Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12702','Old_Bleu_Box','Old Blue Box','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','466',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12702,1; getrandgroupitem 12702,1;','','');
+REPLACE INTO `item_db` VALUES ('12702','Old_Bleu_Box','Old Blue Box','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','466',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem Old_Bleu_Box,1; getrandgroupitem Old_Bleu_Box,1;','','');
REPLACE INTO `item_db` VALUES ('12703','Holy_Egg_2','Holy Egg','11','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12704','Elixir_Of_Life','Elixir of Life','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','85',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','percentheal 100,0;','','');
REPLACE INTO `item_db` VALUES ('12705','Noble_Nameplate','Noble Nameplate','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','90',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,100;','','');
@@ -6221,9 +6276,9 @@ REPLACE INTO `item_db` VALUES ('12708','Lucky_Cookie03','Lucky Cookie','11','0',
REPLACE INTO `item_db` VALUES ('12709','Guyak_Candy','Guyak Candy','0','0','0','150','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 30,30;','','');
REPLACE INTO `item_db` VALUES ('12710','Guyak_Pudding','Guyak Pudding','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_MOVHASTE_INFINITY,300000,0;','','');
REPLACE INTO `item_db` VALUES ('12711','Pretzel','Pretzel','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','50',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,90),0;','','');
-REPLACE INTO `item_db` VALUES ('12712','Green_Beer','Green Beer','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','50',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12712','Green_Beer','Green Beer','2','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','50',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 0,50;','','');
REPLACE INTO `item_db` VALUES ('12713','Monster_Extract','Monster Extract','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12714','Easter_Scroll','Easter Scroll','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12714,1;','','');
+REPLACE INTO `item_db` VALUES ('12714','Easter_Scroll','Easter Scroll','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem Easter_Scroll,1;','','');
REPLACE INTO `item_db` VALUES ('12715','Black_Treasure_Box','Black Treasure Chest','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12716','Indian_Rice_Cake','Indian Rice Cake','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12717','Poison_Paralysis','Paralysis','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PARALYSE,300000,0,10,SCFLAG_FIXEDTICK;','','');
@@ -6248,23 +6303,23 @@ REPLACE INTO `item_db` VALUES ('12735','Runstone_Ancient','Ancient Rough Runesto
REPLACE INTO `item_db` VALUES ('12736','Runstone_Mystic','Mystic Rough Runestone','0','2','1','100','0','0','0','0','0','128','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','makerune 14;','','');
REPLACE INTO `item_db` VALUES ('12737','Runstone_Ordinary','General Rough Runestone','0','2','1','100','0','0','0','0','0','128','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','makerune 2;','','');
REPLACE INTO `item_db` VALUES ('12738','Runstone_Rare','Rare Rough Runestone','0','2','1','100','0','0','0','0','0','128','63','2','0','0','0',NULL,'0','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','makerune 8;','','');
-REPLACE INTO `item_db` VALUES ('12739','Snow_Flower','Snow Flower','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12739','Snow_Flower','Snow Flower','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 10,10;','','');
REPLACE INTO `item_db` VALUES ('12740','Inc_Str_Scroll','Amplification Scroll','2','1','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12741','Inc_Int_Scroll','Intellect Amplification Scroll','2','1','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12742','Valentine_Gift_Box1','Valentine Gift Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12743','Valentine_Gift_Box2','Valentine Gift Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12744','Chocotate_Box','Chocolate Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12745','Skull_Scroll','Vivid Notation','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12746','Destruction_Scroll','Destruction Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bAddRace,RC_Boss,5;}\",10000,1800000; autobonus \"{bonus2 bAddRace,RC_Angel,5;}\",10000,1800000; autobonus \"{bonus2 bAddEle,Ele_Holy,5;}\",10000,1800000;','','');
-REPLACE INTO `item_db` VALUES ('12747','Royal_Scroll','Royal Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bSubRace,RC_Boss,5;}\",10000,1800000;','','');
-REPLACE INTO `item_db` VALUES ('12748','Immune_Scroll','Immune Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bAddEle,Ele_Neutral,-5;}\",10000,1800000;','','');
-REPLACE INTO `item_db` VALUES ('12749','Mystic_Scroll','Mystic Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,180000,5;','','');
-REPLACE INTO `item_db` VALUES ('12750','Battle_Scroll','Battle Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,1800000,5; sc_start SC_PLUSATTACKPOWER,1800000,5;','','');
-REPLACE INTO `item_db` VALUES ('12751','Armor_Scroll','Armor Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_DEF,1800000,5; sc_start SC_FOOD_BASICAVOIDANCE,1800000,10;','','');
-REPLACE INTO `item_db` VALUES ('12752','Prayer_Scroll','Prayer Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_MDEF,1800000,5; sc_start SC_INCFLEE2,1800000,10;','','');
-REPLACE INTO `item_db` VALUES ('12753','Soul_Scroll','Soul Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMHPRATE,1800000,5; sc_start SC_INCMSPRATE,1800000,5;','','');
-REPLACE INTO `item_db` VALUES ('12754','New_Year_Bun','New Year Bun','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12755','Traditional_Firecrack','Traditional Firecrack','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12742','Valentine_Gift_Box1','Valentine Gift Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Valentine_Gold_Ring,1;','','');
+REPLACE INTO `item_db` VALUES ('12743','Valentine_Gift_Box2','Valentine Gift Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Valentine_Silver_Ring,1;','','');
+REPLACE INTO `item_db` VALUES ('12744','Chocotate_Box','Chocolate Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Chocolate,1;','','');
+REPLACE INTO `item_db` VALUES ('12745','Skull_Scroll','Skull Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_SKELSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12746','Destruction_Scroll','Destruction Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DISTRUCTIONSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12747','Royal_Scroll','Royal Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ROYALSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12748','Immune_Scroll','Immune Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_IMMUNITYSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12749','Mystic_Scroll','Mystic Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_MYSTICSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12750','Battle_Scroll','Battle Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_BATTLESCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12751','Armor_Scroll','Armor Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_ARMORSCROLL,1800000,5,10;','','');
+REPLACE INTO `item_db` VALUES ('12752','Prayer_Scroll','Prayer Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_FREYJASCROLL,1800000,5,10;','','');
+REPLACE INTO `item_db` VALUES ('12753','Soul_Scroll','Soul Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_SOULSCROLL,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12754','New_Year_Bun','New Year Bun','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,50;','','');
+REPLACE INTO `item_db` VALUES ('12755','Traditional_Firecrack','Traditional Firecrack','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_POK_JAP; itemskill MO_CALLSPIRITS,3; itemskill MO_FINGEROFFENSIVE,5;','','');
REPLACE INTO `item_db` VALUES ('12756','New_Gift_Envelope','New Gift Envelope','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12757','Loyal_Ring1_Box','Loyal Ring1 Box','2','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12758','Loyal_Ring2_Box','Loyal Ring2 Box','2','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6275,7 +6330,7 @@ REPLACE INTO `item_db` VALUES ('12762','Bubble_Gum_Orange','Bubble Gum Orange','
REPLACE INTO `item_db` VALUES ('12763','Bubble_Gum_Red','Bubble Gum Red','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12764','Fools_Day_Box_Tw','Fools Day Box Tw','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12765','Summer_Knight_Box','Summer Knight Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12766','Reward_Job_BM25','JOB Battle Manual','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12766','Reward_Job_BM25','JOB Battle Manual','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSONLYJOBEXP,1800000,25;','','');
REPLACE INTO `item_db` VALUES ('12767','Passion_FB_Hat_Box','Passion FB Hat Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12768','Cool_FB_Hat_Box','Cool FB Hat Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12769','Victory_FB_Hat_Box','Victory FB Hat Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
@@ -6308,21 +6363,29 @@ REPLACE INTO `item_db` VALUES ('12795','2011_RWC_Scroll_Kr','2011 RWC Scroll','1
REPLACE INTO `item_db` VALUES ('12796','Red_Booster','Red Boost','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','itemskill AC_CONCENTRATION,(getskilllv(AC_CONCENTRATION)<3?3:getskilllv(AC_CONCENTRATION));','','');
REPLACE INTO `item_db` VALUES ('12797','Wish_Maiden_Scroll','Wish Maiden Scroll','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12798','Zealotus_Scroll','Zealotus Scroll','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12807','Mercenary_Casting_','Mercenary Casting','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','20',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Bow_Mercenary_Scroll8,5; getitem SwordMercenary_Scroll8,5; getitem Spear_Mercenary_Scroll8,5; getitem Mother_Love_Box,1;','','');
+REPLACE INTO `item_db` VALUES ('12808','Mother_Love_Box','Mother_Love_Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem Mother_Heart,1209600;','','');
+REPLACE INTO `item_db` VALUES ('12809','Level_Up_Box','Level Up Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','120',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Comp_Battle_Manual,5; getitem Comp_Bubble_Gum,5; getitem Comp_Insurance,5; getitem Reward_Job_BM25,5; getitem Zherlthsh_Tck_Box_,1;','','');
REPLACE INTO `item_db` VALUES ('12812','Snow_Flip','Snow Flip','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill ECL_SNOWFLIP,1;','','');
REPLACE INTO `item_db` VALUES ('12813','Peony_Mommy','Peony Mamy','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill ECL_PEONYMAMY,1;','','');
REPLACE INTO `item_db` VALUES ('12814','Slapping_Herb','Sadagui','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill ECL_SADAGUI,1;','','');
REPLACE INTO `item_db` VALUES ('12815','Yggdrasil_Dust','Sequoia Dust','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill ECL_SEQUOIADUST,1;','','');
-REPLACE INTO `item_db` VALUES ('12818','High_Weapon_Box_','Advanced Weapons Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','100',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12831','Potion_Box','Potion Box','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 545,100; getitem 546,100; getitem 547,100; getitem 505,100;','','');
-REPLACE INTO `item_db` VALUES ('12845','Amatsu_Butterfly_Wing','Amatsu Butterfly Wing','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12818','High_Weapon_Box_','Advanced Weapons Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','100',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','getitem Level_Up_Box,1;','','');
+REPLACE INTO `item_db` VALUES ('12819','Zherlthsh_Tck_Box_','Zherlthsh Ticket Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','150',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem Zherlthsh_Ticket,1;','','');
+REPLACE INTO `item_db` VALUES ('12831','Potion_Box','Potion Box','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Red_Slim_Potion,100; getitem Yellow_Slim_Potion,100; getitem White_Slim_Potion,100; getitem Blue_Potion,100;','','');
+REPLACE INTO `item_db` VALUES ('12845','Amatsu_Butterfly_Wing','Amatsu Butterfly Wing','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12846','Little_Unripe_Apple','Little Unripe Apple','2','10','5','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','pet 2398;','','');
-REPLACE INTO `item_db` VALUES ('12847','Old_Equipment_Box','Old Equipment Box','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12848','Falcon_Flute','Falcon Flute','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(HT_FALCON)) { if(checkoption(Option_Wug)||checkoption(Option_Wugrider)) end; if(checkfalcon()==1) { setfalcon 0; } else { setfalcon 1; } }','','');
+REPLACE INTO `item_db` VALUES ('12847','Old_Equipment_Box','Old Equipment Box','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12848','Falcon_Flute','Falcon Flute','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(HT_FALCON)) { if(checkoption(Option_Wug) || checkoption(Option_Wugrider)) end; if(checkfalcon() == 1) { setfalcon 0; } else { setfalcon 1; } }','','');
REPLACE INTO `item_db` VALUES ('12849','Combination_Kit','Union Kit','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12850','Heaven_Scroll','Heaven Scroll','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12851','Vocation_Scroll','Vocation Scroll','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12852','Wisdom_Scroll','Wisdom Scroll','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12853','Patron_Scroll','Patron Scroll','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12884','C_Center_Potion','Infinite Concentration Potion','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION1,1800000,4; specialeffect2 EF_POTION_CON; /* NOTE: No special effect when used. */','','');
+REPLACE INTO `item_db` VALUES ('12885','C_Awakening_Potion','Infinite Awakening Potion','11','0','0','0','0','0','0','0','0','2146959087','63','2','0','0','40',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION2,1800000,6; specialeffect2 EF_POTION_; /* NOTE: No special effect when used. */','','');
+REPLACE INTO `item_db` VALUES ('12886','C_Berserk_Potion','Infinite Berserk Potion','11','0','0','0','0','0','0','0','0','31868582','63','2','0','0','85',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,1800000,9; specialeffect2 EF_POTION_BERSERK; /* NOTE: No special effect when used. */','','');
+REPLACE INTO `item_db` VALUES ('12887','C_Wing_Of_Fly','Infinite Fly Wing','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','warp strcharinfo(3),0,0; /* NOTE: Temporary script until we get the correct information. */','','');
REPLACE INTO `item_db` VALUES ('12900','Battle_Manual_Box','Battle Manual Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 12208,10;','','');
REPLACE INTO `item_db` VALUES ('12901','Insurance_Package','Insurance Package','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 12209,10;','','');
REPLACE INTO `item_db` VALUES ('12902','Bubble_Gum_Box','Bubble Gum Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 12210,10;','','');
@@ -6472,7 +6535,7 @@ REPLACE INTO `item_db` VALUES ('13045','Kamaitachi_I','Kamaitachi','4','0','0','
REPLACE INTO `item_db` VALUES ('13046','Krieg','Krieg','4','20','10','500','110','0','0','1','3','135232','58','2','2','2','50',NULL,'1','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAddEffOnSkill,RG_BACKSTAP,Eff_Bleeding,1000; bonus2 bSkillAtk,RG_BACKSTAP,15;','','');
REPLACE INTO `item_db` VALUES ('13047','Weihna','Weihna','4','20','10','500','135','0','0','1','2','135232','58','2','2','3','50',NULL,'1','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAddEffOnSkill,RG_RAID,Eff_Poison,1000; autobonus \"{ bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; }\",5,5000,BF_WEAPON|BF_SHORT,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
REPLACE INTO `item_db` VALUES ('13048','Damascus_C','Damascus','4','0','0','0','153','0','0','1','0','579821294','63','2','2','3','0',NULL,'0','1','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 ('13049','Lacma','Lacma','4','20','10','650','45','0','0','1','1','579821295','63','2','2','3','0',NULL,'1','1','0','0','0','0','449',NULL,'0',NULL,'0',NULL,'0','if(getrefine()>=3) { bonus bAtk,40; bonus bMatk,40; } if(getrefine()>=6) { bonus2 bAddSize,Size_Medium,8; autobonus \"{ bonus bNoSizeFix,0; }\",10,5000,0,\"{ specialeffect2 EF_ENHANCE; }\"; } if(getrefine()>=9) bonus2 bAddSize,Size_Medium,20; if(getrefine()>=12) bonus bNoSizeFix,0;','','');
+REPLACE INTO `item_db` VALUES ('13049','Lacma','Lacma','4','20','10','650','45','0','0','1','1','579821295','63','2','2','3','0',NULL,'1','1','0','0','0','0','1',NULL,'0',NULL,'0',NULL,'0','if(getrefine()>=3) { bonus bAtk,40; bonus bMatk,40; } if(getrefine()>=6) { bonus2 bAddSize,Size_Medium,8; autobonus \"{ bonus bNoSizeFix,0; }\",10,5000,0,\"{ specialeffect2 EF_ENHANCE; }\"; } if(getrefine()>=9) bonus2 bAddSize,Size_Medium,20; if(getrefine()>=12) bonus bNoSizeFix,0;','','');
REPLACE INTO `item_db` VALUES ('13050','P_Dagger1','Eden Dagger I','4','0','0','0','124','60','0','1','0','579821295','63','2','2','2','26',NULL,'0','1','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13051','P_Dagger2','Eden Dagger II','4','0','0','0','158','70','0','1','0','579821295','63','2','2','2','40',NULL,'0','1','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('13052','Tourist_Dagger','Traveler\'s Dagger','4','0','0','500','51','0','0','1','0','579821295','63','2','2','1','0',NULL,'0','1','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAgi,2;','','');
@@ -6816,8 +6879,8 @@ REPLACE INTO `item_db` VALUES ('13620','Super_Pet_Egg4','Super Pet Egg 4','2','2
REPLACE INTO `item_db` VALUES ('13621','Greed_Box30','Greed Scroll 30 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14529,30;','','');
REPLACE INTO `item_db` VALUES ('13622','Greed_Box50','Greed Scroll Box(50)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14529,50;','','');
REPLACE INTO `item_db` VALUES ('13623','Greed_Box100','Greed Scroll Box(100)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14529,100;','','');
-REPLACE INTO `item_db` VALUES ('13624','Flee_30_Scroll_Box','Evasion Scroll Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14530,1;','','');
-REPLACE INTO `item_db` VALUES ('13625','Accuracy_30_Scroll_Box','Concentration Scroll Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14531,1;','','');
+REPLACE INTO `item_db` VALUES ('13624','Flee_30_Scroll_Box','Evasion Scroll Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Flee_30_Scroll,1;','','');
+REPLACE INTO `item_db` VALUES ('13625','Accuracy_30_Scroll_Box','Concentration Scroll Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Accuracy_30_Scroll,1;','','');
REPLACE INTO `item_db` VALUES ('13626','Super_Card_Pet_Egg_Box1','Super Card Pet Egg Box 1','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 13630,1;','','');
REPLACE INTO `item_db` VALUES ('13627','Super_Card_Pet_Egg_Box2','Super Card Pet Egg Box 2','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 13631,1;','','');
REPLACE INTO `item_db` VALUES ('13628','Super_Card_Pet_Egg_Box3','Super Card Pet Egg Box 3','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 13632,1;','','');
@@ -7502,10 +7565,10 @@ REPLACE INTO `item_db` VALUES ('14317','Bacsojin_Scroll','Bacsojin Scroll','2','
REPLACE INTO `item_db` VALUES ('14343','Spiked_Scarf_Box','Spiked Scarf Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5462,1;','','');
REPLACE INTO `item_db` VALUES ('14344','Rainbow_Scarf_Box','Rainbow Scarf Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5463,1;','','');
REPLACE INTO `item_db` VALUES ('14345','Animal_Scroll','Animal Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
-REPLACE INTO `item_db` VALUES ('14349','Mental_Potion20_Box','Mental Potion Box(20)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14600,20;','','');
-REPLACE INTO `item_db` VALUES ('14350','Mental_Potion50_Box','Mental Potion Box(50)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14600,50;','','');
-REPLACE INTO `item_db` VALUES ('14351','Tyr\'s_Blessing20_Box','Tyr\'s Blessing Box(20)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14601,20;','','');
-REPLACE INTO `item_db` VALUES ('14352','Tyr\'s_Blessing50_Box','Tyr\'s Blessing Box(50)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14601,50;','','');
+REPLACE INTO `item_db` VALUES ('14349','Mental_Potion20_Box','Mental Potion Box(20)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Mental_Potion,20;','','');
+REPLACE INTO `item_db` VALUES ('14350','Mental_Potion50_Box','Mental Potion Box(50)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Mental_Potion,50;','','');
+REPLACE INTO `item_db` VALUES ('14351','Tyr\'s_Blessing20_Box','Tyr\'s Blessing Box(20)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Tyr\'s_Blessing,20;','','');
+REPLACE INTO `item_db` VALUES ('14352','Tyr\'s_Blessing50_Box','Tyr\'s Blessing Box(50)','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem Tyr\'s_Blessing,50;','','');
REPLACE INTO `item_db` VALUES ('14361','Orc_HeroS_Box','Orc Hero Scroll Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14604,10;','','');
REPLACE INTO `item_db` VALUES ('14362','Orc_LoadS_Box','Orc Lord Scroll Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14605,10;','','');
REPLACE INTO `item_db` VALUES ('14363','Heart_Scroll','Warm Heart Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
@@ -7544,9 +7607,9 @@ REPLACE INTO `item_db` VALUES ('14488','Blue_Pajamas_Hat_Box','Blue Pajamas Hat
REPLACE INTO `item_db` VALUES ('14489','Pink_Pajamas_Hat_Box','Pink Pajamas Hat Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5507,1;','','');
REPLACE INTO `item_db` VALUES ('14500','Insurance60','Life Insurrance Certificate','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_DEATHPENALTY,3600000,0;','','');
REPLACE INTO `item_db` VALUES ('14508','Zeny_Scroll','Zeny Pet Egg Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14509','Light_Center_Pot','Light Concentration Potion','2','800','400','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION1,1800000,0;','','');
-REPLACE INTO `item_db` VALUES ('14510','Light_Awakening_Pot','Light Awakening Potion','2','1500','750','20','0','0','0','0','0','2146959087','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION2,1800000,0;','','');
-REPLACE INTO `item_db` VALUES ('14511','Light_Berserk_Pot','Light Berserk Potion','2','3000','1500','20','0','0','0','0','0','31868582','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,1800000,0;','','');
+REPLACE INTO `item_db` VALUES ('14509','Light_Center_Pot','Light Concentration Potion','2','800','400','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION1,1800000,4;','','');
+REPLACE INTO `item_db` VALUES ('14510','Light_Awakening_Pot','Light Awakening Potion','2','1500','750','20','0','0','0','0','0','2146959087','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION2,1800000,6;','','');
+REPLACE INTO `item_db` VALUES ('14511','Light_Berserk_Pot','Light Berserk Potion','2','3000','1500','20','0','0','0','0','0','31868582','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,1800000,9;','','');
REPLACE INTO `item_db` VALUES ('14512','Meteor_10_Scroll','Meteor Storm Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','itemskill WZ_METEOR,10;','','');
REPLACE INTO `item_db` VALUES ('14513','Storm_10_Scroll','Storm Gust Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','itemskill WZ_STORMGUST,10;','','');
REPLACE INTO `item_db` VALUES ('14514','Vermilion_10_Scroll','Lord of Vermilion Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','itemskill WZ_VERMILION,10;','','');
@@ -7565,8 +7628,8 @@ REPLACE INTO `item_db` VALUES ('14526','Oriental_Pastry','Oriental Pastry','2','
REPLACE INTO `item_db` VALUES ('14527','Dun_Tele_Scroll1','Dungeon Teleport Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','callfunc \"F_CashDungeon\",1;','','');
REPLACE INTO `item_db` VALUES ('14528','PVP_Tele_Scroll','PVP Teleport Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('14529','Greed_Scroll','Greed Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','507',NULL,'1',NULL,'0',NULL,'0','itemskill BS_GREED,1;','','');
-REPLACE INTO `item_db` VALUES ('14530','Flee_30_Scroll','Evasion Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCFLEE,1800000,30;','','');
-REPLACE INTO `item_db` VALUES ('14531','Accuracy_30_Scroll','Concentration Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCHIT,1800000,30;','','');
+REPLACE INTO `item_db` VALUES ('14530','Flee_30_Scroll','Evasion Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,1800000,30;','','');
+REPLACE INTO `item_db` VALUES ('14531','Accuracy_30_Scroll','Concentration Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICHIT,1800000,30;','','');
REPLACE INTO `item_db` VALUES ('14532','Battle_Manual25','Field Manual 25%','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,25;','','');
REPLACE INTO `item_db` VALUES ('14533','Battle_Manual100','Field Manual 100%','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,100;','','');
REPLACE INTO `item_db` VALUES ('14534','Small_Life_Potion','Small Life Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','specialeffect2 320; sc_start4 SC_S_LIFEPOTION,600000,-5,5,0,0;','','');
@@ -7635,23 +7698,27 @@ REPLACE INTO `item_db` VALUES ('14596','Pierre_Treasurebox','Pierre\'s Treasureb
REPLACE INTO `item_db` VALUES ('14597','PhreeoniS','Phreeoni Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,180000,4121;','','');
REPLACE INTO `item_db` VALUES ('14598','GhostringS','Ghostring Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,60000,4047;','','');
REPLACE INTO `item_db` VALUES ('14599','Greed_Scroll_C','Greed Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14600','Mental_Potion','Mental Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14601','Tyr\'s_Blessing','Tyr\'s Blessing','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCFLEE,300000,30; sc_start SC_INCHIT,300000,30; sc_start SC_PLUSATTACKPOWER,300000,20; sc_start SC_PLUSMAGICPOWER,300000,20;','','');
+REPLACE INTO `item_db` VALUES ('14600','Mental_Potion','Mental Potion','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_SPELLBREAKER; sc_start SC_TARGET_ASPD,1800000,10;','','');
+REPLACE INTO `item_db` VALUES ('14601','Tyr\'s_Blessing','Tyr\'s Blessing','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_BASICAVOIDANCE,300000,30; sc_start SC_FOOD_BASICHIT,300000,30; sc_start SC_PLUSATTACKPOWER,300000,20; sc_start SC_PLUSMAGICPOWER,300000,20;','','');
REPLACE INTO `item_db` VALUES ('14602','TaogunkaS','Tao Gunka Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_LIGHTSPHERE; sc_start SC_ITEMSCRIPT,180000,4302;','','');
REPLACE INTO `item_db` VALUES ('14603','MistressS','Mistress Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','specialeffect2 EF_SPELLBREAKER; sc_start SC_ITEMSCRIPT,180000,4132;','','');
REPLACE INTO `item_db` VALUES ('14604','Orc_HeroS','Orc Hero Scard','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,60000,4143;','','');
REPLACE INTO `item_db` VALUES ('14605','Orc_LoadS','Orc Load Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ITEMSCRIPT,180000,4135;','','');
REPLACE INTO `item_db` VALUES ('14606','Job_Manual25','JOB Battle Manual','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14607','Luxurious_Dinner_W','Luxurious Western Food','2','10000','5000','600','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCALLSTATUS,3600000,3;','','');
-REPLACE INTO `item_db` VALUES ('14608','Luxurious_Dinner_E','Manchu-Han Imperial Feast','2','20000','10000','1200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCALLSTATUS,3600000,6;','','');
+REPLACE INTO `item_db` VALUES ('14607','Luxurious_Dinner_W','Luxurious Western Food','2','10000','5000','600','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,3600000,3; sc_start SC_FOOD_DEX,3600000,3; sc_start SC_FOOD_AGI,3600000,3; sc_start SC_FOOD_INT,3600000,3; sc_start SC_FOOD_VIT,3600000,3; sc_start SC_FOOD_LUK,3600000,3;','','');
+REPLACE INTO `item_db` VALUES ('14608','Luxurious_Dinner_E','Manchu-Han Imperial Feast','2','20000','10000','1200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,3600000,6; sc_start SC_FOOD_DEX,3600000,6; sc_start SC_FOOD_AGI,3600000,6; sc_start SC_FOOD_INT,3600000,6; sc_start SC_FOOD_VIT,3600000,6; sc_start SC_FOOD_LUK,3600000,6;','','');
REPLACE INTO `item_db` VALUES ('14609','Spoiled_Cuisine','Spoiled Cuisine','2','5000','2500','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 10,10;','','');
REPLACE INTO `item_db` VALUES ('14611','M_Def_Potion','M Def Potion','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('14612','M_Mdef_Potion','M Mdef Potion','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('14613','RWC_Scroll_2012','RWC Arms Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('14614','Ex_Def_Potion','Special Defense Potion','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14616','STR_Biscuit_Stick','Bar of Strength','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14617','VIT_Biscuit_Stick','Bar of Fitness','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('14618','AGI_Biscuit_Stick','Bar of Agility','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('14616','STR_Biscuit_Stick','Bar of Strength','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,180000,15; sc_start SC_PLUSATTACKPOWER,60000,rand(11,111);','','');
+REPLACE INTO `item_db` VALUES ('14617','VIT_Biscuit_Stick','Bar of Fitness','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_VIT,180000,15; percentheal rand(11,33),0;','','');
+REPLACE INTO `item_db` VALUES ('14618','AGI_Biscuit_Stick','Bar of Agility','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_AGI,180000,15; sc_start SC_FOOD_BASICAVOIDANCE,60000,rand(11,33);','','');
+REPLACE INTO `item_db` VALUES ('14619','INT_Biscuit_Stick','Bar of Knowledge','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,180000,15; sc_start SC_PLUSMAGICPOWER,60000,rand(11,111);','','');
+REPLACE INTO `item_db` VALUES ('14620','DEX_Biscuit_Stick','Bar of Tricks','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX,180000,15; sc_start SC_FOOD_BASICHIT,60000,rand(11,33);','','');
+REPLACE INTO `item_db` VALUES ('14621','LUK_Biscuit_Stick','Bar of Luck','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,180000,15; sc_start SC_CRITICALSUCCESSVALUE,60000,rand(11,13);','','');
+REPLACE INTO `item_db` VALUES ('14674','Cup_Of_Boza','Cup Of Boza','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start2 SC_CUP_OF_BOZA,120000,10,5;','','');
REPLACE INTO `item_db` VALUES ('15000','Bone_Plate','Bone Plate','5','20','10','1000','0','0','60','0','1','414946','58','2','16','0','0',NULL,'1','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','Odin\'s_Blessing_I','Odin\'s Blessing','5','0','0','0','0','0','10','0','0','2147483646','63','2','16','0','0',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('15002','Rune_Plate','Rune Plate','5','0','0','0','0','0','95','0','1','128','56','2','16','0','99',NULL,'1','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -7834,17 +7901,17 @@ REPLACE INTO `item_db` VALUES ('16412','Ice_Wing_Ear_Box','Ice Wing Ear Box','18
REPLACE INTO `item_db` VALUES ('16413','FIce_Wing_Ear_Box','FIce Wing Ear Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 5610,1;','','');
REPLACE INTO `item_db` VALUES ('16414','Turtle_Hat_Box','Turtle Hat Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 5611,1;','','');
REPLACE INTO `item_db` VALUES ('16415','FTurtle_Hat_Box','Turtle Hat Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 5611,1;','','');
-REPLACE INTO `item_db` VALUES ('16418','Giant_Fly_Wing_Box_500','Giant Fly Wing Box 500','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 12212,500;','','');
-REPLACE INTO `item_db` VALUES ('16419','Greed_Scroll_Box_30','Greed Scroll 30 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14529,30;','','');
-REPLACE INTO `item_db` VALUES ('16420','Adventurer_Pack','Adventurer Pack','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',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 ('16424','Executioner_Box_','Executioner Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 1174,604800;','','');
-REPLACE INTO `item_db` VALUES ('16425','Cutlus_Box','Cutlus Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 13402,604800;','','');
-REPLACE INTO `item_db` VALUES ('16426','Moonlight_Dagger_Box','Moonlight Dagger Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 13026,604800;','','');
-REPLACE INTO `item_db` VALUES ('16427','Wrench_Box','Wrench Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 1534,604800;','','');
-REPLACE INTO `item_db` VALUES ('16428','Solar_Sword_Box_','Solar Sword Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 13403,604800;','','');
-REPLACE INTO `item_db` VALUES ('16429','Tomahawk_Box_','Tomahawk Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 1374,604800;','','');
-REPLACE INTO `item_db` VALUES ('16430','Rudra_Bow_Box','Rudra Bow Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 1729,604800;','','');
-REPLACE INTO `item_db` VALUES ('16431','Pole_Axe_Box_','Pole Axe Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 1419,604800;','','');
+REPLACE INTO `item_db` VALUES ('16418','Giant_Fly_Wing_Box_500','Giant Fly Wing Box 500','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','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','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','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','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','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 ('16424','Executioner_Box_','Executioner Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','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','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','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','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 13026,604800;','','');
+REPLACE INTO `item_db` VALUES ('16427','Wrench_Box','Wrench Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 1534,604800;','','');
+REPLACE INTO `item_db` VALUES ('16428','Solar_Sword_Box_','Solar Sword Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 13403,604800;','','');
+REPLACE INTO `item_db` VALUES ('16429','Tomahawk_Box_','Tomahawk Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 1374,604800;','','');
+REPLACE INTO `item_db` VALUES ('16430','Rudra_Bow_Box','Rudra Bow Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 1729,604800;','','');
+REPLACE INTO `item_db` VALUES ('16431','Pole_Axe_Box_','Pole Axe Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 1419,604800;','','');
REPLACE INTO `item_db` VALUES ('16436','Libra_Crown_Box','Libra Crown Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 5662,1;','','');
REPLACE INTO `item_db` VALUES ('16438','Libra_Diadem_Box','Libra Diadem Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 5663,1;','','');
REPLACE INTO `item_db` VALUES ('16440','Filir_Wing_Box','Filir Wings Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 5664,1;','','');
@@ -8080,6 +8147,10 @@ REPLACE INTO `item_db` VALUES ('17209','Tw_Rainbow_Scroll','Tw Rainbow Scroll','
REPLACE INTO `item_db` VALUES ('17210','Tw_Red_Scroll','Tw Red Scroll','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('17211','Tw_Orange_Scroll','Tw Orange Scroll','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('17212','Tw_Yellow_Scroll','Tw Yellow Scroll','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
+REPLACE INTO `item_db` VALUES ('17226','C_Center_Potion_Box','Infinite Concentration Potion Box','18','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem C_Center_Potion,604800;','','');
+REPLACE INTO `item_db` VALUES ('17227','C_Awakening_Potion_Box','Infinite Awakening Potion Box','18','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem C_Awakening_Potion,604800;','','');
+REPLACE INTO `item_db` VALUES ('17228','C_Berserk_Potion_Box','Infinite Berserk Potion Box','18','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem Infinite_Berserk_Potion,604800;','','');
+REPLACE INTO `item_db` VALUES ('17229','C_Wing_Of_Fly_Box','Infinite Fly Wing Box','18','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem C_Wing_Of_Fly,604800;','','');
REPLACE INTO `item_db` VALUES ('17233','Scroll_Of_Death','Scroll Of Death','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('17234','Scroll_Of_Life','Scroll Of Life','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('17235','Scroll_Of_Magic','Scroll Of Magic','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -8091,15 +8162,19 @@ REPLACE INTO `item_db` VALUES ('17240','Mercury_Scroll','Mercury Scroll','2','20
REPLACE INTO `item_db` VALUES ('17245','Idn_Independ_Scroll','Idn Independ Scroll','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('17246','HD_Elunium_Box(30)','HD Elunium Box(30)','18','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 6241,30;','','');
REPLACE INTO `item_db` VALUES ('17247','HD_Oridecon_Box(30)','HD Oridecon Box(30)','18','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 6240,30;','','');
-REPLACE INTO `item_db` VALUES ('17251','C_Wing_Of_Fly_3Day_Box','Fly Wing Infinite 3rd Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('17251','C_Wing_Of_Fly_3Day_Box','Fly Wing Infinite 3rd Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem C_Wing_Of_Fly,259200;','','');
REPLACE INTO `item_db` VALUES ('17252','RWC_2012_Set_Box','RWC Rally Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('17253','RWC_2012_Ring_Box','RWC Enchant Reset Ticket Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 2966,1;','','');
REPLACE INTO `item_db` VALUES ('17254','RWC_2012_Pendant_Box','RWC Enchant Reset 5 Ticket Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 2968,1;','','');
REPLACE INTO `item_db` VALUES ('17256','Good_Student_Gift_Box','Good Student Gift Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('17257','Bad_Student_Gift_Box','Bad Student Gift Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('17262','Ex_Def_Potion_Box','Special Defense Potion Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('17270','STR_Biscuit_Stick_Box','Bar of Strength Box','18','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14616,20;','','');
-REPLACE INTO `item_db` VALUES ('17271','VIT_Biscuit_Stick_Box','VIT Biscuit Stick Box','18','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14617,20;','','');
+REPLACE INTO `item_db` VALUES ('17270','STR_Biscuit_Stick_Box','Bar of Strength Box','18','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem STR_Biscuit_Stick,20;','','');
+REPLACE INTO `item_db` VALUES ('17271','VIT_Biscuit_Stick_Box','Bar of Fitness Box','18','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem VIT_Biscuit_Stick,20;','','');
+REPLACE INTO `item_db` VALUES ('17272','AGI_Biscuit_Stick_Box','Bar of Agility Box','18','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem AGI_Biscuit_Stick,20;','','');
+REPLACE INTO `item_db` VALUES ('17273','INT_Biscuit_Stick_Box','Bar of Knowledge Box','18','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem INT_Biscuit_Stick,20;','','');
+REPLACE INTO `item_db` VALUES ('17274','DEX_Biscuit_Stick_Box','Bar of Tricks Box','18','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','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','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem LUK_Biscuit_Stick,20;','','');
REPLACE INTO `item_db` VALUES ('18000','Cannon_Ball','Cannon Ball','10','100','50','10','100','0','0','0','0','263168','8','2','32768','0','0',NULL,'0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('18001','Holy_Cannon_Ball','Holy Cannon Ball','10','200','100','10','120','0','0','0','0','263168','8','2','32768','0','0',NULL,'0','8','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','200','100','10','120','0','0','0','0','263168','8','2','32768','0','0',NULL,'0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Dark;','','');
@@ -8911,13 +8986,13 @@ REPLACE INTO `item_db` VALUES ('19869','C_Antiquity_Helmet','Costume Antiquity H
REPLACE INTO `item_db` VALUES ('19871','C_DecorationOfMusic_Accessory','Decoration of Music','5','20','10','0','0','0','0','0','0','4294967295','63','2','2048','0','0',NULL,'0','1074','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','sc_start SC_DECORATION_OF_MUSIC,-1,0;','sc_end SC_DECORATION_OF_MUSIC;');
REPLACE INTO `item_db` VALUES ('19873','C_Carnival_Hat','Costume Carnival Hat','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','505','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19874','C_Carnival_Circlet','Costume Carnival Circlet','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','506','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('19875','C_Love_Rabbit_Hood','Costume Love Rabbit Hood','5','0','0','0','0','0','0','0','0','4294967295','63','2','7168','0','0',NULL,'1','549','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19875','C_Love_Rabbit_Hood','Costume Love Rabbit Hood','5','0','0','0','0','0','0','0','0','4294967295','63','2','7168','0','0',NULL,'1','549','0','0','0','0','384',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19876','C_Rabbit_Ear_Hat','Costume Rabbit Ear Hat','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','384','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19877','C_Eyes_Of_Darkness','Costume Eyes Of Darkness','5','0','0','0','0','0','0','0','0','4294967295','63','2','2048','0','0',NULL,'1','467','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19878','C_Drooping_Bunny','Costume Drooping Bunny','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','249','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19879','C_Black_Bunny_Band','Costume Black Bunny Band','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','267','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19880','C_Golden_Tiara','Costume Golden Tiara','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','232','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('19881','C_Pretty_Rabbit_Hood','Costume Pretty Rabbit Hood','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','1085','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('19881','C_Pretty_Rabbit_Hood','Costume Pretty Rabbit Hood','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','1085','0','0','0','0','384',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19882','C_Flowerpot_Mask','Costume Flowerpot Mask','5','0','0','0','0','0','0','0','0','4294967295','63','2','6144','0','0',NULL,'1','1086','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19883','C_Piamette_Hood','Costume Piamette Hood','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','1087','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19884','C_Vanargand_Helm','Costume Vanargand Helm','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','804','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -9421,7 +9496,7 @@ REPLACE INTO `item_db` VALUES ('22670','DARK_INVITATION','Invitation of Darkness
REPLACE INTO `item_db` VALUES ('22675','Mysterious_Scroll','Mysterious Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,3600000,30;','','');
REPLACE INTO `item_db` VALUES ('22676','Hangul_Day_Event_Box','Hangul Day Event Box','2','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 22675,10; getitem 607,9;','','');
REPLACE INTO `item_db` VALUES ('22679','Death_Bin','Death Bin','18','10','5','0','0','0','0','0','0','4294967295','63','2','0','0','170',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('22685','Solo_Christmas_Gift','Single Union Christmas Gift','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('22685','Solo_Christmas_Gift','Single Union Christmas Gift','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('22686','Solo_Cookie','Single Cookie','0','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 5,5;','','');
REPLACE INTO `item_db` VALUES ('22777','Buff_Gift_Set','Buff Gift Set','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14534,5; getitem 12215,5; getitem 12216,5;','','');
REPLACE INTO `item_db` VALUES ('22837','Integer_Time','Integer Time','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','50',NULL,'0','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','TmpRouletteBronze += 1;','','');
diff --git a/src/char/Makefile.in b/src/char/Makefile.in
index 035dbf711..45f0cd872 100644
--- a/src/char/Makefile.in
+++ b/src/char/Makefile.in
@@ -94,13 +94,13 @@ char-server: ../../char-server@EXEEXT@
../../char-server@EXEEXT@: $(CHAR_SERVER_SQL_DEPENDS) Makefile
@echo " LD $(notdir $@)"
@$(CC) @STATIC@ @LDFLAGS@ -o ../../char-server@EXEEXT@ $(CHAR_OBJ) $(COMMON_D)/obj_sql/common_sql.a \
- $(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@
+ $(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @PCRE_LIBS@ @MYSQL_LIBS@
# char object files
obj_sql/%.o: %.c $(CHAR_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | obj_sql
@echo " CC $<"
- @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
+ @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PCRE_CFLAGS@ @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
# missing object files
$(COMMON_D)/obj_all/common.a:
diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h
index c60bec4c8..00ac57cd5 100644
--- a/src/common/HPMDataCheck.h
+++ b/src/common/HPMDataCheck.h
@@ -446,14 +446,19 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
#endif // MAP_MOB_H
#ifdef MAP_NPC_H
{ "event_data", sizeof(struct event_data), SERVER_TYPE_MAP },
+ { "npc_chat_interface", sizeof(struct npc_chat_interface), SERVER_TYPE_MAP },
{ "npc_data", sizeof(struct npc_data), SERVER_TYPE_MAP },
{ "npc_interface", sizeof(struct npc_interface), SERVER_TYPE_MAP },
{ "npc_item_list", sizeof(struct npc_item_list), SERVER_TYPE_MAP },
{ "npc_label_list", sizeof(struct npc_label_list), SERVER_TYPE_MAP },
+ { "npc_parse", sizeof(struct npc_parse), SERVER_TYPE_MAP },
{ "npc_path_data", sizeof(struct npc_path_data), SERVER_TYPE_MAP },
{ "npc_shop_data", sizeof(struct npc_shop_data), SERVER_TYPE_MAP },
{ "npc_src_list", sizeof(struct npc_src_list), SERVER_TYPE_MAP },
{ "npc_timerevent_list", sizeof(struct npc_timerevent_list), SERVER_TYPE_MAP },
+ { "pcre_interface", sizeof(struct pcre_interface), SERVER_TYPE_MAP },
+ { "pcrematch_entry", sizeof(struct pcrematch_entry), SERVER_TYPE_MAP },
+ { "pcrematch_set", sizeof(struct pcrematch_set), SERVER_TYPE_MAP },
#else
#define MAP_NPC_H
#endif // MAP_NPC_H
@@ -589,8 +594,6 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
#ifdef MAP_SCRIPT_H
{ "Script_Config", sizeof(struct Script_Config), SERVER_TYPE_MAP },
{ "casecheck_data", sizeof(struct casecheck_data), SERVER_TYPE_MAP },
- { "hQueue", sizeof(struct hQueue), SERVER_TYPE_MAP },
- { "hQueueIterator", sizeof(struct hQueueIterator), SERVER_TYPE_MAP },
{ "reg_db", sizeof(struct reg_db), SERVER_TYPE_MAP },
{ "script_array", sizeof(struct script_array), SERVER_TYPE_MAP },
{ "script_code", sizeof(struct script_code), SERVER_TYPE_MAP },
@@ -598,6 +601,8 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "script_function", sizeof(struct script_function), SERVER_TYPE_MAP },
{ "script_interface", sizeof(struct script_interface), SERVER_TYPE_MAP },
{ "script_label_entry", sizeof(struct script_label_entry), SERVER_TYPE_MAP },
+ { "script_queue", sizeof(struct script_queue), SERVER_TYPE_MAP },
+ { "script_queue_iterator", sizeof(struct script_queue_iterator), SERVER_TYPE_MAP },
{ "script_retinfo", sizeof(struct script_retinfo), SERVER_TYPE_MAP },
{ "script_stack", sizeof(struct script_stack), SERVER_TYPE_MAP },
{ "script_state", sizeof(struct script_state), SERVER_TYPE_MAP },
diff --git a/src/common/Makefile.in b/src/common/Makefile.in
index 88e991651..f9917ef0d 100644
--- a/src/common/Makefile.in
+++ b/src/common/Makefile.in
@@ -119,7 +119,7 @@ obj_all/sysinfo.o: sysinfo.c $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_
obj_all/%.o: %.c $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | $(SYSINFO_INC) obj_all
@echo " CC $<"
- @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
+ @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PCRE_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
obj_all/mini%.o: %.c $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | $(SYSINFO_INC) obj_all
@echo " CC $<"
diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h
index 64f21f7e0..5fc08b770 100644
--- a/src/common/cbasetypes.h
+++ b/src/common/cbasetypes.h
@@ -428,4 +428,7 @@ typedef char bool;
#define ZEROED_BLOCK_POS(x) (&(x)->HERC__zeroed_block_BEGIN)
#define ZEROED_BLOCK_SIZE(x) ((char*)&((x)->HERC__zeroed_block_END) - (char*)&((x)->HERC__zeroed_block_BEGIN) + sizeof((x)->HERC__zeroed_block_END))
+/** Support macros for marking structs as unavailable */
+#define UNAVAILABLE_STRUCT int8 HERC__unavailable_struct
+
#endif /* COMMON_CBASETYPES_H */
diff --git a/src/common/console.h b/src/common/console.h
index ef6db0cb4..102a1beaf 100644
--- a/src/common/console.h
+++ b/src/common/console.h
@@ -50,8 +50,8 @@ struct CParseEntry {
} u;
};
-#ifdef CONSOLE_INPUT
struct console_input_interface {
+#ifdef CONSOLE_INPUT
/* vars */
SPIN_LOCK ptlock;/* parse thread lock */
rAthread *pthread;/* parse thread */
@@ -75,10 +75,10 @@ struct console_input_interface {
void (*parse_list_subs) (struct CParseEntry *cmd, unsigned char depth);
void (*addCommand) (char *name, CParseFunc func);
void (*setSQL) (Sql *SQL_handle);
-};
-#else
-struct console_input_interface;
+#else // not CONSOLE_INPUT
+ UNAVAILABLE_STRUCT;
#endif
+};
struct console_interface {
void (*init) (void);
diff --git a/src/common/memmgr.c b/src/common/memmgr.c
index 0d9305b06..f7177338c 100644
--- a/src/common/memmgr.c
+++ b/src/common/memmgr.c
@@ -140,7 +140,7 @@ void* aReallocz_(void *p, size_t size, const char *file, int line, const char *f
#else
size_t newSize;
if (p) {
- size_t oldSize = malloc_usable_size(p);
+ size_t oldSize = BUFFER_SIZE(p);
ret = REALLOC(p, size, file, line, func);
newSize = BUFFER_SIZE(ret);
if (ret && newSize > oldSize)
diff --git a/src/common/mmo.h b/src/common/mmo.h
index 73d4510a1..095b96341 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -462,13 +462,15 @@ struct s_friend {
char name[NAME_LENGTH];
};
-#ifdef HOTKEY_SAVING
struct hotkey {
+#ifdef HOTKEY_SAVING
unsigned int id;
unsigned short lv;
unsigned char type; // 0: item, 1: skill
-};
+#else // not HOTKEY_SAVING
+ UNAVAILABLE_STRUCT;
#endif
+};
struct mmo_charstatus {
int char_id;
diff --git a/src/common/socket.c b/src/common/socket.c
index b418a468f..362fe78db 100644
--- a/src/common/socket.c
+++ b/src/common/socket.c
@@ -303,18 +303,31 @@ void set_nonblocking(int fd, unsigned long yes)
ShowError("set_nonblocking: Failed to set socket #%d to non-blocking mode (%s) - Please report this!!!\n", fd, error_msg());
}
-void setsocketopts(int fd, struct hSockOpt *opt) {
- int yes = 1; // reuse fix
- struct linger lopt;
+/**
+ * Sets the options for a socket.
+ *
+ * @param fd The socket descriptor
+ * @param opt Optional, additional options to set (Can be NULL).
+ */
+void setsocketopts(int fd, struct hSockOpt *opt)
+{
+#if defined(WIN32)
+ BOOL yes = TRUE;
+#else // not WIN32
+ int yes = 1;
+#endif // WIN32
+ struct linger lopt = { 0 };
+ // Note: We cast the fourth argument to (char *) because, while in UNIX
+ // it takes a const void *, in Windows it takes a const char *.
#if !defined(WIN32)
// set SO_REAUSEADDR to true, unix only. on windows this option causes
// the previous owner of the socket to give up, which is not desirable
// in most cases, neither compatible with unix.
- if (sSetsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(char *)&yes,sizeof(yes)))
+ if (sSetsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&yes, sizeof(yes)))
ShowWarning("setsocketopts: Unable to set SO_REUSEADDR mode for connection #%d!\n", fd);
#ifdef SO_REUSEPORT
- if (sSetsockopt(fd,SOL_SOCKET,SO_REUSEPORT,(char *)&yes,sizeof(yes)))
+ if (sSetsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (char *)&yes, sizeof(yes)))
ShowWarning("setsocketopts: Unable to set SO_REUSEPORT mode for connection #%d!\n", fd);
#endif // SO_REUSEPORT
#endif // WIN32
@@ -324,15 +337,17 @@ void setsocketopts(int fd, struct hSockOpt *opt) {
if (sSetsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&yes, sizeof(yes)))
ShowWarning("setsocketopts: Unable to set TCP_NODELAY mode for connection #%d!\n", fd);
- if( opt && opt->setTimeo ) {
- struct timeval timeout;
-
+ if (opt && opt->setTimeo) {
+#if defined(WIN32)
+ DWORD timeout = 5000; // https://msdn.microsoft.com/en-us/library/windows/desktop/ms740476(v=vs.85).aspx
+#else // not WIN32
+ struct timeval timeout = { 0 };
timeout.tv_sec = 5;
- timeout.tv_usec = 0;
+#endif // WIN32
- if (sSetsockopt(fd,SOL_SOCKET,SO_RCVTIMEO,(char *)&timeout,sizeof(timeout)))
+ if (sSetsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout)))
ShowWarning("setsocketopts: Unable to set SO_RCVTIMEO for connection #%d!\n", fd);
- if (sSetsockopt(fd,SOL_SOCKET,SO_SNDTIMEO,(char *)&timeout,sizeof(timeout)))
+ if (sSetsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout)))
ShowWarning("setsocketopts: Unable to set SO_SNDTIMEO for connection #%d!\n", fd);
}
@@ -340,7 +355,7 @@ void setsocketopts(int fd, struct hSockOpt *opt) {
//(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/closesocket_2.asp)
lopt.l_onoff = 0; // SO_DONTLINGER
lopt.l_linger = 0; // Do not care
- if( sSetsockopt(fd, SOL_SOCKET, SO_LINGER, (char*)&lopt, sizeof(lopt)) )
+ if (sSetsockopt(fd, SOL_SOCKET, SO_LINGER, (char *)&lopt, sizeof(lopt)))
ShowWarning("setsocketopts: Unable to set SO_LINGER mode for connection #%d!\n", fd);
#ifdef TCP_THIN_LINEAR_TIMEOUTS
diff --git a/src/login/Makefile.in b/src/login/Makefile.in
index 60382dc87..652876727 100644
--- a/src/login/Makefile.in
+++ b/src/login/Makefile.in
@@ -90,7 +90,7 @@ login-server: ../../login-server@EXEEXT@
../../login-server@EXEEXT@: $(LOGIN_SERVER_SQL_DEPENDS) Makefile
@echo " LD $(notdir $@)"
@$(CC) @STATIC@ @LDFLAGS@ -o ../../login-server@EXEEXT@ $(LOGIN_OBJ) $(COMMON_D)/obj_sql/common_sql.a \
- $(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@
+ $(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @PCRE_LIBS@ @MYSQL_LIBS@
# login object files
diff --git a/src/map/Makefile.in b/src/map/Makefile.in
index ac1b4d837..ca6f70472 100644
--- a/src/map/Makefile.in
+++ b/src/map/Makefile.in
@@ -45,13 +45,6 @@ else
MAP_SERVER_SQL_DEPENDS=needs_mysql
endif
-HAVE_PCRE=@HAVE_PCRE@
-ifeq ($(HAVE_PCRE),yes)
- PCRE_CFLAGS=-DPCRE_SUPPORT @PCRE_CFLAGS@
-else
- PCRE_CFLAGS=
-endif
-
@SET_MAKE@
CC = @CC@
@@ -113,7 +106,7 @@ map-server: ../../map-server@EXEEXT@
obj_sql/%.o: %.c $(MAP_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | obj_sql
@echo " CC $<"
- @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) $(PCRE_CFLAGS) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
+ @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PCRE_CFLAGS@ @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
# missing object files
$(COMMON_D)/obj_all/common.a:
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index ac64bef75..61ac124ca 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -77,7 +77,7 @@ struct atcmd_binding_data* get_atcommandbind_byname(const char* name) {
}
const char* atcommand_msgsd(struct map_session_data *sd, int msg_number) {
- Assert_retr("??", msg_number >= 0 && msg_number < MAX_MSG);
+ Assert_retr("??", msg_number >= 0 && msg_number < MAX_MSG && atcommand->msg_table[0][msg_number] != NULL);
if (!sd || sd->lang_id >= atcommand->max_message_table || !atcommand->msg_table[sd->lang_id][msg_number])
return atcommand->msg_table[0][msg_number];
return atcommand->msg_table[sd->lang_id][msg_number];
@@ -85,7 +85,7 @@ const char* atcommand_msgsd(struct map_session_data *sd, int msg_number) {
const char* atcommand_msgfd(int fd, int msg_number) {
struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
- Assert_retr("??", msg_number >= 0 && msg_number < MAX_MSG);
+ Assert_retr("??", msg_number >= 0 && msg_number < MAX_MSG && atcommand->msg_table[0][msg_number] != NULL);
if (!sd || sd->lang_id >= atcommand->max_message_table || !atcommand->msg_table[sd->lang_id][msg_number])
return atcommand->msg_table[0][msg_number];
return atcommand->msg_table[sd->lang_id][msg_number];
diff --git a/src/map/battle.c b/src/map/battle.c
index 1cbc3baa5..d1cdd19c4 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -229,10 +229,13 @@ int battle_delay_damage_sub(int tid, int64 tick, int id, intptr_t data) {
src = map->id2bl(dat->src_id);
//Check to see if you haven't teleported. [Skotlex]
- if( src
- && (target->type != BL_PC || ((TBL_PC*)target)->invincible_timer == INVALID_TIMER)
- && (dat->skill_id == MO_EXTREMITYFIST || (target->m == src->m && check_distance_bl(src, target, dat->distance)) )
- ) {
+ if (src && (
+ battle_config.fix_warp_hit_delay_abuse ?
+ (dat->skill_id == MO_EXTREMITYFIST || target->m != src->m || check_distance_bl(src, target, dat->distance))
+ :
+ ((target->type != BL_PC || ((TBL_PC*)target)->invincible_timer == INVALID_TIMER)
+ && (dat->skill_id == MO_EXTREMITYFIST || (target->m == src->m && check_distance_bl(src, target, dat->distance))))
+ )) {
map->freeblock_lock();
status_fix_damage(src, target, dat->damage, dat->delay);
if( dat->attack_type && !status->isdead(target) && dat->additional_effects )
@@ -7103,6 +7106,7 @@ static const struct battle_data {
{ "mvp_tomb_enabled", &battle_config.mvp_tomb_enabled, 1, 0, 1 },
{ "feature.atcommand_suggestions", &battle_config.atcommand_suggestions_enabled, 0, 0, 1 },
{ "min_npc_vendchat_distance", &battle_config.min_npc_vendchat_distance, 3, 0, 100 },
+ { "vendchat_near_hiddennpc", &battle_config.vendchat_near_hiddennpc, 0, 0, 1 },
{ "atcommand_mobinfo_type", &battle_config.atcommand_mobinfo_type, 0, 0, 1 },
{ "homunculus_max_level", &battle_config.hom_max_level, 99, 0, MAX_LEVEL, },
{ "homunculus_S_max_level", &battle_config.hom_S_max_level, 150, 0, MAX_LEVEL, },
@@ -7136,6 +7140,7 @@ static const struct battle_data {
{ "boss_icewall_walk_block", &battle_config.boss_icewall_walk_block, 0, 0, 255, },
{ "feature.roulette", &battle_config.feature_roulette, 1, 0, 1, },
{ "show_monster_hp_bar", &battle_config.show_monster_hp_bar, 1, 0, 1, },
+ { "fix_warp_hit_delay_abuse", &battle_config.fix_warp_hit_delay_abuse, 0, 0, 1, },
};
#ifndef STATS_OPT_OUT
/**
diff --git a/src/map/battle.h b/src/map/battle.h
index 0ebc0aeb9..68a427e72 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -471,6 +471,7 @@ struct Battle_Config {
int atcommand_suggestions_enabled;
int min_npc_vendchat_distance;
+ int vendchat_near_hiddennpc;
int atcommand_mobinfo_type;
int mob_size_influence; // Enable modifications on earned experience, drop rates and monster status depending on monster size. [mkbu95]
@@ -509,6 +510,8 @@ struct Battle_Config {
int feature_roulette;
int show_monster_hp_bar; // [Frost]
+
+ int fix_warp_hit_delay_abuse;
};
/* criteria for battle_config.idletime_critera */
diff --git a/src/map/battleground.c b/src/map/battleground.c
index cc5384d21..208b4b99f 100644
--- a/src/map/battleground.c
+++ b/src/map/battleground.c
@@ -471,24 +471,34 @@ struct bg_arena *bg_name2arena (char *name) {
}
return NULL;
}
-int bg_id2pos ( int queue_id, int account_id ) {
- struct hQueue *queue = script->queue(queue_id);
- if( queue ) {
- int i, pos = 1;
- for(i = 0; i < queue->size; i++ ) {
- if( queue->item[i] > 0 ) {
- if( queue->item[i] == account_id ) {
- return pos;
- }
- pos++;
- }
+
+/**
+ * Returns a character's position in a battleground's queue.
+ *
+ * @param queue_id The ID of the battleground's queue.
+ * @param account_id The character's account ID.
+ *
+ * @return the position (starting at 1).
+ * @retval 0 if the queue doesn't exist or the given account ID isn't present in it.
+ */
+int bg_id2pos(int queue_id, int account_id)
+{
+ struct script_queue *queue = script->queue(queue_id);
+ if (queue) {
+ int i;
+ ARR_FIND(0, VECTOR_LENGTH(queue->entries), i, VECTOR_INDEX(queue->entries, i) == account_id);
+ if (i != VECTOR_LENGTH(queue->entries)) {
+ return i+1;
}
}
return 0;
}
-void bg_queue_ready_ack (struct bg_arena *arena, struct map_session_data *sd, bool response) {
+
+void bg_queue_ready_ack(struct bg_arena *arena, struct map_session_data *sd, bool response)
+{
nullpo_retv(arena);
nullpo_retv(sd);
+
if( arena->begin_timer == INVALID_TIMER || !sd->bg_queue.arena || sd->bg_queue.arena != arena ) {
bg->queue_pc_cleanup(sd);
return;
@@ -496,18 +506,18 @@ void bg_queue_ready_ack (struct bg_arena *arena, struct map_session_data *sd, bo
if( !response )
bg->queue_pc_cleanup(sd);
else {
- struct hQueue *queue = &script->hq[arena->queue_id];
+ struct script_queue *queue = script->queue(arena->queue_id);
int i, count = 0;
sd->bg_queue.ready = 1;
- for( i = 0; i < queue->size; i++ ) {
- if (queue->item[i] > 0 && (sd = map->id2sd(queue->item[i])) != NULL) {
- if( sd->bg_queue.ready == 1 )
- count++;
- }
+ for (i = 0; i < VECTOR_LENGTH(queue->entries); i++) {
+ struct map_session_data *tsd = map->id2sd(VECTOR_INDEX(queue->entries, i));
+
+ if (tsd != NULL && tsd->bg_queue.ready == 1)
+ count++;
}
/* check if all are ready then cancel timer, and start game */
- if( count == queue->items ) {
+ if (count == VECTOR_LENGTH(queue->entries)) {
timer->delete(arena->begin_timer,bg->begin_timer);
arena->begin_timer = INVALID_TIMER;
bg->begin(arena);
@@ -531,7 +541,7 @@ void bg_queue_player_cleanup(struct map_session_data *sd) {
sd->bg_queue.type = 0;
}
void bg_match_over(struct bg_arena *arena, bool canceled) {
- struct hQueue *queue = &script->hq[arena->queue_id];
+ struct script_queue *queue = script->queue(arena->queue_id);
int i;
nullpo_retv(arena);
@@ -539,19 +549,20 @@ void bg_match_over(struct bg_arena *arena, bool canceled) {
return;
arena->ongoing = false;
- for( i = 0; i < queue->size; i++ ) {
- struct map_session_data * sd = NULL;
+ for (i = 0; i < VECTOR_LENGTH(queue->entries); i++) {
+ struct map_session_data *sd = map->id2sd(VECTOR_INDEX(queue->entries, i));
- if (queue->item[i] > 0 && (sd = map->id2sd(queue->item[i])) != NULL) {
- if( sd->bg_queue.arena ) {
- bg->team_leave(sd, 0);
- bg->queue_pc_cleanup(sd);
- }
- if (canceled)
- clif->messagecolor_self(sd->fd, COLOR_RED, "BG Match Canceled: not enough players");
- else
- pc_setglobalreg(sd, script->add_str(arena->delay_var), (unsigned int)time(NULL));
+ if (sd == NULL)
+ continue;
+
+ if (sd->bg_queue.arena) {
+ bg->team_leave(sd, 0);
+ bg->queue_pc_cleanup(sd);
}
+ if (canceled)
+ clif->messagecolor_self(sd->fd, COLOR_RED, "BG Match Canceled: not enough players");
+ else
+ pc_setglobalreg(sd, script->add_str(arena->delay_var), (unsigned int)time(NULL));
}
arena->begin_timer = INVALID_TIMER;
@@ -560,19 +571,20 @@ void bg_match_over(struct bg_arena *arena, bool canceled) {
script->queue_clear(arena->queue_id);
}
void bg_begin(struct bg_arena *arena) {
- struct hQueue *queue = &script->hq[arena->queue_id];
+ struct script_queue *queue = script->queue(arena->queue_id);
int i, count = 0;
nullpo_retv(arena);
- for( i = 0; i < queue->size; i++ ) {
- struct map_session_data * sd = NULL;
+ for (i = 0; i < VECTOR_LENGTH(queue->entries); i++) {
+ struct map_session_data *sd = map->id2sd(VECTOR_INDEX(queue->entries, i));
- if (queue->item[i] > 0 && (sd = map->id2sd(queue->item[i])) != NULL) {
- if( sd->bg_queue.ready == 1 )
- count++;
- else
- bg->queue_pc_cleanup(sd);
- }
+ if (sd == NULL)
+ continue;
+
+ if (sd->bg_queue.ready == 1)
+ count++;
+ else
+ bg->queue_pc_cleanup(sd);
}
/* TODO/FIXME? I *think* it should check what kind of queue the player used, then check if his party/guild
* (his team) still meet the join criteria (sort of what bg->can_queue does)
@@ -591,25 +603,24 @@ void bg_begin(struct bg_arena *arena) {
mapreg->setregstr(script->add_str("$@bg_delay_var$"),bg->gdelay_var);
count = 0;
- for( i = 0; i < queue->size; i++ ) {
- struct map_session_data * sd = NULL;
-
- if (queue->item[i] > 0 && (sd = map->id2sd(queue->item[i])) != NULL) {
- if( sd->bg_queue.ready == 1 ) {
- mapreg->setreg(reference_uid(script->add_str("$@bg_member"), count), sd->status.account_id);
- mapreg->setreg(reference_uid(script->add_str("$@bg_member_group"), count),
- sd->bg_queue.type == BGQT_GUILD ? sd->status.guild_id :
- sd->bg_queue.type == BGQT_PARTY ? sd->status.party_id :
- 0
- );
- mapreg->setreg(reference_uid(script->add_str("$@bg_member_type"), count),
- sd->bg_queue.type == BGQT_GUILD ? 1 :
- sd->bg_queue.type == BGQT_PARTY ? 2 :
- 0
- );
- count++;
- }
- }
+ for (i = 0; i < VECTOR_LENGTH(queue->entries); i++) {
+ struct map_session_data *sd = map->id2sd(VECTOR_INDEX(queue->entries, i));
+
+ if (sd == NULL || sd->bg_queue.ready != 1)
+ continue;
+
+ mapreg->setreg(reference_uid(script->add_str("$@bg_member"), count), sd->status.account_id);
+ mapreg->setreg(reference_uid(script->add_str("$@bg_member_group"), count),
+ sd->bg_queue.type == BGQT_GUILD ? sd->status.guild_id :
+ sd->bg_queue.type == BGQT_PARTY ? sd->status.party_id :
+ 0
+ );
+ mapreg->setreg(reference_uid(script->add_str("$@bg_member_type"), count),
+ sd->bg_queue.type == BGQT_GUILD ? 1 :
+ sd->bg_queue.type == BGQT_PARTY ? 2 :
+ 0
+ );
+ count++;
}
mapreg->setreg(script->add_str("$@bg_member_size"),count);
@@ -645,15 +656,15 @@ int bg_afk_timer(int tid, int64 tick, int id, intptr_t data) {
}
void bg_queue_pregame(struct bg_arena *arena) {
- struct hQueue *queue;
+ struct script_queue *queue;
int i;
-
nullpo_retv(arena);
- queue = &script->hq[arena->queue_id];
- for( i = 0; i < queue->size; i++ ) {
- struct map_session_data * sd = NULL;
- if (queue->item[i] > 0 && (sd = map->id2sd(queue->item[i])) != NULL) {
+ queue = script->queue(arena->queue_id);
+ for (i = 0; i < VECTOR_LENGTH(queue->entries); i++) {
+ struct map_session_data *sd = map->id2sd(VECTOR_INDEX(queue->entries, i));
+
+ if (sd != NULL) {
clif->bgqueue_battlebegins(sd,arena->id,SELF);
}
}
@@ -667,9 +678,11 @@ int bg_fillup_timer(int tid, int64 tick, int id, intptr_t data) {
void bg_queue_check(struct bg_arena *arena) {
int count;
-
+ struct script_queue *queue;
nullpo_retv(arena);
- count = script->hq[arena->queue_id].items;
+
+ queue = script->queue(arena->queue_id);
+ count = VECTOR_LENGTH(queue->entries);
if( count == arena->max_players ) {
if( arena->fillup_timer != INVALID_TIMER ) {
timer->delete(arena->fillup_timer,bg->fillup_timer);
@@ -682,7 +695,7 @@ void bg_queue_check(struct bg_arena *arena) {
}
void bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types type) {
enum BATTLEGROUNDS_QUEUE_ACK result = bg->can_queue(sd,arena,type);
- struct hQueue *queue;
+ struct script_queue *queue = NULL;
int i, count = 0;
nullpo_retv(sd);
@@ -718,7 +731,7 @@ void bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_q
break;
}
- if( !(queue = script->queue(arena->queue_id)) || (queue->items+count) > arena->max_players ) {
+ if( !(queue = script->queue(arena->queue_id)) || (VECTOR_LENGTH(queue->entries)+count) > arena->max_players ) {
clif->bgqueue_ack(sd,BGQA_FAIL_PPL_OVERAMOUNT,arena->id);
return;
}
@@ -729,8 +742,8 @@ void bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_q
sd->bg_queue.arena = arena;
sd->bg_queue.ready = 0;
script->queue_add(arena->queue_id,sd->status.account_id);
- clif->bgqueue_joined(sd,script->hq[arena->queue_id].items);
- clif->bgqueue_update_info(sd,arena->id,script->hq[arena->queue_id].items);
+ clif->bgqueue_joined(sd, VECTOR_LENGTH(queue->entries));
+ clif->bgqueue_update_info(sd,arena->id, VECTOR_LENGTH(queue->entries));
break;
case BGQT_PARTY: {
struct party_data *p = party->search(sd->status.party_id);
@@ -740,8 +753,8 @@ void bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_q
p->data[i].sd->bg_queue.arena = arena;
p->data[i].sd->bg_queue.ready = 0;
script->queue_add(arena->queue_id,p->data[i].sd->status.account_id);
- clif->bgqueue_joined(p->data[i].sd,script->hq[arena->queue_id].items);
- clif->bgqueue_update_info(p->data[i].sd,arena->id,script->hq[arena->queue_id].items);
+ clif->bgqueue_joined(p->data[i].sd, VECTOR_LENGTH(queue->entries));
+ clif->bgqueue_update_info(p->data[i].sd,arena->id, VECTOR_LENGTH(queue->entries));
}
}
break;
@@ -753,8 +766,8 @@ void bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_q
sd->guild->member[i].sd->bg_queue.arena = arena;
sd->guild->member[i].sd->bg_queue.ready = 0;
script->queue_add(arena->queue_id,sd->guild->member[i].sd->status.account_id);
- clif->bgqueue_joined(sd->guild->member[i].sd,script->hq[arena->queue_id].items);
- clif->bgqueue_update_info(sd->guild->member[i].sd,arena->id,script->hq[arena->queue_id].items);
+ clif->bgqueue_joined(sd->guild->member[i].sd, VECTOR_LENGTH(queue->entries));
+ clif->bgqueue_update_info(sd->guild->member[i].sd,arena->id, VECTOR_LENGTH(queue->entries));
}
break;
}
diff --git a/src/map/clif.c b/src/map/clif.c
index 42d9af27b..f79b15171 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -610,12 +610,12 @@ bool clif_send(const void* buf, int len, struct block_list* bl, enum send_target
case BG_QUEUE:
if( sd && sd->bg_queue.arena ) {
- struct hQueue *queue = &script->hq[sd->bg_queue.arena->queue_id];
+ struct script_queue *queue = script->queue(sd->bg_queue.arena->queue_id);
- for( i = 0; i < queue->size; i++ ) {
- struct map_session_data *qsd = NULL;
+ for (i = 0; i < VECTOR_LENGTH(queue->entries); i++) {
+ struct map_session_data *qsd = map->id2sd(VECTOR_INDEX(queue->entries, i));
- if (queue->item[i] > 0 && (qsd = map->id2sd(queue->item[i])) != NULL) {
+ if (qsd != NULL) {
WFIFOHEAD(qsd->fd,len);
memcpy(WFIFOP(qsd->fd,0), buf, len);
WFIFOSET(qsd->fd,len);
diff --git a/src/map/map.c b/src/map/map.c
index cd2ba17c2..fff1593a4 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -1802,16 +1802,16 @@ int map_quit(struct map_session_data *sd) {
skill->cooldown_save(sd);
pc->itemcd_do(sd,false);
- for( i = 0; i < sd->queues_count; i++ ) {
- struct hQueue *queue;
- if( (queue = script->queue(sd->queues[i])) && queue->onLogOut[0] != '\0' ) {
- npc->event(sd, queue->onLogOut, 0);
+ for (i = 0; i < VECTOR_LENGTH(sd->script_queues); i++) {
+ struct script_queue *queue = script->queue(VECTOR_INDEX(sd->script_queues, i));
+ if (queue && queue->event_logout[0] != '\0') {
+ npc->event(sd, queue->event_logout, 0);
}
}
/* two times, the npc event above may assign a new one or delete others */
- for( i = 0; i < sd->queues_count; i++ ) {
- if( sd->queues[i] != -1 )
- script->queue_remove(sd->queues[i],sd->status.account_id);
+ while (VECTOR_LENGTH(sd->script_queues)) {
+ int qid = VECTOR_LAST(sd->script_queues);
+ script->queue_remove(qid, sd->status.account_id);
}
npc->script_event(sd, NPCE_LOGOUT);
diff --git a/src/map/mob.c b/src/map/mob.c
index 2b519462d..6cbbd3a2a 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -142,17 +142,11 @@ void mvptomb_create(struct mob_data *md, char *killer, time_t time)
if ( md->tomb_nid )
mob->mvptomb_destroy(md);
- nd = npc->create_npc(md->bl.m, md->bl.x, md->bl.y);
+ nd = npc->create_npc(TOMB, md->bl.m, md->bl.x, md->bl.y, md->ud.dir, MOB_TOMB);
md->tomb_nid = nd->bl.id;
- nd->dir = md->ud.dir;
- nd->bl.type = BL_NPC;
safestrncpy(nd->name, msg_txt(856), sizeof(nd->name)); // "Tomb"
- nd->class_ = 565;
- nd->speed = 200;
- nd->subtype = TOMB;
-
nd->u.tomb.md = md;
nd->u.tomb.kill_time = time;
@@ -165,7 +159,6 @@ void mvptomb_create(struct mob_data *md, char *killer, time_t time)
map->addblock(&nd->bl);
status->set_viewdata(&nd->bl, nd->class_);
clif->spawn(&nd->bl);
-
}
void mvptomb_destroy(struct mob_data *md) {
diff --git a/src/map/npc.c b/src/map/npc.c
index 7044fefcf..21970a42f 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -53,8 +53,8 @@ static int npc_mob=0;
static int npc_delay_mob=0;
static int npc_cache_mob=0;
-static char *npc_last_path;
-static char *npc_last_ref;
+static const char *npc_last_path;
+static const char *npc_last_ref;
struct npc_path_data *npc_last_npd;
//For holding the view data of npc classes. [Skotlex]
@@ -137,6 +137,9 @@ int npc_isnear_sub(struct block_list* bl, va_list args) {
if( nd->option & (OPTION_HIDE|OPTION_INVISIBLE) )
return 0;
+ if( battle_config.vendchat_near_hiddennpc && ( nd->class_ == FAKE_NPC || nd->class_ == HIDDEN_WARP_CLASS ) )
+ return 0;
+
return 1;
}
@@ -2244,16 +2247,9 @@ int npc_unload(struct npc_data* nd, bool single)
npc_chat->finalize(nd); // deallocate npc PCRE data structures
#endif
- if( single && nd->path ) {
- struct npc_path_data* npd = NULL;
- if( nd->path && nd->path != npc_last_ref ) {
- npd = strdb_get(npc->path_db, nd->path);
- }
-
- if( npd && --npd->references == 0 ) {
- strdb_remove(npc->path_db, nd->path);/* remove from db */
- aFree(nd->path);/* remove now that no other instances exist */
- }
+ if (single && nd->path != NULL) {
+ npc->releasepathreference(nd->path);
+ nd->path = NULL;
}
if( single && nd->bl.m != -1 )
@@ -2404,6 +2400,64 @@ void npc_delsrcfile(const char* name)
}
}
+/**
+ * Retains a reference to filepath, for use in nd->path
+ *
+ * @param filepath The file path to retain.
+ * @return A retained reference to filepath.
+ */
+const char *npc_retainpathreference(const char *filepath)
+{
+ struct npc_path_data * npd = NULL;
+ nullpo_ret(filepath);
+
+ if (npc_last_path == filepath) {
+ if (npc_last_npd != NULL)
+ npc_last_npd->references++;
+ return npc_last_ref;
+ }
+
+ if ((npd = strdb_get(npc->path_db,filepath)) == NULL) {
+ CREATE(npd, struct npc_path_data, 1);
+ strdb_put(npc->path_db, filepath, npd);
+
+ CREATE(npd->path, char, strlen(filepath)+1);
+ safestrncpy(npd->path, filepath, strlen(filepath)+1);
+
+ npd->references = 0;
+ }
+
+ npd->references++;
+
+ npc_last_npd = npd;
+ npc_last_ref = npd->path;
+ npc_last_path = filepath;
+
+ return npd->path;
+}
+
+/**
+ * Releases a previously retained filepath.
+ *
+ * @param filepath The file path to release.
+ */
+void npc_releasepathreference(const char *filepath)
+{
+ struct npc_path_data* npd = NULL;
+
+ nullpo_retv(filepath);
+
+ if (filepath != npc_last_ref) {
+ npd = strdb_get(npc->path_db, filepath);
+ }
+
+ if (npd != NULL && --npd->references == 0) {
+ char *npcpath = npd->path;
+ strdb_remove(npc->path_db, filepath);/* remove from db */
+ aFree(npcpath);
+ }
+}
+
/// Parses and sets the name and exname of a npc.
/// Assumes that m, x and y are already set in nd.
void npc_parsename(struct npc_data* nd, const char* name, const char* start, const char* buffer, const char* filepath) {
@@ -2458,37 +2512,12 @@ void npc_parsename(struct npc_data* nd, const char* name, const char* start, con
ShowDebug("other npc in '%s' :\n display name '%s'\n unique name '%s'\n map=%s, x=%d, y=%d\n",dnd->path, dnd->name, dnd->exname, other_mapname, dnd->bl.x, dnd->bl.y);
safestrncpy(nd->exname, newname, sizeof(nd->exname));
}
-
- if( npc_last_path != filepath ) {
- struct npc_path_data * npd = NULL;
-
- if( !(npd = strdb_get(npc->path_db,filepath) ) ) {
- CREATE(npd, struct npc_path_data, 1);
- strdb_put(npc->path_db, filepath, npd);
-
- CREATE(npd->path, char, strlen(filepath)+1);
- safestrncpy(npd->path, filepath, strlen(filepath)+1);
-
- npd->references = 0;
- }
-
- nd->path = npd->path;
- npd->references++;
-
- npc_last_npd = npd;
- npc_last_ref = npd->path;
- npc_last_path = (char*) filepath;
- } else {
- nd->path = npc_last_ref;
- if( npc_last_npd )
- npc_last_npd->references++;
- }
}
// Parse View
// Support for using Constants in place of NPC View IDs.
int npc_parseview(const char* w4, const char* start, const char* buffer, const char* filepath) {
- int val = -1, i = 0;
+ int val = FAKE_NPC, i = 0;
char viewid[1024]; // Max size of name from const.txt, see script->read_constdb.
// Extract view ID / constant
@@ -2512,7 +2541,7 @@ int npc_parseview(const char* w4, const char* start, const char* buffer, const c
} else {
// NPC has an ID specified for view id.
val = atoi(w4);
- if (val != -1)
+ if (val != FAKE_NPC) // TODO: Add this to the constants table and replace -1 with FAKE_NPC in the scripts, then remove this check.
ShowWarning("npc_parseview: Use of numeric NPC view IDs is deprecated and may be removed in a future update. Please use NPC view constants instead. ID '%d' specified in file '%s', line '%d'.\n", val, filepath, strline(buffer, start-buffer));
}
@@ -2523,8 +2552,7 @@ int npc_parseview(const char* w4, const char* start, const char* buffer, const c
// Checks if given view is an ID or constant.
bool npc_viewisid(const char * viewid)
{
- if(atoi(viewid) != -1)
- {
+ if (atoi(viewid) != FAKE_NPC) {
// Loop through view, looking for non-numeric character.
while (*viewid) {
if (ISDIGIT(*viewid++) == 0) return false;
@@ -2534,17 +2562,39 @@ bool npc_viewisid(const char * viewid)
return true;
}
-struct npc_data* npc_create_npc(int m, int x, int y)
+/**
+ * Creates a new NPC.
+ *
+ * @remark
+ * When creating a npc with subtype TOMB, no ID is assigned. The caller
+ * must assign the dead mob ID after the NPC is created.
+ *
+ * @param subtype The NPC subtype.
+ * @param m The map id.
+ * @param x The x coordinate on map.
+ * @param y The y coordinate on map.
+ * @param dir The facing direction.
+ * @param class_ The NPC view class.
+ * @return A pointer to the created NPC data (ownership passed to the caller).
+ */
+struct npc_data *npc_create_npc(enum npc_subtype subtype, int m, int x, int y, uint8 dir, int16 class_)
{
struct npc_data *nd;
CREATE(nd, struct npc_data, 1);
- nd->bl.id = npc->get_new_npc_id();
+ nd->subtype = subtype;
+ nd->bl.type = BL_NPC;
+ if (subtype != TOMB) {
+ nd->bl.id = npc->get_new_npc_id();
+ }
nd->bl.prev = nd->bl.next = NULL;
nd->bl.m = m;
nd->bl.x = x;
nd->bl.y = y;
+ nd->dir = dir;
nd->area_size = AREA_SIZE + 1;
+ nd->class_ = class_;
+ nd->speed = 200;
return nd;
}
@@ -2554,8 +2604,7 @@ struct npc_data* npc_add_warp(char* name, short from_mapid, short from_x, short
int i, flag = 0;
struct npc_data *nd;
- nd = npc->create_npc(from_mapid, from_x, from_y);
- map->addnpc(from_mapid, nd);
+ nd = npc->create_npc(WARP, from_mapid, from_x, from_y, 0, battle_config.warp_point_debug ? WARP_DEBUG_CLASS : WARP_CLASS);
safestrncpy(nd->exname, name, ARRAYLENGTH(nd->exname));
if (npc->name2id(nd->exname) != NULL)
@@ -2568,26 +2617,13 @@ struct npc_data* npc_add_warp(char* name, short from_mapid, short from_x, short
snprintf(nd->exname, ARRAYLENGTH(nd->exname), "warp%d_%d_%d_%d", i, from_mapid, from_x, from_y);
safestrncpy(nd->name, nd->exname, ARRAYLENGTH(nd->name));
- if( battle_config.warp_point_debug )
- nd->class_ = WARP_DEBUG_CLASS;
- else
- nd->class_ = WARP_CLASS;
- nd->speed = 200;
-
nd->u.warp.mapindex = to_mapindex;
nd->u.warp.x = to_x;
nd->u.warp.y = to_y;
nd->u.warp.xs = xs;
nd->u.warp.ys = xs;
- nd->bl.type = BL_NPC;
- nd->subtype = WARP;
- npc->setcells(nd);
- map->addblock(&nd->bl);
- status->set_viewdata(&nd->bl, nd->class_);
- nd->ud = &npc->base_ud;
- if( map->list[nd->bl.m].users )
- clif->spawn(&nd->bl);
- strdb_put(npc->name_db, nd->exname, nd);
+
+ npc->add_to_location(nd);
return nd;
}
@@ -2623,15 +2659,9 @@ const char* npc_parse_warp(char* w1, char* w2, char* w3, char* w4, const char* s
return strchr(start,'\n');;//try next
}
- nd = npc->create_npc(m, x, y);
- map->addnpc(m, nd);
+ nd = npc->create_npc(WARP, m, x, y, 0, battle_config.warp_point_debug ? WARP_DEBUG_CLASS : WARP_CLASS);
npc->parsename(nd, w3, start, buffer, filepath);
-
- if (!battle_config.warp_point_debug)
- nd->class_ = WARP_CLASS;
- else
- nd->class_ = WARP_DEBUG_CLASS;
- nd->speed = 200;
+ nd->path = npc->retainpathreference(filepath);
nd->u.warp.mapindex = i;
nd->u.warp.x = to_x;
@@ -2639,15 +2669,8 @@ const char* npc_parse_warp(char* w1, char* w2, char* w3, char* w4, const char* s
nd->u.warp.xs = xs;
nd->u.warp.ys = ys;
npc_warp++;
- nd->bl.type = BL_NPC;
- nd->subtype = WARP;
- npc->setcells(nd);
- map->addblock(&nd->bl);
- status->set_viewdata(&nd->bl, nd->class_);
- nd->ud = &npc->base_ud;
- if( map->list[nd->bl.m].users )
- clif->spawn(&nd->bl);
- strdb_put(npc->name_db, nd->exname, nd);
+
+ npc->add_to_location(nd);
return strchr(start,'\n');// continue
}
@@ -2666,7 +2689,7 @@ const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const char* s
size_t items_count = 40; // Starting items size
char *p;
- int x, y, dir, m, i;
+ int x, y, dir, m, i, class_;
struct npc_data *nd;
enum npc_subtype type;
@@ -2765,31 +2788,18 @@ const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const char* s
return strchr(start,'\n');// continue
}
- nd = npc->create_npc(m, x, y);
+ class_ = m == -1 ? FAKE_NPC : npc->parseview(w4, start, buffer, filepath);
+ nd = npc->create_npc(type, m, x, y, dir, class_);
CREATE(nd->u.shop.shop_item, struct npc_item_list, i);
memcpy(nd->u.shop.shop_item, items, sizeof(items[0])*i);
aFree(items);
nd->u.shop.count = i;
npc->parsename(nd, w3, start, buffer, filepath);
- nd->class_ = m == -1 ? -1 : npc->parseview(w4, start, buffer, filepath);
- nd->speed = 200;
+ nd->path = npc->retainpathreference(filepath);
++npc_shop;
- nd->bl.type = BL_NPC;
- nd->subtype = type;
- if( m >= 0 ) {// normal shop npc
- map->addnpc(m,nd);
- map->addblock(&nd->bl);
- status->set_viewdata(&nd->bl, nd->class_);
- nd->ud = &npc->base_ud;
- nd->dir = dir;
- if( map->list[nd->bl.m].users )
- clif->spawn(&nd->bl);
- } else {// 'floating' shop
- map->addiddb(&nd->bl);
- }
- strdb_put(npc->name_db, nd->exname, nd);
+ npc->add_to_location(nd);
return strchr(start,'\n');// continue
}
@@ -2889,7 +2899,7 @@ const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, const char*
{
int x, y, dir = 0, m, xs = 0, ys = 0; // [Valaris] thanks to fov
struct script_code *scriptroot;
- int i;
+ int i, class_;
const char* end;
const char* script_start;
@@ -2946,39 +2956,74 @@ const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, const char*
npc->convertlabel_db(label_list,filepath);
}
- nd = npc->create_npc(m, x, y);
- if( sscanf(w4, "%*[^,],%d,%d", &xs, &ys) == 2 )
- {// OnTouch area defined
+ class_ = m == -1 ? FAKE_NPC : npc->parseview(w4, start, buffer, filepath);
+ nd = npc->create_npc(SCRIPT, m, x, y, dir, class_);
+ if (sscanf(w4, "%*[^,],%d,%d", &xs, &ys) == 2) {
+ // OnTouch area defined
nd->u.scr.xs = xs;
nd->u.scr.ys = ys;
- }
- else
- {// no OnTouch area
+ } else {
+ // no OnTouch area
nd->u.scr.xs = -1;
nd->u.scr.ys = -1;
}
npc->parsename(nd, w3, start, buffer, filepath);
- nd->class_ = m == -1 ? -1 : npc->parseview(w4, start, buffer, filepath);
- nd->speed = 200;
+ nd->path = npc->retainpathreference(filepath);
nd->u.scr.script = scriptroot;
nd->u.scr.label_list = label_list;
nd->u.scr.label_list_num = label_list_num;
if( options&NPO_TRADER )
nd->u.scr.trader = true;
nd->u.scr.shop = NULL;
-
++npc_script;
- nd->bl.type = BL_NPC;
- nd->subtype = SCRIPT;
+ npc->add_to_location(nd);
- if( m >= 0 ) {
- map->addnpc(m, nd);
- nd->ud = &npc->base_ud;
- nd->dir = dir;
+ //-----------------------------------------
+ // Loop through labels to export them as necessary
+ for (i = 0; i < nd->u.scr.label_list_num; i++) {
+ if (npc->event_export(nd, i)) {
+ ShowWarning("npc_parse_script: duplicate event %s::%s in file '%s'.\n",
+ nd->exname, nd->u.scr.label_list[i].name, filepath);
+ if (retval) *retval = EXIT_FAILURE;
+ }
+ npc->timerevent_export(nd, i);
+ }
+
+ nd->u.scr.timerid = INVALID_TIMER;
+
+ if( options&NPO_ONINIT ) {
+ char evname[EVENT_NAME_LENGTH];
+ struct event_data *ev;
+
+ snprintf(evname, ARRAYLENGTH(evname), "%s::OnInit", nd->exname);
+
+ if( ( ev = (struct event_data*)strdb_get(npc->ev_db, evname) ) ) {
+
+ //Execute OnInit
+ script->run_npc(nd->u.scr.script,ev->pos,0,nd->bl.id);
+
+ }
+ }
+
+ return end;
+}
+
+/**
+ * Registers the NPC and adds it to its location (on map or floating).
+ *
+ * @param nd The NPC to register.
+ */
+void npc_add_to_location(struct npc_data *nd)
+{
+ nullpo_retv(nd);
+
+ if (nd->bl.m >= 0) {
+ map->addnpc(nd->bl.m, nd);
npc->setcells(nd);
map->addblock(&nd->bl);
- if( nd->class_ >= 0 ) {
+ nd->ud = &npc->base_ud;
+ if (nd->class_ >= 0) {
status->set_viewdata(&nd->bl, nd->class_);
if( map->list[nd->bl.m].users )
clif->spawn(&nd->bl);
@@ -2988,35 +3033,120 @@ const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, const char*
map->addiddb(&nd->bl);
}
strdb_put(npc->name_db, nd->exname, nd);
+}
+
+/**
+ * Duplicates a script (@see npc_duplicate_sub)
+ */
+bool npc_duplicate_script_sub(struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options)
+{
+ int i;
+ bool retval = true;
+
+ ++npc_script;
+ nd->u.scr.xs = xs;
+ nd->u.scr.ys = ys;
+ nd->u.scr.script = snd->u.scr.script;
+ nd->u.scr.label_list = snd->u.scr.label_list;
+ nd->u.scr.label_list_num = snd->u.scr.label_list_num;
+ nd->u.scr.shop = snd->u.scr.shop;
+ nd->u.scr.trader = snd->u.scr.trader;
+
+ //add the npc to its location
+ npc->add_to_location(nd);
- //-----------------------------------------
// Loop through labels to export them as necessary
for (i = 0; i < nd->u.scr.label_list_num; i++) {
if (npc->event_export(nd, i)) {
- ShowWarning("npc_parse_script: duplicate event %s::%s in file '%s'.\n",
- nd->exname, nd->u.scr.label_list[i].name, filepath);
- if (retval) *retval = EXIT_FAILURE;
+ ShowWarning("npc_parse_duplicate: duplicate event %s::%s in file '%s'.\n",
+ nd->exname, nd->u.scr.label_list[i].name, nd->path);
+ retval = false;
}
npc->timerevent_export(nd, i);
}
nd->u.scr.timerid = INVALID_TIMER;
- if( options&NPO_ONINIT ) {
+ if (options&NPO_ONINIT) {
+ // From npc_parse_script
char evname[EVENT_NAME_LENGTH];
struct event_data *ev;
snprintf(evname, ARRAYLENGTH(evname), "%s::OnInit", nd->exname);
- if( ( ev = (struct event_data*)strdb_get(npc->ev_db, evname) ) ) {
-
+ if ((ev = (struct event_data*)strdb_get(npc->ev_db, evname)) != NULL) {
//Execute OnInit
script->run_npc(nd->u.scr.script,ev->pos,0,nd->bl.id);
-
}
}
+ return retval;
+}
- return end;
+/**
+ * Duplicates a shop or cash shop (@see npc_duplicate_sub)
+ */
+bool npc_duplicate_shop_sub(struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options)
+{
+ ++npc_shop;
+ nd->u.shop.shop_item = snd->u.shop.shop_item;
+ nd->u.shop.count = snd->u.shop.count;
+
+ //add the npc to its location
+ npc->add_to_location(nd);
+
+ return true;
+}
+
+/**
+ * Duplicates a warp (@see npc_duplicate_sub)
+ */
+bool npc_duplicate_warp_sub(struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options)
+{
+ ++npc_warp;
+ nd->u.warp.xs = xs;
+ nd->u.warp.ys = ys;
+ nd->u.warp.mapindex = snd->u.warp.mapindex;
+ nd->u.warp.x = snd->u.warp.x;
+ nd->u.warp.y = snd->u.warp.y;
+
+ //Add the npc to its location
+ npc->add_to_location(nd);
+
+ return true;
+}
+
+/**
+ * Duplicates a warp, shop, cashshop or script.
+ *
+ * @param nd An already initialized NPC data. Expects bl->m, bl->x, bl->y,
+ * name, exname, path, dir, class_, speed, subtype to be already
+ * filled.
+ * @param snd The source NPC to duplicate.
+ * @param class_ The npc view class.
+ * @param dir The facing direction.
+ * @param xs The x-span, if any.
+ * @param ys The y-span, if any.
+ * @param options The NPC options.
+ * @retval false if there were any issues while creating and validating the NPC.
+ */
+bool npc_duplicate_sub(struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options)
+{
+ nd->src_id = snd->bl.id;
+ switch (nd->subtype) {
+ case SCRIPT:
+ return npc->duplicate_script_sub(nd, snd, xs, ys, options);
+
+ case SHOP:
+ case CASHSHOP:
+ return npc->duplicate_shop_sub(nd, snd, xs, ys, options);
+
+ case WARP:
+ return npc->duplicate_warp_sub(nd, snd, xs, ys, options);
+
+ case TOMB:
+ return false;
+ }
+ return false;
}
/// Duplicate a warp, shop, cashshop or script. [Orcao]
@@ -3029,12 +3159,10 @@ const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, const char*
const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const char* start, const char* buffer, const char* filepath, int options, int *retval) {
int x, y, dir, m, xs = -1, ys = -1;
char srcname[128];
- int i;
- const char* end;
+ const char *end;
size_t length;
- int src_id;
- int type;
+ int class_;
struct npc_data* nd;
struct npc_data* dnd;
@@ -3056,18 +3184,16 @@ const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const ch
if (retval) *retval = EXIT_FAILURE;
return end;// next line, try to continue
}
- src_id = dnd->bl.id;
- type = dnd->subtype;
// get placement
- if ((type==SHOP || type==CASHSHOP || type==SCRIPT) && strcmp(w1, "-") == 0) {
+ if ((dnd->subtype==SHOP || dnd->subtype==CASHSHOP || dnd->subtype==SCRIPT) && strcmp(w1, "-") == 0) {
// floating shop/chashshop/script
x = y = dir = 0;
m = -1;
} else {
char mapname[32];
int fields = sscanf(w1, "%31[^,],%d,%d,%d", mapname, &x, &y, &dir);
- if (type == WARP && fields == 3) {
+ if (dnd->subtype == WARP && fields == 3) {
// <map name>,<x>,<y>
dir = 0;
} else if (fields != 4) {
@@ -3090,107 +3216,40 @@ const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const ch
return end;//try next
}
- if( type == WARP && sscanf(w4, "%d,%d", &xs, &ys) == 2 );// <spanx>,<spany>
- else if( type == SCRIPT && sscanf(w4, "%*[^,],%d,%d", &xs, &ys) == 2);// <sprite id>,<triggerX>,<triggerY>
- else if( type == WARP ) {
+ if (dnd->subtype == WARP && sscanf(w4, "%d,%d", &xs, &ys) == 2) { // <spanx>,<spany>
+ ;
+ } else if (dnd->subtype == SCRIPT && sscanf(w4, "%*[^,],%d,%d", &xs, &ys) == 2) { // <sprite id>,<triggerX>,<triggerY>
+ ;
+ } else if (dnd->subtype == WARP) {
ShowError("npc_parse_duplicate: Invalid span format for duplicate warp in file '%s', line '%d'. Skipping line...\n * w1=%s\n * w2=%s\n * w3=%s\n * w4=%s\n", filepath, strline(buffer,start-buffer), w1, w2, w3, w4);
if (retval) *retval = EXIT_FAILURE;
return end;// next line, try to continue
}
- nd = npc->create_npc(m, x, y);
+ class_ = m == -1 ? FAKE_NPC : npc->parseview(w4, start, buffer, filepath);
+ nd = npc->create_npc(dnd->subtype, m, x, y, dir, class_);
npc->parsename(nd, w3, start, buffer, filepath);
- nd->class_ = m == -1 ? -1 : npc->parseview(w4, start, buffer, filepath);
- nd->speed = 200;
- nd->src_id = src_id;
- nd->bl.type = BL_NPC;
- nd->subtype = (enum npc_subtype)type;
- switch( type ) {
- case SCRIPT:
- ++npc_script;
- nd->u.scr.xs = xs;
- nd->u.scr.ys = ys;
- nd->u.scr.script = dnd->u.scr.script;
- nd->u.scr.label_list = dnd->u.scr.label_list;
- nd->u.scr.label_list_num = dnd->u.scr.label_list_num;
- nd->u.scr.shop = dnd->u.scr.shop;
- nd->u.scr.trader = dnd->u.scr.trader;
- break;
-
- case SHOP:
- case CASHSHOP:
- ++npc_shop;
- nd->u.shop.shop_item = dnd->u.shop.shop_item;
- nd->u.shop.count = dnd->u.shop.count;
- break;
-
- case WARP:
- ++npc_warp;
- if( !battle_config.warp_point_debug )
- nd->class_ = WARP_CLASS;
- else
- nd->class_ = WARP_DEBUG_CLASS;
- nd->u.warp.xs = xs;
- nd->u.warp.ys = ys;
- nd->u.warp.mapindex = dnd->u.warp.mapindex;
- nd->u.warp.x = dnd->u.warp.x;
- nd->u.warp.y = dnd->u.warp.y;
- break;
- }
-
- //Add the npc to its location
- if( m >= 0 ) {
- map->addnpc(m, nd);
- nd->ud = &npc->base_ud;
- nd->dir = dir;
- npc->setcells(nd);
- map->addblock(&nd->bl);
- if( nd->class_ >= 0 ) {
- status->set_viewdata(&nd->bl, nd->class_);
- if( map->list[nd->bl.m].users )
- clif->spawn(&nd->bl);
- }
- } else {
- // we skip map->addnpc, but still add it to the list of ID's
- map->addiddb(&nd->bl);
- }
- strdb_put(npc->name_db, nd->exname, nd);
-
- if( type != SCRIPT )
- return end;
-
- //-----------------------------------------
- // Loop through labels to export them as necessary
- for (i = 0; i < nd->u.scr.label_list_num; i++) {
- if (npc->event_export(nd, i)) {
- ShowWarning("npc_parse_duplicate: duplicate event %s::%s in file '%s'.\n",
- nd->exname, nd->u.scr.label_list[i].name, filepath);
- if (retval) *retval = EXIT_FAILURE;
- }
- npc->timerevent_export(nd, i);
+ nd->path = npc->retainpathreference(filepath);
+ if (!npc->duplicate_sub(nd, dnd, xs, ys, options)) {
+ if (retval) *retval = EXIT_FAILURE;
}
- nd->u.scr.timerid = INVALID_TIMER;
-
- if (options&NPO_ONINIT) {
- // From npc_parse_script
- char evname[EVENT_NAME_LENGTH];
- struct event_data *ev;
-
- snprintf(evname, ARRAYLENGTH(evname), "%s::OnInit", nd->exname);
-
- if( ( ev = (struct event_data*)strdb_get(npc->ev_db, evname) ) ) {
-
- //Execute OnInit
- script->run_npc(nd->u.scr.script,ev->pos,0,nd->bl.id);
-
- }
- }
return end;
}
-int npc_duplicate4instance(struct npc_data *snd, int16 m) {
+/**
+ * Duplicates an NPC for instancing purposes.
+ *
+ * @param snd The NPC to duplicate.
+ * @param m The instanced map ID.
+ * @return success state.
+ * @retval 0 in case of successful creation.
+ */
+int npc_duplicate4instance(struct npc_data *snd, int16 m)
+{
char newname[NAME_LENGTH];
+ int dm = -1, im = -1, xs = -1, ys = -1;
+ struct npc_data *nd = NULL;
if( m == -1 || map->list[m].instance_id == -1 )
return 1;
@@ -3201,50 +3260,35 @@ int npc_duplicate4instance(struct npc_data *snd, int16 m) {
return 1;
}
- if( snd->subtype == WARP ) { // Adjust destination, if instanced
- struct npc_data *wnd = NULL; // New NPC
- int dm = map->mapindex2mapid(snd->u.warp.mapindex), im;
- if( dm < 0 ) return 1;
-
- if( ( im = instance->mapid2imapid(dm, map->list[m].instance_id) ) == -1 ) {
+ switch (snd->subtype) {
+ case SCRIPT:
+ xs = snd->u.scr.xs;
+ ys = snd->u.scr.ys;
+ break;
+ case WARP:
+ xs = snd->u.warp.xs;
+ ys = snd->u.warp.ys;
+ // Adjust destination, if instanced
+ if ((dm = map->mapindex2mapid(snd->u.warp.mapindex)) < 0) {
+ return 1;
+ }
+ if ((im = instance->mapid2imapid(dm, map->list[m].instance_id)) == -1) {
ShowError("npc_duplicate4instance: warp (%s) leading to instanced map (%s), but instance map is not attached to current instance.\n", map->list[dm].name, snd->exname);
return 1;
}
+ break;
+ default: // Other types have no xs/ys
+ break;
+ }
- wnd = npc->create_npc(m, snd->bl.x, snd->bl.y);
- map->addnpc(m, wnd);
- safestrncpy(wnd->name, "", ARRAYLENGTH(wnd->name));
- safestrncpy(wnd->exname, newname, ARRAYLENGTH(wnd->exname));
- wnd->class_ = WARP_CLASS;
- wnd->speed = 200;
- wnd->u.warp.mapindex = map_id2index(im);
- wnd->u.warp.x = snd->u.warp.x;
- wnd->u.warp.y = snd->u.warp.y;
- wnd->u.warp.xs = snd->u.warp.xs;
- wnd->u.warp.ys = snd->u.warp.ys;
- wnd->bl.type = BL_NPC;
- wnd->subtype = WARP;
- npc->setcells(wnd);
- map->addblock(&wnd->bl);
- status->set_viewdata(&wnd->bl, wnd->class_);
- wnd->ud = &npc->base_ud;
- if( map->list[wnd->bl.m].users )
- clif->spawn(&wnd->bl);
- strdb_put(npc->name_db, wnd->exname, wnd);
- } else {
- static char w1[50], w2[50], w3[50], w4[50];
- const char* stat_buf = "- call from instancing subsystem -\n";
-
- snprintf(w1, sizeof(w1), "%s,%d,%d,%d", map->list[m].name, snd->bl.x, snd->bl.y, snd->dir);
- snprintf(w2, sizeof(w2), "duplicate(%s)", snd->exname);
- snprintf(w3, sizeof(w3), "%s::%s", snd->name, newname);
-
- if( snd->u.scr.xs >= 0 && snd->u.scr.ys >= 0 )
- snprintf(w4, sizeof(w4), "%d,%d,%d", snd->class_, snd->u.scr.xs, snd->u.scr.ys); // Touch Area
- else
- snprintf(w4, sizeof(w4), "%d", snd->class_);
-
- npc->parse_duplicate(w1, w2, w3, w4, stat_buf, stat_buf, "INSTANCING", NPO_NONE, NULL);
+ nd = npc->create_npc(snd->subtype, m, snd->bl.x, snd->bl.y, snd->dir, snd->class_);
+ safestrncpy(nd->name, snd->name, sizeof(nd->name));
+ safestrncpy(nd->exname, newname, sizeof(nd->exname));
+ nd->path = npc->retainpathreference("INSTANCING");
+ npc->duplicate_sub(nd, snd, xs, ys, NPO_NONE);
+ if (nd->subtype == WARP) {
+ // Adjust destination, if instanced
+ nd->u.warp.mapindex = map_id2index(im);
}
return 0;
@@ -4643,7 +4687,7 @@ int do_init_npc(bool minimal) {
npc->fake_nd = (struct npc_data *)aCalloc(1,sizeof(struct npc_data));
npc->fake_nd->bl.m = -1;
npc->fake_nd->bl.id = npc->get_new_npc_id();
- npc->fake_nd->class_ = -1;
+ npc->fake_nd->class_ = FAKE_NPC;
npc->fake_nd->speed = 200;
strcpy(npc->fake_nd->name,"FAKE_NPC");
memcpy(npc->fake_nd->exname, npc->fake_nd->name, 9);
@@ -4732,6 +4776,8 @@ void npc_defaults(void) {
npc->clearsrcfile = npc_clearsrcfile;
npc->addsrcfile = npc_addsrcfile;
npc->delsrcfile = npc_delsrcfile;
+ npc->retainpathreference = npc_retainpathreference;
+ npc->releasepathreference = npc_releasepathreference;
npc->parsename = npc_parsename;
npc->parseview = npc_parseview;
npc->viewisid = npc_viewisid;
@@ -4742,6 +4788,11 @@ void npc_defaults(void) {
npc->convertlabel_db = npc_convertlabel_db;
npc->skip_script = npc_skip_script;
npc->parse_script = npc_parse_script;
+ npc->add_to_location = npc_add_to_location;
+ npc->duplicate_script_sub = npc_duplicate_script_sub;
+ npc->duplicate_shop_sub = npc_duplicate_shop_sub;
+ npc->duplicate_warp_sub = npc_duplicate_warp_sub;
+ npc->duplicate_sub = npc_duplicate_sub;
npc->parse_duplicate = npc_parse_duplicate;
npc->duplicate4instance = npc_duplicate4instance;
npc->setcells = npc_setcells;
diff --git a/src/map/npc.h b/src/map/npc.h
index bf3d1494d..d5e4618a1 100644
--- a/src/map/npc.h
+++ b/src/map/npc.h
@@ -70,7 +70,7 @@ struct npc_data {
unsigned short stat_point;
struct npc_parse *chatdb;
- char* path;/* path dir */
+ const char *path; ///< Source path reference
enum npc_subtype subtype;
int src_id;
union {
@@ -109,8 +109,10 @@ struct npc_data {
#define START_NPC_NUM 110000000
enum actor_classes {
+ FAKE_NPC = -1,
WARP_CLASS = 45,
HIDDEN_WARP_CLASS = 139,
+ MOB_TOMB = 565,
WARP_DEBUG_CLASS = 722,
FLAG_CLASS = 722,
INVISIBLE_CLASS = 32767,
@@ -120,7 +122,7 @@ enum actor_classes {
#define MAX_NPC_CLASS 1000
// New NPC range
#define MAX_NPC_CLASS2_START 10001
-#define MAX_NPC_CLASS2_END 10110
+#define MAX_NPC_CLASS2_END 10174
//Script NPC events.
enum npce_event {
@@ -225,10 +227,12 @@ struct npc_interface {
void (*clearsrcfile) (void);
void (*addsrcfile) (const char *name);
void (*delsrcfile) (const char *name);
+ const char *(*retainpathreference) (const char *filepath);
+ void (*releasepathreference) (const char *filepath);
void (*parsename) (struct npc_data *nd, const char *name, const char *start, const char *buffer, const char *filepath);
int (*parseview) (const char *w4, const char *start, const char *buffer, const char *filepath);
bool (*viewisid) (const char *viewid);
- struct npc_data* (*create_npc) (int m, int x, int y);
+ struct npc_data *(*create_npc) (enum npc_subtype subtype, int m, int x, int y, uint8 dir, int16 class_);
struct npc_data* (*add_warp) (char *name, short from_mapid, short from_x, short from_y, short xs, short ys, unsigned short to_mapindex, short to_x, short to_y);
const char* (*parse_warp) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
const char* (*parse_shop) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
@@ -236,6 +240,11 @@ struct npc_interface {
void (*convertlabel_db) (struct npc_label_list *label_list, const char *filepath);
const char* (*skip_script) (const char *start, const char *buffer, const char *filepath, int *retval);
const char* (*parse_script) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int options, int *retval);
+ void (*add_to_location) (struct npc_data *nd);
+ bool (*duplicate_script_sub) (struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options);
+ bool (*duplicate_shop_sub) (struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options);
+ bool (*duplicate_warp_sub) (struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options);
+ bool (*duplicate_sub) (struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options);
const char* (*parse_duplicate) (char* w1, char* w2, char* w3, char* w4, const char* start, const char* buffer, const char* filepath, int options, int *retval);
int (*duplicate4instance) (struct npc_data *snd, int16 m);
void (*setcells) (struct npc_data *nd);
@@ -286,32 +295,51 @@ HPShared struct npc_interface *npc;
/* comes from npc_chat.c */
#ifdef PCRE_SUPPORT
#include <pcre/include/pcre.h>
-/* Structure containing all info associated with a single pattern block */
+#endif // PCRE_SUPPORT
+
+/**
+ * Structure containing all info associated with a single pattern block
+ */
struct pcrematch_entry {
+#ifdef PCRE_SUPPORT
struct pcrematch_entry* next;
char* pattern;
pcre* pcre_;
pcre_extra* pcre_extra_;
char* label;
+#else // not PCRE_SUPPORT
+ UNAVAILABLE_STRUCT;
+#endif // PCRE_SUPPORT
};
-/* A set of patterns that can be activated and deactived with a single command */
+/**
+ * A set of patterns that can be activated and deactived with a single command
+ */
struct pcrematch_set {
+#ifdef PCRE_SUPPORT
struct pcrematch_set* prev;
struct pcrematch_set* next;
struct pcrematch_entry* head;
int setid;
+#else // not PCRE_SUPPORT
+ UNAVAILABLE_STRUCT;
+#endif // PCRE_SUPPORT
};
-/*
+/**
* Entire data structure hung off a NPC
*/
struct npc_parse {
+#ifdef PCRE_SUPPORT
struct pcrematch_set* active;
struct pcrematch_set* inactive;
+#else // not PCRE_SUPPORT
+ UNAVAILABLE_STRUCT;
+#endif // PCRE_SUPPORT
};
struct npc_chat_interface {
+#ifdef PCRE_SUPPORT
int (*sub) (struct block_list* bl, va_list ap);
void (*finalize) (struct npc_data* nd);
void (*def_pattern) (struct npc_data* nd, int setid, const char* pattern, const char* label);
@@ -321,6 +349,9 @@ struct npc_chat_interface {
void (*activate_pcreset) (struct npc_data* nd, int setid);
struct pcrematch_set* (*lookup_pcreset) (struct npc_data* nd, int setid);
void (*finalize_pcrematch_entry) (struct pcrematch_entry* e);
+#else // not PCRE_SUPPORT
+ UNAVAILABLE_STRUCT;
+#endif // PCRE_SUPPORT
};
/**
@@ -329,6 +360,7 @@ struct npc_chat_interface {
* should be moved into core/perhaps its own file once hpm is enhanced for login/char
**/
struct pcre_interface {
+#ifdef PCRE_SUPPORT
pcre *(*compile) (const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr);
pcre_extra *(*study) (const pcre *code, int options, const char **errptr);
int (*exec) (const pcre *code, const pcre_extra *extra, PCRE_SPTR subject, int length, int startoffset, int options, int *ovector, int ovecsize);
@@ -337,6 +369,9 @@ struct pcre_interface {
void (*free_substring) (const char *stringptr);
int (*copy_named_substring) (const pcre *code, const char *subject, int *ovector, int stringcount, const char *stringname, char *buffer, int buffersize);
int (*get_substring) (const char *subject, int *ovector, int stringcount, int stringnumber, const char **stringptr);
+#else // not PCRE_SUPPORT
+ UNAVAILABLE_STRUCT;
+#endif // PCRE_SUPPORT
};
/**
@@ -349,6 +384,4 @@ void npc_chat_defaults(void);
HPShared struct npc_chat_interface *npc_chat;
HPShared struct pcre_interface *libpcre;
-#endif // PCRE_SUPPORT
-
#endif /* MAP_NPC_H */
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index 58c17ef0a..4a3fb6a4f 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -455,7 +455,7 @@ struct packet_idle_unit2 {
unsigned char state;
short clevel;
#else // ! PACKETVER < 20091103
- char UNUSED;
+ UNAVAILABLE_STRUCT;
#endif // PACKETVER < 20091103
} __attribute__((packed));
@@ -486,7 +486,7 @@ struct packet_spawn_unit2 {
unsigned char xSize;
unsigned char ySize;
#else // ! PACKETVER < 20091103
- char UNUSED;
+ UNAVAILABLE_STRUCT;
#endif // PACKETVER < 20091103
} __attribute__((packed));
@@ -1097,6 +1097,7 @@ struct packet_party_leader_changed {
} __attribute__((packed));
struct packet_hotkey {
+#ifdef HOTKEY_SAVING
short PacketType;
#if PACKETVER >= 20141022
char Rotate;
@@ -1106,6 +1107,9 @@ struct packet_hotkey {
unsigned int ID; // Item/Skill ID
short count; // Item Quantity/Skill Level
} hotkey[MAX_HOTKEYS];
+#else // not HOTKEY_SAVING
+ UNAVAILABLE_STRUCT;
+#endif // HOTKEY_SAVING
} __attribute__((packed));
/**
diff --git a/src/map/party.h b/src/map/party.h
index df7c03f05..bcc905b94 100644
--- a/src/map/party.h
+++ b/src/map/party.h
@@ -40,32 +40,27 @@ struct party_data {
#define PB_NOTICE_LENGTH (36 + 1)
-#ifndef PARTY_RECRUIT
struct party_booking_detail {
short level;
+#ifdef PARTY_RECRUIT
+ char notice[PB_NOTICE_LENGTH];
+#else // not PARTY_RECRUIT
short mapid;
short job[PARTY_BOOKING_JOBS];
+#endif // PARTY_RECRUIT
};
struct party_booking_ad_info {
unsigned int index;
- char charname[NAME_LENGTH];
- int expiretime;
- struct party_booking_detail p_detail;
-};
-#else /* PARTY_RECRUIT */
-struct party_booking_detail {
- short level;
- char notice[PB_NOTICE_LENGTH];
-};
-
-struct party_booking_ad_info {
- unsigned int index;
+#ifdef PARTY_BOOKING
int expiretime;
char charname[NAME_LENGTH];
+#else // not PARTY_BOOKING
+ char charname[NAME_LENGTH];
+ int expiretime;
+#endif // PARTY_BOOKING
struct party_booking_detail p_detail;
};
-#endif /* PARTY_RECRUIT */
/*=====================================
* Interface : party.h
diff --git a/src/map/pc.c b/src/map/pc.c
index 906507f87..b0a8ca62f 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1126,8 +1126,7 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim
sd->bg_queue.client_has_bg_data = 0;
sd->bg_queue.type = 0;
- sd->queues = NULL;
- sd->queues_count = 0;
+ VECTOR_INIT(sd->script_queues);
sd->state.dialog = 0;
@@ -2186,6 +2185,7 @@ int pc_bonus_subele(struct map_session_data* sd, unsigned char ele, short rate,
int pc_bonus(struct map_session_data *sd,int type,int val) {
struct status_data *bst;
int bonus;
+ int i;
nullpo_ret(sd);
bst = &sd->base_status;
@@ -2436,20 +2436,48 @@ int pc_bonus(struct map_session_data *sd,int type,int val) {
sd->matk_rate += val;
break;
case SP_IGNORE_DEF_ELE:
- if(val >= ELE_MAX) {
+ if( (val >= ELE_MAX && val != ELE_ALL) || (val < ELE_NEUTRAL) ) {
ShowError("pc_bonus: SP_IGNORE_DEF_ELE: Invalid element %d\n", val);
break;
}
- if(!sd->state.lr_flag)
- sd->right_weapon.ignore_def_ele |= 1<<val;
- else if(sd->state.lr_flag == 1)
- sd->left_weapon.ignore_def_ele |= 1<<val;
+ if ( val == ELE_ALL ) {
+ for ( i = ELE_NEUTRAL; i < ELE_MAX; i++ ) {
+ if(!sd->state.lr_flag)
+ sd->right_weapon.ignore_def_ele |= 1<<i;
+ else if(sd->state.lr_flag == 1)
+ sd->left_weapon.ignore_def_ele |= 1<<i;
+ }
+ } else {
+ if(!sd->state.lr_flag)
+ sd->right_weapon.ignore_def_ele |= 1<<val;
+ else if(sd->state.lr_flag == 1)
+ sd->left_weapon.ignore_def_ele |= 1<<val;
+ }
break;
case SP_IGNORE_DEF_RACE:
- if(!sd->state.lr_flag)
- sd->right_weapon.ignore_def_race |= 1<<val;
- else if(sd->state.lr_flag == 1)
- sd->left_weapon.ignore_def_race |= 1<<val;
+ if (val == RC_MAX || (val > RC_NONDEMIPLAYER && val != RC_ALL) || val < RC_FORMLESS ) {
+ ShowWarning("pc_bonus: SP_IGNORE_DEF_RACE: Invalid Race(%d)\n",val);
+ break;
+ }
+ if ( val >= RC_MAX ) {
+ for ( i = RC_FORMLESS; i < RC_BOSS; i++ ) {
+ if ( (val == RC_NONPLAYER && i == RC_PLAYER) ||
+ (val == RC_NONDEMIHUMAN && i == RC_DEMIHUMAN) ||
+ (val == RC_DEMIPLAYER && (i != RC_PLAYER && i != RC_DEMIHUMAN)) ||
+ (val == RC_NONDEMIPLAYER && (i == RC_PLAYER || i == RC_DEMIHUMAN))
+ )
+ continue;
+ if(!sd->state.lr_flag)
+ sd->right_weapon.ignore_def_race |= 1<<i;
+ else if(sd->state.lr_flag == 1)
+ sd->left_weapon.ignore_def_race |= 1<<i;
+ }
+ } else {
+ if(!sd->state.lr_flag)
+ sd->right_weapon.ignore_def_race |= 1<<val;
+ else if(sd->state.lr_flag == 1)
+ sd->left_weapon.ignore_def_race |= 1<<val;
+ }
break;
case SP_ATK_RATE:
if(sd->state.lr_flag != 2)
@@ -2470,16 +2498,40 @@ int pc_bonus(struct map_session_data *sd,int type,int val) {
}
break;
case SP_IGNORE_MDEF_ELE:
- if(val >= ELE_MAX) {
+ if( (val >= ELE_MAX && val != ELE_ALL) || (val < ELE_NEUTRAL) ) {
ShowError("pc_bonus: SP_IGNORE_MDEF_ELE: Invalid element %d\n", val);
break;
}
- if(sd->state.lr_flag != 2)
- sd->bonus.ignore_mdef_ele |= 1<<val;
+ if (sd->state.lr_flag != 2) {
+ if ( val == ELE_ALL ) {
+ for ( i = ELE_NEUTRAL; i < ELE_MAX; i++ ) {
+ sd->bonus.ignore_mdef_ele |= 1<<i;
+ }
+ } else {
+ sd->bonus.ignore_mdef_ele |= 1<<val;
+ }
+ }
break;
case SP_IGNORE_MDEF_RACE:
- if(sd->state.lr_flag != 2)
- sd->bonus.ignore_mdef_race |= 1<<val;
+ if (val == RC_MAX || (val > RC_NONDEMIPLAYER && val != RC_ALL) || val < RC_FORMLESS ) {
+ ShowWarning("pc_bonus: SP_IGNORE_MDEF_RACE: Invalid Race(%d)\n",val);
+ break;
+ }
+ if(sd->state.lr_flag != 2) {
+ if ( val >= RC_MAX ) {
+ for ( i = RC_FORMLESS; i < RC_BOSS; i++ ) {
+ if ( (val == RC_NONPLAYER && i == RC_PLAYER) ||
+ (val == RC_NONDEMIHUMAN && i == RC_DEMIHUMAN) ||
+ (val == RC_DEMIPLAYER && (i != RC_PLAYER && i != RC_DEMIHUMAN)) ||
+ (val == RC_NONDEMIPLAYER && (i == RC_PLAYER || i == RC_DEMIHUMAN))
+ )
+ continue;
+ sd->bonus.ignore_mdef_race |= 1<<i;
+ }
+ } else {
+ sd->bonus.ignore_mdef_race |= 1<<val;
+ }
+ }
break;
case SP_PERFECT_HIT_RATE:
if(sd->state.lr_flag != 2 && sd->bonus.perfect_hit < val)
@@ -2494,24 +2546,48 @@ int pc_bonus(struct map_session_data *sd,int type,int val) {
sd->critical_rate+=val;
break;
case SP_DEF_RATIO_ATK_ELE:
- if(val >= ELE_MAX) {
+ if( (val >= ELE_MAX && val != ELE_ALL) || (val < ELE_NEUTRAL) ) {
ShowError("pc_bonus: SP_DEF_RATIO_ATK_ELE: Invalid element %d\n", val);
break;
}
- if(!sd->state.lr_flag)
- sd->right_weapon.def_ratio_atk_ele |= 1<<val;
- else if(sd->state.lr_flag == 1)
- sd->left_weapon.def_ratio_atk_ele |= 1<<val;
+ if ( val == ELE_ALL ) {
+ for ( i = ELE_NEUTRAL; i < ELE_MAX; i++ ) {
+ if(!sd->state.lr_flag)
+ sd->right_weapon.def_ratio_atk_ele |= 1<<i;
+ else if(sd->state.lr_flag == 1)
+ sd->left_weapon.def_ratio_atk_ele |= 1<<i;
+ }
+ } else {
+ if(!sd->state.lr_flag)
+ sd->right_weapon.def_ratio_atk_ele |= 1<<val;
+ else if(sd->state.lr_flag == 1)
+ sd->left_weapon.def_ratio_atk_ele |= 1<<val;
+ }
break;
case SP_DEF_RATIO_ATK_RACE:
- if(val >= RC_MAX) {
- ShowError("pc_bonus: SP_DEF_RATIO_ATK_RACE: Invalid race %d\n", val);
+ if (val == RC_MAX || (val > RC_NONDEMIPLAYER && val != RC_ALL) || val < RC_FORMLESS ) {
+ ShowWarning("pc_bonus: SP_DEF_RATIO_ATK_RACE: Invalid Race(%d)\n",val);
break;
}
- if(!sd->state.lr_flag)
- sd->right_weapon.def_ratio_atk_race |= 1<<val;
- else if(sd->state.lr_flag == 1)
- sd->left_weapon.def_ratio_atk_race |= 1<<val;
+ if ( val >= RC_MAX ) {
+ for ( i = RC_FORMLESS; i < RC_BOSS; i++ ) {
+ if ( (val == RC_NONPLAYER && i == RC_PLAYER) ||
+ (val == RC_NONDEMIHUMAN && i == RC_DEMIHUMAN) ||
+ (val == RC_DEMIPLAYER && (i != RC_PLAYER && i != RC_DEMIHUMAN)) ||
+ (val == RC_NONDEMIPLAYER && (i == RC_PLAYER || i == RC_DEMIHUMAN))
+ )
+ continue;
+ if(!sd->state.lr_flag)
+ sd->right_weapon.def_ratio_atk_race |= 1<<i;
+ else if(sd->state.lr_flag == 1)
+ sd->left_weapon.def_ratio_atk_race |= 1<<i;
+ }
+ } else {
+ if(!sd->state.lr_flag)
+ sd->right_weapon.def_ratio_atk_race |= 1<<val;
+ else if(sd->state.lr_flag == 1)
+ sd->left_weapon.def_ratio_atk_race |= 1<<val;
+ }
break;
case SP_HIT_RATE:
if(sd->state.lr_flag != 2)
@@ -5449,11 +5525,11 @@ int pc_setpos(struct map_session_data* sd, unsigned short map_index, int x, int
int i;
sd->state.pmap = sd->bl.m;
- for( i = 0; i < sd->queues_count; i++ ) {
- struct hQueue *queue;
- if( (queue = script->queue(sd->queues[i])) && queue->onMapChange[0] != '\0' ) {
- pc->setregstr(sd, script->add_str("QMapChangeTo"), map->list[m].name);
- npc->event(sd, queue->onMapChange, 0);
+ for (i = 0; i < VECTOR_LENGTH(sd->script_queues); i++) {
+ struct script_queue *queue = script->queue(VECTOR_INDEX(sd->script_queues, i));
+ if (queue && queue->event_mapchange[0] != '\0') {
+ pc->setregstr(sd, script->add_str("@Queue_Destination_Map$"), map->list[m].name);
+ npc->event(sd, queue->event_mapchange, 0);
}
}
@@ -7557,10 +7633,10 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) {
npc->event(sd, bgd->die_event, 0);
}
- for( i = 0; i < sd->queues_count; i++ ) {
- struct hQueue *queue;
- if( (queue = script->queue(sd->queues[i])) && queue->onDeath[0] != '\0' )
- npc->event(sd, queue->onDeath, 0);
+ for (i = 0; i < VECTOR_LENGTH(sd->script_queues); i++ ) {
+ struct script_queue *queue = script->queue(VECTOR_INDEX(sd->script_queues, i));
+ if (queue && queue->event_death[0] != '\0')
+ npc->event(sd, queue->event_death, 0);
}
npc->script_event(sd,NPCE_DIE);
diff --git a/src/map/pc.h b/src/map/pc.h
index c9464bdab..ef9983371 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -531,8 +531,7 @@ END_ZEROED_BLOCK;
enum bg_queue_types type;
} bg_queue;
- int *queues;
- unsigned int queues_count;
+ VECTOR_DECL(int) script_queues;
/* Made Possible Thanks to Yommy~! */
unsigned int cryptKey; ///< Packet obfuscation key to be used for the next received packet
diff --git a/src/map/script.c b/src/map/script.c
index 54d8d338d..cfc7ed052 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -4627,22 +4627,16 @@ void do_final_script(void) {
aFree(script->buildin);
- if( script->hqs ) {
- for( i = 0; i < script->hqs; i++ ) {
- if( script->hq[i].item != NULL )
- aFree(script->hq[i].item);
- }
+ for (i = 0; i < VECTOR_LENGTH(script->hq); i++) {
+ VECTOR_CLEAR(VECTOR_INDEX(script->hq, i).entries);
}
- if (script->hqis && script->hqi) {
- for( i = 0; i < script->hqis; i++ ) {
- if( script->hqi[i].item != NULL )
- aFree(script->hqi[i].item);
- }
+ VECTOR_CLEAR(script->hq);
+
+ for (i = 0; i < VECTOR_LENGTH(script->hqi); i++) {
+ VECTOR_CLEAR(VECTOR_INDEX(script->hqi, i).entries);
}
- if( script->hq != NULL )
- aFree(script->hq);
- if( script->hqi != NULL )
- aFree(script->hqi);
+ VECTOR_CLEAR(script->hqi);
+
if( script->word_buf != NULL )
aFree(script->word_buf);
@@ -5020,6 +5014,9 @@ void do_init_script(bool minimal) {
ers_chunk_size(script->st_ers, 10);
ers_chunk_size(script->stack_ers, 10);
+ VECTOR_INIT(script->hq);
+ VECTOR_INIT(script->hqi);
+
script->parse_builtin();
script->read_constdb();
script->hardcoded_constants();
@@ -18789,329 +18786,434 @@ BUILDIN(montransform) {
return true;
}
-struct hQueue *script_hqueue_get(int idx) {
- if( idx < 0 || idx >= script->hqs || script->hq[idx].size == -1 )
+/**
+ * Returns the queue with he given index, if it exists.
+ *
+ * @param idx The queue index.
+ *
+ * @return The queue, or NULL if it doesn't exist.
+ */
+struct script_queue *script_hqueue_get(int idx)
+{
+ if (idx < 0 || idx >= VECTOR_LENGTH(script->hq) || !VECTOR_INDEX(script->hq, idx).valid)
return NULL;
- return &script->hq[idx];
+ return &VECTOR_INDEX(script->hq, idx);
}
-int script_hqueue_create(void) {
- int idx = script->hqs;
+
+/**
+ * Creates a new queue.
+ *
+ * @return The index of the created queue.
+ */
+int script_hqueue_create(void)
+{
+ struct script_queue *queue = NULL;
int i;
- for(i = 0; i < script->hqs; i++) {
- if( script->hq[i].size == -1 ) {
- break;
- }
+ ARR_FIND(0, VECTOR_LENGTH(script->hq), i, !VECTOR_INDEX(script->hq, i).valid);
+
+ if (i == VECTOR_LENGTH(script->hq)) {
+ VECTOR_ENSURE(script->hq, 1, 1);
+ VECTOR_PUSHZEROED(script->hq);
}
+ queue = &VECTOR_INDEX(script->hq, i);
- if( i == script->hqs ) {
- RECREATE(script->hq, struct hQueue, ++script->hqs);
- script->hq[ idx ].item = NULL;
- } else
- idx = i;
-
- script->hq[ idx ].id = idx;
- script->hq[ idx ].size = 0;
- script->hq[ idx ].items = 0;
- script->hq[ idx ].onDeath[0] = '\0';
- script->hq[ idx ].onLogOut[0] = '\0';
- script->hq[ idx ].onMapChange[0] = '\0';
- return idx;
-}
-/* set .@id,queue(); */
-/* creates queue, returns created queue id */
-BUILDIN(queue) {
+ memset(&VECTOR_INDEX(script->hq, i), 0, sizeof(VECTOR_INDEX(script->hq, i)));
+
+ queue->id = i;
+ queue->valid = true;
+ return i;
+}
+
+/**
+ * Script command queue: Creates a queue and returns its id.
+ *
+ * @code{.herc}
+ * .@queue_id = queue();
+ * @endcode
+ */
+BUILDIN(queue)
+{
script_pushint(st,script->queue_create());
return true;
}
-/* set .@length,queuesize(.@queue_id); */
-/* returns queue length */
-BUILDIN(queuesize) {
+
+/**
+ * Script command queuesize: Returns the length of the given queue.
+ *
+ * Returns 0 on error.
+ *
+ * \code{.herc}
+ * .@size = queuesize(<queue id>);
+ * \endcode
+ */
+BUILDIN(queuesize)
+{
int idx = script_getnum(st, 2);
- if( idx < 0 || idx >= script->hqs || script->hq[idx].size == -1 ) {
+ if (idx < 0 || idx >= VECTOR_LENGTH(script->hq) || !VECTOR_INDEX(script->hq, idx).valid) {
ShowWarning("buildin_queuesize: unknown queue id %d\n",idx);
script_pushint(st, 0);
- } else {
- script_pushint(st, script->hq[ idx ].items);
+ return true;
}
+ script_pushint(st, VECTOR_LENGTH(VECTOR_INDEX(script->hq, idx).entries));
return true;
}
+
+/**
+ * Adds an entry to the given queue.
+ *
+ * @param idx The queue index.
+ * @param var The entry to add.
+ * @retval false if the queue is invalid or the entry is already in the queue.
+ * @retval true in case of success.
+ */
bool script_hqueue_add(int idx, int var)
{
- if( idx < 0 || idx >= script->hqs || script->hq[idx].size == -1 ) {
- ShowWarning("script_hqueue_add: unknown queue id %d\n",idx);
- return true;
- } else {
- int i;
- for (i = 0; i < script->hq[idx].size; i++) {
- if (script->hq[idx].item[i] == var) {
- return true;
- }
- }
-
- if (i == script->hq[idx].size) {
- struct map_session_data *sd;
+ int i;
+ struct map_session_data *sd = NULL;
+ struct script_queue *queue = NULL;
- for (i = 0; i < script->hq[idx].size; i++) {
- if( script->hq[idx].item[i] == 0 ) {
- break;
- }
- }
+ if (idx < 0 || idx >= VECTOR_LENGTH(script->hq) || !VECTOR_INDEX(script->hq, idx).valid) {
+ ShowWarning("script_hqueue_add: unknown queue id %d\n",idx);
+ return false;
+ }
- if (i == script->hq[idx].size)
- RECREATE(script->hq[idx].item, int, ++script->hq[idx].size);
+ queue = &VECTOR_INDEX(script->hq, idx);
- script->hq[idx].item[i] = var;
- script->hq[idx].items++;
- if (var >= START_ACCOUNT_NUM && (sd = map->id2sd(var)) != NULL) {
- for (i = 0; i < sd->queues_count; i++) {
- if (sd->queues[i] == -1) {
- break;
- }
- }
+ ARR_FIND(0, VECTOR_LENGTH(queue->entries), i, VECTOR_INDEX(queue->entries, i) == var);
+ if (i != VECTOR_LENGTH(queue->entries)) {
+ return false; // Entry already exists
+ }
- if (i == sd->queues_count)
- RECREATE(sd->queues, int, ++sd->queues_count);
+ VECTOR_ENSURE(queue->entries, 1, 1);
+ VECTOR_PUSH(queue->entries, var);
- sd->queues[i] = idx;
- }
-
- }
+ if (var >= START_ACCOUNT_NUM && (sd = map->id2sd(var)) != NULL) {
+ VECTOR_ENSURE(sd->script_queues, 1, 1);
+ VECTOR_PUSH(sd->script_queues, idx);
}
- return false;
+ return true;
}
-/* queueadd(.@queue_id,.@var_id); */
-/* adds a new entry to the queue, returns 1 if already in queue, 0 otherwise */
-BUILDIN(queueadd) {
+
+/**
+ * Script command queueadd: Adds a new entry to the given queue.
+ *
+ * Returns 0 (false) if already in queue or in case of error, 1 (true)
+ * otherwise.
+ *
+ * @code{.herc}
+ * .@size = queuesize(.@queue_id);
+ * @endcode
+ */
+BUILDIN(queueadd)
+{
int idx = script_getnum(st, 2);
int var = script_getnum(st, 3);
- script_pushint(st,script->queue_add(idx,var)?1:0);
+ if (script->queue_add(idx, var))
+ script_pushint(st, 1);
+ else
+ script_pushint(st, 0);
return true;
}
-bool script_hqueue_remove(int idx, int var) {
- if( idx < 0 || idx >= script->hqs || script->hq[idx].size == -1 ) {
- ShowWarning("script_hqueue_remove: unknown queue id %d (used with var %d)\n",idx,var);
- return true;
- } else {
- int i;
- for(i = 0; i < script->hq[idx].size; i++) {
- if( script->hq[idx].item[i] == var ) {
- break;
- }
- }
+/**
+ * Removes an entry from the given queue.
+ *
+ * @param idx The queue index.
+ * @param var The entry to remove.
+ * @retval true if the entry was removed.
+ * @retval false if the entry wasn't in queue.
+ */
+bool script_hqueue_remove(int idx, int var)
+{
+ int i;
+ struct map_session_data *sd = NULL;
+ struct script_queue *queue = NULL;
- if( i != script->hq[idx].size ) {
- struct map_session_data *sd;
+ if (idx < 0 || idx >= VECTOR_LENGTH(script->hq) || !VECTOR_INDEX(script->hq, idx).valid) {
+ ShowWarning("script_hqueue_remove: unknown queue id %d (used with var %d)\n",idx,var);
+ return false;
+ }
- script->hq[idx].item[i] = -1;
- script->hq[idx].items--;
+ queue = &VECTOR_INDEX(script->hq, idx);
- if (var >= START_ACCOUNT_NUM && (sd = map->id2sd(var)) != NULL) {
- for(i = 0; i < sd->queues_count; i++) {
- if( sd->queues[i] == idx ) {
- break;
- }
- }
+ ARR_FIND(0, VECTOR_LENGTH(queue->entries), i, VECTOR_INDEX(queue->entries, i) == var);
+ if (i == VECTOR_LENGTH(queue->entries))
+ return false;
- if( i != sd->queues_count )
- sd->queues[i] = -1;
- }
+ VECTOR_ERASE(queue->entries, i);
- }
+ if (var >= START_ACCOUNT_NUM && (sd = map->id2sd(var)) != NULL) {
+ ARR_FIND(0, VECTOR_LENGTH(sd->script_queues), i, VECTOR_INDEX(sd->script_queues, i) == queue->id);
+
+ if (i != VECTOR_LENGTH(sd->script_queues))
+ VECTOR_ERASE(sd->script_queues, i);
}
- return false;
+ return true;
}
-/* queueremove(.@queue_id,.@var_id); */
-/* removes a entry from the queue, returns 1 if not in queue, 0 otherwise */
-BUILDIN(queueremove) {
+
+/**
+ * Script command queueremove: Removes an entry from a queue.
+ *
+ * Returns 1 (true) on success, 0 (false) if the item wasn't in queue.
+ *
+ * @code{.herc}
+ * queueremove(.@queue_id, .@value);
+ * @endcode
+ */
+BUILDIN(queueremove)
+{
int idx = script_getnum(st, 2);
int var = script_getnum(st, 3);
- script_pushint(st, script->queue_remove(idx,var)?1:0);
+ if (script->queue_remove(idx,var))
+ script_pushint(st, 1);
+ else
+ script_pushint(st, 0);
return true;
}
-/* queueopt(.@queue_id,optionType,<optional val>); */
-/* modifies the queue's options, when val is not provided the option is removed */
-/* when OnMapChange event is triggered, it sets a temp char var @QMapChangeTo$ with the destination map name */
-/* returns 1 when fails, 0 on success */
-BUILDIN(queueopt) {
+/**
+ * Script command queueopt: Modifies the options of a queue.
+ *
+ * When the option value isn't provided, the option is removed.
+ *
+ * Returns 1 (true) on success, 0 (false) on failure.
+ *
+ * The optionType is one of:
+ * - QUEUEOPT_DEATH
+ * - QUEUEOPT_LOGOUT
+ * - QUEUEOPT_MAPCHANGE
+ *
+ * When the QUEUEOPT_MAPCHANGE event is triggered, it sets a temporary
+ * character variable \c @Queue_Destination_Map$ with the destination map name.
+ *
+ * @code{.herc}
+ * queueopt(.@queue_id, optionType, <optional val>);
+ * @endcode
+ */
+BUILDIN(queueopt)
+{
int idx = script_getnum(st, 2);
int var = script_getnum(st, 3);
+ struct script_queue *queue = NULL;
- if( idx < 0 || idx >= script->hqs || script->hq[idx].size == -1 ) {
+ if (idx < 0 || idx >= VECTOR_LENGTH(script->hq) || !VECTOR_INDEX(script->hq, idx).valid) {
ShowWarning("buildin_queueopt: unknown queue id %d\n",idx);
- script_pushint(st, 1);
- } else if( var <= HQO_NONE || var >= HQO_MAX ) {
- ShowWarning("buildin_queueopt: unknown optionType %d\n",var);
- script_pushint(st, 1);
- } else {
- switch( (enum hQueueOpt)var ) {
- case HQO_OnDeath:
- if( script_hasdata(st, 4) )
- safestrncpy(script->hq[idx].onDeath, script_getstr(st, 4), EVENT_NAME_LENGTH);
- else
- script->hq[idx].onDeath[0] = '\0';
- break;
- case HQO_onLogOut:
- if( script_hasdata(st, 4) )
- safestrncpy(script->hq[idx].onLogOut, script_getstr(st, 4), EVENT_NAME_LENGTH);
- else
- script->hq[idx].onLogOut[0] = '\0';
- break;
- case HQO_OnMapChange:
- if( script_hasdata(st, 4) )
- safestrncpy(script->hq[idx].onMapChange, script_getstr(st, 4), EVENT_NAME_LENGTH);
- else
- script->hq[idx].onMapChange[0] = '\0';
- break;
- default:
- ShowWarning("buildin_queueopt: unsupported optionType %d\n",var);
- script_pushint(st, 1);
- break;
- }
+ script_pushint(st, 0);
+ return true;
}
+ queue = &VECTOR_INDEX(script->hq, idx);
+
+ switch (var) {
+ case SQO_ONDEATH:
+ if (script_hasdata(st, 4))
+ safestrncpy(queue->event_death, script_getstr(st, 4), EVENT_NAME_LENGTH);
+ else
+ queue->event_death[0] = '\0';
+ break;
+ case SQO_ONLOGOUT:
+ if (script_hasdata(st, 4))
+ safestrncpy(queue->event_logout, script_getstr(st, 4), EVENT_NAME_LENGTH);
+ else
+ queue->event_logout[0] = '\0';
+ break;
+ case SQO_ONMAPCHANGE:
+ if (script_hasdata(st, 4))
+ safestrncpy(queue->event_mapchange, script_getstr(st, 4), EVENT_NAME_LENGTH);
+ else
+ queue->event_mapchange[0] = '\0';
+ break;
+ default:
+ ShowWarning("buildin_queueopt: unsupported optionType %d\n",var);
+ script_pushint(st, 0);
+ return true;
+ }
+ script_pushint(st, 1);
return true;
}
+
+/**
+ * Deletes a queue.
+ *
+ * @param idx The queue index.
+ *
+ * @retval true if the queue was correctly deleted.
+ * @retval false if the queue didn't exist.
+ */
bool script_hqueue_del(int idx)
{
- if( idx < 0 || idx >= script->hqs || script->hq[idx].size == -1 ) {
- ShowWarning("script_queue_del: unknown queue id %d\n",idx);
- return true;
- } else {
- int i;
- for (i = 0; i < script->hq[idx].size; i++) {
- struct map_session_data *sd;
- if (script->hq[idx].item[i] >= START_ACCOUNT_NUM && (sd = map->id2sd(script->hq[idx].item[i])) != NULL) {
- int j;
- for(j = 0; j < sd->queues_count; j++) {
- if( sd->queues[j] == script->hq[idx].item[i] ) {
- break;
- }
- }
+ if (!script->queue_clear(idx))
+ return false;
- if( j != sd->queues_count )
- sd->queues[j] = -1;
- }
- script->hq[idx].item[i] = 0;
- }
+ VECTOR_INDEX(script->hq, idx).valid = false;
- script->hq[idx].size = -1;
- script->hq[idx].items = 0;
- }
- return false;
+ return true;
}
-/* queuedel(.@queue_id); */
-/* deletes queue of id .@queue_id, returns 1 if id not found, 0 otherwise */
-BUILDIN(queuedel) {
+
+/**
+ * Script command queuedel: Deletes a queue.
+ *
+ * Returns 1 (true) on success, 0 (false) if the queue doesn't exist.
+ *
+ * @code{.herc}
+ * queuedel(.@queue_id);
+ * @endcode
+ */
+BUILDIN(queuedel)
+{
int idx = script_getnum(st, 2);
- script_pushint(st,script->queue_del(idx)?1:0);
+ if (script->queue_del(idx))
+ script_pushint(st, 1);
+ else
+ script_pushint(st, 0);
return true;
}
-void script_hqueue_clear(int idx) {
- if( idx < 0 || idx >= script->hqs || script->hq[idx].size == -1 ) {
+
+/**
+ * Clears a queue.
+ *
+ * @param idx The queue index.
+ *
+ * @retval true if the queue was correctly cleared.
+ * @retval false if the queue didn't exist.
+ */
+bool script_hqueue_clear(int idx)
+{
+ struct script_queue *queue = NULL;
+
+ if (idx < 0 || idx >= VECTOR_LENGTH(script->hq) || !VECTOR_INDEX(script->hq, idx).valid) {
ShowWarning("script_hqueue_clear: unknown queue id %d\n",idx);
- return;
- } else {
- struct map_session_data *sd;
- int i, j;
+ return false;
+ }
- for(i = 0; i < script->hq[idx].size; i++) {
- if( script->hq[idx].item[i] > 0 ) {
+ queue = &VECTOR_INDEX(script->hq, idx);
- if (script->hq[idx].item[i] >= START_ACCOUNT_NUM && (sd = map->id2sd(script->hq[idx].item[i])) != NULL) {
- for(j = 0; j < sd->queues_count; j++) {
- if( sd->queues[j] == idx ) {
- break;
- }
- }
+ while (VECTOR_LENGTH(queue->entries) > 0) {
+ int entry = VECTOR_POP(queue->entries);
+ struct map_session_data *sd = NULL;
- if( j != sd->queues_count )
- sd->queues[j] = -1;
- }
- script->hq[idx].item[i] = 0;
- }
+ if (entry >= START_ACCOUNT_NUM && (sd = map->id2sd(entry)) != NULL) {
+ int i;
+ ARR_FIND(0, VECTOR_LENGTH(sd->script_queues), i, VECTOR_INDEX(sd->script_queues, i) == queue->id);
+
+ if (i != VECTOR_LENGTH(sd->script_queues))
+ VECTOR_ERASE(sd->script_queues, i);
}
- script->hq[idx].items = 0;
}
- return;
+ VECTOR_CLEAR(queue->entries);
+
+ return true;
}
-/* set .@id, queueiterator(.@queue_id); */
-/* creates a new queue iterator, returns its id */
-BUILDIN(queueiterator) {
+
+/**
+ * Script command queueiterator: Creates a new queue iterator.
+ *
+ * Returns the iterator's id or -1 in case of failure.
+ *
+ * @code{.herc}
+ * .@id = queueiterator(.@queue_id);
+ * @endcode
+ */
+BUILDIN(queueiterator)
+{
int qid = script_getnum(st, 2);
- struct hQueue *queue = NULL;
- int idx = script->hqis;
+ struct script_queue *queue = NULL;
+ struct script_queue_iterator *iter = NULL;
int i;
- if( qid < 0 || qid >= script->hqs || script->hq[qid].size == -1 || !(queue = script->queue(qid)) ) {
+ if (qid < 0 || qid >= VECTOR_LENGTH(script->hq) || !VECTOR_INDEX(script->hq, qid).valid || !(queue = script->queue(qid))) {
ShowWarning("queueiterator: invalid queue id %d\n",qid);
+ script_pushint(st, -1);
return true;
}
- /* what if queue->size is 0? (iterating a empty queue?) */
- if( queue->size <= 0 ) {
- ShowWarning("queueiterator: attempting to iterate on on empty queue id %d!\n",qid);
- return true;
- }
+ ARR_FIND(0, VECTOR_LENGTH(script->hqi), i, !VECTOR_INDEX(script->hqi, i).valid);
- for(i = 0; i < script->hqis; i++) {
- if( script->hqi[i].items == -1 ) {
- break;
- }
+ if (i == VECTOR_LENGTH(script->hqi)) {
+ VECTOR_ENSURE(script->hqi, 1, 1);
+ VECTOR_PUSHZEROED(script->hqi);
}
- if( i == script->hqis ) {
- RECREATE(script->hqi, struct hQueueIterator, ++script->hqis);
- script->hqi[ idx ].item = NULL;
- } else
- idx = i;
-
- RECREATE(script->hqi[ idx ].item, int, queue->size);
+ iter = &VECTOR_INDEX(script->hqi, i);
- memcpy(script->hqi[idx].item, queue->item, sizeof(int)*queue->size);
+ VECTOR_ENSURE(iter->entries, VECTOR_LENGTH(queue->entries), 1);
+ VECTOR_PUSHARRAY(iter->entries, VECTOR_DATA(queue->entries), VECTOR_LENGTH(queue->entries));
- script->hqi[ idx ].items = queue->size;
- script->hqi[ idx ].pos = 0;
+ iter->pos = 0;
+ iter->valid = true;
- script_pushint(st,idx);
+ script_pushint(st, i);
return true;
}
-/* Queue Iterator Get Next */
-/* returns next/first member in the iterator, 0 if none */
-BUILDIN(qiget) {
+
+/**
+ * Script command qiget: returns the next/first member in the iterator.
+ *
+ * Returns 0 if there's no next item.
+ *
+ * @code{.herc}
+ * for (.@i = qiget(.@iter); qicheck(.@iter); .@i = qiget(.@iter)) {
+ * // ...
+ * }
+ * @endcode
+ */
+BUILDIN(qiget)
+{
int idx = script_getnum(st, 2);
+ struct script_queue_iterator *it = NULL;
- if( idx < 0 || idx >= script->hqis ) {
+ if (idx < 0 || idx >= VECTOR_LENGTH(script->hqi) || !VECTOR_INDEX(script->hqi, idx).valid) {
ShowWarning("buildin_qiget: unknown queue iterator id %d\n",idx);
script_pushint(st, 0);
- } else if (script->hqi[idx].pos >= script->hqi[idx].items) {
- script_pushint(st, 0);
- } else {
- struct hQueueIterator *it = &script->hqi[idx];
- script_pushint(st, it->item[it->pos++]);
+ return true;
}
+ it = &VECTOR_INDEX(script->hqi, idx);
+
+ if (it->pos >= VECTOR_LENGTH(it->entries)) {
+ if (it->pos == VECTOR_LENGTH(it->entries))
+ ++it->pos; // Move beyond the last position to invalidate qicheck
+ script_pushint(st, 0);
+ return true;
+ }
+ script_pushint(st, VECTOR_INDEX(it->entries, it->pos++));
return true;
}
-/* Queue Iterator Check */
-/* returns 1:0 if there is a next member in the iterator */
-BUILDIN(qicheck) {
+
+/**
+ * Script command qicheck: Checks if the current member in the given iterator (from the last call to qiget) exists.
+ *
+ * Returns 1 if it exists, 0 otherwise.
+ *
+ * @code{.herc}
+ * for (.@i = qiget(.@iter); qicheck(.@iter); .@i = qiget(.@iter)) {
+ * // ...
+ * }
+ * @endcode
+ */
+BUILDIN(qicheck)
+{
int idx = script_getnum(st, 2);
+ struct script_queue_iterator *it = NULL;
- if( idx < 0 || idx >= script->hqis ) {
+ if (idx < 0 || idx >= VECTOR_LENGTH(script->hqi) || !VECTOR_INDEX(script->hqi, idx).valid) {
ShowWarning("buildin_qicheck: unknown queue iterator id %d\n",idx);
script_pushint(st, 0);
- } else if (script->hqi[idx].pos >= script->hqi[idx].items) {
+ return true;
+ }
+
+ it = &VECTOR_INDEX(script->hqi, idx);
+
+ if (it->pos <= 0 || it->pos > VECTOR_LENGTH(it->entries)) {
script_pushint(st, 0);
} else {
script_pushint(st, 1);
@@ -19119,20 +19221,37 @@ BUILDIN(qicheck) {
return true;
}
-/* Queue Iterator Check */
-BUILDIN(qiclear) {
+
+/**
+ * Script command qiclear: Destroys a queue iterator.
+ *
+ * Returns true (1) on success, false (0) on failure.
+ *
+ * @code{.herc}
+ * qiclear(.@iter);
+ * @endcode
+ */
+BUILDIN(qiclear)
+{
int idx = script_getnum(st, 2);
+ struct script_queue_iterator *it = NULL;
- if( idx < 0 || idx >= script->hqis ) {
+ if (idx < 0 || idx >= VECTOR_LENGTH(script->hqi) || !VECTOR_INDEX(script->hqi, idx).valid) {
ShowWarning("buildin_qiclear: unknown queue iterator id %d\n",idx);
- script_pushint(st, 1);
- } else {
- script->hqi[idx].items = -1;
script_pushint(st, 0);
+ return true;
}
+ it = &VECTOR_INDEX(script->hqi, idx);
+
+ VECTOR_CLEAR(it->entries);
+ it->pos = 0;
+ it->valid = false;
+
+ script_pushint(st, 1);
return true;
}
+
/**
* packageitem({<optional container_item_id>})
* when no item id is provided it tries to assume it comes from the current item id being processed (if any)
@@ -20366,7 +20485,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(showevent, "i?"),
/**
- * hQueue [Ind/Hercules]
+ * script_queue [Ind/Hercules]
**/
BUILDIN_DEF(queue,""),
BUILDIN_DEF(queuesize,"i"),
@@ -20573,10 +20692,6 @@ void script_defaults(void) {
script->stack_ers = NULL;
script->array_ers = NULL;
- script->hq = NULL;
- script->hqi = NULL;
- script->hqs = script->hqis = 0;
-
script->buildin = NULL;
script->buildin_count = 0;
diff --git a/src/map/script.h b/src/map/script.h
index ff660dec8..b153cf81a 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -223,12 +223,13 @@ typedef enum c_op {
#endif // PCRE_SUPPORT
} c_op;
-enum hQueueOpt {
- HQO_NONE,
- HQO_onLogOut,
- HQO_OnDeath,
- HQO_OnMapChange,
- HQO_MAX,
+/// Script queue options
+enum ScriptQueueOptions {
+ SQO_NONE, ///< No options set
+ SQO_ONLOGOUT, ///< Execute event on logout
+ SQO_ONDEATH, ///< Execute event on death
+ SQO_ONMAPCHANGE, ///< Execute event on map change
+ SQO_MAX,
};
enum e_script_state { RUN,STOP,END,RERUNLINE,GOTO,RETFUNC,CLOSE };
@@ -391,22 +392,27 @@ struct script_stack {
struct reg_db scope; ///< scope variables
};
-/* [Ind/Hercules] */
-struct hQueue {
- int id;
- int *item;
- int items;/* how many actual items are in the array */
- int size;/* size of the *item array, not the current amount of items in it since it can have empty slots */
- /* events */
- char onLogOut[EVENT_NAME_LENGTH];
- char onDeath[EVENT_NAME_LENGTH];
- char onMapChange[EVENT_NAME_LENGTH];
+/**
+ * Data structure to represent a script queue.
+ * @author Ind/Hercules
+ */
+struct script_queue {
+ int id; ///< Queue identifier
+ VECTOR_DECL(int) entries; ///< Items in the queue.
+ bool valid; ///< Whether the queue is valid.
+ /// Events
+ char event_logout[EVENT_NAME_LENGTH]; ///< Logout event
+ char event_death[EVENT_NAME_LENGTH]; ///< Death event
+ char event_mapchange[EVENT_NAME_LENGTH]; ///< Map change event
};
-struct hQueueIterator {
- int *item;
- int items;
- int pos;
+/**
+ * Iterator for a struct script_queue.
+ */
+struct script_queue_iterator {
+ VECTOR_DECL(int) entries; ///< Entries in the queue (iterator's cached copy)
+ bool valid; ///< Whether the queue is valid (initialized - not necessarily having entries available)
+ int pos; ///< Iterator's cursor
};
struct script_state {
@@ -515,9 +521,8 @@ struct script_interface {
struct eri *st_ers;
struct eri *stack_ers;
/* */
- struct hQueue *hq;
- struct hQueueIterator *hqi;
- int hqs, hqis;
+ VECTOR_DECL(struct script_queue) hq;
+ VECTOR_DECL(struct script_queue_iterator) hqi;
/* */
char **buildin;
unsigned int buildin_count;
@@ -667,12 +672,12 @@ struct script_interface {
void (*setd_sub) (struct script_state *st, struct map_session_data *sd, const char *varname, int elem, void *value, struct reg_db *ref);
void (*attach_state) (struct script_state* st);
/* */
- struct hQueue *(*queue) (int idx);
+ struct script_queue *(*queue) (int idx);
bool (*queue_add) (int idx, int var);
bool (*queue_del) (int idx);
bool (*queue_remove) (int idx, int var);
int (*queue_create) (void);
- void (*queue_clear) (int idx);
+ bool (*queue_clear) (int idx);
/* */
const char * (*parse_curly_close) (const char *p);
const char * (*parse_syntax_close) (const char *p);
diff --git a/src/map/skill.c b/src/map/skill.c
index cdf1c031f..b20e25eb1 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -11878,8 +11878,8 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
//Take into account these hit more times than the timer interval can handle.
do
skill->attack(BF_MAGIC,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick+count*sg->interval,0);
- while(--src->val2 && x == bl->x && y == bl->y
- && ++count < SKILLUNITTIMER_INTERVAL/sg->interval && !status->isdead(bl));
+ while (src->alive != 0 && --src->val2 != 0 && x == bl->x && y == bl->y
+ && ++count < SKILLUNITTIMER_INTERVAL/sg->interval && !status->isdead(bl));
if (src->val2<=0)
skill->delunit(src);
@@ -11961,8 +11961,8 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
sg->limit = DIFF_TICK32(tick,sg->tick);
break;
}
- } while( x == bl->x && y == bl->y && sg->alive_count
- && ++count < SKILLUNITTIMER_INTERVAL/sg->interval && !status->isdead(bl) );
+ } while (src->alive != 0 && x == bl->x && y == bl->y && sg->alive_count != 0
+ && ++count < SKILLUNITTIMER_INTERVAL/sg->interval && !status->isdead(bl));
map->freeblock_unlock();
}
break;
@@ -14316,15 +14316,17 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
req.sp = cap_value(req.sp * sp_skill_rate_bonus / 100, 0, SHRT_MAX);
- if( sc ) {
- if( sc->data[SC__LAZINESS] )
+ if (sc) {
+ if (sc->data[SC__LAZINESS])
req.sp += req.sp + sc->data[SC__LAZINESS]->val1 * 10;
- if( sc->data[SC_UNLIMITED_HUMMING_VOICE] )
+ if (sc->data[SC_UNLIMITED_HUMMING_VOICE])
req.sp += req.sp * sc->data[SC_UNLIMITED_HUMMING_VOICE]->val3 / 100;
- if( sc->data[SC_RECOGNIZEDSPELL] )
+ if (sc->data[SC_RECOGNIZEDSPELL])
req.sp += req.sp / 4;
- if( sc->data[SC_TELEKINESIS_INTENSE] && skill->get_ele(skill_id, skill_lv) == ELE_GHOST)
+ if (sc->data[SC_TELEKINESIS_INTENSE] && skill->get_ele(skill_id, skill_lv) == ELE_GHOST)
req.sp -= req.sp * sc->data[SC_TELEKINESIS_INTENSE]->val2 / 100;
+ if (sc->data[SC_TARGET_ASPD])
+ req.sp -= req.sp * sc->data[SC_TARGET_ASPD]->val1 / 100;
}
req.zeny = skill->dbs->db[idx].zeny[skill_lv-1];
@@ -14739,6 +14741,9 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16
VARCAST_REDUCTION(50);
}
}
+ if (sc->data[SC_MYSTICSCROLL])
+ VARCAST_REDUCTION(sc->data[SC_MYSTICSCROLL]->val1);
+
// Fixed cast reduction bonuses
if( sc->data[SC__LAZINESS] )
fixcast_r = max(fixcast_r, sc->data[SC__LAZINESS]->val2);
@@ -14751,6 +14756,9 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16
if (radius_lv)
fixcast_r = max(fixcast_r, (status_get_int(bl) + status->get_lv(bl)) / 15 + radius_lv * 5); // [{(Caster?s INT / 15) + (Caster?s Base Level / 15) + (Radius Skill Level x 5)}] %
}
+ if (sc->data[SC_FENRIR_CARD])
+ fixcast_r = max(fixcast_r, sc->data[SC_FENRIR_CARD]->val2);
+
// Fixed cast non percentage bonuses
if( sc->data[SC_MANDRAGORA] )
fixed += sc->data[SC_MANDRAGORA]->val1 * 500;
diff --git a/src/map/status.c b/src/map/status.c
index 1a07f74dc..9062e7227 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -759,22 +759,22 @@ void initChangeTables(void) {
// Storing the target job rather than simply SC_SOULLINK simplifies code later on.
status->dbs->Skill2SCTable[SL_ALCHEMIST] = (sc_type)MAPID_ALCHEMIST,
- status->dbs->Skill2SCTable[SL_MONK] = (sc_type)MAPID_MONK,
- status->dbs->Skill2SCTable[SL_STAR] = (sc_type)MAPID_STAR_GLADIATOR,
- status->dbs->Skill2SCTable[SL_SAGE] = (sc_type)MAPID_SAGE,
- status->dbs->Skill2SCTable[SL_CRUSADER] = (sc_type)MAPID_CRUSADER,
- status->dbs->Skill2SCTable[SL_SUPERNOVICE] = (sc_type)MAPID_SUPER_NOVICE,
- status->dbs->Skill2SCTable[SL_KNIGHT] = (sc_type)MAPID_KNIGHT,
- status->dbs->Skill2SCTable[SL_WIZARD] = (sc_type)MAPID_WIZARD,
- status->dbs->Skill2SCTable[SL_PRIEST] = (sc_type)MAPID_PRIEST,
- status->dbs->Skill2SCTable[SL_BARDDANCER] = (sc_type)MAPID_BARDDANCER,
- status->dbs->Skill2SCTable[SL_ROGUE] = (sc_type)MAPID_ROGUE,
- status->dbs->Skill2SCTable[SL_ASSASIN] = (sc_type)MAPID_ASSASSIN,
- status->dbs->Skill2SCTable[SL_BLACKSMITH] = (sc_type)MAPID_BLACKSMITH,
- status->dbs->Skill2SCTable[SL_HUNTER] = (sc_type)MAPID_HUNTER,
- status->dbs->Skill2SCTable[SL_SOULLINKER] = (sc_type)MAPID_SOUL_LINKER,
-
- //Status that don't have a skill associated.
+ status->dbs->Skill2SCTable[SL_MONK] = (sc_type)MAPID_MONK,
+ status->dbs->Skill2SCTable[SL_STAR] = (sc_type)MAPID_STAR_GLADIATOR,
+ status->dbs->Skill2SCTable[SL_SAGE] = (sc_type)MAPID_SAGE,
+ status->dbs->Skill2SCTable[SL_CRUSADER] = (sc_type)MAPID_CRUSADER,
+ status->dbs->Skill2SCTable[SL_SUPERNOVICE] = (sc_type)MAPID_SUPER_NOVICE,
+ status->dbs->Skill2SCTable[SL_KNIGHT] = (sc_type)MAPID_KNIGHT,
+ status->dbs->Skill2SCTable[SL_WIZARD] = (sc_type)MAPID_WIZARD,
+ status->dbs->Skill2SCTable[SL_PRIEST] = (sc_type)MAPID_PRIEST,
+ status->dbs->Skill2SCTable[SL_BARDDANCER] = (sc_type)MAPID_BARDDANCER,
+ status->dbs->Skill2SCTable[SL_ROGUE] = (sc_type)MAPID_ROGUE,
+ status->dbs->Skill2SCTable[SL_ASSASIN] = (sc_type)MAPID_ASSASSIN,
+ status->dbs->Skill2SCTable[SL_BLACKSMITH] = (sc_type)MAPID_BLACKSMITH,
+ status->dbs->Skill2SCTable[SL_HUNTER] = (sc_type)MAPID_HUNTER,
+ status->dbs->Skill2SCTable[SL_SOULLINKER] = (sc_type)MAPID_SOUL_LINKER,
+
+ // Status that don't have a skill associated.
status->dbs->IconChangeTable[SC_WEIGHTOVER50] = SI_WEIGHTOVER50;
status->dbs->IconChangeTable[SC_WEIGHTOVER90] = SI_WEIGHTOVER90;
status->dbs->IconChangeTable[SC_ATTHASTE_POTION1] = SI_ATTHASTE_POTION1;
@@ -802,7 +802,9 @@ void initChangeTables(void) {
status->dbs->IconChangeTable[SC_SPL_MATK] = SI_SPL_MATK;
status->dbs->IconChangeTable[SC_PLUSATTACKPOWER] = SI_PLUSATTACKPOWER;
status->dbs->IconChangeTable[SC_PLUSMAGICPOWER] = SI_PLUSMAGICPOWER;
- //Cash Items
+ status->dbs->IconChangeTable[SC_FOOD_CRITICALSUCCESSVALUE] = SI_FOOD_CRITICALSUCCESSVALUE;
+
+ // Cash Items
status->dbs->IconChangeTable[SC_FOOD_STR_CASH] = SI_FOOD_STR_CASH;
status->dbs->IconChangeTable[SC_FOOD_AGI_CASH] = SI_FOOD_AGI_CASH;
status->dbs->IconChangeTable[SC_FOOD_VIT_CASH] = SI_FOOD_VIT_CASH;
@@ -823,18 +825,37 @@ void initChangeTables(void) {
status->dbs->IconChangeTable[SC_L_LIFEPOTION] = SI_L_LIFEPOTION;
status->dbs->IconChangeTable[SC_ATKER_BLOOD] = SI_ATKER_BLOOD;
status->dbs->IconChangeTable[SC_TARGET_BLOOD] = SI_TARGET_BLOOD;
+ status->dbs->IconChangeTable[SC_ACARAJE] = SI_ACARAJE;
+ status->dbs->IconChangeTable[SC_TARGET_ASPD] = SI_TARGET_ASPD;
+ status->dbs->IconChangeTable[SC_ATKER_ASPD] = SI_ATKER_ASPD;
+ status->dbs->IconChangeTable[SC_ATKER_MOVESPEED] = SI_ATKER_MOVESPEED;
+ status->dbs->IconChangeTable[SC_CUP_OF_BOZA] = SI_CUP_OF_BOZA;
+
+ // Eden Crystal Synthesis
+ status->dbs->IconChangeTable[SC_QUEST_BUFF1] = SI_QUEST_BUFF1;
+ status->dbs->IconChangeTable[SC_QUEST_BUFF2] = SI_QUEST_BUFF2;
+ status->dbs->IconChangeTable[SC_QUEST_BUFF3] = SI_QUEST_BUFF3;
+
+ // Geffen Magic Tournament
+ status->dbs->IconChangeTable[SC_GEFFEN_MAGIC1] = SI_GEFFEN_MAGIC1;
+ status->dbs->IconChangeTable[SC_GEFFEN_MAGIC2] = SI_GEFFEN_MAGIC2;
+ status->dbs->IconChangeTable[SC_GEFFEN_MAGIC3] = SI_GEFFEN_MAGIC3;
+ status->dbs->IconChangeTable[SC_FENRIR_CARD] = SI_FENRIR_CARD;
+
// Mercenary Bonus Effects
status->dbs->IconChangeTable[SC_MER_FLEE] = SI_MER_FLEE;
status->dbs->IconChangeTable[SC_MER_ATK] = SI_MER_ATK;
status->dbs->IconChangeTable[SC_MER_HP] = SI_MER_HP;
status->dbs->IconChangeTable[SC_MER_SP] = SI_MER_SP;
status->dbs->IconChangeTable[SC_MER_HIT] = SI_MER_HIT;
+
// Warlock Spheres
status->dbs->IconChangeTable[SC_SUMMON1] = SI_SPHERE_1;
status->dbs->IconChangeTable[SC_SUMMON2] = SI_SPHERE_2;
status->dbs->IconChangeTable[SC_SUMMON3] = SI_SPHERE_3;
status->dbs->IconChangeTable[SC_SUMMON4] = SI_SPHERE_4;
status->dbs->IconChangeTable[SC_SUMMON5] = SI_SPHERE_5;
+
// Warlock Preserved spells
status->dbs->IconChangeTable[SC_SPELLBOOK1] = SI_SPELLBOOK1;
status->dbs->IconChangeTable[SC_SPELLBOOK2] = SI_SPELLBOOK2;
@@ -872,7 +893,7 @@ void initChangeTables(void) {
status->dbs->IconChangeTable[SC_BANANA_BOMB] = SI_BANANA_BOMB;
status->dbs->IconChangeTable[SC_BANANA_BOMB_SITDOWN_POSTDELAY] = SI_BANANA_BOMB_SITDOWN_POSTDELAY;
- //Genetics New Food Items Status Icons
+ // Genetics New Food Items Status Icons
status->dbs->IconChangeTable[SC_SAVAGE_STEAK] = SI_SAVAGE_STEAK;
status->dbs->IconChangeTable[SC_COCKTAIL_WARG_BLOOD] = SI_COCKTAIL_WARG_BLOOD;
status->dbs->IconChangeTable[SC_MINOR_BBQ] = SI_MINOR_BBQ;
@@ -921,7 +942,7 @@ void initChangeTables(void) {
status->dbs->IconChangeTable[SC_LJOSALFAR] = SI_LJOSALFAR;
status->dbs->IconChangeTable[SC_MERMAID_LONGING] = SI_MERMAID_LONGING;
- //Other SC which are not necessarily associated to skills.
+ // Other SC which are not necessarily associated to skills.
status->dbs->ChangeFlagTable[SC_ATTHASTE_POTION1] = SCB_ASPD;
status->dbs->ChangeFlagTable[SC_ATTHASTE_POTION2] = SCB_ASPD;
status->dbs->ChangeFlagTable[SC_ATTHASTE_POTION3] = SCB_ASPD;
@@ -970,6 +991,13 @@ void initChangeTables(void) {
status->dbs->ChangeFlagTable[SC_ATKER_BLOOD] |= SCB_ALL;
status->dbs->ChangeFlagTable[SC_WALKSPEED] |= SCB_SPEED;
status->dbs->ChangeFlagTable[SC_ITEMSCRIPT] |= SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_TARGET_BLOOD] |= SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_TARGET_ASPD] |= SCB_MAXSP;
+ status->dbs->ChangeFlagTable[SC_ATKER_ASPD] |= SCB_MAXHP | SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_ATKER_MOVESPEED] |= SCB_MAXSP | SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_FOOD_CRITICALSUCCESSVALUE] |= SCB_CRI;
+ status->dbs->ChangeFlagTable[SC_CUP_OF_BOZA] |= SCB_VIT | SCB_ALL;
+
// Cash Items
status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] = SCB_STR;
status->dbs->ChangeFlagTable[SC_FOOD_AGI_CASH] = SCB_AGI;
@@ -977,12 +1005,14 @@ void initChangeTables(void) {
status->dbs->ChangeFlagTable[SC_FOOD_DEX_CASH] = SCB_DEX;
status->dbs->ChangeFlagTable[SC_FOOD_INT_CASH] = SCB_INT;
status->dbs->ChangeFlagTable[SC_FOOD_LUK_CASH] = SCB_LUK;
+
// Mercenary Bonus Effects
status->dbs->ChangeFlagTable[SC_MER_FLEE] |= SCB_FLEE;
status->dbs->ChangeFlagTable[SC_MER_ATK] |= SCB_WATK;
status->dbs->ChangeFlagTable[SC_MER_HP] |= SCB_MAXHP;
status->dbs->ChangeFlagTable[SC_MER_SP] |= SCB_MAXSP;
status->dbs->ChangeFlagTable[SC_MER_HIT] |= SCB_HIT;
+
// Guillotine Cross Poison Effects
status->dbs->ChangeFlagTable[SC_PARALYSE] |= SCB_FLEE|SCB_SPEED|SCB_ASPD;
status->dbs->ChangeFlagTable[SC_VENOMBLEED] |= SCB_MAXHP;
@@ -990,9 +1020,11 @@ void initChangeTables(void) {
status->dbs->ChangeFlagTable[SC_DEATHHURT] |= SCB_REGEN;
status->dbs->ChangeFlagTable[SC_PYREXIA] |= SCB_HIT|SCB_FLEE;
status->dbs->ChangeFlagTable[SC_OBLIVIONCURSE] |= SCB_REGEN;
+
// RG status
status->dbs->ChangeFlagTable[SC_SHIELDSPELL_DEF] |= SCB_WATK;
status->dbs->ChangeFlagTable[SC_SHIELDSPELL_REF] |= SCB_DEF;
+
// Meca status
status->dbs->ChangeFlagTable[SC_STEALTHFIELD_MASTER] |= SCB_SPEED;
@@ -1008,20 +1040,45 @@ void initChangeTables(void) {
status->dbs->ChangeFlagTable[SC_MUSTLE_M] |= SCB_MAXHP;
status->dbs->ChangeFlagTable[SC_LIFE_FORCE_F] |= SCB_MAXSP;
status->dbs->ChangeFlagTable[SC_EXTRACT_WHITE_POTION_Z] |= SCB_REGEN;
- status->dbs->ChangeFlagTable[SC_VITATA_500] |= SCB_REGEN;
+ status->dbs->ChangeFlagTable[SC_VITATA_500] |= SCB_REGEN | SCB_MAXSP;
status->dbs->ChangeFlagTable[SC_EXTRACT_SALAMINE_JUICE] |= SCB_ASPD;
- status->dbs->ChangeFlagTable[SC_REBOUND] |= SCB_SPEED|SCB_REGEN;
- status->dbs->ChangeFlagTable[SC_DEFSET] |= SCB_DEF|SCB_DEF2;
- status->dbs->ChangeFlagTable[SC_MDEFSET] |= SCB_MDEF|SCB_MDEF2;
+ status->dbs->ChangeFlagTable[SC_REBOUND] |= SCB_SPEED | SCB_REGEN;
+ status->dbs->ChangeFlagTable[SC_DEFSET] |= SCB_DEF | SCB_DEF2;
+ status->dbs->ChangeFlagTable[SC_MDEFSET] |= SCB_MDEF | SCB_MDEF2;
status->dbs->ChangeFlagTable[SC_MYSTERIOUS_POWDER] |= SCB_MAXHP;
+ status->dbs->ChangeFlagTable[SC_ACARAJE] |= SCB_HIT | SCB_ASPD;
+ status->dbs->ChangeFlagTable[SC_STOMACHACHE] |= SCB_STR | SCB_AGI | SCB_VIT | SCB_INT | SCB_DEX | SCB_LUK | SCB_SPEED;
+
+ // Geffen Scrolls
+ status->dbs->ChangeFlagTable[SC_SKELSCROLL] |= SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_DISTRUCTIONSCROLL] |= SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_ROYALSCROLL] |= SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_IMMUNITYSCROLL] |= SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_MYSTICSCROLL] |= SCB_MATK;
+ status->dbs->ChangeFlagTable[SC_BATTLESCROLL] |= SCB_BATK | SCB_ASPD;
+ status->dbs->ChangeFlagTable[SC_ARMORSCROLL] |= SCB_DEF | SCB_FLEE;
+ status->dbs->ChangeFlagTable[SC_FREYJASCROLL] |= SCB_MDEF | SCB_FLEE2;
+ status->dbs->ChangeFlagTable[SC_SOULSCROLL] |= SCB_MAXHP | SCB_MAXSP;
status->dbs->ChangeFlagTable[SC_ALL_RIDING] = SCB_SPEED;
status->dbs->ChangeFlagTable[SC_WEDDING] = SCB_SPEED;
- status->dbs->ChangeFlagTable[SC_MTF_ASPD] = SCB_ASPD|SCB_HIT;
+ status->dbs->ChangeFlagTable[SC_MTF_ASPD] = SCB_ASPD | SCB_HIT;
status->dbs->ChangeFlagTable[SC_MTF_MATK] = SCB_MATK;
status->dbs->ChangeFlagTable[SC_MTF_MLEATKED] |= SCB_ALL;
-
+
+ // Eden Crystal Synthesis
+ status->dbs->ChangeFlagTable[SC_QUEST_BUFF1] |= SCB_BATK | SCB_MATK;
+ status->dbs->ChangeFlagTable[SC_QUEST_BUFF2] |= SCB_BATK | SCB_MATK;
+ status->dbs->ChangeFlagTable[SC_QUEST_BUFF3] |= SCB_BATK | SCB_MATK;
+
+ // Geffen Magic Tournament
+ status->dbs->ChangeFlagTable[SC_GEFFEN_MAGIC1] |= SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_GEFFEN_MAGIC2] |= SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_GEFFEN_MAGIC3] |= SCB_ALL;
+ status->dbs->ChangeFlagTable[SC_FENRIR_CARD] |= SCB_MATK | SCB_ALL;
+
+ // Costume
status->dbs->ChangeFlagTable[SC_MOONSTAR] |= SCB_NONE;
status->dbs->ChangeFlagTable[SC_SUPER_STAR] |= SCB_NONE;
status->dbs->ChangeFlagTable[SC_STRANGELIGHTS] |= SCB_NONE;
@@ -2836,33 +2893,33 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
sd->sprecov_rate = 0;
// Anti-element and anti-race
- if((skill_lv=pc->checkskill(sd,CR_TRUST))>0)
- sd->subele[ELE_HOLY] += skill_lv*5;
- if((skill_lv=pc->checkskill(sd,BS_SKINTEMPER))>0) {
+ if ((skill_lv = pc->checkskill(sd, CR_TRUST)) > 0)
+ sd->subele[ELE_HOLY] += skill_lv * 5;
+ if ((skill_lv = pc->checkskill(sd, BS_SKINTEMPER)) > 0) {
sd->subele[ELE_NEUTRAL] += skill_lv;
sd->subele[ELE_FIRE] += skill_lv*4;
}
- if((skill_lv=pc->checkskill(sd,NC_RESEARCHFE))>0) {
- sd->subele[ELE_EARTH] += skill_lv*10;
- sd->subele[ELE_FIRE] += skill_lv*10;
+ if ((skill_lv = pc->checkskill(sd, NC_RESEARCHFE)) > 0) {
+ sd->subele[ELE_EARTH] += skill_lv * 10;
+ sd->subele[ELE_FIRE] += skill_lv * 10;
}
- if((skill_lv=pc->checkskill(sd,SA_DRAGONOLOGY))>0 ) {
+ if ((skill_lv = pc->checkskill(sd, SA_DRAGONOLOGY)) > 0) {
#ifdef RENEWAL
- skill_lv = skill_lv*2;
+ skill_lv = skill_lv * 2;
#else
- skill_lv = skill_lv*4;
+ skill_lv = skill_lv * 4;
#endif
- sd->right_weapon.addrace[RC_DRAGON]+=skill_lv;
- sd->left_weapon.addrace[RC_DRAGON]+=skill_lv;
- sd->magic_addrace[RC_DRAGON]+=skill_lv;
+ sd->right_weapon.addrace[RC_DRAGON] += skill_lv;
+ sd->left_weapon.addrace[RC_DRAGON] += skill_lv;
+ sd->magic_addrace[RC_DRAGON] += skill_lv;
#ifdef RENEWAL
sd->race_tolerance[RC_DRAGON] += skill_lv;
#else
- sd->subrace[RC_DRAGON]+=skill_lv;
+ sd->subrace[RC_DRAGON] += skill_lv;
#endif
}
- if( (skill_lv = pc->checkskill(sd, AB_EUCHARISTICA)) > 0 ) {
+ if ((skill_lv = pc->checkskill(sd, AB_EUCHARISTICA)) > 0) {
sd->right_weapon.addrace[RC_DEMON] += skill_lv;
sd->right_weapon.addele[ELE_DARK] += skill_lv;
sd->left_weapon.addrace[RC_DEMON] += skill_lv;
@@ -2877,12 +2934,12 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
sd->subele[ELE_DARK] += skill_lv;
}
- if(sc->count) {
- if(sc->data[SC_CONCENTRATION]) { //Update the card-bonus data
- sc->data[SC_CONCENTRATION]->val3 = sd->param_bonus[1]; //Agi
- sc->data[SC_CONCENTRATION]->val4 = sd->param_bonus[4]; //Dex
+ if (sc->count) {
+ if (sc->data[SC_CONCENTRATION]) { // Update the card-bonus data
+ sc->data[SC_CONCENTRATION]->val3 = sd->param_bonus[1]; // Agi
+ sc->data[SC_CONCENTRATION]->val4 = sd->param_bonus[4]; // Dex
}
- if(sc->data[SC_SIEGFRIED]){
+ if (sc->data[SC_SIEGFRIED]){
i = sc->data[SC_SIEGFRIED]->val2;
sd->subele[ELE_WATER] += i;
sd->subele[ELE_EARTH] += i;
@@ -2894,7 +2951,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
sd->subele[ELE_GHOST] += i;
sd->subele[ELE_UNDEAD] += i;
}
- if(sc->data[SC_PROVIDENCE]){
+ if (sc->data[SC_PROVIDENCE]){
sd->subele[ELE_HOLY] += sc->data[SC_PROVIDENCE]->val2;
#ifdef RENEWAL
sd->race_tolerance[RC_DEMON] += sc->data[SC_PROVIDENCE]->val2;
@@ -2902,49 +2959,92 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
sd->subrace[RC_DEMON] += sc->data[SC_PROVIDENCE]->val2;
#endif
}
- if(sc->data[SC_ARMORPROPERTY]) {
+ if (sc->data[SC_ARMORPROPERTY]) {
//This status change should grant card-type elemental resist.
sd->subele[ELE_WATER] += sc->data[SC_ARMORPROPERTY]->val1;
sd->subele[ELE_EARTH] += sc->data[SC_ARMORPROPERTY]->val2;
sd->subele[ELE_FIRE] += sc->data[SC_ARMORPROPERTY]->val3;
sd->subele[ELE_WIND] += sc->data[SC_ARMORPROPERTY]->val4;
}
- if(sc->data[SC_ARMOR_RESIST]) { // Undead Scroll
+ if (sc->data[SC_ARMOR_RESIST]) { // Undead Scroll
sd->subele[ELE_WATER] += sc->data[SC_ARMOR_RESIST]->val1;
sd->subele[ELE_EARTH] += sc->data[SC_ARMOR_RESIST]->val2;
sd->subele[ELE_FIRE] += sc->data[SC_ARMOR_RESIST]->val3;
sd->subele[ELE_WIND] += sc->data[SC_ARMOR_RESIST]->val4;
}
- if( sc->data[SC_FIRE_CLOAK_OPTION] ) {
+ if (sc->data[SC_FIRE_CLOAK_OPTION]) {
i = sc->data[SC_FIRE_CLOAK_OPTION]->val2;
sd->subele[ELE_FIRE] += i;
sd->subele[ELE_WATER] -= i;
}
- if( sc->data[SC_WATER_DROP_OPTION] ) {
+ if (sc->data[SC_WATER_DROP_OPTION]) {
i = sc->data[SC_WATER_DROP_OPTION]->val2;
sd->subele[ELE_WATER] += i;
sd->subele[ELE_WIND] -= i;
}
- if( sc->data[SC_WIND_CURTAIN_OPTION] ) {
+ if (sc->data[SC_WIND_CURTAIN_OPTION]) {
i = sc->data[SC_WIND_CURTAIN_OPTION]->val2;
sd->subele[ELE_WIND] += i;
sd->subele[ELE_EARTH] -= i;
}
- if( sc->data[SC_STONE_SHIELD_OPTION] ) {
+ if (sc->data[SC_STONE_SHIELD_OPTION]) {
i = sc->data[SC_STONE_SHIELD_OPTION]->val2;
sd->subele[ELE_EARTH] += i;
sd->subele[ELE_FIRE] -= i;
}
- if( sc->data[SC_MTF_MLEATKED] )
+ if (sc->data[SC_MTF_MLEATKED])
sd->subele[ELE_NEUTRAL] += 2;
- if( sc->data[SC_FIRE_INSIGNIA] && sc->data[SC_FIRE_INSIGNIA]->val1 == 3 )
+ if (sc->data[SC_FIRE_INSIGNIA] && sc->data[SC_FIRE_INSIGNIA]->val1 == 3)
sd->magic_addele[ELE_FIRE] += 25;
- if( sc->data[SC_WATER_INSIGNIA] && sc->data[SC_WATER_INSIGNIA]->val1 == 3 )
+ if (sc->data[SC_WATER_INSIGNIA] && sc->data[SC_WATER_INSIGNIA]->val1 == 3)
sd->magic_addele[ELE_WATER] += 25;
- if( sc->data[SC_WIND_INSIGNIA] && sc->data[SC_WIND_INSIGNIA]->val1 == 3 )
+ if (sc->data[SC_WIND_INSIGNIA] && sc->data[SC_WIND_INSIGNIA]->val1 == 3)
sd->magic_addele[ELE_WIND] += 25;
- if( sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 3 )
+ if (sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 3)
sd->magic_addele[ELE_EARTH] += 25;
+
+ // Geffen Scrolls
+ if (sc->data[SC_SKELSCROLL]) {
+#ifdef RENEWAL
+ sd->race_tolerance[RC_DEMIHUMAN] += sc->data[SC_SKELSCROLL]->val1;
+#else
+ sd->subrace[RC_DEMIHUMAN] += sc->data[SC_SKELSCROLL]->val1;
+#endif
+ }
+ if (sc->data[SC_DISTRUCTIONSCROLL]) {
+ sd->right_weapon.addrace[RC_ANGEL] += sc->data[SC_DISTRUCTIONSCROLL]->val1;
+ sd->left_weapon.addrace[RC_ANGEL] += sc->data[SC_DISTRUCTIONSCROLL]->val1;
+ sd->right_weapon.addele[ELE_HOLY] += sc->data[SC_DISTRUCTIONSCROLL]->val1;
+ sd->left_weapon.addele[ELE_HOLY] += sc->data[SC_DISTRUCTIONSCROLL]->val1;
+ sd->right_weapon.addrace[RC_BOSS] += sc->data[SC_DISTRUCTIONSCROLL]->val1;
+ sd->left_weapon.addrace[RC_BOSS] += sc->data[SC_DISTRUCTIONSCROLL]->val1;
+ }
+ if (sc->data[SC_ROYALSCROLL]) {
+#ifdef RENEWAL
+ sd->race_tolerance[RC_BOSS] += sc->data[SC_ROYALSCROLL]->val1;
+#else
+ sd->subrace[RC_BOSS] += sc->data[SC_ROYALSCROLL]->val1;
+#endif
+ }
+ if (sc->data[SC_IMMUNITYSCROLL])
+ sd->subele[ELE_NEUTRAL] += sc->data[SC_IMMUNITYSCROLL]->val1;
+
+ // Geffen Magic Tournament
+ if (sc->data[SC_GEFFEN_MAGIC1]) {
+ sd->right_weapon.addrace[RC_DEMIHUMAN] += sc->data[SC_GEFFEN_MAGIC1]->val1;
+ sd->left_weapon.addrace[RC_DEMIHUMAN] += sc->data[SC_GEFFEN_MAGIC1]->val1;
+ }
+ if (sc->data[SC_GEFFEN_MAGIC2])
+ sd->magic_addrace[RC_DEMIHUMAN] += sc->data[SC_GEFFEN_MAGIC2]->val1;
+ if (sc->data[SC_GEFFEN_MAGIC3]) {
+#ifdef RENEWAL
+ sd->race_tolerance[RC_DEMIHUMAN] += sc->data[SC_GEFFEN_MAGIC3]->val1;
+#else
+ sd->subrace[RC_DEMIHUMAN] += sc->data[SC_GEFFEN_MAGIC3]->val1;
+#endif
+ }
+ if (sc->data[SC_CUP_OF_BOZA])
+ sd->subele[ELE_FIRE] += sc->data[SC_CUP_OF_BOZA]->val2;
}
status_cpy(&sd->battle_status, bstatus);
@@ -3316,7 +3416,7 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
} else
regen->flag&=~sce->val4; //Remove regen as specified by val4
}
- if(sc->data[SC_GENTLETOUCH_REVITALIZE]) {
+ if (sc->data[SC_GENTLETOUCH_REVITALIZE]) {
regen->hp += regen->hp * ( 30 * sc->data[SC_GENTLETOUCH_REVITALIZE]->val1 + 50 ) / 100;
}
if ((sc->data[SC_FIRE_INSIGNIA] && sc->data[SC_FIRE_INSIGNIA]->val1 == 1) //if insignia lvl 1
@@ -3324,12 +3424,16 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
|| (sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 1)
|| (sc->data[SC_WIND_INSIGNIA] && sc->data[SC_WIND_INSIGNIA]->val1 == 1))
regen->rate.hp *= 2;
- if( sc->data[SC_VITALITYACTIVATION] )
+ if (sc->data[SC_VITALITYACTIVATION])
regen->flag &=~RGN_SP;
- if(sc->data[SC_EXTRACT_WHITE_POTION_Z])
- regen->rate.hp += regen->rate.hp * sc->data[SC_EXTRACT_WHITE_POTION_Z]->val1/100;
- if(sc->data[SC_VITATA_500])
- regen->rate.sp += regen->rate.sp * sc->data[SC_VITATA_500]->val1/100;
+ if (sc->data[SC_EXTRACT_WHITE_POTION_Z])
+ regen->rate.hp += regen->rate.hp * sc->data[SC_EXTRACT_WHITE_POTION_Z]->val1 / 100;
+ if (sc->data[SC_VITATA_500])
+ regen->rate.sp += regen->rate.sp * sc->data[SC_VITATA_500]->val1 / 100;
+ if (sc->data[SC_ATKER_ASPD])
+ regen->rate.hp += regen->rate.hp * sc->data[SC_ATKER_ASPD]->val2 / 100;
+ if (sc->data[SC_ATKER_MOVESPEED])
+ regen->rate.sp += regen->rate.sp * sc->data[SC_ATKER_MOVESPEED]->val2 / 100;
}
/// Recalculates parts of an object's battle status according to the specified flags.
/// @param flag bitfield of values from enum scb_flag
@@ -4287,9 +4391,10 @@ unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc,
vit -= sc->data[SC_STOMACHACHE]->val1;
if(sc->data[SC_KYOUGAKU])
vit -= sc->data[SC_KYOUGAKU]->val3;
-
if(sc->data[SC_NOEQUIPARMOR])
- vit -= vit * sc->data[SC_NOEQUIPARMOR]->val2/100;
+ vit -= vit * sc->data[SC_NOEQUIPARMOR]->val2 / 100;
+ if (sc->data[SC_CUP_OF_BOZA])
+ vit += sc->data[SC_CUP_OF_BOZA]->val1;
return (unsigned short)cap_value(vit,0,USHRT_MAX);
}
@@ -4537,6 +4642,14 @@ unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc,
batk -= batk * sc->data[SC__ENERVATION]->val2 / 100;
if(sc->data[SC_SATURDAY_NIGHT_FEVER])
batk += 100 * sc->data[SC_SATURDAY_NIGHT_FEVER]->val1;
+
+ // Eden Crystal Synthesis
+ if (sc->data[SC_QUEST_BUFF1])
+ batk += sc->data[SC_QUEST_BUFF1]->val1;
+ if (sc->data[SC_QUEST_BUFF2])
+ batk += sc->data[SC_QUEST_BUFF2]->val1;
+ if (sc->data[SC_QUEST_BUFF3])
+ batk += sc->data[SC_QUEST_BUFF3]->val1;
return (unsigned short)cap_value(batk,0,USHRT_MAX);
}
@@ -4703,6 +4816,20 @@ unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc,
matk += matk * sc->data[SC_MOONLIT_SERENADE]->val2/100;
if (sc->data[SC_MTF_MATK])
matk += matk * 25 / 100;
+ if (sc->data[SC_MYSTICSCROLL])
+ matk += matk * sc->data[SC_MYSTICSCROLL]->val1 / 100;
+
+ // Eden Crystal Synthesis
+ if (sc->data[SC_QUEST_BUFF1])
+ matk += sc->data[SC_QUEST_BUFF1]->val1;
+ if (sc->data[SC_QUEST_BUFF2])
+ matk += sc->data[SC_QUEST_BUFF2]->val1;
+ if (sc->data[SC_QUEST_BUFF3])
+ matk += sc->data[SC_QUEST_BUFF3]->val1;
+
+ // Geffen Magic Tournament
+ if (sc->data[SC_FENRIR_CARD])
+ matk += sc->data[SC_FENRIR_CARD]->val1;
return (unsigned short)cap_value(matk,0,USHRT_MAX);
}
@@ -4719,6 +4846,8 @@ signed short status_calc_critical(struct block_list *bl, struct status_change *s
if (sc->data[SC_CRITICALPERCENT])
critical += sc->data[SC_CRITICALPERCENT]->val2;
+ if (sc->data[SC_FOOD_CRITICALSUCCESSVALUE])
+ critical += sc->data[SC_FOOD_CRITICALSUCCESSVALUE]->val1;
if (sc->data[SC_EXPLOSIONSPIRITS])
critical += sc->data[SC_EXPLOSIONSPIRITS]->val2;
if (sc->data[SC_FORTUNE])
@@ -4792,7 +4921,9 @@ signed short status_calc_hit(struct block_list *bl, struct status_change *sc, in
hit /= 2;
if(sc->data[SC_ILLUSIONDOPING])
hit -= hit * (5 + sc->data[SC_ILLUSIONDOPING]->val1) / 100; //custom
-
+ if (sc->data[SC_ACARAJE])
+ hit += sc->data[SC_ACARAJE]->val1;
+
return (short)cap_value(hit,1,SHRT_MAX);
}
@@ -4881,9 +5012,10 @@ signed short status_calc_flee(struct block_list *bl, struct status_change *sc, i
if(status_get_element(bl) == ELE_WATER) //water type
flee /= 2;
}
-
if( sc->data[SC_OVERED_BOOST] ) // should be final and unmodifiable by any means
flee = sc->data[SC_OVERED_BOOST]->val2;
+ if (sc->data[SC_ARMORSCROLL])
+ flee += sc->data[SC_ARMORSCROLL]->val2;
return (short)cap_value(flee,1,SHRT_MAX);
}
@@ -4904,6 +5036,8 @@ signed short status_calc_flee2(struct block_list *bl, struct status_change *sc,
flee2 += sc->data[SC_WHISTLE]->val3*10;
if(sc->data[SC__UNLUCKY])
flee2 -= flee2 * sc->data[SC__UNLUCKY]->val2 / 100;
+ if (sc->data[SC_FREYJASCROLL])
+ flee2 += sc->data[SC_FREYJASCROLL]->val2;
return (short)cap_value(flee2,10,SHRT_MAX);
}
@@ -5003,6 +5137,8 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def
}
if (sc->data[SC_UNLIMIT])
return 1;
+ if (sc->data[SC_ARMORSCROLL])
+ def += sc->data[SC_ARMORSCROLL]->val1;
return (defType)cap_value(def,DEFTYPE_MIN,DEFTYPE_MAX);
}
@@ -5131,6 +5267,8 @@ defType status_calc_mdef(struct block_list *bl, struct status_change *sc, int md
mdef -= mdef *25 / 100;
if (sc->data[SC_UNLIMIT])
return 1;
+ if (sc->data[SC_FREYJASCROLL])
+ mdef += sc->data[SC_FREYJASCROLL]->val1;
return (defType)cap_value(mdef,DEFTYPE_MIN,DEFTYPE_MAX);
}
@@ -5276,7 +5414,9 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc
val = max( val, sc->data[SC_POWER_OF_GAIA]->val2 );
if( sc->data[SC_MELON_BOMB] )
val = max( val, sc->data[SC_MELON_BOMB]->val1 );
-
+ if (sc->data[SC_STOMACHACHE])
+ val = max(val, 50);
+
if( sc->data[SC_MARSHOFABYSS] ) // It stacks to other statuses so always put this at the end.
val = max( 50, val + 10 * sc->data[SC_MARSHOFABYSS]->val1 );
@@ -5477,6 +5617,10 @@ short status_calc_aspd(struct block_list *bl, struct status_change *sc, short fl
bonus += sc->data[SC_GS_GATLINGFEVER]->val1;
if (sc->data[SC_STAR_COMFORT])
bonus += 3 * sc->data[SC_STAR_COMFORT]->val1;
+ if (sc->data[SC_ACARAJE])
+ bonus += sc->data[SC_ACARAJE]->val2;
+ if (sc->data[SC_BATTLESCROLL])
+ bonus += sc->data[SC_BATTLESCROLL]->val1;
}
return (bonus + pots);
@@ -5638,6 +5782,10 @@ short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int
aspd_rate += sc->data[SC_PAIN_KILLER]->val2 * 10;
if( sc->data[SC_GOLDENE_FERSE])
aspd_rate -= sc->data[SC_GOLDENE_FERSE]->val3 * 10;
+ if (sc->data[SC_ACARAJE])
+ aspd_rate += sc->data[SC_ACARAJE]->val2 * 10;
+ if (sc->data[SC_BATTLESCROLL])
+ aspd_rate += sc->data[SC_BATTLESCROLL]->val1 * 10;
return (short)cap_value(aspd_rate,0,SHRT_MAX);
}
@@ -5683,10 +5831,8 @@ unsigned int status_calc_maxhp(struct block_list *bl, struct status_change *sc,
maxhp += 3000;
if(sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 2)
maxhp += 500;
-
if(sc->data[SC_MER_HP])
maxhp += maxhp * sc->data[SC_MER_HP]->val2/100;
-
if(sc->data[SC_EPICLESIS])
maxhp += maxhp * 5 * sc->data[SC_EPICLESIS]->val1 / 100;
if(sc->data[SC_VENOMBLEED])
@@ -5723,6 +5869,10 @@ unsigned int status_calc_maxhp(struct block_list *bl, struct status_change *sc,
maxhp += maxhp * sc->data[SC_GOLDENE_FERSE]->val2 / 100;
if(sc->data[SC_FRIGG_SONG])
maxhp += maxhp * sc->data[SC_FRIGG_SONG]->val2 / 100;
+ if (sc->data[SC_SOULSCROLL])
+ maxhp += maxhp * sc->data[SC_SOULSCROLL]->val1 / 100;
+ if (sc->data[SC_ATKER_ASPD])
+ maxhp += maxhp * sc->data[SC_ATKER_ASPD]->val1 / 100;
return (unsigned int)cap_value(maxhp,1,UINT_MAX);
}
@@ -5748,6 +5898,14 @@ unsigned int status_calc_maxsp(struct block_list *bl, struct status_change *sc,
maxsp += maxsp * sc->data[SC_LIFE_FORCE_F]->val1/100;
if(sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 3)
maxsp += 50;
+ if (sc->data[SC_VITATA_500])
+ maxsp += maxsp * sc->data[SC_VITATA_500]->val2 / 100;
+ if (sc->data[SC_TARGET_ASPD])
+ maxsp += maxsp * sc->data[SC_TARGET_ASPD]->val1 / 100;
+ if (sc->data[SC_SOULSCROLL])
+ maxsp += maxsp * sc->data[SC_SOULSCROLL]->val1 / 100;
+ if (sc->data[SC_ATKER_MOVESPEED])
+ maxsp += maxsp * sc->data[SC_ATKER_MOVESPEED]->val1 / 100;
return cap_value(maxsp,1,UINT_MAX);
}
@@ -6603,16 +6761,16 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
}
//Item resistance (only applies to rate%)
- if(sd && SC_COMMON_MIN <= type && type <= SC_COMMON_MAX)
+ if (sd && SC_COMMON_MIN <= type && type <= SC_COMMON_MAX)
{
- if( sd->reseff[type-SC_COMMON_MIN] > 0 )
- rate -= rate*sd->reseff[type-SC_COMMON_MIN]/10000;
- if( sd->sc.data[SC_TARGET_BLOOD] )
- rate -= rate*sd->sc.data[SC_TARGET_BLOOD]->val1/100;
+ if (sd->reseff[type-SC_COMMON_MIN] > 0)
+ rate -= rate * sd->reseff[type-SC_COMMON_MIN] / 10000;
+ if (sd->sc.data[SC_TARGET_BLOOD])
+ rate -= rate * sd->sc.data[SC_TARGET_BLOOD]->val1 / 100;
}
//Aegis accuracy
- if(rate > 0 && rate%10 != 0) rate += (10 - rate%10);
+ if (rate > 0 && rate%10 != 0) rate += (10 - rate%10);
}
if (!(rnd()%10000 < rate))
diff --git a/src/map/status.h b/src/map/status.h
index 800e3de9f..a9538724d 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -745,6 +745,37 @@ typedef enum sc_type {
SC_LJOSALFAR,
SC_MERMAID_LONGING,
+
+ SC_ACARAJE, // 590
+ SC_TARGET_ASPD,
+
+ // Geffen Scrolls
+ SC_SKELSCROLL,
+ SC_DISTRUCTIONSCROLL,
+ SC_ROYALSCROLL,
+ SC_IMMUNITYSCROLL,
+ SC_MYSTICSCROLL,
+ SC_BATTLESCROLL,
+ SC_ARMORSCROLL,
+ SC_FREYJASCROLL,
+ SC_SOULSCROLL, // 600
+
+ // Eden Crystal Synthesis
+ SC_QUEST_BUFF1,
+ SC_QUEST_BUFF2,
+ SC_QUEST_BUFF3,
+
+ // Geffen Magic Tournament
+ SC_GEFFEN_MAGIC1,
+ SC_GEFFEN_MAGIC2,
+ SC_GEFFEN_MAGIC3,
+ SC_FENRIR_CARD,
+
+ SC_ATKER_ASPD,
+ SC_ATKER_MOVESPEED,
+
+ SC_FOOD_CRITICALSUCCESSVALUE, // 610
+ SC_CUP_OF_BOZA,
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
} sc_type;
@@ -1055,9 +1086,9 @@ enum si_type {
SI_L_LIFEPOTION = 294,
SI_CRITICALPERCENT = 295,
SI_PLUSAVOIDVALUE = 296,
- //SI_ATKER_ASPD = 297,
- //SI_TARGET_ASPD = 298,
- //SI_ATKER_MOVESPEED = 299,
+ SI_ATKER_ASPD = 297,
+ SI_TARGET_ASPD = 298,
+ SI_ATKER_MOVESPEED = 299,
SI_ATKER_BLOOD = 300,
SI_TARGET_BLOOD = 301,
@@ -1510,7 +1541,7 @@ enum si_type {
//SI_JITTER_BUFF8 = 748,
//SI_JITTER_BUFF9 = 749,
//SI_JITTER_BUFF10 = 750,
- //SI_CUP_OF_BOZA = 751,
+ SI_CUP_OF_BOZA = 751,
SI_B_TRAP = 752,
SI_E_CHAIN = 753,
SI_E_QD_SHOT_READY = 754,
diff --git a/src/map/unit.c b/src/map/unit.c
index 997ab5b7c..7f53966e2 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -2645,10 +2645,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) {
aFree(sd->instance);
sd->instance = NULL;
}
- if( sd->queues != NULL ) {
- aFree(sd->queues);
- sd->queues = NULL;
- }
+ VECTOR_CLEAR(sd->script_queues);
if( sd->quest_log != NULL ) {
aFree(sd->quest_log);
sd->quest_log = NULL;
diff --git a/src/map/unit.h b/src/map/unit.h
index 0d970ca16..0f7a1aec5 100644
--- a/src/map/unit.h
+++ b/src/map/unit.h
@@ -65,13 +65,11 @@ struct unit_data {
struct view_data {
#ifdef __64BIT__
- unsigned int class_;
-#endif
- unsigned short
-#ifndef __64BIT__
- class_,
-#endif
- weapon,
+ uint32 class_; // FIXME: This shouldn't really depend on the architecture.
+#else // not __64BIT__
+ uint16 class_;
+#endif // __64BIT__
+ uint16 weapon,
shield, //Or left-hand weapon.
robe,
head_top,
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index 258fc0512..c74cc8b7f 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -3593,6 +3593,10 @@ struct {
struct HPMHookPoint *HP_npc_addsrcfile_post;
struct HPMHookPoint *HP_npc_delsrcfile_pre;
struct HPMHookPoint *HP_npc_delsrcfile_post;
+ struct HPMHookPoint *HP_npc_retainpathreference_pre;
+ struct HPMHookPoint *HP_npc_retainpathreference_post;
+ struct HPMHookPoint *HP_npc_releasepathreference_pre;
+ struct HPMHookPoint *HP_npc_releasepathreference_post;
struct HPMHookPoint *HP_npc_parsename_pre;
struct HPMHookPoint *HP_npc_parsename_post;
struct HPMHookPoint *HP_npc_parseview_pre;
@@ -3615,6 +3619,16 @@ struct {
struct HPMHookPoint *HP_npc_skip_script_post;
struct HPMHookPoint *HP_npc_parse_script_pre;
struct HPMHookPoint *HP_npc_parse_script_post;
+ struct HPMHookPoint *HP_npc_add_to_location_pre;
+ struct HPMHookPoint *HP_npc_add_to_location_post;
+ struct HPMHookPoint *HP_npc_duplicate_script_sub_pre;
+ struct HPMHookPoint *HP_npc_duplicate_script_sub_post;
+ struct HPMHookPoint *HP_npc_duplicate_shop_sub_pre;
+ struct HPMHookPoint *HP_npc_duplicate_shop_sub_post;
+ struct HPMHookPoint *HP_npc_duplicate_warp_sub_pre;
+ struct HPMHookPoint *HP_npc_duplicate_warp_sub_post;
+ struct HPMHookPoint *HP_npc_duplicate_sub_pre;
+ struct HPMHookPoint *HP_npc_duplicate_sub_post;
struct HPMHookPoint *HP_npc_parse_duplicate_pre;
struct HPMHookPoint *HP_npc_parse_duplicate_post;
struct HPMHookPoint *HP_npc_duplicate4instance_pre;
@@ -9358,6 +9372,10 @@ struct {
int HP_npc_addsrcfile_post;
int HP_npc_delsrcfile_pre;
int HP_npc_delsrcfile_post;
+ int HP_npc_retainpathreference_pre;
+ int HP_npc_retainpathreference_post;
+ int HP_npc_releasepathreference_pre;
+ int HP_npc_releasepathreference_post;
int HP_npc_parsename_pre;
int HP_npc_parsename_post;
int HP_npc_parseview_pre;
@@ -9380,6 +9398,16 @@ struct {
int HP_npc_skip_script_post;
int HP_npc_parse_script_pre;
int HP_npc_parse_script_post;
+ int HP_npc_add_to_location_pre;
+ int HP_npc_add_to_location_post;
+ int HP_npc_duplicate_script_sub_pre;
+ int HP_npc_duplicate_script_sub_post;
+ int HP_npc_duplicate_shop_sub_pre;
+ int HP_npc_duplicate_shop_sub_post;
+ int HP_npc_duplicate_warp_sub_pre;
+ int HP_npc_duplicate_warp_sub_post;
+ int HP_npc_duplicate_sub_pre;
+ int HP_npc_duplicate_sub_post;
int HP_npc_parse_duplicate_pre;
int HP_npc_parse_duplicate_post;
int HP_npc_duplicate4instance_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index f793c9505..a3f7f6b3e 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -1832,6 +1832,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(npc->clearsrcfile, HP_npc_clearsrcfile) },
{ HP_POP(npc->addsrcfile, HP_npc_addsrcfile) },
{ HP_POP(npc->delsrcfile, HP_npc_delsrcfile) },
+ { HP_POP(npc->retainpathreference, HP_npc_retainpathreference) },
+ { HP_POP(npc->releasepathreference, HP_npc_releasepathreference) },
{ HP_POP(npc->parsename, HP_npc_parsename) },
{ HP_POP(npc->parseview, HP_npc_parseview) },
{ HP_POP(npc->viewisid, HP_npc_viewisid) },
@@ -1843,6 +1845,11 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(npc->convertlabel_db, HP_npc_convertlabel_db) },
{ HP_POP(npc->skip_script, HP_npc_skip_script) },
{ HP_POP(npc->parse_script, HP_npc_parse_script) },
+ { HP_POP(npc->add_to_location, HP_npc_add_to_location) },
+ { HP_POP(npc->duplicate_script_sub, HP_npc_duplicate_script_sub) },
+ { HP_POP(npc->duplicate_shop_sub, HP_npc_duplicate_shop_sub) },
+ { HP_POP(npc->duplicate_warp_sub, HP_npc_duplicate_warp_sub) },
+ { HP_POP(npc->duplicate_sub, HP_npc_duplicate_sub) },
{ HP_POP(npc->parse_duplicate, HP_npc_parse_duplicate) },
{ HP_POP(npc->duplicate4instance, HP_npc_duplicate4instance) },
{ HP_POP(npc->setcells, HP_npc_setcells) },
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index b0bc853b3..fafa4d748 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -48031,6 +48031,59 @@ void HP_npc_delsrcfile(const char *name) {
}
return;
}
+const char* HP_npc_retainpathreference(const char *filepath) {
+ int hIndex = 0;
+ const char* retVal___ = NULL;
+ if( HPMHooks.count.HP_npc_retainpathreference_pre ) {
+ const char* (*preHookFunc) (const char *filepath);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_retainpathreference_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_retainpathreference_pre[hIndex].func;
+ retVal___ = preHookFunc(filepath);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.npc.retainpathreference(filepath);
+ }
+ if( HPMHooks.count.HP_npc_retainpathreference_post ) {
+ const char* (*postHookFunc) (const char* retVal___, const char *filepath);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_retainpathreference_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_retainpathreference_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, filepath);
+ }
+ }
+ return retVal___;
+}
+void HP_npc_releasepathreference(const char *filepath) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_npc_releasepathreference_pre ) {
+ void (*preHookFunc) (const char *filepath);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_releasepathreference_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_releasepathreference_pre[hIndex].func;
+ preHookFunc(filepath);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.npc.releasepathreference(filepath);
+ }
+ if( HPMHooks.count.HP_npc_releasepathreference_post ) {
+ void (*postHookFunc) (const char *filepath);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_releasepathreference_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_releasepathreference_post[hIndex].func;
+ postHookFunc(filepath);
+ }
+ }
+ return;
+}
void HP_npc_parsename(struct npc_data *nd, const char *name, const char *start, const char *buffer, const char *filepath) {
int hIndex = 0;
if( HPMHooks.count.HP_npc_parsename_pre ) {
@@ -48111,15 +48164,15 @@ bool HP_npc_viewisid(const char *viewid) {
}
return retVal___;
}
-struct npc_data* HP_npc_create_npc(int m, int x, int y) {
+struct npc_data* HP_npc_create_npc(enum npc_subtype subtype, int m, int x, int y, uint8 dir, int16 class_) {
int hIndex = 0;
struct npc_data* retVal___ = NULL;
if( HPMHooks.count.HP_npc_create_npc_pre ) {
- struct npc_data* (*preHookFunc) (int *m, int *x, int *y);
+ struct npc_data* (*preHookFunc) (enum npc_subtype *subtype, int *m, int *x, int *y, uint8 *dir, int16 *class_);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_create_npc_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_npc_create_npc_pre[hIndex].func;
- retVal___ = preHookFunc(&m, &x, &y);
+ retVal___ = preHookFunc(&subtype, &m, &x, &y, &dir, &class_);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
@@ -48127,13 +48180,13 @@ struct npc_data* HP_npc_create_npc(int m, int x, int y) {
}
}
{
- retVal___ = HPMHooks.source.npc.create_npc(m, x, y);
+ retVal___ = HPMHooks.source.npc.create_npc(subtype, m, x, y, dir, class_);
}
if( HPMHooks.count.HP_npc_create_npc_post ) {
- struct npc_data* (*postHookFunc) (struct npc_data* retVal___, int *m, int *x, int *y);
+ struct npc_data* (*postHookFunc) (struct npc_data* retVal___, enum npc_subtype *subtype, int *m, int *x, int *y, uint8 *dir, int16 *class_);
for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_create_npc_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_npc_create_npc_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, &m, &x, &y);
+ retVal___ = postHookFunc(retVal___, &subtype, &m, &x, &y, &dir, &class_);
}
}
return retVal___;
@@ -48326,6 +48379,140 @@ const char* HP_npc_parse_script(char *w1, char *w2, char *w3, char *w4, const ch
}
return retVal___;
}
+void HP_npc_add_to_location(struct npc_data *nd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_npc_add_to_location_pre ) {
+ void (*preHookFunc) (struct npc_data *nd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_add_to_location_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_add_to_location_pre[hIndex].func;
+ preHookFunc(nd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.npc.add_to_location(nd);
+ }
+ if( HPMHooks.count.HP_npc_add_to_location_post ) {
+ void (*postHookFunc) (struct npc_data *nd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_add_to_location_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_add_to_location_post[hIndex].func;
+ postHookFunc(nd);
+ }
+ }
+ return;
+}
+bool HP_npc_duplicate_script_sub(struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_npc_duplicate_script_sub_pre ) {
+ bool (*preHookFunc) (struct npc_data *nd, const struct npc_data *snd, int *xs, int *ys, int *options);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate_script_sub_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_duplicate_script_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(nd, snd, &xs, &ys, &options);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.npc.duplicate_script_sub(nd, snd, xs, ys, options);
+ }
+ if( HPMHooks.count.HP_npc_duplicate_script_sub_post ) {
+ bool (*postHookFunc) (bool retVal___, struct npc_data *nd, const struct npc_data *snd, int *xs, int *ys, int *options);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate_script_sub_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_duplicate_script_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, nd, snd, &xs, &ys, &options);
+ }
+ }
+ return retVal___;
+}
+bool HP_npc_duplicate_shop_sub(struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_npc_duplicate_shop_sub_pre ) {
+ bool (*preHookFunc) (struct npc_data *nd, const struct npc_data *snd, int *xs, int *ys, int *options);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate_shop_sub_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_duplicate_shop_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(nd, snd, &xs, &ys, &options);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.npc.duplicate_shop_sub(nd, snd, xs, ys, options);
+ }
+ if( HPMHooks.count.HP_npc_duplicate_shop_sub_post ) {
+ bool (*postHookFunc) (bool retVal___, struct npc_data *nd, const struct npc_data *snd, int *xs, int *ys, int *options);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate_shop_sub_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_duplicate_shop_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, nd, snd, &xs, &ys, &options);
+ }
+ }
+ return retVal___;
+}
+bool HP_npc_duplicate_warp_sub(struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_npc_duplicate_warp_sub_pre ) {
+ bool (*preHookFunc) (struct npc_data *nd, const struct npc_data *snd, int *xs, int *ys, int *options);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate_warp_sub_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_duplicate_warp_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(nd, snd, &xs, &ys, &options);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.npc.duplicate_warp_sub(nd, snd, xs, ys, options);
+ }
+ if( HPMHooks.count.HP_npc_duplicate_warp_sub_post ) {
+ bool (*postHookFunc) (bool retVal___, struct npc_data *nd, const struct npc_data *snd, int *xs, int *ys, int *options);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate_warp_sub_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_duplicate_warp_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, nd, snd, &xs, &ys, &options);
+ }
+ }
+ return retVal___;
+}
+bool HP_npc_duplicate_sub(struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_npc_duplicate_sub_pre ) {
+ bool (*preHookFunc) (struct npc_data *nd, const struct npc_data *snd, int *xs, int *ys, int *options);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate_sub_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_duplicate_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(nd, snd, &xs, &ys, &options);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.npc.duplicate_sub(nd, snd, xs, ys, options);
+ }
+ if( HPMHooks.count.HP_npc_duplicate_sub_post ) {
+ bool (*postHookFunc) (bool retVal___, struct npc_data *nd, const struct npc_data *snd, int *xs, int *ys, int *options);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate_sub_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_duplicate_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, nd, snd, &xs, &ys, &options);
+ }
+ }
+ return retVal___;
+}
const char* HP_npc_parse_duplicate(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int options, int *retval) {
int hIndex = 0;
const char* retVal___ = NULL;
@@ -59762,11 +59949,11 @@ void HP_script_attach_state(struct script_state *st) {
}
return;
}
-struct hQueue* HP_script_queue(int idx) {
+struct script_queue* HP_script_queue(int idx) {
int hIndex = 0;
- struct hQueue* retVal___ = NULL;
+ struct script_queue* retVal___ = NULL;
if( HPMHooks.count.HP_script_queue_pre ) {
- struct hQueue* (*preHookFunc) (int *idx);
+ struct script_queue* (*preHookFunc) (int *idx);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_script_queue_pre[hIndex].func;
@@ -59781,7 +59968,7 @@ struct hQueue* HP_script_queue(int idx) {
retVal___ = HPMHooks.source.script.queue(idx);
}
if( HPMHooks.count.HP_script_queue_post ) {
- struct hQueue* (*postHookFunc) (struct hQueue* retVal___, int *idx);
+ struct script_queue* (*postHookFunc) (struct script_queue* retVal___, int *idx);
for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_script_queue_post[hIndex].func;
retVal___ = postHookFunc(retVal___, &idx);
@@ -59897,31 +60084,32 @@ int HP_script_queue_create(void) {
}
return retVal___;
}
-void HP_script_queue_clear(int idx) {
+bool HP_script_queue_clear(int idx) {
int hIndex = 0;
+ bool retVal___ = false;
if( HPMHooks.count.HP_script_queue_clear_pre ) {
- void (*preHookFunc) (int *idx);
+ bool (*preHookFunc) (int *idx);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_clear_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_script_queue_clear_pre[hIndex].func;
- preHookFunc(&idx);
+ retVal___ = preHookFunc(&idx);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
- return;
+ return retVal___;
}
}
{
- HPMHooks.source.script.queue_clear(idx);
+ retVal___ = HPMHooks.source.script.queue_clear(idx);
}
if( HPMHooks.count.HP_script_queue_clear_post ) {
- void (*postHookFunc) (int *idx);
+ bool (*postHookFunc) (bool retVal___, int *idx);
for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_clear_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_script_queue_clear_post[hIndex].func;
- postHookFunc(&idx);
+ retVal___ = postHookFunc(retVal___, &idx);
}
}
- return;
+ return retVal___;
}
const char* HP_script_parse_curly_close(const char *p) {
int hIndex = 0;
diff --git a/src/plugins/Makefile.in b/src/plugins/Makefile.in
index 3184353d1..e2ae0b8c3 100644
--- a/src/plugins/Makefile.in
+++ b/src/plugins/Makefile.in
@@ -87,7 +87,7 @@ Makefile: Makefile.in
../../plugins/%@DLLEXT@: %.c $(ALL_H) $$(shell ls %/* 2>/dev/null)
@echo " CC $<"
- @$(CC) $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PLUGINSTATIC@ @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o $@ $<
+ @$(CC) $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PLUGINSTATIC@ @DEFS@ @CFLAGS@ @PCRE_CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o $@ $<
../../plugins/HPMHooking_login@DLLEXT@: HPMHOOKINGTYPE = LOGIN
../../plugins/HPMHooking_char@DLLEXT@: HPMHOOKINGTYPE = CHAR
@@ -95,4 +95,4 @@ Makefile: Makefile.in
../../plugins/HPMHooking_%@DLLEXT@: HPMHooking.c $(ALL_H) $$(shell ls HPMHooking/*_%* HPMHooking/*_common* 2>/dev/null)
@echo " CC $< ($(HPMHOOKINGTYPE))"
- @$(CC) -DHPMHOOKING_$(HPMHOOKINGTYPE) $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PLUGINSTATIC@ @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o $@ $<
+ @$(CC) -DHPMHOOKING_$(HPMHOOKINGTYPE) $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PLUGINSTATIC@ @DEFS@ @CFLAGS@ @PCRE_CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o $@ $<
diff --git a/src/test/Makefile.in b/src/test/Makefile.in
index 4d8f55e1f..328e2ef00 100644
--- a/src/test/Makefile.in
+++ b/src/test/Makefile.in
@@ -78,7 +78,7 @@ $(TESTS_ALL): test_%: ../../test_%@EXEEXT@
obj/%.o: %.c $(TEST_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | obj
@echo " CC $<"
- @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) $(PCRE_CFLAGS) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
+ @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PCRE_CFLAGS@ @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
# missing object files
$(COMMON_D)/obj_all/common.a:
diff --git a/tools/HPMHookGen/doxygen.conf b/tools/HPMHookGen/doxygen.conf
index 380a3d8de..ec55967b1 100644
--- a/tools/HPMHookGen/doxygen.conf
+++ b/tools/HPMHookGen/doxygen.conf
@@ -265,7 +265,8 @@ ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
-INCLUDE_PATH = ../../src
+INCLUDE_PATH = ../../src \
+ ../../3rdparty
INCLUDE_FILE_PATTERNS =
PREDEFINED = __attribute__(x)= \
HPMHOOKGEN
diff --git a/vcproj-10/char-server.vcxproj b/vcproj-10/char-server.vcxproj
index f17eb6cd4..5f433e045 100644
--- a/vcproj-10/char-server.vcxproj
+++ b/vcproj-10/char-server.vcxproj
@@ -54,7 +54,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<ExceptionHandling>
@@ -97,7 +97,7 @@
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBCONFIG_STATIC;YY_USE_CONST;FD_SETSIZE=4096;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBCONFIG_STATIC;YY_USE_CONST;FD_SETSIZE=4096;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>
diff --git a/vcproj-10/login-server.vcxproj b/vcproj-10/login-server.vcxproj
index b7b020b03..81b364366 100644
--- a/vcproj-10/login-server.vcxproj
+++ b/vcproj-10/login-server.vcxproj
@@ -52,7 +52,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<ExceptionHandling>
@@ -95,7 +95,7 @@
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>
diff --git a/vcproj-10/plugin-HPMHooking_char.vcxproj b/vcproj-10/plugin-HPMHooking_char.vcxproj
index 404d6a3c7..74b220de7 100644
--- a/vcproj-10/plugin-HPMHooking_char.vcxproj
+++ b/vcproj-10/plugin-HPMHooking_char.vcxproj
@@ -57,7 +57,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -86,7 +86,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-10/plugin-HPMHooking_login.vcxproj b/vcproj-10/plugin-HPMHooking_login.vcxproj
index f777c7729..f1d77086f 100644
--- a/vcproj-10/plugin-HPMHooking_login.vcxproj
+++ b/vcproj-10/plugin-HPMHooking_login.vcxproj
@@ -57,7 +57,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -86,7 +86,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-10/plugin-HPMHooking_map.vcxproj b/vcproj-10/plugin-HPMHooking_map.vcxproj
index a76c367ae..1e9802439 100644
--- a/vcproj-10/plugin-HPMHooking_map.vcxproj
+++ b/vcproj-10/plugin-HPMHooking_map.vcxproj
@@ -56,8 +56,8 @@
<ClCompile>
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\src\;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -86,7 +86,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-10/plugin-sample.vcxproj b/vcproj-10/plugin-sample.vcxproj
index 33163c43a..732006e92 100644
--- a/vcproj-10/plugin-sample.vcxproj
+++ b/vcproj-10/plugin-sample.vcxproj
@@ -57,7 +57,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -86,7 +86,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-11/char-server.vcxproj b/vcproj-11/char-server.vcxproj
index 49666e898..23b02fc67 100644
--- a/vcproj-11/char-server.vcxproj
+++ b/vcproj-11/char-server.vcxproj
@@ -55,7 +55,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<ExceptionHandling>
@@ -99,7 +99,7 @@
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBCONFIG_STATIC;YY_USE_CONST;FD_SETSIZE=4096;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBCONFIG_STATIC;YY_USE_CONST;FD_SETSIZE=4096;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>
diff --git a/vcproj-11/login-server.vcxproj b/vcproj-11/login-server.vcxproj
index 44b5d6381..27ed99577 100644
--- a/vcproj-11/login-server.vcxproj
+++ b/vcproj-11/login-server.vcxproj
@@ -54,7 +54,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<ExceptionHandling>
@@ -98,7 +98,7 @@
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>
diff --git a/vcproj-11/plugin-HPMHooking_char.vcxproj b/vcproj-11/plugin-HPMHooking_char.vcxproj
index 67091f419..8d9082d88 100644
--- a/vcproj-11/plugin-HPMHooking_char.vcxproj
+++ b/vcproj-11/plugin-HPMHooking_char.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-11/plugin-HPMHooking_login.vcxproj b/vcproj-11/plugin-HPMHooking_login.vcxproj
index de3ab260a..33b73c0f5 100644
--- a/vcproj-11/plugin-HPMHooking_login.vcxproj
+++ b/vcproj-11/plugin-HPMHooking_login.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-11/plugin-HPMHooking_map.vcxproj b/vcproj-11/plugin-HPMHooking_map.vcxproj
index 9ed4deeea..76a06c8fc 100644
--- a/vcproj-11/plugin-HPMHooking_map.vcxproj
+++ b/vcproj-11/plugin-HPMHooking_map.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-11/plugin-sample.vcxproj b/vcproj-11/plugin-sample.vcxproj
index 63de4c3ac..906a5ab9a 100644
--- a/vcproj-11/plugin-sample.vcxproj
+++ b/vcproj-11/plugin-sample.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-12/char-server.vcxproj b/vcproj-12/char-server.vcxproj
index ad2f60c34..66485f663 100644
--- a/vcproj-12/char-server.vcxproj
+++ b/vcproj-12/char-server.vcxproj
@@ -54,7 +54,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<ExceptionHandling>
@@ -98,7 +98,7 @@
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBCONFIG_STATIC;YY_USE_CONST;FD_SETSIZE=4096;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBCONFIG_STATIC;YY_USE_CONST;FD_SETSIZE=4096;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>
diff --git a/vcproj-12/login-server.vcxproj b/vcproj-12/login-server.vcxproj
index dfc35bf20..2777ae2c2 100644
--- a/vcproj-12/login-server.vcxproj
+++ b/vcproj-12/login-server.vcxproj
@@ -54,7 +54,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<ExceptionHandling>
@@ -98,7 +98,7 @@
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>
diff --git a/vcproj-12/plugin-HPMHooking_char.vcxproj b/vcproj-12/plugin-HPMHooking_char.vcxproj
index 016d85c6f..342b4deb0 100644
--- a/vcproj-12/plugin-HPMHooking_char.vcxproj
+++ b/vcproj-12/plugin-HPMHooking_char.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-12/plugin-HPMHooking_login.vcxproj b/vcproj-12/plugin-HPMHooking_login.vcxproj
index 2b8f56cbf..0fc1be2ad 100644
--- a/vcproj-12/plugin-HPMHooking_login.vcxproj
+++ b/vcproj-12/plugin-HPMHooking_login.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-12/plugin-HPMHooking_map.vcxproj b/vcproj-12/plugin-HPMHooking_map.vcxproj
index 82c2fb4eb..a7fc43714 100644
--- a/vcproj-12/plugin-HPMHooking_map.vcxproj
+++ b/vcproj-12/plugin-HPMHooking_map.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-12/plugin-sample.vcxproj b/vcproj-12/plugin-sample.vcxproj
index e2f047cff..d55fcfa48 100644
--- a/vcproj-12/plugin-sample.vcxproj
+++ b/vcproj-12/plugin-sample.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-14/char-server.vcxproj b/vcproj-14/char-server.vcxproj
index dd3f53526..27c42430d 100644
--- a/vcproj-14/char-server.vcxproj
+++ b/vcproj-14/char-server.vcxproj
@@ -55,7 +55,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<ExceptionHandling>
@@ -98,7 +98,7 @@
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBCONFIG_STATIC;YY_USE_CONST;FD_SETSIZE=4096;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBCONFIG_STATIC;YY_USE_CONST;FD_SETSIZE=4096;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>
diff --git a/vcproj-14/login-server.vcxproj b/vcproj-14/login-server.vcxproj
index 5589cc35d..02539ef61 100644
--- a/vcproj-14/login-server.vcxproj
+++ b/vcproj-14/login-server.vcxproj
@@ -54,7 +54,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<ExceptionHandling>
@@ -97,7 +97,7 @@
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>
diff --git a/vcproj-14/plugin-HPMHooking_char.vcxproj b/vcproj-14/plugin-HPMHooking_char.vcxproj
index 832f46e7b..7e6eac785 100644
--- a/vcproj-14/plugin-HPMHooking_char.vcxproj
+++ b/vcproj-14/plugin-HPMHooking_char.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-14/plugin-HPMHooking_login.vcxproj b/vcproj-14/plugin-HPMHooking_login.vcxproj
index 5fc9ff10c..43bd2c285 100644
--- a/vcproj-14/plugin-HPMHooking_login.vcxproj
+++ b/vcproj-14/plugin-HPMHooking_login.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-14/plugin-HPMHooking_map.vcxproj b/vcproj-14/plugin-HPMHooking_map.vcxproj
index 01e042841..2403e700d 100644
--- a/vcproj-14/plugin-HPMHooking_map.vcxproj
+++ b/vcproj-14/plugin-HPMHooking_map.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/vcproj-14/plugin-sample.vcxproj b/vcproj-14/plugin-sample.vcxproj
index d2baea444..28c26118f 100644
--- a/vcproj-14/plugin-sample.vcxproj
+++ b/vcproj-14/plugin-sample.vcxproj
@@ -59,7 +59,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -88,7 +88,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;PCRE_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>