taultunleashed logoi can not catch any fish ! : FFXI General Discussions
newtopic  postreply
 [ 12 posts ] 
blue large dot

i can not catch any fish ! : FFXI General Discussions

Posted: June 15th, 2005, 4:28 am
 
saohjung
saohjung's Reps:
User avatar
Hi, how are ya'll?
i have been having a problem from day 4 of my use. everthing is nomal but it does not catch any fish. It says "You did not catch anything"... and i changed 3 different area..... It says samething "You did not catch anything" on the chatting box... so i restart PC run again but samething..
please tell me what to do..... HELP ME OUT !!!


Reply with quote
Posted: June 15th, 2005, 4:38 am
 
asl18fs

Total Posts: 2707
Joined: May 1st, 2004, 4:00 am
asl18fs's Reps: 1
User avatar
Lifetime Member (Scripting)
premium
Please:
a) state which fishing script you're using.
b) attach your xunleashed.log and script log.
c) Provide a description of what you've changed in the script.

_________________
How To Ask Questions The Smart Way
Translation: Read the documentation and don't PM me about your problems. I AM NOT AN ADMIN!!!


Reply with quote
Posted: June 15th, 2005, 4:47 am
 
saohjung
saohjung's Reps:
User avatar
hi !
i use both Xufish 3.6.... fisher_basic.vbs n advanced fishing bot3.3.3..
i did not changed anything in script


Reply with quote
Posted: June 15th, 2005, 5:00 am
 
saohjung
saohjung's Reps:
User avatar
06/15/05 06:38:30 AM



***** XUnleashed Trace Log Started: Wednesday, June 15, 2005 06:38:30





06/15/05 06:38:30 AM Registered XUnleashed Controls...

06/15/05 06:38:31 AM Registered XUnleashed IPPacketSniffer......

06/15/05 06:38:31 AM Registered XUScriptHelper...

06/15/05 06:38:31 AM XUnleashed Client: Click Play to begin...

06/15/05 06:38:39 AM XUnleashed Client: Updating 3rd Party Plugins and Services...

06/15/05 06:38:39 AM XUnleashed Client: Patching FFXIUnleashed Map Plugin

06/15/05 06:38:39 AM XUnleashed Client: Retrieving the file: update

06/15/05 06:38:39 AM XUnleashed Client: Redirecting to alternate patch server. . .

06/15/05 06:38:39 AM XUnleashed Client: Retrieving the file: FFXINews.txt

06/15/05 06:38:39 AM XUnleashed Client: Redirecting to alternate patch server. . .

06/15/05 06:38:39 AM XUnleashed Client: Patching Wyvern's FFXi Servicer

06/15/05 06:38:39 AM XUnleashed Client: Retrieving the file: update

06/15/05 06:38:39 AM XUnleashed Client: Redirecting to alternate patch server. . .

06/15/05 06:38:39 AM XUnleashed Client: Patching complete. . .

06/15/05 06:38:39 AM XUnleashed Client: Connecting to XUnleashed...

06/15/05 06:38:39 AM XUnleashed Client: Authenticating User...

06/15/05 06:38:40 AM XUnleashed Client: Connected. . .

06/15/05 06:38:40 AM Using Standard Hooking. . .

06/15/05 06:38:40 AM XUnleashed Client: Launching. . .

06/15/05 06:38:41 AM Found Target Process: pol.exe

06/15/05 06:38:41 AM Initializing COM Objects. . .

06/15/05 06:38:41 AM Setting up DirectX Hooks. . .

06/15/05 06:39:48 AM FOUND: Direct3DCreate8

06/15/05 06:39:48 AM Starting Services. . .

06/15/05 06:39:48 AM ------->FOUND A StandardSERVICE: XUnleashed Windows Input Service

06/15/05 06:39:48 AM CXUWinInput::Initialize()

06/15/05 06:39:48 AM ------->FOUND A StandardSERVICE: XUnleashed TCP/IP Packet Sniffer

06/15/05 06:39:48 AM Starting the 3rd Party Services...

06/15/05 06:39:48 AM ------->FOUND A 3rd Party Service: Wyvern's FFXi Servicer

06/15/05 06:39:49 AM Starting Plugins. . .

06/15/05 06:39:49 AM ------->FOUND A 3rd Party Plugin: FFXIUnleashed Map Plugin

06/15/05 06:39:49 AM Loading Window Schema. . .

06/15/05 06:39:49 AM Looking for 3rd Party Service for services\FFXIService.Service

06/15/05 06:39:49 AM ERROR: Failed to find a named Control!!!

06/15/05 06:39:49 AM ------->FOUND A STANDARD Plugin: XUnleashed V2 Triggers

06/15/05 06:39:49 AM Loading Window Schema. . .

06/15/05 06:39:49 AM ------->FOUND A STANDARD Plugin: XUnleashed V2 Macros

06/15/05 06:39:49 AM Loading Window Schema. . .

06/15/05 06:39:49 AM ------->FOUND A STANDARD Plugin: XUnleashed V2 Scripts

06/15/05 06:39:49 AM Loading Window Schema. . .

06/15/05 06:39:49 AM Attempting to lock onto Client. . .

06/15/05 06:39:49 AM FOUND: Direct3D8::CreateDevice()

06/15/05 06:39:59 AM FOUND: Direct3DDevice8::Present

06/15/05 06:39:59 AM Initializing DX8 BackBuffers...

06/15/05 06:40:44 AM XUScriptHelper->Creating Script Engine (VBScript). . .

06/15/05 06:40:44 AM XUScriptHelper->AddScriptItem: XUScriptHost

06/15/05 06:40:44 AM XUScriptHelper->AddScriptItem: Win32API

06/15/05 06:40:44 AM XUScriptHelper->AddScriptItem: VirtualKey

06/15/05 06:40:44 AM XUScriptHelper->AddScriptItem: Memory

06/15/05 06:40:44 AM XUScriptHelper->AddScriptItem: SystemInfo

06/15/05 06:40:44 AM XUScriptHelper->AddScriptItem: MemoryBasicInformation

06/15/05 06:40:44 AM XUScriptHelper->AddScriptItem: XUScriptPlugin

06/15/05 06:40:44 AM XUScriptHelper->Executing Script: ' Include variables declaration

XUScriptHost.ImportScript("xufish\fisher_variables.vbs")



scriptTimeInterval = 60



' Declare events

function onChangeZone

' Beep

if not scriptPaused then

ForcePause

Win32API.XUBeep 750,1000

end if

end function



function onStateChange

' Do nothing

end function



function onScriptTimeInterval

' Just beep three times

Win32API.XUBeep 750,1000

Sleep(250)

Win32API.XUBeep 750,1000

Sleep(250)

Win32API.XUBeep 750,1000

end function



function onMonsterCheck

' Do nothing

end function



function onNoBait

ForcePause

end function





' Include and start main script

XUScriptHost.ImportScript("xufish\fisher.vbs")

runFisher



06/15/05 06:40:44 AM XUScriptHelper->Executing Script: ' Variables intended to be set by the user per script are declared here



' Declare variables

'XUScriptPlugin.staStatus.Text = "Initializing..."



Public scriptTimeInterval



Public quick_macro, quick_macroShift

Public normal_macro, normal_macroShift

Public rod_macro, rod_macroShift

Public armor_macro, armor_macroShift



Public max_waitFishingStart



Public sort_waitMin, sort_waitMax



Public useStatistics

Public isFullscreen



Public catch_reactionspeedMax, catch_reactionspeedMin



Public fishes



' Macro shortcuts

quick_macro = VirtualKey.VK_2

quick_macroShift = VirtualKey.VK_MENU

normal_macro = VirtualKey.VK_1

normal_macroShift = VirtualKey.VK_MENU

rod_macro = VirtualKey.VK_3

rod_macroShift = VirtualKey.VK_MENU

armor_macro = VirtualKey.VK_4

armor_macroShift = VirtualKey.VK_MENU



' Max time to wait for PlayerStatus 0 to turn into 1

max_waitFishingStart = 8000



' Shortest user recation time on catch

catch_reactionspeedMax = 1000

' Longest user recation time on catch

catch_reactionspeedMin = 500



' Set to true to enable statistics window

useStatistics = true



' Set to false if you play the game in a window

isFullscreen = true

' Minimum amount of catches before sort inventory

