From: Jan M. <mu...@un...> - 2006-09-20 06:41:40
|
Hi, |On Sun, 17 Sep 2006 23:03:32 +0430, "mahdi naser moghadasi" <mog...@ho...> said: > My question is related to inceresting time of a game.I found > someting in 'rcssserver3D.rb' file and that is : > addSoccerVar('RuleHalfTime',5.0 * 60) Suppose I change it to a value > like 5.0 * 6000 or 5.0 * 5000 after 1100 simTime agents do not > perform any action (no move to any point). Check the battery level of the agents, which is received by the AgentState perceptor. Using the drive effector affects an agent's power level. During a normal game the batteries are not discharged completely, but if you increase the length of a game, an agent may run out of power. The TEXT_INSTEAD_OF_A_MANUAL.txt says the following: Using the omnidrive consumes battery. You get to know of battery states by reading the AgentStatePerceptor. If the battery is empty, the omnidrive will stop working. In order to work around this problem, you can either change the drive effector to stop using enery by fixing the appropriate lines in plugin/soccer/driveeffector/driveeffector.cpp or set the consumption parameter in the rcssserver3d.rb to a higher value: # drive consumption. (higher value means lower consumption) driveEffector.setConsumption(120 * 75.0 * 12.0 * 4); BTW, "addSoccerVar('RuleHalfTime',5.0 * 60)" means setting the half time to 5 times 60 seconds (aka 5 minutes), so you should probably use "500.0 * 60" instead of "5.0 * 6000" when changing this value in order to keep track of what you are doing. Of course setting the value to 30000.0 works just as well. ;-) Hope this helps, Jan |