Construction Set Skriptthread zum Construction Set

ja das wäre ideal. den es handelt isch ja um ein portal, das durch eine Magische Kugel aufgeschlossen wird... man später aber trozdme ent durhc kann^^
 
Hi,
ich habe noch eine Frage zu meinem alten Script. Und zwar will ich, dass nach dem Aktivieren eines Activators eine MessageBox mit Frage erscheint und 5 Antworten. Drei sind falsch und man stirbt, die eine öffnet eine Tür und die letzte bricht einfach ab. Und je nach dem, welche Antwort ich anklicke, erscheint noch eine Message. Und zwar sieht das Script jetzt so aus:

scn MessageBoxNachAktivierungEinesActivators

short answer
short FragenAktiv

Begin OnActivate
Set FragenAktiv to 1
MessageBox "Frage.", "Antwort0(falsch)", "Antwort1(richtig)", "Antwort2(falsch)", "Antwort3(falsch)", "Antwort4(abbrechen)"
End

Begin GameMode
If FragenAktiv == 1
set answer to getbuttonpressed
If answer == 0
player.kill
Messagebox "Die Antwort war falsch. Der Tod wird euch ereilen"
Elseif answer == 1
Messagebox "Ihr überlebt."
set TenarSinkDoor01.getlocklevel to 0
Elseif answer == 2
player.kill
Messagebox "Die Antwort war falsch. Der Tod wird euch ereilen"
Elseif answer == 3
player.kill
Messagebox "Die Antwort war falsch. Der Tod wird euch ereilen"
Elseif answer == 4
Messagebox "Ihr überlebt."
Endif
set Fragenaktiv to 0
Endif
End

Ich kann jetzt zwar alle Antworten anklicken, jedoch kommen die Messageboxen nach der Antwort nicht und man stirbt auch nicht (Bei falscher Antwort). Warum?
 
Zuletzt bearbeitet:
nein, das kill braucht ja eine Reference, also wer gekillt werden soll.
Code:
[ReferenceID].kill
Wenn nur "kill" da steht (gilt für die meisten Befehle), dann bezieht sich der Befehl immer auf das Objekt, auf dem das script liegt.
 
andere möglichkeit wäreja , ums stylischer aussehen zu alssen nen Mega Zauber zu machen und dann cast SpellID


wie müsste denn jetzt mein Script aussehen, wenn man des so wie Arcarum Anator amcht?
 
Hi ich brauche einen script.

Wenn ich jetzt einen Ring anziehe soll der spieler sich zum Vampir verwandeln und wenn ich ihn abnehme soll er wieder ein mensch sein.

danke im vorraus
 
hmm sersuch mal so:
Code:
scn vampirring

Begin OnEquip
addspell Spell ID von dieser Krankheit
End

Begin OnUndequip (geht des)
removespell Spell ID von dieser Krankheit
End

End
 
wie müsste denn jetzt mein Script aussehen, wenn man des so wie Arcarum Anator amcht?
Ich nenne die zweite "fake"-Tür einfach mal Tuer2. Das erste Script müsste dann auf den Schlüssel.
Code:
scn 00SchluesselScript

Begin OnAdd player
Tuer2.disable
end
Das nächste Script ist für die Originaltür.
Code:
scn 00playerdoorscript1Begin

OnActivate
activate
Messagebox "Als ihr versucht durch das Portal zu gehen, hört ihr etwas schreien, ihr zerfließt und werdet aus dem Portal gestoßen... Ihr fühlt euch wie vom Blitz getroffen."
cast Mg05FingerSpell05 playerEndif
End
da es bei dem Blitz ja anscheinend nicht so ganz hinhaut, dass der den Spieler auch trifft, wenn er auf der andern Seite ist, mach ich nen timer mit rein, der dann die Tür auf der anderen Seite blitzen lässt und auch die messagebox erst auf der anderen seite erscheint.

Code:
scn 00playerdoorscript1Begin
 
 float timer
short doonce
 
 OnActivate
set timer to 1
set doonce to 1
 activate
 End

Begin GameMode
if (doonce == 1) && (timer > 0)
set timer to (timer - getsecondspassed)
elseif (doonce == 1) && (timer <= 0)
 Messagebox "Als ihr versucht durch das Portal zu gehen, hört ihr etwas schreien, ihr zerfließt und werdet aus dem Portal gestoßen... Ihr fühlt euch wie vom Blitz getroffen."
  cast Mg05FingerSpell05 player
set doonce to 2
endif
Ich hoffe, dass es mit einem der beiden scripts funktioniert.


scn vampirringBegin OnEquipaddspell Spell ID von dieser KrankheitEndBegin OnUndequip (geht des)removespell Spell ID von dieser KrankheitEnd
Das Begin OnUnequip gibt es schon, aber so bekommt der Spieler ja nur die Porphyrische Hämophilie, muss also noch drei Tage warten. Danach ist es ja gar nicht mehr diese Krankheit sondern eine Reihe von Zaubern und Scripten. Am besten siehst du (Friedolin) dir mal die Scripts von diesem einen Stein in der testinhall und dem Heiltrank an. Die dnan noch in einen Begin OnEquip/Unequip Block und fertig :)
 
Zuletzt bearbeitet:
Ich hab eine peinliche Frage zu einem Script. Und zwar möchte ich, dass ich nach dem Aktivieren eines Objekts einen Schlüssel bekommen. Und mein Script sieht so aus:

Code:
Begin OnActivate
Player.AddItem SchlüsselId 1
End

Doch dann habe ich nach ein paar Sekunden ungefähr 854 Schlüssel :lol:
Ich nehme an das "AddItem" ist falsch:huh:. Wie müsste der Script jetzt richtig aussehen?
 
Zuletzt bearbeitet:
Warum hast du dann 854 Schlüssel? ein OnActivate Block wird doch nur ausgeführt, wenn der Activator aktiviert wird, ergo msüsste man um 854 Schlüssel zu erhalten auch 854 mal klicken (ohne doonce).
 
Hallo ich versuch mich hier grade an meinem ersten Skript aber es will einfach nicht funzen, kann mir villeicht jemand helfen und mir zeigen wies richtig aussehen müsste!?!
scn dpPocketMoneySpell

Long Gold001

Begin ScriptEffectStart
MessageBox "Wieviel Gold wollt Ihr haben?", "1000", "5000", "10000", "50000", "100000" , "Dieses mal keins!"
end

Begin GameMode
player.additem gold001 to GetButtonPressed
if gold001 == 0
;Auswahl 1 1000
player.additem gold001 1000 1
elseif gold001 == 1
;Auswahl 2 5000
player.additem gold001 5000 1
elseif gold001 == 2
;Auswahl 3 10000
player.additem gold001 10000 1
elseif gold001 == 3
;Auswahl 4 50000
player.additem gold001 50000 1
elseif gold001 == 4
;Auswahl 5 100000
player.additem gold001 100000 1
elseif gold001 == 5
;Auswahl 6 Dieses mal keins!
ReleaseGold001Override
endif
end

Begin ScriptEffectUpdate
End

Begin ScriptEffectFinish
End
Währe echt nett von euch,Danke!:?
 
@ Arcanum Antor: Die 854 Schlüssel war eine Beispielzahl. Könnten auch 855 oder 866 oder meinetwegen 1234 sein, wenn du verstehst, was ich meine. Es kommt einfach am laufenden Band ein und derselbe Schlüssel in mein Inventar. Hab's jetzt aber bemerkt. Denn mein Script begann eigentlich so: Begin GameMode,
was ich jetzt bemerkt hab :oops:


@Skoomadieb: So würd ich es machen.
Ich habe relativ selten Zauber gescriptet (Ich nehme an, dass es einer ist:huh: :lol:), deshalb kann man vielleicht die Variable "var" auch weglassen. Auf alle Fälle klappt der Script als Zauber. Ich habe ihn selber ausprobiert und macht ziemlich Spaß;):

Code:
scn dpPocketMoneySpell

Long Gold001
Short var

Begin ScriptEffectStart
Set var to 1
MessageBox "Wieviel Gold wollt Ihr haben?", "1000", "5000", "10000", "50000", "100000" , "Dieses mal keins!"
end

Begin GameMode
set gold001 to GetButtonPressed
If var == 1
if gold001 == 0
player.additem gold001 1000
set var to 0
elseif gold001 == 1
player.additem gold001 5000
set var to 0
elseif gold001 == 2
player.additem gold001 10000
set var to 0
elseif gold001 == 3
player.additem gold001 50000
set var to 0
elseif gold001 == 4 
player.additem gold001 100000
set var to 0
elseif gold001 == 5
set var to 0
endif
endif
end

Begin ScriptEffectUpdate
End

Begin ScriptEffectFinish
End
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Skoomadieb
(Wie) Kann ich per Script eine Tür auf- bzw. verschließen? Ich habe eine Tür, die auf "Unmöglich" verschlossen ist und auch keinen Schlüssel hat. Aktiviert der Spieler jetzt eine andere Tür (die, die offen ist) sollen die anderen automatisch aufgeschlossen werden. Ist es möglich, diese per Script zu öffnen oder muss ich eine Zweittür erstellen, die dann "Enabled" wird?
 
Der Script Befehl für "Aufschließen" ist derselbe wie der Konsolenbefehl, nämlich RefID.unlock.
Der Befehl zum verschließen von Türen ist RefID.lock XY (XY: Zahl des Schwierigkeit: 7: Sehr Leicht ; 20: Leicht ; 40: Durchschnitt (oder wie hieß das im Spiel?) ; 80: Schwer ; 99: Sehr Schwer ; 100: Unmöglich).

Der Befehl, der abfragt, ob eine Tür verschlüssen ist heißt GetLocked (wird zu 1, wenn die Tür verschlossen ist), bzw. GetLockLevel (nimmt die Zahl des "LockLevels" an)
 
  • Like
Reaktionen: Fellan
Danke mal wieder.

Nächste Frage: Ich starte mit "ObjektID.Roatate Z, -10" die Rotation eines Objektes von "-10" Punkten pro Sekunde. Das ganze ist mit einem Timer verbunden, der das ganze nach 9 Sekunden anhalten soll, das Objekt hat sich also um 90 Grad gedreht. Aber wie halte ich einen "Rotate"-Befehl wieder an? Mit "ObjektID.Rotate Z, 0" oder gibt es dafür einen gesonderten Befehl? Im Wiki habe ich nämlich nichts wie "StopRotate" o.ä. gefunden.
 
Rotiert das Objekt eigentlich unendlich, wenn man den Befehl nur einmal ausführt oder muss man den Befehl in ein GameMode-Block schreiben?

Wenn das mit dem GameMode stimmt, wäre die Lösung ja einfach (als Bedingung einfach if timer <= 0), aber ansonsten würde ich es auch so machen, wie du, also mit dem RefID.Rotate Z 0
 
Itembeschwörung

Was soll der Script bewirken?----> Er soll Weinflaschen am besten 3 beschwören!!

Und dieser Zauber soll aus einem Buch gelernt werden!!

Man soll aber nicht unendlich beschwören können.

Danke im Voraus!!

MFG aufspringer

PS.: Am besten wäre natürlich ein Zauber wo man einen kompletten gedeckten Tisch mit allem Essen beschwören kann!! Aber dass scheint zu schwer zu sein!!
 
Hi aufspringer,

ich weiß nicht wie du es meinst. Sollen die Weinflaschen ins Inventar beschwört werden oder einfach vor deinem Char runterfallen? Für die erste Möglichkeit hätte ich diesen Script zu bieten.
Getestet und für gut enpfunden:-D:

Der Script für den Zauber (Kannst du gleich hierraus kopieren bzw. ziehen):
Code:
scn ScriptnameDenDuWillst

Begin ScriptEffectStart
player.AddItem [IDdesWeines] 3
End

Begin Scripteffectupdate
end

Begin ScriptEffectFinish
End

Der Script für das Buch (Kannst du gleich hierraus kopieren bzw. ziehen):
Code:
scn ScritnameDenDuWillstFürDasBuch

Begin OnActivate
activate
player.Addspell [ZauberID]
End
 
Zuletzt bearbeitet: