Script de cultivos para FiveM

Cultivos: documentación

Un sistema de cultivos completo. Los admins crean zonas y tipos de cultivo en el juego desde una tablet, sin tocar el config ni reiniciar. Los jugadores siembran, riegan y cuidan sus plantas, cosechan según la calidad, procesan la cosecha y la venden en un mercado con precios que se mueven. Los cultivos ilegales avisan a la policía, que puede quemarlos en redadas.

  • Versión 3.0.2
  • Frameworks: QBCore · Qbox
  • Idiomas: es · en

Funciones

Cultivo

  • Zonas y tipos de cultivo desde una tablet (/cultivotablet). Puedes crearlos, editarlos, mover una zona a tu posición y borrarlos.
    • Opciones de zona: máximo de plantas, solo para ciertos trabajos, invernadero, blip en el mapa.
  • Etapas de crecimiento: brote → mediana → lista, con 3 modelos, o un solo modelo que va saliendo de la tierra.
  • Agua: baja poco a poco y la lluvia rellena las plantas al aire libre (funciona con cualquier script de clima). Una planta sin agua demasiado tiempo se muere.
  • Calidad 0–100 %: baja cuando a la planta le falta agua, tiene plagas o se pudre (se dejó lista sin cosechar). La calidad decide la cosecha y se guarda en la metadata del item cosechado.
  • Plagas: aparecen al azar y se quitan con el item de pesticida.
  • Fertilizantes: varios tipos (crecimiento más rápido, más cosecha). Pulsa K para elegir cuál usarás en la próxima planta.
  • Regadera con cargas: se rellena de pie en el agua (río, lago, mar, piscina).
  • Invernaderos: sin lluvia, se secan más despacio y con menos plagas.
  • Semillas de vuelta: un % de probabilidad de recibir semillas al cosechar.
  • Siembra libre (opcional): usa una semilla en suelo real (pasto, tierra, arena), con un límite por jugador.

Economía

  • Mesas de procesado: convierte la cosecha en productos (secar y embolsar, empacar en cajas...). Las recetas se configuran y la calidad se mantiene.
  • Compradores NPC con un mercado dinámico: cada venta baja el precio, que se recupera con el tiempo. La calidad influye en el precio.

Policía

  • Cultivos ilegales: un % de probabilidad de aviso a la policía al sembrar, cosechar o vender.
    • Scripts de dispatch compatibles: origen_police, ps-dispatch, cd_dispatch, qs-dispatch, core_dispatch y rcore_dispatch.
    • Sin ninguno, los policías de servicio reciben una notificación y un blip.
  • Redadas: la policía quema las plantas ilegales (animación y fuego). Al dueño se le avisa.

Tablet

  • "Mis cultivos" (/cultivos): el estado de cada planta, el tiempo que falta, el agua, el crecimiento, la calidad y su GPS.
  • Avisos al dueño (notificaciones mientras el dueño está en la ciudad, una vez por problema): lista para cosechar, necesita agua (por debajo del 25 % por defecto), plaga, se está pudriendo, muerta (seca o podrida) y quemada por la policía. Los de lista / agua / plaga / muerta se pueden apagar en Config.OwnerAlerts.
  • Estadísticas: mejores cultivadores, cosechas por cultivo y acciones (sembradas, cosechadas, vendidas, destruidas, quemadas).
  • Mercado: precios de los compradores en vivo.

Integración

  • Las notificaciones, los textos "[E]" y las barras de progreso pasan por rolo_notify automáticamente, o por ox_lib / qb-core / okok / el tuyo (Config.Notify, Config.TextUI, Config.Progress).
  • ox_target / qb-target en los compradores, con la tecla E como reserva.
  • Inventarios: ox_inventory, origen_inventory, qs-inventory, qb-inventory.
  • Logs de Discord por categoría: plantas, cosecha, policía, mercado, admin.
  • La base de datos se crea y se actualiza sola, incluidas las tablas de la v2. Al primer arranque se crean 4 cultivos de ejemplo.

Instalación

  1. Pon rolo_cultivos en tu carpeta de resources.

  2. Asegúrate de que ox_lib y oxmysql arrancan antes.

  3. Añade ensure rolo_cultivos a tu server.cfg.

  4. Items: añade los items de ejemplo de items/ a tu inventario.

    • ox_origen_items.lua para ox_inventory / origen_inventory;
    • qb_items.lua para qb-core / qs-inventory;

    Sáltate los que ya tengas (por ejemplo water_bottle). Añade las imágenes de los items a tu inventario.

  5. Da acceso a los admins, con un ace o con uno de Config.AdminGroups:

    add_ace group.admin rolo_cultivos.admin allow
    
  6. En el juego, abre /cultivotablet → Zonas. Párate en el campo y crea la zona en tu posición.

  7. Mueve los compradores y las mesas de procesado en config.lua (Config.Buyers, Config.Processing) a donde quieras en tu mapa.


