I will briefly outline what I want the scripting framework to do, especially.
(1) Libraries like Math, String, File... which provide a standardized set of functions specific to their fields.
I'm awaiting an update from Razo, after which I'll be able to finish this part once and for all so I can move
on to the more interesting bits
(2) A tighter client-server relationship for modding. Specifically, a primitive account system will allow modders
to attach global or server-specific retrievable data or key binds to the clients themselves (identified by login,
represented as objects in script) rather than a fleeting player entity. I want to add some statistical data by default.
Depending on the schedule, this may be basic kills/deaths stuff or this may be an integrated 'elgbot'
(if Elgan lets me ).
(3) Some new server functionality. For instance, a built in CVar parser which will parse the new contents of a cvar
and pass them on as arguments to a specific scriptthread. Also, executing a script via console will be possible.
Also a dynamic local storage system, based on the localStorage object of HTML5/Javascript.
(4) A standard HUD system which sees each player as a pool of 256 elements that can be allocated and released.
Individual elements have priority over global elements, so in time of shortage, global elements may be temporarily
overridden for a specific client. This way modders need never worry about huddraw indexes or conflicts again.
(5) Server-side menu system. Menu's are represented as objects with child menu's, tabs, pages, buttons...
Ideally, one can use a tool (i.e. a serverside-menu ^^) to construct these menu's and they are then saved
to file. I'm not planning on supporting dynamic changes to menu's (are written only once), but if someone has
a good argument for it, I'm all ears.
I'm hoping to have mouse support (hardest part really) for this, otherwise, you'll have to up, down, left, right
or tab your way through the menu.
(6) Weapon control. Unfortunately, being able to access each item/weapon a player has still only allows us to
set certain properties but not 'get' them. On the upside, you'll be able to change any TIKI setting on the fly.
There will be support for 'weapon configuration files' wherein you change settings of a specific weapon (or
prohibit it) either in a global scope or by gametype, by mod or by map.
(7) Mod control. One can use the auto-execution folders to run their mods instead of using the dmprecache,
or one can use a mod configuration file to detail the mod's behaviour. In the latter case, the framework will
then auto-execute the main script based on the info. This includes but is not limited to:
whether a mod is a gametype, when it may run (global, gametype, mod, map), path to possible .ini file etc...
(8) Map control. Finally some standardized functionality so a modder can change maps (retaining player state or not),
restart map, restart round, end round (with draw, allieswin or axiswin), ignore the timelimit etc...
In addition, I'm hoping to introduce dynamic sector locations (like North, East, Southwest) for any map to which one
can easily add custom locations that mods like Freeze-Tag can use to identify a location in the map.
I will also support a map configuration file which defines cvars that need to be applied for specific maps; also
path of the file defining the locations, full name of the map...
This isn't set in stone yet. While we may quibble over the details, I think most of us can agree that the framework
should at least do that. Nonetheless, anyone have thoughts or suggestions?
But we may be focussing on modders too much and not on players. Which is why I want add an simple 'match'
environment of which a basic set of restrictions can be customized (like mods that are allowed to run, number of
players on each active team, number of spectators...) and violation of any restriction will result in a specific
effect (like pausing the match/round, kicking the violator etc...).
However I'm not too familiar with clans, so I need some input on this from Steve and other people who are familiar with
or member of clans.
Let the discussion begin!