找回密码
 点一下
查看: 1090|回复: 10

请问如何判断伤害类型?

[复制链接]
发表于 2012-2-23 23:44:07 | 显示全部楼层 |阅读模式
我写了一个触发,作用是玩家控制的单位去攻击(物理攻击)敌对单位5次,然后下一次物理攻击便可对敌对单位造成2倍伤害。
原理我搜索了一下以前的帖子是用伤害值判断,大于1 则设置变量+1,变量值=5之后再创建技能和特效……

但是现在我遇到新的问题了,我用技能攻击敌对单位也会增加变量值,因为伤害也是大于1的,我现在无法判断单位使用的是普通物理攻击还是技能魔法攻击,请问我该如何去判断?
发表于 2012-2-24 00:55:13 | 显示全部楼层
1. 用专门的BUFF来判断物理攻击,没有该BUFF就是别的(缺点是多一个BUFF)
2. 用马甲来造成非物理伤害(用于技能什么的),剩下的就是物理伤害(或者说伤害来自进攻者)
3. 希瓦写过一个教程,记得是用魔法护盾:http://bbs.islga.org/read-htm-tid-52500.html

LZ也可以用“伤害”等关键词搜索,然后选综合区、教学区、疑难区之类的~
虽然搜索结果有点多……
回复

使用道具 举报

发表于 2012-2-24 02:03:13 | 显示全部楼层
嘿嘿,我的办法是单位被攻击时设置a=攻击单位,发动技能效果时设置a=没有单位!
回复

使用道具 举报

发表于 2012-2-24 08:38:31 | 显示全部楼层
“山丘之王向远方快速逃窜的敌人扔了一锤子,回头继续与身边的敌人肉搏”,ls同学的处理方式遇到类似情形可能会有问题的哦
回复

使用道具 举报

发表于 2012-2-24 11:36:38 | 显示全部楼层
暂时没遇到什么问题,这样就算单位做了攻击前摇,又马上放了技能,跑的那个完全不管了,单位受到伤害,伤害来源等于a,伤害值大于等于1,关闭触发器。我想除非什么超级变态图会有问题。。。懒人笨方式嘛。。
添加单位接受伤害事件,参照1楼连接!
学习技能时设置abc[0]=触发单位

[trigger]
A
    事件
        单位 - 任意单位 被攻击
    条件
         (攻击单位)) 等于 abc[0]
    动作
        触发器 - 开启 B <预设>
[/trigger]
[trigger]
B(初始不打开)   
    事件
    条件
        (伤害来源) 等于 abc[0]
    动作
        触发器 - 关闭 B <预设>
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                zhengshu[0] 等于 5
            Then - 动作
                设置 zhengshu[0] = 0
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        zhengshu[1] 小于 (((力量 对 abc[0] (包括 加成)) - zhengshu[1]) / 2)
                        (生命值 对于 abc[0]) 大于 ((最大生命值 对于 abc[0]) / 2.00)
                    Then - 动作
                        设置 zhengshu[1] = (zhengshu[1] + 1)
                        英雄 - 修改 力量 对 abc[0] : 添加 1 点
                        游戏 - 对 (abc[0] 的所有者) 在屏幕位移(1.11,0.00)处显示 3.00 秒的文本信息: (|c00FFFF00力量|r + ((|c00FF0000+ + (转换 zhengshu[1] 为字符串)) + |r|c00FFFF00!|r))
                        特殊效果 - 创建并绑定特效到 weapon 对 abc[0] ,使用模型: Abilities\\Spells\\Orc\\FeralSpirit\\feralspiritdone.mdl
                        特殊效果 - 删除 (最后创建的特效)
                    Else - 动作
                        单位 - 设置 abc[0] 的生命值为 ((生命值 对于 abc[0]) + (转换 (力量 对 abc[0] (包括 加成)) 为实数))
                        特殊效果 - 创建并绑定特效到 origin 对 abc[0] ,使用模型: Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl
                        特殊效果 - 删除 (最后创建的特效)
                        漂浮文字 - 创建漂浮文字: (+ + (转换 (力量 对 abc[0] (包括 加成)) 为字符串)) 在 abc[0]的头顶, Z轴偏移 0.00,字体大小: 10.00 ,颜色值:(0.00%, 100.00%, 0.00%) ,透明度: 50.00%
                        漂浮文字 - 设置 (最后创建的漂浮文字) : 禁用 永久显示.
                        漂浮文字 - 设置 (最后创建的漂浮文字) 的显示时间为 0.50 秒
                        漂浮文字 - 设置 (最后创建的漂浮文字) 的移动速率为 80.00 ,方向为 (随机实数,最小值: 0.00 最大值: 180.00) 度
            Else - 动作
                设置 zhengshu[0] = (zhengshu[0] + 1)


[/trigger]
    事件
        单位 - 任意单位 发动技能效果
    条件
        (施放技能) 等于 战争践踏
    动作
        触发器 - 关闭 B <预设>
回复

使用道具 举报

发表于 2012-2-24 12:53:26 | 显示全部楼层
LS的T还需要防重复注册,另外如果单位有点多的话……到后面注册事件的效率会很低。。
然后。。就看LZ需不需要在平A和技能里区分物理和魔法了,不需要的话LS的T应该就行了~
回复

使用道具 举报

发表于 2012-2-24 13:17:22 | 显示全部楼层
技能里区分就不设置a=没有单位撒,不过我这样远程可能会出现风暴之锤没砸到目标,单位又起手攻击了。。这样就只能放个马甲来放锤子了。。
要么就这样,在别的触发只添加一次触发单位接受伤害,然后发动技能效果时关闭b触发。。取消abc[1]变量。。反正不考虑多人,要么又多少人就做多少个触发,哈哈,懒!
回复

使用道具 举报

发表于 2012-2-24 13:34:00 | 显示全部楼层
防重复注册的话加个单位组判断是不是在里面即可~

另外只用abc[0]和abc[1]两个变量来判断有点……
LS自己说的问题也很难解决的说。。
回复

使用道具 举报

发表于 2012-2-24 13:39:30 | 显示全部楼层

回 chyj4747 的帖子

chyj4747:防重复注册的话加个单位组判断是不是在里面即可~

另外只用abc[0]和abc[1]两个变量来判断有点……
LS自己说的问题也很难解决的说。。 (2012-02-24 13:34)
那还要拿什么判断,伤害大于等于1楼主知道,所以没加,开个99999计时器判断时间吗?那方法我试了也是有问题的,比如单位的一下子移开很远,这个方法是我过年回家连不了网弄的,我也要学习学习啊!另外我贴的触发改了,没用单位组,请指教啊~~
回复

使用道具 举报

 楼主| 发表于 2012-2-24 22:00:33 | 显示全部楼层
非常感谢各位的解答,但是感觉有点问题  不知道实际应用效果怎么样
我先游戏里面测试一下
回复

使用道具 举报

发表于 2012-2-24 23:01:32 | 显示全部楼层
迷龙:那还要拿什么判断,伤害大于等于1楼主知道,所以没加,开个99999计时器判断时间吗?那方法我试了也是有问题的,比如单位的一下子移开很远,这个方法是我过年回家连不了网弄的,我也要学习学习啊!另外我贴的触发改了,没用单位组,请指教啊~~

(2012-02-24 13:39)
额。。。比如沙发的方法
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-6 11:37 , Processed in 0.101785 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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