Oblivion:Eigenschaften abfragen und ändern

Aus Skript-Wiki
Wechseln zu: Navigation, Suche

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 | }}