Construction Set Skriptthread zum Construction Set

Wo hab ich das denn geschrieben? :?

Lass das "disable" weg und benutze stattdessen eine Variable. Du kannst auch bloß mit "getStage"/"setStage" arbeiten, weil das ja an sich wie eine Variable funktioniert. Eine andere Möglichkeit wäre, den Trigger erst ab einer gewissen Stage zu enablen. Ich würde es aber so schreiben:
Code:
scn name

Begin onTrigger player

if getStage <Quest-ID> == <Stage>
 setStage <Quest-ID> <höhere Stage>
 messagebox "bla"
endif

end
 
Oh....sorry Diarrhoe, das warst gar nicht du, das war ja Der Waldmeister, da habe ich falsch geguckt. Auf jeden Fall ist es im Post 6600 passiert.

Also, das SetStage...brauche ich wahrscheinlich nicht, weil dieser Trigger keine Stage auslösen soll. Dieses Fenster soll nur erscheinen, um den Player zwischendurch mit Informationen zu versorgen. Die nächste Stage wird erst später ausgelöst. Also ich lasse das Setstage einfach aus und probiere es ingame mal aus...


EDIT: so funktioniert das Script auch nicht. Muss denn nicht vielleicht noch ein doonce dazu? Das ist nämlich in meinen anderen Scripts mit drin, und die funktionieren alle.
 
Zuletzt bearbeitet:
Hat einwandfrei funktioniert.
Danke!

Dafür sollte ein Skript auf dem Trigger ausreichen:
Code:
scn name

short triggered

Begin onTrigger player

if triggered == 0
 <Tür-Ref>.disable
 <Gegner1-Ref>.enable
 <Gegner2-Ref>.enable
 ...
 set triggered to 1
endif

end

Begin GameMode

if triggered == 1
 if <Gegner1-Ref>.getDead == 1
  if <Gegner2-Ref>.getDead == 1
   ...
    <Tür-Ref>.enable
    set triggered to 2
   ...
  endif
 endif
endif

end
 
@Arielle: Das "setStage" ist in dem Skript eher ein Ersatz für eine Variable. Du kannst das Skript auch so schreiben:
Code:
scn name

short doonce

Begin onTrigger player

if getStage <Quest-ID> == <Stage>
 if doonce == 0
  set doonce to 1
  messagebox "bla"
 endif
endif

end
 
  • Like
Reaktionen: Arielle 1000
Dieses geht leider auch nicht. Das Messagefenster erscheint einfach nicht. Ist aber auch nicht so schlimm. Ich habe das alte Script wieder eingesetzt, jetzt erscheint wenigstens das Messagefenster wieder. Dann muss ich mich eben so behelfen. Danke trotzdem für deine Hilfe.
 
@Arielle:
Hast du es schon mit Gamemode probiert? also ungefähr so :

Code:
short doonce

Begin onTrigger player

if getStage <Quest-ID> == <Stage> && doonce == 0
  set doonce to 1
endif

end

begin gamemode
    if doonce == 1
        messagebox "dein text"
        set doonce to 2
    endif
end
 
  • Like
Reaktionen: Arielle 1000
Ich bräuchte ein Script für eine Lampe, damit man sie anzünden kann, aber nur wenn der player eine Fackel in seinem Inventar hat.

Wäre das dann in etwa so?:

scn Lampenscript

short FackelimInventar

Begin OnActivate

if player (weiß nicht was ich schreiben muss für: Wenn er die Fackel im Inventar hat)

Lampeausref. disable
Lampeanref. enable

(Weiß nicht wie ich schreiben soll: Oder wenn er keine Fackel im Inventar hat)

messagebox: "Ihr benötigt eine Fackel um die Lampe zu entzünden"

Endif

End


Da ich noch ein absoluter Anfänger in Sachen Scripts bin, hoffe ich jemand kann mir weiterhelfen und mir meine Fehler (sofern vorhanden :-D) verzeihen und korrigieren.
 
@V0g3I

Auch für dein Script sage ich danke, but it does not work! Leider will bei allen vorgeschlagenen Script-Versionen das Message-Fenster nicht erscheinen. Deshalb setze ich jetzt einfach das alte Script wieder ein, das geht zwar auch dann auf, wenn die Quest noch gar nicht gestartet ist, aber immerhin hat der Player es gesehen, und ich hoffe, dass er diese Message meiner Quest zuordnen kann. Diese Lösung ist auf jeden Fall besser als gar keine.

LG
Arielle 1000
 
@ Arielle:

Mach es doch so, dass das Trigger erst erscheint, nachdem die Queststage erreicht wurde.
Also so:

Code:
scn ...

float fQuestDelayTime

Begin GameMode

set fQuestDelayTime to 0.001

If getStage <Quest-ID> xx
   <TriggerRef>.enable

end
Bin grade nicht sicher, ob bei "getStage" noch ein "==" hinkommt. Probier einfach mal aus. ;)
Code:
scn ...

short triggered

Begin OnTriggerActor Player

if triggered == 0
    set triggered to 1
      MessageBox "Text"

  endif
end
mfg
Kahmul
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Arielle 1000
Meister von Cyrodiil der script müsste ungefähr so lauten, bei mir gabs jetzt keine Fehlermeldung. Es ist nur wichtig dass du die Lampe als Persistent Reference gestellt hast:

scn Lampenscript

short istan

Begin OnActivate

if getitemcount Torch02 < 1
Lampeausref. disable
messagebox "Ihr benötigt eine Fackel um die Lampe zu entzünden"
elseif istan == 1
Lampeausref. disable
elseif getitemcount Torch02 >= 1 && istan == 0
Lampeausref. enable
set istan to 1
Endif

End
 
  • Like
Reaktionen: Meister von Cyrodiil
Danke aber in der 5. Zeile darf die Lampe nicht verschwinden, es erscheint ja keine Lampe die an ist, da der player ja keine Fackel im Inventar hat. So wäre dann gar keine Lampe mehr zum aktivierne da.
 
@Kahmul
Dein erstes Script verursacht eine Fehlermeldung, dein zweites lässt das Questfenster auch ausserhalb der Quest erscheinen. Lass mal gut sein! Ich bleib bei der ersten Version, die erfüllt auch ihren Zweck. Trotzdem danke für deine Hilfe.

LG
Arielle 1000
 
Das Trigger muss logischerweise zuerst disablet sein. Wenn dem nicht so ist, ist es logisch, dass das so passiert.
Und zum 1. habe ich etwas darunter geschrieben.

mfg
Kahmul
 
@Meister von Cyrodiil :
Ja gut ich denke solche sachen kannst du ruhig weglassen, so habe ich es gemacht, damit du die Lampe immer wieder ein und ausschalten kannst, vorrausgesetzt du hast eine Fackel im Inventar

EDIT:
Sorry nicht ganz genau so =). Du musst zum einschalten immer eine Fackel bei dir tragen, zum ausschalten nicht
 
Zuletzt bearbeitet:
Echt? Ich dachte wenn man dann keine Fackel im Inventar hat und die Lampe trotzdem aktiviert verschwindet sie einfach unwiederruflich. So habe ich das Script jetzt gelesen.
 
@arielle: bist du dir auch ganz sicher dass du zum zeitpunkt des triggerns die queststage erreicht hast?

und achte darauf dass du die messagebox ZWISCHEN die bedingung mit der variable und dem set-teil der variable schreibst,wenn du nämlich zb:

if doonce==0
set doonce to 1
messagebox "blubb"

hast könnte es ja sein dass der rest einfach übersprungen wird,weil doonce bereits wieder ungleich 1 ist...ansonsten fällt mir auch nichts mehr ein.unsere vorschläge hätten eig alle funktionieren müssen
 
@Waldmeister

doch, die Queststage war da, allerdings habe ich die Mission nicht immer wieder neu anfangen wollen, deshalb habe ich mit der Konsole die Stage herbeigeführt. Interessanterweise hat nur mein allererstes Script funktioniert, bei allen anderen erschien das Fenster gar nicht oder auch ausserhalb der Mission. Vielleicht stelle ich mich auch nur dumm an und habe irgendwas falsch eingegeben. Ich werde jetzt erst mal alle anderen Fehlerchen in meiner Mod ausbügeln, und die Triggerboxen nehme ich mir als letztes vor. Wäre doch gelacht, wenn ich das mit eurer Hilfe nicht hinkriegen würde.

LG
Arielle 1000
 
also man könnte ne variable einfügen...


scn triggerboxscript
short ApfelDrinnen

begin ontrigger apple01
set apfeldrinnen to 1
if apfeldrinnen==1
<befehl>
endif
end

allerdings gibt es soweit ich weiß keinen befehl wie "bein onuntrigger" der die vaariable wieder auf 0 setzen würde...dafür könnte man lauter triggerboxen um die erste drumrumsetzen die die variable auf 0 setzen sobald der apfel die triggert...was bessres fällt mir nich ein^^"