|
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
|