🤔 Para Refletir :
"Mais vale um jogo completo na mão do que dois projetos voando."
- FL

Conversão de códigos RGSS3 para Javascript

LucasRiot

Cidadão
Membro
Membro
Juntou-se
23 de Janeiro de 2016
Postagens
83
Bravecoins
3
Hello makers!
Gostaria de saber como ficaria a conversão dos códigos abaixo do RGSS3 para Javascript:
$game_variables[5] = ($game_party.members()[0] ? $game_party.members()[0].name : "-")
$game_variables[6] = ($game_party.members()[1] ? $game_party.members()[1].name : "-")
$game_variables[7] = ($game_party.members()[2] ? $game_party.members()[2].name : "-")
$game_variables[8] = ($game_party.members()[3] ? $game_party.members()[3].name : "-")

$game_variables[9] = $game_party.members()[1]

Condições > script
map_skills = [
  [1, 1, 12],    # 1: Eric
  [3, 0, 11],    # 2: Nathalie
]

id = $game_variables[9].id
map = map_skills[id-1]

$game_variables[10] = map[0]
$game_variables[11] = map[1]
$game_variables[12] = map[2]

Eu encontrei alguns códigos predefinidos nesse site https://kinoar.github.io/rmmv-doc-web/index.html
Mas como nunca mexi, fiquei com dúvidas.
Se alguém puder ajudar, agradeço ^^
 
Primeiro, você precisa mudar os nomes das variáveis tirando os underlines e separando as palavras com maiúscula.

Por exemplo: $game_party vira $gameParty, $game_variables vira $gameVariables e assim sucessivamente.

Depois, você precisa ver qual a função certa para pegar o objeto que você quer. No MV as variáveis globais do jogo ($gameQualquerCoisa) não podem ser acessadas por subscript (colchetes), porque Javascript não tem operator overloading :^D

No geral, o nome da função é bem direto: na $gameActors, para pegar o herói de ID 5 você usa $gameActors.actor(5); na $gameVariables, pra pegar o valor da variável 3 você usa $gameVariables.value(3), ... Mas tem casos onde você vai precisar fuçar a documentação pra descobrir mesmo.

O que pode acabar mudando de uma versão pra outra também é o nome das funções dos objetos do jogo, então pra ter certeza mesmo que está fazendo tudo corretamente você precisa dar um olhada na documentação pra ver certinho quais funções fazem o quê em que classe.
 
Vou te explicar o que eu quero fazer para você ter ideia.
Seria um sistema de SkillTree onde leve o jogador para mapas onde os personagens podem destravar habillidades/magias. Cada personagem tem um mapa diferente (ao todo 4 personagens), após ele terminar de destravar as habilidades, ele voltaria ao mapa/fase em que estava.
Defini algumas variáveis:
2cnhvrn.png
Mapas:
2jewfnq.png

Começando com Evento Comum eu estabeleci alguns comandos como você pode conferir abaixo:
mmzfp4.png

A ação desse processo começa no evento em um mapa qualquer.
16m7xjd.png

Ao falar com o NPC, uma janela de escolhas é mostrada para o jogador selecionar qual mapa skill do persoagem ele vai querer. Como no momento só tem o Haroldo jogável, só aparece o nome dele nas escolhas, se você tiver mais personagens na equipe, os nomes vão aparecer. Até aí está tudo funcionando.
fcij6c.png

O problema ocorre quando o jogador seleciona o personagem, ao invés de ser teletransportado para o seu mapa skill, o jogo dá crash.
35lhm5t.png

Bom, neste caso o que estaria dando de errado no processamento do evento comum?
Agradeço desde já.  :ok:
 
Provavelmente sua variável map está recebendo undefined, porque $selected_actor.id - 1 é maior ou igual ao tamanho do array mapSkills.

Não posso dar certeza though, porque não estou em condição de testar agora. Seria mais fácil dizer o que se passa se você puder mandar um print do que aparece na aba do Console quando pressiona F9 (ou é F12?).

Ah, aliás, seus eventos são mais que 50% código JS. Isso é um sinal que, talvez, possa ser mais fácil fazer o negócio todo sem o empecilho que é usar eventos :^)
Só um toque mesmo.
 
Voltar
Topo Inferior