Construction Set Skriptthread zum Construction Set

Tag im Monat heruasfinden??

Geht es irgendwie, den Tag im Monat herauszufinden, also z.B. zu Prüfen, ob gerade der 3. ist?
Hab nur GetDayOfWeek gefunden. Muss ich jetzt anfangen, Wochen zu zählen oder nen Timer zu basteln?

Ich möchte am Ende darauf raus, zu Prüfen, ob der Tag zwischen dem 14. und 18. eines jeden Monats liegt.
Also
Code:
   If ( derheutigeTag >= 14 ) && ( derheutigeTag <= 18 )
   ; tue etwas
   EndIf
 
Da kann ich in der Funktion-Liste natürlich lange suchen.
*KopfgegenTischschlag*
 
Er will per Script abfragen, ob der 14. bis 18. eines Monats ist und wenn dem so ist, dann soll etwas bestimmtest passieren. Das soll also nicht der Spieler tun.
 
Zeitvergleich

Geht es irgendwie, abzufragen, ob GameHour größer 20 und kleiner 6 ist?
Also zwischen 20 Uhr abends und sechs Uhr morgens.
Mit GameHour > 20 && GameHour < 6 geht es ja nicht, da nur eines möglich ist.
 
Ich würds Knochen's Script nehmen aber das ">" in ein >= umwandeln, sonst muss es erst 21h sein, bevor der Script läuft.

Sprich

Code:
scn Zeitabfrage

Begin GameMode
if (GameHour >= 20 ) && ( GameHour <= 6 )
tueirgendwas
endif
end
 
if ( GameHour > 20 ) && ( GameHour < 6 )
So sollte das gehen.

Nein, so geht es eben nicht.:lol:
Hatte ich auch schon, aber dann ist mir was eingefallen:
Wie kann eine Variable gleichzeitig > 20 und < 6 sein?
Genau, gar nicht.

Aber so geht es:
if ( GameHour > 20 ) || ( GameHour < 6 )

Logisch, oder(!!)?
 
Mit && klappt es, wenn die Verhältniszeichen umdrehst.

Code:
if ( GameHour >= 6 ) && (GameHour <= 20 ) 
     tueirgendwas zwischen 6 und 20 Uhr
endif

if ( GameHour > 20 ) || ( GameHour < 6 )
     tueirgendwas zwischen 20 und 6 Uhr
endif
 
Zuletzt bearbeitet:
OOT:

<= Die Funktion wird nur ausgeführt, wenn x kleiner oder gleich 1 ist.
>= Die Funktion wird nur ausgeführt, wenn x größer oder gleich 1 ist.


mfg
 
Mit && klappt es, wenn die Verhältniszeichen umdrehst.

Code:
if ( GameHour >= 6 ) && (GameHour <= 20 ) 
     tueirgendwas zwischen 6 und 20 Uhr
endif

if ( GameHour > 20 ) || ( GameHour < 6 )
     tueirgendwas zwischen 20 und 6 Uhr
endif

Genau das war mein Problem. Ich hatte erst den oberen If-Block. Dann hab ich wirgendwann bemerkt, dass das ja nicht gehen kann und bin auf die Oder-Varaiante gekommen.

Edit: Neues Problem!!
Warum geht das nicht??
Code:
If ( GetKeyPress 48 )
   ;tue etwas
EndIf

Das ist die Beschreibung:
(dxScanCode:long) GetKeyPress whichIndex:long
Demnach müsste mein Skript stimmen, wenn ich nicht irgendwas falsch gemacht habe.
 
Zuletzt bearbeitet von einem Moderator:
Ist GetKeyPress eine Variable oder ein ScriptBefehl?

Wenn es ein Script Befehl ist: Ist das vielleicht ein Obse Befehl und du hast Obse nicht an? Ich hab den in den normalen Cs Listen nicht gefunden.
 
Es ist ein OBSE-Befehl, CS wurde mit OBSE gestartet und das Spiel zum Testen auch.
Hier mal das Problem etwas genauer:
Code:
If ( GetKeyPress 48 )
   If ( controlvar == 1 )
      ;tue etwas
      Set controlvar To 2
   Else
      ;tue etwas anderes
      Set controlvar To 1
   EndIf
EndIf

Wie man sieht, ist es nötig, eine korrekte Abfrage der Taste zu erhalten.
Im Moment wird die Abfrage quasi komplett ignoriert. Also wird controlvar ständig auf 1 und 2 gesetzt, je nachdem welchen Wert sie gerade hatte.

Wenn ich GetKeyPress 48 == 1 verwende, geht das Skript gar nicht mehr.
 
Also müsste meine Abfrage GetKeyPress == 48 lauten? Edit: Das geht nicht. Fehler: "Missing Parameter int"

Nach dieser Liste von IsKeyPressed3 ist B 48. Ist das in deinem Post ein Schreibfehler oder versteh ich was nicht??
 
Zuletzt bearbeitet von einem Moderator:
Deine Abfrage müsste
Code:
if IsKeyPressed3 48
lauten, GetKeyPress brauchst du nur, wenn du die nte gedrückte Taste herausfinden willst.

Eigentlich nur nützlich, wenn du den Spieler die Taste für eine Funktion selbst bestimmen lassen willst.
 
  • Like
Reaktionen: 1 Person
So, jetzt läuft es. Aber es ist ein wenig langsam.
Irgendwo habe ich mal gelesen, dass man die Wartezeit, bis ein Skript erneurt ausgeführt wird, heruntersetzen kann.
Hier weiß nicht zufällig jemand den Befehl??