Construction Set Skriptthread zum Construction Set

Juuhuu!! Hat funktioniert. Das Problem war der "Parent" vor den Referenzen...

Freut man sich immer wie beim Geschenke öffnen ^^
Danke vielmal für die Hilfe.
 
Zuletzt bearbeitet:
Hat jemand ne Ahnung, warum sich diese Kugel nicht dreht?
PHP:
scn aaDROrd0HQ01AyleidenkristallSKRIPT

Ref MySelf
Short RotateX
Short RotateY
Short RotateZ

Begin GameMode
	
Set MySelf To GetSelf	
	
If ( MySelf.GetDisabled == 0 ) 
	;#######################
	;# Rotation um X-Achse #
	;#######################
	If ( RotateX < 360 )
		Set RotateX To ( MySelf.GetAngle X + 1 )
	Elseif ( RotateX >= 360 )
		Set RotateX To 0
	Endif
		
	;#######################
	;# Rotation um Y-Achse #
	;#######################
	If ( RotateY < 360 )
		Set RotateY To ( MySelf.GetAngle Y + 1 )
	Elseif ( RotateY >= 360 )
		Set RotateY To 0
	Endif
		
	;#######################
	;# Rotation um Z-Achse #
	;#######################
	If ( RotateZ < 360 )
		Set RotateZ To ( MySelf.GetAngle Z + 1 )
	Elseif ( RotateZ >= 360 )
		Set RotateZ To 0
	Endif

	;#######################
	;# Rotation der Achsen #
	;#######################
	MySelf.SetAngle X RotateX
	MySelf.SetAngle Y RotateY
	MySelf.SetAngle Z RotateZ
Endif
End
 
Ich hab jetzt einen anderen Hinweis (@Unbekannter: Danke) versucht und das ( MySelf.GetAngle + 1 ) auf 2 Zeilen gestreckt.
Funktioniert so wunderbar, aber ich bau deinen Hinweis auch noch ein, Kahmul. :)
 
Hallo liebe Leute,

Ich versuche grade eine Schatzkammer zu erstellen welche sich entsprechend der Goldanzahl im Spielerinventar füllt, bzw. leert.
Nur kriege ich das ganze überhaupt nicht hin.

Was müsste in dieses Skript rein? :?
 
Erstmal solltest du festlegen, in welchen Intervallen die menge steigt. (Stufenlos wird die Arbeit quasie unendlich)
Dann erstellst du für jedes Intervall einen Haufen der dazu kommt. Alle müssen "initially disabled" sein.
Dann folgendes Script auf irgendein anderes Objekt in der Schatzkammer:

PHP:
SCN Bla

long geld

Begin OnLoad

set geld to player.getitemcount gold001

if geld >= Menge1
     Haufen1.enable
else
     Haufen1.disbale
endif

if geld >= Menge2
     Haufen2.enable
else
     Haufen2.disbale
endif

if geld >= Menge3
     Haufen3.enable
else
     Haufen3.disbale
endif

;... wiederhole es für jeden Haufen

end



edit: Eine Alternative, die wegen Savegame-Aufblähung ungern gesehen ist, aber Stufenlos wäre:

PHP:
SCN Bla2

long geld

begin OnLoad

set geld to player.getitemcount gold001
player.placeatme gold001 geld

end


edit2: Danke DarkRuler...
 
Zuletzt bearbeitet:
Danke vielmal, ich werde es gleich ausprobieren :)

EDIT: Der Disable-Befehl wird nicht ausgeführt wenn die Goldmenge sich verringert...

SCN DarlanSafeGoldScript

long geld

Begin OnLoad

set geld to player.getitemcount gold001

if geld >= 500
DarlanSafeMoneyLevel01.enable
else
DarlanSafeMoneyLevel01.disable
endif

if geld >= 1000
DarlanSafeMoneyLevel02.enable
else
DarlanSafeMoneyLevel02.disable
endif

if geld >= 2000
DarlanSafeMoneyLevel03.enable
else
DarlanSafeMoneyLevel03.disable
endif

end


Habe ich den Befehl falsch eingesetzt?
 
Zuletzt bearbeitet:
Habe schon lang nicht mehr für Oblivion geskriptet, aber mein Versuch.
Ersteinmal würde ich das Skript etwas umändern. Zum einen würde ich einen GameMode Block einsetzen damit das ganze auch relativ zeitnah funktioniert und man nicht bei einem OnLoad Block vielleicht aufs nächste Laden warten muss oder noch länger.

Außerdem habe ich die Struktur verändert und den Long entfernt, dann musst du nicht mit Querverweisen arbeiten sondern hast bei diesem simplen Skript genau deine Abfrage.

Code:
SCN DarlanSafeGoldScript

Begin GameMode
if (player.GetInCell DeinZellenName)

	if (player.GetItemCount Gold001 >= 500)
		DarlanSafeMoneyLevel01.enable
	else
		DarlanSafeMoneyLevel01.disable
	endif

	if (player.GetItemCount Gold001 >= 1000)
		DarlanSafeMoneyLevel02.enable
	else
		DarlanSafeMoneyLevel02.disable
	endif

	if (player.GetItemCount Gold001 >= 2000)
		DarlanSafeMoneyLevel03.enable
	else
		DarlanSafeMoneyLevel03.disable
	endif
	
else
	return
endif
end

Beim ersten if musst du noch deine EditorID der Zelle in der sich das abspielt für "DeinZellenName" einsetzen. Dann versuch es mal.

MfG Master of Worlds
 
Zuletzt bearbeitet:
Danke für die Hilfe! Ich werd's heute Abend gleich ausprobieren.

EDIT: ich habe das Skript angewandt und es hat funktioniert! Danke vielmals ^_^
 
Zuletzt bearbeitet:
betteln

hallo ich möchte ein plugin erstellen wo man npcs um geld bitten kann und die einem dann je nach geld was man bereits besitzt viel oder wenig geld geben

z.B. man hat 10 gold und kriegt 1-15 gold
oder man hat 1000 gold und kriegt nur eine antwort "Ihr habt es doch wirklich nicht nötig" oder so ähnlich

kennt jemand die passenden script befehle dafür???

Thx schonmal im vorraus
 
Das würde ich nicht unbedingt mit einem Skript regeln. Da reicht es, wenn du als Antwortmöglichkeiten der NPCs eben verschiedene erstellst, und bei den Bedingungen den gewünschten Goldbetrag des Spielers einstellst. Im Resultskript kannst du dem Spieler dann eine gewisse Anzahl Gold hinzufügen zum Beispiel über eine LevelledList.
 
  • Like
Reaktionen: chichi321
Also du müsstest dann ein Dialog-Topic erstellen und dann eben alle Antwortmöglichkeiten.
Als Condition z.B. "player.getgold >= 0" && "player.getgold < 100" um einzugrenzen, zwischen welchen Werten die Antwort gegeben wird. Im Resultscript dann mit "player.additem gold001 X" und für x die gewünschte Menge an Gold eingeben, die der Spieler erhalten soll.
Wenn man z.B. ab 10.000 gar kein Gold mehr bekommen soll, musst du nur bei Condition "player.getgold >= 10000" und im Resultscript gar nichts eingeben
 
  • Like
Reaktionen: chichi321
Hab hier das Problem, dass mein Skript sich nach dem 1. PlayGroup Backward-Befehl aufhängt. Danach rotiert der einfach nur noch die BackWard-Group aber macht nicht weiter.

Was der Skript machen soll.
Bei Aktivierung soll er über 3 Animationen (Ausklappen = Forward ; Rotieren = Backward ; Explodieren = FastForward) zerstört werden. Im Anschluss sollen alle mit diesem Objekt assoziierten Gegner vernichtet und ausgefadet werden. Falls ein Gegner stirbt, bevor das Objekt zerstört ist, soll er nach 10 Sekunden reanimiert werden.

PHP:
scn aaDROrd0HQ04ObjektSkriptDaemonenstein01

Short Once
Short Res01
Short Res02
Short Res03
Short Res04
Short Res05

Float TimerDisable
Float Timer01
Float Timer02
Float Timer03
Float Timer04
Float Timer05

Begin OnActivate Player
If ( Once == 0 )
	Set Once To 1
	TriggerHitShader 3
Endif
End

Begin GameMode
If ( Once == 1 )
	Set Once To 2
	PlayGroup Forward 0
	PrintToConsole "Graufels - Seelenfokus - Forward"

Elseif ( Once == 2 ) && ( IsAnimPlaying == 0 )
	Set Once To 3
	PlayGroup Backward 0
	PrintToConsole "Graufels - Seelenfokus - Backward"
		
Elseif ( Once == 3 ) && ( IsAnimPlaying == 0 )
	Set Once To 4
	PlayGroup Backward 0
	PrintToConsole "Graufels - Seelenfokus - Backward"
		
Elseif ( Once == 4 ) && ( IsAnimPlaying == 0 )
	Set Once To 5
	PlayGroup FastForward 1
	PrintToConsole "Graufels - Seelenfokus - FastForward"

