Construction Set Skriptthread zum Construction Set

So, ich bins mal wieder :)

Also, worum geht's diesmal? Stellen wir uns folgende Situation vor: Der Spieler befindet sich in einer Ayleiden Ruine. Er geht einen geraden Gang entlang, plötzlich verwackelt der Bildschirm, vor ihm erscheint ein "Zombie", dieser rennt auf ihn zu, und verschwindet wieder, mit dem selben Wackeleffekt.

Ich hatte mir überlegt, das mit zwei Triggern zu machen. Den ersten durchläuft der Spieler. Dadurch wird an einem bestimmten Punkt dieser Zombie "hingestellt", und wenn dieser einen weiteren Trigger durchläuft, verschwindet er.

Also: S (Spieler) Z (Zombie)

S _____ leerer Gang

S_____Z (Mein Gott, ein Zombie taucht aus dem Nichts auf!)

S__Z__ (Zombie rennt auf Spieler zu)

S_____ (Zombie verschwindet)

Ist es machbar?

Bei dem Effekt habe ich an den gedacht, der auch benutzt wird, wenn Felsbrocken in Höhlen von der Decke fallen.
Wäre nett, wenn sich jemand dessen annimmt :)
 
Zuletzt bearbeitet:
@MadHatter16:

Man müsste zuerst den Zombie an gewünschter Stelle platzieren, dann doppelklick auf ihn machen und oben die Ref. eingeben und dann einen Haken bei "Intiallisy Disablet" (oder so ähnlich) machen.
Dann die Trigger noch an die gewünschten Stellen schieben. So. Jetzt zu den Skripts:

Player-Trigger:

Code:
scn ...

Short Triggered

Begin OnTriggerActor Player

  If Triggered == 0
    set Triggered to 1
     TriggerHitShader x ; Stärke des "Verwackelns"
      <ZombieRef>.enable
    endif
end
Jetzt der Zombie-Trigger:

Code:
scn ...

Short Triggered

Begin OnTriggerActor <ZombieID>

  If Triggered == 0
     set Triggered to 1
       TriggerHitShader x
        <ZombieRef>.disable
     endif
end
Hoffentlich ist alles verständlich. :)

mfg
Kahmul
 
hey leute ich wollte en script schreiben aber weis nicht ganz wie ich das anfangen soll. Also soll so ne art "Blutrausch" werden ^^ wen der player einen Npc getötet hatt soll ihm ein zauber hinzugefügt werden. Ein dauernder effect bei dem er z.b.: Stärker wird oder andere attribute verstärkt werden. Wie man das in einen script fasst ist mir unklar :huh:

Nach ca. 20 sec. soll dieser andauernde Effect wieder verschwinden (was warscheinlich mit einem Timer gelöst wird). Es sei denn er hat in diesen 20 sec. einen weiteren Npc getötet. Ist dem so wird der Timer auf null gesetzt, nachdem er mindest Drei gegner getötet hat wird der Aktive Effect durch einen anderen ersetzt. Dieser bringt nun noch mehr Stärke oder was auch immer. So soll das ganze weiter gehen immer in abständen von drei gegnern. so dass ich Beliebig viele effecte erstellen kann.

Hoffe ich habe mich verständlich ausgedrückt, vielen dank für die hilfe schonmal im voraus. :)

MFG Raist
 
Den ersten Teil hab ich auf jeden Fall verstanden. Das ließe sich in etwa so machen. Das Skript musst du als Quest-Skript abspeichern.
Code:
scn name

float fQuestDelayTime
float timer

long PeopleKill
long PeopleKilled

short spell

Begin GameMode

if fQuestDelayTime != 0.2
 set fQuestDelayTime to 0.2
endif

set PeopleKill to getPCMiscStat 6
if spell == 0
 if PeopleKill > PeopleKilled
  set timer to 20
  set spell to 1
  player.addSpell <Blutrausch>
 endif
else
 if timer > 0
  set timer to (timer - getSecondsPassed)
 else
  set spell to 0
  player.removeSpell <Blutrausch>
 endif
endif
set PeopleKilled to PeopleKill

end
 
  • Like
Reaktionen: Raistlin
Hallo,

kann mir vllt. jemand sagen, wie ich ein script mache, was folgendes bewirken soll:

Wenn man sich in ein bestimmtes Bett schalfen legt, soll sich danach eine Tür öffnen (Secret Wall). Dann solls eben noch eine Message Box geben.


MfG manniL
 
Hallo ich habe auch mal wieder eine Frage:

ich möchte gerne zwei shader in zeitlicher Abfolge haben
d.h. zum Beispiel
pms effectAtronachFlame 30
und ab der 25 Sec soll noch zusätzlich der zweite Shader erscheinen.

Geht so etwas? Danke für die Hilfe.
 
@ manniL:
Das könntest du in etwa so schreiben:
Code:
scn name

short activated

long sleepHours
long sleptHours

Begin onActivate

if isActionRef player == 1
 if activated == 0
  set sleptHours to getPCMiscStat 20
  set activated to 1
 endif
endif
activate
return

end

Begin GameMode

if activated == 1
 set sleepHours to getPCMiscStat 20
 if sleepHours > sleptHours
  set activated to 2
  <Secret-Wall-Ref>.activate 1
 else
  set activated to 0
 endif
endif

end
Das Skript muss natürlich auf das Bett.

@ Meclaton:
Dafür kannst du einen einfachen Timer benutzen:
Code:
scn name

float timer
short shader

Begin onLoad/onActivate/...

if shader == 0
 pms effectAtronachFlame 30
 set timer to 25
 set shader to 1
endif

end

Begin GameMode

if shader == 1
 if timer > 0
  set timer to (timer - getSecondsPassed)
 else
  pms <Shader-ID>
  set shader to 2
 endif
endif

end
 
  • Like
Reaktionen: manniL und Meclaton
ich weiß nicht das funktioniert i-wie nicht? habs als quest script abgespeichert und den zauber eingefügt aber ich kann soviele leute töten wie ich will ^^
 
Ich bin gerade dabei, eine Art extremste Herausforderung zu erstellen. Darin soll ein Skript folgendermaßen agieren:

  • Es gibt einen Activator, welchen man auswählen muss und der daraufhin ins Inventar wandert.
  • Solange der Activator noch in der Welt existiert, sollen die Gegner resurrect werden.
Außerdem habe ich noch ein anderes Problem mit dem resurrect-Script, welcher mir vor einigen Seiten empfohlen wurde.
scn AAWaechterZeitEigenschaften

float timer

Begin onDeath

KristallwacheLicht.kill
KristallwacheDunkelheit.kill
KristallwacheDaemmerung.kill

end

Begin GameMode

if getDead == 1
return
endif

if timer >= 0
set timer to (timer - getSecondsPassed)
else
set timer to 25
if KristallwacheLicht.getDead == 1 ; Waechter des Lichtes
KristallwacheLicht.resurrect 1
endif
KristallwacheLicht.resetHealth

if KristallwacheDunkelheit.getDead == 1 ; Waechter der Dunkelheit
KristallwacheDunkelheit.resurrect 1
endif
KristallwacheDunkelheit.resetHealth

if KristallwacheDaemmerung.getDead == 1 ; Waechter der Daemmerung
KristallwacheDaemmerung.resurrect 1
endif
KristallwacheDaemmerung.resetHealth

endif

end

  • Manche Gegner verlieren ja beim Tod ihre Waffe oder ihren Schild. Wenn man dann resurrect 1 in den Script einbaut haben sie dann keine Waffe und kämpfen daher mit Fäusten. Gibt es eine Möglichkeit, die dafür sorgt, dass, wenn keine Waffe im Inventar ist, eine neue Waffe hinzugefügt wird? Denn leider habe ich den Waffen einen Script zugewiesen, welcher das Aufheben negiert. Sowohl für den Player als auch für die Gegner
 
1. Dafür erstellst du einen Activator mit so einem Skript:
Code:
scn name

short activated

Begin onActivate

if isActionRef player == 1
 if activated == 0
  disable
  player.addItem <Gegenstand-ID> 1
  set activated to 1
 endif
endif

end

Begin GameMode

if activated == 1
 return
endif

if <Gegner1-Ref>.getDead == 1
 <Gegner1-Ref>.resurrect 1
endif
<Gegner1-Ref>.resetHealth
...

end
Du musst natürlich einen neuen Gegenstand erstellen (Misc-Item).

2. Nehmen Gegner, wenn sie keine Waffe haben und ihr Combat-Style das zulässt, herumliegende Waffen auf? Wenn ja, kannst du ja nur dem Spieler verbieten, die Waffen aufzunehmen...
 
  • Like
Reaktionen: TheDarkRuler
Ich suche ein Script zum werfen von Gegenständen. Wenn jemand genau weiß wie das geht, wärs toll wenn er sich meldet. Kriegt auch nen Keks :lol:
 
1. Dafür erstellst du einen Activator mit so einem Skript:
Code:
scn name

short activated

Begin onActivate

if isActionRef player == 1
 if activated == 0
  disable
  player.addItem <Gegenstand-ID> 1
  set activated to 1
 endif
endif

end

Begin GameMode

if activated == 1
 return
endif

if <Gegner1-Ref>.getDead == 1
 <Gegner1-Ref>.resurrect 1
endif
<Gegner1-Ref>.resetHealth
...

end
Du musst natürlich einen neuen Gegenstand erstellen (Misc-Item)

Danke schon einmal dafür. Jedoch haperts bei mir etwas mit dem Verstehen. :oops:
Was macht das Return?

Diarrhoe schrieb:
2. Nehmen Gegner, wenn sie keine Waffe haben und ihr Combat-Style das zulässt, herumliegende Waffen auf?

Ja, sie tun es oder zumindest wollen sie es tun, doch mein Script verbietet es ihnen scheinbar. Denn wenn sie sich bücken, um sie aufzuheben, passiert nichts.

Diarrhoe schrieb:
Wenn ja, kannst du ja nur dem Spieler verbieten, die Waffen aufzunehmen...

Was muss ich denn hier verändern, damit das nur für den Spieler gilt?
SCN AATotenwaffen

Begin OnActivate

if IsActionRef player == 1
Messagebox "Als Ihr nach der Waffe langt zerbröselt diese zu Staub. Gleichzeitig fühlt Ihr einen heftigen Schmerz, als wollte sich die Waffe für ihre Zerstörung rächen!"
disable
player.addspell AATotenwaffenKrankheit
endif
end


begin onAdd player

messagebox "Als Ihr nach der Waffe langt zerbröselt diese zu Staub. Gleichzeitig fühlt Ihr einen heftigen Schmerz, als wollte sich die Waffe für ihre Zerstörung rächen!"
removeme
player.addspell AATotenwaffenKrankheit
End
 
hm...eig hast du schon durch das "if IsActionRef player == 1" eingestellt dass es nur für den spieler gilt...hm...lass mal den ersten teil weg also schreib nur:

SCN AATotenwaffen

begin onAdd player
messagebox "Als Ihr nach der Waffe langt zerbröselt diese zu Staub. Gleichzeitig fühlt Ihr einen heftigen Schmerz, als wollte sich die Waffe für ihre Zerstörung rächen!"
removeme
player.addspell AATotenwaffenKrankheit
End

denn begin onadd sollte eig ausreichen udn vllt gelingt es deinen gegnern dann ja auch die waffen aufzuheben^^
bei mir haben die gegner allerdings sowieso immer wieder ihre waffen wenn ich sie resurrecte...ich schreib aber auch nich "resurrect 1" sondern einfach nur "resurrect"....
 
bei mir haben die gegner allerdings sowieso immer wieder ihre waffen wenn ich sie resurrecte...ich schreib aber auch nich "resurrect 1" sondern einfach nur "resurrect"....

Wenn man aber nur resurrect schreibt, werden die Gegner kurz disabled und dann wieder komplett enabled. Würde zwar von der Funktion her gehen, sieht aber ingame nicht so toll aus, wenn sie mal eben verschwinden. ;)

Durch resurrect 1 sieht es so aus, als würden sie einfach wieder zum Leben erweckt. Also vieeeeel natürlicher (zumindest so natürlich wie eine Wiederbelebung natürlich sein kann :D)

:bye:
 
  • Like
Reaktionen: Der_W@ldmeister
aaaaaaaaaah so tut man das also.gut dass ich das auch mal weiß^^
ich hab mir alles was ich über scripten weiß selbst beigebracht...tjaja man lernt nie aus,kriegst auf jedenfall ein fettes danke :)
 
Diarrhoe thX

Noch eine Frage:

Wie kann ich, nachdem man dann aufgewacht ist, gegenstände erscheinen lassen?