Construction Set Skriptthread zum Construction Set

PHP:
scn ...

Short HabsGelesen

Begin onActivate
If ( IsActionRef Player == 1 ) && ( HabsGelesen == 0)
 Set HabsGelesen To 1
Endif

Begin GameMode
If (HabsGelesen != 1 )
 Return
Else
 SetStage ID Stage
 Set HabsGelesen To 2
Endif
End
 
  • Like
Reaktionen: Finkreghan
Anmerkung: Wenn das Buch nicht offen rumliegt, sondern in einem Container liegt, sollte statt "OnActivate" ein "OnEquip" verwedet werden;)
Edit: Und nach dem ersten "Endif" kommt noch ein "End"
 
  • Like
Reaktionen: Finkreghan
Guten Tag,

das Buch liegt offen auf einem Tisch.

Ich habe das 'End' unter dem ersten 'Endif' hinzugefügt und kann das Script nun abspeichern.

Wenn ich meinem Buch jetzt jedoch dieses Script zuweise und es in eine Zelle lege, kann ich es im Spiel nicht öffnen. Der Name wird angezeigt, doch wenn ich die Leertaste betätige geschieht nichts.

Gruss rojep
 
Guten Tag,

das Script sieht bei mir nun folgendermaßen aus:

PHP:
scn ...

Short HabsGelesen

Begin onActivate
If ( IsActionRef Player == 1 ) && ( HabsGelesen == 0)
 activate
 Set HabsGelesen To 1
Endif
End

Begin GameMode
If (HabsGelesen != 1 )
 Return
Else
 SetStage ID Stage
 Set HabsGelesen To 2
Endif
End

Wenn ich jetzt im Spiel das Buch mit der Leertaste anwählen, kann ich es zwar zunächst öffnen, doch nach dem Klick auf den 'Fertig' - Button geschieht wiederum nichts, die Quest wird nicht auf die gewünschte Stage gesetzt.

Zudem kann ich das Buch nach dem ersten kein zweites Mal öffnen.

Gruss rojep
 
Letzteres liegt an der Postition des "activate". Es sollte außerhalb der if-Bedingung stehen.

Aber warum lässt du die Quest-Stage nicht einfach beim Lesen erhöhen sondern erst nach dem Schließen des Buchs?
 
  • Like
Reaktionen: Finkreghan
Guten Tag,

das Buch lässt sich jetzt zwar immer wieder öffnen, die Queststage wird jedoch nach wie vor nicht verändert.

Ich könnte natpürlich auch nur einen 'oinactive' - Block verwende, das würde mir allerdings ein paar Scherereien bereiten die ich eigentlich vermeiden wollte.

Im Grunde ist es aber nicht schlimm. Ich habe jetzt das Script dementsprechend angepasst, wenn jedoch noch jemand eine Lösung für das Problem wüsste, würe ich mich natürlich freuen.

Gruss rojep
 
Guten Tag,

ich hätte da noch eine kleinere Frage,

wenn ich wollte dass ein NPC mich anspricht wenn ich in seine Nähe komme, wie müsste das Script dazu aussehen?

Gruss rojep
 
Dafür legst du so ein Skript auf den NPC:
Code:
scn name

short doonce

Begin GameMode

if doonce
 return
elseif getDistance player <= <Entfernung-in-Metern-mal-70>
 set doonce to 1
 startConversation player <Topic-ID>
endif

end
 
  • Like
Reaktionen: Finkreghan
Hallo!

Ich hätte da noch ein mehr oder weniger kleines Anliegen. Ich habe es bereits selbst probiert.. Und es hat natürlich nicht funktionieren wollen. :(

Stellen wir uns folgendes vor: Der Spieler betritt einen Raum, und durchläuft dabei einen Trigger. Nun werden verschiedene Objekte enabled, die vorher disabled waren (10 an der Zahl). Um das zu kaschieren, sollte ein "HitShader" auftauchen. Außerdem soll nun ein Sound abgespielt werden (Dieser ist 120 Sekunden lang) Desweiteren soll nun ein Timer starten - In 120 Sekunden sollen die nun "enableden" Objekte wieder disabled werden.

Das heißt: Spieler läuft durch Trigger: Hitshader. 10 Objekte werden enabled. 120 Sekunden langer Sound wird abgespielt. Nach 120 Sekunden werden die 10 Objekte wieder disabled, wieder mit Hitshader. Das wäre es auch schon.

Es wäre echt klasse, wenn mir jemand helfen könnte!

Mit freundlichen Grüßen,

MadHatter :)
 
Also ich bin mir nicht sicher, ob ein so langer Sound abspielbar ist. Wenn nicht, könnte man es mit SayTo player machen. Prinzipiell müsste das Script so aussehen:
Code:
scn name
short once
float timer

begin ontrigger player
if once==0
playsound ID
triggerhitshader 10
REF01.enable
REF02.enable
REF03.enable
REF04.enable
REF05.enable
.......
REF20.enable
set once to 1
endif
end

begin gamemode
if once==1
set timer to (timer + getsecondspassed)
 if timer >= 120
 REF01.disable
 REF02.disable
 REF03.disable
 REF04.disable
 REF05.disable
 .......
 REF20.disable
 set once to 2
 set timer to 0
 endif
endif
end
 
  • Like
Reaktionen: MadHatter16
Meinst du, dass er zum Beispiel wenn er getroffen wird und taumelt das "wüoah" dem einer anderen Rasse entspricht?
Dann müsste man dem Spiel per Script vorgaukeln, dass der Charakter der und der Rasse angehört, allerdings nur stimmlich..
 
Hm, ich dachte mir, ich lege einen Händler ganz normal an - wollte aber dann per Zauber oder Trigger den Händlermodus aufrufen können.

Wäre dies möglich?