Construction Set Skriptthread zum Construction Set

Kann ich dir sagen Elveon, weil der ScriptEffectStart Block nur ein einziges Mal tickt, und der Timer deswegen auch nur um 1 Sec erhöht wird.#

Füge einfach noch eine Zeile à la
Code:
Begin ScriptEffectUpdate
If timer <= 30
Set timer to timer + GetSecondspassed
endif
end

@Knoche, wenn die Aggression auf 0 steht, greifen sie nicht an sondern rennen weg. Setz die Aggression lieber auf 5.
 
Zuletzt bearbeitet:
Code:
scn NEPGeistertanzSpellskript2

float Timer
short DoOnce

begin ScriptEffectStart
if timer < 30
set DoOnce to 0
set timer to timer +GetSecondsPassed
else
setstage NEPGeistertanzQuest 15
endif

Begin ScriptEffectUpdate
If timer <= 30
Set timer to timer + GetSecondspassed
endif
end

if GetStage NEPGeistertanzQuest == 15 && DoOnce == 0
set DoOnce to 1
set timer to 0
player.moveto Geisterwasserbecken
endif


end

So meckert er über "nested begin/end blocks", was muss ich da tun?
 
Hi Leute,

ich hab eine Frage ich benötige ein Script das ausgeführt wird sobald man ein in einer Oblivionebene den Siegelstein nimmt. Da dieser ja nicht immer gleich ist, muss also es muss zuerst herausgefunden werden welcher Stein es ist.

Ist das machbar ?

Ich hab mal geschaut es gibt den Befehl 'OnAdd' mit diesem kann man ja starten.

Bis denn Thalon
 
Code:
scn NEPGeistertanzSpellskript2

float Timer
short DoOnce

[COLOR="Red"]begin ScriptEffectStart[/COLOR]
if timer < 30
set DoOnce to 0
set timer to timer +GetSecondsPassed
else
setstage NEPGeistertanzQuest 15
endif

[COLOR="DarkRed"]Begin ScriptEffectUpdate[/COLOR]
If timer <= 30
Set timer to timer + GetSecondspassed
endif
[COLOR="DarkRed"]end[/COLOR]

if GetStage NEPGeistertanzQuest == 15 && DoOnce == 0
set DoOnce to 1
set timer to 0
player.moveto Geisterwasserbecken
endif


[COLOR="Red"]end[/COLOR]

So meckert er über "nested begin/end blocks", was muss ich da tun?

Du hast 2 Blöcke geschachtelt, das verträgt Oblivion nicht.
 
Wie kann ich das denn ändern? Ich habs leider noch nicht herausbekommen..Mit löschen der Parts ist es doch nicht getan oder?
 
Nein, du musst einfach nur das "End" ganz am Ende über den ScriptEffectUpdate Block setzen.

Btw. Du solltest vielleicht noch einen ScriptEffectFinsih Block hinzufügen, sonst gehen die Zauber manchmal nicht richtig.
 
  • Like
Reaktionen: elveon
Genau. Also so (wenn ich das von AjAeXx richtig umsetze):

Code:
scn NEPGeistertanzSpellskript2

float Timer
short DoOnce

begin ScriptEffectStart
if timer < 30
set DoOnce to 0
set timer to timer +GetSecondsPassed
else
setstage NEPGeistertanzQuest 15
endif
[COLOR="Red"]end[/COLOR]

Begin ScriptEffectUpdate
If timer <= 30
Set timer to timer + GetSecondspassed
endif
end

[COLOR="Red"]begin ScriptEffectFinish[/COLOR]
if GetStage NEPGeistertanzQuest == 15 && DoOnce == 0
set DoOnce to 1
set timer to 0
player.moveto Geisterwasserbecken
endif


end
 
  • Like
Reaktionen: elveon
Hey Leute^^
Ich suche ein Script für ein Alchemie Sortier System
Wenns ein Mod gibt der eins Hat könntet ihr vllt. nen Link geben wenn nicht bräuchte ich ein script
(wenn ihr netterweise eins zur verfügung stellt) :-D
Lg
SirTroy
 
