Autofire Macro 1.2E

A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.

Moderator: MacroQuest Developers

Gellenole
orc pawn
orc pawn
Posts: 20
Joined: Wed Oct 29, 2003 10:28 pm

Autofire Macro 1.2E

Post by Gellenole » Mon Nov 03, 2003 11:19 pm

I hope you all enjoy this macro... please give some feedback as this is my very 1st macro and my very 1st complete macro that does extra things.

Note: You need to have EQ/AM3 + Spirit of Eagle to have this macro work properly.

Code: Select all

|Archery Macro v. 1.2E
|Archery Assist Macro.
|Gellenole's Autofire Archery Macro
|Email: Drmchaser5@yahoo.com
|
|Forenote:  	This macro was created with a creative purpose.
|		It only has recreational purpose. Please don't abuse it!
|		I would appreciate it if no one modifies my coding and keep
|		it as it is. YOU'RE NOT ALLOWED TO PASS THIS CODE TO OTHERS
|		AS YOUR OWN! PLEASE GIVE CREDIT TO THE CREATOR.
|
|		When I created this macro, it was because I was fed up with
|		stupid FAQ's about how to program your joystick to do auto
|		fire.  I thought that was stupid personally and I still do!
|		I'm glad that I am able to write this for all to enjoy.
|		From now on I want this code to stay as original as possible
|		please again, don't modify the code.  I spent a lot of time
|		and this is my 1st coding.  Also don't give it away without
|		giving credit.
|
|
|HISTORY
|Version 1.2E
|	- Never forget Snare again (uses Ensnare)
|	- Will do checks for SoE + Eagle Eye + Health + Self haste
|	- Events added to close Macro if player died.
|Future - Plans to add health checks for whole group and cast until group 
|	  health is full or until mana is depleated.
|Version 1.0d
|	- Macro will keep running.
|	- Macro Contains enough info in sub routines to identify NPC from PC
|	- Macro also is used to assist the main assist
|	  (restart macro to read just tank)
|	- Macro Contains checks for SoE + Eagle Eye. Will recast if faded.(Buggy)
|Version 1.0c
|	- Fixed the macro to end when the mob dies. (Turn off macro to stop)
|Version 1.0b
|	- Fixed having the user to fire 1st arrow for macro to run
|	- Still need to fix how to turn it off once mob is dead
|Version 1.0a
|	- Need user intervention to Fire 1st arrow for the macro to work
|	- Need user intervention to turn off the macro even after mob is dead
|
|	Usage:  /Macro Archery <tank name>
|
|----------------------------------------------------------------------------|
#Event EAGLEEYE "The avian presence departs."
#Event SPIRITOF "The avian spirit departs."
#Event SLAINBY  "You have been slain by "
#Event FIZZLE	"Your spell Fizzles!"
#Event HASTE	"The quickening spirit departs."

#turbo infinite

Sub Main
	/ECHO  =+= Gellenole's Autofire Macro Enabled =+=
	/ECHO  =+= Version Realease: 1.2E 	      =+=
	/ECHO  =+= Usage:  /Macro Archery <Tank name> =+=
	/declare Fightswitch global
	/declare tankname global
	/declare CastsoE_Flag global
	/declare Casteagle_Flag global
	/declare Fizz_Flag global
	/declare Nalot_Flag global
	/declare CastTimer timer
	/varset tankname @Param0
	/varset Casteagle_Flag 0
	/varset CastsoE_Flag 0
	/varset Fizz_Flag 0
	/varset Nalot_Flag 0
	:Mainloop 
	/call Fightswitch
	/doevents
	/delay 1s
	/goto :mainloop 
/return

Sub Healthcheck 
	/if n @CastTimer>0 /return 
		/if n $char(hp,pct)<75 { 
			/if $combat!="FALSE" { 
				/if $target()=="FALSE" { 
					/cast "Chloroblast"
					/varset CastTimer 3s 
         			} 
			} 
		}
/return 

|the health check isn't working atm... all else should still run fine... delete!

| --> This subset is a switch to check for mob target
Sub Fightswitch
	/Echo Your Main Tank is @tankname
	:stopfiring
	/doevents
	/assist @tankname
	/delay 5
	/if "$target(type)"=="NPC" { 
		/Echo Autofire Engaged
		/call Arrow
	}
	
	/if "$target(type)"!="NPC" {
		/delay 10
		/goto :stopfiring
	}

	/if "$target()"=="FALSE" {
		/delay 5
		/goto :stopfiring
	}
