Update ItemQuerySingleResponseOpcode to 3.3.3a.

This commit is contained in:
BThallid 2010-05-06 09:47:30 -05:00 committed by shlainn
parent f9bf453483
commit cbd864f65c
4 changed files with 33 additions and 23 deletions

View File

@ -780,7 +780,8 @@ DefReturnResult DefScriptPackage::SCGetItemProtoValue(CmdSet& Set)
else if(t=="lockid") r.ret=toString(proto->LockID); else if(t=="lockid") r.ret=toString(proto->LockID);
else if(t=="material") r.ret=toString(proto->Material); else if(t=="material") r.ret=toString(proto->Material);
else if(t=="sheath") r.ret=toString(proto->Sheath); else if(t=="sheath") r.ret=toString(proto->Sheath);
else if(t=="extra") r.ret=toString(proto->Extra); else if(t=="randomprop") r.ret=toString(proto->RandomProperty);
else if(t=="randomsuffix") r.ret=toString(proto->RandomSuffix);
else if(t=="block") r.ret=toString(proto->Block); else if(t=="block") r.ret=toString(proto->Block);
else if(t=="itemset") r.ret=toString(proto->ItemSet); else if(t=="itemset") r.ret=toString(proto->ItemSet);
else if(t=="maxdur") r.ret=toString(proto->MaxDurability); else if(t=="maxdur") r.ret=toString(proto->MaxDurability);

View File

@ -180,6 +180,7 @@ void ItemProtoCache_InsertDataToSession(WorldSession *session)
buf >> proto->DisplayInfoID; buf >> proto->DisplayInfoID;
buf >> proto->Quality; buf >> proto->Quality;
buf >> proto->Flags; buf >> proto->Flags;
buf >> proto->Faction;
buf >> proto->BuyPrice; buf >> proto->BuyPrice;
buf >> proto->SellPrice; buf >> proto->SellPrice;
buf >> proto->InventoryType; buf >> proto->InventoryType;
@ -240,8 +241,8 @@ void ItemProtoCache_InsertDataToSession(WorldSession *session)
buf >> proto->LockID; buf >> proto->LockID;
buf >> proto->Material; buf >> proto->Material;
buf >> proto->Sheath; buf >> proto->Sheath;
buf >> proto->Extra; buf >> proto->RandomProperty;
buf >> proto->Unk1; // added in 2.0.3 buf >> proto->RandomSuffix; // added in 2.0.3
buf >> proto->Block; buf >> proto->Block;
buf >> proto->ItemSet; buf >> proto->ItemSet;
buf >> proto->MaxDurability; buf >> proto->MaxDurability;
@ -256,8 +257,6 @@ void ItemProtoCache_InsertDataToSession(WorldSession *session)
} }
buf >> proto->socketBonus; buf >> proto->socketBonus;
buf >> proto->GemProperties; buf >> proto->GemProperties;
buf >> proto->ExtendedCost;
buf >> proto->RequiredArenaRank;
buf >> proto->RequiredDisenchantSkill; buf >> proto->RequiredDisenchantSkill;
buf >> proto->ArmorDamageModifier; buf >> proto->ArmorDamageModifier;
buf >> proto->Duration; buf >> proto->Duration;
@ -315,6 +314,7 @@ void ItemProtoCache_WriteDataToCache(WorldSession *session)
buf << proto->DisplayInfoID; buf << proto->DisplayInfoID;
buf << proto->Quality; buf << proto->Quality;
buf << proto->Flags; buf << proto->Flags;
buf << proto->Faction;
buf << proto->BuyPrice; buf << proto->BuyPrice;
buf << proto->SellPrice; buf << proto->SellPrice;
buf << proto->InventoryType; buf << proto->InventoryType;
@ -375,8 +375,8 @@ void ItemProtoCache_WriteDataToCache(WorldSession *session)
buf << proto->LockID; buf << proto->LockID;
buf << proto->Material; buf << proto->Material;
buf << proto->Sheath; buf << proto->Sheath;
buf << proto->Extra; buf << proto->RandomProperty;
buf << proto->Unk1; // added in 2.0.3 buf << proto->RandomSuffix; // added in 2.0.3
buf << proto->Block; buf << proto->Block;
buf << proto->ItemSet; buf << proto->ItemSet;
buf << proto->MaxDurability; buf << proto->MaxDurability;
@ -391,8 +391,6 @@ void ItemProtoCache_WriteDataToCache(WorldSession *session)
} }
buf << proto->socketBonus; buf << proto->socketBonus;
buf << proto->GemProperties; buf << proto->GemProperties;
buf << proto->ExtendedCost;
buf << proto->RequiredArenaRank;
buf << proto->RequiredDisenchantSkill; buf << proto->RequiredDisenchantSkill;
buf << proto->ArmorDamageModifier; buf << proto->ArmorDamageModifier;
buf << proto->Duration; buf << proto->Duration;

View File

@ -8,6 +8,7 @@ void WorldSession::_HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket)
{ {
uint32 ItemID; uint32 ItemID;
uint32 unk; uint32 unk;
uint8 unk8;
std::string s; std::string s;
recvPacket >> ItemID; recvPacket >> ItemID;
@ -19,10 +20,13 @@ void WorldSession::_HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket)
recvPacket >> proto->SubClass; recvPacket >> proto->SubClass;
recvPacket >> unk; // dont need that value? recvPacket >> unk; // dont need that value?
recvPacket >> proto->Name; recvPacket >> proto->Name;
recvPacket >> s >> s >> s; // strip name2-4 recvPacket >> unk8;
recvPacket >> unk8;
recvPacket >> unk8; // strip name2-4
recvPacket >> proto->DisplayInfoID; recvPacket >> proto->DisplayInfoID;
recvPacket >> proto->Quality; recvPacket >> proto->Quality;
recvPacket >> proto->Flags; recvPacket >> proto->Flags;
recvPacket >> proto->Faction; // 3.2 faction?
recvPacket >> proto->BuyPrice; recvPacket >> proto->BuyPrice;
recvPacket >> proto->SellPrice; recvPacket >> proto->SellPrice;
recvPacket >> proto->InventoryType; recvPacket >> proto->InventoryType;
@ -54,6 +58,8 @@ void WorldSession::_HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket)
recvPacket >> proto->Damage[i].DamageMax; recvPacket >> proto->Damage[i].DamageMax;
recvPacket >> proto->Damage[i].DamageType; recvPacket >> proto->Damage[i].DamageType;
} }
// resistances (7)
recvPacket >> proto->Armor; recvPacket >> proto->Armor;
recvPacket >> proto->HolyRes; recvPacket >> proto->HolyRes;
recvPacket >> proto->FireRes; recvPacket >> proto->FireRes;
@ -61,11 +67,12 @@ void WorldSession::_HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket)
recvPacket >> proto->FrostRes; recvPacket >> proto->FrostRes;
recvPacket >> proto->ShadowRes; recvPacket >> proto->ShadowRes;
recvPacket >> proto->ArcaneRes; recvPacket >> proto->ArcaneRes;
recvPacket >> proto->Delay; recvPacket >> proto->Delay;
recvPacket >> proto->Ammo_type; recvPacket >> proto->Ammo_type;
recvPacket >> proto->RangedModRange; recvPacket >> proto->RangedModRange;
for(int s = 0; s < 5; s++)
for(int s = 0; s < MAX_ITEM_PROTO_SPELLS; s++)
{ {
recvPacket >> proto->Spells[s].SpellId; recvPacket >> proto->Spells[s].SpellId;
recvPacket >> proto->Spells[s].SpellTrigger; recvPacket >> proto->Spells[s].SpellTrigger;
@ -83,7 +90,8 @@ void WorldSession::_HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket)
recvPacket >> proto->LockID; recvPacket >> proto->LockID;
recvPacket >> proto->Material; recvPacket >> proto->Material;
recvPacket >> proto->Sheath; recvPacket >> proto->Sheath;
recvPacket >> proto->Extra; recvPacket >> proto->RandomProperty;
recvPacket >> proto->RandomSuffix;
recvPacket >> proto->Block; recvPacket >> proto->Block;
recvPacket >> proto->ItemSet; recvPacket >> proto->ItemSet;
recvPacket >> proto->MaxDurability; recvPacket >> proto->MaxDurability;
@ -91,14 +99,13 @@ void WorldSession::_HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket)
recvPacket >> proto->Map; recvPacket >> proto->Map;
recvPacket >> proto->BagFamily; recvPacket >> proto->BagFamily;
recvPacket >> proto->TotemCategory; // Added in 1.12.x client branch recvPacket >> proto->TotemCategory; // Added in 1.12.x client branch
for(uint32 s = 0; s < 3; s++) for(uint32 s = 0; s < MAX_ITEM_PROTO_SOCKETS; s++)
{ {
recvPacket >> proto->Socket[s].Color; recvPacket >> proto->Socket[s].Color;
recvPacket >> proto->Socket[s].Content; recvPacket >> proto->Socket[s].Content;
} }
recvPacket >> proto->socketBonus; recvPacket >> proto->socketBonus;
recvPacket >> proto->GemProperties; recvPacket >> proto->GemProperties;
recvPacket >> proto->ExtendedCost;
recvPacket >> proto->RequiredDisenchantSkill; recvPacket >> proto->RequiredDisenchantSkill;
recvPacket >> proto->ArmorDamageModifier; recvPacket >> proto->ArmorDamageModifier;
recvPacket >> proto->Duration; recvPacket >> proto->Duration;

