📄 news
字号:
| Param | Default | Description |
+=======+=========+=============================================+
| host | "" | The host name of IP of the machine running |
| | | the MySQL database. An empty string |
| | | indicates that the localhost will be used. |
+-------+---------+---------------------------------------------+
| user | "" | The username to use connecting to the |
| | | database. The empty string indicates that |
| | | current unix username will be used |
+-------+---------+---------------------------------------------+
| pass | "" | The database password for the user being |
| | | used. |
+-------+---------+---------------------------------------------+
| db | "" | The name of the database to use. An empty |
| | | string indicates that that default database |
| | | will be used. |
+-------+---------+---------------------------------------------+
* Added a result saver that prints the results of the game to
stdout in a human readable format. You should not try to parse this
with another program, as no guarantees about it's format are made,
and it may change from version to version. If you wish to get text
results in a parsable format, please create your own module for
doing so.
* Added support for saving game results via dynamically loaded
modules (see below for information about modules). A result saver
must inherit from rcss::ResultSaver and on initialisation of the
module, it must register with rcss::ResultSaver::Factory factory.
An example of how this is done can be seen in stdoutsaver.cpp.
* Integrated the new configuration parser in rcssbase. The old
configuration file format is no longer supported, but can be
easily converted to the new format using the following awk script.
awk '/^[ \\t]*$/ {} \
/^[^#]+[:]/ { gsub(/:/, \"=\" ); $1 = \"server::\" $1; } \
/^[ \\t]*[^#:=]+$/ { $1 = \"server::\" $1 \" = true\"; } \
{ print; }' \
oldserver.conf > newserver.conf
The server uses this technique to read ~/.rcssserver-server.conf if
it exists and ~/.rcssserver/server.conf (the new conf file) does not
and then save the configuration to ~/.rcssserver/server.conf. This
means that most users will be unaffected by the configuration file
changes and ~/.rcssserver/server.conf will be created with all their
current options.
A similar procedure is used for ~/.rcssserver-player.conf and can
be used for other player.conf files.
You will also need to modify any scripts you have that pass
parameters to rcssserver, by replacing -PARAM VALUE with either
server::PARAM = VALUE or player::PARAM = VALUE and -sfile FILE and
-pfile FILE with include = FILE.
* Added support for automatic module loading. Modules can be added
or removed by adding them to the module directory (default is
/usr/local/share/rcssserver/modules) which can be specified with
the module_dir server parameter. On systems where dynamic loading
is not supported, or static compilation is used, module loading can
be simulated by using the RCSSSERVER_DLOPEN_LIBS option during
configure.
Custom modules must contain the following line
LIBLOADER_EXPORT( libname, init, fin );
Where libname is the name of the library without the file extention
(e.g libstdoutsaver) and init and fin are the names of
initialisation and finalisation functions for the module. These
functions must take not parameters and must return void.
Your module must also register (and deregister) it's class(es) with
an object factory (this is usually done in the initialisation and
finalisation functions), which is used in the server to create
instances of the class. Please see the base class's object factory
interface for more details.
* Added support for coach names in the log file names. The online
init command now has the following format:
(init TEAMNAME [COACHNAME] [(version X)])
e.g.
(init myteam (version 7))
(init myteam mycoach)
(init myteam mycoach (version 6))
are all valid online coach init string.
At the end of the game, the logfiles are renamed and if the online
coach specifies a coachname when it connects, then _COACHNAME is
added after the team name.
e.g.
200305081101-test_coach_1-vs-test2_coach2_2.rcl
is an example of a log file for 'team' vs 'team2', where 'team' had
an online coach called 'coach' and 'team2' had an online coach
called 'coach2'.
* Fixed a defect where pointing players were sent twice in a see
message.
[9.3.7]
* Fixed defect in the sending of team graphics to monitors where the
first line of the data was repeated and there was no space between
team_graphic_{l|r} and(. Thanks got to Matus Horvath for reporting
the problem and providing the patch.
* Fixed gcc3.3 compilation problem.
[9.3.6]
* Fixed defect that caused a segmentation fault when a player
reconnected.
[9.3.5]
* Fixed bug in the handling of ear on/off commands sent by players,
where partial and complete where inverted.
* To help with future user problems, the server now also outputs at
startup the version of rcssbase being used.
* Fixed catch_fault_r string which was perviously cacth_fault_r.
* Fixed online coach releated seg fault. This may have been caused
if a coach tryed to connect after a coach had already connected and
disconnected for the same team.
* A bug was fixed that was causing nested conditions in CLang to be
restructured in logically incorrect way.
[9.3.4]
* The default values for tackle_dist and tackle_width have been
changed to 2.0 and 1.0 respectively. You will either need to change
these manually in your ~/.rcssserver-server.conf remove your
~/.rcssserver-server.conf to have the defaults regenerated.
* Added constraint such that substitutions are not allowed after
the normal and extra halfs have passed. It is thus not possible
anymore to make substitutions during or just before the penalty
shootouts.
[9.3.3]
* The rcsoccersim script will now report errors if the server or a
monitor cannot be found. The script has also been modifed to use
the monitor specified by the RCSSMONITOR enviroment variable as the
default monitor (this can be handy of you use your own monitor or
wish to change the default to the classic monitor). If RCSSMONITOR
is not set, the script will try to use either rcssmonitor or failing
that, rcssmonitor_classic. At anytime you can override the default
by using the -frameview and -classic options.
* Fixed bug where recover_init was sent to v8 players when it
shouldn't have been.
* Some build problems on OS X have now been fixed. The server seams
to work on OS X, if built statically. For dynamic libs to work you
will at the very least need to rebuild the libtool and auto*
components by running
aclocal
glibtoolize --force --copy
aclocal
autoheader
automake --add-missing --copy
autoconf
from the rcssserver directory. There may be other problems that I
am unaware of.
[9.3.2]
* RCSSClient can now be compiled without ncurses on systems that do
have ncurses, by using the '--without-ncurses' parameter to configure.
* The SED environment variable is now set automatically in the
libtool script, during configure.
* Fixed crash during initialization of default server paramters on
Solaris platforms
* RCSServer now will compile with either sstream or strstream,
depending on which is available.
[9.3.0]
* Fixed bug in synch mode that would cause the server to send
"think" commands to disconnected clients and wait for a response
from them.
* Fixed bug in flex usage that would require manual editing of the
generated source files on some systems. This bugs would only affect
people who are checking out the code from CVS, those editing the .ll
files or those rebuilding the generated code for other reasons.
* Fixed bug in synch mode that would result in a server crash when
clients disconnect.
* Fixed bug that allowed kicks and tackles after the end of the match.
* Fixed bug where the effort_init server parameter was not set, not used,
but sent to players as part of the server param message.
* Fixed bug where the recover_init server parameter was not set, not used,
but sent to players as part of the server param message.
* Added automatic penalty mode.
First of all two different server parameters have been added that specify
how many halfs are played:
nr_normal_halfs (default=2) - number of halfs that are always fully played
nr_max_extra_halfs - number of extra halfs when score is a draw
golden goal rule applies in these halfs
If no goals are scored and the server parameter penalty_shootouts is true,
the automatic penalty mode is started.
New play modes, messages and server parameters have been introduced:
New PlayModes:
PM_PenaltySetup_Left/Right (message: penalty_setup_l/r)
PM_PenaltyReady_Left/Right (message: penalty_ready_l/r)
PM_PenaltyTaken_Left/Right (message: penalty_taken_l/r)
PM_PenaltyMiss_Left/Right (message: penalty_miss_l/r)
PM_PenaltyScore_Left/Right (message: penalty_score_l/r)
Messages:
penalty_onfield_l/r
penalty_foul_l/r
penalty_winner_l/r
penalty_draw
Server parameters
pen_before_setup_wait
pen_setup_wait
pen_ready_wait
pen_taken_wait
pen_nr_kicks
pen_max_extra_kicks
pen_dist_x
pen_max_goalie_dist_x
pen_allow_mult_kicks
pen_random_winner
The procedure is as follows
1. The referee announces on which side the penalties will be taken using
the message (penalty_onfield_l/r).
2. The ref moves the ball to the penalty mark, which is on a distance of
pen_dist_x from the goal.
3. The ref chooses a team to start at random and announces it
(penalty_setup_l/r).
4. The referee then waits pen_setup_wait cycles and then checks whether the
players are moved according to the following rules:
- the defending goalie must move to within goalie_pen_line_dist meter of
the goal line and between the posts
- the other goalie must move behind the goal line and outside the penalty
area line (the only exception is when the goalie takes the penalty)
- the defending players and the teammates of the player must move
within the center circle.
- one of the players of the team that takes the penalty has to move within
2 meters of the position of the ball. One player is not allowed to be
the penalty taker again before all eleven players (including the goalie!)
have taken a penalty.
If after pen_setup_wait cycles one or both teams do not obey the above
rules the penalty is over. In case the attacking team makes a mistake, it
is counted as a miss, otherwise as a score.
If both teams obey the rules, the mode changes to
PM_PenaltyReady_Left/Right
5. The attacker then has pen_ready_wait cycles to take the first kick.
If one of the rules of 4 is not obeyed during these cycles or the time has
elapsed, the penalty is over and is counted as a foul for that team.
After this first kick, the play mode changes to
PM_PenaltyTaken_Left/Right..
6. Depending on the server paramater pen_allow_mult_kicks the attacker is
now allowed to kick the ball again or not. When the ball is catched or
passed the goalline within pen_taken_wait cycles, it is either called a
miss or a score (depending where the ball crossed the goalline)
immediately.
When pen_taken_wait cycles have elapsed without a catch or the ball passing
the goalline, it is also called a miss. In case of a miss the play mode
changes to PM_PenaltyMiss_Left/Right, otherwise to
PM_PenaltyScore_Left/Right.
7. Now it is checked whether one of the teams has won.
One of the two teams has won when.
- pen_nr_kicks penalties have been played and one team has scored more
goals than the other
- less than pen_nr_kicks have been played but one of the teams can never
get to the score of the other team within pen_nr_kicks
- it was a draw after pen_nr_kicks but after an even number of extra
penalties sessions (less than pen_max_extra_kicks) one team has scored
more goals
In the case of a win the message pen_winner_l/r is communicated and the
playmode changes to PM_TimeOver.
Otherwise when pen_nr_kicks + pen_max_extra_kicks have been played, the
game is a draw. Depending on the parameter pen_random_winner the server
picks a random winner or not. In the latter case the message pen_draw is
communicated.
In all other situations, and no team has won yet, the referee goes back to
2 after pen_before_setup_wait cycles.
* Changed file format of log files and game logs because of possible
automated penalties after a match. The new format is as follows:
{date}-{team_l_info}-vs-{team_r_info}.rc[gl]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -