Construction Set Skriptthread zum Construction Set

Das:

set 00Quest1.enemycount to 00Quest1.enemycount + 1

hatt bei mir noch nie funktioniert. (wesshalb ich auf Globals zurückgreife)
 
Setze mal alles, was mit 00 anfängt, in Anfrührungsstriche, also das:

Code:
set 00Quest1.enemycount to 00Quest1.enemycount + 1
in das umändern:
Code:
set "00Quest1".enemycount to "00Quest1".enemycount + 1

Ich bin mir nicht sicher, aber ich glaube das hatte damals funktioniert. Dennoch, gewöhne dir an, IDs ordentlich zu vergeben. Nullen bzw. Zahlen allgemein am Anfang einer ID sind eigentlich tabu beim Modden, auch wenn es hart klingt. Wenn überhaupt solche IDs, dann nimm schon aa. Auch wenn das jeder tut und den Sinn der Prefixe zerstört.
 
  • Like
Reaktionen: Anti_Held
Script Problem!

Hallo,

Ich wollte wieder einmal einen Script schreiben aber es gibt Probleme :
So lautet der Script:


ScriptName AzoronsSchwerScript

short controlvar

short button

Begin OnActivate

If (controlvar == 0)

MessageBox "Nur der Meister darf dieses Schwer an sich nehmen", "Der Meister ist hier!", "Komm zu mir Drachenklaue, so sei du mein!"

Set controlvar to 1

ElseIf ( controlvar > 1 )

Activate

EndIf

End

Begin GameMode

If (controlvar == 1)

Set button to GetButtonPressed

If (button == -1)

Return

ElseIf (button == 1)

Messagebox "Für die Natur, Meister!"

Set controlvar to 5

Else

Messagebox "Deine Antwort war falsch!"

Set controlvar to 3

Return

End

Begin GameMode

If (controlvar == 3)

MessageBox "Es gibt noch eine Chance", "Verzeih mir!"

Set button to getbuttonpressed

If (button == 0)

MessageBox "Eine andere Frage", "Fisch", "Schlange"

Set controlvar to 4

EndIf

EndIf

EndIf

EndIf

End

Begin Gamemode

If (controlvar == 4)

Set Button to getbuttonpressed

If (button == -1)

Return

ElseIf (button 1)

Messagebox "Richtig!"

Activate

Set controlvar to 7

Else

MessageBox "Du wirst sterben, lügner"

player.kill

EndIf

EndIf

If (controlvar == 5)

Activate

Set controlvar to 6

If (controlvar == 7)

Activate

EndIf

EndIf

End


So also wenn ich die falsche Antwort gebe komm der text Deine Antwort ist Falsch aber danach kommt keiner und die truhe lässt sich öffnen aber ich will dass nach dem Falsche antwort text der andere kommt mir es gibt noch eine chance
 
Ja, wenn ich ich den gegenstand (Schwert) aufheben will, sollte ein fenster kommen und
mich fragen welche antwort richtig ist
wenn ich die richtige sage (das ist die zweite)
kommt nochmal ein fenster in dem steht (Für die Natur, Meister!)
Wenn man die falsche antwort betätigt erscheint ein fenster mit Die antwort ist falsch.
wenn man fertig klickt sollte noch ein fenster kommen mit Es gibt noch eine chance ...
wenn man verzeih mir klickt kommt ein fenster mit einer neuen frage, wenn diese frage richtig beantwortet kann man den gegenstand nehmen, wenn nicht kommt ein fenster mit du lügner und so und man wird wenn man fertig klickt getötet^^
 
Ich habe jetzt keine Lust mich durch das Wirrwarr durchzuwurschteln, aber es wäre besser, wenn du das Skript etwas formatierst und übersichtlicher gestaltest (if-Schleifen einrücken, keine unnützen Zeilenumbrüche, Code-Box). Was mir auf die schnelle aufgefallen ist, ist, dass du mehrere "GameMode"-Blöcke verwendest. Einer sollte dabei aber reichen. Außerdem solltest du darauf achten, dass sich "if" und "endif" ausgleichen und was noch auffällt:
Code:
if controlvar == 5
 if controlvar == 7
wird niemald funktionieren.
 
  • Like
Reaktionen: Azoron
Hi.

Ich habe einen Zuchtkäfig aus oblivion (ObTortureCage2)

Wie kann ich diesen durch einen Activator (meinswitch) öffnen?

ich hatte an folgendes gedacht:

Code:
scn meinscript

begin onActivate && IsActorRef player
<REFDESKÄFIGS>.Activate
end

würde das so gehen, oder worauf muss ich achten?

kann ich das iwie per Parent lösen?
 
@Schmelz

Danke für die Hilfe, werd mich dieses WE erstmal wieder damit beschäftigen und hoffe das ich es jetzt auch hinkriege. ^^
 
Moin, ich habe ein Problem bei folgendem Script :

scn 00Sanuel

short doonce

Begin GameMode
if (getdistance player <= 210) && (doonce == 0)
set doonce to 1
StartConversation player, Testa
endif
End


Aus irgendeinem Grund will der Npc mich nicht ansprechen .
Weiß jemand Rat ?
 
Liegt das Skript auch wirklich auf dem NPC?

Wenn ja, weißt du ob das Skript überhaupt begonnen wird oder komplett nicht ausgeführt wird, kannst ja zum testen einfach "Message "XY"" einfügen und schauen ob es Ingame angezeigt wird.

MfG Master of Worlds
 
  • Like
Reaktionen: Anti_Held
Die Message erscheint.

Aber der Kerl will mich einfach nicht ansprechen.. Hat das vieleicht etwas damit zu tun das enabled wurde ?
 
Hallo,

zweite Frage: Wie kann ich zwei Message Boxen hintereinander machen ?
sodass wenn die erste erscheint beim wegdrücken die 2te erscheint?
(bitte ganzen script)
Bin beim Scripten erst beim Anfang ... modelieren ftw *hust*
 
Hi also es ist der OBClawSwitchTall in Kombination mit dem OBTortureCage01

wie muss das Script aussehen?


und wie kann ich bei einem Trigger die referenz des Actorrs einfangen und mit set in eine Var speichern?
 
Hi also es ist der OBClawSwitchTall in Kombination mit dem OBTortureCage01

wie muss das Script aussehen?


und wie kann ich bei einem Trigger die referenz des Actorrs einfangen und mit set in eine Var speichern?

Die Referenz bekommst du mit "getActionRef".

Und als Skript kannst du doch einfach das Standard-Skript für den Schalter nehmen. Das funktioniert doch sicherlich.