Elseif ( Once == 5 ) && ( IsAnimPlaying == 0 )
	Set Once To 6
	DROrdHQ04SchmiedeGegner01.Kill
	DROrdHQ04SchmiedeGegner02.Kill
	DROrdHQ04SchmiedeGegner03.Kill
	DROrdHQ04SchmiedeGegner04.Kill
	DROrdHQ04SchmiedeGegner05.Kill

	DROrdHQ04SchmiedeGegner01.SetDestroyed 1
	DROrdHQ04SchmiedeGegner02.SetDestroyed 1
	DROrdHQ04SchmiedeGegner03.SetDestroyed 1
	DROrdHQ04SchmiedeGegner04.SetDestroyed 1
	DROrdHQ04SchmiedeGegner05.SetDestroyed 1

	DROrd0HQ04SchmiedeRauch01.Disable
	DROrd0HQ04SchmiedeRauch02.Disable
	DROrd0HQ04SchmiedeRauch03.Disable
	DROrd0HQ04SchmiedeRauch04.Disable
	DROrd0HQ04SchmiedeRauch05.Disable
	DROrd0HQ04SchmiedeRauch06.Disable
	DROrd0HQ04SchmiedeRauch07.Disable
	DROrd0HQ04SchmiedeRauch08.Disable
	DROrd0HQ04SchmiedeRauch09.Disable
	DROrd0HQ04SchmiedeRauch10.Disable
	DROrd0HQ04SchmiedeRauch11.Disable
	DROrd0HQ04SchmiedeRauch12.Disable
	DROrd0HQ04SchmiedeRauchColli.Disable
		
Elseif ( Once == 6 )
	Set Once To 7
	Set TimerDisable To 20
	
Elseif ( Once == 7 )
	Set TimerDisable To ( TimerDisable - GetSecondsPassed )
	
	If ( TimerDisable > 9 )
		DROrdHQ04SchmiedeGegner01.SetActorAlpha 0.9
		DROrdHQ04SchmiedeGegner02.SetActorAlpha 0.9
		DROrdHQ04SchmiedeGegner03.SetActorAlpha 0.9
		DROrdHQ04SchmiedeGegner04.SetActorAlpha 0.9
		DROrdHQ04SchmiedeGegner05.SetActorAlpha 0.9

	Elseif ( TimerDisable > 8 )
		DROrdHQ04SchmiedeGegner01.SetActorAlpha 0.8
		DROrdHQ04SchmiedeGegner02.SetActorAlpha 0.8
		DROrdHQ04SchmiedeGegner03.SetActorAlpha 0.8
		DROrdHQ04SchmiedeGegner04.SetActorAlpha 0.8
		DROrdHQ04SchmiedeGegner05.SetActorAlpha 0.8

	Elseif ( TimerDisable > 7 )
		DROrdHQ04SchmiedeGegner01.SetActorAlpha 0.7
		DROrdHQ04SchmiedeGegner02.SetActorAlpha 0.7
		DROrdHQ04SchmiedeGegner03.SetActorAlpha 0.7
		DROrdHQ04SchmiedeGegner04.SetActorAlpha 0.7
		DROrdHQ04SchmiedeGegner05.SetActorAlpha 0.7

	Elseif ( TimerDisable > 6 ) 
		DROrdHQ04SchmiedeGegner01.SetActorAlpha 0.6
		DROrdHQ04SchmiedeGegner02.SetActorAlpha 0.6
		DROrdHQ04SchmiedeGegner03.SetActorAlpha 0.6
		DROrdHQ04SchmiedeGegner04.SetActorAlpha 0.6
		DROrdHQ04SchmiedeGegner05.SetActorAlpha 0.6

	Elseif ( TimerDisable > 5 )
		DROrdHQ04SchmiedeGegner01.SetActorAlpha 0.5
		DROrdHQ04SchmiedeGegner02.SetActorAlpha 0.5
		DROrdHQ04SchmiedeGegner03.SetActorAlpha 0.5
		DROrdHQ04SchmiedeGegner04.SetActorAlpha 0.5
		DROrdHQ04SchmiedeGegner05.SetActorAlpha 0.5

	Elseif ( TimerDisable > 4 )
		DROrdHQ04SchmiedeGegner01.SetActorAlpha 0.4
		DROrdHQ04SchmiedeGegner02.SetActorAlpha 0.4
		DROrdHQ04SchmiedeGegner03.SetActorAlpha 0.4
		DROrdHQ04SchmiedeGegner04.SetActorAlpha 0.4
		DROrdHQ04SchmiedeGegner05.SetActorAlpha 0.4

	Elseif ( TimerDisable > 3 )
		DROrdHQ04SchmiedeGegner01.SetActorAlpha 0.3
		DROrdHQ04SchmiedeGegner02.SetActorAlpha 0.3
		DROrdHQ04SchmiedeGegner03.SetActorAlpha 0.3
		DROrdHQ04SchmiedeGegner04.SetActorAlpha 0.3
		DROrdHQ04SchmiedeGegner05.SetActorAlpha 0.3

	Elseif ( TimerDisable > 2 )
		DROrdHQ04SchmiedeGegner01.SetActorAlpha 0.2
		DROrdHQ04SchmiedeGegner02.SetActorAlpha 0.2
		DROrdHQ04SchmiedeGegner03.SetActorAlpha 0.2
		DROrdHQ04SchmiedeGegner04.SetActorAlpha 0.2
		DROrdHQ04SchmiedeGegner05.SetActorAlpha 0.2

	Elseif ( TimerDisable > 1 )
		DROrdHQ04SchmiedeGegner01.SetActorAlpha 0.1
		DROrdHQ04SchmiedeGegner02.SetActorAlpha 0.1
		DROrdHQ04SchmiedeGegner03.SetActorAlpha 0.1
		DROrdHQ04SchmiedeGegner04.SetActorAlpha 0.1
		DROrdHQ04SchmiedeGegner05.SetActorAlpha 0.1

	Elseif ( TimerDisable < 1 )
		Set Once To 8
		DROrdHQ04SchmiedeGegner01.Disable
		DROrdHQ04SchmiedeGegner02.Disable
		DROrdHQ04SchmiedeGegner03.Disable
		DROrdHQ04SchmiedeGegner04.Disable
		DROrdHQ04SchmiedeGegner05.Disable
	Endif
Endif
	
If ( Once < 8 )
	If ( Res01 == 0 ) && ( DROrdHQ04SchmiedeGegner01.GetDead == 1 )
		Set Res01 To 1
		Set Timer01 To 10
	Elseif ( Res01 == 1 )
		If ( Timer01 <= 0 )
			Set Res01 To 0
			DROrdHQ04SchmiedeGegner01.Resurrect 1
		Else
			Set Timer01 To ( Timer01 - GetSecondsPassed )
		Endif
	Endif

	If ( Res02 == 0 ) && ( DROrdHQ04SchmiedeGegner02.GetDead == 1 )
		Set Res02 To 1
		Set Timer02 To 10
	Elseif ( Res02 == 1 )
		If ( Timer02 <= 0 )
			Set Res02 To 0
			DROrdHQ04SchmiedeGegner02.Resurrect 1
		Else
			Set Timer02 To ( Timer02 - GetSecondsPassed )
		Endif
	Endif

	If ( Res03 == 0 ) && ( DROrdHQ04SchmiedeGegner03.GetDead == 1 )
		Set Res03 To 1
		Set Timer03 To 10
	Elseif ( Res03 == 1 )
		If ( Timer03 <= 0 )
			Set Res03 To 0
			DROrdHQ04SchmiedeGegner03.Resurrect 1
		Else
			Set Timer03 To ( Timer03 - GetSecondsPassed )
		Endif
	Endif

	If ( Res04 == 0 ) && ( DROrdHQ04SchmiedeGegner04.GetDead == 1 )
		Set Res04 To 1
		Set Timer04 To 10
	Elseif ( Res04 == 1 )
		If ( Timer04 <= 0 )
			Set Res04 To 0
			DROrdHQ04SchmiedeGegner04.Resurrect 1
		Else
			Set Timer04 To ( Timer04 - GetSecondsPassed )
		Endif
	Endif

	If ( Res05 == 0 ) && ( DROrdHQ04SchmiedeGegner05.GetDead == 1 )
		Set Res05 To 1
		Set Timer05 To 10
	Elseif ( Res05 == 1 )
		If ( Timer05 <= 0 )
			Set Res05 To 0
			DROrdHQ04SchmiedeGegner05.Resurrect 1
		Else
			Set Timer05 To ( Timer05 - GetSecondsPassed )
		Endif
	Endif
Endif
End
 
Hiebwaffe abfragen

Skriptanfrage:
Die Idee ist, das eine Creatur, Beisspiel Skelett nur mit einer bestimmten Waffengattung beschädigt werden kann.

So wie bei den Geistern. Doch hier ist es ja nur das vorgegeben Waffen Flag "Ignores Normal Weapon Resistance" und der Zauberspruch gegen herkömmliche Waffen Immun zu sein.

Lässt sich die Waffengattung Hiebwaffen irgendwie abfragen?

Es könnte ein Script auf der Creatur liegen. Und soblad diese mit einer nicht Hiebwaffe getroffen wird, erleidet sie keinen Schaden. Doch wie lässt sich das machen. Jemand eine Idee