aboutsummaryrefslogtreecommitdiff
path: root/lib/PacketManager
diff options
context:
space:
mode:
authorRitabrata Das <[email protected]>2025-02-12 21:11:03 +0530
committerRitabrata Das <[email protected]>2025-02-12 21:11:03 +0530
commitacca268ffafd26bf87fa6b14f228bdd54cf47233 (patch)
treed2d3ffef70e6503fc42b69451aea3e8a0568e8dd /lib/PacketManager
parent982ef15f1a5e882d451a3f8cd8dc8fba7ff1194a (diff)
Add Sunset
Diffstat (limited to 'lib/PacketManager')
-rw-r--r--lib/PacketManager/packets/FSNETCMD_ENVIRONMENT.py13
-rw-r--r--lib/PacketManager/packets/FSNETCMD_FOGCOLOR.py21
-rw-r--r--lib/PacketManager/packets/FSNETCMD_SKYCOLOR.py21
-rw-r--r--lib/PacketManager/packets/__init__.py7
4 files changed, 57 insertions, 5 deletions
diff --git a/lib/PacketManager/packets/FSNETCMD_ENVIRONMENT.py b/lib/PacketManager/packets/FSNETCMD_ENVIRONMENT.py
index 4937fba..c647229 100644
--- a/lib/PacketManager/packets/FSNETCMD_ENVIRONMENT.py
+++ b/lib/PacketManager/packets/FSNETCMD_ENVIRONMENT.py
@@ -3,7 +3,7 @@ from struct import pack, unpack
class FSNETCMD_ENVIRONMENT: #33
def __init__(self, buffer:bytes, should_decode:bool=True):
self.buffer = buffer
- self.day_night = None # 0 is day, 1 is night
+ self.day_night = -1 # 0 is day, 1 is night
self.flags = {
"fog":False,
"blackout":False,
@@ -29,7 +29,7 @@ class FSNETCMD_ENVIRONMENT: #33
self.flags["midair"] = bool(flags & 16)
if flags&128 == 1: #Server controls can_land_anywhere:
self.flags["can_land_anywhere"] = bool(flags & 64)
-
+
@staticmethod
def encode(day_night, fog, blackout, midair, can_land_anywhere, wind, visibility, with_size:bool=False):
flags = 0
@@ -49,3 +49,12 @@ class FSNETCMD_ENVIRONMENT: #33
return pack("I", len(buffer))+buffer
return buffer
+ @staticmethod
+ def setTime(buffer:bytes, night:bool, with_size:bool = True):
+ if with_size:
+ values = list(unpack("IHHIffff", buffer[4:]))
+ else:
+ values = list(unpack("IHHIffff", buffer))
+ if night: values[2] = 1
+ elif not night: values[2] = 0
+ return pack("IHHIffff", *values)
diff --git a/lib/PacketManager/packets/FSNETCMD_FOGCOLOR.py b/lib/PacketManager/packets/FSNETCMD_FOGCOLOR.py
new file mode 100644
index 0000000..fd195d4
--- /dev/null
+++ b/lib/PacketManager/packets/FSNETCMD_FOGCOLOR.py
@@ -0,0 +1,21 @@
+from struct import pack, unpack
+
+class FSNETCMD_FOGCOLOR:
+ def __init__(self, buffer:bytes, should_decode:bool=True):
+ self.buffer = buffer
+ self.redValye = 0
+ self.greenValue = 0
+ self.blueValue = 0
+ if should_decode:
+ self.decode()
+
+ def decode(self):
+ self.redValue = self.buffer[4]
+ self.greenValue = self.buffer[5]
+ self.blueValue = self.buffer[6]
+
+ @staticmethod
+ def encode(redValue:int, greenValue:int, blueValue:int, with_size:bool=False):
+ buffer = pack("IBBB", 48, redValue, greenValue, blueValue)
+ if with_size: buffer = (pack("I", len(buffer))) + buffer
+ return buffer
diff --git a/lib/PacketManager/packets/FSNETCMD_SKYCOLOR.py b/lib/PacketManager/packets/FSNETCMD_SKYCOLOR.py
new file mode 100644
index 0000000..2149bc5
--- /dev/null
+++ b/lib/PacketManager/packets/FSNETCMD_SKYCOLOR.py
@@ -0,0 +1,21 @@
+from struct import pack, unpack
+
+class FSNETCMD_SKYCOLOR:
+ def __init__(self, buffer:bytes, should_decode:bool=True):
+ self.buffer = buffer
+ self.redValye = 0
+ self.greenValue = 0
+ self.blueValue = 0
+ if should_decode:
+ self.decode()
+
+ def decode(self):
+ self.redValue = self.buffer[4]
+ self.greenValue = self.buffer[5]
+ self.blueValue = self.buffer[6]
+
+ @staticmethod
+ def encode(redValue:int, greenValue:int, blueValue:int, with_size:bool=False):
+ buffer = pack("IBBB", 49, redValue, greenValue, blueValue)
+ if with_size: buffer = (pack("I", len(buffer))) + buffer
+ return buffer
diff --git a/lib/PacketManager/packets/__init__.py b/lib/PacketManager/packets/__init__.py
index 43abcf0..250be0d 100644
--- a/lib/PacketManager/packets/__init__.py
+++ b/lib/PacketManager/packets/__init__.py
@@ -45,8 +45,8 @@ from .FSNETCMD_WEAPONCONFIG import FSNETCMD_WEAPONCONFIG
#from .FSNETCMD_GNDCMD import FSNETCMD_GNDCMD
#from .FSNETCMD_REPORTSCORE import FSNETCMD_REPORTSCORE
#from .FSNETCMD_SERVER_FORCE_JOIN import FSNETCMD_SERVER_FORCE_JOIN
-#from .FSNETCMD_FOGCOLOR import FSNETCMD_FOGCOLOR
-#from .FSNETCMD_SKYCOLOR import FSNETCMD_SKYCOLOR
+from .FSNETCMD_FOGCOLOR import FSNETCMD_FOGCOLOR
+from .FSNETCMD_SKYCOLOR import FSNETCMD_SKYCOLOR
#from .FSNETCMD_GNDCOLOR import FSNETCMD_GNDCOLOR
#from .FSNETCMD_RESERVED_FOR_LIGHTCOLOR import FSNETCMD_RESERVED_FOR_LIGHTCOLOR
#from .FSNETCMD_GENERATEATTACKER import FSNETCMD_GENERATEATTACKER
@@ -63,4 +63,5 @@ __all__ = ["FSNETCMD_LOGON", "FSNETCMD_LOGOFF", "FSNETCMD_ERROR",
"FSNETCMD_LOCKON", "FSNETCMD_REMOVEGROUND",
"FSNETCMD_MISSILELAUNCH", "FSNETCMD_GETDAMAGE",
"FSNETCMD_WEAPONCONFIG", "FSNETCMD_AIRCMD",
- "FSNETCMD_TEXTMESSAGE", "FSNETCMD_ENVIRONMENT"]
+ "FSNETCMD_TEXTMESSAGE", "FSNETCMD_ENVIRONMENT",
+ "FSNETCMD_SKYCOLOR", "FSNETCMD_FOGCOLOR"]