Como ter mais opções de velocidade disponíveis?

4 Respostas   413 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Kerazzk

  • *
  • Posts: 179
  • Ouros: 99
  • Assuntos importantes, comunique-me via Discord.
  • Equipamentos "Esta peça foi forjada pelo grande ferreiro Dimitry, há algumas eras atrás. Diz-se a lenda que, não importa quantas vezes caia, este escudo sempre levantará seu portador. "O mais bravos dos heróis carrega consigo o seus grandiosos atos, e essa armadura é especial aos que derrotam dragões." "Em terras de águias e de falcões, morou Vash, o forjador dessa lâmina, que poucos foram intrépidos o suficiente para conseguir."
Tópico criado em: 08/01/2018 às 18:48

No RPG Maker, você só tem 6 opções de velocidades. Muito muito lerda, Muito lerda, lerda, Normal, Rápida, e Muito Rápida. Porém, existe um pulo muito alto entre essas. Como por exemplo o rápida e muito rápida tem uma diferença absurda, enquanto o normal e rápida nem tanto. Existe como selecionar a sua velocidade por um valor mais maleável, e/ou com mais opções? Agradeço.

Virgyl

  • Veterano
  • *
  • Posts: 315
  • Ouros: 415
  • "É tão manifesto, que fica secreto."
  • Medalhas Medalha dada aos vencedores da 1ª Amostra de Arte de Steamfórdia
Resposta 1: 08/01/2018 às 18:54 - Última modificação por Virgyl em 08/01/2018 às 18:56

Boa tarde.
Bom, existe uma maneira sim:
 Basta você abrir um comando de script dentro de um evento com
 o comando "Definir rota de movimento", setar o evento/jogador que irá
 receber a modificação, e digitar isto dentro do comando de script:

  this._moveSpeed = (número)

 Eu, por exemplo, deixei um evento com uma velocidade estúpida, e digitei
this._moveSpeed = 4000, porém você pode mudar o número à vontade.

         Abraços, Virgyl.

Kerazzk

  • *
  • Posts: 179
  • Ouros: 99
  • Assuntos importantes, comunique-me via Discord.
  • Equipamentos "Esta peça foi forjada pelo grande ferreiro Dimitry, há algumas eras atrás. Diz-se a lenda que, não importa quantas vezes caia, este escudo sempre levantará seu portador. "O mais bravos dos heróis carrega consigo o seus grandiosos atos, e essa armadura é especial aos que derrotam dragões." "Em terras de águias e de falcões, morou Vash, o forjador dessa lâmina, que poucos foram intrépidos o suficiente para conseguir."
Resposta 2: 08/01/2018 às 19:15 - Última modificação por Caster em 08/01/2018 às 19:16

A princípio, funcionou, porém tem dois grandes problemas.
1- Velocidades acima de 7 não fazem diferença alguma em relação as anteriores.
2- Eu deixei o evento que estava fazendo o jogador se mover em Processo Paralelo, certo? Porém, o outro evento que estava no caminho que funcionava em Toque do Jogador, parou de funcionar assim que coloquei um número superior a 6.
Existe alguma forma de resolver estes problemas?

Virgyl

  • Veterano
  • *
  • Posts: 315
  • Ouros: 415
  • "É tão manifesto, que fica secreto."
  • Medalhas Medalha dada aos vencedores da 1ª Amostra de Arte de Steamfórdia
Resposta 3: 08/01/2018 às 19:29

Estranho, funcionou perfeitamente pra mim, principalmente
por eu usar a velocidade além da sétima. De toda a forma, creio que o erro n. 2 se dê ao fato de, tendo
em vista que sou uma negação como um programador, por ser rápido demais pro evento detectar, ou
algo do gênero.

Recomendo que procure a ajuda de algum programador, ou até
uma busca mais profunda no Google.

        Abraços, Virgyl.

Geraldo de Rívia

  • Mito
  • *
  • Posts: 4452
  • Ouros: 3887
  • O vento está sibilando.
  • Medalhas Vencedor do Protótipo Premiado Participantes do Maps Together 2
Resposta 4: 09/01/2018 às 21:47

Então, em se tratando de velocidade de movimento, o buraco é mais embaixo. São muitas as funções que usam a velocidade de movimento, cada uma aplica uma fórmula diferente, então quanto maior a alteração de velocidade, quanto mais esse valor se distancia do zero, mais catastrófico é seu impacto. Por exemplo:

Código: [Selecionar]
Game_CharacterBase.prototype.distancePerFrame = function() {
    return Math.pow(2, this.realMoveSpeed()) / 256;
};

Essa função calcula quantos tiles o evento se moverá em um frame. realMoveSpeed retorna a velocidade do jogador e + 1 caso ele esteja correndo. Assim sendo, a partir da velocidade 16 o evento estaria andando mais do que um tile por frame.

Código: [Selecionar]
Game_CharacterBase.prototype.animationWait = function() {
    return (9 - this.realMoveSpeed()) * 3;
};

Já a função acima calcula quanto tempo perdurará um frame da animação de movimento. A partir da velocidade 9, o tempo seria nulo ou negativo, daí das duas uma: ou o jogo travaria, ou; o jogador não perceberia a animação.

Fora estas existem muitas outras funções que usam a velocidade de movimento, mas percebe o quão sensível é esta variável? Mudar um ponto já causaria uma anomalia muito grande, portanto, ao se visar ter mais velocidades e movimento, deve se ter ciência que muitas funções terão de ser rescritas para funcionarem sob as novas circunstâncias. Infelizmente não lembro de nenhum plugin que já faça isso.