
1. 会用控制台观察调试,这是最基本的,调出控制台步骤:
游戏主界面--设置--选项--高级选项--启用控制台,设置--热键--前往高级热键设置--界面--控制台设置好按键。
进入游戏内就可以按你设置的热键开关控制台了,如果你的LUA脚本运行有错误,一般会有粉红色字体报错显示在控制台,还能帮你精确定位是哪个脚本文件的哪一行什么错误。
2. 如果游戏一载入就闪退,说明是你引用的外部文件路径有误,或者文件头部书写有误,如
GetScriptDirectory()这个函数指的是bots文件夹路径,而不是本文件所在路径。
3. 开发脚本时建议最好不要用bot_generic.lua或bot_lina.lua脚本开发,因为这意味着你是在完全接手掌控英雄bot,这么做的后果是,你会覆盖掉当前bot的所有默认C++行为,比如你会发现很奇怪电脑再也不会插眼、不会控符、不会买粉撒粉等一系列以前的“小动作”,因为被你干掉了,记住这是“完全接手”!所以通常建议还是在ability_item_usage_undying.lua,mode_attack_obsidian_destroyer.lua这样的分行动中去操作,可以更精细地分配机器人工作而不至于很乱,脚本不严格分层分块,会给自己带来不必要的麻烦,甚至感觉好像不如默认机器人,做太多无用功。
4. 千万不要忘记\Steam\steamapps\common\dota 2 beta\game\dota\scripts\npc下的三个txt文件,这个是V社决定开放的福利,充分利用会给你带来一系便捷, 具体功能我就不详解了。
5. 脚本开发中有一个很重要的影响机器人的值,叫做desire,这东西操控所有行为实现的可能性大小。机器人会先不断获取mode_desire的值,取当前(1帧)的mode,比如是推线,gank还是逃跑等等,然后再判断行为的desire值,链接到你的具体脚本操作行为,比如攻击小兵,释放技能,使用物品等。以上想让机器人更聪慧,建议再把类似这样的desire = BOT_ACTION_DESIRE_HIGH的取值再次细分,比如desire = 0.68,0.79,这样电脑取舍更精细,本来按帧率运行就已经在抽风一样的来回做动作,这点就不好改变,太粗略的行为就过于影响效率了。
游戏主界面--设置--选项--高级选项--启用控制台,设置--热键--前往高级热键设置--界面--控制台设置好按键。
进入游戏内就可以按你设置的热键开关控制台了,如果你的LUA脚本运行有错误,一般会有粉红色字体报错显示在控制台,还能帮你精确定位是哪个脚本文件的哪一行什么错误。
2. 如果游戏一载入就闪退,说明是你引用的外部文件路径有误,或者文件头部书写有误,如
GetScriptDirectory()这个函数指的是bots文件夹路径,而不是本文件所在路径。
3. 开发脚本时建议最好不要用bot_generic.lua或bot_lina.lua脚本开发,因为这意味着你是在完全接手掌控英雄bot,这么做的后果是,你会覆盖掉当前bot的所有默认C++行为,比如你会发现很奇怪电脑再也不会插眼、不会控符、不会买粉撒粉等一系列以前的“小动作”,因为被你干掉了,记住这是“完全接手”!所以通常建议还是在ability_item_usage_undying.lua,mode_attack_obsidian_destroyer.lua这样的分行动中去操作,可以更精细地分配机器人工作而不至于很乱,脚本不严格分层分块,会给自己带来不必要的麻烦,甚至感觉好像不如默认机器人,做太多无用功。
4. 千万不要忘记\Steam\steamapps\common\dota 2 beta\game\dota\scripts\npc下的三个txt文件,这个是V社决定开放的福利,充分利用会给你带来一系便捷, 具体功能我就不详解了。
5. 脚本开发中有一个很重要的影响机器人的值,叫做desire,这东西操控所有行为实现的可能性大小。机器人会先不断获取mode_desire的值,取当前(1帧)的mode,比如是推线,gank还是逃跑等等,然后再判断行为的desire值,链接到你的具体脚本操作行为,比如攻击小兵,释放技能,使用物品等。以上想让机器人更聪慧,建议再把类似这样的desire = BOT_ACTION_DESIRE_HIGH的取值再次细分,比如desire = 0.68,0.79,这样电脑取舍更精细,本来按帧率运行就已经在抽风一样的来回做动作,这点就不好改变,太粗略的行为就过于影响效率了。
