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

problema com sistema de escolhas personalizado

Iniciado por razier, 13/08/2018 às 15:20

13/08/2018 às 15:20 Última edição: 15/08/2018 às 17:54 por Corvo
Eu estou abrindo esse tópico de ajuda por que não estou conseguindo fazer um sistema de escolhas de três itens que quando eu seleciono um deles, e saio das escolhas e retorno para as escolhas a opção do item que eu peguei desapareça, ou seja o a opção do item que eu peguei não exista mais, sei que é um sistema baseado em mensagem, escolhas, condição, mas não estou conseguindo fazer corretamente aqui... já tentei por condição de item, variável e swit mas estou fazendo algo errado, talvez seja ate algo na organização do sistema... quem puder ajudar ficarei bem agradecido...

Olha, até seria bom um script que fizesse isso automaticamente, não sei se existe. Até aparecer, façamos manualmente. Você sabe como utilizar o comando 'Label' e 'Ir para Label'? Caso não saiba é só avisar que posto uma explicação. Mas resumindo o sistema: Você teria de criar todas as opções possíveis de combinações para as escolhas e ir mostrando-as conforme o jogador selecionasse. Por exemplo:

Você precisa de menus nas seguintes configurações:
a, b, c
a, b
a, c,
b, c
a
b
c

Sete menus, cada qual com suas respectivas opções. A lógica seria a seguinte: ao selecionar uma opção, o novo menu a ser exibido é aquele no qual a opção selecionada não aparece. Pode parecer confuso, mas é bem simples. Se precisar de exemplos basta avisar.

Citação de: Corvo online 13/08/2018 às 15:28
Olha, até seria bom um script que fizesse isso automaticamente, não sei se existe. Até aparecer, façamos manualmente. Você sabe como utilizar o comando 'Label' e 'Ir para Label'? Caso não saiba é só avisar que posto uma explicação. Mas resumindo o sistema: Você teria de criar todas as opções possíveis de combinações para as escolhas e ir mostrando-as conforme o jogador selecionasse. Por exemplo:

Você precisa de menus nas seguintes configurações:
a, b, c
a, b
a, c,
b, c
a
b
c

Sete menus, cada qual com suas respectivas opções. A lógica seria a seguinte: ao selecionar uma opção, o novo menu a ser exibido é aquele no qual a opção selecionada não aparece. Pode parecer confuso, mas é bem simples. Se precisar de exemplos basta avisar.

Olha quanto a script tambem nao conheço nenhum para isso, não entendo muito de label e ir para label não, ate porq nunca usei nenhum desses comandos em eventos, todo mundo fala que ele e parecido com o comando ciclo, para mim label é uma marcação ou seja algo que é colocado no sistema para priorizar uma ação dentro de um evento, se for possivel botar um exemplo que se enquadre dentro do sistema em questão facilitara sim bastante, eu ainda dei uma lida apos a sua resposta nesse site sobre label e exemplo:
http://pt-br.makerpedia.wikia.com/wiki/Label

quanto aos menus realmente nao é complicado é trabalhoso, e pode ser bem facil de se perder na hora de construir um sistema desse porte é necessario atenção, se tiver algum exemplo pode ser util para eu visualizar o que fazer ou o que estou fazendo errado...

A função 'Ciclo' vai repetir os comandos dentro dela até que a função 'Romper Ciclo' seja chamada. Basicamente é um loop. 'Label' é realmente uma marcação que serve para você saltar para determinadas partes do evento. Veja:

Mostrar escolhas: A, B, C
    A> Ir para Label: Selecionou A
    B> Ir para Label: Selecionou B
    C> Ir para Label: Selecionou C

#######################

Label: Selecionou A
Mostrar escolhas: B, C
    B> Ir para Label: Selecionou A e B
    C> Ir para Label: Selecionou A e C

#######################
Label: Selecionou C

[...]


No exemplo, conforme o jogador vai selecionando as opções ele é redirecionado aos novos menus que escondem a opção selecionada. O label é constituído apenas por um nome que é chamado quando você quer pular para a respectiva marcação. A posição atual do evento não interfere nessas chamadas, ou seja, você pode retroceder e avançar livremente. Não sei se essa explicação ajudou muito, à noite eu consigo um tempinho para fazer uma Demo se você quiser.

13/08/2018 às 16:22 #4 Última edição: 13/08/2018 às 16:41 por Corvo
Citação de: Corvo online 13/08/2018 às 16:13
A função 'Ciclo' vai repetir os comandos dentro dela até que a função 'Romper Ciclo' seja chamada. Basicamente é um loop. 'Label' é realmente uma marcação que serve para você saltar para determinadas partes do evento. Veja:

Mostrar escolhas: A, B, C
    A> Ir para Label: Selecionou A
    B> Ir para Label: Selecionou B
    C> Ir para Label: Selecionou C

#######################

Label: Selecionou A
Mostrar escolhas: B, C
    B> Ir para Label: Selecionou A e B
    C> Ir para Label: Selecionou A e C

#######################
Label: Selecionou C

[...]


No exemplo, conforme o jogador vai selecionando as opções ele é redirecionado aos novos menus que escondem a opção selecionada. O label é constituído apenas por um nome que é chamado quando você quer pular para a respectiva marcação. A posição atual do evento não interfere nessas chamadas, ou seja, você pode retroceder e avançar livremente. Não sei se essa explicação ajudou muito, à noite eu consigo um tempinho para fazer uma Demo se você quiser.

Eu vou tentar aqui, com a label num sistema menor de dois itens para testar, vai ver a label é a solução do meu problema...




Olha tentei criar um sistema com a label ele ficou assim: Não sei se fiz algo errado mas na hora de testar o sistema, o jogo trava... se puder em cima disso dizer o que to fazendo errado...

13/08/2018 às 16:45 #5 Última edição: 13/08/2018 às 19:25 por Corvo
No caso você precisa usar Label: nome para marcar a posição no evento e Ir para Label: nome quando quiser seguir até a marcação. Você marcou dois Labels com o nome 'grampo', isso por si só iria conflitar porque eles não podem ter nomes repetidos. Como as definições estão dentro de escolhas e as chamadas estão fora, você criou um loop. Testou o evento? Eu acho que se você executá-lo é bem possível que o jogo trave.

Além disso, a chamada ao Label deve ser a última opção da escolha. Tudo o que estiver abaixo dela será ignorado.


Aqui está a demo. Para abrir, crie um novo projeto e jogue esse arquivo dentro da pasta Data. Confirme a substituição do arquivo e pronto, é só abrir o editável. O evento estará no database na aba de eventos comuns. Lembre-se de fazer isso apenas em um novo projeto, se substituir o arquivo do seu projeto atual todos os eventos comuns já programados serão perdidos!

O sistema funciona, agora duvidas:

1) Eu posso jogar o sistema de menus como descrito na mensagem anterior dentro desse evento comum, certo?
2) Quando eu criar as condições o ideal seria no caso trabalhar com variavel ou o item?

1) Sim, pode.
2) Depende do que você quer verificar nos itens. É quase certo de que vai ter de usar variáveis de qualquer jeito.

Obrigado corvo, o problema foi resolvido aqui, vou colocar com o icone de resolvido!!!