• 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
Simple Melee macro

Project 2002 - Simple Melee macro 1.3

No permission to download
Joined
Oct 5, 2012
RedCents
2,324¢
Another simple (honestly too simple) macro I made for my Monk in P2002. It literally leaves all the skill usage in MQ2Melee's hands, which is a bit dicey to say the least with what im working with. I don't have the skill yet to add anything for hybrids (spell usage, managing mana, when to even do that stuff, etc), so sorry for anyone wanting to use this for anything other than Rogues and Monks.

One annoying thing I noticed and don't really know how to put in is when the melee assists the MainAssist, it just stands where the monster died. This can get troublesome over the course of a couple pulls without manual intervention. Better this than nothing though I s'pose. I'll definitely revisit it once I find out how to add a return to camp type thing. I looked at kissassist to see if I could find what is used there and immediately regretted it. That thing is a monster and is scary.

Hope this helps anyone playing P2002 with me!

Rich (BB code):
#include Spell_Routines.inc 
#turbo 40
#event zoned            "You have entered#*#"
#event makecamp      "[MQ2] makecamp"
Sub Main 

|++++++++++++++++++++++++++++++++ 
|      Declares, Variables, and All That 
|++++++++++++++++++++++++++++++++ 
/declare MainAssist    string outer    ${Target.CleanName}
/declare AssistAt    int outer   96 
/declare AssistAtDis int outer   100 
/if (!${Defined[HomeY]}) /declare HomeY int outer 0
/if (!${Defined[HomeX]}) /declare HomeX int outer 0
/if (!${Defined[HomeHeading]}) /declare HomeHeading int outer
/if (!${Defined[CampTime]}) /declare CampTime int outer 0
/varset HomeHeading 0
/varset CampTime 0
/echo Basic Assist Macro has started 
/echo Auto-Assisting ${MainAssist} @ ${AssistAt} % health 
/echo makecamp
|+++++++++++++++++++++++++++++++++ 
|      Main Loop 
|+++++++++++++++++++++++++++++++++ 
:Mainloop 
/doevents
/call WaitingForMobs
/call KillingMobs
/call GoHome
/goto :Mainloop 
/return
|+++++++++++++++++++++++++++++++++ 
|     Waiting For Mobs
|+++++++++++++++++++++++++++++++++
Sub WaitingForMobs
/if (!${Target.ID} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || ${Target.PctHPs} > ${AssistAt} || ${Target.Distance} > ${AssistAtDis}) { 
   /assist ${MainAssist}
   /delay 7 
}
/return
|+++++++++++++++++++++++++++++++++ 
|     Killing Mobs
|+++++++++++++++++++++++++++++++++
Sub KillingMobs
/if (${Target.ID} && ${Target.Distance} < ${AssistAtDis} && ${Target.PctHPs} < ${AssistAt} && !${Me.Combat} && !${Target.Type.Equal[PC]} && !${Target.Type.Equal[CORPSE]}) { 
   /stick 50% behindonce 
   /delay 7 
   /killthis
}
/return
|+++++++++++++++++++++++++++++++++ 
|     Return To Camp
|+++++++++++++++++++++++++++++++++ 
Sub GoHome
/if (${Me.Combat}) /return
/delay 5
/if (${Math.Distance[${HomeY},${HomeX}]}>10 && !${Me.Combat} && ${HomeX}!=0 && ${HomeY}!=0 && ${CampTime}==1) {
	/echo Returning to camp!
	/delay 5
	/moveto loc ${HomeY} ${HomeX}
	/delay 3s ${Me.Speed}==0
	/face heading ${HomeHeading}
}
/return
|+++++++++++++++++++++++++++++++++ 
|      Make Camp
|+++++++++++++++++++++++++++++++++
Sub event_makecamp
/if (${CampTime}==0) {
	/varset CampTime 1
	/echo Setting Camp here!
	/if (${HomeY}==0 && ${HomeX}==0 && ${HomeHeading}==0) {
		/varset HomeY ${Me.Y}
		/varset HomeX ${Me.X}
		/varset HomeHeading ${Me.Heading.Degrees}
		}
	/return
	}
/if (${CampTime}==1) {
	/varset CampTime 0
	/echo No longer making camp!
	/return
	}
/return
|+++++++++++++++++++++++++++++++++ 
|     Unexpected Zone
|+++++++++++++++++++++++++++++++++ 
Sub event_zoned 
/echo Unexpected zoning encounterd. Macro ending. 
/endmacro 
/return

- - - Updated - - -

Thanks to This Macro Post I was able to add a few nifty things to this macro. Thank you kindly thez.
Thank you ctaylor22 you led me in the right direction here with this too.
 
Last edited:
Is there some reason it wouldn't? I tried using things like /if !${Me.Combat} or /if ${Me.Y}!=${HomeY} to trigger the GoHome portion, but they end up spamming the GoHome and causing character to spasm.

What you might want to do is check your distance from your camp. /if (${Math.Distance[${HomeY},${HomeX}]}>10) /call GoHome. The other thing to keep in mind is that when using the /moveto function there is a built in buffer for just how precise you want to be to the exact location. /moveto mdist 10 sets the buffer to 10. I am not sure what the default is for mdist, but if your, lets say, 12 units from your camp location and mdist is set to 15. Then when /moveto loc ${HomeY} ${HomeX} is executed, your character will never move, because your within that 15 unit buffer.
 
Is your character targetting the corpse after it dies?

I would set some camp range and if your not in combat, outside that range, and not moving it will call your gohome function. Also add a tiny delay to give your character time to start moving.
 
You're right, the default /moveto mdist is 10.
I opened the MQ2MoveUtils.ini created by /moveto save, but it doesn't look like the value can be changed there. /moveto 1 also doesn't appear to do anything but produce "You are no longer sticking to anything" and "MoveTo off"
 
Cleaned this up a bit more. Noticed it was running to assist on monsters before parsing in combat. It just did some dicey things. Works better now. I appreciate the info and examples I've been given to help make these better. Not only for me, but anyone on P2002 using them too.
 
Updated: Added to Overview


Hello! This is a simple melee macro that should work effectively with just about any melee class you could want to play. I had a version of this up before the forum change over and I can't seem to access it anymore. It's no problem, as I started tweaking and adding more to it lately as I got back into my emu server of choice.

This macro will make a camp where you activate it at, and make your target it's main assist. So be sure to start it where you want to return between pulls, and with your tank or MA targeted.

I currently uses a small randomized number spread (0-5% + 85%) to determine what percentage of health to assist at, as well as making a timer to return to camp after leaving combat. This is to add a bit more human touch to this. It will definitely show if you're boxing a couple melee characters at once, and they aren't all running in to assist your tank, or running back to camp at the exact same time. Being discreet is key on some servers.

Periodically it will also re-randomize the assist at percentage (currently set to 1 minute, but can be changed in the Scramble sub) with a 5% spread +85%. Example being you could assist your MA/Tank at as low as 85% or as high as 90%, giving your tank time to get a solid amount of aggro.

MQ2Melee handles most of the other melee related stuff. I have a section in for ensuring Bard songs are active, but I have it commented out currently.
That should be about it. Thanks for being great RedGuides, you're all beautiful. If any problems come up let me know! Hope this helps anyone in P2002 with me.

TL;DR - Target MT/MA
move you where you want your camp to be
/mac simplemelee
 
Just a suggestion, any way to have it slightly randomize the camp you return to? Making it not always return you to the exact same spot would make it seem more human.
 
Project 2002 - Simple Melee macro

Users who are viewing this thread

Back
Top
Cart