Construction Set CS Fragen für Nachtschatten-Legion

Nachtmahr

Abenteurer
Achtung, dies ist kein Diskusionsthreat zu der Nachtschatten-Legion, wer dazu etwas sagen möchte, postet das in den Mod-Projekt Threat...

Wie wahrscheinlich einige User mitbekommen haben, arbeite ich an einem Kaiserliche-Legionsmod, die Nachtschatten-Legion.
Da ja keiner allwissend ist, habe ich hier einen Frage-Sammel-Threat eröffnen, damit ich nicht bei jeder Frage einen neuen öffnen muss...

Zu meiner 1. Frage:

Ich möchte, dass ein Charakter nach einem Dialog das Gespräch beendet und einen in eine andere Zelle teleoprtiert, dass macht man mit x-markern und player.moveto, aber ich möchte auch, dass wie in dem Sanguine-Quest sämtliche Gegenstände entfernt werden und in eine Truhe gepackt werden, bei der man am ende die Sachen wiederbekommt, doch ich hab keinen Plan, wie man sowas macht, habe zu Verdeutlichung mal den script des "Die nackte Wahrheit" hier hereingeschrieben:

scn DASanguineSpell

short baseenergy
ref LOSCheck

Begin ScriptEffectStart
;MessageBox "THE SPELL SHOULD BE WORKING"
if ( GetInFaction LeyawiinGuards == 0 ) && ( GetinFaction DASanguineNakedFACTION == 1 )
Set DASanguine.target to GetSelf
;Set LOSCheck to GetSelf
;if ( player.GetLOS LOSCheck == 1 ) && ( player.GetDistance DASanguineSpellDistanceREF <= 1000 )
if ( GetSelf !=alessiaCaroREF )
;RemoveAllItems
else
;RemoveAllItems DASanguineChest2
endif
if ( DASanguine.SpellWorking == 0 )
set DASanguine.SpellWorking to 1
endif
AddScriptPackage DASanguineStarkPackage
Set baseenergy to GetAV Energy
SetAV Energy 100
;endif
endif

End

Begin ScriptEffectFinish
SetAV Energy baseenergy
set DASanguine.spelldone to 1
;RemoveScriptPackage DASanguineStarkPackage
AlessiaCaroREF.AddScriptPackage DASanguineCaroGetClothes
End

Kann irgendwer mir helfen? Bitte :poeh:
 
Zerlix schrieb:
Es gibt die Funktion RemoveAllItems

Code:
MyNpcRef.RemoveAllItems   TruheRef, 1
und beim zurückgeben machst das einfach umgekehrt
Code:
TruheRef.RemoveAllItems  MyNPCRef, 1

Grüsse Zerlix

Kannre ich garnicht, also muss man nur der Truhe, wo das Zeug reinsoll eine Ref geben und dann als Script an den Stage dranhängen oder direkt in die Result-Script box in den Dialogen?

Hab jetzt wieder ne neue Frage:

Ich möchte, dass ein Gegner nur mit einer bestimmten Waffe getötet werden kann, wie mach ich das
 
Zuletzt bearbeitet:
Wo du das reinbaust bleibt dir überlassen, ich würde aber ein "Queststage-Script" bevorzugen. Kommt halt auf die Umstände an.



Grüsse Zerlix
 
Zuletzt bearbeitet:
Ops die 2. Frage habsch komplett übersehen ;)

Du könntest folgendes Probieren. Das Script muss natürlich auf deinen NPC.
Jedesmal wenn der NPC getroffen wird und der Spieler das Schwert nicht in der Hand hat. Bekommt der NPC seine "Lebenspunkte" wieder zurück.
Code:
begin OnHit
     if ( Player.GetEquipped MeinSchwertID != 1 )
        ResetHealth
     endif
end
 
ZerlixEditedScript schrieb:
begin OnHit
if ( Player.GetEquipped MeinSchwertID != 1 )
Set Health to 0
endif
end
[/code]
Meinte, dass er, wenn er von der Waffe getroffen wird, abkratzt, weil es in diesem Quest keine andere Waffe geben wird und wenn z.b. ein Schwertnoob sich dann einen Bogen besorgt, mit dem er Meister ist, sich ganz leicht die Belohnug erschummel kann, könnte man den Script so verwenden?
 
Neue Fragen:

Ich möchte ein Tier als einen Activator definieren und wenn man es aktiviert,
dass dan eine Textmessage (Keine BOX) erscheint und ein Soundfile erscheint, gegebenfalls sogar mit Stage, wie und überhaupt kann ich das machen?
 
Code:
Begin OnActivate
      message "Irgendwas ...."
    [URL="http://cs.elderscrolls.com/constwiki/index.php/StreamMusic"]StreamMusic "data\music\special\success.mp3"[/URL]
      setStage QuestID 50
end

Willst du einen Soundeffect abspielen der im Editor zu finden ist musst du die funktion verwenden
Code:
      [URL="http://cs.elderscrolls.com/constwiki/index.php/PlaySound"]PlaySound SoundID[/URL]


Grüsse Zerlix
 
  • Like
Reaktionen: Nachtmahr
Zerlix schrieb:
Code:
Begin OnActivate
      message "Irgendwas ...."
    [URL="http://cs.elderscrolls.com/constwiki/index.php/StreamMusic"]StreamMusic "data\music\special\success.mp3"[/URL]
      setStage QuestID 50
end

Willst du einen Soundeffect abspielen der im Editor zu finden ist musst du die funktion verwenden
Code:
      [URL="http://cs.elderscrolls.com/constwiki/index.php/PlaySound"]PlaySound SoundID[/URL]


Grüsse Zerlix
Gilt das auch für Tiere?
 
Was meinst du mit Tiere ? Mit normale Creaturen sollte das gehen.
Teste es einfach und meld dich wieder wenn es nicht klapp ;)

Grüsse Zerlix
 
Nun möchte ich eine Tür erstellen, die wenn man sie Aktiviert, erst einen Soundfile hören lässt und dann erst lädt (in ein Interior) und dass nur 1 Mal...
Kann ich dass irgendwie umsetzten?
 
Musst mal ausprobieren so könnte das klappen. nachdem die Tür aktiviert wurde dauert es 5 Sekunden bis der Spieler "Telepotiert" wird.
Ich hab jetzt einfach mal 5 Sekunden angenommen, das musst du halt auf die länge des Soundfiles anpassen. "if ( Timer >= 5 )"

Code:
float Timer
short DoorActivate
short doOnce
short SoundPlay 

Begin onActivate
        if ( DoorActivate == 1 )
           Activate 
        else
            set DoorActivate to 1
        endif  
end

Begin GameMode

      if ( (doOnce != 1) && (DoorActivate == 1) )
         
         if ( SoundPlay != 1)
            playsound SoundID
            set SoundPlay to 1   
         endif 

         set Timer to Timer + getsecondspassed
         if ( Timer >= 5 ) 
            set doOnce to 1 
            Activate 
         endif 

     endif          

end
 
Zuletzt bearbeitet:
Nachtmahr schrieb:
Nun möchte ich eine Tür erstellen, die wenn man sie Aktiviert, erst einen Soundfile hören lässt und dann erst lädt (in ein Interior) und dass nur 1 Mal...
Kann ich dass irgendwie umsetzten?
Ich arbeite gerade an einem Projekt, bei dem ich genau dasselbe haben wollte. Kann man das irgendwie umsetzen? Ja, definitiv!

Zerlixs Code habe ich gerade nur überflogen, es kann natürlich sein, dass der schon genau das so macht, wie du das haben willst. Einfach nur als Alternative hier mal mein Script, da das wie gesagt bei mir im Mod von mir bereits getestet wurde und funktioniert:

Code:
scn PS02PlayerExitDoorScript

short DoOnce
float timer

- - -

begin OnActivate

if ( DoOnce == 0 )
    set DoOnce to 1
    set timer to 1
    disableplayercontrols      ;muss natürlich nicht sein, aber dann kann der Spieler nicht erst noch 100 KM weglaufen, bevor er teleportiert wird
    PlaySound xxxx
endif

end

- - - - -

begin GameMode

if ( timer != 0 )
    if ( timer <= 15 )  ;der timer sollte der Länge der Sounddatei entsprechen. 15 ist also 15 Sekunden, muss aber angepasst werden
        set timer to timer + GetSecondsPassed
    else
        set timer to 0
        enableplayercontrols
;       Player.MoveTo PS03PlayerStartMarker      ;das steht in meinem Script, ein Teleport. Aber activate sollte ebenso funktionieren
        Activate 
    endif
endif

end
 
Hellion schrieb:
Ich arbeite gerade an einem Projekt, bei dem ich genau dasselbe haben wollte. Kann man das irgendwie umsetzen? Ja, definitiv!

Zerlixs Code habe ich gerade nur überflogen, es kann natürlich sein, dass der schon genau das so macht, wie du das haben willst. Einfach nur als Alternative hier mal mein Script, da das wie gesagt bei mir im Mod von mir bereits getestet wurde und funktioniert:

Code:
scn PS02PlayerExitDoorScript

short DoOnce
float timer

- - -

begin OnActivate

if ( DoOnce == 0 )
    set DoOnce to 1
    set timer to 1
    disableplayercontrols      ;muss natürlich nicht sein, aber dann kann der Spieler nicht erst noch 100 KM weglaufen, bevor er teleportiert wird
    PlaySound xxxx
endif

end

- - - - -

begin GameMode

if ( timer != 0 )
    if ( timer <= 15 )  ;der timer sollte der Länge der Sounddatei entsprechen. 15 ist also 15 Sekunden, muss aber angepasst werden
        set timer to timer + GetSecondsPassed
    else
        set timer to 0
        enableplayercontrols
;       Player.MoveTo PS03PlayerStartMarker      ;das steht in meinem Script, ein Teleport. Aber activate sollte ebenso funktionieren
        Activate 
    endif
endif

end

LOL, wollte gerade fragen mit welchem Befehl ich die Kontrolle über den Spieler deaktiviren kann, bis der Soundfile zuende ist^^