Auto Rez with Merc

Fammel

New member
Joined
Apr 1, 2008
Messages
13
Reaction score
0
Points
0
I am wondering if anyone has a macro that does the following upon death (and port/respawn to guild lobby)

1) Give stone to corpse summoner
2) Revives merc (if needed)
3) Accepts Rez
4) Suspends Merc
5) Logs off

I tend to leave my Mage on at night and let my pet kill, however, every once in a while I end up dead from adds or something and then lose XP (due to me sleeping while it is running). If I die I want to get rezzed and then logged off.

Suggestions?
 
Okay, seeing as no one has this, what would it cost to have someone make it for me? (and is the the appropriate forum to request this)
 
If you really want it, there are some dudes that can create a macro for it.

I have used Devastators service in the past.
 
that souldnt be a hard macro to make if you use the wiki... total hipocracy here tho i havent read one word in it how to make a macro.. just dosnt seem too complicated... only problem you may have is merc giving you 90 percent instead of 96 since sometimes they like to be lazy as fuck.
 
The easy solution would be simply to write a small macro that recognizes if you die and /camp desktop.

That way you can wake up the next day, see you're not playing anymore, login, rez, and you're fine. No need to do all the rezzing BEFORE logging out.
 
I didn't bother with all the corpse summoning and what not, since I prefer to keep everything to holyshits and downshits without macros. Here are the two downshits I made.

downflag20=1
downflag21=1

downshit20=/if (${Me.Buff[Revival Sickness].ID} && ${Me.AltAbilityReady[Expedient Recovery]}) /alt act 484
downshit21=/if (${Me.Buff[Revival Sickness].ID} && !${Me.AltAbilityReady[Expedient Recovery]}) /multiline ; /melee unload ; /camp desktop
 
I am writing this macro for you now.

You will need to be bound on the EAST site of the guild lobby for it to work, since i am setting it up to purchase the corpse summoning stone (based upon level) from the merchant on that side. And using the Priestess of Luclin right by the merchant.

Gimme a a few hours to finalize it.
 
Ok.. its finished....

Just testing it now... should be posted soon.

The ultimate lazy rezer .... LazyLobbyREZ.MAC.. COMMING soon.
 
I am so gonna steal Um I mean use this lol.

attachment.php
 

Attachments

  • lolcat.jpg
    lolcat.jpg
    33.9 KB · Views: 60
Introducing LazyLobbyRez.mac

It is what it is ...

Bind yourself on LEFT side of the guild lobby.
When you die... if you decide to return to bind point, use this mac.

I did not include any functions for getting plat off the banker to by the soulstone because it is assumed
that you have enogh plat on you (since you are upkeeping a merc).

I see no need to add that in at this time, but I may always change it to do so later.

Enjoy.

Code:
#turbo


|-------------------------------------------------------------------------------- 
|SUB: MAIN
|--------------------------------------------------------------------------------
Sub Main

/declare SoulStoneMerchant     	string outer   "A Disciple of Luclin"
/declare CorpseSummoner 	string outer   "A Priestess of Luclin"
/declare RangeDist              int    outer   10
/declare SoulStoneName		string outer
/declare bag               	string outer
/declare slot              	string outer
/declare ItemToGet              string outer

/squelch /target clear
/delay 10

/call CheckSoulstone
/call BuySoulstone
/call GiveSoulstone
/call ReviveMerc
/call TakeRez

/echo Delaying 60 seconds to let merc buff my gimp ass!
/delay 60s

/call SuspendMerc
/call LogMeOut

/return 
|--------------------------------------------------------------------------------


|-------------------------------------------------------------------------------- 
|SUB: CheckSoulstone
|--------------------------------------------------------------------------------
Sub CheckSoulstone

/if (${Me.Level}<=85)	/varset SoulStoneName	Iridescent Soulstone
/if (${Me.Level}<=80)	/varset SoulStoneName	Prismatic Soulstone
/if (${Me.Level}<=75)	/varset SoulStoneName	Glowing Soulstone
/if (${Me.Level}<=70)	/varset SoulStoneName	Pristine Soulstone
/if (${Me.Level}<=55)	/varset SoulStoneName	Faceted Soulstone
/if (${Me.Level}<=50)	/varset SoulStoneName	Greater Soulstone
/if (${Me.Level}<=40)	/varset SoulStoneName	Soulstone
/if (${Me.Level}<=30)	/varset SoulStoneName	Lesser Soulstone
/if (${Me.Level}<=20)	/varset SoulStoneName	Minor Soulstone

/delay 10

/echo Soulstone for my level (${Me.Level}) is (${SoulStoneName}).

/return 
|--------------------------------------------------------------------------------


|-------------------------------------------------------------------------------- 
|SUB: BuySoulstone
|--------------------------------------------------------------------------------
Sub BuySoulstone

/target ${SoulStoneMerchant}

/if (${Target.ID} && ${Target.CleanName.Equal[${SoulStoneMerchant}]}) {
    /call MoveInRange
    /delay 10
    /nomodkey /click right target
    /delay 5s ${Window[MerchantWnd].Open}
    /delay 3s

    /varset ItemToGet ${Window[MerchantWnd].Child[ItemList].List[=${SoulStoneName},2]} 

    /if (!${ItemToGet}) { 
        /echo I couldn't find (${SoulStoneName})  to purchase!
        /end
    } else { 
        /echo Found (${SoulStoneName}) to purchase!
        /notify MerchantWnd ItemList listselect ${ItemToGet} 
        /delay 5
        /notify MerchantWnd ItemList LeftMouseUp ${ItemToGet} 
        /delay 5        
        /nomodkey /notify MerchantWnd MW_Buy_Button LeftMouseUp
        /delay 5
    }  
    
    /if (${Window[MerchantWnd].Open}) /nomodkey /notify MerchantWnd MW_Done_Button LeftMouseUp
    /delay 5
}

/return 
|--------------------------------------------------------------------------------


|-------------------------------------------------------------------------------- 
|SUB: GiveSoulstone
|--------------------------------------------------------------------------------
Sub GiveSoulstone

/target ${CorpseSummoner}

/if (${Target.ID} && ${Target.CleanName.Equal[${CorpseSummoner}]}) {
    /call MoveInRange
    /delay 10
        
    /call GrabSoulstone
    
    /if (${Cursor.ID} && ${Cursor.Name.Equal[${SoulStoneName}]}) {
        /echo I have grabbed (${SoulStoneName}) from my inventory.    
    } else {
        /echo I couldn't get (${SoulStoneName}) from my inventory!
        /end
    }
    
    /itemnotify ${InvSlot[${bag}]} rightmouseup 
    /delay 5

    /if (${Window[InventoryWindow].Open}) /nomodkey /notify InventoryWindow IW_DoneButton LeftMouseUp
    /delay 5

    :OpenGiveWindowA
    /echo Giving (${Cursor.Name}) to (${Target.CleanName}).
    /nomodkey /click left target
    /delay 3s ${Window[GiveWnd].Open}   	  
    /if (!${Window[GiveWnd].Open}) /goto :OpenGiveWindowA    
    
    /notify GiveWnd GVW_Give_Button leftmouseup 
    /delay 3s        

    /if (${Window[InventoryWindow].Open}) /nomodkey /notify InventoryWindow IW_DoneButton LeftMouseUp
    /delay 5    

    /squelch /target clear
    /delay 10    
}

/return 
|--------------------------------------------------------------------------------


|-------------------------------------------------------------------------------- 
|SUB: GrabSoulstone
|--------------------------------------------------------------------------------
Sub GrabSoulstone

/if (${Cursor.ID}) /autoinventory
/delay 5
/if (!${Window[InventoryWindow].Open}) /keypress Inventory 
/delay 5
/varset bag ${FindItem[${SoulStoneName}].InvSlot.Pack}           	 
/itemnotify ${InvSlot[${bag}]} rightmouseup 
/delay 5 	  
/varset slot ${FindItem[${SoulStoneName}].InvSlot}
/itemnotify ${InvSlot[${slot}]} leftmouseup 
/delay 5 

/return 
|--------------------------------------------------------------------------------


|-------------------------------------------------------------------------------- 
|SUB: Revive Merc 
|-------------------------------------------------------------------------------- 
Sub ReviveMerc 

:MercReviveLoop
/if (!${Me.Mercenary.Equal[ACTIVE]}) {
   /echo Reviving Mercenary.
   /nomodkey /notify MMGW_ManageWnd MMGW_SuspendButton LeftMouseUp
   /delay 3s
}
/if (!${Me.Mercenary.Equal[ACTIVE]}) /goto :MercReviveLoop

/return 
|--------------------------------------------------------------------------------


|-------------------------------------------------------------------------------- 
|SUB: TakeRez
|-------------------------------------------------------------------------------- 
Sub TakeRez    

/echo Accepting rez if available.    
/delay 6s

:RezWait

/if (${Window[ConfirmationDialogBox].Open}) {
    /echo I have a rez box, accepting now.
    /nomodkey /notify ConfirmationDialogBox Yes_Button leftmouseup
    /delay 2s
    /multiline ; /echo Respawning ; /notify RespawnWnd RW_OptionsList listselect 2 ; /notify RespawnWnd RW_SelectButton leftmouseup
    /delay 10
    /return
}   else {
    /echo Waiting 6 seconds for a rez.
    /delay 6s
}

/goto :RezWait

/return 
|--------------------------------------------------------------------------------


|-------------------------------------------------------------------------------- 
|SUB: Suspend Merc 
|-------------------------------------------------------------------------------- 
Sub SuspendMerc 

:MercSuspendLoop
/if (${Me.Mercenary.Equal[ACTIVE]}) {
    /echo Suspending Mercenary.
    /nomodkey /notify MMGW_ManageWnd MMGW_SuspendButton LeftMouseUp
    /delay 3s
}
/if (${Me.Mercenary.Equal[ACTIVE]}) /goto :MercSuspendLoop

/return 
|--------------------------------------------------------------------------------

|-------------------------------------------------------------------------------- 
|SUB: MoveInRange
|-------------------------------------------------------------------------------- 
Sub MoveInRange 

    /if (${Target.ID}) /face nolook 
    /delay .5s

    :loopMoveInRange
    /if (${Target.ID}) {
        /face nolook        
        /if (${Target.Distance} > ${RangeDist}) /keypress forward hold 
        /if (${Target.Distance} <= ${RangeDist}) /keypress back        
        /if (${Target.Distance} <= ${RangeDist}) /return
        /delay 1        
        /goto :loopMoveInRange
    }

/return 
|--------------------------------------------------------------------------------


|-------------------------------------------------------------------------------- 
|SUB: LogMeOut
|-------------------------------------------------------------------------------- 
Sub LogMeOut 

/echo Time to camp out !
/keypress forward
/beep
/if (!${Me.Sitting} && !${Me.Mount.ID}) /sit
/delay 45s
/camp desktop 
/endmacro 

/return 
|--------------------------------------------------------------------------------
 

Attachments

  • LazyLobbyRez.mac
    7.9 KB · Views: 2
Last edited:
I could be wrong, but shouldn't

Code:
/if (${Me.Level}==85)	/varset SoulStoneName	Iridescent Soulstone

be

Code:
/if (${Me.Level}<=85)	/varset SoulStoneName	Iridescent Soulstone

Also, form the sounds of it, you may want to add a little loop around the logic like to check if you're even in the guild lobby, if you're not, delay 2 minutes and check again, or some such. That way he can leave it running while he's afk, and if he dies, it would rez and camp. Also, I suppose he could call this from a downshit similar to what an earlier poster suggested, but instead of trying to use the rez AA, just /macro LazyLobbyRez
 
Last edited:
Thanks for the heads up ... noticed it myself about 4 minutes b4 i read your post. The ==85 has been changes to <=85.

All i intended this for was to be launched in the guild lobby... so i have no plans of altering it further for zone checks.