diff --git a/changelog.txt b/changelog.txt index 1f9930ffa..ed7e134cf 100644 --- a/changelog.txt +++ b/changelog.txt @@ -4,6 +4,7 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) == 11/14/2014 == Secrets: Identified object size and solidtype as flags. Exported them as functions to Perl. demonstar55: Don't use the hack for charms that doesn't work on RoF +demonstar55: UF too == 11/13/2014 == Kayen: Implemented target type (44) 'Beams' (which projects an AE infront of caster with a specified length and width). diff --git a/common/patches/underfoot.cpp b/common/patches/underfoot.cpp index 78bdb5f2e..a0cd76114 100644 --- a/common/patches/underfoot.cpp +++ b/common/patches/underfoot.cpp @@ -3609,7 +3609,7 @@ namespace Underfoot std::stringstream ss(std::stringstream::in | std::stringstream::out | std::stringstream::binary); - const Item_Struct *item = inst->GetItem(); + const Item_Struct *item = inst->GetUnscaledItem(); //_log(NET__ERROR, "Serialize called for: %s", item->Name); Underfoot::structs::ItemSerializationHeader hdr; hdr.stacksize = stackable ? charges : 1; @@ -3620,7 +3620,7 @@ namespace Underfoot hdr.slot = (merchant_slot == 0) ? slot_id : merchant_slot; hdr.price = inst->GetPrice(); hdr.merchant_slot = (merchant_slot == 0) ? 1 : inst->GetMerchantCount(); - hdr.unknown020 = 0; + hdr.scaled_value = inst->IsScaling() ? inst->GetExp() / 100 : 0; hdr.instance_id = (merchant_slot == 0) ? inst->GetSerialNumber() : merchant_slot; hdr.unknown028 = 0; hdr.last_cast_time = ((item->RecastDelay > 1) ? 1212693140 : 0); @@ -3631,7 +3631,7 @@ namespace Underfoot hdr.unknown052 = 0; hdr.isEvolving = item->EvolvingLevel > 0 ? 1 : 0; ss.write((const char*)&hdr, sizeof(Underfoot::structs::ItemSerializationHeader)); - + if (item->EvolvingLevel > 0) { Underfoot::structs::EvolvingItem evotop; evotop.unknown001 = 0; @@ -3655,7 +3655,7 @@ namespace Underfoot else { ss.write((const char*)&null_term, sizeof(uint8)); //no idfile } - + Underfoot::structs::ItemSerializationHeaderFinish hdrf; hdrf.ornamentIcon = ornaIcon; hdrf.unknown060 = 0; //This is Always 0.. or it breaks shit.. @@ -3770,6 +3770,7 @@ namespace Underfoot ibs.SpellShield = item->SpellShield; ibs.Avoidance = item->Avoidance; ibs.Accuracy = item->Accuracy; + ibs.CharmFileID = item->CharmFileID; ibs.FactionAmt1 = item->FactionAmt1; ibs.FactionMod1 = item->FactionMod1; ibs.FactionAmt2 = item->FactionAmt2; diff --git a/common/patches/underfoot_structs.h b/common/patches/underfoot_structs.h index bdd1b3a99..86f712d24 100644 --- a/common/patches/underfoot_structs.h +++ b/common/patches/underfoot_structs.h @@ -4010,7 +4010,7 @@ struct ItemSerializationHeader /*008*/ uint32 slot; /*012*/ uint32 price; /*016*/ uint32 merchant_slot; //1 if not a merchant item - /*020*/ uint32 unknown020; //0 + /*020*/ uint32 scaled_value; //0 /*024*/ uint32 instance_id; //unique instance id if not merchant item, else is merchant slot /*028*/ uint32 unknown028; //0 /*032*/ uint32 last_cast_time; // Unix Time from PP of last cast for this recast type if recast delay > 0