魔兽争霸地图编辑器3冰封王座地图编辑器,怎么让电脑单位自己会使用技能(但不会主动随意走动的进攻)

魔兽争霸3冰封王座地图编辑器怎么制作技能模型?_百度知道
魔兽争霸3冰封王座地图编辑器怎么制作技能模型?
提问者采纳
地图编辑器本身不能制作模型,你只有下载制作模型的软件才能做技能模型。但在地图编辑器中你可以用单位模型的动画来修改(放大、缩小、拼接、改颜色等)出很炫的技能特效,或者通过放大、缩小buff特效来做技能模型。
提问者评价
其他类似问题
魔兽争霸3冰封王座的相关知识
按默认排序
其他1条回答
做模型不是我强项,帮不了你。
等待您来回答
您可能关注的推广
下载知道APP
随时随地咨询
出门在外也不愁魔兽争霸3冰封王座地图编辑器怎么设计对战_百度知道
魔兽争霸3冰封王座地图编辑器怎么设计对战
我设计地图时
只会设计第一个玩儿家
怎么设计第二个玩家的位置?
提问者采纳
有一个情节,里面可以开启其他的玩家
还有,可以把玩家设置成可营救的,就是你走到他旁边就是你的部队了,不会和人打架
还可以设置成中立的,就是不会动,见谁都打....还有人物编辑器
自己找吧,能创造出无敌的.......
提问者评价
其他类似问题
按默认排序
其他5条回答
情节--玩家设置
出来一个玩家属性的设置界面。默认玩家1是开启的,你把需要的打开就行了。
先点出工具面版,第二层不有一个“玩家一,红色”,边上有个箭头,里面就有。工具面版在窗口,新面版里。。。
层面-单位-玩家2-开始点
要有开始点,玩家开关也要打开
情节 里面的 玩家属性
魔兽争霸3冰封王座的相关知识
等待您来回答
您可能关注的推广
下载知道APP
随时随地咨询
出门在外也不愁魔兽争霸3冰封王座地图编辑器求助!
魔兽争霸3冰封王座地图编辑器求助! 20
我新人一位,一直有诸多疑问:1:为啥攻击防御之类的东西只能设置为99999,不能更高了?想做变态图。
2:群体攻击技能怎么设置伤害公式为:属性X数字?
3:求助。
补充:采纳2个答案,1个解一个,也可以2个同时解。
1.按住shitf不放,再双击修改即可输入更大的数,负数。
2.第二个问题 “月の蚀鵕”这个朋友说的很明确了。不再赘述
的感言:敢情是比较简单,也帮了我不少忙,不然我要走一些弯路。 满意答案
加攻击有很多种方法1基础攻击基础攻击就是单位的基础攻击力如步兵13-14你可以通过改变地图编辑器的单位属性基础攻击和攻击面数或者通过研究科技2附加攻击附加攻击是附加上的攻击如步兵13-14 |cff00ff00+ 2|r在技能-特殊-物品-能增加攻击的物品(+X)你可以修改数据然后给单位添加这个技能3触发器和物品改变
&对单位和英雄只加一次的步奏:物体编制器—技能—特殊—物品—增加攻击力的物品(随便哪个)复制—改复制技能里的攻击奖励(改成你要的)—触发器—(如果是地图里本来就有的)动作—单位—为XX单位添加XX(刚刚改的增加攻击力的物品,记住在值那里把单位换成物品,求方便的话把所有改成自定义,不求方便请个复制的增加攻击力的物品技能改个名字)& 对英雄的步奏:触发器—(事件和条件自己选)—英雄—修改XX(英雄主属性)对XX(英雄):增加XX(英雄主属性)XX(这里是看地图的游戏平衡型常数里的每点主属性攻击奖励来改,这里增加的攻击力=增加的主属性X游戏平衡型常数里的每点主属性攻击奖励的值)点
事件:任意单位施放技能条件:施放的技能是[]动作:单位-命令[触发单位]对[技能施放目标]造成[英雄-触发单位的属性(敏捷值*技能等级)]点伤害],伤害类型[魔法攻击,法术伤害]。
注意了,这个需要耐心,慢慢探究把。
的感言:感谢您的详细解答。
其他回答 (2)
秘密你妹。
我也是新手,但比你会一点,不介意的话QQ上聊
嗯,QQ & 一起交流~
等待您来回答
魔兽争霸领域专家魔兽争霸的地图编辑器
怎么让电脑出自定义单位啊?_百度知道
魔兽争霸的地图编辑器
怎么让电脑出自定义单位啊?
我用修改器改了一张地图 设计了几个自定义兵种 可是开始游戏以后只有我出新单位
电脑还是只出老单位
怎么才能让电脑也出新兵种阿???? 还有 怎么让电脑会买酒馆的英雄???
怎么设计AI啊...很麻烦吗? 讲明白加悬赏
提问者采纳
回答:这个比较麻烦
涉及到AI的制作很麻烦的
如果只是将做到那样的效果
让电脑出LZ所自定义单位的新兵种不放
可以将电脑原由的兵种改变单位的模型
那样也是一样的效果.............不是很麻烦
而是很难懂的东西看下这个吧
如果你能写会
那么恭喜你
其他类似问题
按默认排序
其他3条回答
你没设置电脑AI啊???真的真的很麻烦……要设置很多东西的
这篇文章将帮助你制作一个简单但是十分酷的英雄对战地图的人工智能。
这个你将学习的人工智能系统不是非常完美。我们将创建的是一个可以攻击其它英雄、可以自己拣物品、学习和使用技能的人工智能系统,但是还是无法与人类玩家相比。
但是,当你学习了基础的知识以后你应该可以自己改进它。前提需要:JASS基础----这篇文章使用JASS来制作示例,所以你必须了解JASS。在理论上它也可以在T中做出来,但是我不推荐那样做,因为用T来制作可能导致内存泄露、大量不必要的代码以及在T中是无法使用JASS的返回值BUG和游戏缓存系统的。如果你不熟悉JASS,请预先补充一下你自己的JASS知识。你同样必须知道什么是代码行,如果你不知道的话,请补充自己的知识。基于游戏缓存以及返回值BUG的系统注意事项:-我们将要制作的AI系统达不到人类的水平,但是比什么都没有强。而且我认为当你理解了基础以后可以自己改进它。-你不用完全按照我说的做;我按做我的想法做,但是如果你的想法更好或者你觉得自己的做法更舒服,请按照你自己的想法做。我并不完美,这篇文章也不可能完美,但是我希望它可以对你有所帮助。-你可以使用在我的演示地图里面的AI系统而不自己动手(如果你那样做了,请告诉我一声),但是我建议你自己动手写,因为地图可能很复杂而且你可以自己动手写一个AI系统中学到更多的知识。初始化部分:首先在WE中创建一个触发条件为&玩家1-玩家1(红色)离开游戏&的触发器,然后把它转换为JASS。我们需要这个触发器来监视玩家离开游戏,那样我们才能为这个玩家开启人工智能。现在它只监视一号玩家离开游戏,所以我们在正式地图中需要使用一个循环来监视从0-11号的玩家。我们希望这个AI系统可以使用技能。听起来似乎很难,其实很简单。我们只需要使英雄学习技能,那么他们就可以自己使用。注意:电脑控制的英雄释放自定义技能的情况总是和它释放这个自定义技能的基础技能的情况相同(这里翻译的有点含糊不清,自定义技能的基础技能的意思是....基础技能是游戏本身带有的技能,自定义技能都是以某个基础技能为基础的...这样说做过图的大大应该可以明白吧?).所以如果你的自定义技能是以沉默为基础技能的,电脑控制的英雄就会在对战地图中应该使用沉默的情况使用这个技能。千万不要将技能以&通魔(Channel)&为基础,因为电脑从来不会使用它们,即使改变技能的OrderString也没有什么用。为了知道每个英雄都拥有什么技能,我们创建了一个游戏缓存(game cache)来保存它。在演示地图中我的触发器在地图的初始化部分创建了一个游戏缓存并将它保存在全局变量 udg_GameCache 中。需要注意的是缓存必须在我们使用它之前初始化,所以我在地图的初始化时间中创建了它。在我的地图中我写了一个函数SetupSkills.在这个AI触发器的InitTrig函数中我使用了库函数ExecuteFunc来开启另外一个线程执行这个函数。这是为了防止地图的初始化时间太长。jass:
Copy code我的SetupSkills函数如下:function SetupSkills takes nothing returns nothing
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, &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 as “BaseSkill3”
call StoreInteger(udg_GameCache, h, &UltimateSkill&, '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(&SetupSkills&)endfunction 为英雄开启AI系统为了控制AI我们使用了一个定时器(timer).我写了一个函数StartAI来获取一个单位的类型:英雄(请在演示地图中查看这个函数)。这个函数只是创建一个定时器,并且&绑定&在这个英雄身上,并且开启这个定时器。这是演示地图中的空的AILoop函数和StartAI函数(这里给的只是一个框架,等下我们将展示一些动作函数,但是你起码必须先把function和endfunction写上去以保证WE不报错) :jass:
Copy codefunction AILoop takes nothing returns nothingendfunctionfunction StartAI takes unit hero returns nothing
local timer m = CreateTimer()
call AttachObject(m, &hero&, hero)
call TimerStart(m, 0, false, function AILoop)
set m = nullendfunction 注意,我的这个StartAI函数通过将periodic参数设置为false来达到使定时器只执行一次的目的(以后我们还会来讨论它的).现在,你就可以在你的英雄选择系统中当由电脑控制的玩家选择英雄时调用这个函数,并且在玩家离开游戏的时候执行这个函数。检测玩家是否拥有一个英雄,如果它拥有,调用这个函数来开启那个英雄的AI系统。例如:jass:
Copy codefunction 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 = nullendfunction 注意:这个函数将使AI系统控制离开的玩家的英雄,但是这也不是必要的,你也可以做别的事情。使这个AI做些什么当定时器终止的时候我们希望它做了这些事情:
●如果英雄死亡,等待他复活。
●如果英雄将要死亡,命令他移动到地图中心的生命泉水。
●如果英雄状态良好,检测是否有敌人在附近。如果有,则命令英雄攻击它。
否则就检测是否有物品在附近,如果有的话,发送一个巧妙
的命令让英雄拣起它。然后命令英雄巡逻到地图的一个随机坐标。
●如果英雄是活着的而且有未使用的技能点,学习一个技能。我们由变量的声明开始。注意在我函数里面的实变量&e&,它定义了在定时器再次启动前所经过的时间,这样我们就可以在英雄死亡的时候等待短一点的时间,而在他攻击的时候等待长一点的时间。这个变量初始化值为5。jass:
Copy code局部变量的声明:function AILoop takes nothing returns nothing
local string a = GetAttachmentTable(GetExpiredTimer())
local unit h = GetTableUnit(a, &hero&)
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… 我们由检测英雄是否死亡开始,如果他死亡了,设置&e&为1.5(因为在复活以后等待5秒的时间太长了,我们并不想这样).当英雄的生命值&l&为0时,设置&e&为1.5来使定时器更加频繁的检测英雄是否复活.…
if l &= 0 then
set e = 1.5
endif…接着我检测英雄的生命是否低于最大生命值的20%.如果是的,命令英雄移动到生命泉并且设置&e&为3.当英雄的生命值少于最大生命值的20%时,命令英雄移动到生命泉的位置。…
if l & GetUnitState(h, UNIT_STATE_MAX_LIFE)/5 then
call IssuePointOrder(h, &move&, GetUnitX(gg_unit_nfoh_0001), GetUnitY(gg_unit_nfoh_0001))
set e = 3…如果英雄的状态良好,检测他是否处在一个普通命令中(防止它打断了通魔技能).如果是一个标准命令,我们再检测在500的半径内是否有敌人存在.如果存在敌人,简单的发出一个攻击命令(不要改变&e&的值,5秒对于这个情况刚刚好).jass:
Copy codefunction AIFilterEnemyConditions takes nothing returns boolean
return GetUnitState(GetFilterUnit(), UNIT_STATE_LIFE) & 0 and IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(GetAttachedUnit(GetExpiredTimer(), &hero&)))endfunction…
if ((o == &smart&) or (o == &attack&) or (o == &patrol&) or (o == &move&) or (o == &stop&) or (o == &hold&) or (o == null)) then
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, &attack&, f)
call DestroyGroup(g)
call DestroyBoolExpr(b)
endif… 如果没有敌人存在,再检测物品.如果发现物品,再检测是否为一个提升状态的物品.如果不是,检测英雄物品栏是否有空栏,有的话就命令英雄将它拣起来.jass:
Copy codefunction AISetItem takes nothing returns nothing
set bj_lastRemovedItem=GetEnumItem()endfunctionfunction AIItemFilter takes nothing returns boolean
return IsItemVisible(GetFilterItem()) and GetWidgetLife(GetFilterItem()) & 0endfunctionfunction 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) == nullendfunction…
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 and (GetItemType(bj_lastRemovedItem) == ITEM_TYPE_POWERUP or AIHasEmptyInventorySlot(h)) then
call IssueTargetOrder(h, &smart&, bj_lastRemovedItem)
call RemoveRect(i)
call DestroyBoolExpr(be)… 如果物品栏没有空位,或者没有发现物品,则命令英雄到一个随机地点寻找新的目标.…
set r = GetRandomLocInRect(bj_mapInitialPlayableArea)
call IssuePointOrderLoc(h, &patrol&, r)
call RemoveLocation(r)…现在我们需要检测的是英雄是否有未使用的技能点(将这个函数与进攻/拣取物品/前进到随机地点等模块分开).如果英雄有未使用的技能点,调用函数来使英雄学习技能.在我的演示地图中,我是用一个函数来保存将要让英雄学习的技能的,使用的是下面这个模式:
还是用T吧 别用AI
地图编辑器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁魔兽争霸3冰封王座如何使用地图编辑器修改英雄技能?_百度知道
魔兽争霸3冰封王座如何使用地图编辑器修改英雄技能?
我想把弓箭手,原本不是只能单个单个怪打的吗,能不能修改成为多重箭攻击?就是说分散很多箭出去。别人说弄人族的弹幕攻击,但是具体要怎么操作?能详细说明下吗?
提问者采纳
首先,打开编辑器,载入你要的地图,点击F6开启物品编辑器点“单位”选择“暗夜精灵族”,“单位”,“弓箭手”,在“技能——普通”那里添加“弹幕攻击”再点上面的“技能”选择“人族”,“单位”,“弹幕攻击”,在“状态——所定允许”那里把“空中”的勾去掉(也就是只勾个“敌人”)然后就是修改你弹幕攻击的数据了,数据里面什么“最大整体伤害”,“最大目标数”,“影响区域”,自己改切到主界面,菜单栏那里点“情节”——“升级属性”,勾上“使用自定义升级”,选好玩家,在“种族——人族”那里,弹幕攻击那一项把“可取得的”改成“以研究”就OK啦上面说的已经够详细了……还不懂那就没办法了
其他类似问题
按默认排序
其他2条回答
貌似很详细了,我复制下。首先,打开编辑器,载入你要的地图,点击F6开启物品编辑器点“单位”选择“暗夜精灵族”,“单位”,“弓箭手”,在“技能——普通”那里添加“弹幕攻击”再点上面的“技能”选择“人族”,“单位”,“弹幕攻击”,在“状态——所定允许”那里把“空中”的勾去掉(也就是只勾个“敌人”)然后就是修改你弹幕攻击的数据了,数据里面什么“最大整体伤害”,“最大目标数”,“影响区域”,自己改切到主界面,菜单栏那里点“情节”——“升级属性”,勾上“使用自定义升级”,选好玩家,在“种族——人族”那里,弹幕攻击那一项把“可取得的”改成“以研究”就OK啦添加弹幕攻击技能,然后去物体编辑器修改弹幕攻击的目标为:地面、空中、敌人、中立,目标伤害随便你写,就是附加的额外伤害,最大伤害建议99999,最大目标数,自己设置,1就是3重攻击,2就是4重,3就是5重以此类推
添加弹幕攻击技能,然后去物体编辑器修改弹幕攻击的目标为:地面、空中、敌人、中立,目标伤害随便你写,就是附加的额外伤害,最大伤害建议99999,最大目标数,自己设置,1就是3重攻击,2就是4重,3就是5重以此类推
魔兽争霸3冰封王座的相关知识
等待您来回答
您可能关注的推广
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 魔兽争霸3冰封王座h 的文章

 

随机推荐