Construction Set Skriptthread zum Construction Set

In einem QuestScript wird dass alle fQuestDelayTime Sekunden abgefragt (falls nicht näher bestimmt alle 5 Sekunden), bei einem ObjectScript/MagicEffectScript im ScriptEffectUpdate-Block so ziemlich jeden Frame, sofern das Objekt gerendert wurde/der Effekt aktiv ist.


Falls du ein QuestScript verwendest setze einfach nach das letzte endif noch ein
Code:
StopQuest [QuestID]
oder verwende eine Variable damit das ganze nur einmal abläuft falls du die Quest noch brauchst.

mhh ja ich hab das jetzt mitnem cellcheck verbunden...also das script läuft immer nach nem cellwechsel einmal =)

CellDepth:
Du kannst ganze Zahlen als CellDepth angeben, bei 0 wird nur die eigene Zelle geprüft, bei 1 alle Umliegenden dazu, etc.
Wenn du dich in einer Interiour-Zelle befindest wird der Wert ignoriert und nur die Zelle überprüft.

Danke =)
Hatte es zwar schon vermutet, aber da sich dass schlecht testen lässt ist es natürlich schön das schwarz auf weiss da stehen zu haben =)
 
Ich würde von "Zahlen"-Refs grundsätzlich abraten. Das kann zu großen Problemen führen, da es nicht gesagt ist, dass deine Ref später im Spiel auch bei jedem Spieler diese ID haben wird. Nimm besser, wie es AjAeXx schon gesagt hat, verbale Ref-IDs.
 
Ich würde von "Zahlen"-Refs grundsätzlich abraten. Das kann zu großen Problemen führen, da es nicht gesagt ist, dass deine Ref später im Spiel auch bei jedem Spieler diese ID haben wird. Nimm besser, wie es AjAeXx schon gesagt hat, verbale Ref-IDs.
Okay, das habe ich jetzt gemacht und die Zahlen durch die neuen Wort-Ids getauscht. Das hat schon etwas gebracht, allerdings nicht was ich wollte:

"Script "1Dreit", line 7
Non-rersistend reference "Tr1inDigamma" cannot be used in a Script."

Und was soll das jetzt?

Kann man die Script nicht einfach so machen, dass nachdem der Player in die Cell 1 kommt, schließen sich die Türen zu 2 und 3? Dann noch wenn in Cell 2, dass sich 1 und 3 schließen und zuletzt noch das bei Cell 3, das sich die Türen zu 1 und 2 schließen? Per Lock 100 würde das doch am einfachsten gehen.

Wenn alles nichts nützt, werde ich einfach ein etwas kompliziertes Tür-Öffenungssystem aufbauen, dass alle Türen IN den Cells 1,2 und 3 bereits geschlossen sind, aber die 3 Türen Zu den Cells werden es nicht.Der Player kann also einfach nicht zurück und fertig.

Mach ich das halt so. Jetzt habe ich aber eine andere Frage:

Welche Script brauche ich, damit ein NPC im kampf nur geht und nicht rennt? Ausserhalb der Kämpfe bewegt er sich überhaupt nicht.
 
Wahrscheinlich hast du bei der genannten Tür keinen Hacken bei "Persistent Reference" gemacht. Überprüf das doch mal.
Ach verdammt:oops: Das habe ich total vergessen:oops: Danke, jetzt sollte es funktionieren. Wenn nicht, gibts ja noch das Türsystem.

Bleibt nur noch die Frage mit den NPCs, siehe bitte weiter oben.
 
Zuletzt bearbeitet:
Wie kann ich das lösen?

Hi

Ich würde ein kleines Scripte benötigen was folgendes bewirken soll:

- Es liegt auf Objekten. (Amulett, Ring, Rüstung alles was ein Spieler anziehen kann.)

- Der Spieler kann diese Dinge an sich nehmen, wenn er jedoch versucht es zu benutzen, MessageBox "Ihr dürft diese Dinge nicht benutzen!"

Danach soll er einen Schaden erhalten, zum Beispiel Feuerschaden.

Ist ja ähnlich wie die der Arena oder die Rüstung von Tiber Septim.

Hat da wer was für mich?
 
@ Eddy, soll das Object nicht aufhebbar sein, oder darf es schon aufhebbar sein, nur der Spieler soll es nicht in seinem Inventar behalten dürfen und erstrecht nicht equippen?

@ chuck, mir fällt mir Vanilla Oblivion keine Möglichkeit ein, außer, in Kämpfen den Acrobatic/Agility Wert soweit runterzustellen, dass die Person so langsam läuft, dass sie quasi schleicht.

Btw. Andersherum wäre es einfacher, sie zum Rennen zu zwingen^^.
 
@ Eddy, soll das Object nicht aufhebbar sein, oder darf es schon aufhebbar sein, nur der Spieler soll es nicht in seinem Inventar behalten dürfen und erstrecht nicht equippen?
hat er doch schon ganz genau geschrieben:

- Der Spieler kann diese Dinge an sich nehmen, wenn er jedoch versucht es zu benutzen, MessageBox "Ihr dürft diese Dinge nicht benutzen!"

Danach soll er einen Schaden erhalten, zum Beispiel Feuerschaden.

@eddy: schau dir doch mal das script an, das auf diesem amulett liegt, das man ganz am anfang vom kaiser bekommt. da fehlt nur noch die sache mit dem schaden, ansonsten ist das doch schon ziemlich genau das, was du suchst, oder?
 
  • Like
Reaktionen: Eddy Kaschinski
@ chuck, mir fällt mir Vanilla Oblivion keine Möglichkeit ein, außer, in Kämpfen den Acrobatic/Agility Wert soweit runterzustellen, dass die Person so langsam läuft, dass sie quasi schleicht.
Das hab ich mir schon fast gedacht, das es nur diese Möglichkeit gibt:? Und ich glaube, man muss den Athletics wert heruntersellen, nicht acrobatic;)

Wie weit runter müsste den der Wert? Mein CD-Laufwerk spinnt gerade, ich kann's nicht testen.

Das will mir aber irgendwie nicht gefallen: Wandelnde Statuen laufen in Zeitlupe:lol:
 
hat er doch schon ganz genau geschrieben:



@eddy: schau dir doch mal das script an, das auf diesem amulett liegt, das man ganz am anfang vom kaiser bekommt. da fehlt nur noch die sache mit dem schaden, ansonsten ist das doch schon ziemlich genau das, was du suchst, oder?


@Naboradd

Jau, da war doch was. Ich werde es mal suchen.

Thanx

Hey, was wäre denn ein guter Demage-Effekt ?
 
Zuletzt bearbeitet:
Ich habe eine Frage die ich einmal hier hineinsetze da sie im weiteren Sinne mit Script zu tun hat. Es gibt ein Programm bei Planetelderscrolls :Scriptoptimizing. Dabei werden alle Vanilla Scripte optimiert indem unnötige Leerzeilen herausgenommen werden und Rechenoperationen optimiert werden.

Ist da was bekannt und läuft das auch mit der DV?
 
Ich habe eine Frage die ich einmal hier hineinsetze da sie im weiteren Sinne mit Script zu tun hat. Es gibt ein Programm bei Planetelderscrolls :Scriptoptimizing. Dabei werden alle Vanilla Scripte optimiert indem unnötige Leerzeilen herausgenommen werden und Rechenoperationen optimiert werden.

Ist da was bekannt und läuft das auch mit der DV?
im prinzip ja, falls allerdings auch scripte mit irgendwelchen meldungen optimiert werden, hast du diese meldungen dann natürlich auf englisch.

edit: es gibt allerdings auch eine deutsche version: http://www.scharesoft.de/joomla/forum/showthread.php?t=13721
 
Zuletzt bearbeitet:
Hi

