Commit 720180f6 authored by Red Bot's avatar Red Bot

Merge branch 'patch-1' into 'master'

Replace KeepToonBuffed.mac

See merge request !14
parents 6a605ef2 4166fd20
|---------------------------------------------------------------------------------
|
| KeepToonBuffed.mac by TreeHuginDruid -- Last Edited 5/16/2017
| KeepToonBuffed.mac by TreeHuginDruid -- Last Edited 5/21/2017
|
| This macro is designed to allow an out of group PowerLeveling toon
| to be able to target members of a low level group, heal,
......@@ -27,7 +27,7 @@ Sub Main
|==================== DO NOT ALTER THESE VALUES ====================
/declare MacroName string outer KeepToonBuffed
/declare KeepToonBuffVer string outer 1.8.3
/declare KeepToonBuffVer string outer 1.8.5
/declare IniFileName string outer ${MacroName}_${Me.CleanName}.ini
/call CreateIni
......@@ -64,6 +64,12 @@ Sub Main
/declare TargetBuffName[${NumberOfBuffs}] string outer
/call LoadIni Buffs TargetBuffName string NULL TargetBuffName
| ################## Set up [Assist] values
/call LoadIni Assist AssistOn int 0
/call LoadIni Assist AssistSpellHelp string "To be used for NON damage ROOT or SNARE spells ONLY!!!!!!"
/call LoadIni Assist AssistSpell string Ensnaring Roots
/call LoadIni Assist AssistPct int 60
/call VersionControl
/call CheckPlugin MQ2Cast
/call CheckPlugin MQ2Moveutils
......@@ -79,7 +85,7 @@ Sub Main
/if (${Defined[SpellSetName]} || ${SpellSetName.NotEqual[null]}) {
/echo Memming spellset (${SpellSetName}).
/memspellset ${SpellSetName}
/delay 5s
/delay 5s
}
|---------------------------------------------------------------------------------
......@@ -87,7 +93,7 @@ Sub Main
/if (${HealsOn}) /call CheckMyHealth
/if (${HealsOn}) /call CheckTargetHealth
/if (${BuffsOn}) /call MaintainTargetBuffs
/if (${BuffsOn}) /call MaintainTargetBuffs
/if (${Me.PctMana}<=${MinManaPct} && !${Me.CombatState.Equal[COMBAT]}) /call CheckMana
/if (${FollowGroup}) /call FollowAround
|Internal second delay to allow for manual moving, prevents constant sit loop if only 1 toon being buffed.
......@@ -197,7 +203,7 @@ Sub CheckMyHealth
/if (${Target.ID}!=${Me.ID}) {
/if (${Debug}) /echo Attempting to target (${Me.CleanName}) for heals!
/squelch /target id ${Me.ID} pc targetable
/delay 15
/delay 10
/casting "${HealSpell}" gem8
/call CheckCasting
/call CheckGlobalCooldown
......@@ -219,7 +225,7 @@ Sub CheckTargetHealth
/if (${Target.ID}!=${Spawn[=${MyBuffTargetName[${i}]}].ID} && ${MyBuffTargetName[${i}].NotEqual[null]}) {
/if (${Debug}) /echo Attempting to target (${MyBuffTargetName[${i}]}) for health check.
/squelch /target id ${Spawn[=${MyBuffTargetName[${i}]}].ID} pc targetable
/delay 15
/delay 10
/if (${Target.ID}!=${Spawn[=${MyBuffTargetName[${i}]}].ID} || !${Target.Type.Equal[pc]}) /next i
/if ((${Target.PctHPs}<=${HealPct}) && (${Target.Distance}<=${HealSpellRange})) {
......@@ -259,20 +265,21 @@ Sub MaintainTargetBuffs
/declare i int local
/declare j int local
[COLOR="#FF0000"]/declare SpellToCast string local 0
/declare BuffIDName string local 0[/COLOR]
/declare SpellToCast string local 0
/declare BuffIDName string local 0
/for j 1 to ${NumberOfToons}
/if (${Target.ID}!=${Spawn[=${MyBuffTargetName[${j}]}].ID} && ${MyBuffTargetName[${j}].NotEqual[null]}) {
/if (${Debug}) /echo Attempting to target (${MyBuffTargetName[${j}]}) for buffs.
/squelch /target id ${Spawn[=${MyBuffTargetName[${j}]}].ID} pc targetable
/delay 15
/delay 10
/if (${Target.ID}!=${Spawn[=${MyBuffTargetName[${j}]}].ID} || !${Target.Type.Equal[pc]}) /next j
/if (${AssistOn}) /call AssistOnTarget
}
/for i 1 to ${NumberOfBuffs}
[COLOR="#FF0000"]|--------------------------------------------------------------------------------
|--------------------------------------------------------------------------------
|If spell name differs from buff name, use argument seperator to extract and set values.
/if (${TargetBuffName[${i}].Arg[2,|].Length}) {
/varset SpellToCast ${TargetBuffName[${i}].Arg[1,|]}
......@@ -281,9 +288,9 @@ Sub MaintainTargetBuffs
/varset SpellToCast ${TargetBuffName[${i}]}
/varset BuffIDName ${TargetBuffName[${i}]}
}
|--------------------------------------------------------------------------------[/COLOR]
|--------------------------------------------------------------------------------
/if (!${Target.Buff[${[COLOR="#FF0000"]BuffIDName[/COLOR]}].ID} && ${Target.Type.Equal[pc]} && (${Me.CurrentMana}>${Spell[${[COLOR="#FF0000"]SpellToCast[/COLOR]}].Mana}) && ${Spell[${[COLOR="#FF0000"]SpellToCast[/COLOR]}].Stacks} && (${Target.Distance}<=${Spell[${[COLOR="#FF0000"]SpellToCast[/COLOR]}].Range} || ${Target.Distance}<=${Spell[${[COLOR="#FF0000"]SpellToCast[/COLOR]}].AERange}) && !${Target.Buff[Resurrection Sickness].ID} && !${Target.Buff[Revival Sickness].ID}) {
/if (!${Target.Buff[${BuffIDName}].ID} && ${Target.Type.Equal[pc]} && (${Me.CurrentMana}>${Spell[${SpellToCast}].Mana}) && ${Spell[${SpellToCast}].Stacks} && (${Target.Distance}<=${Spell[${SpellToCast}].Range} || ${Target.Distance}<=${Spell[${SpellToCast}].AERange}) && !${Target.Buff[Resurrection Sickness].ID} && !${Target.Buff[Revival Sickness].ID}) {
|--------------------------------------------------------------------------------
| ADMIN DEBUG FOR BUFF CODE
......@@ -295,15 +302,15 @@ Sub MaintainTargetBuffs
/echo "${BuffIDName}" = Buff is Needed
} else {
/echo PC:${Target.Type.Equal[pc]} BUFF:!${Target.Buff[${BuffIDName}].ID} MANA:(${Me.CurrentMana}>${Spell[${SpellToCast}].Mana}) STACKS:${Spell[${SpellToCast}].Stacks} INRANGE:(${Target.Distance}<=${Spell[${SpellToCast}].Range} || ${Target.Distance}<=${Spell[${SpellToCast}].AERange}) RezSick:!${Target.Buff[Resurrection Sickness].ID} RevivSick:!${Target.Buff[Revival Sickness].ID}
/echo "[COLOR="#FF0000"]${BuffIDName}[/COLOR]" = Buff is NOT Needed
/echo "${BuffIDName}" = Buff is NOT Needed
/echo -----------
/delay 5s
}
}
|--------------------------------------------------------------------------------
/if (${Debug}) /echo Attempting to cast ([COLOR="#FF0000"]${SpellToCast}[/COLOR]) on (${MyBuffTargetName[${j}]}).
/casting "[COLOR="#FF0000"]${SpellToCast}[/COLOR]" gem8
/if (${Debug}) /echo Attempting to cast (${SpellToCast}) on (${MyBuffTargetName[${j}]}).
/casting "${SpellToCast}" gem8
/call CheckCasting
/call CheckGlobalCooldown
/doevents
......@@ -315,6 +322,31 @@ Sub MaintainTargetBuffs
/return
|---------------------------------------------------------------------------------
|--------------------------------------------------------------------------------
| SUB: Assist On Target
|--------------------------------------------------------------------------------
Sub AssistOnTarget
/if (${Target.ID}==${Spawn[=${MyBuffTargetName[1]}].ID}) {
/if (${Me.TargetOfTarget.Type.Equal[NPC]} || ${Me.TargetOfTarget.Type.Equal[PET]}) {
/squelch /target id ${Me.TargetOfTarget.ID}) npc targetable
/delay 10
/if (!${Target.ID}) {
/squelch /target id ${Me.TargetOfTarget.ID}) pet targetable
/delay 10
}
/if (((${Target.Type.Equal[NPC]} || ${Target.Type.Equal[PET]}) && (${Target.PctHPs}>${AssistPct})) || ${Target.Buff[${AssistSpell}].ID}) /return
/if ((${Target.Type.Equal[NPC]} || ${Target.Type.Equal[PET]}) && (${Target.PctHPs}<${AssistPct})) {
/casting "${AssistSpell}" gem8
/call CheckCasting
/call CheckGlobalCooldown
}
}
}
/return
|---------------------------------------------------------------------------------
|---------------------------------------------------------------------------------
| SUB: Check Mana
|---------------------------------------------------------------------------------
......@@ -337,7 +369,7 @@ Sub CheckMana
/if (${HealsOn}) /call CheckMyHealth
/if (${HealsOn}) /call CheckTargetHealth
/if (${BuffsOn}) /call MaintainTargetBuffs
/if (${FollowGroup}) /call FollowAround
/if (${FollowGroup}) /call FollowAround
/delay 6s
/doevents
/if (${Me.Standing} && !${Me.Mount.ID}) /sit
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment