Construction Set NPC oder Kreatur per Script töten und wiederbeleben

Wavebreaker

Gebannter Benutzer
Hi!
Ich habe die Suchfunktion benutzt, aber nichts wirklich passendes gefunden.

Also ....
Die Überschrift sagt ja eigentlich schon alles. ;)
Ich möchte, dass z.B. ein Zombie mit ganz normaler Lebensernergie per Skript
getötet wird und wenn der Player einem X-Marker zu nahe kommt (sagen wir 50) der Zombie wiederbelebt wird.
Wie stelle ich das an?

Danke im Voraus!


mfg Wave
 
Könntest du noch sagen, wann der getötet werden soll? Also per Druck auf einen Activator oder bei erfüllen einer bestimmten Condition?

MfG Gildur
 
Er soll eigentlich schon tot sein, bevor der Player "seine" Cell betritt.
Ich habe da eigentlich an "Begin GameMode" gedacht .....

Also er soll weder durch ein "Knopf-Drck" noch durch einen Zauber getötet und wiederbelebt werden, sondern per Skript.
 
Also per Script... hmmm. Wenn der Zombie beim Betreten der Cell tot sein soll, dann gib dem Zombie doch einfach 0 Lebenspunkte. Na ja, hier trotzdem der komplette Script. :)
Code:
scn SorryHabeIchVegessen

Begin GameMode
If Player.getInCell [CellID]
[ZombieREF].kill
Endif
If getdistance player < [Die Entfernung in units]
[ZombieRef].Resurrect
Endif
End

Diesen Script packst du auf den Marker.

MfG Gildur
 
  • Like
Reaktionen: Wavebreaker
Gucke bitte noch mal auf den Script, ich habe ihn eben editiert. Ich hatte da etwas vergessen :oops:

MfG Gildur
 
Ich habs gestern nicht mehr geschafft, es zu testen, heute aber schon.
Man kann keine Skripts auf Marker legen.
Wo soll das verdammte Ding hin? :lol:

mfg Wave
 
^^
Mach's doch auf einen Activator oder so was. Ist egal.
Dann kannst du nämlich das Objekt disablen. Also "Initialy Disabled" aktivieren. Dann ist das Objekt nicht sichtbar, doch der Script läuft immer noch (das tun nämlich Scripts auf disabled Objects immer noch).

MfG Gildur
 
Ersteinmal, wenn man etwas totes wiederbelebt, dann steht die Leiche nicht einfach wieder auf, sondern wird entfernt. Und eine lebende Kopie der Leiche erschaffen. Aber zum Script: so wie der aussieht, würde der Zombie ständig getötet und anschließend wiederbelebt werden. Ich würde das ganze so machen:

PHP:
scn scriptname

short doonce

begin GameMode
if doonce == 0
ZombieReference.kill
set doonce to 1
endif

if player.getdistance < [Entfernung]
if doonce == 1
ZombieReference.resurrect
set doonce to 2
endif
endif
end

Diesen Script auf einen Activator legen, den du dann Anstelle eines Markers einsetzt.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Wavebreaker
scn scriptname

short doonce

begin GameMode
if doonce == 0
ZombieReference.kill
set doonce to 1
endif

if player.getdistance < RefVomActivator 50
if doonce == 1
ZombieReference.resurrect
set doonce to 2
endif
endif
end

So ... das ist das Script.
Das Problem ist, dass der Zombie zwar stirbt, aber nicht wieder erscheint. :?
Was ist falsch? Welchen Activator soll ich benutzen? (Hab jetzt einen Stein genommen, der unter "Static", "Activators" stand) :huh:

mfg Wave
 
^^
Ich weiß nicht, ob es der richtige Script ist, aber du solltest mal diese Zeile:
Code:
if player.getdistance < RefVomActivator 50
so umändern^^:
Code:
if player.getdistance RefVomActivator < 50
Es ist sehr wahrscheinlich, dass das der Fehler ist^^

Edit: Stimmt, was macht das RefVomMarker da?
Ham wir doch gar nicht im Script angegeben^^

MfG Gildur

Ps.: 7 units in Oblivion entsprechen 10 cm. Das heißt, deine unit-größe entspricht ungefair 70 cm. Du kannst ja 70 nehmen, wär ein glatter Meter ;)
 
Zuletzt bearbeitet:
Nö, es muss so heißen:

PHP:
getdistance player < 50

Da ist mir gestern auch ein Fehler unterlaufen.
Nimm anstelle von resurrect außerdem das hier:
PHP:
resurrect 1

Ach ja, die Distanz ist zu niedrig, da kann man dem Zombie ja entgehen indem man über ihn drüberspringt. Besser wäre 200 oder gleich 250.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Wavebreaker
:lol:

Ich habe mich da beim Post verschrieben, natürlich hatte ich die Ref vor dem "<". ;)

Ich habe das Script jetzt so geändert, wie Larzarus das geschrieben hat, ich teste das jetzt ;)

mfg Wave

EDIT:

Es funktioniert! :good:
Da wäre allerdings noch eine Frage:

Angenommen ich möchte, das z.B. ein NPC oder eine Creature direkt hinter dem Spieler erscheint, wenn er in einer bestimmten Entfernung zu einem Activator steht. Diese Creature oder dieser NPC soll einen eisigen Effekt haben, z.B. von einem Atronach und dass er, wenn er vom Spieler geschlagen wird, zu einem bestimmten Punkt (X-MarkerHeading) teleportiert wird. Wie würde dieses Script aussehen?

Danke im vorraus.

mfg Wave
 
Zuletzt bearbeitet:
Nein. Meine Schuld ....
Ich meine nicht, das er haargenau hinter dem Spieler erscheint, sondern das er immer an der selben Stelle erscheint.
Als wenn man ihn unsichtbar machen würde und dann wieder sichtbar, wenn der Spieler in der Nähe ist, oder so.
Z.B. mit Disable und Enable, aber leider habe ich keine Ahnung, wie man das richtig anwendet :lol:

mfg Wave
 
Enable/Disable ist im prinzip ganz einfach. Enable=Objekt da, Disable=Objekt weg. ;)
In die Nähe des Spielers bringst du die Kreatur zB mit
PHP:
ZombieReference.moveto player, 0, 200, 0

Die Zahlen hinter dem Befehl sind die Koordinaten mit dem Spieler als Mittelpunkt: X, Y, Z. Mit obigen Befehl würde die Kreatur 200 Einheiten nördlich des Spielers erscheinen.
 
  • Like
Reaktionen: Wavebreaker
Du meinst das mit dem Blickwinkel? Gehe einfach davon aus, dass der Spieler nicht rückwärts den Gang entlangläuft, das Ergebnis wäre die Arbeit nicht wert, schätze ich.
Als Modder neigt man dazu, einige Dinge extrem detailliert und ausgefallen umzusetzen, die dem durchschnittlichen Spieler allerdings nie auffallen werden bzw. völlig egal sind.