• 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

VeliumHunter.mac

armysoldier

Well-known member
Joined
Jun 26, 2005
RedCents
101¢
Working Code

WARNING: Do not use DS with this.. it causes the logic to think the mob is being hit by someone else

Final edits for today ... works good.. will add PC detection to Pieces tomorrow
EDITED:
Edits 11/20/05
Tweeked more LOCs
added a HP check
made it warrior friendly



Edits 10/10/05
Tweeking LOCS in the CaveDiver
Tweeking Zoning events

This is the bard / melee version

This takes you in one cave entrance makes a giant loop inside and comes out on the otherside and starts back at entrance

Future Plans:
Caster Version - medding is gonna be a pain
Melee only version - should not be too difficult.. no snare is gonna be a bitch
Re-Incorporate VeliumBits.inc - REMed out atm


I tested the hunting and pieces part...

using a 66 bard .. worked like a champ ..

The hard part was not warping all over .. and navigating the caves

i am sure there are better ways to do this.. but here it goes......

Also once full the toon zones to thurg.. gates to forge and does the combines

there are 3 files

Veliumhunter.mac
Veliumpieces.inc
Veliumbits.inc


FEEL FREE to try this out and let me know errors

8-)

VeliumHunter.mac

Rich (BB code):
 | VeliumHunter.MAC
| Re-Written by Armysoldier
| 
| Seriously Modified Hunter.mac 
| Author      : robdawg 
| 
| Useage      : /macro VeliumHunter 
| Description : This macro will run your character to the Tizmak cave entrance
|      Then the killing begins.. Twists a few songs and melee
|      You set how many items you can hold... See a couple lines below
|      Once Full you will zone to thurg and turn your treasures into Velium Pieces
| 
|------------------------------------------------------------------------------------ 
#include spell_routines.inc

#Event Full "[MQ2] 20 Velium's"
|-------------------- ^^ NEEDS to be # of empty slots in inventory MINUS 1
|
|
#Event GD "#*#entered The Great Divide#*#"

#Event Died "#*#entered The Plane of Knowledge#*#" 

#Event Thurg "#*#entered The City of Thurgadin#*#"

#include VeliumPieces.inc
#include VeliumBits.inc
#include HunterMob.ini

#include common/sell.inc
#include common/buy.inc
#include common/packs.inc
#include common/cleanpacks.inc

Sub Main 
   /docrack nostun on
   /docrack nomeleepushback on
   /docrack noencumber on
   

   |------------------------------------------------------------ 
   |How many times should aquire target fail before delaying? 
   |------------------------------------------------------------ 
   /declare RV_FailMax          int outer  3 
   |------------------------------------------------------------ 
   |How far would you like to target a mob? 
   |------------------------------------------------------------ 
   /declare RV_MaxRadius        int outer  100 
   |------------------------------------------------------------ 
   |How far is the combat range? 
   |------------------------------------------------------------ 
   /declare RV_Range            int outer 10 
   |------------------------------------------------------------ 
   |What is the minimum Z Value of mobs I should target? 
   |------------------------------------------------------------ 
   /declare RV_MinZRange        int outer  -200 
   |------------------------------------------------------------ 
   |What is the maximum Z Value of mobs I should target? 
   |------------------------------------------------------------ 
   /declare RV_MaxZRange        int outer  355 
   |------------------------------------------------------------ 
   |Should I loot all items? 
   |------------------------------------------------------------ 
   /declare RV_LootAllItems     int outer  0 
   |------------------------------------------------------------ 
   |Should I display stats? 
   |------------------------------------------------------------ 
   /declare RV_DisplayStats     int outer  1 

   |------------------------------------------------------------ 
   |Loot Array Information. 
   |------------------------------------------------------------ 
   /call ReadINI HunterMob.ini "${Zone.Name}" Mob 

   /if (!${Defined[RV_MobArray]}) { 
      /echo Mob Array Creation Error, ending macro... 
      /endmacro 
   } 

   |------------------------------------------------------------ 
   |Mob Array Information. 
   |------------------------------------------------------------ 
   /call ReadINI HunterLoot.ini "${Zone.Name}" Loot 
   /if (!${Defined[RV_LootArray]}) { 
      /echo No Loot Array Created... 
   } 

   |------------------------------------------------------------ 
   |Variables that you don't need to worry about. 
   |------------------------------------------------------------ 
   /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_LootSlot         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 RV_FastRange        int outer 
   /declare RV_RangeMax         int outer 
   /declare RV_RangeMin         int outer 
   /varcalc RV_FastRange ${RV_Range}+3 
   /varcalc RV_RangeMax ${RV_Range}+1 
   /varcalc RV_RangeMin ${RV_Range}-1 
   /declare stop int outer 
   /varset stop 0
   
   :Start 
   /doevents 
   /if (${Me.PctHPs}<15) /call REGEN
   /call GMCheck
   /call DisplayStats
   /call GetTarget 

   :KillAdds 
   /if (${RV_HasTarget}) /call MoveToMob 
   /if (${RV_HasTarget}) /call CombatSub 
   /if (${RV_HasTarget}) /call MoveToMob 
   /if (${RV_HasTarget} && (${Defined[RV_LootArray]} || ${RV_LootAllItems})) /call LootMob 
   /if (${RV_DisplayStats}) /call DisplayStats 
   /call ResetSub 

   /varset RV_RandomWait ${Math.Rand[5]} 
   /varcalc RV_RandomWait ${RV_RandomWait}+1 
   /echo Paranoia - Waiting ${RV_RandomWait} seconds before resuming 
   /delay ${RV_RandomWait}s
   /if (${Me.Class.Name.Equal[Warrior]}) {
   /if (!${Target.ID}) {
   /keypress 1
   /delay 4s 
  }
    
   /if (${Target.ID}) { 
      /echo Looks like something is attacking us, killing it... 
      /delay 1s 
      /varset RV_HasTarget 1 
      /varset RV_Fighting 1 
      /goto :KillAdds 
   } 
    
   /goto :Start 
    
/return 

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

   /declare RV_CurrentRadius   int local 
   /declare RV_TargetSub   int local 
   :Acquire 
   /for RV_CurrentRadius 10 to ${RV_MaxRadius} step 100 
      /for RV_TargetSub 1 to ${RV_MobArray.Size} 
         /squelch /target radius ${RV_CurrentRadius} nopcnear 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) { 
               /echo Mob NOT a Full Health, picking another... 
               /varset RV_InvalidTargetID ${Target.ID} 
               /call ResetSub 
               /goto :Acquire 
            } 
            /if (${Int[${Target.Z}]}<${RV_MinZRange}) { 
               /echo Mob is BELOW Min Z Range, picking another... 
               /varset RV_InvalidTargetID ${Target.ID} 
               /call ResetSub 
               /goto :Acquire 
            } 
            /if (${Int[${Target.Z}]}>${RV_MaxZRange}) { 
               /echo Mob is ABOVE Max Z Range, picking another... 
               /varset RV_InvalidTargetID ${Target.ID} 
               /call ResetSub 
               /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
      /keypress 1
      /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, Resetting Failure Counter... 
         /echo moving deeper
         /call CaveDiver 
         /varset RV_FailCounter 0 
      } 
      /goto :Acquire 
   } 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Moving 
|-------------------------------------------------------------------------------- 
Sub MoveToMob 

   /varset RV_MyXLOC ${Int[${Me.X}]} 
   /varset RV_MyYLOC ${Int[${Me.Y}]} 
   /declare RV_DistanceTimer timer 15 
    
   /doevents 
    
   :MovementLoop 


   /if ((!${RV_Fighting})&&(!${RV_TargetDead})&&(${Target.PctHPs}<100)) { 
      /echo Mob not at full health, picking another... 
      /varset RV_InvalidTargetID ${Target.ID} 
      /varset RV_HasTarget 0 
      /call ResetSub 
      /return 
   } 

   /if (${Target.ID}) { 
      /face fast 
   } 
   /if (${Int[${Target.Distance}]}>${RV_FastRange}) { 
      /keypress forward hold 
   } 
   /if (${Int[${Target.Distance}]}<${RV_FastRange}&&${Int[${Target.Distance}]}>${RV_RangeMax}) { 
      /keypress forward 
   } 
   /if (${Int[${Target.Distance}]}<${RV_RangeMin}) { 
      /keypress back 
   } 
   /if (!${RV_DistanceTimer}) { 
      /if ((${RV_MyXLOC}==${Int[${Me.X}]})&&(${RV_MyYLOC}==${Int[${Me.Y}]})) /call HitObstacle 
      /varset RV_MyXLOC ${Int[${Me.X}]} 
      /varset RV_MyYLOC ${Int[${Me.Y}]} 
      /varset RV_DistanceTimer 15 
      /goto :Movementloop 
   } 
   /if (${Int[${Target.Distance}]}>${RV_FastRange}) /goto :MovementLoop 

/return 

|-------------------------------------------------------------------------------- 
|SUB: Combat 
|-------------------------------------------------------------------------------- 
Sub CombatSub 

   /echo Attacking Mob NOW! 
   /varset RV_Fighting 1 
   /varset RV_TargetDead 0 
   /keypress forward
   /delay 1s
   /if (${Me.Class.Name.Equal[Bard]}) /call sing
   /delay 2s
   :CombatLoop 
   /doevents
   /keypress forward 
   /attack on

    
   /call MoveToMob 
   |/if ((${Target.Distance}<11)&&(${Me.AbilityReady["Bash"]})) /doability "Bash"
      /if (!${Target.ID}) {
      /attack off 
      /keypress forward 
      /keypress back 
      /varset RV_TargetDead 1 
      /varset RV_Fighting 0 
      /delay 1s 
      /target radius 100 corpse 
      /delay 1s 
      /if (!${Target.ID}) { 
         /call ResetSub 
         /return 
      } 
      /face fast 
   }
 
   /if (!${RV_TargetDead}) { 
      /goto :CombatLoop 
   } 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: Looting 
|-------------------------------------------------------------------------------- 
Sub LootMob 
   /if (${Me.Class.Name.Equal[Bard]}) /twist off
   /if (${Me.Class.Name.Equal[Bard]}) /cast 6
   /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
    
   /face fast 
   /autoinventory
   /keypress forward 
   /keypress back 
    
   /fastdrop on 
   /lootn never 
   /delay 2s 
   /loot 
   /delay 2s 
   /if (!${Corpse.Items}) { 
      /echo NO LOOT! Cheap Bastard! 
      /return 
   } 

   /varset LootTotal ${Corpse.Items} 
   /for LootSlot 1 to ${LootTotal} 
      /itemnotify loot${LootSlot} leftmouseup 
      /delay 1s 
      /if (${RV_LootAllItems}) { 
         /echo Keeping a ${Cursor.Name}... WOOT! 
         /autoinventory 
         /delay 1s 
      } 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 
               /delay 1s 
            } 
         /next LootCheck 
      } 
      /if (${Cursor.ID}) { 
         /echo Destroying a ${Cursor.Name}... 
         /destroy 
         /delay 1s 
      } 
   /next LootSlot 
    
   /notify LootWnd DoneButton leftmouseup 
   /delay 2 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: Reset 
|-------------------------------------------------------------------------------- 
Sub ResetSub 

   /keypress esc 
   /keypress esc 
   /keypress esc 
   /keypress esc 
    
   /varset RV_HasTarget 0 
   /varset RV_TargetDead 0 
   /varset RV_Fighting 0 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: Obstacle Avoidance 
|-------------------------------------------------------------------------------- 
Sub HitObstacle 

   /echo Obstacle hit, moving around it... 
   /keypress forward 
   /keypress back hold 
   /delay 3 
   /keypress back 
   /if (${Math.Rand[100]}+1>50) { 
     /keypress strafe_right hold 
   } else { 
     /keypress strafe_left hold 
   } 
   /delay 5 
   /keypress strafe_right 
   /keypress strafe_left 
   /keypress forward hold 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: GM Check 
|-------------------------------------------------------------------------------- 
Sub GMCheck 

   /if (${Spawn[gm].ID}) { 
      /beep 
      /beep 
      /beep 
      
      /echo GM has entered the zone! 
      /echo FUCK HIM but ending the macro... 

      /keypress forward 
      /keypress back
      /keypress 0
|---------------^^ Fading Memories 

      /quit 
      /endmacro 
   } 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: Reading from an 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 (!${KeySet.Arg[${nValues},|].Length}) { 
      /varcalc nValues ${nValues}-1 
      /goto :MakeArray 
   } 
   /varcalc nValues ${nValues}+1 
   /goto :CounterLoop  

   :MakeArray 
   /if (!${nValues}) /return 
   /if (${FileName.Equal["HunterMob.ini"]}&&${nValues}>0) { 
      /echo Declaring Mob Array... 
      /declare RV_MobArray[${nValues}]   string outer 
      /declare RV_MobStats[${nValues}]   string outer 
   } 
   /if (${FileName.Equal["HunterLoot.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["HunterMob.ini"]}) { 
         /varset RV_MobArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
         /varset RV_MobStats[${nArray}] 0 
      } 
      /if (${FileName.Equal["HunterLoot.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: Display Stats 
|-------------------------------------------------------------------------------- 
Sub DisplayStats 

   /declare nArray  int local 
    
   /if (${Defined[RV_LootArray]}) { 
      /for nArray 1 to ${RV_LootArray.Size} 
         /echo ${Int[${RV_LootStats[${nArray}]}]} ${RV_LootArray[${nArray}]}'s 
      /next nArray 
   } 
    
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Sing - What are you gonna twist?
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Sing
   /twist 1 2 5 6
|-----  Haste - snare - DD -  Heal
   /return

|------------------------------------------------- 
| Move to Location Loop 
|------------------------------------------------- 
Sub MoveToLoc(float MoveToY,float MoveToX) 
   :MoveToLoop 
      /face fast nolook loc ${MoveToY},${MoveToX} 
      /if (${Math.Distance[${MoveToY},${MoveToX}]}>2) /keypress forward hold
      /if (${Math.Distance[${MoveToY},${MoveToX}]}<=2) {
         /keypress forward 
         /goto :Arrived 
      }
   /goto :MoveToLoop 
   :Arrived 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Cave Diver - moves deeper into caves when no mobs are found in radius 
|-------------------------------------------------------------------------------- 
Sub CaveDiver
   /keypress 1
   /delay 5s
   /if (${stop}==0) {
        /call MoveToLoc -901.74 1690.98
        /call MoveToLoc -898 1831
        /echo 0
        /varset stop 1
        /return
        }
   /if (${stop}==1) {
        /call MoveToLoc -970 1918
        /call MoveToLoc -936 2001
        /delay 1s
        /call MoveToLoc -1122 2066
        /delay 4s
        /echo 1
        /varset stop 2
        /return
        }
   /if (${stop}==2) {
        /call MoveToLoc -1122 2066
        /call MoveToLoc -1172 2098
        /call MoveToLoc -1180 2298
        /call MoveToLoc -998 2230
        /call MoveToLoc -974 2114
        /call MoveToLoc -952 2177
        /delay 2s
        /echo 2
        /varset stop 3
        /return
        }
   /if (${stop}==3) {
        /call MoveToLoc -952 2177
        /call MoveToLoc -979 2425
        /call MoveToLoc -1146 2430
        /echo 3
        /varset stop 4
        /return
        }
   /if (${stop}==4) {
        /call MoveToLoc -1146 2430
        /call MoveToLoc -979 2425
        /call MoveToLoc -1093 2842
        /call MoveToLoc -1334 2609
        /delay 2s
        /echo 4
        /varset stop 5
        /return
        }
   /if (${stop}==5) {
        /call MoveToLoc -1334 2609
        /call MoveToLoc -1436 2781
        /echo 5
        /varset stop 6
        /return
        }
   /if (${stop}==6) {
        /call MoveToLoc -1436 2781
        /call MoveToLoc -1334 2609
        /call MoveToLoc -1093 2842
        /call MoveToLoc -1273 3119
        /echo 6
        /varset stop 7
        /return
        }
   /if (${stop}==7) {
        /call MoveToLoc -1273 3119
        /call MoveToLoc -1301 3368
        /call MoveToLoc -1866 3873
        /echo 7
        /varset stop 8
        /return
        }
   /if (${stop}==8) {
        /call MoveToLoc -1866 3873
        /call MoveToLoc -1975 4125
        /echo 8
        /varset stop 9
        /return
        }
   /if (${stop}==9) {
        /call MoveToLoc -1975 4125
        /call MoveToLoc -1889 3725
        /call MoveToLoc -1846 3706
        /echo 9
        /varset stop 10
        /return
        }
   /if (${stop}==10) {
        /call MoveToLoc -1846 3706
        /call MoveToLoc -2069 3675
        /call MoveToLoc -2011 3417
        /call MoveToLoc -2189 3399
        /call MoveToLoc -2254 3457
        /echo 10
        /varset stop 11
        /return
        }
   /if (${stop}==11) {
        /call MoveToLoc -2254 3457
        /call MoveToLoc -2456 3675
        /echo 11
        /varset stop 12
        /return
        }
   /if (${stop}==12) {
        /call MoveToLoc -2456 3675
        /call MoveToLoc -2254 3457
        /echo 12
        /varset stop 13
        /return
        }
   /if (${stop}==13) {
        /call MoveToLoc -2254 3457
        /call MoveToLoc -2412 3370
        /echo 13
        /varset stop 14
        /return
        }
   /if (${stop}==14) {
        /call MoveToLoc -2412 3370
        /call MoveToLoc -2549 3150
        /echo 14
        /varset stop 15
        /return
        }
   /if (${stop}==15) {
        /call MoveToLoc -2549 3150
        /call MoveToLoc -2742 3150
        /echo 15
        /varset stop 16
        /return
        }
   /if (${stop}==16) {
        /call MoveToLoc -2742 3150
        /call MoveToLoc -2549 3150
        /echo 16
        /varset stop 17
        /return
        }
   /if (${stop}==17) {
        /call MoveToLoc -2544 3100
        /call MoveToLoc -2549 3150
        /call MoveToLoc -2580 2915
        /call MoveToLoc -2204 2861
        /echo 17
        /varset stop 18
        /return
        }
   /if (${stop}==18) {
        /call MoveToLoc -2204 2861
        /call MoveToLoc -2334 2915
        /call MoveToLoc -2262 3120
        /call MoveToLoc -2158 3160
        /echo 18
        /varset stop 19
        /return
        }
   /if (${stop}==19) {
        /call MoveToLoc -2158 3160
        /call MoveToLoc -2054 3044
        /call MoveToLoc -1940 3160
        /echo 19
        /varset stop 20
        /return
        }
   /if (${stop}==20) {
        /call MoveToLoc -2054 3044
        /call MoveToLoc -2158 3160
        /call MoveToLoc -2262 3120
        /call MoveToLoc -2334 2915
        /echo 20
        /varset stop 21
        /return
        }
   /if (${stop}==21) {
        /call MoveToLoc -2334 2915
        /call MoveToLoc -2580 2915
        /echo 21
        /varset stop 22
        /return
        }
   /if (${stop}==22) {
        /call MoveToLoc -2580 2915
        /call MoveToLoc -2646 2827
        /call MoveToLoc -2560 2617
        /call MoveToLoc -2262 2626
        /call MoveToLoc -2193 2355
        /echo 22
        /varset stop 23
        /return
        }
   /if (${stop}==23) {
        /call MoveToLoc -2193 2355
        /call MoveToLoc -2184 2095
        /call MoveToLoc -897 1616
        /call MoveToLoc -901.74 1690.98
        /echo 23 - end of caves
        /varset stop 0
        /return
        }
/return

|-------------------------------------------------------------------------------- 
|SUB: REGEN
|--------------------------------------------------------------------------------
sub REGEN
      /echo HP real low
      /warp succor
      :REGEN
      /if (${Me.PctHPs}==100) /zone thurgadina
      /keypress 1
      /delay 5s
      /sit
      /goto :REGEN

/return
|-------------------------------------------------------------------------------- 
|SUB: Full
|--------------------------------------------------------------------------------
sub Event_Full
 /echo full
 /twist off
 /zone thurgadina
 /delay 45s
 /doevents
/return

|-------------------------------------------------------------------------------- 
|SUB: GD
|--------------------------------------------------------------------------------
sub Event_GD
 /echo GD
 /delay 10s
 /call MoveToLoc -992.00 -182.88
 /call MoveToLoc -901.74 1690.98
 /mac veliumhunter
/return

|-------------------------------------------------------------------------------- 
|SUB: Zoned Thurg
|--------------------------------------------------------------------------------
sub Event_Thurg
    /echo Thurg
    /if (${Me.Class.Name.Equal[Bard]}) /twist off
    /call VeliumPieces
    /echo Time for Bits?
    /if (${FindItemCount[=Small Piece of Velium]}>100) /call VeliumBits
    /echo All done.. time to leave
    /warp succor
    /face noloc loc -1232,-20
    /keypress forward hold
    /delay 45s
/return

|-------------------------------------------------------------------------------- 
|SUB: Died
|-------------------------------------------------------------------------------- 
 sub Event_Died 
 /echo DEAD.. damn it
 /delay 5s  
 /sit  
 /camp desk  
 /endmac 
 /return
 
Last edited:
Re: VeliumHunter

Veliumbit.inc

EDITs
11/20/05: Fixed it up as veliumbits.mac other issues are causing this to remain untested
10/10/05: EDITed Events - was causing zone loop
Rich (BB code):
| ----------------------------------------------------------------------------------------- 
| VeliumBits.INC
|
| Created by IceIsFun 
|
| Rewritten by Armysoldier
| Features: 
| - Makes Enchanted Velium Bits until the character runs out of platinum, runs out of 
|   velium, or reaches 222 Blacksmithing skill. 
| 
| VeliumBits.mac usage: 
| 
| /mac VeliumBits 
| 
| NOTES/WARNINGS: 
| - This macro assumes you have Small Pieces of Velium (lots of them). 
| - This macro assumes you have enough plat to keep it going (~200pp per stack of velium). 
| - This macro assumes you remain in the first-person POV. 
| - This macro assumes you place your cursor near the center of the screen, where it won't 
|   click on any bags or items or item links, etc. 
| - This macro assumes you start it while standing next to the Forge in Thurgadin. 
| - If someone else is opening/closing doors, you may occasionally get stuck. Just press 
|   "u" (or click mouse) to open the door and continue as normal. 
| ----------------------------------------------------------------------------------------- 

#event CombineError "#*#There was no place to put that#*#" 
#event CombineError "#*#You cannot combine these items in this container type!#*#" 
#event CombineError "#*#did not accept these items#*#" 
#event ContUsed "#*#Someone else is using that. Try again later.#*#"
#event End "#*#can not afford#*#"

#include common/sell.inc
#include common/buy.inc
#include common/packs.inc
#include common/cleanpacks.inc

Sub VeliumBits

    /declare PackCode string outer 
    /declare Component[10] string outer 
    /declare i int outer
    /declare CombItemName string outer
    /declare ItemTo string outer
    /declare EndingVar int outer
    /declare Cnt int outer
    /declare OldSkill int outer
    /varset OldSkill ${Me.Skill[Blacksmithing]}


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Begin 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    :start
    /if (${FindItemCount[=Small Piece of Velium]}<2) /call Ending
    /varset CombItemName "VBits"
    /varset ItemTo "Enchanted Velium Bits"

     /delay 2s
     /call ForgeToNimren 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Buy components 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /varset EndingVar 1
    /varset Cnt ${FindItemCount[=Small Piece of Velium]}
    /echo ${Cnt}
    /if (${FindItemCount[=Small Piece of Velium]}>40) /varset Cnt 20
    /if (${FindItemCount[=Small Piece of Velium]}<40) /varset Cnt ${Math.Calc[${Cnt}/2]}
    /delay 1s
   /target Nimren Stonecutter 
   /nomodkey /click right target 
   /delay 5 
    /call OpenPacks
    /call Buy "Spell: Enchant Velium" ${Cnt}
    /delay 1s 
    /call Buy "Coldain Velium Temper" ${Cnt}
    /delay 1s
    /call ClosePacks
    /keypress esc
    /delay 2s

    /call NimrenToForge 
    /delay 2s

    /itemtarget "forge"
    /look
    /delay 2s
    /nomodkey /click left item
    /delay 2s
    /doevents
    /delay 2s

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Make EVB
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /if  (${Window[TradeskillWnd].Open}) {
         /nomodkey /notify TradeskillWnd ExperimentButton leftmousehold
         /nomodkey /notify TradeskillWnd ExperimentButton leftmouseup
	 }
   
    /call OpenPacks
    /delay 2s
    /call Combine
  /goto :start
/return
  
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Read Ini file
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub readini2(RecipeName) 
    /declare Container string 

    /echo Running ${RecipeName} recipe 

   /if (${Ini["smithing.ini","${RecipeName}",-1,"NOTFOUND"].Equal["NOTFOUND"]}) { 
        /echo Recipe ${RecipeName} not found 
        /endmacro 
    } 

   /varset Container ${Ini[smithing.ini,${RecipeName},Cont,Enviro]} 

   /if (${Container.Equal[Enviro]}) { 
        /varset PackCode Enviro 
   } else { 
        /varset PackCode ${FindItem[=${Container}].InvSlot} 
       
      /if (${PackCode.Equal[NULL]}) { 
         /echo Could not find container ${Container} 
         /varset EndingVar 2
         /return
      } 
      | pack1 = 22, ... , pack8 = 29 
      /varset PackCode pack${Math.Calc[${PackCode}-21].Int} 
   }  

   /call cleanPack "${Container}"

    /for i 1 to 10 
        /varset Component[${i}] ${Ini[smithing.ini,${RecipeName},Comp${Math.Calc[${i}-1].Int},NOTFOUND]} 
    /next i 
    /return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Combine
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Combine

    /call readini2 "${CombItemName}" 
    :Begin 
       /if (${EndingVar}==1) /call ClearCursor 
       /for i 1 to 10 
             /if (${EndingVar}==1) /call AddComp "${Component[${i}]}" ${i} 
       /next i 
       /if (${EndingVar}==1) /call DoCombine 
       /if (${EndingVar}==1) /goto :Begin
 
    /delay 1s
    /call ClosePacks
    /nomodkey /keypress esc
    /varset EndingVar 1
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Clear Cursor
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub ClearCursor 
    :Loop 
      /if (!${Cursor.ID}) /return 
|      /autoinv 
     /destroy	
      /delay ${Math.Calc[${DelayMult}*5]}s
      /doevents 
      /goto :Loop 
    /return 


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub DoCombine
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub DoCombine 
    :Loop 
      /combine ${PackCode} 
      /delay 1s
      /if (${PackCode.Equal[Enviro]}) /delay 1s 
      /doevents 
      /if (${InvSlot[${PackCode}].Item.Items}) /goto :Loop 
      /delay 5 
      /if (${Me.Skill[Blacksmithing]}>${OldSkill}) {
        /echo Your Blacksmithing Went Up!! It's now ${Me.Skill[Blacksmithing]}!
        /varset OldSkill ${Me.Skill[Blacksmithing]}
      }
    /return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub add Components
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub AddComp(CompName, PackSlot) 
   /if (${CompName.Equal[NOTFOUND]}) /return 

   /if (!${FindItem[=${CompName}].ID}) { 
      /echo Could not find ${CompName} in inventory 
      /beep 
      /varset EndingVar 2
      /return 
    } 

   :Loop 
      /nomodkey /ctrl /itemnotify ${FindItem[=${CompName}].InvSlot} leftmouseup 

      /if (!${Cursor.ID}) { 
         /delay 1s
         /goto :Loop 
      } 

   /if (${PackCode.Equal[Enviro]}) { 
      /nomodkey /itemnotify ${InvSlot[enviro${PackSlot}]} leftmouseup 
   } else { 
      /nomodkey /itemnotify in ${PackCode} ${PackSlot} leftmouseup 
   }    
   /return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Combine error
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_CombineError 
    /Call Ending
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Container is being used
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_ContUsed
    /echo Container in use. Waiting 30 seconds and trying again.
    /delay 30s
    /itemtarget "Forge"
    /delay 1s
    /nomodkey /click left item
/delay 2s
    /doevents
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event End
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Event_End
    /call Ending
/return

Sub Ending
    /echo macro ending
    /camp desktop
    /end 
/return


| ------------------------------------------------- 
| BankToForge v1.0: Moves to the Forge from the 
| Thurgadin Bank. 
| ------------------------------------------------- 
Sub BankToForge 

/echo MOVE yourself to the forge
/echo /BONK

/return 

| ------------------------------------------------- 
| ForgeToNimren v1.0: Moves to Nimren Stonecutter 
| from the Forge. 
| ------------------------------------------------- 
Sub ForgeToNimren 
   /call MoveToLoc -403.88 -129.62 

   | Open the door to Nimren and wait 2 seconds. 
   /face fast heading 0 
   /look 0 
   /click left 
   /delay 2s 

   /call MoveToLoc -396.41 -130.19 
   /call MoveToLoc -326.55 -237.59 
   /call MoveToLoc -29.08 -281.69 
   /call MoveToLoc 3.03 -129.90 
   /call MoveToLoc 17.29 -121.12 

   | Open the door to Nimren and wait 2 seconds. 
   /face fast heading 0 
   /look 0 
   /click left 
   /delay 2s 

   /call MoveToLoc 26.35 -120.13 
   /call MoveToLoc 43.50 -113.77 
/return 

| ------------------------------------------------- 
| NimrenToForge v1.0: Moves to the Forge from 
| Nimren Stonecutter. 
| ------------------------------------------------- 
Sub NimrenToForge 

   /call MoveToLoc 26.35 -120.13 

   | Open the door to Nimren and wait 2 seconds. 
   /face fast heading 180 
   /look 0 
   /click left 
   /delay 2s 

   /call MoveToLoc 17.29 -121.12 
   /call MoveToLoc 3.03 -129.90 
   /call MoveToLoc -29.08 -281.69 
   /call MoveToLoc -326.55 -237.59 
   /call MoveToLoc -396.41 -130.19 

   | Open the door to tne Forge and wait 2 seconds. 
   /face fast heading 180 
   /look 0 
   /click left 
   /delay 2s 

   /call MoveToLoc -403.88 -129.62 
   /call MoveToLoc -430.85 -113.74 

/return 

| ------------------------------------------------- 
| MoveToLoc v1.0: Moves in a straight line, to 
| a location. Arguments are the Y,X coordinates to 
| be reached. Assumes no obstacles are in the way. 
| ------------------------------------------------- 
Sub MoveToLoc(float MoveToY,float MoveToX) 
   :MoveToLoop 
      /face fast nolook loc ${MoveToY},${MoveToX} 
      /if (${Math.Distance[${MoveToY},${MoveToX}]}>2) { 
         /keypress up hold 
         /delay 1 
         /keypress up 
      } else { 
         /goto :Arrived 
      } 
   /goto :MoveToLoop 
   :Arrived 
/return
 
Last edited:
Re: VeliumHunter

VeliumPieces.inc

Edits
11/20/05: Works fine as a macro .. ends the veliumhunter as an INc... work in progress

10/10/05: EDITED the arguements for the weapons was not working


Rich (BB code):
| Created by Armysolder OCT 9 2005
|
| VeliumPieces.inc: 
| 
| 
| 
| Have Velium Smithy Hammer and Chisel in inventory

#Event Cant "#*#cannot combine these items#*#"

#include common/sell.inc
#include common/buy.inc
#include common/packs.inc
#include common/cleanpacks.inc

Sub VeliumPieces 
   /doevents
   /declare stop1 int outer 
   /varset stop1 0
   /itemtarget "Forge"
   /warp loc -429 -115 4
   /delay 2s
   /face loc -432,-112

   :MainLoop 

      /call OpenForge 
      /call CleanForge 
      :Weapons 
         /call Combine 
         /if (${stop1}==14)  /goto :Done
         /doevents 
      /Goto :Weapons

/goto :MainLoop 
:Done

/return 



| ------------------------------------------------- 
| CleanForge: Removes all items from a forge. 
| ------------------------------------------------- 
Sub CleanForge 
   /echo CLEANING forge .. be patient 
   /declare ForgeSlot int local 0 
   /for ForgeSlot 1 to 10 
      /nomodkey /shiftkey /itemnotify enviro${ForgeSlot} leftmouseup 
      /delay 3 
      /autoinventory 
      /delay 2 
   /next ForgeSlot 
/return 

| ------------------------------------------------- 
| OpenForge: Opens the nearest Forge. 
| ------------------------------------------------- 
Sub OpenForge 
   /echo Opening forge
   /if (${Merchant.Open}) /nomodkey /notify MerchantWnd DoneButton leftmouseup 
   /if (${Window[Enviro].Open}) /nomodkey /notify Enviro DoneButton leftmouseup 
   /if (${Window[TradeskillWnd].Open}) /nomodkey /notify TradeskillWnd ExperimentButton leftmouseup 
   :OpeningForge 
   /itemtarget "Forge"
   /click left item 
   /delay 1s 
   /if (${Window[TradeskillWnd].Open}) { 
      /nomodkey /notify TradeskillWnd ExperimentButton leftmouseup 
      /return 
   } 
   /delay 30s 
   /goto :OpeningForge 
   /if (${Window[TradeskillWnd].Open}) /nomodkey /notify TradeskillWnd ExperimentButton leftmouseup 
/return 

| ------------------------------------------------- 
| Combine
| ------------------------------------------------- 
Sub Combine
   /Echo Doing combines WOOOT ${stop1}
   /call OpenPacks
   /if (${stop1}==0) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Warhammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==1) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Morning Star].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==2) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Great Staff].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==3) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Dagger].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==4) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Battle Axe].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==5) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Long Sword].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==6) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Rapier].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==7) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Scimitar].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==8) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Short Sword].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==9) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Spear].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==10) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Two Handed Sword].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==11) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Smithing Chisel].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Block of Velium].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==12) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Smithing Chisel].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Large Brick of Velium].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==13) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Smithing Chisel].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Small Brick of Velium].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /delay 3 
   /combine Enviro 
   /delay 2s 
   /autoinventory
   /autoinventory
   /delay 2s 
   /autoinventory
   /autoinventory 
   /delay 2s  
   /autoinventory
   /autoinventory
   /delay 2s 
   /autoinventory
   /autoinventory  
/return 

|------------------------------------------------- 
| Move to Location Loop 
|------------------------------------------------- 
Sub MoveToLoc(float MoveToY,float MoveToX) 
   :MoveToLoop 
      /face fast nolook loc ${MoveToY},${MoveToX} 
      /if (${Math.Distance[${MoveToY},${MoveToX}]}>2) /keypress forward hold 
      /if (${Math.Distance[${MoveToY},${MoveToX}]}<=2) {
         /keypress forward 
         /goto :Arrived 
      }
   /goto :MoveToLoop 
   :Arrived 
/return 

Sub Event_Cant

   /call CleanForge
   
   /echo ${stop1} 

   /if (${stop1}==0) /if (${FindItemCount[=Velium Warhammer]}==0) /varset stop1 1
                 
   /if (${stop1}==1) /if (${FindItemCount[=Velium Morning Star]}==0) /varset stop1 2
           
   /if (${stop1}==2) /if (${FindItemCount[=Velium Great Staff]}==0) /varset stop1 3
           
   /if (${stop1}==3) /if (${FindItemCount[=Velium Dagger]}==0) /varset stop1 4
           
   /if (${stop1}==4) /if (${FindItemCount[=Velium Battle Axe]}==0) /varset stop1 5
            
   /if (${stop1}==5) /if (${FindItemCount[=Velium Long Sword]}==0) /varset stop1 6
          
   /if (${stop1}==6) /if (${FindItemCount[=Velium Rapier]}==0) /varset stop1 7
        
   /if (${stop1}==7) /if (${FindItemCount[=Velium Scimitar]}==0) /varset stop1 8
           
   /if (${stop1}==8) /if (${FindItemCount[=Velium Short Sword]}==0) /varset stop1 9
           
   /if (${stop1}==9) /if (${FindItemCount[=Velium Spear]}==0) /varset stop1 10
           
   /if (${stop1}==10) /if (${FindItemCount[=Velium Two Handed Sword]}==0) /varset stop1 11
            
   /if (${stop1}==11) /if (${FindItemCount[=Block of Velium]}==0) /varset stop1 12
           
   /if (${stop1}==12) /if (${FindItemCount[=Large Brick of Velium]}==0) /varset stop1 13
            
   /if (${stop1}==13) /if (${FindItemCount[=Small Brick of Velium]}==0) /varset stop1 14
       
/echo ${stop1}
    
/return
 
Last edited:
Re: VeliumHunter

once again .. the two .INC files are the macro's i want to include.. and call from veliumhunter.mac

slight changes to follow tomorrow after I wake up and do more testing

8-)
 
looks like u spent a lot of time on this, how effecient did it run this morning?
 
just woke up.. was up till 2am my time.. he he

edited the .inc files as instructed.. heading over to GD to start test run ...

WOOOOO HOOOO
 
so do u run all of these on one char? or can you? my bard has like 86 skill smithing and since these skills are only like lvl 15-20 i dont see why its that big of a deal to have him do it, he may fail a few times but itll get high enough in no time and hardly fail at all
 
i ran it all up to pieces with the bard.. have not run bits yet on the bard

BUT right now.. using the code above..

the bard will run through the caves.. then when X pieces are looted.. will zone to thurg .. and make pieces

zone back to GD.. and start over


If you make a run though the caves and do not have X velium weapons .. it goes through again

8-)
 
whats about the huntermob.ini and hunterloot.ini?
are both ini needed ?


(will test the mac soon)

thx army, nice work =)
 
aahh .. thanks Salomo.. I R TARD

add to huntermob.ini

Rich (BB code):
[The Great Divide] 
Mob1=a tizmak
mob2=a furious tizmak

and to hunterloot.ini

Rich (BB code):
[The Great Divide] 
Loot1=Velium
Loot2=Jade
 
anyone playing with this?

just curious how its working for you.

tomorrow i will UN-REM the bits and try it out also

8-)
 
armysoldier said:
anyone playing with this?

just curious how its working for you.

tomorrow i will UN-REM the bits and try it out also

8-)

Been trying it out off and on all day, the hunter part seems to work but the moving has had a few bugs, the zone to thurg ZL the toon was stuck there and not able to move to the fordge, the hunter part works a lot better the first time i tried it today it got stuck at a corner in the cave and wouldnt go past there.... i memed a AE song and seems to have fixed that problem.... It wasnt grabing all the mobs so when it went to target 1 it couldnt find the way back to is so just got stuck, the ae song has helped a lot. Am waiting to see if the smithing part will work on this
 
C/P the new code..

I watched this thing run through a few runs.. and was editing the locs to

make him run smoother...
not get hung up
not target mobs in another room
and try and agro all mobs in a given area

zoning to thurg had issues one time.. then not the next..

so i edited a bit of the code..

it seems to run smoother now

tonight the TEST of BITS!!!!!

8-)



IF anyone wants to make their own path .. its easy ...
just write it down on paper first

/face nolook loc X,Y

to the next loc ......hold forward and see if he can make it

i did alot of warping back and forth ...

then its been a whole day of running the mac watching his pathing.. and /target /agro radius

Finally when making your list...

LOC A
LOC B
LOC C
Where u wanna kill

LOC D
LOC E
Where you wanna kill

go to the cavediver sub..... and each set is movement to the next kill spot

make sure - at the beginning of each move you go back to the original spot... atleast in curvy parts... 8-)


ok

Off to work .. the army says i gotta earn my pay today

8-)

8-)

thanks MR T ... lemme know if the new code has any issues
 
thanks MR T ... lemme know if the new code has any issues

As soon as MQ is back up I will, havent had a chance to play since last post. I did how ever use a 70 rogue and a 39 bard at the same time, the rogue was able to run around with out a healer, the bard i had to follow with a cleric and keep him healed, the thing so far i have noticed is when he had 3 to 5 on him (had fire form and DS) he would not loot from all 5, might skip one or 2. The smithing part didnt work well for me, but with the new merchant windows going back to done buttons, this should fix alot of the old tradeskill macs. On a side note, when running the combine part of all this to skill up, do i need to destroy the enchanter veluim bit or will i get the skill up even when have one in inventory? I wasnt able to use the combine part of the macro so I just combined myself. Anyway will test this again and let you know, thanks for all the hard work on this..... char has been stuck at 115BS cause I was to lazy to go farm the parts to get smithing higher 8)
 
will have to retest due to patch ..

but monday i ran a WARRIOR with this mac... and worked pretty good.

I made one mod to it.. will post new code when i get home..

also .. there was a minor hang up in pathing.. but i forget where .. so when i retest.. i will edit the locs.. and make it smoother

8-)

ps veliumpieces.ini worked fine... i still have veliumbits REMed out
 
2nd and 3rd post....

the .inc is almost exactly like the .mac.. except the SUB MAIN was changed to SUB Veliumbits or veliumpieces...

also events were edited out if they conflicted with the main macro

8-)



I will double check when i get home to make sure they are the same as what i have on my Puters.. 8-)
 
i have been workin on this all day...

the velium hunter is tweeked a bit more and working..

Veliumbits.mac works fine.. and so does veliumpieces.mac

BUT veliumpieces.inc is giving me issues... and all the code is the same... see above

still working on it 8-)
 
LMAO yeah i know .. ha ha

i changed it around a bit so you only buy stuff for what you have on hand ...


like i said as stand alone macros pieces and bits both work..

but for some reason when i use pieces and an INC in veliumhunter.. it fooooks up


grrrr

more this weekend 8-)
 
Problem with veliumpieces, after starting it, it reports: 'Subroutine Main wasn't found'. ?
 
Last edited:
Darn, veliumbits is saying the same thing now. It was working before....

NM, I repasted Moonspell's version back in. Veliumbits now works again :)
 
Last edited:
Army what are your hotkeys set up as I see a doevent in there and sucked cause mine happened to be /gate
 
keypress 1 is clicky heal on war.. and heal song on bard

but you can set it for whatever

keypress 0 is fadeon bard.. nothing on warrior
 
veliumpieces and veliumbits.. postedunder various TS macros thread..

works great i am using them right now

as for the two INC here...

i REMMED out the /call veliumpieces and /call veliumbits..

and i do them manually
 
Sounds cool. As a 70 necro my pet slices nicely through anything in crystal caverns, provided its not camped would it be a better place to make a macro, I realize its a longer run to thurg but if you just want to make the small velium peices and throw them in bank, then use another one for the velium bits later. Also the blocks stack now so it saves a lot of space in bag slots when you have 100% weight reduction bags.
 
i actually love the GD caves the tizmacs are easy kills.. and in one cycle through the caves i can get 20-40 weapons...

its an easy combine to switch them into bricks/blocks and pieces..

the zone hardly ever has anyone in it..

so little chance of detection

also CC is hard to have a no warp mac... especially with the big hole int he middle.. lol

but to each his/her own .. its all about what works for you

8-)
 
with the new mobs in GD.. gonna make some changes to the code... will post as soon as i can get it knocked out
 
I tested out the macro on my monk, it worked great, except it wouldn't target any tizmaks. It probably has something to do with a bard ae spell which would get the aggro, but for me it just said "Failed to acquire target in range 100 (1,2,3) times". If there's a way just to target any mob close to you it would work alot better...but I have no clue on how to do this.

EDIT: Nevermind, I figured it out, I just changed the line:
/for RV_CurrentRadius 10 to ${RV_MaxRadius} step 100
I changed the 10 to 100. This macro is really nice, I will play around with it a little more, and if I can get it perfect I'll post a total melee class macro.
 
i made a simple change so my warrior.. or NON - bard class melee could work this...

where ever is said /call sing or /twist off .. i added if my class = bard works fine..

I just need to add some new code to deal with thise pesty new mobs in GD

8-)
 
I was messing with the macro, and I had it almost perfect. It only warped you once...but whenever I zoned into thurg it wouldn't follow the path, it would just run me into the wall. And after trying like 70 times I got too frustrated with it. I spent a good 6 hours messing with it. :(
 
lol yeah it can be a pain to work with the first couple of times..

monday my son goes back to VA... so if ya give me a bit o time..

I have 3 major macs i need to finish and tweek...

Veliumhunter... mistletoe and misty

the ground spawn macs i think are fubared until next mq2 release
 
I'm just gonna go ahead and post what I had. I didn't have the velium bits.inc because I had no use for it yet (just recently started over and only have a 45 monk ;) ). I had a path on the veliumpieces.inc but I got so frustrated I just put what you originally did, except adding a left mouse click to click the forge.

VeliumHunter.mac
Rich (BB code):
 | VeliumHunter.MAC
| Re-Written by Armysoldier (and Re-Re-Written by BordonDrumer)
| 
| Seriously Modified Hunter.mac 
| Author      : robdawg 
| 
| Useage      : /macro VeliumHunter 
| Description : This macro will run your character to the Tizmak cave entrance
|      Then the killing begins.. Twists a few songs and melee
|      You set how many items you can hold... See a couple lines below
|      Once Full you will zone to thurg and turn your treasures into Velium Pieces
| 
|------------------------------------------------------------------------------------ 

#Event Full "[MQ2] 20 Velium's"
|-------------------- ^^ NEEDS to be # of empty slots in inventory MINUS 1
|
|
#Event GD "#*#entered The Great Divide#*#"

#Event Died "#*#entered The Plane of Knowledge#*#" 

#Event Thurg "#*#entered The City of Thurgadin#*#"

#include VeliumPieces.inc
#include HunterMob.ini

#include common/sell.inc
#include common/buy.inc
#include common/packs.inc
#include common/cleanpacks.inc

Sub Main 
   /docrack nostun on
   /docrack nomeleepushback on
   /docrack noencumber on
   

   |------------------------------------------------------------ 
   |How many times should aquire target fail before delaying? 
   |------------------------------------------------------------ 
   /declare RV_FailMax          int outer  3 
   |------------------------------------------------------------ 
   |How far would you like to target a mob? 
   |------------------------------------------------------------ 
   /declare RV_MaxRadius        int outer  100 
   |------------------------------------------------------------ 
   |How far is the combat range? 
   |------------------------------------------------------------ 
   /declare RV_Range            int outer 10 
   |------------------------------------------------------------ 
   |What is the minimum Z Value of mobs I should target? 
   |------------------------------------------------------------ 
   /declare RV_MinZRange        int outer  -200 
   |------------------------------------------------------------ 
   |What is the maximum Z Value of mobs I should target? 
   |------------------------------------------------------------ 
   /declare RV_MaxZRange        int outer  355 
   |------------------------------------------------------------ 
   |Should I loot all items? 
   |------------------------------------------------------------ 
   /declare RV_LootAllItems     int outer  0 
   |------------------------------------------------------------ 
   |Should I display stats? 
   |------------------------------------------------------------ 
   /declare RV_DisplayStats     int outer  1 

   |------------------------------------------------------------ 
   |Loot Array Information. 
   |------------------------------------------------------------ 
   /call ReadINI HunterMob.ini "${Zone.Name}" Mob 

   /if (!${Defined[RV_MobArray]}) { 
      /echo Mob Array Creation Error, ending macro... 
      /endmacro 
   } 

   |------------------------------------------------------------ 
   |Mob Array Information. 
   |------------------------------------------------------------ 
   /call ReadINI HunterLoot.ini "${Zone.Name}" Loot 
   /if (!${Defined[RV_LootArray]}) { 
      /echo No Loot Array Created... 
   } 

   |------------------------------------------------------------ 
   |Variables that you don't need to worry about. 
   |------------------------------------------------------------ 
   /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_LootSlot         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 RV_FastRange        int outer 
   /declare RV_RangeMax         int outer 
   /declare RV_RangeMin         int outer 
   /varcalc RV_FastRange ${RV_Range}+3 
   /varcalc RV_RangeMax ${RV_Range}+1 
   /varcalc RV_RangeMin ${RV_Range}-1 
   /declare stop int outer 
   /varset stop 0
   
   :Start 
   /doevents 
   /if (${Me.PctHPs}<15) /call REGEN
   /call GMCheck
   /call DisplayStats
   /call GetTarget 

   :KillAdds 
   /if (${RV_HasTarget}) /call MoveToMob 
   /if (${RV_HasTarget}) /call CombatSub 
   /if (${RV_HasTarget}) /call MoveToMob 
   /if (${RV_HasTarget} && (${Defined[RV_LootArray]} || ${RV_LootAllItems})) /call LootMob 
   /if (${RV_DisplayStats}) /call DisplayStats 
   /call ResetSub 

   /varset RV_RandomWait ${Math.Rand[5]} 
   /varcalc RV_RandomWait ${RV_RandomWait}+1 
   /echo Paranoia - Waiting ${RV_RandomWait} seconds before resuming 
   /delay ${RV_RandomWait}s
   /if (${Me.Class.Name.Equal[Monk]}) {
   /if (!${Target.ID}) {
   /keypress 1
   /delay 4s 
  }
    
   /if (${Target.ID}) { 
      /echo Looks like something is attacking us, killing it... 
      /delay 1s 
      /varset RV_HasTarget 1 
      /varset RV_Fighting 1 
      /goto :KillAdds 
   } 
    
   /goto :Start 
    
/return 

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

   /declare RV_CurrentRadius   int local 
   /declare RV_TargetSub   int local 
   :Acquire 
   /for RV_CurrentRadius 50 to ${RV_MaxRadius} step 100 
      /for RV_TargetSub 1 to ${RV_MobArray.Size} 
         /squelch /target radius ${RV_CurrentRadius} nopcnear 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) { 
               /echo Mob NOT a Full Health, picking another... 
               /varset RV_InvalidTargetID ${Target.ID} 
               /call ResetSub 
               /goto :Acquire 
            } 
            /if (${Int[${Target.Z}]}<${RV_MinZRange}) { 
               /echo Mob is BELOW Min Z Range, picking another... 
               /varset RV_InvalidTargetID ${Target.ID} 
               /call ResetSub 
               /goto :Acquire 
            } 
            /if (${Int[${Target.Z}]}>${RV_MaxZRange}) { 
               /echo Mob is ABOVE Max Z Range, picking another... 
               /varset RV_InvalidTargetID ${Target.ID} 
               /call ResetSub 
               /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
      /keypress 1
      /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, Resetting Failure Counter... 
         /echo moving deeper
         /call CaveDiver 
         /varset RV_FailCounter 0 
      } 
      /goto :Acquire 
   } 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Moving 
|-------------------------------------------------------------------------------- 
Sub MoveToMob 

   /varset RV_MyXLOC ${Int[${Me.X}]} 
   /varset RV_MyYLOC ${Int[${Me.Y}]} 
   /declare RV_DistanceTimer timer 15 
    
   /doevents 
    
   :MovementLoop 


   /if ((!${RV_Fighting})&&(!${RV_TargetDead})&&(${Target.PctHPs}<100)) { 
      /echo Mob not at full health, picking another... 
      /varset RV_InvalidTargetID ${Target.ID} 
      /varset RV_HasTarget 0 
      /call ResetSub 
      /return 
   } 

   /if (${Target.ID}) { 
      /face fast 
   } 
   /if (${Int[${Target.Distance}]}>${RV_FastRange}) { 
      /keypress forward hold 
   } 
   /if (${Int[${Target.Distance}]}<${RV_FastRange}&&${Int[${Target.Distance}]}>${RV_RangeMax}) { 
      /keypress forward 
   } 
   /if (${Int[${Target.Distance}]}<${RV_RangeMin}) { 
      /keypress back 
   } 
   /if (!${RV_DistanceTimer}) { 
      /if ((${RV_MyXLOC}==${Int[${Me.X}]})&&(${RV_MyYLOC}==${Int[${Me.Y}]})) /call HitObstacle 
      /varset RV_MyXLOC ${Int[${Me.X}]} 
      /varset RV_MyYLOC ${Int[${Me.Y}]} 
      /varset RV_DistanceTimer 15 
      /goto :Movementloop 
   } 
   /if (${Int[${Target.Distance}]}>${RV_FastRange}) /goto :MovementLoop 

/return 

|-------------------------------------------------------------------------------- 
|SUB: Combat 
|-------------------------------------------------------------------------------- 
Sub CombatSub 

   /echo Attacking Mob NOW! 
   /varset RV_Fighting 1 
   /varset RV_TargetDead 0 
   /keypress forward
   /delay 1s
   /if (${Me.Class.Name.Equal[Bard]}) /call sing
   /delay 2s
   :CombatLoop 
   /doevents
   /keypress forward 
   /attack on

    
   /call MoveToMob 
   |/if ((${Target.Distance}<11)&&(${Me.AbilityReady["Bash"]})) /doability "Bash"
      /if (!${Target.ID}) {
      /attack off 
      /keypress forward 
      /keypress back 
      /varset RV_TargetDead 1 
      /varset RV_Fighting 0 
      /delay 1s 
      /target radius 100 corpse 
      /delay 1s 
      /if (!${Target.ID}) { 
         /call ResetSub 
         /return 
      } 
      /face fast 
   }
 
   /if (!${RV_TargetDead}) { 
      /goto :CombatLoop 
   } 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: Looting 
|-------------------------------------------------------------------------------- 
Sub LootMob 
   /if (${Me.Class.Name.Equal[Bard]}) /twist off
   /if (${Me.Class.Name.Equal[Bard]}) /cast 6
   /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
    
   /face fast 
   /autoinventory
   /keypress forward 
   /keypress back 
    
   /fastdrop on 
   /lootn never 
   /delay 2s 
   /loot 
   /delay 2s 
   /if (!${Corpse.Items}) { 
      /echo NO LOOT! Cheap Bastard! 
      /return 
   } 

   /varset LootTotal ${Corpse.Items} 
   /for LootSlot 1 to ${LootTotal} 
      /itemnotify loot${LootSlot} leftmouseup 
      /delay 1s 
      /if (${RV_LootAllItems}) { 
         /echo Keeping a ${Cursor.Name}... WOOT! 
         /autoinventory 
         /delay 1s 
      } 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 
               /delay 1s 
            } 
         /next LootCheck 
      } 
      /if (${Cursor.ID}) { 
         /echo Destroying a ${Cursor.Name}... 
         /destroy 
         /delay 1s 
      } 
   /next LootSlot 
    
   /notify LootWnd DoneButton leftmouseup 
   /delay 2 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: Reset 
|-------------------------------------------------------------------------------- 
Sub ResetSub 

   /keypress esc 
   /keypress esc 
   /keypress esc 
   /keypress esc 
    
   /varset RV_HasTarget 0 
   /varset RV_TargetDead 0 
   /varset RV_Fighting 0 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: Obstacle Avoidance 
|-------------------------------------------------------------------------------- 
Sub HitObstacle 

   /echo Obstacle hit, moving around it... 
   /keypress forward 
   /keypress back hold 
   /delay 3 
   /keypress back 
   /if (${Math.Rand[100]}+1>50) { 
     /keypress strafe_right hold 
   } else { 
     /keypress strafe_left hold 
   } 
   /delay 5 
   /keypress strafe_right 
   /keypress strafe_left 
   /keypress forward hold 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: GM Check 
|-------------------------------------------------------------------------------- 
Sub GMCheck 

   /if (${Spawn[gm].ID}) { 
      /beep 
      /beep 
      /beep 
      
      /echo GM has entered the zone! 
      /echo FUCK HIM but ending the macro... 

      /keypress forward 
      /keypress back
      /keypress 0
|---------------^^ Fading Memories 

      /quit 
      /endmacro 
   } 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: Reading from an 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 (!${KeySet.Arg[${nValues},|].Length}) { 
      /varcalc nValues ${nValues}-1 
      /goto :MakeArray 
   } 
   /varcalc nValues ${nValues}+1 
   /goto :CounterLoop  

   :MakeArray 
   /if (!${nValues}) /return 
   /if (${FileName.Equal["HunterMob.ini"]}&&${nValues}>0) { 
      /echo Declaring Mob Array... 
      /declare RV_MobArray[${nValues}]   string outer 
      /declare RV_MobStats[${nValues}]   string outer 
   } 
   /if (${FileName.Equal["HunterLoot.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["HunterMob.ini"]}) { 
         /varset RV_MobArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
         /varset RV_MobStats[${nArray}] 0 
      } 
      /if (${FileName.Equal["HunterLoot.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: Display Stats 
|-------------------------------------------------------------------------------- 
Sub DisplayStats 

   /declare nArray  int local 
    
   /if (${Defined[RV_LootArray]}) { 
      /for nArray 1 to ${RV_LootArray.Size} 
         /echo ${Int[${RV_LootStats[${nArray}]}]} ${RV_LootArray[${nArray}]}'s 
      /next nArray 
   } 
    
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Sing - What are you gonna twist?
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Sing
   /twist 1 2 5 6
|-----  Haste - snare - DD -  Heal
   /return

|------------------------------------------------- 
| Move to Location Loop 
|------------------------------------------------- 
Sub MoveToLoc(float MoveToY,float MoveToX) 
   :MoveToLoop 
      /face fast nolook loc ${MoveToY},${MoveToX} 
      /if (${Math.Distance[${MoveToY},${MoveToX}]}>2) /keypress forward hold
      /if (${Math.Distance[${MoveToY},${MoveToX}]}<=2) {
         /keypress forward 
         /goto :Arrived 
      }
   /goto :MoveToLoop 
   :Arrived 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Cave Diver - moves deeper into caves when no mobs are found in radius 
|-------------------------------------------------------------------------------- 
Sub CaveDiver
   /keypress 1
   /delay 5s
   /if (${stop}==0) {
        /call MoveToLoc -901.74 1690.98
        /call MoveToLoc -898 1831
        /echo 0
        /varset stop 1
        /return
        }
   /if (${stop}==1) {
        /call MoveToLoc -970 1918
        /call MoveToLoc -936 2001
        /delay 1s
        /call MoveToLoc -1122 2066
        /delay 4s
        /echo 1
        /varset stop 2
        /return
        }
   /if (${stop}==2) {
        /call MoveToLoc -1122 2066
        /call MoveToLoc -1172 2098
        /call MoveToLoc -1180 2298
        /call MoveToLoc -998 2230
        /call MoveToLoc -974 2114
        /call MoveToLoc -952 2177
        /delay 2s
        /echo 2
        /varset stop 3
        /return
        }
   /if (${stop}==3) {
        /call MoveToLoc -952 2177
        /call MoveToLoc -979 2425
        /call MoveToLoc -1146 2430
        /echo 3
        /varset stop 4
        /return
        }
   /if (${stop}==4) {
        /call MoveToLoc -1146 2430
        /call MoveToLoc -979 2425
        /call MoveToLoc -1093 2842
        /call MoveToLoc -1334 2609
        /delay 2s
        /echo 4
        /varset stop 5
        /return
        }
   /if (${stop}==5) {
        /call MoveToLoc -1334 2609
        /call MoveToLoc -1436 2781
        /echo 5
        /varset stop 6
        /return
        }
   /if (${stop}==6) {
        /call MoveToLoc -1436 2781
        /call MoveToLoc -1334 2609
        /call MoveToLoc -1093 2842
        /call MoveToLoc -1273 3119
        /echo 6
        /varset stop 7
        /return
        }
   /if (${stop}==7) {
        /call MoveToLoc -1273 3119
        /call MoveToLoc -1301 3368
        /call MoveToLoc -1866 3873
        /echo 7
        /varset stop 8
        /return
        }
   /if (${stop}==8) {
        /call MoveToLoc -1866 3873
        /call MoveToLoc -1975 4125
        /echo 8
        /varset stop 9
        /return
        }
   /if (${stop}==9) {
        /call MoveToLoc -1975 4125
        /call MoveToLoc -1889 3725
        /call MoveToLoc -1846 3706
        /echo 9
        /varset stop 10
        /return
        }
   /if (${stop}==10) {
        /call MoveToLoc -1846 3706
        /call MoveToLoc -2069 3675
        /call MoveToLoc -2011 3417
        /call MoveToLoc -2189 3399
        /call MoveToLoc -2254 3457
        /echo 10
        /varset stop 11
        /return
        }
   /if (${stop}==11) {
        /call MoveToLoc -2254 3457
        /call MoveToLoc -2456 3675
        /echo 11
        /varset stop 12
        /return
        }
   /if (${stop}==12) {
        /call MoveToLoc -2456 3675
        /call MoveToLoc -2254 3457
        /echo 12
        /varset stop 13
        /return
        }
   /if (${stop}==13) {
        /call MoveToLoc -2254 3457
        /call MoveToLoc -2412 3370
        /echo 13
        /varset stop 14
        /return
        }
   /if (${stop}==14) {
        /call MoveToLoc -2412 3370
        /call MoveToLoc -2549 3150
        /echo 14
        /varset stop 15
        /return
        }
   /if (${stop}==15) {
        /call MoveToLoc -2549 3150
        /call MoveToLoc -2742 3150
        /echo 15
        /varset stop 16
        /return
        }
   /if (${stop}==16) {
        /call MoveToLoc -2742 3150
        /call MoveToLoc -2549 3150
        /echo 16
        /varset stop 17
        /return
        }
   /if (${stop}==17) {
        /call MoveToLoc -2544 3100
        /call MoveToLoc -2549 3150
        /call MoveToLoc -2580 2915
        /call MoveToLoc -2204 2861
        /echo 17
        /varset stop 18
        /return
        }
   /if (${stop}==18) {
        /call MoveToLoc -2204 2861
        /call MoveToLoc -2334 2915
        /call MoveToLoc -2262 3120
        /call MoveToLoc -2158 3160
        /echo 18
        /varset stop 19
        /return
        }
   /if (${stop}==19) {
        /call MoveToLoc -2158 3160
        /call MoveToLoc -2054 3044
        /call MoveToLoc -1940 3160
        /echo 19
        /varset stop 20
        /return
        }
   /if (${stop}==20) {
        /call MoveToLoc -2054 3044
        /call MoveToLoc -2158 3160
        /call MoveToLoc -2262 3120
        /call MoveToLoc -2334 2915
        /echo 20
        /varset stop 21
        /return
        }
   /if (${stop}==21) {
        /call MoveToLoc -2334 2915
        /call MoveToLoc -2580 2915
        /echo 21
        /varset stop 22
        /return
        }
   /if (${stop}==22) {
        /call MoveToLoc -2580 2915
        /call MoveToLoc -2646 2827
        /call MoveToLoc -2560 2617
        /call MoveToLoc -2262 2626
        /call MoveToLoc -2193 2355
        /echo 22
        /varset stop 23
        /return
        }
   /if (${stop}==23) {
        /call MoveToLoc -2193 2355
        /call MoveToLoc -2184 2095
        /call MoveToLoc -897 1616
        /call MoveToLoc -901.74 1690.98
        /echo 23 - end of caves
        /varset stop 0
        /return
        }
/return

|-------------------------------------------------------------------------------- 
|SUB: REGEN
|--------------------------------------------------------------------------------
sub REGEN
      /echo HP real low
      /warp succor
      :REGEN
      /if (${Me.PctHPs}==15) /zone thurgadina
      /keypress 1
      /delay 5s
      /sit
      /goto :REGEN

/return
|-------------------------------------------------------------------------------- 
|SUB: Full
|--------------------------------------------------------------------------------
sub Event_Full
 /echo full
 /twist off
 /zone thurgadina
 /delay 45s
 /doevents
/return

|-------------------------------------------------------------------------------- 
|SUB: GD
|--------------------------------------------------------------------------------
sub Event_GD
 /echo GD
 /delay 5s
 /call MoveToLoc -80.71 -108.85
 /call MoveToLoc -156.43 -47.91
 /call MoveToLoc -394.26 23.45
 /call MoveToLoc -1005.92 680.22
 /call MoveToLoc -901.05 1584.07
 /call MoveToLoc -969.38 1914.36
 /mac veliumhunter
/return

|-------------------------------------------------------------------------------- 
|SUB: Zoned Thurg
|--------------------------------------------------------------------------------
sub Event_Thurg
    /echo Thurg
    /echo All done.. time to leave
    /warp succor
    /face noloc loc -1232,-20
    /keypress forward hold
    /delay 45s
/return

|-------------------------------------------------------------------------------- 
|SUB: Died
|-------------------------------------------------------------------------------- 
 sub Event_Died 
 /echo DEAD.. damn it
 /delay 5s  
 /sit  
 /camp desk  
 /endmac 
 /return







Veliumpieces.inc
Rich (BB code):
| Created by Armysolder OCT 9 2005
|
| VeliumPieces.inc: 
| 
| 
| 
| Have Velium Smithy Hammer and Chisel in inventory

#Event Cant "#*#cannot combine these items#*#"

#include common/sell.inc
#include common/buy.inc
#include common/packs.inc
#include common/cleanpacks.inc

Sub VeliumPieces 
   /doevents
   /declare stop1 int outer 
   /varset stop1 0
   /itemtarget "Forge"
   /warp loc -431 -115 4
   /delay 2s
   /face loc -547,-23
   /click left

   :MainLoop 

      /call OpenForge 
      /call CleanForge 
      :Weapons 
         /call Combine 
         /if (${stop1}==14)  /goto :Done
         /doevents 
      /Goto :Weapons

/goto :MainLoop 
:Done

/return 



| ------------------------------------------------- 
| CleanForge: Removes all items from a forge. 
| ------------------------------------------------- 
Sub CleanForge 
   /echo CLEANING forge .. be patient 
   /declare ForgeSlot int local 0 
   /for ForgeSlot 1 to 10 
      /nomodkey /shiftkey /itemnotify enviro${ForgeSlot} leftmouseup 
      /delay 3 
      /autoinventory 
      /delay 2 
   /next ForgeSlot 
/return 

| ------------------------------------------------- 
| OpenForge: Opens the nearest Forge. 
| ------------------------------------------------- 
Sub OpenForge 
   /echo Opening forge
   /if (${Merchant.Open}) /nomodkey /notify MerchantWnd DoneButton leftmouseup 
   /if (${Window[Enviro].Open}) /nomodkey /notify Enviro DoneButton leftmouseup 
   /if (${Window[TradeskillWnd].Open}) /nomodkey /notify TradeskillWnd ExperimentButton leftmouseup 
   :OpeningForge 
   /itemtarget "Forge"
   /click left item 
   /delay 1s 
   /if (${Window[TradeskillWnd].Open}) { 
      /nomodkey /notify TradeskillWnd ExperimentButton leftmouseup 
      /return 
   } 
   /delay 30s 
   /goto :OpeningForge 
   /if (${Window[TradeskillWnd].Open}) /nomodkey /notify TradeskillWnd ExperimentButton leftmouseup 
/return 

| ------------------------------------------------- 
| Combine
| ------------------------------------------------- 
Sub Combine
   /Echo Doing combines WOOOT ${stop1}
   /call OpenPacks
   /if (${stop1}==0) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Warhammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==1) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Morning Star].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==2) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Great Staff].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==3) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Dagger].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==4) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Battle Axe].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==5) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Long Sword].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==6) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Rapier].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==7) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Scimitar].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==8) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Short Sword].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==9) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Spear].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   } 
   /if (${stop1}==10) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Smithy Hammer].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Velium Two Handed Sword].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==11) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Smithing Chisel].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Block of Velium].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==12) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Smithing Chisel].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Large Brick of Velium].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /if (${stop1}==13) { 
   /nomodkey /ctrl /itemnotify ${FindItem[=Smithing Chisel].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro1]} leftmouseup 
   /nomodkey /ctrl /itemnotify ${FindItem[=Small Brick of Velium].InvSlot} leftmouseup 
   /nomodkey /itemnotify ${InvSlot[enviro2]} leftmouseup
   }
   /delay 3 
   /combine Enviro 
   /delay 2s 
   /autoinventory
   /autoinventory
   /delay 2s 
   /autoinventory
   /autoinventory 
   /delay 2s  
   /autoinventory
   /autoinventory
   /delay 2s 
   /autoinventory
   /autoinventory  
