Construction Set NPC soll nach der Aufgabe verschwinden

SidtheDark

Ehrbarer Bürger
Kann man irgendwie machen das ein NPC nach erfüllter aufgabe verschwindet und wo anders auftaucht? wen ja wie? wär für ein Script oder so dankbar^^
 
Ja, kein Problem.

Du kannst ihn per Script, per Dialog oder sogar per AI-Anweisung woanders hinschicken.
Am besten wäre wahrscheinlich ein Script, das gestartet wird, wenn du die Quest beendest und beim Verlassen der Zelle den NPC wegteleportiert.

Code:
begin my_teleportscript

short state

if ( state == 0 )
if ( CellChange == 1 )
set state to 1
my_NPC->PositionCell xpos ypos zpos zrot "Zellenname"
endif
endif

if ( state == 1 )
StopScript "my_teleportscript"
endif

end

Dieses Script musst du nirgendwo anhängen. Du startest ihn per StartScript "my_teleportscript" in der ResultBox des Dialoges, der die Quest abschließt.
 
Ja, nur löst es erst aus, sobald du die Zelle verlässt. Das heißt, man sieht nicht wie der NPC verschwindet, was das Ganze etwas realistischer macht.
 
Also bei mir funktioniert das Script. Natürlich musst du für die "Platzhalter" von mir richtige IDs einsetzen:

-für my_teleportscript gibst du (bei allen 3 Vorkommen) den Namen deines Scripts ein
-für my_NPC gibst du die ID deines Questgebers ein. Dieser NPC MUSS auch im Spiel platziert sein. Und darf auch nur einmal vorkommen.
- für xpos, ypos, zpos, zrot setzt du Zahlen ein. Dabei steht xpos für die Position auf der x-Achse auf die du deinen NPC teleportieren willst. ypos und zpos sind äquvalent mit der y- und z-Achse. zrot gibt die Rotation um die z-Achse an. 0 bedeutet, dass dein NPC danach nach Norden schaut.
- für Zellenname setzt du den Namen der Zelle ein, in die dein NPC teleportiert werden soll. Diese Zelle MUSS existieren.
 
Dann kann ich zumindest nicht erklären, warum es nicht bei dir funktioniert. Ich habe das Script nachprogrammiert und bei mir funktioniert es.
 
hm kannst du dir nicht denken warum der meint das ein "set" in der 8 reihe fehlt??? dann soll es woll nicht sein :cry: das wirft so viel bei meinen aktuellen mod um :cry:
 
Poste doch einmal den genauen Wortlaut der Fehlermeldung.
Mit einem "irgendwas mit set in der 8. Zeile" kann ich nichts anfangen.

Oder noch besser mach einen Screenshot von der Fehlermeldung.
 
Dein Script und deine Zelle heißen gleich. Das bringt den Copmpiler durcheinander. Bennene deine Zelle in irgendetwas gescheites um (ich denke du willst keine Unterstriche im Zellennamen im Spiel angezeigt bekommen)
 
nein tuen sie nicht man erkennt es bloss nicht auf dem screen die zelle heißt "Gramfeste Artefaketmuseum, hinterer Bereich" und das script "crow_goes_gramfeste" nur wegen gamfeste?
 
bin mir nciht sicher will mcih auch nicht einmischen aber bei

21Dwemer(Dunmer)->PositionCell 512 512 512 180 "_Crow_goes_gramfeste"

muss da nciht hin

21Dwemer(Dunmer)->PositionCell 512 512 512 180 "Gramfeste, Artefacktmuseum" ;oder eine sonstiger cellen name
 
bin mir nciht sicher will mcih auch nicht einmischen aber bei

21Dwemer(Dunmer)->PositionCell 512 512 512 180 "_Crow_goes_gramfeste"

muss da nciht hin

21Dwemer(Dunmer)->PositionCell 512 512 512 180 "Gramfeste, Artefacktmuseum" ;oder eine sonstiger cellen name

nein das ist einen neue von mir erstellte zelle^^

und ausser dem steht da als zelle "Gramfeste, Artefacktmuseum, hinterer Bereich" und nich "_Crow_goes_gramfeste"

/edit du hast recht o,O

/edit hab geändert ändert aber immer noch nichts an der fehlermeldungen
 
Zuletzt bearbeitet:
Du solltest auch in IDs keine Sonderzeichen (außer _ ) verwenden. Scheinbar stört sich der Compiler auch an den Klammern. Benenn deinen NPC doch mal in 21_Dwemer_Dunmer um. Und dann probier mal folgendes Script:

Code:
begin _Crow_goes_gramfeste

short state

if ( state == 0 )
if ( CellChanged == 1 )
set state to 1
21_Dwemer_Dunmer -> PositionCell 512 512 512 180 "Gramfeste, Artefaktmuseum, hinterer Bereich"
endif
endif

if ( state == 1 )
StopScript "_Crow_goes_gramfeste"
endif

end

Bitte beachte, dass ich Artefakt ohne ck geschrieben habe (ich denke, dass war bei dir nur ein Tippfehler).