做了个最简单攻击移动AI
globalsunitaihero //记录玩家的英雄
unitstore
player aipag //记录AI玩家
boolean aitaopao=false //设置是否逃跑,一开始false表示不在,如果ture表示在
boolean aiattack=false//设置攻击状态,一开始false表示不在攻击,如果ture表示在攻击
boolean aigouwu=false //设置是否在购买物品,一开始false表示不在,如果ture表示在
boolean aisfjn=false //设置是否在使用技能,一开始false表示不在,如果ture表示在
boolean aibuxue=false //判断英雄是否在补血
real ratio=1 //ratio是用于判断生命比的整数
integer count=0 //记录游戏开始秒数
group bug=CreateGroup() //用于记录AI玩家所有单位
timer t=CreateTimer()
endglobals
function xqyingx takes nothing returns nothing//选取英雄
local unit u=null
call GroupEnumUnitsOfPlayer(bug,aipag,null) //选取AI玩家的所有单位
loop
set u=FirstOfGroup(bug) //设置u是单位组的第一个单位
exitwhen u==null //当u为没有单位时
if IsUnitType(u,UNIT_TYPE_HERO)==true then //如果单位u是英雄
set aihero=u //设置aihero就是英雄了
endif
call GroupRemoveUnit(bug,u) //移除单位u后,单位组内就没有u这个单位了
endloop
endfunction
function attackrpg takes nothing returns nothing
local integer cmd
call Sleep(1)
set cmd = WaitForSignal() // 得到命令被承认,让AI起作用
if cmd == 0 then
call xqyingx()
endif
loop //开始进入循环
call IssuePointOrderById(aihero, 851983, -1671,-986)
call Sleep (1)
endloop
endfunction
function main takes nothing returns nothing
setaipag=Player(GetAiPlayer()) //用变量记录当前的AI玩家为 ai_player
call SetMeleeAI() //开始对战AI
call SetHeroesBuyItems(false) //设置英雄自动买物品
call SetHeroesFlee(false) //设置英雄生命值少时自动逃跑
call SetHeroesTakeItems(true) //设置英雄自动捡物品
call SetIgnoreInjured(true) //在集结部队进攻时,忽略生命值低于50%的单位
call SetRandomPaths(true) //增加AI的选择目的地的随机性
call SetTargetHeroes(false)
call CreateCaptains() //创建攻击组
call StartThread(function attackrpg) // 开始线程,运行(function attack_loop)
call TimerStart(t,99999.,false,null) //逆推技能CD 判断
endfunction
攻击移动目标点 只要改下坐标点就行了,至于修改 说下T转J 红色BJ不能 移植到AI里 ,单位组的 F开头的选取也不能
附带两个AI里能用的JASS 单位组 call GroupEnumUnitsInRangeOfLoc(g,Loc,Radius,null) 点选取callGroupEnumUnitsInRange(g,X,Y,Radius,null) 坐标选取 其实就是JASS的说.
顺带问下 懂JASS的 大佬, 我做的技能用户使用没有任何BUG ,但只要是电脑位置一用 就出BUG ,比如BUFF 添加出错,选取的单位 只有属性伤害,风暴只锤给不到,但是代码肯定没问题 施法马甲去掉蝗虫也一样 BUG 绝望了 刚开始以为是 调用JASS 选取问题, 换成BJ F开头的选取也一样出问题,最后 马甲的创建全部换成T里的函数 还是出错 ......... 但用户,玩家用 怎么都没BUG 怪事 有人碰到过这种事情么 蝗虫单位 玩家能选取到 ,电脑不行-------------- 好像是老问题了 我吐了 好久没碰WE 忘了 解决方法是,设置召唤类型,须移动一次,再选取吐了呀 关于电脑施法 马甲 不施法的BUG 只能关掉AI 得用AI脚本关 .否则电脑能控制 ,造成不放技能,比如锤子 放不出 蜂群放不出 BUFF给不到,但玩家用又正常诡异BUG 研究出两种方法解决 电脑控制马甲 导致不放技能, 添加蝗虫 和设置工人 类型都会被控制 , (最直接的 就把种族 设置成无,这样就不能认别,类型机械类,) 其次就是关闭AI 。 保险点而言 还是设置种族和 类型, 最后添加蝗虫 支持一下、、、、、、、、。
页:
[1]