Vielen Dank für deine Hilfe, Knutschkugel.
Für alle, die auch Interesse daran haben:
Folgende Funktion in eurer Baal Script einbinden
Code:
function NT_CountMonstersInThrone(range, showMonsters)
{
var _monster, _count, _monsterData, _output;
var i;
if(arguments.length < 1) range = 100;
if(arguments.length < 2) showMonsters = false;
_count = 0;
_monsterData = new Array();
_monster = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_monster)
{
do
{
if(NTA_IsValidMonster(_monster) && _monster.IsAttackable() && _monster.y <= 5090 && GetDistance(me, _monster) < range)
{
for(i = 0; i < _monsterData.length; i++)
{
if(_monsterData[i][0] == _monster.classid)
{
if(_monsterData[i][1] == "" && !(_monster.spectype&0x0E))
_monsterData[i][1] = _monster.name;
_monsterData[i][2]++;
break;
}
}
if(i >= _monsterData.length)
{
_monsterData.push([_monster.classid, "", 1]);
if(!(_monster.spectype&0x0E)) _monsterData[_monsterData.length - 1][1] = _monster.name;
}
_count++;
}
}
while(_monster.GetNext());
}
if(showMonsters)
{
Say("* Monsters in Throne: " + _count + " *");
for(i = 0; i < _monsterData.length; i++)
{
_output = _monsterData[i][1];
if(_monsterData[i][1].indexOf("Fury") > -1)
_output = _output.replace("Fury", "Furies");
else if(_monsterData[i][1].indexOf("Witch") > -1 || _monsterData[i][1].indexOf("Magus") > -1)
_output += "es";
else
_output += 's';
_output += ": " + _monsterData[i][2];
Say(_output);
}
}
return _count;
}
und mit "NT_CountMonstersInThrone(100, true);" aufrufen.
(Der Rückgabewert der Funktion ist dabei die Gesamtanzahl der Monster.)
Der Aufruf sollte am besten vor der UnsafeTP Msg kommen.
Viel Spass damit.
Gruß Piotr