Quote:
Originally Posted by Eichenlaub
hm, stimmt schon aber ich denke dies ist ein generelles D2NT Problem, da die Funktionen von NTMove / NTTakeStair betroffen sind. Also denke ich (oder liege ich da falsch?), dass dies auch mit den anderen - auf D2NT basierenden Bots - diesen Fehler verursacht?
Wie würde die Funktion denn aussehen, wenn MoveToStairs fehlschlägt und der bot dann einfach eine alternativ Funktion aufrufen soll?
Z.b. habe ich versucht:
Code:
if(!NTM_MoveToStair(me.areaid, 46))
{
[COLOR="Red"] NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToStair, me.areaid, 46);
return;[/COLOR]
}
else { hier dann alternativ code
}
}
|
Du scheinst da was nicht richtig verstanden zu haben, der Teil in rot wird ausgeführt, wenn die Funktion fehlschlägt, dein else-Zweig würde hingegen erreicht, wenn alles glatt läuft. ;)
Wie man das beheben könnte? Das Grundproblem vermutlich gar nicht, auch wenn ich mich zunächst mal fragen würde, wie der Char an diese Position kommt, ich kann mir irgendwie nur schwer vorstellen, dass die Pfadberechnung diesen Punkt ausspuckt.
Aber was mir dazu einfällt:
Soweit ich das in Erinnerung habe, sind diese Orte immer identisch Positionier, sprich der angrenzende Raum liegt immer südlich.
In dem Fall könnte man einfach einmal Teleport auf eben diesen Punkt casten:
Code:
if(!NTM_MoveToStair(me.areaid, 46))
{
NTM_TeleportTo(me.x + 10, me.y + 10);
if(!NTM_MoveToStair(me.areaid, 46))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToStair, me.areaid, 46);
return;
}
}
Das könnte funktionieren, müsstest du mal ausprobieren.
LG
Muddy
P.S.: Da es hier um eine Programmierfrage geht, ist das Thema richtig platziert und hat seine Daseinsberechtigung. ;)