魔兽争霸地图编辑器.AI制作.doc

上传人:公**** 文档编号:558909995 上传时间:2023-02-27 格式:DOC 页数:21 大小:30.43KB
返回 下载 相关 举报
魔兽争霸地图编辑器.AI制作.doc_第1页
第1页 / 共21页
魔兽争霸地图编辑器.AI制作.doc_第2页
第2页 / 共21页
魔兽争霸地图编辑器.AI制作.doc_第3页
第3页 / 共21页
魔兽争霸地图编辑器.AI制作.doc_第4页
第4页 / 共21页
魔兽争霸地图编辑器.AI制作.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《魔兽争霸地图编辑器.AI制作.doc》由会员分享,可在线阅读,更多相关《魔兽争霸地图编辑器.AI制作.doc(21页珍藏版)》请在金锄头文库上搜索。

1、 AI脚本初级教程?【什么是jass AI?】:jass AI是用纯jass编写的AI程序,可以用新建文本文档写或jass工具编写.真三AI以及DOTA AI也是由AI脚本编写.【AI脚本使用方法】:运行地图编辑器打开你最爱的对战地图,将它以另外一个名字保存(最好放在另外一个文件夹里面)按F12(或者点Modules(模块)菜单,然后选择Import manager(输入管理器))在Import manager(输入管理器)中选择File -Import file (文件 - 输入文件)选择刚刚建立好的*.ai.文件鼠标右击已经导入的文件,选择Modify file properties(修改

2、文件属性)将文件的后缀名改为.ai?【代码放置】:在文本文档中AI程序代码应如下放置+ Shingo Jass Highlighter 0.41globals/ 这个放全局变量endglobalsfunction blabla takes blabla returns blabla/ 自定义函数endfunctionfunction main takes nothing returns nothing/主程序在这Endfunction教程 用T编写简单的AI,让你的电脑变的强大起来 (菜鸟必看)首先要知道一点,对于1般的RPG,对战的AI是没有用处的,如果加了对战AI,电脑就只会造房子出兵,显

3、然这个是我们不需要的如果1个电脑单位没有任何AI,那么它就只拥有以下基本功能,对于旁边的敌人会主动的攻击,会自动放单体的杀伤魔法,(要说明的是,只会随便选择一个单位放技能,而没有针对性),敌人比较多的时候也会放群体的杀伤魔法,也会使用加血的技能和魔法,这些是不需要特殊的AI的就可以办到的.电脑的没有AI的缺点有以下几点1,不会逃跑2,不会学习技能3.不会针对某个特别单位使用技能4,不会使用部分物品和特殊的技能我现在就把ORC3C电脑英雄的沉没的AI简单的给大家介绍一下基本的方法是这样一般的说,ORC的电脑的沉没对冽炎风暴,火焰雨,暴风雪等持续的魔法更有效基本的方法是这样:事件: 任意单位发动技

4、能效果条件:满足任意的下面一个条件释放的 技能是 暴风雪释放的 技能是 火焰雨释放的 技能是 烈炎风暴释放的 技能是 动作:选择 触发单位 为圆心 范围800 满足条件 (匹配的单位是 英雄 为 TRUE) (匹配单位控制者是 电脑) (匹配单位是 死亡 为 FLASE) (匹配单位是 是触发单位所有者的 敌人 为 TRUE) (匹配的单位所持有的 沉没权仗是 被持有的) 的单位做动作LOOP让选择的 单位使用 选择单位 所持有的 沉没权仗 到 触发单位的位置就可以实现AI的沉默效果,一定要加 (匹配单位控制者是 电脑),否则玩家单位也会被强制使用物品下面偶在讲个DOTA的里面暗影萨满的多个技

5、能连杀的T以暗影萨满11级的为例子枷锁 LV4 MP 185 闪电 LV4 MP 160 蛇棒LV2 350一个连招 3个魔法一共要消耗700点魔法假使撒满身上有风仗,魔法充足下面如下的写T触发1_事件:任意单位被攻击条件:被攻击的单位是英雄为真被攻击的单位的生命值低于 70%被攻击的单位是攻击单位的敌人被攻击的单位是死亡 为 假动作: :设置变量 A= 被攻击的单位 /(为其他的T记录)选择 触发单位 为圆心 范围800 满足条件 (匹配的单位的类型是 暗影撒满 为 TRUE) (匹配单位控制者是 电脑) (匹配单位是 死亡 为 FLASE) (匹配单位是 是触发单位所有者的 敌人 为 TR

6、UE) (匹配的单位所持有的 飓风权仗是 被持有的) 的单位做动作LOOP让选择的 单位使用 选择单位 所持有的 飓风权仗 到 被攻击的单位设置变量 B= 选择的单位 /(为其他的T记录)命令 B 使用 暗影猎手_毒蛇守卫 到 A 所在的点开启触发器2开启触发器4触发2_初始关闭事件:每0.2事件条件:动作:选择 A 为圆心 范围200 满足条件 (匹配的单位的类型是 毒蛇守卫LV2 为 TRUE) (匹配单位控制者是 电脑) (匹配单位是 死亡 为 FLASE) (匹配单位是 是触发单位所有者的 敌人 为 TRUE) 的单位做动作LOOP命令 选取的单位 发布 攻击 到 A触发3_事件:任意

