翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 1553|回复: 4

[交流] 再論英雄血

 关闭 [复制链接]

110

主题

14

精华

6万

积分

教皇

特洛伊大叔

耕战
10480
鹰币
1610
天龙币
126
回帖
2358

翔鹰建站十周年纪念章二级帝国勋章一级翔鹰勋章二级嘉禾勋章大评论家小评论家创意工坊通行证第十一届火箭筒杯最佳战役

附庸关系10
发表于 2015-4-21 07:31:17 | 显示全部楼层 |阅读模式
本帖最后由 tryotryotryo 于 2015-4-21 10:33 编辑

英雄血是很常用的一個效果。例如有一個單位生命值為 x ,設定兩個循環的觸發損傷該單位-(16777217-x)

(16777216-x)

就可以讓這個單位回血速度每秒+1。如果這個情形下改變這個單位生命值y (變成x+y),則明顯這個觸發就會崩潰。


問題是"存不存在某個 y 使得這個條件不崩潰?"


我先用弓兵為例 x=30,y=2時


崩潰了。那如果是 y=4呢?


成了,沒崩潰。猜想是:y 只要是 4的倍數都行。試試 y=8:


好,我想這是對的 (暫定假設)。但是這樣真的有英雄血嗎?損傷他 5 血試試,結果他回血成為


我直接說結論:當你改了某個 4 倍數的血量,受傷後血量為 z 則他會回到 x+4k,k 滿足 z <= x+4k 且為最小 。像在這個例子裡,受傷低於 30 會回到 30、31~34會回到 34,高於 34會回到38。

回到實際面,如果不是弓兵這類不會自動回血單位,而是英雄單位,那在 34到35 血之間可以靠英雄血"移動"過去。換句話說,對英雄來說這仍是加快回血速度。只不過不再是每秒一血,因為在 30~31 和 34~35間是沒有英雄血效果的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册翔鹰会员(昵称)

x
回复

使用道具 举报

454

主题

65

精华

25万

积分

教皇

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

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

附庸关系2
发表于 2015-4-21 10:22:50 | 显示全部楼层
文章結論沒有說明 k 何所指……

其實類似問題過去不少文章已經說過了(例如拙作https://www.hawkaoe.net/bbs/thread-5375-1-1.html),英雄化特效的基本原理就是浮點數精確度問題(專業的分析參見https://www.stata.com/support/faq ... nt/float-data-type/)。遊戲儲存單位現在生命值為 float 、最大生命值為 signed short ,兩者實際沒有直接聯繫,僅有遊戲正常治療行動增加前者時會限制數值不大於後者;英雄化效果利用的摧毀目標觸發事件效果僅祇干涉單位的現在生命值,其 x 值只是方便設定一個自我回復上限而已,同樣與單位最大生命值無直接關係。

不過,最大問題還是在 1.4 版已經提供治療新觸發事件效果的情況下,英雄化特效基本與被淘汰無異……

点评

說到 1.4 我又發現一件事:一般來說改變生命值這個效果用上後就不能科技研發了,但是數字欄為 2 的英雄血方式不算在內。換句話說還是可以升級或研發  发表于 2015-4-21 11:15
我這篇主要是在說生命值超過的時候的現象,可以當成你的那篇的一個習題。  发表于 2015-4-21 11:01
已註明k  发表于 2015-4-21 10:34
回复

使用道具 举报

本版积分规则

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

GMT+8, 2024-11-22 22:45 , Processed in 0.097537 second(s), 38 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

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

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