GithubHelp home page GithubHelp logo

next's People

Contributors

magicskysword avatar shutaozhenzhen avatar the-book-of-unknowable avatar xiaoye97 avatar zerxz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

next's Issues

连续使用startfight指令进行战斗的Bug

    版本:0.7.3

问题:连续使用startfight指令进行战斗结束的事件跳转时无法正确触发,当第一次战斗胜利后,第二次的战斗在开始时默认胜利,直接触发第二次战斗胜利后的事件,并且由于开始战斗后覆盖掉了第二次战斗时候的对话事件,使得后续事件触发失败。

Originally posted by @2717753650 in #12 (comment)

Next框架UI问题

版本:0.6.4
问题:使用时会出现UI问题,具体表现在显示item列表的框会黑屏,尤其进入物品编辑查看功法书的时候。同时黑屏时无法重新编辑MOD,只有重启游戏这一条路

天赋mod在next管理器中关闭,依然会在代码中能搜索到,导致另一个C# mod出错

在本地文件夹下,我创建了一个天赋mod,但是在next的管理器内部没有启动这个mod。这个mod添加了一个ID是3140的天赋。
为了实现另一个mod的功能,我写了一个C# mod,用于使得可消耗的材料允许被右键消耗掉。
后一个Mod在消耗材料的时候报错了。
经过检查错误在GUIPackage.item.realizeSeid4,反编译代码如下:

		public void realizeSeid4(int seid)
		{
			foreach (int num in PlayerEx.Player.SelectTianFuID.ToList())
			{
				if (CreateAvatarJsonData.DataDict[num].seid.Contains(26))
				{
					return;
				}
			}
			KBEngine.Avatar avatar = (KBEngine.Avatar)KBEngineApp.app.player();
			UIPopTip.Inst.Pop("你的修为提升了" + this.getSeidJson(seid)["value1"].I, PopTipIconType.上箭头);
			avatar.addEXP(this.getSeidJson(seid)["value1"].I);
		}

把这段代码复制出来使用,经过添加打印查看打印后确认,问题在于:
PlayerEx.Player.SelectTianFuID.ToList()获取到的天赋包含关闭的mod的天赋3140
但是CreateAvatarJsonData.DataDict[3140]报错,查找不到对应的项。

debug窗口与ConfigurationManager冲突

next的debug菜单(默认f4呼出)与ConfigurationManager似乎存在冲突;当二者共存时,f4键无法呼出debug窗口,并且启动时debug窗口不弹出。

mod框架next无法安装。非stream版,显示错误:next 0.44 与 BepInEx版本不匹配

求助mod框架next无法安装,BepInEx用的是 BepInEx_x86_5.4.5.0.zip 。

非stream版,显示错误:next 0.44 与 BepInEx版本不匹配:

——不放Next则正常,安装 放入Next则报错—— 反复切换了Next 0.1~Next0.44没有一个适配的,无法安装。
--------------------------- 调整BepInEx的配置文件,让显示控制台日志后,显示如下日志:---------------------------
[Warning: BepInEx] Plugin [Next 0.4.1] targets a wrong version of BepInEx (5.4.18.0) and might not work until you update
[Info : BepInEx] Loading [Next 0.4.1]
[Info : Next] 开始加载xlua.dll
[Info : Next] 加载完毕
[Error : Unity Log] DllNotFoundException: xlua

(放入Next 报错)
(不放 不安装Next,则不报错)

冗余的HarmonyPatch补丁导致的资源加载存在不合理

在处理Assets图片资源加载时,我看到Next中已经对原版的 ResManager 进行了补丁操作。在调用 "LoadSprite" 以及 "LoadTexture2D" 方法时提供了额外的资源插入操作。那么本质上就不再需要对其他的图片资源加载进行补丁操作了。

但实际上,我发现 Next 之中还是保留有其他时期的资源加载处理的,这本身并没有太大影响,至少对于使用Next编辑器提供的资源加载操作是没有额外影响的。

但实际上我今天在进行自己的Mod制作时,因为特殊需求所有需要自己处理图片资源加载。而我的做法也是直接对 ResManager 中的两个方法进行了额外的处理。这在其他的场景下都是可以正常获取到资源的,但是在进入战斗场景时,我发现战斗面板上的技能图标显示异常

后续我进行了反复的排查发现,Next中的 SkillIconPatch 中对战斗时的 Skill初始化进行了额外的 patch,使得本来能够通过 ResManager.inst.LoadSprite 加载到的图片数据,因为 Postfix 方法被重新处理了。

O O)6A3`17$LF8L$6LSUNPB

Postfix 方法的处理逻辑导致,图片资源会尝试在Next的资源管理中获取数据,如若未获取到对应的资源,则直接加载原版数据,而且是直接通过Resources进行的资源加载。这样的处理方式会使得其他Mod想要进行“特殊的资源加载”变得十分困难。

因此,在这里提出 Issue 希望能将原版资源的加载逻辑进行适当的变动,恢复原版的资源加载方式(如上图)。

另外,为了保险起见我这里也进行了额外的测试,直接拦截了这部分的数据处理逻辑,具体操作如下

CG_7L `20X}FDIJ~@L3%MEO
C(CGIJY2)}8K{3VU390N0_3

而在游戏的实际测试中,我发现直接拦截也不会导致图标加载出现问题(因为本质上已经在 ResManager 中进行过处理了)

744G_A2SG{R){33O_ 66}%R

所以,是否移除这部分额外的资源加载逻辑也是可行的呢?

涉及到的代码文件如下:
ResManagerLoadSpritePatch
ResManagerLoadTexturePatch
SkillIconPatch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.