Casas
Casas, apartamentos, prédios e propriedades. O jogador compra à vista ou financiado, aluga, decora, divide chaves, instala fechaduras e alarmes e gerencia tudo pelo tablet. A staff cria interiores, portas e propriedades em jogo.
Precisa de: krs, bank, assets
Só funciona no framework krs. Usa também garages, skinshop e time_system.
Opcionais: kay_housing_shells (mais interiores), phone (app Casas do tablet), kay_organizations (imobiliária) e kay_missoes (missão do primeiro apartamento).
Instalação
ensure bank
ensure assets
ensure kay_housing_shells # opcional, antes do kay_housing
ensure kay_housingColoque depois do krs. As tabelas são criadas sozinhas. Veja a ordem completa.
Pacote de shells
O kay_housing_shells é um pacote separado com interiores extras. O kay_housing procura o pacote ao iniciar e acrescenta o que ele traz a Config.Interiors.
| Com o pacote | Sem o pacote | |
|---|---|---|
| Lista de interiores | Os 11 interiores do pacote entram na categoria Casas: Ametista, Âmbar, Safira, Esmeralda, Topázio, Opala, Jade, Pérola, Água-marinha, Turquesa e Ônix | Só os interiores do kay_housing e do assets |
| Compra e aluguel | Funcionam com todos | Funcionam com os interiores disponíveis |
| Criador de interiores | Sem diferença | Sem diferença |
Sem o pacote, o script inicia sem erro.
Não remova o pacote se alguma casa usa um interior dele. A casa continua salva, mas o interior deixa de existir e a entrada falha. Ponha o pacote de volta para o jogador entrar de novo.
O pacote precisa estar iniciado antes do kay_housing. Com a pasta presente e sem o ensure, o servidor e os jogadores ficam com listas diferentes.
O assets é obrigatório e também acrescenta interiores: Rubi, Granada, Quartzo, Citrino, Diamante e os apartamentos I, II e amplo. Os prédios de Config.Buildings usam parte deles.
Como usar
Na porta, as dicas mostram a tecla.
| Tecla | O que faz |
|---|---|
E | Ver o imóvel, entrar ou sair |
G | Tocar a campainha. Dentro da casa, quem tem chave liga e desliga as luzes |
Comprar. Em uma porta livre, escolha o interior, a mobília e a forma de pagamento. Antes de decidir, o jogador pode visitar o interior por PreviewSeconds segundos. O financiamento usa o plano house do bank. Com as parcelas atrasadas, o banco retoma a casa.
Alugar. O dono define o aluguel e o inquilino paga por semana. Em atraso além de Rent.Evict dias, o inquilino é despejado.
Prédios. Cada prédio de Config.Buildings tem uma porta e várias unidades. O motel é pago por dia.
Primeiro apartamento. Ao criar o personagem, o jogador recebe grátis uma unidade do prédio com Starter, por Rent.StarterDays dias. Com o kay_missoes ligado, ele recebe a missão "Seu novo lar".
Propriedades. São imóveis criados pela staff e pagos em diamantes por um número de dias.
Dentro da casa. Baú, guarda-roupa, decoração em modo câmera, móveis funcionais, contas de luz, água e internet, energia, música, assistente e garagem.
Segurança. O dono compra fechadura, alarme e câmera. Em serviço, a polícia (Security.Police) pode arrombar a porta e lacrar a casa. Ninguém entra em casa lacrada até a polícia liberar.
Imobiliária. Com o kay_organizations, os grupos de Realty.Groups mantêm imóveis em estoque e vendem com comissão.
Comandos
Todos exigem o grupo Admin, nível 2.
| Comando | O que faz |
|---|---|
/predio aqui <chave> | Move a entrada do prédio para onde você está |
/interior criar <nome> | Cria um interior do mapa, com a saída onde você está |
/interior ipl <id> <nome do ipl> | Liga um IPL ao interior |
/interior apagar <id> | Apaga o interior, se nenhuma casa usar |
/propriedade criar <diamantes> <dias> <categoria> <nome> | Cria uma propriedade onde você está |
/propriedade apagar <id> | Apaga a propriedade |
/predio aqui fantastic
/propriedade criar 500 30 Loja Loja da praiaAs chaves de prédio são pinkcage, fantastic, rockford, morningwood, integrity e tinsel.
Permissão
Admin vê a aba Admin no app Casas do tablet. Ela busca casas e permite ir até a casa, trocar o dono, mudar o preço pago, quitar o financiamento, zerar atraso de aluguel e contas, resetar a segurança e apagar a casa. A mesma aba tem as seções de shells e de portas.
Configuração
Tudo fica em shared-side/config.lua e shared-side/utilities.lua. Os textos são só em português, sem suporte a ox:locale. O idioma não muda com ox:locale.
Casas:
| Opção | Padrão | O que muda |
|---|---|---|
Price | 2000000 | Preço padrão de uma casa |
MaxHouses | 3 | Casas por personagem |
SellBack | 0.5 | Parte do preço devolvida na venda ao banco |
MaxKeys | 6 | Chaves por casa |
MaxAccess | 3 | Grupos com acesso por casa |
KeyCopy | 500 | Preço da cópia de chave |
Rekey | 2500 | Preço de trocar a fechadura |
OrgManage | 2 | Nível do grupo que gerencia casa de organização |
KeyDefaults | Lock, Stash | Permissões iniciais de uma chave |
PreviewSeconds | 45 | Tempo da visita, em segundos |
DoorDistance | 1.5 | Distância da porta, em metros |
Stash | Weight = 250, Slots = 50 | Baú |
WardrobeSlots | 10 | Vagas do guarda-roupa |
Vip | Bronze, Prata, Ouro | Grupos VIP, do menor para o maior |
As portas de casa no mapa ficam em shared-side/doors.lua.
Decoração e garagem:
| Opção | Padrão | O que muda |
|---|---|---|
SellFurniture | 0.3 | Parte do preço devolvida ao vender um móvel |
PaintPrice | 50 | Preço por pintura alterada |
DecorRadius | 40.0 | Alcance da decoração dentro da casa, em metros |
YardRadius | 22.0 | Alcance do quintal, em metros |
Delivery.Seconds | 300 | Tempo até o móvel chegar na entrada da casa, em segundos |
Garage.Price | 150000 | Preço da garagem |
Garage.Move | 25000 | Preço de mudar a garagem de lugar |
Garage.Radius | 60.0 | Distância máxima da entrada da garagem até a porta, em metros |
Aluguel (Rent):
| Opção | Padrão | O que muda |
|---|---|---|
City | 25000 | Aluguel padrão |
Week | 604800 | Período, em segundos |
Evict | 14 | Dias de atraso até o despejo |
Max | 2 | Casas alugadas por personagem |
MaxAsk | 500000 | Maior aluguel que o dono pode pedir |
StarterDays | 7 | Dias grátis do primeiro apartamento |
Segurança (Security):
| Opção | Padrão | O que muda |
|---|---|---|
Police | "Policia" | Grupo da polícia |
Locks | 60000, 180000, 450000 | Preço das fechaduras Reforçada, Blindada e Cofre |
Alarms | 40000, 90000, 180000, 300000 | Preço dos 4 níveis de alarme |
Camera | 60000 | Preço da câmera |
Breach | Base = 12000, PerTier = 10000 | Tempo para arrombar, em ms: base mais o valor por nível da fechadura |
Seal | 604800 | Duração do lacre, em segundos |
Cooldown | 120 | Espera entre dois alarmes da mesma casa, em segundos |
Intrusion | 300 | Tempo dentro da casa depois de destrancar, em segundos |
Prédios e imobiliária:
| Opção | Padrão | O que muda |
|---|---|---|
Buildings | 6 prédios | Porta, unidades, interiores, preço e aluguel de cada prédio |
Interiors | ver config.lua | Interiores: nome, categoria, VIP, saída e modelo |
Realty.Groups | "Imobiliaria" | Grupos da imobiliária |
Realty.Stock | 10 | Imóveis em estoque |
Realty.Commission | 0.05 | Comissão da empresa |
Realty.AgentShare | 0.4 | Parte da comissão para o corretor |
Contas, em utilities.lua (Bills):
| Opção | Padrão | O que muda |
|---|---|---|
Enabled | true | Liga as contas |
Interval | 604800 | Período, em segundos |
Grace | 14 | Dias de atraso até a punição |
Punish | "cut" | cut corta os serviços, repossess retoma a casa |
Services | 1200, 600, 500 | Preço de luz, água e internet |
Para programadores
-- servidor
exports.kay_housing:Homes(charId) -- casas com chave
exports.kay_housing:HasHome(charId) -- true se mora em alguma
exports.kay_housing:HasAccess(charId, id) -- true se tem a chave
exports.kay_housing:Inside(charId) -- id da casa onde está, ou false
exports.kay_housing:Coords(id) -- coordenada da porta
exports.kay_housing:Survival(charId, source) -- tira o jogador de dentro da casa
exports.kay_housing:GarageAccess(id, charId)
exports.kay_housing:ChangeCharId(antigo, novo)
exports.kay_housing:Places(charId) -- propriedades
exports.kay_housing:Deliver(charId, item, quantidade) -- entrega no baú; id da casa ou false
exports.kay_housing:OrgStock(grupo)
exports.kay_housing:OrgPrice(grupo, id, venda, aluguel)
exports.kay_housing:OrgRelease(grupo, id, charId)Para acrescentar interiores, crie um resource com config/kay_housing.lua, listado em files, com o nome kay_housing_shells ou assets:
Config.Interiors[#Config.Interiors + 1] = {
Key = "MeuInterior",
Label = "Meu interior",
Category = "Casas",
Exit = vec3(0.0, 0.0, 1500.0),
Shell = vec3(0.0, 0.0, 1500.0),
Model = "meu_modelo"
}