Construction Set Der Scriptthread

Dieses Thema im Forum "[MW] Plugins und Mods" wurde erstellt von The Nici, 25. April 2006.

  1. Soul-O-Eater

    Soul-O-Eater Neuankömmling

    Hallo,

    ja das sollte in der Tat ein "disabled" sein. Ich habe das Script schon so oft verändert, dass mir das garnicht aufgefallen ist. Dein Script ist da natürlich die cleane Varriante. Dort liegt aber auch nicht wirklich das Problem.
    Beim zweitem Script habe ich den Gegenstand im Inventar. Dieser Script sollte so funktionieren, dass ich einen Tagebucheintrag bekomme. Diesen bekomme ich allerdings nicht, weder beim Aufheben, noch wenn ich aus dem Inventar heraus mir dieses Buch anschaue. Der Index des Eintrages liegt auf 10, muss man sonst noch irgendetwas einstellen, damit es funktioniert? Bin was Scripten angeht schon ein Laie, aber von den Dialogen habe ich keine Ahnung.

    Gruß: Soul
     
  2. Krschkr

    Krschkr Abenteurer

    Fürs Aktivieren aus dem Inventar bräuchtest du wohl auch eher OnPCEquip.

    Schau mal, ob dir das hier hilft.
     
    Soul-O-Eater gefällt das.
  3. Soul-O-Eater

    Soul-O-Eater Neuankömmling

    Danke, funktioniert alles super soweit. Scripte sind angepasst.
    Nur kurze Frage nebenbei: Gibt es maximales Limit an Kosten eines Items, ab wenn ein Händler es nicht mehr verkaufen will? Da der Händler das Buch mit einem Wert von 50k nicht mehr anzeigt. Ich versuche einfach es in eine Kiste zu legen, eventuell hilf das ja.

    Gruß: Soul

    Edit: Ich hatte einfach die Werte falsch. Hat das Item wieder zum verkauf.
     
  4. ZWolol

    ZWolol Neuankömmling

  5. Soul-O-Eater

    Soul-O-Eater Neuankömmling

    Hallo,
    ich bräuchte Hilfe bei einem Script, der eine Kreatur beschwören soll.

    Diesen Part habe ich auch fertig. Allerdings wenn man nun den Gegenstand, der die Kreatur beschwört nun erneut anlegt, wird eine weitere Kreatur beschworen, aber die von vorher bleibt natürlich noch da und verschwindet nicht einfach.

    Code:
    Begin Soul_CompanionScript
    
    short OnPCEquip
    short summon
    short Button
    short reset
    short mehwest
    short mehwest2
    
    if ( OnPCEquip == 0 )
        set reset to 0
    endif
    
    if ( reset == 1 )
        return
    endif
    
    if ( OnPCEquip == 1 )
        if ( reset == 0 )
            if ( summon == 0 )
                set OnPCEquip to 0
                MessageBox, "Who would you like to Summon?", "Dangorn 'The Awesome Elf'", "Luc'Sp'Ork", "Mehwest 'Child of Chaos'", "No one"
                set summon to 1
            endif
        endif
    endif
    
    if ( summon == 1 )
        set Button to GetButtonPressed
        
        if ( Button == 0 )
            PlaySound "conjuration hit"
            PlaceAtPC "Soul_Scamp_Companion" 1 128 0
            set summon to 0
            set reset to 1
        endif
        if ( Button == 1 )
            PlaySound "conjuration hit"
            PlaceAtPC "Soul_Scamp_Companion" 1 128 0
            set summon to 0
            set reset to 0
        endif
        if ( Button == 2 )
            if ( mehwest == 1 )
                if ( mehwest2 == 0 )
                    "Soul_Scamp_Companion"->Disable
                    set mehwest2 to 1
                endif
                if ( mehwest2 == 1 )
                    PlaySound "conjuration hit"
                    set Soul_Mehwest to 0
                    PlaceAtPC "Soul_Scamp_Companion" 1 128 0
                    set summon to 0
                    set reset to 0
                    set mehwest2 to 0
                endif
            endif           
            if ( mehwest == 0 )
                PlaySound "conjuration hit"
                PlaceAtPC "Soul_Scamp_Companion" 1 128 0
                set summon to 0
                set reset to 0
                set mehwest to 1
            endif
        endif
        if ( Button == 3 )
            set reset to 1
            set summon to 0
            return
        endif
    endif
    
    
    end

    Vorerst sind die anderen Auswahlmöglichkeiten nur Placeholder, bis ich einen Weg gefunden habe, dass die Kreatur auch wieder verschwindet.
    Hier ist nun aber die Frage, geht das überhaupt? Meine Varriante funktioniert auf jeden Fall nicht. Ich habe auch schon versucht es über eine Globale zu lösen, bin aber auch nicht zum erwünschten Erfolg gekommen. Von der Theorie her kommt mir diese Lösung aber am ehesten vor, als könnte man es darüber lösen.

    Die Entvarriante würde für mich so aussehen. Dass beim Anziehen gefragt wird, wen man beschwören möchte. Hat man seine Wahl getroffen kommt man zur nächsten Abfrage wo gefragt wird, ob man "Summon", "Desummon", "Nothing" will. Nothing sollte klar sein, es passiert nichts und man landet wieder im Menu. Desummon soll einfach alle Kreaturen verschwinden lassen und bei Summon wird die Kreatur beschwören, wobei alle schon bestehenden Kreaturen (sollte ja nur 1 maximal sein) verschwinden.

    Hoffe das ist alles so machbar, wie ich es mir vorstelle. Vorwand dafür ist, dass man ohne Hilfsmittel keine neuen Beschwörungszauber im Spiel hinzufühgen kann. Zumindest nicht soweit ich weis.

    Gruß: Soul
     
  6. Moorkopp

    Moorkopp Vertrauter

    Ich hab vom Skripten keine wirkliche Ahnung, doch wo ist denn die Bedingung für if ( mehwest == 1 )wenn du das so schreibst? Oo"

    if ( Button == 2 )
    if ( mehwest == 1 )
    if ( mehwest2 == 0 )
    "Soul_Scamp_Companion"->Disable
    set mehwest2 to 1

    wie gesagt, ich hab keine Ahnung davon, doch das fiel mir sofort auf.
     
  7. Krschkr

    Krschkr Abenteurer

    Probier mal so:

    Code:
    Begin Soul_CompanionScript
    
    short OnPCEquip
    short summon
    short Button
    short counter
    
    if ( OnPCEquip == 0 )
       if ( summon != 0 )
           set summon to 0
       endif
    endif
    
    if ( OnPCEquip == 1 )
       if ( summon == 0 )
           MessageBox, "Who would you like to Summon?", "Dangorn 'The Awesome Elf'", "Luc'Sp'Ork", "Mehwest 'Child of Chaos'", "No one"
           set summon to 1
       endif
    endif
    
    if ( summon == 2 )
       return
    elseif ( summon == 1 )
    
       if ( mehwest == 2 )
           if ( counter >= 20 )
               set mehwest to 1
               set counter to 0
               PlaySound "conjuration hit"
               PlaceAtPC "Soul_Scamp_Companion" 1 128 0
               set Button to -1
               set summon to 2
               return
           else
               set counter to ( counter + 1 )
               return
           endif
       endif
              
       set Button to GetButtonPressed
    
       if ( Button == -1 )
           return
       elseif ( Button == 0 )
           MessageBox "Platzhalter"
           set Button to -1
           set summon to 2
           return
       elseif ( Button == 1 )
           MessageBox "Platzhalter"
           set Button to -1
           set summon to 2
           return
       elseif ( Button == 2 )
           if ( mehwest == 0 )
               PlaySound "conjuration hit"
               PlaceAtPC "Soul_Scamp_Companion" 1 128 0
               set Button to -1
               set summon to 2
               set mehwest to 1
               return
           elseif ( mehwest == 1 )
               set mehwest to 2
               return
           endif
       elseif ( Button == 3 )
           set Button to -1
           set summon to 2
           return
       endif
    endif
    
    end Soul_CompanionScript
    Auf die Kreatur Mehwest kommt folgendes Skript:

    Code:
    begin Soul_MehwestAutophagieSkript
    
    if ( mehwest == -1 )
       disable
       SetDelete 1
       set mehwest to 0
       return
    endif
    
    if ( mehwest == 2 )
       disable
       SetDelete 1
       endif
    endif
    
    end Soul_MehwestAutophagieSkript
    "mehwest" ist eine globale Variable, die du anfänglich auf -1 setzt. Das räumt dann die eine Instanz von Mehwest auf, die du im Spiel platzieren musst, damit das Skript dir nicht beim Laden der .esp um die Ohren fliegt.

    Kommentare
    • Du benutzt "set Soul_Mehwest to 0" in deinem Skript, aber deklarierst Soul_Mehwest nirgends im Skript; muss also eine globale Variable sein. Aber du benutzt sie nirgends sonst im Skript. Ich denke, das ist ein Test-Überbleibsel und du wolltest eigentlich "mehwest" einsetzen.
    • Skriptbefehle mit Ziel, z.B. "fargoth->disable", wirken immer nur auf die allererste Instanz des Ziels, die ins Spiel geladen ist. Beim ersten Disable wird also diese erste Kreatur betroffen. Da sie dann aber nur deaktiviert, nicht gelöscht ist, wird sie auch bei allen weiteren Versuchen das Ziel des Skriptbefehls sein, weshalb das Freilassen der Kreatur so nicht funktioniert. Deshalb eine globale Variable einsetzen und ein weiteres Skript auf die zu beschwörende Kreatur legen, die das Entfernen vornimmt.
    • Das Schema kannst du dann mit anderen globalen Variablen auch für die anderen zu beschwörenden Kreaturen anwenden und eine simple Aufräumfunktion für alle Kreaturen gleichzeitig einbauen.
    • Du solltest wahrscheinlich ein OnDeath im Kreaturenskript einfügen, das mehwest auf 0 setzt.

    E: Natürlich der Standard-Hinweis, dass ich nur Laienmodder bin. Wenn mein Skript deinen PC schmilzt... du weißt ja. Ich weise jede Verantwortung von mir.
     
    Zuletzt bearbeitet: 31. August 2021
    Soul-O-Eater gefällt das.
  8. Soul-O-Eater

    Soul-O-Eater Neuankömmling

    Ich habe dein Script mal ausprobiert, Krschkr.
    Wenn ich draußen in einer Exterior-Cell bin funktioniert es fast einwandfrei, ich würde sagen zu 95% verschwindet die beschworene Kreatur wieder und in den Fällen, ich habe es 3 oder 4 mal nur geschafft bei sehr viele malen testen, bei denen ein zweiter stehen bleibt, verschwindet dieser dann aber noch maligem nutzen des Scripts.
    Allerdings funktioniert das Script in Interior-Cells aus irgendwelchen Gründen, zumindest bei mir nicht.

    Ich habe versucht bei meinem ursprünglichem Script einen Timer einzubauen, der den Ring mehr oder weniger disablen soll, zumindest so, dass man ihn nicht mehr nutzen kann. Am liebsten wäre mir natürlich eine Mischung aus, disablen wenn die selbe Kreatur noch einmal beschwört und einen timer, der die Kreatur von selbst nach einiger Zeit disabled. Quasi das, was ein herkömmlicher Beschwörungszauber auch macht.

    Gruß: Soul
     
  9. 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