技能修改文档

首先打开IDA,打开诛仙libskill.so,等待完全打开,视电脑配置时间长短不同。
 等下方状态栏的地址不再滚动时即是打开完毕。(详见下方软件截图)
 
 然后在客户端configs.pck下的skillstr.txt里找到想修改的技能ID,比如灭魂狂飙1131。
 
 在IDA中搜索skill1131,点击函数窗口中的“函数名称”,使其按名称排列,把相同技能函数排到一起。
 其中几个函数名称显而易见:
 Cooldowntime:技能冷却(单位:毫秒)
 Coverage:目标限制
 Dpcost:元神消耗
 Mpcost:真气消耗
 Executetime:释放时间(单位:毫秒)Praydistance:自身攻击范围(浮点值)
 Radius:攻击范围??(浮点值)
 其他包括技能等级、伤害计算等等都在这一堆函数里,可以自行理解查找。
 双击上述函数名称,再按F5查看伪代码
 
 以真气消耗Mpcost为例,按公式计算:
 技能一级消耗为:(5*1*1+80*1+800)=885
 技能二级消耗为:(5*2*2+80*2+800)=980
 与游戏中数值相符。

图片[1]-技能修改文档-白嫖收集分享
图片[2]-技能修改文档-白嫖收集分享
图片[3]-技能修改文档-白嫖收集分享

再以攻击范围Radius为例(此为浮点值修改,偏难),
 return 120.0 即是修改后的攻击距离120米
 (详见该帖:http://www.mcncc.com/forum.php?mod=viewthread&tid=469705)。

图片[4]-技能修改文档-白嫖收集分享
图片[5]-技能修改文档-白嫖收集分享

找到该函数的地址,在十六进制编辑器中修改即可,简易修改教程见下方

再以重击为例:

图片[6]-技能修改文档-白嫖收集分享

①释放时间1秒

图片[7]-技能修改文档-白嫖收集分享

②消耗8真气

图片[8]-技能修改文档-白嫖收集分享

一、我们先做个简单的修改,尝试把重击218的技能冷却去掉:
 ①在左侧函数窗口双击“GNET::Skill218Stub::GetCooldowntime(GNET::Skill *)”,
 再按F5查看其伪代码如上,在2000上右击查看其16进制为7D0,07 D0   3E8   E8 03
 ②在右侧窗口切换到“十六进制视图”,再在左侧函数窗口双击“GetCooldowntime”,
 发现附近有D007,即为需要改的地址,记下其左侧的0108B890(应该是偏移吧?没学过程序)
 ③在Winhex里“导航”处搜索此偏移量,把07D0改为0000。
 ④保存libskill.so文件后替换回服务端,启动服务器,发现重击已经是无冷却释放。
 
 二、我们再做个比较复杂的修改,尝试把绝圣弃智600的气血和真气伤害加成翻倍:
 先来看一下原版,定义了数个变量,最后的附加攻击力值为(真气+气血)*15%*技能等级,
 比如一级为15%,三级为45%,和游戏内描述相符。

图片[9]-技能修改文档-白嫖收集分享

①在右侧窗口切换到“IDA View”,再在左侧函数窗口双击“GNET::Skill600Stub::State2::Calculate(GNET::Skill *)”,
 发现21463A0的注释(?)中是0.15,双击21463A0,
 发现“.rodata:021463A0 dbl_21463A0     dq 0.15”,
 其中021463A0即是偏移量,同上在Winhex里查找。

图片[10]-技能修改文档-白嫖收集分享

②在网上找个浮点十六进制转换工具,发现0.15的对应十六进制为3FC3333333333333,与winhex中的相符,进行修改,比如改为0.3,十六进制对应为3FD3333333333333。

图片[11]-技能修改文档-白嫖收集分享
图片[12]-技能修改文档-白嫖收集分享
    © 版权声明
    THE END
    喜欢就支持一下吧
    点赞12赞赏 分享
    评论 共4条
    头像
    欢迎您留下宝贵的见解!
    提交
    头像

    昵称

    取消
    昵称表情代码图片