diff --git a/zone/mob.cpp b/zone/mob.cpp index 03e7bbdaa..a6baabd1a 100644 --- a/zone/mob.cpp +++ b/zone/mob.cpp @@ -3550,7 +3550,7 @@ int32 Mob::GetItemStat(uint32 itemid, const char *identifier) if (!identifier) return 0; - uint32 stat = 0; + int32 stat = 0; std::string id = identifier; for(int i = 0; i < id.length(); ++i) @@ -3559,316 +3559,318 @@ int32 Mob::GetItemStat(uint32 itemid, const char *identifier) } if (id == "itemclass") - stat = uint32(item->ItemClass); + stat = int32(item->ItemClass); if (id == "id") - stat = uint32(item->ID); + stat = int32(item->ID); + if (id == "idfile") + stat = atoi(&item->IDFile[2]); if (id == "weight") - stat = uint32(item->Weight); + stat = int32(item->Weight); if (id == "norent") - stat = uint32(item->NoRent); + stat = int32(item->NoRent); if (id == "nodrop") - stat = uint32(item->NoDrop); + stat = int32(item->NoDrop); if (id == "size") - stat = uint32(item->Size); + stat = int32(item->Size); if (id == "slots") - stat = uint32(item->Slots); + stat = int32(item->Slots); if (id == "price") - stat = uint32(item->Price); + stat = int32(item->Price); if (id == "icon") - stat = uint32(item->Icon); + stat = int32(item->Icon); if (id == "loregroup") - stat = uint32(item->LoreGroup); + stat = int32(item->LoreGroup); if (id == "loreflag") - stat = uint32(item->LoreFlag); + stat = int32(item->LoreFlag); if (id == "pendingloreflag") - stat = uint32(item->PendingLoreFlag); + stat = int32(item->PendingLoreFlag); if (id == "artifactflag") - stat = uint32(item->ArtifactFlag); + stat = int32(item->ArtifactFlag); if (id == "summonedflag") - stat = uint32(item->SummonedFlag); + stat = int32(item->SummonedFlag); if (id == "fvnodrop") - stat = uint32(item->FVNoDrop); + stat = int32(item->FVNoDrop); if (id == "favor") - stat = uint32(item->Favor); + stat = int32(item->Favor); if (id == "guildfavor") - stat = uint32(item->GuildFavor); + stat = int32(item->GuildFavor); if (id == "pointtype") - stat = uint32(item->PointType); + stat = int32(item->PointType); if (id == "bagtype") - stat = uint32(item->BagType); + stat = int32(item->BagType); if (id == "bagslots") - stat = uint32(item->BagSlots); + stat = int32(item->BagSlots); if (id == "bagsize") - stat = uint32(item->BagSize); + stat = int32(item->BagSize); if (id == "bagwr") - stat = uint32(item->BagWR); + stat = int32(item->BagWR); if (id == "benefitflag") - stat = uint32(item->BenefitFlag); + stat = int32(item->BenefitFlag); if (id == "tradeskills") - stat = uint32(item->Tradeskills); + stat = int32(item->Tradeskills); if (id == "cr") - stat = uint32(item->CR); + stat = int32(item->CR); if (id == "dr") - stat = uint32(item->DR); + stat = int32(item->DR); if (id == "pr") - stat = uint32(item->PR); + stat = int32(item->PR); if (id == "mr") - stat = uint32(item->MR); + stat = int32(item->MR); if (id == "fr") - stat = uint32(item->FR); + stat = int32(item->FR); if (id == "astr") - stat = uint32(item->AStr); + stat = int32(item->AStr); if (id == "asta") - stat = uint32(item->ASta); + stat = int32(item->ASta); if (id == "aagi") - stat = uint32(item->AAgi); + stat = int32(item->AAgi); if (id == "adex") - stat = uint32(item->ADex); + stat = int32(item->ADex); if (id == "acha") - stat = uint32(item->ACha); + stat = int32(item->ACha); if (id == "aint") - stat = uint32(item->AInt); + stat = int32(item->AInt); if (id == "awis") - stat = uint32(item->AWis); + stat = int32(item->AWis); if (id == "hp") - stat = uint32(item->HP); + stat = int32(item->HP); if (id == "mana") - stat = uint32(item->Mana); + stat = int32(item->Mana); if (id == "ac") - stat = uint32(item->AC); + stat = int32(item->AC); if (id == "deity") - stat = uint32(item->Deity); + stat = int32(item->Deity); if (id == "skillmodvalue") - stat = uint32(item->SkillModValue); + stat = int32(item->SkillModValue); if (id == "skillmodtype") - stat = uint32(item->SkillModType); + stat = int32(item->SkillModType); if (id == "banedmgrace") - stat = uint32(item->BaneDmgRace); + stat = int32(item->BaneDmgRace); if (id == "banedmgamt") - stat = uint32(item->BaneDmgAmt); + stat = int32(item->BaneDmgAmt); if (id == "banedmgbody") - stat = uint32(item->BaneDmgBody); + stat = int32(item->BaneDmgBody); if (id == "magic") - stat = uint32(item->Magic); + stat = int32(item->Magic); if (id == "casttime_") - stat = uint32(item->CastTime_); + stat = int32(item->CastTime_); if (id == "reqlevel") - stat = uint32(item->ReqLevel); + stat = int32(item->ReqLevel); if (id == "bardtype") - stat = uint32(item->BardType); + stat = int32(item->BardType); if (id == "bardvalue") - stat = uint32(item->BardValue); + stat = int32(item->BardValue); if (id == "light") - stat = uint32(item->Light); + stat = int32(item->Light); if (id == "delay") - stat = uint32(item->Delay); + stat = int32(item->Delay); if (id == "reclevel") - stat = uint32(item->RecLevel); + stat = int32(item->RecLevel); if (id == "recskill") - stat = uint32(item->RecSkill); + stat = int32(item->RecSkill); if (id == "elemdmgtype") - stat = uint32(item->ElemDmgType); + stat = int32(item->ElemDmgType); if (id == "elemdmgamt") - stat = uint32(item->ElemDmgAmt); + stat = int32(item->ElemDmgAmt); if (id == "range") - stat = uint32(item->Range); + stat = int32(item->Range); if (id == "damage") - stat = uint32(item->Damage); + stat = int32(item->Damage); if (id == "color") - stat = uint32(item->Color); + stat = int32(item->Color); if (id == "classes") - stat = uint32(item->Classes); + stat = int32(item->Classes); if (id == "races") - stat = uint32(item->Races); + stat = int32(item->Races); if (id == "maxcharges") - stat = uint32(item->MaxCharges); + stat = int32(item->MaxCharges); if (id == "itemtype") - stat = uint32(item->ItemType); + stat = int32(item->ItemType); if (id == "material") - stat = uint32(item->Material); + stat = int32(item->Material); if (id == "casttime") - stat = uint32(item->CastTime); + stat = int32(item->CastTime); if (id == "elitematerial") - stat = uint32(item->EliteMaterial); + stat = int32(item->EliteMaterial); if (id == "procrate") - stat = uint32(item->ProcRate); + stat = int32(item->ProcRate); if (id == "combateffects") - stat = uint32(item->CombatEffects); + stat = int32(item->CombatEffects); if (id == "shielding") - stat = uint32(item->Shielding); + stat = int32(item->Shielding); if (id == "stunresist") - stat = uint32(item->StunResist); + stat = int32(item->StunResist); if (id == "strikethrough") - stat = uint32(item->StrikeThrough); + stat = int32(item->StrikeThrough); if (id == "extradmgskill") - stat = uint32(item->ExtraDmgSkill); + stat = int32(item->ExtraDmgSkill); if (id == "extradmgamt") - stat = uint32(item->ExtraDmgAmt); + stat = int32(item->ExtraDmgAmt); if (id == "spellshield") - stat = uint32(item->SpellShield); + stat = int32(item->SpellShield); if (id == "avoidance") - stat = uint32(item->Avoidance); + stat = int32(item->Avoidance); if (id == "accuracy") - stat = uint32(item->Accuracy); + stat = int32(item->Accuracy); if (id == "charmfileid") - stat = uint32(item->CharmFileID); + stat = int32(item->CharmFileID); if (id == "factionmod1") - stat = uint32(item->FactionMod1); + stat = int32(item->FactionMod1); if (id == "factionmod2") - stat = uint32(item->FactionMod2); + stat = int32(item->FactionMod2); if (id == "factionmod3") - stat = uint32(item->FactionMod3); + stat = int32(item->FactionMod3); if (id == "factionmod4") - stat = uint32(item->FactionMod4); + stat = int32(item->FactionMod4); if (id == "factionamt1") - stat = uint32(item->FactionAmt1); + stat = int32(item->FactionAmt1); if (id == "factionamt2") - stat = uint32(item->FactionAmt2); + stat = int32(item->FactionAmt2); if (id == "factionamt3") - stat = uint32(item->FactionAmt3); + stat = int32(item->FactionAmt3); if (id == "factionamt4") - stat = uint32(item->FactionAmt4); + stat = int32(item->FactionAmt4); if (id == "augtype") - stat = uint32(item->AugType); + stat = int32(item->AugType); if (id == "ldontheme") - stat = uint32(item->LDoNTheme); + stat = int32(item->LDoNTheme); if (id == "ldonprice") - stat = uint32(item->LDoNPrice); + stat = int32(item->LDoNPrice); if (id == "ldonsold") - stat = uint32(item->LDoNSold); + stat = int32(item->LDoNSold); if (id == "banedmgraceamt") - stat = uint32(item->BaneDmgRaceAmt); + stat = int32(item->BaneDmgRaceAmt); if (id == "augrestrict") - stat = uint32(item->AugRestrict); + stat = int32(item->AugRestrict); if (id == "endur") - stat = uint32(item->Endur); + stat = int32(item->Endur); if (id == "dotshielding") - stat = uint32(item->DotShielding); + stat = int32(item->DotShielding); if (id == "attack") - stat = uint32(item->Attack); + stat = int32(item->Attack); if (id == "regen") - stat = uint32(item->Regen); + stat = int32(item->Regen); if (id == "manaregen") - stat = uint32(item->ManaRegen); + stat = int32(item->ManaRegen); if (id == "enduranceregen") - stat = uint32(item->EnduranceRegen); + stat = int32(item->EnduranceRegen); if (id == "haste") - stat = uint32(item->Haste); + stat = int32(item->Haste); if (id == "damageshield") - stat = uint32(item->DamageShield); + stat = int32(item->DamageShield); if (id == "recastdelay") - stat = uint32(item->RecastDelay); + stat = int32(item->RecastDelay); if (id == "recasttype") - stat = uint32(item->RecastType); + stat = int32(item->RecastType); if (id == "augdistiller") - stat = uint32(item->AugDistiller); + stat = int32(item->AugDistiller); if (id == "attuneable") - stat = uint32(item->Attuneable); + stat = int32(item->Attuneable); if (id == "nopet") - stat = uint32(item->NoPet); + stat = int32(item->NoPet); if (id == "potionbelt") - stat = uint32(item->PotionBelt); + stat = int32(item->PotionBelt); if (id == "stackable") - stat = uint32(item->Stackable); + stat = int32(item->Stackable); if (id == "notransfer") - stat = uint32(item->NoTransfer); + stat = int32(item->NoTransfer); if (id == "questitemflag") - stat = uint32(item->QuestItemFlag); + stat = int32(item->QuestItemFlag); if (id == "stacksize") - stat = uint32(item->StackSize); + stat = int32(item->StackSize); if (id == "potionbeltslots") - stat = uint32(item->PotionBeltSlots); + stat = int32(item->PotionBeltSlots); if (id == "book") - stat = uint32(item->Book); + stat = int32(item->Book); if (id == "booktype") - stat = uint32(item->BookType); + stat = int32(item->BookType); if (id == "svcorruption") - stat = uint32(item->SVCorruption); + stat = int32(item->SVCorruption); if (id == "purity") - stat = uint32(item->Purity); + stat = int32(item->Purity); if (id == "backstabdmg") - stat = uint32(item->BackstabDmg); + stat = int32(item->BackstabDmg); if (id == "dsmitigation") - stat = uint32(item->DSMitigation); + stat = int32(item->DSMitigation); if (id == "heroicstr") - stat = uint32(item->HeroicStr); + stat = int32(item->HeroicStr); if (id == "heroicint") - stat = uint32(item->HeroicInt); + stat = int32(item->HeroicInt); if (id == "heroicwis") - stat = uint32(item->HeroicWis); + stat = int32(item->HeroicWis); if (id == "heroicagi") - stat = uint32(item->HeroicAgi); + stat = int32(item->HeroicAgi); if (id == "heroicdex") - stat = uint32(item->HeroicDex); + stat = int32(item->HeroicDex); if (id == "heroicsta") - stat = uint32(item->HeroicSta); + stat = int32(item->HeroicSta); if (id == "heroiccha") - stat = uint32(item->HeroicCha); + stat = int32(item->HeroicCha); if (id == "heroicmr") - stat = uint32(item->HeroicMR); + stat = int32(item->HeroicMR); if (id == "heroicfr") - stat = uint32(item->HeroicFR); + stat = int32(item->HeroicFR); if (id == "heroiccr") - stat = uint32(item->HeroicCR); + stat = int32(item->HeroicCR); if (id == "heroicdr") - stat = uint32(item->HeroicDR); + stat = int32(item->HeroicDR); if (id == "heroicpr") - stat = uint32(item->HeroicPR); + stat = int32(item->HeroicPR); if (id == "heroicsvcorrup") - stat = uint32(item->HeroicSVCorrup); + stat = int32(item->HeroicSVCorrup); if (id == "healamt") - stat = uint32(item->HealAmt); + stat = int32(item->HealAmt); if (id == "spelldmg") - stat = uint32(item->SpellDmg); + stat = int32(item->SpellDmg); if (id == "ldonsellbackrate") - stat = uint32(item->LDoNSellBackRate); + stat = int32(item->LDoNSellBackRate); if (id == "scriptfileid") - stat = uint32(item->ScriptFileID); + stat = int32(item->ScriptFileID); if (id == "expendablearrow") - stat = uint32(item->ExpendableArrow); + stat = int32(item->ExpendableArrow); if (id == "clairvoyance") - stat = uint32(item->Clairvoyance); + stat = int32(item->Clairvoyance); // Begin Effects if (id == "clickeffect") - stat = uint32(item->Click.Effect); + stat = int32(item->Click.Effect); if (id == "clicktype") - stat = uint32(item->Click.Type); + stat = int32(item->Click.Type); if (id == "clicklevel") - stat = uint32(item->Click.Level); + stat = int32(item->Click.Level); if (id == "clicklevel2") - stat = uint32(item->Click.Level2); + stat = int32(item->Click.Level2); if (id == "proceffect") - stat = uint32(item->Proc.Effect); + stat = int32(item->Proc.Effect); if (id == "proctype") - stat = uint32(item->Proc.Type); + stat = int32(item->Proc.Type); if (id == "proclevel") - stat = uint32(item->Proc.Level); + stat = int32(item->Proc.Level); if (id == "proclevel2") - stat = uint32(item->Proc.Level2); + stat = int32(item->Proc.Level2); if (id == "worneffect") - stat = uint32(item->Worn.Effect); + stat = int32(item->Worn.Effect); if (id == "worntype") - stat = uint32(item->Worn.Type); + stat = int32(item->Worn.Type); if (id == "wornlevel") - stat = uint32(item->Worn.Level); + stat = int32(item->Worn.Level); if (id == "wornlevel2") - stat = uint32(item->Worn.Level2); + stat = int32(item->Worn.Level2); if (id == "focuseffect") - stat = uint32(item->Focus.Effect); + stat = int32(item->Focus.Effect); if (id == "focustype") - stat = uint32(item->Focus.Type); + stat = int32(item->Focus.Type); if (id == "focuslevel") - stat = uint32(item->Focus.Level); + stat = int32(item->Focus.Level); if (id == "focuslevel2") - stat = uint32(item->Focus.Level2); + stat = int32(item->Focus.Level2); if (id == "scrolleffect") - stat = uint32(item->Scroll.Effect); + stat = int32(item->Scroll.Effect); if (id == "scrolltype") - stat = uint32(item->Scroll.Type); + stat = int32(item->Scroll.Type); if (id == "scrolllevel") - stat = uint32(item->Scroll.Level); + stat = int32(item->Scroll.Level); if (id == "scrolllevel2") - stat = uint32(item->Scroll.Level2); + stat = int32(item->Scroll.Level2); safe_delete(inst); return stat;