Oblivion:Items hinzufügen/ entfernen: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
Zeile 47: Zeile 47:
 
==== Bemerkung ====
 
==== Bemerkung ====
 
Da sich in dem Script keine Abfrage befindet, die feststellen kann, ob und wie viele Goldnuggets sich im Inventar befinden, wird man die 100 Goldstücke immer erhalten, auch wenn man eigentlich nichts zum Verarbeiten im Inventar hat.<br>
 
Da sich in dem Script keine Abfrage befindet, die feststellen kann, ob und wie viele Goldnuggets sich im Inventar befinden, wird man die 100 Goldstücke immer erhalten, auch wenn man eigentlich nichts zum Verarbeiten im Inventar hat.<br>
Um das ganze nicht zu einem Cheat werden zu lassen, kann man wie gezeigt so vorgehen, dass man eine Variable einbaut. Diese ermöglicht hier, dass der ganze Vorgang nur einmal ausgeführt wird, da die Abfrage bei einem zweiten Durchgang keinen akzeptablen Wert mehr zurück gibt.<br>
+
Um das Ganze nicht zu einem Cheat werden zu lassen, kann man wie gezeigt so vorgehen, dass man eine Variable (doonce) einbaut. Diese ermöglicht hier, dass der ganze Vorgang nur einmal ausgeführt wird, da die Abfrage bei einem zweiten Durchgang keinen akzeptablen Wert mehr zurück gibt.<br>
 
Man kann aber natürlich auch die Anzahl der Goldnuggets überprüfen und dementsprechend Gold ausgeben lassen, oder eben nicht. (Lösung: siehe [[ob:Anzahl bestimmter Items|Anzahl bestimmter Items]]).
 
Man kann aber natürlich auch die Anzahl der Goldnuggets überprüfen und dementsprechend Gold ausgeben lassen, oder eben nicht. (Lösung: siehe [[ob:Anzahl bestimmter Items|Anzahl bestimmter Items]]).
  

Version vom 13. November 2008, 23:59 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.


Hinzufügen und Entfernen von Gegenständen

Anwendung

Aufgabenstellung

Durch das Aktivieren eines Gegenstandes im Spiel (z.B. eine Art "Münzpräge") soll ein Gegenstand (hier: Goldnugget) im Inventar des Players gegen mehrere andere (hier: 100 Goldmünzen) ausgetauscht werden.

Theorie

Das Austauschen wird dadurch erreicht, dass wir zuerst den geforderten Gegenstand, also das Goldnugget, aus dem Invnetar des Players entfernen und dann die 100 Goldmünzen dafür hinzufügen. Die Befehle:
[ActorID].removeItem (ObjectID) Count
[ActorID].addItem (ObjectID) Count
Die "ActorID" ist der Player, die "ObjectID" sind das Goldnugget (Gem0GoldNugget) und die Goldmünzen (Gold001) und "Count" die jeweilige Anzahl.


Realisierung

Umgebung

Das Script liegt auf dem Activator (z.B. der erwähnten Münzpräge), den der Player im Spiel betätigen soll.

Script

<tesscript> scn CoinScript

written by Leila Ithil
24.10.2008

short doonce

begin OnActivate player

  if doonce == 0
     player.removeItem Gem0GoldNugget 1
     player.addItem Gold001 100
     set doonce to 1
  endif

End </tesscript>

Bemerkung

Da sich in dem Script keine Abfrage befindet, die feststellen kann, ob und wie viele Goldnuggets sich im Inventar befinden, wird man die 100 Goldstücke immer erhalten, auch wenn man eigentlich nichts zum Verarbeiten im Inventar hat.
Um das Ganze nicht zu einem Cheat werden zu lassen, kann man wie gezeigt so vorgehen, dass man eine Variable (doonce) einbaut. Diese ermöglicht hier, dass der ganze Vorgang nur einmal ausgeführt wird, da die Abfrage bei einem zweiten Durchgang keinen akzeptablen Wert mehr zurück gibt.
Man kann aber natürlich auch die Anzahl der Goldnuggets überprüfen und dementsprechend Gold ausgeben lassen, oder eben nicht. (Lösung: siehe Anzahl bestimmter Items).

Handhabung

Das Script sollte als Objekt-Script genutzt werden.


Weitere Scripts aus dieser Kategorie

Level 1

 

Level 3

   



{{#if: Inventar | }} {{#if: Level 1 Scripts | }}