Configuración

Todo está en config.lua.

Opción Qué hace
Config.Locale 'es' / 'en'
Config.Framework / Config.Inventory 'auto' los detecta
Config.Notify / TextUI / Progress / Target Sistemas de interfaz ('auto' = rolo_notify si está activo)
Config.PoliceJobs trabajos que queman plantas y reciben los avisos
Config.Dispatch sistema de policía ('auto' = primero origen_police) y probabilidades del aviso
Config.Quality / Death / Rot / Pests cómo pierden calidad o mueren las plantas
Config.Fertilizers tipos de fertilizante (useCrop = valores de cada tipo de cultivo)
Config.WateringCan item y cargas
Config.FreePlanting sembrar fuera de las zonas, límite por jugador, materiales de suelo
Config.Processing mesas, props y recetas
Config.Buyers / Config.Market compradores, precios base y cómo se mueve el mercado
Config.OwnerAlerts qué avisos recibe el dueño
Config.ExampleCrops cultivos creados al primer arranque
config_server.lua webhooks de Discord por categoría (solo servidor)

Archivos abiertos (escrow)

Estos archivos se pueden editar:

  • config.lua;
  • locales/*.lua;
  • items/*;
  • bridge/client.lua y bridge/server.lua: framework, inventario, metadata, dispatch de policía y los sistemas de notificación / texto / progreso. Cada uno tiene una rama 'custom' para tus propios recursos.

Controles

Tecla Acción
E Sembrar (dentro de una zona) · regar · tratar plagas · cosechar · quitar una planta muerta
G Destruir tu propia planta · quemar una planta ilegal (policía)
K Cambiar el fertilizante de la próxima planta (configurable en Configuración → Asignación de teclas → FiveM)

Aspecto de la tablet (Config.TabletCase)

La tablet viene en una funda rugerizada: bordes de goma del color del trabajo, una placa remachada arriba, tornillos, botones laterales, LEDs de estado y el logo de ROLO SCRIPT en el marco de abajo (el único logo), y el emblema del trabajo (icono del color de la funda + nombre) arriba a la izquierda de la pantalla. Cambia el color, el texto de la placa, su icono y el desgaste (manchas de 'grease', 'dust'), o usa style = 'classic' para un marco fino. Cómo se abre (Config.TabletView): 'hands' = el personaje saca una tablet real (todos la ven), la cámara pasa a primera persona y la pantalla sube desde abajo, con el juego visible alrededor; al cerrar la guarda y devuelve la cámara. 'screen' = solo la pantalla.

Actualizar desde la v2

La v3 migra sola las tablas viejas, añadiendo las columnas nuevas y la tabla de registros. Tus zonas, tipos de cultivo y plantas se mantienen. Las plantas viejas fertilizadas usan el primer fertilizante de Config.Fertilizers.

Secretos: config_server.lua

Los webhooks de Discord y las API keys van en config_server.lua, no en config.lua. config.lua se envía al juego de cada jugador (FiveM lo comparte), así que cualquiera con trampas podría leerlo; config_server.lua solo lo carga el servidor. Pega ahí tus webhooks y deja config.lua sin secretos.

Compatibilidad

El núcleo de compatibilidad (compat/server.lua + compat/client.lua, archivos abiertos) detecta tus sistemas al arrancar y los muestra en la consola del servidor, por ejemplo compat: framework qbcore · inventory ox_inventory · garages qb-garages · society qb-banking.

  • Inventarios: ox_inventory, origen_inventory, qs-inventory, codem-inventory, core_inventory, qb-inventory, ps-inventory / lj-inventory / tgiann-inventory (mediante las funciones de jugador de QBCore). Config.Inventory = 'custom' + Compat.CustomInventory.
  • Los errores se muestran en la consola con el nombre del sistema, nunca en silencio.
  • Los nombres y columnas siguen la documentación pública de cada script. Prueba una vez después de instalar con tu propia configuración.

© ROLO SCRIPT

¿Te atascaste?

Escríbenos en el canal de soporte de Discord con el script, tu framework y el error de la consola.