Pelúcias
Roleta de pelúcias paga com diamantes, que são as gemas do krs_helper. O jogador coleciona o que ganha, equipa uma pelúcia no corpo e pode dar uma a outro jogador, que precisa aceitar.
Precisa de: oxmysql, ox_lib, krs_helper
Instalação
ensure kay_peluciaColoque depois do krs_helper. A tabela é criada sozinha e não há itens para cadastrar. Veja a ordem no server.cfg.
Krs e Creative usam os diamantes do framework. QBCore, vRP e o modo sem framework usam os do krs_helper.
Pacote opcional de pelúcias
O catalog.lua começa vazio e procura o resource kay_pelucia_assets. Inicie o pacote antes do script:
ensure kay_pelucia_assets
ensure kay_pelucia| Sem o pacote | Com o pacote | |
|---|---|---|
| Catálogo | Vazio, ou só o que você puser em catalog.lua | As pelúcias, categorias e posições do pacote |
| Roleta | Fechada: nada é cobrado | Sorteia pela raridade |
| Console | Avisa nenhuma raridade com peso maior que 0 em Config.Rates: a roleta fica fechada. | Sem esse aviso |
| Pelúcia que o jogador já tem | Some da tela. A linha no banco fica | Volta a aparecer |
Como usar
| Comando | O que faz |
|---|---|
/pelucias | Abre a tela. Esc ou o X fecham |
Com o resource phone ligado, a tela também vira um app do tablet.
- Girar: cada giro cobra
Pricee sorteia uma pelúcia. Primeiro a raridade, pelo peso, depois igual entre as dela. Pode sair repetida. - Equipar: clique na pelúcia, escolha a posição e equipe. Só uma fica equipada por vez e ela continua ao reconectar.
- Dar: digite o passaporte do outro jogador e confirme. Ele precisa estar online e aceitar. Se recusar, a pelúcia continua sua.
Pelúcia com Blocks = true bloqueia correr, pular, mirar e atirar enquanto equipada.
| Framework | Passaporte |
|---|---|
| krs, Creative | Número do personagem |
| vRP | user_id |
| QBCore | citizenid |
| Sem framework | License, sem o license: na frente |
Configuração
Tudo fica em config.lua.
| Opção | Padrão | O que muda |
|---|---|---|
Price | 25 | Diamantes por giro. Inteiro, 1 ou mais |
Rates | common = 70, rare = 20, epic = 8, legendary = 2 | Peso de cada raridade. Para tirar uma, use 0: apagar a linha volta o padrão |
Command | "pelucias" | Comando da tela. "" desliga |
Key | "" | Tecla padrão. Com "", o comando não aparece em Configurações > Teclas |
Tablet.Enabled | true | Liga o app do tablet |
Tablet.Identifier | "pelucia" | Nome interno do app |
Tablet.Name, Tablet.Description | "app.name", "app.description" | Texto ou chave de locales/*.json |
Tablet.Developer | "Kroma" | Desenvolvedor mostrado no app |
Tablet.Default | true | App já instalado no tablet |
Transfer.Enabled | true | Liga dar pelúcia |
Transfer.Distance | 0 | Metros máximos entre os dois. 0 aceita qualquer distância |
Notify | Color = "verde", Time = 5000 | Aviso de quem recebe |
Sound.File | "roulette" | Arquivo em sounds/, sem .mp3, ou endereço https://. "" tira o som |
Sound.Volume | 0.35 | Volume da roleta |
Theme | Accent = "#b3c0ff", Gold = "#ead6a4", Background = "#0d0e12" | Cores da tela |
Log | true | Registra giros e transferências no log do krs_helper, canal Pelucia |
Catálogo
O arquivo catalog.lua é aberto. A chave de cada entrada é o Id salvo no banco: não troque o Id de uma pelúcia que jogadores já têm.
Catalog.minha_pelucia = {
Name = "Minha pelúcia",
Category = "Minhas",
Rarity = "rare",
Model = "meu_prop",
Positions = {
{ Id = "ombro", Label = "Ombro", Bone = 64729, Pos = vec3(0.10,0.0,-0.15), Rot = vec3(-180.0,14.0,20.0) }
}
}| Campo | O que é |
|---|---|
Name, Category, Label | Texto direto ou chave de locales/*.json |
Rarity | common, rare, epic ou legendary |
Model | Modelo do prop. Uma posição pode ter Model próprio |
Positions | Id, Label, Bone, Pos, Rot. Anim = { dict, clip } e Order são opcionais |
Blocks | true bloqueia controles enquanto equipada |
Image | Arquivo em images/ ou URL. Sem Image, usa images/<Id>.webp. Sem imagem, a tela mostra a inicial |
Pelúcia sem raridade válida ou sem posição é ignorada, com aviso no console. Modelos novos precisam de stream/ e, com .ytyp, de uma linha data_file "DLC_ITYP_REQUEST" no manifesto.
Para programadores
O script não tem exports. O evento de cliente kay_pelucia:Detach tira a pelúcia equipada. Callbacks do krs_helper: kay_pelucia:Data, kay_pelucia:Spin, kay_pelucia:Equip, kay_pelucia:Equipped e kay_pelucia:Transfer.
client-side/ganchos.lua registra o app do tablet. A tela é web-side/index.html?app=tablet.
Problemas comuns
| Mensagem | Causa |
|---|---|
A roleta está fechada no momento. | Catálogo vazio, sem o pacote, ou todos os pesos de Rates em 0 |
pelúcia "X" ignorada no catalog.lua: raridade fora de Config.Rates ou sem posições. | Entrada inválida em catalog.lua |
Diamantes insuficientes. | Falta saldo ou Price abaixo de 1 |
O destinatário precisa estar na cidade para aceitar. | O passaporte não está online |
[REEMBOLSO FALHOU] no log | Devolva os diamantes à mão. Esse registro sai mesmo com Log = false |
