Construction Set Skriptthread zum Construction Set

Hallo, ich hab nochmal eine Frage (Ja, es geht um das Boot.......)

Ich habe zweimal die Gleiche Tür an unterschiedlichen Stellen, durch die Man durch die selbe Tür den Innenraum betreten können soll und wenn man diese "Innenraumtür" benutzt, soll man wieder zur gleichen "Reingehtür" teleportiert werden. Ich hab dafür auch einen Skript gemacht, der auch rein gut funktioniert, allerdings kommt man damit nicht mehr raus.

Code:
scn AjTr1

short TrHintenWelche

Begin OnActivate

If GetisReference DoorOut11 == 1
Set TrHintenWelche to 1
player.movetomarker TrReinHintenMarker


elseif GetisReference TrSteuerradIC2 == 1
Set TrHintenWelche to 2
player.movetomarker TrReinHintenMarker



elseif GetIsReference TrReinHinten1 == 1 && TrHintenWelche == 1
player.movetomarker DoorOutMarker
set TrHintenWelche to 0


elseif GetIsReference TrReinHinten1 == 1 && TrHintenWelche == 2
player.movetomarker TRSteuerradICMarker
set TrHintenWelche to 0
endif
endif
endif
endif
end

Ich hoffe irgendwer findet darin den Fehler

DootOut1 & TrSteuerradIC1 sind hierbei die Türen die rein führen und TrReinHinten die, die wieder rausführt.

mfg
 
@Good Psycho:
Wie du Quests machst, weißt du?
Ein Script dafür würde vom Gerüst etwa so aussehen:
Code:
Scriptname ToterGefangener

short doonce

begin OnActivate
if ( doonce == 0 ) && ( Stage des Quest == 30 ) ; das zweite ist so natürlich nicht richtig, ist aber auch nur ein Gerüst
[NPC].kill
set doonce to 1
endif 
activate
end

Das Script ist natürlich so nicht funktionsfähig, bei [NPC] mus die ID des NPCs hin, der sterben soll. Wie der Ausdruck in der zweiten Klammer der If-Zeile aussieht, weiß ich gerade nicht.
Das SCript ansich muss dann auf die Tür der Zelle.

Wie ich Quests mache weiß ich, ja. Ich kenn mich mittlerweile schon mit sämtlichen Grundfunktionen aus. :D
Also.. mein Script sieht jetzt so aus, aber er sagt mir noch: 'Script command "00DramaBerto" not found.'
So siehts gerade aus:
Code:
Scriptname BertoSuicide

short doonce

begin OnActivate
if ( doonce == 0 ) && ( GetStage "00Drama1" >= 30 ) ;
[00DramaBerto].kill
set doonce to 1
endif

activate

end

Was ist daran denn noch zu verändern, damit es funktioniert? Script Type steht auf Quest. Die ID des NPC, der sterben soll lautet nunmal so, wie sie in den Klammern vor .kill steht. Was hab ich falsch gemacht? :?
 
@Good Psycho: Hätte ich vielleicht schreiben sollen, ja, die [ ] dürfen nicht im Script stehen.
Also: 00DramaBerto.kill
Es könnte aber sein, dass er den nicht erkennt, weil am Anfang 00 steht. Wieso das so ist, weiß ich nicht, ist aber so. Probiers aber erstmal so.

@AjAeXx: Setz mal bei jedem Block noch ein "activate" (ohne die ""), das sollte gehen.
 
Zuletzt bearbeitet:
Hallo! Ich habe immernoch folgende Fragen:

Wie ist es möglich Creaturen/NPC's
1. An einem bestimmten Punkt der Welt auftauchen zu lassen
2. Angreifen zu lassen
3. Essentail (Unsterblich) bei NPC's zu aktivieren/deaktivieren (im Script)
4. tgm für NPC's einzustellen

Ich hoffe jemand kann sie mir beantworten. Danke!:)
 
Glaube ich nicht, weil die Türen haben ja ansich keinen Transportmarker bzw. Teleportfunktion, sie dienen nur dazu den Skript auszulösen, der den Player dann zu einenm X-Marker teleportiert.

mfg
 
Änder mal das:
Code:
elseif GetIsReference [COLOR="Red"]([/COLOR] TrReinHinten1 == 1 [COLOR="Red"])[/COLOR] && [COLOR="Red"]([/COLOR] TrHintenWelche == 1 [COLOR="Red"])[/COLOR]
player.movetomarker DoorOutMarker
set TrHintenWelche to 0


elseif GetIsReference [COLOR="Red"]([/COLOR] TrReinHinten1 == 1 [COLOR="Red"])[/COLOR] && [COLOR="Red"]([/COLOR] TrHintenWelche == 2 [COLOR="Red"])[/COLOR]
player.movetomarker TRSteuerradICMarker
set TrHintenWelche to 0
 
@Good Psycho: Hätte ich vielleicht schreiben sollen, ja, die [ ] dürfen nicht im Script stehen.
Also: 00DramaBerto.kill
Es könnte aber sein, dass er den nicht erkennt, weil am Anfang 00 steht. Wieso das so ist, weiß ich nicht, ist aber so. Probiers aber erstmal so.

Jetzt hab ich mal die Klammern weggelassen und es hat auch nicht funktioniert. Er erkennt scheinbar den Typen nicht. :(
Dann hab ich die ID geändert und die 00 einfach mal weggemacht. Hat aber leider auch nichts genützt.. er erkennt ihn immer noch nicht.. verdammt! Was ist denn da los? Ich will endlich bei meiner Quest weiter kommen.. :cry:
 
Meckert er schon beim Scriptspeichern oder setzt er es im Spiel einfach nicht um? Wenn letzteres der Fall ist, würde ich das Script als "object"-Type speichern.
 
Du musst dem Script sagen, dass er eine Reference ist.

Erst einmal braucht er eine neue RefID. Die dürfen als einzige nicht mit Zahlen beginnen, sonst kommt's sehr oft zu Problemen.
Ich nenne ihn mal "DramaBerto". Wenn er so heißt, dann musst du zusätzlich vor den Blöcken (also bei "short doonce") die Zeile "ref DramaBerto" einfügen, damit er als Reference erkannt wird. Das ist ähnlich wie bei den Variablen :)

Mfg
 
  • Like
Reaktionen: Good Psycho
Knochen, dass hat immer noch nicht Funktioniert, trotzdem danke für deine Hilfe, ich setzt mich jetzt solange hier in den Thread bis Low Post kommt *setzt sich auf ein paar Bits und Byts*

@ Den mit der Quest (sorry Name nicht gemerkt). Hast du denn auch den Namen im Questmenü verändert?
 
Du musst dem Script sagen, dass er eine Reference ist.

Erst einmal braucht er eine neue RefID. Die dürfen als einzige nicht mit Zahlen beginnen, sonst kommt's sehr oft zu Problemen.
Ich nenne ihn mal "DramaBerto". Wenn er so heißt, dann musst du zusätzlich vor den Blöcken (also bei "short doonce") die Zeile "ref DramaBerto" einfügen, damit er als Reference erkannt wird. Das ist ähnlich wie bei den Variablen :)

Mfg

Das hat teilweise geklappt. Er meckert jetzt nicht mehr beim speichern und ich kann den Script da öffnen, allerdings ist er nicht in der Liste zu finden. :huh: Beim Türscript steht immer noch 'None' und wenn ich dort nach meinem Script suche, gibt es das da nicht.. nur wenn ich das ScriptFenster öffne kann ich den Script dort finden und öffnen, aber nicht auf die Tür legen.. mann mann mann, ist das kompliziert.. :?
 
Wie gesagt: Hast du es jetzt als "Object"-Script gespeichert, nicht als "Quest"-Script? Sonst findest dus bei der Tür ziemlich sicher nicht, die ist ja ein Objekt.
 
Wie gesagt: Hast du es jetzt als "Object"-Script gespeichert, nicht als "Quest"-Script? Sonst findest dus bei der Tür ziemlich sicher nicht, die ist ja ein Objekt.

Ja, es ist ein Object-Script. Als Quest-Script macht es nen Fehler. Ich finde es bei der Tür allerdings trotzdem nicht.. :?

So sieht mein Script jetzt übrigens aus (falls es relevant ist):
Code:
Scriptname BertoSuicide

ref AADramaBerto

short doonce

begin OnActivate
if ( doonce == 0 ) && ( GetStage "00Drama1" >= 30 ) ;
AADramaBerto.kill
set doonce to 1
endif 

activate

end
 
Ich war nur ein bisschen zu voreilig. Ich musste das TürEdit-Fenster erst nochmal schließen und dann wieder öffnen, damit der Script auch in der Liste zu finden ist. Naja.. allerdings ist mir beim Testen noch ein schwerwiegender Fehler aufgefallen: Wenn mal also bei QuestStage 30 ist und der Script beim aktivieren der Tür aktiv wird, wird man nicht mehr in die Zelle teleportiert. Irgendwas ist also im Script immer noch falsch.. :?
 
Dann verschieb mal das activate im Block. Ansonsten gibt es noch die Möglichkeit, dass du ein anderes Script auf den NPC legst. Das sieht etwa so aus:

Code:
Scriptname Stirb

short doonce

begin OnLoad
if ( doonce == 0 ) && ( GetStage "00Dramal" >= 30 )
kill
set doonce to 1
endif
end
Sollte so gehen. Dann sollte man nur entweder ihn nicht sofort sehen oder ihn hinlegen, sonst kippt der einfach um und man hört auch ein Sterbelaut.
 
Funktioniert alles nicht.. ich lass es einfach erstmal sein. Wenn ich dein Script auf den NPC lege und das Türscript erstmal raus, dann geht er nur schlafen, was aber auch Zufall gewesen sein könnte, da er ja ne AI hat. Vorher hat er die aber komischerweise ignoriert.. kann aber wie gesagt einfach Zufall gewesen sein. Das Türscript hab ich auch mal Probehalber verändert und das Activate einmal über ifend gesetzt und dann darunter else und nochmal activate.. hat auch nicht geklappt. :?

Ich komm gar nicht klar und werd langsam bekloppt. :lol:
 
@robinH:
Also: Du nimmst das Scritp von Low Post, das ist so gut zu verwenden. Dann nimmst du deine beiden Netzte, die du schon ins CS eingebunden hast. Du setzt beide an die gleiche Stelle (das heile und das kaputte), halt dahin, wo sie hin sollen. Du gibst beiden eine ................

Code:
s.........[/QUOTE]

Na dann kann ich mir das wohl abschmincken. Hab keine Ahnung wovon du redest ich hab da nix eingebunden. Ich habe nur die Textur von Tes4 mit meiner ersetzt mehr nicht.

Ich dachte das das Mesh das steuert, tut es wohl nicht. Denn ich kann ja kaum im Spiel jedes Netz auf diese Weise erneuern. Dann muss ich wohl mit der Tatsache leben, das es halt nicht kaputt geht, so was doofes aber auch. Vieleicht arbeitet ja jemand gerade an einen Dungeon. Kontaktiert mich- damit wenigstens die neuen Dungeons solche Netzanimationen haben.
 
Ich hab eine neue Frage:
Ich habe in einen Dungeon einen toten Lich auf einen Altar gelegt. Der hat alle Fertigkeiten auf 100 aber 0 Lebenspunkte (ist also tot). Ich will jetzt, dass er, wenn man ein bestimmtes Buch liest, wieder aufersteht (mit vollen LP). Wie geht das?
 
Kannst mal schauen ob das funzt:

scn XX

begin OnActivate

if ( IsActionRef Player == 1 )
Activate
resurrect (Id deines Viechs)
endif

Ich weis jetzt nicht genau ob erst die ID muss und dann resurrect aber probiers mal aus :D Den Scirpt aufs Buch legen.