Configuration
ADVERTENCIA
Antes de explicar la configuración de la nueva version tengo que dar una ADVERTENCIA importante. El nuevo sistema de PROPS funciona por separado del QUESTS, ¿En que afecta eso? Los props que pongas no se elimina cuando lo registran, a los minutos vuelve a salir, también los props son visibles para todo los jugadores del servidor y todos podrán acceder a el para buscar y obtener la recompensa.
WARNING
Before explaining the configuration of the new version, I have to give an important WARNING. The new PROPS system works separately from QUESTS. How does that affect it? The props you place are not removed when they are registered; after a few minutes, they reappear. Additionally, the props are visible to all players on the server, and everyone can access them to search for and claim the reward.Ç
Config_npcs.lua
The options mentioned in the updates have been added.
Aow the config is separately in different files.
RVNPCS = {}
RVNPCS.drawtext = true -- true = draw text, false = don't draw text
RVNPCS.interactionrange = 3 -- Interaction range
RVNPCS.NPCs = {
[1] = {
model = {"a_m_m_salton_03"},
title = "TEXT NAME", -- Title text
texttarget = "TEXT TARGET", -- Text target
coords = vector4(301.13, 2898.59, 43.61, 163.69), -- NPC coordinates
animation = {
dict = "anim@mp_corona_idles@male_c@idle_a", -- Animation dictionary
name = "idle_a", -- Animation name
freezeAnimation = true, -- Add this field
},
dialog = { -- Dialog text
"TEXT DIALOG" -- Dialog text
},
camara = true, -- Activate camera
camarastanding = {
offsetX = 0.5, -- X position
offsetY = 0.7, -- Y position
offsetZ = 0.5, -- Z position
focusOffsetZ = 0.3 -- Focus Z position
},
requiredItem = '', -- Required item - "item", "" or false
requiredAmount = 10, -- Required amount
requiredItem2 = "", -- Second required item - "item", "" or false
requiredAmount2 = 1, -- Second required amount
rewardItem1 = '', -- Reward item - "item" or false
rewardAmount1 = 1, -- Reward amount
useProgressBar = false, -- Use progress bar
rewardItem2 = '', -- Reward item - "item" or false
rewardAmount2 = 2, -- Reward amount
rewardItem3 = '', -- Reward item - "item" or false
rewardAmount3 = 1, -- Reward amount
accept = true, -- Accept NPC
eventOnAccept = "reaver_talknpcs:notification2", -- Event to execute
executeEvent = false, -- Execute event instead of giving an item
CheckAllowedCitizenIDs = false,
sprites = false, -- bl_sprites
target = true, -- Activate target
AllowedCitizenIDs = { -- Allow these IDs to interact
["citizenID1"] = true, -- Allow this ID to interact
["citizenID2"] = true, -- Allow this ID to interact
-- etc.
},
allowEveryone = true, -- Allow everyone to interact
-- requiredJob = "mechanic1", -- Specific job required (optional)
-- requiredGang = "mafia", -- Specific gang required (optional)
useProp = false,
dailyCooldownEnabled = false, -- Added: Enable daily cooldown per NPC
dailyCooldowntime = 24 * 60 * 60, -- Daily cooldown time
Cooldown = 0, -- Cooldown time
propName = 'PROP', -- Prop name
propCoords = { -- Prop coordinates
boneIndex = 28422, -- Bone index (right hand)
x = -0.15, -- X offset
y = 0.0, -- Y offset
z = 0.0, -- Z offset
xRot = 0.0, -- X rotation
yRot = 0.0, -- Y rotation
zRot = 0.0 -- Z rotation
},
outfit = { -- NPC outfit
enabled = false, -- Enable outfit
torso = { drawable = 338, texture = 0 }, -- Torso
legs = { drawable = 347, texture = 0 }, -- Legs
shoes = { drawable = 235, texture = 0 }, -- Shoes
accessories = { drawable = 0, texture = 0 }, -- Accessories
undershirt = { drawable = 14, texture = 5 }, -- Undershirt
kevlar = { drawable = 0, texture = 0 }, -- Kevlar
badge = { drawable = 0, texture = 0 }, -- Badge
torso2 = { drawable = 875, texture = 0 }, -- Torso 2
hat = { enabled = false, drawable = 246, texture = 0 }, -- Hat
hair = { enabled = true, drawable = 233, texture = 0, color1 = 19, color2 = 18}, -- Hair
mother = 45, -- Face 2
father = 23, -- Skin 1
face = 45, -- Face 1
skin = 23, -- Skin 1
faceMix = 0.6,
eyebrows = {index = 3, color =0, opacity = 1.0}, -- Eyebrows
mask = {enabled = true, index = 1, texture = 0}, -- Mask
glasses = {enabled = false, index = 1, texture = 0}, -- Glasses
makeup = {
lipstick = {index = 7, color = 2, opacity = 1}, -- Lipstick
blush = {index = -1, color = 2, opacity = 0.8}, -- Blush
eyeShadow = {index = 4, color = 2, opacity = 0.8} -- Eye Shadow
},
},
useWeapon = true, -- Use weapon
weaponName = 'WEAPON_PISTOL', -- Weapon name
ShowNPCImage = false, -- Show NPC image
imageUrl = "https://r2.fivemanage.com/Ck8tIuaMEfDjY82KcMEaI/images/logoreaver.png", -- Image URL
blip = {
enabled = false, -- Enable blip
sprite = 147, -- Blip sprite
color = 7, -- Blip color
scale = 0.8, -- Blip scale
display = 4, -- Display on map
shortRange = true, -- Use short range
name = "" -- Add this line to set the blip name
}
},
--more npcs
}
RVPROPS.Props = {
[1] = {
model = "prop_rub_carwreck_17",
coords = vector4(2359.42, 3047.77, 48.15, 234.0),
adjustToGround = true,
loadDistance = 20.0, -- En desarrollo...
ox_target = {
icon = "fa-sharp-duotone fa-solid fa-magnifying-glass",
label = "Buscar Material"
},
ProgressBar = {
enable = true,
animDict = "mini@repair",
anim = "fixing_a_player",
flags = 49,
label = "Buscando...",
duration = 5000,
disableMovement = true,
disableCarMovement = false,
disableMouse = false,
disableCombat = true
},
marker = { -- Marca sobre el prop
type = 20,
scaleX = 0.3,
scaleY = 0.3,
scaleZ = 0.3,
colorR = 0,
colorG = 0,
colorB = 0,
colorA = 255,
rotX = 0.0,
rotY = 0.0,
rotZ = 0.0,
zOffset = 1.0,
bob = 1,
hideDistance = 10.0, -- Nueva propiedad para ocultar el marcador
rotation = 1,
drawMarker = true -- Nueva propiedad para activar/desactivar el marcador
},
reward = {
items = {
{ item = "scrapmetal", minAmount = 4, maxAmount = 8 }, -- Rango para el primer ítem
{ item = "cash", minAmount = 2, maxAmount = 5 }, -- Rango para el segundo ítem
-- Puedes agregar más ítems aquí
}
},
respawnTime = 1 -- minutes
},
--more
}
```
En los props no hay cambios, solo se ha mejorado la capacidad de que el prop este siempre en el suelo y no flotando.
config_locale.lua
RVLOCALE = {}
RVLOCALE.locale = {
['es'] = {
start_loading_props = "Iniciando la carga de props",
player_connected = "Jugador conectado, cargando props",
resource_stopped = "Recurso detenido, eliminando props",
prop_spawned = "Prop spawnedo en: ",
job_permission_denied = "El jugador no tiene el trabajo permitido para registrar este prop",
gang_permission_denied = "El jugador no tiene la banda permitida para registrar este prop",
prop_cooldown_active = "Cooldown activo para este prop, tiempo restante: ",
prop_registered_deleted = "Prop registrado y eliminado",
prop_respawned = "Prop respawneado después del tiempo de respawn",
registerProp = "Objeto registrado",
missionaceptada = "Has rebido los objetos",
receivedItem = "You received: ",
PropsTitulo = "Prop Registration",
Propsdescription = "A prop has been registered.",
--NPC
nopermisos = "No tienes permiso para interactuar con este NPC.",
novip = "No eres V.I.P",
misionaceptada = "Misión aceptada",
erroritems = "No tienes el objeto requerido",
cooldown = "Debes esperar %s minutos y %s segundos antes de volver a interactuar con este NPC.",
dailyCooldown = "Debes esperar %s horas y %s minutos antes de volver a interactuar con este NPC.",
proppermisojob = "No perteneces al job asignado",
proppermisogang = "No perteneces a ninguna Gang asignada",
propcooldownTime = "No lo puedes registar",
},
['en'] = {
start_loading_props = "Starting prop loading",
player_connected = "Player connected, loading props",
resource_stopped = "Resource stopped, removing props",
prop_spawned = "Prop spawned at: ",
job_permission_denied = "Player does not have the job permission to register this prop",
gang_permission_denied = "Player does not have the gang permission to register this prop",
prop_cooldown_active = "Cooldown active for this prop, time remaining: ",
prop_registered_deleted = "Prop registered and deleted",
prop_respawned = "Prop respawned after respawn time",
registerProp = "Registed Object",
missionaceptada = "Has rebido los objetos",
receivedItem = "You received: ",
PropsTitulo = "Prop Registration",
Propsdescription = "A prop has been registered.",
--NPC
nopermisos = "No tienes permiso para interactuar con este NPC.",
novip = "No eres V.I.P",
misionaceptada = "Misión aceptada",
erroritems = "No tienes el objeto requerido",
cooldown = "Debes esperar %s minutos y %s segundos antes de volver a interactuar con este NPC.",
dailyCooldown = "Debes esperar %s horas y %s minutos antes de volver a interactuar con este NPC.",
proppermisojob = "No perteneces al job asignado",
proppermisogang = "No perteneces a ninguna Gang asignada",
propcooldownTime = "No lo puedes registar",
}
}
config_webhooks.lua
It is in development, I do not recommend using it for now.
Webhook = {
LoadNPCs = "",
ColorLoadNPCs = 16711680,
LoadNPCsthumbnail = "",
-----
Items = "",
ColorItems = 16711680,
Itemsthumbnail = "",
player = "Player",
npc = "Npc",
item = "Item Requerido",
amount = "Cantidad Requerida",
rewardItem1 = "Reward Item 1",
rewardAmount1 = "Reward Item 1 Amount",
rewardItem2 = "Reward Item 2",
rewardAmount2 = "Reward Item 2 Amount",
rewardItem3 = "Reward Item 3",
rewardAmount3 = "Reward Item 3 Amount",
-----
Props = "",
ColorProps = 16711680,
Propsthumbnail = "",
}
Próximamente el archivo webhooks.lua esta abierto para todo el mundo.
Soon the webhooks.lua file will be open to everyone.
config.lua
Se ha añadido la posibilidad de cambia el core del script pero aun no se recomienda cambiarlo a ESX, el script esta en desarrollo para ESX
Tambien se ha añadido la posibilidad de elegir la notificación personalizada desde el config.
Config = {}
Config.Core = "QB-Core" -- "ESX" or "QB-Core"
Config.CoreDefine = "" -- @CoreDefine - Si estás usando ESX Legacy o QB-Core, deja el valor "" y el script completará el export para definir el core
Config.CoreExport = function()
--return exports['es_extended']:getSharedObject() -- Si estás usando ESX Legacy
return exports['qb-core']:GetCoreObject() -- Si estás usando QB-Core
end
Config.sprites = { -- Configuración del sprite del NPC bl_sprites
key = "E", -- Key del sprite
shape = "circle", -- Forma del sprite
spriteIndicator = true, -- Indicador del sprite
colour = {255, 255, 255, 255}, -- Color del sprite
distance = 2.0, -- Distancia del sprite
scale = 0.05, -- Escala del sprite
}
Config.interactionrange = 2
Config.ProgressBarNPC = {
Tiempo = 5000,
Texto = "Esperando...", -- Texto del progreso
useWhileDead = false, -- Usar mientras muere
canCancel = true, -- Puede cancelar
disableMovement = true, -- Desactivar movimiento
disableCarMovement = true, -- Desactivar movimiento en coches
disableMouse = true, -- Desactivar mouse
disableCombat = true, -- Desactivar combate
animDict = "mp_common", -- Diccionario de animación
anim = "givetake1_a", -- Nombre de la animación
flags = 49 -- Flags de la animación
}
Config.Target = {
icono = "fas fa-comments",
Distancia = 0.2, --NO FUNCIONAL
iconocolor = "white"
}
Config.Notify = {
enable = true,
language = 'es' -- 'es' para español, 'en' para inglés
}
Config.Notification = function(message, time, type) -- Función para mostrar las notificaciones
if type == "success" then -- Si el tipo de notificación es "success"
QBCore.Functions.Notify(message, type, time) -- Notificación de éxito
elseif type == "error" then -- Si el tipo de notificación es "error"
QBCore.Functions.Notify(message, "error", time) -- Notificación de error
end
end
-- Configuración de depuración
Config.Debug = { -- Configuración de depuración
DebugProps = false, -- Activar o desactivar depuración de props
enabled = false, -- Activar o desactivar depuración
language = "es", -- Idioma de depuración ("es" para español, "en" para inglés)
messages = {
es = {
resourceStart = "El recurso ha iniciado.",
jugadorConectando = "Jugador conectándose, cargando NPCs...",
jugadorReaparecido = "Jugador reaparecido, cargando NPCs...",
creandoNPC = "^1Creando NPC...",
npcCreado = "NPC creado",
abriendoUI = "Abriendo la interfaz de usuario para la misión.",
obteniendoInformacionObjetos = "Obteniendo información de los objetos requeridos y recompensas.",
activandoCamara = "Activando la cámara para el NPC.",
enviandoMensajeNUI = "Enviando mensaje NUI.",
errorObjetoRequerido = "Error: npcId no está definido al aceptar la misión.",
aceptandoMision = "Misión aceptada para NPC: ",
cerrandoUI = "Cerrando la interfaz de usuario.",
empezandoAnimacionRecompensa = "Empezando animación de recompensa.",
progressBarCancelado = "Barra de progreso cancelada.",
destruyendoCamara = "Camara destruida",
cooldown = "tienes cooldown",
progressBarCompleta = "Barra de progreso completada."
},
en = {
resourceStart = "The resource has started.",
jugadorConectando = "Player connecting, loading NPCs...",
jugadorReaparecido = "Player respawned, loading NPCs...",
creandoNPC = "^1Creating NPC...",
npcCreado = "NPC created",
abriendoUI = "Opening the user interface for the mission.",
obteniendoInformacionObjetos = "Fetching information on required items and rewards.",
activandoCamara = "Activating the camera for the NPC.",
destruyendoCamara = "Camera OFF",
cooldown = "Cooldown",
enviandoMensajeNUI = "Sending NUI message.",
errorObjetoRequerido = "Error: npcId is not defined when accepting the mission.",
aceptandoMision = "Mission accepted for NPC: ",
cerrandoUI = "Closing the user interface.",
empezandoAnimacionRecompensa = "Starting reward animation.",
progressBarCancelado = "Progress bar cancelled.",
progressBarCompleta = "Progress bar completed."
}
}
}
Se tiene que tener en cuenta que soy nueva en creacion de scripts para fiveM, toda ayuda y consejo son bienvenidos en mi discord.
It must be taken into account that I am new to creating scripts for fiveM, all help and advice is welcome in my discord.
Última actualización