Loja de roupas
Lojas de roupa, vestiário de corporação, guarda-roupa com outfits, compra pelo tablet com entrega e etiquetas do admin. Os preços variam por dia e por tipo de loja, e o admin cria promoções.
Precisa de: krs, oxmysql, hud
Este script usa o krs diretamente. Ele não usa o krs_helper e não roda em outros frameworks.
Instalação
ensure skinshopColoque depois do krs e do oxmysql. As tabelas são criadas sozinhas. Veja a ordem no server.cfg.
Estes scripts são opcionais:
| Script | Para quê |
|---|---|
hoverfy | Aviso de tecla nas lojas |
phone | App de compra no tablet e notificações dos pedidos |
kay_housing | Entrega em casa e guarda-roupa da casa |
Como usar
O jogador chega a até 2,5 m da loja e aperta E. Não abre dentro de veículo, procurado ou em repouso.
| Modo | Onde abre | O que muda |
|---|---|---|
| Loja | Ponto com Type | Peças pagas no banco ou em dinheiro, com o multiplicador do ponto |
| Vestiário | Ponto com Group | Grátis, só para o grupo. Tem trajes da corporação |
| Guarda-roupa | skinshop:Wardrobe ou skinshop:Open, sem ser admin | Só as peças do jogador. Salva outfits e presenteia peças |
| Admin | skinshop:Open, com o grupo de admin | Tudo liberado. Tem etiquetas, promoções e vendas |
| Criação | OpenCreation | Primeiro visual, uma vez por personagem |
Pedidos pelo tablet
Com phone ligado, o app Loja de roupas vende para entrega. O app é registrado com defaultApp = false. O pagamento é no banco. O pedido chega em Delivery minutos, ou em Express com o preço a mais.
| Jogador | Destino |
|---|---|
Tem casa no kay_housing | Entregue em casa |
| Sem casa | Retirada em uma loja de roupas, na aba Pedidos |
Etiquetas do admin
O admin marca cada peça, ou um pacote inteiro, com nome, preço, lojas, VIP, grupo, oculta e exclusiva. Peça exclusiva não pode ser presenteada. A verificação de Watch tira exclusiva vestida por quem não é dono, avisa os admins em serviço e registra no log.
Permissão
Admin é quem tem o grupo de Config.AdminGroup, por padrão Admin. O script não registra comando: o modo admin abre pelo evento skinshop:Open.
Quem gerencia trajes de um vestiário é o cargo de Corp.Manage[grupo] ou, sem ele, de Corp.ManageLevel.
Configuração
Tudo fica em shared-side/config.lua.
Lugares
{ Coords = vec3(71.29,-1398.68,29.37), Name = "Binco", Area = "Strawberry", Type = "binco" },
{ Coords = vec3(480.78,-1009.08,30.68), Name = "Vestiário", Area = "Mission Row", Group = "Policia" },| Opção | Padrão | O que muda |
|---|---|---|
Locations | 14 lojas e 2 vestiários | Coords, Name, Area, Type, Price, Group e Permission |
ShopTypes | binco, discount, suburban, ponsonbys | Tipos de loja e rótulos |
ShopOrder | os 4 tipos | Ordem dos tipos |
Peças e acesso
| Opção | Padrão | O que muda |
|---|---|---|
Categories | 15 categorias | Label, Id, Prop, Region e Price |
Order | as 15 categorias | Ordem na tela |
Regions | Cabeça, Tronco, Braços, Pernas, Pés | Regiões e câmera |
Naked | por modelo | Peça usada como "sem roupa" |
Vip | "Bronze", "Prata", "Ouro" | Grupos de VIP, do menor ao maior |
VipLadder | true | VIP maior usa as peças dos menores |
AdminGroup | "Admin" | Grupo de admin |
CashItem | "dollar" | Item de dinheiro |
Camera | Enter = 1400, Travel = 1100, Zoom = 350, Leave = 800, Arc = 0.18 | Tempos em ms e curva |
| Categoria | Preço |
|---|---|
hat | 150 |
glass | 180 |
mask | 250 |
ear | 200 |
torso | 350 |
tshirt | 120 |
vest, backpack | 300 |
accessory | 150 |
decals | 60 |
arms | 0 |
watch | 400 |
bracelet | 250 |
pants | 250 |
shoes | 220 |
Guarda-roupa e tablet
| Opção | Padrão | O que muda |
|---|---|---|
Wardrobe.Slots | 5 | Outfits de um guarda-roupa com chave |
Wardrobe.MaxSlots | 30 | Limite de outfits |
Wardrobe.PersonalSlots | 5 | Outfits do armário pessoal |
Wardrobe.Access | função | Quem abre cada chave. p: é do próprio personagem e casa: consulta o kay_housing |
Tablet.Enabled | true | Liga o app |
Tablet.Name, Tablet.Description | "Loja de roupas", texto | Nome e descrição do app |
Tablet.Shops | os 4 tipos | Lojas do app e multiplicador |
Tablet.Delivery | Min = 5, Max = 15 | Minutos de entrega |
Tablet.Freight | 0 | Frete |
Tablet.Express | Enabled = true, Price = 500, Min = 1, Max = 3 | Entrega expressa |
Tablet.MaxItems | 20 | Peças por pedido |
Tablet.Check | 30 | Segundos entre as verificações de pedidos |
HasHome | função | Se o personagem recebe em casa |
Corporação, preços e registros
| Opção | Padrão | O que muda |
|---|---|---|
Corp.ManageLevel | 3 | Cargo que gerencia trajes |
Corp.Manage | vazio | Cargo por grupo |
Corp.PersonalMax | 5 | Trajes pessoais. O mais antigo sai ao passar disso |
Market.Enabled | true | Liga a variação de preço |
Market.Min, Market.Max | 0.8, 1.25 | Limites do fator de preço |
Market.Variation | 6 | Variação por dia, em porcentagem |
Market.History | 7 | Dias de histórico |
Logs | Buy = "Shopping", Admin = "Skin", Gift = "Send", Watch = "Hackers" | Canais do log. Tire a chave para não registrar |
Gift.Enabled | true | Liga presentes no guarda-roupa |
Watch.Enabled | true | Liga a verificação de exclusivas |
Watch.Interval | 120 | Segundos entre as rodadas |
Watch.Batch | 32 | Jogadores por rodada |
Para programadores
Servidor:
exports.skinshop:Apply(source, roupas, salvar) -- true/false
exports.skinshop:Add({ Coords = vec3(x, y, z), Name = "Loja", Type = "binco" }) -- ponto salvo no banco
AddEventHandler("skinshop:Sold", function(charId, sessao, modelo, linhas, total, metodo) end)Cliente:
exports.skinshop:Apply() -- aplica a roupa salva
exports.skinshop:Apply(dados, ped)
exports.skinshop:OpenCreation(function() end) -- uma vez por personagem
exports.skinshop:OpenWardrobe() -- armário pessoal
exports.skinshop:OpenWardrobe("casa:1", 10) -- guarda-roupa com chave e número de outfits
exports.skinshop:Find(categoria, texto)| Evento | Lado | O que faz |
|---|---|---|
skinshop:Open | Cliente | Abre o modo admin ou o guarda-roupa |
skinshop:Wardrobe | Cliente, local | Abre o armário pessoal |
skinshop:Apply | Cliente | Aplica uma tabela de roupas |
skinshop:Send | Servidor | Oferece a roupa atual ao jogador mais perto |
skinshop:Remove | Servidor | Grupo Emergencia: tira uma peça do jogador mais perto |
skinshop:Backpack, skinshop:BackpackRemove | Cliente | Põe e tira a mochila |
Problemas comuns
| Mensagem | Causa |
|---|---|
Seu personagem não usa roupas da loja. | O modelo não é mp_m_freemode_01 nem mp_f_freemode_01 |
Só membros da corporação usam este vestiário. | Sem o grupo de Group |
Loja restrita. | Sem o grupo de Permission |
Sem saldo no banco ou sem o cartão do banco. | Falta saldo ou o cartão |
Retire numa loja de roupas. | A retirada foi pedida fora de uma loja |
