Hi below is one macro i have created. I am submitting it in the hope of being granted premium member status. Well here it is.
//______________________________________________INTRODUCTION________________________________________ // Released: April 15th 2004 // Coded by: Seth // ALT 9 = /fish // supports 640x480, 800x600, 1024x768, 1152x864, 1280x1024, 1600x1200 // Valid values for resolution: 640 800 1024 1152 1280 1600 // In order to use the Anti-Anti Boting stuff (maxcasts) you must have compact keyboard on // and be fishing in Windurst Waters down the stairs by the teleporter //______________________________________________CONSTANTS___________________________________________ // These are the constant you can edit. Don't touch the rest unless you know what you are doing. // fullwait : the full wait between casts when "You didn't catch anything" // checkitemwait : the wait between a caught hook and when inventory is sorted if you spin around // after catching a fish, increase this and it should be fixed // sortdropwait : the wait between the completion of the inventory sorting and your next cast // resolution : your FFXI resolution // throwkelp : set to 1 to throw kelp, set to 0 to keep the kelp you catch // throwrusty : set to 1 to throw ALL rusty items you catch, set to 0 to throw no rusty items // bucket, subligar, legging : if throwrusty is set to 0, then these will take effect and determine // if you throw each one seperatly. 1 to throw, 0 to keep // maxcasts : this is used to signal the macro when to zone and stuff if you are fishing in // windurst. If you are not, set this to 0 or it will just spin your character all // around and is useless. // pauseonfull : set to 1 if you want the macro to pause when your inventory becomes full // delaysort : set this to a # above 0 to enable. This will delay the sorting of the inventory // until X+1 amount of catches have been achieved. If you set this to 1 it will // sort every other cast, set to 2 will sort every 3 cast, and so on. // shrtreeltime/longreeltime : The minimum and maximum delay before the catch is reeled in, a random // number is generated between these 2 values. // movement keys : theae are only used with compact keyboard. //______________________________________________THE GUTS____________________________________________ Constants fullwait = 14500 checkitemwait = 10000 sortdropwait = 1000 resolution = 1024 throwkelp = 1 throwrusty = 1 bucket = 1 subligar = 1 legging = 1 maxcasts = 0 pauseonfull = 0 delaysort = 0 shrtreeltime = 2300 longreeltime = 2600 elapsedtime = y = ab = delayloopnum = timeunit = tcasts = 0 tbites = 0 tsorts = 0 tdrops = 0 gotoproc = cast = 0 wait = 0 bait = 0 rod = 0 haverod = 1 havebait = 1 showlist = 0 spacer = 1 throwit = 0 checked = 0 dsc = 0 reelindelay = bastokfwdvar = //movement keys// fwd = e bck = d lft = s rht = f End
constructs LogFile = file end
If $resolution = 1024 Set y = 734 Set ab = 594 Else If $resolution = 1152 Set y = 830 Set ab = 690 Else If $resolution = 1280 Set y = 990 Set ab = 850 Else If $resolution = 800 Set y = 566 Set ab = 426 Else If $resolution = 1600 Set y = 1166 Set ab = 1026 Else If $resolution = 640 Set y = 446 Set ab = 306 End End End End End End //_________________________________Setup and Start__________________________________________________ SetActiveWindow FFXiApp CALL OnStart Procedure OnStart fileopen LogFile, log.txt fileappend LogFile filewrite LogFile, __________________________________________________ filewrite LogFile, Fishing Started: {Now} fileclose LogFile End CALL Settings Procedure Settings Delay 50 keys {SPACE}cmd{SPACE} While 1 = 1 IsObject cast at 55, $y Set gotoproc = 3 Exit Else IsObject cmd at 18, $y IsObject set at 130, $y IsObject use at 55, $y Set showlist = 0 Include objects\bait.inc Include objects\rods.inc keydown @n 100 Delay 50 keys {SPACE}cmd{SPACE} End Else IsObject setup at 55, $y keydown @n 100 delay 50 keys using $bait & $rod Delay 1000 keydown @n 100 Delay 50 keys {SPACE}cmd{SPACE} else IsObject spacer at 55, $y if $spacer = 0 Set spacer = 1 keydown @n 100 delay 50 keys spacer on delay 1000 keydown @n 100 delay 50 keys {SPACE}cmd{SPACE} Else Set spacer = 0 keydown @n 100 delay 50 keys spacer off delay 1000 keydown @n 100 delay 50 keys {SPACE}cmd{SPACE} End else IsObject baits at 55, $y keydown @n 100 Set showlist = 1 Include objects\bait.inc Delay 50 keys {SPACE}cmd{SPACE} else IsObject rods at 55, $y keydown @n 100 Set showlist = 1 Include objects\rods.inc Delay 50 keys {SPACE}cmd{SPACE} end End End End End End End delay 300 End End //_________________________________MAIN LOOP OF MACRO_______________________________________________ While {ActiveWindow} = FFXiApp If $wait <> 0 CALL Wait If $maxcasts <> 0 If $cast >= $maxcasts Set cast = 0 CALL Windurst End End End If $gotoproc = 3 CALL Fish Else If $gotoproc = 4 CALL CheckItem Else If $gotoproc = 1 CALL Settings End End End If $checked = 1 Set checked = 0 If $throwit = 1 Inc $tdrops CALL DropItem Else Inc $tsorts CALL SortItem End End End //_________________________________Anti-Anti Botting for Windurst___________________________________ Procedure Windurst // to woods keydown $rht 1100 Delay 1000 keys /targetnpc Delay 100 keys {RETURN} Delay 1000 keys {RETURN} Delay 4000 keys {RETURN} Delay 5000 MousePos 50, 300 Delay 250 MousePos 50, $ab Delay 250 keys {RETURN} Delay 18000 // increease this if you have problems not zoning in fast enough // to waters keydown $rht 1500 Delay 8000 keys /targetnpc Delay 250 keys {RETURN} Delay 1000 keys {RETURN} Delay 4000 keys {RETURN} Delay 4000 MousePos 50, 300 Delay 250 MousePos 50, $ab Delay 250 keys {RETURN} Delay 15000 // increease this if you have problems not zoning in fast enough keydown $bck 500 keydown $rht 750 keydown $fwd 1700 End Procedure Bastok Compute bastokfwdvar = Random(1) * (5000-4000) + 4000 Compute bastokfwdvar = TRUNC($bastokfwdvar) keydown $bck 1000 Delay 50 keydown $lft 800 Delay 50 keydown $fwd 7000 Delay 10000 keydown $bck 2000 Delay 10000 keydown $fwd $bastokfwdvar Delay 50 keydown $lft 750 Delay 50 keydown $fwd 2000 Delay 50 End //_________________________________Wait Between casts_______________________________________________ Procedure Wait // (3) Compute delayloopnum = trunc($wait / 100) Set wait = 0 Loop $delayloopnum delay 100 IsObject cmd at 18, $y IsObject setup at 55, $y keydown @n 100 Set gotoproc = 1 Exit End End End End //_________________________________Fishing Procedure________________________________________________ Procedure Fish // (3) keydown @n 100 Delay 100 keydown @9 250 Delay 100 keys {RETURN} Loop 20 IsObject noBait at 20, $y if $havebait = 1 delay 50 keys /equip ammo "$bait" delay 100 keys {RETURN} Set havebait = 0 Set gotoproc = 3 Exit Else Set havebait = 1 Set gotoproc = 1 keys {SPACE}Paused Pause keydown @n 100 Exit End Else IsObject noRod at 20, $y if $haverod = 1 delay 50 keys /equip range "$rod" delay 100 keys {RETURN} Set haverod = 0 Set gotoproc = 3 Exit Else Set haverod = 1 Set gotoproc = 1 keys {SPACE}Paused Pause keydown @n 100 Exit End Else IsObject CannotFish at 20, $y keys /say ???? keys {RETURN} delay 1000 keys /think Delay 100 keys {RETURN} Set gotoproc = 1 keys {SPACE}Paused Pause keydown @n 100 Exit Else IsObject WaitMore at 20, $y Set wait = $sortdropwait Set gotoproc = 3 Exit End End End End Delay 100 End Set havebait = 1 Set haverod = 1 Inc $cast Inc $tcasts Loop 600 delay 100 IsObject CaughtHook at 20, $y Compute reelindelay = Random(1) * ($longreeltime-$shrtreeltime) + $shrtreeltime Compute reelindelay = TRUNC($reelindelay) Delay $reelindelay keys {RETURN} Inc $tbites If $pauseonfull = 1 Loop 15 IsObject Released at 20, $y Set gotoproc = 1 keys {SPACE}Paused Pause keydown @n 100 Exit End Delay 100 End End If $delaysort <> 0 If $dsc < $delaysort Inc $dsc Set wait = $fullwait Set gotoproc = 3 Exit Else Set dsc = 0 Set wait = $checkitemwait Set gotoproc = 4 Exit End Else Set wait = $checkitemwait Set gotoproc = 4 Exit End Else IsObject noItem at 20, $y If $spacer = 1 keys /equip Delay 50 keys {RETURN} End Set wait = $fullwait Set gotoproc = 3 Exit Else IsObject cmd at 18, $y IsObject setup at 70, $y keydown @n 100 Set gotoproc = 1 Exit End End End End End Set gotoproc = 4 Exit End //_________________________________Item Checking and Sorting Prcedures______________________________ Procedure CheckItem // (4) 13 seconds Set gotoproc = 3 Set checked = 1 Set throwit = 0 delay $wait keydown @n 100 keydown @i 100 delay 1000 keydown {RIGHT} 2000 IsObject Rusty at 40, 215 If $throwrusty = 1 Set throwit = 1 Else IsObject Sub at 88, 215 If $subligar = 1 Set throwit = 1 End Else IsObject Buc at 88, 215 If $bucket = 1 Set throwit = 1 End Else IsObject Leg at 88, 215 If $legging = 1 Set throwit = 1 End End End End End Else IsObject Kelp at 40, 215 If $throwkelp = 1 Set throwit = 1 End Else IsObject Copper at 40, 215 Set throwit = 1 End End End End Procedure DropItem // (5) 2.5 seconds keys {RETURN} delay 500 keydown {DOWN} 100 delay 500 keys {RETURN} delay 500 keydown {DOWN} 100 delay 500 keys {RETURN} delay 500 keydown @n 100 Set wait = $sortdropwait End Procedure SortItem // (6) 2.5 seconds keydown @f 100 delay 500 keys {RETURN} Delay 500 keydown {DOWN} 100 delay 500 keys {RETURN} delay 500 keydown @n 100 Set wait = $sortdropwait End Procedure log on STOP Compute elapsedtime = {ElapsedMSec} / 1000 Compute elapsedtime = TRUNC( $elapsedtime ) If $elapsedtime >= 240 Compute elapsedtime = $elapsedtime / 60 Set timeunit = minutes Else Set timeunit = seconds End fileopen LogFile, log.txt //creates and opens the file in the specified directory fileappend LogFile //or it can be file rewrite filewrite LogFile, The macro ran for $elapsedtime $timeunit filewrite LogFile, Your line was cast $tcasts times. filewrite LogFile, You got $tbites bites. filewrite LogFile, Your inventory was sorted $tsorts times. filewrite LogFile, You dropped $tdrops items. filewrite LogFile, Macro Stopped: {Now} fileclose LogFile end
|