User Tools

Site Tools


en:games:star_trek_-_voyager_eliteforce

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:games:star_trek_-_voyager_eliteforce [2021-11-21-07-20]
7saturn [The Protocol Behind it]
en:games:star_trek_-_voyager_eliteforce [2022-01-15-10-48] (current)
7saturn [Mods]
Line 20: Line 20:
   * [[https://www.mobile-infanterie.de/lilium-voyager/lilium_voyager_1_40_linux_x64_2021-04-15.7z|Lilium Voyager Version 1.40, Linux, x64]]   * [[https://www.mobile-infanterie.de/lilium-voyager/lilium_voyager_1_40_linux_x64_2021-04-15.7z|Lilium Voyager Version 1.40, Linux, x64]]
   * [[https://www.mobile-infanterie.de/lilium-voyager/lilium_voyager_1_40_macos_x64_2021-04-15.7z|Lilium Voyager Version 1.40, MacOS, x64]]   * [[https://www.mobile-infanterie.de/lilium-voyager/lilium_voyager_1_40_macos_x64_2021-04-15.7z|Lilium Voyager Version 1.40, MacOS, x64]]
 +  * [[https://www.mobile-infanterie.de/lilium-voyager/lilium_voyager_1_40_linux_arm_2021-04-15.7z|Lilium Voyager Version 1.40, ARM]]
   * [[https://www.moddb.com/mods/ioef|ioEF 1.37 (Thilo's Elite Force Patch)]]   * [[https://www.moddb.com/mods/ioef|ioEF 1.37 (Thilo's Elite Force Patch)]]
   * [[https://stvef.org/cmod.php|cMod]]   * [[https://stvef.org/cmod.php|cMod]]
Line 36: Line 37:
 ===== Game Modes ===== ===== Game Modes =====
 The regular multiplayer game modes are: The regular multiplayer game modes are:
-  * Capture the Flag (CTF) +  * [[Capture the Flag]] (CTF) 
-  * Tournament (1 on 1) +  * [[Tournament]] (1 on 1) 
-  * Deathmatch (FFA) +  * [[Deathmatch]] (FFA) 
-  * Team Deathmatch (TDM)+  * [[Team Deathmatch]] (TDM)
 With the addon or version 1.2 of the game, further modes of the multiplayer were added to the basic game: With the addon or version 1.2 of the game, further modes of the multiplayer were added to the basic game:
-  * Elimination: Players fragged are out for the rest of the round (much like [[Counter-Strike]]).+  * [[Last Man Standing|Elimination]]: Players fragged are out for the rest of the round (much like [[Counter-Strike]]).
   * Specialties: Each player plays a specific class that has specific advantages and disadvantages. There are no items on the maps. The infiltrator, for example, always has [[star_trek_-_voyager_elite_force_weapons_and_items#Speedboots]], but only the [[star_trek_-_voyager_elite_force_weapons_and_items#Phaser]]. His special ability is to [[star_trek_-_voyager_elite_force_weapons_and_items#emergency transporter|transport]] away, once. Or the technician has an [[star_trek_-_voyager_elite_force_weapons_and_items#Arc Welder]] and a force field at his disposal. There are the following six classes:   * Specialties: Each player plays a specific class that has specific advantages and disadvantages. There are no items on the maps. The infiltrator, for example, always has [[star_trek_-_voyager_elite_force_weapons_and_items#Speedboots]], but only the [[star_trek_-_voyager_elite_force_weapons_and_items#Phaser]]. His special ability is to [[star_trek_-_voyager_elite_force_weapons_and_items#emergency transporter|transport]] away, once. Or the technician has an [[star_trek_-_voyager_elite_force_weapons_and_items#Arc Welder]] and a force field at his disposal. There are the following six classes:
     * Infiltrator     * Infiltrator
Line 49: Line 50:
     * Medic     * Medic
     * Technician     * Technician
-  * Action Hero: One player starts with more health, which is constantly regenerated (+10 per sec.), up to a maximum of 300. The shield level is also up to a maximum of 300 (but is built up regularly by picking up and becomes less over time) and he has all weapons available (but not infinite ammo). He gets 1 point per frag. The others get 1 point for normal frag. There are 5 points for fragging the Action Hero and the fragger becomes the Action Hero himself (the ability is then taken away from the player fragged)+  * [[Action Hero]]The hero has a health up to a maximum of 300, which is constantly regenerated (+10 per sec.). The shield level is also up to a maximum of 300 (but is built up regularly by picking up and becomes less over time) and he has all weapons available (but not infinite ammo). He gets 1 point per frag. The others get 1 point for normal frag. There are 5 points awarded for fragging the Action Hero. 
-  * Disintegration: All players start with the Phase Compression Rifle with infinite ammo and there is //only// the alternate fire mode.+  * [[Instagib|Disintegration]]: All players start with the Phaser Compression Rifle with infinite ammo and there is //only// the alternate fire mode, killing instantly.
   * Assimilation: One player starts as a Borg queen whose task it is to assimilate the others (Federation). Each additional Borg can assimilate. The Borg have won when all opponents are assimilated. Federation wins when Borgqueen got fragged.   * Assimilation: One player starts as a Borg queen whose task it is to assimilate the others (Federation). Each additional Borg can assimilate. The Borg have won when all opponents are assimilated. Federation wins when Borgqueen got fragged.
  
Line 112: Line 113:
 In principle the installation of the patches 1.1 and 1.2 requires only one precondition: EF must have been installed in the classic way, because otherwise necessary registry keys are not available, so that the patch denies the presence of the game (and only lets you cancel). In principle the installation of the patches 1.1 and 1.2 requires only one precondition: EF must have been installed in the classic way, because otherwise necessary registry keys are not available, so that the patch denies the presence of the game (and only lets you cancel).
 ==== CD Version vs. GOG Version ==== ==== CD Version vs. GOG Version ====
-[[GOG]] re-released the game. You might now wonder if it is worth the trouble. That depends: If you already possess the game, the biggest advantage is that it comes kind of cracked. In fact, the multiplayer binary (version 1.2 34376, aka ''setup_star_trek_voyagertm_elite_force_1.2_(34378).exe'') differs only in three bytes. So it is very much the same as if you simply cracked the game exe and be done with it. No additional patches, but the Expansion Pack is already included. The singleplayer also had the CD check removed, as it is custom with GOG releases. So if you do not possess the game at all, it's definitely worth a try. But if you already have the CD version, then there's very little to gain, except for a newer installer (that will not fail).+[[GOG]] re-released the game. You might now wonder if it is worth the trouble. That depends: If you already possess the game, the biggest advantage is that it comes kind of cracked. In fact, the multiplayer binary (version 1.2 34376, aka ''setup_star_trek_voyagertm_elite_force_1.2_(34378).exe'') differs only in three bytes. So it is very much the same as if you simply cracked the game exe and be done with it. No additional patches, but the Expansion Pack is already included. (If you try and install a patch anyways it won't find the game, as the GOG installer uses different registry keys than the CD installer.) The singleplayer also had the CD check removed, as it is custom with GOG releases. So if you do not possess the game at all, it's definitely worth a try. But if you already have the CD version, then there's very little to gain, except for a newer installer (that will not fail).
 ===== Setting up EF ===== ===== Setting up EF =====
 ==== Installation ==== ==== Installation ====
Line 158: Line 159:
 If you install the EF version from the "Star Trek: Action Pack", this query will appear. You can cancel the dialog here, because the installer installs the CD-Key afterwards. If you install the EF version from the "Star Trek: Action Pack", this query will appear. You can cancel the dialog here, because the installer installs the CD-Key afterwards.
 ==== Hunk_Alloc failed ==== ==== Hunk_Alloc failed ====
-This error occurs when Elite Force does not have enough memory available, or vice versa, too many maps, models and other extensions are loaded. EF does not use all available RAM by default. You can raise the limit yourself: Either you type ''/seta com_hunkmegs x'' into the console, with ''x'' as the amount of memory you want EF to use. Or put ''seta com_hunkmegs x'' in the config. Alternatively you can of course clean up your EF folder and remove maps & stuff you no longer need. However, it is also sufficient to move the less frequently used ''*.pk3'' files to another folder that EF does not access (e.g. create a subfolder ''Backup'').+This error occurs when Elite Force does not have enough memory available, or vice versa, too big maps, models and other extensions are loaded. EF does not use all available RAM by default. You can raise the limit yourself: Put ''+seta com_hunkmegs //x//'' in the starting command (e.g the Windows link file), with ''//x//'' as the amount for RAM to be used in MB. Alternatively you can of course clean up your EF folder and remove maps & stuff you no longer need. However, it is also sufficient to move the less frequently used ''*.pk3'' files to another folder that EF does not access (e.g. create a subfolder //Backup//). Other variables, that might have similar effects are //com_zoneMegs// and //com_soundMegs//
 +====  Z_malloc: Failed on Allocation of XX Bytes ==== 
 +This message is the same problem as the previous one.
 ==== Graphics Problems with ATI/AMD Graphics Cards on New Systems ==== ==== Graphics Problems with ATI/AMD Graphics Cards on New Systems ====
 The OpenGL implementation of AMD graphics cards often causes problems with old games. There is apparently a workaround that is described [[https://fdossena.com/?p=stvef/i.md|here]]. The OpenGL implementation of AMD graphics cards often causes problems with old games. There is apparently a workaround that is described [[https://fdossena.com/?p=stvef/i.md|here]].
Line 241: Line 244:
 | MacOS | untested | ''~/Library/Application Support/Lilium Voyager/baseEF'' | Game folder | ''~/Library/Application Support/STVEF/baseEF'' | | MacOS | untested | ''~/Library/Application Support/Lilium Voyager/baseEF'' | Game folder | ''~/Library/Application Support/STVEF/baseEF'' |
 ==== Custom location ==== ==== Custom location ====
-On ioQuake derived versions (Lilium Voyager, cMod, ioEF) there is also the possibility to explicitly tell the game, where to look for and place player's data. This is done by setting the variable ''fs_homepath'' during server or client start. For example+On ioQuake derived versions (Lilium Voyager, Tulip Voyager, cMod, ioEF) there is also the possibility to explicitly tell the game, where to look for and place player's data. This is done by setting the variable ''fs_homepath'' during server or client start. For example
  
 ''./liliumvoyhm.x86_64 +set fs_homepath ~/my_ef_folder'' ''./liliumvoyhm.x86_64 +set fs_homepath ~/my_ef_folder''
Line 295: Line 298:
   * [[https://www.moddb.com/mods/ef-pinball|Pinball]]: The goal of the game is to shoot the opponent out of the map, not to kill him by regular fragging.   * [[https://www.moddb.com/mods/ef-pinball|Pinball]]: The goal of the game is to shoot the opponent out of the map, not to kill him by regular fragging.
   * [[https://last-outpost.net/about/rpgx|RPG-X]]: A role play game based on EF.   * [[https://last-outpost.net/about/rpgx|RPG-X]]: A role play game based on EF.
 +  * [[https://www.gamefront.com/games/elite-force/file/q32ef|Q32EF]]: Short for Quake 3 for Elite Force, this mod translates some entities of native Q3 maps to EF entities, making Q3 maps playable for EF. This is actually a mod, so Q3 maps will have to go into the corresponding mod folder.
  
 You can activate mods either with the console of from the menu: You can activate mods either with the console of from the menu:
Line 306: Line 310:
 Several mods are still used today, running permanently on many servers. Below are a few of them: Several mods are still used today, running permanently on many servers. Below are a few of them:
   * [[https://www.gamefront.com/games/elite-force/file/ef-admin|EFAdmin]]   * [[https://www.gamefront.com/games/elite-force/file/ef-admin|EFAdmin]]
-  * [[https://www.gamefront.com/games/elite-force/file/gladiator-arena|Gladiator Arena]]+  * [[https://www.gamefront.com/games/elite-force/file/gladiator-arena-4|Gladiator Arena]] ([[https://www.gamefront.com/games/elite-force/file/gladiator-arena-viii|Beta Version]])
   * [[https://www.gamefront.com/games/elite-force/file/power-weapons-v1|Power Weapons]] (Pwrweapon)   * [[https://www.gamefront.com/games/elite-force/file/power-weapons-v1|Power Weapons]] (Pwrweapon)
-  * [[http://beer-garden.n5net.com/downloads/?lid=210|SuperFFA]]+  * [[https://web.archive.org/web/20080227012135/http://www.beer-garden.org/bg2/modules/wfdownloads/singlefile.php?cid=1&lid=31|SuperFFA]]
   * [[https://www.gamefront.com/games/elite-force/file/tos-weapons-mod-2|TOS Weapons II]] (tw2)   * [[https://www.gamefront.com/games/elite-force/file/tos-weapons-mod-2|TOS Weapons II]] (tw2)
 +  * [[https://www.gamefront.com/games/elite-force/file/xfreeze|xFreeze]]
   * vv-CTF   * vv-CTF
 ==== pak92.pk3 ==== ==== pak92.pk3 ====
Line 516: Line 521:
 {{ :en:games:ef1_internet_servers.png?nolink&600 |}} {{ :en:games:ef1_internet_servers.png?nolink&600 |}}
  
-On the other hand, there are a few subtleties. Since you can play EF not only on the LAN, but also on the internet, EF distinguishes between ''Internet1'', ''Internet2'', ..., ''Local'' and ''Favorites''. ''Internet1'' to ''Internetx'' works via [[#Masterservers]], which fortunately still run in part. Instead of the ingame search you can use the program [[https://www.gamefront.com/games/elite-force/file/pathfinder|Pathfinder]] when searching server for EF.+On the other hand, there are a few subtleties. Since you can play EF not only on the LAN, but also on the internet, EF distinguishes between ''Internet1'', ''Internet2'', ..., ''Local'' and ''Favorites''. ''Internet1'' to ''Internetx'' works via [[#Master Servers]], which fortunately still run in part. Instead of the ingame search you can use the program [[https://www.gamefront.com/games/elite-force/file/pathfinder|Pathfinder]] when searching server for EF.
  
 But for pure LAN servers you have to select ''Local''. EF simply asks all computers in its own subnet whether servers are running on the computers in the network. (See the [[#Local server queries via broadcast]] section for a description on how this works). But for pure LAN servers you have to select ''Local''. EF simply asks all computers in its own subnet whether servers are running on the computers in the network. (See the [[#Local server queries via broadcast]] section for a description on how this works).
Line 776: Line 781:
 === Accessibility === === Accessibility ===
 For EF, if you have created a server yourself, you only need to open port 27960 (UDP) in a firewall (or alternatively the port you have chosen yourself). You shouldn't have to share a specific port to join. However, you have to distinguish between LAN server and Internet server when creating the server. LAN servers are, as the name says, only accessible via LAN, not via the Internet. In principle, you can also run multiple servers by selecting multiple ports. Some ports can be searched automatically by EF, so that even a second server running in parallel does not have to be entered manually in EF. The automatically scanned UDP ports for LAN search are 27960-27963, which of course must also be forwarded if you are behind a firewall or NAT. For EF, if you have created a server yourself, you only need to open port 27960 (UDP) in a firewall (or alternatively the port you have chosen yourself). You shouldn't have to share a specific port to join. However, you have to distinguish between LAN server and Internet server when creating the server. LAN servers are, as the name says, only accessible via LAN, not via the Internet. In principle, you can also run multiple servers by selecting multiple ports. Some ports can be searched automatically by EF, so that even a second server running in parallel does not have to be entered manually in EF. The automatically scanned UDP ports for LAN search are 27960-27963, which of course must also be forwarded if you are behind a firewall or NAT.
-==== Masterservers ====+==== Master Servers ====
 The Eliteforce master server is automatically notified of newly accessible Internet servers as soon as they start. But only if you set the server mode to Internet, e.g. via ''+set dedicated 2'' when starting on the console. With ''+set dedicated 1'' the server is started, but not announced. Clients download the known game server addresses from the master server. In the config files of the client (''hmconfig.cfg'') and server (depending on the name you just gave them), the master servers to be used are set via ''seta sv_master1 <nowiki>"blah"</nowiki>'' to ''sv_master5...''. This works for EF since version 0.28, so actually for all versions. A list of currently available servers is also visible [[https://efservers.online|here]]. The Eliteforce master server is automatically notified of newly accessible Internet servers as soon as they start. But only if you set the server mode to Internet, e.g. via ''+set dedicated 2'' when starting on the console. With ''+set dedicated 1'' the server is started, but not announced. Clients download the known game server addresses from the master server. In the config files of the client (''hmconfig.cfg'') and server (depending on the name you just gave them), the master servers to be used are set via ''seta sv_master1 <nowiki>"blah"</nowiki>'' to ''sv_master5...''. This works for EF since version 0.28, so actually for all versions. A list of currently available servers is also visible [[https://efservers.online|here]].
  
Line 792: Line 797:
   * ''efmaster.kickchat.com'' (2021-09-26), former IP 176.9.53.212.   * ''efmaster.kickchat.com'' (2021-09-26), former IP 176.9.53.212.
   * ''thilo.kickchat.com:27953''   * ''thilo.kickchat.com:27953''
-Logically, the [[GameSpy]] server no longer exists after the shutdown of the network. However, it should never have worked because of the problem described in the [[#Masterserver Query Bug]] section. +Logically, the [[GameSpy]] server no longer exists after the shutdown of the network. However, it should never have worked because of the problem described in the [[#Master Server Query Bug]] section. 
-=== Masterserver Query Bug ===+=== Master Server Query Bug ===
 In the original Eliteforce game up to and including version 1.2 there is a bug which allows to announce a dedicated server with a port number for the master server. For example, a game server can be made known via the default master server ''master.gamespy.com:27900''. However, the clients with version 1.2 or older cannot reach the corresponding master server at all, because they //always// try to do so on port 27953, no matter what is written in the config file. Therefore it is also advisable to configure master servers, which should (also) list EF servers, only to listen on port 27953. Newer versions based on ioQuake3 are not affected by this problem and can also reach the 1.2 servers that have made themselves available via a master server listening on a different port. In the original Eliteforce game up to and including version 1.2 there is a bug which allows to announce a dedicated server with a port number for the master server. For example, a game server can be made known via the default master server ''master.gamespy.com:27900''. However, the clients with version 1.2 or older cannot reach the corresponding master server at all, because they //always// try to do so on port 27953, no matter what is written in the config file. Therefore it is also advisable to configure master servers, which should (also) list EF servers, only to listen on port 27953. Newer versions based on ioQuake3 are not affected by this problem and can also reach the 1.2 servers that have made themselves available via a master server listening on a different port.
 === Technical concept of the master server === === Technical concept of the master server ===
Line 801: Line 806:
  
 Strictly speaking, only the servers that correspond to the version of the requester are reported back, possibly restricted to no full or empty servers. Ultimately, the concept is very simple and has some minor vulnerabilities. For instance, the protocol (just like the game protocol) is based on UDP. This means that if a request or response is lost, no one will notice. If necessary, everything is completely OK at both ends, but you still don't get a server listed as a client. How exactly this works technically is described below. Strictly speaking, only the servers that correspond to the version of the requester are reported back, possibly restricted to no full or empty servers. Ultimately, the concept is very simple and has some minor vulnerabilities. For instance, the protocol (just like the game protocol) is based on UDP. This means that if a request or response is lost, no one will notice. If necessary, everything is completely OK at both ends, but you still don't get a server listed as a client. How exactly this works technically is described below.
- 
 === The Protocol Behind it === === The Protocol Behind it ===
 See article [[Star Trek - Voyager Elite Force Server Query Protocol|Star Trek: Voyager Elite Force Master Server Protocol]] on the subject. See article [[Star Trek - Voyager Elite Force Server Query Protocol|Star Trek: Voyager Elite Force Master Server Protocol]] on the subject.
- 
-The protocol is largely identical to that of [[Quake 3 Arena]]. However, there are some minor changes. 
- 
-In the following, server communication strings are shown that all start with four times 0xff, the character queue ''ÿÿÿÿ''. If the reader gets this character queue wrong (actually looks like four ''y'' with dots on top), please don't get confused. They are four times the ASCII character no. 255 (all 8 bits set to ''1'') in a row, no gaps. 
- 
-== Announce Game Server to Masterserver (Heartbeat) == 
-A game server may announce itself to the master server by simply sending the string ''ÿÿÿÿ\heartbeat\27960\gamename\STEF1\''. The digit series ''27960'' corresponds to the port of the reporting server and can deviate accordingly. The master server will then attempt to query the server status //of the sender//. If this succeeds, the server will be added. The IP, the port and the protocol of the game server, as well as the information whether it is empty or full, are stored information. This means that the client is only informed about the servers it can play on. For Eliteforce 1.2 or newer the protocol number is ''24'' (or for older versions like 0.28 it can also be ''22''). On the other hand, the client already specifies whether it wants to receive full and/or empty servers when the master server queries it. If the request is filtered, it will be answered accordingly. 
- 
-After that, no more things happen. There will be no response to the game server. The master also checks if the game server is still running. For this purpose there is a simple replacement mechanism: When a server is stopped (command ''quit'') it sends a last heartbeat and then goes offline. Since the master server does not receive an answer when querying the server status, it assumes that the server is dead and does not return it in client responses. 
- 
-The game server, on the other hand, reports to the master server at regular intervals, like when the status changes from empty to not empty or when the map changes. This also has the effect that a message possibly not received by the master server will (hopefully) be received after some time, and the game server will then be listed. 
- 
-The game server also reports for the transitions Empty -> Not Empty and Full -> Not Full, and vice versa. You can also send a heartbeat manually on the console (e.g. via rcon). So there are all in all eight situations in which a heartbeat is sent: 
-  - server goes online for the first time, 
-  - server goes offline, 
-  - server status changes from empty to occupied, 
-  - server status changes from occupied to empty, 
-  - server state changes from only occupied to full, 
-  - server state changes from full to only occupied, 
-  - console command ''heartbeat'' is issued and 
-  - server routinely gives a sign of life every few minutes. 
-== Withdraw Game Server from Master Server (Heartstop) == 
-Apparently there is an additional mechanism in Eliteforce which is probably intended to explicitly withdraw from the master server. This is done with the following string: ''ÿÿÿÿheartstop\27960\gamename\STEF1\''. Also here the digit series ''27960'' is the port of the logging out game server. This logout is actually not necessary and deviates from the original Quake 3 implementation, see previous section [[#Announce Game Server to Masterserver (Heartbeat)]]. 
-== Server List Query == 
-The query of the game servers known to the master server by a client is initiated as follows: ''ÿÿÿÿgetservers xx'', with ''xx'' as a numeric specification of the game protocol version. For Eliteforce since version 1.2 this is ''24''. Version 0.28 still had ''22'' as specification. Furthermore, the query can be extended by the extensions ''full'' (also returns full servers) and ''empty'' (also returns empty servers) (separated by space 0x20, ASCII character no. 32). A query that returns all Eliteforce 1.2 servers that the master server knows would look like this: ''ÿÿÿÿgetservers 24 empty full''. 
-== Server List Response == 
-The answer to the client then looks like this: 
-''ÿÿÿÿgetserversResponse \addressport1\addressport2\...\addressportn\EOT''. The block ''ÿÿÿÿgetserversResponse '' and the block ''\EOT'' are mandatory. In between (if there are known servers) are the addresses and ports of the known servers. Each server block has the form ''\ipPort''. Here ''ip'' means eight bytes of the IP in hex representation. The first address block corresponds to the first hex pair. The address ''192.168.0.1'' becomes ''c0a90001''. The block ''Port'' is specified directly after it. This is the server port as four bytes little endian unsigned short, or short, as you would write the hex number on paper. The default port 27960 then becomes ''6d38'', for example. Both values (IP blocks and port) are displayed with leading zeros to keep the number of characters at eight resp. four. The entire server would be represented as follows: ''\c0a900016d38''. The total answer for the servers ''192.168.0.1:27960'', ''192.168.178.1:27961'' and ''123.34.56.78:9012'' would look like this: ''ÿÿÿÿgetserversResponse \c0a900016d38\c0a9b2016d39\7b22384e2334\EOT''. Please note again that only those servers are displayed that have the same version as the client (EF 1.2 and newer: ''24'') and the empty or full ones only if the client explicitly requests this. Other servers are not reported back. 
- 
-The above goes for Raven Software's master server, which might be considered the reference implementation. There are, however master server implementations out there, that do not abide the above outlines rule for the query response entirely. The master //efmaster.tjps.eu//, for example deviates in such a fashion that the hex values of game server IPs and ports are not lower case. Also the trailing ''\EOT'' is followed by three additional zero bytes (0x00). 
-== Query a Game Server's Status == 
-As described above, the master server queries the reporting game server at least once before adding it, instead of simply adding it untested. The corresponding query to the game server looks like this: ''ÿÿÿÿgetinfo xxx''. Whereby ''xxx'' already works like it is written here. For a real status query, a challenge number (sequence of digits) may also be there. For the master server, however, this is irrelevant. 
-== Answer Game Server Status Query == 
-The game server then replies with all kinds of information about itself. From the basic structure it looks like this: 
- 
-''<nowiki>ÿÿÿÿinfoResponse "Values"</nowiki>'' 
- 
-The values between the ''<nowiki>"</nowiki>'' characters usually contain more information than is necessary for the master server. Their structure is always ''\Identifier\Value''. The last identifier-value pair there is always ''\challenge\xxx'', the already mentioned challenge. With master server queries the value ''xxx'' is to be understood literally, with real status queries from clients it can look different. Already encountered values look like this: 
-  * ''game'': Which mod is played, e.g. standard ''baseEF'', or also ''pinball''. 
-  * ''voip'': Which voice over IP codec is used, e.g. ''opus''. 
-  * ''g_needpass'': Does the server require a password for access? ''1'' = yes, ''0'' = no. 
-  * ''pure'': Value of the ''sv_pure'' variable on the server. If ''1'', the client is only allowed to have the same ''*.pk3'' files as the server has. 
-  * ''gametype'': Which game type is set, e.g. ''4'' for CTF. Corresponds to the server variable ''g_gametype''. See also section [[#Game Types]]. 
-  * ''sv_maxclients'': What is the maximum number of clients that can be connected? Digit sequence. Is used to determine the state ''full'' (full) for the query on the master server. 
-  * ''g_humanplayers'': How many human players are actually playing on the server? Digit sequence. 
-  * ''clients'': How many players are currently on the server? Also contains the bots, unlike ''g_humanplayers''. Is used to determine the state ''full'' (full) and ''empty'' (empty). 
-  * ''mapname'': The technical(!) name of the map currently being played, e.g. ''hm_voy1''. 
-  * ''hostname'': What name was given to the server? E.g. ''EF Classic @ Mobile Infantrie''. 
-  * ''protocol'': Which version does the game server have? For EF from 1.2 on it is ''24'', but old versions also have ''22'' (version 0.28) or ''23'' (version 1.1). 
-  * ''gamename'': Which game is played? For EF this is "EliteForce". 
- 
-In the standard implementation, it is not necessary for the master server to test the game servers again before sending the client list. Since a logout does not necessarily have to arrive at the server (UDP), it may be useful to send a query to the servers at regular intervals and to sort out servers that are no longer accessible. 
-==== Local Server Queries via Broadcast ==== 
-In general, no master servers are required in the LAN, since the servers are simply detected via broadcast messages. For this purpose, the query described in section [[#Query a Game Server's Status]] is sent to the broadcast address 255.255.255.255 instead of to a specific server. As a result, the request package arrives at all participants. If a server is in the same subnet, it will act as addressed and respond if an Internet or LAN server is running. All servers with ports between 27960 and 27963 are queried here as well. 
- 
-If a game server is behind a firewall, NAT or desktop firewall that blocks either the game server port or broadcast requests, the server will not appear in the server browser. Servers accessible on ports other than 27960 to 27963 will also not be visible. Therefore it is recommended to stay in this range of ports when not using a master server. 
-==== Requesting Server Details ==== 
-The above mentioned queries are all to be seen in the context of the identification of existing servers. However, the game servers are able to provide further information to the client, e.g. who is currently there or what map limits are set. The corresponding request looks like this: ''ÿÿÿÿgetstatus''. The answer has the following form: ''ÿÿÿÿstatusResponse 
-\Description1\Value1\Description2\Value2...\Description\Value''. The line break after ''Response'' is character 0x0a, or ASCII no. 10. The value pairs are very similar to those of a server status query. The list of available identifiers contains, among others, the following value pairs: 
-  * ''protocol'': ''24'', the network version of the server. 
-  * ''difficulty'': The level of difficulty of the bots. 
-  * ''unlagged'': The server has implemented the "unlagged" mode. When this identifier appears, it is usually set to ''1''. 
-  * ''sv_maxPing'': Maximum ping allowed by players. If the value is 0, there is no limit. 
-  * ''sv_minPing'': Minimum allowed ping from players. If the value is 0, there is no limit. 
-  * ''sv_dlRate'': How many kB/sec. can be expected for the download from the server at most. 
-  * ''sv_minRate'': The minimum number of bytes/sec. used for the connection. 
-  * ''sv_maxRate'': The maximum number of bytes/sec. used for the connection. 
-  * ''sv_hostname'': The name set for the server, e.g. ''EF Classic @ Mobile Infantry''. 
-  * ''sv_dlURL'': An extension of newer versions of the servers: On which address map or mod downloads can be done alternatively, if the client does not have a file. Not used by original EF. 
-  * ''sv_allowDownload'': Are map downloads allowed? ''1'' = yes, ''0'' = no. 
-  * ''g_speed'': What running speed is set? Default is ''300''. 
-  * ''g_friendlyfire'': Is friendly fire on? "1" = yes, "0" = no. 
-  * ''sv_floodProtect'': Has the server activated the flood protection? "1" = yes, "0" = no. 
-  * ''sv_maxclients'': The maximum number of players that can play on the server. 
-  * ''fraglimit'': How many kills of a player will end a DM round. 
-  * ''timelimit'': How many minutes does a map take to complete at most? 
-  * ''capturelimit'': After how many captures/points of a team a CTF map is terminated. 
-  * ''dmflags'': Unclear, there might be modifications for the DM mode. Default seems to be ''0''. 
-  * ''g_maxGameClients'': Unclear, from the name probably a limit, how many players are allowed to play on the server. But this is already done by ''sv_maxclients''. 
-  * ''g_gravity'': How strong is gravity on the map? Default is ''800''. 
-  * ''g_weaponrespawn'': After how many seconds does a weapon reappear at a location after it was taken from there. 
-  * ''version'': Long variation of the server version, e.g. ''Lilium Voyager HM 1.39_GIT_9fcb8a0-2018-03-06 linux-x86_64 Apr 30 2018''. 
-  * ''com_gamename'': What game is played there? For EF: ''EliteForce''. 
-  * ''com_protocol'': Which communication protocol is used by the server? E.g. ''24'' or ''26''. 
-  * ''g_gametype'': Which [[#Mode]] is played, for example, ''4''. 
-  * ''mapname'': Which map is played (technical name), e.g. ''hm_noon''. 
-  * ''sv_privateClients'': How many private client slots are set? Default is ''0''. 
-  * ''bot_minplayers'': To how many players per team does the server fill the teams with bots? Default is ''0''. 
-  * ''betadate'': Unclear. One value received is ''Feb 22 2004/16:52:14''. 
-  * ''gamename'': Which Game is played? E.g. "PiNBALL 2.0.0" or "baseEF". 
-  * ''g_pModDisintegration'': Is disintegration mode activated? ''1'' = yes, ''0'' = no. 
-  * ''g_pModElimination'': Is the elimination mode activated? ''1'' = yes, ''0'' = no. 
-  * ''g_needpass'': Does the server require a password to join? ''1'' = yes, ''0'' = no. 
-  * ''g_allowVote'': Does the server allow voting? ''1'' = yes, ''0'' = no. 
-In addition, you can also add non-functional variables that are also sent, still: 
-  * ''Friendly fire'': A free text variable (without technical function) (text). 
-  * ''Administrator'': Contains the name of the admin, if set (text). 
-  * ''Email'': Mail address of the admin, if set (text). 
-  * ''url'': Web page to server, if set (text). 
-  * ''Location'': Location of the server, if set (text). 
-  * ''Clan'': Name of the clan. 
- 
-At the end of the answer there may be, separated by a line break (0x0a), a list of current players on the server, in the following form: ''<nowiki>Number1 Number2 "Nickname"</nowiki>'' + (0x0a). ''Number1'' is the number of questions, ''Number2'' should be the ping of the player, ''<nowiki>"Nickname"</nowiki>'' is the name chosen by the player. The line break at the end applies to every player, including the last one. The answer also ends with a line break. 
 ==== Map Downloads ==== ==== Map Downloads ====
 There is one thing in EF that is a little ambivalent: EF can download maps and mods from Internet or LAN servers (if the servers are configured to allow this). On the one hand, this has the advantage that you don't have to search somewhere for a long time and download the maps manually and move them to the correct directory. EF takes care of this. The downside, however, is that you can get all sorts of things put into your installation in this way. Among other things also files which are not allowed on other servers because of ''sv_pure'' = ''1'' (which keeps you locked out there). So if you want to play it safe, you have to set the parameter ''cl_allowDownload'' to ''0'' in your config. However, this means that on servers that use maps, models or mods that you don't have, you immediately drop off when connecting. This may even happen without a corresponding error message (see also the section [[#Problems with Map Downloads]]). If in doubt, it makes sense to check the logs to see where the problem lies. There is one thing in EF that is a little ambivalent: EF can download maps and mods from Internet or LAN servers (if the servers are configured to allow this). On the one hand, this has the advantage that you don't have to search somewhere for a long time and download the maps manually and move them to the correct directory. EF takes care of this. The downside, however, is that you can get all sorts of things put into your installation in this way. Among other things also files which are not allowed on other servers because of ''sv_pure'' = ''1'' (which keeps you locked out there). So if you want to play it safe, you have to set the parameter ''cl_allowDownload'' to ''0'' in your config. However, this means that on servers that use maps, models or mods that you don't have, you immediately drop off when connecting. This may even happen without a corresponding error message (see also the section [[#Problems with Map Downloads]]). If in doubt, it makes sense to check the logs to see where the problem lies.
Line 951: Line 852:
   * [[http://gaming.trekcore.com/eliteforce/index.html|EF at TrekCore]]   * [[http://gaming.trekcore.com/eliteforce/index.html|EF at TrekCore]]
   * [[http://www.totallyef.net/ef/|Totally EF]]   * [[http://www.totallyef.net/ef/|Totally EF]]
 +  * [[https://en.ds-servers.com/gf/star-trek-voyager-elite-force/|DH-Hosting on EF 1]]
   * [[http://eliteforce.gamebub.com/index.php|Page on EF 1 & 2]]   * [[http://eliteforce.gamebub.com/index.php|Page on EF 1 & 2]]
   * [[http://gamefront.online/files/listing/pub2/Star_Trek_Voyager_Elite_Force/|Gamefront: Some maps, skins, tools, etc.]]   * [[http://gamefront.online/files/listing/pub2/Star_Trek_Voyager_Elite_Force/|Gamefront: Some maps, skins, tools, etc.]]
en/games/star_trek_-_voyager_eliteforce.1637475648.txt.gz · Last modified: 2021-11-21-07-20 by 7saturn