Was genau soll den das Script bewirken?
Soll es zum Beispiel sobald man eine Trueh anklcikt, alle oder bestimte Zutaten in die Truhe ziehen?

Mit nahezu keinen Angaben kann man kein Script schreiben.
 
Ok sry

Ich hab eine Truhe wo ich alle Zutaten reinlegen kann
Sobald ich die Truhe dann schließe sollen alle Zutaten die in diese Truhe gelegt wurden in den für die Zutat vorgesehenen Behälter getan werden
bsp.: Ich leg ne Orange in die Master Truhe, schließe die Truhe und die Orange soll in den behälter für Gemüse
So soll es also geben: Behälter für:
Fleisch
Gemüse
Obst
Pilze
Kräuter
Deadra
Sonstiges
Lg
SirTroy
 
Ich geh dir jetzt nur ein Beispiel, wie das ganze aussehen könnte:

Code:
scn blubb

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                  ; Diesen block musst du für jedes Item wiederholen
 
  • Like
Reaktionen: SirTroy
Ich glaub das Problem wurde hier vorkurzen schon einmal angesproche, ich meine derjenige hätte da von ein Zeilenumbruch hinsoll, zwei gut erkennbare Zeichen gemacht /\ z.B und hat dann nacher mit einem HexEditor diese Zeichen durch einen Zeilem umbruch ersetzt. Wie er es genau gemacht hat, kann ich dir leider nicht sagen.
 
  • Like
Reaktionen: Master176281
Ich glaub das Problem wurde hier vorkurzen schon einmal angesproche, ich meine derjenige hätte da von ein Zeilenumbruch hinsoll, zwei gut erkennbare Zeichen gemacht /\ z.B und hat dann nacher mit einem HexEditor diese Zeichen durch einen Zeilem umbruch ersetzt. Wie er es genau gemacht hat, kann ich dir leider nicht sagen.
das kommt mir bekannt vor ;)

im grunde funktioniert es so, wie du schon gesagt hast. man sollte allerdings mit einem hex-editor umgehen können.

im skript setzt man erstmal überall, wo ein zeilenumbruch hin soll, die zeichen /\ hin. danach öffnet man die esp-datei mit einem hex-editor und sucht nach diesen zeichen (als hex-wert 2F 5C), und tauscht diese dann gegen die hex-werte 0D 0A aus. das ist eigentlich schon alles :)

2 sachen sind noch erwähnenswert: zum einen sollte man sich immer eine version der esp-datei ohne die hex-änderung aufheben. denn wenn man die esp später noch einmal bearbeiten möchte, müsste man sonst erst wieder alle zeilenumbrüche aus den skripten entfernen, sonst bekommt man sie nicht wieder gespeichert.
und zum zweiten tauchen in der esp-datei doppelt so viele /\ auf, wie man in den skripten selbst eingegeben hat. das liegt dadran, daß die skripte in der esp-datei doppelt gespeichert werden. einmal als klartext, wie er auch im skript-editor steht, und einmal als kompilierte version (also die variante, die oblivion dann ingame auch ausführt).
 
  • Like
Reaktionen: Master176281
also ich schreib hier jetzt auch mal rein.
(will nicht immer nur dich belästigen AjAeXx)
Also:
Ich will einen Spell scrpten, der einfach nur schaden macht (ähnlich wie schaden: lebensenergie, nur will ich das selber machen)
Da ich nun im CS nicht weiß, wo die Scrpts für die Zauber stehen frage ich euch:
wie muss das gehen?

Scn blabla

begin scripteffectstart
....
und dann?
wie heißt der befehl um dem gegner schaden zu geben?

oder besser noch: wie kann ich es machen, dass man einen Zauber wirken kann, der Sonnenschaden auf andere bewirkt?
 
Zuletzt bearbeitet: