Skip to main content
O slotmachine é um caça-níquel de cassino com prop físico animado. O jogador senta numa máquina, aposta um valor fixo e gira três rolos (props vw_prop_casino_slot_*). O resultado é sorteado no servidor e o pagamento creditado conforme a combinação.

Funcionalidades

Rolos Animados

Três rolos físicos (vw_prop_casino_slot_*) animados no cliente conforme o resultado sorteado.

Sorteio Server-side

O resultado é gerado no servidor (random(16)), garantindo integridade; o cliente apenas anima.

Pagamento no Banco

O prêmio é creditado diretamente na conta bancária do jogador via vRP.GiveBank.

Reserva de Máquina

A máquina é reservada ao iniciar, impedindo uso simultâneo por outros jogadores.

Fluxo de uso

1

Interação

Interagir com a mesa dispara slotmachine:Init (cliente).
2

Identificação e reserva

O cliente identifica a máquina pela proximidade (Coords ≤ 0.25) e chama vSERVER.Check (reserva, impede uso simultâneo).
3

Aposta

EvSERVER.Payment cobra a aposta (vRP.PaymentFull); sem saldo, retorna false.
4

Sorteio

vSERVER.StartSlots sorteia A/B/C = random(16), guarda em Winner e devolve via vCLIENT.MachineSlots.
5

Resultado

O cliente anima os 3 rolos e chama vSERVER.Winner, que credita o prêmio (vRP.GiveBank).

Dependências

vrp

PaymentFull, GiveBank, playAnim, Destroy.

inventory

inventory:Buttons/CloseButtons.
Opcional: five_logs. Também usa a função Dotted + evento Notify.

Configuração

Este recurso não possui pasta config/. A tabela Machines está hardcoded em ambos server-side/core.lua e client-side/core.lua — mantenha as duas iguais.
  • Images: 16 entradas que mapeiam o índice sorteado (1–16) ao símbolo.
  • Multiplier: multiplicador por símbolo (3 iguais): 1=2, 2=4, 3=6, 4=8, 5=10, 6=12, 7=14.
Pagamento (Core.Winner): 3 iguais = Value * Multiplier[símbolo]; apenas 2 iguais = Value * 2; nenhum par = nada.

Eventos

A interface slotmachine é exposta com Tunnel.bindInterface em ambos os realms (servidor e cliente).

Recebidos no servidor

Cliente


Customização

  • Aposta/prêmio: Value por máquina + Multiplier.
  • Probabilidade: tabela Images (símbolos repetidos = mais chance).
  • Novas máquinas: entradas idênticas em Machines nos dois arquivos.
Sem comandos e sem persistência (economia via vRP.PaymentFull/GiveBank). O sorteio é server-side; o cliente só anima.