Dann leg zusätzlich ein Script auf die Kreature, dass wenn die Distanz zum OrgianlPunkt größer als...sagen wir...genau 1, ist, wird sie zurückteleportiert. Das sollte, da die Distanz so gering ist, nicht auffallen.
Würde mich wundern wenn das so funktioniert, erfahrungsgemäß arbeitet Oblivions Mechanik ja eher unsauber.
Davon abgesehen könnte man die Kreatur auch dank Perks lähmen bzw umschlagen, und was weiß ich alles noch.
So wie ichs jetzt habe, lasse ich es auch. Ist gut genug, kommt auch gut rüber. Aber vor allem: es funktioniert tadellos.![]()
Es gibt keine Umfall-Animation. Das wird von Havok geregelt.
Außerdem würde man ein zusätzliches Matsch-Geräusch beim Schlagen hören, was gänzlich ungewollt ist. Bei den Activatoren handelt es sich nämlich um fünf Glocken, die nur klingen sollen, nicht matschen. So gesehen ist meine Lösung sogar noch besser als das was ich anfangs versucht habe, da würde man nämlich ebenfalls ein zusätzliches Geräusch(Waffe auf Metall) hören wenn man draufschlägt.
Lazarus hat da schon recht. Für den Zweck, den er angegeben hat, ist die Lösung mit dem Stab und dem Spell wohl am besten. Das Problem wird nur sein, dass man mit dem Stab die Glocken auch auf Entfernung leuten können wird, da man Stäben ja nur "auf Ziel"-Effekte zuweisen kann. Das könnte man damit umgehen, dass man in das Skript der Glocken schreibt, dass sie auf den auf sie mittels Stab gecasteten Spell nur dann reagieren, wenn sich der Spieler in unmittelbarer Nähe befindet (GetDistance < 200 oder so, müsste man testen, welcher Abstand angemessen erscheint).
Schönen Gruß, Haldor.
Ich habe gerade ein sehr seltsames Problem...der Spieler aktiviert einen Activator und wird in einen Raum zu einen NPC teleportiert.
Der NPC hat einen simplen Script, der mit onDeath ausgelöst wird und erst eine globale Variable auf 1 setzt, einen Activator enabled und außerdem den Spieler zurückteleportiert.
Soweit, so gut, das funktioniert alles.
Aber sobald man zurück ist, wird man alle paar Sekunden abermals zu diesen Marker teleportiert, als wäre der NPC ein zweites mal gestorben...![]()
Ich habe schon alles mögliche versucht, auch per Variable festgelegt dass der Spieler eigentlich nur ein einziges mal teleportiert werden kann, ich habe sogar in den Script geschrieben dass der NPC nach seinem Ableben zusätzlich noch deaktiviert werden soll, aber das hilft alles nichts.
edit: Problem scheint fürs erste dank weiterer Variablen-Verschachtelung gelöst.
Geändert von Lazarus (24.06.2007 um 00:56 Uhr)
Der Teleport-Code Player.MoveToMarker steht im OnDeath-Block? Dann sollte er eigentlich auch nur einmal ausgeführt werden... Versuch doch mal alternativ die Zeile in den GameMode-Block der zu tötenden Kreatur zu schreiben: If dead == 1 && doonce != 1, dann Teleport und set doonce to 1. Damit läuft das definitiv nur einmal. Wenn das Phänomen dann immer noch auftritt, muss es an der Funktion von MoveToMarker liegen. Dann könntest du es mal mit MoveTo oder PositionCell versuchen. Einfach mal rumprobieren... Mehr fällt mir zu diesem seltsamen Problem gerade nicht ein.
Schönen Gruß, Haldor.
MoveToMarker? Kannte ich bisher gar nicht, habe schon immer MoveTo genommen. Gibt es da einen Unterschied?
Naja, jetzt funktioniert's ja...trotzdem seltsam.
MoveToMarker MarkerID bewegt den Actor halt zu dem genannten Marker, wobei man die ReferenzID angeben muss und nicht die BasisID. Wenn man einen XMarkerHeading nimmt, wird auch gleich die Blickrichtung übernommen. Bei MoveTo muss man Koordinaten und Blickwinkel angeben. PositionCell ist wie MoveTo, nur für den Transfer zwischen Zellen, was bei MoveTo wohl nicht immer richtig klappt. Will man übrigens andere Objekte als Actors bewegen, so muss man etwas umständlicher Skripten. Das gilt z.B. für Container, Activators oder Lights:
Quelle: CS-Wiki. Selbst getestet und funktionstüchtig.
Was hast du nun eigentlich geändert, damit es klappt? Oder hat sich das Problem von selbst gelöst?
Schönen Gruß, Haldor.