Open BigETI opened 7 years ago
I will add a files
field to the server object at some point for this. Will discuss in the API v3 design issue.
I think this should get some priority given that the DL feature is being abandoned. Servers should then recommend this launcher so they don’t miss any custom assets. There are simple ways to detect if the player has custom assets then (for example place the player on some custom platform object and see if they fall through).
I propose an alternate detection method via a custom server rule, let's say ~assets
(can be set via YSF or perhaps OMP). I also think that an ability to specify multiple packages that can be chosen from would be useful, in this format for example:
rule: ~assets:Liberty City
value: http://.../LC.zip#98443517
rule: ~assets:Vice City
value: http://.../VC.zip#69218791
Upon connecting to such a server, the user would be prompted to choose which packages should be downloaded (as not all assets need to be downloaded to play on a particular server). The archives would contain any number of IMG, IDE, and IPL files, which the launcher would merge and store in the SAMP directory for them to be loaded. The hash of the package could be placed in the fragment section of the URL, so that it doesn't have to be downloaded every time. The launcher should remember the settings for every individual server, and prompt the user to again choose which packages to download when new assets are added or the hashes change.
This has the advantage of giving the user a choice what to download (something DL doesn't support, regrettably), so the only disadvantage of this method when compared to DL would be the inability to download models at runtime (so no models generated at runtime).
Modified models can be detected with SendClientCheck, or perhaps a custom "password" could be sent to the servers that declare to support it. Let's say the user selects both packages, SA-MP would be started with assets=Liberty City;Vice City&password=original_password
as the server password.