/return 

|------------------------------------------------- 
| Move to Location Loop 
|------------------------------------------------- 
Sub MoveToLoc(float MoveToY,float MoveToX) 
   :MoveToLoop 
      /face fast nolook loc ${MoveToY},${MoveToX} 
      /if (${Math.Distance[${MoveToY},${MoveToX}]}>2) /keypress forward hold 
      /if (${Math.Distance[${MoveToY},${MoveToX}]}<=2) {
         /keypress forward 
         /goto :Arrived 
      }
   /goto :MoveToLoop 
   :Arrived 
/return 

Sub Event_Cant

   /call CleanForge
   
   /echo ${stop1} 

   /if (${stop1}==0) /if (${FindItemCount[=Velium Warhammer]}==0) /varset stop1 1
                 
   /if (${stop1}==1) /if (${FindItemCount[=Velium Morning Star]}==0) /varset stop1 2
           
   /if (${stop1}==2) /if (${FindItemCount[=Velium Great Staff]}==0) /varset stop1 3
           
   /if (${stop1}==3) /if (${FindItemCount[=Velium Dagger]}==0) /varset stop1 4
           
   /if (${stop1}==4) /if (${FindItemCount[=Velium Battle Axe]}==0) /varset stop1 5
            
   /if (${stop1}==5) /if (${FindItemCount[=Velium Long Sword]}==0) /varset stop1 6
          
   /if (${stop1}==6) /if (${FindItemCount[=Velium Rapier]}==0) /varset stop1 7
        
   /if (${stop1}==7) /if (${FindItemCount[=Velium Scimitar]}==0) /varset stop1 8
           
   /if (${stop1}==8) /if (${FindItemCount[=Velium Short Sword]}==0) /varset stop1 9
           
   /if (${stop1}==9) /if (${FindItemCount[=Velium Spear]}==0) /varset stop1 10
           
   /if (${stop1}==10) /if (${FindItemCount[=Velium Two Handed Sword]}==0) /varset stop1 11
            
   /if (${stop1}==11) /if (${FindItemCount[=Block of Velium]}==0) /varset stop1 12
           
   /if (${stop1}==12) /if (${FindItemCount[=Large Brick of Velium]}==0) /varset stop1 13
            
   /if (${stop1}==13) /if (${FindItemCount[=Small Brick of Velium]}==0) /varset stop1 14
       
/echo ${stop1}
    
/return
 
I changed the class on what you use it to monk, the radius of which you target npcs (monks don't have aoe's so they don't get aggro all around them) and the pathing for when you're full, to warp to the druid ring and run to Thurg. Then in thurg it was supposed to run you all the way to the forge and click it and do all the combines and shizzle then run you back out. And then there was a better path to run to the tizmak caves from Thurg out. I didn't catch aggro when using that path. The only problem that I had was inside Thurg, it would run me into a corner instead of the right way. I might try to play with it again, but I don't know if I have to have a special line of code in one of the files.
 
if your gonna warp to druid rings.. why not just zone into thrug ?

have you had any of those other giants agro you in the caves? the ones for the holiday stuff?

I will see if i can do the thurg path ...

the munchkin is playing xbox and PS2... so i got some board time.. lol
 
i am totally removing veliumbit.inc... if anyoen wants to use the pieces for VBits.. then the mac works fine..

as for veliumpieces.inc.. i may just drop it into the main macro... saves some time and energy and fustration .. lol
 
monks don't have aoe's

so monks have to smack the mob o get agro? i never played a monkie

the paths i had.. were to run the toon through mobs.. and stop at various spots to kill them ... if i missed one or two .. it was no biggie.. the toons would run the circuit until the velium items was reached...
 
VeliumHunter.mac

Users who are viewing this thread

Back
Top
Cart