• 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

Updated Rathe Mountian Bard Macro

smokinghot

Member
Joined
Mar 24, 2005
RedCents
A big thanks to siddin for making this for me to work on. Basically all i did was change a few commands around, and fixed a few things i didnt understand, and/or like. You will need:
1.Mob.ini
2. Packs.inc
3. loot.ini-------------------All found HERE
4. move.inc
5. sell.inc

Set songs to :

1: Selos
2. Chant of Fire
3. Chant of Disease
4. Chant of Poison
5. Chant of Ice
8. Hymn OF Restoration

I really was only able to "semi" AFK with this. I kinda had to check back from time to time, because somtimes the adds would get me. I have had this going 16 hours now, and have made close to 15k. See somthing that youd like changed??? Let me know.. Im just learning macros, so i need all the help i can get. yways. Heres the code for the Mac.
_________________________________________________________________

Rich (BB code):
|Made for bards!!!!! will need a lot of customization for any other caster, fighter types not so much.

#turbo
#include move.inc
#include sell.inc
#include packs.inc
|If you don't have the noencumber offset for docrack, i suggest uncommenting this line and commenting out the sellitems event
|#Event POK "#*#encumbered#*#"
#event SellItems "#*#The item has dropped to the ground#*#"

Sub Main
|------------------------------------------------------------
   |How many times should aquire target fail before delaying?
   |------------------------------------------------------------
   /declare RV_FailMax          int outer  1
   |------------------------------------------------------------
   |How far would you like to target a mob?
   |------------------------------------------------------------
   /declare RV_MaxRadius        int outer  1500
   |------------------------------------------------------------
   |How far is the combat range?
   |------------------------------------------------------------
   /declare RV_Range            int outer 150
   |------------------------------------------------------------
   |What is the minimum Z Value of mobs I should target?
   |------------------------------------------------------------
   /declare RV_MinZRange        int outer  -1000
   |------------------------------------------------------------
   |What is the maximum Z Value of mobs I should target?
   |------------------------------------------------------------
   /declare RV_MaxZRange        int outer  1000
   |------------------------------------------------------------
   |Should I loot all items?
   |------------------------------------------------------------
   /declare RV_LootAllItems     int outer  0
   |------------------------------------------------------------
       /declare RV_FailCounter      int outer  0
   /declare RV_MyTargetID       int outer  0
   /declare RV_MyTargetName     string outer
   /declare RV_MyTargetDead     int outer  0
   /declare RV_InvalidTargetID  int outer  0
   /declare RV_HasTarget        int outer  0
   /declare RV_RandomWait       int outer  0
   /declare RV_CheckLook        int outer  0
   /declare RV_Fighting         int outer  0
   /declare RV_TargetDead       int outer  0
   /declare RV_MyXLOC           int outer  0
   /declare RV_MyYLOC           int outer  0
/declare SeloSong int outer 8
 
|------------------------------------------------------------
   |Load in Loot Table.
|------------------------------------------------------------
   /call ReadINI Loot.ini "${Zone.Name}" Loot 
   /if (!${Defined[RV_LootArray]}) { 
      /echo No Loot Array Created... 
   } 


|------------------------------------------------------------
   |Mob Array Information.
   |------------------------------------------------------------
/call ReadINI Mob.ini "${Zone.Name}" Mob 
   /if (!${Defined[RV_MobArray]}) { 
      /echo Mob Array Creation Error, ending macro... 
      /endmacro 
}

|------------------------------------------------------------
    |Main program
|------------------------------------------------------------
/echo Starting
   /fastdrop on 
   /lootn never 
   :Start


      /call GMCheck
	/call Gettarget
	/call killmob
      /doevents
   /goto :Start
/return







Sub KillMob
/if (${Target.PctHPs}<95) /squelch /target clear
/if (${Int[${Target.PctHPs}]}<100) /squelch /target clear
  /if (!${Target.ID}) /return
  /look
  /echo Killing a ${Target.CleanName}.
  /stick 125 behind moveback
:distancecheck
/if (${Target.Distance}>=200) /goto :distancecheck
/if (${Target.PctHPs}<95) /squelch /target clear
/if (${Int[${Target.PctHPs}]}<100) /squelch /target clear
  /if (!${Target.ID}) /return
/if (${Me.PctHPs}<=95) {
/twist 2 3 4 5 1
} else {
/twist 2 3 4 5
}
/delay 6s
/if (${Me.TargetOfTarget.Name.NotEqual[${Me}]}) /squelch /target clear
  :KillStart

  /if (${Target.State.Equal[DEAD]}) /keypress esc 
  /if (${Target.ID}) /goto :KillStart
  /twist 1 2 3 4 5
  /target id ${RV_MyTargetID} corpse
  /call Lootmob
/return 





|--------------------------------------------------------------------------------
|SUB: Looting based on FishingLoot.ini.
|--------------------------------------------------------------------------------
Sub LootMob 
   /declare LootChance  int inner  0
   /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
    
   /face fast 
    
   /keypress forward 
   /keypress back 
    

/stick 12 moveback
:Distance
/if (${Target.Distance}<=10) { 
/stick off
/loot
} else {
/goto :Distance 
}
/loot
   /delay 1.5s 
   /if (!${Corpse.Items}) { 
      /echo NO LOOT! Cheap Bastard! 
|/shift /notify InventoryWindow IW_Money1 leftmouseup
|/destroy
/delay 1
/shift /notify InventoryWindow IW_Money2 leftmouseup
/destroy
/delay 1
/shift /notify InventoryWindow IW_Money3 leftmouseup
/destroy
/delay 1
/notify LootWnd DoneButton leftmouseup 
/cleanup
      /return 
   } 

   /varset LootTotal ${Corpse.Items} 
   /for LootSlot 1 to ${LootTotal} 
      /itemnotify loot${LootSlot} leftmouseup 
      /delay 5
       
         /for LootCheck 1 to ${RV_LootArray.Size} 
            /if (${Cursor.Name.Find[${RV_LootArray[${LootCheck}]}]}) { 
               /echo Keeping a ${Cursor.Name}... WOOT! 
		/autoinv 
		/delay 1s
		/if (${Cursor.ID}) {
		/autoinv
		/delay 1s
		}
		/if (${Cursor.ID}) {
		/autoinv
		/delay 1s
		}
		/if (${Cursor.ID}) {
		/autoinv
		/delay 1s
		}
               /varcalc RV_LootStats[${LootCheck}] ${RV_LootStats[${LootCheck}]}+1 
               
		

               /delay 5
            
	}
         /next LootCheck 
      } 
     /if (${Cursor.ID}) { 
        /echo Destroying a ${Cursor.Name}... 
	 /destroy
         /delay 5 
      } 
   /next LootSlot 
|/shift /notify InventoryWindow IW_Money1 leftmouseup
|/destroy
/delay 1
/shift /notify InventoryWindow IW_Money2 leftmouseup
/destroy
/delay 1
/shift /notify InventoryWindow IW_Money3 leftmouseup
/destroy
/delay 1
   /notify LootWnd DoneButton leftmouseup 
   /delay 2 
    /cleanup
/return 

|-------------------------------------------------------------------------------
|SUB: Read loot table from the INI file.
|-------------------------------------------------------------------------------
Sub ReadINI(FileName,SectionName,ArrayType) 

   /echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}... 
   /delay 1s 
    
   /if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) { 
      /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
      /delay 1s 
      /return 
   } 
   /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}) /return 
   /if (${FileName.Equal["Mob.ini"]}&&${nValues}>0) { 
      /echo Declaring Mob Array... 
      /declare RV_MobArray[${nValues}]   string outer 
      /declare RV_MobStats[${nValues}]   string outer 
   } 
   /if (${FileName.Equal["Loot.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["Mob.ini"]}) { 
         /varset RV_MobArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
         /varset RV_MobStats[${nArray}] 0 
      } 
      /if (${FileName.Equal["Loot.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 




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

   /if (${Spawn[gm].ID}) {
      /echo GM entered the zone!
      /echo For safty reasons ending the macro
      /call movetoloc 394 2473
      /q
   }

/return

|-------------------------------------------------------------------------------
|SUB: Aquire Target
|-------------------------------------------------------------------------------
Sub GetTarget

   /declare RV_CurrentRadius   int local
   /declare RV_TargetSub   int local
   /varset RV_InvalidTargetID 1
   :Acquire
/doevents
   /for RV_CurrentRadius 100 to ${RV_MaxRadius} step 100
      /for RV_TargetSub 1 to ${RV_MobArray.Size}
         /squelch /target radius ${RV_CurrentRadius} nopcnear 150 notid ${RV_InvalidTargetID} npc "${RV_MobArray[${RV_TargetSub}]}"
         /varset RV_MyTargetID ${Target.ID}
         /varset RV_MyTargetDead 0
         /if (${Target.ID}) {
            /if (${Int[${Target.PctHPs}]}<100) {
               /varset RV_InvalidTargetID ${Target.ID}
               /call ResetSub
		/squelch /target clear
               /goto :Acquire
            }
            /varset RV_HasTarget 1
            /varset RV_MyTargetName ${Target.CleanName}
            /echo Acquired ${Target.CleanName} at range ${Int[${Target.Distance}]}
            /return
         }
      /next RV_TargetSub
      /delay 2
   /next RV_CurrentRadius

   /if (!${Target.ID}) {
      /delay 2s
      /varcalc RV_FailCounter ${RV_FailCounter}+1
      |/echo Failed to Acquire Target in Range ${RV_MaxRadius} ${RV_FailCounter} Time(s)
      /if (${RV_FailCounter}>=${RV_FailMax}) {
         /echo Waiting for Respawns...
/look
/twist 1 8
/call movetoloc 44 1158
/target radius 500 Cyclops npc
/if (!${Target.ID}) /target radius 500 giant skeleton npc
/if (!${Target.ID}) /target radius 500 lizard npc
/if (!${Target.ID}) /target radius 500 basilisk npc
         /varset RV_FailCounter 0
      }
      /goto :Acquire
   }
/return

Sub Resetsub
   /varset RV_HasTarget 0 
   /varset RV_TargetDead 0 
   /varset RV_Fighting 0 
/return

Sub Event_POK


/twist 1 2 3 4 5
/delay 4s
/gate
/delay 90s
/call movetoloc -223.63 -67
/call movetoloc -239.39 146.97
/call movetoloc -187.44 156.83
/call movetoloc -188.19 223.64
/call movetospawnname ironstove 10
/click right target
/delay 1s
/call openpacks
/delay 1s
/call sell "Lambent Stone"
/call sell "Fine Steel"
/call sell "jasper"
/delay 1s
/cleanup
/delay 1s
/call movetoloc -118.82 215.76
/call movetoloc 249.92 223.19
|/call movetoloc 332.64 413.01
/keypress right
/keypress left
/keypress forward hold
  :PullMoveLoopd
/if (${Me.State.Equal[SIT]}) /stand 
  /face fast loc 438.60,444.00
  /if (${Math.Distance[438.60,444.00]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[438.60,444.00]}<=2) {
    /nomodkey /keypress forward hold
    /goto :PullMoveLoope1
  }
/goto :PullMoveLoopd
  :PullMoveLoope1

/face fast loc 441.47,490.89
/look
/doortarget
/keypress use
/delay 5
/keypress forward hold
/delay 5
/keypress use
/delay 5
/call movetoloc 441.47 490.89
/target Banker Ceridan
/click right target
/delay 1s
/shift /notify InventoryWindow IW_Money0 leftmouseup
/delay 5
/notify BigBankWND BIGB_Money0 leftmouseup
/delay 5
/shift /notify InventoryWindow IW_Money1 leftmouseup
/delay 5
/notify BigBankWND BIGB_Money1 leftmouseup
/cleanup
/delay 1s
/call movetoloc 438.71 451.62
/face fast loc 439.77,410.76
/look
/delay 5
/keypress use
/delay 5
/keypress forward hold
/delay 5
/keypress use
/keypress forward hold
/call movetoloc 439.77 410.76
/call movetoloc 193.29 218.92
/call movetoloc -232.53 217.27
/call movetoloc -482.08 449.80
/call movetoloc -495.65 706.91
/call movetoloc -531.72 720.84
/call movetoloc -927.40 717.67
/call movetoloc -899.70 501.57
/call movetoloc -844.72 445.98
/call movetoloc -900.08 444.27
/delay 1s
/doortarget POKOGPORT500
/splooge mob
/twist 8
/delay 5s
/keypress use
/delay 1 
/keypress forward
/keypress use
/delay 1 
/keypress forward
/keypress use
/delay 1 
/keypress forward
/keypress use
/delay 1 
/keypress forward
/keypress use
/delay 30s
/look
/splooge point 324 3422 4
/face fast loc 356.08,3417.19
/keypress left
/keypress right
/keypress forward hold
/delay 30s
/keypress forward hold
/delay 5s
/look
/splooge point -348 158 8
/call movetoloc 44 1128
/twist 8
/delay 10s
/return

sub selosong
      /if (${SeloSong}) /if (${Me.Buff[${Me.Gem[${SeloSong}].Name}].Duration}<=0) { 
         /echo Selos about to die 
/twist 1 2 3 4 5
         /delay 4s 
/twist 1 2 3 4 5
         /return 
      } 

/return

Sub Event_SellItems
/twist 1 8
/call movetoloc 628.45 247.45
/call movetoloc 1037.45 -32.46
/target Viira Bali
/splooge mob
/call openpacks
/delay 5
/click right target
/call sell "Lambent Stone"
/call sell "Fine Steel"
/call sell "jasper"
/cleanup
/splooge point 628.45 247.45 10.58
/return
 
Just a quick question for the more experienced writers in here. CAn u tell me why this code isnt working when i try to add it to succor, run /ssteel.mac, and the warp back to the hill using the WP feature.

Rich (BB code):
/if (${Me.PctHPs}<=20) {
/splooge safe
/mac ssteel.mac
/if (${Me.PctHPs}<=95) {
/splooge WP hill
/mac hillgiant.mac

Thanks
 
How hard would it be to modify this for a warrior? Or would it even need to be modified?
 
IM having an issue with the merchant window, its not selling... I need to sort through it again, and see whats wrong. Ill post another update in a few days. Right now I have myself warping to the safe point when HP<10%, then runninb Hymn of Replentishment, with a delay of 120s, before warping to a waypoint i created on the hill giant hill, before starting all over again. It seems to be working great all except the merchant window.
 
And it would be pretty darn hard to set this up for anything but a bard. Bards make it easy, because:
1. They are so fast.
2. /twist
3. Nn mana or need for medding really

Im not saying it couldnt be done.... Im just saying that ive had a hard time getting this macro set up for myself right. I mean, with a little succor, bind wound/ and /splooge WP, id say it could be done most definetaly. In fact, now that i think about it... it wouldnt be all that drastic of a code change....
 
Smoking, just post snippets of the parts of the macro you don't understand and I'll try to explain it all for you :)
 
Updated Rathe Mountian Bard Macro

Users who are viewing this thread

Back
Top
Cart