_CCC_大智 发表于 2005-7-13 20:28:14

[原创]单一触发瞬间根据生命上限补血

要让普通单位瞬间补满血很简单,两个相反的损坏目标即可,但不是每个单位都如此,很多RPG的主角都会不断升级,生命值没有个定数,如何用触发给他们补血而不超过上限呢?用N个英雄加血触发?当然不可能,那会累死人。
好吧,还记得生命值的“倍数增减”么?也就是单位的生命上限改变时,当前生命值会按照相同的倍数改变。比如一个受伤的精锐条顿武士,生命值为10/100,如果用触发加100生命值,结果他的生命会变成20/200,而不是110/200!不信自己试试就清楚了。
明白了这个,再继续,如果我们把当前生命弄得和上限的比值接近于1,再还原生命上限,就会让单位的血差不多补满了~
那么怎么让这个比值接近1呢?举个例子,同样是相差1的两个数,1/2是0.5,但是10000001/10000002的值就非常接近1了。这样,我们只要把生命调高,即使相差几十点,甚至几百点也是微不足道的了。
上限的最大值是2^15,即32768,超过这个的后果不多说,现在超人已经不受欢迎,几百点生命就算高了,那我们就留2768的空间给他升级,用触发加30000点上限,在用BUGO法把血弄成30000(多点也行),然后再-生命上限30000,单位就差不多满血了。
当然,这个方法还是不完美:主角血不能太多,几千几万的补完就差很远了,还可能爆死,而且很难完全满血……
以下是范例,点箭塔补血,杀人会升级:

<b>
<DIV class=quote>
<b>原创技术,二等耕战之功,一律奖励<FONT face="Times New Roman">300</FONT>分,如获加精,再加<FONT face="Times New Roman">100</FONT>分。-----尼克</b> </DIV></b>
[此贴子已经被尼克于2005-7-13 23:12:21编辑过]

三毛 发表于 2005-7-13 21:40:54

哇,大智。
人尔   +   弓虽
   &nbsp具
[此贴子已经被作者于2005-7-13 21:43:53编辑过]

龙卷风 发表于 2005-7-13 22:24:52

哇哇哇,大智也研究起这个来了。
看懂了^_^
PS:加精华吧~
[此贴子已经被作者于2005-7-13 22:55:54编辑过]

尼克 发表于 2005-7-13 23:13:56

<b>原创技术,二等耕战之功,一律奖励<FONT face="Times New Roman">300</FONT>分,如获加精,再加<FONT face="Times New Roman">100</FONT>分。-----尼克</b>

小狐 发表于 2005-7-13 23:38:47

落后拉……基本看不懂还是顶一个……

_CCC_大智 发表于 2005-7-14 11:09:04

<DIV class=quote><B>以下是引用<I>龙卷风</I>在2005-7-13 22:24:52的发言:</B>

哇哇哇,大智也研究起这个来了。 </DIV>
11,这个可不是专门研究出来的哦,昨天翻新《星星之剑》的时候正考虑“信念”的问题,以前我就是想让亚瑟满血,可是无法确定他的生命上限,只好用恢复到200血凑合了……后来突然灵光乍现,这触发就这么出来咧……

冯逍遥 发表于 2005-7-14 11:23:04

         厉害~~~难怪昨天你着了魔似的一直念叨

骑士不怕长枪 发表于 2005-7-14 13:02:44

<b>[补充]</b>“上限的最大值是2^15,即32768”“那我们就留2768的空间给他升级……单位就差不多满血了”按照大智所说的理论,应该有一个空间,在执行过后,单位那没有加满的血小于1,设该空间为X,则:(X/32768)*X&lt;1=&gt;X^2&lt;32768=&gt;X&lt;181.02即当单位的升级空间为时,他可以在任意级别,以该触发加满血(因为帝国中的单位,比如说体力为98.1/100时,它会显示为99/100。当年在研究英雄加血时我曾试过)。那如果缺1点血的话,由(X/32768)*X&lt;2=&gt;X&lt;256缺2点血:X&lt;313.53缺3点血:X&lt;362.04……(数值变化并不等差)一般来说以后的就明显了。

天使归来 发表于 2005-7-14 13:15:39

晕……越看越不懂了……

龙卷风 发表于 2005-7-14 13:52:06

(X/32768)*X&lt;1   啥意思?

小狐 发表于 2005-7-14 14:42:26

都是学院派狂人……

骑士不怕长枪 发表于 2005-7-14 19:28:10

简单的数学计算而已吗……就象我们平常在做数学应用题一样,设数值、不等式,求解

龙卷风 发表于 2005-7-14 20:07:59

就是不理解那个X!

dad454 发表于 2005-7-14 20:19:13

X是未知数吧......设该空间为X

_CCC_大智 发表于 2005-7-14 21:21:03

试了一下,单位到32768就会死,所以最大值只能是32767,首帖也就应该改成“留32767的升级空间了”。
按这个,再考虑最少生命,我去算算先……

_CCC_大智 发表于 2005-7-14 22:10:37

因为帝国中的单位,比如说体力为98.1/100时,它会显示为99/100。当年在研究英雄加血时我曾试过刚才算出来测试时发现实际和理论不对....原来约数规则好象正好相反......小数点后数字全部化做0,99.9显示也是99.......24这样估计要从“不爆血”方面着手了,而不是“不满血”....累.....

龙卷风 发表于 2005-7-15 02:12:19

哪个空间?是原来血没补完的还是生命增大后血没补完的??

_CCC_大智 发表于 2005-7-15 09:41:33

24,昨天算死了,出来一个废答案设生命上限最小值为A,最大为B,当满足A &lt; B &lt; (A^2+a+32767)/(A+1)时,单位在最小值和最大值时都能用触发一次正好满血!可是我忘记考虑最大和最小之间的了……—……%……—%……这是个曲线来的……如果生命值在中间,很可能爆血………………242424

骑士不怕长枪 发表于 2005-7-15 10:53:45

......-_-|||||||看样子还是不要搞下去的好,乱ING

_CCC_大智 发表于 2005-7-15 11:39:56

1......昨天8:00算到10:30...累死了...
页: [1] 2 3
查看完整版本: [原创]单一触发瞬间根据生命上限补血