From 974222a8d3f189083205bf5d330de04a43226ad3 Mon Sep 17 00:00:00 2001 From: Smokexyz Date: Thu, 2 Mar 2017 19:24:48 +0800 Subject: 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) --- db/item_options.conf | 1026 ++++++++++++++++++++++++++++++++++++++++++++++++ db/pre-re/item_db.conf | 1 + db/re/item_db.conf | 1 + 3 files changed, 1028 insertions(+) create mode 100644 db/item_options.conf (limited to 'db') 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 . +//========================================================================= +//= 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 : 몬스터로부터 받는 물리 데미지 %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) -- cgit v1.2.3-60-g2f50