魔兽争霸3魔兽地图编辑器aiI编辑

君,已阅读到文档的结尾了呢~~
魔兽争霸AI编辑器教程教程,ai,AI,AI编辑器,魔兽争霸,编辑器AI,编辑器,魔兽争霸吧
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
魔兽争霸AI编辑器教程
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口导读:为了控制AI我们使用了一个定时器(timer).我写了一个函数StartAI来获,这是演示地图中的空的AILoop函数和StartAI函数(这里给的只是一个框架,命令他移动到地图中心的生命泉水,然后命令英雄巡逻到地图的一个随机坐标,localstringh//Createalocalstringvariable//Paladin//Herewe’llinitialisethePaladin’s
local string h // Create a local string variable // Paladin // Here we’ll initialise the Paladin’s skills, repeat this for all other heroes
set h = UnitId2String('Hpal') // Store the returned value of UnitId2String(‘Hpal’) in the local
call StoreInteger(udg_GameCache, h, \'AHhb') // One of his base skills is Holy Light, store it as “BaseSkill1”
call StoreInteger(udg_GameCache, h, \Shield as “BaseSkill2”
call StoreInteger(udg_GameCache, h, \Aura as “BaseSkill3”
call StoreInteger(udg_GameCache, h, \'AHre') // Store Resurrection as his “UltimateSkill” ? // Repeat for each Hero. endfunction
接着是我的AI触发器的InitTrig部分: function InitTrig_AI takes nothing returns nothing
local integer i = 0
set gg_trg_AI = CreateTrigger(
exitwhen i > 11
call TriggerRegisterPlayerEventLeave( gg_trg_AI, Player(i) )
set i = i + 1
call TriggerAddAction( gg_trg_AI, function PlayerLeaves )
call ExecuteFunc(\endfunction
为英雄开启AI系统 为了控制AI我们使用了一个定时器(timer).我写了一个函数StartAI来获取一个单位的类型:英雄(请在演示地图中查看这个函数)。这个函数只是创建一个定时器,并且\绑定\在这个英雄身上,并且开启这个定时器。
这是演示地图中的空的AILoop函数和StartAI函数(这里给的只是一个框架,等下我们将展示一些动作函数,但是你起码必须先把function和endfunction写上去以保证WE不报错) :
function AILoop takes nothing returns nothing endfunction
function StartAI takes unit hero returns nothing
local timer m = CreateTimer()
call AttachObject(m, \
call TimerStart(m, 0, false, function AILoop)
set m = null endfunction
注意,我的这个StartAI函数通过将periodic参数设置为false来达到使定时器只执行一次的目的(以后我们还会来讨论它的).
现在,你就可以在你的英雄选择系统中当由电脑控制的玩家选择英雄时调用这个函数,并且在玩家离开游戏的时候执行这个函数。检测玩家是否拥有一个英雄,如果它拥有,调用这个函数来开启那个英雄的AI系统。例如:
function PlayerLeaves takes nothing returns nothing
local player p = GetTriggerPlayer()
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS, GetPlayerName(p)+\has left the game.\
if udg_Hero[GetPlayerId(p)] != null then
call StartAI(udg_Hero[GetPlayerId(p)])
set p = null endfunction
注意:这个函数将使AI系统控制离开的玩家的英雄,但是这也不是必要的,你也可以做别的事情。
使这个AI做些什么
当定时器终止的时候我们希望它做了这些事情:
●如果英雄死亡,等待他复活。
●如果英雄将要死亡,命令他移动到地图中心的生命泉水。
●如果英雄状态良好,检测是否有敌人在附近。如果有,则命令英雄攻击它。
否则就检测是否有物品在附近,如果有的话,发送一个巧妙
的命令让英雄拣起它。然后命令英雄巡逻到地图的一个随机坐标。
●如果英雄是活着的而且有未使用的技能点,学习一个技能。
我们由变量的声明开始。注意在我函数里面的实变量\,它定义了在定时器再次启动前所经过的时间,这样我们就可以在英雄死亡的时候等待短一点的时间,而在他攻击的时候等待长一点的时间。这个变量初始化值为5。
局部变量的声明: function AILoop takes nothing returns nothing
local string a = GetAttachmentTable(GetExpiredTimer())
local unit h = GetTableUnit(a, \
local rect i
local location r
local real x = GetUnitX(h)
local real y = GetUnitY(h)
local group g
local boolexpr b
local boolexpr be
local unit f
local string o = OrderId2String(GetUnitCurrentOrder(h))
local real l = GetUnitState(h, UNIT_STATE_LIFE)
local real e = 5 ?
我们由检测英雄是否死亡开始,如果他死亡了,设置\为1.5(因为在复活以后等待5秒的时间太长了,我们并不想这样).
当英雄的生命值\为0时,设置\为1.5来使定时器更加频繁的检测英雄是否复活. ?
if l <= 0 then
set e = 1.5
接着我检测英雄的生命是否低于最大生命值的20%.如果是的,命令英雄移动到生命泉并且设置\为3. 当英雄的生命值少于最大生命值的20%时,命令英雄移动到生命泉的位置。 ?
if l < GetUnitState(h, UNIT_STATE_MAX_LIFE)/5 then
call IssuePointOrder(h, \GetUnitX(gg_unit_nfoh_0001), GetUnitY(gg_unit_nfoh_0001))
set e = 3 ?
如果英雄的状态良好,检测他是否处在一个普通命令中(防止它打断了通魔技能).如果是一个标准命令,我们再检测在500的半径内是否有敌人存在.如果存在敌人,简单的发出一个攻击命令(不要改变\的值,5秒对于这个情况刚刚好).
function AIFilterEnemyConditions takes nothing returns boolean
return GetUnitState(GetFilterUnit(), UNIT_STATE_LIFE) IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(GetAttachedUnit(GetExpiredTimer(), \endfunction
if ((o == \or (o == \or (o == \or (o == \or (o == \
set g = CreateGroup()
set b = Condition(function AIFilterEnemyConditions)
call GroupEnumUnitsInRange(g, x, y, 500, b)
set f = FirstOfGroup(g)
if f == null then ?
call IssueTargetOrder(h, \
call DestroyGroup(g)
call DestroyBoolExpr(b)
如果没有敌人存在,再检测物品.如果发现物品,再检测是否为一个提升状态的物品.如果不是,检测英雄物品栏是否有空栏,有的话就命令英雄将它拣起来.
function AISetItem takes nothing returns nothing
set bj_lastRemovedItem=GetEnumItem() endfunction
function AIItemFilter takes nothing returns boolean
return IsItemVisible(GetFilterItem()) and GetWidgetLife(GetFilterItem()) > 0 endfunction
function AIHasEmptyInventorySlot takes unit u returns boolean
return UnitItemInSlot(u, 0) == null or UnitItemInSlot(u, 1) == null or UnitItemInSlot(u, 2) == null or UnitItemInSlot(u, 3) == null or UnitItemInSlot(u, 4) == null or UnitItemInSlot(u, 5) == null > 0 and endfunction
if f == null then
set i = Rect(x-800, y-800, x+800, y+800)
set be = Condition(function AIItemFilter)
set bj_lastRemovedItem=null
call EnumItemsInRect(i, be, function AISetItem)
if bj_lastRemovedItem != null (GetItemType(bj_lastRemovedItem) AIHasEmptyInventorySlot(h)) then
call bj_lastRemovedItem)
call RemoveRect(i)
call DestroyBoolExpr(be) ?
如果物品栏没有空位,或者没有发现物品,则命令英雄到一个随机地点寻找新的目标. ?
set r = GetRandomLocInRect(bj_mapInitialPlayableArea)
call IssuePointOrderLoc(h, \
call RemoveLocation(r) ?
linzefei 发短消息
linzefei (橙zi 174)当前离线
我从来没出现过
主题108 精华2 积分50383 阅读权限120 在线时间3947 小时 最后登录
IssueTargetOrder(h, \== ITEM_TYPE_POWERUP and or 包含总结汇报、文档下载、专业文献、IT计算机、资格考试、考试资料、旅游景点、word文档、应用文书以及魔兽争霸地图编辑器.AI制作等内容。本文共4页
相关内容搜索 |  |  |  |  | 
热门搜索:
您所在的位置: >
> 魔兽争霸III地图编辑器
魔兽争霸III地图编辑器
魔兽争霸III游戏辅助
软件大小:4.41 MB
软件类型:国产软件
软件分类: /
软件语言:简体中文
软件授权:免费软件
更新时间:
支持系统:Vista/winXP/win7/win8
相关链接:
相关合集:
热门专题:
手机扫一扫快捷方便下载
本类应用推荐
一款新上线实用的cf刷枪软件
是一款方便好用的穿越火线游戏刷枪软件
是一款方便好用的穿越火线游戏刷枪软件
V1.0 至尊版
一款上古卷轴5非官方DLC佛斯卡Falskaar
是一款CF刷枪永久英雄武器终极版软件
V3.0 绿色版
一款专业实用的cf游戏辅助工具
一款在线游戏平台
一款武侠题材的RPG手游
精彩栏目排行榜
网络资源 | 
讲述了一群有趣的摇滚爱好者帮小镇集安重拾音乐梦想的故事
网络资源 | 
是中国首部现代空战大片
网络资源 | 
是一场空天战场的猎杀,在境外天空展开一场生死对决
网络资源 | 
讲述了一群有趣的摇滚爱好者帮小镇集安重拾音乐梦想的故事
游戏工具 | 
一款适用于英雄联盟网络游戏的强大换肤工具
网络资源 | 
是一场发生在性别错乱后正义与恶势力间的拳斗故事
网络资源 | 
上世纪六七十年代,香港由英国殖民,权势腐败、社会混乱的背景故事
网络资源 | 
是一场发生在性别错乱后正义与恶势力间的拳斗
魔兽争霸III》资料片地图编辑器允许创建剧情、战役和多人的地图。这是暴雪开发公布的最完善的编辑器。以往编辑器的使用者和开发者不需要改变就能使用这个编辑器。
软件说明:
如果你使用过《魔兽争霸III》地图编辑器的话。你会发现原有的工具被完全保留,而且变得更加易用和更加的强大。对象编辑器增加了一些新的工具,可以更加方便的创建用户自己的单位、物品、装饰物、能力和升级选项。在新增的AI编辑器中,你可以自动控制战役中的队伍或者和它们进行练习。如果您更倾向于建立史诗般的战役。可以通过战役管理器管理多张地图的战役。新的多函数触发器和新增函数能够使您更加简单的编辑更加复杂的触发器。
这个帮助文件被设计成用户手册而不仅仅是介绍。里面详细的介绍了地图编辑器的强大功能。我们建议你尝试在网上搜寻有关信息,你会发现很多关于使用这个工具的站点和信息的。
,软件?软件下载后?飞翔小编十二分诚意等待着您的投诉与建议
APK文件怎么打开,下载APK文件如何安装到手机?推荐使用
软件无法下载
下载后无法使用
与描述不一致
2017新手游排行榜
国庆旅游必备软
国庆新游排行榜
星球大战手游排
手机军事app排
为您推荐:小说改编角色扮演恋爱游戏醉玲珑是一款采用国风古典彩绘风格的角色扮演游戏,游戏延续了原作的精彩剧情和人设背景,讲述了凤卿尘与元凌的恋爱之旅,游戏画风古风唯美,视觉...
你可能还喜欢
52z飞翔下载网小编整理了stormbound游戏合集,其中包含了stormbound游戏下载以及游戏攻略。Stormbound是一款策略棋牌类的手机游戏,想要成为强大的领主吗?和你的国王一起挑战对手们,战胜他们成为最强大的成功者吧,彰显一下你自己的技术!喜欢这类游戏就来下载体验吧!
52z飞翔下载网小编整理好了喵星人大战争游戏合集,其中包含了喵星人大战争中文版/破解版、喵星人大战争安卓/ios/电脑版、喵星人大战争攻略,喵星人大战争是一款非常萌的游戏,游戏的故事背景是2012年,美国发动了一个秘密计划,想要把日本人从太过安逸的生活当中唤醒,于是他们把代号战斗猫的武器派往日本.....
52z飞翔下载网金币大师游戏合集合集为大家提供金币大师安卓/ios/电脑版下载以及游戏辅助攻略。金币大师是一款不同寻常冒险之旅的休闲娱乐游戏,在游戏中,玩家将可以开始一段神奇的时光之旅,跟海盗进行战斗,争夺统治权,夺取资源。喜欢这款游戏的小伙伴们快来下载吧。
52z飞翔下载网小编为大家整理了帕帕岛物语游戏合集,提供帕帕岛物语手游官方下载。帕帕岛物语是一款卡通Q萌角色设定的战斗RPG手游,华丽的技能特效,多种多样的角色技能,游戏可支持百人同屏作战,给玩家极致的战斗体验!
52z飞翔下载网小编整理了君临九天游戏合集,其中包含了君临九天安卓/ios/电脑版、君临九天礼包、君临九天攻略。君临九天是一款开放式自由竞技的动作战斗类游戏,游戏中有着炫酷的羽翼自由发挥,还有全新史诗野战对决一较高下,众多道具精品使用、增强战斗力,独特争霸的策略战役火爆来袭,快来下载吧。
52z飞翔下载网小编整理出了复古传奇风云,其中包含了复古传奇风云手游下载、复古传奇风云礼包、复古传奇风云攻略、复古传奇风云邀请码。复古传奇风云是一款精心打造即时在线PK手机游戏,游戏支持千人同屏实时在线PK,架构宏大,画面精美,并且很好地传承了PC页游和端游中的众多经典玩法,喜欢就赶紧来下载吧!
52z飞翔下载网小编整理了龙之谷神圣天堂游戏合集,其中包含了龙之谷神圣天堂手游各版本下载!龙之谷神圣天堂是一款多人在线实时激战玩法的角色扮演类手机游戏,六大个性角色人物,各具特色玩法属性等,绝对让你再次重温经典冒险之旅!喜欢就赶紧来下载吧!
52z飞翔下载网兜帽跑酷者游戏合集为大家提供兜帽跑酷者安卓版/ios版/电脑版下载、兜帽跑酷者攻略。兜帽跑酷者Stryder是一款横版动作冒险游戏,你需要提前将“跳跃”和“冲刺”两种能力放到方块上去,主角才能在踩到方块时进行执行,而随着游戏速度的加快,你需要更快的反应能力和一点预判能力。
52z飞翔下载网小编整理出了图书运动员游戏合集,为大家提供图书运动员安卓/ios/电脑版、图书运动员攻略。图书运动员是一款横版动作跑酷类型的休息那游戏,采用全程点击操作主角进行跳跃,把握合适的时机成为通关的关键,游戏将背景设定在相连的书桌之上富有童话意境。快来下载玩耍吧!
进入手机版DotA是只使用了war3的地图编辑器制作出来的吗?还是自己也要写代码?war3提供了相应的API吗? - 知乎127被浏览11205分享邀请回答161 条评论分享收藏感谢收起463 条评论分享收藏感谢收起查看更多回答1 个回答被折叠()

我要回帖

更多关于 魔兽地图编辑器ai 的文章

 

随机推荐