Assist_Rutine.inc

A forum for macro code snippets to be used in writing other macros. Post routines or .inc files here only, completed macros go to the Macro Depot. MQ2Data format only!

Moderator: MacroQuest Developers

User avatar
A_Enchanter_00
a snow griffon
a snow griffon
Posts: 473
Joined: Mon Dec 12, 2005 4:37 pm
Location: A server near you

Assist_Rutine.inc

Post by A_Enchanter_00 » Tue Dec 13, 2005 11:39 pm

Changed onlyType to targetSelf when using mode 1 and 4 when you want to make 100 % sure you have correct target

Changed changed so default unly asisting on npc / pet's

Added: /mainAssist name [name] | mode [0-4]

Code: Select all

|**************************************************************************************************
| Assist_Rutine.inc
|
| Written by A_Enchanter_00
| Last Modified 01/22/2006
|
| Features:
|	***********************************************************************************************
|   ** IMPORTANT: You Can Assign in your main macro
|   **	${isPaused} is Used For /return if macro is paused!
|   **  --		/declare isPaused bool outer TRUE / FALSE
|   ** 	${AssistMode} is to define the Mode on how to assist
|   **	AssistMode 0	OFF
|   **	AssistMode 1	Assist in order Group / Raid / Normal
|   **	AssistMode 2	Group Assist Mode
|   **	AssistMode 3	Raid Asssist Mode
|   **	AssistMode 4	Normal Assist Mode
|   **  --		/declare AssistMode int outer 0 - 3
|   **	Name of MainAssist, used ONLY when running AssistMode 0 and 3
|   **  --		/declare MainAssist string outer NameOfMainAssist
|   **	The ID off The Last / Curent MainAssist's Target ID
|	** 	--		/declare MainAssistTarget int outer 0
|	***********************************************************************************************
| Usage:
|   **  /call Assist						<- Assist whatever the is on target NOTE: AssistMode
|
| Events:
|	ADD : /doevents SetMainAssist OR /doevents
|	**	/mainAssist name [name] | mode [0-4]
***************************************************************************************************|
#Event SetMainAssist	"[MQ2] SetMainAssist #1# #2#"

Sub Assist(bool targetSelf)	
	/if ( !${Defined[AssistMode]} ) /declare AssistMode int outer 0
	/if ( !${Defined[MainAssist]} ) /declare MainAssist string outer NULL
	/if ( !${Defined[MainAssistTarget]} ) /declare MainAssistTarget int outer 0
	
	/if ( ${isPaused} || ${Me.Casting.ID} || !${AssistMode} ) /return

	/if ( ( ${AssistMode} == 1 || ${AssistMode} == 2 ) && ${Me.GroupAssistTarget.ID} && ${Me.GroupAssistTarget.Distance} < 250 ) {
		/if ( ${Me.GroupAssistTarget.Type.NotEqual[NPC]} || ${Me.GroupAssistTarget.Type.NotEqual[PET]} ) {
			/if ( ${Me.GroupAssistTarget.Master.ID} && ${Me.GroupAssistTarget.Master.Type.NotEqual[PC]} ) {
				/target id ${Me.GroupAssistTarget.ID}
				/varset MainAssistTarget ${Me.GroupAssistTarget.ID}
			} else {
				/target id ${Me.GroupAssistTarget.ID}
				/varset MainAssistTarget ${Me.GroupAssistTarget.ID}
			}
		} else {
			/varset MainAssistTarget 0		
		}
	} else /if ( ( ${AssistMode} == 1 || ${AssistMode} == 3 ) && ( ${Me.RaidAssistTarget[1].ID} || ${Me.RaidAssistTarget[2].ID} || ${Me.RaidAssistTarget[3].ID} ) ) {
		/declare i int local
		/for i 1 to 3
			/if ( ${Me.RaidAssistTarget[${i}].ID} && ( ${Me.RaidAssistTarget[${i}].Type.Equal[NPC]} || ${Me.RaidAssistTarget[${i}].Type.Equal[PET]} ) ) {			
				/if ( ${Me.RaidAssistTarget[${i}].Master.ID} && ${Me.RaidAssistTarget[${i}].Master.Type.NotEqual[PC]} ) {
					/target id ${Me.RaidAssistTarget[${i}].ID}
					/varset MainAssistTarget ${Me.RaidAssistTarget[${i}].ID}
					/return					
				} else {
					/target id ${Me.RaidAssistTarget[${i}].ID}
					/varset MainAssistTarget ${Me.RaidAssistTarget[${i}].ID}
					/return
				}
			} else /if ( !${Me.RaidAssistTarget[${i}].ID} ) {
				/varset MainAssistTarget 0
			}
		/next i
	} else /if ( ( ${AssistMode} == 1 || ${AssistMode} == 4 ) && ${Spawn[pc ${MainAssist}].ID} ) {
		/if ( ${targetSelf} ) /target myself
		/assist ${MainAssist}
		/if ( ${targetSelf} ) {
			/delay 10 ${Target.ID} != ${Me.ID}
		} else {
			/delay 10
		}
		/if ( ${Target.ID} && ${Target.ID} != ${Me.ID} ) {		
			/if ( ${Target.Type.Equal[NPC]} || ${Target.Type.Equal[PET]} ) {			
				/if ( ${Target.Master.ID} && ${Target.Master.Type.NotEqual[PC]} ) {
					/varset MainAssistTarget ${Target.ID}		
				} else {
					/varset MainAssistTarget ${Target.ID}		
				}
			} else {
				/varset MainAssistTarget 0
				/return
			}		
		} else {
			/varset MainAssistTarget 0
		}
	} else {
		/varset MainAssistTarget 0
	}
/return

|************************
	   Events
************************|
Sub Event_SetMainAssist(string Line, string Command, string Value)
	/if ( !${Defined[AssistMode]} ) /declare AssistMode int outer 0
	/if ( !${Defined[MainAssist]} ) /declare MainAssist string outer NULL
	/if ( !${Defined[MainAssistTarget]} ) /declare MainAssistTarget int outer 0
	/if ( ${Command.Find[mode]} ) {
		/if ( ${Int[${Value}]} < 5 ) {
			/varset AssistMode ${Int[${Value}]}
		} else {
			/varset AssistMode 0
		}
	} else /if ( ${Command.Find[name]} ) {
		/if ( ${Defined[Value]} ) /varset MainAssist ${Value}
	} else {
		/echo **  Usage: /mainassist name [name] | mode [0-3] **
	}
		/echo **** Status Assist **********************************************************
	/if ( ${AssistMode} == 1 ) {
		/echo Assisting: In Order Group | Raid 1-3 | Normal @ ${MainAssist}% target health!
	} else /if ( ${AssistMode} == 2 ) {
		/echo Assisting: Group
	} else /if ( ${AssistMode} == 3 ) {
		/echo Assisting: Raid 1 - 3
	} else /if ( ${AssistMode} == 4 ) {
		/echo Assisting: Normal @ ${MainAssist}% target health!
	}
		/echo ******************************************************************************
/return
A_Enchanter_00

Author of:
MQ2AdvPath / ISXEQAdvPath
MQ2Cast ( Author also s0rcier )
MQ2CastTimer
MQ2VoiceCommand

[quote]
If you like my work and want to give somthing back, just click [url=https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=aenchanter00%40gmail%2ecom&item_name=A_Enchanter_00&no_shipping=2&no_note=1&tax=0&currency_code=USD&lc=DK&bn=PP%2dDonationsBF&charset=UTF%2d8][color=green]HERE[/color][/url] to use PAYPAL.
[/quote]

User avatar
A_Enchanter_00
a snow griffon
a snow griffon
Posts: 473
Joined: Mon Dec 12, 2005 4:37 pm
Location: A server near you

Post by A_Enchanter_00 » Sun Jan 22, 2006 12:26 am

updated
A_Enchanter_00

Author of:
MQ2AdvPath / ISXEQAdvPath
MQ2Cast ( Author also s0rcier )
MQ2CastTimer
MQ2VoiceCommand

[quote]
If you like my work and want to give somthing back, just click [url=https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=aenchanter00%40gmail%2ecom&item_name=A_Enchanter_00&no_shipping=2&no_note=1&tax=0&currency_code=USD&lc=DK&bn=PP%2dDonationsBF&charset=UTF%2d8][color=green]HERE[/color][/url] to use PAYPAL.
[/quote]