Fixing the Botinator problems

Fixing the Botinator problems

Based on information from Cajun Wolfe, Apache Thunder and Dnamro

The Botinator is the a tool to setup BF1942 and BF Vietnam maps for singleplayer support. I does have a few issues. This tutorial will explain what they area an how to fix them.

First of all, the Botinator was created for BFVietnam and and then later edited to support BF1942, but it was not tested very well for BF1942 support. The Botinator is really handy in setting up the map structure as in the files for AI and by placing the all black maps in the pathfinding folder you can get a full set of maps for each vehicle class on the first run. I do this after running the Botinator on a map:

First off check out tutorial here by Cajun Wolf:

http://www.cajunwolf.com/Botinator%205%20Tutorial.html

the following is a suplement to the tut.

**Stategic Areas**

This section explains the basics of how fix the botinator bugs in the ai\strategicareas.con file:

For an indepth explanation, check out this tutorial:

Explaining the Botinator Strategic Area problem

(Bad setorder postions and settakeable is always set to 1 0)

> aiStrategicArea.setActive alliesbase
>
>
>

> AIStrategicArea.addNeighbour southopenbase
>
>
>

> AIStrategicArea.addNeighbour northopenbase
>
>
>

> AIStrategicArea.addNeighbour eastopenbase
>
>

> AIStrategicArea.addNeighbour axisbase
>
>
>

> AIStrategicArea.addNeighbour the\_laketemplate
>
>

>> these are bad. The botinator gets the position from the the x/y/z postion of the CP. The botinator uses x/y when it should use x/z. As a quick fix you can just rem them out.

AIStrategicArea.setOrderPosition Infantry 1694/60
AIStrategicArea.setOrderPosition Tank 1694/60
AIStrategicArea.setOrderPosition Car 1694/60

aiStrategicArea.setSide 1

>> the botinator always sets the following line this way regardless of who really owns the SA and even if its capable. Again just rem this line out for a quick fix.
aiStrategicArea.setTakeable 1 0

aiStrategicArea.vehicleSearchRadius 150.0
aiStrategicArea.playerSensitive 1
aiStrategicArea.playerSensitivity 5.0f

In the AIpathFinding.con file rem out the following lines;

ai.setMapSpawnPoints (this is just a filter and you get better patrhmaps without the coordinates..be sure and do this on all the vehicle types..ie Tank, Infantry, Boat...etc.)

run StaticObjects.con
ai.createAllMaps
(rem these lines out as we are going to be creating each set of maps one at a time.)

Now in the AI.con file rem out all stats or add a "0" after them like so..

rem game.showAIstats 0
rem ai.showBotStats 0
(and any other stats)

Now one mistake the Botinator makes is in the coop.con files ..one in the game types folder and one in the maps root. It has this line in two places in each file.

"run Conquest/ControlPointTemplates"

and this needs to be changed to..

"run SinglePlayer/ControlPointTemplates"

Remember there are two places in each coop.con files this has to be edited.

Now with this all done we do the following, in debugger mode load the map in coop or SP and once the map loads pause the game ("P" key) and drop the console ("~" key) and type the following...

ai.createMaps (veh#) where veh# is the number of the vehicle pathmap you are trying to create. Example, if you want to make Tanks maps you would type the following...

ai.createMaps 0

"0" is the number of the Tank maps. If you want Infantry maps type...

ai.createMaps 1

"1" is the number of the infantry vehicle type map..do this for all the vehicle types such as "2" for Boats, "3" for LandingCraft, "4" for Cars. Each time it will pause for awhile then will let you know when it has finished with each type.

When setting up the AIpathFinding.con file be sure and knotice the line...

ai.addSearchMap

Look at dnamro's example above and it is explaned in my tutorial also on how to edit this line. The Botinator sets it up for bfv and it has to be edited to work with bf.

I hope this adder to what Dnamro has aready stated above is of some help..any questions please ask..one of us will be able to help.

One last thing..it is rare that bf or bfv for that matter will create a perfect set of pathmaps. I always edit mine once the pathing engine of bf has finished them. There are several ways you can alter the map copy you are pathing with to get better pathmaps then just copy the pathmaps in the good copy. The best way is to use FourCentsShy's (you know him.. Genpathmaps to do minor edits or using Rexmans tools convert the pathmaps to terrain textures and load up into ED 42 and do some real edits.

Aipathfinding

What we found out since the botinator was created is that classing the vehicles with the botinator is a waste of time. The only purpose for that was to assign coordinates to the spawn point settings for each pathmap, which is not necessary and can actually hamper pathmap creation.

The botinator is useful for creating the Stategic Areas which it creates from the control points - but you still have to go back and fix the botinator bugs there, though it is easier then creating them by hand.

I just quickly go thru the botinator object spawn classing by clicking the same type for everything. Then I open up the aipathfinding.con file and delete the pathfinding lines and copy in these standard settings for BF42:

rem \*\*\* Tank \*\*\*
ai.addSearchMap Tank0 0 1.5 60 3.0 0.3 2.5 0
ai.addSearchType Tank 0 0
ai.setMapSpawnPoints 0
ai.setSmoothing 0 20

rem \*\*\* Infantry \*\*\*
ai.addSearchMap Infantry1 0 1.5 60 1.0 0.4 2.0 1
ai.addSearchType Infantry 1 0
ai.setMapSpawnPoints 1
ai.setSmoothing 1 10

rem \*\*\* Boat \*\*\*
ai.addSearchMap Boat2 1 15 30 125.0 0.3 2.5 0 2 5
ai.addSearchType Boat 2 2
ai.setMapSpawnPoints 2
ai.setSmoothing 2 20

rem \*\*\* LandingCraft \*\*\*
ai.addSearchMap LandingCraft3 1 1.4 30 4.0 0.3 2.5 0
ai.addSearchType LandingCraft 3 2
ai.setMapSpawnPoints 3
ai.setSmoothing 3 20

rem \*\*\* Car \*\*\*
ai.addSearchMap Car4 0 0 20 6.0 0.3 2.5 0
ai.addSearchType Car 4 0
ai.setMapSpawnPoints 4
ai.setSmoothing 4 6

rem \*\*\* Load maps \*\*\*
ai.loadMaps
run StaticObjects.con
ai.createAllMaps
endif