sort_waitMin = 3

' Maximum amount of catches before sort inventory

sort_waitMax = 4



' This is a list of known fishes

' Format:

' name type rare stack value

' Type:

' 0: keep

' 1: throw away



fishes = array( _

array(0, "pair of rusty leggings", 1, false, false, 0), _

array(0, "Bastore Bream", 0, false, true, 1230), _

array(0, "Bastore Sardine", 0, false, true, 15), _

array(0, "Bhefhel Marlin", 0, false, false, 615), _

array(0, "Black Eel", 0, false, true, 392), _

array(0, "Black Sole", 0, false, true, 1575), _

array(0, "Bladefish", 0, false, false, 900), _

array(0, "Bluetail", 0, false, true, 675), _

array(0, "Cave Cherax", 0, false, false, 3280), _

array(0, "Cheval Salmon", 0, false, true, 41), _

array(0, "Cobalt Jellyfish", 0, false, true, 165), _

array(0, "Copper Frog", 1, false, true, 45), _

array(0, "Coral Butterfly", 0, false, false, 256), _

array(0, "Crayfish", 0, false, true, 80), _

array(0, "Crescent Fish", 0, false, true, 990), _

array(0, "Crystal Bass", 0, false, true, 0), _

array(0, "Dark Bass", 0, false, true, 45), _

array(0, "Elshimo Frog", 0, false, true, 115), _

array(0, "Elshimo Newt", 0, false, false, 393), _

array(0, "Emperor Fish", 0, false, false, 1230), _

array(0, "Fat Greedie", 0, true, false, 0), _

array(0, "Forest Carp", 0, false, true, 33), _

array(0, "Gavial Fish", 0, false, false, 1500), _

array(0, "Giant Catfish", 1, false, false, 225), _

array(0, "Giant Chirai", 0, false, false, 2255), _

array(0, "Giant Donko", 0, false, false, 430), _

array(0, "Gigant Squid", 0, false, false, 1200), _

array(0, "Gold Carp", 0, false, true, 675), _

array(0, "Gold Lobster", 0, false, true, 430), _

array(0, "Greedie", 0, false, true, 15), _

array(0, "Grimmonite", 0, false, false, 1400), _

array(0, "Gugru Tuna", 0, false, false, 225), _

array(0, "Icefish", 0, false, true, 344), _

array(0, "Jungle Catfish", 0, false, false, 1350), _

array(0, "Moat Carp", 0, false, true, 333), _

array(0, "Monke-Onke", 0, false, false, 675), _

array(0, "Nebimonite", 0, false, true, 1000), _

array(0, "Noble Lady", 0, false, true, 900), _

array(0, "Nosteau Herring", 0, false, true, 180), _

array(0, "Ogre Eel", 0, false, true, 73), _

array(0, "Pipira", 0, false, true, 104), _

array(0, "Quus", 0, false, true, 45), _

array(0, "Red Terrapin", 0, false, true, 675), _

array(0, "Ryugu Titan", 0, false, false, 3280), _

array(0, "Sandfish", 0, false, true, 52), _

array(0, "Sea Zombie", 0, false, false, 1435), _

array(0, "Shall Shell", 0, false, true, 675), _

array(0, "Shining Trout", 0, false, true, 58), _

array(0, "Silver Shark", 0, false, true, 1125), _

array(0, "Takitaro", 0, false, false, 1435), _

array(0, "Three-eyed Fish", 0, false, false, 1025), _

array(0, "Tiger Cod", 0, false, true, 115), _

array(0, "Titanictus", 0, false, false, 2000), _

array(0, "Tricolored Carp", 0, false, true, 105), _

array(0, "Yellow Globe", 0, false, true, 165), _

array(0, "Zafmlug Bass", 0, false, true, 53), _

array(0, "Zebra Eel", 0, false, true, 900), _

array(0, "Gil", 0, false, false, 1), _

array(0, "Arrowwood Log", 1, false, false, 0), _

array(0, "Copper Ring", 1, false, false, 0), _

array(0, "Coral Fragment", 0, false, true, 5000), _

array(0, "Clump of Pamtam kelp",1, false, true, 0), _

array(0, "Damp Scroll", 0, true, false, 1000), _

array(0, "Fish Scale Shield", 0, false, false, 0), _

array(0, "Mythril Dagger", 0, false, false, 0), _

array(0, "Mythril Sword", 0, false, false, 0), _

array(0, "Norg Shell", 0, true, false, 505), _

array(0, "Ripped Cap", 1, true, false, 0), _

array(0, "Rusty Bucket", 1, false, false, 0), _

array(0, "Rusty Cap", 0, false, false, 1800), _

array(0, "Rusty Greatsword", 0, false, false, 4000), _

array(0, "Rusty Leggings", 1, false, false, 0), _

array(0, "Rusty Pick", 0, false, false, 2700), _

array(0, "Rusty Subligar", 1, false, false, 0), _

array(0, "Silver Ring", 0, false, false, 1500) _

)



for i = LBound(fishes) to UBound(fishes)

fishes(i)(1) = LCase(fishes(i)(1))

next



' New format

' name type

'

' type1:

' arrays

' match colors

' except colors (can be null)



' Format

' index

' type

' 1:

' arrays

' match colors array

' except colors array (can be null)

'

' Indexes:

' tell detect = This detects a tell message at the bottom line of the chat dialog

' gm detect = This detects GMs, there's intentionally no support for this check, afk fish at your own risk

' zoning detect = This detects when the character is switching zones

' user chatting = This detects if the user is currently typing (the white bar shown when entering text)

' macro toolbar = This detects if the macro toolbar is visible (the one that pops up when you press alt)

' damage detect = This detects a line in the chatbox where you take damage (I set this to an orange color, red maxed, green at 20% and blue at 0%)

' rusty check = This detects various items that should be thrown away when caught

' onland check = This detects a line in the chatbox where you can't fish in the current location

' nobait check = This detects a line in the chatbox where you are out of bait

' toosmall check = This detects a line in the chatbox where you are notified that the fish you caught was too small

' monster hp 85 = monster 85% hp check

' monster hp 50 = monster 50% hp check

' player hp 75 = player 75% hp check

' player hp 50 = player 50% hp check

' player hp 25 = player 25% hp check



Public colorDetect



colorDetect = array( _

array("tell detect", 1, _

array( _

null, _

null _

) _

), _

array("gm detect", 1, _

array( _

null, _

null _

) _

), _

array("zoning detect", 1, _

array( _

null, _

null _

) _

), _

array("user chatting", 1, _

array( _

null, _

null _

) _

), _

array("macro toolbar", 1, _

array( _

null, _

null _

) _

), _

array("damage detect", 1, _

array( _

null, _

null _

) _

), _

array("onland check", 1, _

array( _

null, _

null _

) _

) _

)



' These are MY colors for 640x480, THEY MOST LIKELY WON'T WORK FOR YOU!!!!!!!!!!!!!!!!!!!!!!!

'colorDetect = array( _

' array("tell detect", 1, _

' array( _

' array( _

' array( 21, 432, 10, 25, 230, 255, 120, 160, 230, 255, 10) _

' ), _

' null _

' ) _

' ), _

' array("gm detect", 1, _

' array( _

' array( _

' array(129, 325, 40, 1, 155, 165, 165, 175, 180, 190, 15) _

' ), _

' null _

' ), _

' array( _

' array( _

' array( 21, 432, 10, 25, 60, 100, 200, 255, 200, 255, 10) _

' ), _

' null _

' ) _

' ), _

' array("zoning detect", 1, _

' array( _

' array( _

' array(400, 386, 3, 3, 0, 0, 0, 0, 0, 0, 9) _

' ), _

' null _

' ) _

' ), _

' array("user chatting", 1, _

' array( _

' array( _

' array(299, 443, 1, 1, 186, 186, 195, 195, 199, 199, 1) _

' ), _

' null _

' ) _

' ), _

' array("damage detect", 1, _

' array( _

' array( _

' array( 21, 446, 10, 12, 240, 255, 160, 180, 40, 60, 5) _

' ), _

' null _

' ) _

' ), _

' array("onland check", 1, _

' array( _

' null, _

' null _

' ) _

' ) _

')



06/15/05 06:40:45 AM XUScriptHelper->Executing Script: ' Include libraries

