When using MQ2Nav to pull, I thought sorting mobs to pull by the distance puller has to run would be more efficient than the distance of the mob from the camp. This should help stop KA going after mobs that are a short distance away but are in fact behind walls or a long way through corridors.
So I made some changes to KissAssist. I've only run it a few times in one pull spot, but it seems to be working. Thanks to Brainiac for the hint on ${Navigation.PathLength[X Y Z]} .
VERSION 2. Stupid copy/paste error.
Starting at line 5260 in kissassist version 9.1.8... insert the following (green is inserted code, red is commented)
So I made some changes to KissAssist. I've only run it a few times in one pull spot, but it seems to be working. Thanks to Brainiac for the hint on ${Navigation.PathLength[X Y Z]} .
VERSION 2. Stupid copy/paste error.
Starting at line 5260 in kissassist version 9.1.8... insert the following (green is inserted code, red is commented)
Rich (BB code):
|/for i ${f1} to ${PullCount}
| Sort by path-lengths for MQ2Nav
/declare PathArray[50] int local 0
/declare PathDistance[50] float local 0
/declare Smallsub int local 0
/declare tempSortID int local 0
/declare tempSortDist float local 0
/declare i2 int local 0
/varset PullCount ${SpawnCount[npc loc ${CampXLoc} ${CampYLoc} radius ${MaxRadius} zradius ${MaxZRange} targetable noalert 1]}
|/echo Pullcount is: ${PullCount} range is: ${MaxRadius}
/for i 1 to ${PullCount}
/varset PathArray[${i}] ${NearestSpawn[${i}, npc loc ${CampXLoc} ${CampYLoc} radius ${MaxRadius} zradius ${MaxZRange} targetable noalert 1].ID}
/varset PullMob ${PathArray[${i}]}
/varset PathDistance[${i}] ${Navigation.PathLength[${Spawn[${PullMob}].X} ${Spawn[${PullMob}].Y} ${Spawn[${PullMob}].Z}]}
/next i
/for i 1 to ${PullCount}
/varset Smallsub ${i}
/varset i2 ${Math.Calc[${i} + 1]}
/for j ${i2} to ${PullCount}
/if (${PathDistance[${j}]} < ${PathDistance[${Smallsub}]}) /varset Smallsub ${j}
/next j
/varset tempSortID ${PathArray[${i}]}
/varset tempSortDist ${PathDistance[${i}]}
/varset PathArray[${i}] ${PathArray[${Smallsub}]}
/varset PathArray[${Smallsub}] ${tempSortID}
/varset PathDistance[${i}] ${PathDistance[${Smallsub}]}
/varset PathDistance[${Smallsub}] ${tempSortDist}
/next i
/for i 1 to ${PullCount}
/if (${DebugPull}) /echo \atDEBUGPULL FindMobToPull 1.0: PullFlag: ${PullFlag} Pullcount: ${PullCount} \agLine#: ${Macro.CurLine}
/if (${Navigation.MeshLoaded} && ${PullMoveUse.Equal[nav]}) {
|/varset PullMob ${NearestSpawn[${i}, npc loc ${CampXLoc} ${CampYLoc} radius ${MaxRadius} zradius ${MaxZRange} targetable noalert 1].ID}
/varset PullMob ${PathArray[${i}]}
/varset PullMobName ${Spawn[id ${PullMob}].CleanName}
Last edited:


