Thread Tools Display Modes
04/03/24, 10:14 AM   #1
sixlalas
Join Date: Mar 2024
Posts: 1
Just starting out - AHK veteran

Hi to all

I'm looking to learn how to adapt ahk-based code modules to do small addons for ESO. Since I've done a lot of AHK work in the past, it would help to see a piece of code written for/to interface with ESO, perhaps something written to interrogate/acquire current game state regarding a given fact, such as, is my friend (game name) presently in game? I understand there is a list of facts/game states that ESO can/will furnish as the result of query, but not how to actually present the request for such to ESO in code, and how to receive any response. Thanks in large amounts for code visibility here - it can be sooo helpful! Regards, sixlalas (ahk ala FFXiV, well, a while back!)
  Reply With Quote
04/03/24, 10:28 AM   #2
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,990
Moved the thread to the general authoring discussions.

You should maybe first describe what ahk-based modules are.
Do you talk about AutoHotkey?

I'm not sure how ahk works but eso's lua code and API does not provide any external information nor does it write anything in real time to files.
So you cannot get any ingame data to be used in external tools, in real time.

Last edited by Baertram : 04/04/24 at 03:57 AM.
  Reply With Quote
04/03/24, 01:26 PM   #3
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 656
Post

Let me see if a similar example will help. Rather than AHK as most people don't know what that is, me included, other than AutoHotKey scripts, let use Python since it's a scripting language also. Which would be pretty similar to what you are asking about. Running code to get information from the game in that language and then process commands.

None of that is allowed. You cannot make c#, c++, python, json, or java applications and have anything access anything about the game while it is running to know if a friend is online for example. You also cannot write files in any format to disk such as csv or json.

No external code has access to the game and data sent to and from the server in any way.

What you want to do is not possible.

All disk read and write, specifying file names or locations is all disabled.

The Lua code available only works while in game. No tapping into anything to share with discord or a web browser.

All you can do is use the provided Lua format for saved variables. Such as a name of a player and settings for a mod to toggle a feature on and off. It only saves when you logout or reload the ui.

While you could make a program to read the Lua saved variables, you cannot share anything in real time. Should you find a way that will be rectified.

https://wiki.esoui.com/How_to_get_your_AddOn_removed

Last edited by Sharlikran : 04/04/24 at 01:57 PM.
  Reply With Quote
04/03/24, 01:34 PM   #4
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 656
https://www.esoui.com/forums/showthread.php?t=10064

Also read that link please. Sometimes people new to the game think, oh I want to have a mod that adds this custom texture on the ground, and detects when the player is about to do [insert idea] and get their distance, and then counter their attack, and the screen flashes and there are custom sounds and whatever. You can't do any of that.
  Reply With Quote
04/05/24, 07:47 AM   #5
wookiefriseur
 
wookiefriseur's Avatar
Join Date: Mar 2014
Posts: 53
Hey there



Avoid reading game memory or do anything else that might be considered cheating.

Displaying information should be OK as long as you don't use it to control/automate your game. But best to check that first.

Maybe you won't even need an AddOn. If I remember correctly AHK has OCR capability, so you might be able to extract the "@Player has logged on" message right from the screen.


If this doesn't work or you want to get other infos as well you could write an addon that has an info box in a corner for AHK to watch. You can put text or colour coded information in that box. Maybe even bar- or QR-codes, but that might be too much and distract you while playing.


Also try to avoid refreshing the info in an unthrottled while loop, otherwise your game might freeze or you get kicked for too many API calls. Use a delay or event hooks instead


It might also be worth looking into how Razer Chroma gets info from the game. Never done anything with that so I'm not sure.
  Reply With Quote
04/05/24, 09:52 AM   #6
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,990
Seems that lua manager code for chroma generates the event callbacks (e.g. on death) and then it sends the info needed for the Razr devices via available API function calls (e.g. ChromaSetCustomSingleColorFadingEffectValue, ChromaApplyCustomEffectFullColor, ChromaApplyCustomEffectCellColor, ChromaFinalizeCustomEffect, ChromaDeleteAllCustomEffectIds ...) -> to the c code -> and from there to the Razr drivers/tools?

And with ZO_ChromaGetCustomEffectCoordinatesForAction(actionName) (where action name would be e.g. "ACTION_BUTTON_9" for quicklsot) you can get the chroma keyboard's row and column of the key?

Last edited by Baertram : 04/05/24 at 09:57 AM.
  Reply With Quote
04/05/24, 10:42 AM   #7
DakJaniels
AddOn Author - Click to view addons
Join Date: Mar 2021
Posts: 31
Originally Posted by Baertram View Post
Seems that lua manager code for chroma generates the event callbacks (e.g. on death) and then it sends the info needed for the Razr devices via available API function calls (e.g. ChromaSetCustomSingleColorFadingEffectValue, ChromaApplyCustomEffectFullColor, ChromaApplyCustomEffectCellColor, ChromaFinalizeCustomEffect, ChromaDeleteAllCustomEffectIds ...) -> to the c code -> and from there to the Razr drivers/tools?

And with ZO_ChromaGetCustomEffectCoordinatesForAction(actionName) (where action name would be e.g. "ACTION_BUTTON_9" for quicklsot) you can get the chroma keyboard's row and column of the key?
Could probably use this as an example https://www.esoui.com/downloads/info...omaConfig.html
  Reply With Quote

ESOUI » Developer Discussions » General Authoring Discussion » Just starting out - AHK veteran


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off