MultiChest è uno script progettato per offrire ai giocatori un sistema di casseforti sicure in FiveM. Che si tratti di conservare oggetti preziosi in una banca o di personalizzare posizioni specifiche, questo strumento arricchisce l’esperienza di RP consentendo una gestione intuitiva e sicura dei beni dei giocatori.
Protetto da FiveM Escrow, MultiChest offre una configurazione estremamente dettagliata tramite il file config.lua
. Puoi personalizzare i marcatori, le notifiche, i webhook e molto altro, mantenendo la sicurezza del nostro codice sorgente. 🚀
Per garantire il corretto funzionamento di MultiChest, assicurati che le seguenti risorse siano installate sul tuo server:
▪️ es_extended
▪️ ox_lib
▪️ ox_inventory
▪️ oxmysql
CREATE TABLE IF NOT EXISTS `user_chest` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`owner` varchar(50) NOT NULL,
`name` varchar(50) NOT NULL,
`name_chest` varchar(100) NOT NULL,
`name_bank` varchar(100) NOT NULL,
`weight` int(11) NOT NULL,
`password` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
INDEX `owner_index` (`owner`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
All’avvio del programma, MultiChest si occupa di creare il database di cui ha bisogno.
ℹ️ Informazioni:
▪️ id: L’identificativo della cassaforte, che si incrementa automaticamente a ogni nuova voce.
▪️ owner: L’identificativo del proprietario della cassaforte.
▪️ name: Corrisponde al tipo di cassaforte scelto dal giocatore.
▪️ name_chest: Corrisponde al nome personalizzato assegnato dal giocatore.
▪️ name_bank: Indica la banca a cui è associata la cassaforte.
▪️ weight: Rappresenta la capacità di carico della cassaforte.
▪️ password: Corrisponde alla password scelta dal giocatore.
Questo modulo configura i punti di interazione per le casseforti basandosi sui parametri definiti in Config.CoffreLocations
. Gestisce la visualizzazione dei marcatori visivi e degli indicatori sulla mappa (blip), oltre alle interazioni del giocatore quando si avvicina.
🔧 Dettagli:
▪️ Per ogni posizione definita in Config.CoffreLocations
, vengono aggiunti blip personalizzabili (icona, dimensione, colore, etichetta) sulla mappa.
▪️ I marcatori visivi vengono mostrati secondo i parametri specificati in Config.Marker
(tipo, colore, dimensione, rotazione, ecc.).
▪️ Zone interattive rilevano la presenza del giocatore e consentono l’interazione tramite il tasto [E].
Questa configurazione offre un’esperienza immersiva e fluida per localizzare e interagire con le casseforti nel gioco. ➡️
Questo modulo mostra un menu contestuale che consente al giocatore di accedere alle proprie casseforti esistenti o di affittarne una nuova, in base alla sua vicinanza a un punto di interazione.
🔧 Dettagli:
▪️ Lo script identifica la banca più vicina confrontando le coordinate del giocatore con quelle definite in Config.CoffreLocations
.
▪️ Verifica quindi se il giocatore possiede già una cassaforte in quella banca.
▫️ Se sì, viene proposta un’opzione per accedere alla cassaforte.
▫️ Altrimenti, appare solo l’opzione di affitto.
▪️ Viene visualizzato un menu contestuale interattivo che offre le diverse azioni disponibili.
Questa funzionalità offre un’interfaccia intuitiva e adattata alla posizione del giocatore per gestire le sue casseforti. 🔓
Questo modulo permette al giocatore di affittare una cassaforte scegliendo tra le opzioni disponibili per la banca attuale, tramite un’interfaccia di inserimento per definire nome e password.
🔧 Dettagli:
▪️ Filtra le casseforti in Config.Coffres
per mostrare solo quelle corrispondenti alla banca in cui si trova il giocatore, indicando nome, prezzo, tasse (basate sul peso), peso massimo e numero di slot.
▪️ Una finestra di dialogo raccoglie il nome e la password della cassaforte prima dell’affitto.
▪️ Viene attivato un evento per finalizzare l’affitto trasmettendo le informazioni al server.
▪️ In assenza di casseforti disponibili, appare un messaggio di errore nel menu.
Questa interfaccia chiara ed efficiente risponde alle esigenze specifiche di ogni banca per l’affitto delle casseforti. 🛒
Questo modulo mostra l’elenco di tutte le casseforti affittate dal giocatore nella banca corrispondente e offre opzioni per aprire, rinominare, modificare la password o eliminare una cassaforte.
🔧 Dettagli:
▪️ Se il giocatore non possiede casseforti, viene mostrata una notifica di errore.
▪️ La banca attuale viene identificata in base alla posizione del giocatore.
▪️ Un menu contestuale elenca ogni cassaforte con il suo nome (o un nome predefinito se non specificato).
▪️ Per ogni cassaforte, un sottomenu propone le opzioni: aprire (con password), cambiare password, rinominare o eliminare.
Questa gestione completa offre un’interfaccia ricca e sicura per monitorare e amministrare le casseforti del giocatore. 📦
Questo modulo permette di aprire l’inventario di una cassaforte specifica utilizzando OX_Inventory, per visualizzare e gestire gli oggetti al suo interno.
🔧 Dettagli:
▪️ La cassaforte selezionata viene recuperata tramite OX_Inventory, consentendo al giocatore un accesso diretto al suo contenuto.
Questa funzionalità garantisce una gestione fluida e integrata dell’inventario delle casseforti, ottimizzando l’esperienza dell’utente. 📋
Config.Marker = {
id_type = 27,
size_x = 0.3,
size_y = 0.3,
size_z = 0.3,
color_red = 0,
color_green = 150,
color_blue = 150,
color_opacity = 100,
rotate = true,
}
Questa sezione consente di personalizzare i marcatori visivi che indicano le posizioni delle casseforti nel gioco. Questi fungono da punti di interazione per i giocatori.
🔧 Opzioni disponibili:
▪️ id_type: Tipo di marcatore (vedi documentazione FiveM per gli ID).
▪️ size_x, size_y, size_z: Dimensioni del marcatore (lunghezza, larghezza, altezza).
▪️ color_red, color_green, color_blue: Colori RGB (0-255).
▪️ color_opacity: Opacità (0-255).
▪️ rotate: Attiva/disattiva la rotazione (true/false).
Adatta i marcatori per integrarli perfettamente nel tuo server! 🎯
Config.Blips = {
activ_blips = true,
icon = 272,
display = 4,
scale = 0.7,
color = 2,
activ_text_on_blip_bank_name = false,
txt_blip_intro_bank_name = "[Cassaforte]",
txt_blip_intro_simple = "[Cassaforte]",
}
I blip sono icone visualizzate sulla mappa per localizzare le casseforti. Questa sezione ti permette di configurarli secondo le tue preferenze.
🔧 Opzioni disponibili:
▪️ activ_blips: Attiva/disattiva i blip (true/false).
▪️ icon: ID dell’icona (vedi documentazione FiveM).
▪️ display: Tipo di visualizzazione (4 = mappa + minimappa).
▪️ scale: Dimensione del blip.
▪️ color: Colore (vedi documentazione FiveM).
▪️ activ_text_on_blip_bank_name: Mostra il nome della banca.
▪️ txt_blip_intro_bank_name, txt_blip_intro_simple: Testo del blip.
Personalizza i blip per guidare efficacemente i tuoi giocatori! 🗺️
Config.Notifications = {
position_error = "center-left",
duration_error = 5000,
position_success = "center-left",
duration_success = 5000,
position_warning = "center-left",
duration_warning = 5000,
}
Le notifiche informano i giocatori delle azioni o degli errori relativi alle casseforti. Regola la loro posizione e durata per una migliore esperienza.
🔧 Opzioni disponibili:
▪️ position_error, position_success, position_warning: Posizione sullo schermo.
▪️ duration_error, duration_success, duration_warning: Durata in millisecondi.
Assicurati che i messaggi siano chiari e ben posizionati! 📢
Config.Webhook = {
webhook_use_only_one_logo = false,
webhook_logo_defaut = "https://www.heickotv.xyz/multichest/multichest.png",
webhook_logo_fleeca_bank = "https://www.heickotv.xyz/multichest/fleeca_bank.png",
webhook_logs_activation = true,
webhook_link_log = "https://discord.com/api/webhooks/...",
txt_log_title_for_buy = "Affitto cassaforte",
txt_log_for_buy = "ha affittato",
color_code_for_buy = 65280,
}
Il webhook invia i log a Discord per tracciare le azioni relative alle casseforti (acquisti, modifiche, eliminazioni).
🔧 Opzioni disponibili:
▪️ webhook_use_only_one_logo: Usa un solo logo o uno per banca.
▪️ webhook_logo_defaut, webhook_logo_fleeca_bank, ecc.: URL dei loghi.
▪️ webhook_logs_activation: Attiva i log.
▪️ webhook_link_log: URL del webhook di Discord.
▪️ txt_log_title_for_buy, ecc.: Titoli e testi dei log.
▪️ color_code_for_buy, ecc.: Colori degli embed.
Tieni d’occhio le attività con Discord! 🔗
Config.Text = {
txt_button = "[E] - Gestisci le casseforti di",
txt_first_head_menu = "Gestione casseforti -",
txt_my_chest = "📦 Le mie casseforti -",
txt_access_chest = "📦 Accedi alle mie casseforti",
-- (lista completa in config.lua)
}
Personalizza tutti i testi visualizzati nell’interfaccia e nelle notifiche per un’esperienza totalmente immersiva.
🔧 Opzioni disponibili:
▪️ txt_button: Testo del pulsante di interazione.
▪️ txt_first_head_menu: Intestazione del menu.
▪️ txt_my_chest: Etichetta delle casseforti personali.
Adatta il linguaggio alla tua comunità! 📝
Config.Limit = {
chest_limit_per_player = 15,
}
Definisci un limite al numero di casseforti che un giocatore può possedere.
🔧 Opzioni disponibili:
▪️ chest_limit_per_player: Numero massimo di casseforti.
Bilancia l’economia e il gameplay! ⚖️
Config.CoffreLocations = {
{ coords = vector3(251.24, 220.82, 106.35),
bank_type = "FleecaBank",
bank_name = "Pacific Bank - Vinewood Blvd." },
-- (lista completa in config.lua)
}
Aggiungi posizioni in cui i giocatori possono interagire con le casseforti.
🔧 Opzioni disponibili:
▪️ coords: Coordinate (x, y, z).
▪️ bank_type: Tipo di banca (FleecaBank, Mazebank o SavingBank).
▪️ bank_name: Nome della banca.
Posiziona le tue casseforti dove vuoi! 📍
Config.Coffres = {
{ name = "Cassaforte piccola",
weight = 50000,
price = 1000,
nb_slot = 10,
bank_name = "Pacific Bank - Vinewood Blvd." },
-- (lista completa in config.lua)
}
Definisci i tipi di casseforti disponibili per l’affitto.
🔧 Opzioni disponibili:
▪️ name: Nome della cassaforte.
▪️ weight: Capacità (in grammi).
▪️ price: Prezzo dell’affitto.
▪️ nb_slot: Numero di slot.
▪️ bank_name: Banca associata.
Offri una varietà di casseforti ai tuoi giocatori! 🎁
Config.Taxes = {
enable = true,
percent = 2.0,
nb_hour_between_two_samples = 6,
}
Aggiungi un sistema di tasse per le casseforti affittate.
🔧 Opzioni disponibili:
▪️ enable: Attiva/disattiva le tasse.
▪️ percent: Percentuale delle tasse.
▪️ nb_hour_between_two_samples: Intervallo tra due prelievi (in ore).
Simula un’economia realistica! 💸