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

Sistema de ticket por dia... e eventos especiais (feriados) RPG MAKER VX ACE

Iniciado por amadeudeath, 27/12/2019 às 17:33

Galerinha Bom dia/tarde/noite... independo do horário que vós lê...

Queria pedir um favor, ou até mesmo um script se possível, eu queria saber se tem como gerar um ticket que o jogador ganha a cada 24 horas, assim ela poderia trocar esse ticket por armas, armaduras, poção entre outras coisas.... mas queria fazer isso de um modo offline, e também ter uma variavel que guardasse uma data em especifica e ficasse on no dia e depois off....

1. Vamos lá o ticket pode ser por uma váriavel, que adicionaria um item no inventario... ou um npc que dá o ticket a cada 24 horas.... (se der para usar o esquema do cronometro ficaria mais fácil, mas n entendo nada daquilo ' -')....

2. queria ter uma variavel que quando desse o horario liberasse um evento de teletransporte para certas areas de um feriado que la teria uma missão e ganhasse alguns item esxclusivo (esse acho que precisaria de script) MAS se souberem alguem que ja tenha criado, agradeceria me passar o link...


(Desculpa estar postando isso, mas já fazem 5 meses que ando procurando e queria ter lançado um alpha do meu projeto de natal, mas não rolou por conta disso, então vou ver se até carnaval eu conseguir esses scripts ou uma ajuda com eventos eu possa dar um alpha para vocês.)

ps: SE FOR ALGO MUUUUUUUIIIITO trabalhoso deixa quieto ^^

Obrigadinho por lerem até aqui sz  :ded:

Qual engine?

Já tentou procurar sistemas de datas? Tipo a maioria dessas coisas que você está pedindo não tem pronto, porém com um script que mexa com a lib que retorne o dia, horas etc... você pode programar a partir dai por eventos para criar as condições que você quer.


Citação de: Raizen online 27/12/2019 às 18:04
Qual engine?

Já tentou procurar sistemas de datas? Tipo a maioria dessas coisas que você está pedindo não tem pronto, porém com um script que mexa com a lib que retorne o dia, horas etc... você pode programar a partir dai por eventos para criar as condições que você quer.




Então como falei eu n majo de programação... tipo eu sei me virar, mas criar do zero ai já não é comigo... E sim ja procurei em tudo :/ e n consigui achar.

Plis se souber um site que tenha os scripts ou puder me orientar agradeço.

O problema maior que eu vejo aí é a parte do offline. Se a única fonte de informação que você tem é a própria máquina do usuário, basta que ele mude a data nas configurações do sistema operacional pra ganhar tickets infinitos.

Minha sugestão é puxar a data de alguma API mesmo (tem várias por aí!), e limitar essa mecânica a quando a internet estiver disponível.

De resto, é bem simples implementar essas coisas, e, como o @Raizen comentou, pra maioria basta um script expondo uma função e uma condição em um evento.
~ Masked

Olha a parte do offline, eu n ligo a pessoa gerar ticket infinito, é aq pessoa que tem que ter a consciencia disso ><... eu só quero algo simples pq eu tmbm sou meio burro...


Agora o que seria API?

@Brandt

Citação de: amadeudeath online 28/12/2019 às 03:06
Olha a parte do offline, eu n ligo a pessoa gerar ticket infinito, é aq pessoa que tem que ter a consciencia disso [...]

Se tu começar o projeto com esse pensamento ele não vai durar uma semana. A integridade do jogo é responsabilidade única do desenvolvedor. Se tu não tiver cuidado com isso, como o pessoal vai confiar que você está cuidando da segurança dos dados deles também?

API, resumindo muito, é um código que vai buscar informação em um servidor externo. O Brandt disse pra você usar uma API que te retorne o horário a ser usado no jogo. Daí os jogadores não tem como alterá-lo pra tirar vantagem.

Citação de: Corvo online 29/12/2019 às 09:49
Se tu começar o projeto com esse pensamento ele não vai durar uma semana. A integridade do jogo é responsabilidade única do desenvolvedor. Se tu não tiver cuidado com isso, como o pessoal vai confiar que você está cuidando da segurança dos dados deles também?

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Eu entendi, mas calma lá é só um projeto offline, não vai ter nada online é apenas um RPG que estou criando, tipo Lufia, zelda... e afins, como falei queria um sistema nem que seja por eventos com o cronometro (que eu n entendi bulufas daquilo), só para gerar bilhetes a cada 24 horas... para o cara ir trocar em um npc local... não preciso ser algo online é só para o pessoal ter algo no jogo para poder "entrar e pegar".

@amadeudeath

Se você não se importa com a integridade do negócio, então dá pra fazer relativamente fácil com um evento comum:


A única parte mais mágica aí é o primeiro comando, que atribui Time.now pra variável usando uma chamada de script:

Magia
[close]

De resto, você deve estar familiarizado com todos os comandos aí.

Essa opção é até que bem flexível, você pode ativar e desativar o evento usando uma switch (inclusive, não esqueça de ativar a switch pra ele acontecer!), e talvez colocar uma mensagem, uma picture ou mesmo uma animação pra aparecer quando ele acontecer, etc. etc.

Claro, dá pra simular o mesmo comportamento com scripts e ainda colocar mais uns efeitos maneiros, mas isso aí deve ser suficiente e mais fácil pra você manter aí.




Quanto à outra parte da pergunta, de ter eventos sazonais (só em determinada época do ano), também é possível com esse Time.now aí:


Você pode também colocar essas condições direto no evento que você quiser, mas eu gosto de ativar uma switch porque permite mudar o gráfico dos eventos, por exemplo. De novo, não esqueça de ativar a switch que faz o evento acontecer.

Também é possível fazer condições pra hora, minuto, segundo e até dia da semana:
Time.now.year # Ano
Time.now.month # Mês
Time.now.day # Dia
Time.now.hour # Hora
Time.now.min # Minuto
Time.now.wday # Dia da semana (0 = Domingo, ..., 6 = Sábado)


Pros dias da semana, ainda tem condições específicas:
Time.now.sunday? # Domingo
Time.now.monday? # Segunda
Time.now.tuesday? # Terça
Time.now.wednesday? # Quarta
Time.now.thursday? # Quinta
Time.now.friday? # Sexta
Time.now.saturday? # Sábado
~ Masked

@Brandt

:wow: :wow: :wow: :wow: :wow: eeeeeee  :'0': :'0': :'0': :'0': :'0': :'0': :'0': :'0':

VOCÊ É UM DEUS???

Mano de verdade vlw mesmo vontade de criar 500 bot só para dar ouro infinito para você... meeeee to quase chorando isso vai me ajudar pra kct ;-; .... a unica pergunta o Time.now é um script certo? e onde eu pego esse Script?

A entoum para eu colocar no npc a parte do ticket... teria alguma condição para isso rolar? tipo.... ex:

"Switch: 0001= ticket está on"... ai ele faz todo o processo, certo?... caso não o npc desaparece? ou ele fica estatico sem interação?

@Brandt

"Essa opção é até que bem flexível, você pode ativar e desativar o evento usando uma switch (inclusive, não esqueça de ativar a switch pra ele acontecer!), e talvez colocar uma mensagem, uma picture ou mesmo uma animação pra aparecer quando ele acontecer, etc. etc." <- que SWITCH eu ativo aqui? '- ' fiquei perdido e ai n tá rodando o trem :/

Deus não, mas que eu manjo de umas bruxarias aí eu não nego hahaha

O Time.now (mais especificamente a classe Time, que tem uma função now) na verdade é um componente padrão do Ruby (a linguagem usada no RMVXAce), então de certa forma, sim, é um script, mas não, você não tem que pegar de nenhum lugar, ele já está lá sem você nem ter que pedir.

A switch 1 ali no caso é a que ativa o evento comum. Um evento comum é um evento que funciona em todos os mapas sem você ter que criá-los neles, e tem três formas de ativação: "Nenhum", ou seja, só é ativado quando chamado usando o comando "Chamar Evento Comum", "Processo Paralelo", que roda repetidamente enquanto alguma switch estiver ligada (no nosso caso, a switch 1; você pode escolher outras, tanto faz, basta mudar na configuração dele), e "Automático", que funciona igual ao paralelo mas trava o jogador e outros eventos.

Na prática: se você quiser que o ticket esteja sempre ativo, ligue a switch 1 logo no início do jogo em algum evento automático e deixe ela sempre ligada. Se não, e quiser que ele esteja disponível só depois de falar com algum evento em alguma parte do jogo, por exemplo, ative a switch 1 nesse evento.

Além disso, se você quiser desativar o ticket em algum ponto do jogo, basta desligar essa switch 1 (ou qualquer que seja a que você botou no evento) e pronto.

Lembre que o evento comum não é um daqueles NPCs que você cria no mapa. Você configura eles numa aba especial do banco de dados chamada Eventos Comuns.
~ Masked

@Brandt
Entendi, mas o ticket não tá vindo e eu não sei o por que... tipo eu deixei do modo que você deixou :/... igualzinho reli e refiz ate duas vezes glkjsdfgjsfdgjslk...  :T.T:

A então queria que o ticket viesse de algum npc, MAS eu acho que entendi, amanhã posso focar mais e trabalhar em cima do que você me deu :3

Isso é provavelmente porque o evento só dá o ticket depois de um dia (da primeira vez ele não dá!). Tente mudar a data do computador e adiantar um dia, se estiver tudo certo você deve receber o ticket normalmente.

Uma alternativa pra isso é colocar ali na condição "Última Data == 0" um comando pra adicionar o ticket, aí você recebe ele na primeira vez que o evento rodar também.

Ah, se você quer que isso aconteça em um NPC, é só colocar exatamente os mesmos comandos nele. Vai funcionar da mesma forma, e você não precisa se preocupar em ativar switch nenhuma nem nada!

Nesse caso, você pode até adicionar uma exceção pra condição final (da diferença) pra mostrar uma mensagem tipo "Ainda não se passou um dia" ou coisa do tipo.
~ Masked

@Brandt

AEEEEEEE Rodou sz  :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow: :rainbow:

Homem se casa casa comigo na moral? gjkdhsfgjkhsdjkghs

e sobre a parte da zona tmbm é funcional sz meee tá perfeito sz incrivel, de verdade mesmo obrigado :3