Skip to content

Animais ​

Animais de estimação que o jogador tem como item. Usar o item chama o animal, que segue o dono. Fome, sede, felicidade e vida caem com o tempo e ficam salvas por personagem. Cães podem brincar e, com policial em serviço, farejar outro jogador.

Precisa de: oxmysql, ox_lib, krs_helper

Instalação ​

cfg
ensure animals

Coloque depois do krs_helper. A tabela é criada sozinha. Veja a ordem no server.cfg.

Sem framework o script inicia, mas o item do animal não tem como ser usado.

Itens ​

Cada animal é um item com o nome da chave em Config.Models. Os itens precisam existir no inventário do framework, e os de animal precisam ser usáveis. Comida, água, curativo e kit médico são os itens de Food, Drink, Heal e Revive.

FrameworkUso do item
krsO inventory dispara animals:Use. Animal novo precisa dessa ligação no inventário
QBCoreRegistrado sozinho. Troque water por water_bottle e medkit por firstaid no config.lua
Creative, vRPUsar o item não faz nada até ligar o item usável no inventário

O script não tem comando de staff para dar animal. O item vem do petshop ou de outra fonte do servidor.

Pacote opcional de modelos ​

O config.lua procura o resource animals_modelos. Inicie o pacote antes do animals:

cfg
ensure animals_modelos
ensure animals
Sem o pacoteCom o pacote
AnimaisOs 14 modelos da lista de Config.Models, todos do jogoMais 13: chowchow, doberman, a_c_dalmatian, robot_dog, dog_bichon, dog_dalpup, dog_shepup, dog_pup, cat_amer, cat_turk, cat_sphynx, cat_coon, cat_wolf
Guarda-roupaSó pelagem. As peças de clothes.lua não servem nos modelos do jogoMostra as peças que o modelo do animal aceita
Item de um animal do pacoteAviso Este animal não está disponível.Funciona como os outros

Os animais do pacote entram depois da lista do config.lua. Apagar a linha no config.lua não tira esses animais.

Como usar ​

O jogador usa o item e o animal aparece. Só um animal fica fora por vez: guarde o atual antes de chamar outro. Se o item sair do inventário ou o personagem mudar, o animal é guardado na próxima verificação, a cada Tick.

ComandoO que faz
/petAbre o painel do animal. Sem animal fora, avisa

O jogador pode definir uma tecla em Configurações > Teclas > FiveM > "Abrir menu do animal".

No painel:

ParteO que tem
StatusVida, alimentação, hidratação e felicidade
CuidarOs itens que o jogador tem e quanto cada um recupera. Gasta 1 item. Com o animal desmaiado, aparece só Reanimar
AçõesSeguir ou ficar, sentar, deitar, carinho, brincar, farejar, veículo e guarda-roupa
NomeDe 2 a 24 letras, sem custo
GuardarSalva e tira o animal do mundo

Regras com os valores padrão:

  • Fome cai 1, sede cai 2 e felicidade cai 1 por minuto. Abaixo de 20, o jogador recebe um aviso.
  • Com fome ou sede em 0, o animal perde 4 de vida por minuto. Felicidade em 0 não tira vida.
  • Com vida 0 o animal desmaia e continua desmaiado depois de guardar. Volta com o kit médico, com 50 de vida, ou pelo veterinário do petshop.
  • Carinho dá 10 de felicidade, a cada 120 s.
  • Brincar só existe para cães. Dá 15 de felicidade, gasta 2 de fome e 3 de sede, a cada 30 s.
  • Veículo só aparece com o dono num carro, não em moto. O animal usa o banco do passageiro, se estiver livre.
  • Farejar marca drogas, dinheiro e armas nos itens do jogador mais perto do cão, até 4 m, a cada 10 s.

O guarda-roupa mostra a peça no animal ao passar o mouse e veste ao clicar. A coleção de roupas é do personagem e só o petshop a preenche.

Permissão ​

Farejar exige cão e o grupo de Config.Sniff.Group, em serviço. O padrão é Policia.

FrameworkEm serviço
krs, CreativeServiço do próprio framework
QBCoreJob com serviço ligado, com Policia em Config.Groups do krs_helper
vRPBasta ter o grupo

Configuração ​

Tudo fica em config.lua. Opção simples que faltar volta ao padrão. Nas listas Models, Food, Drink, Heal, Revive, Sniff.Drugs, Sniff.Money e Sniff.Weapons, o que você apagar sai de verdade. Sem Models no arquivo, nenhum animal funciona.

OpçãoPadrãoO que muda
Funcoestodos trueLiga Brincar, Farejar, Roupas, Veiculo e Renomear
Foodmeatfillet = 30, hotdog = 20, sandwich = 20Item e quanto recupera de fome
Drinkwater = 35Item e quanto recupera de sede
Healbandage = 25Item e quanto recupera de vida
Revivemedkit = 50Item e vida com que o animal volta
Tick60Segundos entre cada perda
Save5Grava no banco a cada N ticks
DecayHunger = 1, Thirst = 2, Happiness = 1Perda por tick
Starve4Vida perdida por tick com fome ou sede em 0
Warn20Avisa quando o valor chega nisso ou abaixo
Distance4.0Distância máxima do animal para as ações, em metros
CuddleHappiness = 10, Cooldown = 120Carinho
PlayHappiness = 15, Hunger = 2, Thirst = 3, Cooldown = 30Brincar
Sniff.Group"Policia"Grupo que fareja
Sniff.Cooldown10Espera entre farejadas, em segundos
Sniff.Drugs, Sniff.Money, Sniff.Weaponsitens do krsItens que o cão marca. No QBCore, troque pelos seus
Aviso.Tempo5000Duração dos avisos, em ms
Target"target""target", "qb-target", "ox_target" ou "". Com o resource ligado, mirar no animal abre o painel
MenuComando = "pet", Tecla = ""Comando e tecla padrão do painel. Comando "" desliga
Roda"roda""roda" ou "". Com o resource roda ligado, o painel aparece nele
Interface.Icones""Ícones das peças. Vazio usa o inventário do krs. Modelo com {item}, como "nui://qb-inventory/html/images/{item}.png"
Interface.Cores.Destaque"#b3c0ff"Cor de destaque
Models14 animais do jogoAnimais disponíveis

Exemplo de animal, com Ped só se o modelo tiver outro nome:

lua
a_c_husky = { Name = "Husky", Kind = "Big" },
CampoO que é
NameNome usado se model.<item> não existir em locales/*.json
KindBig, Small, Cat, Coyote, Hen, Cougar ou Rabbit. Brincar e farejar só valem para Big e Small
PedModelo do ped, se for diferente do item
CoatsMáximo de pelagens no guarda-roupa

Roupas ficam em clothes.lua, com Slot, Drawable, Texture e Name. A peça só serve no animal cujo modelo tem essa variação.

O animals não carrega peds.meta. Modelo próprio precisa vir de um resource seu, com stream/ e data_file "PED_METADATA_FILE".

Para programadores ​

Servidor:

lua
exports.animals:Closet(charId)        -- { [peça] = true }
exports.animals:Collect(charId, { "petwear_suit" })  -- soma peças à coleção; true/false
exports.animals:Pets(charId)          -- lista de modelos do personagem
exports.animals:Nearby(coords, raio)  -- CharId, Source, Name, Model, Health, Hunger, Thirst, Happiness
exports.animals:Treat(charId)         -- vida 100, fome e sede no mínimo 50; true/false

Eventos só de servidor, usados pelo inventário do krs: animals:Use(source, charId, modelo) e animals:Delete(source, charId).

Cliente:

lua
exports.animals:IsMine(ped)
exports.animals:Kind()
exports.animals:Options()
exports.animals:Emote(dict, clip, loop, props)
exports.animals:StopEmote()
exports.animals:Current()                  -- { Model, Look } ou false
exports.animals:Fits(ped)                  -- peças, pelagens
exports.animals:Dress(ped, look, item, pelagem)

O evento local animals:Menu abre o painel. client-side/ganchos.lua tem os adaptadores de target, de roda e da HUD.

Problemas comuns ​

MensagemCausa
Este animal não está disponível.O item não está em Config.Models
Não foi possível chamar o animal: o modelo X não existe no jogo.O modelo não está no servidor
Guarde o animal atual antes de chamar outro.Já existe um animal fora