7、单位死亡条件:死亡的单位类型是 毒蛇守卫LV2动作:关闭 触发2触发4_初始关闭事件:每0.2事件条件:动作:选择 B 为圆心 范围600 满足条件 (匹配的单位的类型是 暗影撒满 为 TRUE) (匹配单位控制者是 电脑) (匹配单位是 死亡 为 FLASE) (匹配单位是 是触发单位所有者的 敌人 为 TRUE) 的单位做动作LOOP命令 B 发布 人族 龙鹰骑士_空中锁链 到 A触发5_事件:任意单位 开始释放技能条件:释放的技能是 枷锁动作:关闭 触发4触发6_事件:任意单位 释放技能结束条件:释放的技能是 枷锁动作:命令 B 发布 中立 那家海女巫_叉状闪电 到 A命令 B 发布 中

8、立 攻击 到 A几个组合的T就可以让电脑使用出强大的组合技能,就就是基本T做的AI下面的几页帖子在继续写其他的方面的AI 呵呵教程 如何创建一个魔兽RPG的AI系统(转).从某地方挖出的如何创建一个魔兽RPG的AI系统作者:Blade.dk翻译:通魔作坊?onlyxuyang译文:这篇文章将帮助你制作一个简单但是十分酷的英雄对战地图的人工智能。这个你将学习的人工智能系统不是非常完美。我们将创建的是一个可以攻击其它英雄、可以自己拣物品、学习和使用技能的人工智能系统,但是还是无法与人类玩家相比。但是,当你学习了基础的知识以后你应该可以自己改进它。前提需要:JASS基础-这篇文章使用JASS来制作示

9、例,所以你必须了解JASS。在理论上它也可以在T中做出来,但是我不推荐那样做,因为用T来制作可能导致内存泄露、大量不必要的代码以及在T中是无法使用JASS的返回值BUG和游戏缓存系统的。如果你不熟悉JASS,请预先补充一下你自己的JASS知识。你同样必须知道什么是代码行,如果你不知道的话,请补充自己的知识。基于游戏缓存以及返回值BUG的系统注意事项:- 我们将要制作的AI系统达不到人类的水平,但是比什么都没有强。而且我认为当你理解了基础以后可以自己改进它。- 你不用完全按照我说的做;我按做我的想法做,但是如果你的想法更好或者你觉得自己的做法更舒服,请按照你自己的想法做。我并不完美,这篇文章也不

10、可能完美,但是我希望它可以对你有所帮助。- 你可以使用在我的演示地图里面的AI系统而不自己动手(如果你那样做了,请告诉我一声),但是我建议你自己动手写,因为地图可能很复杂而且你可以自己动手写一个AI系统中学到更多的知识。初始化部分:首先在WE中创建一个触发条件为玩家1-玩家1(红色)离开游戏的触发器,然后把它转换为JASS。我们需要这个触发器来监视玩家离开游戏,那样我们才能为这个玩家开启人工智能。现在它只监视一号玩家离开游戏,所以我们在正式地图中需要使用一个循环来监视从0-11号的玩家。我们希望这个AI系统可以使用技能。听起来似乎很难,其实很简单。我们只需要使英雄学习技能,那么他们就可以自己使

11、用。注意:电脑控制的英雄释放自定义技能的情况总是和它释放这个自定义技能的基础技能的情况相同(这里翻译的有点含糊不清,自定义技能的基础技能的意思是.基础技能是游戏本身带有的技能,自定义技能都是以某个基础技能为基础的.这样说做过图的大大应该可以明白吧?).所以如果你的自定义技能是以沉默为基础技能的,电脑控制的英雄就会在对战地图中应该使用沉默的情况使用这个技能。千万不要将技能以通魔(Channel)为基础,因为电脑从来不会使用它们,即使改变技能的OrderString也没有什么用。为了知道每个英雄都拥有什么技能,我们创建了一个游戏缓存(game cache)来保存它。在演示地图中我的触发器在地图的初

12、始化部分创建了一个游戏缓存并将它保存在全局变量 udg_GameCache 中。需要注意的是缓存必须在我们使用它之前初始化,所以我在地图的初始化时间中创建了它。在我的地图中我写了一个函数SetupSkills.在这个AI触发器的InitTrig函数中我使用了库函数ExecuteFunc来开启另外一个线程执行这个函数。这是为了防止地图的初始化时间太长。jass: Copy code我的SetupSkills函数如下:function SetupSkills takes nothing returns nothinglocal string h / Create a local string va

13、riable/ Paladin / Here well initialise the Paladins skills, repeat this for all other heroesset h = UnitId2String(Hpal) / Store the returned value of UnitId2String(Hpal) in the localcall StoreInteger(udg_GameCache, h, BaseSkill1, AHhb) / One of his base skills is Holy Light, store it as “BaseSkill1”call StoreInteger(udg_GameCache, h, BaseSkill2, AHds) / Store Divine Shield as “BaseSkill2”call StoreInteger(udg_GameCache, h, BaseSkill3, AHad) / Store Devotion Aura

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号