This is really starting to look like the best update after a couple of years, but here are some suggestions of mine to make it better:
1)
Pawn functions
The current system works well for static maps (DMs, races, RP etc.) but lacks certain dynamicity for sandbox-like servers. At the moment, the downloading is governed totally by the server, using static data (
artconfig.txt), and the only Pawn interaction is the callback
OnPlayerFinishedDownloading(playerid, virtualworld), which is neat but not enough.
I propose porting all
artconfig.txt "functions" to Pawn, with the
worldid parameter removed and
playerid added, as well as
OnPlayerFinishedDownloading with the argument of the actual model having been downloaded.
I suppose the text file is just an intermediate testing step, and hope the Pawn functions will be introduced in the future, but if not:
2)
Better rules for model downloading
Now only the worldid of the player is enough to determine if a specific model is to be downloaded, but I will need a way to allow a certain model for
all worlds and then
disallow it for some (non-positive, to be precise). Also at the moment, there seems to be no way to allow models for world "-1" (it is interpreted as "all worlds").
3)
Per-world objects
Since the model downloading is already determined by the virtual world, it makes no sense for there not being a way to create per-world objects, since almost all other entities already support this. Streamers are nice, but native support is very much needed. Provided this would be added, increasing the object limit should follow.
4)
More object types and options
I hear that custom vehicles or weapons are probably planned, so I am looking forward to it. However, at the moment, only "static" objects can be created with the new functions, because the dff and txd files are not enough to determine the object's behaviour. There are various dynamic objects in the game, objects with gravity, destructable objects etc. which are defined in a special game file. Also, the skins have options like voices which aren't able to be set precisely at the moment. I propose adding parameters like mass, destruction and lighting flags etc. to
AddSimpleModel and parameters like walking style, voice type etc. to
AddCharModel.
5)
More object customisation
Seeing there are already people that won't like playing on "modded" servers, I think there should be a way for more simple object customisation options without the need to download custom models. I propose natives like
ToggleObjectCollision and
SetObjectScale (self-explanatory) because the game already supports these functions quite well, and will be useful for mappers not wanting to rely on custom models.
Thumbs up for this update, Kalcor, and I hope new awesome features will follow!
Follow-up post.