Greetings,
I am looking for help in C# coding to be able to read the content of the FFXIV log folder as well as the game's memory chat entries.
I am new to C# coding and this is a little project I am starting.
I am willing to learn and I need the help of someone really more experienced than me in coding to achieve this as it requires to read memory addresses which I have never done.
Can someone help me out?
Thanks a lot for your time and help.
Here is my progress so far:
I have been trying, during the weekend, to find the memory address for the chat log, just to get started.
I was able to find one and even do a pointer scan, but I cannot get the time stamp.
According to the log files, the structure in the memory should be the following (the log files are memory dumps):
Any hints as to how I could find the exact location of the time stamp, type of chat and then the message string in the game's memory?
I was able to find this on another website as well:
"The chat log is a memory dump of the internal text table when it rolls off. It takes 1000 lines to roll off and only when this roll off occurs is the log dumped to the file. So, the log is not "live" and if you log off you lose everything in memory (they are not written out). So defeats the purpose of building an app around the logs.
Either way, I wrote an audio trigger app during beta (chatmon 2), that I currently only distro between my fc. Here is what I discovered about the chat line, which I will share here.
•delimited by 3 colons: STAMPCHANNEL:SENDER:TEXT
•sender can be empty
TIMESTAMP = first 8 hex characters (4 bytes) Filter = 9th byte Channel = 10th byte
51C4A21C0839::Player joins the party.
51C4A242000C: tell TO Player
51C4A6B5000D: tell from Player
51C4A23B000B: [02 27 05 01 01 01 01 03] Player [02 27 05 CF 01 01 01 03] :anyone got visual on goblin muggers and coords ?
51C686B7103E:: [02 27 05 01 01 01 01 03] Player [02 27 05 CF 01 01 01 03] successfully converts the [02 13 06 FE FF F3 F3 F3 03]decorated bone staff [02 13 02 EC 03] into an [02 13 06 FE FF F3 F3 F3 03] ice materia I [02 13 02 EC 03].
filter = where it was sourced from (other, party, system, etc), and channel is the type
Known channels: 03 - motd / server announcements 0A - say 0B - shout 0C - outgoing tell 0D - incoming tell 0E - party 10 - linkshell 18 - Free company 1D - Emote 1E - Yell 29 - Incoming Damage 2A - Incoming Miss / No effect / Resist 2B - Player/Enemy finished using/casting ability 2C - Player uses food (or item?) 2D - -> Player recovers HP. 2E - Player loses/gains <buff> 2F - Player/Enemy suffers from <effect> 38 - Echo 39 - Notification EX: item equipped / instance has ended / area is no longer sealed / You have entered a sanctuary. // you sell an item // party leader registered for duty // item put in armory // loot list updated // joined party // quest accepted 3A - You/other defeats/is defeated 3C - Error EX: cannot change gear, cannot send tell in when in duty 3D - NPC Chat 3E - You/Other obtains/converts an item 40 - You/other gain exp/level 41 - You/Other rolls on an item 45 - Player has logged in/out A9 - Outgoing Damage AA - Outgoing Miss / No effect / Resist AB - Player/Enemy readies/casting ability AE - -> You/Other gain/lose the effect of <buff>. AF - -> You/Enemy suffers from <effect> BA - Player/Enemy defeated
Tokens aka "garbage": * byte 1 is the header [02] * byte 2 is the type 0x27 = name 0x13 = color change. payload: [?? ?? RED GRN BLU 03] 0x2E = auto translate * byte 3 is the size of the remaining payload, including terminator [03]
[02 27 05 01 01 01 01 03] name start [02 27 05 CF 01 01 01 03] name end [02 13 06 FE FF F3 F3 F3 03] item start (white) color = F3F3F3 [02 13 06 FE FF FA 89 B6 03] item start (purple) color = FA89B6 [02 13 02 EC 03] item end (reset)
[02 2E 05 09 F2 03 CE 03] translate: (Roegadyn) [02 2E 05 0A F2 05 10 03] translate: (/disappointed)
Text is UTF-8 encoded:
[EE 80 BC] U+E03C - little materia symbol at end of "attaches" message [EE 81 AF] U+E06F - litte -> arrow next to battles stuff"