📄 news
字号:
* Defualt for the offide area is now 2.5 * Proper goal kicks (aka LAW 16) is now off by default. * Fixed rcssclient compilation problem when libz is not detected on the system. * Replay parameter in no longer available. This was for some pretty old code to replay the games. This is done by rcsslogplayer instead (and has been for a long while). * Corrected an old defect that would allow players to dash in before kick off and have the acceleration accumulate until the kick off. Thanks go to Michael Gollin for reporting this bug and how to correct it. [rel_6] * The team graphic protocol has been changed to make it easier to detect and recover from lost messages. The new format requires the 256x64 image to be broken up into 8x8 tiles (to make sure it will fit into the message to the monitors) and has the form (team_graphic (<X> <Y> "<XPM line>" ... "<XPM line>")) Where X and Y are the co-ordinates of the 8x8 tile in the complete 256x64 image, starting at 0 and ranging upto 31 and 7 respectively. Each XPM line is a line from the 8x8 xpm tile. The server responds with (ok team_graphic <X> <Y>) The server then sends (team_graphic_{l|r} (<X> <Y> "<XPM line>" ... "<XPM line>")) to each monitor via the message board. * Fixed defaut values for new parameters in server.conf. * Fixed defect which would not allow online coaches to substitute a player for the same player type if there was already the maximum of that player type on the field. * Tackle power is no longer reduced by the probablility of the tackle. * Substitutions are now explicitly recorded in the log-files. The message board is now used to record player substitutions in the game log and send the data to the monitors in the form (change_player_type {l|r} <unum> <player_type>) * Fixed problem parsing parameters when compiled with gcc 3.x [rel_5] * Parameters have been added to enable and disable free kick faults and back passes. They are free_kick_faults back_passes and they are both enabled by default. * Parameters have been added for the enforcement of proper goal kicks. They are proper_goal_kicks stopped_ball_vel max_goal_kicks and they have default values of on, 0.01 and 3 respectively. * The server will now allow online coaches to send team_graphic commands before kick off. The graphic must be a 256 x 64 XPM and each team_graphic command must contain just one line of the XPM. The command has the form (team_graphic "<line>") and the server will respond with (ok team_graphic) for each line and (ok team_graphic_done) when the image is complete. As each line is received it is sent to the monitors on the message board in the form team_graphic_{l|r} "<line>" At this stage the monitor must be connected at the time the lines are sent. * Fixed defect which dereferenced Stadium::M_caught_ball when NULL. * Fixed defect in kick faults where a kick fault was not called if the player taking the free kick, kicked the ball multiple times before dashing and then kicking. * Fixed defect in server params where visible_angle was reported in radians instead of degrees. * Corrected defect where the ball going out of bounds from a goal kick would result in a drop ball on the side line. [rel_4] * Server param messages now contain tackle parameters of version 8+ clients. The way the message is generated now means that the order of items has changed and derived values are not sent. All string values are now quoted to ease paring should they contain brakets. * Fixed defect where collisions were modelled between the goalie and the ball when the ball was caught by the goalie. * The it is now required that the ball is kicked directly into play from the goal kick in compliance with FIFA law 16. If the ball stops or another player kicks the ball before it leaves the penalty area, the kick is re-taken. If the player taking the goal kick cannot manage to kick the ball directly into play after 3 attempts, a free kick is awarded to the opposing team in the nearest penalty corner. IMO the player should also receive a yellow card for incompetence and time wasting, but we don't have yellow cards yet. * Added a tackle_power_rate(0.027), which was previously missing and resulted in all but the smallest of tackles producing a maximum ball speed. The effective power is now reduced by the probability of the tackle succeeding. This is done by simply multiplying the probability of success with power requested. * Fixed defect that allowed players to kick and tackle after a free kick or back pass infringement but before the free kick was awarded. * Fixed defect that allowed players to be close to the ball during an opponents free kick. * Fixed 1 cycle delay in play mode change after a free kick was taken. * Removed audio debugging messages * Fixed defect in backpasses where a kick from a player on team A followed by a freekick and a catch by the goalie would be incorrectly called a back pass. * Fixed bug in the reported pointto directions. Previously they were incorrectly adjusted by the players orientation. Thanks to Michael Gollin for pointing out the bug and providing the correction. * Fixed bug in the bracket counting of quoted say messages. Messages such as (say "Test)") are now parsed correctly. * Fixed bug in new Vectors that are uses in pointto. The setHead() method would transpose the X and Y coordinates. Thanks to Michael Gollin for pointing out the bug and providing the correction. [rel_3] * Added rules to CLang. Clients can now define rules, which can be turned on and off and deleted later on. Rules are can be defined as follows (define DEFS) DEFS : // same as old defs | (definerule VAR {model|direc} RULE) VAR : [abe-oqrt-zA-Z_]+[a-zA-Z0-9_]* RULE : (CONDITION DIRECTIVE_LIST) | (CONDITION RULE_LIST) | ID_LIST RULE_LIST : RULE_LIST RULE | RULE ID_LIST : all | VAR | (ID_LIST2) ID_LIST2 : ID_LIST2 VAR | VAR CONDITION : // unchanged DIRECTIVE_LIST : // unchanged For example the following messages are valid (define (definerule MyRule12345 model ((true) "dostuff"))) (define (definerule MyRule2 direc ((true) "doStuff" "andOtherStuff"))) (define (definerule MyRule3 model ((true) "dostuff")) (definerule MyRule3 model ((true) "doStuff" "andOtherStuff"))) (define (definerule MyRule4 direc MyRule2)) (define (definerule MyRule4 direc (MyRule2 MyRule3))) (define (definerule MyRule4 direc ((true) MyRule2))) (define (definerule MyRule4 direc ((true) (MyRule2 MyRule3)))) (define (definerule MyRule4 direc all)) (define (definerule MyRule4 direc ((true) all))) Rules may be deleted at a later date by using the delete message, which has the form (delete IDLIST) For example the following messages are valid (delete all) (delete MyRule12345) (delete (foo bar)) Rules are then activated or deactivate using a rule message, which has the form (rule ACTIVATION_LIST) ACTIVATION_LIST : ACTIVATION_LIST ACTIVATION_ELEM | ACTIVATION_ELEM ACTIVATION_ELEM : ({on|off} ID_LIST) For example the following message is valid (rule (off all) (on (foo bar)) (off MyRule12345)) Each activation element should be applied in the order it is listed. For the above example, all the rules should be turned off, then the rules 'foo' and 'bar' should be turned on and finally 'MyRule12345' should be turned off. [rel_2] * Added new trade-off between dash_power_rate and stamina_inc_max. The old trade-offs between dash_power_rate vs. player_size and stamina_inc_max vs. player_speed_max are switched off now by default. V8 clients get additional info regarding the new trade-off. player_speed_max is 1.2 now for all player types by default. * Players kicking the ball to themselves after a free kick is no longer allowed. Players may kick the ball several times so long as they do not dash in between any of the kicks. Once another player kicks the ball, the free kick taker may proceed to the ball as normal. If a player does kick the ball to themselves after a free kick, a free kick is awarded to the opposing team at the point that the second kick occurred. When this occurs the play mode changes to free_kick_fault_[lr], where the l or r is the side of the offending player. After AFTER_FREE_KICK_FAULT_WAIT(30) cycles the playmode changes to free_kick_[lr], where l or r is the opposite side of the offending player. * Fixed bug in the setting of the team side of a ball owner condition in CLang. * Back passes are no longer allowed. The server defines a back pass as when a player kicks the ball and it is caught by the goalie of the same team, without interference of a player from the other team. If a back pass does occur, a free kick is awarded to the other teams in the closest corner of the penalty box. When this occurs the play mode changes to back_pass_[lr], where the l or r is the side of the offending goalie. After AFTER_BACK_PASS_WAIT(30) cycles the playmode changes to free_kick_[lr], where l or r is the opposite side of the offending goalie. A pass from a player on team X bouncing of team Y player and then being caught by to team X goalie is *not* a back pass. A pass from a player on team X bouncing of an team Y player and then being caught by the team Y goalie is *not* a back pass. * Audio from players now has the form (hear time direction TEAM [UNUM] "message") (hear time TEAM [UNUM]) where TEAM is opp | our and the uniform number is only given for the player's own team (to simulate recognition of team-mates' voices). The first format is for the first message from each team in each cycle, all other messages received that cycle have the second format. * Players can now send say messages with the message enclosed in quotes. For instance (say "message") It has the same effect as (say message) The only difference is that the later version must be followed by a null, whereas the new version may be followed by other commands. For instance (say "message")(dash 100) would be interpreted by the server as a say and a dash command, but (say message)(dash 100) would be interpreted as a single say message only, and the data being said as "message)(dash 100)" * Fixed a line ordering problem experienced by old clients. Some of these clients rely on the order in which lines are presented (nearest first), so now the server sorts lines into nearest first for pre v8 clients. V8 and clients should not rely on the order of any of components of messages sent. BTW code I wrote for clients I was working on exhibits this reliance on ordering :)= * Added support for CLang Freeform messages during certain times during playon. Coaches can send Freeform messages for freeform_send_period cycles after every freeform_wait_period cycles. Default values for freeform_send_period and freeform_wait_period are 20 and 600 respectively. For example, if the playmode changes to playon at cycle 420 and stays in playon till the end of this example, the coaches can send freeform messages between 1020 and 1040, 1620 and 1640, etc. [rel_1] * The CLang lib has changed and is not compatible with the previous version. To reflect this the library version has changed from 0.0.0 to 1.0.0. Some of the classes still need a little work before I would say they are fully usable in client code, but what is already there should make it a lot easier than starting from scratch. Just remember that the entire simulator is under LGPL (except for rcssmonitor which is under GPL), so if you do use modified server code in you clients, you *must* release these modifications when you release your binary. Earlier and more frequent releases would be more than welcome. Hopefully this way we can start some sort of Standard RoboCup Library (SRCLib). * Added support for arithmetic on points within CLang messages. Points can now have the form (<POINT_LIST>) where POINT_LIST is <POINT_LIST> <ARITH_OP> <POINT_LIST> | <POINT>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -