Hallo, ich habe eine >Idee< für einen Plugin im Kopf, jedoch noch einige Unklarheiten über einzelne Skripts und ähnliches:
1. Wie euch allen wahrscheinlich bekannt ist gibt es für jeden einzelnen Skill eine Art Counter, der bei jeder Anwendung des Skills ein wenig steigt und sobald dieser den Wert 100 erreicht gibt es einen Skill Up.
Gibt es skripttechnisch eine Möglichkeit diesen Counter zu modifizieren und zu inkrementieren?
...
Also: der Counter geht nicht bis 100, sondern bis zu einem Wert, der sich je nach Skilllevel nach einer folgender Formel berechnet:
Bei Benutzung wird der "Counter" dann um einen best. Anzahl erhöht (SkillUseIncrement).
Diesen Wert kann man mit SetSkillUseIncrement beeinflussen. Den aktuellen Wert erhält man mit GetSkillUseIncrement (für temporäre Beeinflussung, um den Standartwert nachher wieder herstellen zu können).
Den aktuellen Wert des "Counters" erhält man mit GetPlayerSkillUse, beeinflussen (Steigern um x SkillUseIncrements) kann man ihn mit IncrementPlayerSkillUse.
ACHTUNG: alles OBSE-Befehle
Um einen Skill direkt zu beeinflussen würde ich SetActorValue empfehlen, da ModActorValue (bzw. PC) einige Probleme hat.
Zitat von Invidious
2. Ich möchte anhand eines Dolches als Basis eine Art Werkzeug machen, ähnlich wie die Dietriche in Morrowind. Das heißt dieses Werkzeug soll keinerlei Schaden machen und auch keine Reaktionen bei Anwendung auf NPCs hervorrufen. Ist das umsetzbar?
...
Höchstens über eine Verzauberung mittels StopCombat & ModCrimeGold.
Wichtig wäre bei dem ModCrimeGold außerdem, über das GameSetting zu arbeiten welches die Strafe für einen einfachen Angriff bestimmt.
Zitat von Invidious
3. Ist es möglich einem Objekt während des Spielverlaufs einen neuen Namen zuzuweisen?
Beispiel:
Container "Tonne" Name ändern zu-> Container "Holztonne"
ACHTUNG: Ändert den Namen des Base Objects, d.h. dass alle Referenzen davon ab sofort so heißen. Um nur eine Referenz zu beeinflussen verwende die OBSE-Funktion SetName (bzw. ModName/CopyName/AppendToName)
Zitat von Invidious
4. Soweit ich die letzten Monate mitgekriegt habe ist es möglich geworden neue Animationen ins Spiel einzufügen. Geht dies auch bei Waffen? Ist es möglich meinem "Werkzeug", das auf einem Dolch basiert eine neue Animation zuzuweisen?
...
Nur generell für alle. Für eine Waffe ist nur eine Animation möglich, die die ganze Zeit abgespielt wird.
--
Ich kam, sah, und konnte meinen Augen nicht trauen
Wie die meisten OBSE-Funktionen ist (wahrscheinlich) auch SetName für einen Gebrauch mit Referenz-, als auch mit Object-ID ausgelegt.
sollte genauso funktionieren, wie
Wenn beides bereitgestellt wird, also z.B.:
sollte das Base Object "gewinnen", es würde also so wirken als ob die Referenz gar nicht angegeben wurde.
Ergo: ObjectID:ref kannst du einfach weglassen.
Bei dir sollte das Problem allerdings darin liegen, dass du myself nicht als Variable definiert hast.
Dazu schreibst du irgentwo vor das SetName (ich würde den Anfang des Script nach dem scn und dem ersten Begin-Block empfehlen, jeweils mit Leerzeilen abgegrenzt) einmal ref myself.
Damit das ganze auch funktioniert muss noch irgentwo vor das SetName-Kommando hin: set myself to GetSelf ;(zumindest solange dass ein ObjectScript auf dem gewünschten Object ist).
Zeig mal dein ganzes Script, dann geht die Fehlersuche eigentlich um einiges leichter.
--
Ich kam, sah, und konnte meinen Augen nicht trauen
Danke für den Hinwies, ich hatte für die myself-Variable versehentlich den Datentyp short anstatt ref gewählt.
Mir ist jedoch gerade aufgefallen, dass die SetName-Funktion anscheinend einen schweren Fehler hat:
Ändere ich den Namen eines Objektes zB. von "Name1" auf "Name2" funktioniert dies problemlos, lade ich danach meinen Spielstand neu wird immer noch "Name2" angezeigt.
Lässt sich dieser Fehler irgendwie verhindern? So wäre die Funktion ansonsten nicht für mich zu gebrauchen.
Einen Spielstand, wo du den Dateinamen noch nicht geändert hast?
Falls ja, versuch mal Oblvion zu beenden und erst nach einem Neustart den Save zu laden, dann sollte der Name wieder der alte sein.
Sollte das aber wirklich der Fall sein würde ich dir empfehlen, das im OBSE-Thread zu melden damit der Bug behoben werden kann.
--
Ich kam, sah, und konnte meinen Augen nicht trauen