Construction Set Skriptthread zum Construction Set

Indem du zum Beispiel vorher das Kopfgeld in einer Variable speicherst und es anschließend wieder hinzufügst. In etwa so:
Code:
scn name

long var

Begin onEquip player

set var to player.getCrimeGold
player.setCrimeGold 0

end

Begin onUnequip player

player.setCrimeGold var

end
 
  • Like
Reaktionen: Runic
Mir ist kein solcher Befehl bekannt. Ich habe nur einen gefunden, der abfragt, ob das Item ein Gift ist, aber das suchst du ja nicht.
Schau mal hier, vielleicht findest du einen Befehl, den ich übersehen habe. ;)

mfg
Kahmul
 
  • Like
Reaktionen: bjoernret
Du könntest eventuell "HasMagicEffect" benutzen. Wenn es ein bestimmtes Gift sein soll, weißt du ja, welche Eigenschaften es hat.
 
Das hilft mir leider nicht weiter, da ich abfragen will, ob der Spieler irgendeinen Gift-Effekt auf sich hat (also einen Zauber vom Typ Gift).
 
Wenns kompliziert werden darf, kannst du ja sämtliche Gifteffekte des Spiels gegen welche von dir eintauschen, machst du dann so 10-20 verschiedene Gifteffekte und fragst dann in nem Skript ab, ob der Spieler davon betroffen ist. Hoffe, ich konnte helfen. Wenn nicht, beachtet mich gar nicht.
 
Es darf ruhig kompliziert werden, nur sollen auch Gifte von Mods erkannt werden.

Was ich vorhabe: Ein Schrein, wo man nur Gifte heilen kann.
 
Den benutze ich, wenn der Spieler vergiftet wurde. Die Heilung des Giftes durch den Schrein hat aber einen gewissen Nebeneffekt, der soll eben nicht auftreten, wenn der Spieler gar nicht vergiftet ist, darum möchte ich vorher abfragen, ob der Spieler überhaupt einen Gift-Effekt hat.
 
Du könntest eventuell "player.getNthActiveEffectData 0" benutzen um den Code des neuesten Effekts zu bekommen. Im Wiki steht irgendwas davon, dass man den Effekt vorher ändern muss oder so. Was damit gemeint ist weiß ich nicht. Wenn du weißt, welche Effekt der neueste ist, kannst du bestimmt prüfen, ob er "hostile" (für Gegner gedacht) ist ("isMagicEffectHostile") und gucken, ob er zeitlich begrenzt ist (also keine dauerhafte Eigenschaft: "getNthActiveEffectDuration").
Das ist auf jeden Fall ziemlich undurchsichtig, aber vielleicht als Ansatz zu gebrauchen...
 
  • Like
Reaktionen: bjoernret
Danke erstmal, aber woher soll ich wissen, an welchen Stellen die Gifteffekt sind?

Ich glaube, ich lasse die Abfrage einfach raus, danke trotzdem.
 
Ich habe mich vorher noch nie damit befasst, aber ich denke, dass die aktiven Effekte chronologisch geordnet werden. Wenn du also "player.getNthActiveEffect 0" ausführst, solltest du den Effekt erhalten, der bislang am kürzesten auf den Spieler wirkt. Vielleicht ist es aber auch nach temporären Effekten (Gift), Verzauberungen (wenn ein Ring etc. angelegt ist) und Eigenschaften (z.B. Feuerresistenz bei den Dunmer) geordnet. Das müsstest du eventuell mal nachgucken, bzw. ausprobieren. Hilfreich wäre es, mit "getActiveEffectCount" die Anzahl der aktiven Effekte abzufragen. Dann kannst du eine Art Schleife erstellen, bei der jedes Mal ein anderer Effekt überprüft wird.
Hab gerade noch den Befehl "isMagicEffectDetrimental" gefunden. Was auch hilfreich scheint ist "MagicEffectUsesAttribute", "-Skill" und "-OtherActorValue".
 
  • Like
Reaktionen: bjoernret
Hallo Leute, ich bin mal wieder am modden und brauche auch wieder ein Skript:
Ich bin dabei einen Stab zu basteln und habe mir einen ungewöhnlcihen Effeckt ausgedacht für den ich ein Skript brauche.
Also der Stab soll Blumen wachsen lassen.^^ Mir wären erntbare Pflanzen am liebsten, doch auch einfache Farne, usw. wären im Notfall ok.
Falls das nicht nöglich ist habe ich mir eine zweite Variante überlegt:
Dann würde der Stab die Blumen nur wieder "erntebereit" machen, da wäre es mir noch lieb wenn man eine Art "sicherheitssperre" einbaut das das nicht mehrmals hintereinander funktioniert.
Mir wäre aber die erste Variante lieber. DAnke im Vorraus
 
Die erste Variante wäre auf jeden Fall deutlich komplizierter, als die zweite; um OBSE wirst du allerdings nicht herumkommen. Ich weiß auch nicht, ob die zweite funktioniert, da ich nicht sicher weiß, ob Zauber auch auf Pflanzen wirken, aber du könntest es mal so probieren:
Code:
scn name

ref target

Begin ScriptEffectStart

set target to getSelf
if target.isFlora == 1
 if target.getHarvested == 1
  target.setHarvested 0
 endif
endif

end
 
  • Like
Reaktionen: Chibi
Hallo ihr, ich habe gerade mein erstes Probeskript beendet und es läuft ganz gut. Zur Erklärung: Der Spieler will einen Brief aufheben und kriegt na Frage gestellt und je nach antwort einen anderen Zauber. Leider lässt sich das ganz leicht austricksen: Man aktivierts einfach nochmal und schon hat man alle Zauber. Kann mir jmd sagen wie ich das verhindere? Mein aktuelles Skript:

Scn MODMagic

short Element

Begin OnActivate
MessageBox "Wählt euer Element!","Feuer","Eis","Sturm"
End

Begin GameMode
Set Element to GEtButtonPressed
If Element == 0
Player.addSpell MODFire
elseif Element == 1
Player.addSpell MODIce
elseif Element == 2
Player.addSpell MODStorm
endif
end
Ich hatte mir überlegt mehrere "removeSpell" einzubauen, was jedoch das Problem nicht richtig gestoppt hätte. Ich hoffe ihr könnt nem Skripterneuling helfen^^
 
Du musst einfach etwas einbauen, was den Gegenstand disabled.
Code:
Scn MODMagic

short Element

Begin OnActivate
MessageBox "Wählt euer Element!","Feuer","Eis","Sturm"
[B]disable[/B]
End

Begin GameMode
Set Element to GEtButtonPressed
If Element == 0
Player.addSpell MODFire
elseif Element == 1
Player.addSpell MODIce
elseif Element == 2
Player.addSpell MODStorm
endif
end
 
  • Like
Reaktionen: Chibi
Man könnte doch einfach eine Variable einfügen.

Code:
Scn MODMagic

Short Element
Short Once

Begin OnActivate

If Once == 0
         set Once to 1
         MessageBox "Wählt euer Element!","Feuer","Eis","Sturm"

     Endif

End


Begin GameMode

If Once == 1
        Set Element to GetButtonPressed

    Endif

If Element == 0
         Player.addSpell MODFire

ElseIf Element == 1
         Player.addSpell MODIce

ElseIf Element == 2
         Player.addSpell MODStorm

     Endif


End
mfg
Kahmul
 
  • Like
Reaktionen: Chibi