Skriptthread zum Creation Kit

@nnw

Vielen Dank für deine Rückmeldung.
Es beruhigt mich doch ungemein, zu wissen, dass gewisse Perfektionisten
auch nur Menschen sind. :) ;)
Hab einen schönen Tag.
 
Zuletzt bearbeitet:
Hallo.

Könnte man nicht bei inzwischen 29 Threadseiten mal eine alphabetische Sortierung der bereits vorgestellten Skripte erstellen, damit man nicht immer denkt, man fragt etwas, was schon 10 Mal gefragt wurde? Das wäre doch hilfreich, oder?
 
Hey,
es gibt ja eine Menge Armor mods aufm NEXUS die oft NUR für weibliche Chars erstellt worden sind...
wäre es den eig möglich ein script zu erstellen, das wenn man versucht das jeweilige Outfit als männlicher Char anzuziehen eine message bekommt das man es nicht tragen kann?
 
Code:
Message Property DuBistKeineFrau Auto

Event OnEquipped(Actor akActor)

ActorBase PlayerRef = Game.GetPlayer().GetBaseObject() as ActorBase

If (PlayerRef.GetSex() == 0)
DuBistKeineFrau.Show()
EndIf
EndEvent
 
Es ist mir etwas peinlich aber. Kennt jemand ein Script mit dem nach dem aufnehmen eines Buches einer Person auftaucht und einen Dialog mit mir startet bzw. eine Questdialog
Ich habe mir einige ähnliche Sachen im CK angeschaut aber werde nicht schlau daraus -.-
 
Zuletzt bearbeitet:
klingt gut danke aber was kommt in die klammern?
sorry wenns neh allzu dumme frage is aber im scripten binn ich kein experte :?
 
Hallo.

Ich suche ein Skript. Das Skript soll folgendes leisten:

Mein NPC-Questgeber soll zwischen zwei Questschritten den Ort wechseln.

Mein NPC "Varil" soll sich zwischen >ObjectiveDisplayed(10) ["Töte Nyraeri"] und >ObjectiveDisplayed(20) ["Kehre zu Varil zurück"] von Lunds Hütte in die Taverne von Rorikstatt "Zur Frostfrucht" begeben.

Vielen Dank für die Hilfe.

Gruß
Darmok
 
Hallo,
Folgendes Problem:

Ich habe nun ein Script womit beim Lesen eines Buche die QuestStage weitergesetzt wir.

"Scriptname DefaultOnReadSetQuestStageNotAlias extends ObjectReference

int Property myStage Auto

Quest Property myQuest Auto


event onRead()
myQuest.setStage(myStage)


endEvent"


Aber wie bekomme ich es nun aber hin das diese Funktion nur ab einer bestimmten QuestStage möglich ist?
 
Zuletzt bearbeitet:
Dieses Defaultskript solltest du besser lassen wie es ist, da es bereits einige male im Spiel verwendet wurde. Sorge einfach dafür, dass dieses Buch eben nicht vor der passenden Stage verfügbar ist, oder schreibe dir ein eigenes Skript.

Code:
Scriptname ChrangusOnReadSetQuestStage extends ObjectReference

int Property StageReq Auto
int Property myStage Auto
Quest Property myQuest Auto


Event onRead()
If (myQuest.GetStageDone(StageReq) ==  StageReq)
myQuest.setStage(myStage)
Endif

EndEvent


StageReq beinhaltet den Index der erforderlich ist, damit die Quest weiter geschaltet werden kann.
myStage ist dann der Index auf den weiter geschaltet wird.
 
Hallo.
Ich suche ein Skript. Das Skript soll folgendes leisten:
Mein NPC-Questgeber soll zwischen zwei Questschritten den Ort wechseln.
Mein NPC "Varil" soll sich zwischen >ObjectiveDisplayed(10) ["Töte Nyraeri"] und >ObjectiveDisplayed(20) ["Kehre zu Varil zurück"] von Lunds Hütte in die Taverne von Rorikstatt "Zur Frostfrucht" begeben.
Vielen Dank für die Hilfe.
Gruß
Darmok

Habe so etwas bisher noch nicht ausprobiert, aber das sollte imho mit AI-Packages am Actor (bzw. Actor-Alias) und entsprechenden conditions am Package funktionieren. (also auch ohne script)

Gruß Az
 
Hallo zusammen,
ich bin was das Modden und Skripting für Skyrim (oder sonstige Spiele) angeht der absolute Noob, habe mich aber (da ich das was ich gerne hätte nicht finden konnte) dazu entschlossen selber mal ein bischen rumzubasteln.
Nun steh ich jedoch vor dem Problem ich weiss wie ich es machen würde, hab jedoch keine Ahnung ob dies so geht wie es mir meine kleine eigene Logik diktiert und wenn es geht wie dies dann aussehen müsste.

