• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Question - Fishing

Toneman07

New member
Joined
Sep 20, 2010
RedCents
21¢
is there a macro for this? i scanned through the list real quick and didnt see any i was hoping for something like forage that would auto destroy / keep what you wanted and didnt want
 
i was looking at the ninjaloot idc and didnt really see anything that would be a command to hit the fishing button and like if pole brings replace pole with inventory item # and keep fishing poles in ur backpack etc
 
Found this in my old backups from 2004, not sure if it still works. I did browse through it and nothing really stood out as a problem.

This is 7 years old but if the original writer doesn't want this posted please PM me I will take it down.

Rich (BB code):
|----------------------------------------------------------------------------
|     Name:   HyperFish.Mac                                       
|Developer: Fibby                                             
|     Date: 11/27/2004                                 
|----------------------------------------------------------------------------
|Purpose:   HyperFish is designed to be the next generation "smart" fishing   
|         automation macro.  It will auto replace any broken poles that   
|         may have met their demise at your hands either by searching your
|         inventory for one or summoning one from a fishermans companion    
|                                                         
|         This Macro is INI driven for it's "loot" tables on a per zone   
|         basis.  However, if there's not a section for the zone you want   
|         to fish in the INI file, then it will create a new section for    
|         your benifit.                                         
|                                                         
|         If there are no loot items defined in the zone section of the    
|         ini file, then the macro will assume that you want to "keep"   
|         all things that are edible and drop all "non food" items.  If   
|         in happens to fish a no-drop non food item, and that item is    
|         not declared in your loot tables, then it will attempt to        
|         destroy that item by default.  You can of course change that     
|         flag if you wish.                                    
|                                                         
| Depends:   HyperLoot.ini - Same directory as this macro               
|----------------------------------------------------------------------------
|Credits:   This script was inspired by panther and his adv_fish macro      
|         while it is an outstanding macro.. I wanted something more...   
|----------------------------------------------------------------------------
|Revisions:
| v1.1  fby      Bug Fixes pointed out by Budman                                                   
| v1.0   fby      Created the initial file offering                     
|----------------------------------------------------------------------------

#turbo 10


|----------------------------------------------------------------------------
| Event Declarations         
|----------------------------------------------------------------------------

#event BrokenPole "Your fishing pole broke!"
#event LostBait "You lost your bait!"
#event NeedPole "You can't fish without a fishing pole, go buy one."
#event NothingCaught "You didn't catch anything."
#event OutOfBait "You can't fish without fishing bait, go buy some."
#event PrimaryHand "You need to put your fishing pole in your primary hand."
#event SkillUp "You have become better at #1#! (#2#)"
#event SpillBeer "You spill your beer while bringing in your line."


|----------------------------------------------------------------------------
| Main Macro Code            
|----------------------------------------------------------------------------

Sub Main

   |------------------------------------------------------------------------
    |User Settings = Set these please (1 for yes, 0 for no)   
   |------------------------------------------------------------------------
   /declare UserVar_DisplayStats   int outer 1
   /declare UserVar_CampOutFinish   int   outer 1
   /declare UserVar_DestroyNoDrop   int outer 1

   |------------------------------------------------------------------------
    | Counter data holders here            
   |------------------------------------------------------------------------
   /declare int_BrokenPole      int outer  0
   /declare int_ItemsDropped   int outer  0
   /declare int_LostBait      int outer  0
   /declare int_NothingCaught   int outer  0
   /declare int_SpillBeer      int outer  0
   /declare int_TotalCasts      int outer  0

   |------------------------------------------------------------------------
    | Operational Variables for this macro   
   |------------------------------------------------------------------------
   /declare op_int_GotLootArray   int outer 0
   /declare op_int_GotFishComp      int outer 0
   /declare op_int_FishByLoot      int outer 0
   /declare op_int_LoopCounter      int outer 0
   /declare op_int_ExitMacro      int outer 0
   
   /echo Starting up ${Macro}
    | Check our inventory for Fish Comp.   
   /for op_int_LoopCounter 1 to 8
      /if (${InvSlot[pack${op_int_LoopCounter}].Item.Name.Equal["Fisherman's Companion"]}) {
         /echo Whoopie!! Found our Fisherman's Companion!
         /varset op_int_GotFishComp 1
         /goto :BreakForFindFishComp
      }
   /next op_int_LoopCounter
   :BreakForFindFishComp
   /varset op_int_LoopCounter 0
   
   |------------------------------------------------------------------------
    | Load in Loot Table.                
   |------------------------------------------------------------------------
   /call ReadINI HyperFish.ini "${Zone.Name}" Loot
    /varset op_int_GotLootArray ${Macro.Return}

   |------------------------------------------------------------------------
   | Inventory anything we may have on our cursor before starting
   |------------------------------------------------------------------------
   /autoinventory
   
   |------------------------------------------------------------------------
   | Heart of the whole fishing routine..   
   |------------------------------------------------------------------------
   :Fish
   /if (${op_int_ExitMacro}==1) /goto :ExitMacro
   /call GMCheck
   /delay 2s
   /if (${Cursor.ID}) /call Looting
   /if (${Me.AbilityReady[Fishing]}) {
       /delay 1s
       /varcalc int_TotalCasts ${int_TotalCasts}+1
       /doability Fishing
   }
   /doevents
   /goto :Fish
|----------------------------------------------------------------------------
| End our Macro      
|----------------------------------------------------------------------------
:ExitMacro
   /echo -= Total Stats for this Fishing Trip =-
   /call DisplayStats
   /if (${UserVar_CampOutFinish}=1) {
      /sit off
      /sit on
      /camp
   }
/return



|----------------------------------------------------------------------------
| Begin Support sub routines      
|----------------------------------------------------------------------------
| ReadINI: Stolen from adv_fish code, modified to return 1 if
|         loot table built or 0 of loot table not built.
|----------------------------------------------------------------------------
Sub ReadINI(FileName, ZoneName, KeyRoot)
   /declare loc_int_returnValue int local 0
   /echo Attempting to Read "${ZoneName}" Section from ${FileName}
   /delay 1s
   
   /if (${Ini[${FileName}, ${ZoneName}, -1, NO].Equal[NO]}) {
      /echo Zone "${ZoneName}" Not found, Creating it now...
      /Ini ${FileName}, ${ZoneName}, -1, -1
      /delay 1s
        | Obviously, since we didn't have a section, we're not going to
        | have a loot section.. so we can end now
      /return loc_int_returnValue
   }
   
   /declare nValues     int local  1
   /declare nArray      int local  0
    /declare KeySet      string local  ${Ini[${FileName},${SectionName}]}
   
    :CounterLoop
   /if (${String[${Ini[${FileName},${SectionName},${ArrayType}${nValues}]}].Equal[null]}) {
      /varcalc nValues ${nValues}-1
      /goto :MakeArray
   }
   /varcalc nValues ${nValues}+1
    /goto :CounterLoop
   
    :MakeArray
   /if (!${nValues}) {
      | We didn't find any values in our loot tables.. so we'll just exit now
      /return loc_int_returnValue
   } else {
      | Must have found some values.. set our return variable now
      /varset loc_int_returnValue 1
   }
   /if (${FileName.Equal["HyperFish.ini"]}&&${nValues}>0) {
      /echo Declaring Loot Array...
      /declare RV_LootArray[${nValues}]  string outer
      /declare RV_LootStats[${nValues}]  string outer
   }
   
   /for nArray 1 to ${nValues}
      /if (${FileName.Equal["HyperFish.ini"]}) {
         /varset RV_LootArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]}
         /varset RV_LootStats[${nArray}] 0
      }
   /next nArray
   
   /echo "${SectionName}" Zone Information Read Successfully from ${FileName}...
   /delay 1s
/return loc_int_returnValue

|----------------------------------------------------------------------------
|SUB: Display fishing stats.
|----------------------------------------------------------------------------
Sub DisplayStats
   /declare nArray  int local
   /echo Total number of casts = ${int_TotalCasts}
   /echo Items fished so far:
   /if (${Defined[RV_LootArray]}) {
      /for nArray 1 to ${RV_LootArray.Size}
         /echo   ${RV_LootArray[${nArray}]} -  ${Int[${RV_LootStats[${nArray}]}]}
      /next nArray
   }
   /echo
   /echo Bad fishing so far:
   /echo    Broken Poles - ${int_BrokenPole}
   /echo   Items Dropped - ${int_ItemsDropped}
   /echo       Lost Bait - ${int_LostBait}
   /echo  Nothing Caught - ${int_NothingCaught}
   /echo    Spilled Beer - ${int_SpillBeer}
/return

|----------------------------------------------------------------------------
|SUB: Main Looting routine.. based on adv_fish, heavily modified.
|----------------------------------------------------------------------------
Sub Looting
   /declare LootCheck   int inner 0
   
   /if (${op_int_GotLootArray}==0) {
      /if (${Cursor.Type.Equal["Food"]}) {
         /autoinventory
      }
   } else {   
      /for LootCheck 1 to ${RV_LootArray.Size}
         /if (${Cursor.Name.Find[${RV_LootArray[${LootCheck}]}]}) {
            /echo Keeping a ${Cursor.Name}... WOOT!
            /varcalc RV_LootStats[${LootCheck}] ${RV_LootStats[${LootCheck}]}+1
            /autoinventory
         }
      /next LootCheck
   }
   /if (${Cursor.ID}) {
      /if (${Cursor.NoDrop}) {
         /if (${UserVar_DestroyNoDrop}==1) {
            /destroy
         } else {
            /autoinventory
         }
      } else {
         /echo Dropping a ${Cursor.Name}...
         /drop
         /varcalc int_ItemsDropped ${int_ItemsDropped}+1
      }
   }
   /if (${UserVar_DisplayStats}==1) /call DisplayStats
/return

|----------------------------------------------------------------------------
|SUB: Pole replacement logic
|----------------------------------------------------------------------------
Sub FindPole
   /declare lv_int_Return int local 0
   /declare lv_int_LoopCounter int local 0
   /if (${op_int_GotFishComp}==1) {
      | We have our companion.. summon our pole
      /cast item "Fisherman's Companion"
      /delay 11s
      /autoinventory
      /varset lv_int_Return 1
   } else {
      | We don't have a companion, find a fishing pole in inventory
      /for op_int_LoopCounter 1 to 8
         /if (${InvSlot[pack${op_int_LoopCounter}].Item.Container}) {
            /for lv_int_LoopCounter 1 to ${InvSlot[pack${op_int_LoopCounter].Container}
               /echo ${InvSlot[pack${op_int_LoopCounter}].Item.Name} - ${InvSlot[pack${op_int_LoopCounter}].Item.Item[${lv_int_LoopCounter}].Name}
               /if (${InvSlot[pack${op_int_LoopCounter}].Item.Item[${lv_int_LoopCounter}].Type.Equal["Fishing Pole"]}) {
                  /ItemNotifiy pack${op_int_LoopCounter} rightmouseup
                  /ItemNotify ${InvSlot[pack${op_int_LoopCounter}]} ${lv_int_LoopCounter} leftmouseup
                  /autoinventory
                  /varset lv_int_Return 1
                  /goto :BreakoutLoop
               }
            /next lv_int_LoopCounter
         } else {
            /if (${InvSlot[pack${op_int_LoopCounter}].Item.Type.Equal["Fishing Pole"]}) {
               /itemnotify pack${op_int_LoopCounter} leftmouseup
               /autoinventory
               /varset lv_int_Return 1
               /goto :BreakoutLoop
            }
         }
      /next op_int_LoopCounter
   }
   :BreakoutLoop
   /if (${lv_int_Return}==0) {
      /echo Bummer.. We're out of Fishing Poles
      /varset op_int_ExitMacro 1
   }
/return lv_int_Return

|----------------------------------------------------------------------------
|SUB: Check for GM's in zone.
|----------------------------------------------------------------------------
Sub GMCheck

   /if (${Spawn[gm].ID}) {
      /beep
      /beep
      /beep
      /echo GM entered the zone!
      /echo For safty reasons ending the macro...
      /endmacro
   }

/return

|----------------------------------------------------------------------------
| End Support sub routines         
|----------------------------------------------------------------------------

|----------------------------------------------------------------------------
| Begin Event Sub Routines         
|----------------------------------------------------------------------------
Sub Event_BrokenPole
   /varcalc int_BrokenPole ${int_BrokenPole}+1
   /varcalc int_NothingCaught ${int_NothingCaught}-1
/return


Sub Event_LostBait
   /varcalc int_LostBait ${int_LostBait}+1
   /varcalc int_NothingCaught ${int_NothingCaught}-1
/return


Sub Event_NeedPole
   /call FindPole
/return


Sub Event_NothingCaught
   /varcalc int_NothingCaught ${int_NothingCaught}+1
/return


Sub Event_OutOfBait
   /echo Bummer.. we're out of bait
   /varset op_int_ExitMacro 1
/return


Sub Event_PrimaryHand
   /call FindPole
/return


Sub Event_SkillUp(SkillUpText,Skill,int Amount)
   /popup Fishing increased to - ${Amount}
   /echo Fishing increased to - ${Amount}
/return


Sub Event_SpillBeer
   /varcalc int_SpillBeer ${int_SpillBeer}+1
   /varcalc int_NothingCaught ${int_NothingCaught}-1
/return
|----------------------------------------------------------------------------
| End Event Sub Routines         
|----------------------------------------------------------------------------


hyperfish.ini should look something like

Rich (BB code):
[Plane of Knowledge]
Loot1=Fresh Fish
 
You can try the fishing.mac sticky under Macros . I set it up to look for poles in inventory or buy one if there were none.
 
Thanks for the help guys i went to copy that into my macro file and lookie there there is a fishing macro in there for the fishermans companion which i have ..... me = epic fail Thanks again
 
Last edited:
Thanks for the help guys i went to copy that into my macro file and lookie there there is a fishing macro in there for the fishermans companion which i have ..... me = epic fail Thanks again

As long as you are learning you can be forgiven.
 
Dragonfire to you have a Sub to get it to cast brells companion and auto equip to main hand for the

Sub Event_BrokenPole
/endmacro
instead of end macro i want it to cast the item and summon a new pole and loop back to fishing

//
ignore this i found what i was looking for in Night's post for the fisher man companion one Redcented Night
 
Last edited:
Night's post is definately a lot more involved macro pretty entertaining it keeps track of everything bad you fish all the beer you spill and the fact that you caught nothing items dropped poles broken etc etc it attempts to keep track of what you actually kept however it doesnt but all in all it works quite well
 
I have that one too, but when I don't have a pole summoned, it won't summon one, but if I buy regular poles from the merchant he will use them. Not sure what the issue is, but if someone could look into it.. I can't even get him to fish with brells pole if I summon it myself and put it in primary.

I think everyone gets this with the compile download..
Rich (BB code):
|*******************************************************************|
| - YodaFish.mac -                                                 *|
| - By: Yoda                                                       *|
| - v2.0 by DKAA                                                   *|
|                                                                  *|
| Usage:                                                           *|
| To Fish and Gate if anything attacks you.                        *|
| Will Sit and camp out when you run out of bait.                  *|
| To be used with a Fisherman's Companion.                         *|
|                                                                  *|
|*******************************************************************|

#turbo

#event BrokenPole "#*#You can't fish without a fishing pole, go buy one.#*#"
#event NoBait "#*#You can't fish without fishing bait, go buy some.#*#"

Sub Main
    /cleanup
    :Fish
        /call CheckPole 
        /doability Fishing
        /delay 65 
        /doevents

        /if (!${Cursor.ID}) /goto :Fish

        /if (${Cursor.Name.Equal[Tattered Cloth Sandal]}) {
            /destroy
            /delay 1s
        } else {
            /if (${Cursor.Name.Equal[Rusty Dagger]}) {
                /destroy
                /delay 1s
            } else {
                /call KeepItem
            }
      }
   /goto :Fish
/return

Sub KeepItem
   /if (${Cursor.Name.NotEqual[Fish Scales]}) /echo Caught ${Cursor.Name}
   /notify InventoryWindow IW_CharacterView leftmouseup
/return

Sub CheckPole
   /if (${Me.Inventory[mainhand].Name.Find[Fishing Pole]}) /return
   /echo  You need to put your fishing pole in your primary hand.
   /endm
/return

Sub Event_BrokenPole
   /endmacro
/return

Sub Event_NoBait
   /endmacro
/return
 
I have that one too, but when I don't have a pole summoned, it won't summon one, but if I buy regular poles from the merchant he will use them. Not sure what the issue is, but if someone could look into it.. I can't even get him to fish with brells pole if I summon it myself and put it in primary.

I think everyone gets this with the compile download..
Rich (BB code):
Sub CheckPole
   /if (${Me.Inventory[mainhand].Name.Find[Fishing Pole]}) /return
   /echo  You need to put your fishing pole in your primary hand.
   /endm
/return

The macro is checking for [fishing pole] in your primary hand. To use it with a summoned pole replace [fishing pole] with the exact name of the summoned pole.

You could copy / paste the entire line changeing only the name of the fishing pole to accept either.
 
I'll give this a try, It's just weird it says its made to be used with fisherman's and it isn't usable with it, lol. I am going to have to learn how to do basic coding, Thanks for letting me know how to fix it. I just thought it would look for anything with the word fishing pole but anyhoo. simple pole name change should work.
 
After a bit more research it looks like I was only almost right.The macro is checking anything with teh words [fishing pole] in your main hand. The problem appears to be that "Brell's Fishin' Pole" does not in fact cotain teh words "fishing pole". The g at the end of fishing is replaced with '

Change the following section:

Sub CheckPole
/if (${Me.Inventory[mainhand].Name.Find[Fishing Pole]}) /return
/echo You need to put your fishing pole in your primary hand.
/endm
/return

replace with

Sub CheckPole
/if (${Me.Inventory[mainhand].Name.Find[Fishing Pole]}) /return
/if (${Me.Inventory[mainhand].Name.Find[Fishin' Pole]}) /return
/echo You need to put your fishing pole in your primary hand.
/endm
/return

I can't test this but it should work for either a brell's summoned pole or a regular vender purchased pole.
 
I am using this mac on three of my chars, one has the Brell's summoned pole and the other two have the vendor bought poles. None of them replaced their broken pole from inventory. I had to manually replace it and restart the macro on each of them. Any idea why?
 
The YodaFish.mac just ends when you don't have a pole. The HyperFish.Mac requires the brell's fisherman companion to be in a primary slot not in a pack and that your primary weapon slot be empty or holding a fishing pole. The only other thing I can see that would cause a problem would be the event messages are different. You might want to check the message you are getting against the following:

Rich (BB code):
#event BrokenPole "Your fishing pole broke!"
#event NeedPole "You can't fish without a fishing pole, go buy one."

If you are getting a different message then just add another #event with the message you are getting.

ctaylor
 
Question - Fishing

Users who are viewing this thread

Back
Top
Cart