注册 | 登录

游侠NETSHOW论坛





查看: 2921|回复: 0

[原创] 龙骑士 参数调整mod [复制链接]

帖子
6
精华
0
积分
3
金钱
168
荣誉
0
人气
0
评议
0
发表于 2017-4-5 12:49:27 |显示全部楼层
本帖最后由 金鱼师父 于 2017-4-6 09:27 编辑

目前实现的内容
1 修改技能(包括龙技能)参数,比如技能冷却,伤害,增益等等
2 修改生命,伤害,远程,魔法防御计算公式的参数,比如可以让你加一点元气就提高20点hp
3 部分修改物品获得难度,比如提高孔雀石,技能书的获取概率
4 修改任务获得的经验和金钱,因为可以改技能参数,所以改学识的经验收益就够了,该功能可让你不缺钱
5 修改怪物获得经验,同样因为可以改学识技能所以不太需要


技术要点 know how:
1 使用quickbms可以解包,我的解包脚本:

GET DUMMY long
GET DUMMY long
get VER long
get ALIGN byte
get ZIP byte
if VER > 0x0000ffff
    endian big
    set ZIP long 1
endif
get BASE_OFF long
get NAME_SIZE long
savepos OFFSET
log MEMORY_FILE OFFSET NAME_SIZE
math OFFSET += NAME_SIZE
goto OFFSET
get FILES long
for i = 0 < FILES
    get OFFSET long
    if ZIP != 0
        get ZSIZE long
    endif
    get SIZE long
    math OFFSET += BASE_OFF
    get NAME string MEMORY_FILE
    if ZIP == 0
        log NAME OFFSET SIZE
    else
        clog NAME OFFSET ZSIZE SIZE
    endif
next i


2 使用神界2的 dv2_pak工具 用-a指令可以打包,虽然和原版打包不同且略大,但是生成的包文件可读

以上两点总结来自网络,主要是3DM和一些国外论坛
3 我修改的文件:Episodes下 Episode_1_Extended Episode_2(各自对应龙裔和复仇之炎)各两份:
rpgstats_formulas.xml rpgstats_itemtypegroups.xml rpgstats_questprototypes.xml rpgstats_skillprototypes.xml
这两份全都在MainDataStartup.dv2下,我目前只改了MainDataStartup.dv2和Patch.dv2两个文件,就达成了文章开头的内容

4 解包后生成的xml文件,就是带有天杀的Gamebryo File Format, Version 20.3.0.9文件头的二进制文件,我没有找到妥善的编辑方法,但我总结出了不妥善的编辑方法:
工具:notepad++, hedit
基本规则:保持一个文本区总长度不变
这个文本区大大小,看不同文件而定,rpgstats_skillprototypes是一个技能一个区域,其他文件基本是开头连续文本区的一个区域。

文本区的结构,是多个以\0字符串分割的字符串(数字也用字符串表示)集合,结构扁平,但字符串数量确定,位置确定,你可以改,但我不懂如何增减,改完后,整个文件长度要保持不变,否则进游戏就崩溃。
举例:rpgstats_formulas.xml 以下是修改后的字符串区域
Maximum_Ranged_Slots 12 Maximum_Melee_Slots 10 MagicResist_MaxRes_Monster 66 MagicResist_MaxRes_Player 85 MagicResist_IntelligenceModMax_Monster 100 MagicResist_IntelligenceModMax_Player 99 MagicResist_ItemModMax_Monster 100 MagicResist_ItemModMax_Player 100 MagicResist_IntelligenceMod_Monster 40 MagicResist_IntelligenceMod_Player 100 MagicResist_ItemMod_Monster 100 MagicResist_ItemMod_Player 100 MagicDamage_LvlDifferenceBoost_Monster 0 MagicDamage_LvlDifferenceBoost_Player 0 MagicDamage_IntelligenceMod_Monster 0.5 MagicDamage_IntelligenceMod_Player 2 RangedResist_MaxRes_Monster 66 RangedResist_MaxRes_Player 85 RangedResist_DexterityModMax_Monster 100 RangedResist_DexterityModMax_Player 99 RangedResist_ItemModMax_Monster 100 RangedResist_ItemModMax_Player 100 RangedResist_DexterityMod_Monster 40 RangedResist_DexterityMod_Player 100 RangedResist_ItemMod_Monster 100 RangedResist_ItemMod_Player 100 RangedDamage_LvlDifferenceBoost_Monster 0 RangedDamage_LvlDifferenceBoost_Player 0 RangedDamage_DexterityMod_Monster 0.5 RangedDamage_DexterityMod_Player 2 MeleeResist_MaxRes_Monster 66 MeleeResist_MaxRes_Player 85 MeleeResist_StrengthModMax_Monster 100 MeleeResist_StrengthModMax_Player 99 MeleeResist_ItemModMax_Monster 100 MeleeResist_ItemModMax_Player 100 MeleeResist_StrengthMod_Monster 40 MeleeResist_StrengthMod_Player 100 MeleeResist_ItemMod_Monster 100 MeleeResist_ItemMod_Player 100 MeleeDamage_LvlDifferenceBoost_Monster 0 MeleeDamage_LvlDifferenceBoost_Player 0 MeleeDamage_StrengthMod_Monster 0.5 MeleeDamage_StrengthMod_Player 2 End_FatigueGain_Monster 4 End_FatigueGain_Player 15 End_LvlGain_Monster 1 End_LvlGain_Player 10 End_Base_Monster 20 End_Base_Player 50 HP_VitalityGain_Monster 4 HP_VitalityGain_Player 15 HP_LvlGain_Monster 4 HP_LvlGain_Player 10 HP_Base_Monster 4 HP_Base_Player 0050         

注意这些字符串之间的空格是\0,notepad++显示为NUL, 因为论坛不能显示变成了空格,windows自带notepad的不能正确存储,要用可以显示和存储\0的编辑器。
保持文本区不变的基本思路是,不要改长,短了在文本区结尾处加0(我用hedit加的),或者在数字前边加0,推荐后者,但有的配置文件没有数字所以只好加0

没法上传附件,以上边的rpgstats_formulas为例:比如原本的智力对魔法伤害最大增益(就是智力达到100后的增益)是:MagicDamage_IntelligenceMod_Player 0.5 我们把它改成MagicDamage_IntelligenceMod_Player 2 因为2比0.5短2个字符,我最后一个参数是 HP_Base_Player 0050,0050前边的两个0就是填充长度用的

5 有的文件会被patch.dv2下的同名文件覆盖,这可能导致你修改MainDataStartup失效,我的做法是解包patch.dv2,将同名文件剪切出来覆盖MainDataStartup目录下的同名文件,然后重新生成patch,以后只修改MainDataStartup就可以了。这么做是因为patch包太大所以打包慢,MainDataStartup很小,有利于快速迭代调错。

6 不是什么文件改了都有效,文件里也不是什么数字改了都有效,rpgstats_formulas里的MeleeResist_MaxRes_Player就无效(近战减伤上限),但是魔法和远程修改有用。
7 我玩的是3DM汉化版,他们的做法似乎是靠字符串替换来进行汉化,这会导致你修改任务或技能的描述文本后原本汉化的地方变回你修改的内容(英语),此条供想用我的办法做汉化的人参考。
原理就这些,具体什么功能怎么改大家可以自己摸索出,如果想不出就跟帖问吧

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2024-3-28 22:57 , Processed in 0.272578 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到