ACTools scripts

03/05/2009 21:51 swayh#1
Hey, I know im a first time poster, and im also a first time scripter, but i was sick of finding stuff that didnt work. So i did a little research by looking at a few ACTool scripts that users made and figured out how to write a script. Didnt think i would be releasing to other people, but screw it, why should i be greedie?

I will be including a .rar uploaded to rapidshare, and i can post it any other way needed, just let me know. I see all these .ibf attatchments on the posts, and i cant seem to open them, so im uploading this way. And the program i tried to use was InstantBackup. research on google using the extension led me to that program.

I will also upload just the ACT scripts as an attatchment to this post. The scripts are in a .rar. The 2 scripts and the 2 readme's are included.

The files included in the rapidshare .rar:
ACTools
Windower
ArtMoney (for finding the memloc of MP when SquareEnix changes it)
A video tutorial for using ArtMoney to find the MP memloc
2 ACT scripts, 1 for smn carbuncle, and 1 for smn elemental spirits.
1 readme for the Carbuncle script
1 readme for the Elemental Spirit script

Rapidshare link:
Coming after it uploads

I recommend using the new scripts, as the code is much cleaner and more efficient.

Using the scripts above, you can change the Delay's to match cast and recast timers to match, say, Protect or Blaze Spikes. All you would need to do is make a new set of macros, using book 20 sets 3-20 based on the macros for carby/spirit. Just make sure you copy/paste all the stuff into a new actools window so you dont mess up the smn scripts.

Feel free to distribute these files, just please give me credit if you do.
The only sites i will be posting these on are [Only registered and activated users can see links. Click Here To Register...] and [Only registered and activated users can see links. Click Here To Register...]

Thank you

If you want to use these scripts to raise your Enfeb magic or any other magic, just set macros where Control 1 is your first spell, like /ma "Protect" <me>. Control 2 is heal, /heal. Alt 2 is your 2nd spell, like /ma "Shell" <me>. Then just cast in game, count how long it takes to cast the spell.
Under Procedure carb, change the Delay 4000 to however long it took to cast. 1000 is about 1 second. I think you can also just use "Delay 4 sec" to delay 4 seconds. Then cast again, and see how long it takes from when your done casting till you can cast the next spell. Enter that value into the Delay 6000. If you end up needing to set up a wait until you can repeat the process, add Delay (amount of time you need) to the procedure right above the "If $currentmp <= 9" command.

You can really use this setup for any magic, so long as you set the macros and Delays correctly.

My next project is making a script to auto hunt a specific target. I found the memlocs of the target window last night, and im not sure if they changed yet, but here it is: 04AE2D7C
I might need some help if any experianced scripters care to help me. Later down the line Ill need to program what mobs link into the scripts and implement a "pulling" feature to get a single target to a safe zone, away from links.

I am also interested in trying to find out if drops are determined when you start attacking. If so, i want to find the memloc of what drops are possible from that mob. Have a /echo in game listing potental drops so you can see if you even want to bother fighting that mob. Would save lots of time in farming. Can also implement this script into the hunter script for a farming script. Program what drops you want and off it goes! All you would do is move out of melee range, probably using distance draw's reading, and hit attack. List pops up, nah i dont wanna fight it, its not gonna drop what i want, and hit disengage. I have lots of ideas, just not much experiance. My AIM screen name is FFXIScripting if you want to contact me about this. Thanks!


Other memlocs i found:

HP address:
0231B52C
0267030C <-- the one that was working last

TP address:
0231B534
02670314 <-- the one that was working last

Gil address:
02671BA8
03/06/2009 08:25 swayh#2
I decided some people might not want to download from a 1st poster, so heres the scripts in a post. This one is the summon carbuncle script:

Constants
maxmp = 99 //Change this to what your max mp is
currentmp = //Leave this blank
info_current_mp = //Leave this blank
End

While 1=1
SetActiveWindow * // This line is necessary to select the proper window
//Enter your windower name. Delete the * and put it there. Use the name that comes up after you log into your character

Delay 500
Call smn
End

Procedure smn
Call check
Delay 1000
If $currentmp <= 4
Call heal
Else
Call carb
End
End

procedure check
ReadMemory $info_current_mp = 0012BB14 //<----Change this if program stops working.
Set $currentmp = $info_current_mp //Use ArtMoney to find new value.
End //I will upload a tutorial to show how its done
//So far the 3 values i found were:
// 0231B530
// 02670301
// 0012BB14 <-- this seems to be the most used


Procedure heal
Delay 500
Keydown ^2 .5 sec
Delay 25000
Call check
If $currentmp = $maxmp
Keydown ^2 .5 sec
Delay 1000
Call carb
Else
Call wait
End
End

Procedure carb
Call check
If $currentmp <= 4
Call heal
Else
Keydown ^1 .5 sec
Delay 8500 //Change this little by little if your char trys to release smn too fast
Keydown @2 .5 sec
Delay 500
Call check
If $currentmp <= 4
Call heal
Else
Delay 26500 //Change this little by little if your char trys to recast smn too fast
Call carb
End
End
End

Procedure wait
Delay 10000
Call check
If $currentmp = $maxmp
Call stand
Else
Delay 500
Call wait
End
End

Procedure stand
Keydown ^2 .5 sec
Delay 500
Call smn
End
03/06/2009 08:27 swayh#3
This one is for summoning any of the Elemental Spirits, like Air Spirit, Earth Spirit, Ice Spirit, Water Spirit, etc...

Constants
maxmp = 99 //Change this to what your max mp is
currentmp = //Leave this blank
info_current_mp = //Leave this blank
End

While 1=1
SetActiveWindow * // This line is necessary to select the proper window
//Enter your windower name. Delete the * and put it there. Use the name that comes up after you log into your character
Delay 500
Call smn
End

Procedure smn
Call check
Delay 1000
If $currentmp <= 9
Call heal
Else
Call carb
End
End

procedure check
ReadMemory $info_current_mp = 0012BB14 //Change this if program stops healing/standing when mp is full or less than 9.
//Use ArtMoney to find new value.
//I will upload a tutorial to show how its done
//So far the 3 values i found were:
// 0231B530
// 02670301
// 0012BB14
Set $currentmp = $info_current_mp
End
Procedure heal
Delay 500
Keydown ^2 .5 sec
Delay 25000
Call check
If $currentmp = $maxmp
Keydown ^2 .5 sec
Delay 1000
Call carb
Else
Call wait
End
End

Procedure carb
Call check
If $currentmp <= 9
Call heal
Else
Keydown ^1 .5 sec
Delay 4000 //Change this little by little if your char trys to release smn too fast
Keydown @2 .5 sec
Delay 6000 //Change this little by little if your char trys to recast smn too fast
Call check
If $currentmp <= 9
Call heal
Else
Call carb
End
End
End

Procedure wait
Delay 10000
Call check
If $currentmp = $maxmp
Call stand
Else
Delay 500
Call wait
End
End

Procedure stand
Keydown ^2 .5 sec
Delay 500
Call smn
End