Construction Set Skriptthread zum Construction Set

Durch ne zusätzlich Variable:
Code:
short doonce

if doonce == 0
 ; Code wird ausgeführt
 set doonce to 1
endif

Genau genommen wird das Skript auch im folgenden durchlaufen, aber der eingeklammerte Code wird dadurch nur einmal ausgeführt.
 
  • Like
Reaktionen: samael
Ok hab das ganze zum laufen gekriegt, das mit dem Level und der Rasse funktioniert, doch die Classspezication wird beim speichern als nicht bekannt angezeigt...
weiß einer was los ist?
 
Du musst das CS auch mit OBSE ausführen. Dafür erstellst du eine Verknüpfung zur "obse_loader.exe" und fügst bei dieser unter Ziel noch " -editor" (ohne Gänsefüßchen aber mit Leertaste am Anfang) an.
 
  • Like
Reaktionen: samael
ok, ich habs grad mehrmals versucht, aber mir kommt immer die Meldung entgegen, dass das ganze nicht geht, sollte das etwa so aussehen?:
".../Oblivion/ -editorobse_loader.exe"
ganz genau hab ichs nicht verstanden.

gruß
 
Du kannst auch eine Textdatei mit "obse_loader.exe -editor" erstellen, speichern und dann die Endung auf ".bat" ändern. Damit startet das CS dann automatisch mit obse.
 
  • Like
Reaktionen: samael
Gibt es eine Abfrage für die HP des Players? Einmal einen exakten Wert, und einmal nur Prozentual?
Und wie ist das Ganze genau mit den selben 2 unterschiedlichen Versionen bei NPC's?
Sowas in der Richtung von
Code:
 scn test

begin GameMode

getplayer.healthpoints
     if player.healthpoints == 100 blabla
     elseif player.healpoints > 100 return
     endif
end
 
Zuletzt bearbeitet:
Code:
 scn test

begin GameMode

player.[COLOR=Green]getAV[/COLOR] health
     if player.[COLOR=Green]getAV[/COLOR] health == 100 blabla
     elseif player.[COLOR=Green]getAV[/COLOR] heal[COLOR=Red][COLOR=Green]th[/COLOR][/COLOR] > 100
     endif
end
Prozent bekommst du so:
Code:
(player.getAV health / player.getBaseValue health)*100
 
  • Like
Reaktionen: FreshTheFallen
getActorValue (getAV) gibt den aktuellen und getBaseValue den Maximalwert aus. Durch das Teilen erhälst du den Anteil (von 0 bis 1). Diesen mal 100 ergibt ProCENT.

Ob NPC, oder Player macht keinen Unterschied, wenn das Script auf entsprechendem Actor liegt, lässt du seine ID und den Punk weg und im Questskript lässt du sie davor.
 
Hi habe wieder 2 Fragen:
1. gibt es einen begin Befehl, der bei einem Levelup ausgelöst wird?
2. Mein Skript basiert auf bestimmten Leveln (1,5,10,15 usw.) kann man dem Skript nicht einen bestimmten Bereich geben, der Abgefragt wird (if player.getlevel ...(2-5))


gruß und Dank im Voraus
Samael
 
1) Du könntest es mit "Begin MenuMode 1027" versuchen. Wenn das nicht funktioniert (sollte es aber), bleibt eine nachträgliche Abfrage, ob sich da was verändert hat. Zum Beispiel so:
Code:
short Level

Begin GameMode

if player.getLevel > Level
 ; Code
endif
set Level to player.getLevel

end

2) Du kannst mehrere Abfragen kombinieren:
Code:
if player.getLevel >= 10 && player.getLevel < 15
 ; für Level zwischen 10 und 14 (einschließlich)
endif

Wenn allerdings auch die anderen Level eine Rolle spielen sollen, kannst du dir diese Form sparen und es so schreiben:
Code:
if player.getLevel >= x
 ; für Level ab x (einschließlich)
elseif player.getLevel >= y
 ; für Level ab y (einschließlich) bis x (ausgenommen)
elseif player.getLevel >= z
 ; ...
endif
Hierbei ist x > y > z.

Du kannst natürlich auch mit der 1 anfangen und die Level nach oben hin abarbeiten. Dann bräuchtest du nur ein anderes (gegenteiliges) Relationssymbol.
 
  • Like
Reaktionen: samael
Ok habs grade versucht, hat aber nicht funktioniert weiß ned warum, obwohl es das sollt...

PHP:
scn SamaelRaceLeveling

begin menumode 1027

if player.getisrace SamaelsRace == 1

    if player.getlevel 1&& player.getClassSpecialization == 1
    player.addspell SamaelMageAbility01
    endif

    if player.getlevel >= 2 && player.getlevel > 5 && player.getClassSpecialization == 1
    player.removespell SamaelMageAbility01
    player.addspell SamaelMageAbility0205
    endif
endif

end

ich bin eine Schattenklinge auf Level 1, der Script ist in ne Quest mit Player isplayablerace condition gepackt, beide Zauber sind ne Eigenschaft.
ingame steig ich auf, das Fenster taucht auf, nach der Verteilung der Punkte passiert nix...
weißt du wo ich einen Fehler gemacht habe?

Gruß
 
Ok habs grade versucht, hat aber nicht funktioniert weiß ned warum, obwohl es das sollt...

PHP:
scn SamaelRaceLeveling

begin menumode 1027

if player.getisrace SamaelsRace == 1

    if player.getlevel "==" 1 && player.getClassSpecialization == 1
    player.addspell SamaelMageAbility01
    endif

    if player.getlevel >= 2 && player.getlevel > 5 && player.getClassSpecialization == 1
    player.removespell SamaelMageAbility01
    player.addspell SamaelMageAbility0205
    endif
endif

end

Du hast an der rot markierten Stelle die Gleichheitszeichen vergessen
und an dieser Stelle

PHP:
 if player.getlevel >= 2 && player.getlevel > 5 &&
frage ich mich warum du erst >= 2 und >5 machst.
Zum einen müsste es >= 2 und >= 5 sein, zum andern meintest du vermutlich <= 5 oder? ;)

Berichtige die beiden Fehler und es dürfte laufen.
 
  • Like
Reaktionen: samael
funzt, habe jetz aber mit einem anderen Problem zu kämpfen, denn der Script soll ja nur startn, wenn der Spieler levelt, Problem ist, dass dann der Level 1 Zauber nicht addiert wird... bzw erst beim Level up auf level 2 angezeigt wird...
Wäre es möglich, das Ganze in mehrere Scripts zu unterteilen, der erste addiert je nach Spezialisierung das Attribut und startet dementsprechend den Script, der die Spezialisierung weitrlevelt, dNummer eins basiert auf gamemode und Nummer 2-4 auf Menumode 1027.

Gruß
 
Zuletzt bearbeitet:
Hallo, gibt es die Möglichkeit den Spieler muskulöser zu machen? Mit "getweight" geht es nur bei Waffen. Dies soll mit Hilfe einer Zaubers funktionieren.

MFG
Sammael
 
@ Samael: Also willst du den samaelMageAbility01 eigentlich sofort beim Spielstart dabeihaben? Es gibt bei Zaubern eine Box mit dem Text "PC Start Spell", da einfach ein Häkchen und man hat es.
Wenn es Rassenabhängig sein soll, gehst du auf Character->Race->SamaelsRace und fügst dort deinen Eigenschaftszauber (hier ohne Haken bei PC Start Spell) unter
General Data-> Specials ein ;)
dann hat jeder Charakter mit dieser Rasse diese Eigenschaft

@ Sammael666

Also willst du jetzt, dass der Spieler muskulöser aussieht oder dass er mehr tragen kann??
 
  • Like
Reaktionen: samael
@DarkSinthoras:
Kam mir auch in den Sinn, doch je nach SpezialGebiet (Magie Kampf Dieb) wird ein anderer Startzauber eingefügt also je nach Beruf kriegt die Rasse unterschiedliche Boni.
Ja ich will hn sofort haben, aber wenn ich ein Krieger sein will, brauch ich am wenigsten Magiebonis^^

Sammael666:
unter dem reiter Character - Race kannst du die Höhe und das "Gewicht" einstellen, je nach Proportion wirkt er dann Muskolöser bzw. schmaler.

Gruß
 
Folgendes Questscript einbauen

PHP:
scn ErsterZauberhinzufügenScript01

short chosen

begin menumode 1030

set chosen to 1

end

begin gamemode

if getClassSpecialization == 1 &&chosen ==1
player.addspell "KriegerZauber"
endif
if getClassSpecialization == 2 &&chosen ==1
player.addspell "MagierZauber"
endif
if getClassSpecialization == 3 &&chosen ==1
player.addspell "DiebZauber"
endif
end
 
  • Like
Reaktionen: samael