/return 

| --> Loop for arrows
Sub Arrow 
	:arrowloop
	/doevents
	/if "$target()"=="TRUE" { 
		/face fast
		/if n $target(distance)>175 /sendkey down up
		/if n $target(distance)<130 /sendkey down down
		/if n $target(distance)<155 /sendkey up up
		/if n $target(distance)<115 /sendkey up down
		/delay 3 
		/press 2		|Change arrow button to your own
	}
	
	/if "$target(type)"!="NPC" {
		/delay 10
		/call Fightswitch
	}

	/if "$target()"=="FALSE" {
		/delay 5
		/call Fightswitch
	}
	/goto :arrowloop
/return

Sub Spellcast
	:recast
	/doevents
	/if n @CastTimer>0 /return
		/if @Casteagle_Flag=="1" {
			/cast "Eagle Eye"
			/varset CastTimer 4.1s
			/if @Fizz_Flag=="1" {
				/goto :recast
			}
			/varset Casteagle_Flag 0
			/varset Fizz_Flag 0
		}

	/if n @CastTimer>0 /return
		/if @CastsoE_Flag=="1" {
			/press tab
			/cast "Spirit of Eagle"
			/varset CastTimer 3.8s
			/if @Fizz_Flag=="1" {
				/goto :recast
			}
			/varset CastsoE_Flag 0
			/varset Fizz_Flag 0
		}

	/if n @CastTimer>0 /return
		/if $target(type)=="NPC" {
			/if $target(hp,pct)<=80 {
				/cast "Ensnare"
				/varset CastTimer 2.0s
				/if @Fizz_Flag=="1" {
					/goto :recast
				}
				/varset Fizz_Flag 0
			}
		}
	/if n @CastTimer>0 /return
		/if @Nalot_Flag=="1" {
			/cast item "Eyepatch of Plunder"
			/varset CastTimer 3.5s
		}
		/varset Nalot_Flag 0	
/return

| --> EVENTS DONE by #EVENT

Sub Event_EAGLEEYE
	/Echo (re)casting Eagle Eye
	/varset Casteagle_Flag 1
	/call Spellcast
/return 

Sub Event_SPIRITOF
	/Echo (re)casting Spirit of Eagle
	/varset CastsoE_Flag 1
	/call Spellcast
/return	

Sub Event_FIZZLE
	/varset Fizz_Flag 1
	/call Spellcast
/return

Sub Event_HASTE
	/Echo (re)casting Captain Nalot's Quickening
	/varset Nalot_Flag 1
	/call Spellcast
/return

Sub Event_SLAINBY
	/Echo Slained Event Entered
	/endmacro
/return
| --> End of Events

Guest

Post by Guest » Tue Nov 04, 2003 1:38 pm

none of the casting features dont work....

Doodman
a ghoul
a ghoul
Posts: 124
Joined: Thu Jan 02, 2003 12:07 pm

Post by Doodman » Tue Nov 04, 2003 1:51 pm

Anonymous wrote:none of the casting features dont work....
Well, that would be a good thing then, right?

I just love the double-negative.

None of your english is not bad.

RogerWilco
a ghoul
a ghoul
Posts: 86
Joined: Thu Aug 28, 2003 4:05 am

Post by RogerWilco » Wed Nov 05, 2003 1:32 pm

wow talk about proper usage of the english Language....


but the point is valid.... none of the casting portions of this macro works

User avatar
Curious
a ghoul
a ghoul
Posts: 88
Joined: Wed Aug 27, 2003 5:19 am

Post by Curious » Thu Nov 06, 2003 12:47 am

I find it interesting the number of times you stress that no-one is allowed to modify your code ... after you post it to a message board with the description of:
MacroQuest::Macro Depot
A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.
(boldface text added by myself, not in original description)

RogerWilco
a ghoul
a ghoul
Posts: 86
Joined: Thu Aug 28, 2003 4:05 am

Post by RogerWilco » Thu Nov 06, 2003 8:07 am

Good point Curious... I know I play a Ranger and already use an auto-fire macro... this macro seems (in principle) very usefull but since he stresses the fact that no-one can modify it I guess it can not be twiked then :cry:

Stogar
a lesser mummy
a lesser mummy
Posts: 58
Joined: Mon Oct 13, 2003 12:02 pm

Post by Stogar » Thu Nov 06, 2003 10:22 am

MacroQuest::Macro Depot
A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.

Since it was indeed posted here I assume that he just forgot to erase those comments.

Posted on a PUBLIC board, macro code that uses GPL software....come on, don't modify?

I totally agree that credit should always be given if you modify someone's code.


[/b]

Gellenole's Ghost

Post by Gellenole's Ghost » Thu Nov 06, 2003 3:23 pm

yeah I forgot to erase...
mod for your own use... just don't distribute the mod and claim as your own ^^

Gellenole
orc pawn
orc pawn
Posts: 20
Joined: Wed Oct 29, 2003 10:28 pm

BTW new update... still sameversion

Post by Gellenole » Thu Nov 06, 2003 3:26 pm

same version just fixed the recasting

Code: Select all

|Archery Macro v. 1.2E
|Archery Assist Macro.
|Gellenole's Autofire Archery Macro
|
|Forenote:  	This macro was created with a creative purpose.
|		Mod all you want... Just don't distribute and claim it as
|		your own.  
|
|
|HISTORY
|Version 1.2E
|	- Never forget Snare again (uses Ensnare)
|	- Will do checks for SoE + Eagle Eye + Health + Regrowth + Self haste
|	- Events added to close Macro if player died.
|	- Events will ensure you keep haste on yourself 100% of the time
|Future - Plans to add health checks for whole group and cast until group 
|	  health is full or until mana is depleated.
|Version 1.0d
|	- Macro will keep running.
|	- Macro Contains enough info in sub routines to identify NPC from PC
|	- Macro also is used to assist the main assist
|	  (restart macro to read just tank)
|	- Macro Contains checks for SoE + Eagle Eye. Will recast if faded.(Buggy)
|Version 1.0c
|	- Fixed the macro to end when the mob dies. (Turn off macro to stop)
|Version 1.0b
|	- Fixed having the user to fire 1st arrow for macro to run
|	- Still need to fix how to turn it off once mob is dead
|Version 1.0a
|	- Need user intervention to Fire 1st arrow for the macro to work
|	- Need user intervention to turn off the macro even after mob is dead
|
|	Usage:  /Macro Archery <tank name>
|
|----------------------------------------------------------------------------|
#Event EAGLEEYE "The avian presence departs."
#Event EAGLESUC "Your eyes sharpen, with an aura of avian presence."
#Event SPIRITOF "The avian spirit departs."
#Event SPIRISUC "Your body pulses with an avian spirit."
#Event REGROWTH	"You have stopped regenerating."
#Event REGROSUC	"You begin to regenerate."
#Event HASTE	"The quickening spirit departs."
#Event HASTSUC	"You are filled by the spirit of water."
#Event HASTE_E	"Your restless nature fades."
#Event HASTE_S	"Your speed fades."
#Event HASTE_S2 "Your speed returns to normal."
#Event SLAINBY  "You have been slain by "

#turbo infinite

Sub Main
	/ECHO  =+= Gellenole's Autofire Macro Enabled =+=
	/ECHO  =+= Version Realease: 1.2E =+=
	/ECHO  =+= Usage:  /Macro Archery <Tank name> =+=
	/declare tankname global
	/declare CastsoE_Flag global
	/declare Casteagle_Flag global
	/declare Fizz_Flag global
	/declare Nalot_Flag global
	/declare Castreg_Flag global
	/varset tankname @Param0
	/varset Casteagle_Flag 0
	/varset Castreg_Flag 0
	/varset CastsoE_Flag 0
	/varset Fizz_Flag 0
	/varset Nalot_Flag 0
	:Mainloop 
	/call Combatcheck
	/doevents
	/delay 1s
	/goto :mainloop 
/return

| --> This sub command is a switch to check for mob target
| --> This sub command also checks for your own health
Sub Combatcheck
	/Echo Your Main Assist is @tankname
	:stopfiring
	/doevents
	/assist @tankname
	/delay 15
	/if "$target(type)"=="NPC" { 
		/Echo Autofire Engaged
		/call Arrow
	}
	
	/if "$target(type)"!="NPC" {
		/delay 10
		/goto :stopfiring
	}

	/if "$target()"=="FALSE" {
		/delay 5
		/goto :stopfiring
	}

	:reheal
	/doevents
	/if n $char(hp,pct)<75 { 
		/if $combat!="FALSE" { 
			/if $target()=="FALSE" {
				/press tab 
				/cast "Chloroblast"
				/delay 2.4s
				/goto :reheal
        		}
		} 
	}
/return 

| --> Loop for arrows
| --> This loop also checks for snaring the mob if under 85%
Sub Arrow 
	:arrowloop
	/doevents
	/if "$target()"=="TRUE" { 
		/face fast
		/if n $target(distance)>90 /sendkey down up
		/if n $target(distance)<85 /sendkey down down
		/if n $target(distance)<100 /sendkey up up
		/if n $target(distance)<75 /sendkey up down
		/delay 3 
		/press 2		|Change arrow button to your own
	}

	/if "$target(type)"!="NPC" {
		/delay 10
		/call Combatcheck
	}

	/if "$target()"=="FALSE" {
		/delay 5
		/call Combatcheck
	}

	:resnare
	/doevents
	/if $target(type)=="NPC" {
		/if $target(hp,pct)>=82 {
			/if $target(hp,pct)<=85 {
				/Echo Ensnared: $target(name)
				/cast "Ensnare"
				/delay 1.8s
				/goto :resnare
			}
		}
	}
	/goto :arrowloop
/return

Sub Spellcast
	:recheck
	/doevents
	/if @Casteagle_Flag=="1" {
		/cast "Eagle Eye"
		/delay 4s
	}

	/if @CastsoE_Flag=="1" {
		/press tab
		/cast "Spirit of Eagle"
		/delay 3.6s
	}

	/if @Castreg_Flag=="1" {
		/press tab
		/cast "Regrowth"
		/delay 4.8s
	}

	/if @Nalot_Flag=="1" {
		/cast item "Eyepatch of Plunder"
		/delay 3.5s
	}
	/goto :recheck
			
/return

| --> EVENTS DONE by #EVENT

Sub Event_EAGLEEYE
	/Echo (re)casting Eagle Eye
	/varset Casteagle_Flag 1
	/call Spellcast
/return

Sub Event_EAGLESUC
	/Echo Eagle Eye Successfully casted
	/varset Casteagle_Flag 0
/return

Sub Event_SPIRITOF
	/Echo (re)casting Spirit of Eagle
	/varset CastsoE_Flag 1
	/call Spellcast
/return	

Sub Event_SPIRISUC
	/Echo Spirit of Eagle Successfully casted
	/varset CastsoE_Flag 0
/return

Sub Event_REGROWTH
	/Echo (re)casting Regrowth
	/varset Castreg_Flag 1
	/call Spellcast
/return

Sub Event_REGROSUC
	/Echo Regrowth Successfully casted
	/varset Castreg_Flag 0
/return

| -->The 4 haste events is to ensure you to keep haste 100% of the time on yourself.
| -->Only when you begin with selfbuffs
Sub Event_HASTE
	/Echo (re)casting Captain Nalot's Quickening
	/varset Nalot_Flag 1
	/call Spellcast
/return

Sub Event_HASTSUC
	/Echo Captain Nalot's Quickening Successfully casted
	/varset Nalot_Flag 0
/return

| -->These #Events are described as:  E = Enchanter S = Shaman  S2 = Shaman
| -->When these spells fade, it checks whether you are still targetting an NPC (hopefully while in battle)
| -->When the haste fades during battle it will trigger an event and cast your selfhaste item on you
| -->This minimizes the dramatic loss of DPS during the fight.
Sub Event_HASTE_E
	/if $target(type)=="NPC" {
		/Echo (re)casting Captain Nalot's Quickening
		/varset Nalot_Flag 1
		/call Spellcast
	}
/return

Sub Event_HASTE_S
	/if $target(type)=="NPC" {
		/Echo (re)casting Captain Nalot's Quickening
		/varset Nalot_Flag 1
		/call Spellcast
	}
/return

Sub Event_HASTE_S2
	/if $target(type)=="NPC" {
		/Echo (re)casting Captain Nalot's Quickening
		/varset Nalot_Flag 1
		/call Spellcast
	}
/return

Sub Event_SLAINBY
	/Echo Slained Event Entered
	/endmacro
/return
| --> End of Events