diff options
| author | Skipper <[email protected]> | 2025-02-04 22:14:40 +0000 |
|---|---|---|
| committer | Skipper <[email protected]> | 2025-02-04 22:14:40 +0000 |
| commit | 313338fc498c089da5860ba6b5b0673be848c45b (patch) | |
| tree | cca9abead22cee416e9616344e98b3114ee053b5 /lib | |
| parent | 85d07549622d37e8c133bfc9482f35f3f4b30239 (diff) | |
Updated some packets
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/PacketManager/PacketManager.py | 33 | ||||
| -rw-r--r-- | lib/PacketManager/packets/FSNETCMD_AIRCMD.py | 2 | ||||
| -rw-r--r-- | lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py | 72 | ||||
| -rw-r--r-- | lib/PacketManager/packets/FSNETCMD_ERROR.py | 2 | ||||
| -rw-r--r-- | lib/PacketManager/packets/FSNETCMD_GETDAMAGE.py | 2 | ||||
| -rw-r--r-- | lib/PacketManager/packets/FSNETCMD_MISSILELAUNCH.py | 2 | ||||
| -rw-r--r-- | lib/PacketManager/packets/FSNETCMD_WEAPONCONFIG.py | 2 | ||||
| -rw-r--r-- | lib/PacketManager/packets/__init__.py | 538 | ||||
| -rw-r--r-- | lib/PacketManager/packets/constants.py | 472 | ||||
| -rw-r--r-- | lib/YSchat.py | 2 |
10 files changed, 592 insertions, 535 deletions
diff --git a/lib/PacketManager/PacketManager.py b/lib/PacketManager/PacketManager.py index 847d55c..f019369 100644 --- a/lib/PacketManager/PacketManager.py +++ b/lib/PacketManager/PacketManager.py @@ -7,33 +7,6 @@ class PacketManager: def __init__(self): pass - def decode(self, buffer:bytes, with_size:bool=False, should_decode=True): - """ - Takes incomming packets from client or server and decodes them. - If with_size is True, then the packet size is included in the buffer. - If decode is False, then the packet is just returned as is. - If it is true, then the packet will be decoded. - """ - - if with_size: - # Strips away the size, so we've just got the message. - buffer = buffer[4:] - - # Pull out the message type - msg_type = unpack("I", buffer[:4])[0] - - # Find message type on the message_types list - if msg_type < len(MESSAGE_TYPES): - msg_type = MESSAGE_TYPES[msg_type] - packet_class = None - try: - # Try to import the packet class - packet_class = __import__("PacketManager.packets."+msg_type, fromlist=[msg_type]) - except ImportError as e: - print(f"Error importing packet: {msg_type}") - print(e) - if packet_class: - return packet_class(buffer, should_decode) - return None - - return None + def get_packet_type(self, data: bytes): + #Returns the message type of that packet. + return MESSAGE_TYPES[unpack("<I", data[:4])[0]]
\ No newline at end of file diff --git a/lib/PacketManager/packets/FSNETCMD_AIRCMD.py b/lib/PacketManager/packets/FSNETCMD_AIRCMD.py index 50340c1..98d782c 100644 --- a/lib/PacketManager/packets/FSNETCMD_AIRCMD.py +++ b/lib/PacketManager/packets/FSNETCMD_AIRCMD.py @@ -1,5 +1,5 @@ from struct import pack, unpack -from . import AIRCMD_KEYWORDS +from .constants import AIRCMD_KEYWORDS class FSNETCMD_AIRCMD: #30 diff --git a/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py b/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py index 382c876..7a1bf53 100644 --- a/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py +++ b/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py @@ -1,5 +1,6 @@ from struct import pack, unpack from math import pi +import math class FSNETCMD_AIRPLANESTATE: #11 """ @@ -64,30 +65,35 @@ class FSNETCMD_AIRPLANESTATE: #11 def decode(self): self.remote_time, self.player_id = unpack("fI", self.buffer[4:12]) - self.packet_version = unpack("H", self.buffer[16:18])[0] + self.packet_version = unpack("h", self.buffer[12:14])[0] + if self.packet_version == 4 or self.packet_version == 5: - self.position = list(unpack("fff", self.buffer[18:30])) + self.position = list(unpack("fff", self.buffer[14:26])) self.atti = list(map(lambda x: x / (pi / 32768.0), - unpack("hhh", self.buffer[30:36]))) + unpack("hhh", self.buffer[26:32]))) self.velocity = list(map(lambda x: x/10, - unpack("hhh", self.buffer[36:42]))) + unpack("hhh", self.buffer[32:38]))) self.atti_velocity = list(map(lambda x: x / (pi / 32768.0), - unpack("hhh", self.buffer[42:48]))) - self.smoke_oil, self.fuel, self.payload, _ = unpack("hhhh", self.buffer[48:56]) + unpack("hhh", self.buffer[38:44]))) + self.smoke_oil = unpack("h", self.buffer[44:46])[0] + + self.fuel = unpack("I", self.buffer[46:50])[0] - self.flight_state, self.vgw = unpack("BB", self.buffer[56:58]) + self.payload = unpack("h", self.buffer[50:52])[0] + + self.flight_state, self.vgw = unpack("BB", self.buffer[52:54]) self.vgw = self.vgw / 255.0 - c = unpack("B", self.buffer[58:59])[0] + c = unpack("B", self.buffer[54:55])[0] self.spoiler = (c >> 4 & 15) / 15.0 #Bitshift 4 to the right, then mask with 15 self.landing_gear = (c & 15) / 15.0 #Mask with 15 - c = unpack("B", self.buffer[59:60])[0] + c = unpack("B", self.buffer[55:56])[0] self.flap = (c >> 4 & 15) / 15.0 self.brake = (c & 15) / 15.0 - flags = unpack("h", self.buffer[60:62])[0] + flags = unpack("h", self.buffer[56:58])[0] self.flags["ab"] = bool(flags & 1) # Last bit self.flags["firing"] = bool(flags &8) self.flags["smoke"] = 0 @@ -106,42 +112,42 @@ class FSNETCMD_AIRPLANESTATE: #11 if flags & 128: self.flags["landing_lights"] = True - self.gun_ammo, self.rocket_ammo, self.aam, self.agm, self.bomb = unpack("HHBBB", self.buffer[62:68]) - self.life = unpack("B", self.buffer[68:69])[0] + self.gun_ammo, self.rocket_ammo, self.aam, self.agm, self.bomb = unpack("HHBBB", self.buffer[58:65]) + self.life = unpack("B", self.buffer[65:66])[0] - self.g_value = unpack("b", self.buffer[69:70])[0]/10.0 + self.g_value = unpack("b", self.buffer[66:67])[0]/10.0 - self.throttle = unpack("B", self.buffer[70:71])[0]/99.0 - self.elev = unpack("b", self.buffer[71:72])[0]/99.0 - self.ail = unpack("b", self.buffer[72:73])[0]/99.0 - self.rud = unpack("b", self.buffer[73:74])[0]/99.0 - self.trim = unpack("b", self.buffer[74:75])[0]/99.0 + self.throttle = unpack("B", self.buffer[67:68])[0]/99.0 + self.elev = unpack("b", self.buffer[68:69])[0]/99.0 + self.ail = unpack("b", self.buffer[69:70])[0]/99.0 + self.rud = unpack("b", self.buffer[70:71])[0]/99.0 + self.trim = unpack("b", self.buffer[71:72])[0]/99.0 if self.packet_version == 4: - c = unpack("B", self.buffer[75:76])[0] + c = unpack("B", self.buffer[71:72])[0] self.thrust_vector["vector"] = (c >> 4 & 15) / 15.0 self.thrust_vector["reverser"] = (c & 15) / 15.0 - c = unpack("B", self.buffer[76:77])[0] + c = unpack("B", self.buffer[72:73])[0] self.bomb_bay_info = (c >> 4 & 15) / 15.0 else: - self.position = list(unpack("fff", self.buffer[20:32])) + self.position = list(unpack("fff", self.buffer[16:28])) self.atti = list(map(lambda x: x / (pi / 32768.0), - unpack("hhh", self.buffer[32:38]))) + unpack("hhh", self.buffer[28:34]))) self.velocity = list(map(lambda x: x/10, - unpack("hhh", self.buffer[38:44]))) + unpack("hhh", self.buffer[34:40]))) self.atti_velocity = list(map(lambda x: x / (pi / 32768.0), - unpack("hhh", self.buffer[44:50]))) - self.g_value = unpack("h", self.buffer[50:52])[0]/100.0 - - self.gun_ammo, self.aam, self.agm, self.bomb, self.smoke_oil = unpack("HHHHH", self.buffer[52:62]) + unpack("hhh", self.buffer[40:46]))) + self.g_value = unpack("h", self.buffer[46:48])[0]/100.0 + self.gun_ammo, self.aam, self.agm, self.bomb, self.smoke_oil = unpack("hhhhh", self.buffer[48:58]) + self.fuel = unpack("f", self.buffer[58:62])[0] self.payload = unpack("f", self.buffer[62:66])[0] - self.life = unpack("H", self.buffer[66:68])[0] + self.life = unpack("h", self.buffer[66:68])[0] self.flight_state, self.vgw = unpack("BB", self.buffer[68:70]) self.vgw = self.vgw / 255.0 @@ -168,6 +174,7 @@ class FSNETCMD_AIRPLANESTATE: #11 self.rocket_ammo = unpack("H", self.buffer[81:83])[0] if self.packet_version >= 1: + self.atti_velocity = list(map(lambda x: x / (pi / 32768.0), unpack("fff", self.buffer[83:95]))) @@ -177,6 +184,15 @@ class FSNETCMD_AIRPLANESTATE: #11 self.bomb_bay_info = unpack("B", self.buffer[97:98])[0]/255.0 @staticmethod + def get_life(buffer:bytes): + version = unpack("h", buffer[12:14])[0] + if version == 5 or version == 4: + return unpack("B", buffer[65:66])[0] + else: + return unpack("H", buffer[66:68])[0] + + + @staticmethod def encode(remote_time, player_id, packet_version, position, atti, velocity, atti_velocity, smoke_oil, fuel, payload, flight_state, vgw, spoiler, landing_gear, flap, brake, flags, gun_ammo, rocket_ammo, aam, agm, bomb, life, g_value, throttle, elev, ail, rud, diff --git a/lib/PacketManager/packets/FSNETCMD_ERROR.py b/lib/PacketManager/packets/FSNETCMD_ERROR.py index 874ca51..327d38c 100644 --- a/lib/PacketManager/packets/FSNETCMD_ERROR.py +++ b/lib/PacketManager/packets/FSNETCMD_ERROR.py @@ -1,5 +1,5 @@ from struct import pack, unpack -from . import ERROR_CODES +from .constants import ERROR_CODES class FSNETCMD_ERROR: #3 def __init__(self, buffer:bytes, should_decode:bool=True): diff --git a/lib/PacketManager/packets/FSNETCMD_GETDAMAGE.py b/lib/PacketManager/packets/FSNETCMD_GETDAMAGE.py index e7988a6..1becb40 100644 --- a/lib/PacketManager/packets/FSNETCMD_GETDAMAGE.py +++ b/lib/PacketManager/packets/FSNETCMD_GETDAMAGE.py @@ -1,5 +1,5 @@ from struct import pack, unpack -from . import FSWEAPON_DICT +from .constants import FSWEAPON_DICT class FSNETCMD_GETDAMAGE: #22 """ diff --git a/lib/PacketManager/packets/FSNETCMD_MISSILELAUNCH.py b/lib/PacketManager/packets/FSNETCMD_MISSILELAUNCH.py index 7d7000a..4059773 100644 --- a/lib/PacketManager/packets/FSNETCMD_MISSILELAUNCH.py +++ b/lib/PacketManager/packets/FSNETCMD_MISSILELAUNCH.py @@ -1,5 +1,5 @@ from struct import pack, unpack -from . import FSWEAPON_DICT, GUIDEDWEAPONS +from .constants import FSWEAPON_DICT, GUIDEDWEAPONS class FSNETCMD_MISSILELAUNCH: #20 """ diff --git a/lib/PacketManager/packets/FSNETCMD_WEAPONCONFIG.py b/lib/PacketManager/packets/FSNETCMD_WEAPONCONFIG.py index 1ea24e4..b6acf82 100644 --- a/lib/PacketManager/packets/FSNETCMD_WEAPONCONFIG.py +++ b/lib/PacketManager/packets/FSNETCMD_WEAPONCONFIG.py @@ -1,5 +1,5 @@ from struct import pack, unpack -from . import FSWEAPON_DICT +from .constants import FSWEAPON_DICT class FSNETCMD_WEAPONCONFIG: def __init__(self, buffer:bytes, should_decode:bool=True): diff --git a/lib/PacketManager/packets/__init__.py b/lib/PacketManager/packets/__init__.py index 007c6b4..43abcf0 100644 --- a/lib/PacketManager/packets/__init__.py +++ b/lib/PacketManager/packets/__init__.py @@ -1,472 +1,66 @@ -#Pass explicits here - -MESSAGE_TYPES = [ - "FSNETCMD_NULL", # 0 - "FSNETCMD_LOGON", # 1 Cli ->Svr", (Svr->Cli for log-on complete acknowledgement.) - "FSNETCMD_LOGOFF", # 2 - "FSNETCMD_ERROR", # 3 - "FSNETCMD_LOADFIELD", # 4 Svr ->Cli", Cli->Svr for read back - "FSNETCMD_ADDOBJECT", # 5 Svr ->Cli - "FSNETCMD_READBACK", # 6 Svr<->Cli - "FSNETCMD_SMOKECOLOR", # 7 Svr<->Cli - "FSNETCMD_JOINREQUEST", # 8 Svr<- Cli - "FSNETCMD_JOINAPPROVAL", # 9 Svr ->Cli - "FSNETCMD_REJECTJOINREQ", # 10 - "FSNETCMD_AIRPLANESTATE", # 11 Svr<->Cli # Be careful in FsDeleteOldStatePacket when modify - "FSNETCMD_UNJOIN", # 12 Svr<- Cli - "FSNETCMD_REMOVEAIRPLANE", # 13 Svr<->Cli - "FSNETCMD_REQUESTTESTAIRPLANE", # 14 - "FSNETCMD_KILLSERVER", # 15 Svr<- Cli - "FSNETCMD_PREPARESIMULATION", # 16 Svr ->Cli - "FSNETCMD_TESTPACKET", # 17 - "FSNETCMD_LOCKON", # 18 Svr<->Cli - "FSNETCMD_REMOVEGROUND", # 19 Svr<->Cli - "FSNETCMD_MISSILELAUNCH", # 20 Svr<->Cli # fsweapon.cpp is responsible for encoding/decoding - "FSNETCMD_GROUNDSTATE", # 21 Svr<->Cli # Be careful in FsDeleteOldStatePacket when modify - "FSNETCMD_GETDAMAGE", # 22 Svr<->Cli - "FSNETCMD_GNDTURRETSTATE", # 23 Svr<->Cli - "FSNETCMD_SETTESTAUTOPILOT", # 24 Svr ->Cli - "FSNETCMD_REQTOBESIDEWINDOWOFSVR", # 25 Svr<- Cli - "FSNETCMD_ASSIGNSIDEWINDOW", # 26 Svr ->Cli - "FSNETCMD_RESENDAIRREQUEST", # 27 Svr<- Cli - "FSNETCMD_RESENDGNDREQUEST", # 28 Svr<- Cli - "FSNETCMD_VERSIONNOTIFY", # 29 Svr ->Cli - "FSNETCMD_AIRCMD", # 30 Svr<->Cli # After 2001/06/24 - "FSNETCMD_USEMISSILE", # 31 Svr ->Cli # After 2001/06/24 - "FSNETCMD_TEXTMESSAGE", # 32 Svr<->Cli - "FSNETCMD_ENVIRONMENT", # 33 Svr<->Cli (*1) - "FSNETCMD_NEEDRESENDJOINAPPROVAL", # 34 Svr<- Cli - "FSNETCMD_REVIVEGROUND", # 35 Svr ->Cli # After 2004 - "FSNETCMD_WEAPONCONFIG", # 36 Svr<->Cli # After 20040618 - "FSNETCMD_LISTUSER", # 37 Svr<->Cli # After 20040726 - "FSNETCMD_QUERYAIRSTATE", # 38 Cli ->Svr # After 20050207 - "FSNETCMD_USEUNGUIDEDWEAPON", # 39 Svr ->Cli # After 20050323 - "FSNETCMD_AIRTURRETSTATE", # 40 Svr<->Cli # After 20050701 - "FSNETCMD_CTRLSHOWUSERNAME", # 41 Svr ->Cli # After 20050914 - "FSNETCMD_CONFIRMEXISTENCE", # 42 Not Used - "FSNETCMD_CONFIGSTRING", # 43 Svr ->Cli # After 20060514 Cli->Svr for read back - "FSNETCMD_LIST", # 44 Svr ->Cli # After 20060514 Cli->Svr for read back - "FSNETCMD_GNDCMD", # 45 Svr<->Cli - "FSNETCMD_REPORTSCORE", # 46 Svr -> Cli # After 20100630 (Older version will ignore) - "FSNETCMD_SERVER_FORCE_JOIN", # 47 Svr -> Cli - "FSNETCMD_FOGCOLOR", # 48 Svr -> Cli - "FSNETCMD_SKYCOLOR", # 49 Svr -> Cli - "FSNETCMD_GNDCOLOR", # 50 Svr -> Cli - "FSNETCMD_RESERVED_FOR_LIGHTCOLOR",# 51 Svr -> Cli - "FSNETCMD_GENERATEATTACKER", # 52 - "FSNETCMD_RESERVED22", # 53 - "FSNETCMD_RESERVED23", # 54 - "FSNETCMD_RESERVED24", # 55 - "FSNETCMD_RESERVED25", # 56 - "FSNETCMD_RESERVED26", # 57 - "FSNETCMD_RESERVED27", # 58 - "FSNETCMD_RESERVED28", # 59 - "FSNETCMD_RESERVED29", # 60 - "FSNETCMD_RESERVED30", # 61 - "FSNETCMD_RESERVED31", # 62 - "FSNETCMD_RESERVED32", # 63 - "FSNETCMD_OPENYSF_RESERVED33", # 64 Reserved for OpenYSF - "FSNETCMD_OPENYSF_RESERVED34", # 65 Reserved for OpenYSF - "FSNETCMD_OPENYSF_RESERVED35", # 66 Reserved for OpenYSF - "FSNETCMD_OPENYSF_RESERVED36", # 67 Reserved for OpenYSF - "FSNETCMD_OPENYSF_RESERVED37", # 68 Reserved for OpenYSF - "FSNETCMD_OPENYSF_RESERVED38", # 69 Reserved for OpenYSF - "FSNETCMD_OPENYSF_RESERVED39", # 70 Reserved for OpenYSF - "FSNETCMD_OPENYSF_RESERVED40", # 71 Reserved for OpenYSF - "FSNETCMD_OPENYSF_RESERVED41", # 72 Reserved for OpenYSF - "FSNETCMD_OPENYSF_RESERVED42", # 73 Reserved for OpenYSF - "FSNETCMD_RESERVED43", # 74 - "FSNETCMD_RESERVED44", # 75 - "FSNETCMD_RESERVED45", # 76 - "FSNETCMD_RESERVED46", # 77 - "FSNETCMD_RESERVED47", # 78 - "FSNETCMD_RESERVED48", # 79 - "FSNETCMD_RESERVED49", # 80 - "FSNETCMD_NOP" -] - -READBACKS = ["FSNETREADBACK_ADDAIRPLANE", - "FSNETREADBACK_ADDGROUND", - "FSNETREADBACK_REMOVEAIRPLANE", - "FSNETREADBACK_REMOVEGROUND", - "FSNETREADBACK_ENVIRONMENT", - "FSNETREADBACK_JOINREQUEST", - "FSNETREADBACK_JOINAPPROVAL", - "FSNETREADBACK_PREPARE", - "FSNETREADBACK____UNUSED____", - "FSNETREADBACK_USEMISSILE", - "FSNETREADBACK_USEUNGUIDEDWEAPON", - "FSNETREADBACK_CTRLSHOWUSERNAME"] - -FSWEAPON_DICT = { - 0: "FSWEAPON_GUN", - 1: "FSWEAPON_AIM9", - 2: "FSWEAPON_AGM65", - 3: "FSWEAPON_BOMB", - 4: "FSWEAPON_ROCKET", - 5: "FSWEAPON_FLARE", - 6: "FSWEAPON_AIM120", - 7: "FSWEAPON_BOMB250", - 8: "FSWEAPON_SMOKE", - 9: "FSWEAPON_BOMB500HD", - 10: "FSWEAPON_AIM9X", - 11: "FSWEAPON_FLAREPOD", - 12: "FSWEAPON_FUELTANK", - 13: "FSWEAPON_RESERVED13", - 14: "FSWEAPON_RESERVED14", - 15: "FSWEAPON_RESERVED15", - 16: "FSWEAPON_RESERVED16", - 17: "FSWEAPON_RESERVED17", - 18: "FSWEAPON_RESERVED18", - 19: "FSWEAPON_RESERVED19", - 20: "FSWEAPON_RESERVED20", - 21: "FSWEAPON_RESERVED21", - 22: "FSWEAPON_RESERVED22", - 23: "FSWEAPON_RESERVED23", - 24: "FSWEAPON_RESERVED24", - 25: "FSWEAPON_RESERVED25", - 26: "FSWEAPON_RESERVED26", - 27: "FSWEAPON_RESERVED27", - 28: "FSWEAPON_RESERVED28", - 29: "FSWEAPON_RESERVED29", - 30: "FSWEAPON_RESERVED30", - 31: "FSWEAPON_RESERVED31", - 32: "FSWEAPON_SMOKE0", - 33: "FSWEAPON_SMOKE1", - 34: "FSWEAPON_SMOKE2", - 35: "FSWEAPON_SMOKE3", - 36: "FSWEAPON_SMOKE4", - 37: "FSWEAPON_SMOKE5", - 38: "FSWEAPON_SMOKE6", - 39: "FSWEAPON_SMOKE7", - 40: "FSWEAPON_RESERVED40", - 41: "FSWEAPON_RESERVED41", - 42: "FSWEAPON_RESERVED42", - 43: "FSWEAPON_RESERVED43", - 44: "FSWEAPON_RESERVED44", - 45: "FSWEAPON_RESERVED45", - 46: "FSWEAPON_RESERVED46", - 47: "FSWEAPON_RESERVED47", - 48: "FSWEAPON_NUMWEAPONTYPE", - 127: "FSWEAPON_NULL", - 128: "FSWEAPON_DEBRIS", - 200: "FSWEAPON_FLARE_INTERNAL" -} - -GUIDEDWEAPONS = missiles = ["FSWEAPON_AGM65", "FSWEAPON_AIM9", "FSWEAPON_AIM120", - "FSWEAPON_AIM9X", "FSWEAPON_ROCKET"] - -ERROR_CODES = ["FSNETERR_NOERR", - "FSNETERR_VERSIONCONFLICT", - "FSNETERR_CANNOTADDOBJECT", - "FSNETERR_REJECT", - "FSNETERR_CANNOTSUSTAIN"] - -AIRCMD_KEYWORDS = [ - "AFTBURNR", #TRUE/FALSE HAS AFTERBURNER - "THRAFTBN", ###[N][KG][LB] AFTERBURNER POWER - "THRMILIT", ###[N][KG][LB] MILITARY POWER - "WEIGHCLN", ###[KG][LB] CLEAN WEIGHT - "WEIGFUEL", ###[KG][LB] MAX WEIGHT OF FUEL - "WEIGLOAD", ###[KG][LB] MAX WEIGHT OF PAYLOAD - "FUELABRN", ###[KG][LB] FUEL CONSUMPTION/SEC WHEN BURNER ON - "FUELMILI", ###[KG][LB] FUEL CONSUMPTION/SEC WHEN MIL POWER - - "LEFTGEAR", #X Y Z [M][IN] LEFT MAIN GEAR POSITION - "RIGHGEAR", #X Y Z [M][IN] RIGHT MAIN GEAR POSITION - "WHELGEAR", #X Y Z [M][IN] WHEEL POSITION - - "CRITAOAP", ###[RAD][DEG] CRITICAL AOA (PLUS) - "CRITAOAM", ###[RAD][DEG] CRITICAL AOA (MINUS - - "CRITSPED", ###[KT][KM/H][M/S][MACH]CRITICAL AIRSPEED - "MAXSPEED", ###[KT][KM/H][M/S][MACH]MAXIMUM AIRSPEED - - "HASSPOIL", #TRUE/FALSE HAS SPOILER - "RETRGEAR", #TRUE/FALSE LANDING GEAR IS RETRACTABLE - "VARGEOMW", #TRUE/FALSE HAS VARIABLE GEOMETRY WING - - "CLVARGEO", ###(DIMENSIONLESS) INCREASE OF CL WHEN VGW IS EXTENDED - "CDVARGEO", ###(DIMENSIONLESS) INCREASE OF CD WHEN VGW IS EXTENDED - "CLBYFLAP", ###(DIMENSIONLESS) INCREASE OF CL WHEN FLAP FULL DOWN - "CDBYFLAP", ###(DIMENSIONLESS) INCREASE OF CD WHEN FLAP FULL DOWN - "CDBYGEAR", ###(DIMENSIONLESS) INCREASE OF CD WHEN GEAR DOWN - "CDSPOILR", ###(DIMENSIONLESS) INCREASE OF CD WHEN SPOILER IS DEPLOYED - - "WINGAREA", ###[M^2][IN^2] AREA OF WING - - "MXIPTAOA", ###[RAD][DEG] MAX INPUT AOA - "MXIPTSSA", ###[RAD][DEG] MAX INPUT YAW - "MXIPTROL", ###[RAD][DEG] MAX INPUT ROLL RATIO - - "CPITMANE", ###(DIMENSIONLESS) PITCH MANEUVABILITY CONSTANT - "CPITSTAB", ###(DIMENSIONLESS) PITCH STABILITY CONSTANT - "CYAWMANE", ###(DIMENSIONLESS) YAW MANEUVABILITY CONSTANT - "CYAWSTAB", ###(DIMENSIONLESS) YAW STABILITY CONSTANT - "CROLLMAN", ###(DIMENSIONLESS) ROLL MANEUVABILITY CONSTANT - - - "CTLLDGEA", #TRUE/FALSE INITIAL GEAR - "CTLBRAKE", #TRUE/FALSE INITIAL BRAKE - "CTLSPOIL", #0.0-1.0 INITIAL SPOILER - "CTLABRNR", #TRUE/FALSE INITIAL AFTERBURNER - "CTLTHROT", #0.0-1.0 INITIAL THROTTLE - "CTLIFLAP", #0.0-1.0 INITIAL FLAP - "CTLINVGW", #0.0-1.0 INITIAL VGW - "CTLATVGW", #TRUE/FALSE INITIAL AUTO VGW - - "POSITION", #X Y Z [M][IN] - "ATTITUDE", #H P B [DEG][RAD] - "INITFUEL", ###[KG][LB] - "INITLOAD", ###[KG][LB] - "INITSPED", ###[M/S][KT][MACH] - - - - "REFVCRUS", ###[M/S][KM/H][KT] CRUISING SPEED - "REFACRUS", ###[M][FT] CRUISING ALTITUDE - "REFVLAND", ###[M/S][KM/H][KT] LANDING SPEED - "REFAOALD", ###[DEG][RAD] AOA WHILE APPROACHING - "REFLNRWY", ###[M][FT][KM] RUNWAY LENGTH REQUIRED TO LAND - - "REM", - - "COCKPITP", - "REFTHRLD", - "REFTCRUS", - - "AUTOCALC", - - "IDENTIFY", - - "MANESPD1", - "MANESPD2", - - "MACHNGUN", - "SMOKEGEN", - "HTRADIUS", - "TRIGGER1", - "TRIGGER2", - "TRIGGER3", - "TRIGGER4", - - "STRENGTH", - - "PROPELLR", - - "VAPORPO0", - "VAPORPO1", - - "INITIGUN", - "INITIAAM", - "INITIAGM", - - "MANESPD3", - - "RADARCRS", - - "MACHNGN2", - - "SMOKEOIL", - "WEAPONCH", - "INITBOMB", - - "MONTRILS", - - "GUNPOWER", - - "CATEGORY", # Normal,Utility or Aerobatic (+fighter, attacker) - - "VGWSPED1", # Auto Vgw Reference Speed (Slower Speed) - "VGWSPED2", # Auto Vgw Reference Speed (Faster Speed) - - "GUNDIREC", # GUN direction - - # 2001/05/06 >> - "INITRCKT", # Initial number of rockets - "MAXNMGUN", # chMaxNumGunBullet - "MAXNMAAM", # chMaxNumAAM Deprecated 2010/08/04 - "MAXNMAGM", # chMaxNumAGM Deprecated 2010/08/04 - "MAXNMRKT", # chMaxNumRocket Deprecated 2010/08/04 - - # 2001/06/05 >> - "AAMSLOT_", # chAAMSlot[chNumAAMSlot++] - "AGMSLOT_", # chAGMSlot[chNumAGMSlot++] - "RKTSLOT_", # chRocketSlot[chNumRocketSlot++] - "BOMBSLOT", # chBombSlot[chNumBombSlot++] - "AAMVISIB", # chAAMVisible; - "AGMVISIB", # chAGMVisible; - "BOMVISIB", # chBombVisible; - "RKTVISIB", # chRocketVisible - "MAXNBOMB", # chMaxNumBomb Deprecated 2010/08/04 - - # 2002/12/11 >> - "ARRESTER", # chArrestingHook - - # 2003/02/02 >> - "TRSTVCTR", # chHasThrustVector - "TRSTDIR0", # chThrVec0 - "TRSTDIR1", # chThrVec1 - "PSTMPTCH", # Post-Stall VPitch - "PSTMYAW_", # Post-Stall VYaw - "PSTMROLL", # Post-Stall VRoll - - # 2003/02/12 - "AIRCLASS", # Aircraft class - - # 2003#02/15 - "PROPEFCY", # Propeller efficiency - "PROPVMIN", # Minimum speed that T=P/v becomes valid - - # 2003/09/19 - "VRGMNOSE", # Variable Geometry Nose : Concorde only - - - # 2003/11/25 - "THRSTREV", # Effectiveness of the Thrust Reverser - - - # 2004/05/22 - "GUNSIGHT", # Lead Gun Sight - - - # 2004/06/14 - "HRDPOINT", # Defining a hardpoint - "LOADWEPN", # Load weapons - "LMTBYHDP", # Limit weapons by hardpoint definition. - "UNLOADWP", # Unload All Weapons (Missiles, Bombs, Rockets. Excluding Guns, Smokes, and Flare) - - # 2005/01/03 - "INSTPANL", # Draw an instrument panel instead of a hud. (av[1] for inst panel definition file.) - - # 2005/01/05 - "MACHNGN3", - "MACHNGN4", - "MACHNGN5", - "MACHNGN6", - "MACHNGN7", - "MACHNGN8", - - # 2005/01/11 - "BOMINBAY", - "BMBAYRCS", - - # 2005/01/23 - "INITAAMM", # Mid-Range AAM - "MAXNAAMM", # Max # Mid-Range AAM - "INITB250", # 250lb Bomb - "MAXNB250", # Max # 250lb Bomb - - # 2005/03/08 - "GUNINTVL", # Gun Interval - - # 2005/06/26 - "NMTURRET", # Number of turret - "TURRETPO", # 0 0m -0.8m 2.7m 0deg 0deg 0deg # Number x y z h p b - "TURRETPT", # 0 -40deg 0deg 0deg # Number MinPitch MaxPitch NeutralPitch - "TURRETHD", # 0 -120deg 120deg 0deg # Number MinHdg MaxHdg NeutralHdg - "TURRETAM", # 0 0 # Ammo(zero -> staGunBullet will be used) - "TURRETIV", # 0 0.5sec # Number ShootingInterval - "TURRETNM", # 0 GUN # DNM Node Name - "TURRETAR", # 0 FALSE # TRUE -> Anti Air Capable - "TURRETGD", # 0 TRUE # TRUE -> Anti Ground Capable - "TURRETCT", # "PILOT" or "GUNNER" - "TURRETRG", # Range - # 2005/09/28 - "TURRETNH", # DNM Node Name (Heading Rotation) - "TURRETNP", # DNM Node Name (Pitch Rotation) - - # 2006/04/25 - "SETCNTRL", # Set Control eg. ILS TRIM:0.3 etc. - - # 2006/07/19 - "EXCAMERA", # Extra Camera - - # 2006/08/05 - "NMACHNGN", # Number of machine guns. - - # 2007/04/06 - "SMOKECOL", # Smoke Color #dmy# R G B - - # 2007/09/16 - "SUBSTNAM", # Substitute airplane (In case the airplane was not installed) - - # 2010/06/26 - "ISPNLPOS", # Instrument Panel Position - "ISPNLSCL", # Instrument Panel Scaling - - # 2010/06/29 - "ISPNLHUD", # Use both inst panel and HUD - "COCKPITA", # Neutral Head Direction - - # 2010/06/30 - "SCRNCNTR", # Screen center (Relative. (-1.0,-1.0)-(1.0,1.0) - "ISPNLATT", # Instrument Panel Orientation - "MAXNMFLR", # Maximum number of flare - - # 2010/07/01 - "FLAPPOSI", # Flap position - "FLAREPOS", # Flare Dispenser Position and Direction - - # 2010/12/11 - "INITAAAM", # Initialize AIM9X - "INITHDBM", # Initialize High-Drag bomb - "ULOADAAM", # Unload all AAMs - "ULOADAGM", # Unload all AGMs - "ULOADBOM", # Unload all Bombs - "ULOADFLR", # Unload all Flare - "ULOADGUN", # Unload all Gun - "ULOADRKT", # Unload all Rocket - - # 2011/12/25 - "LOOKOFST", # Look-at Offset - - # 2012/02/02 - "WPNSHAPE", # Weapon-shape override - - # 2012/02/21 - "GEARHORN", # Landing-gear warning horn - "STALHORN", # Stall-warning horn - - # 2013/04/14 - "CKPITIST", # To Make inst panel available in only one of EXCAMERAs, it can be hidden in the default cockpit view. - "CKPITHUD", # To Make HUD available in only one of EXCAMERAs, it can be hidden in the default cockpit view. - - # 2013/04/25 - "MALFUNCT", # Malfunction - "REPAIRAL", # Repair all - - # 2013/04/25 - "REPAIRFN", # Repair functionality - - # 2013/06/02 - "NOLDGFLR", # No landing flare - - # 2014/06/05 - "NREALPRP", # Number of (real) propeller engines - "REALPROP", # Support for realistic propeller engine - - # 2014/06/13 - "TIREFRIC", # Tire friction coefficient - - # 2014/06/24 - "PSTMSPD1", # Maximum speed that the direct attitude control is fully effective. - "PSTMSPD2", # Speed at which the direct attitude control becomes ineffective. - "PSTMPWR1", # Minimum required power setting for direct attitude control - "PSTMPWR2", # Power setting at which the direct attitude control is fully effective - - # 2014/07/11 - "MAXCDAOA", - "FLATCLR1", - "FLATCLR2", - "CLDECAY1", - "CLDECAY2", - - # 2014/10/17 - "AIRSTATE", # I'm shocked that I didn't have it yet. - - # 2018/10/07 - "INITZOOM", # Initial zoom factor - - None -]
\ No newline at end of file +from .FSNETCMD_LOGON import FSNETCMD_LOGON +from .FSNETCMD_LOGOFF import FSNETCMD_LOGOFF +from .FSNETCMD_ERROR import FSNETCMD_ERROR +from .FSNETCMD_LOADFIELD import FSNETCMD_LOADFIELD +from .FSNETCMD_ADDOBJECT import FSNETCMD_ADDOBJECT +from .FSNETCMD_READBACK import FSNETCMD_READBACK +from .FSNETCMD_SMOKECOLOR import FSNETCMD_SMOKECOLOR +from .FSNETCMD_JOINREQUEST import FSNETCMD_JOINREQUEST +from .FSNETCMD_JOINAPPROVAL import FSNETCMD_JOINAPPROVAL +from .FSNETCMD_REJECTJOINREQ import FSNETCMD_REJECTJOINREQ +from .FSNETCMD_AIRPLANESTATE import FSNETCMD_AIRPLANESTATE +from .FSNETCMD_UNJOIN import FSNETCMD_UNJOIN +from .FSNETCMD_REMOVEAIRPLANE import FSNETCMD_REMOVEAIRPLANE +from .FSNETCMD_REQUESTTESTAIRPLANE import FSNETCMD_REQUESTTESTAIRPLANE +from .FSNETCMD_KILLSERVER import FSNETCMD_KILLSERVER +from .FSNETCMD_PREPARESIMULATION import FSNETCMD_PREPARESIMULATION +from .FSNETCMD_TESTPACKET import FSNETCMD_TESTPACKET +from .FSNETCMD_LOCKON import FSNETCMD_LOCKON +from .FSNETCMD_REMOVEGROUND import FSNETCMD_REMOVEGROUND +from .FSNETCMD_MISSILELAUNCH import FSNETCMD_MISSILELAUNCH +#from .FSNETCMD_GROUNDSTATE import FSNETCMD_GROUNDSTATE +from .FSNETCMD_GETDAMAGE import FSNETCMD_GETDAMAGE +#from .FSNETCMD_GNDTURRETSTATE import FSNETCMD_GNDTURRETSTATE +#from .FSNETCMD_SETTESTAUTOPILOT import FSNETCMD_SETTESTAUTOPILOT +#from .FSNETCMD_REQTOBESIDEWINDOWOFSVR import FSNETCMD_REQTOBESIDEWINDOWOFSVR +#from .FSNETCMD_ASSIGNSIDEWINDOW import FSNETCMD_ASSIGNSIDEWINDOW +#from .FSNETCMD_RESENDAIRREQUEST import FSNETCMD_RESENDAIRREQUEST +#from .FSNETCMD_RESENDGNDREQUEST import FSNETCMD_RESENDGNDREQUEST +#from .FSNETCMD_VERSIONNOTIFY import FSNETCMD_VERSIONNOTIFY +from .FSNETCMD_AIRCMD import FSNETCMD_AIRCMD +#from .FSNETCMD_USEMISSILE import FSNETCMD_USEMISSILE +from .FSNETCMD_TEXTMESSAGE import FSNETCMD_TEXTMESSAGE +from .FSNETCMD_ENVIRONMENT import FSNETCMD_ENVIRONMENT +#from .FSNETCMD_NEEDRESENDJOINAPPROVAL import FSNETCMD_NEEDRESENDJOINAPPROVAL +#from .FSNETCMD_REVIVEGROUND import FSNETCMD_REVIVEGROUND +from .FSNETCMD_WEAPONCONFIG import FSNETCMD_WEAPONCONFIG +#from .FSNETCMD_LISTUSER import FSNETCMD_LISTUSER +#from .FSNETCMD_QUERYAIRSTATE import FSNETCMD_QUERYAIRSTATE +#from .FSNETCMD_USEUNGUIDEDWEAPON import FSNETCMD_USEUNGUIDEDWEAPON +#from .FSNETCMD_AIRTURRETSTATE import FSNETCMD_AIRTURRETSTATE +#from .FSNETCMD_CTRLSHOWUSERNAME import FSNETCMD_CTRLSHOWUSERNAME +#from .FSNETCMD_CONFIRMEXISTENCE import FSNETCMD_CONFIRMEXISTENCE +#from .FSNETCMD_CONFIGSTRING import FSNETCMD_CONFIGSTRING +#from .FSNETCMD_LIST import FSNETCMD_LIST +#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_GNDCOLOR import FSNETCMD_GNDCOLOR +#from .FSNETCMD_RESERVED_FOR_LIGHTCOLOR import FSNETCMD_RESERVED_FOR_LIGHTCOLOR +#from .FSNETCMD_GENERATEATTACKER import FSNETCMD_GENERATEATTACKER + + +__all__ = ["FSNETCMD_LOGON", "FSNETCMD_LOGOFF", "FSNETCMD_ERROR", + "FSNETCMD_LOADFIELD", "FSNETCMD_ADDOBJECT", + "FSNETCMD_READBACK", "FSNETCMD_SMOKECOLOR", + "FSNETCMD_JOINREQUEST", "FSNETCMD_JOINAPPROVAL", + "FSNETCMD_REJECTJOINREQ", "FSNETCMD_AIRPLANESTATE", + "FSNETCMD_UNJOIN", "FSNETCMD_REMOVEAIRPLANE", + "FSNETCMD_REQUESTTESTAIRPLANE", "FSNETCMD_KILLSERVER", + "FSNETCMD_PREPARESIMULATION", "FSNETCMD_TESTPACKET", + "FSNETCMD_LOCKON", "FSNETCMD_REMOVEGROUND", + "FSNETCMD_MISSILELAUNCH", "FSNETCMD_GETDAMAGE", + "FSNETCMD_WEAPONCONFIG", "FSNETCMD_AIRCMD", + "FSNETCMD_TEXTMESSAGE", "FSNETCMD_ENVIRONMENT"] diff --git a/lib/PacketManager/packets/constants.py b/lib/PacketManager/packets/constants.py new file mode 100644 index 0000000..7a32e22 --- /dev/null +++ b/lib/PacketManager/packets/constants.py @@ -0,0 +1,472 @@ + + +MESSAGE_TYPES = [ + "FSNETCMD_NULL", # 0 + "FSNETCMD_LOGON", # 1 Cli ->Svr", (Svr->Cli for log-on complete acknowledgement.) + "FSNETCMD_LOGOFF", # 2 + "FSNETCMD_ERROR", # 3 + "FSNETCMD_LOADFIELD", # 4 Svr ->Cli", Cli->Svr for read back + "FSNETCMD_ADDOBJECT", # 5 Svr ->Cli + "FSNETCMD_READBACK", # 6 Svr<->Cli + "FSNETCMD_SMOKECOLOR", # 7 Svr<->Cli + "FSNETCMD_JOINREQUEST", # 8 Svr<- Cli + "FSNETCMD_JOINAPPROVAL", # 9 Svr ->Cli + "FSNETCMD_REJECTJOINREQ", # 10 + "FSNETCMD_AIRPLANESTATE", # 11 Svr<->Cli # Be careful in FsDeleteOldStatePacket when modify + "FSNETCMD_UNJOIN", # 12 Svr<- Cli + "FSNETCMD_REMOVEAIRPLANE", # 13 Svr<->Cli + "FSNETCMD_REQUESTTESTAIRPLANE", # 14 + "FSNETCMD_KILLSERVER", # 15 Svr<- Cli + "FSNETCMD_PREPARESIMULATION", # 16 Svr ->Cli + "FSNETCMD_TESTPACKET", # 17 + "FSNETCMD_LOCKON", # 18 Svr<->Cli + "FSNETCMD_REMOVEGROUND", # 19 Svr<->Cli + "FSNETCMD_MISSILELAUNCH", # 20 Svr<->Cli # fsweapon.cpp is responsible for encoding/decoding + "FSNETCMD_GROUNDSTATE", # 21 Svr<->Cli # Be careful in FsDeleteOldStatePacket when modify + "FSNETCMD_GETDAMAGE", # 22 Svr<->Cli + "FSNETCMD_GNDTURRETSTATE", # 23 Svr<->Cli + "FSNETCMD_SETTESTAUTOPILOT", # 24 Svr ->Cli + "FSNETCMD_REQTOBESIDEWINDOWOFSVR", # 25 Svr<- Cli + "FSNETCMD_ASSIGNSIDEWINDOW", # 26 Svr ->Cli + "FSNETCMD_RESENDAIRREQUEST", # 27 Svr<- Cli + "FSNETCMD_RESENDGNDREQUEST", # 28 Svr<- Cli + "FSNETCMD_VERSIONNOTIFY", # 29 Svr ->Cli + "FSNETCMD_AIRCMD", # 30 Svr<->Cli # After 2001/06/24 + "FSNETCMD_USEMISSILE", # 31 Svr ->Cli # After 2001/06/24 + "FSNETCMD_TEXTMESSAGE", # 32 Svr<->Cli + "FSNETCMD_ENVIRONMENT", # 33 Svr<->Cli (*1) + "FSNETCMD_NEEDRESENDJOINAPPROVAL", # 34 Svr<- Cli + "FSNETCMD_REVIVEGROUND", # 35 Svr ->Cli # After 2004 + "FSNETCMD_WEAPONCONFIG", # 36 Svr<->Cli # After 20040618 + "FSNETCMD_LISTUSER", # 37 Svr<->Cli # After 20040726 + "FSNETCMD_QUERYAIRSTATE", # 38 Cli ->Svr # After 20050207 + "FSNETCMD_USEUNGUIDEDWEAPON", # 39 Svr ->Cli # After 20050323 + "FSNETCMD_AIRTURRETSTATE", # 40 Svr<->Cli # After 20050701 + "FSNETCMD_CTRLSHOWUSERNAME", # 41 Svr ->Cli # After 20050914 + "FSNETCMD_CONFIRMEXISTENCE", # 42 Not Used + "FSNETCMD_CONFIGSTRING", # 43 Svr ->Cli # After 20060514 Cli->Svr for read back + "FSNETCMD_LIST", # 44 Svr ->Cli # After 20060514 Cli->Svr for read back + "FSNETCMD_GNDCMD", # 45 Svr<->Cli + "FSNETCMD_REPORTSCORE", # 46 Svr -> Cli # After 20100630 (Older version will ignore) + "FSNETCMD_SERVER_FORCE_JOIN", # 47 Svr -> Cli + "FSNETCMD_FOGCOLOR", # 48 Svr -> Cli + "FSNETCMD_SKYCOLOR", # 49 Svr -> Cli + "FSNETCMD_GNDCOLOR", # 50 Svr -> Cli + "FSNETCMD_RESERVED_FOR_LIGHTCOLOR",# 51 Svr -> Cli + "FSNETCMD_GENERATEATTACKER", # 52 + "FSNETCMD_RESERVED22", # 53 + "FSNETCMD_RESERVED23", # 54 + "FSNETCMD_RESERVED24", # 55 + "FSNETCMD_RESERVED25", # 56 + "FSNETCMD_RESERVED26", # 57 + "FSNETCMD_RESERVED27", # 58 + "FSNETCMD_RESERVED28", # 59 + "FSNETCMD_RESERVED29", # 60 + "FSNETCMD_RESERVED30", # 61 + "FSNETCMD_RESERVED31", # 62 + "FSNETCMD_RESERVED32", # 63 + "FSNETCMD_OPENYSF_RESERVED33", # 64 Reserved for OpenYSF + "FSNETCMD_OPENYSF_RESERVED34", # 65 Reserved for OpenYSF + "FSNETCMD_OPENYSF_RESERVED35", # 66 Reserved for OpenYSF + "FSNETCMD_OPENYSF_RESERVED36", # 67 Reserved for OpenYSF + "FSNETCMD_OPENYSF_RESERVED37", # 68 Reserved for OpenYSF + "FSNETCMD_OPENYSF_RESERVED38", # 69 Reserved for OpenYSF + "FSNETCMD_OPENYSF_RESERVED39", # 70 Reserved for OpenYSF + "FSNETCMD_OPENYSF_RESERVED40", # 71 Reserved for OpenYSF + "FSNETCMD_OPENYSF_RESERVED41", # 72 Reserved for OpenYSF + "FSNETCMD_OPENYSF_RESERVED42", # 73 Reserved for OpenYSF + "FSNETCMD_RESERVED43", # 74 + "FSNETCMD_RESERVED44", # 75 + "FSNETCMD_RESERVED45", # 76 + "FSNETCMD_RESERVED46", # 77 + "FSNETCMD_RESERVED47", # 78 + "FSNETCMD_RESERVED48", # 79 + "FSNETCMD_RESERVED49", # 80 + "FSNETCMD_NOP" +] + +READBACKS = ["FSNETREADBACK_ADDAIRPLANE", + "FSNETREADBACK_ADDGROUND", + "FSNETREADBACK_REMOVEAIRPLANE", + "FSNETREADBACK_REMOVEGROUND", + "FSNETREADBACK_ENVIRONMENT", + "FSNETREADBACK_JOINREQUEST", + "FSNETREADBACK_JOINAPPROVAL", + "FSNETREADBACK_PREPARE", + "FSNETREADBACK____UNUSED____", + "FSNETREADBACK_USEMISSILE", + "FSNETREADBACK_USEUNGUIDEDWEAPON", + "FSNETREADBACK_CTRLSHOWUSERNAME"] + +FSWEAPON_DICT = { + 0: "FSWEAPON_GUN", + 1: "FSWEAPON_AIM9", + 2: "FSWEAPON_AGM65", + 3: "FSWEAPON_BOMB", + 4: "FSWEAPON_ROCKET", + 5: "FSWEAPON_FLARE", + 6: "FSWEAPON_AIM120", + 7: "FSWEAPON_BOMB250", + 8: "FSWEAPON_SMOKE", + 9: "FSWEAPON_BOMB500HD", + 10: "FSWEAPON_AIM9X", + 11: "FSWEAPON_FLAREPOD", + 12: "FSWEAPON_FUELTANK", + 13: "FSWEAPON_RESERVED13", + 14: "FSWEAPON_RESERVED14", + 15: "FSWEAPON_RESERVED15", + 16: "FSWEAPON_RESERVED16", + 17: "FSWEAPON_RESERVED17", + 18: "FSWEAPON_RESERVED18", + 19: "FSWEAPON_RESERVED19", + 20: "FSWEAPON_RESERVED20", + 21: "FSWEAPON_RESERVED21", + 22: "FSWEAPON_RESERVED22", + 23: "FSWEAPON_RESERVED23", + 24: "FSWEAPON_RESERVED24", + 25: "FSWEAPON_RESERVED25", + 26: "FSWEAPON_RESERVED26", + 27: "FSWEAPON_RESERVED27", + 28: "FSWEAPON_RESERVED28", + 29: "FSWEAPON_RESERVED29", + 30: "FSWEAPON_RESERVED30", + 31: "FSWEAPON_RESERVED31", + 32: "FSWEAPON_SMOKE0", + 33: "FSWEAPON_SMOKE1", + 34: "FSWEAPON_SMOKE2", + 35: "FSWEAPON_SMOKE3", + 36: "FSWEAPON_SMOKE4", + 37: "FSWEAPON_SMOKE5", + 38: "FSWEAPON_SMOKE6", + 39: "FSWEAPON_SMOKE7", + 40: "FSWEAPON_RESERVED40", + 41: "FSWEAPON_RESERVED41", + 42: "FSWEAPON_RESERVED42", + 43: "FSWEAPON_RESERVED43", + 44: "FSWEAPON_RESERVED44", + 45: "FSWEAPON_RESERVED45", + 46: "FSWEAPON_RESERVED46", + 47: "FSWEAPON_RESERVED47", + 48: "FSWEAPON_NUMWEAPONTYPE", + 127: "FSWEAPON_NULL", + 128: "FSWEAPON_DEBRIS", + 200: "FSWEAPON_FLARE_INTERNAL" +} + +GUIDEDWEAPONS = missiles = ["FSWEAPON_AGM65", "FSWEAPON_AIM9", "FSWEAPON_AIM120", + "FSWEAPON_AIM9X", "FSWEAPON_ROCKET"] + +ERROR_CODES = ["FSNETERR_NOERR", + "FSNETERR_VERSIONCONFLICT", + "FSNETERR_CANNOTADDOBJECT", + "FSNETERR_REJECT", + "FSNETERR_CANNOTSUSTAIN"] + +AIRCMD_KEYWORDS = [ + "AFTBURNR", #TRUE/FALSE HAS AFTERBURNER + "THRAFTBN", ###[N][KG][LB] AFTERBURNER POWER + "THRMILIT", ###[N][KG][LB] MILITARY POWER + "WEIGHCLN", ###[KG][LB] CLEAN WEIGHT + "WEIGFUEL", ###[KG][LB] MAX WEIGHT OF FUEL + "WEIGLOAD", ###[KG][LB] MAX WEIGHT OF PAYLOAD + "FUELABRN", ###[KG][LB] FUEL CONSUMPTION/SEC WHEN BURNER ON + "FUELMILI", ###[KG][LB] FUEL CONSUMPTION/SEC WHEN MIL POWER + + "LEFTGEAR", #X Y Z [M][IN] LEFT MAIN GEAR POSITION + "RIGHGEAR", #X Y Z [M][IN] RIGHT MAIN GEAR POSITION + "WHELGEAR", #X Y Z [M][IN] WHEEL POSITION + + "CRITAOAP", ###[RAD][DEG] CRITICAL AOA (PLUS) + "CRITAOAM", ###[RAD][DEG] CRITICAL AOA (MINUS + + "CRITSPED", ###[KT][KM/H][M/S][MACH]CRITICAL AIRSPEED + "MAXSPEED", ###[KT][KM/H][M/S][MACH]MAXIMUM AIRSPEED + + "HASSPOIL", #TRUE/FALSE HAS SPOILER + "RETRGEAR", #TRUE/FALSE LANDING GEAR IS RETRACTABLE + "VARGEOMW", #TRUE/FALSE HAS VARIABLE GEOMETRY WING + + "CLVARGEO", ###(DIMENSIONLESS) INCREASE OF CL WHEN VGW IS EXTENDED + "CDVARGEO", ###(DIMENSIONLESS) INCREASE OF CD WHEN VGW IS EXTENDED + "CLBYFLAP", ###(DIMENSIONLESS) INCREASE OF CL WHEN FLAP FULL DOWN + "CDBYFLAP", ###(DIMENSIONLESS) INCREASE OF CD WHEN FLAP FULL DOWN + "CDBYGEAR", ###(DIMENSIONLESS) INCREASE OF CD WHEN GEAR DOWN + "CDSPOILR", ###(DIMENSIONLESS) INCREASE OF CD WHEN SPOILER IS DEPLOYED + + "WINGAREA", ###[M^2][IN^2] AREA OF WING + + "MXIPTAOA", ###[RAD][DEG] MAX INPUT AOA + "MXIPTSSA", ###[RAD][DEG] MAX INPUT YAW + "MXIPTROL", ###[RAD][DEG] MAX INPUT ROLL RATIO + + "CPITMANE", ###(DIMENSIONLESS) PITCH MANEUVABILITY CONSTANT + "CPITSTAB", ###(DIMENSIONLESS) PITCH STABILITY CONSTANT + "CYAWMANE", ###(DIMENSIONLESS) YAW MANEUVABILITY CONSTANT + "CYAWSTAB", ###(DIMENSIONLESS) YAW STABILITY CONSTANT + "CROLLMAN", ###(DIMENSIONLESS) ROLL MANEUVABILITY CONSTANT + + + "CTLLDGEA", #TRUE/FALSE INITIAL GEAR + "CTLBRAKE", #TRUE/FALSE INITIAL BRAKE + "CTLSPOIL", #0.0-1.0 INITIAL SPOILER + "CTLABRNR", #TRUE/FALSE INITIAL AFTERBURNER + "CTLTHROT", #0.0-1.0 INITIAL THROTTLE + "CTLIFLAP", #0.0-1.0 INITIAL FLAP + "CTLINVGW", #0.0-1.0 INITIAL VGW + "CTLATVGW", #TRUE/FALSE INITIAL AUTO VGW + + "POSITION", #X Y Z [M][IN] + "ATTITUDE", #H P B [DEG][RAD] + "INITFUEL", ###[KG][LB] + "INITLOAD", ###[KG][LB] + "INITSPED", ###[M/S][KT][MACH] + + + + "REFVCRUS", ###[M/S][KM/H][KT] CRUISING SPEED + "REFACRUS", ###[M][FT] CRUISING ALTITUDE + "REFVLAND", ###[M/S][KM/H][KT] LANDING SPEED + "REFAOALD", ###[DEG][RAD] AOA WHILE APPROACHING + "REFLNRWY", ###[M][FT][KM] RUNWAY LENGTH REQUIRED TO LAND + + "REM", + + "COCKPITP", + "REFTHRLD", + "REFTCRUS", + + "AUTOCALC", + + "IDENTIFY", + + "MANESPD1", + "MANESPD2", + + "MACHNGUN", + "SMOKEGEN", + "HTRADIUS", + "TRIGGER1", + "TRIGGER2", + "TRIGGER3", + "TRIGGER4", + + "STRENGTH", + + "PROPELLR", + + "VAPORPO0", + "VAPORPO1", + + "INITIGUN", + "INITIAAM", + "INITIAGM", + + "MANESPD3", + + "RADARCRS", + + "MACHNGN2", + + "SMOKEOIL", + "WEAPONCH", + "INITBOMB", + + "MONTRILS", + + "GUNPOWER", + + "CATEGORY", # Normal,Utility or Aerobatic (+fighter, attacker) + + "VGWSPED1", # Auto Vgw Reference Speed (Slower Speed) + "VGWSPED2", # Auto Vgw Reference Speed (Faster Speed) + + "GUNDIREC", # GUN direction + + # 2001/05/06 >> + "INITRCKT", # Initial number of rockets + "MAXNMGUN", # chMaxNumGunBullet + "MAXNMAAM", # chMaxNumAAM Deprecated 2010/08/04 + "MAXNMAGM", # chMaxNumAGM Deprecated 2010/08/04 + "MAXNMRKT", # chMaxNumRocket Deprecated 2010/08/04 + + # 2001/06/05 >> + "AAMSLOT_", # chAAMSlot[chNumAAMSlot++] + "AGMSLOT_", # chAGMSlot[chNumAGMSlot++] + "RKTSLOT_", # chRocketSlot[chNumRocketSlot++] + "BOMBSLOT", # chBombSlot[chNumBombSlot++] + "AAMVISIB", # chAAMVisible; + "AGMVISIB", # chAGMVisible; + "BOMVISIB", # chBombVisible; + "RKTVISIB", # chRocketVisible + "MAXNBOMB", # chMaxNumBomb Deprecated 2010/08/04 + + # 2002/12/11 >> + "ARRESTER", # chArrestingHook + + # 2003/02/02 >> + "TRSTVCTR", # chHasThrustVector + "TRSTDIR0", # chThrVec0 + "TRSTDIR1", # chThrVec1 + "PSTMPTCH", # Post-Stall VPitch + "PSTMYAW_", # Post-Stall VYaw + "PSTMROLL", # Post-Stall VRoll + + # 2003/02/12 + "AIRCLASS", # Aircraft class + + # 2003#02/15 + "PROPEFCY", # Propeller efficiency + "PROPVMIN", # Minimum speed that T=P/v becomes valid + + # 2003/09/19 + "VRGMNOSE", # Variable Geometry Nose : Concorde only + + + # 2003/11/25 + "THRSTREV", # Effectiveness of the Thrust Reverser + + + # 2004/05/22 + "GUNSIGHT", # Lead Gun Sight + + + # 2004/06/14 + "HRDPOINT", # Defining a hardpoint + "LOADWEPN", # Load weapons + "LMTBYHDP", # Limit weapons by hardpoint definition. + "UNLOADWP", # Unload All Weapons (Missiles, Bombs, Rockets. Excluding Guns, Smokes, and Flare) + + # 2005/01/03 + "INSTPANL", # Draw an instrument panel instead of a hud. (av[1] for inst panel definition file.) + + # 2005/01/05 + "MACHNGN3", + "MACHNGN4", + "MACHNGN5", + "MACHNGN6", + "MACHNGN7", + "MACHNGN8", + + # 2005/01/11 + "BOMINBAY", + "BMBAYRCS", + + # 2005/01/23 + "INITAAMM", # Mid-Range AAM + "MAXNAAMM", # Max # Mid-Range AAM + "INITB250", # 250lb Bomb + "MAXNB250", # Max # 250lb Bomb + + # 2005/03/08 + "GUNINTVL", # Gun Interval + + # 2005/06/26 + "NMTURRET", # Number of turret + "TURRETPO", # 0 0m -0.8m 2.7m 0deg 0deg 0deg # Number x y z h p b + "TURRETPT", # 0 -40deg 0deg 0deg # Number MinPitch MaxPitch NeutralPitch + "TURRETHD", # 0 -120deg 120deg 0deg # Number MinHdg MaxHdg NeutralHdg + "TURRETAM", # 0 0 # Ammo(zero -> staGunBullet will be used) + "TURRETIV", # 0 0.5sec # Number ShootingInterval + "TURRETNM", # 0 GUN # DNM Node Name + "TURRETAR", # 0 FALSE # TRUE -> Anti Air Capable + "TURRETGD", # 0 TRUE # TRUE -> Anti Ground Capable + "TURRETCT", # "PILOT" or "GUNNER" + "TURRETRG", # Range + # 2005/09/28 + "TURRETNH", # DNM Node Name (Heading Rotation) + "TURRETNP", # DNM Node Name (Pitch Rotation) + + # 2006/04/25 + "SETCNTRL", # Set Control eg. ILS TRIM:0.3 etc. + + # 2006/07/19 + "EXCAMERA", # Extra Camera + + # 2006/08/05 + "NMACHNGN", # Number of machine guns. + + # 2007/04/06 + "SMOKECOL", # Smoke Color #dmy# R G B + + # 2007/09/16 + "SUBSTNAM", # Substitute airplane (In case the airplane was not installed) + + # 2010/06/26 + "ISPNLPOS", # Instrument Panel Position + "ISPNLSCL", # Instrument Panel Scaling + + # 2010/06/29 + "ISPNLHUD", # Use both inst panel and HUD + "COCKPITA", # Neutral Head Direction + + # 2010/06/30 + "SCRNCNTR", # Screen center (Relative. (-1.0,-1.0)-(1.0,1.0) + "ISPNLATT", # Instrument Panel Orientation + "MAXNMFLR", # Maximum number of flare + + # 2010/07/01 + "FLAPPOSI", # Flap position + "FLAREPOS", # Flare Dispenser Position and Direction + + # 2010/12/11 + "INITAAAM", # Initialize AIM9X + "INITHDBM", # Initialize High-Drag bomb + "ULOADAAM", # Unload all AAMs + "ULOADAGM", # Unload all AGMs + "ULOADBOM", # Unload all Bombs + "ULOADFLR", # Unload all Flare + "ULOADGUN", # Unload all Gun + "ULOADRKT", # Unload all Rocket + + # 2011/12/25 + "LOOKOFST", # Look-at Offset + + # 2012/02/02 + "WPNSHAPE", # Weapon-shape override + + # 2012/02/21 + "GEARHORN", # Landing-gear warning horn + "STALHORN", # Stall-warning horn + + # 2013/04/14 + "CKPITIST", # To Make inst panel available in only one of EXCAMERAs, it can be hidden in the default cockpit view. + "CKPITHUD", # To Make HUD available in only one of EXCAMERAs, it can be hidden in the default cockpit view. + + # 2013/04/25 + "MALFUNCT", # Malfunction + "REPAIRAL", # Repair all + + # 2013/04/25 + "REPAIRFN", # Repair functionality + + # 2013/06/02 + "NOLDGFLR", # No landing flare + + # 2014/06/05 + "NREALPRP", # Number of (real) propeller engines + "REALPROP", # Support for realistic propeller engine + + # 2014/06/13 + "TIREFRIC", # Tire friction coefficient + + # 2014/06/24 + "PSTMSPD1", # Maximum speed that the direct attitude control is fully effective. + "PSTMSPD2", # Speed at which the direct attitude control becomes ineffective. + "PSTMPWR1", # Minimum required power setting for direct attitude control + "PSTMPWR2", # Power setting at which the direct attitude control is fully effective + + # 2014/07/11 + "MAXCDAOA", + "FLATCLR1", + "FLATCLR2", + "CLDECAY1", + "CLDECAY2", + + # 2014/10/17 + "AIRSTATE", # I'm shocked that I didn't have it yet. + + # 2018/10/07 + "INITZOOM", # Initial zoom factor + + None +] diff --git a/lib/YSchat.py b/lib/YSchat.py index fb23208..d3db201 100644 --- a/lib/YSchat.py +++ b/lib/YSchat.py @@ -1,4 +1,6 @@ from struct import pack, unpack +from lib.PacketManager.packets import FSNETCMD_TEXTMESSAGE +#Re-write this to wrap the FSNETCMD_TEXTMESSAGE class def send(buffer: bytes): """ |
