summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-04-11 19:00:03 +0300
committerAndrei Karas <akaras@inbox.ru>2017-04-11 19:00:03 +0300
commit0c0d6275af4c6afb0d3963a6f60764e75a0d3fbc (patch)
tree04bea36ac49f70c89f9e3a312719e5075abb53ca
parente9f7a11672ebceec99368c847065015e302a0b26 (diff)
downloadserverdata-0c0d6275af4c6afb0d3963a6f60764e75a0d3fbc.tar.gz
serverdata-0c0d6275af4c6afb0d3963a6f60764e75a0d3fbc.tar.bz2
serverdata-0c0d6275af4c6afb0d3963a6f60764e75a0d3fbc.tar.xz
serverdata-0c0d6275af4c6afb0d3963a6f60764e75a0d3fbc.zip
Update to latest hercules.
Add item options db. some new fields in conf.
-rw-r--r--conf/map/battle/items.conf4
-rw-r--r--conf/map/battle/monster.conf6
-rw-r--r--db/item_options.conf1026
-rw-r--r--db/re/item_db.conf1
-rw-r--r--sql-files/logs.sql10
-rw-r--r--sql-files/main.sql80
-rw-r--r--sql-files/upgrades/2017-03-02--11-40.sql93
-rw-r--r--sql-files/upgrades/2017-03-05--08-09.sql15
8 files changed, 1226 insertions, 9 deletions
diff --git a/conf/map/battle/items.conf b/conf/map/battle/items.conf
index 8ff2cbb3..3c9ba71e 100644
--- a/conf/map/battle/items.conf
+++ b/conf/map/battle/items.conf
@@ -114,3 +114,7 @@ item_enabled_npc: true
// 2 : disabled equipments are nullify, disabled cards will caused the equipment to unequip
// 3 : disabled equipments are unequip, disabled cards will caused the equipment to unequip (1+2)
unequip_restricted_equipment: 0
+
+// When unequip a bow with arrow equipped, it also unequip the arrow?
+// Default: true (Official behavior, applies only in Renewal)
+bow_unequip_arrow: true
diff --git a/conf/map/battle/monster.conf b/conf/map/battle/monster.conf
index 09faec68..beffda98 100644
--- a/conf/map/battle/monster.conf
+++ b/conf/map/battle/monster.conf
@@ -259,3 +259,9 @@ mob_size_influence: false
// Default (most official): mob - 220, boss - 1
mob_icewall_walk_block: 220
boss_icewall_walk_block: 1
+
+// Which level of of Vulture's Eye and Snake's Eye should monsters have learned?
+// Officially monsters don't have these skills learned, so their ranged skills
+// only have a range of 9. If you put a number higher than 0, their range will
+// be increased by that number.
+monster_eye_range_bonus: 0
diff --git a/db/item_options.conf b/db/item_options.conf
new file mode 100644
index 00000000..fb0efa17
--- /dev/null
+++ b/db/item_options.conf
@@ -0,0 +1,1026 @@
+//================= Hercules Database =====================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2017 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Items Options Database
+//=========================================================================
+
+item_options_db: (
+/**************************************************************************
+ ************* Entry structure ********************************************
+ **************************************************************************
+{
+ Id: (int) This value must be unique, with an index
+ that is represented client-side in
+ data/luafiles514/lua files/datainfo/addrandomoptionnametable.lub
+ Name: (string) Must be a unique string since it is used
+ as a constant.
+ Script: <""> Script effect of the option. Utilizes getequippedoptioninfo
+ for a variable bonus effect.
+},
+*/
+{
+ Id: 1
+ Name: "VAR_MAXHPAMOUNT"
+ Script: <" bonus(bMaxHP, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 2
+ Name: "VAR_MAXSPAMOUNT"
+ Script: <" bonus(bMaxSP, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 3
+ Name: "VAR_STRAMOUNT"
+ Script: <" bonus(bStr, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 4
+ Name: "VAR_AGIAMOUNT"
+ Script: <" bonus(bAgi, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 5
+ Name: "VAR_VITAMOUNT"
+ Script: <" bonus(bVit, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 6
+ Name: "VAR_INTAMOUNT"
+ Script: <" bonus(bInt, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 7
+ Name: "VAR_DEXAMOUNT"
+ Script: <" bonus(bDex, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 8
+ Name: "VAR_LUKAMOUNT"
+ Script: <" bonus(bLuk, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 9
+ Name: "VAR_MAXHPPERCENT"
+ Script: <" bonus(bMaxHPrate, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 10
+ Name: "VAR_MAXSPPERCENT"
+ Script: <" bonus(bMaxSPrate, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 11
+ Name: "VAR_HPACCELERATION"
+ Script: <" bonus(bHPrecovRate, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 12
+ Name: "VAR_SPACCELERATION"
+ Script: <" bonus(bSPrecovRate, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 13
+ Name: "VAR_ATKPERCENT"
+ Script: <" bonus(bAtkRate, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 14
+ Name: "VAR_MAGICATKPERCENT"
+ Script: <" bonus(bMatkRate, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 15
+ Name: "VAR_PLUSASPD"
+ Script: <" bonus(bAspd, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 16
+ Name: "VAR_PLUSASPDPERCENT"
+ Script: <" bonus(bAspdRate, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 17
+ Name: "VAR_ATTPOWER"
+ Script: <" bonus(bAtk, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 18
+ Name: "VAR_HITSUCCESSVALUE"
+ Script: <" bonus(bHit, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 19
+ Name: "VAR_ATTMPOWER"
+ Script: <" bonus(bMatk, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 20
+ Name: "VAR_ITEMDEFPOWER"
+ Script: <" bonus(bDef, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 21
+ Name: "VAR_MDEFPOWER"
+ Script: <" bonus(bMdef, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 22
+ Name: "VAR_AVOIDSUCCESSVALUE"
+ Script: <" bonus(bFlee, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 23
+ Name: "VAR_PLUSAVOIDSUCCESSVALUE"
+ Script: <" bonus(bFlee2, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 24
+ Name: "VAR_CRITICALSUCCESSVALUE"
+ Script: <" bonus(bCritical, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 25
+ Name: "ATTR_TOLERACE_NOTHING"
+ Script: <" bonus2(bSubEle, Ele_Neutral, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 26
+ Name: "ATTR_TOLERACE_WATER"
+ Script: <" bonus2(bSubEle, Ele_Water, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 27
+ Name: "ATTR_TOLERACE_GROUND"
+ Script: <" bonus2(bSubEle, Ele_Earth, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 28
+ Name: "ATTR_TOLERACE_FIRE"
+ Script: <" bonus2(bSubEle, Ele_Fire, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 29
+ Name: "ATTR_TOLERACE_WIND"
+ Script: <" bonus2(bSubEle, Ele_Wind, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 30
+ Name: "ATTR_TOLERACE_POISON"
+ Script: <" bonus2(bSubEle, Ele_Poison, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 31
+ Name: "ATTR_TOLERACE_SAINT"
+ Script: <" bonus2(bSubEle, Ele_Holy, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 32
+ Name: "ATTR_TOLERACE_DARKNESS"
+ Script: <" bonus2(bSubEle, Ele_Dark, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 33
+ Name: "ATTR_TOLERACE_TELEKINESIS"
+ Script: <" bonus2(bSubEle, Ele_Ghost, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 34
+ Name: "ATTR_TOLERACE_UNDEAD"
+ Script: <" bonus2(bSubEle, Ele_Undead, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 35
+ Name: "ATTR_TOLERACE_ALL"
+ Script: <" bonus2(bSubEle, Ele_All, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+// TODO: Confirm if damage reduction is implemented correctly.
+// kRO desc : <ELEMENT> 몬스터로부터 받는 물리 데미지 %d%% 감소.
+{
+ Id: 36
+ Name: "DAMAGE_PROPERTY_NOTHING_USER"
+ Script: <" bonus3(bSubEle, Ele_Neutral, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 37
+ Name: "DAMAGE_PROPERTY_NOTHING_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Neutral, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 38
+ Name: "DAMAGE_PROPERTY_WATER_USER"
+ Script: <" bonus3(bSubEle, Ele_Water, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 39
+ Name: "DAMAGE_PROPERTY_WATER_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Water, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 40
+ Name: "DAMAGE_PROPERTY_GROUND_USER"
+ Script: <" bonus3(bSubEle, Ele_Earth, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 41
+ Name: "DAMAGE_PROPERTY_GROUND_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Earth, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 42
+ Name: "DAMAGE_PROPERTY_FIRE_USER"
+ Script: <" bonus3(bSubEle, Ele_Fire, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 43
+ Name: "DAMAGE_PROPERTY_FIRE_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Fire, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 44
+ Name: "DAMAGE_PROPERTY_WIND_USER"
+ Script: <" bonus3(bSubEle, Ele_Wind, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 45
+ Name: "DAMAGE_PROPERTY_WIND_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Wind, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 46
+ Name: "DAMAGE_PROPERTY_POISON_USER"
+ Script: <" bonus3(bSubEle, Ele_Poison, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 47
+ Name: "DAMAGE_PROPERTY_POISON_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Poison, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 48
+ Name: "DAMAGE_PROPERTY_SAINT_USER"
+ Script: <" bonus3(bSubEle, Ele_Holy, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 49
+ Name: "DAMAGE_PROPERTY_SAINT_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Holy, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 50
+ Name: "DAMAGE_PROPERTY_DARKNESS_USER"
+ Script: <" bonus3(bSubEle, Ele_Dark, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 51
+ Name: "DAMAGE_PROPERTY_DARKNESS_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Dark, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 52
+ Name: "DAMAGE_PROPERTY_TELEKINESIS_USER"
+ Script: <" bonus3(bSubEle, Ele_Ghost, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 53
+ Name: "DAMAGE_PROPERTY_TELEKINESIS_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Ghost, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 54
+ Name: "DAMAGE_PROPERTY_UNDEAD_USER"
+ Script: <" bonus3(bSubEle, Ele_Undead, getequippedoptioninfo(IT_OPT_VALUE), BF_NORMAL); ">
+},
+{
+ Id: 55
+ Name: "DAMAGE_PROPERTY_UNDEAD_TARGET"
+ Script: <" bonus2(bAddEle, Ele_Undead, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 56
+ Name: "MDAMAGE_PROPERTY_NOTHING_USER"
+ Script: <" bonus3(bSubEle, Ele_Neutral, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 57
+ Name: "MDAMAGE_PROPERTY_NOTHING_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Neutral, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 58
+ Name: "MDAMAGE_PROPERTY_WATER_USER"
+ Script: <" bonus3(bSubEle, Ele_Water, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 59
+ Name: "MDAMAGE_PROPERTY_WATER_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Water, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 60
+ Name: "MDAMAGE_PROPERTY_GROUND_USER"
+ Script: <" bonus3(bSubEle, Ele_Earth, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 61
+ Name: "MDAMAGE_PROPERTY_GROUND_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Earth, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 62
+ Name: "MDAMAGE_PROPERTY_FIRE_USER"
+ Script: <" bonus3(bSubEle, Ele_Fire, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 63
+ Name: "MDAMAGE_PROPERTY_FIRE_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Fire, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 64
+ Name: "MDAMAGE_PROPERTY_WIND_USER"
+ Script: <" bonus3(bSubEle, Ele_Wind, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 65
+ Name: "MDAMAGE_PROPERTY_WIND_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Wind, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 66
+ Name: "MDAMAGE_PROPERTY_POISON_USER"
+ Script: <" bonus3(bSubEle, Ele_Poison, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 67
+ Name: "MDAMAGE_PROPERTY_POISON_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Poison, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 68
+ Name: "MDAMAGE_PROPERTY_SAINT_USER"
+ Script: <" bonus3(bSubEle, Ele_Holy, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 69
+ Name: "MDAMAGE_PROPERTY_SAINT_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Holy, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 70
+ Name: "MDAMAGE_PROPERTY_DARKNESS_USER"
+ Script: <" bonus3(bSubEle, Ele_Dark, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 71
+ Name: "MDAMAGE_PROPERTY_DARKNESS_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Dark, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 72
+ Name: "MDAMAGE_PROPERTY_TELEKINESIS_USER"
+ Script: <" bonus3(bSubEle, Ele_Ghost, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 73
+ Name: "MDAMAGE_PROPERTY_TELEKINESIS_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Ghost, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 74
+ Name: "MDAMAGE_PROPERTY_UNDEAD_USER"
+ Script: <" bonus3(bSubEle, Ele_Undead, getequippedoptioninfo(IT_OPT_VALUE), BF_MAGIC); ">
+},
+{
+ Id: 75
+ Name: "MDAMAGE_PROPERTY_UNDEAD_TARGET"
+ Script: <" bonus2(bMagicAddEle, Ele_Undead, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 76
+ Name: "BODY_ATTR_NOTHING"
+ Script: <" bonus(bDefEle, Ele_Neutral); ">
+},
+{
+ Id: 77
+ Name: "BODY_ATTR_WATER"
+ Script: <" bonus(bDefEle, Ele_Water); ">
+},
+{
+ Id: 78
+ Name: "BODY_ATTR_GROUND"
+ Script: <" bonus(bDefEle, Ele_Earth); ">
+},
+{
+ Id: 79
+ Name: "BODY_ATTR_FIRE"
+ Script: <" bonus(bDefEle, Ele_Fire); ">
+},
+{
+ Id: 80
+ Name: "BODY_ATTR_WIND"
+ Script: <" bonus(bDefEle, Ele_Wind); ">
+},
+{
+ Id: 81
+ Name: "BODY_ATTR_POISON"
+ Script: <" bonus(bDefEle, Ele_Poison); ">
+},
+{
+ Id: 82
+ Name: "BODY_ATTR_SAINT"
+ Script: <" bonus(bDefEle, Ele_Holy); ">
+},
+{
+ Id: 83
+ Name: "BODY_ATTR_DARKNESS"
+ Script: <" bonus(bDefEle, Ele_Dark); ">
+},
+{
+ Id: 84
+ Name: "BODY_ATTR_TELEKINESIS"
+ Script: <" bonus(bDefEle, Ele_Ghost); ">
+},
+{
+ Id: 85
+ Name: "BODY_ATTR_UNDEAD"
+ Script: <" bonus(bDefEle, Ele_Undead); ">
+},
+{
+ Id: 86
+ Name: "BODY_ATTR_ALL"
+ Script: <" /* Needs more info */ ">
+},
+{
+ Id: 87
+ Name: "RACE_TOLERACE_NOTHING"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_Formless, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_Formless, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 88
+ Name: "RACE_TOLERACE_UNDEAD"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_Undead, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_Undead, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 89
+ Name: "RACE_TOLERACE_ANIMAL"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_Brute, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_Brute, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 90
+ Name: "RACE_TOLERACE_PLANT"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_Plant, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_Plant, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 91
+ Name: "RACE_TOLERACE_INSECT"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_Insect, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_Insect, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 92
+ Name: "RACE_TOLERACE_FISHS"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_Fish, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_Fish, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 93
+ Name: "RACE_TOLERACE_DEVIL"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_Demon, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_Demon, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 94
+ Name: "RACE_TOLERACE_HUMAN"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_DemiPlayer, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_DemiPlayer, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 95
+ Name: "RACE_TOLERACE_ANGEL"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_Angel, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_Angel, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 96
+ Name: "RACE_TOLERACE_DRAGON"
+ Script: <"
+ if (RENEWAL)
+ bonus2(bAddRaceTolerance, RC_Dragon, getequippedoptioninfo(IT_OPT_VALUE));
+ else
+ bonus2(bSubRace, RC_Dragon, getequippedoptioninfo(IT_OPT_VALUE));
+ ">
+},
+{
+ Id: 97
+ Name: "RACE_DAMAGE_NOTHING"
+ Script: <" bonus2(bAddRace, RC_Formless, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 98
+ Name: "RACE_DAMAGE_UNDEAD"
+ Script: <" bonus2(bAddRace, RC_Undead, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 99
+ Name: "RACE_DAMAGE_ANIMAL"
+ Script: <" bonus2(bAddRace, RC_Brute, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 100
+ Name: "RACE_DAMAGE_PLANT"
+ Script: <" bonus2(bAddRace, RC_Plant, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 101
+ Name: "RACE_DAMAGE_INSECT"
+ Script: <" bonus2(bAddRace, RC_Insect, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 102
+ Name: "RACE_DAMAGE_FISHS"
+ Script: <" bonus2(bAddRace, RC_Fish, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 103
+ Name: "RACE_DAMAGE_DEVIL"
+ Script: <" bonus2(bAddRace, RC_Demon, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 104
+ Name: "RACE_DAMAGE_HUMAN"
+ Script: <" bonus2(bAddRace, RC_DemiPlayer, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 105
+ Name: "RACE_DAMAGE_ANGEL"
+ Script: <" bonus2(bAddRace, RC_Angel, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 106
+ Name: "RACE_DAMAGE_DRAGON"
+ Script: <" bonus2(bAddRace, RC_Dragon, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 107
+ Name: "RACE_MDAMAGE_NOTHING"
+ Script: <" bonus2(bMagicAddRace, RC_Formless, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 108
+ Name: "RACE_MDAMAGE_UNDEAD"
+ Script: <" bonus2(bMagicAddRace, RC_Undead, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 109
+ Name: "RACE_MDAMAGE_ANIMAL"
+ Script: <" bonus2(bMagicAddRace, RC_Brute, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 110
+ Name: "RACE_MDAMAGE_PLANT"
+ Script: <" bonus2(bMagicAddRace, RC_Plant, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 111
+ Name: "RACE_MDAMAGE_INSECT"
+ Script: <" bonus2(bMagicAddRace, RC_Insect, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 112
+ Name: "RACE_MDAMAGE_FISHS"
+ Script: <" bonus2(bMagicAddRace, RC_Fish, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 113
+ Name: "RACE_MDAMAGE_DEVIL"
+ Script: <" bonus2(bMagicAddRace, RC_Demon, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 114
+ Name: "RACE_MDAMAGE_HUMAN"
+ Script: <" bonus2(bMagicAddRace, RC_DemiPlayer, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 115
+ Name: "RACE_MDAMAGE_ANGEL"
+ Script: <" bonus2(bMagicAddRace, RC_Angel, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 116
+ Name: "RACE_MDAMAGE_DRAGON"
+ Script: <" bonus2(bMagicAddRace, RC_Dragon, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 117
+ Name: "RACE_CRI_PERCENT_NOTHING"
+ Script: <" bonus2(bCriticalAddRace, RC_Formless, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 118
+ Name: "RACE_CRI_PERCENT_UNDEAD"
+ Script: <" bonus2(bCriticalAddRace, RC_Undead, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 119
+ Name: "RACE_CRI_PERCENT_ANIMAL"
+ Script: <" bonus2(bCriticalAddRace, RC_Brute, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 120
+ Name: "RACE_CRI_PERCENT_PLANT"
+ Script: <" bonus2(bCriticalAddRace, RC_Plant, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 121
+ Name: "RACE_CRI_PERCENT_INSECT"
+ Script: <" bonus2(bCriticalAddRace, RC_Insect, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 122
+ Name: "RACE_CRI_PERCENT_FISHS"
+ Script: <" bonus2(bCriticalAddRace, RC_Fish, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 123
+ Name: "RACE_CRI_PERCENT_DEVIL"
+ Script: <" bonus2(bCriticalAddRace, RC_Demon, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 124
+ Name: "RACE_CRI_PERCENT_HUMAN"
+ Script: <" bonus2(bCriticalAddRace, RC_DemiPlayer, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 125
+ Name: "RACE_CRI_PERCENT_ANGEL"
+ Script: <" bonus2(bCriticalAddRace, RC_Angel, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 126
+ Name: "RACE_CRI_PERCENT_DRAGON"
+ Script: <" bonus2(bCriticalAddRace, RC_Dragon, getequippedoptioninfo(IT_OPT_VALUE) / 10); ">
+},
+{
+ Id: 127
+ Name: "RACE_IGNORE_DEF_PERCENT_NOTHING"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_Formless, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 128
+ Name: "RACE_IGNORE_DEF_PERCENT_UNDEAD"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_Undead, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 129
+ Name: "RACE_IGNORE_DEF_PERCENT_ANIMAL"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_Brute, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 130
+ Name: "RACE_IGNORE_DEF_PERCENT_PLANT"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_Plant, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 131
+ Name: "RACE_IGNORE_DEF_PERCENT_INSECT"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_Insect, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 132
+ Name: "RACE_IGNORE_DEF_PERCENT_FISHS"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_Fish, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 133
+ Name: "RACE_IGNORE_DEF_PERCENT_DEVIL"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_Demon, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 134
+ Name: "RACE_IGNORE_DEF_PERCENT_HUMAN"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_DemiPlayer, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 135
+ Name: "RACE_IGNORE_DEF_PERCENT_ANGEL"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_Angel, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 136
+ Name: "RACE_IGNORE_DEF_PERCENT_DRAGON"
+ Script: <" bonus2(bIgnoreDefRaceRate, RC_Dragon, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 137
+ Name: "RACE_IGNORE_MDEF_PERCENT_NOTHING"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_Formless, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 138
+ Name: "RACE_IGNORE_MDEF_PERCENT_UNDEAD"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_Undead, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 139
+ Name: "RACE_IGNORE_MDEF_PERCENT_ANIMAL"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_Brute, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 140
+ Name: "RACE_IGNORE_MDEF_PERCENT_PLANT"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_Plant, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 141
+ Name: "RACE_IGNORE_MDEF_PERCENT_INSECT"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_Insect, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 142
+ Name: "RACE_IGNORE_MDEF_PERCENT_FISHS"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_Fish, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 143
+ Name: "RACE_IGNORE_MDEF_PERCENT_DEVIL"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_Demon, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 144
+ Name: "RACE_IGNORE_MDEF_PERCENT_HUMAN"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_DemiPlayer, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 145
+ Name: "RACE_IGNORE_MDEF_PERCENT_ANGEL"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_Angel, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 146
+ Name: "RACE_IGNORE_MDEF_PERCENT_DRAGON"
+ Script: <" bonus2(bIgnoreMdefRaceRate, RC_Dragon, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 147
+ Name: "CLASS_DAMAGE_NORMAL_TARGET"
+ Script: <" bonus2(bAddClass, Class_Normal, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 148
+ Name: "CLASS_DAMAGE_BOSS_TARGET"
+ Script: <" bonus2(bAddClass, Class_Boss, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 149
+ Name: "CLASS_DAMAGE_NORMAL_USER"
+ Script: <" bonus2(bSubClass, Class_Normal, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 150
+ Name: "CLASS_DAMAGE_BOSS_USER"
+ Script: <" bonus2(bSubClass, Class_Boss, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 151
+ Name: "CLASS_MDAMAGE_NORMAL"
+ Script: <" bonus2(bMagicAddClass, Class_Normal, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 152
+ Name: "CLASS_MDAMAGE_BOSS"
+ Script: <" bonus2(bMagicAddClass, Class_Boss, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 153
+ Name: "CLASS_IGNORE_DEF_PERCENT_NORMAL"
+ Script: <" bonus2(bIgnoreDefClassRate, Class_Normal, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 154
+ Name: "CLASS_IGNORE_DEF_PERCENT_BOSS"
+ Script: <" bonus2(bIgnoreDefClassRate, Class_Boss, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 155
+ Name: "CLASS_IGNORE_MDEF_PERCENT_NORMAL"
+ Script: <" bonus2(bIgnoreMdefClassRate, Class_Normal, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 156
+ Name: "CLASS_IGNORE_MDEF_PERCENT_BOSS"
+ Script: <" bonus2(bIgnoreMdefClassRate, Class_Boss, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 157
+ Name: "DAMAGE_SIZE_SMALL_TARGET"
+ Script: <" bonus2(bAddSize, Size_Small, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 158
+ Name: "DAMAGE_SIZE_MIDIUM_TARGET"
+ Script: <" bonus2(bAddSize, Size_Medium, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 159
+ Name: "DAMAGE_SIZE_LARGE_TARGET"
+ Script: <" bonus2(bAddSize, Size_Large, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 160
+ Name: "DAMAGE_SIZE_SMALL_USER"
+ Script: <" bonus2(bSubSize, Size_Small, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 161
+ Name: "DAMAGE_SIZE_MIDIUM_USER"
+ Script: <" bonus2(bSubSize, Size_Medium, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 162
+ Name: "DAMAGE_SIZE_LARGE_USER"
+ Script: <" bonus2(bSubSize, Size_Large, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 163
+ Name: "DAMAGE_SIZE_PERFECT"
+ Script: <" bonus(bNoSizeFix, 1); ">
+},
+{
+ Id: 164
+ Name: "DAMAGE_CRI_TARGET"
+ Script: <" bonus(bCritAtkRate, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 165
+ Name: "DAMAGE_CRI_USER"
+ Script: <" bonus(bCriticalDef, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 166
+ Name: "RANGE_ATTACK_DAMAGE_TARGET"
+ Script: <" bonus(bLongAtkRate, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 167
+ Name: "RANGE_ATTACK_DAMAGE_USER"
+ Script: <" bonus(bLongAtkDef, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 168
+ Name: "HEAL_VALUE"
+ Script: <" bonus(bHealPower, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 169
+ Name: "HEAL_MODIFY_PERCENT"
+ Script: <" bonus(bHealPower2, getequippedoptioninfo(IT_OPT_VALUE)); ">
+},
+{
+ Id: 170
+ Name: "DEC_SPELL_CAST_TIME"
+ Script: <" bonus(bVariableCastrate, -(getequippedoptioninfo(IT_OPT_VALUE))); ">
+},
+{
+ Id: 171
+ Name: "DEC_SPELL_DELAY_TIME"
+ Script: <" bonus(bDelayrate, -(getequippedoptioninfo(IT_OPT_VALUE))); ">
+},
+{
+ Id: 172
+ Name: "DEC_SP_CONSUMPTION"
+ Script: <" bonus(bUseSPrate, -(getequippedoptioninfo(IT_OPT_VALUE))); ">
+},
+{
+ Id: 173
+ Name: "HP_DRAIN"
+ Script: <" /* Needs more info */ ">
+},
+{
+ Id: 174
+ Name: "SP_DRAIN"
+ Script: <" /* Needs more info */ ">
+},
+{
+ Id: 175
+ Name: "WEAPON_ATTR_NOTHING"
+ Script: <" bonus(bAtkEle, Ele_Neutral); ">
+},
+{
+ Id: 176
+ Name: "WEAPON_ATTR_WATER"
+ Script: <" bonus(bAtkEle, Ele_Water); ">
+},
+{
+ Id: 177
+ Name: "WEAPON_ATTR_GROUND"
+ Script: <" bonus(bAtkEle, Ele_Earth); ">
+},
+{
+ Id: 178
+ Name: "WEAPON_ATTR_FIRE"
+ Script: <" bonus(bAtkEle, Ele_Fire); ">
+},
+{
+ Id: 179
+ Name: "WEAPON_ATTR_WIND"
+ Script: <" bonus(bAtkEle, Ele_Wind); ">
+},
+{
+ Id: 180
+ Name: "WEAPON_ATTR_POISON"
+ Script: <" bonus(bAtkEle, Ele_Poison); ">
+},
+{
+ Id: 181
+ Name: "WEAPON_ATTR_SAINT"
+ Script: <" bonus(bAtkEle, Ele_Holy); ">
+},
+{
+ Id: 182
+ Name: "WEAPON_ATTR_DARKNESS"
+ Script: <" bonus(bAtkEle, Ele_Dark); ">
+},
+{
+ Id: 183
+ Name: "WEAPON_ATTR_TELEKINESIS"
+ Script: <" bonus(bAtkEle, Ele_Ghost); ">
+},
+{
+ Id: 184
+ Name: "WEAPON_ATTR_UNDEAD"
+ Script: <" bonus(bAtkEle, Ele_Undead); ">
+},
+{
+ Id: 185
+ Name: "WEAPON_INDESTRUCTIBLE"
+ Script: <" bonus(bUnbreakableWeapon, 1); ">
+},
+{
+ Id: 186
+ Name: "BODY_INDESTRUCTIBLE"
+ Script: <" bonus(bUnbreakableArmor, 1); ">
+}
+)
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index bb9d2b2a..3b8091ad 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -57,6 +57,7 @@ item_db: (
EquipLv: Equip required level (int, defaults to 0)
EquipLv: [min, max] (alternative syntax with min / max level)
Refine: Refineable (boolean, defaults to true)
+ DisableOptions: true/false (boolean, defaults to false !!for equipments only!!) [Smokexyz]
View: View ID (int, defaults to 0)
BindOnEquip: true/false (boolean, defaults to false)
ForceSerial: true/false (boolean, defaults to false)
diff --git a/sql-files/logs.sql b/sql-files/logs.sql
index 82c1c944..c75fc37d 100644
--- a/sql-files/logs.sql
+++ b/sql-files/logs.sql
@@ -152,6 +152,16 @@ CREATE TABLE IF NOT EXISTS `picklog` (
`card1` INT(11) NOT NULL DEFAULT '0',
`card2` INT(11) NOT NULL DEFAULT '0',
`card3` INT(11) NOT NULL DEFAULT '0',
+ `opt_idx0` smallint(5) unsigned NOT NULL default '0',
+ `opt_val0` smallint(5) unsigned NOT NULL default '0',
+ `opt_idx1` smallint(5) unsigned NOT NULL default '0',
+ `opt_val1` smallint(5) unsigned NOT NULL default '0',
+ `opt_idx2` smallint(5) unsigned NOT NULL default '0',
+ `opt_val2` smallint(5) unsigned NOT NULL default '0',
+ `opt_idx3` smallint(5) unsigned NOT NULL default '0',
+ `opt_val3` smallint(5) unsigned NOT NULL default '0',
+ `opt_idx4` smallint(5) unsigned NOT NULL default '0',
+ `opt_val4` smallint(5) unsigned NOT NULL default '0',
`unique_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
`map` VARCHAR(11) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
diff --git a/sql-files/main.sql b/sql-files/main.sql
index aa938617..3edbdbc3 100644
--- a/sql-files/main.sql
+++ b/sql-files/main.sql
@@ -28,7 +28,7 @@ CREATE TABLE IF NOT EXISTS `account_data` (
`base_drop` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '100',
`base_death` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '100',
PRIMARY KEY (`account_id`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM;
--
-- Table structure for table `acc_reg_num_db`
@@ -79,6 +79,16 @@ CREATE TABLE IF NOT EXISTS `auction` (
`card1` SMALLINT(11) NOT NULL DEFAULT '0',
`card2` SMALLINT(11) NOT NULL DEFAULT '0',
`card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0',
`unique_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`auction_id`)
) ENGINE=MyISAM;
@@ -93,7 +103,7 @@ CREATE TABLE IF NOT EXISTS `autotrade_data` (
`amount` INT(11) NOT NULL DEFAULT '0',
`price` INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`char_id`,`itemkey`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM;
--
-- Table structure for table `autotrade_merchants`
@@ -105,7 +115,7 @@ CREATE TABLE IF NOT EXISTS `autotrade_merchants` (
`sex` TINYINT(2) NOT NULL DEFAULT '0',
`title` VARCHAR(80) NOT NULL DEFAULT 'Buy From Me!',
PRIMARY KEY (`account_id`,`char_id`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM;
--
-- Table structure for table `cart_inventory`
@@ -124,6 +134,16 @@ CREATE TABLE IF NOT EXISTS `cart_inventory` (
`card1` SMALLINT(11) NOT NULL DEFAULT '0',
`card2` SMALLINT(11) NOT NULL DEFAULT '0',
`card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0',
`expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`bound` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`unique_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
@@ -169,7 +189,7 @@ CREATE TABLE IF NOT EXISTS `char` (
`hair` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0',
`hair_color` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
`clothes_color` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
- `body` SMALLINT(5) unsigned NOT NULL default '0',
+ `body` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
`weapon` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
`shield` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
`head_top` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
@@ -203,7 +223,7 @@ CREATE TABLE IF NOT EXISTS `char` (
KEY `party_id` (`party_id`),
KEY `guild_id` (`guild_id`),
KEY `online` (`online`)
-) ENGINE=MyISAM AUTO_INCREMENT=150000;
+) ENGINE=MyISAM AUTO_INCREMENT=150000;
--
-- Table structure for table `char_reg_num_db`
@@ -469,6 +489,16 @@ CREATE TABLE IF NOT EXISTS `guild_storage` (
`card1` SMALLINT(11) NOT NULL DEFAULT '0',
`card2` SMALLINT(11) NOT NULL DEFAULT '0',
`card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0',
`expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`bound` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`unique_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
@@ -507,14 +537,14 @@ CREATE TABLE IF NOT EXISTS `homunculus` (
PRIMARY KEY (`homun_id`)
) ENGINE=MyISAM;
---
+--
-- Table structure for table `interlog`
--
CREATE TABLE IF NOT EXISTS `interlog` (
`time` DATETIME NULL,
`log` VARCHAR(255) NOT NULL DEFAULT ''
-) ENGINE=MyISAM;
+) ENGINE=MyISAM;
--
-- Table structure for table `inventory`
@@ -533,6 +563,16 @@ CREATE TABLE IF NOT EXISTS `inventory` (
`card1` SMALLINT(11) NOT NULL DEFAULT '0',
`card2` SMALLINT(11) NOT NULL DEFAULT '0',
`card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0',
`expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`favorite` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`bound` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
@@ -568,7 +608,7 @@ CREATE TABLE IF NOT EXISTS `login` (
`unban_time` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`expiration_time` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`logincount` MEDIUMINT(9) UNSIGNED NOT NULL DEFAULT '0',
- `lastlogin` DATETIME NULL,
+ `lastlogin` DATETIME NULL,
`last_ip` VARCHAR(100) NOT NULL DEFAULT '',
`birthdate` DATE NULL,
`character_slots` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
@@ -576,7 +616,7 @@ CREATE TABLE IF NOT EXISTS `login` (
`pincode_change` INT(11) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`account_id`),
KEY `name` (`userid`)
-) ENGINE=MyISAM AUTO_INCREMENT=2000000;
+) ENGINE=MyISAM AUTO_INCREMENT=2000000;
-- added standard accounts for servers, VERY INSECURE!!!
-- inserted into the table called login which is above
@@ -647,6 +687,16 @@ CREATE TABLE IF NOT EXISTS `mail` (
`card1` SMALLINT(11) NOT NULL DEFAULT '0',
`card2` SMALLINT(11) NOT NULL DEFAULT '0',
`card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0',
`unique_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
@@ -830,6 +880,8 @@ INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1467934919); -- 2016-07-0
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1467935469); -- 2016-07-08--02-51.sql
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1475526420); -- 2016-10-03--20-27.sql
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1477434595); -- 2016-10-26--10-29.sql
+INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1488454834); -- 2017-03-02--11-40.sql
+INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1488744559); -- 2017-03-05--08-09.sql
--
-- Table structure for table `storage`
@@ -848,6 +900,16 @@ CREATE TABLE IF NOT EXISTS `storage` (
`card1` SMALLINT(11) NOT NULL DEFAULT '0',
`card2` SMALLINT(11) NOT NULL DEFAULT '0',
`card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0',
+ `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
+ `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0',
`expire_time` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`bound` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`unique_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
diff --git a/sql-files/upgrades/2017-03-02--11-40.sql b/sql-files/upgrades/2017-03-02--11-40.sql
new file mode 100644
index 00000000..30798b5d
--- /dev/null
+++ b/sql-files/upgrades/2017-03-02--11-40.sql
@@ -0,0 +1,93 @@
+#1488454834
+
+-- This file is part of Hercules.
+-- http://herc.ws - http://github.com/HerculesWS/Hercules
+--
+-- Copyright (C) 2015-2016 Hercules Dev Team
+--
+-- Hercules is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ALTER TABLE `auction`
+ ADD COLUMN `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `card3`,
+ ADD COLUMN `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx0`,
+ ADD COLUMN `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val0`,
+ ADD COLUMN `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx1`,
+ ADD COLUMN `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val1`,
+ ADD COLUMN `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx2`,
+ ADD COLUMN `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val2`,
+ ADD COLUMN `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx3`,
+ ADD COLUMN `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val3`,
+ ADD COLUMN `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx4`;
+
+ALTER TABLE `cart_inventory`
+ ADD COLUMN `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `card3`,
+ ADD COLUMN `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx0`,
+ ADD COLUMN `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val0`,
+ ADD COLUMN `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx1`,
+ ADD COLUMN `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val1`,
+ ADD COLUMN `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx2`,
+ ADD COLUMN `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val2`,
+ ADD COLUMN `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx3`,
+ ADD COLUMN `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val3`,
+ ADD COLUMN `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx4`;
+
+ALTER TABLE `guild_storage`
+ ADD COLUMN `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `card3`,
+ ADD COLUMN `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx0`,
+ ADD COLUMN `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val0`,
+ ADD COLUMN `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx1`,
+ ADD COLUMN `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val1`,
+ ADD COLUMN `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx2`,
+ ADD COLUMN `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val2`,
+ ADD COLUMN `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx3`,
+ ADD COLUMN `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val3`,
+ ADD COLUMN `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx4`;
+
+ALTER TABLE `inventory`
+ ADD COLUMN `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `card3`,
+ ADD COLUMN `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx0`,
+ ADD COLUMN `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val0`,
+ ADD COLUMN `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx1`,
+ ADD COLUMN `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val1`,
+ ADD COLUMN `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx2`,
+ ADD COLUMN `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val2`,
+ ADD COLUMN `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx3`,
+ ADD COLUMN `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val3`,
+ ADD COLUMN `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx4`;
+
+ALTER TABLE `mail`
+ ADD COLUMN `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `card3`,
+ ADD COLUMN `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx0`,
+ ADD COLUMN `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val0`,
+ ADD COLUMN `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx1`,
+ ADD COLUMN `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val1`,
+ ADD COLUMN `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx2`,
+ ADD COLUMN `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val2`,
+ ADD COLUMN `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx3`,
+ ADD COLUMN `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val3`,
+ ADD COLUMN `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx4`;
+
+ALTER TABLE `storage`
+ ADD COLUMN `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `card3`,
+ ADD COLUMN `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx0`,
+ ADD COLUMN `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val0`,
+ ADD COLUMN `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx1`,
+ ADD COLUMN `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val1`,
+ ADD COLUMN `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx2`,
+ ADD COLUMN `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val2`,
+ ADD COLUMN `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx3`,
+ ADD COLUMN `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val3`,
+ ADD COLUMN `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx4`;
+
+INSERT INTO `sql_updates` (`timestamp`, `ignored`) VALUES (1488454834 , 'No');
diff --git a/sql-files/upgrades/2017-03-05--08-09.sql b/sql-files/upgrades/2017-03-05--08-09.sql
new file mode 100644
index 00000000..3b5ee1a2
--- /dev/null
+++ b/sql-files/upgrades/2017-03-05--08-09.sql
@@ -0,0 +1,15 @@
+#1488744559
+
+ALTER TABLE `picklog`
+ ADD COLUMN `opt_idx0` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `card3`,
+ ADD COLUMN `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx0`,
+ ADD COLUMN `opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val0`,
+ ADD COLUMN `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx1`,
+ ADD COLUMN `opt_idx2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val1`,
+ ADD COLUMN `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx2`,
+ ADD COLUMN `opt_idx3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val2`,
+ ADD COLUMN `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx3`,
+ ADD COLUMN `opt_idx4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `opt_val3`,
+ ADD COLUMN `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0' AFTER `opt_idx4`;
+
+INSERT INTO `sql_updates` (`timestamp`, `ignored`) VALUES (1488744559 , 'No');