From 0c0d6275af4c6afb0d3963a6f60764e75a0d3fbc Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 11 Apr 2017 19:00:03 +0300 Subject: Update to latest hercules. Add item options db. some new fields in conf. --- conf/map/battle/items.conf | 4 + conf/map/battle/monster.conf | 6 + db/item_options.conf | 1026 ++++++++++++++++++++++++++++++ db/re/item_db.conf | 1 + sql-files/logs.sql | 10 + sql-files/main.sql | 80 ++- sql-files/upgrades/2017-03-02--11-40.sql | 93 +++ sql-files/upgrades/2017-03-05--08-09.sql | 15 + 8 files changed, 1226 insertions(+), 9 deletions(-) create mode 100644 db/item_options.conf create mode 100644 sql-files/upgrades/2017-03-02--11-40.sql create mode 100644 sql-files/upgrades/2017-03-05--08-09.sql 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 . +//========================================================================= +//= 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/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 . + +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'); -- cgit v1.2.3-60-g2f50