Auto buffing from tells

Got a cool macro idea? Wanna request a macro? Here is the place for you!

Moderator: MacroQuest Developers

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Auto buffing from tells

Post by JimJohnson » Mon Nov 24, 2003 5:41 am

Looking for a non genbot mac that will buff a person on request. bot will be afk standing behind raid so when some dies and gets rezzed they

Deadperson01, tells botbuffer01 "virtue"


and botbuffer01 targets him and casts virtue


would be for a shaman beast cleric and druid.


Thanks for anyoes tme that help out here.

in_training
Craptastic
Posts: 115
Joined: Fri Oct 10, 2003 8:25 am

Post by in_training » Mon Nov 24, 2003 11:44 pm

I have all those classes, level 65, so I'll get to work on it.

You just want it so ANYONE can tell the bot to buff them?

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Tue Nov 25, 2003 4:56 am

Yea Traning i use mose those classes as buff bitches for raids . anyone not just master or set people get buffed but anyone that says te key word

User avatar
Elric
Cheese Whore
Cheese Whore
Posts: 466
Joined: Sun Nov 23, 2003 12:31 am
Location: Tampa, Fl
Contact:

Post by Elric » Tue Nov 25, 2003 6:35 pm

Actually, that would be kinda nifty. Especially if you could setup a way to use an alias or five. Hehe. You gotta remember, some folks (if you're grouped with them, and they know that it's a bot and how to use it) can't speelll... Or might not realize to type in "Spell name" if it's more than one word.

:-) .. But it's a damn good idea.

Never could find a buffer to do that, really. Have someone hail you, or send you a tell asking for a buff, and actually have the bot respond. Guess I'm missing out. :-\
-Elric

Raebis

autotell n stuff

Post by Raebis » Sat Nov 29, 2003 3:43 pm

Code: Select all

sub Event_chat(MsgType,MsgFrom,MsgText) 
   /if @MsgType==tell {
      /if @MsgText=="heal" {
         /target @MsgFrom
         /cast 1
      }
      /if @MsgText=="valor" {
         /target @MsgFrom
         /cast 2
      }
      .
      .
      .
   }
/return 
something like that mite work

Drunkensloth
a lesser mummy
a lesser mummy
Posts: 67
Joined: Sat Oct 18, 2003 2:54 am

Post by Drunkensloth » Sun Nov 30, 2003 3:21 am

depends on what chat you want to use but yeah i guess that could work...

if you wanted to you could have it respond to being told help which would respond with what buffs you could get and the keywords its not hard... but if i am gonna do this for you, you need to post or PM me and ill do it. I need a little more info about exactly what you want it to do. Peace out
And here I was clicking like a sucker!

User avatar
Elric
Cheese Whore
Cheese Whore
Posts: 466
Joined: Sun Nov 23, 2003 12:31 am
Location: Tampa, Fl
Contact:

Post by Elric » Sun Nov 30, 2003 2:47 pm

Drunkensloth, would it be hard to do something like..

P1: Hail, Toon.
P2: Hail, P1.
P1: SLN, SS, Regen.
P2: Casting: Skin like Nature, Storm Strength, and Chloroplast...
Insufficient Mana to cast spell
P2: Hold on, medding a sec.
*Sit, med, wait till a certain amount of mana is there, stand, cast.*
P1 is too far away, bla bla.
P2: Don't run away if you want me to cast on you, fool-boy.
*Sit, med, wait for another hail*


Or something like that. Just a simple, you hail me, ask for a buff, I give it to you, kinda thing? I like to spend my free time buffing newbie folks in GFay and whatnot. And to be able to get a cup of coffee would be nice. Heh.
-Elric

Wolfpit_64
decaying skeleton
decaying skeleton
Posts: 8
Joined: Sun Nov 30, 2003 11:52 pm

Post by Wolfpit_64 » Sun Nov 30, 2003 11:55 pm

that would be a great thing to have if you could make it respond to guild members only. I would seriously force our guild chanter to put that on when he's afk.

User avatar
Elric
Cheese Whore
Cheese Whore
Posts: 466
Joined: Sun Nov 23, 2003 12:31 am
Location: Tampa, Fl
Contact:

Post by Elric » Tue Dec 02, 2003 6:00 pm

So is this something that's possible? Or are we blowing in the wind here. :-P
-Elric

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Tue Dec 02, 2003 7:38 pm

Drunk is working on it said take him a few days =)

User avatar
Elric
Cheese Whore
Cheese Whore
Posts: 466
Joined: Sun Nov 23, 2003 12:31 am
Location: Tampa, Fl
Contact:

Post by Elric » Tue Dec 02, 2003 8:19 pm

Ah. Alright. I never got the PM, so I didn't know.

Hehe. Thanks.
-Elric

notadruid
a ghoul
a ghoul
Posts: 143
Joined: Mon Dec 08, 2003 6:02 pm

Post by notadruid » Sat Dec 13, 2003 3:52 pm

Definitely looks possible

User avatar
ieatacid
Developer
Developer
Posts: 2727
Joined: Wed Sep 03, 2003 7:44 pm

Post by ieatacid » Sat Dec 13, 2003 5:11 pm


Disgruntled Postal Worker
decaying skeleton
decaying skeleton
Posts: 3
Joined: Mon Dec 15, 2003 1:10 am

Buff Bot

Post by Disgruntled Postal Worker » Mon Dec 15, 2003 1:13 am

Here try this, I haven't run it but it should work theoriticly.

Code: Select all

|**
buffbot.mac
Buff Bot Version 1.0
By the Disgruntled Postal Worker

This is a fairly intuiative little buff bot I wrote
after someone on the message board was asking for one

Usage = /macro buffbot.mac <BotName> <ControllerName> <Buff1> <Slot1> <Buff2> <Slot2> <Buff3> <Slot3> <Buff4> <Slot4> <Buff5> <Slot5> <Buff6> <Slot6> <Buff7> <Slot7> <Buff8> <Slot8>

Written Monday 15 December, 2003
**|

#event Fizzle "Your spell fizzles!" 
#event OutOfMana "Insufficient Mana to cast this spell!" 
#event OutOfRange "Your target is out of range, get closer!" 

Sub Main
	|** This first section is where we declare all the variables for the macro **|
	/declare controller global
	/declare botname global
	/declare buff1 global
	/declare buff2 global
	/declare buff3 global
	/declare buff4 global
	/declare buff5 global
	/declare buff6 global
	/declare buff7 global
	/declare buff8 global
	/declare slot1 global
	/declare slot2 global
	/declare slot3 global
	/declare slot4 global
	/declare slot5 global
	/declare slot6 global
	/declare slot7 global
	/declare slot8 global
	/declare follow global
	|** 
	We now check the parameters passed to the macro to ensure they are correct and put
	these parameters into the proper variables.
	 **|
	/if ($defined(Param0)==false || $ucase("@Param0")=="HELP") 
	{ 
        	/call Help 
        	/endmacro    
	}
	/varset botname @Param0
	/if ($defined(Param1)==false) 
	{ 
        	/call Help 
        	/endmacro    
	}
	/varset controller @Param1
	/if ($defined(Param2)==false) 
	{ 
        	/call Help 
        	/endmacro    
	}
	/varset buff1 @Param2
	/if ($defined(Param3)==false) 
	{ 
        	/call Help 
        	/endmacro    
	}
	/varset slot1 @Param3
	/if ($defined(Param4)==true) 
	{ 
        	/if ($defined(Param5)==false) 
		{ 
        		/call Help 
        		/endmacro    
		}
        	/varset buff2 @Param4
        	/varset slot2 @Param5
	}
	/if ($defined(Param6)==true) 
	{ 
        	/if ($defined(Param7)==false) 
		{ 
        		/call Help 
        		/endmacro    
		}
        	/varset buff3 @Param6
        	/varset slot3 @Param7
	}
	/if ($defined(Param8)==true)
	{ 
        	/if ($defined(Param9)==false) 
		{ 
        		/call Help 
        		/endmacro    
		}
        	/varset buff4 @Param8
        	/varset slot4 @Param9
	}
	/if ($defined(Param10)==true)
	{ 
        	/if ($defined(Param11)==false) 
		{ 
        		/call Help 
        		/endmacro    
		}
        	/varset buff5 @Param10
        	/varset slot5 @Param11
	}
	/if ($defined(Param12)==true) 
	{ 
        	/if ($defined(Param13)==false) 
		{ 
        		/call Help 
        		/endmacro    
		}
        	/varset buff6 @Param12
        	/varset slot6 @Param13
	}
	/if ($defined(Param14)==true) 
	{ 
        	/if ($defined(Param15)==false) 
		{ 
        		/call Help 
        		/endmacro    
		}
        	/varset buff7 @Param14
        	/varset slot7 @Param15
	}
	/if ($defined(Param16)==true) 
	{ 
        	/if ($defined(Param17)==false) 
		{ 
        		/call Help 
        		/endmacro    
		}
        	/varset buff8 @Param16
        	/varset slot8 @Param17
	}
	/varset follow 0
	|**
	Once the variables have been set we do a small loop to check for any chat messages each second.
	I have also added the sit command to make sure the buff bot is sitting and medding while not buffing
	**|
	:MainLoop
	/target "@botname"
	/if ($char(state)=="Stand")
	{
		/sit
	}
	/doevents
	/delay 1s
	/goto :MainLoop
	:EndMacro