XUScriptPlugin.staStatus.Text = "Loading libraries... (fisher functions)"

XUScriptHost.ImportScript("xufish\fisher_functions.vbs")

XUScriptPlugin.staStatus.Text = "Loading libraries... (common)"

XUScriptHost.ImportScript("xufish\common.vbs")

XUScriptPlugin.staStatus.Text = "Loading libraries... (common functions)"

XUScriptHost.ImportScript("xufish\common_functions.vbs")

XUScriptPlugin.staStatus.Text = "Loading libraries... (navigator)"

XUScriptHost.ImportScript("xufish\navigator.vbs")

XUScriptPlugin.staStatus.Text = "Loading libraries... (utils)"

XUScriptHost.ImportScript("xufish\utils.vbs")

XUScriptPlugin.staStatus.Text = "Loading libraries... (playerstatus)"

XUScriptHost.ImportScript("xufish\playerstatus.vbs")

XUScriptPlugin.staStatus.Text = "Loading libraries... (monster)"

XUScriptHost.ImportScript("xufish\monster.vbs")

XUScriptPlugin.staStatus.Text = "Loading libraries... (synth)"

XUScriptHost.ImportScript("xufish\synth.vbs")

XUScriptPlugin.staStatus.Text = "Loading libraries done."



' Script global variables, only set once

XUScriptPlugin.staStatus.Text = "Declaring variables."



Dim scriptRunning

Dim scriptPaused

Dim scriptState

Dim scriptTime

Dim totalScriptTime

Dim statsTries, statsBites, statsObtained, statsLost, statsMisses, statsLineBreaks, statsRodBreaks, statsMonsters, statsRusty, statsTooSmall, statsGil



Dim i



Dim onSneakWearing, onSneakOff, onCatchMonster, onHPMPCheck, onCanCast, onBite, onInventoryFull, onMonsterHit, onCantFishHereMessage, onCatchFish, onReady

onSneakWearing = null

onSneakOff = null

onSneakOn = null

onCatchMonster = null

onHPMPCheck = null

onCanCast = null

onBite = null

onInventoryFull = null

onMonsterHit = null

onCantFishHereMessage = null

onCatchFish = null

onReady = null





Dim obtainedRegExp, releaseRegExp, waitRegExp, nobaitRegExp



' Initialize variables

XUScriptPlugin.staStatus.Text = "Initializing variables"



' Set stats to start from 0

statsTries = 0

statsBites = 0

statsObtained = 0

statsLost = 0

statsMisses = 0

statsLineBreaks = 0

statsRodBreaks = 0

statsMonsters = 0

statsRusty = 0

statsTooSmall = 0

statsGil = 0



' Init script state, for automated zoning and stuff

scriptState = 0

scriptTime = Now

totalScriptTime = Now



' Init regexps

set obtainedRegExp = New RegExp

obtainedRegExp.Pattern = characterName & " caught ([^\s]+)[\s]?(.*)!"

obtainedRegExp.IgnoreCase = False

obtainedRegExp.Global = True

set releaseRegExp = New RegExp

releaseRegExp.Pattern = characterName & " caught ([^\s]+)[\s]?(.*), but"

releaseRegExp.IgnoreCase = False

releaseRegExp.Global = True

set waitRegExp = New RegExp

waitRegExp.Pattern = "You must wait longer to perform that action"

waitRegExp.IgnoreCase = False

waitRegExp.Global = True

set nobaitRegExp = New RegExp

nobaitRegExp.Pattern = "You can't fish without bait on the hook"

nobaitRegExp.IgnoreCase = False

nobaitRegExp.Global = True

set toosmallRegExp = New RegExp

toosmallRegExp.Pattern = "Whatever caught the hook was too small to fish with this rod"

toosmallRegExp.IgnoreCase = False

toosmallRegExp.Global = True

set sneakwearingRegExp = New RegExp

sneakwearingRegExp.Pattern = "The effect of Sneak is about to wear off"

sneakwearingRegExp.IgnoreCase = False

sneakwearingRegExp.Global = True

set sneakoffRegExp = New RegExp

sneakoffRegExp.Pattern = characterName & "'s Sneak effect wears off"

sneakoffRegExp.IgnoreCase = False

sneakoffRegExp.Global = True

set sneakonRegExp = New RegExp

sneakonRegExp.Pattern = characterName & " gains the effect of Sneak."

sneakonRegExp.IgnoreCase = False

sneakonRegExp.Global = True





XUScriptPlugin.staStatus.Text = "Declaring functions..."





' Configurable functions



function quickFishMacro

KeyDown(quick_macroShift)

waitForMacroBar

pressKey(quick_macro)

KeyUp(quick_macroShift)

end function



function normalFishMacro

KeyDown(normal_macroShift)

waitForMacroBar

pressKey(normal_macro)

KeyUp(normal_macroShift)

end function



function equipRodMacro

KeyDown(rod_macroShift)

waitForMacroBar

pressKey(rod_macro)

KeyUp(rod_macroShift)

end function



function equipArmorMacro

KeyDown(armor_macroShift)

waitForMacroBar

pressKey(armor_macro)

KeyUp(armor_macroShift)

end function



function checkKeyboard

' here we look through all keyboard shortcuts

if (XUGetAsyncKeyState(VirtualKey.VK_F6) <> 0) Then

useTellDetect = not useTellDetect

if useTellDetect then

writeLogLine ("TellDetect enabled after user pressed F6!")

updateStatus "TellDetect enabled"

else

writeLogLine ("TellDetect disabled after user pressed F6!")

updateStatus "TellDetect disabled"

end if

end if

if (XUGetAsyncKeyState(VirtualKey.VK_F7) <> 0) Then

writeLogLine ("Resetting TopLeft after user pressed F7!")

win_posx = -1

win_posy = -1

getTopLeft

end if

if (XUGetAsyncKeyState(VirtualKey.VK_F8) <> 0) Then

writeLogLine ("Forcing pause after user pressed F8!")

ForcePause

Sleep 300

updateStatus "Pause pressed"

end if

if (XUGetAsyncKeyState(VirtualKey.VK_F9) <> 0) Then

writeLogLine ("UnPausing after user pressed F9!")

UnPause

Sleep 300

updateStatus "Unpause pressed"

end if

if (XUGetAsyncKeyState(VirtualKey.VK_F10) <> 0) Then

if useStatistics then

writeLogLine ("Toggling statistics after user pressed F10!")

toggleStatsWindow

end if

end if

if (XUGetAsyncKeyState(VirtualKey.VK_F11) <> 0) Then

writeLogLine ("Terminating script after user pressed F11!")

scriptRunning = false

Sleep 300

end if

end function



' Common functions, don't touch



function checkForTellMessage

Dim colorCheck

colorCheck = GetDetectArray("tell detect", colorDetect)

if colorDetectCheck(colorCheck) then

writeLogLine ("Tell detected!")

onTellMessage

end if

end function



function checkForGMMessage

Dim colorCheck

colorCheck = GetDetectArray("gm detect", colorDetect)

if colorDetectCheck(colorCheck) then

writeLogLine ("GM detected!")

onGMMessage

end if

end function



function checkForMonster

Dim colorCheck

colorCheck = GetDetectArray("damage detect", colorDetect)

if colorDetectCheck(colorCheck) then

Win32API.XUBeep 750,200

if not IsNull(onMonsterHit) then

Execute(onMonsterHit + "()")

else

writeLogLine ("Entering onMonsterAttack(false)!")

onMonsterAttack(false)

writeLogLine ("Leaving onMonsterAttack(false).")

end if

end if

onMonsterCheck

end function



function checkForZoning

Dim colorCheck

colorCheck = GetDetectArray("zoning detect", colorDetect)

if colorDetectCheck(colorCheck) then

writeLogLine ("Zone change detected!")

onChangeZone

end if

end function



function checkImportantEvents

checkForTellMessage

checkForGMMessage

checkForZoning

checkKeyboard

end function



function waitForMacroBar

Dim colorCheck



colorCheck = GetDetectArray("macro toolbar", colorDetect)



if IsNull(colorCheck) then

sleep(1000)

else

Dim localtimer



localtimer = 0

do while (localtimer < 2500) and (not colorDetectCheck(colorCheck))

Sleep 100

localtimer = localtimer + 100

loop

end if

end function



function waitForUser

' wait max 60 seconds for user to stop typing

