summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/messages.conf9
-rw-r--r--db/achievement_rank_db.conf43
-rw-r--r--db/constants.conf80
-rw-r--r--db/re/achievement_db.conf134
-rw-r--r--db/stylist_db.conf1
-rw-r--r--sql-files/main.sql83
-rw-r--r--sql-files/upgrades/2018-06-03--00-10.sql40
-rw-r--r--sql-files/upgrades/2018-06-03--17-16.sql24
-rw-r--r--sql-files/upgrades/2018-09-01--05-22.sql63
-rw-r--r--sql-files/upgrades/index.txt3
10 files changed, 451 insertions, 29 deletions
diff --git a/conf/messages.conf b/conf/messages.conf
index 54e8c077..5ba49de6 100644
--- a/conf/messages.conf
+++ b/conf/messages.conf
@@ -710,7 +710,14 @@
// @jobchange
923: You can not change to this job by command.
-//924-979 FREE
+
+// atcommand_setzone
+924: Usage: @setzone <zone name>
+925: The zone is already set to '%s'.
+926: Zone not found. Keep in mind that the names are CaSe SenSitiVe.
+927: Zone successfully changed from '%s' to '%s'.
+
+//928-979 FREE
// @kami
980: Please enter a message (usage: @kami <message>).
diff --git a/db/achievement_rank_db.conf b/db/achievement_rank_db.conf
new file mode 100644
index 00000000..e19194fa
--- /dev/null
+++ b/db/achievement_rank_db.conf
@@ -0,0 +1,43 @@
+//================= Hercules Database ==========================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ====================================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2018 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/>.
+//==============================================================================
+//= Achievement Rank Database
+//==============================================================================
+
+achievement_rank_db:
+{
+ Rank1: 18
+ Rank2: 31
+ Rank3: 49
+ Rank4: 73
+ Rank5: 135
+ Rank6: 104
+ Rank7: 140
+ Rank8: 214
+ Rank9: 305
+ Rank10: 257
+ Rank11: 300
+}
diff --git a/db/constants.conf b/db/constants.conf
index 29d308c1..c29903db 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -3848,6 +3848,86 @@ constants_db: {
HAT_EF_QSCARABA: 54
HAT_EF_FSTONE: 55
HAT_EF_MAGICCIRCLE: 56
+ HAT_EF_BRYSINGGAMEN: 57
+ HAT_EF_MAGINGIORDE: 58
+ HAT_EF_LEVEL99_RED: 59
+ HAT_EF_LEVEL99_ULTRAMARINE: 60
+ HAT_EF_LEVEL99_CYAN: 61
+ HAT_EF_LEVEL99_LIME: 62
+ HAT_EF_LEVEL99_VIOLET: 63
+ HAT_EF_LEVEL99_LILAC: 64
+ HAT_EF_LEVEL99_SUN_ORANGE: 65
+ HAT_EF_LEVEL99_DEEP_PINK: 66
+ HAT_EF_LEVEL99_BLACK: 67
+ HAT_EF_LEVEL99_WHITE: 68
+ HAT_EF_LEVEL160_RED: 69
+ HAT_EF_LEVEL160_ULTRAMARINE: 70
+ HAT_EF_LEVEL160_CYAN: 71
+ HAT_EF_LEVEL160_LIME: 72
+ HAT_EF_LEVEL160_VIOLET: 73
+ HAT_EF_LEVEL160_LILAC: 74
+ HAT_EF_LEVEL160_SUN_ORANGE: 75
+ HAT_EF_LEVEL160_DEEP_PINK: 76
+ HAT_EF_LEVEL160_BLACK: 77
+ HAT_EF_LEVEL160_WHITE: 78
+ HAT_EF_FULL_BLOOMCHERRY_TREE: 79
+ HAT_EF_C_BLESSINGS_OF_SOUL: 80
+ HAT_EF_MANYSTARS: 81
+ HAT_EF_SUBJECT_AURA_GOLD: 82
+ HAT_EF_SUBJECT_AURA_WHITE: 83
+ HAT_EF_SUBJECT_AURA_RED: 84
+ HAT_EF_C_SHINING_ANGEL_WING: 85
+ HAT_EF_MAGIC_STAR_TW: 86
+ HAT_DIGITAL_SPACE: 87
+ HAT_EF_SLEIPNIR: 88
+
+ comment__: "Achievement Types"
+ ACH_QUEST: 0
+ ACH_KILL_PC_TOTAL: 1
+ ACH_KILL_PC_JOB: 2
+ ACH_KILL_PC_JOBTYPE: 3
+ ACH_KILL_MOB_CLASS: 4
+ ACH_DAMAGE_PC_MAX: 5
+ ACH_DAMAGE_PC_TOTAL: 6
+ ACH_DAMAGE_PC_REC_MAX: 7
+ ACH_DAMAGE_PC_REC_TOTAL: 8
+ ACH_DAMAGE_MOB_MAX: 9
+ ACH_DAMAGE_MOB_TOTAL: 10
+ ACH_DAMAGE_MOB_REC_MAX: 11
+ ACH_DAMAGE_MOB_REC_TOTAL: 12
+ ACH_JOB_CHANGE: 13
+ ACH_STATUS: 14
+ ACH_STATUS_BY_JOB: 15
+ ACH_STATUS_BY_JOBTYPE: 16
+ ACH_CHATROOM_CREATE_DEAD: 17
+ ACH_CHATROOM_CREATE: 18
+ ACH_CHATROOM_MEMBERS: 19
+ ACH_FRIEND_ADD: 20
+ ACH_PARTY_CREATE: 21
+ ACH_PARTY_JOIN: 22
+ ACH_MARRY: 23
+ ACH_ADOPT_BABY: 24
+ ACH_ADOPT_PARENT: 25
+ ACH_ZENY_HOLD: 26
+ ACH_ZENY_GET_ONCE: 27
+ ACH_ZENY_GET_TOTAL: 28
+ ACH_ZENY_SPEND_ONCE: 29
+ ACH_ZENY_SPEND_TOTAL: 30
+ ACH_EQUIP_REFINE_SUCCESS: 31
+ ACH_EQUIP_REFINE_FAILURE: 32
+ ACH_EQUIP_REFINE_SUCCESS_TOTAL: 33
+ ACH_EQUIP_REFINE_FAILURE_TOTAL: 34
+ ACH_EQUIP_REFINE_SUCCESS_WLV: 35
+ ACH_EQUIP_REFINE_FAILURE_WLV: 36
+ ACH_EQUIP_REFINE_SUCCESS_ID: 37
+ ACH_EQUIP_REFINE_FAILURE_ID: 38
+ ACH_ITEM_GET_COUNT: 39
+ ACH_ITEM_GET_COUNT_ITEMTYPE: 40
+ ACH_ITEM_GET_WORTH: 41
+ ACH_ITEM_SELL_WORTH: 42
+ ACH_PET_CREATE: 43
+ ACH_ACHIEVE: 44
+ ACH_ACHIEVEMENT_RANK: 45
// for disable warning
ITMCHAIN_ORE: 1
diff --git a/db/re/achievement_db.conf b/db/re/achievement_db.conf
new file mode 100644
index 00000000..68334840
--- /dev/null
+++ b/db/re/achievement_db.conf
@@ -0,0 +1,134 @@
+//================= Hercules Database =====================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2018 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/>.
+//=========================================================================
+//= Achievement Database
+//=========================================================================
+
+achievement_db: (
+/*****************************************************************
+ * Entry Structure
+ *****************************************************************
+{
+ Id: (int) Unique ID of the achievement representing it's client-side equivalent.
+ Name: (string) Name/Title of the Achievement.
+ Type: (string) Validation type for the achievement.
+ [Type] [Validation Description] (Trigger)
+ ACH_QUEST: Specific achievement objective update (Script).
+ ACH_KILL_PC_TOTAL: (Accumulative) Total kill count. (Player kill)
+ ACH_KILL_PC_JOB: Kill a player of the specified job. (Player Kill)
+ ACH_KILL_PC_JOBTYPE: Kill a player of the specified job type. (Player Kill)
+ ACH_KILL_MOB_CLASS: Kill a particular mob class. (Mob Kill)
+ ACH_DAMAGE_PC_MAX: Maximum damage caused on a player. (Player Damage)
+ ACH_DAMAGE_PC_TOTAL: (Accumulative) Damage on players. (Player Damage)
+ ACH_DAMAGE_PC_REC_MAX: Maximum damage received by a player. (Receive Player Damage)
+ ACH_DAMAGE_PC_REC_TOTAL: (Accumulative) Damage received by players. (Receive Player Damage)
+ ACH_DAMAGE_MOB_MAX: Maximum damage caused on a monster. (Monster Damage)
+ ACH_DAMAGE_MOB_TOTAL: (Accumulative) Damage caused on monsters. (Monster Damage)
+ ACH_DAMAGE_MOB_REC_MAX: Maximum damage received by a monster. (Receive Monster Damage)
+ ACH_DAMAGE_MOB_REC_TOTAL: (Accumulative) Damage received by monsters. (Receive Monster Damage)
+ ACH_JOB_CHANGE: Change to a specific job. (Job Change)
+ ACH_STATUS: Acquire a specific amount of a particular status type. (Stat Change)
+ ACH_STATUS_BY_JOB: Acquire a specific amount of a status type as a job class. (Stat Change)
+ ACH_STATUS_BY_JOBTYPE: Acquire a specific amount of a status type as a job type. (Stat Change)
+ ACH_CHATROOM_CREATE_DEAD: (Accumulative) Create a chatroom when dead. (Chatroom Creation)
+ ACH_CHATROOM_CREATE: (Accumulative) Create a chatroom. (Chatroom Creation)
+ ACH_CHATROOM_MEMBERS: Gather 'n' members in a chatroom. (Chatroom Join)
+ ACH_FRIEND_ADD: Add a specific number of friends. (Friend Addition)
+ ACH_PARTY_CREATE: (Accumulative) Create a specific number of parties. (Party Creation)
+ ACH_PARTY_JOIN: (Accumulative) Join a specific number of parties. (Party Join)
+ ACH_MARRY: (Accumulative) Marry a specified number of times. (Marriage)
+ ACH_ADOPT_BABY: (Accumulative) Get Adopted. (Adoption)
+ ACH_ADOPT_PARENT: (Accumulative) Adopt a Baby. (Adoption)
+ ACH_ZENY_HOLD: Hold a specific amount of zeny in your inventory. (Gain Zeny)
+ ACH_ZENY_GET_ONCE: Gain a specific amount of zeny in one transaction. (Gain Zeny)
+ ACH_ZENY_GET_TOTAL: (Accumulative) Gain a specific amount of zeny in total. (Gain Zeny)
+ ACH_ZENY_SPEND_ONCE: Spend a specific amount of zeny in one transaction. (Pay Zeny)
+ ACH_ZENY_SPEND_TOTAL: (Accumulative) Spend a specific amount of zeny in total. (Pay Zeny)
+ ACH_EQUIP_REFINE_SUCCESS: Refine an item to +N. (Successful Refine)
+ ACH_EQUIP_REFINE_FAILURE: Fail to refine an item of +N refine. (Failed Refine)
+ ACH_EQUIP_REFINE_SUCCESS_TOTAL: (Accumulative) Refine an item successfully N times. (Success Refine)
+ ACH_EQUIP_REFINE_FAILURE_TOTAL: (Accumulative) Fail to refine an item N times. (Failed Refine)
+ ACH_EQUIP_REFINE_SUCCESS_WLV: Refine a Weapon of a particular Level to +N. (Success Refine)
+ ACH_EQUIP_REFINE_FAILURE_WLV: Fail to refine a Weapon of a particular level from +N. (Failed Refine)
+ ACH_EQUIP_REFINE_SUCCESS_ID: Refine a particular Item successfully to +N. (Success Refine)
+ ACH_EQUIP_REFINE_FAILURE_ID: Fail to refine a particular item successfully from +N. (Failed Refine)
+ ACH_ITEM_GET_COUNT: Acquire N amount of an item of a particular ID. (Acquire Item)
+ ACH_ITEM_GET_COUNT_ITEMTYPE: Acquire N amount of items of a particular type mask. (Acquire Item)
+ ACH_ITEM_GET_WORTH: Acquire an item of buy value N. (Acquire Item)
+ ACH_ITEM_SELL_WORTH: Sell an item of sell value N. (NPC Sell Item)
+ ACH_PET_CREATE: Successfully tame a pet of a particular mob class. (Successful Pet Tame)
+ ACH_ACHIEVE: Achieve an Achievement. (Achievement Completion)
+ ACH_ACHIEVEMENT_RANK: Achieve an Achievement Rank. (Achievement Rank Increase)
+ Objectives: { [Mandatory Field] Objectives of an achievement. Up to 10 objectives per achievement.
+ To comply with the client's order of objectives, this list must be in order.
+ *1: {
+ Description: (string) [Mandatory Field] Description of a particular objective.
+ Criteria: { This is a field for achievements whose objectives must meet
+ certain criteria before evaluating the player's progress for it.
+ MobId: (mixed) MonsterId required for an objective.
+ For types such as ACH_KILL_MOB_CLASS and ACH_PET_CREATE. Can be either int or string constant.
+ JobId: (mixed) Array or Single entry of JobIds.
+ For types - ACH_KILL_PC_JOBTYPE, ACH_JOB_CHANGE or ACH_STATUS_BY_JOBTYPE.
+ Can be either a numeric or string constant.
+ ItemId: (mixed) ItemId required for an objective.
+ For Types such as ACH_ITEM_GET_COUNT. Can be either int or string constant.
+ StatusType: (mixed) Status Type required for an objective.
+ For Types such as ACH_STATUS, ACH_STATUS_BY_JOB, ACH_STATUS_BY_JOBTYPE.
+ Types -
+ "SP_STR" - Strength
+ "SP_AGI" - Agility
+ "SP_VIT" - Vitality
+ "SP_INT" - Intelligence
+ "SP_DEX" - Dexterity
+ "SP_LUK" - Luck
+ "SP_BASELEVEL" - Base Level
+ "SP_JOBLEVEL" - Job Level
+ Can be either int or string constant.
+ ItemType: (mixed) Item type that is required for this achievement.
+ For Types such as ACH_ITEM_GET_COUNT_ITEMTYPE.
+ Can be either int, string or list.
+ Refer "Item types" Constants from constants.conf
+ WeaponLevel: (int) Weapon Level that is required for this achievement. (Eg. 0, 1, 2, 3 or 4).
+ For Types such as ACH_EQUIP_REFINE_SUCCESS_WLV and ACH_EQUIP_REFINE_FAILURE_WLV.
+ Achieve: (int) AchievementID to be achieved.
+ For Type - ACH_ACHIEVE.
+ }
+ Goal: (int) Target amount to be met for the completion of the objective. Default is 1.
+ }
+ ...
+ *10: {...}
+ }
+ Rewards: {
+ Bonus: <""> (script) Script code bonus to be given as a reward for an achievement.
+ Items: { Item rewards per achievement. With a maximum defined in mmo.h as MAX_ACHEIVEMENT_ITEM_REWARDS.
+ Apple: 1 (int) Item ID (int or string constant) : Amount (int)
+ }
+ TitleId: (int) ID of the Title (from the Title System) awarded.
+ }
+ Points: (int) Points per achievement given on it's successful completion.
+}
+ *****************************************************************/
+)
diff --git a/db/stylist_db.conf b/db/stylist_db.conf
index e857df97..193bba6c 100644
--- a/db/stylist_db.conf
+++ b/db/stylist_db.conf
@@ -40,6 +40,7 @@ stylist_db: (
Zeny: zeny (int, defaults to 0)
ItemID: ItemID (int, defaults to 0)
BoxItemID: BoxItemID (int, defaults to 0)
+ AllowDoram: true/false (boolean, defaults to false)
},
**************************************************************************/
{
diff --git a/sql-files/main.sql b/sql-files/main.sql
index d1c6364c..d918d4a3 100644
--- a/sql-files/main.sql
+++ b/sql-files/main.sql
@@ -75,10 +75,10 @@ CREATE TABLE IF NOT EXISTS `auction` (
`type` SMALLINT(6) NOT NULL DEFAULT '0',
`refine` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`attribute` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0',
- `card0` SMALLINT(11) NOT NULL DEFAULT '0',
- `card1` SMALLINT(11) NOT NULL DEFAULT '0',
- `card2` SMALLINT(11) NOT NULL DEFAULT '0',
- `card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `card0` INT(11) NOT NULL DEFAULT '0',
+ `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) NOT NULL DEFAULT '0',
`opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
@@ -118,6 +118,28 @@ CREATE TABLE IF NOT EXISTS `autotrade_merchants` (
) ENGINE=MyISAM;
--
+-- Table structure for table `char_achievements`
+--
+
+CREATE TABLE IF NOT EXISTS `char_achievements` (
+ `char_id` INT(11) UNSIGNED NOT NULL,
+ `ach_id` INT(11) UNSIGNED NOT NULL,
+ `completed_at` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `rewarded_at` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_0` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_1` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_2` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_3` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_4` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_5` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_6` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_7` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_8` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_9` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ PRIMARY KEY (`char_id`, `ach_id`)
+) ENGINE=MyISAM;
+
+--
-- Table structure for table `cart_inventory`
--
@@ -130,10 +152,10 @@ CREATE TABLE IF NOT EXISTS `cart_inventory` (
`identify` SMALLINT(6) NOT NULL DEFAULT '0',
`refine` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`attribute` TINYINT(4) NOT NULL DEFAULT '0',
- `card0` SMALLINT(11) NOT NULL DEFAULT '0',
- `card1` SMALLINT(11) NOT NULL DEFAULT '0',
- `card2` SMALLINT(11) NOT NULL DEFAULT '0',
- `card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `card0` INT(11) NOT NULL DEFAULT '0',
+ `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) NOT NULL DEFAULT '0',
`opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
@@ -221,6 +243,7 @@ CREATE TABLE IF NOT EXISTS `char` (
`hotkey_rowshift` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`attendance_count` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`attendance_timer` BIGINT(20) NULL DEFAULT '0',
+ `title_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`char_id`),
UNIQUE KEY `name_key` (`name`),
KEY `account_id` (`account_id`),
@@ -489,10 +512,10 @@ CREATE TABLE IF NOT EXISTS `guild_storage` (
`identify` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
`refine` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`attribute` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0',
- `card0` SMALLINT(11) NOT NULL DEFAULT '0',
- `card1` SMALLINT(11) NOT NULL DEFAULT '0',
- `card2` SMALLINT(11) NOT NULL DEFAULT '0',
- `card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `card0` INT(11) NOT NULL DEFAULT '0',
+ `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) NOT NULL DEFAULT '0',
`opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
@@ -564,10 +587,10 @@ CREATE TABLE IF NOT EXISTS `inventory` (
`identify` SMALLINT(6) NOT NULL DEFAULT '0',
`refine` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`attribute` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0',
- `card0` SMALLINT(11) NOT NULL DEFAULT '0',
- `card1` SMALLINT(11) NOT NULL DEFAULT '0',
- `card2` SMALLINT(11) NOT NULL DEFAULT '0',
- `card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `card0` INT(11) NOT NULL DEFAULT '0',
+ `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) NOT NULL DEFAULT '0',
`opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
@@ -688,10 +711,10 @@ CREATE TABLE IF NOT EXISTS `mail` (
`refine` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`attribute` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0',
`identify` SMALLINT(6) NOT NULL DEFAULT '0',
- `card0` SMALLINT(11) NOT NULL DEFAULT '0',
- `card1` SMALLINT(11) NOT NULL DEFAULT '0',
- `card2` SMALLINT(11) NOT NULL DEFAULT '0',
- `card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `card0` INT(11) NOT NULL DEFAULT '0',
+ `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) NOT NULL DEFAULT '0',
`opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
@@ -894,8 +917,12 @@ INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1496588700); -- 2017-06-0
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1509835214); -- 2017-11-04--10-39.sql
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1519671456); -- 2018-02-26--15-57.sql
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1520654809); -- 2018-03-10--04-06.sql
+INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1527964800); -- 2018-06-03--00-10.sql
+INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1528026381); -- 2018-06-03--17-16.sql
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1528180320); -- 2018-06-05--12-02.sql
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1532403228); -- 2018-07-24--03-23.sql
+INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1535865732); -- 2018-09-01--05-22.sql
+
--
-- Table structure for table `storage`
--
@@ -909,10 +936,10 @@ CREATE TABLE IF NOT EXISTS `storage` (
`identify` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
`refine` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`attribute` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0',
- `card0` SMALLINT(11) NOT NULL DEFAULT '0',
- `card1` SMALLINT(11) NOT NULL DEFAULT '0',
- `card2` SMALLINT(11) NOT NULL DEFAULT '0',
- `card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `card0` INT(11) NOT NULL DEFAULT '0',
+ `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) NOT NULL DEFAULT '0',
`opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
@@ -939,10 +966,10 @@ CREATE TABLE IF NOT EXISTS `rodex_items` (
`identify` SMALLINT(6) NOT NULL DEFAULT '0',
`refine` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`attribute` TINYINT(4) NOT NULL DEFAULT '0',
- `card0` SMALLINT(11) NOT NULL DEFAULT '0',
- `card1` SMALLINT(11) NOT NULL DEFAULT '0',
- `card2` SMALLINT(11) NOT NULL DEFAULT '0',
- `card3` SMALLINT(11) NOT NULL DEFAULT '0',
+ `card0` INT(11) NOT NULL DEFAULT '0',
+ `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) NOT NULL DEFAULT '0',
`opt_idx1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
diff --git a/sql-files/upgrades/2018-06-03--00-10.sql b/sql-files/upgrades/2018-06-03--00-10.sql
new file mode 100644
index 00000000..c7f6ac48
--- /dev/null
+++ b/sql-files/upgrades/2018-06-03--00-10.sql
@@ -0,0 +1,40 @@
+#1527964800
+
+-- This file is part of Hercules.
+-- http://herc.ws - http://github.com/HerculesWS/Hercules
+--
+-- Copyright (C) 2018 Hercules Dev Team
+-- Copyright (C) Smokexyz
+--
+-- 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/>.
+
+CREATE TABLE `char_achievements` (
+ `char_id` INT(11) UNSIGNED NOT NULL,
+ `ach_id` INT(11) UNSIGNED NOT NULL,
+ `completed_at` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `rewarded_at` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_0` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_1` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_2` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_3` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_4` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_5` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_6` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_7` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_8` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `obj_9` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ PRIMARY KEY (`char_id`, `ach_id`)
+) ENGINE=MyISAM;
+
+INSERT INTO `sql_updates` (`timestamp`, `ignored`) VALUES (1527964800, 'No');
diff --git a/sql-files/upgrades/2018-06-03--17-16.sql b/sql-files/upgrades/2018-06-03--17-16.sql
new file mode 100644
index 00000000..e14ca62c
--- /dev/null
+++ b/sql-files/upgrades/2018-06-03--17-16.sql
@@ -0,0 +1,24 @@
+#1528026381
+
+-- This file is part of Hercules.
+-- http://herc.ws - http://github.com/HerculesWS/Hercules
+--
+-- Copyright (C) 2018 Hercules Dev Team
+-- Copyright (C) Dastgir
+--
+-- Hercules is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ALTER TABLE `char` ADD `title_id` INT(11) UNSIGNED NOT NULL DEFAULT '0';
+
+INSERT INTO `sql_updates` (`timestamp`, `ignored`) VALUES (1528026381, 'No');
diff --git a/sql-files/upgrades/2018-09-01--05-22.sql b/sql-files/upgrades/2018-09-01--05-22.sql
new file mode 100644
index 00000000..7a834edd
--- /dev/null
+++ b/sql-files/upgrades/2018-09-01--05-22.sql
@@ -0,0 +1,63 @@
+#1535865732
+
+-- This file is part of Hercules.
+-- http://herc.ws - http://github.com/HerculesWS/Hercules
+--
+-- Copyright (C) 2018 Hercules Dev Team
+--
+-- Hercules is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ALTER TABLE `auction`
+ MODIFY `card0` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card1` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card2` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card3` INT(11) NOT NULL DEFAULT '0';
+
+ALTER TABLE `cart_inventory`
+ MODIFY `card0` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card1` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card2` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card3` INT(11) NOT NULL DEFAULT '0';
+
+ALTER TABLE `guild_storage`
+ MODIFY `card0` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card1` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card2` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card3` INT(11) NOT NULL DEFAULT '0';
+
+ALTER TABLE `inventory`
+ MODIFY `card0` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card1` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card2` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card3` INT(11) NOT NULL DEFAULT '0';
+
+ALTER TABLE `mail`
+ MODIFY `card0` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card1` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card2` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card3` INT(11) NOT NULL DEFAULT '0';
+
+ALTER TABLE `rodex_items`
+ MODIFY `card0` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card1` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card2` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card3` INT(11) NOT NULL DEFAULT '0';
+
+ALTER TABLE `storage`
+ MODIFY `card0` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card1` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card2` INT(11) NOT NULL DEFAULT '0',
+ MODIFY `card3` INT(11) NOT NULL DEFAULT '0';
+
+INSERT INTO `sql_updates` (`timestamp`, `ignored`) VALUES (1535865732, 'No');
diff --git a/sql-files/upgrades/index.txt b/sql-files/upgrades/index.txt
index 1d313a0c..041480c4 100644
--- a/sql-files/upgrades/index.txt
+++ b/sql-files/upgrades/index.txt
@@ -44,5 +44,8 @@
2017-11-04--10-39.sql
2018-02-26--15-57.sql
2018-03-10--04-06.sql
+2018-06-03--00-10.sql
+2018-06-03--17-16.sql
2018-06-05--12-02.sql
2018-07-24--03-23.sql
+2018-09-01--05-22.sql