Help - Search - Members - Calendar
Full Version: New Chat Structure
AC Tools Everything Macro > AC Tool Macros > Final Fantasy XI Online
Rocko
12AEE0 (without adding a baseaddress) is a Pointer from which I think you can come to the Chatlog somehow, but I don't know how^^

Can someone please tell me how I can get to the chatlog smile.gif
sean1976
You relaize that what ou posted makes no sense? That number is too small to be a mem address (which are the type that you do not need to adda base address to) and if it is a offset then you do need to add the base address to it in order for it to work. Not to mention that it doesn't really sound like you understand pointers. If you have a specific question that you want a answer to in order to help you learn actools and how to use it to get what you want then aske that question but don't beg for a complete tool and offer us garbage information.
Rocko
You get most mem-addresses by an offset that is always the same and you have to add the Baseaddress (that changes) to get to the right number - I know that, but it's not always this way. Before the update you could get to the chatlog directly at the Address: 12CF00 (or something like that without adding a BaseAddress).

Just try 12AEE0 without adding a Baseaddress and you'll see it's a pointer that changes when you get a new tell, say, shout or something like that. I searched for what was the last thing in the chatlog in the memory. (let's call it Address 2)

When I wrote myself (from another character) fast 3 tells in a row or so the pointer (@ 12AEE0) didn't change but the the text changed in Address 2. If I wait longer between the tells then the pointer (@ 12AEE0) changes and the text in Address 2 stays the same because it's now somewhere else in the memory.

What I couldn't find out is how can I get from this pointer @ 12AEE0 to the Address 2 (where the chatlog is).

This pointer points somewhere near Address 2 but you can't add a constant number there and get to Address 2. Maybe you need here another pointer to get to Address 2.


If anyone found another way to get the Chat-log (without my 12AEE0 Address) I'd also be happy to hear that smile.gif
sean1976
Well you have some of it right. The offset will not change unless the ffxi code changes(update) but the base address normally does not change on a particular machine unless you change how your computer loads programs. All of your memory is going to function in this same way. You have a memory block reserved for a particular application(such as ffximain.dll) to use. There is a base address for that section of memory. Any memory used by that application will be stored at a point between the base address and the end of that block. The offsets are a way to measure how far above the base address to look in the memory block for the information. Because people have different setups the aplication might be assigned different memory blocks on different machines and that is why we need offsets and the base address to have a proggry that can read specific memory on different machines without needing to be rewritten or configured.

That being said there are memory blocks assigned below and above the memory block that we normally use for ffxi stuff. So there might be a usefull memloc at a lower position but unless the memloc is somehow in a reserved address range by the OS it will always need a base address, just not necesarily the one you are used to using.

I will look at the address you mention but I doubt it will tell me anything on my machine. If I have time I will duplicate what you described of your search and will see if I get a result but like I said I doubt it will be the same adress. Also what you were describing aboout it moving and the old one becoming static is a result of the way ffxi handles and stores chatlogs. The text is stored in a block until either the block fills up or a set amount of time passes and then it creates a new block to start filling. If you wanted to monitor the chat in general you would need to find the location of the pointer telling it where to store chat(might be several pointers deep).

I am by no means the end all of information. I just got back into coding relatively recently so if anyone sees any errors in my explanation please correct me.
Rocko
I allready tried it on another machine --> it works

Edit: I use it to give me an alarm (sound) when I get a tell (I use it on 2 diffrent machines). I set say, shout and emote filter (ingame), and when the pointer @ 12AEE0 changes it means I got a tell and alarm starts.

If I wouldn't set shout, emote and say filter the pointer would also change if someone says something or shouts - emotes I'm not sure, but I set it also on filter^^

Edit2: To tell more exactly what I know about this pointer: It is @ <NO> in Artmoney at the beginning till I get the first tell, say or something. It never changes if you don't get a new say,shout tell, (maybe also emote and systemmessage or so)... And I'm 99% sure it always changes if you get a new tell, say, shout... and some time (don't know how much, maybe 10 secs, maybe 30 secs, maybe 1 min^^) passed between this say, shout, tell and the last one. When the pointer changes also the position where the text of the last line from chatlog is in Memory changes. when I got 3 tells or so from another charakter fast in row, the pointer didn't change between these tells and the position where the text was in Memory from lastline also didn't change
sean1976
I didn't get a chance to look at it last night but will later. Out of curiosity, have you located who's mem block this is in and if so whether the two computers had different base addresses or not? It would be interesting to know, I'll try and look into it later today assuming I do not get bogged down with work again.
wiccaan
Uh.. just checked this out myself and its deffintly not what you're saying it is. I see nothing related to chat with this, let alone even if it were a pointer, it points to a spot in memory that has NOTHING to do with the chat log.
Rocko
well I'm 100% sure it has something to do with chat because I use it to give me this alarm when I get a tell. My friend also uses my bot and it works for him also.

I don't think it's easy to get to the chatlog from this pointer (maybe you need another pointer near there where it points or so) but I think it's possible^^
sean1976
Two points:
1) Wiccaan is VERY knowledgeable about the internal structure of ffxi and how the memory functions in it are handled http://www.ffact.botanybay.net/forums/index.php?act=idx

2) What you are saying is not all that logically coherent. If you have something that is working off of this address then post it or pm it to one of us and maybe we can tell you what it's doing. Wiccaan would be much better for this if he has the time/interest because he knows alot more then I do as a whole. The only thing I can, off the top of my head, think of that would explain what you are describing and what Wiccaan said is if the location you mentioned is in fact being used by something else, like a vid driver or whatever, and the text display is the only thing regularly making use of that particular resource/function while you play.
Rocko
--------------------------------------------------------------------------------------------

constants
chold =
sound = C:\sounds\somesound.wav
end

setactivewindow FFXiApp - Windower Enabled

setconst chold = $ChatPointer

while 1 = 1
delay 10
call CheckChat
end


Procedure Checkchat
if $chold <> $ChatPointer
setconst chold = $ChatPointer
bell $sound
end
end


Function ChatPointer
ReadMemoryEx Result = 12AEE0, LongInt
end

---------------------------------------------------------------------------------------------

All this program does is playing a sound when the pointer changes
(I filter then shout, say and emote and I have a telldetect)

Interesting I tried this (only for a short time) and I figured if I say something I don't get an alarm, but if someone else says or shouts something even if it's fast 3 times in a row the sound triggered 3 times --> so maybe some things I said aren't right --> like that the address stays the same if fast 3 in a row and so but I think it did when I told myself something 3 times from another character (but now I'm not so sure^^) smile.gif

Some info:

Of course you have to change sound = C:\sounds\somesound.wav^^
And it only works if I use Namechanger -> if I don't use it it can't read in memory
and I think windowname has to be "FFXiApp - Windower Enabled" but I'm not sure of that (it's not because of setactivewindow FFXiApp - Windower Enabled -> window doesn't even have to be active for this to work smile.gif - a friend of mine tried my bot and it didn't work when he had another name than "FFXiApp - Windower Enabled"
rzn
12B04C
Rocko
K, testet it a little more (not too long this time again^^) and it seems that it just sometimes changes the pointer everytime a new chat comes even if it is fast in a row and sometimes it stays the same (not an alarm @ every chat) if the chats are fast in a row. But it always changes (plays a sound) if some time passed between 2 chats.

what's with that 12B04C address @ rzn?
without adding a baseaddress it's nothing for me and with adding baseaddress it's a pointer but I have no idea what it is good for smile.gif

or does 12B04C work for you when you read directly from there?
(Me and my friend have EU version if that could make a diffrence but I think it shouldn't be diffrent^^)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.