Allgemein
News
News-Archiv
Partner
Netzwerk
Banner
Header
Media
Downloads
Impressum

The Elder Scrolls
Arena
Daggerfall
Spin-offs
Romane
Jubiläum
Reviews
Welt von TES
Lore-Bibliothek
Namens-
generator

FRPGs

Elder Scrolls Online
Allgemein
Fraktionen
Charakter
Kargstein
Technik
Tamriel-
Manuskript

Media

Skyrim
Allgemein
Lösungen
Tipps & Tricks
Steam-Kniffe
Review
Media
Plugins & Mods

Oblivion
Allgemein
Lösungen
Tipps & Tricks
Technik
Charakter
Media
Plugins & Mods
Kompendium

Morrowind
Allgemein
Lösungen
Tipps & Tricks
Media
Plugins & Mods

Foren
The Elder Scrolls Online
Hilfe & Diskussion

Skyrim
Hilfe & Diskussion
Plugins & Mods

Ältere TES-Spiele
TES-Diskussion
Oblivion-Plugins
Morrowind-Plugins

Community
Taverne zum Shalk
Adventures of Vvardenfell
Tales of Tamriel
Ergebnis 1 bis 10 von 10

Thema: Script: Ausrüstung bei NPC's anlegen

  1. #1

    Script: Ausrüstung bei NPC's anlegen

    Wie kann man bei einem Begleiter-NPC eine Funktion aktivieren die es per Dialog ermöglicht Zugriff auf sein komplettes Inventar zu bekommen um dem NPC Rüstungen usw. anzulegen.
    Wäre nett, wenn jemand eine genaue Beschreibung dazu hat...
    Falls jemand die genauen Script-Befehle für das Ausrüstung anlegen bei NPC's kennt, so wüsste ich es zu schätzen wenn derjenige/diejenige sie mir mitteilt...bei einem anderen PI sieht mir das zu kompliziert aus, kann ich nichts damit anfangen
    Geändert von Low Post (03.01.2008 um 14:58 Uhr) Grund: Threadordnung wiederherstellen

  2. #2
    Wie das geht kann ich Dir leider nicht sagen, doch schau Dir mal ein Begleiter PI im CS an. Dort ist es meistens auch per Dialogoption möglich. Z.Bsp. bei Tyra.
    Bei den Puppen von Reznod Mannequins ist dies übrigens genauso gelöst. Dort könntest Du Dir das auch mal anschauen.

    Vieleicht hilft Dir das schon weiter.

    Edit: Urgs, falschen Thread erwischt, sorry...:-(
    Geändert von Muecke49 (03.01.2008 um 10:52 Uhr)

  3. #3
    Soll ich Mücke aus diesem Thread hier rüber schieben?


    Zu deinem Problem:
    Der Befehl zum an/ablegen lautet Un/EquipItem

  4. #4
    Ja, kannst du ruhig machen. Ihren Beitrag habe ich bereits gelesen, das hier ist ja auch "verschoben". Ich dachte mir nur, dass ich mal das extra öffne damit mir eher geholfen wird

    Und danke für den Link...aber, ist damit nicht der eigene Avatar gemeint.
    Mir geht es ja darum bei einem NPC den man als Begleiter mitnehmen kann, die Funktion zu aktivieren, dass man jederzeit Zugriff auf sein Inventar hat und dieses nach Belieben verändern kann...über Dialogoption
    Geändert von Ravyn (03.01.2008 um 14:49 Uhr)

  5. #5
    Den Befehl kann man auch bei NPCs verwenden. Einfach ein NPCRefID. davorsetzten.


    PS:
    jetzt sieht der Thread etwas... komisch aus.
    Erste Antwort vor der Frage ^^

    Mal schauen, ob ich das korrigieren kann.

  6. #6
    Ja, da hast du recht, sieht komisch aus.
    Anscheinend kennst du dich ja gut mit Scripts aus, könntest du mir ein fertiges Script hier reinschreiben, sodass ich den bloß zu übernehmen brauche? Ich habe nämlich um die Wahrheit zu sagen keine Ahnung vom Scripten. ich beschäftige mich lieber mit der Innenarchitektur...

  7. #7
    Nö, kannn ich nicht.
    Das ist zu kompliziert, als dass ich das mal eben so runterschreiben könnte.

    Meine Idee wäre, in dem Resultskript des Dialogs das Inventars des NPC per RemoveAllItems in irgenteine Dummytruhe zu übertragen, den Dialog zu beenden, und dann den Spieler per TruhenRef.Activate Player zwingen, die Truhe zu aktivieren. Dann kann er der Truhe die Sachen geben, die der NPC haben soll und die nehmen, die er wiederhaben will. Nach beenden des Truhenmenüs (muss man wohl in einem Gamemode-Block machen) wird dem NPC der Truheninhalt (wieder mit RemoveAllItems ) zurückgegeben.
    Zusätzlich kann man noch den NPC via NPCRef.StartConversation Player zwingen den Spieler wieder anzusprechen.
    Damit er die Sachen anlegt muss dann afaik noch ein evp her.

    Genau steuern, was er dann anlegt kann man nicht, da der Spieler ihm ja alles mögliche geben kann. Falls du aber weißt, dass er ein best. Item hat kannst du NPCRef.EquipItem Object-ID verwenden.


    PS:
    Ordung müsst wieder da sein.

  8. #8
    zu dem Thema hatte ich anderswo schon einmal etwas geschrieben. Ich zitiere mich mal selbst. Im Prinzip macht das Skript das, was Low Post beschrieben hat.

    Als erstes wird eine leere Kiste (ohne Respawn) benötigt und als persistente Referenz irgendwo in der Spielwelt platziert, am besten wo der Spieler sie nicht sehen kann. Unterhalb des Fußbodens etwa. Die ReferenzID dieser Kiste nenne ich mal ShareBoxRef. Die RefID des NPCs sei NPCRef

    Im Skript des NPC steht folgendes:

    Code:
    scn NPCScript
    
    short DoShare
    ref Me
    
    begin GameMode
    
       ; Gegenstände des NPC in die Kiste legen, anschließend Kiste
       ; durch den Player aktivieren
    
       if DoShare == 1
          set Me to GetSelf
          set DoShare to 2
          RemoveAllItems ShareBoxRef
          ShareBoxRef.Activate Player
       endif
    
      ; Nach dem Schließen des Container-Menus dem
      ; NPC die Gegenstände aus der Kiste zurückgeben
    
       if (MenuMode 1008 != 1) && (DoShare == 2)
          set DoShare to 3
          ShareBoxRef.RemoveAllItems Me
       endif
    
       ; Am Ende die Ausrüstung anlegen
    
       if DoShare == 3
          set DoShare to 0
          AddScriptPackage ReEquip
          evp
       endif
    
    end
    Das Anlegen der geänderten Ausrüstung ist etwas problematisch. Von alleine macht das Spiel das nämlich manchmal nicht. Ich verwende bei meinem Begleiter zu diesem Zweck eine AI-Package. Im Bsp. oben habe ich sie ReEquip genannt. Das ist eine Find-Package ohne Target, Location, Schedule oder sonstige Einstellungen, mit Ausnahme von Armor Unequipped und Weapons Unequipped. Diese beiden Kästchen sind angehakelt. Die Package ist nur dazu da, einmal kurz ausgeführt zu werden und das Spiel so zu zwingen, dem NPC die geänderte Ausrüstung anzulegen. Alternativ kann man das selbe erreichen, indem man den NPC kurz disabled und im nächsten Frame wieder enabled, oder ihn für einen Augenblick in eine andere Zelle beamen und dann wieder zurück.

    Um den Austausch zu starten, kommt schließlich in das Resultscript des betreffenden Gesprächs-Topics

    set NPCRef.DoShare to 1

    und das Gespräch sollte hier beendet werden, also der Topic das Häkchen bei Goodbye haben.

  9. #9
    Ja, perfekt. Genau so etwas habe ich gesucht. Dankeschön Euch beiden.

  10. #10
    Der Thread ist zwar alt, aber der Tipp mit dem Find-Package hat mir bei meinem aktuellen Projekt sehr geholfen. Nun legen die NPCs nach der Trainingsstunde die Trainingsgewänder ab und schlüpfen wieder in ihre Alltagsklamotten. Danke, Brausebart

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •