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
ensure targetColoque depois do krs e do PolyZone. Veja a ordem de instalação.
Como usar
- Segure
Alt. O jogador troca a tecla em Configurações > Teclas > FiveM. - Aponte para algo. Zonas e objetos marcados ganham um ponto a até 5 m.
- 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 para | Exemplos de opção |
|---|---|
| Veículo | Porta-malas, placa, portas, vistoria, abastecer, retirar pneu, desvirar, rebocar, desmanchar |
| Jogador | Relacionamento, cobrança. Para paramédico: reanimar, tratamento, ataduras, repouso. Para polícia: apreender |
| Objetos do mapa | Lixeira, 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ção | Limite |
|---|---|
| Base | 75 |
Com Bronze | +20 |
Com Prata | +40 |
Com Ouro | +60 |
Leitos
34 leitos com as opções Deitar e Tratamento.
| Item | Valor |
|---|---|
| Tratamento | $1000 e 20 minutos de repouso |
| Com plano médico ativo | $500 e 10 minutos de repouso |
| Personagem caído | Mais $500 e 10 minutos de repouso |
| Alimentação opcional | Mais $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:
| Arquivo | O que tem |
|---|---|
shared-side/shared.lua | Pontos da academia |
client-side/beds.lua | Leitos |
client-side/core.lua | Zonas, modelos e pontos de desmanche |
server-side/core.lua | Preços e limites |
Para programadores
Todos são exports de cliente.
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.
tunnel | Chamada |
|---|---|
client | TriggerEvent(event, Selected, service) |
entity | TriggerEvent(event, Selected[1], service) |
products | TriggerEvent(event, service) |
server | TriggerServerEvent(event, Selected, service) |
paramedic | TriggerServerEvent(event, Selected[1], service) |
proserver | TriggerServerEvent(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.
