Project1

标题: (已解决)MV汉化版物品图鉴崩溃问题 [打印本页]

作者: polkjhgfdsz    时间: 2021-12-17 19:02
标题: (已解决)MV汉化版物品图鉴崩溃问题
本帖最后由 polkjhgfdsz 于 2021-12-22 10:44 编辑

如题,根据MV的汉化帮助文档(https://miaowm5.github.io/RMMV-F1/),尝试新建了一个怪物图鉴 :;
进入游戏后成功显示了,
于是打算用同样的方式尝试一下物品图鉴,我新建了一个物品图鉴事件,将其打开方式放在了一个物品中 ,然后进入游戏并获取该物品,选择使用——
然而游戏就崩溃了,如图
以下是我使用的脚本列表 ,因为还在上大学,这是第一次尝试制作游戏,但是我学业不精(还是语文专业……)实在是看不懂脚本代码,希望各位大佬能帮忙检查一下是插件冲突还是我设置的脚本有误,还是别的什么情况?
谢谢大家!

怪物图鉴成功.png (968.27 KB, 下载次数: 104)

怪物图鉴成功.png

作者: 夏虫沉默    时间: 2021-12-17 20:52
本帖最后由 夏虫沉默 于 2021-12-17 21:19 编辑

我也没用过这个插件,不过为什么complete(完成)道具图鉴 会在  open(打开)道具图鉴的前面,你可以试着交换一下两者的顺序,或者只保留打开道具图鉴--ItemBook open
我试了一下ItemBook complete解锁全图鉴,ItemBook open打开图鉴,这个顺序是没有问题,可以正常使用,可能是和某个插件冲突了,你可以按下F12查看下问题
作者: polkjhgfdsz    时间: 2021-12-17 22:13
夏虫沉默 发表于 2021-12-17 20:52
我也没用过这个插件,不过为什么complete(完成)道具图鉴 会在  open(打开)道具图鉴的前面,你可以试 ...

好的,我明天试一试
作者: polkjhgfdsz    时间: 2021-12-18 17:12
我尝试了一下,将完成物品图鉴和打开物品图鉴分开来file:///C:/Users/dell/Desktop/%E4%BA%8B%E4%BB%B6%E5%88%86%E5%BC%80.png
完成物品图鉴的事件可以正常启动,但用另一个事件打开物品图鉴时,再次崩溃了file:///C:/Users/dell/Desktop/%E5%86%8D%E6%AC%A1%E5%B4%A9%E6%BA%83.png
这是当时的F12全局浏览图像file:///C:/Users/dell/Desktop/F12.png,可能是和我安装的物品信息窗口有冲突?
作者: polkjhgfdsz    时间: 2021-12-18 17:12
本帖最后由 polkjhgfdsz 于 2021-12-18 18:45 编辑


作者: polkjhgfdsz    时间: 2021-12-18 17:13
夏虫沉默 发表于 2021-12-17 20:52
我也没用过这个插件,不过为什么complete(完成)道具图鉴 会在  open(打开)道具图鉴的前面,你可以试 ...

大概是和我之前安装的物品信息窗口插件冲突了?
作者: 夏虫沉默    时间: 2021-12-18 18:13
本帖最后由 夏虫沉默 于 2021-12-19 12:01 编辑

可能是二者内部的变量名冲突了,导致取不到属性name的值;
偶然发现ItemBook里有一个item.meta.book的属性,设置为'no'时,该物品就不会出现在图鉴里,看了下帮助文档,原来这个也有注明,在备注(meta)栏使用标签<book:no>

作者: polkjhgfdsz    时间: 2021-12-18 18:45
夏虫沉默 发表于 2021-12-18 18:13
可能是二者内部的变量名冲突了,导致取不到属性name的值

重新编辑了一下,之前没有弄好图片上传的机制,抱歉……
作者: 夏虫沉默    时间: 2021-12-18 19:54
本帖最后由 夏虫沉默 于 2021-12-19 10:35 编辑

你可以打开itembook.js的272行,或者直接在浏览器的console点击对应的行数都可以看到有异常的代码;;
我试了一下,只导入插件YEP_CoreEngine和YEP_X_CoreUpdatesOpt,使用插件命令ItemBook complete和ItemBook open是可以正常使用和打开的,可能是其他插件修改了$dataItems数组;
你可以试着在Window_ItemBookIndex.prototype.refresh里面插入以下代码在 item = $dataItems;下面一行,(大概在272行左右)
JAVASCRIPT 代码复制
  1. if(item==null){
  2.         continue;
  3. }
  4. console.log(item.name);//查看物品的名字

不出意外的话,应该可以看到类似这样的效果

作者: polkjhgfdsz    时间: 2021-12-19 12:40
夏虫沉默 发表于 2021-12-18 19:54
你可以打开itembook.js的272行,或者直接在浏览器的console点击对应的行数都可以看到有异常的代码;;
我试 ...

好的,我明天考完试试一下
作者: polkjhgfdsz    时间: 2021-12-21 19:40
夏虫沉默 发表于 2021-12-18 19:54
你可以打开itembook.js的272行,或者直接在浏览器的console点击对应的行数都可以看到有异常的代码;
我试 ...


尝试了一下,老哥,将新代码粘贴之后,错误的地方改变了,不清楚是代码依然和插件冲突,还是我的粘贴格式或者方式有问题(我是直接右脚插件编辑,在txt文档里粘贴的。)

作者: 夏虫沉默    时间: 2021-12-21 20:11
本帖最后由 夏虫沉默 于 2021-12-22 09:13 编辑

只有两类人会用记事本修改代码,要么是大佬,要么是新手。然后顺便把F12打开console显示的内容也截图下。之前加入的4行代码,你还需要在item=$dataWeapons的下面添加1次,在item=$dataArmors下面添加1次,总计就是3次,一个是物品,一个是武器,一个是防具如果有想法的话,还可以把一个物品图鉴分成3个碎片,刚开始只有查看防具图鉴,拿到另外2个碎片后,升级成完全的图鉴
作者: polkjhgfdsz    时间: 2021-12-21 20:27
polkjhgfdsz 发表于 2021-12-21 19:40
尝试了一下,老哥,将新代码粘贴之后,错误的地方改变了,不清楚是代码依然和插件冲突,还是我的粘贴格式 ...

好的,我再尝试一下
作者: polkjhgfdsz    时间: 2021-12-21 20:49
夏虫沉默 发表于 2021-12-21 20:11
只有两类人会用记事本修改代码,要么是大佬,要么是新手。然后顺便把F12打开console显示的内容也截 ...


噫,好,我成功了!哼哼,太好了啊啊啊啊啊——啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!

作者: polkjhgfdsz    时间: 2021-12-21 21:00
本帖最后由 polkjhgfdsz 于 2021-12-21 21:01 编辑
夏虫沉默 发表于 2021-12-21 20:11
只有两类人会用记事本修改代码,要么是大佬,要么是新手。然后顺便把F12打开console显示的内容也截 ...


对了,老哥,我刚才尝试了一下,发现解锁物品全图鉴的插件命令可以开启全物品图鉴, 但是使用ItemBook add item 9 这类的插件命令没有效果,这个该怎样调整呢?
作者: 夏虫沉默    时间: 2021-12-21 21:25
本帖最后由 夏虫沉默 于 2021-12-22 12:07 编辑

这个要等我多测试下这个插件进一步怎么使用再说。如果要调试,都是要看浏览器的开发者模式,也就是F12打开的模式,其中的console就是控制台窗口,通过console.log()方法可以在控制台打印指定的变量或者字符串。
JAVASCRIPT 代码复制
  1. //在js语言中使用两条斜杆注释代码,注释的部分不会运行,主要作用是方便阅读
  2.  
  3. if(item==null){///这段代码的if关键字是条件判断,如果满足什么条件,那么执行。。。代码
  4.         continue;//当用于for循环体中时,continue会让代码运行直接跳转到for的第三段
  5. ///如果没学过编程的话,continue可以理解为,假如我们在排队买票(for循环)上车,有时候会看到前面的人没带身份证导致买不了票(if(item==null)),一般售票员会喊‘下一个’,这就是continue;
  6. }
  7. console.log(item.name);//在F12调试console窗口打印物品的名字
  8.  
  9.  
  10.   for (i = 1; i < $dataItems.length; i++) {
  11.             item = $dataItems[i];
  12.                         if(item==null){
  13.                                 continue;
  14.                         }
  15.                         console.log(item.meta.book);
  16.             if (item.name && item.itypeId === 1 && item.meta.book !== 'no') {
  17.                 this._list.push(item);
  18.             }
  19.         }
  20.  
  21. ///这段代码的for关键字是一个循环,当满足条件的时候,则执行。。。循环体代码,类似的也可以使用while关键字(当满足条件的时候,则执行。。。循环体代码)
  22. //与while循环不同的是,for(;;)中间有2个英文的分号;将()里的语句分成了3段,
  23. ///第一段是初始化(i=1----定义了一个变量i,并让他的初始值为1),
  24. ///第二段是条件(i < $dataItems.length----当i的值小于数据库里物品的个数时执行),
  25. ///第三段是每次循环最后执行的语句(i++的意思是----(先使用i的值,然后让)i的值+1,例如i的值是1,那么i++之后,i的值就是2)
  26.  
  27. //其他的就不多说了,有这个概念就可以了

作者: polkjhgfdsz    时间: 2021-12-21 21:42
夏虫沉默 发表于 2021-12-21 21:25
这个要等我多测试下这个插件进一步怎么使用再说。如果要调试,都是要看浏览器的开发者模式,也就是F12打开 ...

好的,明天我再截个图发给老哥
作者: polkjhgfdsz    时间: 2021-12-22 10:43
夏虫沉默 发表于 2021-12-21 21:25
这个要等我多测试下这个插件进一步怎么使用再说。如果要调试,都是要看浏览器的开发者模式,也就是F12打开 ...

解决了,老哥,我发现是我不小心在公共事件里用的插件命令,应该在独立事件里使用才对,重新尝试了一次之后就可以正常获得对应的物品图鉴哩
作者: polkjhgfdsz    时间: 2021-12-22 11:06
polkjhgfdsz 发表于 2021-12-22 10:43
解决了,老哥,我发现是我不小心在公共事件里用的插件命令,应该在独立事件里使用才对,重新尝试了一次之 ...

如果有转义的话还是希望看一看,我不太能看懂代码,只能套用
作者: polkjhgfdsz    时间: 2021-12-23 09:19
夏虫沉默 发表于 2021-12-21 21:25
这个要等我多测试下这个插件进一步怎么使用再说。如果要调试,都是要看浏览器的开发者模式,也就是F12打 ...

非常感谢!可以继续愉快地做黄油了(大污)
作者: polkjhgfdsz    时间: 2022-1-2 18:53
夏虫沉默 发表于 2021-12-17 20:52
我也没用过这个插件,不过为什么complete(完成)道具图鉴 会在  open(打开)道具图鉴的前面,你可以试 ...

老哥,我想请教一下,通过FTKR插件的技能树学习的技能,想让他给主角附加一个永久的buff(在学习后),但是失败了,这个会是什么原因呢?(图片我发了一个新帖子,如果老哥感兴趣的话希望能帮忙看一看,感谢!)
作者: djs789783    时间: 2024-3-24 15:15
polkjhgfdsz 发表于 2021-12-19 12:40
好的,我明天考完试试一下

求大佬发---物品图鉴---和---怪物图鉴---工程出来学习下。
求大佬发---物品图鉴---和---怪物图鉴---工程出来学习下。
求大佬发---物品图鉴---和---怪物图鉴---工程出来学习下。
求大佬发---物品图鉴---和---怪物图鉴---工程出来学习下。
求大佬发---物品图鉴---和---怪物图鉴---工程出来学习下。
求大佬发---物品图鉴---和---怪物图鉴---工程出来学习下。
求大佬发---物品图鉴---和---怪物图鉴---工程出来学习下。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1