Was ich vorhabe:
Ein Mod der einen Perk setzt der Auswirkungen auf die Klassifizierung von Items hat. Im genaueren Ich will einen Skill 95 Perk im Zweihand Tree setzen (welches schon wunderbar geklappt hat) welcher dann alle Zweihandwaffen zu Einhandwaffen macht. Mein logisches Empfinden sagt mir nun das ich das am besten mache indem ich der Waffe ein Script mit gebe das dafür sorgt das wenn der Spieler den Perk erlernt hat die Waffe automatisch weiss das sie nun keine Zweihand mehr ist. Klingt ein bissel konfus ich weiss. Aber das wäre meiner Meinung nach die eleganteste Lösung, den Mods in denen einfach von jeder Waffe dann 2 existieren gibt es ja so 2-3 welche mir alle so nicht gefallen, die Waffe soll immer noch die gleiche sein nur das sie den Typ ändert und ihr DMG reduziert wird auf weiss noch nicht 60-70% ich will ja nicht das man zum Schlächter vor dem Herrn wird.
Am allerschönsten wäre ein Script was an den Perk gekoppelt ist was dann alle Waffen ändert aber so wie ich das bis jetzt erblickt habe im CK ist dies wohl eher unwahrscheinlich.

Also kann mir irgendwer sagen ob meine Idee bzw. Vorstellungen umsetzbar sind und wenn ja wie ich die ganze sache angehen müsste?

MFG der Depa
 
Dürfte nur mit SKSEs setWeapontype()-Function funktionieren. Du erstellst einen Zauber vom Typ Ability, der einen MagicEffect mit folgendem Skript zugewiesen bekommen hat:

Code:
Scriptname TwoHandToOneHand extends ActiveMagicEffect

Weapon savedWeapon

Event OnObjectEquipped(Form baseObj, ObjectReference ref)

if(baseObj as Weapon)
    Weapon weap = baseObj as Weapon
    if(weap.getWeapontype() == 1)
        weap.setWeapontype(5)
        weap.setBaseDamage(weap.getBaseDamage() - 5)
        savedWeapon = weap
    endif
else
    savedWeapon = none
endif

EndEvent

Event OnObjectUnequipped(Form baseObj, ObjectReference ref)

if(savedWeapon != none)
    savedWeapon.setWeapontype(1)
    savedWeapon.setBaseDamage(savedWeapon.getBaseDamage() + 5)
    savedWeapon = none
endif

EndEvent

Diesen Zauber fügst Du Deinem Perk durch einen Perk-Entry hinzu.
Nachteil davon ist, dass nur das BaseObject geändert werden kann, d.h. dass alle Referenzen, die darauf zugreifen, ebenfalls einhändig werden. Solltest Du also einen normalen Eisen-Zweihänder ausrüsten, werden alle Eisen-Zweihänder im Spiel zu Einhand-Schwertern.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: DerDepa
Danke für die schnelle und hilfreiche Antwort. Meinst du mit alle das sie auch für die NPCs zu Einhändern werden? Also das ich das ganze nicht Spielerchar only basteln kann? Hmm das dann doof aber mit meiner Grundidee lag ich ja dann garnicht sooooo falsch. Danke nochmal.

der Depa
 
Ich habe auch ein script problem

Hey leute :D Hallo erstmal, ich bin ein neuer.
vorstellen tu ich mich glerich im entsprechendem thread (falls es einen gibt) aber ich habe ein sehr nerviges problem mit einem meiner scripts die auf den gegenstand meiner quest mod bezogen ist...

hier ist er
Code:
Scriptname charmscript extends ObjectReference  

Quest Property aaacryptaamultet  Auto  


Event OnContainerChanging(ObjectReference newContainer. ObjectReference oldContainer)
if (newContainer==Game.GetPlayer())
aaacryptaamultet.SetStage(30)
endif
EncEvent

amultet ist beabsichtigt^^

und hier ist das compiling ergebnis
Code:
Starting 1 compile threads for 1 files...Compiling "charmscript"...
F:\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\charmscript.psc(5,54): mismatched input '.' expecting RPAREN
F:\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\charmscript.psc(0,0): error while attempting to read script charmscript: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
No output generated for charmscript, compilation failed.


Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on charmscript

und das ärgert muich ziehmlich^^

ich danke euch allen im vorraus :D
 
Sei so nett und verfasse deinen Beitrag in einer Sprache, die der Unseren gleicht. Etwas mehr Punkte und Kommata beziehungsweise Satzzeichen würden dem Schriftbild als solches, wobei irrelevant ist welche Sprache genutzt wird, behilflich sein.
In Hoffnung, dass du dir bei deinen nächsten Beiträgen Mühe gibst, helfe ich dir vorerst nur ein einziges Mal.