Dim localtimer

Dim temptext

Dim colorCheck



localtimer = 0

colorCheck = GetDetectArray("user chatting", colorDetect)

if colorDetectCheck(colorCheck) then

writeLogLine ("Waiting for user to stop typing!")

temptext = XUScriptPlugin.staStatus.Text

updateStatus "Waiting for user"

do while (localtimer < 240) and colorDetectCheck(colorCheck)

Sleep 250

localtimer = localtimer + 1

loop

XUScriptPlugin.staStatus.Text = temptext

end if

end function



function controlledSleep(sleepTime)

Dim currentSleepTime

currentSleepTime = 0

do while sleepTime >= currentSleepTime

Sleep 200

currentSleepTime = currentSleepTime + 200

checkImportantEvents

checkForMonster

loop

end function



function togglePause

writeLogLine ("TogglePause called!")

scriptPaused = not scriptPaused

if useStatistics then

updateButtons

end if

end function



function forcePause

writeLogLine ("ForcePause called!")

scriptPaused = true

if useStatistics then

updateButtons

end if

end function



function unPause

writeLogLine ("UnPause called!")

scriptPaused = false

if useStatistics then

updateButtons

end if

end function





' Script start, don't touch this either

function runFisher

XUScriptPlugin.staStatus.Text = "Loading FFXIService..."

on error resume next

set serviceObject = XUScriptPlugin.GetService("FFXiService.Service")

if Err.number <> 0 then

' FFXIService didn't load

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

writeLogLine ("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

XUScriptPlugin.staStatus.Text = "FFXIService failed to load"

MsgBox("CRITICAL ERROR!!!! ffxiService failed to load, please install it!!")

else

on error goto 0

XUScriptPlugin.staStatus.Text = "FFXIService loaded"



on error resume next

if (characterName = "") then

writeLogLine ("CRITICAL ERROR!!!! (name check) Your ffxiService is old or not functioning properly, please reinstall it!!")

MsgBox("CRITICAL ERROR!!!! (name check) Your ffxiService is old or not functioning properly, please reinstall it!!")

end if

if Err.Number <> 0 then

writeLogLine ("CRITICAL ERROR!!!! (name check) Your ffxiService is old or not functioning properly, please reinstall it!! BACKUP LINE!")

end if

on error goto 0



' get the top left position of the window

if isFullscreen then

win_posx = 0

win_posy = 0

else

win_posx = -1

win_posy = -1

getTopLeft

end if



if useStatistics then

XUScriptPlugin.staStatus.Text = "Creating statistics window"

XUScriptHost.ImportScript("xufish\stats.vbs")

openStatsWindow

end if



scriptRunning = true



Dim currentStatus, lastStatus

Dim lastMacroTime

Dim isFish

Dim sortCurrent, sortNext

Dim deleteRusty

Dim skip

Dim text

Dim colorCheck

Dim regexpMatch

Dim canCast, canPullIn

Dim firstCase

Dim tempInLoppFishWeight



lastMacroTime = -1

currentStatus = -1

isFish = false

sortCurrent = 0

sortNext = -1

deleteRusty = false

lostTooSmall = false



' Generate change event in case the user wants to do something before fishing

onStateChange



' Reset script running time

scriptTime = Now

firstCast = true



writeLogLine ("Script now running...")



updateStatus "Fishing"



doKeyboardCommand("/cm p")

equipRodMacro

do while scriptRunning

if scriptPaused then

currentStatus = getPlayerStatus(serviceObject)

updateStatus "Paused (" & currentStatus & ", " & (scriptTimeInterval - minuteDiff(Now, scriptTime)) & " minutes [ " & minuteDiff(Now, totalScriptTime) & " ])"

Sleep 200

checkKeyboard

checkForMonster

checkForZoning

' have to reset this or script might repause immediatelly on resume

lastMacroTime = -1

else

' Sleep so script can be closed with F12

controlledSleep(200)

checkForMonster

lastStatus = currentStatus

currentStatus = getPlayerStatus(serviceObject)

updateStatus "Fishing (" & currentStatus & ", " & (scriptTimeInterval - minuteDiff(Now, scriptTime)) & " minutes [ " & minuteDiff(Now, totalScriptTime) & " ])"



select case currentStatus

case statusNone

if minuteDiff(Now, scriptTime) > scriptTimeInterval then

writeLogLine ("Entering onScriptTimeInterval...")

onScriptTimeInterval

writeLogLine ("Leaving onScriptTimeInterval.")

' Reset script running time

scriptTime = Now

lastMacroTime = -1

end if

skip = false

lostCatch = false

lostTooSmall = false

' Check for "Can't fish here"

if lastMacroTime <> -1 then

colorCheck = GetDetectArray("onland check", colorDetect)

if colorDetectCheck(colorCheck) then

writeLogLine ("Can't fish here detected!")

onCantFishHere

lastMacroTime = -1

skip = true

end if

end if

if (secondDiff(Now, scriptTime) < 15) and not firstCast then

skip = true

end if

firstCast = false

if not skip then

if not IsNull(onCanCast) then

Execute("canCast = " & onCanCast & "()")

else

canCast = true

end if

if canCast then

if lastMacroTime = -1 then

if not IsNull(onHPMPCheck) then

Execute(onHPMPCheck + "()")

end if

lastMacroTime = Now

waitForUser

if not IsNull(onReady) then

Execute(onReady + "()")

end if



waitForUser

if deleteRusty then

writeLogLine ("Deleting a rusty item.")

deleteLastItem

deleteRusty = false

end if

if sortCurrent >= sortNext then

writeLogLine ("Sorting inventory.")

SortInventory win_posx, win_posy, mouse_sort_autox, mouse_sort_autoy, mouse_sort_yesx, mouse_sort_yesy

sortCurrent = 0

sortNext = Int((sort_waitMax - sort_waitMin + 1) * Rnd + sort_waitMin)

end if



waitForUser

writeLogLine ("Trying to fish: normal.")

normalFishMacro

elseif secondDiff(Now, lastMacroTime) > (max_waitFishingStart / 1000) then

waitForUser

writeLogLine ("Trying to fish: quick.")

quickFishMacro

' sleep so we don't repeat too fast

controlledSleep(2000)

end if

end if

if lastMacroTime <> -1 then

if secondDiff(Now, lastMacroTime) > 60 then

writeLogLine ("Forcing pause, character has been trying to fish without success for over 60 seconds!")

forcePause

end if

end if

end if

case statusDead

' just do nothing, we're dead after all

Sleep 1000

case statusFighting

' just do nothing, assuming player is fighting manually

Sleep 1000

case statusHealing

writeLogLine ("Character is healing, trying to stand up.")

pressKey(VirtualKey.VK_A)

controlledSleep(4000)

case statusChocobo

' sleep extra long to reduce script load

Sleep 10000

case statusFishing

' good times, we are now fishing

if lastStatus <> statusFishing then

writeLogLine ("Fishing.")

lastMacroTime = -1

if useStatistics then

updateStatistics

end if

statsTries = statsTries + 1

isFish = false

end if

case statusBite

if lastStatus <> statusBite then

if not IsNull(onBite) then

Execute("canPullIn = " & onBite & "()")

else

canPullIn = true

end if

if canPullIn then

writeLogLine ("Something caught the hook.")

Sleep Int((catch_reactionspeedMax - catch_reactionspeedMin + 1) * Rnd + catch_reactionspeedMin)

waitForUser

tempInLoppFishWeight = getFishWeight(serviceObject)

writeLogLine("This fish weighs " & tempInLoppFishWeight)

if (tempInLoppFishWeight < 0) then

MsgBox("CRITICAL ERROR!!!! (stamina check) Your ffxiService is old or not functioning properly, please reinstall it!!")

end if

writeLogLine ("Entering onFishBite!")

onFishBite

writeLogLine ("Leaving onFishBite.")

writeLogLine ("Reeling in.")

pressKey(VK_ENTER)

statsBites = statsBites + 1

isFish = true

else

writeLogLine ("Something caught the hook but we were forced to ignore it!")

updateStatus "Forced to skip a " & getFishWeight(serviceObject) & " stamina catch!"

Sleep(2500)

pressKey(VirtualKey.VK_N)

end if

end if

case statusObtained

if lastStatus <> statusObtained then

writeLogLine ("We caught something!")

lastMacroTime = -1

statsObtained = statsObtained + 1

sortCurrent = sortCurrent + 1

end if



case statusRodBreak

if lastStatus <> statusRodBreak then

writeLogLine ("Rod broke!")

statsRodBreaks = statsRodBreaks + 1

onRodBreak

end if

case statusLineBreak

if lastStatus <> statusLineBreak then

writeLogLine ("Line broke!")

statsLineBreaks = statsLineBreaks + 1

end if

case statusCatchMonster

if lastStatus <> statusCatchMonster then

writeLogLine ("We caught a monster!")

statsBites = statsBites - 1

statsMonsters = statsMonsters + 1

if not IsNull(onCatchMonster) then

Execute(onCatchMonster + "()")

end if

end if

if useMonsterDetect then

writeLogLine ("Entering onMonsterAttack(true)!")

onMonsterAttack(true)

writeLogLine ("Leaving onMonsterAttack(true).")

lastStatus = -1

lastMacroTime = -1

end if

case statusLostCatch

if lastStatus <> statusLostCatch then

writeLogLine ("Lost the catch.")

if isFish then

statsLost = statsLost + 1

else

statsMisses = statsMisses + 1

end if

end if

case statusSitting

writeLogLine ("Character is sitting, trying to stand up...")

pressKey(VirtualKey.VK_A)

controlledSleep(4000)

case else

writeLogLine ("Unknown status code: " & currentStatus)

end select

end if



do while true

Dim regexpFound

Dim count, fish

Dim i

Dim handled

regexpFound = false

text = readLogLine

if text = "" then

exit do

end if



' Look for "Obtained: ([\d]*)\s?(.*)"

set regexpMatch = obtainedRegExp.Execute(text)

if regexpMatch.Count > 0 then

set regexpMatch = regexpMatch(0)

regexpFound = true

handled = false

count = regexpMatch.SubMatches(0)

fish = regexpMatch.SubMatches(1)

if (count = "") or (count = "a") or (count = "an") then

count = 1

end if

writeLogLine ("Caught " & count & " " & fish)

fish = LCase(fish)

for i = LBound(fishes) to UBound(fishes)

if StrComp(fishes(i)(1), fish) = 0 then

fishes(i)(0) = fishes(i)(0) + count



if fishes(i)(2) = 1 then

writeLogLine ("Throwing away catch.")

deleteRusty = true

statsObtained = statsObtained - 1

statsBites = statsBites - 1

statsRusty = statsRusty + 1

sortCurrent = sortCurrent - 1

else

statsGil = statsGil + (count * fishes(i)(5))

end if

handled = true

exit for

end if

next

if not handled then

writeLogLine ("Catch '" & fish & "' is unknown, not recording stats for this catch.")

end if

if not IsNull(onCatchFish) then

Execute(onCatchFish + "(fish)")

end if

end if



' Look for "You caught ([^\s]+)[\s]?(.*), but"

if not regexpFound then

set regexpMatch = releaseRegExp.Execute(text)

if regexpMatch.Count > 0 then

set regexpMatch = regexpMatch(0)

regexpFound = true

handled = false

count = regexpMatch.SubMatches(0)

fish = LCase(regexpMatch.SubMatches(1))

if (count = "") or (count = "a") or (count = "an") then

count = 1

end if

for i = LBound(fishes) to UBound(fishes)

if StrComp(fishes(i)(1), fish) = 0 then

fishes(i)(0) = fishes(i)(0) + count



if fishes(i)(3) then

writeLogLine ("Threw away " & count & " " & fish & ", catch is rare.")

statsBites = statsBites - 1

statsRusty = statsRusty + 1

else

writeLogLine ("Threw away " & count & " " & fish & ", inventory is full.")

statsObtained = statsObtained - 1

sortCurrent = SortNext + 1

if not IsNull(onInventoryFull) then

Execute(onInventoryFull + "()")

else

ForcePause

end if

end if

handled = true

exit for

end if

next

if not handled then

writeLogLine ("Threw away " & count & " unknown catch '" & fish & "', inventory is full.")

statsObtained = statsObtained - 1

sortCurrent = SortNext + 1

if not IsNull(onInventoryFull) then

Execute(onInventoryFull + "()")

else

ForcePause

end if

end if

end if

end if



' Look for "You must wait longer to perform that action"

if not regexpFound then

set regexpMatch = waitRegExp.Execute(text)

if regexpMatch.Count > 0 then

regexpFound = true

currentStatus = getPlayerStatus(serviceObject)

if currentStatus = statusNone then

if not scriptPaused then

writeLogLine ("Trying to fish: quick.")

waitForUser

quickFishMacro

end if

end if

end if

end if



' Look for "You can't fish without bait on the hook"

if not regexpFound then

set regexpMatch = nobaitRegExp.Execute(text)

if regexpMatch.Count > 0 then

regexpFound = true

writeLogLine ("Out of bait!")

onNoBait

lastMacroTime = Now

end if

end if



' Look for "Whatever caught the hook was too small to fish with this rod"

if not regexpFound then

set regexpMatch = toosmallRegExp.Execute(text)

if regexpMatch.Count > 0 then

regexpFound = true

writeLogLine ("Oh, it was too small!")

statsLost = statsLost - 1

statsTooSmall = statsTooSmall + 1

end if

end if



' Look for "The effect of Sneak is about to wear off"

if not regexpFound then

set regexpMatch = sneakwearingRegExp.Execute(text)

if regexpMatch.Count > 0 then

regexpFound = true

writeLogLine ("Sneak wearing off!")

if not IsNull(onSneakWearing) then

Execute(onSneakWearing + "()")

else

ForcePause

Win32API.XUBeep 750,200

end if

end if

end if

' Look for characterName & "'s Sneak effect wears off"

if not regexpFound then

set regexpMatch = sneakoffRegExp.Execute(text)

if regexpMatch.Count > 0 then

regexpFound = true

writeLogLine ("Sneak wore off!")

if not IsNull(onSneakOff) then

Execute(onSneakOff + "()")

else

ForcePause

Win32API.XUBeep 750,500

end if

end if

end if

' Look for characterName & "gainst the effect of Sneak"

if not regexpFound then

set regexpMatch = sneakonRegExp.Execute(text)

if regexpMatch.Count > 0 then

regexpFound = true

writeLogLine ("Sneak is on!")

if not IsNull(onSneakOn) then

Execute(onSneakOn + "()")

lastMacroTime = -1

end if

end if

end if



if not regexpFound then

if InStr(text, "7B:You cannot fish here") then

regexpFound = true

writeLogLine ("We can't fish in the current location!")

if not IsNull(onCantFishHereMessage) then

Execute(onCantFishHereMessage + "()")

lastMacroTime = -1

else

ForcePause

Win32API.XUBeep 750,500

end if

end if

end if



set regexpMatch = nothing

loop

loop

end if



if useStatistics then

closeStatsWindow

end if

set serviceObject = Nothing

set obtainedRegExp = Nothing

set releaseRegExp = Nothing

end function



XUScriptPlugin.staStatus.Text = "Done parsing fisher.vbs!"



06/15/05 06:40:49 AM XUScriptHelper->Executing Script: function onTellMessage

' beep by default

if (not scriptPaused) and useTellDetect then

writeLogLine ("Tell detected. Forcing pause.")

ForcePause

updateStatus "Tell detected..."

do while scriptPaused

Win32API.XUBeep 750,1000

Sleep 500

checkKeyboard

loop

end if

end function



function onGMMessage

' beep by default

if not scriptPaused then

writeLogLine ("GM detected! Forcing pause.")

ForcePause

updateStatus "GM detected..."

do while scriptPaused

Win32API.XUBeep 750,1000

Sleep 500

checkKeyboard

loop

end if

end function



function onRodBreak

writeLogLine ("Rod broke!")

onTellMessage

exit function

Dim currentStatus

updateStatus "Rod broke, trying to equip a new one"

currentStatus = getPlayerStatus(serviceObject)

' Wait for player to enter a state where we can equip the rod

do while currentStatus <> statusNone

controlledSleep(200)

currentStatus = getPlayerStatus(serviceObject)

loop

' Sleep a little extra

controlledSleep(1000)

equipRodMacro

end function



function onCantFishHere

Dim startAngle, currentAngle, tries

startAngle = serviceObject.PlayerHeading

currentAngle = startAngle

tries = 0

' Keep turning (and fast) until we can fish, character stops turning before

' state changes so don't stand around waiting for it to change

do while (currentStatus <> statusFishing) and (tries < 100) and scriptRunning and (not scriptPaused)

TurnLeft(50)

quickFishMacro

controlledSleep(200)

currentStatus = getPlayerStatus(serviceObject)

tries = tries + 1

loop

if (currentStatus <> statusFishing) and (not scriptPaused) then

writeLogLine ("Can't fish in this location, forcing pause.")

ForcePause

end if

end function



function PressLeft( pressIT )'Added by WyvernX for 2.23.05 Patch

if (pressIT = true) then

KeyDown(VirtualKey.VK_A)

else

KeyUp(VirtualKey.VK_A)

end if

end function



function PressRight( pressIT )'Added by WyvernX for 2.23.05 Patch

if (pressIT = true) then

KeyDown(VirtualKey.VK_D)

else

KeyUp(VirtualKey.VK_D)

end if

end function



function onFishBite() 'Added by WyvernX for 2.23.05 Patch

'Try to lower the health (stamina) of the fish by countering the line

'NOTE: Pole Functions do not call UpdateData for speed sake! UpdateData is called in Status calls

writeLogLine ("onFishBite - Begin")

Dim TargetHealth

Dim LastKeyPressed 'L,C,R

LastKeyPressed = "C"



updateStatus "Fighting a " & getFishWeight(serviceObject) & " .lbs fish!"

currentStatus = getPlayerStatus(serviceObject)

targetHealth = getTargetHealth(serviceObject)

bTryLeft = true

do while (currentStatus = statusBite and targetHealth > 0)

if (getPoleCenter(serviceObject) = true) then

if (LastKeyPressed = "L") then

PressLeft(false) 'Reset keys

elseif (LastKeyPressed = "R") then

PressRight(false) 'Reset keys

end if

LastKeyPressed = "C"

elseif (getPoleLeft(serviceObject) = true) then

if (LastKeyPressed = "R") then

'Keep pressing it!

elseif (LastKeyPressed = "C") then

PressRight(true)

else 'LastKeyPressed = "L"

PressLeft(false)

PressRight(true)

end if

LastKeyPressed = "R" 'Current Direction we are pressing

elseif (getPoleRight(serviceObject) = true) then

if (LastKeyPressed = "L") then

'Keep pressing it!

elseif (LastKeyPressed = "C") then

PressLeft(true)

else 'LastKeyPressed = "R"

PressRight(false)

PressLeft(true)

end if

LastKeyPressed = "L" 'Current Direction we are pressing

end if

sleep 50

currentStatus = getPlayerStatus(serviceObject)

targetHealth = getTargetHealth(serviceObject)

loop

PressLeft(false) 'Reset keys

PressRight(false) 'Reset keys

writeLogLine ("onFishBite - End")

end function



function onMonsterAttack(turn)

if not useMonsterDetect then

exit function

end if



writeLogLine ("Entering onMonsterAttack.")



' fight monster here

Dim currentAngle

Dim fightStartTime

Dim lastAttackTime

Dim currentStatus

Dim lastBuffTime

Dim usedMana

Dim lastPaeon

Dim colorAttack, colorCheck, colorCheck2, colorCheck3



colorAttack = GetDetectArray("damage detect", colorDetect)



lastPaeon = Now

writeLogLine ("Preparing to fight monster.")

updateStatus "Preparing to fight monster"

currentStatus = getPlayerStatus(serviceObject)

do while currentStatus = statusCatchMonster

Sleep(500)

currentStatus = getPlayerStatus(serviceObject)

loop

writeLogLine ("Cancelling current target.")

updateStatus "Canceling current target"

pressKey(VirtualKey.VK_N)

equipArmorMacro

currentAngle = serviceObject.PlayerHeading

if turn then

writeLogLine ("Turning to face monster.")

updateStatus "Turning to face monster"

faceDirection serviceObject, (currentAngle + 180)

end if

currentStatus = getPlayerStatus(serviceObject)

writeLogLine ("Trying to fight!")

updateStatus "Trying to fight"

lastAttackTime = Now

do while (Second(Now - lastAttackTime) < 20) and (currentStatus <> statusFighting)

waitForUser

doKeyboardCommand("/a")

colorCheck = GetDetectArray("damage detect", colorDetect)

if (not IsNull(colorCheck)) and colorDetectCheck(colorCheck) then

lastAttackTime = Now

end if

Sleep(3000)

currentStatus = getPlayerStatus(serviceObject)

if currentStatus = statusDead then

writeLogLine ("Character has been slain, forcing pause.")

ForcePause

exit function

end if

loop

fightStartTime = Now

' Wait for char to draw weapon

writeLogLine ("Drawing weapon!")

updateStatus "Draw weapon"

Sleep(3000)

if currentStatus = statusFighting then

if not turn then

pressKey(VirtualKey.VK_S)

pressKey(VirtualKey.VK_S)

end if

updateStatus "Fighting"



' Place job specific code here, for example:

' You can make this quite advanced if you want the bot to be able to fight harder mobs

' The example below can safely fight a kraken with a level 55 bard, which is quite dangerous

'waitForUser

'doKeyboardCommand("/equip range ""Cornette {+}1""")

'colorCheck = GetDetectArray("monster hp 85", colorDetect)

'currentStatus = getPlayerStatus(serviceObject)

' updateStatus "Player: " & CInt(serviceObject.PlayerHP) & "hp/" & CInt(serviceObject.PlayerMP) & "mp, Monster: " & CInt(serviceObject.TargetHP) & "%"

'if (currentStatus = statusFighting) and (CInt(serviceObject.TargetHP) > 80) then

' waitForUser

' doKeyboardCommand("/ma ""Carnage Elegy"" <t>")

' Sleep(6000)

'end if

'currentStatus = getPlayerStatus(serviceObject)

'if (currentStatus = statusFighting) then

' ' Lock on target again

' waitForUser

' pressKey(VirtualKey.VK_H)

'end if

'colorCheck = GetDetectArray("monster hp 85", colorDetect)

'currentStatus = getPlayerStatus(serviceObject)

' updateStatus "Player: " & CInt(serviceObject.PlayerHP) & "hp/" & CInt(serviceObject.PlayerMP) & "mp, Monster: " & CInt(serviceObject.TargetHP) & "%"

'if (currentStatus = statusFighting) and (CInt(serviceObject.TargetHP) > 80) then

' waitForUser

' doKeyboardCommand("/ma ""Army's Paeon IV"" <me>")

' Sleep(12000)

' lastPaeon = Now

'end if

'currentStatus = getPlayerStatus(serviceObject)

' updateStatus "Player: " & CInt(serviceObject.PlayerHP) & "hp/" & CInt(serviceObject.PlayerMP) & "mp, Monster: " & CInt(serviceObject.TargetHP) & "%"

'if (currentStatus = statusFighting) and (CInt(serviceObject.TargetHP) > 80) then

' waitForUser

' doKeyboardCommand("/ma ""Valor Minuet III"" <me>")

' Sleep(12000)

'end if

'lastBuffTime = Now

'usedMana = false



writeLogLine ("Entering main fight loop.")

currentStatus = getPlayerStatus(serviceObject)

do while (currentStatus = statusFighting)

' Rebuff if songs are about to fade

'if minuteDiff(Now, lastBuffTime) >= 2 then

' currentStatus = getPlayerStatus(serviceObject)

' if (currentStatus = statusFighting) then

' waitForUser

' doKeyboardCommand("/ma ""Army's Paeon IV"" <me>")

' Sleep(12000)

' lastPaeon = Now

' end if

' currentStatus = getPlayerStatus(serviceObject)

' if (currentStatus = statusFighting) then

' waitForUser

' doKeyboardCommand("/ma ""Valor Minuet III"" <me>")

' Sleep(12000)

' end if

' lastBuffTime = Now

'end if



serviceObject.updateData

if serviceObject.PlayerHP < 250 then

waitForUser

doKeyboardCommand("/ma ""Warp"" <me>")

usedMana = true

Win32API.XUBeep 750,1000

Sleep(500)

Win32API.XUBeep 750,1000

Sleep(7000)

elseif serviceObject.PlayerHP < 450 then

waitForUser

doKeyboardCommand("/ja ""Divine Seal"" <me>")

Sleep(3000)

waitForUser

doKeyboardCommand("/ma ""Cure III"" <me>")

usedMana = true

Win32API.XUBeep 750,1000

Sleep(8500)

end if



Sleep(500)

currentStatus = getPlayerStatus(serviceObject)

updateStatus "Player: " & CInt(serviceObject.PlayerHP) & "hp/" & CInt(serviceObject.PlayerMP) & "mp, Monster: " & CInt(serviceObject.TargetHP) & "%"

loop

writeLogLine ("Leaving main fight loop.")



if currentStatus = statusDead then

writeLogLine ("Character has been slain, forcing pause.")

ForcePause

exit function

end if



' Equipping rod to clear out old battle messages.

equipRodMacro

Sleep(500)



' turn back to void bogus gm detect

if turn then

updateStatus "Turning back"

faceDirection serviceObject, (currentAngle)

end if



writeLogLine ("Resting after battle.")

updateStatus "Resting"

' Place recovery code here, for example:

'serviceObject.updateData

'if serviceObject.PlayerHP < 700 then

' waitForUser

' doKeyboardCommand("/equip range ""Cornette {+}1""")

' waitForUser

' doKeyboardCommand("/ma ""Army's Paeon IV"" <me>")

' controlledSleep(12000)

' if serviceObject.PlayerHP < 600 then

' waitForUser

' doKeyboardCommand("/ma ""Army's Paeon III"" <me>")

' if serviceObject.PlayerHP < 300 then

' controlledSleep(90000)

' else

' controlledSleep(30000)

' end if

' end if

'end if

'serviceObject.updateData

'if serviceObject.PlayerMP < 150 then

' waitForUser

' doKeyboardCommand("/ma ""Mage's Ballad II"" <me>")

' controlledSleep(12000)

' serviceObject.updateData

' if serviceObject.PlayerHP < 700 then

' waitForUser

' doKeyboardCommand("/ma ""Army's Paeon IV"" <me>")

' controlledSleep(12000)

' end if

'end if



' Do not modify below this point, the script is trying to resume fishing

end if

if turn then

updateStatus "Turning back"

faceDirection serviceObject, (currentAngle)

end if

controlledSleep(200)

equipRodMacro

' if scriptRunning and (not scriptPaused) then

' updateStatus "Resuming fishing"

' quickFishMacro

' controlledSleep(3000)

' currentStatus = getPlayerStatus(serviceObject)

' if (currentStatus <> statusFishing) then

' onCantFishHere

' end if

' updateStatus "Fishing"

'

' end if

writeLogLine ("Leaving onMonsterAttack.")

end function



06/15/05 06:40:50 AM XUScriptHelper->Executing Script: XUScriptPlugin.staStatus.Text = "Loading libraries... (common variables)"

XUScriptHost.ImportScript("xufish\common_variables.vbs")



function minuteDiff(timeNow, timeThen)

currentTime = (timeNow - timeThen)

minuteDiff = ((Hour(currentTime) * 60) + Minute(currentTime))

end function



function secondDiff(timeNow, timeThen)

currentTime = (timeNow - timeThen)

secondDiff = ((Hour(currentTime) * 60 * 60) + (Minute(currentTime) * 60) + Second(currentTime))

end function



function doKeyboardCommand(line)

pressKey(VirtualKey.VK_SPACE)

SendKeys line

Sleep 200

pressKey(VirtualKey.VK_ENTER)

end function



function pressKey(key)

KeyDown(key)

Sleep 200

KeyUp(key)

end function



function colorDetectMatch(ByRef line)

Dim matchCount

Dim temp_y

Dim temp_x

Dim temp_c

Dim temp_c_red

Dim temp_c_green

Dim temp_c_blue

for temp_y = (win_posy + line(1)) to (win_posy + line(1) + line(3) - 1)

for temp_x = (win_posx + line(0)) to (win_posx + line(0) + line(2) - 1)

temp_c = GetPixelColor (temp_x, temp_y)

temp_c_red = ExtractRGB_Red(temp_c)

temp_c_green = ExtractRGB_Green(temp_c)

temp_c_blue = ExtractRGB_Blue(temp_c)

if (temp_c_red >= line(4)) and (temp_c_red <= line(5)) and (temp_c_green >= line(6)) and (temp_c_green <= line(7)) and (temp_c_blue >= line(8)) and (temp_c_blue <= line(9)) then

matchCount = matchCount + 1

end if

if matchCount >= line(10) then

exit for

end if

next

if matchCount >= line(10) then

exit for

end if

next

if matchCount >= line(10) then

colorDetectMatch = true

else

colorDetectMatch = false

end if

end function



function colorDetectCheck(ByRef list)

if not IsNull(list) then

' List array structure: array(name, custom, check1, check2, check3, ...)

' Basic array structure: array(detectArray, exceptionArray)

' Color detector settings: parameters = (x, y, line_width, line_height, red_min, red_max, green_min, green_max, blue_min, blue_max, min_matches)

Dim success

Dim i, j, k

Dim detectLine, exceptLine

Dim detectCount, exceptCount

success = false

for i = (LBound(list) + 2) to UBound(list)

if not IsNull(list(i)) then

detectCount = 0

exceptCount = 0

detectLine = list(i)(0)

exceptLine = list(i)(1)

if not IsNull(detectLine) then

for j = LBound(detectLine) to UBound(detectLine)

if not IsNull(detectLine(j)) then

if colorDetectMatch(detectLine(j)) then

detectCount = (detectCount + 1)

end if

end if

next

end if

if (detectCount > 0) then

if (detectCount = (UBound(detectLine) + 1)) then

success = true

if not IsNull(exceptLine) then

for j = LBound(exceptLine) to UBound(exceptLine)

if not IsNull(exceptLine(j)) then

if colorDetectMatch(exceptLine(j)) then

success = false

exit for

end if

end if

next

end if

end if

end if

end if

if success then

exit for

end if

next



colorDetectCheck = success

else

colorDetectCheck = false

end if

end function



function GetDetectArray(name, ByRef values)

Dim i

Dim result

result = null

for i = LBound(values) to UBound(values)

if values(i)(0) = name then

result = values(i)

exit for

end if

next

GetDetectArray = result

end function



function getTargetHealth(ByRef obj) 'Added by WyvernX for 2.23.05 Patch

on error resume next

obj.UpdateData

getTargetHealth = obj.TargetHP

if Err.Number <> 0 then

getTargetHealth = 0

end if

on error goto 0

end function



function getPlayerStatus(ByRef obj)

on error resume next

obj.UpdateData

getPlayerStatus = obj.PlayerStatus

if Err.Number <> 0 then

getPlayerStatus = -1

end if

on error goto 0

end function



function getPoleLeft(ByRef obj) 'Added By WyvernX for 2.23 Patch

on error resume next

'obj.UpdateData

getPoleLeft = obj.PoleLeft

if Err.Number <> 0 then

getPoleLeft = false

end if

on error goto 0

end function



function getPoleCenter(ByRef obj) 'Added By WyvernX for 2.23 Patch

on error resume next

'obj.UpdateData

getPoleCenter = obj.PoleCenter

if Err.Number <> 0 then

getPoleCenter = false

end if

on error goto 0

end function



function getPoleRight(ByRef obj) 'Added By WyvernX for 2.23 Patch

on error resume next

'obj.UpdateData

getPoleRight = obj.PoleRight

if Err.Number <> 0 then

getPoleRight = false

end if

on error goto 0

end function



function getFishWeight(ByRef obj) 'Added By WyvernX for 2.23 Patch

on error resume next

obj.UpdateData

getFishWeight = obj.FishWeight

if Err.Number <> 0 then

getFishWeight = -1

end if

on error goto 0

end function



function getTargetItem(ByRef obj)

on error resume next

obj.UpdateData

getTargetItem = obj.TargetItemName

if Err.Number <> 0 then

getTargetItem = ""

end if

on error goto 0

end function



function getTopLeft

XUScriptPlugin.staStatus.Text = "Find red point (move cursor over red dot in topleft corner)"

Dim tempc, tempx, tempy

do while (win_posx = -1)

XUScriptHost.GetCursorPos tempx,tempy

tempc = XUScriptHost.GetPixelColor(tempx,tempy)

if tempc = 255 then

tempc = XUScriptHost.GetPixelColor(tempx-1,tempy)

if tempc = 255 then

tempx = tempx-1

end if

tempc = XUScriptHost.GetPixelColor(tempx,tempy-1)

if tempc = 255 then

tempy = tempy-1

end if

tempc = XUScriptHost.GetPixelColor(tempx-1,tempy)

if tempc = 255 then

tempx = tempx-1

end if

tempc = XUScriptHost.GetPixelColor(tempx,tempy-1)

if tempc = 255 then

tempy = tempy-1

end if

tempc = XUScriptHost.GetPixelColor(tempx-1,tempy)

if tempc = 255 then

tempx = tempx-1

end if

tempc = XUScriptHost.GetPixelColor(tempx,tempy-1)

if tempc = 255 then

tempy = tempy-1

end if

tempc = XUScriptHost.GetPixelColor(tempx-1,tempy)

if tempc = 255 then

tempx = tempx-1

end if

tempc = XUScriptHost.GetPixelColor(tempx,tempy-1)

if tempc = 255 then

tempy = tempy-1

end if

win_posx = tempx

win_posy = tempy

end if



' Must have this sleep here or the script can't be stopped with the Stop button or F12

Sleep 100

loop

XUScriptPlugin.staStatus.Text = "Found red point - please wait"

end function



function readLogLine

if ffxiLogTextFile.AtEndOfStream then

readLogLine = ""

else

readLogLine = ffxiLogTextFile.ReadLine

end if

end function



function writeLogLine (msg)

Const ForReading = 1, ForWriting = 2, ForAppending = 8



Dim FTarget, File, MyDate, MyTime, temp

MyDate = CStr (FormatDateTime (Date, 1))

MyTime = CStr (FormatDateTime (Time, 3))



Set FTarget = CreateObject("Scripting.FileSystemObject")



Set File = FTarget.OpenTextFile(logFilename, ForAppending, True)



temp = "[" + MyDate + " " + MyTime + "] " + msg + vbCrLf



File.Write temp

File.Close

end function



06/15/05 06:40:51 AM XUScriptHelper->Executing Script: Public serviceObject



Public mouse_sort_autox, mouse_sort_autoy, mouse_sort_yesx, mouse_sort_yesy

Public item_textx, item_texty, item_textwidth, item_textheight

Public citem_textx, citem_texty, citem_textwidth, citem_textheight



Public win_posx, win_posy



Public logFilename, ffxiLogFilename, ffxiLogFile, ffxiLogTextFile



Public useTellDetect, useMonsterDetect



Public characterName



' If all 4 variables are set to a value other than -1 the mouse will be used to sort your inventory

mouse_sort_autox = -1

mouse_sort_autoy = -1

mouse_sort_yesx = -1

mouse_sort_yesy = -1



item_textx = 0

item_texty = 0

item_textwidth = 0

item_textheight = 0



citem_textx = 0

citem_texty = 0

citem_textwidth = 0

citem_textheight = 0





' Here's my variables for 640x480 resolution

'mouse_sort_autox = 560

'mouse_sort_autoy = 76

'mouse_sort_yesx = 560

'mouse_sort_yesy = 122



'item_textx = 68

'item_texty = 278

'item_textwidth = 10

'item_textheight = 7



'citem_textx = 69

'citem_texty = 246

'citem_textwidth = 10

'citem_textheight = 7



' Path to the logfiles for the script

logFilename = GetXUnleashedDirectory() + "\scripts\xufish_logfile.txt"

ffxiLogFilename = GetXUnleashedDirectory() + "\FFXILog.txt"



' Init log file reader

set ffxiLogFile = CreateObject("Scripting.FileSystemObject")

set ffxiLogTextFile = ffxiLogFile.OpenTextFile(ffxiLogFilename, 1) ' 1 means ForReading

do while ffxiLogTextFile.AtEndOfStream <> True

ffxiLogTextFile.SkipLine

loop



' If monster detect


Last edited by Guest on June 15th, 2005, 2:12 pm, edited 3 times in total.

Reply with quote
Posted: June 15th, 2005, 10:17 am
 
asl18fs

Total Posts: 2707
Joined: May 1st, 2004, 4:00 am
asl18fs's Reps: 1
User avatar
Lifetime Member (Scripting)
premium
Still don't see a log from the fisher, the above log has no errors... Although it's cropped since you can't paste such a large amount of text, you have to make an attachment as I stated above in the instructions.

_________________
How To Ask Questions The Smart Way
Translation: Read the documentation and don't PM me about your problems. I AM NOT AN ADMIN!!!


Reply with quote
Posted: June 16th, 2005, 2:53 am
 
saohjung
saohjung's Reps:
User avatar
here's the script .log


You do not have the required permissions to view the files attached to this post.


Reply with quote
Posted: June 16th, 2005, 2:56 am
 
saohjung
saohjung's Reps:
User avatar
here's the Xunleashed.iog


You do not have the required permissions to view the files attached to this post.


Reply with quote
Posted: June 16th, 2005, 3:02 am
 
asl18fs

Total Posts: 2707
Joined: May 1st, 2004, 4:00 am
asl18fs's Reps: 1
User avatar
Lifetime Member (Scripting)
premium
Great, reading through them now.

_________________
How To Ask Questions The Smart Way
Translation: Read the documentation and don't PM me about your problems. I AM NOT AN ADMIN!!!


Reply with quote
Posted: June 16th, 2005, 3:04 am
 
saohjung
saohjung's Reps:
User avatar
i still have a problem... not catching any fish ^^;;;
when i run the bot it still says "You did not catch any fish"
so i turn it off the bot and log out play online.. and restart my PC...
run it again but it says samething on the chatting box like "You did not catch any fish"
Please help me out !!!!
i don't know what did i wrong^^;;;;


Reply with quote
Posted: June 16th, 2005, 3:22 am
 
asl18fs

Total Posts: 2707
Joined: May 1st, 2004, 4:00 am
asl18fs's Reps: 1
User avatar
Lifetime Member (Scripting)
premium
Actually, I think you've run into the catch limit for the day. You can only catch like 16 stacks of moat carp every 24 hours. The limit is reset every day at midnight in japan. Or in 4 hours from this post.

If the problem persists after that I recommend you change to XUFish 3.7 here, might want to read the thread on what has changed:
http://www.xunleashed.com/viewtopic.php?p=63443#63443

_________________
How To Ask Questions The Smart Way
Translation: Read the documentation and don't PM me about your problems. I AM NOT AN ADMIN!!!


Reply with quote
Posted: June 16th, 2005, 4:01 am
 
saohjung
saohjung's Reps:
User avatar
oh i did not know there's limited fishing ^^;;;;
i thought it's unlimited fishing bot..... now i know
thank you very much asl18fs...
^^

oh one more question... how can i change the script ? for example, if i want to catch different fish........ instead of moat carp.
>.^V peace...


Reply with quote
Posted: June 16th, 2005, 4:04 am
 
asl18fs

Total Posts: 2707
Joined: May 1st, 2004, 4:00 am
asl18fs's Reps: 1
User avatar
Lifetime Member (Scripting)
premium
Read the stickies in the scripts and macros forum.

_________________
How To Ask Questions The Smart Way
Translation: Read the documentation and don't PM me about your problems. I AM NOT AN ADMIN!!!


Reply with quote
Want Advertisements After The Last Post Removed? Create A Free Account!

blue large dot Who is online
Users browsing this forum: No registered users and 199 guests

Popular Sections
SWTOR Cheats
Guild Wars 2 Cheats
Guild Wars 2 Hacks
Guild Wars 2 Bots
Diablo 3 Cheats
Guild Wars 2 Mods

Popular Sections
WoW Cataclysm Cheats & Exploits
WoW Cataclysm Hacks & Bots
Star Wars The Old Republic Cheats
SWTOR Mods
Torchlight 2 Cheats
SWTOR Space Mission Bots
Site Nav and RSS
RSS Feed of FFXI General Discussions RSS Feed 
Sitemap of FFXI General Discussions Sitemap 
SitemapIndex SitemapIndex
RSS Feed RSS Feed
Channel list Channel list
left bottom corner Site and Contents Copyright 2001-2012 All Rights Reserved TaultUnleashed.com bottom corner
top left
top right
createaccount
Username:   Password:   Remember Me?