3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 4059|回复: 32
打印 上一主题 下一主题

[修改] 关于修改dll实现共享经验和秘籍不减少的方式分享

[复制链接]

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
跳转到指定楼层
主题
发表于 2024-2-7 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 YSLP 于 2024-2-16 11:05 编辑

共享经验
该方法自己暂时没发现什么bug,但我只玩到第一章不确定后续稳定性。
方法如下:
UIBattleFinish中的show函数将队友的id全部添加到ids中:
public override void Show()
{
    base.Show();
    this.ids.Clear();
    IEnumerator<string> enumerator = this.PartyCreationSystem.Player.Members.GetEnumerator();
    DataComponentSystem<NpcComponent, NpcItem> system = Game.World.GetSystem<NpcDataSystem>();
    while (enumerator.MoveNext())
    {
        string id = enumerator.Current;
        CharacterPropertyInfo characterPropertyInfo = new CharacterPropertyInfo(system[id]);
        characterPropertyInfo.Calculate(0);
        this.ids.Add(new ValueTuple<string, int>(id, characterPropertyInfo.GetLevel()));
    }
    int num = Mathf.Min(this.pageCount, this.ids.Count);
    for (int i = 0; i < num; i++)
    {
        WgBattleFinishPortrait wgBattleFinishPortrait = UnityEngine.Object.Instantiate<WgBattleFinishPortrait>(this.portraitPrefab, this.portraitViewport);
        wgBattleFinishPortrait.Initialize(this.ids.Item1);
wgBattleFinishPortrait.gameObject.SetActive(true);
    }
    this.rolePage++;
}
原版代码如下:public override void Show()
{
    base.Show();
    this.ids.Clear();
    foreach (IEntity entity in this.fsm.Controller.Units.Union(this.fsm.Controller.deadUnits))
    {
        string id = entity.GetComponent<BattleUnit>().Id;
        if (this.PartyCreationSystem.Player.Members.Contains(id))
        {
            BattlePropertyComponent component = entity.GetComponent<BattlePropertyComponent>();
            this.ids.Add(new ValueTuple<string, int>(id, component.Level));
        }
    }
    DataComponentSystem<NpcComponent, NpcItem> system = Game.World.GetSystem<NpcDataSystem>();
    string text = this.PartyCreationSystem.Player.Members[0];
    CharacterPropertyInfo characterPropertyInfo = new CharacterPropertyInfo(system[text]);
    characterPropertyInfo.Calculate(0);
    if (this.ids.Count == 0)
    {
        this.ids.Add(new ValueTuple<string, int>(text, characterPropertyInfo.GetLevel()));
    }
    int num = Mathf.Min(this.pageCount, this.ids.Count);
    for (int i = 0; i < num; i++)
    {
        WgBattleFinishPortrait wgBattleFinishPortrait = UnityEngine.Object.Instantiate<WgBattleFinishPortrait>(this.portraitPrefab, this.portraitViewport);
        wgBattleFinishPortrait.Initialize(this.ids.Item1);
        wgBattleFinishPortrait.gameObject.SetActive(true);
    }
    this.rolePage++;
}
思路是战斗结束添加经验时,会调用ids中的包含的id,通过将所有队友id添加进ids中实现战斗结束后经验共享。=====================================================================
秘籍不减少
参考Heluo.Data.PropsCategory修改Heluo.UI.WGWarehouse的RemoveItem(InventoryData data, int count)
思路是判断为物品类别为秘籍时直接结束函数不进行后续减少数量的操作
我自己实现跳过的代码如下,由于我自己只玩到了第一章暂时不确定后续是否有问题。
PropsCategory[] booktypes = {
    PropsCategory.Book,
    PropsCategory.HeartFormula,
    PropsCategory.FightBook,
    PropsCategory.SwordBook,
    PropsCategory.BladeBook,
    PropsCategory.DaggerBook,
    PropsCategory.DartsBook,
    PropsCategory.NormalBook};
int id = Array.IndexOf(booktypes, data.Item.SmallCategory);
if (id != -1)
{
    return;
}


评分

1

查看全部评分

回复

使用道具 举报

8

主题

1394

帖子

1316

积分

游戏狂人

Rank: 6Rank: 6

贡献度
16
金元
12518
积分
1316
精华
0
注册时间
2008-10-27
舒服的沙发
发表于 2024-2-7 14:00 | 只看该作者
66666666666
回复 支持 反对

使用道具 举报

0

主题

192

帖子

247

积分

中级玩家

Rank: 3Rank: 3

贡献度
3
金元
2351
积分
247
精华
0
注册时间
2009-4-21
硬硬的板凳
发表于 2024-2-7 15:58 | 只看该作者
本帖最后由 lineage1119 于 2024-2-7 15:59 编辑

请问是否知道战斗人数上限是在哪个代号底下
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
冰凉的地板
 楼主| 发表于 2024-2-7 16:21 | 只看该作者
lineage1119 发表于 2024-2-7 15:58
请问是否知道战斗人数上限是在哪个代号底下

Heluo.Battle.BattleAreaConfig的StartCharacterCount

回复 支持 反对

使用道具 举报

0

主题

192

帖子

247

积分

中级玩家

Rank: 3Rank: 3

贡献度
3
金元
2351
积分
247
精华
0
注册时间
2009-4-21
5#
发表于 2024-2-7 17:54 | 只看该作者
YSLP 发表于 2024-2-7 16:21
Heluo.Battle.BattleAreaConfig的StartCharacterCount

感謝分享
回复 支持 反对

使用道具 举报

15

主题

2063

帖子

2065

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
56
金元
18407
积分
2065
精华
0
注册时间
2008-3-3
6#
发表于 2024-2-7 21:13 | 只看该作者
大佬~能做个只共享经验的吗?
回复 支持 反对

使用道具 举报

268

主题

3647

帖子

9242

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
296
金元
80579
积分
9242
精华
0
注册时间
2011-4-25

G胖の微笑

7#
发表于 2024-2-7 21:42 | 只看该作者
用什么软件才能打开 看到上面的内容
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
8#
 楼主| 发表于 2024-2-7 21:55 | 只看该作者
wh42945291 发表于 2024-2-7 21:42
用什么软件才能打开 看到上面的内容

网上搜dnspy
回复 支持 反对

使用道具 举报

0

主题

754

帖子

889

积分

超级玩家

Rank: 5Rank: 5

贡献度
0
金元
8891
积分
889
精华
0
注册时间
2012-1-20
9#
发表于 2024-2-8 09:02 来自手机 | 只看该作者
求教下在哪里改招数上限,找了半天没找到
回复 支持 反对

使用道具 举报

0

主题

192

帖子

247

积分

中级玩家

Rank: 3Rank: 3

贡献度
3
金元
2351
积分
247
精华
0
注册时间
2009-4-21
10#
发表于 2024-2-8 10:09 | 只看该作者
本帖最后由 lineage1119 于 2024-2-8 10:40 编辑

非常讚
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
11#
 楼主| 发表于 2024-2-8 14:58 | 只看该作者
ld133021 发表于 2024-2-8 09:02
求教下在哪里改招数上限,找了半天没找到

你指的是什么上限?装备的招式上限还是可以学习的招式上限。装备上限就6个哪怕改高了,UI显示也还是6个。学习上限我暂时没去研究过不知道哪里改。
回复 支持 反对

使用道具 举报

0

主题

271

帖子

380

积分

高级玩家

Rank: 4

贡献度
0
金元
3801
积分
380
精华
0
注册时间
2012-6-30
12#
发表于 2024-2-8 15:18 | 只看该作者
[DisplayName("登場隊友數量")]
public int StartCharacterCount { get; set; } = 8;
请问下为什么改了默认值还是没用,他有读取json表吧,在用的地方改?
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
13#
 楼主| 发表于 2024-2-8 15:43 | 只看该作者
冥王的哀伤 发表于 2024-2-8 15:18
[DisplayName("登場隊友數量")]
public int StartCharacterCount { get; set; } = 8;
请问下为什么改了默认 ...

你要改get方法的返回值,你这样是没用的。
回复 支持 反对

使用道具 举报

0

主题

703

帖子

1001

积分

游戏狂人

Rank: 6Rank: 6

贡献度
0
金元
10006
积分
1001
精华
0
注册时间
2014-9-12
14#
发表于 2024-2-8 21:09 | 只看该作者
招式栏上限是在dll里面改吗?我现在通过改属性,最多6个,剩下的是不是只能在DLL里面改?
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
15#
 楼主| 发表于 2024-2-9 10:35 | 只看该作者
616384756 发表于 2024-2-8 21:09
招式栏上限是在dll里面改吗?我现在通过改属性,最多6个,剩下的是不是只能在DLL里面改? ...

都可以,但主要问题是它UI绘制最多只会出现6个招式栏,改了上限也没有用,如何修改我也没有头绪。得等大佬研究了。
回复 支持 反对

使用道具 举报

0

主题

703

帖子

1001

积分

游戏狂人

Rank: 6Rank: 6

贡献度
0
金元
10006
积分
1001
精华
0
注册时间
2014-9-12
16#
发表于 2024-2-9 11:38 | 只看该作者
YSLP 发表于 2024-2-9 10:35
都可以,但主要问题是它UI绘制最多只会出现6个招式栏,改了上限也没有用,如何修改我也没有头绪。得等大 ...

感情是UI的问题
回复 支持 反对

使用道具 举报

2

主题

70

帖子

255

积分

高级玩家

Rank: 4

贡献度
19
金元
1787
积分
255
精华
0
注册时间
2014-6-12
17#
发表于 2024-2-11 06:53 | 只看该作者
我刚试过,秘籍使用的确不会消失,但秘籍也卖不掉了,自己可以无限收钱,就是不会消失。
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
18#
 楼主| 发表于 2024-2-11 19:19 | 只看该作者
zxrz2014 发表于 2024-2-11 06:53
我刚试过,秘籍使用的确不会消失,但秘籍也卖不掉了,自己可以无限收钱,就是不会消失。 ...

是的,因为是在移除物品函数里进行修改的,或者考虑参考论坛插件里的代码,在使用秘籍获取招式心法的函数中进行修改。
回复 支持 反对

使用道具 举报

17

主题

1270

帖子

1358

积分

游戏狂人

Rank: 6Rank: 6

贡献度
34
金元
12224
积分
1358
精华
0
注册时间
2004-1-3
QQ
19#
发表于 2024-2-16 09:14 | 只看该作者

大佬想请问下,我复制你的代码进去后就会出现错误提示,对比了下发现这个多了个【i】,看了下源文件也有这个,是我的版本不对吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
20#
 楼主| 发表于 2024-2-16 11:03 | 只看该作者
本帖最后由 YSLP 于 2024-2-16 11:05 编辑
luwanjing 发表于 2024-2-16 09:14
大佬想请问下,我复制你的代码进去后就会出现错误提示,对比了下发现这个多了个【i】,看了下源文件也有这 ...

就是有[ i ] 的,可能复制的时候出了问题
回复 支持 反对

使用道具 举报

17

主题

1270

帖子

1358

积分

游戏狂人

Rank: 6Rank: 6

贡献度
34
金元
12224
积分
1358
精华
0
注册时间
2004-1-3
QQ
21#
发表于 2024-2-16 21:01 | 只看该作者
YSLP 发表于 2024-2-16 11:03
就是有[ i ] 的,可能复制的时候出了问题

搞定了,感谢大佬。
只想找个经验共享的MOD,结果找的各个MOD都附带了一堆功能,只能自己想办法了。还好看到这个帖子了。
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
22#
 楼主| 发表于 2024-2-17 14:49 | 只看该作者
zxrz2014 发表于 2024-2-11 06:53
我刚试过,秘籍使用的确不会消失,但秘籍也卖不掉了,自己可以无限收钱,就是不会消失。 ...

如果要能卖掉可以考虑修改MovableItemUI的UseBookConfirm()和UseHeartFormulaConfirm()两个函数里面有一行调用了removeitem函数,可以选择将第二参数设置为0或者直接删去该行,都可以实现心法秘笈不减少。

回复 支持 反对

使用道具 举报

268

主题

3647

帖子

9242

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
296
金元
80579
积分
9242
精华
0
注册时间
2011-4-25

G胖の微笑

23#
发表于 2024-2-23 14:34 | 只看该作者
我用这个 软件dnSpy   打开了GuLong.dll   想修改 制作 增加上场人数和共享经验  但是一直没有搞懂怎么修改。  论坛上发的 都已经失效了。
回复 支持 反对

使用道具 举报

0

主题

241

帖子

257

积分

高级玩家

Rank: 4

贡献度
0
金元
2574
积分
257
精华
0
注册时间
2009-6-21
24#
发表于 2024-2-24 09:37 | 只看该作者
感谢分享
感谢分享
感谢分享
感谢分享
感谢分享
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
25#
 楼主| 发表于 2024-2-24 19:06 | 只看该作者
wh42945291 发表于 2024-2-23 14:34
我用这个 软件dnSpy   打开了GuLong.dll   想修改 制作 增加上场人数和共享经验  但是一直没有搞懂怎么修改 ...

修改因为需要重新编译,你需要根据错误提示将其他需要的dll文件都给打开,那些dll跟gulong.dll在同一个文件夹里。
回复 支持 反对

使用道具 举报

118

主题

1626

帖子

1539

积分

游戏狂人

Rank: 6Rank: 6

贡献度
52
金元
13313
积分
1539
精华
0
注册时间
2009-8-3
26#
发表于 2024-3-2 10:04 | 只看该作者
大佬我只想改出场人数,可以给答案抄吗?
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
27#
 楼主| 发表于 2024-3-6 12:04 | 只看该作者
qwerdxcvb 发表于 2024-3-2 10:04
大佬我只想改出场人数,可以给答案抄吗?

Heluo.Battle.BattleAreaConfig的StartCharacterCount

回复 支持 反对

使用道具 举报

0

主题

179

帖子

285

积分

高级玩家

Rank: 4

贡献度
0
金元
2851
积分
285
精华
0
注册时间
2023-4-14
28#
发表于 2024-4-8 23:18 | 只看该作者
大侠,这修改的是那个文件?我想要一个武功心法不减的
回复 支持 反对

使用道具 举报

9

主题

232

帖子

355

积分

高级玩家

Rank: 4

贡献度
6
金元
3307
积分
355
精华
0
注册时间
2012-5-27
29#
发表于 2024-6-1 11:50 | 只看该作者
原谅我小白没看懂,UIBattleFinish是什么?是个软件还是游戏文件夹里的一个文件?
回复 支持 反对

使用道具 举报

2

主题

130

帖子

328

积分

高级玩家

Rank: 4

贡献度
6
金元
3042
积分
328
精华
0
注册时间
2013-9-13
30#
 楼主| 发表于 2024-6-2 14:52 | 只看该作者
溪叮咚 发表于 2024-6-1 11:50
原谅我小白没看懂,UIBattleFinish是什么?是个软件还是游戏文件夹里的一个文件? ...

这是修改游戏的dll文件,用dnspy打开对应文件后搜索相关函数修改里面的代码。具体可以参考河洛群侠传那边的帖子,或者你用搜索引擎搜河洛群侠传修改dll应该也有相关教程能找到。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-4-9 11:13 , Processed in 0.138710 second(s), 16 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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