• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

PA macro (1 Viewer)

Yea I saw that auction earlier.... I love how he goes into soooo much detail that you can just look at the auction and get the macro. This macro in almost exact words is posted on another site I use. Saw it recently so thought i would look into it. I have a friend that is an enchanter and he made the item that he describes and it sells back for like 2 copper ish. So this has been nerfed and not worth wasting money on.
 
Np.... I tracked down the macro.... Most likely the exact one hes selling.
| srv.mac
| --make a silver ruby veil --
|
| remember to have at least 132 * 20 = 2640 plat on have initially.
|
| Jewellers Kit is in the last slot
| breeze is on gem 1 (or KEI if you have it)
| enchant silver is on gem 8
| you are positioned between the two vendors
|
| this macro enchants one bar of silver and then meds a veil during
| the mana regen time
|
| mana is allowed to drop to 50% before you are force to wait
| and regen it each cycle.
|
#turbo
#chat say
#chat tell

#include SpellSub.mac
#Event MedTime "Insufficient Mana to cast this spell"
#Event Breeze "The light breeze fades."
#event CombineSucceed "You have fashioned the items together to create something new!"
#event CombineFail "You lacked the skills to fashion the items together."


#define Ingredient_Ruby "Ruby"
#define Ingredient_Bar "Silver Bar"
#define Ingredient_Silver "Enchanted Silver Bar"
#define Product_Veil "Silver Ruby Veil"

#define Jewellers_Kit 7


#define maxiskill v55
#define FORAGE 2
#define SITFLAG v81
#define OldMana v82
#define NetMana v83
#define BreezeFlag v84
#define GameTime v85
#define Index1 v33
#define Combine_Flag v30


#define DropPickup_Timeout t0
#define Loop_Time t1
#define Regen_Time t2
#define Misc_Timeout t3


#define Merchant_Name v34
#define Open_Flag v35
#define Order_Amount v36
#define Temp_Var v37
#define Plat_Start v38
#define Plat_End v39
#define Plat_Net v40
#define Elapsed_Time v41
#define Plat_Per_Hr v42
#define Failed_Count v43

Sub Main

/filter name remove all
/filter name add You have fashioned the items together to create an alternate product.
/filter name add You lacked the skills to fashion the items together.
/filter name add You have fashioned the items together to create something new!
/filter name add You can no longer advance your skill from making this item.

/call ResetStats

/varset BreezeFlag 0
/call OpenPacks

:Loop
/doevents
/call CheckInventory
/call EnchantSilver
/call RegenMana
/goto :Loop

/return


|====================================================
Sub ResetStats
/varcalc Plat_Start $char(plat)+$char(gold)/10+$char(silver)/100+$char(copper)/1000
/varset Loop_Time 12000
/varset Failed_Count 0
/return

|====================================================
Sub CalcStats
/varcalc Plat_End $char(plat)+$char(gold)/10+$char(silver)/100+$char(copper)/1000
/varcalc Plat_Net $Plat_End-$Plat_Start
/echo Net profit this loop is $Plat_Net
/varcalc Elapsed_Time 12000-$Loop_Time
/varcalc Elapsed_Time $Elapsed_Time/10/60
/echo Loop took $Elapsed_Time min to complete
/varcalc Plat_Per_Hr $Plat_Net*60/$Elapsed_Time
/echo $Plat_Per_Hr plat/hr
/echo $Failed_Count failures!
/call ResetStats
/return

|====================================================
Sub CheckInventory
| assume if we are out of rubies we are out of silver
/if n $count("Ingredient_Ruby")>0 /if n $count("Ingredient_Bar")>0 /return

/stand
/call OpenMerchant "Kirem"
/call Sell "Product_Veil"
/call Buy "Ingredient_Ruby" 1
/call CloseMerchant

/call OpenMerchant "Audri"
/call Buy "Ingredient_Bar" 1
/call CloseMerchant
/sit
/call CalcStats

/return

|====================================================
Sub SellItems
|/warp 143.88 104.16 -26.87
/call OpenMerchant "Kirem"
/call Sell "Product_Veil"
/call CloseMerchant
/return

|====================================================
Sub CheckBreeze
/if $char(buff,1)==NULL /varset BreezeFlag 1

/if n $BreezeFlag>0 {
/stand
/target myself
/call SpellSub 1 5s
/sit
/varset BreezeFlag 0
}
/return

|====================================================
Sub RegenMana
| set regen time to 5 * 4 secs
/varset Regen_Time 300
/call LookDown
:RegenLoop
/doevents
/call CheckBreeze
/if n $freeinv(space)>=4 /if n $count("Ingredient_Ruby")>0 /if n $count("Ingredient_Silver")>0 /call MakeVeil
/delay 10
|/varcalc NetMana $char(mana,cur)-$OldMana
|/if n $NetMana<0 /if n $Regen_Time>0 /goto :RegenLoop
/if n $char(mana,pct)<50 /if n $Regen_Time>0 /goto :RegenLoop
|/varcalc NetMana $char(mana,cur)-$OldMana
|/echo Mana: $char(mana,cur) net: $NetMana

/return

|====================================================
Sub MakeVeil
/call GetIngredient "Ingredient_Ruby"
/call PutIngredient Jewellers_Kit 0

/call GetIngredient "Ingredient_Silver"
/call PutIngredient Jewellers_Kit 1

/call DoCombine Jewellers_Kit
/return

|====================================================
Sub EnchantSilver
/if n $count("Ingredient_Bar")==0 /return
/varset OldMana $char(mana,cur)
/call SpellSub 8 0
/delay 55
/sit
/delay 10
/call ClearCursor
/return

|====================================================
Sub OpenPacks
/press shift
/press ctrl
/press alt
/press esc
/press esc
/press esc
/press i
/delay 2
/for Index1 0 to 7
/if $pack($Index1,open)!=TRUE /click right inv $Index1
/delay 5
/next Index1
/return

|====================================================
Sub LookDown
/sendkey down page_down
/delay 10
/sendkey up page_down
/return

|====================================================
Sub LookUp
/press home
/return

|====================================================
Sub BuySellItem
/varcalc v1 $char(plat)*1000+$char(gold)*100+$char(silver)*10+$char(copper)
/sendkey down shift
/click left merchant buy
|/if n fastmerch==1 /goto :doneBuySell
:WaitBuy
/doevents
/if n $v1==$calc($char(plat)*1000+$char(gold)*100+$char(silver)*10+$char(copper)) /goto :WaitBuy
:doneBuySell
/sendkey up shift
/return

|====================================================
Sub Sell
:SellingExact
/doevents
/if n $count("$p0")==0 /return
/varset Open_Flag 0
/finditem "$p0"
/varset Misc_Timeout 50
:WaitForResponse
/delay 2
/doevents
/if n $Misc_Timeout>0 /if n $Open_Flag==0 /goto :WaitForResponse
/call BuySellItem
/goto :SellingExact
/return

|====================================================
Sub Buy
| Sub Buy calculates and makes sure we at least have
| the number of stacks requested on hand

| for some reason if we don't put a delay in before
| the call to /selectitem, the client crashes

| Ingredient_Meat is a special case
| we buy Ingredient_Meat, but we store Ingredient_Fillet

/echo "Sub Buy $p0 $p1"

/varcalc Temp_Var $p1*20
/echo 1:$Temp_Var
/varsub Temp_Var $count("$p0")
/echo 2:$Temp_Var
/varcalc Temp_Var $Temp_Var/20
/echo 3:$Temp_Var
/varadd Temp_Var .99
/echo 4:$Temp_Var
/varset Order_Amount $int($Temp_Var)
/echo "Ordering more $p0"
/echo "We asked to have at least $p1 stacks."
/echo We have $count("$p0") on hand.
/echo We need to order $Order_Amount stacks.

/if n $Order_Amount<=0 /return

|/if n $Order_Amount>$calc($freeinv(space)-10) {
| /echo ERROR! $Order_Amount > $freeinv(space) minus 10
| /endmacro
|}

/doevents
/delay 10
/varset Open_Flag 0
/selectitem "$p0"
/varset Misc_Timeout 50
:WaitForBuyResponse
/delay 2
/doevents
/if n $Misc_Timeout>0 /if n $Open_Flag==0 /goto :WaitForBuyResponse
/if n $Open_Flag==0 {
/echo "ERROR! No response from merchant to buy!"
/endmacro
}
/for Index1 1 to $Order_Amount
/doevents
/delay 2
/call BuySellItem
/next Index1
/return

|====================================================
Sub OpenMerchant

/target npc "$p0"
/if $target()==FALSE {
/echo "ERROR! Unable to open merchant $p0"
/endmacro
}
/face
/delay 10

/varset Merchant_Name "$p0"
/varset Open_Flag 0


/call LookUp

:ClickMerchant
/target "$Merchant_Name"
/if "$target(name)"~~"$Merchant_Name" {
|/click right target
/press u
} else {
/goto :ClickMerchant
}
/varset Misc_Timeout 50
:WaitForOpen
/delay 2
/doevents
/if n $Misc_Timeout>0 /if n $Open_Flag==0 /goto :WaitForOpen
/if n $Open_Flag==0 {
/echo "ERROR! Unable to open merchant $Merchant_Name"
/endmacro
}
/return

|====================================================
Sub CloseMerchant
/click left merchant done
/return


|====================================================
Sub PutIngredient
/click left pack $p0 $p1
/call WaitForDrop
/return

|====================================================
Sub GetIngredient
/if n $count("$p0")==0 {
/echo "ERROR! We ran out of $p0 before we should have!"
/endmacro
}
/sendkey down ctrl
/finditem "$p0"
/call WaitForPickUp
/sendkey up ctrl
/return

|====================================================
Sub WaitForPickUp
|/echo "Sub WaitForPickup"
/varset DropPickup_Timeout 20
:SUBWAITFORPICKUP
/delay 1
/if "$cursor()"!="TRUE" /if n $DropPickup_Timeout>0 /goto :SUBWAITFORPICKUP
/return

|====================================================
Sub WaitForDrop
|/echo "Sub WaitForDrop"
/varset DropPickup_Timeout 50
:SUBWAITFORDrop
/doevents
/if "$cursor()"=="TRUE" /if n $DropPickup_Timeout>0 /goto :SUBWAITFORDROP
/return

|====================================================
Sub ClearCursor
| remove any items from the cursor
:SUBCLEARCURSOR
/if "$cursor()"!="TRUE" /return
/click left auto
/delay 2
/goto :SUBCLEARCURSOR
/return

|====================================================
Sub CleanPack
/press ctrl
/sendkey down shift
/varcalc l0 $pack($p0,slots)-1

/for l1 0 to $l0
/if "$item($p0,$l1,name)"!=NULL {
/click left pack $p0 $l1
/call WaitForPickUp
/click left auto
/call WaitForDrop
/if $pack($p0,empty)==TRUE /goto :ExitCleanPack
/next l1
:ExitCleanPack
/sendkey up shift
/press shift
/return

|====================================================
Sub DoCombine
/varset Combine_Flag 0
:DoCombine
/click left pack $p0 combine
/varset Misc_Timeout 10

:WaitForCombine
/doevents
/delay 2
/if n $Misc_Timeout==0 /if n $Combine_Flag==0 {
/echo missed combine click
/goto :DoCombine
}
/if n $Misc_Timeout>0 /if n $Combine_Flag==0 /goto :WaitForCombine

/if n $Combine_Flag==2 {
/click left auto
/delay 2
}
/call ClearCursor
/return

|====================================================
Sub Event_MedTime
| we should never reach here, but if we do
| just make them chill for a bit
/sit
/echo Warning! We ran out of mana! Delaying 30 seconds
/delay 30s
/stand
/return

|====================================================
Sub Event_Breeze
/varset BreezeFlag 1
/return

|====================================================
Sub Event_CombineFail
|/echo event combine fail
/varadd Failed_Count 1
/varset Combine_Flag 1
/return

|====================================================
Sub Event_CombineSucceed
|/echo event combine succeed
/varset Combine_Flag 2
/return

|====================================================
Sub Event_Chat
|/echo "Chat event detected p0: $p0 p1: $p1"
/if "$p0"=="tell" {
/if "$p1"~~"$Merchant_Name" {
/varset Open_Flag 1
} else {
/echo "$p1 told $char(name), $p2"
}
}
/if "$p0"=="say" /if "$p1"~~"$Merchant_Name" /varset Open_Flag 1
/return



| - SpellSub.mac -
| Modified extensively to work with druid helper ap
| first never med, we will control that
| we also want the macro to cast a spell regardless
| so make allowances for movement, etc and cast
| when it can
| Spell Casting Sub routine - Usage "/call SpellSub
| "

| movement logic
| don't cast if we are moving
| if we were moving and have stopped, do a little jiggle and delay
| prior to casting. This fixes the problem that we were always interrupted
| when we would cast after movement.


| setup all possible events that could occur
#Event CastStart "You begin casting"
#Event CastOutOfMana "Insufficient Mana to cast this spell!"
#Event CastFizzle "Your spell fizzles!"
#Event CastInterrupt "Your spell is interrupted."
#Event CastResist "Your target resisted"
#Event CastRecover "You haven't recovered yet"
#Event CastRange "Your target is out of range"
#Event CastStand "You must be standing"

#define MOVEFLAG v97

Sub SpellSub
/varset v98 $p0
/varset v99 $p1
/varset MOVEFLAG 0

:ReCast
/varset v10 $char(speed)
/if n $v10!=0 {
/echo Moving, delaying cast
/varset MOVEFLAG 1
/delay 1
/doevents
/goto :ReCast
}

/if n $MOVEFLAG!=0 {
/echo Recovering from move
/varset MOVEFLAG 0
/press right
/press left
/delay 1
}

/varset v1 0
/stand
/cast $v98
/delay 1s
/doevents
/if n $v1>1 /goto :ReCast
/return

Sub Event_CastStart
/delay $v99s
/return

Sub Event_CastOutOfMana
/echo Out of Mana Detected
/beep
/varset v1 1
/return

Sub Event_CastFizzle
/echo Fizzle Detected
/varset v1 2
/return

Sub Event_CastInterrupt
/echo Interrupt detected
/varset v1 3
/return

Sub Event_CastResist
/echo Resist detected
/varset v1 4
/return

Sub Event_CastRecover
/echo Recover detected
/varset v1 5
/delay 1
/return

Sub Event_CastRange
/echo out of range detected
/varset v1 6
/delay 2
/return

Sub Event_CastStand
/echo stand detected
/varset v1 7
/stand
/return
 
PA macro

Users who are viewing this thread

Back
Top