Quote:
Originally Posted by aceofspades1984
ich will dass er von area 3 zu area2 wechselt
NTM_MoveTo(areaid, x, y, retry, clearpath);
NTM_MoveTo - ich bewegemich nach -> areaid
areaid - wo ich hin will (Areas-txt) 2 blood moor
x,y - coordinaten ???
retry - wie oft er versuchen soll dort hin zu kommen schätze ich
clearpath - ob er alles killen soll was auffem weg liegt schätze ich
soweit so gut
mein problem sind die coordinaten da ich nicht zu irgendwekchen speziellen coords will ich will nur in die are id und dann NTA_ClearLevel();
soweit ich dass weiß sind die coords eh immer anderst ist ja dynamische karte
im blood moor(2) könnte ich mich zu den den stairs bewegen wie es beim mausoleum skript gemacht wurde .....
würde ich aber gerne umgehen er darf ruhig anfangen zu killen sobald er im moor ist ...
|
Du brauchst aber konkrete Koordinaten, ansonsten kann der Pfad nicht berechnet werden.
Das machst du am geschicktesten, indem du einfach mal die Räume in der Zielebene durchgehst, dir den nächstliegenden raussucht und dich dann zu diesem hinbewegst.
Ich habe dir mal schnell eine Funktion runtergetippt, die dir die Koordinaten ausgibt als
coord Objekt zurückgibt. Aber in jedem Fall überprüfen, ob du nicht den Nullpointer zurückbekommen hast, bevor die die Koordinaten an die
NTM_MoveTo() Funktion verfütterst.
Ungetestest, ich hoffe es sind keine Tippfehler drin:
Code:
function MW_GetClosestRoomCoord(dest)
{
var _room = GetRoom(dest);
var _rooms = new Array();
var _mindist, _dist, _minIndex;
_mindist = 1000000;
if(_room)
{
do
{
_rooms.push([parseInt(_room.x * 5 + _room.xsize * 5 / 2), parseInt(_room.y * 5 + _room.ysize * 5 / 2)]):
} while(_rooms.GetNext());
for(var i = 0; i < _rooms.length; i++)
{
_dist = GetDistance(me.x, me.y, _rooms[i][0], _rooms[i][1]);
if(_dist < _mindist)
{
_mindist = _dist;
_minIndex = i;
}
}
return new coord(_rooms[_minIndex][0], _rooms[_minIndex][1]);
}
return null;
}
Lg
Muddy