Construction Set Skriptthread zum Construction Set

Moin =)
Ich möchte, dass meine Kreaturen von Wachen und anderen normalen NPCs angegriffen werden, obwohl sie sich nicht wehren.
Bei Aggression von 0 beginnt erst gar kein Kampf, ebenso bei stopcombat.
Was tun ö.ö?
 
Du könntest den Kreaturen eine Fraktion zuordnen und die Disposition gegenüber der Wächterfraktion auf 100 (= freundlich) stellen. Den Wachen gibst du aber 0 (= feindlich). Dann sollte es eigentlich gehen :?
 
  • Like
Reaktionen: Syrws
Welchen Befehl muss ich benutzen, damit ein Script beginnt, wenn der Spieler ein Item ( beispielsweise ein Buch) aus einer Truhe nimmt?
 
dem buch den script

begin onadd

verpassen^^ (wird ausgeführt sobald ein gegenstand dem inventar hinzugefügt wird )

Das habe ich bereits ausprobiert, funktioniert aber aus irgenteinem Grund nicht! Ich habe keine Ahnung warum! An der Komlexität des Scripts kann es wohl kaum liegen, der sieht nämlich so aus:

Scn Buchscript

Begin OnAdd

SetStage 000Quest 80

End

Könnte es eventuell damit zusammen hängen, dass sich das Buch in einem Container befindet?
 
Ergänz es doch mal um die Referenz des Spielers:
Code:
scn name

short doonce

Begin onAdd player

if doonce == 0
 set doonce to 1
 setStage <Quest-ID> x
endif

end
 
  • Like
Reaktionen: Runic
Jetzt hat es seltsamer Weise funktioniert...
Aber da will ich mir jetzt nicht den Kopf drüber zerbrechen, es läuft ja alles wie es soll^^
 
Hey ich würd gerne wissen. Wie ich Die zeitbefehle benutze also Wochen,Tage,Monate. Secunden is klar mit einem timer aber wie geht das mit wochen und tage? da war doch was mit GameDay und so?:huh:

Und dann ist es mir noch ein rätzel wie ich eine Kreatur die bereits tot ist. Auferstehen lassen kann und zwar mit der dazugehörigen Animation. Mit Resurrect wird sie wiederbelebt aber wie sieht es mit der animation aus?
 
Allerdings ist mir eben aufgefallen, dass scheinbar ein paar Kreaturen diese Animation nicht haben =9
Da funktioniert resurrect 1 nicht, nur resurrect.
 
danke euch. Aber wie schreib ich das in einen script ??

ich mein ich möchte. in eine kiste jeden monat einen gegenstand hinzufügen lassen wie schreib ich das dann am besten ?
 
Ich wollte fragen, wie ich in diesen Script einen Timer von etwa 5 Sekunden eingebaut bekomme ... denn die Fokusstein-Wachen sollen nicht sofort wieder resurrected werden, sondern erst nach 5 Sekunden, da es sonst zu schwer für den Spieler wird.

Wie geht das?

Mein Code schrieb:
scn AAAyleidensphaereFokussteinScript

Begin onActivate

disable
messagebox "Sobald Eure Finger den Stein berühren zerfällt dieser zu Staub."

If AAAyleidensphaereFokusstein01.getDisabled == 1
AAAyleidensphaereFokusstein01Wache01.kill
AAAyleidensphaereFokusstein01Wache02.kill
AAAyleidensphaereFokusstein01Wache03.kill
AAAyleidensphaereFokusstein01Wache04.kill
Endif

If AAAyleidensphaereFokusstein02.getDisabled == 1

AAAyleidensphaereFokusstein02Wache01.kill
AAAyleidensphaereFokusstein02Wache02.kill
AAAyleidensphaereFokusstein02Wache03.kill
AAAyleidensphaereFokusstein02Wache04.kill

Endif
end

;############################

Begin GameMode

If AAAyleidensphaereFokusstein01.getdisabled == 0
If AAAyleidensphaereFokusstein01Wache01.getDead == 1
AAAyleidensphaereFokusstein01Wache01.resurrect 1
Endif
If AAAyleidensphaereFokusstein01Wache02.getDead == 1
AAAyleidensphaereFokusstein01Wache02.resurrect 1
Endif
If AAAyleidensphaereFokusstein01Wache03.getDead == 1
AAAyleidensphaereFokusstein01Wache03.resurrect 1
Endif
If AAAyleidensphaereFokusstein01Wache04.getDead == 1
AAAyleidensphaereFokusstein01Wache04.resurrect 1
Endif
Endif

If AAAyleidensphaereFokusstein02.getdisabled == 0
If AAAyleidensphaereFokusstein02Wache01.getDead == 1
AAAyleidensphaereFokusstein02Wache01.resurrect 1
Endif
If AAAyleidensphaereFokusstein02Wache02.getDead == 1
AAAyleidensphaereFokusstein02Wache02.resurrect 1
Endif
If AAAyleidensphaereFokusstein02Wache03.getDead == 1
AAAyleidensphaereFokusstein02Wache03.resurrect 1
Endif
If AAAyleidensphaereFokusstein02Wache04.getDead == 1
AAAyleidensphaereFokusstein02Wache04.resurrect 1
Endif
Endif

End
 
Mhm, Diarrhoe hatte da was vor einigen Seiten gepostet:

scn name

float timer
short doonce

Begin ScriptEffectUpdate

if doonce == 0
if timer < 10
set timer to (timer + ScriptEffectElapsedSeconds)
else
set doonce to 1
;Function
endif
endif

end
Den Sinn dahinter versteh ich ja, bekomms aber trotzdem nich zum laufen ^^ Testen =9
 
  • Like
Reaktionen: TheDarkRuler
@ DarkRuler 2500

Code:
[I]scn AAAyleidensphaereFokussteinScript[/I]
[I] [/I]
[I][B]float timer01[/B][/I]
[I][B]float timer02[/B][/I]
[I][B]float timer03[/B][/I]
[I][B]float timer04[/B][/I]
[I][B]float timer05[/B][/I]
[I][B]float timer06[/B][/I]
[I][B]float timer07[/B][/I]
[B]float timer08[/B]
[B][/B] 
[I]
Begin onActivate

disable
messagebox "Sobald Eure Finger den Stein berühren zerfällt dieser zu Staub."

If AAAyleidensphaereFokusstein01.getDisabled == 1
AAAyleidensphaereFokusstein01Wache01.kill
AAAyleidensphaereFokusstein01Wache02.kill
AAAyleidensphaereFokusstein01Wache03.kill
AAAyleidensphaereFokusstein01Wache04.kill
Endif

If AAAyleidensphaereFokusstein02.getDisabled == 1

AAAyleidensphaereFokusstein02Wache01.kill
AAAyleidensphaereFokusstein02Wache02.kill
AAAyleidensphaereFokusstein02Wache03.kill
AAAyleidensphaereFokusstein02Wache04.kill

Endif[/I]
[I]
end 

;############################[/I]
[I] [/I]
[I] [/I]
[I][I] [/I]
[I][B]begin ondeath AAAyleidensphaereFokusstein01Wache01[/B][/I]
[I][B]set timer01 to 5[/B][/I]
[I][B]end[/B][/I]
[I] [/I]
[/I]
[I][B]begin ondeath AAAyleidensphaereFokusstein01Wache02[/B]
[B]set timer02 to 5[/B][/I]
[I][B]end[/B][/I]
[I] [/I]
[I][B]begin ondeath AAAyleidensphaereFokusstein01Wache03
set timer03 to 5[/B][/I]
[I][B]end[/B][/I]
[I] [/I]
[I][B]begin ondeath AAAyleidensphaereFokusstein01Wache04[/B]
[B]set timer04 to 5[/B][/I]
[I][B]end[/B][/I]
[I] [/I]
[I][B]begin ondeath AAAyleidensphaereFokusstein02Wache01[/B]
[B]set timer05 to 5[/B][/I]
[I][B]end[/B][/I]
[I] [/I]
[I][B]begin ondeath AAAyleidensphaereFokusstein02Wache02[/B]
[B]set timer06 to 5[/B][/I]
[I][B]end[/B][/I]
[I] [/I]
[I][B]begin ondeath AAAyleidensphaereFokusstein02Wache03[/B]
[B]set timer07 to 5[/B][/I]
[I][B]end[/B][/I]
[I] [/I]
[I][B]begin ondeath AAAyleidensphaereFokusstein02Wache04[/B]
[B]set timer08 to 5[/B][/I]
[I][B]end[/B][/I]
[I] [/I]
[I][B];#####################################[/B][/I]
[I]
Begin GameMode

