Sign in to follow this  
Followers 0

Improving The Fishing Bot

63 posts in this topic

Posted (edited)

Removed

Edited by Ealric

Share this post


Link to post
Share on other sites



Posted (edited)

Removed

Edited by Ealric

Share this post


Link to post
Share on other sites

Posted

I want to put the pause command in and I think the way the ffxi engine works is that the key combo has to be a valid in-game combo that is unused. So my theory is using an alt+num combo on a blank macro on the bar.

If anyone wants to test this out let me know. I'm sure we can get the pauses to work. I really feel the pauses should start off in the ON mode when entering the game and then be able to release it. This will allow you to setup and get the tells out of the way.

Please give me some input and I'll start to transition it in.

Share this post


Link to post
Share on other sites

Posted

I'm going to keep working on the script. I really feel that community should bond together and keep coming up with creative solutions. As such, I won't be removing any code or participating in the beta of the new program.

The reasons of course, are because I believe in open source and can't help two people obtain 15 to 20 dollars for a program that is illegal.

I believe you do things at your own risk with any 3rd party program or code and this one can be improved and AI added without any problems at all. The nice thing about autoit is it does not send any "true" third party packets to the server. Using this is pretty much safe for anyone.

Yes the packets are ultimately sent in the form of normal keystrokes to the server but it does not send any third party packets to the server. Just be creative and you can add your own AI effects to the script and do a multitude of things. When I get my script working 100% and so far I have not been banned and I have made a lot of fishing skill and money, I will PM send it to those that want it for "FREE".

Share this post


Link to post
Share on other sites

Posted

Good job :whistle:

I'm glad to see different options available and look forward to what you can do with this script!

-xbond

Share this post


Link to post
Share on other sites

Posted

Some ideas that you might want to consider with the above bot.

Since its calling a macro ingame, you don't need to have an autobait command in the script. Just use the macro to equip the ammo. This also makes equipping it faster.

Using a modified version of the autosort function, I think its possible to make an auto rusty item dropper.

Just need the color code for the rusty part. This may be detrimental in the long run since some rusty items are worth more than fish (but do take up more space).

Share this post


Link to post
Share on other sites

Posted (edited)

I decided to write an itemdrop function. Haven't put in the checks of Y/N on rusty items though. This func should be called after Send ("!i"); of the autosort func.

Haven't tested it yet but it should work. Correct if you see a problem.

Func ItemDrop()
Edited by ZootZootZootie

Share this post


Link to post
Share on other sites

Posted

ir0nfist,

that script seems to be the bomb. ive used it three or four times, and everything run smoothly, even made catchs each time. but having a problem when it comes to writing to file. right now, after i made the catch, ffxi closes because autoit brings up an error message.. i created a file in the same folder as the script and the auto it .exe, called Caught Fish.txt.. still no luck. any suggestions?

Bul

Share this post


Link to post
Share on other sites

Posted (edited)

Everything works fine for me except for the auto sort, it opens the menu nicely but it will not press up to select yes.

You don't seem to have any problems, is it because i am using XP ?

Also when i try to load your script ir0n, it gives me a error saying;

If PixelGetColor(128,735)= 16777215 AND PixelGetColor(74,1168)=

"If statements must have a then keyword"

sorry but i have little knowledge of theese sorts of things :whistle: help me out ?

Edited by Poormage

Share this post


Link to post
Share on other sites

Posted

Nice script.

The thing everyone seems to be wanting, and not able to get ... is some sort of pausing button.

A great way to get around this, is to have the macro start when you actually catch your first fish, have that start the macro.

Use the "You can not fish here" error ingame, to pause the macro untill you catch another fish.

That would allow you to simply turn your body a little, get the error message and have the macro pause.

Maybe someone will figure out how to actually set up a button to toggle pause / unpause, but from what i have read, no one can figure it out :whistle:

Share this post


Link to post
Share on other sites

Posted

Bul, i can't test till monday, but i am assuming that the problem writing the file is either 1. specify the full path to where you want the file written eg. C:\blah\blah\fish caught.txt . This is my first time scripting and i just read a little bit on autoit to figure this out so I can't tell by just looking at it.

or

2. Has something to do with the autoit version you are using as the command for filewrite may have been changed? I dunno, try #1.

As far as the pixelgetcolor problem, when i pasted this script on forum it for some reason placed spaces in the code where they shouldn't be. You need to bring the 16777215 Then back up into place I think. Hopefully that will make it run properly.

Share this post


Link to post
Share on other sites

Posted

Mine works fine... the only problem is it seems to reel in the hook too fast (without a bite).. This is my script.. I edited it.. and I am pretty new with autoit.. Please tell me how to make the timer for fishing longer. :whistle:

