Construction Set Skriptthread zum Construction Set

Hiefür gibt es, soweit mir bekannt keinen Befehl. Das einzige was du machen könntest, ist zu überprüfen, ob grade die Beißanimation (wenn es eine gibt, ich spiel nie als Vampir ;) ) abgespielt wird.
 
Ich glaube leider auch nicht. Aber du kannst hier mal gucken, da stehen alle CS sowie die OBSE-Befehle bis zu einer bestimmten Version (nicht die neusten). Halt mal bei "Is..." gucken.
 
Ich sitze grad an einem Script und suche einen Befehl der einen NPC lähmt. Er soll sich am besten garnicht mehr bewegen und wie eine Statue wirken. Fals es dafür keinen Befehl gibt, wäre es toll, wenn vielleicht jemand noch einen anderen Einfall hat, wie man das bewerkstelligen könnte.
 
Ist zwar vermutlich nicht ganz das, was du willst, aber probiers mal mit SetDestroyed.

In Verbindung mit nem Zauber (Lähmen zum Beispiel önnte das funktionieren.)
Vielleicht kannst du damit etwas anfangen: Klick
Einfach bis Script 2 runterscrollen.
 
  • Like
Reaktionen: Nexon
Ok hat sich erledigt. Der Zauber Effekt Lähmen funktioniert genauso, wie ich es wollte. :roll:
Hatte es erst mit setRestrained gemacht, was auch funktionierte, aber die NPC's standen nur still da, haben einen aber mit dem Kopf noch verflogt.

Wieder mal viel zu kompliziert gedacht. :lol:
 
Ich habe auch mal eine Frage.

Und zwar geht es um Referenzen. Ich möchte jetzt per Script zB. 10 Objekte in der Nähe platzieren, welche alle durch eine eigene Referenz disabled enabled werden können.

Genau beschrieben: Ich lege den Script auf ein Objekt (zB. einen Activator). Der Script sollte nun 10 Platten in seiner Nähe platzieren (die Position soll erst mal keine Rolle spielen). Im Script selbst soll nur eine Referenz erzeugt sein (Ich nenne sie mal "target"). Und nun soll die erste Platte platziert werden, der weist man diese Referenz zu, der zweiten dann target2, der dritten target3, der fünften target5, der achten target8 usw.. Aber wie gesagt, soll nur die referenz "target" im Script definiert sein.

Ich hoffe, ich konnte es irgendwie verständlich rüber bringen :/
 
Nicht so ganz^^

Wenn ich das richtig verstanden habe, willst du, dass 10 Platten, die vorher platziert und mit einem Haken bei "Initially Disabled" versehen worden sind, über einen Activator nach einander enabled und mit jeweils einer Reference ( target1 - 10) versehen werden.
Hab ich das jetzt so richtig erfasst?
 
Ich vermute, er will mir dem Script erst die Referencen vergeben, wenn das zustimmt muss ich dir sagen:

Nein, das geht nicht!

Das einzige was du machen kannst, wäre die Verteilung der platten zufällig zu machen.
 
ich glaub er will so etwas wie eine automatische zahlenfolge generieren, also er gibt an target und einen befehel und das skript zählt automatisch dann bis 10 und verteilt die referenzen
 
der_fisch lag am nächsten dran. Ich zeige euch mal meinen bisherigen Script:
Code:
scn GDPlate5x5SCRIPT

short gw ;Global Weight
short gh ;Global Height
short lw ;Local Weight
short lh ;Local Height
ref myself
ref Seet

Begin GameMode

if (gw == 0) && (gh == 0)
set gw to 5
set gh to 5
set myself to getself
Endif

if lh == gh
	return
Else

	if lw < gw

		if (lw == 0) && (lh == 0)
			set lw to 1
			return
		Endif

		set Seet to Placeatme GDPlate 1
		Seet.moveto myself
		set lw to myself.getpos x + lw*30
		set lh to myself.getpos y + lh*30
		seet.setpos x, lw
		seet.setpos y, lh
		set lw to (lw - myself.getpos x)/30
		set lh to (lh - myself.getpos y )/30
		set lw to lw +1

	Elseif lw == gw
		set lh to lh +1
		set lw to 0
	Endif

Endif

End
Die Platte hat die Maße 30*30 und die ID ist "GDPlate5x5". Diese Platte habe ich unter "Türen" (damit sie keine Havok besitzt, aber dennoch einen Script). Nun, diese Platte kann man in einem Raum platzieren und sobald man den Raum betritt, entsteht ein Quadrat aus 5x5 Platten.
"GDPlate" ist übrigens genau die gleiche Platte, nur ohne Script.

Was ich jetzt will? - Ich möchte, dass auf die erste Platte, die platziert wird, die Referenz "Seet1" gesetzt wird, auf die zweite "Seet2", auf die achte "Seet8", auf die achtzehnte "Seet18" usw., ohne jede einzelne Ref im Script zu definieren.

Das hat den Zweck, dass ich zB. später über die Platte mit dem Script, jede beliebige andere disablen könnte.

Ich hoffe, ihr könnt helfen.
 
Hi! Ich hab ne Frage:
Wenn ich ein Objekt Per "PlaceAtMe"- Befehl vor mich stelle (zB n Zombie). Wie heisst dann die Ref vom Zombie? Dass Kan ja nicht die ID sein. Oder, wie geb ich dem Erstellten Objekt eine Ref?

PS: Vermutlich poste ich hier etwas, was kein halbwegs guter Skripter versteht, nur n Schlechter [zB ich:-D])
 
´Hmm. ich glaube das kann man so nicht sagen.

Ich meine mit PlaceAtMe wird die Ref randomgeneriert. Du könntest es nur so versuchen:

Code:
scn blub

ref blabla

Begin ******
Set blabla to Player.PlaceAtMe Zombie 1, 0, 0
end

Diese Reference funktioniert dann allerdings nur in diesem Script.
 
  • Like
Reaktionen: DagothDunmer
Die Zahlen stehen dafür, wie das Zombie im Verhältnis zum Spieler platziert wird.
Die erste Zahl gibt an, wie viele es sein sollen.
Die zweite Zahl gibt an, wie weit es vom Spieler entfernt sein soll.
Die dritte Zahl gibt an, in welcher Richtung es platziert werden soll.
0 = vor dem Spieler
1 = hinter dem Spieler
2 = links vom Spieler
3 = rechts vom Spieler

Kannst du hier nachlesen.


Was das andere angeht:
Die Abfrage "IsNPC" oder ähnliches gibt es nicht.
Du kannst höchstens abfragen, ob die Ref eine spielbare Rasse ist. Das geht über "GetIsPlayableRace"
Dort kannst du ja mal auf den Punkt "see Races" klicken.
 
  • Like
Reaktionen: DagothDunmer
Hallo ,

ich suche ein Skript welches bewirkt , dass ein Fallgitter zu einer bestimmten Uhrzeit herunterfährt , jedoch von selbst wieder nach oben kommt wenn sich der Spieler nähert.

Ich habe vor ca. 7 Monaten ein Skript bekommen was genau das bezwecken sollte :

Code:
scn Scriptname

short Down
short Position
short Move
short myself

Begin GameMode
set myself to getself

;---------------------------------------------------
;Wenn es 20 Uhr ist, wird Down auf 1 gesetzt
;---------------------------------------------------
If ( Gamehour == 20 ) && ( Down == 0 )
set Down to 1
set position to myself.getpos z
Endif


;---------------------------------------------------
;Down auf 2 setzen, wenn der Spieler in der Nähe ist
;---------------------------------------------------
If ( player.getdistance myself <= 1024 ) && ( Down == 0 )
set Down to 2
Endif


;---------------------------------------------------
;Herunterfahren, wenn Down == 1 ist
;---------------------------------------------------
If (Down == 1 )
	If ( myself.getpos z >= Position -378 )
	set Move to myself.getpos z -5
	myself.setpos z Move
	Endif
set Down to 0
Endif


;---------------------------------------------------
;Hochfahren, wenn Down == 2 ist
;---------------------------------------------------
If ( Down == 2 )
	If ( myself.getpos z <= Position )
	set Move to myself.getpos z +5
	myself.setpos z Move
	Endif
set Down to 0
Endif

End

jedoch kommt beim abspeichern im Cs eine Fehlermedlung :

script 'Scriptname' , line 23:
Invalid object reference 'myself' for parameter ObjectReferenceID.
Compiled script not saved!

was mach ich falsch :huh::shock:

mfg
 
Ich nehme an, dass myself hier als Reference für das Tor dienen soll?
Dann würde ich dem Tor einfach eine feste Reference geben und die im Script verwenden.

Ansonsten könntest du auch mal "myself.GetDistance player" schreiben.
 
Zuletzt bearbeitet: