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

Gostaria de saber como realizar um sistema de fome e sede.

Iniciado por Finke, 12/01/2021 às 15:35

12/01/2021 às 15:35 Última edição: 12/01/2021 às 18:54 por Finke
Olá, queria saber como criar um sistema de fome e sede, que deixasse o meu personagem com fome e que quando eu comesse algo a fome diminuía, e também que ele ficasse com alguns bad status quando estivesse com fome ou sede.



12/01/2021 às 18:23 #3 Última edição: 12/01/2021 às 18:33 por Finke
cara, sinceramente vc pode só me ajudar com a duvida? se não souber tudo bem.

Citação de: Finke online 12/01/2021 às 18:21
ue?
Não entendi o motivo do post-duplo, não te pedi nada demais além de seguir umas orientações (Que não são regras obrigatórias)

Citação de: Finke online 12/01/2021 às 18:23
cara, sinceramente vc pode só me ajudar com a duvida? se não souber tudo bem.
Claro que posso, já não fiz isso antes, por que não faria agora?

Calma po, não tem porque se exaltar, desculpa se não segui as orientações. Se você pudesse me ajudar com esse sistema, ficaria muito grato.

Citação de: Finke online 12/01/2021 às 18:54
Calma po, não tem porque se exaltar
Por que calma? Em nenhum momento me exaltei, apenas escrevi de maneira clara e objetiva. Somente você está se exaltando.
Releia minha assinatura e vai entender.

Sobre o fórum
Ficaria imensamente agradecido se você se atentasse ao como funciona essa comunidade, o suporte que pessoas como eu fornecem não é cobrado e raramente creditado, por isso existem mais maneiras de demonstrar gratidão, as quais são visíveis aqui no sistema do fórum.

Por ventura o melhor é se vier à criar um projeto agradecer o espaço colocando o nome da comunidade ou o meu Nick nos créditos, algo que não precisaria explicar, mas ao que vejo está sendo necessário.

Eu não sou membro da equipe da comunidade, apenas frequento aqui da mesma maneira que você, porém tenho tanto tempo de experiência com essas engines quanto esse fórum de vida.
Apenas para ficar claro que quase nunca dou suporte pra ninguém, se fiz no seu caso é por que provavelmente você postou tópicos de maneira mais correta do que a grande maioria dos novatos e por isso fico feliz em ajudar.

Não responda essa explicação, afinal, você não responde os "Termos de uso" de algum software diretamente para ele.

Ou seja, não é necessário e até é bem dispensável questionar ou agradecer o conteúdo deste texto dentro do SPOILER, apenas leia, compreenda e se estiver tudo certo estarei feliz em poder ajudar em mais dúvidas.
[close]

Citação de: Finke online 12/01/2021 às 18:54Se você pudesse me ajudar com esse sistema, ficaria muito grato.
Tente assim, imagine que o personagem morra de fome em 1 hora de jogo e de sede em 30 minutos.

Crie uma variável chamada "Fome" e um "Sede", crie um evento comum ativo por um Switch, pra poder pausar o sistema em caso de Cutscene ou pra poder evitar conflito com outros sistemas.

Dentro deste evento chame a variável fome para adicionar +1 e a sede também.
Após ambos coloque um temporizador de 1 segundo.

Ao final crie uma condição para variável fome caso for mais que 3600 (isso é equivalente à o tempo em segundos de 1 hora inteira), ative a "Option" pra aparecer a Else.
Dentro dessa condição coloque um Game Over ou teleporte para um mapa isolado para fazer um Game Over personalizado.

Agora dentro da Else da condição "Fome" crie uma condição para "Sede", mas que aconteça se atingir 1800 (Quantidade de segundos equivalente à 30 minutos).
Dentro desta faça a mesma coisa, se preferir faça um Game Over diferente pra diferenciar.

Ficará mais ou menos assim:
@> Control Variables: [XXXX:Fome] += 1 
@> Control Variables: [XXXX:Sede] += 1 
@> Wait: 1.0 seconds
@> Conditional Branch: Variable [XXXX:Fome] > 3600
  @> Game Over
  @>
 : Else
  @> Conditional Branch: Variable [XXXX:Sede] > 1800
    @> Game Over
    @>
   : Branch End
  @>
 : Branch End


Para evitar ficar conflito da fome e sede é necessário usado o Else.

Para poder poder evitar problemas com o(s) "Game Over(s)" personalizados você deve desativar a Switch por um evento de mapa automático no(s) mapa(s) criados para isso logo no começo.

Caraca, não é tão difícil quanto imaginei, valeu a ajuda, mas se eu quiser adicionar bad stats ao personagem quando ele estiver com niveis baixos de fome e sede? e como faço pra ele comer ou beber algo e o contador diminuir total ou gradativamente o nivel de fome e sede?

Opa, eu testei aqui porem não deu certo, ate diminui o tempo pra testar mais rapido mas não consegui resultado.
Coloquei como você disse:

@> Control Variables: [0013:Fome] += 1
@> Wait: 1.0 seconds
@> Conditional Branch: Variable [0013:Fome] > 15 (coloquei 15 pra testar dentro de 15 segundos)
  @> Game Over
  @>
: Else
  @>
: Branch End

Citação de: Finke online 13/01/2021 às 15:08(...)nível de fome e sede?
Daí tem que criar mais "Conditions" em base do tempo.
Se acima de 1800 (30 minutos) morre de sede, então "igual à 900" é estar com metade do nível de sede.

Citação de: Finke online 13/01/2021 às 15:20
Opa, eu testei aqui porem não deu certo, ate diminui o tempo pra testar mais rapido mas não consegui resultado.
Coloquei como você disse:

@> Control Variables: [0013:Fome] += 1
@> Wait: 1.0 seconds
@> Conditional Branch: Variable [0013:Fome] > 15 (coloquei 15 pra testar dentro de 15 segundos)
  @> Game Over
  @>
: Else
  @>
: Branch End
Por que você colocou uma Condition dentro de outra e deixou o ELSE vazio?

Tá totalmente diferente do meu exemplo.

Eu não entendi, no meu exemplo usei só a variável fome.

Minha vista está ruim, desculpa.
Você colocou em processo paralelo o evento comum e ativou a Switch no arranque do jogo?

Sim, coloquei a switch pra ativar logo quando a cutscene acaba e o jogo começa.

13/01/2021 às 17:34 #13 Última edição: 13/01/2021 às 17:59 por Crixus
Eu testei e funcionou perfeitamente.

Coloque uma mensagem de texto antes da primeira variável pra ter certeza, escreva assim pra saber também se a variável 13 está recebendo valor:
Status de Fome: \v[13]


Editado:
As IF/Conditions pra criar o Status Bad não devem ter Else, se quiser criar níveis tipo "entre X e Y valor".

Vamos usar como exemplo entre 5 e 10 segundos pro nível 1 de fome e entre 11 e 20 pro nível 2, faça assim:
@> Conditional Branch: Variable [0013:Fome] > 5
  @> Conditional Branch: Variable [0013:Fome] < 10
    @> Comment: #Nível 1 de fome
    @>
   : Branch End
  @>
 : Branch End
@> Conditional Branch: Variable [0013:Fome] > 11
  @> Conditional Branch: Variable [0013:Fome] < 20
    @> Comment: #Nível 2 de fome
    @>
   : Branch End
  @>
 : Branch End

Eu chequei mas a variavel não está recebendo valor.