Projekt (SSE) Band der Freundschaft

Dieses Thema im Forum "[Skyrim] Modprojekte (SSE)" wurde erstellt von darklady310187, 19. Juli 2023.

  1. darklady310187

    darklady310187 Mrs. Oblivion 2015

    Kurz zusammengefasst:

    Es sind drei Kräfte, die das Reisen mit Begleitern komfortabler machen. Zu den Features gehören zum Beispiel das "Automatische Beruhigen" bei Friendly Fire (u. a. zwischen Begleitern), die Möglichkeit, Spielfiguren zu debuggen und Begleitern mittels eines Schnellmenüs Befehle zu geben.



    Die Ursprungsidee


    Seitdem ich mit mehreren Begleiter aus verschiedenen Mods spiele, ist mir ein Problem besonders auf die Nerven gegangen: Begleiter, die sich aufgrund von Friendly Fire gegenseitig bekämpfen. Da ich zwei Magierbegleiter im Schlepptau habe, kam dieses Problem öfters vor. Einer dieser Begleiter ist Samuel. Das Problem löste ich, indem ich dessen Angriffszauber mit einem modifizierten Beruhigen-Effekt gekoppelt hatte, der den Kampf zwischen den beiden Magierbegleitern automatisch stoppt.

    Da ich nicht jeden einzelnen Zauber des Spiels anpassen wollte, musste eine praktikablere Lösung her. Heraus kam ein Zauber, der dem Ziel eine Fähigkeit ("Automatisches Beruhigen) verleiht. Wenn das Ziel von einer Spielfigur (NPC/Kreatur) aufgrund von Friendly Fire angegriffen wird, die ebenfalls diese Fähigkeit besitzt, stellen beide automatisch ihren Kampf ein (das gilt auch für Friendly Fire vom Spieler).


    Was daraus wurde

    Sehr bald kamen neue Features wie das Modifizieren des freundliche Treffer Settings oder ein Gesundheitsbonus hinzu. Daher nannte ich das Projekt "Friendly Fire Hostility Fix" in "Bond of Friendship" (Band der Freundschaft) um. Das "Automatische Beruhigen" ist nun ein kleiner Teil der Kraft "Band der Freundschaft", die viele weitere Änderungen an der Spielfigur vornehmen kann. Zu dieser Kraft gesellen sich zwei weitere Kräfte, eine ist ein Debug-Werkzeug für Spielfiguren und die andere beinhaltet ein Schnellmenü für Begleiter mit Aktionen wie Folgen, Warten oder Inventar öffnen. Kräfte werden über die Schreitaste ausgeführt. Da es Geringe Kräfte sind, kannst du diese mehrmals am Tag ausführen (jedoch haben Geringe Kräfte einen Cooldown von 3 Sekunden; die Mod Lesser Power Cooldown setzt den Wert des Cooldowns auf 0.1 Sekunden).


    Die Kräfte im Überblick

    (Die erste Kraft ist fertiggestellt, die zweite befindet sich in Entwicklung und die dritte ist geplant.)


    Band der Freundschaft
    (funktioniert auch mit Nicht-Begleitern, Ausnahme: das "Automatischer Teleport"-Feature ist nur für Begleiter)

    Features:
    • gibt dem Ziel die "Automatisches Beruhigen"-Fähigkeit
    • modifiziert das freundliche Treffer Setting (freundliche Treffer ignorieren/nicht ignorieren)
    • macht das Ziel zum Verbündeten
    • gibt dem Ziel erhöhte Gesundheit und verstärkt dessen Heilungsrate
    • macht das Ziel unsterblich/sterblich
    • Automatischer Teleport: teleportiert das Ziel automatisch zu dir, wenn es zurückgefallen ist
    Zaubern mit gezogener Waffe und Zeigen auf das gewünschte Ziel: weist das Ziel dem Spielfiguren-Manager von Band der Freundschaft zu (du kannst bis zu 10 Spielfiguren zuweisen), fügt die Features dem Ziel hinzu (oder allen Spielfiguren, die dem Spielfiguren-Manager zugewiesen worden sind)

    Zaubern mit weggesteckter Waffe: die Features werden allen zugewiesenen Spielfiguren hinzugefügt


    Band der Freundschaft - Debug-Werkzeug
    (funktioniert auch mit Nicht-Begleitern)

    Debug-Aktionen*: Disable/Enable (Entfernt das Ziel aus dem Spiel/Holt es wieder zurück), KI zurücksetzen, Spielfigur recyclen, Inventar zurücksetzen, Komm zu mir (teleportiert das Ziel zu dir)

    * ein paar der Aktionen benötigen SKSE (Inventar zurücksetzen) und ConsoleUtilSSE (KI zurücksetzen, Spielfigur recyclen)

    Zaubern mit gezogener Waffe (oder Fäusten): Debuggen des aktuellen Ziels der Kraft (das Ziel muss nicht dem Spielfiguren-Manager zugewiesen werden)

    Zaubern mit weggesteckter Waffe: navigiere mit den Slot-Buttons (Erster Slot, Nächster Slot, Vorheriger Slot und Letzter Slot) zur gewünschten zugewiesenen Spielfigur und führe die Debug-Aktionen aus ("> Aktionen"). Dies ist nützlich, wenn du die Spielfigur aus den Augen verloren hast (Aktion: "Komm zu mir") oder sie beim Reisen aus irgendwelchen Gründen unsichtbar geworden ist (Aktion: "Disable/Enable").



    Band der Freundschaft - Bitten (etwas zu tun)
    (funktioniert nur mit Begleitern)
    (bis auf die Outfit-Bitte funktionieren die Bitten nur mit Begleitern)

    Die Bitten beim Zaubern mit gezogener Waffe (aktuelles Ziel): Reden, Warten/Folgen, Gefallen, Inventar, NEU: Outfit

    Die Bitten beim Zaubern mit weggesteckter Waffe (alle zugewiesenen Begleiter): Warten/Folgen, Treffpunkt** (mit der Möglichkeit einen Treffpunkt überall zu setzen und zu entfernen und dich selbst und/oder die Begleiter zum Treffpunkt zu teleportieren und wieder zurück)

    ** Als Referenz nehme ich die Teleport-Mechaniken von DFB - Dimensional Rift Home



    Es kann sein, dass sich die Bezeichnungen in den Menüs noch ändern werden, falls diese zu lang sind. Das weiß ich aber erst, wenn ich mit der deutschen Übersetzung beginne (ich entwickele die englischsprachige Version einer Mod meistens zuerst).
     
    Zuletzt bearbeitet: 15. August 2023
    PixelMurder gefällt das.
  2. Werbung (Nur für Gäste)
  3. PixelMurder

    PixelMurder Angehöriger

    Ist nur, weil ich es gestern zufällig gesehen habe und nicht, weil ich dir etwas ausreden möchte, Nethers Follower Framework hat ein optionale esp, die alle Vanilla-Zerstörungs-Spells anpasst, damit sie keine Wirkung haben, wenn Subject und Target Teammates sind.
     
  4. darklady310187

    darklady310187 Mrs. Oblivion 2015

    Etwas Ähnliches hat auch Amazing Follower Tweaks. Meine Tests mit dem optionalen Plugin von AFT haben ergeben, dass es nicht ausreicht den Schaden von Zaubern zu negieren. Die Feindlichkeit zwischen den Begleitern bleibt trotzdem bestehen. Ob es beim Plugin von Nether Follower Framework auch so ist, weiß ich nicht. Jedenfalls, es gibt nicht nur Vanilla-Zauber, sondern auch viele aus Mods, die ich nicht alle auf dem Schirm habe. Das war auch ein Grund, warum ich mich für die "Automatisches Beruhigen"-Fähigkeit entschieden habe. Und ich wollte zudem alle Arten von physischen Attacken wie Schwert- oder Pfeilangriffe abdecken ;).
     
    Zuletzt bearbeitet: 20. Juli 2023
  5. Sonneundso

    Sonneundso Freund des Hauses

    Spitzenreiter in dieser Disziplin ist definitiv Serana. Weswegen ich dann lieber ohne Serana und mit Totendienern losziehe.

    Ein anderes Problem mit Totendienern ist ja auch noch, dass die öfter auf nimmerwiedersehen verschwinden , sich in Asche verwandeln, oder manchmal auch einfach nur unbeweglich im Kampfmodus bleiben.

    Und wenn man eine Schriftrolle der Alten liest, einen Drachen ruft, oder auch diesen Zwergenforscher als erworbenen Zauber beschwört, oder sich in die Vampirfürstform umwandelt, kippen die Totendiener jedesmal aus den Latschen. Das nervt.

    So kommt es zu Entscheidungssituationen: Entweder mit Totendienern aber ohne Serana, oder eben mit Serana und ohne Totendiener. Die beschworenen Dremoras sind ja auch nicht schlecht. Die vom Sanguine-Zauberstab sind noch ein wenig besser, die kann man noch sehr weit weg beschwören.
    In der Vampirform ist es oft besser, ohne Serana loszuziehen.

    Vom Zauberstabtechnischen ist auch dieser "Kangaxx"-Stab (Wyrmstooth) super. Allerdings verdirbt das ein wenig den Spaß mit den üblichen verdächtigen Banditenanführern, Abgeschworenentalent oder mit talentierten Questgegnern.
    Und der gepimte Wiederherstellungmeisterspruch ist sowieso ein Riesenspaß, - da braucht man in Untoten-Gegenden keine Angst mehr vor Begleiterkämpfen haben.

    In Baldurs Gate gab es das übrigens auch, dass sich die Begleiter gegenseitig an die Gurgel gegangen sind (per Skript, nicht per Bug). Das fand ich da ganz nett, aber im Zweifelsfall musste man hier und da doch neuladen, um die Begleiteranzahl beizubehalten.

    In Skyrim gibt es ja noch diese "gebe auf" Haltung. Das kann man ausnutzen, und sich schnell entfernen oder eine Schnellreise machen. So ganz generell hilft die Schnellreise auch, dass die Kampfhähne in der Begleiterschaft Ruhe geben.

    Manche Begleiter-Gruppen vertragen sich gut, manche nicht.
     
  6. Klappt aber nicht, wenn Feinde in der Nähe sind, dann geht keine Schnellreise. (Das wiederum hebt "Weg Hier" auf, aber ist halt extra Mod)
    Der in dieser Hinsicht gefährlichste Zauber von Gegnern ist Raserei, besonders, wenn in einigen Mods stärker als Vanilla. Der wird von AFT nicht gedämpft, wenn zeitgleich mit Friendly Fire (also, Feind wirkt Raserei und Freund beschiesst zufällig zeitgleich Freund, dann geht das weiter. Anscheinend müssten da zwei Befehle neutralisiert werden, nur einen zu neutralisieren reicht da nicht). Da könnte das "Beruhigen" die Lösung sein.
    Raserei ist aber Illusion, nicht Zerstörung.
     
  7. PixelMurder

    PixelMurder Angehöriger

    Danke für die Ergänzung.
     
  8. Sonneundso

    Sonneundso Freund des Hauses

    Na das ist klar. Die übliche Situation ist oft: alle Feinde erschlagen - zwei Begleiter bekämpfen sich noch.
    Das kann aber auch schon früher lästig werden, denn so eine KO geschlagene Serana nützt nicht viel.
    Da bietet sich dann wie ich oben schon geschrieben hatte, der Begleiteraustausch an.
    Bei Illia geht auch mal ein Zauber daneben - aber nicht so schlimm wie bei Serana - und eine andere Möglichkeit ist noch, dem Char eine Armbrust, oder einen Bogen zu geben, dann gibt es auch weniger Ärger.
    Zauberstäbe sind auch super diesbezüglich, aber die muss man so pimpen, dass die a) mehr Schaden machen und b) keinen Flächenschaden.
    edit: und c): Manaverbrauch bzw. Ladung frisieren auch noch ;)
     
    Zuletzt bearbeitet: 21. Juli 2023
  9. Nein, das beherrscht AFT. Die "übliche" Situation ist, dass mehrere Feinde da sind, noch nicht alle erledigt bzw, entdeckt, weil Fernkämpfer, Feinde und eigene Verbündete laufen/kämpfen/fernwirken umher, dann Feind wirkt Raserei und nun zusätzlich noch ein FF bei den eigenen Verbündeten oder von Spieler verursacht (Pfeil, Verbündeter läuft rein), das beherrscht AFT nicht mehr und es sind noch nicht alle Feinde erledigt

    Dann können noch zwei eigene Verbündete sich beschiessen, da hilft nur Schwertschlag oder Pfeil vom Spieler, wenn man kein AFT hat. Aber erst alle Feinde erledigen, so lange die beiden sich fetzen lassen.

    Hat man AFT, dann AFT-Begleiterbefehle => "Haltet ein" was auf alle Begleiter wirkt und die dann quasi paralysiert sind. Wieder alle aktivieren geht dann mit "Rufen". In ganz seltenen Fällen setzen dann die beiden ihren Zwist fort. Da muss dann Spieler die beiden mit dem Schwert beruhigen.

    Solche Gemetzel-Situationen habe ich bei beidseitiger Bogenbenutzung (beide Seiten mehr als 5 NPCs, ich habe i.d.R. 7 Begleiter) relativ oft, äußerst selten hingegen bei Wirken von Zaubern, weil das davon abhängt, wie stark die Zaubernden und die Ziele sind.
    Übrigens habe ich deshalb alle Bögen für mich und meine Begleiter mit u.a. "Paralyse" verzaubert. Ist die effektivste Mehrfach-Verzauberung. (doppeltes Verzaubern, davon ein Zauber mit 2 Wirkungen)

    Nachtrag zu Serana: Die macht bei mir gar keine Probleme, sie ist nur mitunter störend, weil sie Wesen beschwört, die ihrerseits wiederum auch Wesen beschwören, und dann ist die Kampfsituation äußers unübersichtlich und bei engen Räumen einfach gegenseitig hinderlich.
    Auch hier hilft AFT: Einfach anderen Zauber lehren und die störenden Zauber vergessen lassen und evtl. Begleiter den eigenen Fähigkeiten anpassen lassen. Dann macht auch Serana keinen Murks, nur ihr Hang zu Beschwörungen bewirkt auch, dass sie Abläufe verzögert, weil Beschwörungen eben nicht so schnell gehen, wie ein Blitz oder Feuerball. Beschwörungen sind also im Massenkampf tunlichst zu vermeiden.

    Bei mir ist Serana längst zu Hause am Kochtopf oder sie plätschert im Pool und darf zu Hause (Elysium Estate) die übrigen nicht aktiven Begleiter unterhalten, habe andere Begleiter, die besser sind.

    Noch ein Nachtrag: Eine üble Situation ergibt sich, wenn man mit 2 oder mehr Begleitern unterwegs ist, die Beschwören als Primärzauber haben. Begegnet man Feinden, wirken alle Begleiter ihren (ihre) Beschwörungszauber, mit dem Ergebnis, dass nun mehrere Böslinge beschworen werden, die zwar gegenüber dem Zaubernden freundlich sind, aber von den anderen beschworenen Böslingen als Feind gesehen werden. Beschwören die nun ihrerseits auch noch weitere Böslinge, so ist ein Massen-Beschwörungsgemetzel im Gange, das schnell von 3 beschwörenden NPCs zu 6 beschwörenden NPCs zu 12 beschwörenden NPCs anwächst und alles sich gegenseitig bekämpft.
    Also meine Grundregel daraus: niemals mehr als 1 Begleiter mitnehmen, der auf Beschwörung spezialisiert ist, besser ist: gar keinen.

    Und noch einer: @darklady310187 - Da beschworene Böslinge, gleich ob selbst oder von eigenen NPCs oder vom Feind beschworen, verschwinden, wenn der Zaubernde getötet wird, müsste "Beruhigen" so wirken, dass ggf. Zaubernde freundliche NPCs ihre Beschwörung "Widerrufen". Hier sehe ich ein Problem, weil das "Beruhigen" wirkungslos wird, wenn der NPC einen Bösling entdeckt, gleich ob von befreundeten NPCs oder feindlichen beschworen, und dann diesen mit neuer Beschwörung bekämpft. Ist also nach "Beruhigen" noch/wieder ein beschworener Bösling da, geht alles von vorne los. Evtl. muss da ein Zeitfaktor rein, so dass beruhigte NPCs nicht sofort wieder neu beschwören können, sondern erst nach x Sekunden, also eine zeitlang keine Beschwörungszauber können, oder zauber vergessen haben oder zu wenig Magicka haben. (letzteres bei starken NPCs und evtl. zudem noch installiertem Autorefresh der Magicka, ein hoffnungslosen Unterfangen)
    Drachenknochenbogen.jpg Drachenknochenschwert.jpg
     
    Zuletzt von einem Moderator bearbeitet: 21. Juli 2023
  10. Sonneundso

    Sonneundso Freund des Hauses

    Das habe ich noch vergessen: Zeit Anhalten Schrei ist auch sehr praktisch.
    Außerdem gibt es noch Flammenmantel, Blitzmantel oder Frostmantel, von mir auch auch alle zusammen - bzw. Chaosmantel wohl auch noch - die nutze ich selber gerne, vor allem mit verstärkenden Zaubertränken und die kann man üblicherweise hemmungslos überall einsetzen. Auch unter Wasser, und auch das ist sehr nützlich.
    https://elderscrolls.fandom.com/de/wiki/Yisra
    https://en.uesp.net/wiki/Skyrim:Dark_Elf - die Dunkelelfen können ihren Flammenmantel auch unter Wasser zünden.
     
  11. Womit Du nun endgültig nicht mehr zum Thema des Threades gehörende Allgemeinplätze verkündest, die nichts mit Friendly Fire und Beruhigen zu tun haben und das Thema von @darklady310187 für eigene Darstellung zu kapern versuchst.
     
  12. Sonneundso

    Sonneundso Freund des Hauses

    Das denkst du, weil dir womöglich die Spielerfahrung fehlt, und du nicht verstehen kannst wie ich das meine.
    Tatsächlich sind deine Aussagen zu verpflichtenden Mods oder die zwei Waffenbildchen da oben die nicht zum Thema passend.
    Und es ist auch nicht meine Schuld, wenn verschiedene Spielmöglichkeiten übersehen werden, Friendly Fire bzw. Begleiterstreitereien zu vermeiden.
     
  13. darklady310187

    darklady310187 Mrs. Oblivion 2015

    Wenn man die Beiträge liest, könnte man glauben, dass die Mod sich nur um Friendly Fire und die "Beruhigen"-Fähigkeit dreht. Es ist zwar ein essenzieller Teil, mit dem alles angefangen hat, doch es ist längst nicht alles (siehe Abschnitt "Die Kräfte im Überblick" im ersten Post) ;).


    Ich könnte im "OnHit"-Teil (der Teil, der einem Treffer ausgeführt wird) des Beruhigen-Skripts checken, ob der Begleiter vom Raserei-Zauber bzw. von "artverwandten" Zaubern wie Erzürnen getroffen wurde und dann den Effekt des Zaubers vom Begleiter entfernen (DispelSpell), sodass dieser wieder normal wird.
    Das Skriptschnipsel könnte so aussehen (muss ich im Spiel testen, ob es auch hinhaut, wie ich es mir vorstelle)
    Code:
    Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProj, Bool b1, Bool b2, Bool b3, Bool b4)
        if (akSource as Spell)
            ; akSource ist das, was den Begleiter getroffen hat; fragt ab, ob akSource ein Zauber ist
            if akSource.HasKeyWord(MagicInfluenceFrenzy)
            ; ob akSource das gesuchte Schlüsselwort besitzt; die Effekte von Raserei und Co. besitzen dieses Schlüsselwort
                Target.DispelSpell((akSource as Spell))
            ; entfernt alle Effekte des gesuchten Zaubers vom Begleiter
            endif
        endif
    EndEvent

    Das bringt mich auf die Idee, den KO zu verhindern - als neues Feature für die "Band der Freundschaft"-Kraft.

    Also die Beschwörungen von den jeweiligen Begleitern bekämpfen sich gegenseitig? Tun sie das sofort, wenn sie sich sehen oder erst bei Friendly Fire? Jedenfalls, ich weiß nicht, ob ich das Thema Beschwörungen überhaupt angehe, nachdem ich deinem Betrag entnommen habe, was da alles reinpfuschen kann.

    Meiner Meinung nach habt ihr beide mir wichtige Denkanstöße für weitere Features und Dinge, auf die ich achten sollte, gegeben.
     
    Zuletzt bearbeitet: 22. Juli 2023
  14. Beschwörungen sind lustig, wenn sie nur vom Spieler oder nur von einem NPC angewendet werden.
    Aber, und das ist das sich potenzierende Problem, hat man z.B. Serana und Rowan aus Ashara Erin and Sienna Followers als Begleiter, dann hat man zwei NPCs die mit Vorliebe Böslinge beschwören, die ihrerseits Böslinge beschwören, man hat also 4 Draugn (ich hab sogar schon mal 6 erlebt, weil der "Kind"-Beschworene auch noch Beschwören konnte), zwei (3) von Serana, zwei (3) von Rowan. Dann greift "Kind"-beschworener Draugn von Serana sofort den/die Draugr an, die von Rowan stammen (und umgekehrt), und das wiederum entzündet dann den FF-Krieg, weil ja ein Verbündeter von Rowan angegriffen wurde, Rowan also diesen angreifenden Draugr ihrerseits angreift, was Serana wiederum als Attacke gegen ihren Verbündeten zum Anlass nimmt, nun Rowan anzugreifen.

    Ist dann in dem Dungeon noch ein feindlicher Draugr, der ebenfalls einen anderen beschwören kann, ist das nicht stoppbare Chaos perfekt.(hat man dazu noch Rebirth Monsters instaliert, wird es gänzlch unübersichtlich.)
    Gegen den feindlichen Draugr und den von ihm Beschworenen hilft zwar relativ einfach, den ursprünglichen Draugr zu töten, dann verschwindet der von ihm beschworene automatisch. (Das gleiche kann man bei einem Drachenangriff eines hohen Drachens erleben, der auch Angreifer beschwört. Greift man die an, kommen neue, also nur und zuerst den Drachen töten.)

    Ich hab bislang nur eine Lösung gegen das Mehrfachbeschwören durch Begleiter gefunden: nur einen Beschwörer-NPC mitnehmen, Serana oder Rowan, niemals beide, oder ihnen halt das Beschwören abgewöhnen (bei Rowan schwierig, sie hat noch "Schutzgeist" im Repertoire, was ebenfalls zur Eskalation führt, die nehm ich gar nicht mehr mit). Ansonsten meine immer wirkende "Medizin": ein Pfeil vom Bogen mit Paralyse, auch gegen eigene Begleiter. (Aber wenn Feinde in Massen da sind, dann eigene Begleiter still zu legen ist nicht unbedingt eine Siegesgarantie, sondern kann schnell ein Reload des letzten Save nötig machen. Es gibt einige Mods mit gleichzeitig zig Angreifern, weit über 50, aktive Begleiter werden da also benötigt, Weglaufen geht nicht, Teleport-Feature aus Gut Daemmerstern klappt immer, aber dauert)

    Also Mehrfachbeschwörungen und der Chaos-Zauber vom Gegner sind gute Voraussetzungen für ein notwendiges Save-Reload.
     
    Zuletzt von einem Moderator bearbeitet: 22. Juli 2023
  15. darklady310187

    darklady310187 Mrs. Oblivion 2015

    Ich habe mir die aufgelisteten Vanilla-Zauber von Serana in SSEEdit angeschaut und da finde ich keinen Draugr-Beschwörungszauber (stattdessen finde ich die Beschwörungszauber, die Tote wiederbeleben). Ähnliches gilt für Rowan, der in der originalen Mod Atronache beschwören kann. Hast du die Beschwörungen der Begleiter selbst geändert oder aus welcher Mod stammen diese Änderungen? Denn ich wollte dein Szenario nachstellen... Mich interessiert auf jeden Fall, welche Factions (Fraktionen) die Draugr-Beschwörungen haben und wie deren Aggressivität eingestellt ist.

    Es gibt nämlich ein paar Faktoren, die die Feindlichkeit zwischen NPCs/Kreaturen beeinflussen, wie zum Beispiel ihre zugeordneten Factions. Wenn die Fraktion des einen NPCs feindlich zu der Fraktion des anderes NPCs eingestellt ist, dann kämpfen die beiden NPCs gegeneinander. Weiterhin spielt die Aggressivität eine Rolle. NPCs/Kreaturen, die auf "very aggressive" eingestellt sind, greifen alles und jeden an, der nicht zu ihren Alliierten gehört. Ich habe spaßeshalber die "zum Verbündeten machen"-Funktion meiner Mod auf einen Banditen angewandt. Alleine reicht diese Funktion nicht aus. Ich musste mit dem Konsolenbefehl StopCombat nachhelfen. Wenn ich die Funktion mit StopCombat (davon gibt es auch eine Papyrus-Version) nachrüste, könnten sogar Feinde zu Verbündeten gemacht werden. Sollte ich das auch tun? Das geht schon ziemlich in die Richtung Cheat, oder?



    Weiterhin habe ich den Tag damit verbracht, herauszufinden, wie man die beschworene Kreatur erfassen kann, die gerade vom Begleiter beschworen wurde, um die Kreatur manipulieren zu können. Da meine Begleiter keine Beschwörungszauber besitzen, muss mein Charakter als Versuchskaninchen herhalten.

    Mein Test-Plugin beinhaltet eine Quest mit einem ReferenceAlias, dem der Spieler zugeordnet wurde, und auf dem dieses ReferenceAlias Skript liegt:
    Code:
    Scriptname testReferenceAlias extends ReferenceAlias
    
    
    
    Actor Property PlayerRef Auto
    Spell Property AbSummonChecker Auto
    
    
    
    EVENT OnSpellCast(Form akSpell)
    ; Event "Ein Zauber wird gezaubert"
    
    if ( akSpell ) && ( akSpell as Spell )
    
    int i = (akSpell as Spell).GetNumEffects() - 1
    
    WHILE i > -1
    
    if ( (akSpell as Spell).GetNthEffectMagicEffect(i) ) && ( (akSpell as Spell).GetNthEffectMagicEffect(i).GetAssociatedSkill() == "Conjuration" )   
    ; die Funktion GetSummon() wird ausgeführt, wenn der mit den Zaubereffekt verbundene Skill zur Kategorie "Conjuration" (Beschwörung) passt
    GetSummon()
    
    endif
    i -= 1
    EndWHILE
    endif
    EndEVENT
    
    
    Function GetSummon(INT iLoopIterations = 15, Float fAreaToSearch = 3000.0)
        While iLoopIterations > 0
            Actor Summoned = Game.FindRandomActorFromRef(PlayerRef, fAreaToSearch)
            iLoopIterations -= 1
    ; es wird nach Spielfiguren in einem festgelegten Bereich gesucht, auf die folgende Bedingungen zutreffen
            if Summoned && Summoned != PlayerRef && Summoned.IsCommandedActor() && !Summoned.IsHostileToActor(PlayerRef)
    ; die Spielfigur ist nicht der Spieler, sie wird von jemanden kontrolliert und ist dem Spieler nicht feindlich gesinnt
                iLoopIterations = 0
    ; Gibt die Nachricht aus, dass der Spieler die Kreatur beschworen hat (mit Nennung des Namens der Kreatur)
                Debug.Notification("Player has summoned "+Summoned.GetActorBase().GetName())
    ; die Fähigkeit AbSummonChecker wird der beschworenen Kreatur hinzugefügt, wenn die Bedingungen erfüllt sind
                Summoned.AddSpell(AbSummonChecker)
            endif
        EndWhile
    EndFunction
    GetNumEffects() und GetNthEffectMagicEffect() benötigen SKSE.

    Hier das Skript für die AbSummonChecker-Fähigkeit:
    Code:
        EVENT OnEffectStart(Actor Target, Actor Caster)
            selfRef = caster
            debug.notification("ability added to "+SelfRef.GetActorBase().GetName())
        ENDEVENT
       
        Event OnEffectFinish(Actor akTarget, Actor akCaster)
            debug.notification("ability removed from "+SelfRef.GetActorBase().GetName())  
        endEvent
    Das Skript der Fähigkeit dient nur als Kontrolle, um mittels der Debug-Benachrichtigugen zu wissen, ob ich die richtige Spielfigur erwischt habe und ob die Fähigkeit nach Ableben der Spielfigur entfernt wurde.

    Dieses Fähigkeiten-Skript könnte ich so abändern, dass die gefundene Spielfigur zur Fraktion hinzugefügt wird, in der alle Mitglieder miteinander verbündet sind, und zugleich deren Kampf mittels StopCombat() gestoppt wird. Das sollte theoretisch das Problem mit der Feindlichkeit zwischen den beschworenen Kreaturen beheben. Wenn die Kreatur stirbt oder der Beschwörungszauber endet, wird die Kreatur von der Verbündeten-Fraktion entfernt.
    Code:
    Scriptname SummonChecker extends activemagiceffect
    
    
    Actor selfRef
    Faction Property SummonsAllies Auto
    
    
        EVENT OnEffectStart(Actor Target, Actor Caster)
            selfRef = caster
            ;debug.notification("ability added to "+SelfRef.GetActorBase().GetName())
            selfRef.AddToFaction(SummonsAllies)
            selfRef.StopCombat()
        ENDEVENT
       
        Event OnEffectFinish(Actor akTarget, Actor akCaster)
            ;debug.notification("ability removed from "+SelfRef.GetActorBase().GetName())
            selfRef.RemoveFromFaction(SummonsAllies)
        endEvent
    
     
  16. hmm.. ich hab nie bewusst differenziert zwischen Tote erwecken und Beschwören, wenn die erweckten Tote Draugr waren und keine Skelette. Bei den Drachen aber denke ich, dass die keine Toten erwecken, sondern echt beschwören, jedenfalls bei mir, wenn mal wieder einer der Oberklasse spawnd.
    Allerdings habe ich zahlreiche Mods installiert, die das beeinflussen könnten, das kann ich nicht sagen. Konkret fällt mir aus dem Gedächnis Drachenzahn ein (kann ich nicht überprüfen, hab ich wg. Chanterelle derzeit deinstalliert), da gibt es eine große Unterwelt, wo Draugr andere Draugr beschwören. Dann was in Dead Mountain 1 oder 2, Godfred's Tomb (bin gerade bei Übersetzung von Update 1.3.5 und werd es dann nochmal durchspielen, aber isehr umfangreich und schwer), u.a. die ich nicht mehr konkret erinnere, z.B. Qaxes Questorium. Um Vanilla hab ich mich nie gekümmert, nur darum, wie eine Mod bei mir mit meinen Installationen klappte oder nicht, aber nicht darum, ws nun originär von was ist.

    Feinde zu Verbündeten machen gibts das nicht sowieso als Zauber? Oder verwechsel ich das was? (Spiel so was selten, mein Char bevorzugt Bogen. (Bei kurzem Durchsuchen meiner Charfähigkeiten finde ich 2 ähnliche
    Screenshot (782).jpg Screenshot (781).jpg
     
  17. Sonneundso

    Sonneundso Freund des Hauses

    Zumindest ist der Teil eher Skyrim-Spezifisch. Die anderen Punkte sind doch eher das, was man sich gerne in Oblivion am Zauberaltar erstellt hatte.
    Z.B. Konnte man Heilen, die HP erhöhen, oder die Heilungsrate verbessern. Ob das jetzt Vanillatechnisch schon alles ging weiß ich nicht - auf jedenfall hatte ich solche Zauber gerne zum Üben genutzt um z.B. schneller Schwertkampf oder Faustkampf zu leveln.
    Was ich in Oblivion auch gemocht hatte, war ein Kontakt-Zauber mit Lähmen, Stärke vermindert sich in Rate x und Ausdauer auch + Gesundheit absaugen + Seelenfalle. So eine Art Schlangenbiss.
    Den Stab von Indarys hatte ich auch im CS so bearbeitet, dass der die Stärke der Gegner stark herabsetzt.

    So ein umgebauter Schallschraubenzieher wäre vielleicht nützlich: Bei Totendienern weiß man meistens nicht, ob die ein Kleidungsstück nutzen können oder eine Waffe.
    Besonders lästig wird das ganze, wenn man Sachen im Inventar hat, wo man weiß, dass die "passen".
    Nur sammeln sich im Laufe des Spiels ein paar Sachen im Inventar an, und ehe man sich versieht, hat man 10 Paar gleiche Schuhe statt eines. Welches war jetzt das richtige? Man bräuchte eigentlich nur einen Marker, ähnlich dem auf der Landkarte.

    Bei der Nordwacht ist die Sache weniger problematisch. Wenn man Leute von da mitnimmt, können die auch alle Sachen von da anziehen, oder auch die Schwerter nutzen. Außerdem können die Soldaten dort ohne Waffe ein Schwert beschwören, was auch recht praktisch sein kann.

    Ein anderes Problem ist noch, Totendiener abzustellen, bzw. irgendwo zu parken.

    Würde ich zaubernde Begleiter selbst erstellen, bekämen die als Zauber keine problematischen Flächenzauber.
    Flammenmantel, Beschwören oder Gruppenheilung wären vielleicht nicht schlecht.
    Da der beschworene Bogen ziemlich stark ist, könnte man auch mit Beschwörungsmeistern experimentieren.
    Damit hat man zwei starke Momente bei den üblichen Anforderungen: Bogenschießen und Beschwören.
     
  18. darklady310187

    darklady310187 Mrs. Oblivion 2015

    Danke für die Aufklärung
    Dann ist die Idee, die Feinde zu Verbündeten zu machen doch nicht so abwegig, wie ich erst dachte.

    So weit ich weiß, konnte man am Zauberaltar in Oblivion keine Zauber erstellen, die die Sterblichkeit eines NPCs oder dessen Verhalten auf freundliche Treffer ändern.

    Da würde das Schnellmenü von "Band der Freundschaft - Bitten" weiterhelfen. Über dieses könntest du dem Totendiener befehlen zu warten. Theoretisch, das heißt, ich müsste es mit Totendienern testen, wenn ich soweit bin. Im Moment bin ich noch mit der Entwicklung der zweiten Kraft "Band der Freundschaft - Debug-Werkzeug" beschäftigt. Die Entwicklung des Schnellmenüs nehme ich danach in Angriff.



    Ich hatte mal erwähnt, dass ich dazu neige zu viele schlaflose Nächte mit der Erstellung von Mods zu verbringen, bis ich irgendwann ausgebrannt bin, die Motivation verliere und das Projekt auf unbestimmte Zeit auf Eis liegt (dies geschah zuletzt mit dem Verbesserten Dremora-Händer Projekt). Dieses Mal versuche ich, es anders anzugehen. Ich arbeite manche Tage überhaupt nicht am Projekt und spiele zum Beispiel das Spiel um des Spielens willen (aktuell bin ich übrigens in Chanterelle unterwegs). Andere Tage bin ich nur mit der Recherche beschäftigt (u. a. im Creation Kit Wiki), überlege, wie ich die bereits integrierte Sachen optimieren kann oder welche Features noch nützlich sein könnten. Die neuen Ideen baue ich nicht sofort ein. Es kann nämlich sein, dass ich ein paar Tage später eine "bessere" Idee habe und die andere verwerfe oder erstmal zur Seite lege. Die Möglichkeit einen Treffpunkt zu setzen ersetzte die Idee einen Dimensionales Versteck für alle Begleiter zu bauen. Eventuell greife ich verworfene oder beiseitegeschobene Ideen in zukünftigen Versionen wieder auf.


    Meine Priorität liegt derzeit auf der Erstellung einer Test-Version, die einen großen Teil der gesammelten Ideen widerspiegelt. So könnt ihr schon mal einen Blick reinwerfen, ausprobieren und eventuelle Bugs aufspüren, die ich dann in der nächsten Test-Version behebe und nach und nach werde ich die Test-Versionen mit neuen Features erweitern bis zum Release von Version 1.0. Weil es einfach zu viele Stellschrauben gibt, vor allem im Zusammenspiel mit anderen Mods. Da ich generell mit wenigen Mods spiele, habe ich nicht immer auf dem Schirm, zu welchen Komplikationen es kommen kann.
     
    Zuletzt bearbeitet: 23. Juli 2023
  19. Sonneundso

    Sonneundso Freund des Hauses

    Sterblichkeit verändern ging schon, die waren ja üblicherweise auch nicht unsterblich, wie viele NPC in Skyrim. Freundliche Treffer gab es da glaube ich gar nicht.
    Der beste Kampf diesbezüglich ist in Skyrim der mit dem Herausforderer. Der selbst macht glaube ich keinen Schaden in der Umgebung mit seinen Feuerbällen. Du aber schon.
    (da hätte ich schon gerne meinen Schlangenbiss-Zauber aus Oblivion zurück)

    Deswegen meine ich ja auch, lieber erstmal verschiedene Möglichkeiten durchzuspielen. Macht auch Spaß, und letztlich ist Bethesda dafür bekannt, und nicht zuletzt beliebt, weil einige Macken auch ein Feature sein können.
     
  20. darklady310187

    darklady310187 Mrs. Oblivion 2015

    Info-Update zur Debug-Werkzeug-Kraft

    Das Anwählen der Spielfiguren-Slots samt Anzeige der Slot-Nummer und des Namens der zugewiesenen Spielfigur funktioniert schon mal:
    20230724192925_1.jpg

    Wenn ein Slot nicht besetzt ist oder freigegeben wurde, sorgt eine Funktion dafür, dass neben "Assigned Actor" (Zugewiesene Spielfigur) der Hinweis "Empty Slot" (Leerer Slot) auftaucht:
    20230724192934_1.jpg


    Alles läuft über Reference Aliase. Es gibt 10 für die jeweiligen Spielfiguren-Slots und einen für den aktuell angewählten Spielfiguren-Slot (BondOfFriendshipSlotCurrent; mit den Flags: Optional, Allow Disabled, Allow Reserved, Stores Text, Uses Stored Text). Wenn der Spieler die Debug-Werkzeug-Kraft das erste Mal benutzt, wird standardmäßig die Spielfiguren-Slot-Nummer 1 angezeigt. Bevor das Menü erscheint, checkt die Funktion CheckCurrentSlot, ob der dazugehörige Reference Alias belegt ist und, wenn diese Bedingung zutrifft, wird die Referenz dieses Reference Aliases dem Reference Alias "BondOfFriendshipSlotCurrent" mit ForceRefTo zugewiesen.

    Der Teil des Menü-Textes mit der Slot-Nummer und den Namen der zugewiesenen Spielfigur sieht im Creation Kit so aus:
    Damit die richtige Nummer und der Name erscheint, muss der Message die Quest zugewiesen werden, die die Variablen und Reference Aliase enthält (Drop-Down-Liste neben "Quest-Owner").

    Skript-Schnipsel von der Debug-Werkzeug-Kraft
    Code:
    Scriptname BondOfFriendshipDebugUtilityAOE extends activemagiceffect
    
    BondOfFriendshipActorManager Property ActorManager Auto
    ; [...]
    
    elseif ActorManager.ActorSlots < 10
                ActorManager.CheckCurrentSlot()
                ActorManager.DebugActorsMenu()
    endif
    Skript-Schnipsel von der Actor Manager (Spielfiguren-Manager) Quest:
    Code:
    Scriptname BondOfFriendshipActorManager extends Quest Conditional
    
    Message Property BondOfFriendshipMenuDebugActorsAOE Auto
    ReferenceAlias[] Property ActorSlotsAlias Auto ; ein Array mit allen Reference Aliasen der Spielfiguren-Slots
    Int Property ActorSlots Auto Conditional ; Standardwert: 10
    Int Property CurrentSlot Auto Conditional ; Standardwert: 1
    Int Property i Auto Conditional ; Standardwert: 0
    ObjectReference Property EmptySlot Auto
    ; mit Hilfe des Zusatzes "Conditional" können die Werte der versteckten Variablen von anderen Skripten und vom Bedingungssystem (u.a. die Bedingungen von Dialogen, Spells, Message-Buttons)
    ; gelesen bzw. verändert werden
    ; weitere Infos: https://www.creationkit.com/index.php?title=Variables_and_Properties#Conditional_Properties
    ; [...]
    
    
    Function CheckCurrentSlot()
        int iElement = ActorSlotsAlias.Length ; Länge bzw. Anzahl der Elemente des Arrays (es sind 10)
        int iIndex = i
    
        While iIndex < iElement
            if ActorSlotsAlias[iIndex].GetReference()
                BondOfFriendshipSlotCurrent.ForceRefTo(ActorSlotsAlias[iIndex].GetActorRef())
                iIndex = 999
            else
    ; Den ReferenceAlias BondOfFriendshipSlotCurrent an dieser Stelle zu leeren (clear) ist sehr wichtig, da ansonsten der Hinweis "Empty Slot" nicht angezeigt wird
    ; Die Referenz EmptySlot ist übrigens ein Item mit dem Namen "Empty Slot", das sich in einer unerreichbaren Celle befindet
    ; Der Reference Alias Flag "Stores Text" speichert den Namen des Items und der "Uses Stored Text" Flag erlaubt das Verwenden des Namens als Text Replacement z. B. in Message- oder Buchtexten
    ; mehr über Text Replacement: https://www.creationkit.com/index.php?title=Text_Replacement
                BondOfFriendshipSlotCurrent.Clear()
                BondOfFriendshipSlotCurrent.ForceRefTo(EmptySlot)
                iIndex = 999
            endif
            iIndex += 1
        EndWhile
    EndFunction
    
    
    Function DebugActorsMenu()
        int button = BondOfFriendshipMenuDebugActorsAOE.Show(CurrentSlot)
        ; das %.0f im Text der Message wird mit dem Wert der Variable CurrentSlot ersetzt
        ; weitere Infos: https://www.creationkit.com/index.php?title=Show_-_Message
    
        if button == 0 ; First Slot
            i = 0
            CurrentSlot = 1
            CheckCurrentSlot()
            DebugActorsMenu()
        elseif button == 1 ; Next Slot
            i += 1
            CurrentSlot = i + 1
            if i > 9
                i = 0
                CurrentSlot = 1
            endif
            CheckCurrentSlot()
            DebugActorsMenu()
        elseif button == 2 ; Previous Slot
            i -= 1
            CurrentSlot = i + 1
            if i < 0
                i = 9
                CurrentSlot = i + 1
            endif
            CheckCurrentSlot()
            DebugActorsMenu()
        elseif button == 3 ; Last Slot
            i = 9
            CurrentSlot = i + 1
            CheckCurrentSlot() 
            DebugActorsMenu()
        elseif button == 4 ; > Actions
            DebugActionsMenu() 
        endif 
    EndFunction
    
     
    Zuletzt bearbeitet: 24. Juli 2023
  21. darklady310187

    darklady310187 Mrs. Oblivion 2015

    In den letzten paar Wochen habe ich die Idee eines Outfit-Management-Systems erkundet, welches in der Zukunft Teil der Kraft "Band der Freundschaft - Bitten" sein wird (dieses Feature wird auch für Nicht-Begleiter verfügbar sein). Im Moment ist es ein separates Testplugin, bei dem ich das Arbeiten mit Arrays übe. Vorher verwendete ich FormLists, um Dinge zu organisieren und zu speichern. Ich wollte wissen, ob ich dies auch mit Arrays hinbekomme, weil Arrays schneller als FormLists sind. Weiterhin verzichte ich auf den SetOutfit-Befehl, weil er das Standard-Outfit des NPCs überschreibt. Es gibt zwar einen Workaround mittels SKSE, aber ich möchte nicht zu sehr vom SKSE abhängig sein, weil nicht alle Nutzer ihn nutzen. Stattdessen verwende ich die Befehle EquipItem und RemoveItem (mit der Option, das Item in den Container/das Inventar des NPCs zu packen) in Kombination mit den Arrays.

    Weiterhin gibt es die Möglichkeit, die Kopfbedeckungen der NPCs abzulegen und wieder anzulegen (wie z. B. Helme von Wachen, Diademe, die von manchen Jarls getragen werden, oder Kopfbedeckungen, die vom Spieler hinzugefügt wurden). Und du kannst jederzeit die zugewiesenen Items eines Outfit-Slots durch Klicken auf den "Show Item List" (Item-Liste anzeigen) Button oder den "Container" Button anzeigen lassen.


    Wie das Outfit-Management-System funktioniert:

    Der Spieler öffnet aus der Ferne einen Container, der sich in einer anderen Celle befindet, platziert die Rüstungsitems in den Container und das Container-Skript fügt die Forms der Items dem Array hinzu. Sobald der Container geschlossen wurde (oder nachdem Klicken auf "Equip" (Ausrüsten)), werden die Items in das Inventar des NPCs transferiert und das ReferenceAlias-Skript des NPCs arbeitet den Array ab, um die gelisteten Items auszurüsten. Wird der Container wieder geöffnet, werden die Kleidungsstücke anhand der Item-Liste des Arrays zurück in den Container transferiert. So kann der Spieler die Item-Liste durch Entfernen von Items aus dem Container und Hinzufügen von neuen Items ändern.

    Aufgrund des sehr experimentalen und unfertigen Stadiums dieses Features (im Moment werden nur ein Outfit-Slot und ein NPC-Slot unterstützt, da ich jeweils nur eins davon zum Testen des Konzeptes brauche), wird das Outfit-Management-System nicht bei der ersten Test-Version von Band der Freundschaft dabei sein.

    Hier sind ein paar Vorschaubilder vom Outfit-Management-System:
    20230815001701_1.jpg 20230814233233_1.jpg 20230814233013_1.jpg 20230814231747_1.jpg 20230815000831_1.jpg


    Falls du mehr über Arrays erfahren möchtest, kann ich dir das sehr aufschlussreiche Video von Skyrim Scripting empfehlen:
     
    Zuletzt bearbeitet: 15. August 2023
  22. Werbung (Nur für Gäste)
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden