Construction Set Skriptthread zum Construction Set

Meines Wissens nach nicht möglich. Du kannst nur folgende Menus aufrufen lassen:
Code:
ShowEnchantment - eine Verzauberung auf einen Gegenstand legen
ShowSpellMaking - einen Zauber erstellen

Falls es jemand besser weiß, dann bitte hier reinschreiben. Ich würde es auch gerne wissen (man lernt ja nie aus^^)

MfG Gildur
 
Ich hab grad bei ner anderen MOD geguckt. Da ist der Script für das Repariermenü so:
Code:
scriptName aaabesch


Begin OnActivate

player.additem RepairHammer 1000 
short abc  
set abc to player.GetItemCount RepairHammer
player.EquipItem RepairHammer
player.removeitem RepairHammer abc
end
So könnt man es ja mit jedem Menü machen. Wär aber trotzdem nett wenn es einen Befehl dafür gäb.
 
Stimmt, hätte ich drauf kommen können :lol:
Code:
scn AlchemieMenu

Begin OnActivate
if player.getitemcount (MortarPestle => 1)
player.equipitem MortarPestle
elseif player.getitemcount (MortarPestleApprentice => 1)
player.equipitem MortarPestleApprentice
elseif (player.getitemcount MortarPestleJourneyman => 1)
player.equipitem MortarPestleJourneyman
elseif (player.getitemcount MortarPestleExpert => 1)
player.equipitem MortarPestleExpert
elseif (player.getitemcount MortarPestleMaster => 1)
player.equipitem MortarPestleMaster
else
message ""
player.additem MortarPestle 1
player.equipitem MortarPestle
message ""
player.removeitem MortarPestle 1
endif
end
 
Hi!
So und da kommt auch schon mein zweites problem. Was ist an diesem Script falsch?
Code:
scn aaareisescript
short reise
Begin OnActivate
message "xyz"
messagebox "Was wollt ihr tun Kapitän?", "Zum Hafen von Anvil", "Zum Hafen der Kaiserstadt", "In See stechen", "Nichts"
set reise to getbuttonpressed
if reise == 0 
player.moveto anviel
hafen01.disable
hafen02.disable
hafen03.disable
hafen04.disable
hafen05.disable
hafen06.disable
hafen07.disable
hafen08.disable
hafen09.disable
hafen10.disable
hafen11.disable
scriptenable01.disable
scriptenable02.disable
scriptenable03.disable
elseif reise == 1 
player.moveto hafenstadt
hafen01.enable
hafen02.enable
hafen03.enable
hafen04.enable
hafen05.enable
hafen06.enable
hafen07.enable
hafen08.enable
hafen09.enable
hafen10.enable
hafen11.enable
scriptenable01.enable
scriptenable02.enable
scriptenable03.enable
endif
end
Wenn ich den ausgewählten Activator klicke passiert rein gar nichts.
mfg dGdA
 
Hi!
So und da kommt auch schon mein zweites problem. Was ist an diesem Script falsch?
Code:
scn aaareisescript
short reise
Begin OnActivate
message "xyz"
messagebox "Was wollt ihr tun Kapitän?", "Zum Hafen von Anvil", "Zum Hafen der Kaiserstadt", "In See stechen", "Nichts"
set reise to getbuttonpressed
if reise == 0 
player.moveto anvi[COLOR=Red]e[/COLOR]l
hafen01.disable
hafen02.disable
hafen03.disable
hafen04.disable
hafen05.disable
hafen06.disable
hafen07.disable
hafen08.disable
hafen09.disable
hafen10.disable
hafen11.disable
scriptenable01.disable
scriptenable02.disable
scriptenable03.disable
elseif reise == 1 
player.moveto hafenstadt
hafen01.enable
hafen02.enable
hafen03.enable
hafen04.enable
hafen05.enable
hafen06.enable
hafen07.enable
hafen08.enable
hafen09.enable
hafen10.enable
hafen11.enable
scriptenable01.enable
scriptenable02.enable
scriptenable03.enable
endif
end
Wenn ich den ausgewählten Activator klicke passiert rein gar nichts.
mfg dGdA


Hiho,
ich weiss es leider nicht. Aber Anvil schreibt man doch ohne "e". Ich habe es im Zitat rotmarkiert. Falls es nur am Schreibfehler liegt. ;)

GreeZ,
Suchan
 
Also ich habe mir was überlegt und frage erst mal ob es Möglich ist.

Ich will einen Rüstungsständer für eine Samurairüstung entwerfen und zwar in 4 Formen.

Form 1 Die komplette Rüstung auf den Ständer
Form 2 Ständer lehr bis auf den Helm
Form 3 Rüstung auf den Ständer nur der Helm fehlt
Form 4 alles weg nur der Ständer da

So das ganze soll so Funktionieren wie eine Truhe.Das heisst wenn der Spieler die Truhe öffnet und sich ein Rüsungsteil rausnimt soll das auch zu sehen sein und so die verschiedenen Formen sichtbar sein.Ist sowas möglich zu machen oder nicht.Wenn ja würde ich mit den Ständer anfangen und das auch für einen Schwertständer machen wollen.
 
@ Pandur: Ja, es ist möglich. Wenn ich es richtig verstanden habe, möchtest du den Ständer als Container verwenden, oder? Man könnte theoretisch den Helm und die Rüstung nochmal als Static erstellen, sie an die richtige Position hängen und dann immer disablen/enablen, je nachdem was gerade im Container ist. Der Script würde so lauten:
Code:
scn BeliebigerScriptName

short doonce
short myself

Begin GameMode
If doonce == 0
set myself to getself
Endif
If myself.getItemCount [IDderRüstung] >= 1
[ReferenzderRüstung].enable
elseif myself.getItemCount [IDderRüstung] < 1
[ReferenzDerRüstung.disable
Endif
If myself.getItemCount [IDdesHelms] >= 1
[ReferenzdesHelms].enable
elseif myself.getItemCount [IDdesHelms] < 1
[ReferenzDesHelms].disable
Endif
End
So könnte man das zum Beispiel machen.

@ GdA:
Code:
scn aaareisescript

short reise

Begin OnActivate
message "xyz"
messagebox "Was wollt ihr tun Kapitän?", "Zum Hafen von Anvil", "Zum Hafen der Kaiserstadt", "In See stechen", "Nichts"
End

Begin GameMode
set reise to getbuttonpressed
if reise == 0 
hafen01.disable
hafen02.disable
hafen03.disable
hafen04.disable
hafen05.disable
hafen06.disable
hafen07.disable
hafen08.disable
hafen09.disable
hafen10.disable
hafen11.disable
scriptenable01.disable
scriptenable02.disable
scriptenable03.disable
player.moveto anviel
elseif reise == 1 
hafen01.enable
hafen02.enable
hafen03.enable
hafen04.enable
hafen05.enable
hafen06.enable
hafen07.enable
hafen08.enable
hafen09.enable
hafen10.enable
hafen11.enable
scriptenable01.enable
scriptenable02.enable
scriptenable03.enable
player.moveto hafenstadt
endif
end
Achte immer darauf, getbuttonpressed-Funktionen in den Gamemode rein zu bringen und moveto-befehle immer erst zum Schluss zu schreiben, da danach der Script aufhört zu "funktionieren". Und freunde dich auch mal mit der "Enable Parent"-Option an ;)

MfG Gildur
 
he danke gut ich mach mich dann demnähst mal bei und komme wenn ich alles soweit habe darauf zurück.Bzw entweder schreib ich dir hier ne pn oder wir machen das in unsern Forum.Danke schon mal.
 
Hi! Ich brauche drigend einen Script.
Während man ein Buch liest sollte eine Sounddatei abgespielt werden. Wenn man fertig ist, soll auch die Soundatei aufhören zu spielen.
Danke schon mal im Vorraus.
Bitte *fleh*
 
Zuletzt bearbeitet:
Code:
scn BeliebigerScriptName

short doonce
short myself

Begin GameMode
If doonce == 0
set myself to getself
Endif
If myself.getItemCount [IDderRüstung] >= 1
[ReferenzderRüstung].enable
elseif myself.getItemCount [IDderRüstung] < 1
[ReferenzDerRüstung.disable
Endif
If myself.getItemCount [IDdesHelms] >= 1
[ReferenzdesHelms].enable
elseif myself.getItemCount [IDdesHelms] < 1
[ReferenzDesHelms].disable
Endif
End

Wäre es nicht besser mit Begin OnActivate? Und wofür das doonce?
 
Hi! Ich brauche drigend einen Script.
Während man ein Buch liest sollte eine Sounddatei abgespielt werden. Wenn man fertig ist, soll auch die Soundatei aufhören zu spielen.
Danke schon mal im Vorraus.
Liegt das Buch in einer Truhe oder einafch so herum?
Für Truhe:
Code:
scn Liederbuch

Begin OnEquip
streamMusic "[I][data\music\...][/I]"       ;die " sind wichtig ;)
end

   ;ab hier bin ich mir nicht sicher, ob das wirkt, wenn man das Buch schließt, aber spätestens nachdem der Track abgespielt wird, hört es auf^^

Begin OnUnequip
stramMusic Random
end
Für Einfach so rumliegen:
Code:
scn Liederbuch

Begin OnActivate
activate
streamMusic "[I][data\music\...][/I]"
end
 
Wäre es nicht besser mit Begin OnActivate? Und wofür das doonce?

Es wäre bestimmt besser, jedoch nicht möglich. Doonce-befehl deswegen, um performance zu sparen, also damit nicht ständig myself zu getself zugewiesen wird. Kann man theoretisch auch weg lassen. Und ein GameMode deswegen, weil... An einem Beispiel kann man es besser erklären:
Angenommen, du aktivierst die Truhe, dann wird der Script angefragt. Schön und gut. Was ist aber, wenn du die Rüstung aus der Truhe nimmst und die Truhe dann schließt? Dann nützt dir ein OnActivate-block nichts. Ich hoffe, das war einigermaßen verständlich ;)

@ Arcanum Antor: Ja, das habe ich zuerst auch gedacht. Jedoch sollte die Musik ja aufhören, wenn man das Buch wieder schließt. Vielleicht klappt es ja wrklich mit dem OnUnEquip-block, obwohl ich denke, dass Bücher nicht in einen Ausrüstungsslot gepackt werden (während man liest). Aber möglich ist es. Selber bin ich mir nicht sicher, wie man es sonst machen kann.

Edit: @ GdA: Ja, das geht:
Code:
scn Liederbuch

short doonce
float timer

Begin OnActivate
activate
If doonce == 0
set timer to 180 ;die Zeit wird auf ungefähr 3 Minuten gesetzt
set doonce to 1
streamMusic "data\music\..."
Endif
End

Begin GameMode
If timer >= 0
set timer to timer - getsecondpassed
Elseif timer < 0 && doonce == 1
StreamMusic random
set doonce to 0
Endif
End
wenn ich jetzt nichts übersehen habe, müsste das so stimmen ;)

MfG Gildur
 
Zuletzt bearbeitet:
allerdings bringt ein timer ja auch nicht allzu viel, denn laut CSWiki wird nach dem track sowieso ein "normaler" Track abgespielt...

@Gildur: War auch nur ein Versuch mit dem Unequip, ich denke auch nicht wirklich, dass es funktioniert, aber sonst fällt mir einfach nichts ein, was klappen könnte... höchstens einfach, dass es aufhört, sobald man das Menü verlässt (also mit einem einfachen doonce und GameMode-Block beenden)... :?
 
Wie gesagt, mir kam höchstens die Eingebung, es bei Schließen des Menüs zu beenden, sähe dann so aus:
scn Liederbuch

short doonce

Begin OnEquip
streamMusic "[data\music\...]"
set doonce to 1
end

Begin GameMode
if doonce == 1
set doonce to 0
streamMusic random
endif
end
 
Wie gesagt, mir kam höchstens die Eingebung, es bei Schließen des Menüs zu beenden, sähe dann so aus:
scn Liederbuch

short doonce

Begin OnEquip
streamMusic "[data\music\...]"
set doonce to 1
end

Begin GameMode
if doonce == 1
set doonce to 0
streamMusic random
endif
end
Hmm... entweder hast du was vergessen, oder ich habe meine Augen nicht mehr am Kopf. ^^
Er fragt doch nirgendwo ab, ob man im Buchmenü ist, oder Arcanum Antor? Ich dachte, es müsste in etwa so aussehen:
Code:
scn Liederscript

short doonce

Begin OnActivate
activate
streamMusic "[I][data\music\...][/I]"
set doonce to 1
End

Begin GameMode
if doonce == 1 && MenuMode 1026 == 0
set doonce to 0
streamMusic random
endif
end
Oder?

MfG Gildur