Code:
; BASIC Level bot ; use a "full" keyboard with default settings ; resolution 1024x768 background res 1024x1024 ; set crtl-9 to /echo . if u want to know this script is working ; start ffxi and open up the character u want, leave the bot alone! ;sleep to give ffxi time to start sleep (40000); ;auto start WinWaitActive("FFXiApp"); AutoItSetOption("SendKeyDelay", 40); send ("{ENTER}"); sleep (10250); Send ("{ENTER}"); Sleep (10250); Send ("{ENTER}"); Sleep (10250); Send ("{ENTER}"); ;Variables Here $mainloop = 1 ;---------------------------------Main commands----------------------------------- sleep(10000); findenemy(); ;---------------------------------End Main---------------------------------------- ;--------------------------------Func Find Enemy------------------------------- Func findenemy() While $mainloop = 1 sleep(0250); AutoItSetOption("SendKeyDelay", 0235); AutoItSetOption("SendKeyDownDelay", 0100); Send("^9"); $tempvar = Int(Random(1,5)); ;go a random direction and check for an enemy If $tempvar = 1 Then Send("{NUMPAD8 down}"); $temp = Random(2000,6000); sleep($temp); Send("{NUMPAD8 up}"); sleep(Random(0100,0500)); CheckEnemy(); sleep(Random(0100,0500)); EndIf If $tempvar = 2 Then Send("{NUMPAD2 down}"); $temp = Random(2000,6000); sleep($temp); Send("{NUMPAD2 up}"); sleep(Random(0100,0500)); CheckEnemy(); sleep(Random(0100,0500)); EndIf If $tempvar = 3 Then Send("{NUMPAD4 down}"); $temp = Random(2000,6000); sleep($temp); Send("{NUMPAD4 up}"); sleep(Random(0100,0500)); CheckEnemy(); sleep(Random(0100,0500)); EndIf If $tempvar = 4 Then Send("{NUMPAD6 down}"); $temp = Random(2000,6000); sleep($temp); Send("{NUMPAD6 up}"); sleep(Random(0100,0500)); CheckEnemy(); sleep(Random(0100,0500)); EndIf WEnd EndFunc ;------------------------------End Func Find Enemy----------------------------- ;------------------------------Func Check Enemy-------------------------------- Func CheckEnemy() sleep(Random(0100,0400)); CheckAggro(); sleep(Random(0100,0400)); Send("{NUMPAD0}"); sleep(Random(0100,0400)); PixelSearch( 900, 682, 989, 702, 10736855); If Not @error Then ;this is a valid monster so attack it Attack(); EndIf sleep(Random(0100,0500)); PixelSearch( 900, 682, 989, 702, 11328992); If Not @error Then ;this is a valid monster so attack it Attack(); EndIf sleep(Random(0100,0500)); Send("{ESC}"); EndFunc ;-----------------------------End Func Check Enemy------------------------------ ;------------------------------Func Check Aggro-------------------------------- ;check if we have been attacked Func CheckAggro() sleep(Random(0100,0400)); ;see if we have been aggroed PixelSearch( 922, 700, 928, 709, 11068359); If NOT @error Then ;we have been aggroed! attack! Attack(); EndIf EndFunc ;----------------------------End Func Check Aggro-------------------------------- ;------------------------------Func Attack-------------------------------------- Func Attack() ;Hit enter twice to turn on autoattack sleep(Random(0100,0400)); Send("{ENTER}"); sleep(Random(0200,0600)); Send("{ENTER}"); ;check lockon and lockon if not already locked on ;check every 1/10-3/10 sec to check that we are engaged Lockon(); sleep(0100); Send("{NUMPAD8 down}"); While PixelGetColor(26,31) = 16777200 OR PixelGetColor(22,32) = 16777215 Lockon(); sleep(0100); WEnd sleep(0100); Send("{NUMPAD8 up}"); sleep(0100); ; now that we have won, autosort (in case we got something) and heal Autosort(); sleep(Random(0300,0500)); Heal(); EndFunc ;-----------------------------End Func Attack---------------------------------------- ;------------------------------Func Lockon------------------------------------- ;this function also checks if we are attacking the target Func Lockon() PixelSearch(931,710,973,713,4342527); If @error Then Send("{NUMPADMULT}"); EndIf PixelSearch(20,54, 35, 65, 7235991) If @error Then Send("{ENTER}"); EndIf EndFunc ;----------------------------End Func Lockon----------------------------------- ;-----------------------------Func AutoSort--------------------------- Func Autosort() Sleep(9000); AutoItSetOption("SendKeyDelay", 0235); AutoItSetOption("SendKeyDownDelay", 0100); Send ("!i"); Sleep(0250); Send ("{NUMPADADD}"); Sleep (0250); Send ("{ENTER}"); sleep(0350); Send ( "{UP}" ); sleep(0350); Send ("{ENTER}"); sleep(0250); Send ("{ESCAPE}"); sleep(0250); Send ("{ESCAPE}"); Sleep (0250); EndFunc ;-----------------------------------End Func AutoSort-------------------- ;------------------------------Func Heal--------------------------------------------- Func Heal() ;press asterisk to heal, get up at full health Send("{NUMPADMULT}"); Do sleep(0100); CheckAggro(); Until PixelGetColor(991,732) = 10658536 Send("{NUMPADMULT}"); ;sleep a bit cuz it takes a while to get up sleep(2000); EndFunc