summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorSmokexyz <sagunkho@hotmail.com>2017-03-02 19:24:48 +0800
committerSmokexyz <sagunkho@hotmail.com>2017-04-04 13:38:16 +0800
commit974222a8d3f189083205bf5d330de04a43226ad3 (patch)
treeb78280b9dad90616196ee37c3992c3e46962b906 /db
parent20145c61053479b9acd8ed50c75a80c2a861e349 (diff)
downloadhercules-974222a8d3f189083205bf5d330de04a43226ad3.tar.gz
hercules-974222a8d3f189083205bf5d330de04a43226ad3.tar.bz2
hercules-974222a8d3f189083205bf5d330de04a43226ad3.tar.xz
hercules-974222a8d3f189083205bf5d330de04a43226ad3.zip
Implementation of Item Options System.
Allows the infusing of equipments with bonus item options. This feature is constrained to clients of packet versions greater than or equal to `20150226`. Item Options and their effects are defined server-side in `db/item_options.conf` and client side in `data/luafiles514/lua files/datainfo/addrandomoptionnametable.lub` The ID of the option must tally with the correct index of the description provided in the client side lua file to avoid bugs. IT_OPT_* keys and MAX_ITEM_OPTIONS macro are also exported from the source as constants. An additional flag `disable_options` has been added to sql, and as `DisableOptions: true/false (boolean, defaults to false !!for equipments only!!)` to item_db.conf files. Script commands documentation is also included. SQL file updates are included. Credits: [Smokexyz](https://github.com/Smokexyz) Style and Script Fixes by [Asheraf](https://github.com/Asheraf) Initial design Idea by [secretdataz](https://github.com/secretdataz)
Diffstat (limited to 'db')
-rw-r--r--db/item_options.conf1026
-rw-r--r--db/pre-re/item_db.conf1
-rw-r--r--db/re/item_db.conf1
3 files changed, 1028 insertions, 0 deletions
diff --git a/db/item_options.conf b/db/item_options.conf
new file mode 100644
index 000000000..fb0efa170
--- /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/pre-re/item_db.conf b/db/pre-re/item_db.conf
index ed400e270..a681d5753 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -86,6 +86,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/db/re/item_db.conf b/db/re/item_db.conf
index 67617bec9..f813bdbfa 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -86,6 +86,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)