(RoF2) Aug Type 21 no longer shows the "Buy Now" button in the aug slot of items.

(RoF2) Identified the "Copied" item flag with the help of Uleat.
This commit is contained in:
Trevius 2014-12-30 00:27:23 -06:00
parent 5df65427b1
commit 16a8d15909
4 changed files with 87 additions and 34 deletions

View File

@ -1,5 +1,9 @@
EQEMu Changelog (Started on Sept 24, 2003 15:50)
-------------------------------------------------------
== 12/30/2014 ==
Trevius: (RoF2) Aug Type 21 no longer shows the "Buy Now" button in the aug slot of items.
Trevius: (RoF2) Identified the "Copied" item flag with the help of Uleat.
== 12/29/2014 ==
Trevius: (RoF2) Identified a few Item Fields and resolved an issue with cloth armor not accepting certain augments that they should.
Akkadius: Updated $client->UpdateTaskActivity to have optional argument ignore_quest_update IE: Client::UpdateTaskActivity(THIS, TaskID, ActivityID, Count, [ignore_quest_update])

View File

@ -116,6 +116,72 @@ namespace RoF2
#include "ss_define.h"
// ENCODE methods
// RoF2 Specific Encodes Begin
ENCODE(OP_SendMembershipDetails)
{
ENCODE_LENGTH_EXACT(Membership_Details_Struct);
SETUP_DIRECT_ENCODE(Membership_Details_Struct, structs::Membership_Details_Struct);
eq->membership_setting_count = 72;
for (uint32 i = 0; i < emu->membership_setting_count; ++i) // 66
{
OUT(settings[i].setting_index);
OUT(settings[i].setting_id);
OUT(settings[i].setting_value);
}
// Last 6 new settings fields are all 0s on Live as of 12/29/14
eq->race_entry_count = emu->race_entry_count;
for (uint32 i = 0; i < emu->race_entry_count; ++i) // 15
{
OUT(membership_races[i].purchase_id);
OUT(membership_races[i].bitwise_entry);
}
eq->class_entry_count = emu->class_entry_count;
for (uint32 i = 0; i < emu->class_entry_count; ++i) // 15
{
OUT(membership_classes[i].purchase_id);
OUT(membership_classes[i].bitwise_entry);
}
eq->exit_url_length = emu->exit_url_length;
eq->exit_url_length2 = emu->exit_url_length2;
FINISH_ENCODE();
}
ENCODE(OP_SendMembership)
{
ENCODE_LENGTH_EXACT(Membership_Struct);
SETUP_DIRECT_ENCODE(Membership_Struct, structs::Membership_Struct);
eq->membership = emu->membership;
eq->races = emu->races;
eq->classes = emu->classes;
eq->entrysize = 25; //emu->entrysize;
for (uint32 i = 0; i < emu->entrysize; ++i) // 21
{
OUT(entries[i]);
}
// Last 4 new entries are 0s on Live Silver as of 12/29/14
// Setting them each to 1 for now.
// This removes the "Buy Now" button from aug type 21 slots on items.
for (uint32 i = 21; i < 25; ++i) // 4
{
eq->entries[i] = 1;
}
FINISH_ENCODE();
}
// RoF2 Specific Encodes End
ENCODE(OP_Action)
{
ENCODE_LENGTH_EXACT(Action_Struct);
@ -2905,24 +2971,6 @@ namespace RoF2
FINISH_ENCODE();
}
ENCODE(OP_SendMembership)
{
ENCODE_LENGTH_EXACT(Membership_Struct);
SETUP_DIRECT_ENCODE(Membership_Struct, structs::Membership_Struct);
eq->membership = emu->membership;
eq->races = emu->races;
eq->classes = emu->classes;
eq->entrysize = 22;
for (int i = 0; i<21; i++)
{
eq->entries[i] = emu->entries[i];
}
eq->entries[21] = 0;
FINISH_ENCODE();
}
ENCODE(OP_SendZonepoints)
{
SETUP_VAR_ENCODE(ZonePoints);
@ -4902,7 +4950,7 @@ namespace RoF2
hdrf.unknowna1 = 0xffffffff;
hdrf.ornamentHeroModel = heroModel;
hdrf.unknown063 = 0;
hdrf.unknowna3 = 0;
hdrf.Copied = 0;
hdrf.unknowna4 = 0xffffffff;
hdrf.unknowna5 = 0;
hdrf.ItemClass = item->ItemClass;

View File

@ -1,6 +1,8 @@
// out-going packets that require an ENCODE translation:
// Begin RoF2 Encodes
E(OP_SendMembershipDetails)
// incoming packets that require a DECODE translation:
// Begin RoF2 Decodes

View File

@ -243,7 +243,7 @@ struct Membership_Setting_Struct
struct Membership_Details_Struct
{
/*0000*/ uint32 membership_setting_count; // Seen 66
/*0016*/ Membership_Setting_Struct settings[66]; // 792 Bytes
/*0016*/ Membership_Setting_Struct settings[72]; // 864 Bytes
/*0012*/ uint32 race_entry_count; // Seen 15
/*1044*/ Membership_Entry_Struct membership_races[15]; // 120 Bytes
/*0012*/ uint32 class_entry_count; // Seen 15
@ -260,7 +260,7 @@ struct Membership_Struct
/*004*/ uint32 races; // Seen ff ff 01 00
/*008*/ uint32 classes; // Seen ff ff 01 01
/*012*/ uint32 entrysize; // Seen 22
/*016*/ int32 entries[22]; // Most -1, 1, and 0 for Gold Status
/*016*/ int32 entries[25]; // Most -1, 1, and 0 for Gold Status
/*104*/
};
@ -4381,15 +4381,14 @@ struct EvolvingItem {
struct ItemSerializationHeaderFinish
{
/*079*/ uint32 ornamentIcon;
/*083*/ int32 unknowna1; // 0xffffffff
/*087*/ uint32 ornamentHeroModel; // 0
/*091*/ uint8 unknown063; // 0
/*092*/ uint32 unknowna3; // 0
/*096*/ int32 unknowna4; // 0xffffffff
/*100*/ uint32 unknowna5; // 0
/*104*/ uint8 ItemClass; //0, 1, or 2
/*105*/
uint32 ornamentIcon;
int32 unknowna1; // 0xffffffff
uint32 ornamentHeroModel;
int32 unknown063; // 0
uint8 Copied; // Copied Flag - Possibly for items copied during server transfer?
int32 unknowna4; // 0xffffffff
int32 unknowna5; // 0
uint8 ItemClass; //0, 1, or 2
};
struct ItemBodyStruct
@ -4622,8 +4621,8 @@ struct ItemQuaternaryBodyStruct
uint8 unknown19;
uint16 unknown20;
uint8 unknown21;
uint8 Heirloom;
uint8 Placeable;
uint8 Heirloom; // Heirloom Flag
uint8 Placeable; // Placeable Flag
uint8 unknown22b;
uint8 unknown22c;
uint8 unknown22d;
@ -4643,12 +4642,12 @@ struct ItemQuaternaryBodyStruct
uint32 unknown35;
uint32 unknown36;
uint32 unknown37;
uint8 NoZone; // Item will disappear upon zoning?
uint8 NoZone; // No Zone Flag - Item will disappear upon zoning?
uint8 unknown_RoF_7b; // Maybe Uint32 ?
uint8 unknown_RoF_7c;
uint8 unknown_RoF_7d;
uint8 unknown_RoF_8a;
uint8 NoGround; // Item cannot be dropped on the ground?
uint8 NoGround; // No Ground Flag - Item cannot be dropped on the ground?
uint8 unknown_RoF_8c;
uint8 unknown_RoF_8d;
uint8 unknown37a; // New to RoF2 - Probably variable length string