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
ensure assets
ensure casinoColoque 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.
| Comando | O que faz |
|---|---|
/casinoadmin | Abre 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 |
/casinocar | Mostra as instruções do pódio e marca o lugar de entrega no GPS |
/casinoveh | Dentro de um veículo, coloca o veículo no pódio |
/casinovehremove | Tira 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:123As 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ção | Padrão | O que muda |
|---|---|---|
UseVirtualChips | true | Fichas salvas no cassino |
UseOnlyMoney | false | Joga direto com dinheiro, sem fichas |
ChipsInventoryItem | "casino_chips" | Item das fichas quando as duas opções acima estão desligadas |
ExchangeRate | 1 | Dinheiro por ficha |
DailyWidthdrawLimit | 0 | Limite diário de troca. 0 desliga |
CASHIER_DAILY_BONUS | 0 | Bônus diário em fichas. 0 desliga |
CASHIER_VIP_PRICE | 50000 | Preço do VIP |
CASHIER_VIP_DURATION | 604800 | Duração do VIP, em segundos |
CASHIER_MULTITASK | true | Vários jogadores usam o caixa ao mesmo tempo |
PRICES_CURRENCY | "$" | Símbolo do dinheiro |
Roda da sorte:
| Opção | Padrão | O que muda |
|---|---|---|
LUCKY_WHEEL_ENABLED | true | Liga a roda |
LUCKY_WHEEL_PAY_TO_SPIN | "gemstone" | Item cobrado para girar |
LUCKY_WHEEL_PAY_AMOUNT | 1000 | Quantidade do item |
LUCKY_WHEEL_COOLDOWN | 60 | Espera entre giros, em segundos |
LUCKY_WHEEL_FREE_DRINKS_FOR | 86400 | Tempo do prêmio de bebida grátis, em segundos |
LUCKY_WHEEL_CAR_WINABLE | true | O veículo do pódio pode sair |
LUCKY_WHEEL_CAR_ONE_WINNER | true | O 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_CHECK | true | Só aceita no pódio veículo que a pessoa tem |
JOB_PODIUMCAR_OWNERSHIP_DELETE_ORIGINAL | true | Tira 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ção | Padrão | O que muda |
|---|---|---|
IT_MAIN_EVENT_ENABLED | true | Liga o evento principal |
IT_MAIN_EVENT_MIN_PLAYERS | 1 | Mínimo de jogadores |
IT_MAIN_EVENT_BETTING_TIME | 300 | Tempo de apostas, em segundos |
IT_MAIN_EVENT_RACE_MIN_BET, IT_LOCAL_RACE_MIN_BET | 10 | Aposta mínima |
IT_MAIN_EVENT_RACE_MAX_BET, IT_LOCAL_RACE_MAX_BET | 10000 | Aposta máxima |
IT_MAIN_EVENT_RACE_WIN_CHANCE, IT_LOCAL_RACE_WIN_CHANCE | 50 | Chance de vitória |
IT_MAIN_EVENT_HORSE_ODDS, IT_LOCAL_RACE_HORSE_ODDS | 2, 5, 6, 15, 16, 30 | Cotação dos cavalos |
Mesas de limite baixo:
| Opção | Padrão | O que muda |
|---|---|---|
ROULETTE_JUNIOR_ENABLED | true | Liga a roleta |
BLACKJACK_JUNIOR_ENABLED | true | Liga o blackjack |
POKER_JUNIOR_ENABLED | true | Liga o pôquer |
Entrada e ambiente:
| Opção | Padrão | O que muda |
|---|---|---|
UseTarget | true | Interação pela mira. false usa tecla |
LeaveThroughTeleport | false | Entrada e saída por teleporte |
EnterPosition | 2469.58, -280.02, -58.27 | Onde o jogador aparece ao entrar |
LeavePosition | 919.13, 51.12, 80.90 | Onde o jogador aparece ao sair |
OpeningHours | todos os dias { -1 } | Horas abertas por dia da semana. { -1 } é o dia inteiro |
ServerTimezoneOffsetHours | 0 | Ajuste de fuso, em horas |
CASINO_ENABLE_AMBIENT_PEDS | true | Pessoas no ambiente |
CASINO_AMBIENT_PEDS_DENSITY | 3 | Quantidade de pessoas |
AMBIENT_SOUNDS | true | Sons de ambiente |
BarShowSnacks | true | Petiscos no bar |
SLOTS_1ST_PERSON | true | Caça-níqueis em primeira pessoa |
ShowChipsHud | true | Mostra as fichas na tela |
ShowHowToPlayUI | 1 | 1 mostra a explicação na primeira vez, 2 sempre |
CASINO_BLIP_ID | 679 | Ícone no mapa |
GameStates lista os jogos e áreas ligados ao iniciar. O /casinoadmin muda essa lista com o servidor ligado.
Para programadores
-- 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)