Construction Set Skriptthread zum Construction Set

Mir ist bewusst, dass der Script so oft ausgeführt wird, ansonsten wird er ja mit einer Verzögerung ausgeführt und das ist InGame nicht so toll. :D
Zu deiner Methode: So kann man es auch machen. Ich finde es für meinen Teil aber wesentlich einfacher das ganze in einem Quest-Skript ablaufen zu lassen.
Noch dazu stoppe ich die Quests, und somit auch die Skripte auf den Quests, normalerweise mit "StopQuest", wenn die Quests fertig sind oder nicht mehr gebraucht werden.
 
Was meinst du mit Benutzen?
Ausrüsten, Aktivieren, ...?

Du müsstest einfach die passenden Begin's nehmen.

Begin onEquip - Ausrüsten
Begin onActivate - Aktivieren
 
Du hast keine Verzögerung, wenn du meine Methode benutzt. Und es über den Quest-script ablaufen zu lassen kostet unnötig Performance. Ich benutze das gleiche Verfahren wie du bei einem anderen Script in einer Mod, wo es nötig ist, und habe FPS-Einbuße von 1-2 FPS (er ist aber auch etwas länger). Angenommen, der Spieler hat 10 solche Scripts aus verschiedenen Mods gleichzeitig laufen, dann hat er FPS Einbuße von 10 FPS, was sich merkbar das flüssige Spielen einwirkt. Es geht einfach besser als über einen Quest-script.

@ Dunkle Schester: Wie gesagt, das geht damit:
Anschließend fügst du noch in den Result Script des Gesprächs, nach dem der Spieler zurückteleportiert werden soll, folgende Zeile hinzu:
Code:
player.moveto <MarkerRef_2>
 
Eben deswegen sollte man so FPS-freundlich wie möglich arbeiten. Ich will jetzt auch nicht deswegen den Scriptthread zuposten. Tatsache ist, dass deine Methode klappt und auch okay ist, aber es eben besser geht, um nicht unnötig Speicher zu verschwenden. Wenn du noch weiter diskutieren möchtest dann bitte über PN. ;)
 
Selbst mit Begin GameMode funktioniert mein Script nicht. Ich verstehe einfach nicht was da schief läuft :?
Hat vielleicht noch jemand anderes eine Idee warum mein Buch nicht den gewünschten Zauber hinzufügt?
 
Wie hast du denn die das Skript im GameMode-Block ausgeführt?
Ich dachte das in etwa so:

Code:
SCN ...

Short Once

Begin OnActivate

if(once == 0)
     set once to 1
endif

end

Begin gameMode

 if(once == 1)
      ; do stuff
 endif

end
 
  • Like
Reaktionen: Tywele
Ist es normal, dass "doonce" nicht erkennt wird? Ich muss es dann immer in "once" umschreiben... ich hoffe, das ändert nichts am Resultat, das ich will...?
 
Es ist total egal wie Variablen benannt werden. Außer bei besonderen Variablen, wie z.B. "fQuestDelayTime" oder "fTrapDamage".

EDIT: Vor euch beiden, aber das mit dem Deklarieren habe ich vergessen zu sagen. :lol:
 
Zuletzt bearbeitet:
In einem Skript kannst du von doonce bis Kratlwa alles als Variable nutzen, du musst es aber dann noch als Variable im Skript deklarieren. Im Skript über deinem Post siehst du ja das short once, das heißt once wurde jetzt als Variable deklariert die du im Skript nutzen kannst. Wenn du dann auch short doonce hinzufügst, dann erkennt das Cs dies auch und ist nutzbar. ;)

MfG Master of Worlds
 
  • Like
Reaktionen: Darth Andauril
Wie hast du denn die das Skript im GameMode-Block ausgeführt?
Ich dachte das in etwa so:

Code:
SCN ...

Short Once

Begin OnActivate

if(once == 0)
     set once to 1
endif

end

Begin gameMode

 if(once == 1)
      ; do stuff
 endif

end

Dieses Script funktioniert erst recht nicht, weil ich das Buch dann nicht mehr ablegen kann. Wenn ich auf dem Boden aufnehmen will kann ich es lesen, aber, wenn ich dann auf Beenden klicke öffnet sich das Buch wieder und immer so weiter. Das gleiche passiert, wenn ich es aus dem Inventar ablegen will.

Edit: Ich könnte meinen Kopf gegen die Tischplatte hauen, ehrlich. Ich kann einfach nicht glaube wie ich so blöd sein konnte und das offensichtlichste übersehen habe und zwar die Bedinung der if-Abfrage an sich, denn die erste fragt ab, ob der Char ziwschen Stufe 5 und 10 ist. Da ist es natürlich klar, dass es unmöglich ist, mit einem Stufe 1 Char den Zauber zu erhalten. xD

Edit2: Wie lauten die Funktionen für Wurzel und Runden? Und sind die mathematischen Zeichen die selben, wie bei jeder anderen Programmiersprache auch? Also +,-,*,/,^?
 
Zuletzt bearbeitet:
also runden kannst du mit "0.f" das wäre dann 0 nachkomma-stellen.weiß leider nicht mehr genau wie das war aber habs im cs-wiki sehr verständlich gesehen.in der rubrik "message"
 
  • Like
Reaktionen: Tywele
Wie kann ich Scripts die OBSE benötigen im CS abspeichern? Wenn ich zB ein Script mit dem Befehl "SetAttackDamage" abspeichern will, geht das nicht, weil das CS diesen Befehl nicht kennt.
 
Dafür musst du das CS mit OBSE starten. Dafür erstellst du dir eine Verknüpfung zum OBSE_Loader und trägst bei "Ziel" (RMT -> Eigenschaften -> Verknüpfung) hinter dem Dateipfad noch ein "-editor" (ohne Gänsefüßchen ein).
Dann sieht es ungefähr so aus:
"blabla\obse_loader.exe" -editor
 
  • Like
Reaktionen: Tywele
Wie kann ich bei SetAttackDamage eine Formel als Wert dahinter schreiben? Wenn ich die Formel direkt dahin schreibe wird nur die erste Zahl übernommen. Und 'ne Variable will auch nicht funktionieren.
 
Wie kann ich zwei Scripte zu einem zusammen fügen?

Ich brauche nämlich ein Script, das beim Tod eines NPCs gestartet wird... dabei kommt es darauf an, wer den NPC tötet. Ist es der Spieler, wird eine andere Queststage aktiviert, wie wenn es ein bestimmter, anderer NPC tut.
 
Zuletzt bearbeitet: