Project1

标题: 如何用脚本判断存档窗口是否打开 [打印本页]

作者: thyzqwy    时间: 2021-3-26 15:00
标题: 如何用脚本判断存档窗口是否打开
需要在条件分歧里判断存档窗口是否打开,首次接触MZ,不晓得怎么写。有知道的吗?谢谢
作者: redsight    时间: 2021-3-29 21:19
在群里帮你问了一下
SceneManager._scene.constructor === Scene_Save
作者: thyzqwy    时间: 2021-3-30 12:16
谢谢帮忙,这个代码好像不行的,在控制台尝试了,一直返回false,无论存档页面是否打开。SceneManager._scene.constructor === Scene_Save
false。本来是想判断打开存档页面更换行走图的,发现那个更换行走图的代码也不行,控制台一直报错。$gameParty.members[3].setCharacterImage(people4, 2)
VM610:1 Uncaught TypeError: Cannot read property 'setCharacterImage' of undefined
    at <anonymous>:1:23
(anonymous) @ VM610:1。不知道哪里错了。。。。
作者: redsight    时间: 2021-3-30 15:39
SceneManager._scene.constructor === Scene_Save这个我是在控制台试过的没问题啊
$gameParty.members[3]好像是$gameParty.members()[3]吧
我上班不能玩RM,等晚上回去再试试
作者: thyzqwy    时间: 2021-3-30 19:57
谢谢回答。新开工程测试可以的。发现是使用飞猫的那个存档插件后造成的。用这个的初衷是使用了八方向行走图,存档时显示的行走图不是一帧的,所以想在存档界面更换行走图。已经用其他办法解决了。分享给有需要的新手,高手勿喷。。。。。
Game_Party.prototype.charactersForSavefile = function() {
    return this.battleMembers().map(actor => [
        actor.characterName()+"save",//更改存档行走图名字
        actor.characterIndex()
    ]);
另外,发现修改这个地方也是一种方法。
Window_Base.prototype.drawCharacter = function(
    characterName, characterIndex, x, y
) {
    const bitmap = ImageManager.loadCharacter(characterName);
    const big = ImageManager.isBigCharacter(characterName);
    const pw = bitmap.width / (big ? 8 : 8);
    const ph = bitmap.height / (big ? 8 : 8);
    const n = big ? 0: characterIndex;
    const sx = ((n % 8) * 8 + 1) * pw;
    const sy = Math.floor(n / 8) * 8 * ph;
    this.contents.blt(bitmap, sx, sy, pw, ph, x - pw / 2, y - ph);
};




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