Construction Set Goldene Heiligen Statue, wie?

Wozee

Reisender
Wie schon gesagt, wie kann ich einen Npc zu einer Statue machen? Brauch ich für meinen derzeitigen Mod.

Danke schonmal im voraus :)

Als Beispiel ich will eine Goldene Heiligen Statue haben wie mach ihc eine Goldene Heilige zu ner Statue?
 
@Growlf
Danke für die Mühe mit dem aufschreiben, aber ich hab rein gar nix von dem was du geschrieben hast verstanden:huh:, deswegen nehm ich lieber die einfachere Methode von Oberst.

@Oberst
Danke werds gleich mal ausprobieren.
 
Ach ja, ich übernehme keine Garantie, dass das funktioniert:-D
Habs selbst noch nie versucht. Wenns nicht klappt, werd ich natürlich an ner Lösung feilen.
 
Wie schon gesagt, wie kann ich einen Npc zu einer Statue machen?
wenn das ein bischen nett aussehen soll, dann geht´s so:
Code:
Scriptname GoldeneHeiligeSteinStatueScript
Begin OnLoad
    [URL="http://cs.bethsoft.com/constwiki/index.php/SetAlert"]SetAlert[/URL] 1
    [URL="http://cs.bethsoft.com/constwiki/index.php/PickIdle"]PickIdle[/URL]
    [URL="http://cs.bethsoft.com/constwiki/index.php/SetGhost"]SetGhost[/URL] 1
    [URL="http://cs.bethsoft.com/constwiki/index.php/SetUnconscious"]SetUnconscious[/URL] 1
    [URL="http://cs.bethsoft.com/constwiki/index.php/SetDestroyed"]SetDestroyed[/URL] 1
    [URL="http://cs.bethsoft.com/constwiki/index.php/PlayMagicShaderVisuals"]PlayMagicShaderVisuals[/URL] effectStone    ;oder auch effectTG11Stone ([URL="http://cs.bethsoft.com/constwiki/index.php/List_of_Effect_Shaders"]Liste der EffektShader[/URL])
End
Die Funktionen bauen auf einander auf - sind also alle wichtig, ausser SetAlert. Die ist nur reine Optik und hat nichts mit dem Kampfverhalten zu tun.

Der Block "OnLoad" wird beim Laden des Chars - also beim Betreten der Zelle - einmal ausgeführt.

SetAlert für "Waffe ziehen" (Geschmacksache, sieht aber mit einer 2-Handwaffe nett aus).

PickIdle für nen kleinen Reset auf die Animation

SetGhost sorgt dafür, dass der Char sich nicht in Kämpfe verwickelt und auch nicht angegriffen werden kann.

SetUnconscius lässt den Char "erstarren". Er hört auf zu denken, wehrt sich nicht und greift nicht an.

SetDestroyed verhindert, dass man ihn ansprechen kann.

Der "Stein-Shader" gibt dem Char das entsprechende Aussehen.

Um die Statue dann kämpfen zu lassen, benutzt Du die selben Befehle, aber mit einer Null als Parameter. Dann kann die Statue wieder "denken" und auch Kämpfen. Falls die Augen der Statue ein bischen bescheuert aussehen, kannst Du noch ein EvaluatePackage hinterherschicken (aber Du solltest dir das zuerst mal ohne ansehen).

SetDestroyed kannst Du auch drauflassen, wenn Du mags. Obwohl der Char "zerstört" ist, kann er kämpfen. Der Player kann ihn aber nicht ansprechen und auch die Leiche nicht plündern. Insgesamt ist das für eine Statue glaubwürdiger.

Um die Staue zum Leben zu erwecken, kannst Du als Auslöser entweder GetDistance Player oder eine TriggerZone benutzen (GetDistance ist besser und einfacher.)

Damit die Statue selbständig angreift, sobald sie wieder "zum Leben erweckt wurde" muss beim NPC der Wert Aggression (siehe ForceActorValue) größer sein, als der Wert Disposition Player (siehe ModDisposition). Oder Du hetzt die dem Player einfach mit StartCombat Player auf den Hals.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Wozee
Durch den SetAlert Befehl sollte die Statue doch die Waffe ziehen oder?
Wenn ich das so benutz habe im Script:
Scriptname GoldeneHeiligeSteinStatueScript
Begin OnLoad
SetAlert 1
PickIdle
SetGhost 1
SetUnconscious 1
SetDestroyed 1
PlayMagicShaderVisuals effectTG11stone
End

Oder muss ich SetAlert auf 0 setzen? Hab keine ahnung vom Scripten, deswegen frag ich, weil es funktz alles nur die Waffe will die Statue nicht ziehen.

Und Danke für die Hilfe :hail:
 
Durch den SetAlert Befehl sollte die Statue doch die Waffe ziehen oder?
jop - aber da ich kein CS drauf habe (gerade alles neu installiert) hatte ich das so aus dem Bauch geschrieben.

Du könntest SetUnconscious mal mit einem Semikolon auskommentieren und sehen, ob es dann geht. Vielleicht wird der NPC durch den Befehl zu früh festgetackert und kommt nicht dazu, die Waffe zu ziehen. (obwohl das eigentlich gehen sollte)

Kann ich ich atm leider nicht selber testen.

...grummel... Hat der NPC die Waffe ausgerüstet ?
Vielleicht musst Du ihn zu seinem Glück zwingen und vor das SetAlert 1 mal ein EquipItem WaffeID 1 setzen. Die "1" kann man sich auch schenken. Die verhindert nur, dass der die Waffe ablegen kann. Als designierte Leiche ist das aber wohl egal.

Oder muss ich SetAlert auf 0 setzen?
SetAlert 0 ist der Befehl, die Waffe wieder einzustecken. Kannst Du über die Konsole mit jedem NPC machen.
 
Zuletzt bearbeitet:
Verratet mir doch mal, wofür Ihr für ein Static ein Script braucht.
weil ich als selbstverständlich vorausgesetzt habe, dass die gar nicht statisch sein soll ... sondern böse böse ... ihre wahre Natur enttarnt und Player irgendwann angreift.

aso .. und natürlich, weil ich von NIFologie absolut keinen Check habe, aber trotzdem noch was halbwegs schlaues absondern wollte, bevor ich jetzt in die Horizontale gehe. :lol:
 
Erm, dieses SetGhost, SetUnconscious und SetDestroyed, das kann man doch schlicht mit toggleactorsai zusammenfassen, oder?
 
Durch den SetAlert Befehl sollte die Statue doch die Waffe ziehen oder?

Ich hab mir das gerade nochmal angesehen und so umgebaut, dass der NPC ein paar Frames Zeit hat, seine Waffe zu ziehen.

Code:
Scriptname GoldeneHeiligeSteinStatueScript

Short FrameCounter
Short FreezeFlag

Begin OnLoad
    Set FreezeFlag To -1
    EquipItem SEGoldenSaint3Shortsword
    SetAlert 1
End

Begin GameMode
    If FreezeFlag == -1
        Set FrameCounter To FrameCounter + 1
        If FrameCounter < 20
            Return
        Else
            PickIdle
            SetGhost 1
            SetUnconscious 1
            SetDestroyed 1
            PlayMagicShaderVisuals effectStone
            Set FreezeFlag To 0
        EndIf
    EndIf
End
 
  • Like
Reaktionen: Wozee
Danke Seidenweber hat perfekt geklappt, die Statue holt jetzt die Waffe raus und es sieht perfekt aus :hail:
 
die Statue holt jetzt die Waffe raus und es sieht perfekt aus :hail:
guti :)

PM schrieb:
ist es normal, dass sich diese Statuen bewegen? Bei mir schwanken sie so ein wenig wie Menschen eben ? Außerdem kann man sie durch dagegen laufen einfach zur Seite schieben.
das ist nicht schön, aber bei dieser Lösung normal - ja.

Man kann ("könnte") diese Idle-Animation zwar mit SkipAnim unterdrücken, aber das zieht dann wieder andere Probleme nach sich, weil SkipAnim fehlerhaft arbeitet.

Also bleibt eigentlich nur, zusätzlich ein ToggleActorsAI auf den NPC auszuführen. Nebeneffekt dieser Funktion ist, dass sie auch Animationen unterdrückt. Vermutlich lässt sich die Figur danach auch nicht mehr verschieben.

---
edit: Bestätigt. Wenn man zur Abrundung noch ToggleActorsAI ausführt, ist´s perfekt.

Da Oblivion die NPC gerne "irgendwo in der Nähe der Editorposition" spawnen lässt, ist es vielleicht noch eine gute Idee, das Paket aaaDefaultStayAtEditorLocation auf den NPC zu legen, damit der sich auch an der gewünschten Stell befindet, wenn der Player ihn sieht.
 
Zuletzt bearbeitet:
Ok ich bin jetzt soweit fertig mit meinem Mod, jetzt will ich es so machen das man mein gebautes Haus erst nach Abschluss der Mainquest von SI betreten kann. ICh hatte mir das so vorgestellt das man wenn man Ygglag oder wie der auch heißt besiegt hat eine Nachricht und einen Sxhlüssel ins inventar bekommt. Wie kann ich das machen?? ich danke euch schonmal im voraus :)
 
Ok ich bin jetzt soweit fertig mit meinem Mod, jetzt will ich es so machen das man mein gebautes Haus erst nach Abschluss der Mainquest von SI betreten kann. ICh hatte mir das so vorgestellt das man wenn man Ygglag oder wie der auch heißt besiegt hat eine Nachricht und einen Sxhlüssel ins inventar bekommt. Wie kann ich das machen?? ich danke euch schonmal im voraus :)
Das finde ich nicht gut, da manche Jyggalag schon besiegt haben. Ich würde eher vor die Tür einen großen Stein oder so als Activator machen, und ein Script drauf legen:
Code:
...
Ref Me
Begin OnActivate
Set Me to GetSelf
if GetStage derletzteQuest >= diestage
Me.Disable
Endif
End
...
So in der Art, kann nicht garantieren, dass das korrekt ist
 
Ok werds gleich mal ausprobieren, thx

EDIT: Nee funktioniert nicht aber egal muss ich was anderes machen
 
Zuletzt bearbeitet: