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

View File

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

View File

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