设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1667|回复: 14

CS起源BOT路径点制作教程书 [复制链接]

Rank: 5Rank: 5

帖子
106
精华
0
声望
802 点
金币
125 Mold
被赞许
4 次
注册时间
2011-11-12
发表于 2012-12-11 00:03:33 |显示全部楼层
本帖最后由 火影天天荷花 于 2012-12-11 00:15 编辑

虽然这个游戏自动生成路径点文件(.nav),令你可以快速的和BOT玩儿,但是你会发现毫无乐趣,比如你下载了一个非官方新地图,或者自己做的,那么你会发现BOT就算是设置成专家级也是像傻子一样-_-!,甚至找不到北,从楼上摔下来,连梯子都不会用,所以,让我们自己做个好啦。

好了,开始准备编辑 路径文件 .nav

由于路径点要在游戏中进行调试编辑,所以你要自己建立服务器,并且将要绑定的命令输入控制台(console),当然如果你想要简单,可以自己建立config.cfg文件(这个文件包含了你的键盘自定义内容)。在X:\Games\Steam\SteamApps\yoursteamID\counter-strike source\cstrike\cfg文件夹中,(注意哦,修改cfg文件,要注意备份,以便完成后还原cfg)。好了,开启游戏,打开控制台(console),输入以下命令(如果你木有修改cfg文件):
   
bind "1" nav_mark
bind "2" nav_connect
bind "j" nav_jump
bind "p" nav_precise
bind "Mouse1" nav_begin_area
bind "Mouse2" nav_end_area
bind "\" nav_split
bind "del" nav_delete
bind "c" nav_crouch
bind "n" nav_no_jump
bind "=" nav_disconnect
bind "0" nav_make_sniping_spot
bind "m" nav_merge     
好,准备编辑啦
加载你想编辑路径点的地图,在控制台输入sv_cheats 1 、nav_quicksave 1。接着输入nav_generate并且等待它处理地图。如果你很熟悉这个处理过程的话,你会发现因为设置nav_quicksave为“1”而忽略了一些区域的分析(比如阻击点、隐蔽点等等)只是分析了可以通过的区域,这样就节省时间,因为本来就是新制作嘛^_^(注意:如果你再次编辑的时候不要这样设置)。

基本操作

在控制台输入nav_edit 1,如果你的以上操作都正确的话,那么你会发现原来的准星现在是一个白色的十字,它指向的地面会有一些颜色区域。被白色十字选中的是黄色,未选中的是红色。  

地图001.jpg



使用道具 举报

Rank: 5Rank: 5

帖子
106
精华
0
声望
802 点
金币
125 Mold
被赞许
4 次
注册时间
2011-11-12
发表于 2012-12-11 00:05:46 |显示全部楼层
在你的地图上转转圈,看看有没有什么地区木有被创建,如果有(有时引擎认为有的地方不可通过),那么你可以手动添加它们。

方法是:将鼠标移动该区域,单击左键设立开始点(木有绑定,就要在控制台输入nav_begin_area),拖曳出来一个方块,然后单击右键结束(木有绑定,就要在控制台输入nav_end_area)。

地图002.jpg

连接区域

Bots可以从一个区域到另外一个,需要连接两个区域的。这种连接有两种:单路和双路。单路连接,bots仅仅可以从一个区域去另外一个,但是回不来-_-! 双路可以自由的返转^_^
现在我们就做个双路连接。
找到两个临近的区域标记其中一个,用鼠标选中按“1”(或者在控制台输入nav_mark),哪,变成蓝色的了,而且当你的鼠标十字移动到另一个区域,它依然会保持被选中。
现在移动到你要与“已标记”区域连接的区域,按下“2”(或者在控制台输入nav_connect),好了这个就是单路,反过来再做一次,双路就形成了。别的区域连接就按这样做^_^

地图003.jpg

使用道具 举报

Rank: 5Rank: 5

帖子
106
精华
0
声望
802 点
金币
125 Mold
被赞许
4 次
注册时间
2011-11-12
发表于 2012-12-11 00:07:03 |显示全部楼层
本帖最后由 火影天天荷花 于 2012-12-11 00:08 编辑

注意啦:
单路连接是以淡兰色线标示的,双路的则是以亮兰色线标示。


建立良好连接区域的一些提示:
关于bot的行为模式
首先,每次bots看到敌人都会完全忽略眼前的“陷阱”,这样常常会使它们自毁(要不怎么叫bot哪^_^),假如你的地图有个沟儿啊,大洞啊,bots也许会掉下去,或者是个门儿也会压扁他们,行为模式是无法修正滴,因为是写入他们的代码中滴^_^

另一个就是bots总会抄近路,不喜欢拐弯儿。
这样的情况会使bots在一个拐弯儿的桥上掉下去-_-!
解决这样的问题,你需要把目标区域分切。移动鼠标十字到要分切的区域,你会看到一条白线。
按下“\”(或者在控制台输入nav_split),这样这个区域就会从白线的位置分切,一个双路连接也会自动生成在两个区域间。
好啦,这样bots就不会掉下桥了。
使用相同的方法,可以防止bots在一些地方卡住。

梯子问题
Bots一般识别不出梯子,所以要手动设置才可以。

地图004.jpg

只要将临近的可通过区域和梯子建立双路连接即可^_^
地图005.jpg

使用道具 举报

Rank: 5Rank: 5

帖子
106
精华
0
声望
802 点
金币
125 Mold
被赞许
4 次
注册时间
2011-11-12
发表于 2012-12-11 00:11:16 |显示全部楼层
其他的命令

nav_jump
这个命令不是让bots原地跳啊跳的,而是令bots通过两个区域的时候跳着过。
被标记的两个区域将会以两个斜线穿过来表示。

nav_crouch
和上个命令不同,这个是强迫bots蹲着,标记一个区域,按“c”(或者在控制台输入nav_crouch)。这样可令bots在你要求的区域的时候蹲着-_-! 被这个命令标记的区域将会以一条蓝色斜线穿过表示。

nav_precise
这个命令使得bots通过该区域的时候很小心哦

nav_no_jump
这个命令是强迫bots不准跳!^_^如果你用这个命令标记一个区域那么bots将不敢跳啦,哈哈哈哈哈,和上一个命令配合会使bots在一个需要警惕的区域再也不会傻傻的跳。

nav_delete
这个命令是删除那些 你认为bots不应该过的地方

nav_disconnect
这个命令是让两个连接区域断开

nav_merge
这个命令是合并两个可通过区域。

nav_make_sniping_spot
这个命令可标记一些小区域,不是说让bots在这里阻击哦,而是让它们知道也许这里有人阻击

好吧,测试吧,不合适的地方,再修改即可。
测试的时候 建议添加bots在你所在的一边儿哦 而不是和你敌对,这样不会太麻烦。
然后在控制台输入bot_zombie 1.这样bot就傻了,哈哈哈哈,然后标记一个区域,在控制台输入
bot_goto_mark,这样bots就会顺从的、抄近路滴到达该指定区域哦

测试成功保存你的.nav文件了

在控制台输入nav_save
然后输入nav_quicksave 0
接着是nav_analyze
好啦,地图会重新加载。


完成。
一个简单的路径文件就制作好了。
举例地图 aim_fggd_b
地图006.jpg


使用道具 举报

Rank: 5Rank: 5

帖子
106
精华
0
声望
802 点
金币
125 Mold
被赞许
4 次
注册时间
2011-11-12
发表于 2012-12-11 00:12:37 |显示全部楼层
本帖最后由 火影天天荷花 于 2012-12-11 00:20 编辑

nav路径文件设计技巧
我们讲过CS:S的bots路径制作方法,此教程中,我们将nav制作命令绑定到cfg文件中,但是有的同学老是把原版cfg文件写入错误绑定,今天我们就再来说一说nav路径文件设计技巧。
首先我们要来熟悉一下 nav命令:
路径网点生成
nav_generate  
 生成nav路径点文件,并存盘
nav_generate_incremental  
 再次运行生成程序,但不检测已有区域,新检测出来的区域将和原有的合并
nav_analyze  
 分析当前路径点文件并存盘,分析将定位电脑玩家bots下一步需要的数据
nav_mark_walkable  
 标记当前区域为可通过区域
nav_clear_walkable_marks  
 清除可通过区域标记
nav_save  
 将当前路径点文件存盘
nav_load  
 加载当前地图的路径点文件

编辑命令
nav_delete  
 删除当前高亮选择区域
nav_split  
 分[]裂一个nav区域  
nav_make_sniper_spots  
 定义当前位置为sniper(狙击)点
nav_merge  
 合并选择的两个区域
nav_mark  
 标记选择的区域
nav_unmark  
 取消标记区域
nav_begin_area  
 创建一个可通行区域的起始点
nav_end_area  
 创建一个可通行区域的结束点,与上个命令结合就做出了一个nav区域块
nav_connect  
 连接两个nav区域块,这样bots就可以在此两个区域通行
nav_disconnect  
 断开两个区域块的连接
nav_splice  
 分割一个nav区域块
nav_corner_select  
 选择当前标记nav区域块的一个角,多次选择可选定nav区域块的四个角
nav_corner_raise  
 升高当前标记的nav区域块的角
nav_corner_lower  
 降低当前标记的nav区域块的角
nav_corner_place_on_ground  
 将当前标记nav区域块放置在地上

BOT自定义路径
nav_crouch  
 将当前标记的nav区域块设定为“必须蹲伏的区域”  
nav_jump  
 将当前标记的nav区域块设定为“必须跳着通过的区域”
nav_no_jump  
 将当前标记的nav区域块设定为“不可跳动的区域”
nav_stop  
 将当前标记的nav区域块设定为“进入就要停止的区域”
nav_walk  
 将当前标记的nav区域块设定为“必须步行通过的区域”
nav_run  
 将当前标记的nav区域块设定为“必须跑步通过的区域”
nav_avoid  
 将当前标记的nav区域块设定为“尽可能避免接触的区域”
nav_transient  
 将当前标记的nav区域块设定为“临时且或许会被卡住的区域”
nav_dont_hide  
 将当前标记的nav区域块设定为“不可躲藏也就是不可放冷枪”
nav_stand  
 将当前标记的nav区域块设定为“错藏时必须站立着”
nav_no_hostages  
 将当前标记的nav区域块设定为“人质不可通行”

放置名称
nav_place_replace  
 使用第二个位置取代第一个位置
nav_place_list  
 罗列地图中用到的位置名称,比如CT基地、A  
nav_set_place_mode  
 开启或者关闭 位置命名模式,位置命名模式可以将一个地方标记出来,比如T基地  
nav_place_pick  
 将当前鼠标指针下的位置设置为被选择
nav_toggle_place_painting  
 转换为绘画模式,指向的位置将会转变为当前位置

其他命令
nav_check_file_consistency  
 扫描地图路径点,查找是否有不通顺的地方
nav_check_connectivity  
 报告所有没有连接到人质拯救区域 或者爆炸点的块
nav_update_blocked  
 更新nav区域块中的阻塞或者未阻塞区域
nav_check_floor  
 更新nav区域块的连接
nav_remove_unused_jump_areas  
 移除无用跳跃区域
nav_strip  
 移除区域中的 隐藏点、阻击点
nav_mark_unnamed  
 标记一个区域为无名称状态。  
nav_warp_to_mark  
 将玩家拖进标记区域
nav_ladder_flip  
 翻转被选中梯子的路径
nav_compress_id  
 将连续的区域和梯子重新排序  
nav_show_ladder_bounds  
 显示出地图中所有梯子的范围
nav_build_ladder  
 将鼠标指针下的可攀爬区域标识为梯子区域

控制台变量
nav_area_bgcolor R G B A  
 nav区域块被编辑时的背景色设定  
nav_edit (0 or 1)  
 设置为1时为nav编辑模式,设置为0则是关闭
nav_restart_after_analysis (0 or 1)  
 设置为1时,分析完地图后将重启  
nav_quicksave (0 or 1)  
 设置为1时,可开启快速存储模式
将 CFG文件放置在路径 ...counter-strike source\cstrike\cfg。然后在游戏中的控制台输入命令 exec navedit.cfg,navedit.cfg这个名字你可以随便定义。 这样就绑定了操作命令。退出游戏后,绑定也自行取消,不再因为cfg文件改动而反复修改。把下面的代码拷贝进入你的CFG文件吧。

Nav_edit "1"  

bind y nav_mark_walkable //此命令确认游戏中各个空间可行走区域
bind o "nav_quicksave 0" //快速保存 关闭
bind p "nav_quicksave 1" //快速保存 开启
bind f9 nav_generate //创建初始路径文件 (将花费大量时间)

bind mouse1 nav_begin_area //单击开始创建nav区域
bind mouse2 nav_end_area //单击结束nav区域划分
bind mouse3 nav_delete //单击删除nav区域

bind q nav_mark //标记nav区域
bind v nav_split //分[]裂开一个标记的nav区域
bind b nav_merge //合并两个标记的nav区域
bind n nav_splice //结合两个标记nav区域

bind 1 nav_avoid //这些数字键来编辑bots的在nav区域的行为
bind 2 nav_crouch
bind 3 nav_dont_hide
bind 4 nav_jump
bind 5 nav_no_jump
bind 6 nav_precise
bind 7 nav_run
bind 8 nav_stand
bind 9 nav_transient
bind 0 nav_walk

bind e nav_corner_select //nav角落区域被选择
bind r nav_corner_raise //提高角落区域
bind f nav_corner_lower //降低角落区域

bind z nav_connect //连接两个标记的区域
bind x nav_disconnect //断开两个区域

bind f6 nav_save //保存nav文件
bind f7 nav_analyze //最后一个关键步骤

bind g nav_toggle_place_painting
//不一定将所有nav命令绑定到某个键
//也可以在控制台直接输入命令
好了以上就是个nav文件制作的简便方法。
-教程结束-

使用道具 举报

Rank: 10Rank: 10Rank: 10

帖子
403
精华
2
声望
4124 点
金币
787 Mold
被赞许
40 次
注册时间
2012-6-21

可爱小猫 懒人勋章

发表于 2012-12-11 08:54:47 |显示全部楼层
这个坛子里有过了呵呵

使用道具 举报

Rank: 2

帖子
13
精华
0
声望
68 点
金币
12 Mold
被赞许
0 次
注册时间
2012-12-6

可爱小猫

发表于 2012-12-11 13:00:41 |显示全部楼层
这个教程不错,谢谢

使用道具 举报

Rank: 2

帖子
13
精华
0
声望
68 点
金币
12 Mold
被赞许
0 次
注册时间
2012-12-6

可爱小猫

发表于 2012-12-11 14:28:20 |显示全部楼层
这个教程挺好的,学习了,谢谢分享

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
351
精华
0
声望
2575 点
金币
308 Mold
被赞许
47 次
注册时间
2012-1-1
发表于 2012-12-11 16:54:25 |显示全部楼层
论坛 和 起源吧   都有一样的教程!我看过!  但要自己去做 真没 那耐心!

使用道具 举报

Rank: 5Rank: 5

帖子
256
精华
0
声望
1352 点
金币
123 Mold
被赞许
1 次
注册时间
2012-12-7

可爱小猫

发表于 2012-12-13 17:57:08 |显示全部楼层
谢谢楼主咯!!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部