Well what is this? It is a menu and script that allows you to make a bots map from any obj map (and possible a non obj map) while you re in the game. What it does is spawn temp models where the nodes, spawnpoints, botspawnpoints, models and pathnodes will be . You will then use the write script button and the script for the bots will be written to your log (you must have logging turned on) there is also a button for writing a save script to the log that will make a script that can be reloaded to do more editing . It includes a sample for obj_team1. It is just a sample to help you get started.
Botmap maker system created by bdbodger ( email@example.com ) ©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 . description: Well what is this? It is a menu and script that allows you to make a bots map from any obj map ( and possible a non obj map ) while you are in the game. What it does is spawn temp models where the nodes , spawnpoints , botspawnpoints , models and pathnodes will be . You will then use the write script button and the script for the bots will be written to your log ( you must have logging turned on ) there is also a button for writeing a save script to the log that will make a script that can be reloaded to do more editing . It includes a sample for obj_team1 . It is just a sample to help you get started . 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] = "b" level.routelist[route1] = "bb" level.routelist[route1] = "bbb" level.routelist[route1] = "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 . //////////////////////////////////////////////////////////////////////////////////////////////////////////////
There are no comments yet. Be the first!