View File

@ -327,7 +327,10 @@ enum ITEM_SUBCLASS_QUIVER
ITEM_SUBCLASS_AMMO_POUCH = 3 ITEM_SUBCLASS_AMMO_POUCH = 3
}; };
#define MAX_ITEM_PROTO_DAMAGES 2 #define MAX_ITEM_PROTO_DAMAGES 2 // changed in 3.1.0
#define MAX_ITEM_PROTO_SOCKETS 3
#define MAX_ITEM_PROTO_SPELLS 5
#define MAX_ITEM_PROTO_STATS 10
struct _ItemStat struct _ItemStat
{ {
@ -370,6 +373,7 @@ struct ItemProto
uint32 DisplayInfoID; uint32 DisplayInfoID;
uint32 Quality; uint32 Quality;
uint32 Flags; uint32 Flags;
uint32 Faction;
uint32 BuyCount; uint32 BuyCount;
uint32 BuyPrice; uint32 BuyPrice;
uint32 SellPrice; uint32 SellPrice;
@ -389,10 +393,10 @@ struct ItemProto
uint32 Stackable; uint32 Stackable;
uint32 ContainerSlots; uint32 ContainerSlots;
uint32 StatsCount; uint32 StatsCount;
_ItemStat ItemStat[10]; _ItemStat ItemStat[MAX_ITEM_PROTO_STATS];
uint32 ScalingStatDistribution; // id from ScalingStatDistribution.dbc uint32 ScalingStatDistribution; // id from ScalingStatDistribution.dbc
uint32 ScalingStatValue; // mask for selecting column in ScalingStatValues.dbc uint32 ScalingStatValue; // mask for selecting column in ScalingStatValues.dbc
_ItemDamage Damage[5]; _ItemDamage Damage[MAX_ITEM_PROTO_DAMAGES];
uint32 Armor; uint32 Armor;
uint32 HolyRes; uint32 HolyRes;
uint32 FireRes; uint32 FireRes;
@ -403,7 +407,7 @@ struct ItemProto
uint32 Delay; uint32 Delay;
uint32 Ammo_type; uint32 Ammo_type;
float RangedModRange; float RangedModRange;
_ItemSpell Spells[5]; _ItemSpell Spells[MAX_ITEM_PROTO_SPELLS];
uint32 Bonding; uint32 Bonding;
std::string Description; std::string Description;
uint32 PageText; uint32 PageText;
@ -413,7 +417,8 @@ struct ItemProto
uint32 LockID; uint32 LockID;
uint32 Material; uint32 Material;
uint32 Sheath; uint32 Sheath;
uint32 Extra; uint32 RandomProperty;
uint32 RandomSuffix;
uint32 Unk1; uint32 Unk1;
uint32 Block; uint32 Block;
uint32 ItemSet; uint32 ItemSet;
@ -422,10 +427,9 @@ struct ItemProto
uint32 Map; uint32 Map;
uint32 BagFamily; uint32 BagFamily;
uint32 TotemCategory; uint32 TotemCategory;
_ItemSocket Socket[3]; _ItemSocket Socket[MAX_ITEM_PROTO_SOCKETS];
uint32 socketBonus; uint32 socketBonus;
uint32 GemProperties; uint32 GemProperties;
uint32 ExtendedCost;
uint32 RequiredArenaRank; uint32 RequiredArenaRank;
uint32 RequiredDisenchantSkill; uint32 RequiredDisenchantSkill;
float ArmorDamageModifier; float ArmorDamageModifier;