用模拟法非常轻松的,不用制作任何马甲单位,而且触发极为简单。
用一个无任何实际效果的技能作为英雄圣光技能,选取圣光施放目标周围单位,如果是友军则增加生命,如果是敌人则命令英雄对他们造成伤害。
触发图(因为是举例,排泄就不写了):
加血的单位包括英雄自身,如果不想让自身也加血,就在if条件下加一条“选取单位不等于触发单位”即可。
下面是马甲法的做法,要设置两种马甲技能(伤害用了0.001秒眩晕的风暴之锤或者酸性炸弹均改成圣光特效,加血用了圣光),可以看到比模拟法复杂很多。
测试图我用YDWE做的,不知道你能不能打开。
声明:以下每一个字和图片都是本人花近一个小时亲手打出来的做出来的 同时还帮你做了下这个技能看有没问题 千万不要以为我是从哪里复制的. 希望能认真阅读,对你做技能没有坏处 //==================================== 风暴之锤昏迷0秒的"0秒"意味着无穷大... 模版用通魔 修改下基础命令ID(不要与该英雄的其他技能冲突,如果你只用一个通魔就可以不改.) 用医疗波做个"辅助治疗" 看T 事件-任意单位发动技能效果 条件-&*%^^*%%^ 事件-***自定义代码 local location TempLoc = GetUnitLoc(GetTriggerUnit()) //既然你会一点J,为什么还要用全局变量呢 ***自定义代码 local unit TempUnit = CreateUnitAtLoc(GetTriggerPlayer(),'xxxx',TempLoc,0.00) //xxxx为CASTER的ID.获取方法是用一个T创建一个CASTER,然后转化为J,你会看到一段跟这个类似的代码,单引号里面的就是CASTER的ID.这段代码的意思就是创建一个CASTER,并将临时单位局部变量赋值为这个.不会使用bj_lastCreatedUnit(最后创建的单位) //关于这个临时单位有一些很好的使用技巧,一般用小精灵.修改"作为目标类型",改成空的.就是无敌,添加普通技能"蝗虫",就是无法被选取.修改"模型文件"为".mdl"就是看不到了.设置生命最大值2,生命恢复速率-1.回复类型"总是".于是这个单位只有2点血,每秒掉1点,放完技能就死了,不用那么多语句.按住shift,双击要修改的数据,就可以强行输入负数. //另外,在这个触发里面,将小精灵的攻击类型1打开,攻击模式"立即",射程"9999".攻击类型"混乱".攻击间隔"大于2秒就可以了". ***自定义代码 if IsUnitAlly(GetSpellTargetUnit(),GetTriggerPlayer()) then //如果技能释放目标是触发玩家的友军,THEN ***自定义代码 call UnitAddAbility( TempUnit, 'YYYY' ) //给辅助单位添加技能 辅助治疗 ***自定义代码 call SetUnitAbilityLevel( TempUnit, 'YYYY', GetUnitAbilityLevel(GetTriggerUnit(), 'XXXX') ) //设置 辅助单位 的 YY(也就是辅助治疗)技能等级为 触发单位 的审判之光技能等级 ***自定义代码 call IssueTargetOrder( TempUnit, "healingwave", GetSpellTargetUnit() ) //让 辅助单位对 技能释放目标放 医疗波 也就是辅助治疗 ***自定义代码 else ***自定义代码 call UnitDamageTarget(TempUnit,GetSpellTargetUnit(),I2R(100*GetUnitAbilityLevel(GetTriggerUnit(), 'XXXX')),true,true,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS) //命令 TempUnit 就是创建的小精灵,伤害 GetSpellTargetUnit() 技能释放目标,伤害值是 100 * 触发单位审判之光的技能等级.true,是攻击伤害,true是远程攻击,ATTACK_TYPE_CHAOS攻击类型是混乱攻击.无视防御类型.DAMAGE_TYPE_DIVINE,伤害类型神圣,无视抗性,无视减免.WEAPON_TYPE_WHOKNOWS,武器声音没有. ***自定义代码 endif //============如果眼睛看花了.那么看下面这个纯T============ //全局变量/自定义变量 //TempLoc 点 //====================================== //使用的单位/技能 //英雄 ____废话..... //审判之光 __原型,通魔,"目标类型"->"单位目标";"数据-选项"->"图标可见";其他可自行修改 //辅助治疗 __原型,医疗波.删除闪电效果,删除目标效果.总之做的没有任何效果就好了 //辅助伤害 __原型,酸性炸弹,"持续时间"->"0.01"秒;"伤害间隔"->"100"秒,效果都删除掉 //CASTER ____原型是我们的小精灵,"战斗-作为目标类型"->"无";"显示-模型文件"->"没有","状态-单位类别"->"没有","状态-占用人口"->"0","状态-生命最大值"->"2","状态-生命回复"->"-1","状态-生命回复类型"->"总是","移动-类型"->"没有","移动-基础速度"->"0","路径-触碰体积"->"0.00" //================================= 事件条件&*^%%^ 动作-设置变量 TempLoc = 触发单位的位置 单位-创建 1 个 CASTER 给 触发单位的所有者 在 TempLoc 面向角度为默认建筑朝向 点-清除 TempLoc If - 条件 技能释放目标 是 触发玩家的同盟单位 = true Then - 动作 单位 - 添加 辅助治疗 给 最后创建的单位(R) 单位 - 设置 最后创建的单位(R) 的 辅助治疗 等级为 触发单位 的 审判之光 技能等级 单位 - 对 最后创建的单位(R) 发布 兽族暗影猎手-医疗波 命令到目标(技能施放目标) Eles - 动作: 单位 - 添加 辅助伤害 给 最后创建的单位(R) 单位 - 设置 最后创建的单位(R) 的 辅助伤害 等级为 触发单位 的 审判之光 技能等级 单位 - 对 最后创建的单位(R) 发布 中立炼金术士-酸性炸弹 命令到目标(技能施放目标) //======================================= 不用风暴之锤原因:无论如何都要晕的,无解 不用神圣之光原因:目标允许不会弄...或许是我技术问题,同样也不要用生命吸取和法力吮吸 //========还是不懂的话给个邮箱,我把技能发给你,一个JASS的,一个T的. //==============技能截图=========
主体思路就是用伪技能来捕获区域,然后创建看不见的辅助施法单位(通称马甲)来进行施法
准备:
暴风雪(伪技能),伤害和魔法效果、区域持续效果都改无,技能图标介绍自己写好,区域设置好(我假设是300范围)
复制任意一个单位(用来做马甲的),把技能改成“蝗虫”,攻击方式改无,魔法上限、初始值改为最大,占人口改为0
缠绕技能(真实技能),属性改成之前暴风雪的介绍一样
变量:变量名:point
变量类型:点
(排泄用,虽然不排泄也行,但是游戏会变得越来越卡)
接着就是触发:
群体缠绕
事件
单位
-
任意单位
发动技能效果
条件
(施放技能)
等于
!暴风雪
(群体缠绕伪技能)
动作
设置
point
=
(技能施放点)
单位组
-
选取
(半径为
300.00
圆心为
point
且满足
(((匹配单位)
是
((触发单位)
的所有者)
的敌对单位)
等于
true)
的所有单位)
内所有单位做动作
loop
-
动作
单位
-
创建
1
个
步兵
(复制的马甲单位)
给
((触发单位)
的所有者)
在
point
,面向角度为
默认建筑朝向
度
单位
-
为
(最后创建的单位)
设置
水元素
类型的生命周期,持续时间为
5.00
秒
单位
-
添加
!纠缠根须
(真)
给
(最后创建的单位)
单位
-
设置
!纠缠根须
(真)
等级对
(最后创建的单位)
为
(!暴风雪
(群体缠绕伪技能)
的等级对
(触发单位))
单位
-
对
(最后创建的单位)
发布
暗夜精灵族丛林守护者
-
纠缠根须
命令到目标:
(选取单位)
点
-
清除
point
这个够详细了吧,给分吧
用模拟法非常轻松的,不用制作任何马甲单位,而且触发极为简单。
用一个无任何实际效果的技能作为英雄圣光技能,选取圣光施放目标周围单位,如果是友军则增加生命,如果是敌人则命令英雄对他们造成伤害。
触发图(因为是举例,排泄就不写了):