Skip to content

Target ​

Interação por mira no framework krs. O jogador segura Alt, aponta para um veículo, jogador, objeto ou zona e escolhe a opção. Outros scripts adicionam zonas, modelos e opções. Também traz a academia, os leitos de tratamento e o apagão da cidade.

Precisa de: krs, PolyZone

O script carrega @krs/import.lua, então não roda em outro framework nem sem framework. As opções dependem dos scripts donos dos eventos, como inventory, fuel, garages e paramedic. Ele chama phone, animals, survival e roda sem checar se estão ligados.

Instalação ​

cfg
ensure target

Coloque depois do krs e do PolyZone. Veja a ordem de instalação.

Como usar ​

  1. Segure Alt. O jogador troca a tecla em Configurações > Teclas > FiveM.
  2. Aponte para algo. Zonas e objetos marcados ganham um ponto a até 5 m.
  3. Clique com o botão esquerdo para soltar o cursor e escolha a opção.

Soltar Alt antes de clicar fecha. O alvo não abre dentro de veículo, com o telefone ou o menu de pausa abertos, sem conexão de voz, nem com os estados Arena, Cancel, ItemCamera, Carry, Buttons, Commands e Handcuff.

Apontando paraExemplos de opção
VeículoPorta-malas, placa, portas, vistoria, abastecer, retirar pneu, desvirar, rebocar, desmanchar
JogadorRelacionamento, cobrança. Para paramédico: reanimar, tratamento, ataduras, repouso. Para polícia: apreender
Objetos do mapaLixeira, bebedouro, galão, esfolar animal

A opção aparece conforme o estado do veículo, a distância e o serviço do jogador.

Academia ​

18 pontos, em shared-side/shared.lua. Cada exercício dura 30 segundos e aumenta o peso máximo em 1, até o limite:

SituaçãoLimite
Base75
Com Bronze+20
Com Prata+40
Com Ouro+60

Leitos ​

34 leitos com as opções Deitar e Tratamento.

ItemValor
Tratamento$1000 e 20 minutos de repouso
Com plano médico ativo$500 e 10 minutos de repouso
Personagem caídoMais $500 e 10 minutos de repouso
Alimentação opcionalMais $500. Enche 25 de fome e 25 de sede

O tratamento recupera 1 de vida por segundo até 200.

Apagão ​

Um ponto no mapa liga e desliga a energia da cidade. Exige 10 policiais em serviço e 1 item encryptedkey, gasto antes do minijogo de letras. Só quem não é policial desliga, só policial em serviço religa. A energia volta sozinha em 30 minutos.

Configuração ​

Não há arquivo de config aberto. Os pontos e valores estão no código:

ArquivoO que tem
shared-side/shared.luaPontos da academia
client-side/beds.luaLeitos
client-side/core.luaZonas, modelos e pontos de desmanche
server-side/core.luaPreços e limites

Para programadores ​

Todos são exports de cliente.

lua
exports.target:AddCircleZone("meu:ponto", vec3(x, y, z), 0.5, {
    name = "meu:ponto",
    heading = 0.0,
    useZ = true
}, {
    shop = "Valor",
    Distance = 1.5,
    options = {
        { event = "meu:Evento", label = "Abrir", tunnel = "client", service = "Extra" }
    }
})

exports.target:AddBoxZone(Nome, Centro, Comprimento, Largura, Opcoes, Alvo)
exports.target:RemCircleZone(Nome) -- remove círculo ou caixa

exports.target:LabelText(Nome, "Texto")    -- troca o texto da primeira opção
exports.target:LabelOptions(Nome, Opcoes)  -- troca as opções da zona

exports.target:AddTargetModel({ -206690185 }, { Distance = 1.0, options = {} })
exports.target:RemTargetModel({ -206690185 })

-- entidade com o decor KRS_CODE
exports.target:AddCode(Chave, { Entity = ped, Model = hash, Distance = 1.75, options = {} })
exports.target:RemCode(Chave)

-- chão. state é um grupo em serviço, opcional
exports.target:AddGround(Nome, { Distance = 15.0, state = "Admin", options = {} })
exports.target:RemGround(Nome)

-- uma opção a mais em todo veículo
exports.target:AddVehicle(Nome, { event = "meu:Evento", label = "Abrir", tunnel = "client" })
exports.target:RemVehicle(Nome)

tunnel define como o evento dispara. Selected é o shop da zona, o shop do modelo, a coordenada no chão, a chave do AddCode ou a lista de dados da entidade.

tunnelChamada
clientTriggerEvent(event, Selected, service)
entityTriggerEvent(event, Selected[1], service)
productsTriggerEvent(event, service)
serverTriggerServerEvent(event, Selected, service)
paramedicTriggerServerEvent(event, Selected[1], service)
proserverTriggerServerEvent(event, service)

Em um modelo sem shop, Selected traz { entidade, modelo, netId, coords, morto, ponto }. Valide tudo no servidor.

Evento de cliente target:Debug fecha o alvo.