Custom flags / Fully editable flags

Make suggestions for improving one of the best games on the net!
Post Reply
Jo-W
Private First Class
Private First Class
Posts: 26
Joined: Sat Oct 01, 2005 9:33 pm

Custom flags / Fully editable flags

Post by Jo-W »

As far as I know the current flag system has very little to customize. So I am suggesting a new flag system.

My idea is to have a new configuration file (server-side) flags.conf or maybe in the world file, which contains settings about every flag and custom flags. This configuration file would be loaded into the server variables, creating a sub-group: “_flags_ID_attribute”, for example “_flags_DEFAULT_turn-speed”.

This allows map developers / server administrators to combine flags and change every part of a flag. It also provides a more organized way of changing flags.

It would also reduce the number of flag suggestions, a lot of those suggestions are do-able in this configuration file, the only “flag” suggestions would be new attributes or improved attributes.

The configuration file type I came up with is something like this:
flaglist {
ID:spawns;
};

flag ID {
attribute:setting;
};

Below is an example:
Example flags.conf wrote: # Example flags.conf
flaglist { # List of all flags and the number of flags that should be spawned, every line is loaded into “_flags_ID”
# USAGE: FLAGID:number_of_spawns
# Every flag must be specified here or they will not work.
DEFAULT:-1 # Default setting for tanks, used when the tank is holding no flags, all flags will be based of the default and will override values.
L:2; # Laser
SR:1; # Steamroller
SJ:2; # Super Jump
BY:3 # Bouncy
U:5; # Useless
CLST:1 # Cloak & Stealth
};

flag DEFAULT { # Default Settings
# NOTE: _flags_DEFAULT_ can be left out when linking to another attribute
# “_flags_DEFAULT_turn-speed” is the same as “turn-speed”, but only within this block.
# Every line in this block is loaded into _flags_DEFAULT_attribute
turn-speed:1.5;
explode-time:5;
friction:0;
gravity;-9.8;
jump-velocity:19;
jump-height:15;
rejoin-time:explode-time;
ricochet:1; # boolean
shot-range:350;
shot-rate:2:

shot-reload:shot-range/shot-speed; # (3.5)
shot-speed:100;
shot-life:10;
tank-height:2.05;
tank-length:6;
tank-radius:0.72*tank-length;
tank-speed:25;
tank-width:2.8;
tank-length:6;
weapon:default;
};

flag L { # modified laser, no ricochet or jumping
name:Laser;
desc:Fires a laser, very fast and unlimited range but longer reload; # or something like that
weapon:laser;
shot-limit:30; # maximum of 30 shots
shot-range:-1;
shot-rate:_flags_DEFAULT_shot-rate*0.25:
shot-reload:_flags_DEFAULT_shot-reload*1.5
shot-speed:1000
shot-life:0.1;
ricochet:0; # turns ricochet of for laser
jump-height:0; # cant jump with laser
};

flag SR { # modified Steamroller, extra fast, but no weapon
name:Steamroller;
desc:Kills enemies you touch but you have to get real close, fast but cant fire any weapon
weapon:none;
jump-height:0;
tank-speed:_flags_DEFAULT_tank-speed*1.5
tank-width:_flags_DEFAULT_tank-width*0.7
radar-limit:_worldSize/3; # Small radar
};

flag SJ { # new flag
name:Super Jump;
desc:Jump twice as high as normal;
jump-height:_flags_DEFAULT_jump-height*2
};

flag BY { # Modified Bouncy flag with short-jumps
name:Bouncy;
desc:Tank can not stop jumping
jump-velocity:50;
jump-height:5;
bouncy:1;
bad:1; # Can not be dropped by player, flag is displayed in red text
timer:6; # Automatically dropped after 6 seconds
};

flag U { # Normal useless flag
name:Useless;
desc:You have found the useless flag, use it wisely;
};

flag CLST {
name: Cloak & Stealth;
desc: Cloak and Stealth, but for a limited amount of time;
cloak:1;
stealth:1;
timer:30; # dropped after 30 seconds
};

# The Possibilities are endless!
Ofcourse a default configuration file is included with the installation of BZFlag / BZFS.

Here is a part of what the server variable list would look like:
.....
_wallHeight 3*_tankHeight
_wideAngleAng 1.745329
_worldSize 400
_flags_DEFAULT -1
_flags_DEFAULT_turn-speed 1.5
_flags_DEFAULT_explode-time 5
_flags_DEFAULT_friction 0
_flags_DEFAULT_gravity -9.8
_flags_DEFAULT_jump-velocity 19
_flags_DEFAULT_jump-height 15
.....
It would be more organized if it had its own section in the game and not within the server variables, but I think this would be the easiest to implant.

I also suggested this on SCFR but that one is less informative

I hope its a bit clear... ^^
It would kewl to see this implanted, any opinions?
Last edited by Jo-W on Sat Oct 08, 2005 3:46 pm, edited 1 time in total.
I Carry ThA BiG GuN

Owner@localhost
User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Post by RPG »

Seems you know alot of programming, maybe you should try to create a giganatic patch
Jo-W
Private First Class
Private First Class
Posts: 26
Joined: Sat Oct 01, 2005 9:33 pm

Post by Jo-W »

I know a fair amount of programming, but the only thing I have written in C++ is hello world and some weird command line calculator. I wouldn't know where to start lol
I Carry ThA BiG GuN

Owner@localhost
User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5196
Joined: Fri Dec 13, 2002 4:11 am

Post by JeffM »

this is basicly the idea I had to turn all flag options into attributes, and then the tank have an attribute stack it runs thru.

It's a fair amount of coding, but can be done.

It would be a protocol breaking change ( not that that's a bad thing ).
ImageJeffM
User avatar
Hannibal
Private First Class
Private First Class
Posts: 1073
Joined: Mon May 02, 2005 10:27 pm
Contact:

Post by Hannibal »

yes, it would be quite a big change..and require much more work by people who would want to start a server.
Games don't make people violent, lag does.
ImageImage
User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5196
Joined: Fri Dec 13, 2002 4:11 am

Post by JeffM »

Phalanx
you would make the default be set the same way flags are defined now, so it would be no more work for server owners unless they wanted to overide a flag.
ImageJeffM
User avatar
Hannibal
Private First Class
Private First Class
Posts: 1073
Joined: Mon May 02, 2005 10:27 pm
Contact:

Post by Hannibal »

im confuzzled here....so youre saying that the flags would just be default settings, unless specified? then why..o, i get it now.
Games don't make people violent, lag does.
ImageImage
User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Post by RPG »

I smell this change in 2.2.x
Jo-W
Private First Class
Private First Class
Posts: 26
Joined: Sat Oct 01, 2005 9:33 pm

Post by Jo-W »

A default flags.conf would be included, like this is would be even easier to change certain things then it is now. If you wanna change the burrow tank speed with the current system for example you have to dig in server variables.
Even less work then it is now if you wanna change little
I Carry ThA BiG GuN

Owner@localhost
User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Post by RPG »

So in short, servers will be able to create their own flags and include them in the game. Not all servers will share a common set of flags.
User avatar
Hannibal
Private First Class
Private First Class
Posts: 1073
Joined: Mon May 02, 2005 10:27 pm
Contact:

Post by Hannibal »

there, thanks RPG. that helps me out alot.
Games don't make people violent, lag does.
ImageImage
Post Reply