Construction Set Skriptthread zum Construction Set

Und wie wird das beim Vampirismus dann gemacht? Da werden die Augen doch auch rot....
 
sollte funktionieren^^

Lass das sollte getrost weg. Es funktioniert alles tadellos.
Hier kannste übrigens sehen, was ich mit deiner Hilfe hinbekommen habe :D

Aber zwei Sachen würde ich gerne noch verbessern.
a) Die Messages, welche dem Spieler sagen, dass der Gegner verstorben ist, treten nicht beim Tod des Targets auf, sondern erst, wenn ich den bereits toten Gegner damit belege. Wie krieg ich das umgestellt?
b) Wie man im Code unten sehen kann, sind dort viele Zeilen unnötig gesetzt worden. Daher ... wie schreibt man ein "oder" in CS-Sprache? Die Syntax für "und" kenne ich ja schon, aber "oder" ist mir noch nicht geläufig.
scn AAFlammeDerLaeuterung

ref target

float timer

;#######################
;Beginn des Script-Effektes
;#######################

begin scripteffectstart

set target to getself

if target.getinfaction vampirefaction ==1
target.addspell AAFlammeDerLaeuterungEigenschaftVampir
target.pms SE06FlameOfAgnonEffect

If target.getDead == 1
message "Die Bosheit des Vampirismus wurde durch die Flamme verzehrt ..."
Endif
endif

if target.getinfaction UndeadFaction == 1
target.addspell AAFlammeDerLaeuterungEigenschaftUntote
target.pms SE06FlameOfAgnonEffect

If target.getDead == 1
message "Der Untod wurde durch die Flamme vernichtet ..."
Endif
endif

if target.getinfaction AAUralteLegionTorwaechter== 1
target.addspell AAFlammeDerLaeuterungEigenschaftUntote
target.pms SE06FlameOfAgnonEffect

If target.getDead == 1
message "Das Daedrische dieses Wesens wurde zu Asche verbrannt ..."
Endif
endif

if target.getinfaction AAUtarionFraktion == 1
target.addspell AAFlammeDerLaeuterungEigenschaftUntote
target.pms SE06FlameOfAgnonEffect

If target.getDead == 1
message "Der Untod wurde durch die Flamme vernichtet ..."
Endif
endif

if target.getinfaction AAUralteLegion == 1
target.addspell AAFlammeDerLaeuterungEigenschaftUntote
target.pms SE06FlameOfAgnonEffect

If target.getDead == 1
message "Der Untod wurde durch die Flamme vernichtet ..."
Endif
endif

if target.getinfaction DaedraFaction == 1
target.addspell AAFlammeDerLaeuterungEigenschaftDaemon
target.pms SE06FlameOfAgnonEffect

If target.getDead == 1
message "Das Daedrische dieses Wesens wurde zu Asche verbrannt ..."
Endif
endif

if target.getinfaction AAUralteLegionFlammendaemonen == 1
target.addspell AAFlammeDerLaeuterungEigenschaftDaemon
target.pms SE06FlameOfAgnonEffect

If target.getDead == 1
message "Das Daedrische dieses Wesens wurde zu Asche verbrannt ..."
Endif
endif

end

;###########################
;Auffrischung des Script-Effektes
;###########################

begin ScriptEffectUpdate
; make sure flame effect continues playing even after fast travel
; every few seconds, restart flame effect
if timer > 0
set timer to timer - ScriptEffectElapsedSeconds
else
sms SE06FlameOfAgnonEffect
pms SE06FlameOfAgnonEffect
set timer to 5
endif
end

;######################
;Ende des Script-Effektes
;######################

begin scripteffectfinish

target.sms SE06FlameOfAgnonEffect

target.removespell AAFlammeDerLaeuterungEigenschaftVampir

set target to 0
end
 
Zuletzt bearbeitet:
So jetzt bräuchte ich mal wieder ein Script wenn ich durch eine Tür gehe dass dan der quest reyhauptquartierfinden auf 10 gesetzt wird
 
Wie würdest du den Script denn gerne haben?
Dass er ausgelöst wird, sobald du die Tür aktivierst, oder sobald du drinnen bist?

:bye:

EDIT:
Das würde dann so aussehen ...
Türscript
Code:
scn <Scriptname>
 
 short doonce
 
 Begin onActivate
 
 If doonce == 0
 SetStage reyhauptquartierfinden 10
 set doonce to 1
Endif

End

TriggerBox-Script
Code:
scn <Scriptname>

short doonce

Begin onTrigger player
If doonce == 0
SetStage reyhauptquartierfinden 10
set doonce to 1
Endif

End

Da ich allerdings noch kein Experte auf dem Gebiet des Scriptens bin, wäre es gut, wenn das jemand bestätigen könnte.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: 1 Person
@ Reybourne:

Entweder:

Code:
SCN ...

Short DoOnce

Begin OnActivate

If IsActionRef Player == 1
   If DoOnce == 0
        SetStage <Quest> xx
        Set DoOnce to 1

   Endif


End
Oder:

Code:
SCN ...

Short Triggered

Begin OnTriggerActor Player

If Triggered == 0
        SetStage <Quest> xx
        Set Triggered to 1

   Endif


End
mfg
Kahmul

EDIT: Mist, Zweiter. :?
 
  • Like
Reaktionen: 1 Person
Siehe oben :D
Naja, wir haben beide was gewusst :D

Code:
scn <Scriptname>

short doonce

Begin OnActivate

If doonce == 0
If IsActionRef Player == 1
SetStage reyhauptquartierfinden 10
set doonce to 1
Endif
Endif

End

So besser?
 
  • Like
Reaktionen: 1 Person
So gleich die nächste Frage ist es per Script möglich dass der Player zufällig von NPC's angegriffen wird. Also das man schläft z.b. und das man dann auf einmal angegriffen wird
 
Das müsste möglich sein, allerdings wüsste ich jetzt nur einige Aspekte dieses Scripts.

Du könntest dem Spieler vorgaukeln, er würde schlafen, wenn du ein Bett nimmst und es als Activator benutzt.

Dann machst du folgenden Script.
Code:
scn <Scriptname>

short doonce

Begin OnActivate

If doonce == 0

<Angreifer-ID>.StartCombat player
;Wenn du mehrere Angreifer hier hast, musst du einfach mehrere IDs eingeben
set doonce to 1

Endif
End
 
  • Like
Reaktionen: 1 Person
Das Skript kannst du mit IsPCSleeping, WakeUpPC und GetRandomPercent schreiben. Die NPC`s tust du dann einfach enablen und mit "<NPC-Ref>.startcombat player" lässt du sie angreifen.
Hat ja schon DarkRuler geschrieben.
Alle benötigten Informationen findest du in den Links. ;)

mfg
Kahmul
 
Zuletzt bearbeitet:
  • Like
Reaktionen: 1 Person
Wieder einmal ergänzen wir uns, Kahmul :D
Code:
scn <Scriptname>

short doonce
short schlafbestaetigung
short aufwachbestaetigung

Begin OnActivate

If isPCsleeping == 1
set schlafbestaetigung to 1
Endif

If schlafbestaetigung == 1
WakeUpPC ;Der Spieler wacht auf
set aufwachbestaetigung to 1
Endif

If doonce == 0
If aufwachbestaetigung == 1
If getRandomPercent >= 50
<Angreifer-ID>.enable
<Angreifer-ID>.StartCombat player
;Wenn du mehrere Angreifer hier hast, musst du einfach mehrere IDs eingeben
set doonce to 1
Else
;Wenn was sein soll, wenn keine Angreifer kommen, muss das hier rein
Endif
Endif
Endif

End
Das ist wohlgemerkt völliges Neuland für mich, weil ich mit solchen Scripts noch nichts zu tun gehabt habe, besonders mit der von Kahmul verlinkten Syntax. Vieleicht kann's ja einer besser :D

:bye:
 
  • Like
Reaktionen: 1 Person
Ich habe mich mal gerade mit GetRandomPercent auseinandergesetzt und das ist ziemlich kompliziert. :-D
Einfacher würde es mit Rand gehen, aber das ist ein OBSE-Befehl und ich weis nicht, ob du das willst, Rey. :?
Ich versuche gleich mal ein Skript zu schreiben. Ich editier ihn dann hier rein.

mfg
Kahmul
 
  • Like
Reaktionen: 1 Person
danke schonmal
Ich meinte aber eher zufällig, also bei einer chance von 10% wird man angegriffen oder so
 
Genau das wird ja mit GetRandomPercent oder Rand festgelegt. ;)
Ich schreibe jetzt erstmal ein Skript mit Rand, braucht zwar OBSE, ist aber leichter zu verstehen.

mfg
Kahmul

EDIT: Habe das Skript geschrieben. Braucht aber OBSE, also musst du das CS auch mit OBSE starten.

Bevor du das Skript einfügen kannst, musst du eine leere Zelle erstellen und dort die NPC`s reintun. Dann gibst du jedem NPC eine Ref. Diese tust du dann im entsprechenden Abschnitt im Skript einfügen.
So. Nun das Skript:

Code:
SCN ...

Float Random
Float fQuestDelayTime

Short DoOnce

Begin GameMode

If fQuestDelayTime != 0.001
        set fQuestDelayTime to 0.001

   Endif


If DoOnce == 0
        set Random to Rand 1 10
        set DoOnce to 1

ElseIf DoOnce == 2
        set DoOnce to 0

    Endif


If IsPCSleeping == 1

     If Random <= 2
             return


     ElseIf Random >= 3 && <= 5
             return


     ElseIf Random >= 5 && <= 7
             return



     ElseIf Random >= 7 && <= 9
             return


     ElseIf Random >= 10
             WakeUpPC

             ; NPC-Ref`s moveTo Player. Syntax: "<Npc-Ref>.moveTo Player"

             ; NPC-Ref`s startcombat Player. Syntax: "<Npc-Ref>.startCombat Player"

             set DoOnce to 2


       Endif



End
 
Zuletzt bearbeitet:
  • Like
Reaktionen: 1 Person
Ich war wieder zu langsam während ich noch geschrieben hab hast du gepostet :)
das mit obse ist nich schlimm sollte eh jeder haben
/Edit wird nachher eingefügt das CS regt mich grad schon wieder auf hatte grad 4quests fertig zack abgekackt :(
 
Zuletzt bearbeitet von einem Moderator: