Construction Set Skriptthread zum Construction Set

Ich hab auch noch eine Scriptfrage:

Wie muss ein Script lauten, dass dafür sorgt, dass sich 4 Objekte(Statics) konstant um die Eigene Achse drehen?
 
also xmarker braucht man da nicht direkt, das grundscript würde dann irgendwie so aussehen
Code:
scn blascript

short clicked

Begin ScriptEffectStart
MessageBox "Ruft das Obliviontor", "Obliviontor rufen", "Obliviontor entlassen" ;hier kann man in einer Box auswählen was passieren soll
set clicked to GetButtonPressed
If clicked == 0 ;erste wahl
;Hier müsste dann der code zum erstellen des Obliviontores in der nähe des players stehen, muss aber nochmal nachgucken wie das geht
elseif clicked == 1 ;zweite wahl
Refdestores.disable
endif
end

@ Blacklands, das funktioniert, indem man die achse der Objekte pro 10tel sekunde oder so um einen Grad erhöht, habe sowas aber noch nie gemacht, einfach mal suchen, findest bestimmt was

@Hellfire, wenn dann nur mit OBSE
 
  • Like
Reaktionen: <DannyBoy>
Hi Leute hab auch mal ne frage,

Gibt es die möglichkeit per skript das inventar des spielers so zu filtern und auszugeben dass nur bestimmte gegenstände angezeigt werden? (im neuen fenster)

BSP:

ich habe im inventar 2 eisenschwerter einen stahlbrustpanzer 3silberbögen 20silberpfeile 3 Zinntassen etc

nun möchte ich das mir auf Befehl z.b. auswahlmenü per Textbox nur die Silberitems (waffe rüstung teller tassen nuggets) in einem neuen Fenster eingeblendet werden... gibt es dafür eine möglichkeit?

Dafür ist mir keiner bekannt. Falls es ihn gibt, würde mich das auch interessieren!

also xmarker braucht man da nicht direkt, das grundscript würde dann irgendwie so aussehen
Code:
scn blascript

short clicked

Begin ScriptEffectStart
MessageBox "Ruft das Obliviontor", "Obliviontor rufen", "Obliviontor entlassen" ;hier kann man in einer Box auswählen was passieren soll
set clicked to GetButtonPressed
If clicked == 0 ;erste wahl
;Hier müsste dann der code zum erstellen des Obliviontores in der nähe des players stehen, muss aber nochmal nachgucken wie das geht
elseif clicked == 1 ;zweite wahl
Refdestores.disable
endif
end

Das Tor soll an einem festen Ort erscheinen. Geht das?
 
Zuletzt bearbeitet:
@<DannyBoy>: Deine Frag hat nichts mit xMarkern zu tun.

Code:
Scn TorBenutzen

short control

Begin OnScriptEffectStart
If ( control == 0 )
   [TorID].Enable
   Set control To 1
Else
   [TorID].Disable
   Set control To 0
EndIf

End

Wenn Du dieses Skript auf deinen Zauber legst, sollte es funktionieren.

Oder Du nimmst das von Xaser um es über MessageBoxen zu steuern.

Edit: Das Tor erscheint in beiden Sikripten da, wo Du es im CS platziert hast!!
 
@ Blacklands, das funktioniert, indem man die achse der Objekte pro 10tel sekunde oder so um einen Grad erhöht, habe sowas aber noch nie gemacht, einfach mal suchen, findest bestimmt was

Ich habe den Befehl gefunden. Was muss ich denn schreiben, damit sich die Objekte konstant(also endlos lange) drehen und nicht nur einmal?
 
@<DannyBoy>: Deine Frage hat nichts mit xMarkern zu tun.

Code:
Scn TorBenutzen

short control

Begin OnScriptEffectStart
If ( control == 0 )
   [TorID].Enable
   Set control To 1
Else
   [TorID].Disable
   Set control To 0
EndIf

End
Wenn Du dieses Skript auf deinen Zauber legst, sollte es funktionieren.

