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

Sistema de Estamina - Como fazer a estamina subir ao descansar/comer?

Iniciado por Sasaki, 15/12/2018 às 03:58

[box2 class=titlebg title=Boa noite a todos]

Bom, depois de quase uma semana consecutiva de tentativas erros, mais erros que tudo nesse mundo, finalmente resolvi me render a ajuda da comunidade. Mais do que nunca entendi que com o conhecimento que possuo atualmente jamais conseguirei terminar o que pretendo.
Então... me empenhei em criar um "Sistema de Estamina", como poderão ver nas imagens abaixo, da qual partiria toda a possibilidade de executar, ou não, uma ação no jogo. Como por exemplo: Andar; correr; pegar itens, etc. Dessa forma, a mesma funcionaria como um limitador de ações, visto que, quando se apresentasse 'cheia' seria possível realizar uma série de atividades, como as já citadas, do contrário menos atividades ou atividades mais leves, ou ainda nenhuma, poderiam ser executadas. Dentre estas, consegui configurar a possibilidade de andar, isto é, ao andar a estamina decresce em 1 (um) ponto. Está funcionando perfeitamente. Entretanto, os problemas surgem após isso.
Desejo que quando o indivíduo queira seja possível descansar, a fim de encher a estamina, e é aí que se encontra meu bloqueio. Simplesmente não consigo realizar tal ação. Quando configuro uma condição para apertar a tecla "A" (Shift do teclado) e aumentar a energia/estamina, o comando não funciona. Algumas vezes até consigo fazer aumentar, mas logo depois que a condição acaba tudo volta ao normal. E então tudo foi-se por água a baixo, mais uma vez...

[/box2]

[box2 class=titlebg title=Imagens]


Spoiler


[close]
Spoiler
Spoiler
[hs width=300 height=300]https://i.ibb.co/DQggYT6/Andar.png[/hs]
[close]

[/box2]
[box2 class=titlebg title=Finalizando...]
Desde já eu agradeço disposição e boa intenção de qualquer um que deseja me auxiliar nessa empreitada!!!
[/box2]

Certo, e onde exatamente estaria o problema? Na recuperação? Creio que seja útil verificar com dois eventos comuns. Um verifica constantemente se a tecla foi apertada. Quando for, aciona o switch que liga o segundo. Este, por sua vez, verifica se a tecla ainda está apertada. Caso esteja, incrementa os pontos. Caso não esteja, desliga o próprio switch.

Seria isso?

Citação de: Corvo online 15/12/2018 às 05:42
Certo, e onde exatamente estaria o problema? Na recuperação? Creio que seja útil verificar com dois eventos comuns. Um verifica constantemente se a tecla foi apertada. Quando for, aciona o switch que liga o segundo. Este, por sua vez, verifica se a tecla ainda está apertada. Caso esteja, incrementa os pontos. Caso não esteja, desliga o próprio switch.

Seria isso?
Muito obrigado pela prontidão em responder !!!

Então, não sei se minha descrição ficou clara suficiente, devido não ter postado as imagens de tentativas que deram errado, mas é justamente isso. A Estamina/Energia não era recuperada.

Eu acredito que o problema de não conseguir recuperar surgia das configurações de "Andar", onde o valor de Energia será sempre reduzido pela quantidade de passos.
Vê se meu raciocínio está certo: Meu valor original de Energia é 50, logo meus passos são 0, uma vez que ainda não me movimentei no mapa. Se, por exemplo, meu herói andar 10 passos, consequentemente minha energia será reduzida em 10 e seu valor atual ficará em 40. Correto?
Bom, se nessas condições eu desejar descansar (Para recuperar 10 de Energia), meu valor de energia subirá para 50, entretanto, meus passos continuam com um valor de 10, o que logicamente subtrairia 10 de Energia e a mesma retornaria para 40. Ou seja, a ação Recuperar foi em vão.

Pelo que consegui absorver do que você propôs, construi isso:
Spoiler
[hs width=300 height=300]https://i.ibb.co/vJz4PP1/Descanso.png[/hs][hs width=300 height=300]https://i.ibb.co/x1BLppy/Descanso02.png[/hs]
[close]
Não sei se está da maneira que você descreveu, pois ainda não sei mexer muito em eventos e tal, mas se foi realmente isso ainda assim surge um problema. Agora é necessário que eu permaneça constantemente com a tecla pressionada para recuperar a Estamina.

Quando cheguei nesse resultado resolvi fazer algumas modificações, não sei se elas tem algum sentido, mas agora eu consegui fazer a Estamina ser recuperada, contudo só funciona uma única vez e mesmo que eu pressione a Tecla necessária para ativar a condição nada acontece. Aliás, quando faço isso o valor da Estamina nunca fica inferior a 10 e, portanto, a Barra de Estamina nunca esvazia-se.
Spoiler
[hs width=300 height=300]https://i.ibb.co/5YZQL6X/Descanso03.png[/hs]
[close]
Por enquanto é isso... Ainda não solucionei os problemas para finalizar o sistema.
OBS: Mudei a tecla para Q, pois o Shift estava causando uns erros aqui...

Citação de: Sasaki online 15/12/2018 às 16:15
[...]
Não sei se está da maneira que você descreveu, pois ainda não sei mexer muito em eventos e tal, mas se foi realmente isso ainda assim surge um problema. Agora é necessário que eu permaneça constantemente com a tecla pressionada para recuperar a Estamina.
[...]
Sim, não era essa a intenção?

Pelos seus eventos, as condições e modificações das variáveis estão sendo feitas diretamente. Sempre use o comando Wait ao menos uma vez por evento. Da forma como está o programa pode verificar mudanças em uma mesma variável ao mesmo tempo, a espera faz com que esse erro não ocorra.

Agora, quanto aos cálculos, se você não reduzir o número de passos quando atualiza a energia, esse erro vai acontecer mesmo. Solução, use o variável para guardar o valor total só se precisar dele. Nesse caso atualize a variável que está sendo usada no cálculo toda vez que a energia for recuperada. Aliás, pensando bem essa fórmula está um pouco estranha, os únicos cálculos que você devia usar são:

O personagem se moveu?
    Energia -= 10
O personagem está se recuperando?
    Energia += 10