Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.

[GoM]
GoMSHelp=Format - Spell|Target, MA Me or Mob, i.e. Rampaging Servant Rk. II|Mob
GoMSpell=Ruthless Servant|Mob
Try setting it to AssistAt=98

/call LoadIni Pet PetAssistAt int 95
/if (${Target.PctHPs}<=${Math.Calc[${PetAssistAt}-${AttackDelay}]}) {
PetAssistAt=98
Hi Maskoi,
Been using your macro for a while now, and really enjoy it. Most of my group is PET based, and due to this I wanted to suggest a small addition to your macro, or perhaps there is already a way of solving this.
Would it be possible to add an extra parameter to the pet part of the macro, which states when to make the pet attack. The overall assist % will work in alot of cases, but it would be alot more flexible to be able to specify a second parameter under PET in the ini file for when pet's should attack.
There are a few reasons for having pet attack later, but mainly for me, it's because my Mage and enchanter is set to assist at 99%, which will cause slow's and debuffs to land while mob is running into camp. But if pet - especially Mage pet - does more dmg than the puller did with arrow/dagger, it will force the mob to stop and attack the pet, and not run all the way to the camp.
Perhaps It's an easy fix that i could implement myself in the macro if you don't like adding a second assist parameter to the pet section, but in that case perhaps you could direct me to where in the Macro to do this?
EDIT
I changed the macro abit on my own, perhaps it's not the best way, but it's a suggestion atleast
At line 124 add the following
Rich (BB code):/call LoadIni Pet PetAssistAt int 95
At line 734, overwrite with the following line
Rich (BB code):/if (${Target.PctHPs}<=${Math.Calc[${PetAssistAt}-${AttackDelay}]}) {
In the Kissassist_Name.ini file add the following under PetOn=1
Rich (BB code):PetAssistAt=98
Thank you very much Maskoi! This macro is incredible.
I have found one issue and have one suggestion (at this point :-) )
When range pulling with a ranger (PullerTank), the ranger makes a headshot and drops the mob on the pull shot. The ranger then just sits there not knowing what to do. It does not change target nor does it move back to camp. It would be nice if it looted and returned to camp.
A suggestion with the new tradeskill bags. If the loot.ini was specific to a PC, two PC's could loot with one only picking up tradeskills and the other picking up vendor trash. This would create a much better farming situation.
It works better with it set to 98.
Forget to mention I tried to setup a level 8 SK to pull via melee to a merc tank and I'm getting this ....
Aborting Pull! Target invalid now! PCNear
This is in a zone where I'm the only player. The SK runs out to the target, pops the message then runs back to the anchor spot. Any idea what's going on?
/if (${SpawnCount[loc ${Target.X} ${Target.Y} radius 25 pc]}>=1 && ${Pulling}) /return PCNear
Great Maskoi, thanks for feedback.
Any chance that this would be something you can see a benefit in, and would consider adding to the script?
I'm haveing a few problems with pulling manly my puller is randoml picking mobs to pull witch cause problems when she pickes one that is behind 1-2 other mobs is there any way to get her to aways target the closest one or is this some thing to do with them wandering and she thinks she know what one is closest
Does have Headshot have an emote that I could write an event for? I don't have a high level ranger so I have no way to explore and test this.
I will be working on ninjadvloot which handles all the looting in a few weeks. Assigning separate lootini files can get messy but I will look at it.
/if (${Select[${Me.Class.ShortName},BRD,ENC]}) {
/if (${Select[${Me.Class.ShortName},BRD,ENC,NEC]}) {
|Necro mez code
/if (${Me.Class.Name.Equal[Necromancer]}) {
/delay 3s ${Cast.Ready[${MezSpell}]}
/call CastWhat "${MezSpell}" ${MobID}
/delay 5s ${Cast.Status.Equal}
/varcalc MezFail ${MezFail}+1
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varcalc MezCount[${TimerNum}] ${MezCount[${TimerNum}]}+1
/varcalc MezTimer${TimerNum} ((${Spell[${MezSpell}].Duration.TotalSeconds}+${MezMod})*10)*.85
/if (${DebugMez}) /echo MezTimer${TimerNum} ${MezTimer${TimerNum}}
}
/if (${Macro.Return.Equal[CAST_RESIST]} && ${MezFail}<2) {
/echo MEZ Resisted -> ${Spawn[${MobID}].CleanName} <- ID:${MobID}
/docommand /bc [+g+]MEZ Resisted -> ${Spawn[${MobID}].CleanName} <- ID:${MobID}[+x+]
/goto :retrymez
}
}
/if (!${Spawn[${Target}].ID}&&${Role.Equal[PullerTank]}) /Target ${Me}
/if (${Me.Pet.Height}<1) /varset PetShrunk 1
/if (${Debug}) /echo Pet Height: ${Me.Pet.Height} PetShrunk: ${PetShrunk}
/if (!${PetShrunk} && ${PetShrinkOn}) {
/call CastWhat "${PetShrinkSpell}" ${Me.Pet.ID}
/varset PetShrunk 1
/delay 20
/squelch /target clear
}
/if (${Debug}) /echo Pet Height: ${Me.Pet.Height} PetShrunk: ${PetShrunk}
/if (${Me.Pet.Height}>1 && ${PetShrinkOn}) {
/call CastWhat "${PetShrinkSpell}" ${Me.Pet.ID}
/delay 20
/squelch /target clear
}
/if (${SpawnCount[loc ${Target.X} ${Target.Y} radius 10 pc]}>=1 && ${Pulling}) /return PCNear
/if (${SpawnCount[loc ${Target.X} ${Target.Y} radius 25 pc]}>=${Math.Calc[${SpawnCount[loc ${Target.X} ${Target.Y} radius 25 Group]}+1]} && ${Pulling}) /return PCNear
/call GroupWatch
/echo Looking for Close Range Mobs
/squelch /alert clear 1
/call GroupWatch
/if (${Debug}) /echo Looking for Close Range Mobs
/squelch /alert clear 1
KissAssist.mac@Line 120
Change
Rich (BB code):/if (${Select[${Me.Class.ShortName},BRD,ENC]}) {
to
Rich (BB code):/if (${Select[${Me.Class.ShortName},BRD,ENC,NEC]}) {
Rich (BB code):|Necro mez code /if (${Me.Class.Name.Equal[Necromancer]}) { /delay 3s ${Cast.Ready[${MezSpell}]} /call CastWhat "${MezSpell}" ${MobID} /delay 5s ${Cast.Status.Equal} /varcalc MezFail ${MezFail}+1 /if (${Macro.Return.Equal[CAST_SUCCESS]}) { /varcalc MezCount[${TimerNum}] ${MezCount[${TimerNum}]}+1 /varcalc MezTimer${TimerNum} ((${Spell[${MezSpell}].Duration.TotalSeconds}+${MezMod})*10)*.85 /if (${DebugMez}) /echo MezTimer${TimerNum} ${MezTimer${TimerNum}} } /if (${Macro.Return.Equal[CAST_RESIST]} && ${MezFail}<2) { /echo MEZ Resisted -> ${Spawn[${MobID}].CleanName} <- ID:${MobID} /docommand /bc [+g+]MEZ Resisted -> ${Spawn[${MobID}].CleanName} <- ID:${MobID}[+x+] /goto :retrymez } }
and it adds necros to mezzing class and does pretty good CC control... necros still can't use the AE mezz since thats auto blocked by the macro anyways...
KissAssist@Line 389
++
Rich (BB code):/if (!${Spawn[${Target}].ID}&&${Role.Equal[PullerTank]}) /Target ${Me}
if we have no target at all we target our selfs but only if role is set to PullerTank... otherwise it runs like normal and doesn't target self...
Rich (BB code):/if (${SpawnCount[loc ${Target.X} ${Target.Y} radius 10 pc]}>=1 && ${Pulling}) /return PCNear
Rich (BB code):/if (${SpawnCount[loc ${Target.X} ${Target.Y} radius 25 pc]}>=${Math.Calc[${SpawnCount[loc ${Target.X} ${Target.Y} radius 25 Group]}+1]} && ${Pulling}) /return PCNear
untested but might work to fix that pc near issue
toRich (BB code):/call GroupWatch /echo Looking for Close Range Mobs /squelch /alert clear 1
Rich (BB code):/call GroupWatch /if (${Debug}) /echo Looking for Close Range Mobs /squelch /alert clear 1
no need to flood the chat wnd with a echo over and over maybe use a popup instead... for this one... chat wnd is busy enough... till then i'd change it to debug mode only...
Why would you target yourself?
This is the message to let you know you are pulling. If you are in a camp that's has long respawns times change PullWait=0 to a higher value to increase the time between searches. ie 30 would look every 30 secs when no spawns are up.
it was frustrating me because i kept getting a error saying that i need to target my MA
Looks like the mez is spotty lv 55 to 72 only undead versions but will test test this out.
/if (${Target.Race}==${ZombieRaceID}) /return
"You do not have a Mercenary, PC or Pet targeted. Please target Main Tank and restart macro."What error? I still don't understand this.