Das erste Problem ist simpel, du hast einen . gesetzt, wobei du ein , benötigst, aber kein Wunder, dass du einen solchen Fehler nicht bemerkst.

PHP:
Event OnContainerChanging(ObjectReference newContainer, ObjectReference oldContainer)
Dein Fehlerlog hat dir sogar genau die Stelle gezeigt, Zeile und Zeichen (5,54) in dieser Zeile.


Des weiteren nutzt du einen nicht existenten Event-Block.
Es ist
PHP:
OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)
und nicht
PHP:
OnContainerChanging(ObjectReference akNewContainer, ObjectReference akOldContainer)


Außerdem hast du scheinbar noch ein EncEvent, anstatt eines EndEvent in der letzten Zeile.
PHP:
EndEvent



Als Ganzes sollte es in etwa so aussehen:
PHP:
Scriptname charmscript extends ObjectReference  

Quest Property aaacryptaamultet  Auto  


Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer)
if (newContainer==Game.GetPlayer())
aaacryptaamultet.SetStage(30)
endif
EndEvent


MfG Master of Worlds
 
  • Like
Reaktionen: Krosis und Kahmul
Lösung meines scriptes

Ich danke dir vielmals.
Ich werde ab jetzt auf meine rechtschreibung achten.
Das EncEvent hab ich übersehen, und es ist mir etwas peinlich...
Ps. Eigentlich schreibe ich immer mit Komma, Punkt, groß- und kleinen Buchstarben :)
Wirklich, ich danke die vielmals für die Lösung meines Problemes.
Aber das die Lösung so Simpel ist, hätte ich nicht gedacht. Ich bin ja auch noch ein scripting Anfänger.

MfG Krosis


EDIT: Ich habe noch ein kleines Scriptproblem...

hier ist jetzt mein problem


Alias_Etinus.GetReference().AddItem(Alias_Etinuscharm.GetReference())

Ich hoffe, dass moir jemand helfen kann.

Danke im vorraus :D
 
Zuletzt bearbeitet:
Hi Leute ich hab hier ein kleines Problem
Mein Zauber script, welces einen Auswahlmenü zeigen soll funktioniert nicht :(
Weiß jemand woran das liegen könnte?

Scriptname Fairyreequipchoosescript extends activemagiceffect

Actor Property PlayerREF Auto
Message Property OptionsMESG Auto ; The Message form that configures the menu buttons
Armor Property FairyArmorEmporer Auto
Armor Property FairyRobeNoHood Auto

Event OnEffectStart(Actor akTarget, Actor akCaster)
If akCaster == PlayerREF
Menu()
EndIf
EndEvent

Function Menu(Int aiButton = 0)
aiButton = OptionsMESG.Show()
If aiButton == 0
Debug.Notification("Mage selected")

Game.GetPlayer().EquipItem(FairyArmorEmporer)

Utility.Wait(20.0)

Game.GetPlayer().RemoveItem(FairyArmorEmporer)
Game.GetPlayer().EquipItem(FairyRobeNoHood)


ElseIf aiButton == 1
Debug.Notification("Thief selected")
ElseIf aiButton == 2
Debug.Notification("Warrior selected")
EndIf
EndFunction

Hoffe ihr könnt mir helfen :)

Grüße LindayWolf
 
Da Du nicht sagst, was nicht funktioniert, nenne ich Dir jetzt einfach mal 3 mögliche Fehlerquellen:

- Properties nicht gefüllt.
- Du hast nicht 20 Sekunden gewartetet, nachdem wait() aufgerufen wurde.
- Das Skript wurde nicht dem MagicEffect bzw. der MagicEffect wurde nicht dem Zauber hinzugefügt.
 
Hallo,

erbitte wieder eine Hilfestellung der kompetenten Skripter unter euch.
Zu meinem Problem.
Der PlayerChar nutzt einen Stuhl, auf dem folgendes Skript liegt:

Code:
Scriptname LIChairMessageScript extends ObjectReference

Event OnActivate(ObjectReference akActionRef)

	if akActionRef == Game.GetPlayer()
		Utility.wait(5)
		LIChairInfoMsg.Show()
	endif

EndEvent

Message Property LIChairInfoMsg  Auto

Nachdem der Player sich gesetzt hat, ploppt wie erhofft die erwartete Messagbox auf,
die mit Klick auf Ok auch korrekt deaktiviert werden kann.
Soweit i.O.
Jedoch erscheint, nachdem der Char aufgestanden ist und losläuft, eben diese
Information erneut.
Das darf natürlich so nicht ablaufen und die Messagebox nur einmal, ca.5 sek nach
Platznahme erscheinen, um danach deaktiviert werden zu können.
Meine Frage diesbezüglich, wie sollte das korrekt arbeitende Skript aussehen?
Den Profis werden bei meinem Skript eventuell die Haare zu Berge stehen,
bitte daher Milde walten zu lassen.

MfG