Kann mir jemand einaml sagen, wie der Damage-Befehl lautet? DasScript steht, nur der Befehl fehlt noch.

Der Player soll einen Schaden erhalten.

"cast irgendeinzauber player"

funzt irgendwie nicht. Wie kann ich das besser machen?



Edit

Alles klar. Hatte den Zauber auf "Selbst" gestellt, muß aber auf "Berühren" stehen. Funzt einwandfrei.
 
Zuletzt bearbeitet:
Scriptkings & Queens gefragt.

Folgende Situation:

Ich habe eine neue Krankheit erstellt, mit allem was dazu gehört. Die Infizierung klappt wunderbar - 0 Problemo

Abba nu kommt et:

Es soll ein Script auf die Krankheit gelegt werden, das wenn der Player dann an einen bestimmten NPC vorbeigeht, der Player darauf angesprochen wird. Das soll nicht nur 1x geschehen, sondern jedes Mal wenn der Player sich damit infiziert. So hatte ich es mir vorgestellt:
PHP:
Scriptname UndNochNeKrankheit

short PlayerHatRotzeAmBalg

begin irgendwas
  if Player.IsSpellTarget NeueKrankheit == 1
    if PlayerHatRotzeAmBalg == 0
      set PlayerHatRotzeAmBalg to 1
      NPCRef.StartConversation player DuBistKrank
    endif
  endif
  if Player.IsSpellTarget NeueKrankheit == 0
    if PlayerHatRotzeAmBalg == 1
      set PlayerHatRotzeAmBalg to 1
      Message "Ihr seid wieder gesund"
    endif
  endif
end

Ich habe schon alles Mögliche probiert, leider mit mäßigen Erfolg.

if Player.GetDisease - Bewegt sich der NPC gar nicht
if Player.IsSpellTarget - Keine Reaktion vom NPC

Es ist immer das gleiche Ergebnis. Wenn ich vor dem NPC stehe und mir die Krankheit via Konsole zulege, kommt der Dialog wie gewünscht. Hole ich sie mir im Kampf und gehe dann zum NPC keine Reaktion.

Hier ein anderer Versuch
Dieses Script habe ich in das QuestScript gelegt. Wenn ich mir die Krankheit dann per Konsole verpasst habe, hat es funktioniert. Der NPC hat mich sofort angesprochen. Wenn ich mir die Krankheit jedoch in Combat geholt habe, reagierte der NPC nicht.

PHP:
Scriptname KrankheitsQuest

short PlayerHatRotzeAmBalg

Begin GameMode
  if PlayerHatRotzeAmBalg == 0
    if Player.IsSpellTarget DieNeueKrankheit == 1
      set PlayerHatRotzeAmBalg to 1
      NPCRef.StartConversation Player DuBistKrank
    endif
  endif
  if PlayerHatRotzeAmBalg == 1
    if Player.IsSpellTarget DieNeueKrankheit == 0
      set PlayerHatRotzeAmBalg to 0
      Message "Ihr seid wieder gesund."
    endif
  endif
end GameMode

Meine Idee ist nun das Script wie im ersten Teil auf die Krankheit selbst zu legen. Aber wie mache ich das? Ich bin für alle Ideen offen.

Thanx
 
Zuletzt bearbeitet:
Du kannst einen Zauber mit einem Scripteffect belegen, indem du in dem Zauber Rechtsklick New Add MagicEffect, bei Zauberart oder Effekt (?) stellst du dann Scripeffect ein, dann kannst du ganz unten den Script Effect auswählen.

Achtung, hierfür muss der Scritp als "Magic Effect" und mit den Commands ScriptEffectStart Update und Finish gespeichert werden.
 
@AjAeXx

Jepp, I know that. Das Thema ist das Script selbst welches ich daraf lege. Ich habe es heute mit allen Krankheiten hin bekommen bei denen Attribute entzogen werden. Es sind noch drei übrig. Bei denen wird Ausdauer oder Magie entzogen. Da klappt mein System nicht. Was kann ich machen, damit die gemeldet werden?

VampDisease - Porphyrische Hämophilie - Entzug Ausdauer - 5 Points

SEDisElytaHatchling - Krankheit der Elyta-Brut - Entzug Ausdauer - 50 Points

DisZombieDread - Astraldämpfe - Schaden Magie - 15 Points


Ein Script wäre schön, und wo ich es einsetzen muss.
 
Wieso benutzt du nicht einfach zur Überprüfung den Befehl Player.GetDisease?

Oder versteh ich dich grade falsch? Du willst einen Script, der überprüft, ob der Spieler von irgendeiner Krankheit betroffen ist?
 
Folgende Situation:

Ich habe eine neue Krankheit erstellt, mit allem was dazu gehört. Die Infizierung klappt wunderbar - 0 Problemo

Abba nu kommt et:

Es soll ein Script auf die Krankheit gelegt werden, das wenn der Player dann an einen bestimmten NPC vorbeigeht, der Player darauf angesprochen wird. Das soll nicht nur 1x geschehen, sondern jedes Mal wenn der Player sich damit infiziert. So hatte ich es mir vorgestellt:
PHP:
Scriptname UndNochNeKrankheit

short PlayerHatRotzeAmBalg

begin irgendwas
  if Player.IsSpellTarget NeueKrankheit == 1
    if PlayerHatRotzeAmBalg == 0
      set PlayerHatRotzeAmBalg to 1
      NPCRef.StartConversation player DuBistKrank
    endif
  endif
  if Player.IsSpellTarget NeueKrankheit == 0
    if PlayerHatRotzeAmBalg == 1
      set PlayerHatRotzeAmBalg to 1
      Message "Ihr seid wieder gesund"
    endif
  endif
end

Ich habe schon alles Mögliche probiert, leider mit mäßigen Erfolg.

if Player.GetDisease - Bewegt sich der NPC gar nicht
if Player.IsSpellTarget - Keine Reaktion vom NPC

Es ist immer das gleiche Ergebnis. Wenn ich vor dem NPC stehe und mir die Krankheit via Konsole zulege, kommt der Dialog wie gewünscht. Hole ich sie mir im Kampf und gehe dann zum NPC keine Reaktion.

Hier ein anderer Versuch
Dieses Script habe ich in das QuestScript gelegt. Wenn ich mir die Krankheit dann per Konsole verpasst habe, hat es funktioniert. Der NPC hat mich sofort angesprochen. Wenn ich mir die Krankheit jedoch in Combat geholt habe, reagierte der NPC nicht.

PHP:
Scriptname KrankheitsQuest

short PlayerHatRotzeAmBalg

Begin GameMode
  if PlayerHatRotzeAmBalg == 0
    if Player.IsSpellTarget DieNeueKrankheit == 1
      set PlayerHatRotzeAmBalg to 1
      NPCRef.StartConversation Player DuBistKrank
    endif
  endif
  if PlayerHatRotzeAmBalg == 1
    if Player.IsSpellTarget DieNeueKrankheit == 0
      set PlayerHatRotzeAmBalg to 0
      Message "Ihr seid wieder gesund."
    endif
  endif
end GameMode

Meine Idee ist nun das Script wie im ersten Teil auf die Krankheit selbst zu legen. Aber wie mache ich das? Ich bin für alle Ideen offen.

Thanx


@AjAeXx

Schau dir doch bitte noch einmal mein Post von 10:00 an. Du verstehst mich schon richtig. Wenn der Spieler von einer Krankheit betroffen ist, soll er angesprochen werden. Player.GetDisease funzt nicht.

Wie gesagt, alle habe ich hin bekommen. Nur diese drei nicht. Auf zwei könnte ich ja noch verzichten, aber die Vampirkrankheit ist schon recht wichtig.


Nochmal: Bei allen Krankheiten wo Attribute entzogen werden funzt mein System. Nur bei diesen drei nicht. Da wird Ausdauer entzogen.