Construction Set Skriptthread zum Construction Set

Du fragst doch wieder mich :p.

Sonnenschaden ist (meine ich) keine spezielle Schadensart sondern einfach nur Feuerschaden. Du kannst einfach einen neue Eigenschaft/Krankheit erstellen, der als einzigste Zauberart "Feuerschaden" hat. Diese fügst du dann dem Gegner per AddSpell MagicId hinzu.

Ansonsten, es gibt keine direkte funktion, um dem Gegner Schaden hinzuzufügen, du müsstest das Leben manuell entziehen.
 
  • Like
Reaktionen: Sceen
Hallo ich habe ein Problem mit meinem script.
und zwar, wenn ich das speichen will kommt folgende nachricht
Script: "Heiligehallenpruefngsscript", line 41
Message Time must be an integer.
Complite script not saved!

Das ist mein script.

Code:
Scriptname HeiligeHallenPruefungScript

begin OnTrigger Player
message "Wer Eintritt in die Heiligen Hallen verlangt, muss zu erst seinen Mut beweisen!"
shadowdoor03.unlock
shadowdoor04.unlock
shadowdoor05.unlock
shadowdoor06.unlock
shadowdoor07.unlock
shadowdoor08.unlock
shadowdoor01.lock 100
shadowdoor02.lock 100
message "Ich sitze in der Falle, die Ausgänge sind versperrt!"
end

begin GameMode
shadowskelet01.StartCombat Player
shadowskelet02.startCombat Player
shadowskelet03.startCombat Player
shadowskelet04.startCombat Player
shadowskelet05.startCombat Player
shadowskelet06.startCombat Player
shadowskelet07.startCombat Player
shadowskelet08.startCombat Player
shadowskelet09.startCombat Player
shadowskelet10.startCombat Player
shadowskelet11.startCombat Player
shadowskelet12.startCombat Player
shadowlich01.startCombat Player
shadowlich02.startCombat Player
shadowlich03.startCombat Player
shadowlich04.startCombat Player
shadowlich05.startCombat Player
shadowlich06.startCombat Player
end

begin GameMode
if ( shadowlich04.GetDead == 1 ) && ( Shadowlich01.GetDead == 1 shadowlich02.GetDead == 1 shadowlich03.GetDead == 1 shadowlich05.GetDead == 1 shadowlich06.GetDead == 1 shadowskelet01.GetDead == 1 shadowskelet02.GetDead == 1 shadowskelet03.GetDead == 1 shadowskelet04.GetDead == 1 shadowskelet05.GetDead == 1 shadowskelet06.GetDead == 1 shadowskelet07.GetDead == 1 shadowskelet08.GetDead == 1 shadowskelet09.GetDead == 1 shadowskelet10.GetDead == 1 shadowskelet11.GetDead == 1 shadowskelet12.GetDead == 1 )
shadowdoor01.unlock
shadowdoor02.unlock
message "Ihr habt eure Sache gutgemacht edeler Krieger. Ihr habt die Prüfung bestanden. Die Türen zu den Heiligen Hallen stehen euch nun Offen."  message "Ich habe es Geschafft, ich wurde als würdig erachtet die Heiligen Hallen zu betreten."
endif
end

Kann mir bitte einer helfen, den fehler zu beheben?

thy im vorraus

mfg
Shadow-King
 
Ich hänge immer noch an diesem einen Skript, das Skript an sich funktioniert, aber es löst nicht den gewünschten Effekt aus.
Code:
scn NEPGeistertanzSpellskript2

float Timer
short DoOnce

begin ScriptEffectStart
if timer < 25
set DoOnce to 0
set timer to timer +GetSecondsPassed
else
setstage xxxxxxx 15
endif
end

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

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


end

Das ist es.
Ich möchte, dass, wenn ein Zauber seinen Effekt verliert, er sozusagen "abläuft", der Spieler zu einem Punkt (Geisterwasserbecken) bewegt wird. Wie ist das vernünftig möglich? :?
 
So ne nebenfrage: Wieso brauchst du da nen timer drinnen?
Der script ergibt nur dann sinn wen ner auf einen zauber gelegt wird der den spieler trifft oder von ihm benutzt wird (was irgendwie sinnlos wirken würde).
Wenn du mit dem cs einen zauber erstellst kannst du eh einstellen wie lange er wirken soll...
Vllt liegt darin das problem.
Nur zur kontrolle:
Das "Geisterwasserbecken" is schon ein XMarker bzw. XMarkerHeading wo "Geisterwasserbecken" als ref angegeben wird?

mfg,
Trisaster
 
