Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望能增加mod作者自定义人物属性功能,以及对mod功能的思考 #1311

Open
armodeniz opened this issue Nov 4, 2022 · 3 comments

Comments

@armodeniz
Copy link
Contributor

在制作mod时,进行逻辑上的深度定制是很常见的,比如对战斗系统进行修改,增加人物的属性。例如我想增加一个闪避系统,或者更高级些增加点穴系统,群里也有人增加了暴击系统。这些功能都需要对游戏框架进行许多修改,对伤害计算函数的修改可通过hotfix来进行,但给人物添加对应属性就无法绕开对游戏框架的修改。

目前我对实现该功能的思路有下面几个建议。

  1. 进行针对性修改。在涉及人物属性的代码中取消写死的属性逻辑,改为从mod配置中读取人物属性配置。人物属性的配置大概包含属性编号,属性名称,属性取值范围,是否在建立人物页面显示,是否在人物状态页面显示这几个配置项。需要修改jyx2config,gamemainmenu,roleinstance,xiakeuipanel以及其他涉及的代码。
  2. 进行mod功能接入方式的修改。上面的修改只能对增加人物属性这一个功能起作用,但mod作者需要的定制化代码可能还涉及很多不便修改的地方,因此我建议对mod功能的接入方式进行修改。建议在游戏启动载入mod时,检查mod需要修改的类,函数,(这可以让mod提供一个表),让游戏框架在之后使用mod提供的文件来运行。这可能需要不小的工作量,但我认为拓展mod功能是很有必要的。hotfix并非一个适合mod制作的工具,调试起来很繁琐,而且只能修改本体中已经定义好的函数。
@0kk470
Copy link
Contributor

0kk470 commented Nov 5, 2022

第二点的话可能需要一个额外的C#热加载机制,可能得考虑 BepInEx, 但是这样MOD会不适合手机端

@armodeniz
Copy link
Contributor Author

第二点的话可能需要一个额外的C#热加载机制,可能得考虑 https://github.com/BepInEx/BepInEx, 但是这样MOD会不适合手机端

手机端还是挺重要的,目前看来这个问题还得从长计议

@chenggongchina
Copy link
Member

目前设计上还是希望兼容移动端的发布,属性这块比较好的方案确实是支持excel载入配置。
这块暂时没有去做MOD友好的设计,看哪位大神来重构下。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants