O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[MV] Dúvida como escrever com o SRD Sequence Input

Iniciado por mat_graz, 18/11/2021 às 12:43

18/11/2021 às 12:43 Última edição: 18/11/2021 às 13:41 por mat_graz
Eai fórum blz?
Tô tentando implementar um sisteminha de timed attack durante o action sequence, tô usando um plugin do SRD chamado Sequence Input, a página do plugin é essa aqui. Nele, você cria uma janela de tempo (em frames) onde o jogador pode pressionar um input e guardar um valor numa variável, o valor é definido pelo número de frames que demorou até o jogador pressionar o botão. Com isso, dá para criar um sistema onde você estipula um multiplicador para o cálculo de dano baseado na precisão do jogador ao acionar o input. Se nenhum input for acionado, então o valor da variável será zero.

A lógica que eu estou fazendo é assim:
-o cálculo de dano de um ataque é (( a.atk - b.def / 2 )/2)
- coloco um multiplicador que é o valor de uma determinada variavel (chamarei de Y): (( a.atk - b.def / 2 )/2)*v[y]
- nos notetags da skill, durante a action sequence, eu coloco para começar e terminar a janela de pressionar o input, nesse caso estou usando 30 frames
- depois do input, ele vai determinar valor para uma variável do plugin (chamarei de N)
- após isso aí eu mando checar o valor e dependendo do valor da v[N], vou atribuir um valor para v[y] multiplicar o dano, e é aí que estou em dúvida em como escrever isso. A forma de fazer isso é através da linha de action sequence CHANGE VARIABLE X

Eu quero que existam 4 condições para atribuir um valor para o multiplicador v[Y]:
1) Se nenhum input for pressionado, ou seja, Se v[N] = 0 , então v[y] = 1 , não haverá multiplicador
2) Se input for pressionado entre os frames 1 e 10, ou seja, Se v[N] <= 10 mas > 0 , então v[y] = 1.25
3) Se input for pressionado entre os frames 11 e 20, ou seja, Se v[N] >=11 mas <=20, então v[y] = 1.5
4) Se input for pressionado entre os frames 21 e 30, ou seja, Se v[N] >20 mas <=30, então v[y] = 1.25

Ou seja, tem um 'sweet spot' no timing entre os frames 11 e 20 onde o multiplicador é maior.

A questão é que eu não sei escrever isso na sintaxe certa, minhas notetags estão assim no momento:
<target action>
move user: targets, front, 15, auto offset x +150
wait for movement
wait: 5
start sequence input: ok, 1 (aqui começa a janela do input, "1" é o ID da variável que está guardando este valor)
motion swing: user
animation 123: user
wait for sequence input: 30 (aqui declaro que ela dura 30 frames)
end sequence input (aqui encerra a janela)
motion attack: user
wait: 10
if $gameVariables.value(1) = 0  (aqui é onde estou com dúvidas de como escrever)
animation 122: user  (animação de feedback para o jogador)
CHANGE VARIABLE 2 = 1  (variavel 2 é a variavel que será o multiplicador)
else
if $gameVariables.value(1) <= 10
animation 126: user
CHANGE VARIABLE 2 = 1.25
else
if $gameVariables.value(1) > 10
animation 125: user
action animation: target
CHANGE VARIABLE 2 = 1.5
end
action effect
wait for animation
</target action>



Eu não tô conseguindo escrever o resto por que eu não sei como falar 'maior que 10 porém menor ou igual a 21' e do jeito que eu escrevi tá errado por que se confunde <10 com =0 por que zero é menor que 10.... Acho que minha dúvida é simples pq eu entendi a lógica eu só não tô sabendo qual melhor forma de escrever ela, a sintaxe correta

Você pode ler o plugin no navegador nesse link