React
React
anyway to get the React addon that was made for windower to work with ashita? or could someone make one to do the same thing?
Re: React
I believe the onevent addon already does something similar to Sammeh's addon.
http://ashita.atom0s.com/wiki/doku.php?id=addon:onevent
http://ashita.atom0s.com/wiki/doku.php?id=addon:onevent
Re: React
it can execute commands on event but it cant make your character runaway
Re: React
Is there still no way to use react for Ashita? Is there a way to port it?
-
- Posts: 25
- Joined: Mon Nov 06, 2017 6:12 am
Re: React
Not answering this, but looking the React addon, it uses windowers functions like "run" (windower.ffxi.run) and "turn" (windower.ffxi.turn).
Does ashita have equivalent functions or anyone have some insights to how to make functions to execute those windower functions? Tried looking the libs for that but i think its inside LuaCore.dll? IDK how to read that file.
Thanks in advance
Does ashita have equivalent functions or anyone have some insights to how to make functions to execute those windower functions? Tried looking the libs for that but i think its inside LuaCore.dll? IDK how to read that file.
Thanks in advance
Re: React
Directly no, but you can create the functions yourself from an addon reading/writing to memory since that's all that is done for things like this.
windower.ffxi.run just makes you move/auto-run. The auto-run structure can be found via this pointer signature:
The structure this points to is as follows:
windower.ffxi.turn turns your character by altering your heading direction. You can access that via the entity object's warp pointer.
From the warp pointer, the offsets to the editable coords are:
For turn, here's an example of doing it via memory:
This can also be done by packets by altering the player direction information in the appropriate packets.
windower.ffxi.run just makes you move/auto-run. The auto-run structure can be found via this pointer signature:
Code: Select all
Pattern: 8BCFE8????????8B0D????????E8????????8BE885ED750CB9
Offset : +25
- struct autofollow_t
- {
- uintptr_t VTablePointer; // The base VTable pointer.
- uint32_t TargetIndex; // The last targeted entities target index.
- uint32_t TargetServerId; // The last targeted entities server id.
- float FollowDeltaX; // The auto-run/auto-follow X delta.
- float FollowDeltaZ; // The auto-run/auto-follow Z delta.
- float FollowDeltaY; // The auto-run/auto-follow Y delta.
- float Unknown0000; // Unknown [Set to 1 when you stop auto-following.]
- uintptr_t VTablePointer2; // The base VTable pointer.
- uint32_t FollowTargetIndex; // The auto-follow follow target index.
- uint32_t FollowTargetServerId; // The auto-follow follow target server id.
- uint8_t IsFirstPersonCamera; // Flag if the camrea is in first person mode or node.
- uint8_t IsAutoRunning; // Flag if the player is auto-running / auto-following. (Or auto-running in a direction.)
- uint16_t Unknown0001; // Padding
- uint32_t Unknown0002; // Unknown [Set to 0 when messing with auto-follow.]
- uint8_t IsCameraLocked; // Set to 1 when the camera is locked forward. (When holding shift.)
- uint8_t IsCameraLockedOn; // Set to 1 when the camera is locked on to a target and is in third-person mode.
- uint16_t Unknown0003; // Padding
- /**
- * Following the last unknown, there are three sets of coords stored. (XZY?)
- * These do not appear to be used consistently enough to determine their purpose.
- *
- * Rest of the structure does not seem to contain any useful information.
- */
- };
From the warp pointer, the offsets to the editable coords are:
Code: Select all
+52 - Editable X
+56 - Editable Z
+60 - Editable Y
+72 - Editable Heading
+1476 - Editable X (2)
+1480 - Editable Z (2)
+1484 - Editable Y (2)
- local function turn(dir)
- -- Get the local player entity..
- local player = GetPlayerEntity();
- if (player == nil) then
- return;
- end
- -- Get the local player entity warp pointer..
- local warp = player.WarpPointer;
- if (warp == nil or warp == 0) then
- return;
- end
- -- Set the players heading direction..
- ashita.memory.write_float(warp + 0x48, dir);
- end
-
- Posts: 25
- Joined: Mon Nov 06, 2017 6:12 am
Re: React
Thanks Atom0s
Re: React
Thanks for the info. I’m not that savvy so this would be a lot of work for me, lol. I have another question somebody might be able to answer though. I see Onevent is similar except it can’t turn or runaway. Can Onevent react to mob “readies” moves however? Ie... equip certain gear when certain moves are about to fire. Can it also be used to equip certain gear when certain spells are cast on you? Like equipping cure effect received gear when your about to be cured.
-
- Posts: 25
- Joined: Mon Nov 06, 2017 6:12 am
Re: React
I dont use onevent but reading the lua, it should react to that if you arent using filters.Shiva219 wrote: ↑Thu Nov 21, 2019 6:05 pmThanks for the info. I’m not that savvy so this would be a lot of work for me, lol. I have another question somebody might be able to answer though. I see Onevent is similar except it can’t turn or runaway. Can Onevent react to mob “readies” moves however? Ie... equip certain gear when certain moves are about to fire. Can it also be used to equip certain gear when certain spells are cast on you? Like equipping cure effect received gear when your about to be cured.
But do notice reading log has its cons. For example there is a delay between the action and the message of it. For mobs instant tp moves can not work right. Plus when the enviroment is too spammy, often we lose some mchat messages.
Though, it shouldnt be hard to create an ashita version of the react. All it does is receiving a packet action and putting a lot of ifs for any mob action