Bot Mapper

Add Another Mod

 

Mod File number (downloads) -

MD5

Type -

Bots / AI

Server / Client -

Client Side

Mod Sub Cat -

N/A

Mod Version -

1.0

Total Views -

Mod screen shot -

Bot Mapper

Mod PK3

PK3 MD5

Mod External Info -

Game Type -

MOHAA

 

 

Mod Creator -

Bdbodger

 

 

 

 

Mod Status -

Fully working no errors

 

Team -

 

Theme -

Rating

Extra Credits -

 

Iinstall / info

///////////////////////////////////////////////////////////////////////////////////////////////////////////

Botmap maker system created by bdbodger (

) ©2004

You are free to use this script for noncommercial use as long as you do not remove this message

and if you edit the script you indicate in the script the changes you have made .

This script is offered as is and author is not responsible for improper use .

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

setup:

Put the user_Bdbodger_botmapper.pk3 in the main directory

When running the Botsmapper.scr you will need to use the botspawnmenu I suggest you type: bind b pushmenu botspawnmenu
into the console to make mapping easier , you can use any free key for this .

I have included a test or sample script for obj_team1 it contains the following

maps/obj/obj_team1_bot.scr

maps/obj/obj_team1_save.scr

maps/obj/obj_team1.scr

The some of the lines in the original maps/obj/obj_team1.scr have been changed and these lines added

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// This will run the bots scripts but only the first round
// to make the final script paste into the top of the maps/obj/obj_team1.scr
//////////////////////////////////////////////////////////////////////////////////////////////////////////////

waitexec maps/obj/obj_team1_bot.scr

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// to reedit the script comment out the waitexec maps/obj/obj_team1_bot.scr and uncomment these lines
//////////////////////////////////////////////////////////////////////////////////////////////////////////////

//waitexec maps/obj/obj_team1_save.scr

//exec global/Botsmapper.scr

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

There are two buttons on the menus 1 is to write the final script and 1 writes a save script the difference is simple
the save script does not spawn the pathnodes or pathnodes for things like the bombnodes it spawns the temp models.
I suggest that you do both and while makeing your map you save then as I have in obj_team1_bot.scr and obj_team1_save.scr
that will make makeing changes a lot easier .

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

These lines have been commented out

//$flak88_weapon1_trigger thread flak88_random_setup $flak88_weapon1_explosive //$flak88_weapon1 $flak88_target1 $flak88_base1 4
//$flak88_weapon1_explosive thread global/obj_dm.scr::bomb_thinker

The botmapper script will add these lines to the script writeout but not the save script.
Examine the maps/obj/obj_team1_bot.scr for more details , as you see I have added a second objective

$flak88_weapon1_explosive thread global/jv_obj_dm.scr::bomb_thinker
$bomb2 thread global/jv_obj_dm.scr::bomb_thinker

waitthread global/jv_bots/jv_mp_ai.scr::enable

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

On the botspawnmenu I have added a special model "bsp_bomb" this is for bombs that are created in the bsp to use it
set the targetname to the targetname of the model that is in the map , this is to add keys to the model for the bots.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

When setting the auto pathnodes on the menu you will not be able at this time to edit or move them later there is however
pathnode on the nodes menu that you can use to add anymore pathnodes you think are needed , when added this way
you will be able to move them later. In wide areas it is better to make the auto nodes by running up 1 side then the other.
You can adjust the spaceing of the nodes from the menu . While in auto nodes mode you will not be able to spawn anything else
from the menu so be sure to turn auto nodes off before doing anything else .

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

When the objective models are spawned in the final script I did not use spawnflags 1 to make them not solid I don't know if
it is that or not but I found with the second objective that I had to make the trigger_use and bomb some distance from the
model I assume because of the bounding box of the model .

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

The menu will add the .destroyed_model key to the model if that modes has a destroyed model . I also have the destroyed models
on the menu but they are not really needed to be on there .The same applies to the pulse models the non pulse models have
been added to the menu but are not needed the pulse models when spawned will add the .explosivemodel key to the bomb for use
in the global/jv_obj_dm.scr::bomb_thinker thread .

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

Most things that have keys that are always used for that type of thing like the targetname of a bombnode are added by the
botmapper.scr to the menu these things can be changed but it is usually not nessesary for a test I added a trigger_use to
the bsp_model on the flak88 to replace the 1 that was being used by the flak88 seems to work as well as the original like
I said before it may be better to set spawnflags 1 on the objective models .

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

At this time the setsize on the triggers is predefined

println "level.obj_model[" local.i "] setsize ( -25 -25 0 )( 25 25 50 )"

This seems to work ok

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

For the test map I set on the botmapsetup menu that you can get to from the botspawnmenu

level.alliesbots = 7
level.axisbots = 1

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

Tips:

You can not move when any of the menus are open but if you click outside the menu you can point yourself in a different
direction to get the mouse back quickly open and close the console . Do not use esc to exit the menus if you do the cvars
will not be set use the exit menu buttons .The last item edited or created will be on the menu when you reopen the menu
at this time you have to use the + or - buttons to go through the entities but if you create and delete a entity then the
menu will be at the last entity .Either delete button will delete the current entity as seen in the position area .

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

Routelists:

If you set the routelist key on an entity then a routelist will be created automatically . I have allowed 4 routes per
routelist . You only need to set the routes on 1 routelist if that routelist is used on another entity it will have the
same routes on it's list . I am sorry I forgot to use an example of that on the test map but the output will look something
like this .

//<------------------------ Route lists ------------------------->

level.routelist[route1][1] = "b"
level.routelist[route1][2] = "bb"
level.routelist[route1][3] = "bbb"
level.routelist[route1][4] = "bbbb"

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

To select a node or model in front of you use the use key and it will be automatically selected and the menu updated
Also the show beam and arrow will then point to it .

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

Video