Oder Du nimmst das von Xaser um es über MessageBoxen zu steuern.

Edit: Das Tor erscheint in beiden Sikripten da, wo Du es im CS platziert hast!!

Muss ich bei dem Tor dann erst "Initally Diasabled"ankreuzen? Sorry für meine Unwissenheit:oops:
 
Hoi ich wollt das mein Npc von einem HeadingMarker zum nächsten geht allerdings nur wen der spieler in seiner nähe ist da hab ich schonma angefangen


short Doonce

Begin GameMode

If Doonce == 0

if ( GetDistance Player <= 300 )
[hir soll denk ich mal der befehl rein das er sich zum ersten marker bewegt]

Set Doonce to 1
endif
end
 
ok andere frage

wenn ich eine Textbox erstellen möchte mit 4 auswahlmöglichkeiten müsste das ja so aussehn oder? (ungefähr ich probiere gerade die ersten schritte :-D )

scn schmelze

short menuechose
short metall
Begin OnActivate
MessageBox "Was möchtet ihr einschmelzen?", "Metalle", "Edelmetalle","Spezielle Metalle","Oblivion", "Beenden"

End


Begin GameMode

Set menuechose to GetButtonPressed

if (menuechose== 0)
Set metall to GetButtonPressed

MessageBox "Wähle dein Metall:", "Kupfer","Eisen","Feinstahl","Dunkelstahl","Stahl","Zurück"

if metall == 0 && menuechose== 0

;Auswahl Kupfer
elseIf metall == 1 && menuechose== 0

;Auswahl Eisen
elseIf metall == 2 && menuechose== 0

;Auswahl Feinstahl
elseIf metall == 3 && menuechose== 0

;Auswahl Dunkelstahl
elseIf metall == 4 && menuechose== 0

;Auswahl Stahl
;elseIf metall == 5 && menuechose== 0

return
;Auswahl Zurück
endif
elseIf (menuechose ==1)
return
;Auswahl Zurück/beenden Des Hauptmenüs
endif
end
 
@ Black
Code:
scn Name 
float CurrentPos

Begin GameMode
Set CurrentPos to GetAngle [Axis] + [Gewünschte Geschwindigkeit]
SetAngle [Axis], CurrentPos
end

@ Danny-Boy, kannst du machen, dann ist das Tor beim ersten Oblivion Start und wirken des Zaubers nicht da.

@ Hellfire, das wird so nicht funktionieren. Schau dir mal dazu den Artikel bei der ConstructionSet Wiki an. Klick

@ Raistlin:

Code:
short Doonce

Begin GameMode

if ( GetDistance Player <= 300 ) && doonce == 0
IddesNpc.AddScriptPackage Name
Set Doonce to 1
endif

Dur wirst dafür ein Package mit einem Travel-Befehl au den Marker machen müssen, dass dann durch diesen Befehl hinzugefügt wird.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Blacklands
@<DannyBoy>: Bei meinem Skript ja. Das geht ja davon aus, dass das Tor am Anfang nicht vorhanden ist.
Wenn Du es nicht machst, passiert beim ersten mal halt nix und beim zweiten mal verschwindet das Tor.

Du kannst es weglassen, aber logischer wäre es, wenn Du es machst.
 
@ Black
Code:
scn Name 
float CurrentPos

Begin GameMode
Set CurrentPos to GetAngle [Axis] + [Gewünschte Geschwindigkeit]
SetAngle [Axis], CurrentPos
end

@ Danny-Boy, kannst du machen, dann ist das Tor beim ersten Oblivion Start und wirken des Zaubers nicht da.

@ Hellfire, das wird so nicht funktionieren. Schau dir mal dazu den Artikel bei der ConstructionSet Wiki an. Klick

@ Raistlin:

Code:
short Doonce

Begin GameMode

if ( GetDistance Player <= 300 ) && doonce == 0
IddesNpc.AddScriptPackage Name
Set Doonce to 1
endif

