Skip to content

Cassino ​

Cassino com caça-níqueis, roda da sorte, corrida de cavalos, roleta, pôquer, blackjack, bar, caixa e área VIP. O prêmio da roda da sorte é um veículo no pódio, escolhido pela staff.

Precisa de: krs, oxmysql, assets, OneSync, servidor build 4752 ou mais novo e game build 2060 ou mais novo

Só funciona no framework krs. Com Config.UseTarget ligado, usa o resource target.

Instalação ​

cfg
ensure assets
ensure casino

Coloque depois do krs e do oxmysql. Veja a ordem completa.

O script não cria as tabelas casino_cache e casino_players. Elas vêm no database.sql da base do krs.

Como usar ​

O jogador compra fichas no caixa e usa as fichas nos jogos. Na troca de volta, o dinheiro cai no banco.

Na compra, o dinheiro sai primeiro do item dollar. O resto sai do banco, se o jogador tiver cartão.

Por padrão, as fichas ficam salvas no cassino, sem item no inventário. Config.UseOnlyMoney e Config.ChipsInventoryItem mudam isso.

O VIP do cassino é comprado no caixa e libera as mesas de alto limite.

Comandos ​

Todos exigem o grupo Admin, nível 2. /casinogivevehicle, /casinoban e /casinounban também funcionam no console do servidor.

ComandoO que faz
/casinoadminAbre o menu que liga e desliga jogos e áreas
/casinokick <id>Expulsa o jogador do cassino
/casinoban <id ou identificador>Proíbe a entrada no cassino
/casinounban <id ou identificador>Tira a proibição
/casinocarMostra as instruções do pódio e marca o lugar de entrega no GPS
/casinovehDentro de um veículo, coloca o veículo no pódio
/casinovehremoveTira o veículo do pódio
/casinogivevehicle <id>Entrega o veículo do pódio ao jogador

O identificador tem o formato char:<passaporte>. Use esse formato para tirar a proibição de quem está offline:

/casinounban char:123

As respostas de /casinoban e /casinounban aparecem no console do servidor.

Permissão ​

O grupo e o nível de admin são fixos no código: Admin, nível 2. Config.JobName, Config.BossName e Config.BossGrade não abrem as funções de gerência para um emprego. Só admin passa nessa checagem.

Configuração ​

Tudo fica em config.lua, sem mesclar padrão. Mantenha as opções no arquivo. Os textos ficam em locales/pt.lua. O idioma não muda com ox:locale.

Fichas e caixa:

OpçãoPadrãoO que muda
UseVirtualChipstrueFichas salvas no cassino
UseOnlyMoneyfalseJoga direto com dinheiro, sem fichas
ChipsInventoryItem"casino_chips"Item das fichas quando as duas opções acima estão desligadas
ExchangeRate1Dinheiro por ficha
DailyWidthdrawLimit0Limite diário de troca. 0 desliga
CASHIER_DAILY_BONUS0Bônus diário em fichas. 0 desliga
CASHIER_VIP_PRICE50000Preço do VIP
CASHIER_VIP_DURATION604800Duração do VIP, em segundos
CASHIER_MULTITASKtrueVários jogadores usam o caixa ao mesmo tempo
PRICES_CURRENCY"$"Símbolo do dinheiro

Roda da sorte:

OpçãoPadrãoO que muda
LUCKY_WHEEL_ENABLEDtrueLiga a roda
LUCKY_WHEEL_PAY_TO_SPIN"gemstone"Item cobrado para girar
LUCKY_WHEEL_PAY_AMOUNT1000Quantidade do item
LUCKY_WHEEL_COOLDOWN60Espera entre giros, em segundos
LUCKY_WHEEL_FREE_DRINKS_FOR86400Tempo do prêmio de bebida grátis, em segundos
LUCKY_WHEEL_CAR_WINABLEtrueO veículo do pódio pode sair
LUCKY_WHEEL_CAR_ONE_WINNERtrueO pódio esvazia quando alguém ganha
LUCKY_WHEEL_VEHICLE_ALTERNATIVE"Money9"Prêmio quando não há veículo no pódio
JOB_PODIUMCAR_OWNERSHIP_CHECKtrueSó aceita no pódio veículo que a pessoa tem
JOB_PODIUMCAR_OWNERSHIP_DELETE_ORIGINALtrueTira o veículo do dono ao colocar no pódio

Corrida de cavalos. As opções IT_MAIN_EVENT_* valem para o evento principal e as IT_LOCAL_RACE_* para a corrida individual:

OpçãoPadrãoO que muda
IT_MAIN_EVENT_ENABLEDtrueLiga o evento principal
IT_MAIN_EVENT_MIN_PLAYERS1Mínimo de jogadores
IT_MAIN_EVENT_BETTING_TIME300Tempo de apostas, em segundos
IT_MAIN_EVENT_RACE_MIN_BET, IT_LOCAL_RACE_MIN_BET10Aposta mínima
IT_MAIN_EVENT_RACE_MAX_BET, IT_LOCAL_RACE_MAX_BET10000Aposta máxima
IT_MAIN_EVENT_RACE_WIN_CHANCE, IT_LOCAL_RACE_WIN_CHANCE50Chance de vitória
IT_MAIN_EVENT_HORSE_ODDS, IT_LOCAL_RACE_HORSE_ODDS2, 5, 6, 15, 16, 30Cotação dos cavalos

Mesas de limite baixo:

OpçãoPadrãoO que muda
ROULETTE_JUNIOR_ENABLEDtrueLiga a roleta
BLACKJACK_JUNIOR_ENABLEDtrueLiga o blackjack
POKER_JUNIOR_ENABLEDtrueLiga o pôquer

Entrada e ambiente:

OpçãoPadrãoO que muda
UseTargettrueInteração pela mira. false usa tecla
LeaveThroughTeleportfalseEntrada e saída por teleporte
EnterPosition2469.58, -280.02, -58.27Onde o jogador aparece ao entrar
LeavePosition919.13, 51.12, 80.90Onde o jogador aparece ao sair
OpeningHourstodos os dias { -1 }Horas abertas por dia da semana. { -1 } é o dia inteiro
ServerTimezoneOffsetHours0Ajuste de fuso, em horas
CASINO_ENABLE_AMBIENT_PEDStruePessoas no ambiente
CASINO_AMBIENT_PEDS_DENSITY3Quantidade de pessoas
AMBIENT_SOUNDStrueSons de ambiente
BarShowSnackstruePetiscos no bar
SLOTS_1ST_PERSONtrueCaça-níqueis em primeira pessoa
ShowChipsHudtrueMostra as fichas na tela
ShowHowToPlayUI11 mostra a explicação na primeira vez, 2 sempre
CASINO_BLIP_ID679Ícone no mapa

GameStates lista os jogos e áreas ligados ao iniciar. O /casinoadmin muda essa lista com o servidor ligado.

Para programadores ​

lua
-- cliente
local Controle = exports.casino:GetCasinoControl()
Controle.IsPlayerInCasino()
Controle.IsPlayerBusy()
Controle.GetState()

-- servidor
local Controle = exports.casino:GetCasinoControl()
Controle.IsPlayerInCasino(playerId)
Controle.GetCasinoPlayers()
Controle.KickPlayer(playerId)
Controle.BlockPlaying(playerId)
Controle.AllowPlaying(playerId)
Controle.ToggleVIP(playerIdOuIdentificador, ligado)
Controle.ToggleCasinoActivity(atividade, ligado)  -- atividade de GameStates
Controle.ToggleForceClose(fechado)