Herbs V1
Edizione gratuita · RedM · VORP incluso · Altri framework tramite adattatori pubblici
rz_herbs aggiunge a RedM raccolta piante e interazioni di consumo supportate. L’edizione gratuita V1 si configura dai file Lua pubblici.
LEGACY
Non più sviluppata né supportata. La risorsa esistente rimane utilizzabile; Herbs V2 è l’edizione attuale a pagamento.

Versione
Versione documentata: 1.0.8. Controlla la versione installata in fxmanifest.lua. La console verifica la voce rz_herbs_free di RZ Releases.
Panoramica
- 41 tipi di piante con nomi, blip e ricompense configurabili.
- Coordinate personalizzate, gruppi di piante e rendering in base alla distanza.
- Raccolta a piedi e a cavallo dove consentito dal gioco.
- Consumo ed effetti aggiuntivi per le piante commestibili supportate.
- Disponibilità condivisa, ricomparsa, traduzioni e log Discord facoltativi.
- VORP incluso; altri framework richiedono l’adattamento dei file pubblici.
Installazione
- Riscatta il pacchetto gratuito su Tebex e scaricalo dalle risorse assegnate su Cfx.re, con l’account autorizzato a usare la risorsa.
- Metti la cartella
rz_herbsdentroresources, anche in una categoria come[rz]: per esempioresources/[rz]/rz_herbs. - Oggetti inventario — facoltativo: puoi usare gli oggetti già presenti nel tuo inventario, scegliendoli nella configurazione delle ricompense. Se vuoi aggiungere quelli forniti con lo script, trovi il file pronto
public/herbs-vorp.sqlper VORP e le icone inpublic/img/. Importa solo gli oggetti che ti servono, verificando lo schema del tuo inventario ed evitando duplicati; aggiungi le relative icone se necessarie. - Configura i file pubblici indicati sotto.
- Avvia la risorsa dopo le dipendenze:
ensure oxmysql
ensure vorp_core
ensure vorp_inventory
ensure rz_herbsPer un altro framework, sostituisci le voci VORP con il tuo framework e inventario, completando entrambi gli adattatori prima di usare Config.Framework = "custom".
Requisiti
VORP
vorp_coreevorp_inventory, avviati prima di Herbs V1.- Oggetti ricompensa registrati e spazio disponibile nell’inventario.
Altri framework
- Sistema personaggi e inventario collegati tramite
public/framework/. - Uno sviluppatore deve completare il template con le funzioni e gli eventi reali del framework: selezionare
customnon basta.
Obbligatori per tutti
- Server RedM con OneSync attivo.
oxmysql: richiesto dal manifest attuale, che ne carica anche la libreria server.- Autorizzazione Cfx per la risorsa protetta.
La cartella installata si chiama rz_herbs. V1 e V2 usano lo stesso nome risorsa: ferma e sposta l’altra edizione fuori dalle risorse attive prima di cambiare. Vedi il passaggio alla V2.
Configurazione
| File | Contenuto |
|---|---|
public/config.lua | Framework, lingua, rendering, ricomparsa, piante, blip, ricompense e attivazione effetti |
public/coords.lua | Gruppi di piante e coordinate |
public/eateffects.lua | Effetti aggiuntivi del consumo |
public/language/en.lua | Testi di notifiche e log |
public/framework/client/ e public/framework/server/ | Framework, inventario e notifiche |
public/herbs-vorp.sql e public/img/ | Esempi di oggetti inventario e icone |
Impostazioni principali — public/config.lua
Config.UsedLang = "en"
Config.Framework = "vorp"
Config.WebhookUrl = ""
Config.AllowHorseCollect = true
Config.Render = 20.0
Config.RespawnTimer = 20Modifica questi campi nel file esistente senza sostituirlo interamente. RespawnTimer è in minuti; mantieni le dichiarazioni iniziali Config = {} e Language = {}.
Spawn e coordinate
Modifica Config.HerbsCoords in public/coords.lua. Ogni gruppo ha una lista plants e una lista coords. All’avvio il server sceglie una pianta fra quelle elencate per ogni posizione. Sono coordinate fisse, non punti generati casualmente dentro una zona.
Esempio di gruppo di coordinate
Config.HerbsCoords = {
agarita = {
plants = { `COMPOSITE_LOOTABLE_AGARITA_DEF` },
coords = {
{x = 2044.612, y = -1531.567, z = 40.5369},
}
}
}Integra questo esempio ridotto nei gruppi esistenti. Mantieni la lista delle piante non vuota, usa definizioni presenti in Config.Herbs e verifica l’altezza del terreno in gioco.
Blip
Ogni voce di Config.Herbs contiene name e una tabella blip con visible, type e color. Usa visible = false per nascondere l’indicatore di quella pianta.
Ricompense
Modifica la lista rewards di ogni pianta in Config.Herbs. Usa il nome esatto degli oggetti già presenti nel tuo inventario. Registra nuovi oggetti solo se desideri aggiungerne.
Esempio di ricompensa
Config.Herbs[`COMPOSITE_LOOTABLE_AGARITA_DEF`].rewards = {
{item = "agarita", count = 1, label = "Agarita", chance = 100},
}Questo cambia solo la lista delle ricompense: mantieni gli altri campi della pianta. Aggiungi righe per più oggetti, oppure usa rewards = {} per non assegnarne.
Un’unica estrazione è condivisa da tutte le ricompense dell’interazione: a differenza della V2, le probabilità non sono indipendenti. Se viene tentata una ricompensa ma non viene aggiunto alcun oggetto, la pianta torna disponibile. Lista vuota o probabilità fallita consumano comunque la pianta; anche una consegna parziale la lascia raccolta.
Effetti del consumo
Usa Config.EatHerbs in public/config.lua per le varianti commestibili supportate. Il secondo valore di ogni voce abilita il gestore degli effetti aggiuntivi; conserva il collegamento esistente con Config.Herbs. Inserisci le chiamate reali del tuo metabolismo o di altri script nel ramo del relativo hash in public/eateffects.lua.
I rami degli effetti forniti sono punti di integrazione, non sistemi fame/stress già configurati. Non copiare chiamate di risorse che non usi. Prompt nativo Mangia e interazioni a cavallo dipendono da pianta e RedM: abilitare un effetto non rende commestibile ogni pianta.
Sincronizzazione e ricomparsa
Il server controlla giocatore, pianta, distanza e richieste ripetute prima di riservare la pianta e assegnare le ricompense. I client vicini ricevono la rimozione e sincronizzano periodicamente le variazioni.
Config.RespawnTimer è in minuti; i cooldown sono controllati una volta al minuto, con possibile ritardo aggiuntivo del rendering client.
Memorizzazione e prestazioni
Le coordinate sono in public/coords.lua. Stato di raccolta e cooldown restano in memoria e si azzerano al riavvio della risorsa. Non esiste un’opzione di persistenza SQL delle piante: l’SQL fornito registra gli oggetti inventario. oxmysql rimane richiesto dal manifest.
Rendering a distanza e cache delle piante vicine limitano gli oggetti attivi. Misura il resmon con densità delle piante, giocatori e distanza del tuo server.
Integrazione del framework
VORP
Imposta Config.Framework = "vorp". Gli adattatori inclusi usano dati del personaggio VORP, verifica della capacità dell’inventario e aggiunta degli oggetti. Modifica questi file pubblici solo se la tua integrazione VORP è diversa:
public/framework/client/vorp_cl.luapublic/framework/server/vorp_sv.lua
Altri framework
Completa public/framework/client/custom_cl.lua e public/framework/server/custom_sv.lua, poi seleziona custom.
| Funzione/evento | Integrazione richiesta |
|---|---|
CustomSV.GetPlayer(source) | Restituisce un personaggio/giocatore valido; nil/false impedisce la raccolta |
CustomSV.GetPlayerName(source) / GetPlayerLastname(source) | Nomi del personaggio usati nei log |
CustomSV.AddItem(src, item, count) | Verifica la capacità, aggiunge gli oggetti e restituisce un valore vero solo in caso di successo |
CustomSV.Notify(...) / CustomCL.Notify(...) | Il tuo sistema di notifiche |
| Evento client di caricamento personaggio | Sostituisci l’esempio customevent e richiama rz_herbs:playerLoaded quando il personaggio è pronto |
L’adattatore custom è un template, non un’integrazione già pronta per ogni framework. Prova inventario pieno, aggiunta fallita e riconnessione oltre alla normale raccolta.
Lingue e notifiche
Duplica public/language/en.lua, rinominalo (per esempio it.lua), cambia la chiave della tabella in Language["it"], traduci i valori e imposta Config.UsedLang = "it". Mantieni tutte le chiavi. Riavvia la risorsa dopo le modifiche.
I testi di notifiche/log sono separati dai valori label delle ricompense e name delle piante in config.lua. I prompt nativi delle interazioni possono seguire la lingua del gioco del giocatore.
Log Discord
Inserisci il webhook del canale in Config.WebhookUrl, oppure lascialo vuoto per disabilitare i log. Non mostrare un webhook reale negli screenshot o negli esempi di configurazione pubblici.
Aggiornamento
- Fai un backup della risorsa, dei file pubblici personalizzati e del database dell’inventario prima di eventuali modifiche SQL.
- Ferma
rz_herbse scarica il pacchetto nuovo completo da Cfx. - Sostituisci il codice della vecchia risorsa con il pacchetto nuovo. Cambiare soltanto
public/lascia installata la vecchia implementazione. - Confronta i nuovi file
public/con il backup e riapplica coordinate, ricompense, traduzioni e integrazioni. Non sovrascrivere alla cieca la cartella pubblica nuova con quella vecchia. - Segui il changelog per eventuali modifiche agli oggetti/allo schema; non reimportare inutilmente gli oggetti già presenti.
- Avvia dipendenze e risorsa, poi prova raccolta, ricompense, inventario pieno, sincronizzazione e cooldown.
Il controllo versione segnala gli aggiornamenti disponibili, ma non li installa. Mantieni rz_update_product "rz_herbs_free" nel manifest fornito per usare il canale corretto dell’edizione.
Per il passaggio V1 → V2 segui la sezione dedicata alla migrazione, senza copiare i file di configurazione V1 dentro V2.
Risoluzione dei problemi
| Problema | Cosa controllare |
|---|---|
| La risorsa non parte | Autorizzazione Cfx, OneSync, oxmysql e ordine di avvio |
| Nessuna pianta visibile | Altezza, definizioni piante, distanza, evento personaggio caricato e cooldown |
| Nessuna ricompensa | Nomi oggetti, capacità inventario, estrazione condivisa e risultato custom AddItem |
| Nessun effetto aggiuntivo | Variante commestibile, attivazione Config.EatHerbs e chiamate reali in public/eateffects.lua |
| Notifica errata | Chiave della lingua, etichette ricompense e nomi delle piante |
Per un problema riproducibile, indica versione, framework, passaggi ed errori console in un ticket Discord. V1 resta l’edizione legacy: controlla lo stato del supporto prima di richiedere nuove integrazioni.
