Validated SendCharInfo

This commit is contained in:
dannuic 2026-04-13 17:10:38 -05:00
parent 8dd24f4a70
commit 139575661d
3 changed files with 33 additions and 37 deletions

View File

@ -2587,16 +2587,16 @@ namespace TOB
eq_cse->Face = emu_cse->Face;
for (int equip_index = 0; equip_index < EQ::textures::materialCount; equip_index++) {
eq_cse->Equip[equip_index].Material = emu_cse->Equip[equip_index].Material;
eq_cse->Equip[equip_index].Unknown1 = emu_cse->Equip[equip_index].Unknown1;
eq_cse->Equip[equip_index].EliteMaterial = emu_cse->Equip[equip_index].EliteModel;
eq_cse->Equip[equip_index].HeroForgeModel = emu_cse->Equip[equip_index].HerosForgeModel;
eq_cse->Equip[equip_index].Material2 = emu_cse->Equip[equip_index].Unknown2;
eq_cse->Equip[equip_index].Color = emu_cse->Equip[equip_index].Color;
eq_cse->Equip[equip_index].Material = emu_cse->Equip[equip_index].Material; // type
eq_cse->Equip[equip_index].Unknown1 = emu_cse->Equip[equip_index].Unknown1; // variation
eq_cse->Equip[equip_index].EliteMaterial = emu_cse->Equip[equip_index].EliteModel; // material
eq_cse->Equip[equip_index].HeroForgeModel = emu_cse->Equip[equip_index].HerosForgeModel; // new armor id
eq_cse->Equip[equip_index].Material2 = emu_cse->Equip[equip_index].Unknown2; // new armor type
eq_cse->Equip[equip_index].Color = emu_cse->Equip[equip_index].Color; // tint
}
eq_cse->Unknown1 = 255;
eq_cse->Unknown2 = 0;
eq_cse->TextureType = 255;
eq_cse->HeadType = 0;
eq_cse->DrakkinTattoo = emu_cse->DrakkinTattoo;
eq_cse->DrakkinDetails = emu_cse->DrakkinDetails;
eq_cse->Deity = emu_cse->Deity;
@ -2608,18 +2608,16 @@ namespace TOB
eq_cse->EyeColor2 = emu_cse->EyeColor2;
eq_cse->HairStyle = emu_cse->HairStyle;
eq_cse->Beard = emu_cse->Beard;
eq_cse->GoHome = emu_cse->GoHome;
eq_cse->PreFTP = 1;
eq_cse->Tutorial = emu_cse->Tutorial;
eq_cse->DrakkinHeritage = emu_cse->DrakkinHeritage;
eq_cse->Enabled = emu_cse->Enabled;
eq_cse->GoHome = emu_cse->GoHome;
eq_cse->LastLogin = emu_cse->LastLogin;
eq_cse->Unknown3 = 0;
eq_cse->Unknown4 = 0;
eq_cse->Unknown5 = 0;
eq_cse->Unknown6 = 0;
eq_cse->Unknown7 = 0;
eq_cse->TooHighLevel = 0;
eq_cse->Usable = emu_cse->Enabled; // this doesn't seem to do anything
eq_cse->Shrouded = 0;
eq_cse->Unknown = 0;
eq_cse->CharacterId = 0;
eq_cse->Unknown8 = 1;
emu_ptr += sizeof(CharacterSelectEntry_Struct);
eq_ptr += sizeof(structs::CharacterSelectEntry_Struct);

View File

@ -98,16 +98,16 @@ namespace TOB {
};
/*
* Visible equiptment.
* Visible equipment.
* Size: 20 Octets
*/
struct Texture_Struct
{
uint32 Material;
uint32 Unknown1;
uint32 EliteMaterial;
uint32 HeroForgeModel;
uint32 Material2; // Same as material?
uint32 Material; // type
uint32 Unknown1; // material
uint32 EliteMaterial; // variation
uint32 HeroForgeModel; // new armor ID
uint32 Material2; // new armor type
};
/*
@ -145,10 +145,10 @@ namespace TOB {
uint8 Gender;
uint8 Face;
CharSelectEquip Equip[9];
uint8 Unknown1; //Seen 256
uint8 Unknown2; //Seen 0
uint32 DrakkinTattoo;
uint32 DrakkinDetails;
uint8 TextureType; //Seen 256
uint8 HeadType; //Seen 0
uint32 DrakkinTattoo; // tattoo index
uint32 DrakkinDetails; // face attachment index
uint32 Deity;
uint32 PrimaryIDFile;
uint32 SecondaryIDFile;
@ -158,18 +158,16 @@ namespace TOB {
uint8 EyeColor2;
uint8 HairStyle;
uint8 Beard;
uint8 Enabled;
uint8 Tutorial;
uint32 DrakkinHeritage;
uint8 Unknown3;
uint8 GoHome;
uint8 Tutorial;
uint32 DrakkinHeritage; // parent ID
uint8 TooHighLevel;
uint8 PreFTP;
uint32 LastLogin;
uint8 Unknown4; // Seen 0
uint8 Unknown5; // Seen 0
uint8 Unknown6; // Seen 0
uint8 Unknown7; // Seen 0
uint32 CharacterId; //A Guess, Character I made a little bit after has a number a few hundred after the first
uint32 Unknown8; // Seen 1
uint8 Usable;
uint16 Shrouded;
uint8 Unknown;
uint64 CharacterId; // A Guess, Character I made a little bit after has a number a few hundred after the first
};
/*

View File

@ -479,7 +479,7 @@ Below is a status list for the 450 opcodes we currently use on the server for th
| `OP_SelectTribute` | 🔴 Not-Set | | |
| `OP_SendAAStats` | 🟡 Unverified | | |
| `OP_SendAATable` | 🟡 Unverified | | |
| `OP_SendCharInfo` | 🟢 Verified | Seems to largely work correctly | |
| `OP_SendCharInfo` | 🟢 Verified | | |
| `OP_SendExpZonein` | 🟡 Unverified | | |
| `OP_SendFindableNPCs` | 🔴 Not-Set | | |
| `OP_SendGuildTributes` | 🔴 Not-Set | | |