Construction Set Skriptthread zum Construction Set

Code:
[SIZE=2]scn AAAGeistFraction[/SIZE]
[SIZE=2]Begin GameMode[/SIZE]
[SIZE=2]if getStageDone MQ01 90[/SIZE]
  [SIZE=2]if [B]player.[/B]getIsRace DarkElf[/SIZE]
   [SIZE=2]player.setFactionRank UndeadFaction 0[/SIZE]
   [SIZE=2]stopQuest AAAGeistFraction[/SIZE]
  [SIZE=2]endif[/SIZE]
[SIZE=2]endif[/SIZE]
[SIZE=2]end[/SIZE]

(EDIT)
Würde ihn sogar noch ergänzen, da ich gehört habe, dass Returns in GameMode-Blöcken besser sind.
Mach ihn daher mal so.

Code:
[SIZE=2]scn AAAGeistFraction[/SIZE]
[SIZE=2]Begin GameMode[/SIZE]
[SIZE=2]if getStageDone MQ01 90[/SIZE]
  [SIZE=2]if [B]player.[/B]getIsRace DarkElf[/SIZE]
   [SIZE=2]player.setFactionRank UndeadFaction 0[/SIZE]
   [SIZE=2]stopQuest AAAGeistFraction[/SIZE]
  [SIZE=2]else
    return
  endif[/SIZE]
else
  return
[SIZE=2]endif[/SIZE]
[SIZE=2]end[/SIZE]
 
  • Like
Reaktionen: Drachenfeuer
Ein "return" sollte nicht nötig sein, da die Quest durch den Befehl "stopQuest" sowieso beender wird. Mit fällt aber gerade auf, dass das "stopQuest" ungünstig platziert ist. So wäre es besser:
Code:
scn name

Begin GameMode

if getStageDone MQ01 90
 if player.getIsRace <Race-ID>
  player.setFactionRank <Faction-ID> 0
 endif
 stopQuest <Quest-ID>
endif

end
 
Also, ich suche mal wieder ein Script, aber es ist diesmal sehr viel aufwendiger ;)
Es geht darum, dass man einen NPC anspricht, und nach dem Dialog

1. Die Kontrolle über den Charakter verliert, man kann ihn nicht bewegen
2. 1st person view erzwungen wird.

3. ist umfassender.
Hier geht es allgemein nämlich darum, dass man an einen See reist, um dort die Legende des Sees zu erfahren. Ein Fischer erzählt sie, und weißt auf die Gefahren hin.
Daraufhin wird man urplötzlich von einer tief im Dunkeln des Sees lauernden Ranke ins Wasser gezogen.
Also, der 3. Teil des Scripts beinhaltet, dass die Kamera gen Himmel gerichtet wird, und man in relativ hoher Geschwindigkeit im Wasser versinkt.

Danach soll es mit einem Ladebildschirm ganz wo anders weitergehen.
Ist das so denn möglich? Oder wo muss ich das einschränken?
 
Also die Unbeweglichkeit des Spielers lässt sich mit "DisablePlayerControls" realisieren.

Für 2. weiß ich keine Lösung,Diarrhoe hat aber sicher einen OBSE-Befehl auflager ;)

Und beim 3. Punkt könntest du "REF.PushActorAway X Player" verwenden. Am besten mit einem negativen Wert und als REF gibst du den Punkt an, zu dem der Spieler gezogen werden soll (per XMarker o.ä.). Die Ranke müsste extra modelliert udn animiert werden...:?
 
  • Like
Reaktionen: FreshTheFallen
Rat mal warum die Kamera nach oben geht ;)
Keine Extramodells notwendig wenn du sie nicht siehst :>
Und der Blick nach oben zu Wasseroberfläche kommt mir als recht natürliche Reaktion vor.
Man soll ja ruckartig nach unten gezogen werden, ist überrascht und schaut hilfesuchend nach oben.
Btw, was mir jetzt noch einfällt, es soll nicht diese typische Unterwasserkamera sein, sondern vielleicht in leichtem Grünton (wegen Algen usw), und die Unterwasseratem-Leiste soll auch nicht zu sehen sein.
 
naja die Unterwasserkamera ist ja eh schon leicht grün-bläulich. Aber zu dem mit der Atemleiste: Ich denke, wenn du zu dem DisablePlayerControls noch ein toogle menu oder so hinzufügt sollte das gehen. Dann sind halt die ganzen menüs also norden anzeige und so nicht zu sehen. Schau doch mal wie das bei den viedeos gemacht ist wie z.b. Wenn Hauptmann Renault da den geheimen Stein in der Wand drückt,d amit man ins ANfangsdungeon kann oder derartige. Ich glaube da sieht man auch keine menüs. Bin mir aber ned sicher, nagel mich also ned fest.
LG Dacri
 
Für 2. weiß ich keine Lösung,Diarrhoe hat aber sicher einen OBSE-Befehl auflager ;)

Stimmt. Es gibt den Befehl "toggleFirstPerson". Ich bin mir aber nicht ganz über die Funktionsweise im Klaren. Deswegen würde ich es so schreiben:
Code:
if isThirdPerson
 tapControl 14
 disableControl 14
 ;du musst irgendwo später wieder "enableControl 14" benutzen
endif

Die Wasseratmungsanzeige wirst du mit keinem mir bekannten Befehl ausschalten können ohne gleich das ganze HUD zu disablen (da "disablePlayerControls" das HUD disabled kann es auch sein, dass dabei die Wasseratmungsanzeige verschwindet; musst du ausprobieren).
Die Blickrichtung nach oben kannst du mit "player.setAngle x -89" erzwingen. Der muss entweder jeden Frame ausgeführt werden oder du benutzt den OBSE-Befehl "disableMouse" um Blickbewegungen gänzlich zu verhindern.
Die Unterwassersicht müsstest du eigentlich beim Wassertype einstellen können. Mit OBSE allein geht das glaube ich nicht, aber ScreenEffects macht ja eine Möglichkeit mit OBGE vor.
 
Hm, also scheinbar nicht so deutlich ausgedrückt :roll:
Eigentlich soll auch das ganze HUD aus sein, habe mich leider vor allem auf den Atembalken fokussiert, sowie auf die Kamera.
Also, vor allem fände ichs ganz gut, wenn die Kamera nunmal nicht diesen Unterwassereffekt hat, sondern mehr grün und klarer, da doch eine
ganze Menge Schlamm im See zu finden ist.
 
Also das HUD geht bei "DisablePlayerControls" eigentlich von alleine aus.
Und wie bereits erwähnt wurde, den Unterwassereffekt musst du beim WaterType einstellen. Wenn du Sumpfwasser nimmst, hast du ja schon so nen grünlichen Effekt.
 
upps, falscher thread xDDD

Also ich würds so machen:
Code:
scn MeinScript
begin GameMode
   If Gamehour >=6
&&If GameHour <=18 
      enable REF
elseif
disable Ref
endif
end
dann sollte das Objekt von 6 morgens bis 6 abends enabled sein.
LG Dacri
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Käsekuchen
Ist das Skript wirklich in dieser Form eingebaut?

Dann versuch es mal so:
Code:
scn aaTagLichtsc

begin GameMode

If Gamehour >= 6 && If GameHour <= 18
enable aaSTagLicht
elseif
disable aaSTagLicht

endif
end

MfG Master of Worlds
 
  • Like
Reaktionen: Käsekuchen
ehh...ich weiß nicht sogenau aber versuch mal die zwei if-bedingungen in eine zeile zu schreiben und ein leerzeichen nach dem&& zu machen. vielleicht hilft das ja.
LG
Dacri

EDIT:War einer schneller
 
  • Like
Reaktionen: Käsekuchen
Und dann benötigt das "elseif" noch eine Bedingung, man kann also gleich "else" benutzen, und "disable" und "enable" schreibt man hinter die Referenz, soll heißen "<Ref>.disable" bzw. "<Ref>.enable".
Das ganze sieht dann so aus (noch erweitert. um es etwas performancefreundlicher zu halten):
Code:
scn name

short doonce
short disabled

Begin onLoad

if doonce == 0
 set doonce to 1
 set disabled to getDisabled
endif

end


Begin GameMode

if disabled
 if GameHour >= 6 && GameHour < 18
  set disabled to 0
  enable
 endif
else
 if GameHour < 6 || GameHour >= 18
  set disabled to 1
  disable
 endif
endif

end
 
Ich kann das Script jetzt nicht speichern, es kommt zwar keine Fehlermeldung aber wenn ich das Scriptfenster nach dem Speichern schließen will, fragt er wieder ob ich speichern will, dann passiert es aber trotzdem immer wieder:eek:

EDIT: oh danke hab ich übersehen^^
EDIT2: Wo leg ich das Script jetzt drauf? Auf das Objekt oder auf irgendetwas anderes?

g Käse
 
Zuletzt bearbeitet: