🤔 Para Refletir :
"Se é seu amigo, não peça uma key do jogo dele: compre para apoiá-lo!"
- HenriqueGibi

RPG Maker MV (RMMV) Uncaught TypeError: Cannot read property 'width' of null

Estado
Tópico fechado. Não é possível fazer postagens nela.

Hector MG. Barbossa

Cidadão
Membro
Membro
Juntou-se
24 de Junho de 2015
Postagens
121
Bravecoins
0
error.jpg


Uncaught TypeError: Cannot read property 'width' of null

Pessoal, esse erro está me infernizando a vida, só acontece as vezes e quando eu mando carregar um jogo salvo. Vamos do inicio.

Criei um sistema novo para o jogo para que ele seja salvo. Somente 1 jogo é salvo, não tem sistema de slots. Ao salvar ele cria o arquivo normalmente sem qualquer problema. Quando vou lá para carregar o jogo salvo (AS VEZES) esse erro ocorre, mas ocorre com certa frequência. De 10 vezes que eu tento carregar o jogo 6 vezes ele me inferniza com esse erro. Isso quando eu estou testando o jogo dentro do RPG Maker MV. Quando eu compilo e exporto o game (como se ele fosse ser distribuído), ele também ocorre, mas em proporções menores, cerca de 4 vezes em 10 que eu tento executa-lo.

Lembro-me que quando eu usava a versão 1.0.1 do RMMV esse erro não ocorria, talvez porque o projeto estivesse apenas no inicio, já agora com o maker atualizado pra versão 1.2.0 ocorre isso com essa frequência.

Pesquisando por aí, li que esse erro ocorre quando o maker tenta carregar um objeto que ainda não foi lido, então ele da esse erro, é como você tentar beber um como d'água sem ter colocado água dentro kkkk.

Li também que é porque o maker não consegue realizar trocas e carregamento de imagens em sequencia sem ter um "Wait" para ele carregar tudo, mais uma vez... é como você fosse tentar explicar algo pra alguém lerdo das ideias, você tem que ir devagar kkkk... Bom, agora eu não sei de fato o que causa esse erro. Li também que esse erro é comum em operações com JavaScript.

Agora li também que tem gente dizendo que isso não seria considerado um bug do maker, mas a questão é... porque tem tanta gente com esse mesmo problema? Eu acredito que se isso não fosse um bug o maker deveria tratar desse erro de uma forma viavel, afinal de contas, se não é um bug então ele deve criar uma forma qualquer desse problema não ocorrer correto? Bom, indiferente a isso como é que podemos resolver essa parada ai? Isso ta irritando legal. Toma um tempo danado da gente sem contar o fato de que o jogador vai ter que conviver com isso quando for jogar seu game, o que não seria nada correto.

Não sei se eu fiz alguma merda ou se isso é um bug ou tem algum macete pra acabar com isso, mas até agora eu não consegui resolver esse problema e estou procurando ajuda do pessoal pra tentar solucionar. Adianto também que a possibilidade de isso ser causado por algum plugin é remota, pra mim é coisa do próprio maker nos arquivos managers.js e objects.js... sei lah. Sou programador em Delphi e na minha concepção de programador, esse erro é causado por alguma "falha" do maker em interpretar algo não imaginado pelos programadores dele que pudesse vir a ocorrer com os usuários.

Abaixo vou colocar algumas screens que podem ajudar no problema.

cod-save.jpg

Codigo do meu SaveGame (Salvando)

cod-console.jpg

Console mostrando o erro.

Código:
if(DataManager.loadGame(1)){
				if ($gameSystem.versionId() !== $dataSystem.versionId){
					$gamePlayer.reserveTransfer($gameMap.mapId(), $gamePlayer.x, $gamePlayer.y);
					$gamePlayer.requestMapReload();
				}
				$gameSystem.onAfterLoad();
				SceneManager.goto(Scene_Map);
			}
Codigo do meu LoadGame (Carrega o jogo salvo)


PS: Uma duvida... Olhem na screen 1. Como eu tiro essa maldita barra de endereços dali? kkkkk Ja tentei de tudo menos o certo.
 
Código:
SceneManager.onError = function(e) {
    console.error(e.message);
    console.error(e.filename, e.lineno);
    try {
        this.stop();
        Graphics.printError('Error', e.message);
        AudioManager.stopAll();
    } catch (e2) {
    }
};

Você está tendo um erro na sua lógica de load game. Ele está tentando carregar mapa inexistente ou nulo, e aí está falhando na hora de cria-lo.

O endereço completo do save-game ali no seu log aparece porque isso é parte do comportamento padrão de SceneManager.onError().

Por acaso o save game foi criado em uma versão anterior do jogo?
 
Ellye comentou:
Código:
SceneManager.onError = function(e) {
    console.error(e.message);
    console.error(e.filename, e.lineno);
    try {
        this.stop();
        Graphics.printError('Error', e.message);
        AudioManager.stopAll();
    } catch (e2) {
    }
};
Você está tendo um erro na sua lógica de load game. Ele está tentando carregar mapa inexistente ou nulo, e aí está falhando na hora de cria-lo.

O endereço completo do save-game ali no seu log aparece porque isso é parte do comportamento padrão de SceneManager.onError().

Por acaso o save game foi criado em uma versão anterior do jogo?
Opa!

O sistema de save game foi programado ja nessa versão 1.2.0 do maker, não tinha ele na versão anterior que eu me lembre. Como eu conseguiria resolver esse problema?


Se eu colocar somente DataManager.loadGame(1); ele me retorna um erro Cannot read property 'pages' of null em todas as vezes que tento carregar o jogo salvo.

Valeu Ellye!

Edit-----------

Resolvi abandonar esse sistema ai. Muito bug, muito problema e muita perda de tempo até agora. Resolvi utilizar os comandos que chamam os menus originais do maker mas eu os modifiquei principalmente na parte gráfica, acabou ficando melhor do que eu imaginava. Carrega tudo perfeitamente, rapido, sem lag.

Valeu Ellye pela força.
 
Estado
Tópico fechado. Não é possível fazer postagens nela.
Voltar
Topo Inferior