🤔 Para Refletir :
"Saber a hora de parar é quase tão importante quanto saber a hora de começar"
- Ricky O Bardo

RPG Maker MV RMMV - Duvida : Game_Interpreter.prototype.updateWaitMode

DadoCWB Masculino

Duque
Membro
Membro
"Esto no me gusta"
Juntou-se
02 de Setembro de 2018
Postagens
726
Bravecoins
1.846
Eu desejo em um dado momento do jogo recarregar o mapa no qual o jogador se encontra. Isso é feito automaticamente quando uma certa $gameSwitches é ativada.

Meu problema: Tenho que garantir que isso não aconteça enquanto o jogador estiver numa batalha, no menu e nem num teleporte.

Tenho uma intuição que o que eu quero está relacionado com :

    Game_Interpreter.prototype.updateWaitMode

mas não tenho a menor ideia de como utilizo essa função;
 
Não tenho o MV em mãos pra testar agora, mas acredito que você possa fazer isso alterando o método update da classe Scene_Map pra chamar DataManager.loadMapData(mapId); quando a switch estiver ligada (não esquecendo de desligar ela logo depois pra evitar loop).

Isso não vai afetar nada estando em batalha ou no menu, porque a cena não vai ser a Scene_Map e no caso do teleporte provavelmente o próprio sistema se ajusta pra mudar o mapa antes de recarregar, mas se não, você pode usar o $gameInterpreter.isRunning() (tem variável $gameInterpreter? Nem lembro, mas é por aí) pra ver se tem algum evento sendo executado.

Só uma dúvidazinha, se você está ativando uma switch, por quê não recarrega o mapa direto por eventos? Você pode teleportar o jogador pro mesmo mapa e mesma posição, ou mesmo chamar a função de recarregar mapa lá por script call.
E pra quê recarregar o mapa, btw? xd
 
Brandt comentou:
Não tenho o MV em mãos pra testar agora, mas acredito que você possa fazer isso alterando o método update da classe Scene_Map pra chamar DataManager.loadMapData(mapId); quando a switch estiver ligada (não esquecendo de desligar ela logo depois pra evitar loop).

Isso não vai afetar nada estando em batalha ou no menu, porque a cena não vai ser a Scene_Map e no caso do teleporte provavelmente o próprio sistema se ajusta pra mudar o mapa antes de recarregar, mas se não, você pode usar o $gameInterpreter.isRunning() (tem variável $gameInterpreter? Nem lembro, mas é por aí) pra ver se tem algum evento sendo executado.

Só uma dúvidazinha, se você está ativando uma switch, por quê não recarrega o mapa direto por eventos? Você pode teleportar o jogador pro mesmo mapa e mesma posição, ou mesmo chamar a função de recarregar mapa lá por script call.
E pra quê recarregar o mapa, btw? xd


Olá ... Obrigado pelo feedback ..

Ao que parece não existe uma $gameInterpreter ... uma pena...  Mas acabei resolvendo o problema com:

if(!$gamePlayer.isTransferring() && !$gameParty.inBattle() && !$gameMessage.isBusy()){

CÓDIGO

}

Eu quase não estou usando eventos nesta etapa do projeto, por comodidade mesmo.  Por que estou programando um "conjunto de script pra ser utilizado em vários projetos". 

Só uma dúvidazinha, se você está ativando uma switch, por quê não recarrega o mapa direto por eventos?

O mapa possui uma série de funções associadas a ele quando é carregado. E durante alguns eventos eu preciso recarregar o mapa para mudar uma série de configurações...
 
Ao que parece não existe uma $gameInterpreter ... uma pena...  Mas acabei resolvendo o problema com:
if(!$gamePlayer.isTransferring() && !$gameParty.inBattle() && !$gameMessage.isBusy()){

CÓDIGO

}


Boa. Uma alternativa é usar o $gameMap.isEventRunning(), caso queira ter certeza.

O mapa possui uma série de funções associadas a ele quando é carregado. E durante alguns eventos eu preciso recarregar o mapa para mudar uma série de configurações...

Cara, não sei as especificações do que você está desenvolvendo aí, mas a menos que seja um caso bem específico, isso tá parecendo é uma baita gambiarra kkk
No geral você não precisa recarregar o mapa pra alterar configurações de scripts, a menos que seja alguma alteração que afeta diretamente a forma como os dados ou do desenho do mapa são tratados. Recomendo criar classes pras coisas do seu script e evitar ao máximo implementar as funcionalidades dele de forma que afetem as classes padrão do maker.

Mas não sei do que se trata, então não me meto além disso aí. Bom que resolveu.

Boa sorte
 
Voltar
Topo Inferior