Construction Set Skriptthread zum Construction Set

Daran sollte es nicht liegen... ehrlich gesagt weiß ich dann auch nicht mehr weiter. Ich hatte noch nie das Problem, dass ein Script nicht gespeichert wurde. Ziemlich merkwürdig. Aber wie gesagt, ich fürchte, jetzt kann ich dir auch nicht mehr helfen, außer zu raten, das CS neu zu installieren.
 
Passieren der Triggerbox 5 Sekündige Lämung

Hallo.
Wie der Titel schon sagt ich bruach ein Script das wenn man duch eine Triggerbox geht man für 5 Sekinden gelähmt ist :)
Danke im Vorraus
 
Auf die Triggerbox:

scn name

short doonce
float timer

Begin onTrigger player

if doonce == 0
set timer to 5
disablePlayerControls
set doonce to 1

endif

end

Begin GameMode

if timer >= 0
set timer to timer - getSecondsPassed

endif

if timer == 0
enablePlayerControls

endif

end
 
Ist zwar keine richtige Lähmung, aber m.E. besser, da die Variante mit "disablePlayerControls" evetuelle Lähmungsresistenzen umgeht. Mit "disablePlayerControls" kann sich der Spieler außerdem noch umgucken (geht das im gelähmten Zustand?)...

Auf die Triggerbox:

Code:
scn name

short doonce ;damit es nur einmal passiert und nicht kontinuierlich
float timer

Begin onTrigger player

	if doonce == 0
		set timer to 5
		disablePlayerControls
		set doonce to 1

	endif

end

Begin GameMode

	if timer >= 0
		set timer to timer - getSecondsPassed

	endif

	if timer == 0
		enablePlayerControls

	endif

end

Edit: Hups, Doppelpost.
@Mod: Bitte den ersten löschen...
 
Zuletzt bearbeitet:
Ist zwar keine richtige Lähmung, aber m.E. besser, da die Variante mit "disablePlayerControls" evetuelle Lähmungsresistenzen umgeht. Mit "disablePlayerControls" kann sich der Spieler außerdem noch umgucken (geht das im gelähmten Zustand?)...

Auf die Triggerbox:

Code:
scn name

short doonce ;damit es nur einmal passiert und nicht kontinuierlich
float timer

Begin onTrigger player

	if doonce == 0
		set timer to 5
		disablePlayerControls
		set doonce to 1

	endif

end

Begin GameMode

	if timer >= 0
		set timer to timer - getSecondsPassed

	endif

	if timer == 0
		enablePlayerControls

	endif

end

Edit: Hups, Doppelpost.
@Mod: Bitte den ersten löschen...

Danke schonma aber ich kann mich dann gar nicht mher bewegen nicht nua für 5 Sekunden.
 
Dann probiers mal hiermit:

Code:
Auf die Triggerbox:

scn name

short doonce
float timer

Begin onTrigger player

	if doonce == 0
		set timer to 5
		disablePlayerControls
		set doonce to 1

	endif

end

Begin GameMode

	if doonce == 0
		return

	else
		if timer >= 0
			set timer to timer - getSecondsPassed

		endif

		if timer <= 0
			enablePlayerControls

		endif

	endif

end

Edit:
Ich weiß zwar nicht, worin der Fehler lag/(immer noch) liegt, aber du kannst dir auch mal dieses Script angucken, ein Timerscript-Beispiel von SirTroy.
 
Zuletzt bearbeitet:
Dann probiers mal hiermit:

Code:
Auf die Triggerbox:

scn name

short doonce
float timer

Begin onTrigger player

	if doonce == 0
		set timer to 5
		disablePlayerControls
		set doonce to 1

	endif

end

Begin GameMode

	if doonce == 0
		return

	else
		if timer >= 0
			set timer to timer - getSecondsPassed

		endif

		if timer <= 0
			enablePlayerControls

		endif

	endif

end

Edit:
Ich weiß zwar nicht, worin der Fehler lag/(immer noch) liegt, aber du kannst dir auch mal dieses Script angucken, ein Timerscript-Beispiel von SirTroy.

Beim Speichern treten Fehler auf.
das heisst doch normalerweise das was nich stimmt ^^
 
Sorry, hab gemerkt das ich auch einen kleinen fehler drin hatte, war aber nicht soo entscheident.
Jedenfalls:
Code:
scn name

short doonce
float timer

Begin onTrigger player

	if doonce == 0
		set timer to 5
		disablePlayerControls
		set doonce to 1

	endif

end

Begin GameMode
	if doonce == 1
	      set timer to timer - getSecondsPassed
                      if timer <= 0
			enablePlayerControls
		endif
	endif
end
Probier es mal so
 
Es gibt einen von Obse, musste mal auf CS.Wiki schauen, ich glaub getavtivated oder so. Ohne Obse soweit ich weiß nur On Activate

Könnntest schreiben

begin OnActivate Actor
set var to 1
end

und dann die Variabele woanders abrufen

Jetzt meine Frage


Was ist hier falsch

SCN ToolspaintingAnvilbay
short b
short c
begin OnActivate
messagebox "Wollt ihr ein Bild malen?", "Ja" ,"Nein"
end

begin Gamemode
set b to getbuttonpressed
if b == -1
Return
elseif b == 1
message "Ihr habt kein Gemälde gemalt"
elseif b == 0
set c to 1
endif
if c == 1
if player.getitemcount Paintbrush01 > 0
elseif player.getitemcount Paintbrush02 > 0
elseif player.getitemcount Paintbrush03 > 0
elseif player.getitemcount Paintbrush04 > 0
elseif player.getitemcount Paintbrush05 > 0
elseif player.getitemcount Paintbrush06 > 0
elseif player.getitemcount PaintbrushJar01 > 0
if player.getitemcount Palette01 > 0
message "Ihr malt ein Bild"
player.removeitem Palette01 1
player.additem Toolspainting2 1
disable
set c to 2
endif
else
message "Ihr braucht Pinsel und Farbe"
endif
endif


end

Wenn ich auf Nein klicke, funzt alles, aber auf ja nicht. Falls nicht ersichtlich ist, was der Script tut:
Wenn man auf ja klickt, soll das geprüft werden, ob der Spieler Pinsel und FFarbe hat. Dann kann er ein GEmälde malen

Der ganze Script läuft auf einen Activator (ein Leeres gemälde)
 
@Unbekannter:
Etwas umständlich, würde ich sagen.
Sehe ich richtig, dass das Bild nur einmal gemalt werden können soll?
Dann probiers mal so:
Code:
SCN ToolspaintingAnvilbay

short button
short once

begin OnActivate
if (once == 0)
set button to -1
messagebox "Wollt ihr ein Bild malen?", "Ja" ,"Nein"
set once to 1
endif
end

begin Gamemode
set button to getbuttonpressed
if (once == 1) && (button == -1)
    Return
elseif (once == 1) && (button == 1)
    message "Ihr habt kein Gemälde gemalt"
elseif (once == 1) && (button == 0)
    if (player.getitemcount Paintbrush01 >= 1 || player.getitemcount Paintbrush02 >= 1 || player.getitemcount Paintbrush03 >= 1 || player.getitemcount Paintbrush04 >= 1 || player.getitemcount Paintbrush05 >= 1 || player.getitemcount Paintbrush06 >= 1 || player.getitemcount PaintbrushJar01 >= 1) && (player.getitemcount Palette01 >= 1)
        message "Ihr malt ein Bild"
        player.removeitem Palette01 1
        player.additem Toolspainting2 1
        disable
        set once to 2
    else
        message "Ihr braucht Pinsel und Farbe"
    endif
endif
end

Ich hoffe mal, ich habe deine Absicht richtig verstanden.
 
  • Like
Reaktionen: Unbekannter
Sortier Skript ???

Hi Leute,wie ja viele von euch wissen bin ich kein Skripter:) . Und doch brauche ich wiedermal eins!Es soll ein,ich sage mal "Sortier Skript" sein oder werden!Also ich bin grade dabei in meiner nächsten mod einen Alchemiesten Raum einzubauen. Da ich es schon immer blöde fand jede gesammelte zutat selber in einen container zu packen,hab ich mir jetzt das Bild01 Bild02 ausgedacht!
Wie ihr sehen könnt habe ich für jede vorhandene Zutat einen Container mit neuen Texturen auf denen die Zutat zu sehen ist erstellt! Nun habe ich mir das so vorgestellt ,daß wenn man seine frisch gesammelten Zutaten in einen Neutralen Container gibt;daß sie von dort aus automatisch in die dafür vorgesehenen container versand werden! Also Äpfel zu Äpfel , Blutgras zu Blutgras usw. usf. :D Ist einer von euch so freundlich mir ein solches Skript zu schreiben??? Oder hat jemand villeicht eins auf lager?Danke schonmal!^^
 
Zuletzt bearbeitet:
&& steht für "und" und || steht für "oder".

So, wie ich es geschrieben habe, würde abgefragt, ob eine oder mehrere von den Paintbrushdinger und eine Palette im Inventar sind.

So, wie du es hattest, dürfte es nicht gehen, bin ich mir aber nicht ganz sicher.
 
@ Skoomadieb:
Code:
scn SortierScript

short CountApple
ref MySelf

Begin GameMode
	Set MySelf to GetSelf
		Set CountApple to GetItemCount Apple             ; Das musst du für jedes Item durchführen

	If ( MySelf.GetItemCount Apple >= 1 )
		MySelf.RemoveItem Apple, CountApple
			IddesContainersfürObst.AddItem Apple, CountApple
	endif                  ; Block musst du für jedes Item wiederholen
end
 
  • Like
Reaktionen: Skoomadieb
Einbrechender Fussboden

sowas gibt es ja irgendwo aud den shivering isles. ich habe den auch schon gefunden, nur weiss ich nicht, wie ich den auslösen muss. ich vermute mal mit einem Script auf einem Trigger, ich wüsste aber nicht, wie das geht.

ps: ich habe mal irgendwo gelesen, dass wenn man etwas per cs vergrössert (also z.B. einen Activator oder ein Static, man dann unbedingt eine eigene ID für diesen Gegenstand vergeben muss, weil sonst alle diese Gegenstände im Spiel grösser wären. stimmt das?
 
Nein gegenständer vergrößerst du im Render Window, nur das Objekt was du vergrößerst ist dann auch vergrößert ;)

Zu deinem script:
Da musst du ein Trigger machen der einen ParentRef aktiviert, diese ParentRef ist dein Fußboden. (Wenn der Fußboden nämlich aktiviert wird dann fällt er zusammen)
 
Ich benötige ein recht simples Script.
Wenn man eine Triggerbox passiert soll eine Animation abgespiel werden (Activator)auf der Animation sebst ist kein Script ich habe sie bis jetz auf einander Bezogen doch brauche ich ja noch ein Script für den Befehl das es abgespieltz werden soll, und das brauche ich