ähm ich hätte mal so ne kleine frage zu nem skript...
ich möchte nen zauber machen, der wie ein illusionszauber aussieht, auf ziel ist und dann ein gegenstand am boden ist wo der zauber aufgeschlagen ist
wo ichs mir grad überlege....geht das ganze auch mit pfeilen? bräuchte beides
 
Also erstmal nur ne kleinigkeit elveon.
Ich bin zwar kein pro in Sachen scripting, aber ich glaube es muss heißen "elseif".
Dann noch "set timer to getsecondspassed + [die Zeit die es andauern soll]" (oder war das so geplant?)
 
Zuletzt bearbeitet:
Ich würde das so machen:
scn NEPGeistertanzSpellskript2

float timer [ist nur eine variable, die von oblivion nicht genutzt bzw.
aktualisiert wird oder?]
short DoOnce

begin ScriptEffectStart
if timer < gamesecondspassed + 25
set DoOnce to 0
set timer to gamesecondspassed + 25 [gibt es das AjAeXx?]
elseif
setstage xxxxxx 15
endif
end

begin scripteffectfinish
if timer <= gamesecondspassed [25 spielsekunden sind abgelaufen]
if DoOnce == 0 && getstage xxxxx <= 15
set DoOnce to 1
set timer to 0
setstage xxxxx 15
player.moveto Geisterwassbecken
endif
endif

end

Achtung der Zauber wird nur einmal funktionieren so weil danach die stage 15 beträgt und funktioniert nur, wenn er min. 15 sekundenlang und maximal 30 andauert, ansonsten laufen die 15 seks. nicht ab!!!!!!!

Nochmal kontrollieren obs falsch ist (immer diese azubis ^^)
mfg

p.s. wäre ganz nützlich nochmal den hintergrund zu wissen und was du hiermit bewirken willst. (Außer teleportation nach Geisterwasserbecken)
 
Zuletzt bearbeitet:
@ Sceen: Ganz falsch

@ Elveon:
Code:
scn NEPGeistertanzSpellskript2

float Timer
short DoOnce

begin ScriptEffectStart                      ; Wird nur 1 Mal ausgeführt, sprich wenn der Zauber den Gegner trifft, von daher wird die Quest nie hochgesetzt.
if timer < 25
set DoOnce to 0
set timer to timer +GetSecondsPassed
else
setstage xxxxxxx 15
endif
end

Begin ScriptEffectUpdate
If timer <= 25
Set timer to timer + GetSecondspassed
else
setstage xxxxxxx 15
endif
end

begin ScriptEffectFinish
if GetStage xxxxxxxxx == 15 && DoOnce == 0
set DoOnce to 1
set timer to 0
player.moveto Geisterwasserbecken
endif
end

@ dpümdpüm, Ja, z.B mit PlaceAtMe (Sollte man aber nicht benutzen, wenn nicht unausweichlich).
 
  • Like
Reaktionen: elveon
Hm... Ich habe mal eine Frage an beide: Was bewirkt der timer? Für mich ergibt sich da gar kein Sinn. Mach den Zauber einfach 25 Sekunden lang und schreib den Script so:

Code:
scn Scriptname

Begin ScriptEffectFinish
setStage xxxxxx 15
player.moveto Geisterwasserbecken
End
 
Richtig, kann er auch machen, aber, wo er den Timer schon drinhat, kann er denn auch benutzen, wobei er die dauern sowieso auf 25 Sec schalten MUSS, da sonst der Zauber nicht lang genug dauert, den Timer komplett auszuführen.
 
Also erstmal nur ne kleinigkeit elveon.
Ich bin zwar kein pro in Sachen scripting, aber ich glaube es muss heißen "elseif".
nur, wenn du auch noch eine weitere bedingung prüfen willst.

Code:
if [I]a == 1[/I]
   [I]blablabla[/I]     ; <- code, der ausgeführt werden soll, wenn a gleich 1 ist
else
   [I]blablabla[/I]     ; <- code, der ausgeführt werden soll, wenn a nicht 1 ist
endif

Code:
if [I]a == 1[/I]
   [I]blablabla[/I]     ; <- code, der ausgeführt werden soll, wenn a gleich 1 ist
elseif [I]a == 2[/I]
   [I]blablabla[/I]     ; <- code, der ausgeführt werden soll, wenn a nicht 1, aber a gleich 2 ist
elseif [I]b == 1[/I]
   [I]blablabla[/I]     ; <- code, der ausgeführt werden soll, wenn a nicht 1 oder 2, aber b gleich 1 ist
endif

ein elseif allein geht also nicht, du musst auch immer eine bedingung dabei prüfen.
 
  • Like
