Saltar al contenido principal

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ámara
  • veryDrunk (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).