API de efectos al usar elementos
El script dream_vending
utiliza un sistema centralizado (DreamCore.Items
) para definir cómo afectan los elementos al jugador cuando se usan. Esta API te permite asignar fácilmente efectos a elementos, como sanación, animaciones o efectos visuales como la embriaguez.
🔧 Uso
Para hacer que un elemento sea usable con efectos, define en la tabla DreamCore.Items
una función use
:
DreamCore.Items = {
['mocha'] = { -- Este es el nombre del elemento definido en tu sistema de elementos (ejemplo: mocha, agua, hamburguesa)
use = function(playerId)
TriggerClientEvent('dream_vending:client:ApplyItemEffects', playerId, {
-- Los efectos se pasan como una lista (array) de tablas.
{ type = 'addArmor', amount = 2 }, -- El jugador recibirá primero 2 puntos de armadura
{ type = 'drinkAnim', prop = 'ng_proc_coffee_01a' } -- Después de la armadura, bebe
})
end
},
-- Añade más elementos ;)
}
💡 Nota: Si otro script gestiona el elemento, simplemente no lo incluyas en
DreamCore.Items
.
⚙️ Tipos de efectos admitidos
A continuación se muestra una lista de los valores admitidos para el parámetro type
del evento dream_vending:client:ApplyItemEffects
:
🩺 addHeal
Aumenta la salud del jugador.
{ type = 'addHeal', amount = 10 }
💔 removeHeal
Reduce la salud del jugador.
{ type = 'removeHeal', amount = 10 }
🛡️ addArmor
Aumenta la armadura del jugador.
{ type = 'addArmor', amount = 10 }
💥 removeArmor
Reduce la armadura del jugador.
{ type = 'removeArmor', amount = 10 }
🍔 eatAnim
Reproduce una animación de comer. Opcionalmente, establece una prop.
{ type = 'eatAnim', prop = 'prop_cs_burger_01' }
🥤 drinkAnim
Reproduce una animación de beber. Opcionalmente, establece una prop.
{ type = 'drinkAnim', prop = 'prop_ecola_can' }
🍻 drunk
Aplica un efecto visual y de movimiento de embriaguez.
Parámetros opcionales:
intensity
(float): Fuerza del temblor de la cámaraveryDrunk
(boolean): Cambia el estilo de caminata
{ type = 'drunk', intensity = 1.0, veryDrunk = true }
⏱️ Efectos con retraso
Puedes retrasar un efecto usando el parámetro timeout
(en milisegundos):
{ type = 'addHeal', amount = 10, timeout = 3000 }
💡 Consejos
- Puedes apilar múltiples efectos en un solo elemento.
- Trata de mantener la realidad: un whisky contiene más alcohol que simplemente una piña colada.
- Usa props existentes en GTA V (ejemplo:
prop_ecola_can
,ng_proc_coffee_01a
, etc.). - ¿Quieres efectos personalizados? Añade manejo para nuevos tipos de efecto a la función
ApplyItemEffects
(necesitas comprar la versión de origen).