NewRaven.net - Forum

Heute mal mit Gewicht. ;)

Durch eine Frage im offiz.Forum angeregt hab ich mal was ausprobiert - herausgekommen ist ein kleines PlugIn für neugierige CS-User.
Es zeigt eine Methode wie man den Spieler zwingen kann alle Gegenstände abzulegen bevor er den Raum verlassen darf.
Den Usern dieses Forums dürfte das 7-Hex-Format ja inzwischen geläufig sein,
also hier bitte:

Editiert von NewRaven: ich habs mal entfernt und als txt-File angehangen (hab grad keinen HEX-Editor parat), weil mir das Codemonster das ganze Design geschrottete hat und dieser Thread ca. 3 Minuten mit DSL zum laden gebraucht hat. Jetzt kannst du ja wieder auf ESPs/ESMs umsteigen :)

Der Testraum ist rechts neben dem Ausgang vom Zensus+Steueramt.
Es könnte auch statt einem Container eine persistent markierte Kreatur die Sachen entgegennehmen. Auf deren Inventar liesse sich mit Short Companion = 1 und Forcegreeting von fast überall her zugreifen. (Illegal wären nur Zugriffe die im Dialog-Result eines anderen Gesprächspartners stünden )
Eine andere Möglichkeit wäre am Script der Kiste den Block
if ( Cellchanged == 1 )
set MessageOn to 0
set extraWeight to 0
endif
komplett wegzulassen, die Kiste als persistent zu markieren und im anderen Script hinzuzufügen
"TestcontainerID"-> position(cell) x y z angle "Gewünschter Ort"
so das die Kiste dann an anderer Stelle wieder auftaucht.
heute kein Trick sondern mal Spielerei

Container starten Scripts von nicht mehr vorhandenen Objekten II

Dies ist ein Script welches ich in dieser Art mal in einem 6.Haus-PlugIn eingebaut bzw. auf die Aschestatuen gelegt hatte.
Das Script hat auch prima funktioniert, der Sinn war, das sobald Aschestatuen im Raum sind nach einiger Zeit ein zufälliges Aschemonster irgendwo hinter dem Spieler auftaucht. Dies lies sich verhindern indem man die Statue einfach einsammelte.

Problematisch wurde es als ich in meinem Testgewölbe neben einigen einzelnen Aschestatuen mit diesem Script eine von diesen Kisten in denen vier Statuen sind im Nachbarraum aufgestellt hatte. Nachdem die Kiste entleert wurde hab ich die Statuen im anderen Raum gelassen und ging wieder zurück in den Raum mit der - nun eigentlich leeren - Kiste. Dennoch kamen nach einigen Sekunden die Monster - ausgelöst von Statuen die sich (weil ja nicht mehr vorhanden) nicht einsammeln liessen. :o

Ich hab das Script heute nochmal neu geschrieben um etwas damit herumzuprobieren.

Code:

begin _myRM_AshStatueScript

short OnPCAdd
short OnPCDrop
short pickedUp
short AscheMonster
float timer

if ( PickedUp == 1 )
if ( OnPCDrop == 1 )
set OnPCDrop to 0
set PickedUp to 0
endif
return
endif

if ( Cellchanged == 1 )
set timer to 0
set AscheMonster to 0 ; Statue wieder "scharf" machen
return
endif

if ( OnPCAdd == 1 )
set OnPCAdd to 0
set pickedUp to 1
set AscheMonster to 0
addtopic "Aschestatue"
return
endif

if ( MenuMode == 1 )
return
endif

if ( AscheMonster == -1 )
return
endif

if ( timer > 5 )
set timer to timer - GetSecondsPassed ; zählt rückwärts!
elseif ( timer == 0 )
; nur für den Test die nächste Zeile mal abgeschaltet
; set timer to Random 111 ; Zufällig damit nicht mehrere Monster im gleichen Augenblick
set timer to timer + 10 ; ausserdem nicht direkt bei Betreten der Zelle kommen
else
set AscheMonster to Random 10
if ( AscheMonster == 0 )
PlaceAtPC "ascended_sleeper" 1 384 3
elseif ( AscheMonster <= 2 )
PlaceAtPC "ash_ghoul" 1 384 3
elseif ( AscheMonster <= 5 )
PlaceAtPC "ash_zombie" 1 384 3
else
PlaceAtPC "ash_slave" 1 384 3
endif
set AscheMonster to -1
endif