Reaktionen: Sceen
Sonst gibt es so eine lustige Fehlermeldung beim schließen "Save Current Script" und wenn du ja klickst passiert nichts, und die kriegst das Fenster nicht zu.
 
ich brauche für eine mod ein skript. dieses habe ich auch. das problem ist nur, dass ich es nicht abspeichern kann. das skript sieht so aus:

Code:
VLSchwertSkript

short cquest

Begin GameMode

If ( GetStage [QuestID] == [Stage] ) && ( cquest == 0 )
   Player.SetCrimeGold 8000000
   Set cquest To 1
EndIf

If ( Player.GetInCell [CellID] ) && ( GetDead.AnvilGuardCityPatrolDay01 == 1 ) || ( GetDead.AnvilGuardCityPatrolDay02 == 1 ) || ( GetDead.AnvilGuardCityPatrolNight01 == 1 ) || ( GetDead.AnvilGuardCityPatrolNight02 == 1 ) || ( GetDead.AnvilGuardCityPostDay01 == 1 ) || ( GetDead.AnvilGuardCityPostDay02 == 1 ) || ( GetDead.AnvilGuardCityPostDay03 == 1 ) || ( GetDead.AnvilGuardCityPostNight01 == 1 ) || ( GetDead.AnvilGuardCityPostNight02 == 1 ) || ( GetDead.AnvilGuardCityPostNight03 == 1 ) || ( GetDead.AnvilGuardCityPostStablesDay == 1 ) || ( GetDead.AnvilGuardCityPostStablesNight == 1 )
   Player.SetCrimeGold 0
EndIf

If ( Player.GetInCell [CellID] ) && ( GetDead.BravilGuardCityPatrolDay01 == 1 ) || ( GetDead.BravilGuardCityPatrolNight01 == 1 ) || ( GetDead.BravilGuardCityPostDay01 == 1 ) || ( GetDead.BravilGuardCityPostDay02 == 1 ) || ( GetDead.BravilGuardCityPostDay03 == 1 ) || ( GetDead.BravilGuardCityPostNight01 == 1 ) || ( GetDead.BravilGuardCityPostNight02 == 1 ) || ( GetDead.BravilGuardCityPostNight03 == 1 ) || ( GetDead.BravilGuardCityPostStablesDay == 1 ) || ( GetDead.BravilGuardCityPostStablesNight == 1 )
   Player.SetCrimeGold 0
EndIf

If ( Player.GetInCell [CellID] ) && ( GetDead.BrumaGuardCityPatrolDay01 == 1 ) || ( GetDead.BrumaGuardCityPatrolDay02 == 1 ) || ( GetDead.BrumaGuardCityPatrolNight01 == 1 ) || ( GetDead.BrumaGuardCityPatrolNight02 == 1 ) || ( GetDead.BrumaGuardCityPostDay01 == 1 ) || ( GetDead.BrumaGuardCityPostDay02 == 1 ) || ( GetDead.BrumaGuardCityPostDay03 == 1 ) || ( GetDead.BrumaGuardCityPostDay04 == 1 ) || ( GetDead.BrumaGuardCityPostNight01 == 1 ) || ( GetDead.BrumaGuardCityPostNight02 == 1 ) || ( GetDead.BrumaGuardCityPostNight03 == 1 ) || ( GetDead.BrumaGuardCityPostNight04 == 1 ) || ( GetDead.BrumaGuardCityPostStablesDay == 1 ) || ( GetDead.BrumaGuardCityPostStablesNight == 1 )
   Player.SetCrimeGold 0
EndIf

If ( Player.GetInCell [CellID] ) && ( GetDead.CheydinhalGuardCityPatrolDay01 == 1 ) || ( GetDead.CheydinhalGuardCityPatrolDay02 == 1 ) || ( GetDead.CheydinhalGuardCityPatrolNight01 == 1 ) || ( GetDead.CheydinhalGuardCityPatrolNight02 == 1 ) || ( GetDead.CheydinhalGuardCityPostDay01 == 1 ) || ( GetDead.CheydinhalGuardCityPostDay02 == 1 ) || ( GetDead.CheydinhalGuardCityPostDay03 == 1 ) || ( GetDead.CheydinhalGuardCityPostDay04 == 1 ) || ( GetDead.CheydinhalGuardCityPostNight01 == 1 ) || ( GetDead.CheydinhalGuardCityPostNight02 == 1 ) || ( GetDead.CheydinhalGuardCityPostNight03 == 1 ) || ( GetDead.CheydinhalGuardCityPostNight04 == 1 ) || ( GetDead.CheydinhalGuardCityPostStablesDay == 1 ) || ( GetDead.CheydinhalGuardCityPostStablesNight == 1 )
   Player.SetCrimeGold 0
EndIf


If ( Player.GetInCell [CellID] ) && ( GetDead.ChorrolGuardPatrolDay01 == 1 ) || ( GetDead.ChorrolGuardPatrolDay02 == 1 ) || ( 
GetDead.ChorrolGuardPatrolDay03 == 1 ) || ( 
GetDead.ChorrolGuardPatrolNight01 == 1 ) || ( GetDead.ChorrolGuardPatrolNight02 == 1 ) || ( 
GetDead.ChorrolGuardPatrolNight03 == 1 ) || ( 
GetDead.ChorrolGuardPostDay01 == 1 ) || ( GetDead.ChorrolGuardPostDay02 == 1 ) || ( GetDead.ChorrolGuardPostDay03 == 1 ) || ( GetDead.ChorrolGuardPostNight01 == 1 ) || ( GetDead.ChorrolGuardPostNight02 == 1 ) || ( GetDead.ChorrolGuardPostNight03 == 1 ) || ( GetDead.ChorrolGuardPostStablesDay == 1 ) || ( GetDead.ChorrolGuardPostStablesNight == 1 )
   Player.SetCrimeGold 0
EndIf

If ( Player.GetInCell [CellID] ) && ( GetDead.LeyawiinGuardCityPatrolDay01 == 1 ) || ( GetDead.LeyawiinGuardCityPatrolDay03 == 1 ) || ( 
GetDead.LeyawiinGuardCityPatrolNight01 == 1 ) || ( 
GetDead.LeyawiinGuardCityPatrolNight03 == 1 ) || ( 
GetDead.LeyawiinGuardCityPostDay01 == 1 ) || ( GetDead.LeyawiinGuardCityPostDay02 == 1 ) || ( GetDead.LeyawiinGuardCityPostDay03 == 1 ) || ( GetDead.LeyawiinGuardCityPostNight01 == 1 ) || ( GetDead.LeyawiinGuardCityPostNight02 == 1 ) || ( GetDead.LeyawiinGuardCityPostNight03 == 1 ) || ( GetDead.LeyawiinGuardCityStablesPostDay == 1 ) || ( GetDead.LeyawiinGuardCityPostStablesNight == 1 )
   Player.SetCrimeGold 0
EndIf

If ( Player.GetInCell [CellID] ) && ( GetDead.SkingradCastleGuardPatrolDay01 == 1) || ( GetDead.SkingradCastleGuardPatrolDay02 == 1) || ( GetDead.SkingradCastleGuardPatrolNight01 == 1) || ( GetDead.SkingradCastleGuardPatrolNight02 == 1) || ( GetDead.SkingradCastleGuardPostDay01 == 1) || ( GetDead.SkingradCastleGuardPostDay02 == 1) || ( GetDead.SkingradCastleGuardPostNight01 == 1) || ( GetDead.SkingradCastleGuardPostNight02 == 1) || ( GetDead.SkingradGuardPatrolDay01 == 1) || ( GetDead.SkingradGuardPatrolNight01 == 1) || ( GetDead.SkingradGuardPostDay01 == 1) || ( GetDead.SkingradGuardPostDay02 == 1) || ( GetDead.SkingradGuardPostDay03 == 1) || ( GetDead.SkingradGuardPostDay04 == 1) || ( GetDead.SkingradGuardPostNight01 == 1) || ( GetDead.SkingradGuardPostNight02 == 1) || ( GetDead.SkingradGuardPostNight03 == 1) || ( GetDead.SkingradGuardPostNight04 == 1) || ( GetDead.SkingradGuardPostStablesDay == 1) || ( GetDead.SkingradGuardPostStablesNight == 1)
   Player.SetCrimeGold 0
EndIf

End


immer wenn ich speichern will kommt folgende fehlermeldung:

Fehlermeldung schrieb:
Script 'VLSchwertSkript', line 10:
Max script line length (512 characters) exeeded.

Weiterspielen?
"Yes to all" will disable all warnings this session.


Ja
Nein

das heißt wohl soviel wie: in zeile 10 sind mehr zeichen, als zugelassen sind. es dürfen maximal 512 zeichen verwendet werden.

weiterspielen?

ja nein


wenn ich auf nein drücke, dann schaltet sich das CS automatisch aus. auf ja bleibt er auf dem skriptfenster.

in zeile 10 steht aber endif. also das sind dann aber keine 512 zeichen:lol:

hoffe, ihr könnt mir helfen, ddf