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

注册 登录

QQ登录

只需一步,快速开始

查看: 1957|回复: 15
打印 上一主题 下一主题

[讨论] 最近想制作这游戏的等级上限mod,特开此贴与水友们讨论相关问题(2023年3月2日更新)

[复制链接]

42

主题

2032

帖子

2万

积分

3DM Mod 原创组

Rank: 12Rank: 12Rank: 12

贡献度
977
金元
184151
积分
22383
精华
6
注册时间
2011-12-23

3DM MOD站(白银)

跳转到指定楼层
主题
发表于 2023-2-23 17:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liyun_1981 于 2023-3-2 16:44 编辑

如题,这游戏是《咒语力量》系列的新作肯定要支持一下,我今天刚在论坛里下了最新学习版,体验了下感觉很不错,故打算制作下此游戏的等级上限mod。

开此贴的主要目的是想跟水友们讨论下等级上限相关问题,以及向已通关的水友收集下等级上限相关信息。

目前我有两个相关问题:

1、这游戏的角色最高等级是多少?
2、升级时技能点水友们觉得改为多少合适?

MOD制作进度通报:
至今已经把这游戏的资源获得数、行动点数、移动点数、战利品获得率、角色升级时能重置可选技能、角色升级时能显示更多的可选技能,以及三系同修都搞好了,唯独修改等级上限有点难搞,有懂修改的水友可以回帖一起分享讨论下。


关于等级上限修改我目前已摸索出来的信息及思路:
1、修改等级验证范围,OwnedByGravity.Game.Logic.LootTables.ALevelUpEntry类的ValidForLevelRange字段,将public Vector2 ValidForLevelRange = new Vector2(1f, 15f);改为public Vector2 ValidForLevelRange = new Vector2(0f, 30f);
2、修改等级对象列表,OwnedByGravity.Game.Logic.Units.UnitLevel类的构造方法
public UnitLevel(
      ContentReference<UnitProgressionDefinition> reference,
      IContentManager contentManager),已知游戏中是通过读取Asset资源文件数据后将反序列化的对象集合List<UnitProgressionDefinition.UnitLevel>赋值给UnitLevel类的Levels字段;我的思路是等程序赋值完Levels后,直接通过Levels.add方法添加15个等级对象进去,我在构造方法最后添加的代码如下:
      List<UnitProgressionDefinition.UnitLevel> levels = this.Levels;
      int index = levels.Count - 1;
      UnitProgressionDefinition.UnitLevel unitLevel1 = levels[index];
      int from = unitLevel1.From;
      XPLevelDefinition xpLevelDefinition = unitLevel1.XPLevelDefinition;
      for (; index < 29; ++index)
      {
        UnitProgressionDefinition.UnitLevel unitLevel2 = new UnitProgressionDefinition.UnitLevel();
        unitLevel2.XPLevelDefinition = xpLevelDefinition;
        from += 1000;
        unitLevel2.From = from;
        this.Levels.Add(unitLevel2);
      }
这段代码的意思是:等程序自动把预定义好的15个等级对象添加到Levels集合后,这段代码负责把16~30级的等级对象再添加到Levels集合中去;这段代码编译能正确通过,可进游戏并读取游戏存档时,总是卡在加载界面不能加载完成,程序也没有崩溃报错,我估计很可能是上面那段代码中标红的那一句代码的问题,那行代码是new出来的UnitProgressionDefinition.UnitLevel类对象,而程序原始业务逻辑中是读取资源文件后反序列化得到的对象,其中的字段数据是不同的,可能导致别的方法中读取该对象数据时出逻辑问题,这个比较蛋痛。

2023年3月1日更新:
今天重写了等级上限修改的代码,已经能正确读档进游戏了,但升级还是有点问题,貌似只能升到16级,我稍后会把mod发出来,欢迎水友们一起测试和讨论。
目前等级上限修改的代码逻辑主要是修改UnitLevel类的构造方法,如下:
    public UnitLevel(
      ContentReference<UnitProgressionDefinition> reference,
      IContentManager contentManager)
    {
      if (!reference.IsSet<UnitProgressionDefinition>())
        return;
      this.Progression = contentManager.LoadAssetAsContent<UnitProgressionDefinition>(reference, "T:\\JenkinsAgent\\workspace\\SF_SF_Steam_trunk\\Unity\\SF\\Assets\\OwnedByGravity\\Game\\Logic\\Units\\UnitLevel.cs", 27);
      if (!this.Progression.IsSet<UnitProgressionDefinition>())
        return;
      List<UnitProgressionDefinition.UnitLevel> source = new List<UnitProgressionDefinition.UnitLevel>();
      foreach (UnitProgressionDefinition.UnitLevel level in this.Progression.Asset.Levels)
        source.Add(level);
      this.Levels = source.OrderBy<UnitProgressionDefinition.UnitLevel, int>((Func<UnitProgressionDefinition.UnitLevel, int>) (l => l.From)).ToList<UnitProgressionDefinition.UnitLevel>();
      if (this.Levels.Count == 0)
        return;
      List<UnitProgressionDefinition.UnitLevel> levels = this.Levels;
      int from = levels[levels.Count - 1].From;
      this.Progression = contentManager.LoadAssetAsContent<UnitProgressionDefinition>(reference, "T:\\JenkinsAgent\\workspace\\SF_SF_Steam_trunk\\Unity\\SF\\Assets\\OwnedByGravity\\Game\\Logic\\Units\\UnitLevel.cs", 27);
      if (!this.Progression.IsSet<UnitProgressionDefinition>())
        return;
      source.Clear();
      foreach (UnitProgressionDefinition.UnitLevel level in this.Progression.Asset.Levels)
        source.Add(level);
      foreach (UnitProgressionDefinition.UnitLevel unitLevel in source.OrderBy<UnitProgressionDefinition.UnitLevel, int>((Func<UnitProgressionDefinition.UnitLevel, int>) (l => l.From)).ToList<UnitProgressionDefinition.UnitLevel>())
      {
        from += 1000;
        unitLevel.From = from;
        this.Levels.Add(unitLevel);
      }
    }
此方法的蓝色部分是游戏原始业务逻辑,红色部分是我添加的逻辑,意思是等游戏读去资源文件并反序列化得到1~15级的等级对象后,我再读取一遍得到新的15个等级对象,再把这15个对象的经验值分别设置为16~30级,即16级比15级所需经验值多1000,此后每一级所需经验值比前一级多1000,最后再把这15个对象添加到Levels集合中。


2023年3月2日更新:
今天重写了等级上限修改的代码,等级上限30级已经没问题了,只是目前强化技能在16级出不来,还要研究下,尽请期待!
其实我第一次实现的逻辑是对的,只是XPLevelDefinition xpLevelDefinition = unitLevel1.XPLevelDefinition这行代码写错了,
把它改为XPLevelDefinition xpLevelDefinition = unitLevel1.Level就正确了,手写真他丫容易出错,哈哈。。。

回复

使用道具 举报

4

主题

549

帖子

666

积分

超级玩家

Rank: 5Rank: 5

贡献度
2
金元
6579
积分
666
精华
0
注册时间
2017-6-16
舒服的沙发
发表于 2023-2-23 19:09 | 只看该作者
30级足够了,再高没技能了
回复 支持 反对

使用道具 举报

17

主题

205

帖子

358

积分

高级玩家

Rank: 4

贡献度
15
金元
2875
积分
358
精华
1
注册时间
2012-6-28
硬硬的板凳
发表于 2023-2-23 23:38 | 只看该作者
守护召唤已经无敌 等级都是浮云 出升级能选择所有技能更好玩

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

14

主题

1058

帖子

1110

积分

游戏狂人

Rank: 6Rank: 6

贡献度
4
金元
10943
积分
1110
精华
0
注册时间
2009-5-11
冰凉的地板
发表于 2023-2-24 06:32 | 只看该作者
本帖最后由 dlsunny 于 2023-2-24 06:36 编辑

首先支持并感谢大佬的制作MOD意向!

所有英雄以及单位的等级15级最高,召唤物无法升级.技能等级3级最高。

期待楼主大佬能做个:
1.人物等级30级左右。技能等级也相应提高
2.可重复选择升级项目(论坛里有个,希望能包含进去),多几个升级选择页面。
3.召唤物也可以升级
4.所有升级所选技能可以适用于任何单位(比如骑兵的冲锋,其他类单位也可以升级)
5.论坛有个三系同修也希望能包含进去
6.所有魔法可学...
7.房间的拓展槽位增加

回复 支持 反对

使用道具 举报

42

主题

2032

帖子

2万

积分

3DM Mod 原创组

Rank: 12Rank: 12Rank: 12

贡献度
977
金元
184151
积分
22383
精华
6
注册时间
2011-12-23

3DM MOD站(白银)

5#
 楼主| 发表于 2023-2-24 14:41 | 只看该作者
l4062639 发表于 2023-2-23 23:38
守护召唤已经无敌 等级都是浮云 出升级能选择所有技能更好玩

我也是这样想的
回复 支持 反对

使用道具 举报

42

主题

2032

帖子

2万

积分

3DM Mod 原创组

Rank: 12Rank: 12Rank: 12

贡献度
977
金元
184151
积分
22383
精华
6
注册时间
2011-12-23

3DM MOD站(白银)

6#
 楼主| 发表于 2023-2-24 14:42 | 只看该作者
dlsunny 发表于 2023-2-24 06:32
首先支持并感谢大佬的制作MOD意向!

所有英雄以及单位的等级15级最高,召唤物无法升级.技能等级3级最高。

很好的建议!
回复 支持 反对

使用道具 举报

14

主题

1058

帖子

1110

积分

游戏狂人

Rank: 6Rank: 6

贡献度
4
金元
10943
积分
1110
精华
0
注册时间
2009-5-11
7#
发表于 2023-2-25 01:00 | 只看该作者

感谢大佬能采纳上面的建议,之前用过您的永恒之柱和正义之怒的补丁,大大丰富了游戏玩法的diy与拓展性,每天都沉浸在您的mod里不能自拔~大佬的MOD很高产,希望您能注意休息,累了 就喝杯咖啡小歇一下。所以说,都过了一天了。。啥时候更?生产队的驴都不敢这么歇
回复 支持 反对

使用道具 举报

10

主题

346

帖子

582

积分

高级玩家

Rank: 4

贡献度
25
金元
4816
积分
582
精华
0
注册时间
2016-5-14
8#
发表于 2023-2-25 08:33 | 只看该作者
你可以加个QQ群130320937,我刚在群里把MOD更新到游戏新版本了。
回复 支持 反对

使用道具 举报

3

主题

89

帖子

130

积分

中级玩家

Rank: 3Rank: 3

贡献度
6
金元
1055
积分
130
精华
0
注册时间
2018-4-6
9#
发表于 2023-2-28 14:42 | 只看该作者
战利品获得率是怎么修改的
回复 支持 反对

使用道具 举报

10

主题

346

帖子

582

积分

高级玩家

Rank: 4

贡献度
25
金元
4816
积分
582
精华
0
注册时间
2016-5-14
10#
发表于 2023-3-1 07:52 | 只看该作者
你还是加个群吧,群号是130320937

虽然你现在遇到的问题我不懂,但是起码你说的三系同修啊升级可选技能啊什么的都是已经搞定的,你本可以不用花这心思……

至于等级上限我个人是采取循环升级的方式(15级以后会变成1级)
回复 支持 反对

使用道具 举报

42

主题

2032

帖子

2万

积分

3DM Mod 原创组

Rank: 12Rank: 12Rank: 12

贡献度
977
金元
184151
积分
22383
精华
6
注册时间
2011-12-23

3DM MOD站(白银)

11#
 楼主| 发表于 2023-3-1 11:50 | 只看该作者
wuxiangjinxing 发表于 2023-3-1 07:52
你还是加个群吧,群号是130320937

虽然你现在遇到的问题我不懂,但是起码你说的三系同修啊升级可选技能啊 ...

这位水友,加群答案是啥,俺加不上呀!
回复 支持 反对

使用道具 举报

10

主题

346

帖子

582

积分

高级玩家

Rank: 4

贡献度
25
金元
4816
积分
582
精华
0
注册时间
2016-5-14
12#
发表于 2023-3-1 12:21 | 只看该作者
liyun_1981 发表于 2023-3-1 11:50
这位水友,加群答案是啥,俺加不上呀!

召唤小精灵需要的研究点数

16

回复 支持 反对

使用道具 举报

39

主题

1343

帖子

2587

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
284
金元
14506
积分
2587
精华
0
注册时间
2009-2-25
13#
发表于 2023-3-1 18:07 | 只看该作者
级别不用搞太高没用,高了也没可学的技能了就纯加点属性意义不大,而且也不好平衡升级经验
回复 支持 反对

使用道具 举报

47

主题

609

帖子

813

积分

超级玩家

Rank: 5Rank: 5

贡献度
41
金元
6489
积分
813
精华
0
注册时间
2011-3-1
14#
发表于 2023-3-4 09:54 | 只看该作者
本帖最后由 shiry345678 于 2023-3-9 08:04 编辑

同强迫症
希望可以增加领地/小屋/全火节点范围和房间扩展槽位
再来个所有地点都变成没有天数限制的永久资源点


开了下控制台发现好多无法升级得到的单位技能
期待加入候选池

先发制人+无限反击我记得在奇迹时代3是先攻--挨打--还击这样的?
这个游戏里好像是只有先攻、不会再多打一下


回复 支持 反对

使用道具 举报

0

主题

598

帖子

666

积分

超级玩家

Rank: 5Rank: 5

贡献度
0
金元
6658
积分
666
精华
0
注册时间
2010-10-9
15#
发表于 2023-3-5 14:57 | 只看该作者
大佬是用什么方法反编译的啊 dnspy不修改就报错
回复 支持 反对

使用道具 举报

54

主题

1134

帖子

2481

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
82
金元
21534
积分
2481
精华
0
注册时间
2011-6-12
16#
发表于 2023-6-22 17:17 | 只看该作者
请问能不能实现:
1.房间栏位增加(全+2栏位)
2.房间效果增强(有数值收益的部分*2,尤其是西卫给的水晶增幅,)
3.房间栏位效果增加(有数值收益的部分*2-*3,普通的金币、法力产出*2,像石像的捕捉概率、助手的时间减少,炼金釜的产出数量就可以增多点)
4.蒸馏艾桠效果加强(多翻几倍吧)
5.符文效果增加(有数值收益的部分*2)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-15 03:34 , Processed in 0.220716 second(s), 15 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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