翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
楼主: nomygf

[教程] 每秒回復 n 血, 而且不破血

   关闭 [复制链接]

1

主题

0

精华

415

积分

子爵

耕战
61
鹰币
218
天龙币
0
回帖
8
附庸关系0
发表于 2010-10-3 21:06:34 | 显示全部楼层
效果0:损坏目标|设置单位:相关单位|设置区域:相关区域|参数:-134217772+A
效果1:损坏目标|设置单位:相关单位|设置区域:相关区域|参数:268435456-A


将效果0写成两个效果:

效果0:损坏目标|设置单位:相关单位|设置区域:相关区域|参数:-268435456+A
效果1:损坏目标|设置单位:相关单位|设置区域:相关区域|参数:-16
效果2:损坏目标|设置单位:相关单位|设置区域:相关区域|参数:268435456-A


上述效果就是每秒回复16 血的触发事件结构。

这个触发事件结构的唯一坏处是, 你必须要使用16 这个值作为最基础
此话什么意思呢? 即是「每秒回复n 点血量」的n 必须是16 的倍数,
也就是n 值只可能会是 16 / 32 / 48 / 64 / 72 / 88 ... 如此类推

打錯字了...
是268435472吧..

[ 本帖最后由 chickenpie 于 2010-10-3 21:08 编辑 ]
回复

使用道具 举报

9

主题

4

精华

8163

积分

国王

耕战
1184
鹰币
144
天龙币
0
回帖
288

特级嘉禾勋章十字军勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-10-3 21:10:07 | 显示全部楼层

回复 21楼 的帖子

改正了 {30}                            
回复

使用道具 举报

60

主题

31

精华

6万

积分

圣徒

耕战
9492
鹰币
1708
天龙币
0
回帖
1741

三级皇家勋章翔鹰建站十周年纪念章特级翔鹰勋章特级嘉禾勋章特级帝国勋章十字军勋章雄鹰勋章鹰之智者蛟龙勋章密铺帝

附庸关系0
发表于 2010-10-9 23:55:05 | 显示全部楼层
{5} 这回我那贸易马车也像桶装里的王帝了,回多回少难度选择{42} 。
----我将贸易马车血量改100,那A就是100吧。
ys168网盘       秦俑半章     主题帖子技巧与帖图

   
回复

使用道具 举报

9

主题

4

精华

8163

积分

国王

耕战
1184
鹰币
144
天龙币
0
回帖
288

特级嘉禾勋章十字军勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-10-10 00:13:04 | 显示全部楼层

回复 23楼 的帖子

是啊                  
回复

使用道具 举报

114

主题

4

精华

4万

积分

圣徒

耕战
8852
鹰币
1064
天龙币
0
回帖
1552

翔鹰建站十周年纪念章二级嘉禾勋章二级帝国勋章十字军勋章雏鹰勋章

附庸关系0
发表于 2010-10-10 09:51:46 | 显示全部楼层
16楼的问题有成果了吗?很期待啊......
回复

使用道具 举报

9

主题

4

精华

8163

积分

国王

耕战
1184
鹰币
144
天龙币
0
回帖
288

特级嘉禾勋章十字军勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-10-10 11:57:20 | 显示全部楼层

回复 25楼 的帖子

成果早已經更新在 #1 了
#16 所提出的並不全部可能達成,
基礎值必需要是 2 進制的數值 ( 1,2,4,8,16,32, 64 ,128,256...)
回复

使用道具 举报

63

主题

8

精华

5万

积分

教皇

耕战
9517
鹰币
8493
天龙币
1
回帖
2197

冒险家翔鹰建站十周年纪念章特级翔鹰勋章特级嘉禾勋章特级帝国勋章雄鹰勋章鹰之智者蛟龙勋章第一玩家翔一电影节冠军

附庸关系0
发表于 2010-10-11 19:17:43 | 显示全部楼层
-16777216经过-1无法得到-16777217。还是-16777216。
然后很巧妙的利用这个规则,反复就可以设置任意秒了。

建议不妨把这作为公理写在1L。

[ 本帖最后由 Ru43 于 2010-10-11 19:20 编辑 ]
怪物健康时对玩家伤害加倍。。。神patch膜拜ing。。。
——————————————————————————————
战役殿堂 精品战役下载
战役/场景发布版块
战役百家谈 作品评论、交流、攻略
回复

使用道具 举报

9

主题

4

精华

8163

积分

国王

耕战
1184
鹰币
144
天龙币
0
回帖
288

特级嘉禾勋章十字军勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-10-11 20:28:06 | 显示全部楼层
要提到的話, 就要先說說 float 的儲存方式, 然後就談到 a = m × b^e / a = m × 2^e,
接著才到 "16777217 會簡化回 16777216"

有關此原理的文章很久之前已經存在, 如果看不懂的話,
在這裡怎麼說也是不懂的...

話說我找不回那篇文章, 還好我之前把它儲存了
https://bbmov.com/b5/viewtopic.php?t=24&mforum=admin
回复

使用道具 举报

63

主题

8

精华

5万

积分

教皇

耕战
9517
鹰币
8493
天龙币
1
回帖
2197

冒险家翔鹰建站十周年纪念章特级翔鹰勋章特级嘉禾勋章特级帝国勋章雄鹰勋章鹰之智者蛟龙勋章第一玩家翔一电影节冠军

附庸关系0
发表于 2010-10-11 21:44:41 | 显示全部楼层
正是我想说的。

(1)
根据浮点计算。-16777216就是2的24次方。
这个时候和-1进行运算的话,双方的次方差距超过了23。

也就是在对阶的时候,较小的-1的尾数变成23个0蛋。然后尾数相加,-1就被无视了。
这是HP全满时候的情况。

HP不满,则双方的阶差恰好小于24(即为23),那么-1不会被忽略,生命继续增加。

同样这样也可以解释各种-16777216的2的倍数对应着各种-1的2的倍数。

同样,如果在32的基数下用64,根据上面理论可知,双方级差永远只有23或者22,那就无法使计算被忽略,也就是爆血现象。

(2)然后引用一段话来说明微软可能才用的取舍方式:

就近舍入(round to nearest) 这是标准列出的默认舍入方式,其含义相当于我们日常所说的“四舍五入”。例如,对于32位单精度浮点数来说,若超出可保存的23位的多余位大于等于100…01,则多余位的值超过了最低可表示位值的一半,这种情况下,舍入的方法是在尾数的最低有效位上加1;若多余位小于等于011…11,则直接舍去;若多余位为100…00,此时再判断尾数的最低有效位的值,若为0则直接舍去,若为1则再加1。

在效果上很明显的是对于33~63,也就是不影响级差的情况下,也出现了64的暴雪现象。

因为这些表示出来正好符合舍入进位条件。

同样,对于17~31,也反应出32的效果,也是因此造成的。

而对于16甚至更低,则没有反应,因为被舍去了。

(3)
基于2,就可以解释为什么只有基数最高的那个有效了。{6}
怪物健康时对玩家伤害加倍。。。神patch膜拜ing。。。
——————————————————————————————
战役殿堂 精品战役下载
战役/场景发布版块
战役百家谈 作品评论、交流、攻略
回复

使用道具 举报

9

主题

4

精华

8163

积分

国王

耕战
1184
鹰币
144
天龙币
0
回帖
288

特级嘉禾勋章十字军勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-10-12 01:25:31 | 显示全部楼层
我也嘗試來說一說吧....

大家知道電腦是如何分辨小數嗎? 大家認識的二進制好像沒有小數啊,
要電腦能夠分辨小數, 就要由人類定義一個方法給電腦分辨,
這個就是浮點數 (floating-point numbers)。

到底浮點數是如何運作的呢?
它是根據一條公式
儲存值 = M*b^e
M 代表尾數(mantissa), b 代表基數(base), e 代表指數(exponent)
浮點數共有 32-bits 來儲存數值, 一般情況下(取決於CPU),

1 bits 用作 sign bit representation, 即分辨正或負值, 0 表示正值, 1 代表負值
7 bits 用作儲存指數 (由 -64 至 +63)
24 bits 儲存尾數

我以 +20.1 這個十進制值來作例子:

+20.1(10) = +10100.1(2)
+10100.1(2) = 0.101001 * 2^5

0 1000101  1010 0100 0000 0000 0000 0000



現在來看看 +16777216 這個數值

+16777216(10) = +1000000000000000000000000(2)
+1000000000000000000000000(2) = 0.1 * 2^25

0 1011001  1000 0000 0000 0000 0000 0000 0(2)

灰色的 0 超出了 24-bits, 所以儲存不到那個灰色的 0, 最後就會變成:
01011001100000000000000000000000


現在來看看 +16777217 這個數值

+16777217(10) = +1000000000000000000000001(2)
+1000000000000000000000001(2) = 0.1000000000000000000000001 * 2^25

0 1011001  1000 0000 0000 0000 0000 0000 1(2)

灰色的 1 超出了 24-bits, 所以儲存不到那個灰色的 1, 最後就會變成:
01011001100000000000000000000000
這個值跟+16777216的一樣, 這就是為什麼 16777216 = 16777217
這也是為什麼 float 會被人說不精確。

[ 本帖最后由 nomygf 于 2010-12-26 23:31 编辑 ]
回复

使用道具 举报

46

主题

0

精华

1046

积分

伯爵

