最绚烂 发表于 2014-2-27 12:54:37

关于伤害显示的问题

如何让一个单位受到到某一个单位在一定时间打出来的伤害显示出来?
我做了个触发如下,但是好像伤害显示在地图中间是怎么回事?
伤害显示...................
    事件
      事件<YDWE> -任意单位 接受伤害
    条件
    动作
      设置 dangwei[(10000 + jishu)] = (触发单位)
      设置 dangwei[(20000 + jishu)] = (伤害来源)
      设置 jishu = (jishu + 1)
      设置 shanghai[(jishu + 1)] = (单位所受伤害)
      触发器 - 开启 伤害显示................... 复制 <预设>
      逆天<YDWE> - 立即运行 (新建的计时器) 时间设置: 0.05 秒,是否循环: 一次性
            参数
            动作
                漂浮文字 - 创建漂浮文字: (转换 (转换 shanghai[(jishu + 1)] 为整数) 为字符串) 在 dangwei[(10000 + jishu)]的头顶, Z轴偏移 20.00,字体大小: 10.00 ,颜色值:(100.00%, 0.00%, 0.00%) ,透明度: 30.00%
                漂浮文字 - 设置 (最后创建的漂浮文字) : 禁用 永久显示.
                漂浮文字 - 设置 (最后创建的漂浮文字) 的移动速率为 80.00 ,方向为 90 度
                漂浮文字 - 设置 (最后创建的漂浮文字) 的显示时间为 1.00 秒
                漂浮文字 - 设置 (最后创建的漂浮文字) 的消逝时间点为 1.00 秒
                触发器 - 关闭 伤害显示................... 复制 <预设>
      如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                jishu 大于 9998
            Then - 动作
                设置 jishu = 0
            Else - 动作

伤害显示................... 复制
    事件
      事件<YDWE> -任意单位 接受伤害
    条件
      (触发单位) 等于 dangwei[(10000 + jishu)]
      (伤害来源) 等于 dangwei[(20000 + jishu)]
    动作
      如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((攻击单位) 的类型) 不等于 暴击伤害精灵 物理
                ((攻击单位) 的类型) 不等于 额外伤害精灵 魔法
            Then - 动作
                设置 shanghai[(jishu + 1)] = (shanghai[(jishu + 1)] + (单位所受伤害))
            Else - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                  If - 条件
                        ((攻击单位) 的类型) 等于 额外伤害精灵 魔法
                  Then - 动作
                  Else - 动作

最绚烂 发表于 2014-2-27 13:41:18

还有,我想做一个伤害抵抗技能,但是似乎单位收到伤害在添加单位生命之前啊
怎么办

chyj4747 发表于 2014-2-27 23:41:47

全局数组上限8191,dangwei[(10000 + jishu)]超过上限因此是“没有单位”,大概……

接受伤害事件里加血牌就行,等这个事件处理完了才会把实际伤害打上去的

最绚烂 发表于 2014-2-28 12:37:57

chyj4747 发表于 2014-2-27 23:41
全局数组上限8191,dangwei[(10000 + jishu)]超过上限因此是“没有单位”,大概……

接受伤害事件里 ...

是接受伤害~+血牌~计算伤害加或减少~删除血牌~再次伤害吗?
但是这样是先受到伤害的...受到的伤害与显示的伤害不符

最绚烂 发表于 2014-2-28 12:41:10