/return
	
Sub Event_Chat(ChatType,Sender,ChatText)
	/if "@Sender"=="@controller"
	{
		/if "@ChatText"~~"camp"
		{
			/sit
			/camp desktop
		}
		/if "@ChatText"~~"follow"
		{
			/if "@follow"==0
			{
				/varset follow 1
				/call FollowMe
			}else
			{
				/varset follow 0
			}
		}
		/if "@ChatText"~~"commands"
		{
			/call ControlCommands
		}
	}
	/if "@ChatText"~~"@buff1"
	{
		:cast01
		/if ($char(state)=="Sit")
		{
			/stand
		}
		/tell "@Sender" "Alright, I am now casting @buff1 on you, be ready !"
		/target "@Sender"
		/cast "@slot1"
		/doevents Fizzle
		/doevents OutOfMana
		/doevents OutOfRange
		/if "$return"=="cast_oom" /goto :cast01
		/if "$return"=="cast_fizzle" /goto :cast01
		/sit
		/delay 1s
	}
	/if "@ChatText"~~"@buff2"
	{
		:cast02
		/if ($char(state)=="Sit")
		{
			/stand
		}
		/tell "@Sender" "Alright, I am now casting @buff2 on you, be ready !"
		/target "@Sender"
		/cast "@slot2"
		/doevents Fizzle
		/doevents OutOfMana
		/doevents OutOfRange
		/if "$return"=="cast_oom" /goto :cast02
		/if "$return"=="cast_fizzle" /goto :cast02
		/sit
		/delay 1s
	}
	/if "@ChatText"~~"@buff3"
	{
		:cast03
		/if ($char(state)=="Sit")
		{
			/stand
		}
		/tell "@Sender" "Alright, I am now casting @buff3 on you, be ready !"
		/target "@Sender"
		/cast "@slot3"
		/doevents Fizzle
		/doevents OutOfMana
		/doevents OutOfRange
		/if "$return"=="cast_oom" /goto :cast03
		/if "$return"=="cast_fizzle" /goto :cast03
		/sit
		/delay 1s
	}
	/if "@ChatText"~~"@buff4"
	{
		:cast04
		/if ($char(state)=="Sit")
		{
			/stand
		}
		/tell "@Sender" "Alright, I am now casting @buff4 on you, be ready !"
		/target "@Sender"
		/cast "@slot4"
		/doevents Fizzle
		/doevents OutOfMana
		/doevents OutOfRange
		/if "$return"=="cast_oom" /goto :cast04
		/if "$return"=="cast_fizzle" /goto :cast04
		/sit
		/delay 1s
	}
	/if "@ChatText"~~"@buff5"
	{
		:cast05
		/if ($char(state)=="Sit")
		{
			/stand
		}
		/tell "@Sender" "Alright, I am now casting @buff5 on you, be ready !"
		/target "@Sender"
		/cast "@slot5"
		/doevents Fizzle
		/doevents OutOfMana
		/doevents OutOfRange
		/if "$return"=="cast_oom" /goto :cast05
		/if "$return"=="cast_fizzle" /goto :cast05
		/sit
		/delay 1s
	}
	/if "@ChatText"~~"@buff6"
	{
		:cast06
		/if ($char(state)=="Sit")
		{
			/stand
		}
		/tell "@Sender" "Alright, I am now casting @buff6 on you, be ready !"
		/target "@Sender"
		/cast "@slot6"
		/doevents Fizzle
		/doevents OutOfMana
		/doevents OutOfRange
		/if "$return"=="cast_oom" /goto :cast06
		/if "$return"=="cast_fizzle" /goto :cast06
		/sit
		/delay 1s
	}
	/if "@ChatText"~~"@buff7"
	{
		:cast07
		/if ($char(state)=="Sit")
		{
			/stand
		}
		/tell "@Sender" "Alright, I am now casting @buff7 on you, be ready !"
		/target "@Sender"
		/cast "@slot7"
		/doevents Fizzle
		/doevents OutOfMana
		/doevents OutOfRange
		/if "$return"=="cast_oom" /goto :cast07
		/if "$return"=="cast_fizzle" /goto :cast07
		/sit
		/delay 1s
	}
	/if "@ChatText"~~"@buff8"
	{
		:cast08
		/if ($char(state)=="Sit")
		{
			/stand
		}
		/tell "@Sender" "Alright, I am now casting @buff8 on you, be ready !"
		/target "@Sender"
		/cast "@slot8"
		/doevents Fizzle
		/doevents OutOfMana
		/doevents OutOfRange
		/if "$return"=="cast_oom" /goto :cast08
		/if "$return"=="cast_fizzle" /goto :cast08
		/sit
		/delay 1s
	}
	/if "@ChatText"~~"Available"
	{
		/call OfferedBuffs
	}
