mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
First step into implementing evolving items, added fields to database that were missing.
This commit is contained in:
parent
dfc5699403
commit
8133f5312f
@ -1,5 +1,12 @@
|
|||||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
== 12/21/2015 ==
|
||||||
|
Natedog: Updated item table fields and added a few missing fields for evolving items
|
||||||
|
-DO NOT implement Heirloom items till the inventory code is fixed to allow placing NO DROP
|
||||||
|
items in your shared bank. (but item field located on items table)
|
||||||
|
-NYI - SkillModMax: Max skill point modification from the percent mods. EX:
|
||||||
|
100% 2HSlashing (Max 50) - can only increase 2hslash by 50 MAX! (item field located though)
|
||||||
|
|
||||||
== 12/19/2015 ==
|
== 12/19/2015 ==
|
||||||
Kinglykrab: Added many methods to Perl and Lua, list below:
|
Kinglykrab: Added many methods to Perl and Lua, list below:
|
||||||
- SeeInvisible()
|
- SeeInvisible()
|
||||||
|
|||||||
@ -41,6 +41,7 @@ F(ac)
|
|||||||
F(deity)
|
F(deity)
|
||||||
F(skillmodvalue)
|
F(skillmodvalue)
|
||||||
F(UNK033)
|
F(UNK033)
|
||||||
|
F(skillmodmax)
|
||||||
F(skillmodtype)
|
F(skillmodtype)
|
||||||
F(banedmgrace)
|
F(banedmgrace)
|
||||||
F(banedmgamt)
|
F(banedmgamt)
|
||||||
@ -172,7 +173,10 @@ F(bardlevel)
|
|||||||
F(questitemflag)
|
F(questitemflag)
|
||||||
F(svcorruption)
|
F(svcorruption)
|
||||||
F(purity)
|
F(purity)
|
||||||
|
F(evoitem)
|
||||||
|
F(evoid)
|
||||||
F(evolvinglevel)
|
F(evolvinglevel)
|
||||||
|
F(evomax)
|
||||||
F(backstabdmg)
|
F(backstabdmg)
|
||||||
F(dsmitigation)
|
F(dsmitigation)
|
||||||
F(heroic_str)
|
F(heroic_str)
|
||||||
|
|||||||
@ -130,6 +130,7 @@ struct Item_Struct {
|
|||||||
uint32 Deity; // Bitmask of Deities that can equip this item
|
uint32 Deity; // Bitmask of Deities that can equip this item
|
||||||
//uint32 Unk033
|
//uint32 Unk033
|
||||||
int32 SkillModValue; // % Mod to skill specified in SkillModType
|
int32 SkillModValue; // % Mod to skill specified in SkillModType
|
||||||
|
int32 SkillModMax; // Max skill point modification
|
||||||
uint32 SkillModType; // Type of skill for SkillModValue to apply to
|
uint32 SkillModType; // Type of skill for SkillModValue to apply to
|
||||||
uint32 BaneDmgRace; // Bane Damage Race
|
uint32 BaneDmgRace; // Bane Damage Race
|
||||||
int8 BaneDmgAmt; // Bane Damage Body Amount
|
int8 BaneDmgAmt; // Bane Damage Body Amount
|
||||||
@ -218,7 +219,10 @@ struct Item_Struct {
|
|||||||
// Begin SoF Fields
|
// Begin SoF Fields
|
||||||
int32 SVCorruption;
|
int32 SVCorruption;
|
||||||
uint32 Purity;
|
uint32 Purity;
|
||||||
|
uint8 EvolvingItem;
|
||||||
|
uint32 EvolvingID;
|
||||||
uint8 EvolvingLevel;
|
uint8 EvolvingLevel;
|
||||||
|
uint8 EvolvingMax;
|
||||||
uint32 BackstabDmg;
|
uint32 BackstabDmg;
|
||||||
uint32 DSMitigation;
|
uint32 DSMitigation;
|
||||||
int32 HeroicStr;
|
int32 HeroicStr;
|
||||||
|
|||||||
@ -5231,19 +5231,19 @@ namespace RoF
|
|||||||
hdr.unknown044 = 0;
|
hdr.unknown044 = 0;
|
||||||
hdr.unknown048 = 0;
|
hdr.unknown048 = 0;
|
||||||
hdr.unknown052 = 0;
|
hdr.unknown052 = 0;
|
||||||
hdr.isEvolving = item->EvolvingLevel > 0 ? 1 : 0;
|
hdr.isEvolving = item->EvolvingItem;
|
||||||
ss.write((const char*)&hdr, sizeof(RoF::structs::ItemSerializationHeader));
|
ss.write((const char*)&hdr, sizeof(RoF::structs::ItemSerializationHeader));
|
||||||
|
|
||||||
if (item->EvolvingLevel > 0) {
|
if (item->EvolvingItem > 0) {
|
||||||
RoF::structs::EvolvingItem evotop;
|
RoF::structs::EvolvingItem evotop;
|
||||||
evotop.unknown001 = 0;
|
evotop.unknown001 = 0;
|
||||||
evotop.unknown002 = 0;
|
evotop.unknown002 = 0;
|
||||||
evotop.unknown003 = 0;
|
evotop.unknown003 = 0;
|
||||||
evotop.unknown004 = 0;
|
evotop.unknown004 = 0;
|
||||||
evotop.evoLevel = item->EvolvingLevel;
|
evotop.evoLevel = item->EvolvingLevel;
|
||||||
evotop.progress = 95.512;
|
evotop.progress = 0;
|
||||||
evotop.Activated = 1;
|
evotop.Activated = 1;
|
||||||
evotop.evomaxlevel = 7;
|
evotop.evomaxlevel = item->EvolvingMax;
|
||||||
ss.write((const char*)&evotop, sizeof(RoF::structs::EvolvingItem));
|
ss.write((const char*)&evotop, sizeof(RoF::structs::EvolvingItem));
|
||||||
}
|
}
|
||||||
//ORNAMENT IDFILE / ICON
|
//ORNAMENT IDFILE / ICON
|
||||||
@ -5353,7 +5353,7 @@ namespace RoF
|
|||||||
ibs.Races = item->Races;
|
ibs.Races = item->Races;
|
||||||
ibs.Deity = item->Deity;
|
ibs.Deity = item->Deity;
|
||||||
ibs.SkillModValue = item->SkillModValue;
|
ibs.SkillModValue = item->SkillModValue;
|
||||||
ibs.SkillModMax = 0xffffffff;
|
ibs.SkillModMax = item->SkillModMax;
|
||||||
ibs.SkillModType = (int8)(item->SkillModType);
|
ibs.SkillModType = (int8)(item->SkillModType);
|
||||||
ibs.SkillModExtra = 0;
|
ibs.SkillModExtra = 0;
|
||||||
ibs.BaneDmgRace = item->BaneDmgRace;
|
ibs.BaneDmgRace = item->BaneDmgRace;
|
||||||
|
|||||||
@ -5432,19 +5432,19 @@ namespace RoF2
|
|||||||
hdr.unknown044 = 0;
|
hdr.unknown044 = 0;
|
||||||
hdr.unknown048 = 0;
|
hdr.unknown048 = 0;
|
||||||
hdr.unknown052 = 0;
|
hdr.unknown052 = 0;
|
||||||
hdr.isEvolving = item->EvolvingLevel > 0 ? 1 : 0;
|
hdr.isEvolving = item->EvolvingItem;
|
||||||
ss.write((const char*)&hdr, sizeof(RoF2::structs::ItemSerializationHeader));
|
ss.write((const char*)&hdr, sizeof(RoF2::structs::ItemSerializationHeader));
|
||||||
|
|
||||||
if (item->EvolvingLevel > 0) {
|
if (item->EvolvingItem > 0) {
|
||||||
RoF2::structs::EvolvingItem evotop;
|
RoF2::structs::EvolvingItem evotop;
|
||||||
evotop.unknown001 = 0;
|
evotop.unknown001 = 0;
|
||||||
evotop.unknown002 = 0;
|
evotop.unknown002 = 0;
|
||||||
evotop.unknown003 = 0;
|
evotop.unknown003 = 0;
|
||||||
evotop.unknown004 = 0;
|
evotop.unknown004 = 0;
|
||||||
evotop.evoLevel = item->EvolvingLevel;
|
evotop.evoLevel = item->EvolvingLevel;
|
||||||
evotop.progress = 95.512;
|
evotop.progress = 0;
|
||||||
evotop.Activated = 1;
|
evotop.Activated = 1;
|
||||||
evotop.evomaxlevel = 7;
|
evotop.evomaxlevel = item->EvolvingMax;
|
||||||
ss.write((const char*)&evotop, sizeof(RoF2::structs::EvolvingItem));
|
ss.write((const char*)&evotop, sizeof(RoF2::structs::EvolvingItem));
|
||||||
}
|
}
|
||||||
//ORNAMENT IDFILE / ICON
|
//ORNAMENT IDFILE / ICON
|
||||||
@ -5554,7 +5554,7 @@ namespace RoF2
|
|||||||
ibs.Races = item->Races;
|
ibs.Races = item->Races;
|
||||||
ibs.Deity = item->Deity;
|
ibs.Deity = item->Deity;
|
||||||
ibs.SkillModValue = item->SkillModValue;
|
ibs.SkillModValue = item->SkillModValue;
|
||||||
ibs.SkillModMax = 0xffffffff;
|
ibs.SkillModMax = item->SkillModMax;
|
||||||
ibs.SkillModType = (int8)(item->SkillModType);
|
ibs.SkillModType = (int8)(item->SkillModType);
|
||||||
ibs.SkillModExtra = 0;
|
ibs.SkillModExtra = 0;
|
||||||
ibs.BaneDmgRace = item->BaneDmgRace;
|
ibs.BaneDmgRace = item->BaneDmgRace;
|
||||||
|
|||||||
@ -3835,19 +3835,19 @@ namespace UF
|
|||||||
hdr.unknown044 = 0;
|
hdr.unknown044 = 0;
|
||||||
hdr.unknown048 = 0;
|
hdr.unknown048 = 0;
|
||||||
hdr.unknown052 = 0;
|
hdr.unknown052 = 0;
|
||||||
hdr.isEvolving = item->EvolvingLevel > 0 ? 1 : 0;
|
hdr.isEvolving = item->EvolvingItem;
|
||||||
ss.write((const char*)&hdr, sizeof(UF::structs::ItemSerializationHeader));
|
ss.write((const char*)&hdr, sizeof(UF::structs::ItemSerializationHeader));
|
||||||
|
|
||||||
if (item->EvolvingLevel > 0) {
|
if (item->EvolvingItem > 0) {
|
||||||
UF::structs::EvolvingItem evotop;
|
UF::structs::EvolvingItem evotop;
|
||||||
evotop.unknown001 = 0;
|
evotop.unknown001 = 0;
|
||||||
evotop.unknown002 = 0;
|
evotop.unknown002 = 0;
|
||||||
evotop.unknown003 = 0;
|
evotop.unknown003 = 0;
|
||||||
evotop.unknown004 = 0;
|
evotop.unknown004 = 0;
|
||||||
evotop.evoLevel = item->EvolvingLevel;
|
evotop.evoLevel = item->EvolvingLevel;
|
||||||
evotop.progress = 95.512;
|
evotop.progress = 0;
|
||||||
evotop.Activated = 1;
|
evotop.Activated = 1;
|
||||||
evotop.evomaxlevel = 7;
|
evotop.evomaxlevel = item->EvolvingMax;
|
||||||
ss.write((const char*)&evotop, sizeof(UF::structs::EvolvingItem));
|
ss.write((const char*)&evotop, sizeof(UF::structs::EvolvingItem));
|
||||||
}
|
}
|
||||||
//ORNAMENT IDFILE / ICON -
|
//ORNAMENT IDFILE / ICON -
|
||||||
@ -3947,7 +3947,7 @@ namespace UF
|
|||||||
ibs.Races = item->Races;
|
ibs.Races = item->Races;
|
||||||
ibs.Deity = item->Deity;
|
ibs.Deity = item->Deity;
|
||||||
ibs.SkillModValue = item->SkillModValue;
|
ibs.SkillModValue = item->SkillModValue;
|
||||||
ibs.unknown5 = 0;
|
ibs.SkillModMax = item->SkillModMax;
|
||||||
ibs.SkillModType = item->SkillModType;
|
ibs.SkillModType = item->SkillModType;
|
||||||
ibs.BaneDmgRace = item->BaneDmgRace;
|
ibs.BaneDmgRace = item->BaneDmgRace;
|
||||||
ibs.BaneDmgBody = item->BaneDmgBody;
|
ibs.BaneDmgBody = item->BaneDmgBody;
|
||||||
|
|||||||
@ -4103,7 +4103,7 @@ struct ItemBodyStruct
|
|||||||
uint32 Races;
|
uint32 Races;
|
||||||
uint32 Deity;
|
uint32 Deity;
|
||||||
int32 SkillModValue;
|
int32 SkillModValue;
|
||||||
uint32 unknown5;
|
uint32 SkillModMax;
|
||||||
uint32 SkillModType;
|
uint32 SkillModType;
|
||||||
uint32 BaneDmgRace;
|
uint32 BaneDmgRace;
|
||||||
uint32 BaneDmgBody;
|
uint32 BaneDmgBody;
|
||||||
|
|||||||
@ -878,7 +878,7 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
item.AC = (int32)atoul(row[ItemField::ac]);
|
item.AC = (int32)atoul(row[ItemField::ac]);
|
||||||
item.Deity = (uint32)atoul(row[ItemField::deity]);
|
item.Deity = (uint32)atoul(row[ItemField::deity]);
|
||||||
item.SkillModValue = (int32)atoul(row[ItemField::skillmodvalue]);
|
item.SkillModValue = (int32)atoul(row[ItemField::skillmodvalue]);
|
||||||
|
item.SkillModMax = (int32)atoul(row[ItemField::skillmodmax]);
|
||||||
item.SkillModType = (uint32)atoul(row[ItemField::skillmodtype]);
|
item.SkillModType = (uint32)atoul(row[ItemField::skillmodtype]);
|
||||||
item.BaneDmgRace = (uint32)atoul(row[ItemField::banedmgrace]);
|
item.BaneDmgRace = (uint32)atoul(row[ItemField::banedmgrace]);
|
||||||
item.BaneDmgAmt = (int8)atoi(row[ItemField::banedmgamt]);
|
item.BaneDmgAmt = (int8)atoi(row[ItemField::banedmgamt]);
|
||||||
@ -1020,7 +1020,10 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
item.QuestItemFlag = (atoi(row[ItemField::questitemflag])==0) ? false : true;
|
item.QuestItemFlag = (atoi(row[ItemField::questitemflag])==0) ? false : true;
|
||||||
item.SVCorruption = (int32)atoi(row[ItemField::svcorruption]);
|
item.SVCorruption = (int32)atoi(row[ItemField::svcorruption]);
|
||||||
item.Purity = (uint32)atoul(row[ItemField::purity]);
|
item.Purity = (uint32)atoul(row[ItemField::purity]);
|
||||||
|
item.EvolvingItem = (uint8)atoul(row[ItemField::evoitem]);
|
||||||
|
item.EvolvingID = (uint8)atoul(row[ItemField::evoid]);
|
||||||
item.EvolvingLevel = (uint8)atoul(row[ItemField::evolvinglevel]);
|
item.EvolvingLevel = (uint8)atoul(row[ItemField::evolvinglevel]);
|
||||||
|
item.EvolvingMax = (uint8)atoul(row[ItemField::evomax]);
|
||||||
item.BackstabDmg = (uint32)atoul(row[ItemField::backstabdmg]);
|
item.BackstabDmg = (uint32)atoul(row[ItemField::backstabdmg]);
|
||||||
item.DSMitigation = (uint32)atoul(row[ItemField::dsmitigation]);
|
item.DSMitigation = (uint32)atoul(row[ItemField::dsmitigation]);
|
||||||
item.HeroicStr = (int32)atoi(row[ItemField::heroic_str]);
|
item.HeroicStr = (int32)atoi(row[ItemField::heroic_str]);
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
Manifest: https://github.com/EQEmu/Server/blob/master/utils/sql/db_update_manifest.txt
|
Manifest: https://github.com/EQEmu/Server/blob/master/utils/sql/db_update_manifest.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define CURRENT_BINARY_DATABASE_VERSION 9092
|
#define CURRENT_BINARY_DATABASE_VERSION 9093
|
||||||
#ifdef BOTS
|
#ifdef BOTS
|
||||||
#define CURRENT_BINARY_BOTS_DATABASE_VERSION 9000
|
#define CURRENT_BINARY_BOTS_DATABASE_VERSION 9000
|
||||||
#else
|
#else
|
||||||
|
|||||||
@ -346,6 +346,7 @@
|
|||||||
9090|2015_12_01_spell_scribe_restriction_rule.sql|SELECT `rule_name` FROM `rule_values` WHERE `rule_name` LIKE 'Character:RestrictSpellScribing'|empty|
|
9090|2015_12_01_spell_scribe_restriction_rule.sql|SELECT `rule_name` FROM `rule_values` WHERE `rule_name` LIKE 'Character:RestrictSpellScribing'|empty|
|
||||||
9091|2015_12_07_command_settings.sql|SHOW TABLES LIKE 'command_settings'|empty|
|
9091|2015_12_07_command_settings.sql|SHOW TABLES LIKE 'command_settings'|empty|
|
||||||
9092|2015_12_17_eqtime.sql|SHOW TABLES LIKE 'eqtime'|empty|
|
9092|2015_12_17_eqtime.sql|SHOW TABLES LIKE 'eqtime'|empty|
|
||||||
|
9093|2015_12_21_items_updates_evoitem.sql|SHOW COLUMNS FROM `items` LIKE 'evoitem'|empty|
|
||||||
|
|
||||||
# Upgrade conditions:
|
# Upgrade conditions:
|
||||||
# This won't be needed after this system is implemented, but it is used database that are not
|
# This won't be needed after this system is implemented, but it is used database that are not
|
||||||
|
|||||||
@ -0,0 +1,8 @@
|
|||||||
|
ALTER TABLE `items`
|
||||||
|
ADD COLUMN `evoitem` INT(11) NOT NULL DEFAULT '0' AFTER `purity`,
|
||||||
|
ADD COLUMN `evoid` INT(11) NOT NULL DEFAULT '0' AFTER `evoitem`,
|
||||||
|
ADD COLUMN `evomax` INT(11) NOT NULL DEFAULT '0' AFTER `evolvinglevel`,
|
||||||
|
CHANGE `UNK038` `skillmodmax` INT(11) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `UNK222` `heirloom` INT(11) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `UNK235` `placeable` INT(11) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `UNK242` `epicitem` INT(11) NOT NULL DEFAULT '0';
|
||||||
Loading…
x
Reference in New Issue
Block a user