Note: This is going to be a way of
getting bots to work with custom/changeable TF2 CP/PL/PLR maps,
SCRIPTS are RCS files and go into the WAYPOINTS folder.
This is an example of a working CP Script with the latest SVN for CP_Dustbowl
CODE
#
# RCBot2 Script DUSTBOWL CP
#
#
:setup_time:60
:on_reset:
blue_attack:1
blue_defend:0
red_attack:0
red_defend:1
areas:1,2,8
#
# STAGE ONE
# CAP ONE
:on_blue_cap:#Dustbowl_cap_1_A
red_attack:0
red_defend:2
blue_attack:2
blue_defend:0
areas:1,2,9
:on_blue_cap:#Dustbowl_cap_1_B
red_attack:0
red_defend:3
blue_attack:3
blue_defend:0
areas:3,4,10
#
# STAGE TWO
#
:on_blue_cap:#Dustbowl_cap_2_A
red_attack:0
red_defend:4
blue_attack:4
blue_defend:0
areas:3,4,11
:on_blue_cap:#Dustbowl_cap_2_B
red_attack:0
red_defend:5
blue_attack:5
blue_defend:0
areas:5,6,7
#
# STAGE THREE
#
:on_blue_cap:#Dustbowl_cap_3_A
red_attack:0
red_defend:6
blue_attack:6
blue_defend:0
areas:5,6
The numbers represent the "Waypoint areas", The most important are
the red_attack/blue_attack/blue_defend/red_Defend as these denote the capture
point waypoint areas, there should be waypoints with "capture point"
type and area number related to the number in this script.
:setup_time:<time>
is the GLOBAL setup time in seconds at the moment, this may be changed to per
point.
:on_reset:
is a global flag state which happens when a round completely restarts (.e.g
first dustbowl cap/new cp_badlands round)
:on_blue_cap:<Cap name>
is what happens when BLUE captures the point with <cap name> (look at
these later)
:on_red_cap:<Cap name>
is what happens when RED captures the point with <cap name> (look at
these later)
To define what happens when a point is captured I use these
red_attack:<waypoint area>
blue_attack<waypoint area>
red_defend:<waypoint area>
blue_defend:<waypoint area>
The bots will go to these waypoint capture areas with the appropriate
Defend/Attack style depending on which team they are, the names are self
explanatory
Cap names
You can get these by putting "rcbot debug gameevent 1" on and
playing on a team, go to a capture point and capture it. Eventually the
"point captured" event will happen and it will have a
"cpname", this is the capture point name.
For example:
On well there are
#Well_cap_blue_two = 0
#Well_cap_blue_rocket = 1
#Well_cap_center = 2
#Well_cap_red_two = 3
#Well_cap_red_rocket = 4
Perhaps someone could make up a script for this
and
the rest . . . As I'm going to scrap the old method.
areas
is unused at the moment but will be eventually used to determine what waypoints
are valid when a point is captured, for example some waypoints may be
unreachable after CP_dustbowl stage 1, 2 etc . . . All flagged waypoints should
have an area related to the " reachability " of it . . .
e.g. If I want a sentry waypoint on CP_Dustbowl on stage 1 I will give it an
area of 1 or 2.
If I want it on stage 2 I will give it area 3 or 4, (See the script above)
Area 0
Waypoints with area of "0" are generally accessible, or ignored.
for example: blue_attack:0 (or red_attack:0) , will mean the team has no attack
areas at this time.