• 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
Schnook.mac - out of grp shm buffer simpleton

Release Schnook.mac - out of grp shm buffer simpleton 1.0

No permission to download
Joined
Jan 14, 2016
RedCents
1,418¢
Yeah I know there are a ton of buff bots out there, but many are old/outdated and this is extremely
lightweight.

Not tested since adding the comments - hope it still works... Written in a UTF-8 editor so spacing
and line-wraps could be fluxx0r'd by this forum.

Use at your own risk: If you are a mac n00b, I'd suggest passing - this was not written to be used
out-of-the-box. I am merely sharing something I wrote and use. Its a cut & paste job so can't ensure
formatting.

Everything else that needs to be said is in the code notes:

Rich (BB code):
|==========================================================================================
| Down and dirty buff simpleton - 2016 Incognito - I name it: Schnook.mac
| It aint pretty, it aint smart, but it will buff your out-of-group toons (/tgb).
| I wrote this cause I dint want my SHM leaching XP from inside the grp and
| the grp performs much better with his buffs (namely Shm Maw, Haste, etc).
| The Maw line, even with AA's extending it, lasts just under 2 minutes. But
| it procs like a beast for everyone and I've never seen it resisted. It increases
| grp output 30 to 50% (along with haste). I use this for out-of-grp PLing.
|
| This can be adapted for any buff lineup. I separated the Maw proc since it's
| such a short lasting buff and I wanted it always on, always first. You can remove the 
| ShortBuff routine if you don't have a need for something like that.
|
| The LongBuff3 is like a 10 second (8? seconds w/AA's) cast so it issues a /bct pullername 
| //backoff cmd. THIS MEANS you need eqbc logged in both toons or comment out that
| code. One day I might add a flag or a check but as I am always logged in eqbc it works for me.
| You can comment out the LongBuff3 routine if you don't have something that long. It works
| well, worst case is that there are some 8 seconds of puller dps loss but that is way
| better than the normal 'puller out of range' for buffs scenario. My monk puller very rarely
| gets ANY of the buffs when the SHM is in grp running KA since it is always out of camp
| pulling. I normally see the puller get the LongBuff3 between freshly returning to camp 
| and the mob just entering camp, so it works well for me.
|
| Set DebugFlag to 1 to turn on MQ2Win notifications. If your buff spell is multi-word
| surround the name with quotes like I did. It is recommended to send MQ2Cast's /casting
| cmd the gemnumber along with the spell name. Make sure they are correct or go thru the
| code and omit them else MQ2Cast will be trying to mem spells during critical cast times.
| I have not tested MQ2Casts ability to do so. Docos say it will default to Gem5.
|
| MQ2Cast will throw up aborting msgs ocassionally. That's fine, it is self-correcting
| and the code will always catch up next cycle. Its largely due to puller running out of
| range during the cast.

| Use this as an example/template for your out-of-grp buffing needs. An alternative
| would be to use KA, and a raid feature with one of the extended target settings, but
| I have never done that...
|==========================================================================================
Sub Main

	/declare TarName 	string 	outer 	PullerName
	/declare DebugFlag 	int  	outer 	1
	/declare ShortBuff 	string 	outer 	"Talisman of the Lynx"
	/declare LongBuff1	string 	outer	Champion
	/declare LongBuff2	string 	outer	"Talisman of the Stalwart"
	/declare LongBuff3	string 	outer	"Talisman of Unity"
	|/declare 3Dual 	int 	outer	1
	/declare 3DualName 	string	outer	"Mammoth's Strength"
	/declare LongBuff4	string 	outer	"Talisman of Celerity"
	/declare LongBuff5	string 	outer	"Spirit of Bih`Li"
	/declare LongHeal	string 	outer	"Halcyon Whisper"
	/declare Iteration	int		outer	1 
	/declare GemNum		int		outer	0
	/declare WhisperFlag int	outer	0
	
	|/declare i          int local   	1
    |/for i 1 to ${NumBuffs}
    |    /varset LongBuffs[${i}] |do somethign clever
    |/next i

	/while (1 < 2) { 
		/if (!${Target.ID} || ${Target.Name.NotEqual[${TarName}]} && ${DebugFlag}) /echo Target Problems
		/if (!${Target.ID} || ${Target.Name.NotEqual[${TarName}]}) /tar ${TarName}
		
		/if (${Target.Distance} > 50) {
			/varcalc WhisperFlag 0
			/call WaitForPuller
		}
		/if (${Target.ID} && ${Target.Distance} < 50 && !${Target.Buff[${ShortBuff}].ID}) {
			/varcalc GemNum 5
			/call DoShort ${ShortBuff} ${GemNum}
		}
		/if (${Target.ID} && ${Target.Distance} < 50 && !${Target.Buff[${LongHeal}].ID} && !${WhisperFlag}) { 
			/varcalc GemNum 10
			/call DoLong ${LongHeal} ${GemNum}
			|Only do this once per pull
			/varcalc WhisperFlag 1 
		}
		/if (${Target.ID} && ${Target.Distance} < 50 && !${Target.Buff[${LongBuff1}].ID} && ${Iteration} < 2) { 
			/varcalc GemNum 2
			/call DoLong ${LongBuff1} ${GemNum}
			/varcalc Iteration ${Iteration} + 1 
		}
		/if (${Target.ID} && ${Target.Distance} < 50 && !${Target.Buff[${LongBuff2}].ID} && ${Iteration} < 2) { 
			/varcalc GemNum 6
			/call DoLong ${LongBuff2} ${GemNum}
			/varcalc Iteration ${Iteration} + 1 
		}
		/if (${Target.ID} && ${Target.Distance} < 50 && !${Target.Buff[${3DualName}].ID} && ${Iteration} < 2) { 
			/bct ${TarName} //backoff
			/delay 10
			/varcalc GemNum 8
			/call DoLong ${LongBuff3} ${GemNum}
			/varcalc Iteration ${Iteration} + 1 
			/bct ${TarName} //backoff
		}
		/if (${Target.ID} && ${Target.Distance} < 50 && !${Target.Buff[${LongBuff4}].ID} && ${Iteration} < 2) { 
			/varcalc GemNum 9
			/call DoLong ${LongBuff4} ${GemNum}
			/varcalc Iteration ${Iteration} + 1 
		}
		/if (${Target.ID} && ${Target.Distance} < 50 && !${Target.Buff[${LongBuff5}].ID} && ${Iteration} < 2) { 
			/varcalc GemNum 11
			/call DoLong ${LongBuff5} ${GemNum}
			|/varcalc Iteration ${Iteration} + 1 
		}
		/delay 50 
		/doevents
		/varcalc GemNum 0
		/varcalc Iteration 1
	}
/Return

Sub WaitForPuller
	/if (${DebugFlag}) /echo Entering WaitForPuller
	/while (${Target.Distance} > 50) {
		/delay 40
		/doevents
	}
	|Puller now in camp - return for buffage
	/if (${DebugFlag}) /echo Exiting WaitForPuller
/return

Sub DoShort(string ShortBuffName, int ShortGem)
	/if (${DebugFlag}) /echo Short Buffing ${ShortBuffName} Gem: ${ShortGem}
	/casting "${ShortBuffName}" ${ShortGem}
	/while (${Cast.Timing}) {
		| I've never seen this fire
		/if (${DebugFlag}) /echo Cast Timing Short
		/delay 5
	}
	/delay 40
/return

Sub DoLong(string BuffSThis, int GemNum)
	/if (${DebugFlag}) /echo Long Buffing ${BuffSThis} Gem: ${GemNum}
	/casting "${BuffSThis}" ${GemNum}
	/while (${Cast.Timing}) {
		| I've never seen this fire
		/if (${DebugFlag}) /echo Cast Timing
		/delay 5
	}
	/delay 80
/return

** MOVED from Level 1 to level 2 **

** Updated: removed comments that caused errors. Added simple heal/regen. Reinstated the WaitForPuller routine.
 
Last edited:
Release Schnook.mac - out of grp shm buffer simpleton

Users who are viewing this thread

Back
Top
Cart