smokinghot
Member
- Joined
- Mar 24, 2005
- RedCents
- 0¢
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.
_________________________________________________________________
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


