【演示】一个近于完美的伤害显示系统 [附件传好了]
伤害显示的演示,网上有很多,有老狼的,圣童的还有其他版本的,但都有一些小毛病。我这个之的以称之为近于完美,因为解决了一些伤害显示中所出现的伤害不能正常显示的问题——比如,单位遭到技能攻击,伤害就不显于了。偶做的可以显示出技能的伤害,而且还具有调整伤害值的功能(目前只设定了增加和减少伤害的功能)。至于为什么没有达到完美。那素因为关闭伤害显示时,用计时器的开消有些大。不过这个是防止出现异常的最好办法了。
先弄几张图先:
[attach]120862[/attach] [attach]120863[/attach]
[attach]120864[/attach]
第三张图处片中,血法师放了个群体风暴锤,显示伤害为 “-175”
技能伤害为:75,另有100伤害是附加的。
函数[非WOW8公共版使用]:[attach]120870[/attach]
函数[WOW8公共版用]:[attach]120872[/attach]
演示地图:[attach]120871[/attach]
这个函数需要“Return Bug System”的支撑,不过用WOW8公共版的编辑器,自带有支撑函数,所以可以直接复制到地图的自定义脚本区即可。
调用“开启玩家单位受伤害显示”[jass]自定义:call ShowDamageForPlayerUnit( 玩家, true/ false, 受伤时附加的伤害 )[/jass]比如,要给玩家1开启伤害显示,并在单位受伤害时,减少10点伤害,就可以这样调用:[jass]自定义:call ShowDamageForPlayerUnit( Player(0), true, -10 )
// Player(0)就是玩家1。[/jass]调用“开启单位受伤害显示”[jass]自定义:call ShowDamageForUnit( 单位, true/ false, 受伤时附加的伤害 )[/jass]用法和开启玩家受伤害显示的差不多。
比如给一个 变量单位 Hero 开启受伤害显示,受到伤害时,附加 20 点的伤害。
[jass]自定义:call ShowDamageForPlayer( udg_Hero, true, 20 )
// udg_Hero就是变量单位。这样,当这个单位受到伤害时,会在原有伤害的基础上附加20的伤害。
[/jass]
[[i] 本帖最后由 feelerly 于 2009-1-8 19:30 编辑 [/i]] 图片图片~~.. (葱头:44)自己做的系统,没遇到伤害不显示这种情况- - 好多的IF语句.....
能用循环还是用循环吧 (葱头:55) jass high light 问题还算严重,自我批评下。。。
复制以后各位作3个替换
< -> <
> -> >
" -> "
[[i] 本帖最后由 shingoscar 于 2008-2-3 17:39 编辑 [/i]] 暗月做的一定要看看~
不过貌似用T做的伤害显示系统是可以显示技能伤害量的...为什么用J做会显示不出呢?
PS: 请问地毯那楼的,怎么用循环...每个IF东西不同怎么循环
[[i] 本帖最后由 Trevors 于 2008-2-3 19:03 编辑 [/i]] [quote]原帖由 [i]Trevors[/i] 于 2008-2-3 19:00 发表 [url=http://bbs.wow8.org/redirect.php?goto=findpost&pid=561276&ptid=47208][img]http://bbs.wow8.org/images/common/back.gif[/img][/url]
暗月做的一定要看看~
不过貌似用T做的伤害显示系统是可以显示技能伤害量的...为什么用J做会显示不出呢?
[/quote]
这个偶做过很多实验的,单位受到如风暴之锤技能,还有加血,被冰冻去血时,是无法正常显示的,一般会出个0。这种情况其实单位是受到了伤害,但这个伤害却属于无效伤害。
还如:用球技能攻击单位时,也会显示0,这个也是个BUG吧,不过在偶的写法中,无效的伤害是不显示的。 哦- -原来是这样~ JASS。。。我还是用T的吧。。。飘过。。。 暗月依然是那么(葱头:30) 强大
(葱头:26)
什么时候偶也能驾驭J这玩意呢? (葱头:06)这彩色的文字倒素蛮多人使用的啊...
(葱头:14)也不知道素不素偶自己最快使用- - 偶使用的时候还没见过...... 复件 伤害显示系统.TXT 有乱码,楼主请检查. 还是T好懂点儿 (葱头:10) 又是J(葱头:28) 我还是飘过吧.....蒽 看看~~~ 试试去(葱头:05) 导入出错????
ddd
回帖是一种美德,好帖要大家顶的 风暴之锤好像除了一次0伤害是加了眩晕的BUFF以外,还会有一次技能伤害触发事件的貌似直接把damage=0的伤害排除就行了吧 function EveryCheckDamageShowActions takes nothing returns nothing
local group g = GetUnitsInRectAll(GetPlayableMapRect())
call ForGroup( g, function EveryCheckDamageShow_Group_Actions )
call DestroyGroup( g )
endfunction
该函数局部变量g不为null。在这伤害显示系统里,每0.5秒判断全图单位生命值是否为0,而且单位死亡又要删除其触发,间隔时间有点短,且函数调用多,效率嘛就...。LZ弄那么长的J是否为了修复,在单位非真正死亡时就刚好遇上判定该单位生命值<=0然后就把显示触发给删除了而导致单位有复活技能复活后不能显示伤害的BUG?其实老狼的伤害显示系统就很不错,不过好像还有BUG,它是每60秒判定一次复制全局变量数组的单位的生命值,如果其中一个生命值为0则储存这个单位的数组索引让新单位填补这个单位索引,如果刚好遇上上面的情况则存在BUG而不能显示伤害,不过谁都知道数组是有上限的,超过后就也存在BUG,虽然有这些BUG,但方法就很不错,效率很高。
LZ的伤害显示系统完美了,但也复杂了…… 这个好,愉快的顶了 厚道,看贴回贴 够强打!(葱头:10) 强大啊 强大啊 强大啊 强大啊 强大啊 强大啊 强大啊 强大啊 强大啊 学习学习学习学习学习学习学习学习学习学习学习学习 很好,很强大....... 很 厉害
要顶 !
谢谢分享 回帖是一种美德,好帖要大家顶的(葱头:02) (葱头:02) (葱头:02) 路过这区,下载个明天上无聊的生物课时看.(葱头:08) 看看我这个,更加简洁高效和方便使用哦:
[url]http://bbs.wow8.org/thread-63737-1-1.html[/url] 找了好久,终于发现好东西了..
对玩家显示文本消息。自动限时。用jass怎么写? 确实不错!但是个人感觉
出伤害的对象选择起来比较麻烦! 转到哪里面 智力(葱头:01) (葱头:01)
页:
[1]