• 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

Performer Mac

Joined
Sep 20, 2014
RedCents
554¢
I was going to try to do some of the 2.5 farming and I was not sure if this macro will work with current compiles. I am barely able to edit my own ini files so as far as editing a macro that is well beyond my abilities. This is rather old and was passed to me from a friend when we were doing these raids and I have no clue what site it came from.

Rich (BB code):
 Description:
 *	Not much to say except that you can use this script to either help you with
 *	clues and hints during the performer event (/echo info, sounds) and. Or it
 *	can be set up to be semi-automatic or even fully automatic.
 *
 *	It has 7 settings, which is explained in the Main Subroutine. Settings 1-3
 *	is merely informative, where as settings 4-7 are a mix between fully
 *	automatic and being informative.
 *
 *	You can also set whether the audio trigger is a /beep or a pre-defined
 *	/sound (from MQ2CustomSound) with the AudioTrigger variable.
 *
 *	Since the macro uses global (outer) variables, those variables can be
 *	accessed from within EverQuest, as long as MQ2 is loaded and this macro is
 *	running. This makes it possible to make it semi-automatic by following these
 *	simple steps:
 *	- Set this macro to either 2 or 3 (audio event, or audio event and text).
 *	- Create two (2) new hotbutton (social) in EverQuest.
 *	- Hotbutton 1: Name it "PTar" or whatever else you wish.
 *		- Set Line 1: /target npc "${TriggerNPC}"
 *		- Set Line 2: /face
 *	- Hotbutton 2: Name it "PSay" or whatever else you wish.
 *		- Set Line 1: /say ${TriggerRespond}
 *
 *	Now whenever you hear the triggersound/beep, just press your "PTar" button,
 *	run to the NPC you have targeted then press your "PSay" button. Voila!
**|
#Turbo 10

#Event FailStats	"[MQ2] stat#*#"


#Event Flawless		"Your performance is flawless.  The skeletal musician nods their head approvingly."
#Event Failed		"The Performer says 'Come on, #1#, stay with us.  I'm counting on you to help perform this medley.  No more mistakes!'"


#Event Aelfric_0	"Aelfric recites a line of his song and beckons for you to approach him and sing the next line."
#Event Aelfric_1	"Touched tenderly."
#Event Aelfric_2	"Where will you be?"
#Event Aelfric_3	"Dreaming with me."
#Event Aelfric_4	"Please,"
#Event Aelfric_5	"everybody, hear the music."


#Event Britton_0	"Britton recites a line of her song and beckons for you to approach her and sing the next line."
#Event Britton_1	"When she and I split ways,"
#Event Britton_2	"it felt like the end of my days."
#Event Britton_3	"Until I suddenly,"
#Event Britton_4	"suddenly realized"
#Event Britton_5	"this life was better off alone."
#Event Britton_6	"Solitude was the best gift you ever gave me."


#Event Randal_0		"Randal recites a line of his song and beckons for you to approach him and sing the next line."
#Event Randal_1 	"Ol' Nilipus hailed from Misty Thicket."
#Event Randal_2 	"Where'er he smelled Jumjum he'd pick it."
#Event Randal_3 	"The halflings grew cross"
#Event Randal_4 	"when their profits were lost,"
#Event Randal_5 	"screamin', 'Where is that brownie?  I'll kick it!'"


#Event Seth_0		"Seth recites a line of his song and beckons for you to approach him and sing the next line."
#Event Seth_1		"Another night, in eternal darkness."
#Event Seth_2		"Time bleeds like a wound that's lost all meaning."
#Event Seth_3		"It's a long winter in the swirling chaotic void."
#Event Seth_4		"This is my torture,"
#Event Seth_5		"my pain and suffering!"
#Event Seth_6		"Pinch me, O' Death. . ."


Sub Main
	|--- TriggerAction --------------------------------------------------------|
	| What should be done when an event is triggered? These are the options:   |
	| 1 = /echo the line to say.											   |
	| 2 = Audio event. (audio events not complete). 						   |
	| 3 = 1 + 2 															   |
	| 4 = /target, /stick and /say (auto-mode)								   |
	| 5 = 1 + 4 															   |
	| 6 = 2 + 4 															   |
	| 7 = 1 + 2 + 4 														   |
	|--------------------------------------------------------------------------|
	/declare TriggerAction	int 	outer	3

	|--- AudioTrigger ---------------------------------------------------------|
	| Set to "beep" (without the "quotes") to use the default /beep command,   |
	| or set to the name of the sound (as you have defined it in your          |
	| MQ2CustomSound.ini . Note that if you don't have MQ2CustomSound loaded   |
	| the macro will default to /beep.                                         |
	|--------------------------------------------------------------------------|
	/declare AudioTrigger	string	outer	Error


	/declare TriggerNPC		string	outer
	/declare TriggerRespond	string	outer
	/declare Flawless		int		outer	0
	/declare Failed[54,2]	string	outer	NA

	/if (${TriggerAction} >= 4 && ${TriggerAction} <= 7) {
		/if (!${Plugin[mq2moveutils].Name.Equal[mq2moveutils]}) /plugin MQ2MoveUtils noauto
		/if (!${Plugin[mq2moveutils].Name.Equal[mq2moveutils]}) {
			/echo MQ2MoveUtils isn't loaded, and couldn't load the plugin automatically.
			/echo Please obtain a working copy of MQ2MoveUtils.dll and run the macro again "/macro ${Macro.Name}", or set the TriggerAction to either 1, 2 or 3.
			/endmacro
		}
	}
	:Loop
		/doevents
	/goto :Loop
/return

Sub PerformVerse
	/if (${TriggerAction} == 1 || ${TriggerAction} == 3 || ${TriggerAction} == 5 || ${TriggerAction} == 7) /echo (${TriggerNPC}) ${TriggerRespond}
	/if (${TriggerAction} == 2 || ${TriggerAction} == 3 || ${TriggerAction} == 6 || ${TriggerAction} == 7) {
		/if (${Plugin[mq2customsound].Name.Equal[mq2customsound]} && ${AudioTrigger.NotEqual[beep]}) {
			/sound ${AudioTrigger}
		} else {
			/beep
		}
	}
	/if (${TriggerAction} >= 4 && ${TriggerAction} <= 7) {
		/delay ${Math.Calc[${Math.Rand[3]+1}]}s
		/target npc "${TriggerNPC}"
		/stick
		/delay ${Math.Calc[${Math.Rand[3]+1}]}s
		/say ${TriggerRespond}
	}
/return


Sub Event_Flawless
	/varcalc Flawless ${Flawless}+1
	/popup ${If[${Flawless}>1,Another ,]}FLAWLESS performance! (${Flawless})
/return
Sub Event_Failed(string Line, string Actor)
	/declare i				int		local	0
	/for i 1 to ${Failed.Size}
		/if (${Failed[${i},1].Equal[NA]}) {
			/varset Failed[${i},1] ${Actor}
			/varset Failed[${i},2] 1
			/goto :break
		}
		/if (${Failed[${i},1].Equal[${Actor}]}) {
			/varcalc Failed[${i},2] ${Failed[${i},2]}+1
			/goto :break
		}
	/next i
	:break
	/popup ${Failed[${i},1]} made a MISTAKE!${If[${Failed[${i},2]} > 1, (${Int[${Failed[${i},2]}]} TIMES NOW!),]}
/return
Sub Event_FailStats
	/declare i				int		local	0
	/declare Fails			int		local	0
	/for i 1 to ${Failed.Size}
		/if (${Failed[${i},1].Equal[NA]}) /goto :break
		/if (${Failed[${i},2]}) {
			/echo ${Failed[${i},1]} have failed ${Int[${Failed[${i},2]}]} times.
			/varcalc Fails ${Fails}+${Failed[${i},2]}
		}
	/next i
	:break
	/echo Total (personal) flawless: ${Flawless}
	/echo Total fails: ${Fails}
/return


Sub Event_Aelfric_1
	/varset TriggerNPC Aelfric the Flautist
	/varset TriggerRespond Where will you be?
	/call PerformVerse
/return
Sub Event_Aelfric_2
	/varset TriggerNPC Aelfric the Flautist
	/varset TriggerRespond Dreaming with me
	/call PerformVerse
/return
Sub Event_Aelfric_3
	/varset TriggerNPC Aelfric the Flautist
	/varset TriggerRespond Please,
	/call PerformVerse
/return
Sub Event_Aelfric_4
	/varset TriggerNPC Aelfric the Flautist
	/varset TriggerRespond everybody, hear the music.
	/call PerformVerse
/return
Sub Event_Aelfric_5
	/varset TriggerNPC Aelfric the Flautist
	/varset TriggerRespond Touched tenderly
	/call PerformVerse
/return


Sub Event_Britton_1
	/varset TriggerNPC Britton Harmony
	/varset TriggerRespond it felt like the end of my days.
	/call PerformVerse
/return
Sub Event_Britton_2
	/varset TriggerNPC Britton Harmony
	/varset TriggerRespond Until I suddenly,
	/call PerformVerse
/return
Sub Event_Britton_3
	/varset TriggerNPC Britton Harmony
	/varset TriggerRespond suddenly realized
	/call PerformVerse
/return
Sub Event_Britton_4
	/varset TriggerNPC Britton Harmony
	/varset TriggerRespond this life was better off alone.
	/call PerformVerse
/return
Sub Event_Britton_5
	/varset TriggerNPC Britton Harmony
	/varset TriggerRespond Solitude was the best gift you ever gave me.
	/call PerformVerse
/return
Sub Event_Britton_6
	/varset TriggerNPC Britton Harmony
	/varset TriggerRespond When she and I split ways,
	/call PerformVerse
/return


Sub Event_Randal_1
	/varset TriggerNPC Randal Reedsea
	/varset TriggerRespond Where'er he smelled Jumjum he'd pick it.
	/call PerformVerse
/return
Sub Event_Randal_2
	/varset TriggerNPC Randal Reedsea
	/varset TriggerRespond The halflings grew cross.
	/call PerformVerse
/return
Sub Event_Randal_3
	/varset TriggerNPC Randal Reedsea
	/varset TriggerRespond when their profits were lost,
	/call PerformVerse
/return
Sub Event_Randal_4
	/varset TriggerNPC Randal Reedsea
	/varset TriggerRespond screamin', where is that brownie? I'll kick it!
	/call PerformVerse
/return
Sub Event_Randal_5
	/varset TriggerNPC Randal Reedsea
	/varset TriggerRespond Ol' Nilipus hailed from Misty Thicket.
	/call PerformVerse
/return


Sub Event_Seth_1
	/varset TriggerNPC Seth Kimble
	/varset TriggerRespond Time bleeds like a wound that's lost all meaning.
	/call PerformVerse
/return
Sub Event_Seth_2
	/varset TriggerNPC Seth Kimble
	/varset TriggerRespond It's a long winter in the swirling chaotic void
	/call PerformVerse
/return
Sub Event_Seth_3
	/varset TriggerNPC Seth Kimble
	/varset TriggerRespond This is my torture,
	/call PerformVerse
/return
Sub Event_Seth_4
	/varset TriggerNPC Seth Kimble
	/varset TriggerRespond my pain and suffering!
	/call PerformVerse
/return
Sub Event_Seth_5
	/varset TriggerNPC Seth Kimble
	/varset TriggerRespond Pinch me, O' Death. . .
	/call PerformVerse
/return
Sub Event_Seth_6
	/varset TriggerNPC Seth Kimble
	/varset TriggerRespond Another night, in eternal darkness.
	/call PerformVerse
/return

Has anyone had a chance to see if it works still? I have been busy trying to AA and gear a new tank and cleric since the ban spree.
 
Last edited:
I don't remember the sisters fight that well has been a very long time. haven't done it since it was current content. refresh me a little on the fight and I might have it stashed away in some of my old files. I collected the macs and never deleted them unless was updated.
 
um i have one, its not mine. credit to Dewey2461 from mq2 mothership
Rich (BB code):
| ----------------------------------------------------------
|
|   MACRO  : sisters.mac
|
|   AUTHOR : Dewey2461
|
|   USAGE  : /mac sisters <ChannelName>
|
|   WHAT DOES IT DO? For anyone who has had the pleasure of being part of the "hail"
|          team for the demiplane sisters event you know how much of a pain
|          it can be to find and relay messages. This macro will help relay what
|          your sister is doing and tell your sister what others have said their
|          sisters are doing in channel.
|
|    WARNING : Use at your own risk.-- This responds in say / channel where others
|          may notice your responding very quickly.
|
|   YOU SHOULD READ THIS
|
|           Before starting this macro you should be in whatever channel you use
|          to pass sister info to.
|
|          When the macro starts it will attempt to join the channel you started
|          the macro with or the default "hail" channel. If it can not join the
|          channel the replys will default to your group.
|
|          After the macro is running and the event is up, if you hail a sister
|          the macro captures the response and will send a message like :
|          "Althea = DEAD RAT" to the channel and it will monitor the channel
|          looking for others to inform on their sisters. When it has the answer
|          the macro targets the sister you hailed and says the phrase.
|
|          If everything is working correctly all you need to do is find your sister
|          and hail her the macro should take care of the rest.
|
|
| ----------------------------------------------------------
|
|   TO DO:   Add timers so you don't respond quite so quickly
|
|     HISTORY: Oct 7, 2017 -- version 0.5
|             Updated to new delare requirements.
|             Updated changes to emotes.
|                
|   HISTORY: AUG 19 2007 -- version 0.4
|          Tested with live event. modified phrases to avoid false triggers from
|          hail channel chat.
|
|   HISTORY: AUG 05 2007 -- version 0.3
|          Added CRYING QUIETLY,POISONOUS SUBSTANCE,DIARY events
|
|   HISTORY: JUL 28 2007 -- version 0.2
|          Should be completely working except for the 3 missing triggers.
|          Added responses to channel or group
|          Will now /say anwser to your sister after targeting.
|
|   HISTORY: JUL 27 2007 -- version 0.1
|          Initial posting to www.macroquest2.com VIP section.
|
|
| ----------------------------------------------------------


#warning

| ----------------------------------------------------------
| ------------   10 SISTER TRIGGERS  - Missing some.
| ----------------------------------------------------------
#event SetText "#1# is #2# with several werewolves, whispering and motioning towards the rooms of the other Sisters."
#event SetText "#1# glances around the room to ensure the other Sisters are nowhere in sight, then slips a #2# under the bed pillow."
#event SetText "#1# is carving a block of wood, using a whittling blade to fashion a sharp #2#."
#event SetText "#1# uses a small chisel to hammer a crack into another Sister's coffin, #2# it."
#event SetText "#1# is surreptitiously watching the other Sisters, #2# on them."
#event SetText "#1# is murmuring to herself while obsessively sharpening an ornate #2#."
#event SetText "#1# is wandering the back halls, #2# out the occupants in the various guest rooms."
#event SetText "#1# is sulking, burying her face in the bedsheets while #2#."
#event SetText "#1# gingerly dabs a #2# onto the rim of one of the other Sister's wine goblets."
#event SetText "#1# is flipping through the pages of a #2#, which is obviously not her own.  It must belong to one of the other Wailing Sisters."


| ----------------------------------------------------------
| ------------   MAIN --- START HERE
| ----------------------------------------------------------

sub Main()
   /declare Sister string outer
   /declare answer string outer
   /declare ask string outer

   /declare Channel string outer
   /declare ResetTimer timer outer
   /declare AnswerTimer timer outer
   /declare Althea string outer
   /declare Brenda string outer
   /declare Christine string outer
   /declare AltheaAsk string outer
   /declare BrendaAsk string outer
   /declare ChristineAsk string outer
   /declare MySister string outer

   | did we get a channel name
   /if (!${Bool[${Param0}]}) {
      /echo /mac sisters CHANNELNAME
      /echo And, be in the channel!!
      /endm
   } else /if (${Bool[${Param0}]}) {      
      /varset ChannelName ${Param0}
      /list
   }

   /call Reset
   /varset ResetTimer 1000m
   /mqclear
   /echo Starting Sisters Responder

   :Mainloop
      /if (${ResetTimer}==0) /call Reset
      /if (${AnswerTimer}==0) /call AskForInfo
      /doevents
   /goto :Mainloop
/return



| ----------------------------------------------------------
| ------------   WHO IS EACH SISTER ASKING FOR ?
| ----------------------------------------------------------
#event WhoAskedForA  "#1# says, 'Did you find out?  What is Althea up to?'"
sub Event_WhoAskedForA(string line, string she)
   /echo [Sisters] ${she} asking for Althea
   /varset ${she}Ask Althea
   /call DumpVars
   /call AnswerIfAble     
/return

#event WhoAskedForB  "#1# says, 'Did you find out what Brenda is up to?'"
sub Event_WhoAskedForB(string line, string she)
   /echo [Sisters] ${she} asking for Brenda
   /varset ${she}Ask Brenda
   /call DumpVars
   /call AnswerIfAble
/return

#event WhoAskedForC  "#1# says, 'What is Christine up to?'"
sub Event_WhoAskedForC(string line, string she)
   /echo [Sisters] ${she} asking for Christine
   /varset ${she}Ask Christine
   /call DumpVars
   /call AnswerIfAble
/return


| ----------------------------------------------------------
| ------------   WHAT IS OUR SISTER DOING ?
| ----------------------------------------------------------
sub Event_SetText(string line, string she, string Text)
   /echo [Sisters] ${she} = ${Text}
   /docommand ${Channel} ${she} = ${Text}
   /varset MySister ${she}
   /varset ${she} ${Text}
   /call DumpVars
   /call AnswerIfAble
/return



| ----------------------------------------------------------
| ------------   FIGURE OUT WHAT IS BEING SAID IN CHANNEL
| ----------------------------------------------------------
#event Channel "#1# tells |${ChannelName}|:#*#, '#2# #3#'"
sub Event_Channel(string line, string Who, string Said, string What)
   /doevents

   /declare s string local
   /declare t string local
   /echo [Sisters-FromChannel] "${Said}" "${What}"
   /varset s NONE
   /varset t NONE

   /if (${Said.Left[1].Equal[A]}) /varset s Althea
   /if (${Said.Left[1].Equal}) /varset s Brenda
   /if (${Said.Left[1].Equal[C]}) /varset s Christine

   | Hard part figure out which phrase

   /if (${What.Find[CONSPIRING]}) /varset t CONSPIRING
   /if (${What.Find[CRYING QUI]}) /varset t CRYING QUIETLY
   /if (${What.Find[DEAD RAT]}) /varset t DEAD RAT
   /if (${What.Find[DIARY]}) /varset t DIARY
   /if (${What.Find[LETTER OPEN]}) /varset t LETTER OPENER
   /if (${What.Find[SUBSTAN]}) /varset t POISONOUS SUBSTANCE
   /if (${What.Find[SONOUS]}) /varset t POISONOUS SUBSTANCE
   /if (${What.Find[SABOTAG]}) /varset t SABOTAGING
   /if (${What.Find[SCOPIN]}) /varset t SCOPING
   /if (${What.Find[SPYING]}) /varset t SPYING
   /if (${What.Find[WOODEN]}) /varset t WOODEN STAKE
   /if (${What.Find[STAKE]}) /varset t WOODEN STAKE

   | If we found both sister and phrase - save info

   /if (${s.NotEqual[NONE]} && ${t.NotEqual[NONE]}) {
      | /echo [Sisters-FromChannel] "${Said} ${What}"  ==>  ${s} = ${t}
      /varset ${s} ${t}
      /call DumpVars
   }

   /call AnswerIfAble

/return


| ----------------------------------------------------------
| ------------   Answer if we have the info.
| ----------------------------------------------------------

Sub AnswerIfAble()
   /doevents
   /if (${MySister.Equal[NONE]}) /return
   /varset ask ${${MySister}Ask}
   /if (${ask.Equal[NONE]}) /return
   /varset answer ${${ask}}
   /if (${answer.Equal[NONE]}) /return
   /echo [Sisters] ANSWER = ${answer}

   /target ${MySister}
   /delay 1s
   /say ${answer}

   /varset MySister NONE
/return


| ----------------------------------------------------------
| ------------   Ask For Info
| ----------------------------------------------------------
sub AskForInfo()
   /doevents

   /varset AnswerTimer 2m
   /call AnswerIfAble
   /if (${MySister.Equal[NONE]}) /return
   /if (${${MySister}Ask.Equal[NONE]}) /return

   /echo [Sisters] Need ${${MySister}Ask}
   /varset AnswerTimer 30s

/return


| ----------------------------------------------------------
| ------------   Reset Stuff
| ----------------------------------------------------------
sub Reset
   /varset ResetTimer   60m
   /varset AnswerTimer  1m
   /varset Althea       NONE
   /varset Brenda       NONE
   /varset Christine    NONE
   /varset AltheaAsk    NONE
   /varset BrendaAsk    NONE
   /varset ChristineAsk NONE
   /varset MySister     NONE
   /doevents
/return



| ----------------------------------------------------------
| ------------   WIN / LOSE
| ----------------------------------------------------------
#event Win "#*# your fellow Sisters will be bound and banished.'"
sub Event_Win(string line)
   /echo Win!
   /end
/return

#event Loss "#1# pouts, 'I knew these mortals would fail.#*#'"
sub Event_Loss(string line, string she)
   /end
/return



| ----------------------------------------------------------
| ------------   Rather than reset for trigger , do it once using a timer
| ----------------------------------------------------------
#event Reset "#1# prepares to head elsewhere."
sub Event_Reset(string line, string she)
   /varset ResetTimer 5s
   /call Reset
/return




| ----------------------------------------------------------
| ------------   DOTED!  Get a cure.
| ----------------------------------------------------------
#event Dotted "You are pricked by a poisoned pin."
sub Event_Dotted(string line)
   /g Dotted .. cure please.
/return



| ----------------------------------------------------------
| ------------   DumpVars 
| ----------------------------------------------------------
sub DumpVars()
   /doevents
   /echo
   /echo
   /echo === VARIABLES ===
   /echo Althea = ${Althea}
   /echo Brenda = ${Brenda}
   /echo Christine = ${Christine}
   /echo AltheaAsk = ${AltheaAsk}
   /echo BrendaAsk = ${BrendaAsk}
   /echo ChristineAsk = ${ChristineAsk}
   /echo MySister = ${MySister}
/return   



| ----------------------------------------------------------
| ------------   Get Channel -- From SymScripts MCS
| ----------------------------------------------------------
#event GetChannel "Channels: #*#"
sub Event_GetChannel(string line)
   /declare a int

   /if ( !${line.Mid[${Math.Calc[${line.Find[${ChannelName}]}-2]},1]} ) {
      /echo Could not find channel defaulting to group
      /varset Channel /g
      /return
   }

   /varset Channel /${line.Mid[${Math.Calc[${line.Find[${ChannelName}]}-2]},1]}
   /echo Channel set to: ${Channel}
/return
 
Performer Mac

Users who are viewing this thread

Back
Top
Cart