Oblivion:Packages zuweisen: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
K (Umgebung)
K
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 12: Zeile 12:
  
 
Es gibt prinzipiell zwei Wege, um Packages einem [[ob:NPC|NPC]] hinzuzufügen, damit auch zwei prinzipielle Lösungswege. Der eine Weg geht über das Hinzufügen per Script. Der zweite Weg ist, dem Base [[ob:NPC|NPC]] ein Package hinzuzufügen.
 
Es gibt prinzipiell zwei Wege, um Packages einem [[ob:NPC|NPC]] hinzuzufügen, damit auch zwei prinzipielle Lösungswege. Der eine Weg geht über das Hinzufügen per Script. Der zweite Weg ist, dem Base [[ob:NPC|NPC]] ein Package hinzuzufügen.
 +
Der erste Weg hat den Vorteil, dass kein zusätzliches Package dauerhaft ausgewertet werden muss. Der zweite Weg hat den Vorteil, dass das zusätzliche Package auch nach Unterbrechungen läuft, sofern die Conditions zutreffen.
 +
Ob es die höhere Verlässlichkeit wert ist, ca. einmal pro Game-Stunde eine Bedingung auszuwerten, muss jeder für sich entscheiden.
  
  
Zeile 17: Zeile 19:
 
==== Umgebung ====
 
==== Umgebung ====
 
Agarmir lebt. Es gibt eine Quest Testquest mit einer Stage 10, die noch nicht erreicht ist, und einer Stage 20.
 
Agarmir lebt. Es gibt eine Quest Testquest mit einer Stage 10, die noch nicht erreicht ist, und einer Stage 20.
Es gibt ein Package AgarmirFollow.
+
 
 +
Es gibt ein Package AgarmirFollow (mit dem Player als Target und keinerlei zeitlicher Einschränkung)
 +
Conditions sind keine gesetzt:
  
 
[[Bild:AgarmirFollow.png]]
 
[[Bild:AgarmirFollow.png]]
Zeile 23: Zeile 27:
 
==== Script ====
 
==== Script ====
 
<tesscript>scn AgarmirFollowScript
 
<tesscript>scn AgarmirFollowScript
 +
;Written by keris
 +
;18.1.09
  
 
short Doonce
 
short Doonce
Zeile 47: Zeile 53:
  
 
end</tesscript>
 
end</tesscript>
 
  
 
==== Handhabung ====
 
==== Handhabung ====
Zeile 58: Zeile 63:
 
==== Umgebung ====
 
==== Umgebung ====
 
Agarmir lebt. Es gibt eine Quest Testquest mit einer Stage 10, die noch nicht erreicht ist, und einer Stage 20.
 
Agarmir lebt. Es gibt eine Quest Testquest mit einer Stage 10, die noch nicht erreicht ist, und einer Stage 20.
Es gibt ein Package AgarmirFollow2.
+
 
 +
Es gibt ein Package AgarmirFollow2 (mit dem Player als Target und keinerlei zeitlicher Einschränkung)
 +
Conditions sind folgende gesetzt:
  
 
[[Bild:AgarmirFollow2.png]]
 
[[Bild:AgarmirFollow2.png]]
Zeile 69: Zeile 76:
  
 
<tesscript>scn AgarmirFollowScript
 
<tesscript>scn AgarmirFollowScript
 +
;Written by keris
 +
;18.1.09
  
 
short Doonce
 
short Doonce
Zeile 96: Zeile 105:
 
==== Handhabung ====
 
==== Handhabung ====
 
Das Script kann als Quest- oder als Objectscript genutzt werden.
 
Das Script kann als Quest- oder als Objectscript genutzt werden.
 
+
Es empfiehlt sich, statt die AI die Bedingungen prüfen zu lassen, indem man das [[ob:EvaluatePackage|EvaluatePackage]] aufzuruft, stattdessen wie oben gezeigt im Script nach der Package-Bedingung abzufragt und erst bei Erfüllung das [[ob:EvaluatePackage|EvaluatePackage ]] aufzuruft.
  
  
 
== Weiterführende Hinweise ==
 
== Weiterführende Hinweise ==
 +
*[[Oblivion:Quest_Erkl%C3%A4rung|Quest Erklärung]]
 +
*[[Oblivion:Packages Window|Packages Window]]
  
  
 
+
{{ Scriptkategorie |AI (Package)|Level_1_Scripts|Packages hinzufügen }}
{{ Scriptkategorie |AI (Package)|Level 1 Scripts|Packages hinzufügen }}
 

Aktuelle Version vom 15. April 2009, 13:38 Uhr

Packages zuweisen

Aufgabenstellung

Agarmir, ein NPC, soll dem Player folgen. Nachdem sie sich getroffen haben, soll er ohne andere Dinge zu tun, dem Player folgen bis sie den Leuchturm von Anvil betreten haben. Danach geht er seiner Wege.


Theorie

Die AI der NPCs wird z.T. über Packages gesteuert. Die Liste dieser Packages, die dem NPC zugeordnet sind kann per Script um weitere Packages ergänzt werden. Diese Liste wird bei NPCs, die sich in der aktuellen Zelle befinden, einmal stündlich ausgewertet, es sei denn, die Auswertung wird per Script forciert.

Es gibt prinzipiell zwei Wege, um Packages einem NPC hinzuzufügen, damit auch zwei prinzipielle Lösungswege. Der eine Weg geht über das Hinzufügen per Script. Der zweite Weg ist, dem Base NPC ein Package hinzuzufügen. Der erste Weg hat den Vorteil, dass kein zusätzliches Package dauerhaft ausgewertet werden muss. Der zweite Weg hat den Vorteil, dass das zusätzliche Package auch nach Unterbrechungen läuft, sofern die Conditions zutreffen. Ob es die höhere Verlässlichkeit wert ist, ca. einmal pro Game-Stunde eine Bedingung auszuwerten, muss jeder für sich entscheiden.


Realisierung (Hinzufügen eines Packages per Script)

Umgebung

Agarmir lebt. Es gibt eine Quest Testquest mit einer Stage 10, die noch nicht erreicht ist, und einer Stage 20.

Es gibt ein Package AgarmirFollow (mit dem Player als Target und keinerlei zeitlicher Einschränkung) Conditions sind keine gesetzt:

AgarmirFollow.png

Script

<tesscript>scn AgarmirFollowScript

Written by keris
18.1.09

short Doonce

begin GameMode

If Doonce == 0 If AgarmirRef.GetInSameCell player == 1 If GetstageDone TestQuest 10 == 0 Setstage TestQuest 10 AgarmirRef.AddScriptPackage AgarmirFollow AgarmirRef.EVP

				Set Doonce to 1

Endif Endif Endif

If AgarmirRef.GetIsCurrentPackage AgarmirFollow == 1 If AgarmirRef.GetInCell AnvilLighthouse == 1; der Leuchtturm wurde betreten AgarmirRef.RemoveScriptPackage ; das per Script hinzu gefügte Package wird gelöscht. Setstage TestQuest 20 Endif Endif

end</tesscript>

Handhabung

Das Script kann als Quest- oder als Objectscript genutzt werden.



Realisierung (dem Base NPC ein Package hinzuzufügen)

Umgebung

Agarmir lebt. Es gibt eine Quest Testquest mit einer Stage 10, die noch nicht erreicht ist, und einer Stage 20.

Es gibt ein Package AgarmirFollow2 (mit dem Player als Target und keinerlei zeitlicher Einschränkung) Conditions sind folgende gesetzt:

AgarmirFollow2.png

Das Package muss in der Packageliste oben stehen, damit es bei erfüllter Condition auch prioritär ausgeführt wird.

AgarmirPackages.png

Script

<tesscript>scn AgarmirFollowScript

Written by keris
18.1.09

short Doonce

begin GameMode

If Doonce == 0 If AgarmirRef.GetInSameCell player == 1 If GetstageDone TestQuest 10 == 0 Setstage TestQuest 10 AgarmirRef.EVP ; nach Erreichen der Bedingung für das Package

				Set Doonce to 1

Endif Endif Endif

If Getstage TestQuest == 10 ; Agarmir folgt If AgarmirRef.GetInCell AnvilLighthouse == 1; der Leuchtturm wurde betreten Setstage TestQuest 20 AgarmirRef.EVP Endif Endif

end</tesscript>


Handhabung

Das Script kann als Quest- oder als Objectscript genutzt werden. Es empfiehlt sich, statt die AI die Bedingungen prüfen zu lassen, indem man das EvaluatePackage aufzuruft, stattdessen wie oben gezeigt im Script nach der Package-Bedingung abzufragt und erst bei Erfüllung das EvaluatePackage aufzuruft.


Weiterführende Hinweise



Weitere Scripts aus dieser Kategorie

  

     

    Level 3

       



    {{#if: AI (Package) | }} {{#if: Level_1_Scripts | }}