Skip to content

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 ​

cfg
ensure kay_aniversario

Coloque 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 ​

  1. Cadastro. O jogador sem data recebe a tela PerguntarApos segundos depois de entrar. Ele informa dia e mês e escolhe se a data vale para promoções e eventos. Pode pular.
  2. Festa. No dia certo, com a opção de promoções ligada, a festa começa FestaApos segundos depois de entrar. Acontece uma vez, sem repetir em menos de 300 dias.
  3. 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.
  4. Aviso. O chat anuncia o aniversário, e cada jogador online recebe o convite para dar um presente.
  5. Desconto. Durante Janela, a loja do pause aplica o desconto de Desconto.

Quem escolheu não usar a data em promoções não recebe a festa automática.

Comandos ​

ComandoO que faz
/presenteAbre 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 ​

TipoRegra
ItemSai da mochila. Não aceita arma, munição, item danificado nem a própria caixa
DinheiroSai do banco
DiamantesSaem do saldo de diamantes
CarroPede 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çãoPadrãoO que muda
Diamantes500Diamantes da festa
Desconto0.7Multiplicador do preço na loja. 0.7 dá 30% de desconto
Janela172800Duração da festa e do desconto, em segundos
PorMaquina31536000Tempo 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
Segundos10Duração da tela de festa
FestaApos20Segundos entre entrar e começar a festa
PerguntarApos90Segundos entre entrar e pedir a data
Mensagemtexto de parabénsMensagem 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 ​

lua
-- 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 data

Evento 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.