Thanks! ^^

800x600 resolution

Sleep (100000);give time to open FFXI

$fisha = 1;

$biteyes = 0;

$bite = 0;

$failsafe=0;

WinWaitActive("FFXiApp");

While $fisha > 0

AutoItSetOption("SendKeyDelay", 15);

autosort()

Send("/fish{ENTER}"); fishing macro

$biteyes = 0;

$failsafe = 0;

Do

If PixelGetColor(229,572) = 16777215 Then

$bite = $bite + 1;

AutoItSetOption("SendKeyDelay", 15);

  Sleep(Random(2500,3500));

Send("{ENTER}");

  Sleep(3500);

$biteyes = 1;

EndIf

If PixelGetColor(194,570) = 16777215 Then

AutoItSetOption("SendKeyDelay", 15);

$biteyes = 1;

EndIf

Sleep(3500);

$failsafe = $failsafe+1

If $failsafe = 20 Then

$biteyes = 1;

EndIf

Until $biteyes = 1

Sleep(13000);

WEnd

Func sort()

EndFunc

; Copyright z33to ^^

Func autosort()

AutoItSetOption("SendKeyDelay", 200) ;slow key delay a bit

Send ("{NUMPADSUB}") ;opens menu

Send ("{DOWN}") ;moves menu down 1

Sleep (0100) ;Sleep for a little bit

Send ("{DOWN}") ;moves menu down 1

Send ("{DOWN}") ;moves menu down 1

Sleep (0100) ;Sleep for a little bit

Send ("{ENTER}") ;enter the item menu

Send ("{NUMPADADD}") ;goes to sort

Sleep (0100) ;Sleep for a little bit

Send ("{ENTER}") ;enters stack menu

Send ("{up}") ;sends it up

Sleep (0100) ;Sleep for a little bit

Send ("{ENTER}") ;complete auto stack

Send ("{ESCAPE}") ;exits menu

Sleep (0100) ;Sleep for a little bit

Send ("{UP}") ;moves menu up 1

Send ("{UP}") ;moves menu up 1

Sleep (0100) ;Sleep for a little bit

Send ("{UP}") ;moves menu up 1

Send ("{ESCAPE}") ;exits complete to finish stack

Sleep (0100) ;Sleep

Send ("/")

Send ("{UP}")

Send ("{UP}")

Send ("{ENTER}")

EndFunc

Share this post


Link to post
Share on other sites

Posted

ir0nfist,

i fixed the log problem by doing exactly what u said and laid out the root of the txt document. one other question, sometimes i seem to get the /logout command be put out for some purpose. im trying to learn the auto it language quickly, but what does $logtime have to do with the /logout sequence?

thanks alot

bul

Share this post


Link to post
Share on other sites

Posted (edited)

This is the code that I've changed. I've decided to see if I can use the /echo command in that I use in my fishing ffxi macro as a checkpoint measure. When I tested it out, it keeps pushing the fishing macro command, so my checkpoint stop isn't working.

Also this is for 1280x1024. Suggestions are appreciated.

; Original Script by z33to
Edited by ZootZootZootie

Share this post


Link to post
Share on other sites

Posted

weird...

I followed all the introduction instructions for running the script with autoit, but whenever i try to run the script it tells me that "$fisha = 1;" is an unknown command...

What am I doing wrong?

Share this post


Link to post
Share on other sites

Posted

If anybody can get the Pause/Unpause to work, this would be sweet. I only use the script when i'm LFG, and it's annoying to need to logout to stop the script whenever i get into a group.

Otherwise, this seems to work just fine. I've only been testing it for 20 mins or so, but it's been absolutely perfect.

Share this post


Link to post
Share on other sites

Posted

You can't get pause to function via hotkeys currently under 2000/XP. Hotkeys don't work in game, and it's not so much FFXI blocking anything as it is AutoIt isn't low-level enough to hook the keys. Many other programs can catch the same keystrokes with FF running in the foreground, still some others cannot. No idea if it works in Win98 or not.

Pause functionality would have to use either AutoHotKey, or a version of AutoIt with revamped hotkey grabbing.

To test this yourself, use the following script:

HotKeySet("{INS}", "Ding")
HotKeySet("{DEL}", "Ding")
HotKeySet("{HOME}", "Ding")
HotKeySet("{END}", "Ding")

HotKeySet("^a", "Ding")
HotKeySet("!a", "Ding")
HotKeySet("+A", "Ding")
HotKeySet("#a", "Ding")
HotKeySet("]", "Ding")
HotKeySet("=", "Ding")

HotKeySet("{F7}", "Ding")
HotKeySet("{F8}", "Ding")
HotKeySet("{F9}", "Ding")
HotKeySet("{F10}", "Ding")
HotKeySet("{F11}", "Ding")

