Construction Set Der Scriptthread

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
 
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.
 
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
 
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.
 
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:
  • Like
Reaktionen: Soul-O-Eater
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