Aniversário
Pede a data de aniversário do jogador e faz uma festa no dia: diamantes, bolo, caixa de presentes, desconto na loja e aviso para a cidade. Os outros jogadores mandam presentes durante a festa.
Precisa de: krs
Só funciona no framework krs. Usa também inventory, garages e o evento emotes do anim.
Instalação
ensure kay_aniversarioColoque depois do krs. Veja a ordem completa.
O script não cria as tabelas aniversario_presentes e aniversario_maquinas, nem as colunas de aniversário de accounts. Tudo vem no database.sql da base do krs.
Os itens bolo_aniversario e caixa_presente já existem no krs, e o inventory já trata o uso deles.
Como funciona
- Cadastro. O jogador sem data recebe a tela
PerguntarApossegundos depois de entrar. Ele informa dia e mês e escolhe se a data vale para promoções e eventos. Pode pular. - Festa. No dia certo, com a opção de promoções ligada, a festa começa
FestaApossegundos depois de entrar. Acontece uma vez, sem repetir em menos de 300 dias. - Presentes do script. O aniversariante ganha o bolo e a caixa. Os diamantes saem uma vez por ano por máquina: em outra conta na mesma máquina, a festa acontece sem diamantes.
- Aviso. O chat anuncia o aniversário, e cada jogador online recebe o convite para dar um presente.
- Desconto. Durante
Janela, a loja dopauseaplica o desconto deDesconto.
Quem escolheu não usar a data em promoções não recebe a festa automática.
Comandos
| Comando | O que faz |
|---|---|
/presente | Abre a tela de presentes para quem está em festa |
/aniversario <passaporte> | Dispara a festa de um jogador online. Exige o grupo de Config.Grupo ou o console do servidor |
Presentes
| Tipo | Regra |
|---|---|
| Item | Sai da mochila. Não aceita arma, munição, item danificado nem a própria caixa |
| Dinheiro | Sai do banco |
| Diamantes | Saem do saldo de diamantes |
| Carro | Pede confirmação e muda de dono na hora. O aniversariante não pode ter o mesmo modelo. Carro alugado, de trabalho, bloqueado ou apreendido não vale |
O presente fica guardado até o aniversariante usar a caixa e abrir. O item exige espaço na mochila.
A caixa vazia, depois do fim da festa, some ao ser usada. O bolo toca a animação de Emote.
Permissão
/aniversario exige o grupo de Config.Grupo, que por padrão é Admin.
Configuração
Tudo fica em shared-side/config.lua.
| Opção | Padrão | O que muda |
|---|---|---|
Diamantes | 500 | Diamantes da festa |
Desconto | 0.7 | Multiplicador do preço na loja. 0.7 dá 30% de desconto |
Janela | 172800 | Duração da festa e do desconto, em segundos |
PorMaquina | 31536000 | Tempo até a mesma máquina ganhar diamantes de novo, em segundos |
Bolo | "bolo_aniversario" | Item do bolo |
Caixa | "caixa_presente" | Item da caixa |
Emote | "cake" | Animação da festa e do bolo |
Grupo | "Admin" | Grupo do /aniversario |
Segundos | 10 | Duração da tela de festa |
FestaApos | 20 | Segundos entre entrar e começar a festa |
PerguntarApos | 90 | Segundos entre entrar e pedir a data |
Mensagem | texto de parabéns | Mensagem da tela de festa |
Os textos do chat e dos avisos são só em português, sem suporte a ox:locale. O idioma não muda com ox:locale.
Para programadores
-- servidor
exports.kay_aniversario:Desconto(charId) -- Config.Desconto durante a festa, ou 1.0
exports.kay_aniversario:Registrar(source, "25/12", true) -- cadastra a data e a opção de promoções; true/false
-- cliente
exports.kay_aniversario:Pendente() -- true se o jogador ainda não tem dataEvento local de servidor: kay_aniversario:Use com source, charId, full, slot, item. O inventário dispara esse evento quando o jogador usa o bolo ou a caixa.