end



Erfahrungen beim 5-Minuten-Test zum Nachmachen

Ich wollte wissen ob es sich auch beim Inventar von NPC's so verhält und habe dazu dem Aschestatuen-Verkäufer Galtis Guvron (Script: nolore, weder persistent noch essential, allerdings blockiert, d.h. ReadOnly) in Ald'ruhn mit diesem Script auf den Aschestatuen einen Besuch abgestattet nachdem ich per Editor in seinem Inventar nur das Minuszeichen vor den 3 Statuen entfernt und ihn wieder geblockt habe.
Erstmal kamen natürlich die 3 Monster, kein Problem für meinen TestChar-Höppi. Ich hab dann alle Statuen gekauft. Das Topic "Aschestatuen" erscheint auch sofort nach dem Kauf- Script scheint prima zu funktionieren.
Raus aus der Kneipe, wieder rein, abzusehen wäre das vieleicht wieder Monster kommen obwohl Galtis keine Statuen mehr hat. Das war aber nicht der Fall obwohl ich mehrmals probiert hab. Komm also raus wo ich die Statuen in Ald'ruhn vor der Tür hab stehen lassen, Leute, so ein Erleuchteter Schläfer schafft spielend vier bis fünf Redoranische Wachen!
Nun grad nochmal nach gegenüber in Hanarai Assutlanipals Haus, da kommen gleich mal fünf von den Monstern (eine Statue hat sie, vier sind unten in der Kiste). Hanarai braucht es für den Test nicht lebend, es geht nur um die Statue die sie hat...
Dann die Kiste im Keller leer machen, raus aus der Hütte, Statuen abstellen und schnell wieder rein...
Tja, da sind sie wieder - vier Aschemonster. Aber keine fünf - und keine Satuen mehr zum Einsammeln. :flenn:

Schnell noch coc "Dagoth Ur, Untere Höhle", dort liegt die Leiche eines Helden der eine Aschestatue bei sich hat. Monster kommt, OK, Statue eingesammelt, raus, wieder rein, ebenfalls nichts!

Und die Moral von der Geschicht:
für Inventare von NPC's zählen nicht die gleichen Bedingungen wie für die Inventare von Containern.
Was hier zu lesen wäre
*reinzitier*

Zitat:
Wieder mal was rausgefunden. Eigentlich war es aus Versehen...

Normalerweise kann man in einem Script eine
ObjectID-> Cast \"SpellID\" \"TargetID\"
Anweisung nur verwenden wenn TargetID als Persistent markiert ist.

Soll ObjectID nun durch ein im Dialog-Result gestartetes Script dazu veranlasst werden eine Zauber-Animation auf sich selbst abzuspielen müsste ObjectID also bekannt sein und das würde diesen Dialog auf eine vorher bekannte Gruppe einschränken oder man müsste einen Playgroup-Befehl einsetzen und die visuellen Effekte dazu selbst erst zurechtfummeln.

Was aber geht:
Wenn der aufgerufene Zauber ein \"auf sich selbst\"-Zauber ist wird anstandslos der Player als TargetID-Platzhalter akzeptiert so das man z.B. um einen (unbekannten) Begleiter dazu zu bringen die Animation für eine Almsivi-Intervention abzuspielen einfach
Cast \"Almsivi Intervention\" Player
benutzen kann!
Das aufrufende Objekt wird trotzdem die Zauber-Animation auf sich selbst abrufen

Und nochwas Lustiges:
Man kann dem Spieler jegliche Rüstung und Waffe ausziehen ohne deren IDs zu kennen:

Einen Fluch Rüstung + Waffe auflösen auferlegen solange er nichts tragen darf :D
Referenz-URLs