耕战
116
鹰币
295
天龙币
0
回帖
186
附庸关系0
发表于 2010-10-16 10:17:24 | 显示全部楼层
就是说只有1、2、4、8、16、32、64能够作为回血的基础值,再多就要靠复制触发了吗?{19}
回复

使用道具 举报

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
发表于 2010-10-16 10:34:45 | 显示全部楼层
干嘛不用long double储存……
是当时内存不足吗……
回复

使用道具 举报

30

主题

1

精华

5113

积分

国王

耕战
883
鹰币
114
天龙币
0
回帖
151

翔鹰建站十周年纪念章

附庸关系0
发表于 2010-10-16 14:40:01 | 显示全部楼层
嗯,very well,i will try,.....
回复

使用道具 举报

9

主题

4

精华

8163

积分

国王

耕战
1184
鹰币
144
天龙币
0
回帖
288

特级嘉禾勋章十字军勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-10-16 19:23:45 | 显示全部楼层

回复 32楼 的帖子

因為沒有必要用這麼大的空間去儲存這變數, 要這麼大來幹嘛?
回复

使用道具 举报

10

主题

0

精华

270

积分

男爵

耕战
29
鹰币
82
天龙币
0
回帖
95
附庸关系0
发表于 2010-11-4 21:56:38 | 显示全部楼层
好深奥啊.......................{34}
回复

使用道具 举报

454

主题

65

精华

25万

积分

教皇

耕战
42935
鹰币
1441115
天龙币
10
回帖
5687

翔鹰建站十周年大纪念章特级帝国勋章特级翔鹰勋章特级嘉禾勋章一级皇家勋章鹰之智者蛟龙勋章十字军勋章大冒险家狂熊勋章

附庸关系2
发表于 2011-6-27 01:29:50 | 显示全部楼层
https://www.hawkaoe.net/bbs/thread-5375-1-1.html
大家討論前請善用搜索功能
回复

使用道具 举报

454

主题

65

精华

25万

积分

教皇

耕战
42935
鹰币
1441115
天龙币
10
回帖
5687

翔鹰建站十周年大纪念章特级帝国勋章特级翔鹰勋章特级嘉禾勋章一级皇家勋章鹰之智者蛟龙勋章十字军勋章大冒险家狂熊勋章

附庸关系2
发表于 2011-6-28 04:56:48 | 显示全部楼层
每秒回復 n 血, 而且不破血
https://www.hawkaoe.net/bbs/thread-30971-1-1.html
作者:nomygf
日期:2010-10-10

简介:此教程指出「33554432/-33554434」、「67108864/-67108868」、「134217728/-134217736」、「268435456/-268435472」、「536870912/-536870944」、「1073741823/-1073741887」等组别的数字可以用来达致2、4、8、16、32、64单位生命值的不逾越上限回复。

点评:此教程是骑士不怕长枪〈如何象英雄一样加血而不超出上限〉(https://www.hawkaoe.net/bbs/forum-viewthread-tid-1013.html)、剧族~人称无敌〈64滴血以上自由控制的英雄式补血法〉(https://www.hawkaoe.net/bbs/forum-viewthread-tid-4109.html)与本人〈再论骑士不怕长枪的英雄化效果理论〉(https://www.hawkaoe.net/bbs/forum-viewthread-tid-5375.html)三文内容的归纳,但是更具体地介绍了各浮点数误算间距的数值。值得注意的是,此教程的主帖内容略嫌铺陈过长,导致正题反而需要放入及后跟帖,是以对此特效有一定认识者或许可以跳过主帖直接阅读跟帖。

回复

使用道具 举报

1

主题

0

精华

23

积分

骑士

耕战
-1
鹰币
235
天龙币
0
回帖
73
附庸关系0
发表于 2011-7-10 21:42:08 | 显示全部楼层
仔细学习学习。。。。。。
回复

使用道具 举报

0

主题

0

精华

14

积分

骑士

耕战
0
鹰币
59
天龙币
0
回帖
8
附庸关系0
发表于 2011-10-16 11:56:49 | 显示全部楼层
额 太复杂了
回复

使用道具 举报

0

主题

0

精华

12

积分

骑士

耕战
0
鹰币
85
天龙币
0
回帖
3
附庸关系0
发表于 2011-10-25 12:28:45 | 显示全部楼层
本帖最后由 东方龙飞 于 2011-10-25 12:30 编辑

LZ,我用这方法,写了两个以32为基数回血的效果但是每次回血76点……还有就是,这种触发有办法实现通过激活触发功能激活么,就是不让它一开始就自动激活,我试了好像不行。
我是想,一个圣殿,初始每秒回血10点。走到某区域,血上限增加,同时取消每秒回血10点。接着走几步,激活每秒回血32(比方说)点。
这样的剧情总是做不成,请问LZ有办法么?
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-5-2 00:22 , Processed in 0.285084 second(s), 221 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

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