Project1
标题: 为什么套用YEP的参数插件就会出现转移错误? [打印本页]
作者: 3000Roger 时间: 2024-4-29 23:52
标题: 为什么套用YEP的参数插件就会出现转移错误? 本帖最后由 3000Roger 于 2024-4-30 00:00 编辑
这问题真的是难以理解,我只安装Core Engine
然后之前装了Extra Parameter Formula 额外参数公式
想研究看看,但太过复杂所以放弃,但研究过程中发现只要转移玩家位置就会出现错误
现在装了Hit Accuracy 命中率来试试看,结果出现一样的问题,只要转移玩家位置就会出现错误
我把除了Core Engine以外的插件全部关闭了,状况也一样,我开一个新的专案只装了Core Engine跟Hit Accuracy,没问题了,但把data内档案复制到新专案,问题又出现了, 这我真的百思不得其解
我也认真看过我游戏内的脚本,没有开始就自动运行的...
到底什么原因会导致"玩家转移位置"就会出现错误....?
作者: 505681468 时间: 2024-4-30 00:31
不太清楚欸
不过。方便的话,可以 1、贴报错 2、附工程
作者: 3000Roger 时间: 2024-5-1 13:59
阿不好意思,我真的搞不太懂还要怎么查问题了
这两天我一直在不断测试,本来以为是转移的问题
但发现用其他指令转移又没问题了,原本是用图片指令
$gameScreen._pictures[1]._name === "XXXX"
但是我全部拿去新开专案测试,又没问题了......
就好像把YEP_HitAccuracy.js装上去所有的脚本就坏了...
但拿去新专案测试又没问题.......
作者: 505681468 时间: 2024-5-1 16:09
本帖最后由 505681468 于 2024-5-1 16:10 编辑
手上的代码是这样的
Yanfly.Util .displayError = function ( e, code, message) {
console.log ( message) ;
console.log ( code || 'NON-EXISTENT' ) ;
console.error ( e) ;
if ( Utils.isNwjs ( ) && Utils.isOptionValid ( 'test' ) ) {
if ( !require( 'nw.gui' ) .Window .get ( ) .isDevToolsOpen ( ) ) {
require( 'nw.gui' ) .Window .get ( ) .showDevTools ( ) ;
}
}
} ;
Yanfly.Util .displayError = function ( e, code, message) {
console.log ( message) ;
console.log ( code || 'NON-EXISTENT' ) ;
console.error ( e) ;
if ( Utils.isNwjs ( ) && Utils.isOptionValid ( 'test' ) ) {
if ( !require( 'nw.gui' ) .Window .get ( ) .isDevToolsOpen ( ) ) {
require( 'nw.gui' ) .Window .get ( ) .showDevTools ( ) ;
}
}
} ;
但是好像并没有 isDevToolsOpen 方法,所以删掉吧
Yanfly.Util .displayError = function ( e, code, message) {
console.log ( message) ;
console.log ( code || 'NON-EXISTENT' ) ;
console.error ( e) ;
if ( Utils.isNwjs ( ) && Utils.isOptionValid ( 'test' ) ) {
require( 'nw.gui' ) .Window .get ( ) .showDevTools ( ) ;
}
} ;
Yanfly.Util .displayError = function ( e, code, message) {
console.log ( message) ;
console.log ( code || 'NON-EXISTENT' ) ;
console.error ( e) ;
if ( Utils.isNwjs ( ) && Utils.isOptionValid ( 'test' ) ) {
require( 'nw.gui' ) .Window .get ( ) .showDevTools ( ) ;
}
} ;
他应该是有第一个 error 的,然后 yanfly 自己拦截处理了
但是这个拦截它自己 error 了,应该会有两个 error
作者: 3000Roger 时间: 2024-5-1 19:46
错误修好了,但一直跳出这个视窗
这是什么! ?
感谢帮忙! !
作者: 505681468 时间: 2024-5-1 20:38
本帖最后由 505681468 于 2024-5-1 20:39 编辑
因为他原本的作用就是打开这个视窗
Yanfly.Util.displayError = function(e, code, message) {
// 打印错误
console.log(message);
console.log(code || 'NON-EXISTENT');
// 打印错误
console.error(e);
// 判断是否是 nwjs 环境
if (Utils.isNwjs() && Utils.isOptionValid('test')) {
// 判断是否已经打开控制台
if (!require('nw.gui').Window.get().isDevToolsOpen()) {
// 没有的话,打开控制台
require('nw.gui').Window.get().showDevTools();
}
}
}; 复制代码
console 的打印在 console 栏目里面
作者: 3000Roger 时间: 2024-5-1 21:44
我在里面看到错误了,我在1号剧情内设置很多都放在一起
若:脚本: $gameScreen._pictures[1]._name === "XXXX"
转移玩家
若:脚本: $gameScreen._pictures[2]._name === "XXXX"
转移玩家
若:脚本: $gameScreen._pictures[3]._name === "XXXX"
转移玩家
我放了大概1~8个一样的指令,不一样的图片槽跟图片,本来只是对应不同按钮的设定
但不知道为什么装了YEP_HitAccuracy.js才告诉我有错误,之前弄很久还以为这样设置没问题
作者: 3000Roger 时间: 2024-5-1 21:56
这样不会跳出错误也不会跳出视窗...可是这样问题算解决吗...
错误是不是一直在阿...?
Yanfly.Util.displayError = function(e, code, message) {
console.log(message);
console.log(code || 'NON-EXISTENT');
console.error(e);
if (Utils.isNwjs() && Utils.isOptionValid('test')) {
//if (!require('nw.gui').Window.get().isDevToolsOpen()) {
require('nw.gui').Window.get().showDevTools();
}
}
}; 复制代码
作者: 505681468 时间: 2024-5-1 22:08
本帖最后由 505681468 于 2024-5-1 22:12 编辑
错误是会一直都在,正常来说,有报错是会停止游戏的,因为他会弹出一个窗口
对于发行的游戏版本,为了让玩家的游戏体验不中断,是会取消弹窗的
玩家的客户端会发送报告,开发者只需要在后台查看报错汇报就行了
而在开发者模式的时候,就不需要取消弹窗了,因为要处理错误
所以他有一个 Utils.isNwjs() && Utils.isOptionValid('test') 来判断是否开发环境
作者: 3000Roger 时间: 2024-5-2 01:04
那可以请教一下为什么这个代码也会出现错误吗
只是想设置跳过选单直接开启装备栏位而已,还是有其他设置的方法?
SceneManager.push(Scene_Equip);
SceneManager.prepareNextScene(1, 0);
SCRIPT CALL ERROR
YEP_HitAccuracy.js:227 SceneManager.push(Scene_Equip);
SceneManager.prepareNextScene(1, 0);
YEP_HitAccuracy.js:228 TypeError: Cannot read property 'apply' of undefined
at Function.SceneManager.prepareNextScene (rpg_managers.js:2105)
at eval (eval at Game_Interpreter.command355 (YEP_CoreEngine.js:1857), <anonymous>:2:14)
at Game_Interpreter.command355 (YEP_CoreEngine.js:1857)
at Game_Interpreter.executeCommand (rpg_objects.js:8930)
at Game_Interpreter.update (rpg_objects.js:8838)
at Game_Map.updateInterpreter (rpg_objects.js:6115)
at Game_Map.updateInterpreter (PictureCallCommon.js:434)
at Game_Map.update (rpg_objects.js:6022)
at Scene_Map.updateMain (rpg_scenes.js:608)
at Scene_Map.updateMainMultiply (rpg_scenes.js:600)
作者: 505681468 时间: 2024-5-2 01:26
本帖最后由 505681468 于 2024-5-2 01:29 编辑
因为只有可以 scene.prepare 的场景才可以 SceneManager.prepareNextScene
场景的 prepare 准备工作不统一,Scene_Equip 的话,原生界面应该只考虑了从 scene 里面选角色进去,所以就已经在 prepare 了
设置 2 号位角色的话,相当于
$gameParty.setMenuActor($gameActors.actor(2));
SceneManager.push(Scene_Equip); 复制代码
其实意思就是 $gameParty._menuActorId = 2 角色 id
应该没问题
作者: 3000Roger 时间: 2024-5-2 19:38
感谢你的帮忙!!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1