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 19 von 19

Thema: Plugins mit PlaceAtMe?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Kleiner Hinweis zu Placeatme:
    Es gibt immernoch keine Quelle, welche BG2408's Theorie bestätigt.

    Eine Referenz eines bestehenden Objektes, welche über ein Plugin eingefügt wird wird wieder entfernt, wenn das zugehörige Plugin wieder deaktiviert wird.
    Wird diese Referenz aber im Spiel über ein Skript, Konsolenbefehl etc. mittels Placeatme eingefügt, bleibt sie im Spiel wie jedes andere Objekt auch, egal ob dies nun QuestItems sind oder nicht.

    http://cs.elderscrolls.com/constwiki....php/PlaceAtMe

    Es ist definitiv auch nicht richtig, das Oblivion selbst temporäre Placeatme's alle Nase lang erzeugt.

  2. #2
    Also,

    dass die Angst vor PlaceAtMe übertrieben ist, ist sicher, denn die Funktion selbst ist weder schädlich noch irgendwie spielzerstörend. Wenn man weiß, wie man damit umzugehen hat, ist sie sehr nützlich.
    Den einzigen Stolperstein, den die Funktion legt,muss man als Modder natürlich kennen. Dieser Stolperstein ist der Fakt, dass man mit der Funktion persistente Objekte erzeugt. Diese Objekte werden im Spielstand verankert. Das gilt nicht nur für die mit PlaceAtMe erzeugten Objekte, sondern für alle persistenten Referenzen, somit auch für Türen, Fallen und Questobjekte, auf die extern zugegriffen wird.
    Das ist solange kein Problem, wie man die Funktion nicht exzessiv benutzt, wie eben bei Beschwörungen oder früheren Versionen der Ernteplugins.

    Wenn ich aber ein Objekt habe, das ich auch per Hand als persistente Referenz einfügen würde, wäre es theoretisch kein Unterschied, wenn ich das stattdessen mit der PlaceAtMe-Funktion tun würde.

    PlaceAtMe wird in Oblivion schon recht oft genutzt. 31 mal, wie man hier sehen kann.

  3. #3
    Zitat Zitat von MODIFIED Beitrag anzeigen
    Kleiner Hinweis zu Placeatme:
    Es gibt immernoch keine Quelle, welche BG2408's Theorie bestätigt.
    Die Quelle bin ich. Und so ziemlich jeder weitere "fortgeschrittene" Modder aus den Bethsoftforen der placeatme die letzten Jahre experimentell untersucht hat.

    Du willst Quellen? Such in den Bethsoftforen nach placeatme *shrug*.

    Zitat Zitat
    Wird diese Referenz aber im Spiel über ein Skript, Konsolenbefehl etc. mittels Placeatme eingefügt, bleibt sie im Spiel wie jedes andere Objekt auch, egal ob dies nun QuestItems sind oder nicht.
    Temporäre Objekte werden, sofern nicht in einer .esp / .esm verankert, beim Cell Reset entfernt. Egal, wodurch die entstanden sind.

    Zitat Zitat
    Es ist definitiv auch nicht richtig, das Oblivion selbst temporäre Placeatme's alle Nase lang erzeugt.
    Obliviontore? Shambles? KoO-Obelisken? Um einmal drei Beispiele zu nennen...

  4. #4
    Ok, ok

    Hab es gerade mal getestet.
    Eine Referenz geplaced, getötet, RefID notiert (ff014042), Zelle verlassen, 4x24 Std. gewartet und ich kann nicht mehr mit moveto hinteleportieren

    Scheint tatsächlich entfernt worden zu sein und sich nur auf persistente Objekte auszuwirken.

    Entschuldigt die Behauptung eines Moddingnoobs, welcher nicht jahrelang Zeit für experimentelle Studien für ein Spiel verschwendet hat.

    Naja egal, wende mich nun wieder dem GECK zu.

  5. #5
    Alles, was ich je glaubte, verstanden zu haben, verstehe ich nun nicht mehr
    Es wäre ja auch zu einfach, wenn man einfach sagen könnte "PlaceAtMe" ist böse.

    Wie ich es immer verstanden hatte, ich weiß auch nicht, warum: Mit PlaceAtMe eingefügte Dinge bringen ihr BaseObjekt in den Spielstand mit. Selbst wenn die Referenz entfernt wird, bleibt der BaseObject Eintrag im Spielstand erhalten. Inzwischen gehe ich davon aus, dass ich das falsch verstanden habe.

    Ich möchte es einfach nur verstehen und auf gar keinen Fall irgendeine Meinung oder irgendein PI angreifen. Das nur äh... eventuell nochmal und vorneweg.

    Nehmen wir mal an, ich habe ein Plugin, das ein alle 2 Sekunden laufendes Questscript hat, das jedes mal wieder einen Gegenstand per PlaceAtMe beim Spieler platziert damit der einen Zauber sprechen kann. (Lässt sich auch wunderbar mit MoveTo lösen, ich weiß, habe ich inzwischen selbst dort eingebaut.)
    Ich habe mir gerade meine Savegames angesehen. Ich habe einen Spielstand, nach dem ich eine Menge Plugins, darunter auch dieses, aktiviert habe. Und ich nutze die Statistikfunktion über Spielstände von Wrye Bash.

    Zitat Zitat
    Neue ObjectRef Basen
    Null Bases: 4
    Count IRef BaseId
    8728 000049F4 1A003422 604 kb
    Bei diesem Spielstand vor allen Plugins fehlt dieser Teil. Danach kann man sozusagen zusehen, wie das mehr wird. Ich habe eben mal den Spielstand geladen und bin so eine Minute auf der Stelle rumgehoppst. Dabei ist die Zahl von 8713 auf 8728 gestiegen. Ohne dieses eine Plugin nicht. Also habe ich mich brav in die Ecke gestellt und 6 Tage (5 Tage Respawn) gewartet. Das Savegame ist merklich kleiner geworden, aber diese Zahl nicht: inzwischen 8744.
    3422 ist auch die FormID dieses Gegenstands im CS. Bedeutet das also nicht, dass diese ganzen sinnlosen Gegenstände bis ans Ende aller Tage disabled in der Gegend rumstehen? Oder zumindest irgendetwas bleibt? Das inzwischen immerhin 600kb groß ist?

    Wrye Bash zeigt ja nur ab 100 Stück an. Wenn ich per PlaceAtMe ein "paar" Mal Gold herbeischaffe, taucht dann auch
    Zitat Zitat
    222 0000022F 0000000F 11 kb
    dort auf.

    Auch nach 6 Tagen warten in einer anderen Zelle verschwindet dieser Eintrag nicht

    Wenn ich dieses Plugin nun entferne, lade und speichere, dann werden all diese Dinger zu Nullreferenzen:
    Zitat Zitat
    Neue ObjectRef Basen
    Null Bases: 8925
    Count IRef BaseId
    222 0000022F 0000000F 10 kb
    8921 000049F4 00000000 618 kb
    Die könnte ich theoretisch entfernen, oder? Aber auch das ist ja nicht ganz so sicher.
    Und wenn PlaceAtMe Dinge aus der Oblivion.esm hinzugefügt hätte, ginge es doch nicht, weil die nie zu Nullreferenzen werden?


    Dann wollte ich mal Kreaturen testen. Bin in die Herberge zum Kaufmann gegangen, weil die grad in der Nähe war.

    Wenn ich rumstehe - Spielstand 5797 kb.
    Habe 20x 3 Kreaturen über einen PI - Zauber mit PlaceAtMe beschworen.
    Spielstand 5846 kb, sind alle gekillt und disabled in meiner Zelle.
    51 Kreatur-Referenz von der Wrye Bash Statistik, vorher: 2023, nachher: 2083. Da sind sie. Und zwar direkt im Save: 553 Streamsave_2.ess.
    Beim Zellenwechsel in eine vorher unbesuchte Zelle wird der Spielstand 5851 kb groß +- n bisschen, je nachdem wer grad mit drinrum steht. Und wieder den Respawn abwarten.
    Und warten. Und ... nix. 10 Ingametage später noch immer:
    Zitat Zitat
    553 Streamsave_13.ess
    2083 Total
    Auch wenn ich sicherheitshalber nochmal sonstwo warte, die verschwinden nicht. Würde das nicht auch bedeuten, dass irgendetwas dauerhaft da ist?

    Natürlich ist so etwas bei einer einmaligen, zweimaligen oder irgendwie begrenzten Sache ziemlich egal, das sind kaum Datenmengen. Angenommen es wären alle 60 Obliviontore der MQ? Alle Endgegner einer Questmod? Selbst das ist dagegen lächerlich wenig. Aber Beispiel eins mit den immerhin 8000 Refs in ca. 10 Spielstunden? Das wären, wenn das so weitergeht, in 100 Stunden 6 MB - das ist mehr, als mein gesamter Charakter vorher hatte! Und das vollkommen sinnlos - wie ich ausprobiert habe, geht es wunderbar mit MoveTo. Oder ein Beschwörungszauber, den man andauernd, in jedem Kampf nimmt.

    Was mir dann aufgefallen ist:

    Dann habe ich testweise 250 Ratten in meine Zelle geholt - Spielstand wurde mit einem Mal 600 kb größer. Sobald ich sie verlassen habe etwas kleiner, nach einem Respawn der Zelle jedoch ist er exakt wieder so klein wie zuvor!

    Der Unterschied zu den beschworenen Ratten und denen, die ich über die Konsole geholt habe: Die beschworenen standen nicht auf "Respawn" - sondern sogar auf "Quest Item" -, die normalen schon!


    Zu guter letzt habe ich mir 111 Äpfel auf die Straße geholt, die Statistik angesehen: Die 111 Äpfel tauchen auf. Habe ca. die Hälfte von ihnen aufgehoben und sie tauchen an dieser Stelle nicht mehr auf, waren ja dann weniger als 100.
    Der Objekt-Referenz Abschnitt sagt mir:
    Vorher: 9275
    Nach PlaceAtMe: 9386
    Nach Aufheben: 9314
    Also verschwinden sie, sobald ich sie aufnehme, offenbar wieder.

    Was ich daraus schließen würde, ohne viel weiteres Hintergrundwissen: Mit PlaceAtMe geholte Gegenstände und Kreaturen verhalten sich exakt wie jede andere auch. Die Gegenstände bleiben einfach da, wie es jeder andre auch tun würde. Die Kreaturen werden nur dann entfernt, wenn sie normalerweise auch verschwinden würden. Was bei Quest Item ja nicht der Fall ist. Wie "gefährlich" PlaceAtMe also ist liegt einzig und allein an der Art der Verwendung, aber es gibt durchaus "gefährliche" Plugins da draußen.



    Bitte sagt mir, wenn ich irgendetwas übersehen, vergessen oder falsch interpretiert habe. Ich kann nur versuchen, mir einen Reim auf die Zahlen zu machen, die ich vor der Nase habe.
    Mir ging es nie um jedes PlugIn, das auch nur einmal PlaceAtME benutzt sondern nur um... naja, sowas.

    (Und wahrscheinlich habe ich gerade 2 Stunden für etwas verschwendet, das irgendjemand längst getestet und irgendwo hingeschrieben hat, das ich nur nich gefunden habe )

    Edit: *im englischen Forum rumwühl* Der Fehler bei meinem anonymen Beispiel ist schon lange bekannt und behoben, aber es geht mir hier ja auch um das Beispiel... dass ich zu doof war, eine korrigierte Version zu finden, ist ja mein eigenes Problem.)
    Geändert von Laulajatar (14.02.2009 um 22:36 Uhr)

  6. #6
    Ja.
    Geändert von nnw (19.02.2009 um 10:22 Uhr)

  7. #7
    Damit sie in der Welt rumstehen und nicht in deinem Inventar? oo

    Angenommen du skriptest ne Szene, wo dir 100 Äpfel auf den Kopf fallen Oder jemand Geld zuwirft. Oder... oder...

  8. #8
    Zitat Zitat von Laulajatar Beitrag anzeigen
    [snip]
    Zuviel Text um gezielt zu antworten, daher generell:

    Es gibt persistente und nichtpersistente Objekte. Nichtpersistente Objekte können persistent gemacht werden, während persistente Objekte immer persistent sind.

    Klassisches Beispiel: Ein Activator versus eine Leveled List. Wird ein Activator mit PlaceAtMe eingefügt, bleibt er ewig im Spiel (persistent). Eine Leveled List erzeugt eine Kreatur und ist dann weg (nicht persistent).

    Aber: Natürlich ist das erst aus dem Save heraus, wenn die Zelle resetted ist! Solange eine Zelle nicht resetted ist, bleibt das, was dort vorgefallen ist (inklusive z.B. hinzugefügter nichtpersistenter Objekte) im Spielstand. Klaro - ansonsten wäre es ja wie bei Sacred2, du tötest einen Gegner, speicherst, lädst, und der Gegner steht wieder lebendig neben dir.

    Wird ein Mod entfernt, gehen alle darauf beruhenden Refs verloren -> Nullrefs.

    Heißt, soweit ich deinen Post verstanden habe, alles richtig erkannt!

Berechtigungen

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