还是先把触发的一部分贴出来吧,那些变量都有赋值的,可以不用管
DisplayDamage
    事件
      事件<YDWE> -任意单位 接受伤害
    条件
    动作
      单位 - 为 (触发单位) 添加 血盾 (较大的)
      如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((触发单位) 属于 玩家1(红色)) 等于 TRUE
            Then - 动作
                单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x ((baojishanghai / 100.00) - 1.00)) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                设置 shanghai = (shanghai x (baojishanghai / 100.00))
                单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x (ewaishanghai / 100.00)) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                设置 shanghai = (shanghai x (ewaishanghai / 100.00))
                设置 shanghai = (shanghai x (1.00 - (dikangshanghai / 100.00)))
                单位 - 为 (触发单位) 删除 血盾 (较大的)
                单位 - 设置 (触发单位) 的生命值为 (((触发单位) 的 生命值) + shanghai)
                单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x 1.00) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                漂浮文字 - 创建漂浮文字: ((转换 (转换 shanghai 为整数) 为字符串) + !) 在 (触发单位)的头顶, Z轴偏移 20.00,字体大小: 15.00 ,颜色值:(70.00%, 0.00%, 0.00%) ,透明度: 30.00%
                漂浮文字 - 设置 (最后创建的漂浮文字) : 禁用 永久显示.
                漂浮文字 - 设置 (最后创建的漂浮文字) 的移动速率为 150.00 ,方向为 90 度
                漂浮文字 - 设置 (最后创建的漂浮文字) 的显示时间为 1.00 秒
                漂浮文字 - 设置 (最后创建的漂浮文字) 的消逝时间点为 1.00 秒
            Else - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                  If - 条件
                        ((触发单位) 属于 玩家3(青色)) 等于 TRUE
                  Then - 动作
                        单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x ((baojishanghai / 100.00) - 1.00)) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                        设置 shanghai = (shanghai x (baojishanghai / 100.00))
                        单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x (ewaishanghai / 100.00)) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                        设置 shanghai = (shanghai x (ewaishanghai / 100.00))
                        设置 shanghai = (shanghai x (1.00 - (dikangshanghai / 100.00)))
                        单位 - 为 (触发单位) 删除 血盾 (较大的)
                        单位 - 设置 (触发单位) 的生命值为 (((触发单位) 的 生命值) + shanghai)
                        单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x 1.00) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                        漂浮文字 - 创建漂浮文字: ((转换 (转换 shanghai 为整数) 为字符串) + !) 在 (触发单位)的头顶, Z轴偏移 20.00,字体大小: 15.00 ,颜色值:(70.00%, 0.00%, 0.00%) ,透明度: 30.00%
                        漂浮文字 - 设置 (最后创建的漂浮文字) : 禁用 永久显示.
                        漂浮文字 - 设置 (最后创建的漂浮文字) 的移动速率为 150.00 ,方向为 90 度
                        漂浮文字 - 设置 (最后创建的漂浮文字) 的显示时间为 1.00 秒
                        漂浮文字 - 设置 (最后创建的漂浮文字) 的消逝时间点为 1.00 秒
                  Else - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                              ((触发单位) 属于 玩家4(紫色)) 等于 TRUE
                            Then - 动作
                              单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x ((baojishanghai / 100.00) - 1.00)) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                              设置 shanghai = (shanghai x (baojishanghai / 100.00))
                              单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x (ewaishanghai / 100.00)) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                              设置 shanghai = (shanghai x (ewaishanghai / 100.00))
                              设置 shanghai = (shanghai x (1.00 - (dikangshanghai / 100.00)))
                              单位 - 为 (触发单位) 删除 血盾 (较大的)
                              单位 - 设置 (触发单位) 的生命值为 (((触发单位) 的 生命值) + shanghai)
                              单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x 1.00) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                              漂浮文字 - 创建漂浮文字: ((转换 (转换 shanghai 为整数) 为字符串) + !) 在 (触发单位)的头顶, Z轴偏移 20.00,字体大小: 15.00 ,颜色值:(70.00%, 0.00%, 0.00%) ,透明度: 30.00%
                              漂浮文字 - 设置 (最后创建的漂浮文字) : 禁用 永久显示.
                              漂浮文字 - 设置 (最后创建的漂浮文字) 的移动速率为 150.00 ,方向为 90 度
                              漂浮文字 - 设置 (最后创建的漂浮文字) 的显示时间为 1.00 秒
                              漂浮文字 - 设置 (最后创建的漂浮文字) 的消逝时间点为 1.00 秒
                            Else - 动作
                              如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        ((触发单位) 属于 玩家2(蓝色)) 等于 TRUE
                                    Then - 动作
                                        单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x ((baojishanghai / 100.00) - 1.00)) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                                        设置 shanghai = (shanghai x (baojishanghai / 100.00))
                                        单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x (ewaishanghai / 100.00)) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                                        设置 shanghai = (shanghai x (ewaishanghai / 100.00))
                                        设置 shanghai = (shanghai x (1.00 - (dikangshanghai / 100.00)))
                                        单位 - 为 (触发单位) 删除 血盾 (较大的)
                                        单位 - 设置 (触发单位) 的生命值为 (((触发单位) 的 生命值) + shanghai)
                                        单位 - 命令 (伤害来源) 对 (触发单位) 造成 (shanghai x 1.00) 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 普通 武器类型: 无
                                        漂浮文字 - 创建漂浮文字: ((转换 (转换 shanghai 为整数) 为字符串) + !) 在 (触发单位)的头顶, Z轴偏移 20.00,字体大小: 15.00 ,颜色值:(70.00%, 0.00%, 0.00%) ,透明度: 30.00%
                                        漂浮文字 - 设置 (最后创建的漂浮文字) : 禁用 永久显示.
                                        漂浮文字 - 设置 (最后创建的漂浮文字) 的移动速率为 150.00 ,方向为 90 度
                                        漂浮文字 - 设置 (最后创建的漂浮文字) 的显示时间为 1.00 秒
                                        漂浮文字 - 设置 (最后创建的漂浮文字) 的消逝时间点为 1.00 秒
                                    Else - 动作

chyj4747 发表于 2014-2-28 23:13:22

最绚烂 发表于 2014-2-28 12:37
是接受伤害~+血牌~计算伤害加或减少~删除血牌~再次伤害吗?
但是这样是先受到伤害的...受到的伤害与显示 ...

你是说会把抵消的伤害显示出来?
那样的话抵消伤害的时候把伤害显示关掉就行了,不过这个在T里有顺序关系比较难弄,LZ可以试下延迟0秒(等待或计时器都行,计时器的话要绑数据)再显示伤害,然后在抵消伤害的触发里给个标记,0秒后显示伤害里判断这个标记是否可显示伤害

chyj4747 发表于 2014-3-1 13:49:32

那不可能,除非接受伤害事件在做动作前用了等待之类的延迟,否则肯定是先加血牌,你可以弄个简单的触发试试单位会不会被打死,比如用触发造成10000点伤害,另一个触发接受伤害事件然后加10000血的血牌
如果血牌是在伤害之后才加的话那么这个单位肯定死了
页: [1]
查看完整版本: 关于伤害显示的问题