Inventário
Mochila do framework krs. Tem slots, peso, itens no chão, hotbar, missões, compra de slots, uso de itens e armas com condição e skins.
Precisa de: krs, PolyZone
O script carrega @krs/import.lua, então não roda em outro framework nem sem framework. Os textos são só em português, sem suporte a ox:locale.
Instalação
ensure inventoryColoque depois do krs e do PolyZone. Veja a ordem de instalação.
Os itens são cadastrados no krs. O uso de cada item fica em server-side/itens.lua.
Como usar
| Comando ou tecla | O que faz |
|---|---|
OEM_3, a tecla de aspas no teclado ABNT2 | Abre e fecha a mochila |
Tab, segurando | Escolhe um dos 4 primeiros slots. A roda do mouse ou as setas trocam, E usa e Esc cancela |
/objects <modelo> | Coloca um objeto no mapa. Exige o grupo Admin |
O jogador troca as teclas em Configurações > Teclas > FiveM.
Na mochila:
- Clique duas vezes ou com o botão direito para usar o item.
- Arraste para mover entre a mochila, o painel da direita e o chão.
- O botão Organizar arruma os itens.
- A aba Missões entrega itens e dá recompensa e experiência.
- O botão de slots compra mais espaço, pelo banco ou com diamantes.
Permissão
Admin em serviço vê o botão de itens na mochila. Ele entrega um item nos modos jogador, área e todos. O servidor confere o nível de admin exigido pelo item. Se o jogador estiver fora, o item vai para uma lista de entregas.
Admin em serviço também pode guardar objetos de outro jogador.
Configuração
Fica em shared-side/shared.lua.
| Opção | Padrão | O que muda |
|---|---|---|
DistanceDrops | 25 | Distância em que os itens no chão aparecem |
Sprays | spray_ballas, spray_vagos, spray_families | Itens de spray e o grupo dono de cada um |
Missions | 4 missões de exemplo | Lista de missões |
WeaponDirt.Shots | 10 | Tiros para a arma perder 1 ponto de condição |
WeaponDirt.Start | 80 | Condição abaixo da qual a arma começa a piorar |
WeaponDirt.Spread | 0.6 | Quanto a dispersão aumenta |
WeaponDirt.Recoil | 0.5 | Quanto o recuo aumenta |
WeaponDirt.Shake | 0.3 | Quanto a arma treme |
As missões que vêm no arquivo são de exemplo. Troque antes de abrir o servidor:
Missions = {
{
Xp = 100,
Code = "MISSION01",
Title = "Entrega de essências",
Description = "Entregue 10 essências azuis.",
Required = { blue_essence = 10 },
Rewards = { purple_essence = 10 }
}
}Code identifica a missão. Trocar o código permite que ela seja feita de novo.
As skins de arma ficam na lista Weapons, em shared-side/skins.lua. Os campos id, weapon e component ligam a skin à arma, e price é o valor em diamantes.
Na config do krs, em Theme.inventory:
| Opção | Padrão | O que muda |
|---|---|---|
missions | true | false esconde a aba Missões |
slots.max | 100 | Máximo de slots |
slots.default | 25 | Slots iniciais |
slots.bank | Lista de preços | Preço de cada slot extra pelo banco |
slots.gemstone | Lista de preços | Preço de cada slot extra em diamantes |
Para programadores
Exports de servidor:
-- uso de item por outro script. Recusa item que já tem uso próprio do inventário
exports.inventory:RegisterUse("meu_item", function(source, Slot, Amount, Full) end)
-- solta um item no chão
exports.inventory:Drops(CharId, source, Item, Amount, Force, Coords)
-- buffs: consumível ou cinto. "Luck" ativo devolve true em metade das chamadas
exports.inventory:Buffs("Dexterity", CharId)
-- valor de buff dos itens do cinto
exports.inventory:GirdleBuffs("Charisma", CharId)
-- arma equipada e melhorias
exports.inventory:Equipped(CharId)
exports.inventory:WeaponUpgrades(CharId, Full)
exports.inventory:SetWeaponUpgrades(CharId, Full, List)
-- skins
exports.inventory:ActiveSkin(CharId, Weapon)
exports.inventory:ExistSkin(CharId, Skin)
-- limpa acessórios e munição guardados
exports.inventory:CleanWeapons(CharId)
-- troca o dono dos objetos colocados
exports.inventory:UpdateObjects(OldCharId, NewCharId)Buffs de GirdleBuffs: Strenght, Luck, Dexterity, MovimentSpeed, Charisma e CooldownReduction.
Eventos de cliente:
| Evento | O que faz |
|---|---|
inventory:Open | Abre a tela com os dados enviados |
inventory:Close | Fecha |
inventory:Update | Atualiza o conteúdo |
inventory:Notify | Titulo, Mensagem, Tipo. Aviso dentro da mochila |
inventory:NotifyItem | Aviso de item recebido ou perdido |
