铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 5495|回复: 15

[技巧心得] 【源码分析】回复型内功的具体数据【神照、九阴、九阳、狮子、罗汉等各种回复内功】

  [复制链接]
发表于 2012-2-6 16:28 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 点滴 于 2012-2-8 19:39 编辑

先拿神照功来做为例子
代码如下:(对于神照功有单独的一段代码来执行):

  1. if JY.Person[eid]["生命"]<=0 then  --神照起死回生
  2.   for i=1,10 do
  3.    local kfid=JY.Person[eid]['武功'..i]
  4.   if kfid==94 and WAR.tmp[2000+eid]==nil then
  5.     WAR.Person[emenyid][CC.TXDH]=math.fmod(kfid,10)+85--JY.Wugong[kfid]["武功动画&音效"]      
  6.   
  7.     WAR.Person[emenyid][CC.TXWZ1]=JY.Wugong[kfid]['名称']..CC.WARS111   
  8.     local lv=math.modf(JY.Person[eid]['武功等级'..i]/100)+1                     
  9.     if eid==37 then
  10.     JY.Person[eid]["生命"]=JY.Person[eid]["生命最大值"]
  11.     else
  12.     JY.Person[eid]["生命"]=math.modf(JY.Person[eid]["生命最大值"]*(1+lv)/25)           
  13.     end
  14.     JY.Person[eid]["内力"]=math.modf((JY.Person[eid]["内力"]+JY.Person[eid]["内力最大值"])/2)   
  15.     JY.Person[eid]["体力"]=math.modf((JY.Person[eid]["体力"]+50)/2)                    
  16.     JY.Person[eid]["中毒程度"]=math.modf(JY.Person[eid]["中毒程度"]/2)   
  17.     JY.Person[eid]["受伤程度"]=math.modf(JY.Person[eid]["受伤程度"]/2)
  18.                   WAR.Person[emenyid]["Time"]=WAR.Person[emenyid]["Time"]+500
  19.       if eid==37 then
  20.          WAR.Person[emenyid]["Time"]=990
  21.       WAR.DYSZ=1
  22.       end
  23.       if WAR.Person[emenyid]["Time"]>990 then WAR.Person[emenyid]["Time"]=990 end
  24.     if math.random(10)~=8 then
  25.      WAR.tmp[2000+eid]=1;
  26.     end
  27.    end
  28.   end
  29. end
复制代码

这个非常容易理解了,只是简单的加减乘除
复活后增加的生命:JY.Person[eid]["生命"]=math.modf(JY.Person[eid]["生命最大值"]*(1+lv)/25)
                               lv=math.modf(JY.Person[eid]['武功等级'..i]/100)+1
                                假设人物生命为999,神照功等级为10,复活后生命为:999*(1+10)/25=440
                                神照功等级为极,复活后生命为:999*(1+10)/25=440
                                可以看出来,神照功复活的血量是根据武功等级增加生命的
复活后增加的内力:JY.Person[eid]["内力"]=math.modf((JY.Person[eid]["内力"]+JY.Person[eid]["内力最大值"])/2)
                               就是当前内力值一半加上最大内力值的一半

复活后体力的情况:JY.Person[eid]["体力"]=math.modf((JY.Person[eid]["体力"]+50)/2)
                                体力的计算很有趣,如果100体力,则复活后是(100+50)/2=75
                                                                如果50体力,则复活后是(50+50)/2=50
                                                                如果是0体力,则复活后是50/2=25

剩下的都是直接赋值,没有计算过程

结论:神照功复活后的生命值是一个具体的数值,跟神照等级挂钩,十级为440血
      值得一说的是,由于是直接赋值的语句,所以神照后不承受以前受到的伤害
      即假如你上次攻击承受了10000的伤害,你复活后依然是400多血
      神照功复活增加最大内力值一半加当前内力值一半的内力

      神照功不消耗体力,根基当前体力值把体力控制在25到75之间
      临界值是50,大于50减少体力、小于50增加体力
      神照功复活增加500点集气
      神照功复活后内伤减半、中毒减半、流血不受神照影响
      神照功一次复活几率100%,2次复活几率为伪随机10%

接着分析罗汉伏魔功(紫霞神功同理)
同样的先看代码:


  1. for i=1,10 do
  2. if JY.Person[pid]["武功"..i]==96 and JY.Person[pid]["生命"]>0 then
  3. local LK
  4. LK=math.modf((JY.Person[pid]["生命最大值"]-JY.Person[pid]["生命"])*JY.Person[pid]["武功等级"..i]/100*0.015)
  5. JY.Person[pid]["生命"]=JY.Person[pid]["生命"]+LK
  6. DrawStrBox(-1,-1,CC.WARS9..LK,C_ORANGE,CC.DefaultFont)
  7. ShowScreen();
  8. lib.Delay(400);
  9. Cls();
  10. ShowScreen();
  11. break
  12. end
  13. end
复制代码

罗汉伏魔功回复生命为LK=取整【(生命最大值-当前生命)*武功等级/100*0.015】

假设当前生命为199,最大生命值为999
罗汉功回复的生命为:LK=(999-199)*(900)/100*0.015=108(10级罗汉)
                                   LK=(999-199)*(999)/100*0.015=119(罗汉到极)
可见罗汉功回复的生命与武功等级挂钩10级为13.5%武功到极为15%

结论:罗汉附魔功(紫霞神功)是练到极有提升的内功
      10级罗汉回复生命为损失生命的13.5%,罗汉到极为15%

------------------------------

由于一个个分析比较繁琐,所以例子就举这两个,其余的东西直接给结论:

易筋经每时序封穴减1
九阳真经每时序回内3到5
九阴真经每时序回血2
医生每时序50%几率恢复内伤1,100%几率恢复中毒1
流血每时序减生命:我方=内伤/15+(0~3)   敌方=1+内伤/51
狮子吼:内伤>70  40%几率每时序恢复内伤1  

             内伤>40  70%几率每时序恢复内伤1
             内伤<40  100%几率每时序恢复内伤1
            (纯阳回毒与狮子相同)
袁承志每次行动内伤全部恢复


评分

参与人数 1声望 +5 收起 理由
xiaoyaojx + 5 好帖奖励

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-6 16:31 | 显示全部楼层
10% 10个随机数不等于8

点评

那看来2次复活几率是10%了  发表于 2012-2-6 16:33
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-6 16:45 | 显示全部楼层
和我之前感觉的差不多,另外纯阳,紫霞好像也是等级越高恢复越多的。

点评

罗汉也是  发表于 2012-2-6 16:47
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-6 16:54 | 显示全部楼层
那到极看来也不错,血多了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-6 19:51 | 显示全部楼层
到底是怎样会承受10000的伤害

点评

不可能的  发表于 2012-2-7 15:57
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-6 23:44 | 显示全部楼层
资料加链接了。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-8 05:47 | 显示全部楼层
  1. lv=math.modf(JY.Person[eid]['武功等级'..i]/100)+1
复制代码
说下我的看法。武功等级最高999,modf括号框住的是999/100即9.99,而modf返回的第一个值是括号内的数的最大整数,即9,和武功等级900是一样的。然后加1,值为10。所以到不到极并不影响。

点评

说的是啊  发表于 2012-2-17 12:20
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-8 06:13 | 显示全部楼层
天罡很占便宜啊?

点评

目前看只有罗汉和紫霞练到极有效果,天罡貌似占了点便宜  发表于 2012-2-8 18:29
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-2-8 07:46 | 显示全部楼层
本帖最后由 点滴 于 2012-2-8 19:05 编辑

回复 btxdex 的帖子

多谢哈,没接触过LUA,搞工控的,跟结构化文本打交道~~

刚百度了下LUA函数库

“math.modf(x)                                  返回两个值, 依次为x的整数和小数部分”

如你所说,看来是我想当然了,神照练到级跟10级效果一样!

我编辑下~

多谢提醒,学习了......

另外问下,源码里很多时候用到GetS()函数,具体功用是什么意思?能简单解释下么?

这个貌似不是标准库函数?


点评

大家互相学习。刚接触的时候我也问过论坛水友wklee3,math.modf什么作用。。。  发表于 2012-2-8 08:22
多谢 我找了半天  发表于 2012-2-8 08:13
蓝大有讲:http://www.txdx.net/forum.php?mod=viewthread&tid=525594&highlight=gets。除此之外sets一般用来储存一些数据(可以存档读档有效),gets是获取数据。比如说刀15附加攻击力就是用sets存储的。  发表于 2012-2-8 07:54
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-8 10:12 | 显示全部楼层
除了狄云,,怎么才能练到极呢

点评

这概率。。。。。。。。sl的太苦逼,,,  发表于 2012-2-8 11:58
血刀老祖.....  发表于 2012-2-8 11:35
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-2-8 18:31 | 显示全部楼层
更新了其余的内功,应该全了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-8 18:42 | 显示全部楼层
不是说狮子吼时序回2点内伤的么?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-8 18:57 | 显示全部楼层
全武功评价部分已修改
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-8 19:49 | 显示全部楼层
天啊,狮子吼回内伤还分区间和概率的?还是袁承志牛啊。。。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-8 19:58 | 显示全部楼层
好帖留名好帖留名
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-9 04:03 | 显示全部楼层
支持数据帖!!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-11-18 22:52

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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