Construction Set Skriptthread zum Construction Set

Ich möchte, dass der Spieler ein bestimmtes Objekt bzw. eine Gruppe bestimmter Objekte nur sieht, wenn er einen bestimmten zauber benutzt hat.
Danke schon mal
 
wenn es sich um bestimmte handelt ist es nicht schwer..

Erstmal positonierst du die Objeckte und disablest sie...

dann folgendes:

Code:
scn Deinscriptname

Begin ScriptEffectStart
Ref1.enable
Ref2.enable
Ref3.enable
...
(End)

Begin ScriptEffectEnd
Ref1.disable
Ref2.disable
Ref3.disable
...
End

Refx musst du durch die Objeckt Referenzeses ersetzten die du ihnen zuteilst
x ist einfach die nummer

... heißst du kannst das mit belibig viel machen
dann noch das script als Magic effeckt machen und es sollte klappen...

meine Frage is noch offen ;)

€ob das in () End dahin gehört weiß ich gerade net Oo
 
  • Like
Reaktionen: Alpha80SG1
das funzt nicht :cry: ich hab das jetzt so stehen:
Code:
scn SIwarnehmungsSCRIPT

Begin ScriptEffectStart
Haus01REF.enable
Haus02REF.enable
haus03REF.enable

End

Begin ScriptEffectEnd
Ref1REF.disable
Ref2REF.disable
Ref3REF.disable

End
er zeigt an:
"Script 'SIwarnehmungsSCRIPT',line 9:
Syntax Error. Invaild block type in 'begin' comand."
 
Du musst bei einem neuen If-Block immer mit einem If beginnen und nicht mit einem elseif. Ich mach das mal für dich (anhand der einschiebung nach rechts).
Nested If-Blocks köönen teilweise ganz schön kompliziert sein...

Edit:
Hier das Script (ich hab mir erlaubt noch etwas weiter aufzuräumen):
Code:
scn 00EnemyGeneratorscript

short Doonce
short EnemyType
short EnemyCount

Begin OnActivate
	set EnemyType to -1
	set EnemyCount to -2
	messagebox "Gegen was wollt ihr kämpfen?", "Bandit", "Spinnen-Daedra", "Daedroth", "Sturm-Astronach", "Frost-Astronach", "Dremona-Fürst", "Lich"
End

Begin GameMode
	if ( EnemyType == -1 )
		Set EnemyType to GetButtonPressed
	elseif ( EnemyType >= 0 )
		if ( EnemyCount == -2 )
			set EnemyCount to -1
			Messagebox "Gegen wie viele wollt ihr kämpfen?", "1", "2", "3", "4", "5"
		elseif ( EnemyCount == -1 )
			Set EnemyCount to GetButtonPressed
		else
			if ( EnemyType == 0 )
				if EnemyCount == 0
					bbEGBandit1.enable
				elseif EnemyCount == 1
					bbEGBandit1.enable
					bbEGBandit2.enable
				elseif EnemyCount == 2
					bbEGBandit1.enable
					bbEGBandit2.enable
					bbEGBandit3.enable
				elseif EnemyCount == 3
					bbEGBandit1.enable
					bbEGBandit2.enable
					bbEGBandit3.enable
					bbEGBandit4.enable
				elseif EnemyCount == 4
					bbEGBandit1.enable
					bbEGBandit2.enable
					bbEGBandit3.enable
					bbEGBandit4.enable
					bbEGBandit5.enable
				endif
			elseif ( EnemyType == 1 )
				if EnemyCount == 0
					bbEGSD1.enable
				elseif EnemyCount == 1
					bbEGSD1.enable
					bbEGSD2.enable
				elseif EnemyCount == 2
					bbEGSD1.enable
					bbEGSD2.enable
					bbEGSD3.enable
				elseif EnemyCount == 3
					bbEGSD1.enable
					bbEGSD2.enable
					bbEGSD3.enable
					bbEGSD4.enable
				elseif EnemyCount == 4
					bbEGSD1.enable
					bbEGSD2.enable
					bbEGSD3.enable
					bbEGSD4.enable
					bbEGSD5.enable
				endif
			elseif ( EnemyType == 2 )
				if EnemyCount == 0
					bbEGDaedroth1.enable
				elseif EnemyCount == 1
					bbEGDaedroth1.enable
					bbEGDaedroth2.enable
				elseif EnemyCount == 2
					bbEGDaedroth1.enable
					bbEGDaedroth2.enable
					bbEGDaedroth3.enable
				elseif EnemyCount == 3
					bbEGDaedroth1.enable
					bbEGDaedroth2.enable
					bbEGDaedroth3.enable
					bbEGDraedroth4.enable
				elseif EnemyCount == 4
					bbEGDaedroth1.enable
					bbEGDaedroth2.enable
					bbEGDaedroth3.enable
					bbEGDraedroth4.enable
					bbEGDaedroth5.enable
				endif
			elseif ( EnemyType == 3 )
				if EnemyCount == 0
					bbEGStorm1.enable
				elseif EnemyCount == 1
					bbEGStorm1.enable
					bbEGStorm2.enable
				elseif EnemyCount == 2
					bbEGStorm1.enable
					bbEGStorm2.enable
					bbEGStorm3.enable
				elseif EnemyCount == 3
					bbEGStorm1.enable
					bbEGStorm2.enable
					bbEGStorm3.enable
					bbEGStorm4.enable
				elseif EnemyCount == 4
					bbEGStorm1.enable
					bbEGStorm2.enable
					bbEGStorm3.enable
					bbEGStorm4.enable
					bbEGStorm5.enable
				endif
			elseif ( EnemyType == 4 )
				if EnemyCount == 0
					bbEGFrost1.enable
				elseif EnemyCount == 1
					bbEGFrost1.enable
					bbEGFrost2.enable
				elseif EnemyCount == 2
					bbEGFrost1.enable
					bbEGFrost2.enable
					bbEGFrost3.enable
				elseif EnemyCount == 3
					bbEGStorm1.enable
					bbEGFrost2.enable
					bbEGFrost3.enable
					bbEGFrost4.enable
				elseif EnemyCount == 4
					bbEGFrost1.enable
					bbEGFrost2.enable
					bbEGFrost3.enable
					bbEGFrost4.enable
					bbEGFrost5.enable
				endif
			elseif ( EnemyType == 5 )
				if EnemyCount == 0
					bbEGDremona1.enable
				elseif EnemyCount == 1
					bbEGDremona1.enable
					bbEGDremona2.enable
				elseif EnemyCount == 2
					bbEGDremona1.enable
					bbEGDremona2.enable
					bbEGDremona3.enable
				elseif EnemyCount == 3
					bbEGDremona1.enable
					bbEGDremona2.enable
					bbEGDremona3.enable
					bbEGDremona4.enable
				elseif EnemyCount == 4
					bbEGDremona1.enable
					bbEGDremona2.enable
					bbEGDremona3.enable
					bbEGDremona4.enable
					bbEGDremona5.enable
				endif
			elseif ( EnemyType == 6 )
				if EnemyCount == 0
					bbEGLich1.enable
				elseif EnemyCount == 1
					bbEGLich1.enable
					bbEGLich2.enable
				elseif EnemyCount == 2
					bbEGLich1.enable
					bbEGLich2.enable
					bbEGLich3.enable
				elseif EnemyCount == 3
					bbEGLich1.enable
					bbEGLich2.enable
					bbEGLich3.enable
					bbEGLich4.enable
				elseif EnemyCount == 4
					bbEGLich1.enable
					bbEGLich2.enable
					bbEGLich3.enable
					bbEGLich4.enable
					bbEGLich5.enable
				endif
			endif
			set EnemyType to 255
			set EnemyCount to 255
		endif
	endif
End

PS: afaik heißt es Sturm-/Frost-Atronach, nicht Astronach.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Xaser
Hallo Xaser,

Ich habe mir dein Script kurz angesehen und dabei ist mir folgendes ins Auge gestochen: Der Wert für 'Enemie' wird nicht zurückgesetzt. Da das Script in Gamemode läuft, sollte es ständig ausgeführt werden - Also landet es nach der ersten MSG-Box immer wieder in einem deiner If-Statements, wenn ich nicht irre.
Ich vermisse in jedem Fall ein 'set enemie to -1' nach dem endif.
Ah, noch was:
Code:
        if Enemie == 0
            Messagebox "Gegen wie viele wollt ihr kämpfen?", "1", "2", "3", "4", "5"
                Set Enemie1 to GetButtonPressed
                    elseif Enemie1 == 0
                        bbEGBandit1.enable
Das elseif bezieht sich auf das erste if - also in dem Falle würde es bedeuten das im Falle von enemie=0 ein 'elseif Enemie1 = 0' niemals ausgeführt würde - da die Grundbedingung des If - nämlich Enemie=0 bereits erfüllt ist. Bei Enemie=0 sollte meiner Meinung nach ein if stehen - danach ruhig elseifs - allerdings dann auch mit entsprechendem endif.
Hoffe das konnte dir helfen und das ich jetzt nicht versehentlich Unsinn geredet hab' ;)

Edit: Ein Allumfassendes 'if GetButtonPressed > -1' wär' auch nicht schlecht. Weil es im Gamemode läuft ist es sinnvoll nur ein Statement abfragen zu müssen, der Rest wird ja nur im Falle eines gedrückten Buttons benötigt (Da du ja mehrere If-Anweisungen haben wirst). Wobei man sagen muss das ein direkter Vergleich für den Rechner schneller zu bewerkstelligen ist. D.h. ein '==' ist schneller berechnet als ein '>' oder '>='. Wenn du also weißt das der Wert nur -1 sein kann oder einen von dir zugewiesenen Wert, ist 'if GetButtonPressed == -1' besser (oder '!=').
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Xaser
Lowpost war zwar schneller aber trozdem danke an beide schobnmal ich werds jetzt testen

€: Geht immernoch nicht, jetzt wird auch nicht die Anzahl angefragt und ein Bandit ist schon enabled Oo
 
Zuletzt bearbeitet:
Falls du das skript von Low Post verwendet hast:
Code:
elseif ( EnemieType >= 0 )
        if ( EnemyCount == -2 )
            set EnemyCount to -1
            Messagebox "Gegen wie viele wollt ihr kämpfen?", "1", "2", "3", "4", "5"
        elseif ( EnemyCount == -1 )
            Set EnemyCount to GetButtonPressed
Ich habe nicht gesehen das Enemycount irgendwo auf '-2' gesetzt wird oder mit diesem Wert initialisiert wurde. Da die abfrage gegen wie viele Gegner man kämpfen will jedoch nur bei '-2' ausgeführt wird, könnte das der Grund sein wieseo die Dialogbox nicht auftaucht.
Und hier:
Code:
elseif ( EnemyCount == -1 )
   Set EnemyCount to GetButtonPressed
Wird der Enemycount auf den Wert von GetButtonPressed gesetzt - was allerdings nur geschieht wenn man den Dialog zur Mengenabrage NICHT hatte -> Wird durch 'EnemyCount == -2' ausgeschlossen da elseif ( EnemyCount == -1 ) nur ausgefüht wird wenn das vorherige if 'unwahr' ergibt.
 
  • Like
Reaktionen: Low Post
Noch mal ne Frage. Ist es irgendwie möglich einen NPC zu erstellen, der dann für dich in die Höhlen usw. geht und da aufräumt sowie alle Sachen an sich nimmt? Dafür brauch ich ja ein Skript und deswegen steht es hier ^^

NPC erstellen - Geht! Was ein Wunder! :eek:
In Höhlen marschieren - Geht auch
In Höhlen rumrennen und alles mit einsammeln sowie Kämpfen - Das ist die Frage ^^
 
Zuletzt bearbeitet:
Bei deinen Script kann ich dir seber nicht helfen...
Aber ich ahbe auch eine frage:

ich brauch ein skript das wenn man 2 Kreaturen tötet man an eine andere stelle teleportiert wird...
Und es sollte eine nachricht kommen vor den Teleportiern.
In der gleichen celle
Und wie funktioniert das mit den"x-Marke"
 
@Cyborg11: Gabs sogar schon von Beth selbst ;) Bei der Vampirjägerquest in Skingrad kannst du die Jungs in die Vampirhöhle schicken. Ich hab' nach 'ner Woche ne Nachricht bekommen das die Quest mit dem Vampierneest ausheben abgeschlosen ist und hab' in der Höhle 3 tote Vampirjäger und die ganzen Vampirleichen gefunden. Gut, geplündert hat der überlebende Vampirjäger nicht - aber in die Höhle gegangen um dort aufzuräumen, sind er und seine Kumpane definitiv. Sollte also möglich sein.

@Yves: Vllt. hilft dir das weiter:
http://cs.elderscrolls.com/constwiki/index.php/Special:Search?search=teleport&fulltext=Search
 
  • Like
Reaktionen: Cyborg11
@Cyborg11: Gabs sogar schon von Beth selbst ;) Bei der Vampirjägerquest in Skingrad kannst du die Jungs in die Vampirhöhle schicken. Ich hab' nach 'ner Woche ne Nachricht bekommen das die Quest mit dem Vampierneest ausheben abgeschlosen ist und hab' in der Höhle 3 tote Vampirjäger und die ganzen Vampirleichen gefunden. Gut, geplündert hat der überlebende Vampirjäger nicht - aber in die Höhle gegangen um dort aufzuräumen, sind er und seine Kumpane definitiv. Sollte also möglich sein.
Danke, dann schau ich mir doch mal wie die das da gemacht haben. Achja kannst du mir den Namen der Vampirjäger nennen oder die Quest? ^^ Find beide grad net :(

Und wie kann ich es machen, dass der dann alles in der Höhle plündert? Vllt. mit nem Find Package? :S

Achja, kann ich das auch irgendwie so machen, dass wenn ich einen Zauber auf eine Höhlentür sprech, dass der Begleiter dann da reinstürmt und alle Gegner killt sowie plündert? :)
 
Hi Cyborg11,

Dass man einen Zauber auf eine Tür wirft, dein Verbündeter hineinläuft und alle killt, ist möglich, doch dass er die Höhle auch plündert... das klingt schwer. Man könnte es vielleicht schaffen, dass er die Getöteten plündert. Einziges Problem: Er könnte irgendwann überlastet sein.

Die Scripte wären dafür aber auch schon etwas aufwendig. Deswegen würde ich ganz kurz drüber nachdenken: Nötig? ^^

MfG Gildur
 
Hallo,
ich brauche einen Script der Bewirkt:
Sobalt man in einem bestimmten Worldspace ist, soll der Bildschirm ein bisschen verschwommen sein.
Danke.
 
Zuletzt bearbeitet:
am besten als questscript oder so verpacken, falls der worldspace etwas größer ist.(wenns nur n worldspace von 5 zellen oder so ist, reichts evtl auch, das auf irgend nen gegenstand dort zu packen)

Code:
scn blur

float timer

begin gamemode
if player.getinworldspace worldID
if timer == 0
triggerhitshader 0.5 ;hier n bissl mit der stärke experimentieren
set timer to 1 ;hier evtl zeit anpassen, alle wieviel sec der shader wiederholt werden soll
elseif timer > 0
set timer to timer - getsecondspassed
endif
endif
end
vorsicht: funktioniert nicht in interiors!
 
  • Like
Reaktionen: Alpha80SG1
am besten als questscript oder so verpacken, falls der worldspace etwas größer ist.(wenns nur n worldspace von 5 zellen oder so ist, reichts evtl auch, das auf irgend nen gegenstand dort zu packen)

Code:
scn blur

float timer

begin gamemode
if player.getinworldspace worldID
if timer == 0
triggerhitshader 0.5 ;hier n bissl mit der stärke experimentieren
set timer to 1 ;hier evtl zeit anpassen, alle wieviel sec der shader wiederholt werden soll
elseif timer > 0
set timer to timer - getsecondspassed
endif
endif
end
vorsicht: funktioniert nicht in interiors!

Ich hab das jetzt mal ausprobiert doch es will nicht klappen.
Ich hab mal den Script ein bisschen verändert:
Code:
scn Blur
begin Gamemode
If player.getinworldspace Wueste
triggerhitshader 0.5
endif
end
Der Script geht, doch der effekt wiederholt sich nur alle 2 sekunden und soll ja andauernt sein.:(
wie kann ich da jetzt mit einbauen das es andauernd ist?(ps:Ich meine so einen effekt wie bei dem mod Inebration ,bloß es soll nicht vom trinken kommen)
 
Hi Cyborg11,

Dass man einen Zauber auf eine Tür wirft, dein Verbündeter hineinläuft und alle killt, ist möglich, doch dass er die Höhle auch plündert... das klingt schwer. Man könnte es vielleicht schaffen, dass er die Getöteten plündert. Einziges Problem: Er könnte irgendwann überlastet sein.

Die Scripte wären dafür aber auch schon etwas aufwendig. Deswegen würde ich ganz kurz drüber nachdenken: Nötig? ^^

MfG Gildur
Man könnte es ja so machen, alles was er einsammelt kommt nicht in sein Inventar, sondern in einen Rucksack, der unendlich tragen kann :p Ein Cheatbegleiter wäre er ja dann trotzdem nicht, da er immer noch bei dem Versuch sterben kann.

Als Kaufmann (z.b.) wäre so ein Begleiter hilfreich, denn ein Kaufmann in OB bekommt die Waren von den Minen/Höhlen und ein Kaufmann ist meist kein so guter Kämpfer ;) Also schickt man einfach seinen Begleiter da rein und derweil kann man seinen Geschäften nachgehen oder die Welt erkunden :p