Dur wirst dafür ein Package mit einem Travel-Befehl au den Marker machen müssen, dass dann durch diesen Befehl hinzugefügt wird.

das problem ist eh das ich ein größeres auswahlmenü basteln will
scn Schmiedeschmelze

short menuechose
short metall
short edel
short spezial
short oblivion

Begin OnActivate
MessageBox "Was möchtet ihr einschmelzen?", "Metalle", "Edelmetalle", "Spezielle Metalle","Metalle von Oblivion", "Beenden"

End


Begin GameMode

Set menuechose to GetButtonPressed

if (menuechose== 0)
Set metall to GetButtonPressed

MessageBox "Wähle dein Metall:", "Kupfer","Eisen","Feinstahl","Dunkelstahl","Stahl","Zurück"

if metall == 0 && menuechose== 0
player.additem Gold001 1
;Auswahl Kupfer
elseIf metall == 1 && menuechose== 0
player.additem Gold001 2
;Auswahl Eisen
elseIf metall == 2 && menuechose== 0
player.additem Gold001 3
;Auswahl Feinstahl
elseIf metall == 3 && menuechose== 0
player.additem Gold001 4
;Auswahl Dunkelstahl
elseIf metall == 4 && menuechose== 0
player.additem Gold001 5
;Auswahl Stahl
;elseIf metall == 5 && menuechose== 0
player.additem Gold001 6
return
;Auswahl Zurück
endif

elseIf (menuechose ==1)
MessageBox "Wähle dein Edelmetall:","Silber","Echtsilber","Gold","Zurück"

If menueem == 0
;Auswahl Silber
elseIf menueem == 1
;Auswahl Echsilber
elseIf menueem == 2
;Auswahl Gold
;elseIf menueem == 3
;Auswahl Zurück
endif





elseIf (menuechose ==2)
MessageBox "Wähle dein Spezielles Metall","Dwemer und Zwergen Metalle","Glas","Elfen Metalle","Mithril","Zurück"

elseIf menuesm == 0
;Auswahl Dwmer und Zwergen Metalle
elseIf menuesm == 1
;Auswahl Glas
elseIf menuesm == 2
;Auswahl Elfen Metalle
elseIf menuesm == 3
;Auswahl Mithril
;elseIf menuesm == 4
;Auswahl Zurück
endif

elseIf (menuechose ==3)
MessageBox "v","x Inseln","y","Metalle aus Mania","z","Zurück"

elseIf menueom == 1
;Auswahl v
elseIf menueom == 2
;Auswahl x
elseIf menueom == 3
;Auswahl Bernstein
elseIf menueom == 4
;Auswahl y
elseIf menueom == 5
;Auswahl z
elseIf menueom == 6
;Auswahl Zurück
endif






elseIf (menuechose ==4)
return
;Auswahl Zurück/beenden Des Hauptmenüs
endif
end


Wenn ich ingame dann Das erste auswahlmenü habe funktioniert alles aber sobald ich auf z.b. im ersten menü dann auf Eisen drücke Springt er Automatisch in das 2 untermenü (edelmetalle) genauso siehts dann andersrum auch aus^^

wo liegt da der fehler?^^
 
Hast du das Tutorial gelesen?

Ok ich fass mal kurz zusammen was da zu dem Thema steht.

Vom Sinn her etwa [...] Nachdem man etwas aus dem 1. Menü gewählt hat und ins zweite kommt, wird jede Antwort die der Spieler dort behandelt, als hätte er sie im ersten gemacht [....]

Ganz unten im dem Tutorial ist ein Beispiel, wie ein multiples Menü aussehen muss.
 
  • Like
Reaktionen: }{ellFíre
Hallo nochmal,
ich habe ein kleines Problem mit einem Script. Er funktioniert zwar, er hört aber nur nicht wieder auf ^^

Folgende Situation:
Am Ende eines Dialogs bekommt man eine bestimmte QuestStage, die den Soldaten,Rüstung,Waffe,Anzahl usw. bestimmt, zusätzlich soll man aber pro Soldat noch 100 Gold bezahlen.
Nachdem der Soldat dann erschienen ist und man das Gold bezahlt hat, soll die Quest wieder zurückgesetzt werden und man könnte den Dialog noch einmal starten um weitere Soldaten zu kaufen.

So wie es jetzt ist, erscheinen solange Soldaten bis man kein Gold mehr hat :cry:

scn aaTestQuestGenScript

Begin Gamemode
AddTopic aaRekrutieren

if (GetStage aaTestQuestGen == 14)&&(Player.GetItemCount gold001 >= 100)
SpawnMarker.PlaceAtMe aaTestSoldatBob 1
Player.RemoveItem gold001 100
endif

if (GetStage aaTestQuestGen == 15)&&(Player.GetItemCount gold001 >= 100)
SpawnMarker.PlaceAtMe aaTestSoldatJon 1
Player.RemoveItem gold001 100
endif

if (GetStage aaTestQuestGen == 24)&&(Player.GetItemCount gold001 >= 200)
SpawnMarker.PlaceAtMe aaTestSoldatBob 2
Player.RemoveItem gold001 200
endif

if (GetStage aaTestQuestGen == 25)&&(Player.GetItemCount gold001 >= 200)
SpawnMarker.PlaceAtMe aaTestSoldatJon 2
Player.RemoveItem gold001 200
endif
 
Code:
scn aaTestQuestGenScript

Begin OnActivate
AddTopic aaRekrutieren

if (GetStage aaTestQuestGen == 14)&&(Player.GetItemCount gold001 >= 100)
SpawnMarker.PlaceAtMe aaTestSoldatBob 1
Player.RemoveItem gold001 100
endif

if (GetStage aaTestQuestGen == 15)&&(Player.GetItemCount gold001 >= 100)
SpawnMarker.PlaceAtMe aaTestSoldatJon 1 
Player.RemoveItem gold001 100
endif

if (GetStage aaTestQuestGen == 24)&&(Player.GetItemCount gold001 >= 200)
SpawnMarker.PlaceAtMe aaTestSoldatBob 2
Player.RemoveItem gold001 200
endif 

if (GetStage aaTestQuestGen == 25)&&(Player.GetItemCount gold001 >= 200)
SpawnMarker.PlaceAtMe aaTestSoldatJon 2 
Player.RemoveItem gold001 200
endif

Änder das GameMode in OnActivate und mach dann irgendwo einen Schalter hin, über den man das steuern kann.

Wenn du das über GameMode machst, wird in jedem Frame abgefragt, ob du auf dem und dem Stage der Quest bist und ob du genug Gold hast und solange dies Zutrifft wird immer wieder ein neuer Soldat gespawnt.

BTW: Man kann Quests nicht zurückstufen.
 
Zuletzt bearbeitet:
Hallo ich habe eine Frage.
Könnte man einen Zauber machen, der nur an bestimmten Orten funktioniert und der eine Tür auftauchen lässt?
 
Könnte für mich jemand den unten angezeigten Script so umschreiben, dass er auf dieses Objekt ausgerichtet ist. Meine eigenen Versuche führten immer zu Fehlermeldungen.
01IvAltarMephala

Code:
scn 01IvStendarrShrineScript

short clean
short crystal
short button

begin onActivate

if clean == 0
 if player.getitemcount 01IvLightcrystal < 1
    messagebox "Offenbar wurde der Schrein entweiht." "Verlassen"
 else
    messagebox "Offenbar wurde der Schrein entweiht." "Lichtkristall in die Hand der Statue legen" "Verlassen"
    set crystal to 1
endif
else
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if StendarrAltar.getitemcount IvellonShortsword >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
   StendarrAltar.removeitem IvellonShortsword 1
   StendarrAltar.removeitem 01IvellonCoin 100
   StendarrAltar.additem IvellonShortswordBlessed 1
   playsound 01IvMcStendarrshrineBlessing
   message "Euer Kurzschwert wurde gesegnet. Möge es die Kehlen Eurer Feinde zerfetzen."

elseif StendarrAltar.getitemcount IvellonLongsword >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonLongsword 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonLongswordBlessed 1
          playsound 01IvMcStendarrshrineBlessing
          message "Euer Langschwert wurde gesegnet. Möge es die Herzen Eurer Feinde durchstoßen."

elseif StendarrAltar.getitemcount IvellonBastardsword >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBastardsword 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBastardswordBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge es die Schädel Eurer Feinde spalten."

elseif StendarrAltar.getitemcount IvellonBastardsword2h >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBastardsword2h 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBastardswordBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge es die Schädel Eurer Feinde spalten."

elseif StendarrAltar.getitemcount IvellonBeardedAxe >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBeardedAxe 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBeardedAxeBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge sie die Köpfe Eurer Feinde vom Rumpfe trennen."

elseif StendarrAltar.getitemcount IvellonBeardedAxe2h >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBeardedAxe2h 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBeardedAxeBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge sie die Köpfe Eurer Feinde vom Rumpfe trennen."
         
elseif StendarrAltar.getitemcount IvellonClaymore >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonClaymore 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonClaymoreBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Zweihänder wurde gesegnet. Möge er Eure Feinde entzwei teilen."

elseif StendarrAltar.getitemcount IvellonMace >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonMace 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonMaceBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Streitkolben wurde gesegnet. Möge er Eurer Feinde in Stücke reißen."

elseif StendarrAltar.getitemcount IvellonBattlehammer >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBattlehammer 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBattlehammerBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Streithammer wurde gesegnet. Möge er die Schädel Eurer Feinde zertrümmern."

elseif StendarrAltar.getitemcount IvellonZweihander >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonZweihander 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonZweihanderBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Gassenhauer wurde gesegnet. Möge er eine Schneise der Verwüstung in den Reihen Eurer Feinde hinterlassen."

elseif StendarrAltar.getitemcount IvellonHalberd >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonHalberd 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonHalberdBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Eure Hellebarde wurde gesegnet. Möge sie Eure Feinde in Scharen niedermähen."

elseif StendarrAltar.getitemcount IvellonBow >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBow 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBowBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bogen wurde gesegnet. Möge er Euer Ziel immer treffen."
else
   messagebox "Legt eine Waffe aus Ivellons Schmiede zusammen mit einer Opfergabe von einhundert goldenen Münzen auf den Altar und betet zu Stendarr, auf dass er sie segnen möge."
endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
endif
end

begin GameMode
if crystal == 1
set button to getbuttonpressed

if button == 0
   sf01.enable
   sf02.enable
   sf03.enable
   sf04.enable
   sf05.enable
   sf06.enable
   sl01.enable
   sl02.enable
   sl03.enable
   sl04.enable
   sl05.enable
   sl06.enable
   StendarrLight.enable
   message "Der Schrein wurde gereinigt."
   player.removeitem 01IvLightcrystal 1
   playsound 01IvMcStendarrshrine
   set clean to 1
   set crystal to 0
elseif button == 1
   set crystal to 0
endif
endif
end
 
Könnte für mich jemand den unten angezeigten Script so umschreiben, dass er auf dieses Objekt ausgerichtet ist. Meine eigenen Versuche führten immer zu Fehlermeldungen.
01IvAltarMephala

Keine Zahlen am Anfang von Referenzen....

Und darauf hatte ich schon meine Hoffnung gesetzt. Ich dachte man könnte Quests neustarten :huh:

Könnte man denn den Schalter per Script aktivieren? Dann würde es ja aufs gleich rauskommen, oder?

Nein, weil wenn man ihn per Schalter aktiviert, wird der Script nicht in jedem Frame bearbeitet, sondern nur ein einziges Mal, wenn man den Schalter bedient.
 
Danke für die Idee Interior, daran habe ich noch nicht gedacht, wie müsste man es denn dann mit dem Auftauchen der Tür und mit dem zaubern machen?