I'm not great with macros, but I want to learn.(Scroll down to my next Post for a better explanation) Ive figured out how to get "for loop" to work, but I'm having trouble getting a "system message" to cut the X number in "for loop" short and move on. The Macro is going to be a Fishing Trainer for new fishers, and it needs to run like a "sports car", not the "Yugo" macro I posted and gmed 3 fishers with. This is the base code of one cast with for loop working like it should: Code: Assistant.Macros.ForAction|15 Assistant.Macros.DoubleClickTypeAction|3520|True Assistant.Macros.WaitForTargetAction|3 Assistant.Macros.TargetRelLocAction|0|-4 Assistant.Macros.PauseAction|00:00:09 Assistant.Macros.EndForAction That casts 15 times in Rel Loc then moves on. What I would like it to do is cast up to 15 times unless the fish are not biting, and move on if not biting. I tried adding in- for loop=15 (cast) if sys message=biting(fish not biting) end if(also tried removing end if keep end for) end for(also tried removing end for keep end if) Tried-opposite sys message for loop=15 (cast) if sys message=a fish(pull a fish) if sys message=you fish awhile(no fish) else if sys message=biting(fish not biting) end if/ or end for(and both like above) I guess i should be asking IF the for loop can be cut short? or am I going about it all wrong? Teach me, or set me on the right path please. I am reading Criss's guide to Razor macros, but I seem to need more tutelage.
Don't fish in a for loop. The macro should loop by calling itself repeatedly. 1) fish 2) check sysmessage and handle condition of they aren't biting, move the boat and pause Long enough for boat to move and issue a stop. 3) regardless of sysmessage outcome, at the end have the macro execute itself.
or just make it simple... double click (fishing pole) wait fr target target relative location pause (whatever the fishing timer is) say: forward one !loop
As Russell shows there's a basic way to do it or you can get fancy. Once you tinker around with it and get comfortable, feel free to message me if you'd like to add to it. I run a chain of macros that can determine if the boat is stuck, tries to navigate out of it or change direction near shore, and also will hide and wait until it's safe when hostiles are nearby. The autopilot can be quite boring but let's you just fish and handles everything else for you.
Thank you Aris and Russell for replying, I probably should have explained a little more. Simple macros I can handle, this is for a Fishing Dock trainer 30-99.9 skill AFK with no walking involved(sync). My goal is a no boat(afk gump) Dock Fishing Trainer that can be easily modified for any dock or land peninsula. I have several working macros I used to GM 3 fishers now, but they are very long (26kb-30kb). They fish out 6-8 different spots on a Dock(20 casts per spot) those macros have to be used where they were made. The macro I am trying to build would have 6-8 Target Rel casts to set and use on any dock, which is why I want to use "for loop". I have a working version now that uses "for loop" X 15, the problem I have is sometimes the fish don't bite after 7 casts.( Example-another fisher in the same area) I can't seem to get sys message="the fish don't seem to be biting here" to stop the "for loop" short of 15 casts and go to the next spot. Either I'm not setting the "sys-message" in the right spot with "for loop" or it just may not work with it in one macro. I can use it like it is, but I would like it to be more intelligent. The only other Idea I had was to use 6-8 short macros(one for each spot) and have it "call up" the next spot when it was done.
double click (fishing pole) wait for target target relative location pause 7 seconds? if system message "are not biting" pause 45 minutes...in milliseconds end if !loop that would work for siting at a single dock none stop to gm but would take a lot of time as your wasting about 40 minutes waiting for the resources to refresh. you wouldnt really even need the system message timeout because the macro wont time out from no fish biting and you wouldnt get an afk gump until gm so... double click (fishing pole) wait for target target relative location pause 7 seconds? !loop that would work just as well. If you are going to just stand in one spot find somewhere you can hit 2-3 8x8 from that spot to maximize the gains per resource refresh double click (fishing pole) wait for target target relative location 1 pause 7 seconds? double click (fishing pole) wait for target target relative location 1 pause 7 seconds? double click (fishing pole) wait for target target relative location 1 pause 7 seconds? double click (fishing pole) wait for target target relative location 1 pause 7 seconds? double click (fishing pole) wait for target target relative location 1 pause 7 seconds? double click (fishing pole) wait for target target relative location 2 pause 7 seconds? double click (fishing pole) wait for target target relative location 2 pause 7 seconds? double click (fishing pole) wait for target target relative location 2 pause 7 seconds? double click (fishing pole) wait for target target relative location 2 pause 7 seconds? double click (fishing pole) wait for target target relative location 2 pause 7 seconds? !loop many more advanced ways you can set up recalling from dock to dock or add walking in you macro
an alternative to the walking dysync problem is to use a boats "forward one, back one, left one, etc". These work flawlessly. Then you could have a macro with relative positions that anyone can use w/o changing anything as long as they can get their boat in your exact starting position. Either way this would be an easy macro to write and could be set up to only fish shallow water. I have made hour long mining loops that work on boats just moving 1 tile at a time using boat commands, and absolute targets for each vein.
Thanks El Horno. I do like the starting position thing. The macros I'm using now are about 20 minutes long now full circle. The only reason I'm trying to keep it dock based is so it can be used fully afk with no gumps all the way to 99.9. That and maybe to save a new player the cost of a Ship until they have 10k to spare. When I made my fishers I didn't want to just run a macro waiting for fish to re-spawn in one spot. I tried walking but threw it out of sync, so I added teleport(which didn't use that many regs) and all three moved around the dock all night long without wasting time waiting for re-spawn. I thought it was a good idea, I just want to clean it up and make it more user friendly for use anywhere on land. I have several working versions now, one that can be easily modified. Maybe I'm just trying to make a tool no one needs, lol