/return

Sub FollowMe
      :LoopFollow 
      /if n $target(distance)>10 /sendkey down up 
      /if n $target(distance)<10 /sendkey up up 
      /face fast 
      /doevents 
      /goto :LoopFollow 
      :EndFollow
/return

Sub Help
	/echo Incorrect Paramaters
	/echo --------------------
	/echo To start the buff bot you must use the following:
	/echo
	/echo /macro buffbot <BotName> <ControllerName> <Buff1> <Slot1> <Buff2> <Slot2> ect.
	/echo eg. /macro buffbot DaBuffBot Disgruntled Symbol 2 Valor 5 Stamina 8
	/echo
/return

Sub ControlCommand
	/tell "@Sender" "-------- Buff Bot Controler Commands ---------"
	/tell "@Sender" ""
	/tell "@Sender" " camp --- This will camp the buff bot out"
	/tell "@Sender" " follow --- This will make the buff bot follow you"
/return

Sub OfferedBuffs
	/tell "@Sender" "Hello, currently the following buffs are on offer"
	/tell "@Sender" "1) @buff1"
	/if @buff2 > 0
	{
		/tell "@Sender" "2) @buff2"
	}
	/if @buff3 > 0
	{
		/tell "@Sender" "3) @buff3"
	}
	/if @buff4 > 0
	{
		/tell "@Sender" "4) @buff4"
	}
	/if @buff5 > 0
	{
		/tell "@Sender" "5) @buff5"
	}
	/if @buff6 > 0
	{
		/tell "@Sender" "6) @buff6"
	}
	/if @buff7 > 0
	{
		/tell "@Sender" "7) @buff7"
	}
	/if @buff8 > 0
	{
		/tell "@Sender" "8) @buff8"
	}
	/tell "@Sender" "Send me a tell with the buff you want cast on you !"
/return

Sub Event_Fizzle
/return cast_fizzle

Sub Event_OutOfMana
	/tell "@Sender" "I'm out of mana at the moment, Let me med for 10 seconds and I'll try again !"
	/sit
	pause 10s
	/stand
/return cast_oom

Sub Event_OutOfRange
	/tell "@Sender" "Your Out of Range ! Send you buff request when you get closer to me ! I'm at $char(x),$char(y)"
/return

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Mon Dec 15, 2003 8:08 am

is that buffbot limited to just the one person? if so not what i need