Oblivion:Inventar komplett ablegen: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
Zeile 11: Zeile 11:
  
 
==== Aufgabenstellung ====
 
==== Aufgabenstellung ====
Mit diesem Script sollen dem Spieler alle Items aus dem Inventar entfernt werden.
+
Mit diesem Script sollen dem Spieler alle Items aus dem Inventar entfernt werden. Da dies in vielen Fällen im Verlauf einer Quest sinnvoll sein kann (z.B.: Traumszene, Ritual, Schiffsbruch, etc. ...), soll auf einen Hintergrund nicht weiter eingegangen werden.
  
 
==== Theorie ====
 
==== Theorie ====
Es muss die Anzahl der Goldnuggets im Inventar überprüft werden. Solange diese größer als 0 ist, können weiterhin Münzen geprägt werden. <br>
 
 
Der Befehl: <br>
 
Der Befehl: <br>
[ActorID].getItemCount [ObjectID] <br>
+
[ActorRef].removeAllItems [ContainerRef], 1 <br>
"ActorID" ist wieder der Player, die "ObjectID" ist natürlich das Goldnugget (Gem0GoldNugget).
+
"ActorRef" ist die Referenz des Containers, dem die Items entnommen werden (hier: Player). <br>
 +
"ContainerRef" ist die Referenz eines Containers, in den die entnommenen Items gelegt werden. Diese Angabe ist optional. Wird keine "ContainerRef" angegeben, werden alle entfernten Items einfach vernichtet.<br>
 +
Eine "1" (mit Komma hinter der "ContainerRef" abgetrennt) entscheidet darüber, ob die Items ihren Besitzer-Status (Ownership) erhalten. Andernfalls werden sie neutral.
  
  
Zeile 23: Zeile 24:
  
 
==== Umgebung ====
 
==== Umgebung ====
Das Script liegt auf einem Activator.
+
Das Script kann auf einen Activator gelegt werden, eignet sich aber auch hervorragend als Result-Script einer Queststage.
  
 
==== Script ====
 
==== Script ====
Hier gibt es nun zwei Möglichkeiten: <br>
 
 
1.) entweder man vergleicht die Anzahl der Nuggets direkt mit einem Wert: <br>
 
<tesscript>
 
scn CoinScript
 
;written by Leila Ithil
 
;24.10.2008
 
 
begin OnActivate player
 
 
  if player.getItemCount Gem0GoldNugget > 0
 
      player.removeItem Gem0GoldNugget 1
 
      player.addItem Gold001 100
 
  endif
 
 
End
 
</tesscript>
 
 
2.) oder man belegt eine Variable mit der Anzahl der Nuggets und vergleicht diese dann mit einem Wert:
 
 
<tesscript>
 
<tesscript>
scn CoinScript
+
scn MakeMeNakedScript
 
;written by Leila Ithil
 
;written by Leila Ithil
;24.10.2008
+
;02.04.2009
 
 
short NuggetCount
 
  
 
begin OnActivate player
 
begin OnActivate player
  
   set NuggetCount to player.getItemCount Gem0GoldNugget
+
   player.removeAllItems MyTargetContainerRef, 1
 
 
  if NuggetCount > 0
 
      player.removeItem Gem0GoldNugget 1
 
      player.addItem Gold001 100
 
  endif
 
  
 
End
 
End
Zeile 65: Zeile 40:
  
 
==== Bemerkung ====
 
==== Bemerkung ====
Die Funktion beider Scripts ist, wie erwähnt die Gleiche. Allerdings bietet das zweite Script - neben etwas mehr Schreibarbeit - den Vorteil, dass man die Anzahl der Nuggets, gespeichert in der Variable 'NuggetCount' weiter verwenden könnte ... mit welchem Ziel auch immer.
 
  
 
==== Handhabung ====
 
==== Handhabung ====

Version vom 2. April 2009, 13:07 Uhr

Allgemeine Bemerkung

Sowohl bei dem Inventar des Players, als auch dem von NPCs, gefallenen Gegnern und Truhen (etc.) spricht man von "Containern".
Sie funktionieren folglich alle nach dem gleichen Prinzip und können daher auch gleich behandelt und durch Skripte angesprochen werden.


komplettes Inventar ablegen

Anwendung

Aufgabenstellung

Mit diesem Script sollen dem Spieler alle Items aus dem Inventar entfernt werden. Da dies in vielen Fällen im Verlauf einer Quest sinnvoll sein kann (z.B.: Traumszene, Ritual, Schiffsbruch, etc. ...), soll auf einen Hintergrund nicht weiter eingegangen werden.

Theorie

Der Befehl:
[ActorRef].removeAllItems [ContainerRef], 1
"ActorRef" ist die Referenz des Containers, dem die Items entnommen werden (hier: Player).
"ContainerRef" ist die Referenz eines Containers, in den die entnommenen Items gelegt werden. Diese Angabe ist optional. Wird keine "ContainerRef" angegeben, werden alle entfernten Items einfach vernichtet.
Eine "1" (mit Komma hinter der "ContainerRef" abgetrennt) entscheidet darüber, ob die Items ihren Besitzer-Status (Ownership) erhalten. Andernfalls werden sie neutral.


Realisierung

Umgebung

Das Script kann auf einen Activator gelegt werden, eignet sich aber auch hervorragend als Result-Script einer Queststage.

Script

<tesscript> scn MakeMeNakedScript

written by Leila Ithil
02.04.2009

begin OnActivate player

  player.removeAllItems MyTargetContainerRef, 1

End </tesscript>

Bemerkung

Handhabung

Das Script sollte als Objekt-Script genutzt werden.