Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Final Fantasy XIV
You last visited: Today at 05:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C# - Read FFXIV log files and in-game chat

Discussion on C# - Read FFXIV log files and in-game chat within the Final Fantasy XIV forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2015
Posts: 2
Received Thanks: 0
C# - Read FFXIV log files and in-game chat

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"
Dyr Fenrir is offline  
Old 02/02/2015, 21:19   #2
 
elite*gold: 0
Join Date: Feb 2006
Posts: 629
Received Thanks: 195
There's a structure of line lengths in memory in a separate structure. There is also a pointer to the current line in another part of that structure.

You'll need to read the line lengths to extract the line of chat data. Once the chat data is collected you'll need to work your way through parsing the line... timestamp, chatmode, tokens within the message like autotranslate, etc.
lucid is offline  
Old 02/03/2015, 14:13   #3
 
elite*gold: 0
Join Date: Feb 2015
Posts: 2
Received Thanks: 0
Greetings,

After trying a little bit again, I was able to find the right memory location for the timestamp + the text that appears in the log.

Although, it's a dynamic address, and what I am having issues finding is the "legend" or the base address. You can see what I mean in the picture I provided, the part in memory where it tells the length of the strings.

The memory location is just like the log file, but text is added right after the previous one and at some point it dumps the memory content to the log files (I think it's at 1000 lines), so the address will reset completely at this point.

Without the base address, I cannot get just the new line and parsing a text that can reset at any moment, it can be tricky.

Anyone could help me out to find the base address please?

I could mess with pointers in Cheat Engine, but I prefer checking the memory directly, although I have no idea as to where to look for that "legend" part. It gives me an insane amount of results if I do it that way.

I am looking to do this the right way, and I also want to understand so I don't have to ask next time.

Thanks a lot for your time and help again.
Dyr Fenrir is offline  
Reply

Tags
chat, ffxiv, log


Similar Threads Similar Threads
WTS FFXIV eu game cdkey and 60 day timecard
10/16/2014 - Final Fantasy Trading - 2 Replies
Hello , I sell FFXIV eu game cdkey and 60 day timecard EU version ,all of the cards are scans,lower than official price , please Pm for more information. I am not scammer !
Biete Headstart Key für FFXIV + Original Game Key
08/25/2013 - Final Fantasy Trading - 0 Replies
Biete Headstart Key für FFXIV + Original Game Key Biete genau 3 Headstart Keys für FFXIV. Habe mir das Game bei MMOGA bestellt, aber gleich 4 Headstartkeys bekommen. Zugleich am 21. meinen Orignal Gamekey für das Game Selbst. Für die Headstart key = Macht einfach ein angebot bzw sagt was..... Für den Preis des Normal Game Key= Naja macht mir einen Preis. Natürlich etwas günstiger als ich ihn erworben habe.
Biete Headstart Key für FFXIV + Original Game Key
08/25/2013 - Final Fantasy XIV - 2 Replies
Biete genau 3 Headstart Keys für FFXIV. Habe mir das Game bei MMOGA bestellt, aber gleich 4 Headstartkeys bekommen. Zugleich am 21. meinen Orignal Gamekey für das Game Selbst. Für die Headstart key = Macht einfach ein angebot bzw sagt was..... Für den Preis des Normal Game Key= Naja macht mir einen Preis. Natürlich etwas günstiger als ich ihn erworben habe. Beweisscreens siehe hier de Kaufes.
Help files. Language for the chat on the part of the game
08/15/2011 - Need for Speed World - 4 Replies
Help files. Language for the chat on the part of the game Help files, the language of the game for a chat. Help files, the language of the game for a chat.



All times are GMT +2. The time now is 05:25.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.