Eggs
Edizione gratuita · RedM · VORP incluso · Altri framework tramite adattatori pubblici
rz_eggs aggiunge a RedM la raccolta configurabile delle uova, con disponibilità dei nidi condivisa, ricompense e tempi di ricomparsa. Questa è l’edizione gratuita, configurabile dai file pubblici: non include il menu di gestione di Herbs V2.

Versione
Versione documentata: 1.0.9. La versione installata è indicata in fxmanifest.lua. Il controllo degli aggiornamenti in console usa la voce rz_eggs_free di RZ Releases.
Panoramica
- Sette varianti di nido per cinque oggetti uovo: anatra, alligatore, oca, strolaga e avvoltoio.
- Coordinate personalizzate e scelta casuale fra le varianti assegnate a ciascun gruppo di coordinate.
- Più ricompense per nido, con quantità e probabilità configurabili.
- Rendering in base alla distanza, indicatori sulla mappa e sincronizzazione multiplayer.
- Tempo di ricomparsa, traduzioni e log Discord facoltativi.
- Integrazione VORP inclusa e adattatori modificabili per altri framework.
Uova supportate
| Definizione composite | Ricompensa predefinita |
|---|---|
COMPOSITE_LOOTABLE_DUCK_EGG_5_DEF | 5 × duckegg |
COMPOSITE_LOOTABLE_GATOR_EGG_3_DEF | 3 × gatoregg |
COMPOSITE_LOOTABLE_GATOR_EGG_4_DEF | 4 × gatoregg |
COMPOSITE_LOOTABLE_GATOR_EGG_5_DEF | 5 × gatoregg |
COMPOSITE_LOOTABLE_GOOSE_EGG_4_DEF | 4 × gooseegg |
COMPOSITE_LOOTABLE_LOON_EGG_3_DEF | 3 × loonegg |
COMPOSITE_LOOTABLE_VULTURE_EGG_VARIATION_01_DEF | 1 × vultureegg |
Le quantità sono quelle della configurazione fornita. Le ricompense si modificano in Config.LootReward; la definizione composite controlla il nido visibile. Eggs non include il sistema di consumo/effetti di Herbs e non genera animali che attaccano il giocatore.
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_eggsdentroresources, anche in una categoria come[rz]: per esempioresources/[rz]/rz_eggs. - 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/eggs-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_eggsPer 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 Eggs.- 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.
Configurazione
| File | Contenuto |
|---|---|
public/config.lua | Framework, lingua, distanza, ricomparsa, definizioni uova, blip e ricompense |
public/coords.lua | Gruppi di coordinate e varianti di nido disponibili |
public/language/en.lua | Notifiche inglesi incluse e testi dei log |
public/framework/client/ | Evento di caricamento personaggio e notifiche client |
public/framework/server/ | Accesso al personaggio, ricompense e notifiche server |
public/eggs-vorp.sql | Definizioni di esempio degli oggetti per VORP |
public/img/ | Icone dell’inventario |
Impostazioni principali — public/config.lua
Config.UsedLang = "en"
Config.Framework = "vorp" -- "custom" dopo aver completato gli adattatori
Config.WebhookUrl = "" -- Vuoto disattiva i log Discord
Config.Debug = false
Config.Render = 20.0 -- Distanza di rendering
Config.RespawnTimer = 20 -- Minuti dopo la raccoltaModifica questi campi nel file esistente: non sostituire l’intero file con questo estratto. Mantieni le dichiarazioni iniziali Config = {} e Language = {}.
Spawn e coordinate
Modifica Config.EggsCoords in public/coords.lua. Ogni gruppo contiene una lista eggs e una lista coords. All’avvio della risorsa il server sceglie una delle varianti elencate per ciascuna coordinata; non genera posizioni casuali all’interno di un’area.
Esempio di gruppo di coordinate
Config.EggsCoords = {
ducks = {
eggs = {
`COMPOSITE_LOOTABLE_DUCK_EGG_5_DEF`,
},
coords = {
{x = 2464.36, y = -1399.3, z = 45.23},
{x = 2435.98, y = -1431.85, z = 45.07},
}
}
}È un esempio ridotto. Integra i gruppi nella tabella esistente per mantenere gli altri nidi. Ogni variante deve avere una voce corrispondente in Config.Eggs e Config.LootReward. La lista di varianti di ciascun gruppo non deve essere vuota; verifica l’altezza del terreno in gioco.
Blip
Ogni voce di Config.Eggs ha un name e una tabella blip con visible, type e color. Imposta visible = false per nascondere l’indicatore di quella variante. Controlla i nomi forniti: diverse voci condividono attualmente l’etichetta predefinita Duck Eggs.
Ricompense
Config.LootReward associa alla definizione composite del nido l’immagine della notifica e la lista delle ricompense. Gli oggetti devono essere già registrati nell’inventario.
Esempio con più ricompense
Config.LootReward[`COMPOSITE_LOOTABLE_DUCK_EGG_5_DEF`] = {
img = {
dict = "pm_collectors_bag_mp",
texture = "provision_duck_egg"
},
rewards = {
{item = "duckegg", count = 5, label = "Uovo di anatra", chance = 100},
-- Registra l’oggetto aggiuntivo nell’inventario prima di abilitarlo:
-- {item = "feather", count = 1, label = "Piuma", chance = 25},
}
}Con chance = 100 la ricompensa supera sempre l’estrazione. L’implementazione attuale usa un solo numero casuale per interazione, condiviso da tutte le ricompense: non sono estrazioni indipendenti. Mantieni la voce con rewards = {} se vuoi intenzionalmente disabilitare gli oggetti ricompensa.
Se viene tentata almeno una ricompensa ma nessun oggetto può essere aggiunto, il server ripristina la disponibilità del nido. Se l’estrazione non assegna nulla o la lista è vuota, la raccolta avvia comunque il cooldown. Se viene aggiunta solo una parte degli oggetti, il nido resta raccolto.
Sincronizzazione e ricomparsa
Il server gestisce lo stato raccolto e controlla giocatore, nido, distanza e richieste ripetute prima di assegnare le ricompense. Un nido raccolto diventa indisponibile per gli altri giocatori. I giocatori vicini ricevono l’aggiornamento di rimozione; i client richiedono inoltre periodicamente le variazioni di stato.
Config.RespawnTimer è espresso in minuti. Il server controlla i cooldown una volta al minuto; sincronizzazione e rendering del client possono aggiungere un breve ritardo alla ricomparsa visiva.
Memorizzazione e prestazioni
Le posizioni provengono da public/coords.lua; stato di raccolta e cooldown sono tenuti in memoria e si azzerano al riavvio della risorsa. Questa edizione non salva lo stato dei nidi in SQL e non ha un’opzione UseSQL. L’SQL fornito registra gli oggetti nell’inventario, mentre oxmysql rimane una dipendenza del manifest.
I nidi vengono renderizzati in base alla distanza e i client mantengono una cache dei nidi vicini. Misura il resmon sul tuo server: numero e densità delle coordinate, giocatori e distanza di rendering influenzano il consumo.
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_eggs: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 uova 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_eggse 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_eggs_free" nel manifest fornito per usare il canale corretto dell’edizione.
Risoluzione dei problemi
| Problema | Cosa controllare |
|---|---|
| La risorsa non parte | Autorizzazione Cfx, OneSync, oxmysql, struttura delle cartelle e ordine di avvio |
| Nessun nido visibile | Altezza delle coordinate, varianti configurate, distanza, evento personaggio caricato e cooldown |
| Raccolgo ma non ricevo oggetti | Nomi esatti degli oggetti, capacità dell’inventario, probabilità e risultato della funzione custom AddItem |
EGG_LOOT_CONFIG_MISSING | Manca la voce della composite in Config.LootReward |
EGG_LOOT_REWARDS_INVALID | La configurazione deve avere una tabella rewards, anche se vuota |
| Nomi o notifiche errati | Tabella della lingua selezionata, etichette ricompense e nomi delle uova |
Attiva temporaneamente Config.Debug = true per leggere i log di raccolta del server, poi disattivalo. Per assistenza, indica versione, framework, passaggi per riprodurre il problema ed errori console in un ticket Discord.
