Construction Set Skriptthread zum Construction Set

hm. Funzt irg net! Ich hab folgendes eingegeben: Result Script

<NPC01000D5F>.disable

Oder auch: Result Script

NPC01000D5F.disable


Das funzt wie gesagt net! :( Warum?
 
Dein NPC muss eine eigene Id bekommen. WIe XYZNPCREF, nicht die Nummer aus dem Editor nehmen. Das ist nicht die REF ID

Desweiteren werden glaube ich Nummern nicht akzeptiert.
 
  • Like
Reaktionen: n108freestyle
@Mow

Danke für deine hilfe!

Hab noch eine frage zu einem script der folgendes bewirken soll:

Es gibt 5 Schalter, wen der Player schalter 1,2 und 3 betätigt soll etwas auftauchen. noch dazu kommt das die schalter in der richtigen reihenfolge aktiviert werden sollen. nachdem der gegenstand erschienen ist soll er auch wieder nach einer bestimmten zeit verschwinden.

Ich weis das soll i-wie mit ner abfrage funktionieren aber wie keine ahnung^^

Achso ja wen der spieler die richtigen schalter gedrückt hat muss er noch einen anderen drücken (also insgesamt sind es dan 6 shcalter) dies ist dann der bestätigungs schalter. die anderen zwei sind natürlich nicht einfach so da wen der spieler die drückt soll ebenfals etwas auftauchen. also wie stell ich soetwas an???? :huh: würd mich sehr freuen wen jemand so einen script schrieben kann. MFG raist
 
Boa! Da haste dir ja ganz schön was vorgenommen! Selbst WENN es geht, wird das ganz schön verwirrent sein, denn du müsstest ja für JEDEN Schalter einen Script erstellen, und ich denk ma du müsstest die Schalter irg wie miteinander verknüpfen... Na dann viel Spaß!
 
nunja, ne reference reicht doch und dann noch ne abfrage sowas wie if schalter1.activate & if schalter2.activate usw.

und dann unten drunter den gewünschten effect ^^ oder :D
 
Es ist durchaus möglich. Sogar nicht sonderlich schwer aber echt ne menge zu schreiben.

Du könntest ein Script für die Schalter machen wo wenn sie aktiviert werden eine Variable auf 1 gesetzt wird. Die fragst du dann ab.

Dann müsstest du eben auf den Letzten Schalter das Script legen was alle abfragt. Dann eben mit MoveTo deine Objekte hinbringen und nen Timer einbauen der sie verschwinden lässt.

Eine zweite möglichkeit wäre eine Quest zu machen und dort alle Variablen zu speichern. Du musst diese dann mit
Code:
If Questname.Variable == X
abfragen.

Als Beispiel:

Code:
Begin OnActivate
If Questname.Schalter1 == 1 && Questname.Schalter2 == 1 && Questname.Schalter3 == 1 && Questname.Schalter4 == 0 && Questname.Schalter5 == 0
   Objekt.MoveTo XMarkerRefoderso
Else
   Player.Kill
Endif
End
Das müsste dann auf den Bestätigungsschalter. Musst eben ausbauen.
Wenn eben der erste Schalter aktiviert wird wird Questname.Schalter1 auf 1 gesetzt.
 
wie is das mit der quest gemeint? ich hab noch nie mit so ner quest gearbeitet. sei mal bitte ien bisschen ausführlicher danke.

Ps. Player.kill HAHA -.- :D
 
Mit Quest meint er dass du eine Quest erstellen muss (einfach nur ne Quest-Id) [Character -> Quests->rechts->new->id-eingeben z.B. AAAquest (keine Zahlen am anfang der Id verwenden sonst dreht das Cs durch !)]
Dann erstellst du ein QuestScript mit den/der QuestVariaBLEN
SCN AAAquestScript
SHORT Schalter1
short Schalter2
short Schalter3

Und dann einfach wie gesagt in den Schalter Script
Set QuestId.Schalter1 to 1 ,zb. Set AAAquest.Schalter1 to 1
einbringen


Du kannst auch einfach ne Global (weniger Aufwand) machen und wenn du die richtige Reihenfolge willst dann musst du wie gesagt 3 Scripts machen

Schalter 1

scn xy
sort doonce
Begin OnActivate
If Global==0
Set Global to 1
endif



Schalter 2
scn

Begin OnActivate
If Global==1
Set Global to 2
endif
end

Schalter 3

scn

Begin OnActivate
float timer
IF Global==2
Set Global to 3
endif
end

Bestätigungsschalter:
scn
Begin OnActivate
float timer
if Global==3
Set timer to timer + Getsecondspassed
Objekt.enable
Objekt.moveto player/placeatme 100 0 0
Set Global to 4
endif
end

Begin gamemode
short doonce
If timer >5 && Global==4
objekt.disable
Set timer to 0
Set Global to 0 ; wenn nochmal sonst zu 5

endif

end



Mit eine einzigen QuestVar geht das natürlich auch...
 
Zuletzt bearbeitet:
hmm des mit der Global geht nicht es scheint so als kennt er Global nicht. hast du da etwa vergessen short Global zu setzten oder warum bekomm ich da immer die fehlermeldung [Unknow kommand "Global"]

Das mit der Quest hab ich denk ich rausgefunden. könnte man das nicht auch so umschrieben das es auch erst bei bestimer reihenfolge funktioniert? Und selsbt wen ich Glaube, die Global variante wäre einfacher und weniger zu schreiben.

Ich möchte jetzt aber mit meinen fünf schaltern mehrere reihenfolgen haben z.b.: Schalter1 - Schalter2 - Schalter3 = Objekt1.Enable
Schalter2 - Schalter4 - Schalter1 = Objekt2.Enable

Dann wäre doch die Quest variante günsitger oder? bei Global müsste ich ziemlich viel schreiben bei Jeden einzelnen schalter. Beiu der quest müsste ich nur jeweils beim Aktivierungs schalter. Alle kombienationen auführen, stimmt das so oder habe ich da etwas falsch verstanden?
 
Du musst auch bei Gameplay unter Globals ne Global erstellen ;)
Bei der anderen Reihenfolge machste dann einfach ne 2. Global
Dass must du mit Der QuestVar auch so machen wie mit der Global glaub ich zumindestens
 
ja stimmt. Das mit der Reihenfloge macht sie sache viel zu komplex ^^
Ich mein wen ich jetzt 5 X 5 schalter hätte wären das 25 Schalter mit jeweils 125 kombinationen. Und das auch nur wen ich für jede kombination 5 schalter benötige bei 3 wären es ja noch mehr :shock:
wen ich mir jetzt die Scripts vorstelle wen ich wirklich 125 kombinationen erstellen wollte XD da würd das Cs warscheinlich sowiso abschmieren :-D
 
Ne des mach ich dan lieber doch net ich glaub da reicht mir eine reihenfolge ^^ wen ich lust zeit und laune hab kann ich ja weitere reihenfolgen mit einbauen. aber alle kombinationen werd ich nicht ausnutzen das wäre ja größen wahnsinnig^^
 
dankeschön^^ Hast mir sehr geholfen mal schauen was ich mit meinen neu erworbenen wissen anstellen kann XD

Ok hab doch noch ein kleines probelm ich bekomm den Timer nicht gescheit hin:

SCN Tester

ref Schalter1
ref Schalter2

Begin OnActivate
float timer
If Quest.Schalter1 == 1 && Quest.Schalter2 == 1 && Quest.Schalter3 == 1 && Quest.Schalter4 == 1
Set timer to timer + Getsecondspassed
playgroup forward 0
Objekt01.enable
Light.Enable


Endif
end
begin Gamemode

if timer >5
objekt01.Disable
Light.Disable
set Quest.Schalter1 to 0
set Quest.Schalter2 to 0
set Quest.Schalter3 to 0
set Quest.Schalter4 to 0
Set timer to 0
Endif

end
 
Zuletzt bearbeitet:
Was genau denn funzt net passiert gar nichts oder passiert was sofort (ohne den Timer zu beachten) ???

Tipp: schau den Wert mal in Oblivion nach dass machste indem du dass objekt mit dem Script anklickst und in die Konsole eingibst show timer
Zur Sicherheit auch mal die Quest-variablen prüfen (show AAAquest.Schalter1)

Sag dann was genau nicht funzt pls
Oder probiers mal damit
anstelle von Set timer to timer + Getsecondspassed:
Set timer to timer - Getsecondspassed ;
Set timer to 10

und anstelle von If timer > 5 machste dann if timer <= 5
 
Also das Skript check ich nicht... Du solltest dir mal angewöhnen, mit Tabs (hier im Forum mit Leerzeichen) zu arbeiten...
Ich wiederhole noch mal die Aufgabenstellung, damit sie eindeutig ist und man an einem Skript arbeiten kann...
Es gibt drei Schalter, die der Spieler in einer bestimmten Reihenfolge aktivieren muss und dann noch einen vierten, mit dem er das dann bestätigt; dieser vierte ist aber aus welchen Gründen auch immer erst erreichbar, wenn die drei vorherigen bereits aktiviert wurden (wäre ja sonst unlogisch). Beim Betätigen des vierten Schalters wird dann überprüft, in welcher Reihenfolge die anderen Schalter betätigt wurden; ist sie richtig, wird ein Gegenstand enabled; ist sie falsch, stirbt der Spieler (oder wird vergiftet oder whatever...).
Korrigiere mich bitte, wenn das irgendwie falsch sein sollte...

Ps: 125 Kombinationen hält das CS locker aus, aber ab einer bestimmten Zeichenanzahl speichert das CS das Skript nicht mehr, bzw. es blockiert die Eingabe weiterer Zeichen. Ich hatte das mal, als ich alle möglichen Kombination von 9 Variablen mit den Werten 0 oder 1 abfragen wollte (und zusätzlich noch eine Zufallsabfrage). Ich hab das Skript im Texteditor vorgeschrieben und da hatte es 240 KB; also musste ich das in acht kleinere Skripte aufteilen, die dann jeweils ungefähr 30 KB groß waren (das größte, was das CS gespeichert hat waren ca. 36 KB). Da muss dann also irgendwo die Grenze liegen...