HotKeySet("^{F7}", "Ding")
HotKeySet("^{F8}", "Ding")
HotKeySet("^{F9}", "Ding")
HotKeySet("^{F10}", "Ding")
HotKeySet("^{F11}", "Ding")

HotKeySet("!{F7}", "Ding")
HotKeySet("!{F8}", "Ding")
HotKeySet("!{F9}", "Ding")
HotKeySet("!{F10}", "Ding")
HotKeySet("!{F11}", "Ding")

$looping = 1;

While $looping
     sleep(10000)
     SoundPlay("ding.wav", 0)
WEnd

Func Ding()
 SoundPlay("ding.wav", 0)
EndFunc

Change the ding.wav to point at the windows Ding, sometimes in C:\WINDOWS\Media\. The script then dings every 10 seconds to verify that you can hear the sound, then pressing any of those hotkeys inside will make a ding - unless you're inside FFXI. In which case you'll hear the 10second ding, but hotkeys will no longer work.

Share this post


Link to post
Share on other sites

Posted

A pause function could be implemented with the ingame macros. Just change your macro palettes to a set that has a blank alt+1. The macro will still call but won't run. Its not a perfect soution but it might work.

Share this post


Link to post
Share on other sites

Posted

Bul, i am assuming this happens when the script does not catch the Something Caught the Line! text twice in a row, therefore it hits the failsafe, 2 times consecutively and logs out. Unfortunately, There is not much i can do to fix this unless someone can find some viable points in the You cannot fish here. text to change the way the logout works. If this is causing a problem for you, remove the logout part of the script, but obviously, this will not log you out if you are turned from the place you are fishing. Dunno. I will look again and try and search the text for viable points but I just can't seem to find something consistent. Sorry.

Share this post


Link to post
Share on other sites

Posted (edited)

:whistle: Alright I am a big n00b when it comes to scripts and programing, but I have taken up a little intrest lately messing around with these fishing bots and I was trying to come up with a way to make the macro pause.

I was thinking of maybe running a main macro that is always running checking for the red "you can't fish here" line and going with that but I couldn't seem to get it to work maybe someone knows what I did wrong. Like I said total n00b with this stuff so sorry if I totally messed this up. just trying to give my 2cents.

AutoItSetOption("SendKeyDelay", 25)

$check = 1

$fishing = 0

While $check > 0

Sleep (5000)

If PixelGetColor(225,440) = 16777215 Then;Caught Nothing

Sleep (0200)

$fishing = 1

EndIf

While $fishing = 1

 

Do

 

 $obtainedcheck = 0

 $timer = 0

 Do

  If PixelGetColor(179,454) = 8555775

  $fishing = 0

  Exitloop

 

  If PixelGetColor(231,453) = 16777215 Then;Something on Hook

  Sleep(Random(2000,3500))

  Send("{Enter}")

  Sleep (0200)

  ExitLoop

  EndIf

  If PixelGetColor(225,440) = 16777215 Then;Caught Nothing

  Sleep (0200)

  ExitLoop

  EndIf

  Sleep (200)

  $timer = $timer + 1

 Until $timer = 90

;Do

 ;If PiXelGetColor

 ;Sleep (2000)

 ;Send("{CTRLDOWN}")

 ;Sleep (0200)

 ;Send("{i down}")

 ;Sleep (0200)

 ;Send("{i up}")

 ;Sleep (0200)

 ;Send("{CTRLUP}")

 ;Sleep (0200)

 ;Send ("{NUMPADADD}")

 ;Sleep (0200)

 ;Send ("{ENTER}")

 ;Sleep (0200)

 ;Send ("{up}")

 ;Sleep (0200)

 ;Send ("{ENTER}")

 ;Sleep (0200)

 ;Send ("{ESCAPE}")

 ;Sleep (0200)

 ;ExitLoop

 ;Else

 ;Sleep (0100)

 ;$obtainedcheck = $obtainedcheck + 1

;Until $obtainedcheck = 10

 

 Sleep (15000)

 Send ("/Equip ammo "Lugworm"{ENTER}")

 Sleep (0200)  

 Send ("/fish{ENTER}");start the 'fishing' action

 Sleep (0200)

Until $fishing = 0

WEnd

WEnd[code=auto:0]

oh I apologize the autosort is not working right now because I was going to get the mouse positions and color for obtained items so it would only run when I caught something. I was hoping to make this very simple it seems like some of the scripts have gotten to complicated for the very simple task that needs to be done. well if anyone knows how to fix this, would be great to have something that pauses your script.

Edited by crony333

Share this post


Link to post
Share on other sites
Sign in to follow this  
Followers 0