为了吾王2 DLL部分修改教程
看了王老菊玩这游戏,突然产生了兴趣,跟风玩了玩,边玩边改的,所以内容有限,有问题也别问我,因为我可能玩一阵子就不会有兴趣再玩了,也不可能会去深入研究的。并且修改方法并不是只有我这一种,每个人可能都会因为对代码理解不同有不同的修改方法。就以我之前修改的DLL为例,说下怎么改,方便各位版本更新后自己修改:1.属性上限
找到CharacterHelper这个类,在GetMaxStatValue方法里修改,比如:
public static int GetMaxStatValue(eCharacterStats pCharacterStat)
{
switch (pCharacterStat)
{
case eCharacterStats.STR:
return 255;
case eCharacterStats.VIT:
return 255;
case eCharacterStats.INT:
return 255;
case eCharacterStats.AWR:
return 255;
case eCharacterStats.TAL:
return 255;
case eCharacterStats.SPD:
return 255;
case eCharacterStats.LCK:
return 255;
case eCharacterStats.FOC:
return 9; //专注值,一般不改
}
return -1;
}
255这个就是上限值,按你喜欢的改
然后拉到最后,找到public const int MAX_CHARACTER_STAT = 255; 按需修改,
再找到ProgressionHelper这个类,同样有个public const int MAX_CHARACTER_STAT = 255; 修改为一致数字。
重点提下,MAX_CHARACTER_STAT直接修改是会报错的,正确的改法展开所在类的目录树,在这个字段上右键,选择编辑字段,可以看到常量那里是int32,后面的数字按需改,可以直接填入十进制,也可填入十六进制,比如255,或者0xFF
2.各种倍数,我用的方法比较简单粗暴,直接改数字,也可以分析公式在公式里改的。
在ProgressionHelper这个类里,各种GetXXXXXScaleValue方法,在把里面的数字改成想要的倍数就行了。
3.修改开局装配点数,我用的也是最简单粗暴的方式修改:
PartyManagementDirector找到_getLoadoutPoints这个方法,
把:int num = this._baseLoadOutPoints + CharacterHelper.GetStat(pEntity, eCharacterStats.LOP, false);
改成 int num = 想要的数字;
即可
如果出错,可以使用编辑IL指令,然后看序号,把序号为1,4,5,6行删掉,注意,第一行是序号是0,不要稀里糊涂的就直接删了,看好序号。然后在序号为2的行里把需要的数值填上去,默认不得大于127,想要大于127,可以把ldc.i4.s改成ldc.i4。
最后还有一点:改完保存时在保存窗口选择MD写入选项,勾选保持之前的MaxStack值,再保存,否则可能会报错。
另外很多人知道改特性,提供一个特别毁平衡的模板:
{
"TRAIT_TACTICIAN": {
"ConsumableType": "NONE",
"Value": 0,
"MinTier": 0,
"MaxTier": 0,
"Rarity": "COMMON",
"Material": "NONE",
"Hidden": true,
"Stacks": false,
"Ammo": 0,
"Equippable": {
"Slots": [],
"Stats": {
"STR": 255,
"SA":255,
"VIT": 255,
"INT": 255,
"SPD": 255,
"TAL": 255,
"LCK": 255,
"AWR": 255
},
"Passives": [
"SKILL_TACTICS",
"SKILL_EAGER",
"SKILL_SUPPORTRANGE",
"SKILL_EUREKA",
"SKILL_NAVIGATOR",
"STATUS_IMMUNITY_ALL"
],
"MaxCharges": 0
},
"Tags": []
},
这样就是一个全属性255,拥有全特性技能且免疫所有异常状态的神技战术家了。
大佬请问你用的是什么工具来修改dll的阿,我用dnspy好像改不了,编译报错。。。 1246291292 发表于 2024-1-15 03:45
大佬请问你用的是什么工具来修改dll的阿,我用dnspy好像改不了,编译报错。。。 ...
好吧只能编辑IL指令了。。。
能否在详细一点啊····我编辑完,就提示编辑错误,缺氧什么的都用此方法修改过,但就这个游戏会提示编辑错误····IL指令编辑也会报错 简单一点,dnspy打开,搜索,CharacterHelper这个类,展开这个类,找到GetStat,有三个,直接点最后一个跳进去,下拉到最后,c#下倒数第二行代码 num3=Math.min(num3, characterhelp.GetMaxstatvalue(pcharacterstat)); 对着min右键选择编辑AL指令,将215行的min改为max就是了,这样你的属性就是最大值95
页:
[1]