Oblivion:Eigenschaften abfragen und ändern
Inhaltsverzeichnis
Anwendung
Aufgabenstellung
Es sollen nach Wahl unterschiedliche Eigenschaften von Agarmir, einem NPC, geändert werden.
Theorie
NPCs und auch der Player haben eine Menge von Eigenschaften. Diese können mit einzelnen Kommandos abgefragt und auf verschiedene Weise geändert werden. Häufig sind die Werte vom Datentyp unsigned Integer, deren Eigenheiten bei der Änderung zu berücksichtigen sind.
Realisierung
Umgebung
Agarmir lebt.
Script
<tesscript>scn ChangeActorValues
- Written by Milchmann
- 30.11.08
short Doonce short Button short RealiseSelection long ActorValue long NewActorValue long BaseValue long NewBaseValue
Begin GameMode
if Doonce == 0
set Doonce to 1 ; es soll nur einmal gemacht werden!
Messagebox "Was soll geändert werden?" "Klasse", "Level" "Schwertkampf (setzen)" "Schwertkampf (erhöhen)" "Schwertkampf (Basiswert erhöhen)" "Basis-Gesundheit herstellen" "Nichts"
- im CS muss der Inhalt der beiden obigen Zeilen in eine Zeile geschrieben werden!
Set RealiseSelection to 1
endif
if RealiseSelection Set Button to GetButtonPressed if Button == -1 return elseif Button == 0 Set RealiseSelection to 0 If GetIsClass Bard == 1 AgarmirRef.SetClass Warrior endif elseif Button == 1 Set RealiseSelection to 0 SetLevel 2 1
; Level wird auf das Playerlevel + 2 erhöht.
elseif Button == 2 Set RealiseSelection to 0 Set ActorValue to AgarmirRef.GetActorValue Blade Set ActorValue to ActorValue + 10 AgarmirRef.ForceActorValue Blade ActorValue
; Schwertkampf der Referenz wird um 10 erhöht
elseif Button == 3 Set RealiseSelection to 0 AgarmirRef.ModActorValue Blade 10
; Schwertkampf der Referenz wird um 10 erhöht
elseif Button == 4 Set RealiseSelection to 4 Set BaseValue to AgarmirRef.GetbaseActorValue Blade Set NewBaseValue to BaseValue + 10 AgarmirRef.SetActorValue Blade NewBaseValue
; der Basiswert Schwertkampf des Objects wird um 10
elseif Button == 5 Set RealiseSelection to 0 AgarmirRef.ResetHealth
; der NPC bekommt seine (Basis-)Gesundheit zurück
elseif Button == 6 Set RealiseSelection to 0 endif endif
End</tesscript>
Handhabung
Das Script kann als Quest- oder als Objectscript genutzt werden.
Weiterführende Hinweise
Weitere Scripts aus dieser Kategorie
Level 2
Level 3
{{#if: Attribute und Fertigkeiten | }}
{{#if: Level_1_Scripts | }}