崔煦昀 发表于 2011-6-16 20:09:04

请问如何扣除/回复某单位50%的血量?

我遇到的问题是,这个单位的血量是不定的,就是说现有触发在改变他的HP……
假如这个单位的HP很高,在几万甚至更高,有没有办法做到?
求助,十分感谢T-T

下图一号 发表于 2011-6-16 21:29:56

https://www.hawkaoe.net/bbs/thread-21434-1-2.html我无奈的找的。。。注意安全吧。。。

崔煦昀 发表于 2011-6-16 22:05:16

下图一号 发表于 2011-6-16 21:29 static/image/common/back.gif
https://www.hawkaoe.net/bbs/thread-21434-1-2.html我无奈的找的。。。注意安全吧。。。

= =我去那里看过的,只是那里只能改固定HP的,我这个HP是变动的……因此我迷茫了。
囧……不过还是感谢你了……这个地址藏得比较深,不好找……

Ikarus 发表于 2011-6-16 22:33:42

如果生命大于2768的话
那么我们也能够利用小数值来达成,具体如下:
假设:降低单位50生命
触发:
        效果1: 改变生命值(10000)
        效果2: 损坏目标(5000)
        效果3: 改变生命值(-10000)
公式结果=(效果2除效果1) 5000除 10000 = 0.5=50%
我测试过了,没问题
这不是非固定扣百分比么

崔煦昀 发表于 2011-6-16 22:38:49

帝国银之风¤ 发表于 2011-6-16 22:33 static/image/common/back.gif
如果生命大于2768的话
那么我们也能够利用小数值来达成,具体如下:
假设:降低单位50生命


囧,我错了,我没表达清楚……
我的意思是,生命值是这样的,假设是:40000/300
也就是上限不高,当前有的很高……
我去试了一下,每次只扣几百,把数据调高点,也是扣几千生命T-T

Ikarus 发表于 2011-6-16 22:55:27

这样啊…那就麻烦了,你为什么不降低一下生命值呢,这样生命值和上限同步就可以了

崔煦昀 发表于 2011-6-16 23:01:59

囧……剧情需要……好吧,不能的话我想一下其他方法,根据时间计算下到时候的剩余生命值再来调好了……相信有误差也不至于让单位死于非命的= =

下图一号 发表于 2011-6-17 13:35:45

可不可以血量有变动就做个标记,到时候条件按标记来算

崔煦昀 发表于 2011-6-17 22:14:46

下图一号 发表于 2011-6-17 13:35 static/image/common/back.gif
可不可以血量有变动就做个标记,到时候条件按标记来算

这个不大现实……因为就算标记了变动多少生命,跑到外面的时候被敌人攻击时,扣了多少生命这个却是不知道的了……

from 发表于 2011-6-19 16:06:27

不要追求得如此精确啊,,,,,,,
既然不知道,,

Ru43 发表于 2011-6-19 16:24:38

采用一个资源栏跟踪当前生命值上限。然后用多个资源栏参与分配。
比如40000/300为初始时,可以让玩家2的资源栏有300黄金。
然后(尝试能不能理解吧):
1、我们执行一个当前血量+50%的行为,这个较为简单
(1)依次判断玩家2资源栏的资源是否大于2的N次方,N根据游戏中最大可能的生命上限来定。比如可以设为12。即4096。
这样依次判断玩家2资源栏黄金是否大于4096、2048、1024、512、256、128、64、32、16、8、4、2、1
满足则玩家2供出相应的黄金数给玩家4,再由盖亚女神依次给玩家3资源栏黄金进贡2048、1024、512、256、128、64、32、16、8、4、2、1、0
当这种判定结束后,将玩家4的黄金全数(99999)还给玩家2。
这样我们就得到玩家2黄金(记录当前生命上限),玩家3黄金(记录50%的生命上限增加量)
然后,同样让玩家3进行资源栏黄金是否大于4096、2048、1024、512、256、128、64、32、16、8、4、2、1的判断
若满足则让玩家3进贡资源给玩家2,同时增加主角的生命上限为相应值。
如果触发顺利清晰的话,这个过程1~2秒内就可以完成。
2、降低目标50%血量就麻烦些。
依次判断玩家2资源栏黄金是否大于4096、2048、1024、512、256、128、64、32、16、8、4、2、1
满足则玩家2供出一半的的黄金数给玩家4,另一半给玩家3资源栏黄金进贡2048、1024、512、256、128、64、32、16、8、4、2、1、0
然后玩家4黄金退给玩家2,玩家3再依次判定,这次是降低玩家生命值上限。

总之通过这种动态记录,虽然无法精确的做到50%,但是一般情况不会差太多。
至于20%、30%怎么做,用类似的判定慢慢写吧。。。。。。

Ru43 发表于 2011-6-19 16:26:52

另外可能面临一个反复嗑药导致上限溢出32xxx的问题,这个时候可以设置一个“受伤严重治疗包已经失效”的情节,到城镇的教堂里面把生命上限降低一些。。。。。算是一个游戏设计上的补正。。。。。

from 发表于 2011-6-19 16:31:10

回复 Ru43 的帖子


你的只是上限标明,,,,楼主要的是当前,,,,也就是无法确定具体,
页: [1]
查看完整版本: 请问如何扣除/回复某单位50%的血量?