请选择 进入手机版 | 继续访问电脑版

 找回密码
 点一下
查看: 1128|回复: 5

AI 开源代码 可移植 几乎全部注册好了翻译!

[复制链接]
发表于 2021-1-12 08:29:24 | 显示全部楼层 |阅读模式
问题还是有的,没有做物品购买系统  觉得没必要  感觉像DOTA一样到家删除添加物品 扣钱来的快 有效率,学习技能只做了简化版本的 直接放触发器用的。(适用于防守地图的BOSS 或者玩家开启电脑)  未做逃跑 系列。 不支持1.24 以下版本 1.24以下版本的 开源有多!1.24以上能用的应该只有我的了!



 楼主| 发表于 2021-1-12 08:39:20 | 显示全部楼层
一楼给自己
下面是可以移植的代码, 修改注册英雄 和调用的技能 以及 到达的目标处就OK, 没有做 对小兵施法的 判断  ,需要的话联系 私人Q 2637098531.


回复

使用道具 举报

 楼主| 发表于 2021-1-12 08:40:37 | 显示全部楼层
下载丢地图 修改就OK

RPG0.1.rar

4.78 KB, 下载次数: 32

回复

使用道具 举报

 楼主| 发表于 2021-1-12 08:44:26 | 显示全部楼层
有些问题要提下,没有做技能CD 判断,但还是做了一个技能调用CD 的模板,缺陷是不能判断技能是否刷新了,只会是调用时候 给的CD是多少 到期了 才会释放。
回复

使用道具 举报

 楼主| 发表于 2021-1-12 08:52:43 | 显示全部楼层
技能学习模板, 两种建议 可以用逆天AI学习 也可以用我的,//-------------------------------注册英雄技能-------------------------------------------   这个几乎每个版本都能用  原理就是为了 就是简单

function RestoreHeroSkills takes integer i,integer a1,integer a2,integer a3,integer a4,integer a5 returns nothing  //AIskll1 ..... 2- 5 之类 请在地图globals 中注册好 integer array 这样个格式 -  - 不想多说
set AIskll1[i]=a1
set AIskll2[i]=a2
set AIskll3[i]=a3
set AIskll4[i]=a4
set AIskll5[i]=a5
endfunction


function SetVars takes nothing returns nothing  //注册英雄技能 地图初始化调用一下 修改技能 和前面的 1
call RestoreHeroSkills(1,'A03A','A034','A00N','A03I','A035')
call RestoreHeroSkills(2,'A04I','A049','A03H','A04D','A03J')
endfunction

function AILearnSkills takes unit u,integer i returns nothing  //提升登记 进入 区域调用,call AILearnSkills  方法是 触发单位类型 以及上面 绑定的1 2  3 4 5- 之类的
loop
if GetHeroSkillPoints(u)>0 then
call SetPlayerAbilityAvailable(GetOwningPlayer(u), AIskll1[i], true )
call SelectHeroSkill(u,AIskll1[i])
call SetPlayerAbilityAvailable(GetOwningPlayer(u), AIskll1[i],false)
endif
if GetHeroSkillPoints(u)>0 then
call SetPlayerAbilityAvailable(GetOwningPlayer(u), AIskll2[i], true )
call SelectHeroSkill(u,AIskll2[i])
call SetPlayerAbilityAvailable(GetOwningPlayer(u), AIskll2[i],false)
endif
if GetHeroSkillPoints(u)>0 then
call SetPlayerAbilityAvailable(GetOwningPlayer(u), AIskll3[i], true )
call SelectHeroSkill(u,AIskll3[i])
call SetPlayerAbilityAvailable(GetOwningPlayer(u), AIskll3[i],false)
endif
if GetHeroSkillPoints(u)>0 then
call SetPlayerAbilityAvailable(GetOwningPlayer(u), AIskll4[i], true )
call SelectHeroSkill(u,AIskll4[i])
call SetPlayerAbilityAvailable(GetOwningPlayer(u), AIskll4[i],false)
endif
if GetHeroSkillPoints(u)>0 then
call SelectHeroSkill(u,AIskll5[i])
endif
exitwhen GetHeroSkillPoints(u)==0
call TriggerSleepAction(0.05)
endloop
set u=null
endfunction

不明白就别问了就 3个 自己测试修改下应该能懂
回复

使用道具 举报

发表于 2021-8-3 17:30:25 | 显示全部楼层
赞赞赞赞赞赞赞赞赞
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-19 05:30 , Processed in 0.376033 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表