Validated channel messages

This commit is contained in:
dannuic 2026-04-23 23:07:18 -06:00
parent 1d47611b24
commit ffc912b2f6
2 changed files with 12 additions and 8 deletions

View File

@ -389,8 +389,7 @@ namespace TOB
VARSTRUCT_ENCODE_STRING(OutBuffer, emu->sender);
VARSTRUCT_ENCODE_STRING(OutBuffer, emu->targetname);
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint64, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->language);
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->chan_num);
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, 0); // Unknown
@ -398,11 +397,13 @@ namespace TOB
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->skill_in_language);
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message.c_str());
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint16, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint8, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint8, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, 0);// Unknown
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, 0);// Unknown
VARSTRUCT_ENCODE_STRING(OutBuffer, "");
VARSTRUCT_ENCODE_TYPE(uint8, OutBuffer, 0); // Unknown
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, 0);// Unknown
delete[] __emu_buffer;
dest->FastQueuePacket(&in, ack_req);
@ -3640,10 +3641,13 @@ namespace TOB
uint32 Skill = VARSTRUCT_DECODE_TYPE(uint32, InBuffer);
// this has a size limit of 11k in the client
std::string old_message = InBuffer;
std::string new_message;
TOBToServerConvertLinks(new_message, old_message);
// there are 15 bytes after this, part of which is an unk string, check the ENCODE for the layout
__packet->size = sizeof(ChannelMessage_Struct) + new_message.length() + 1;
__packet->pBuffer = new unsigned char[__packet->size];
ChannelMessage_Struct* emu = (ChannelMessage_Struct*)__packet->pBuffer;

View File

@ -81,7 +81,7 @@ Below is a status list for the 450 opcodes we currently use on the server for th
| `OP_CashReward` | 🟡 Unverified | | |
| `OP_CastSpell` | 🟢 Verified | | |
| `OP_ChangeSize` | 🟢 Verified | | |
| `OP_ChannelMessage` | 🟡 Unverified | | |
| `OP_ChannelMessage` | 🟢 Verified | | |
| `OP_ChangePetName` | 🔴 Not-Set | | |
| `OP_CharacterCreate` | 🟢 Verified | Sends heroic type, can be used for something? | |
| `OP_CharacterCreateRequest` | 🟢 Verified | | |