Construction Set Skriptthread zum Construction Set

So da bin ich auch mal wieder :)

ich suche ein Script für folgendes Szenario:

Der Spieler Kämpft nach einem beendetem Gespräch mit seinem "Gesprächspartner". Dieser soll aber, wenn man ihn auf bestimten HP Wert oder % Wert runtergehauen hat (bsp auf 10% seiner gesamten gesundheit), den Spieler an Ort XYZ teleportieren.

geht sowas?^^

Ich habe mich zwar schon etwas mit scripten beschäftigt und schon das ein oder andere selbst geschaukelt aber hier bräuchte ich mal hilfe :)
 
AnvilCastleSecretDoorRef04 meiner meinung nach müssten die scripts diese türen öffnen 03 02 01 is klar aber wo sollen diese türen sein ? :eek:

ich bin kurz vorm verzweifeln
 
AnvilCastleSecretDoorRef04 meiner meinung nach müssten die scripts diese türen öffnen 03 02 01 is klar aber wo sollen diese türen sein ? :eek:

ich bin kurz vorm verzweifeln

Keine Ahnung, was du damit meinst...

@Hellfire:
Du könntest du bei der Dialogzeile das "End"-Flag ankreuzen und ins Result-Script
Code:
<Actor>.StartCombat player
<Actor>.setAV aggression 100
setStage <Quest-ID> <"x">
schreiben.

Dann legst du auf den NPC folgendes Script:
Code:
scn name
Begin GameMode
 if getStage <Quest-ID> == <"x">
  if <Actor>.getAV health / <Actor>.getBaseAV health * 100 <= 10
   player.moveTo <Marker-ID>
   setStage <Quest-ID> <"höhere Stage"(>"x")>
  endif
 endif
end
 
  • Like
Reaktionen: }{ellFíre
der ich nochmal

Ich möchte, dass eine Tür aufgeht wenn 2 verschiedene Objekte in einem container platziert werden. Das Grundgerüst hab ich nur wie wäre der befehl für das containerscript? Wäre da begin OnAdd [Container XYZ] ?

am Beispiel:

Ich habe ein Skelett. Neben diesem Liegt ein Buch bei dem die letzte Seite rausgerissen wurde. Wenn man diese findet (kleine Questreihe) und das buch + seite dem skelett hinzufügt soll sich dir tür öffnen :)
 
Das fragst du ganz einfach mit GetItemCount ab.

bsp.:
Code:
If Skelett.GetItemCount Buch == 1 && Skelett.GetItemCount Seite == 1
 Tür.Unlock ;oder Tür.activate
Endif
 
  • Like
Reaktionen: }{ellFíre
Gut nächste Frage ^^

Ich habe mir das script von, glaube Gildur war es, geschnappt und mal damit experimentiert.
scn Bewegungsscript

short activated
float locx
float locy
float locz
float stopx
float stopy
float stopz
float stopxb
float stopyb
float stopzb
float speedx
float speedy
float speedz
short wayx
short wayy
short wayz
ref myself

Begin OnActivate
if activated == 0
set myself to getself
set stopx to myself.getpos x + 0
set stopy to myself.getpos y + 0
set stopz to myself.getpos z + 50
set stopxb to myself.getpos x
set stopyb to myself.getpos y
set stopzb to myself.getpos z
set speedx to 0
set speedy to 0
set speedz to 1
If stopx > myself.getpos x
set wayx to 1
Elseif stopx < myself.getpos x
set wayx to -1
Endif
If stopy > myself.getpos y
set wayy to 1
Elseif stopy < myself.getpos y
set wayy to -1
Endif
If stopz > myself.getpos z
set wayz to 1
Elseif stopz < myself.getpos z
set wayz to -1
Endif
set activated to 1
Elseif (activated == 1)
set activated to 2
Elseif (activated == 2)
set activated to 1
Endif
End

Begin GameMode
if activated == 0
return
Elseif activated == 1
set locx to myself.getpos x + speedx
set locy to myself.getpos y + speedy
set locz to myself.getpos z + speedz
If (wayx == 1) && (locx < stopx)
myself.setpos x locx
Elseif (wayx == -1) && (locx > stopx)
myself.setpos x locx
Endif
If (wayy == 1) && (locy < stopy)
myself.setpos y locy
Elseif (wayy == -1) && (locy > stopy)
myself.setpos y locy
Endif
If (wayz == 1) && (locz < stopz)
myself.setpos z locz
Elseif (wayz == -1) && (locz > stopz)
myself.setpos z locz
Endif
Elseif activated == 2
set locx to myself.getpos x - speedx
set locy to myself.getpos y - speedy
set locz to myself.getpos z - speedz
If (wayx == 1) && (locx > stopxb)
myself.setpos x locx
Elseif (wayx == -1) && (locx < stopxb)
myself.setpos x locx
Endif
If (wayy == 1) && (locy > stopyb)
myself.setpos y locy
Elseif (wayy == -1) && (locy < stopyb)
myself.setpos y locy
Endif
If (wayz == 1) && (locz > stopzb)
myself.setpos z locz
Elseif (wayz == -1) && (locz < stopzb)
myself.setpos z locz
Endif
Endif
End

Beim Test habe ich festgestellt das sich das Objekt bewegt aber die Kollisionsbox des Objektes an Ort und Stelle bleibt.
Zum Beispiel lass ich eine Brücke ausfahren falle an der Stelle wo das Objekt hinfährt einfach durch bzw an der Stelle wo das Objekt seinen Ausgangspunkt hatte steh ich in der Luft:<

Liegt das am script oder muss ich das Objekt per Nifscope bearbeiten? Habe leider noch keine Lösung dafür
 
Wird wahrscheinlich an Oblivion an sich liegen...
Du könntest dem entegegenwirken, in dem du dort, wo die Brücke ist mit Collisionboxen arbeitest...
 
  • Like
Reaktionen: }{ellFíre
Der Fehler mag auch woanders liegen, denn bislang habe ich noch nicht von solchen Sachen gehört... Aber ich kann mir gut vorstellen, dass Oblivion sich beim Betreten einer Zelle merkt, wo sich statische Kollision befindet und diese dann auch so beibehält...
 
  • Like
Reaktionen: }{ellFíre
Ich würde gerne einen Geist verschwinden lassen, aber der Referenz Befehl klappt bei mir nicht mit einer NPC Referenz... Was mache ich dabei nur flasch? :cry:



Fehlermeldung und Skript habe ich hier mal reingestellt...
 
welche refernez hast du genommen? Du musst die Reference Editor ID nehmen, die kannst du eingeben, wenn du im CS auf den platzierten Geist oder was auch immer klickst. Da ist das die erste Zeile, glaube ich.
 
Das ist genau das Problem, diese Ref.Editor ID habe ich genommen, aber es funktioniert nicht...

Also was ich gemacht habe: Geist in das Int. gestellt, angeklickt, Name Geist bei der Ref.Ed.ID eingegeben, ok. ... dann nochmal das Fenster auf und Edit Base und dort mein Skript hineingeschrieben, mit dem Ergebnis der Fehlermeldung invalid Ref. :?
 
Zuletzt bearbeitet:
du hast also ReferenzGeist da eingetragen? Ist persistent Reference angehakt? Wobei, ich glaube das müsste automatisch gemacht worden sein.
 
jab, der Hacken bei Pers. Ref ist auch da und stimmt, es ist bei NPC's automatisch so eingestellt...

Da das alles passt, verstehe ich eben nicht, warum das Cs die Ref. in dem Script nicht akzeptiert.
 
Zuletzt bearbeitet:
Dann wird wohl etwas mit der Referenz an sich falsch sein; vielleicht hast du dich auch einmal verschrieben oder du kannst "Referenz" nicht in der Ref stehen haben (zumindest nicht am Anfang)...
 
Hm, meine Reference heißt nur Geist sonst nichts...

@Patta93: gerade ausprobiert, funktioniert leider auch nicht...

Wahrscheinlich liegt das Ganze nur an einer kleinen Sache, aber die zu finden... puh, ich habe schon einige Zeit lang versucht selber drauf zu kommen, ist aber leider nicht gelungen...
 
achso, wenn sie nur Geist heisst weiss ich was der Fehler war. mach mal:
Code:
Geist.disable
du musst nicht Referenz davorschreiben im Script. Oder besser du darfst nicht.
 
  • Like
Reaktionen: silberhuf
Dankeschön, Dankeschön, Dankeschön...

Ich hab so viel probiert, aber das Referenz weglassen, auf die Idee bin ich nicht gekommen. :oops: Ich dachte schon, dass ich mich extrem dumm anstellen muss, weil ich das Skript einfach nicht zum Laufen gebracht habe...

jetzt funktioniert alles bestens...
 
Zuletzt bearbeitet: