Construction Set Skriptthread zum Construction Set

So, ich bins wieder und vllt kann mir diesmal wer meine Frage beantworten:

Ich hab hier ein Script(siehe Spoiler) vom Spiel genommen und möchte das man für den Effekt etwas opfern muss(z.B.: eine Flasche Menschenblut und ein Daedraherz)!
Wenn der Spieler die Sachen im Inventar soll eine Frage kommen ob er sie opfern will und dann sollen sie(wenn er auf ja drückt) automatisch entfernt werden und das Script soll ausgeführt werden.
Wenn er die Sachen nicht im Inventar hat soll halt eine Fehlermeldung kommen("Ich habe nicht die geforderte Opfergabe dabei!" oder so iwas)!

ScriptName Vampire100TestScript


short doonce

Begin OnActivate

if isActionRef player == 1

if ( doonce == 0 )
player.addspell Vampirism100
player.addspell Vampirism100Att
player.addspell Vampirism100skills
player.addspell VampireEmbraceofShadows
player.addspell VampireSeduction
player.addspell VampireReignofTerror
player.addspell VampireHuntersSight
set PCVampire to 4
MessageBox "Voller Vampirismus hinzugefügt."
set doonce to 1
endif


endif

End

Könnte mir bitte irgendjemand das Script mit den obengenannten Sachen vervollständigen???

Weiß dazu wirklich niemand was???
 
Doch.
Code:
ScriptName Vampire100TestScript

short doonce

Begin OnActivate

if isActionRef player == 1
    if (doonce == 0)
        if (player.getitemcount DaedraHeart > 0) && player.getitemcount HumanBlood > 0)
            player.addspell Vampirism100
            player.addspell Vampirism100Att
            player.addspell Vampirism100skills
            player.addspell VampireEmbraceofShadows
            player.addspell VampireSeduction
            player.addspell VampireReignofTerror
            player.addspell VampireHuntersSight
            set PCVampire to 4
            MessageBox "Voller Vampirismus hinzugefügt."
            set doonce to 1
        else
            Messagebox "Ihr habt nicht die nötigen Zutaten! Ihr benötigt ein Daedra Herz und eine Phiole Menschenblut um das Ritual zu vollziehen."
        endif
    else
        Messagebox "Ihr habt das Ritual schon durchgeführt."
    endif
endif

End
 
  • Like
Reaktionen: Nagron
Eventuell würde ich noch einfügen, dass die benötigten Ingredienzen auch entfernt werden...
Also:
Code:
player.removeItem DaedraHeart 1
player.removeItem HumanBlood 1
 
  • Like
Reaktionen: Nagron
entweder:
Code:
<npcref>.kill
oder
Code:
<NPCRef>.addspell <ID des Zaubers>

den Zauber als Eigenschaft, die für ein paar Sekunden wirkt erstellen.

Sorry, aber ich komme grad gar nicht zurecht :oops:

Den Script habe ich im Topic unter Resultscript eingegeben. Er funktioniert auch, nur fällt der NPC in Ohnmacht sobald ich ihn anklicke, der Dialog läuft nebenzu weiter.
Wie kann ich das einstellen, das er erst nach dem Greeting hinfällt?

grüße bertie
 
du könntest beim Greeting nen Haken bei "End Converstion(?)" oder so machen, ich weiss grad nicht mehr wies heisst, dann wird der Dialog beendet nach dem Greeting
 
Füge doch mal dem Greeting ein Journal-Eintrag hinzu. Den wiederrum stellst du als Bedingung, damit er den Zauber bekommt oder kurzfristig stirbt.

Dann müsstest du diese Zeile noch einfügen:

Code:
if getstage QuestID == 10
 
  • Like
Reaktionen: düster-bertie
Ich habe im Laufe der nächsten Quest Stufe mein Schmiede Script von oben um 2 schmiedbare Materialien erweitert.

Nun sieht er so aus
Code:
If Step == 0
    Return
ElseIf Step == -10 && ( Player.GetStage SmithApprentice >= 25 )
    Set Step to 10
    MessageBox "Welches Rohmaterial möchtet Ihr verarbeiten?","Eisen","Feineisen",[COLOR=Blue]"Stahl"[/COLOR],[COLOR=Red]"Feinstahl"[/COLOR],"zurück"
Set Button to -1 
ElseIf Step == 10
    Set Button to GetButtonPressed
    If Button == 0 && ( Player.GetItemCount OreNugget <= 3 )
        MessageBox "Ihr besitzt nicht genug Rohmaterial!"
    Set Step to 0
    EndIf
    If Button == 0 && ( Player.GetItemCount OreNugget >= 4 )
    Player.RemoveItem OreNugget 4
    Player.AddItem WeapIronDaggerSA 1
    Set Step to 0

ElseIf Button == 1 && ( Player.GetItemCount OreNugget <= 1 ) && ( Player.GetItemCount Gem0GoldNugget <= 1 )
    MessageBox "Ihr besitzt nicht genug Rohmaterial!"
    Set Step to 0
EndIf
If Button == 1 && ( Player.GetItemCount OreNugget >= 2 ) && ( Player.GetItemCount Gem0GoldNugget >= 2 )
    Player.RemoveItem OreNugget 2
    Player.RemoveItem Gem0GoldNugget 2
    Player.AddItem WeapIronDaggerFineSA 1
    Set Step to 0
[COLOR=Blue]
ElseIf Button == 2 && ( Player.GetItemCount OreNugget <= 1 ) && ( Player.GetItemCount Gem0SilverNugget <= 1 )
    MessageBox "Ihr besitzt nicht genug Rohmaterial!"
    Set Step to 0
EndIf
If Button == 2 && ( Player.GetItemCount OreNugget >= 2 ) && ( Player.GetItemCount Gem0SilverNugget >= 2 )
    Player.RemoveItem OreNugget 2
    Player.RemoveItem Gem0SilverNugget 2
    Player.AddItem WeapSteelDaggerSA 1
    Set Step to 0[/COLOR]

[COLOR=Red]ElseIf Button == 3 && ( Player.GetItemCount OreNugget <= 1 ) && ( Player.GetItemCount Gem0SilverNugget == 0 ) && ( Player.GetItemCount Gem0GoldNugget == 0 )
    MessageBox "Ihr besitzt nicht genug Rohmaterial!"
    Set Step to 0
EndIf
If Button == 3 && ( Player.GetItemCount OreNugget >=2 ) && ( Player.GetItemCount Gem0SilverNugget >= 1 ) && ( Player.GetItemCount Gem0GoldNugget >= 1 )
    Player.RemoveItem OreNugget 2
    Player.RemoveItem Gem0SilverNugget 1
    Player.RemoveItem Gem0GoldNugget 1
    Player.AddItem WeapSteelDaggerFineSA 1
    Set Step to 0[/COLOR]

ElseIf Button == 4
    Return
EndIf
EndIf

ElseIf Step == -1
    Set Button to GetButtonPressed
    If Button == 0
        Set Step to -10
    ElseIf Button == 1
        Set Step to 0
    EndIf
EndIf
End

Eisen und Feineisen funktionieren nach wie vor. Nur was hab ich bei Button 2 und 3 also (Stahl und Feinstahl) falsch gemacht?
 
Hoch-Ordinator hat mir jetzt beim Script geholfen, der jetzt so ausschaut:

Code:
scn LUADWBjor

begin GameMode
if getstage LUADWQuest01 == 10
BjorRef.addspell LUBjorgodown
endif

[COLOR="DarkOrange"]setstage LUADWQuest01 == 20[/COLOR]

end

Wenn ich speichern will kommt die Fehlermeldung: Missing Parameter Stage

grüße bertie
 
wird dieser script funktionieren wenn ich ihn auf ein buch lege? und er auch laufen wenn ich irgendein npc schlage?

Code:
scn scriptname

begin onhit
if player.equipitem todesdolch == 1 && player.isweaponout == 1
player.kill
endif
end onhit
 
wird dieser script funktionieren wenn ich ihn auf ein buch lege? und er auch laufen wenn ich irgendein npc schlage?

Code:
scn scriptname

begin onhit
if player.equipitem todesdolch == 1 && player.isweaponout == 1
player.kill
endif
end onhit

"Begin onHit" funktioniert nur auf NPCs und Kreaturen, also nicht auf Items. Du könntest aber eventuell versuchen, einen NPC zu erstellen, mit der Mesh des Buches, auf dem dann dieses Skript liegt...
 
Ich hab mich jetzt selbst mal an einem Script versucht. Es gibt einen NPC, der soll verschwinden, nachdem man ein bestimmtes Interior betretten hat. Das ganze soll aber ohne Queststages funktionieren. Ich würde gerne wissen was ich falsch gemacht habe, da der NPC nicht mehr mit mir spricht.

Code:
scn Scriptbeispiel

begin OnActivate

if Player getincell Beispielzelle 
NPCRef.disable
endif 
end

grüße bertie