If AAAyleidensphaereFokusstein01.getdisabled == 0
If AAAyleidensphaereFokusstein01Wache01.getDead == 1[/I]
[I][B]if timer01 == 0[/B]
AAAyleidensphaereFokusstein01Wache01.resurrect 1
Endif
If AAAyleidensphaereFokusstein01Wache02.getDead == 1
AAAyleidensphaereFokusstein01Wache02.resurrect 1[/I]
[I][B]if timer02 == 0[/B]
Endif
If AAAyleidensphaereFokusstein01Wache03.getDead == 1
AAAyleidensphaereFokusstein01Wache03.resurrect 1[/I]
[I][B]if timer03 == 0[/B]
Endif
If AAAyleidensphaereFokusstein01Wache04.getDead == 1[/I]
[I][B]if timer04 == 0[/B]
AAAyleidensphaereFokusstein01Wache04.resurrect 1
Endif
Endif

If AAAyleidensphaereFokusstein02.getdisabled == 0
If AAAyleidensphaereFokusstein02Wache01.getDead == 1[/I]
[I][B]if timer05 == 0[/B]
AAAyleidensphaereFokusstein02Wache01.resurrect 1
Endif
If AAAyleidensphaereFokusstein02Wache02.getDead == 1[/I]
[I][B]if timer06 == 0[/B]
AAAyleidensphaereFokusstein02Wache02.resurrect 1
Endif
If AAAyleidensphaereFokusstein02Wache03.getDead == 1[/I]
[I][B]if timer07 == 0[/B]
AAAyleidensphaereFokusstein02Wache03.resurrect 1
Endif
If AAAyleidensphaereFokusstein02Wache04.getDead == 1[/I]
[I][B]if timer08 == 0[/B]
AAAyleidensphaereFokusstein02Wache04.resurrect 1
Endif
Endif

End[/I]
[I] [/I]

ich habs dir mal umgeschrieben. sollte dann wie gewollt funktionieren.
hab zwar jetzt sehr viele variablen driun aber solanges funktioniert ist das doch egal oider? :lol:
 
  • Like
Reaktionen: TheDarkRuler
@DarkRuler2500

Hab den Skript mal geschrieben, aber keine Garantie, dass er funktioniert. :-D

Code:
scn AAAyleidensphaereFokussteinScript

Float Timer

Begin onActivate

        disable
        messagebox "Sobald Eure Finger den Stein berühren zerfällt dieser zu  Staub."

If AAAyleidensphaereFokusstein01.getDisabled == 1
        AAAyleidensphaereFokusstein01Wache01.kill
        AAAyleidensphaereFokusstein01Wache02.kill
        AAAyleidensphaereFokusstein01Wache03.kill
        AAAyleidensphaereFokusstein01Wache04.kill
Endif

If AAAyleidensphaereFokusstein02.getDisabled == 1
        AAAyleidensphaereFokusstein02Wache01.kill
        AAAyleidensphaereFokusstein02Wache02.kill
        AAAyleidensphaereFokusstein02Wache03.kill
        AAAyleidensphaereFokusstein02Wache04.kill

Endif


end



Begin GameMode

If Timer >= 0
  Set Timer to (Timer - GetSecondsPassed)

If AAAyleidensphaereFokusstein01.getdisabled == 0
  If AAAyleidensphaereFokusstein01Wache01.getDead == 1
        Set Timer to 5

  If Timer <= 0
      AAAyleidensphaereFokusstein01Wache01.resurrect 1
Endif

If AAAyleidensphaereFokusstein01Wache02.getDead == 1
        Set Timer to 5

  If Timer <= 0
      AAAyleidensphaereFokusstein01Wache02.resurrect 1

  If AAAyleidensphaereFokusstein01Wache03.getDead == 1
        Set Timer to 5

  If Timer <= 0
      AAAyleidensphaereFokusstein01Wache03.resurrect 1
Endif

If AAAyleidensphaereFokusstein01Wache04.getDead == 1
        Set Timer to 5

  If Timer <= 0
      AAAyleidensphaereFokusstein01Wache04.resurrect 1
Endif


If AAAyleidensphaereFokusstein02.getdisabled == 0
   If AAAyleidensphaereFokusstein02Wache01.getDead == 1
        Set Timer to 5
    If Timer <= 5
        AAAyleidensphaereFokusstein02Wache01.resurrect 1
Endif

   If AAAyleidensphaereFokusstein02Wache02.getDead == 1
        Set Timer to 5
    If Timer <= 5
        AAAyleidensphaereFokusstein02Wache02.resurrect 1
Endif


   If AAAyleidensphaereFokusstein02Wache03.getDead == 1
        Set Timer to 5
    If Timer <= 5
        AAAyleidensphaereFokusstein02Wache03.resurrect 1
Endif


   If AAAyleidensphaereFokusstein02Wache04.getDead == 1
        Set Timer to 5
    If Timer <= 5
        AAAyleidensphaereFokusstein02Wache04.resurrect 1
Endif


End
mfg
Kahmul

EDIT: Mist, Zweiter. :( :-D
 
Zuletzt bearbeitet:
  • Like
Reaktionen: TheDarkRuler
Danke sehr. Das mit den Variablen macht nichts, denn ich hab' mir schon fast gedacht, dass es nur so geht, wenn die Kreaturen einzeln auferstehen sollen.

Aber ein paar kleine Schnitzer waren in dem Script trotzdem drinnen, die aber kaum der Rede wert waren (unterstrichene Sequenzen ...)

scn AAAyleidensphaereFokussteinScript

float timer01
float timer02
float timer03
float timer04
float timer05
float timer06
float timer07
float timer08


Begin onActivate

disable
messagebox "Sobald Eure Finger den Stein berühren zerfällt dieser zu Staub."

If AAAyleidensphaereFokusstein01.getDisabled == 1
AAAyleidensphaereFokusstein01Wache01.kill
AAAyleidensphaereFokusstein01Wache02.kill
AAAyleidensphaereFokusstein01Wache03.kill
AAAyleidensphaereFokusstein01Wache04.kill
Endif

If AAAyleidensphaereFokusstein02.getDisabled == 1

AAAyleidensphaereFokusstein02Wache01.kill
AAAyleidensphaereFokusstein02Wache02.kill
AAAyleidensphaereFokusstein02Wache03.kill
AAAyleidensphaereFokusstein02Wache04.kill

Endif


end

;############################




begin ondeath AAAyleidensphaereFokusstein01Wache01
set timer01 to 5
end


begin ondeath AAAyleidensphaereFokusstein01Wache02
set timer02 to 5

end

begin ondeath AAAyleidensphaereFokusstein01Wache03
set timer03 to 5

end

begin ondeath AAAyleidensphaereFokusstein01Wache04
set timer04 to 5

end

begin ondeath AAAyleidensphaereFokusstein02Wache01
set timer05 to 5

end

begin ondeath AAAyleidensphaereFokusstein02Wache02
set timer06 to 5

end

begin ondeath AAAyleidensphaereFokusstein02Wache03
set timer07 to 5

end

begin ondeath AAAyleidensphaereFokusstein02Wache04
set timer08 to 5

end

;#####################################

Begin GameMode

If AAAyleidensphaereFokusstein01.getdisabled == 0
If AAAyleidensphaereFokusstein01Wache01.getDead == 1

if timer01 == 0
AAAyleidensphaereFokusstein01Wache01.resurrect 1
Endif
If AAAyleidensphaereFokusstein01Wache02.getDead == 1
AAAyleidensphaereFokusstein01Wache02.resurrect 1

if timer02 == 0
Endif
If AAAyleidensphaereFokusstein01Wache03.getDead == 1
AAAyleidensphaereFokusstein01Wache03.resurrect 1

if timer03 == 0
Endif
If AAAyleidensphaereFokusstein01Wache04.getDead == 1

if timer04 == 0
AAAyleidensphaereFokusstein01Wache04.resurrect 1
Endif
Endif

If AAAyleidensphaereFokusstein02.getdisabled == 0
If AAAyleidensphaereFokusstein02Wache01.getDead == 1

if timer05 == 0
AAAyleidensphaereFokusstein02Wache01.resurrect 1
Endif
If AAAyleidensphaereFokusstein02Wache02.getDead == 1

if timer06 == 0
AAAyleidensphaereFokusstein02Wache02.resurrect 1
Endif
If AAAyleidensphaereFokusstein02Wache03.getDead == 1

if timer07 == 0
AAAyleidensphaereFokusstein02Wache03.resurrect 1
Endif
If AAAyleidensphaereFokusstein02Wache04.getDead == 1

if timer08 == 0
AAAyleidensphaereFokusstein02Wache04.resurrect 1
Endif
Endif

End
scn AAAyleidensphaereFokussteinScript

float timer01
float timer02
float timer03
float timer04
float timer05
float timer06
float timer07
float timer08


Begin onActivate

disable
messagebox "Sobald Eure Finger den Stein berühren zerfällt dieser zu Staub."

If AAAyleidensphaereFokusstein01.getDisabled == 1
AAAyleidensphaereFokusstein01Wache01.kill
AAAyleidensphaereFokusstein01Wache02.kill
AAAyleidensphaereFokusstein01Wache03.kill
AAAyleidensphaereFokusstein01Wache04.kill
Endif

If AAAyleidensphaereFokusstein02.getDisabled == 1

AAAyleidensphaereFokusstein02Wache01.kill
AAAyleidensphaereFokusstein02Wache02.kill
AAAyleidensphaereFokusstein02Wache03.kill
AAAyleidensphaereFokusstein02Wache04.kill

Endif

end

;############################



begin ondeath AAAyleidensphaereFokusstein01Wache01
set timer01 to 5
end


begin ondeath AAAyleidensphaereFokusstein01Wache02
set timer02 to 5
end

begin ondeath AAAyleidensphaereFokusstein01Wache03
set timer03 to 5
end

begin ondeath AAAyleidensphaereFokusstein01Wache04
set timer04 to 5
end

begin ondeath AAAyleidensphaereFokusstein02Wache01
set timer05 to 5
end

begin ondeath AAAyleidensphaereFokusstein02Wache02
set timer06 to 5
end

begin ondeath AAAyleidensphaereFokusstein02Wache03
set timer07 to 5
end

begin ondeath AAAyleidensphaereFokusstein02Wache04
set timer08 to 5
end

;#####################################

Begin GameMode

If AAAyleidensphaereFokusstein01.getdisabled == 0

If AAAyleidensphaereFokusstein01Wache01.getDead == 1
if timer01 == 0

AAAyleidensphaereFokusstein01Wache01.resurrect 1

Endif
Endif

If AAAyleidensphaereFokusstein01Wache02.getDead == 1
if timer02 == 0

AAAyleidensphaereFokusstein01Wache02.resurrect 1

Endif
Endif

If AAAyleidensphaereFokusstein01Wache03.getDead == 1
If timer03 == 0

AAAyleidensphaereFokusstein01Wache03.resurrect 1

Endif
Endif

If AAAyleidensphaereFokusstein01Wache04.getDead == 1
if timer04 == 0

AAAyleidensphaereFokusstein01Wache04.resurrect 1

Endif
Endif
Endif


If AAAyleidensphaereFokusstein02.getdisabled == 0
If AAAyleidensphaereFokusstein02Wache01.getDead == 1
if timer05 == 0

AAAyleidensphaereFokusstein02Wache01.resurrect 1

Endif
Endif

If AAAyleidensphaereFokusstein02Wache02.getDead == 1
if timer06 == 0

AAAyleidensphaereFokusstein02Wache02.resurrect 1

Endif
Endif

If AAAyleidensphaereFokusstein02Wache03.getDead == 1
if timer07 == 0

AAAyleidensphaereFokusstein02Wache03.resurrect 1

Endif
Endif

If AAAyleidensphaereFokusstein02Wache04.getDead == 1
if timer08 == 0

AAAyleidensphaereFokusstein02Wache04.resurrect 1

Endif
Endif
Endif

End
 
Vielleicht könnt ihr ja auch mir helfen =]?
Ich bekomm es ums verrecken nicht in meinen Zauber eingebaut:
scn syZOMBscriptS1

float xpos
float ypos
float zpos
ref zombie
short body
short corpse
short humanoid
short spawned
short spellfail

begin scripteffectstart
set xpos to getpos x
set ypos to getpos y
set zpos to getpos z

if getdead
set corpse to 1
endif

if getisplayablerace ;getisrace 00023FE9 || getisrace 000224FC || getisrace 000191C1 || getisrace 00019204 || getisrace 00000907 || getisrace 000223C7 || getisrace 000224FD || getisrace 000191C0 || getisrace 00000D43 || getisrace 0005308E || getisrace 00000019 || getisrace 000223C8
set humanoid to 1
endif

if syZOMBissummoned == syZOMBmaxsummoned
set spellfail to 1
endif
end

begin scripteffectfinish
if corpse == 1 && humanoid == 1 && spawned == 0 && spellfail == 0
set body to 1 + 0.02 * GetRandompercent
if body == 1
set zombie to PlaceAtMe syZOMBcreatureTEST
elseif body == 2
set zombie to PlaceAtMe syZOMBcreatureTEST ;andere zombies einsetzen
endif
disable
zombie.setpos x xpos
zombie.setpos y ypos
zombie.setpos z zpos
set syZOMBissummoned to syZOMBissummoned + 1
set syZOMBissummoned to syZOMBissummonedC1 + 1
set spawned to 1
endif
endif

if spellfail == 1
messagebox "Du kannst keine weiteren Untoten mehr erschaffen", "Ok"
endif
end
Kann mir da jemand helfen =9?
Das Script ist soweit korrekt, nicht wundern.
Der Zombie soll allerdings erst nach 5sek spawnen...

Gruß,
Syrws
 
Und ich hab auch eine Frage, und ich glaube fast, dass sie schonmal gestellt wurde. Ich bin aber einfach zu faul, die ganzen Seiten hier durchzublättern, dass ich ganz dreist nochmal frage:

Erstens müsste der Spieler, nachdem er einen gewissen Text gelesen hat, einen Zauber bekommen. Ob man dafür ein Script brauch, weiß ich nicht, da ich nicht weiß, was der zweite Teil erfordert..

Denn..

Zweitens: Ein bestimmtes Wesen soll mächtig an Health verlieren, wenn es mit dem neu erlangten Zauber in Verbindung gerät. Schwerthiebe sollen also eigentlich so gut wie gar nichts (Oder eben überhaupt nichts) bringen, und nur dieser eine Zauber soll eine derartige Wirkung haben.

Ist das überhaupt möglich?

Danke schonmal jetzt,

MadHatter :)
 
Is schon Möglich. Allderings, und wie du schon richtig spekuliert hast, benötigt man scripts.

Für den Text ist es eig. relativ simpel du nimmst dafür den befehl "Player.Addspell" das ganze sieht dan so aus

SCN Script Name

Short Doonce

Begin onActivate

If Doonce == 0

Player.AddSpell (hier die Id des zaubers eingeben)

Set Doonce to 1

Endif
End

Sollte eigendlich funktionieren.
 
  • Like
Reaktionen: MadHatter16