Installazione
Dieci minuti: un file SQL, un permesso e tre righe di config.lua da controllare.
Prima di iniziare
Sezione intitolata “Prima di iniziare”| Ti serve | Perché |
|---|---|
| ESX, QBCore o QBox | Denaro, lavori, oggetti e notifiche provengono dal framework |
| oxmysql | Tutto ciò che i negozi memorizzano si trova nel tuo database |
| ox_target o qb-target | Opzionale. ox_target è il predefinito; senza nessuno dei due, i giocatori vedono un suggerimento e premono E |
| screenshot-basic | Opzionale, per gli screenshot nei log di Discord. Necessario se lasci Config.Screenshot attivo |
1. Posiziona la cartella
Sezione intitolata “1. Posiziona la cartella”Scarica mic_shopcreator dai tuoi asset concessi su Cfx.re e inserisci la cartella nelle tue risorse, ad esempio resources/[mic]/mic_shopcreator.
2. Avvialo dopo le sue dipendenze
Sezione intitolata “2. Avvialo dopo le sue dipendenze”In server.cfg, ensure mic_shopcreator va posizionato sotto oxmysql, il tuo framework (es_extended, qb-core o qbx_core), il tuo inventario, la tua risorsa target e screenshot-basic.
Ha funzionato quando la risorsa si avvia senza righe rosse e senza alcun messaggio Locale file not found.
3. Il database
Sezione intitolata “3. Il database”Importa mic_shopcreator.sql una sola volta. Crea nove tabelle:
| Tabella | Cosa contiene |
|---|---|
mic_shopcreator | I negozi, con le relative impostazioni di blip, lavoro, rapina, proprietà e webhook |
mic_shopcreator_locations | Dove si trova ogni negoziante, il suo modello, i suoi vestiti e quando è stato rapinato l’ultima volta |
mic_shopcreator_products | I prodotti dei negozi gestiti dal server |
mic_shopcreator_owner_products | I prodotti dei negozi di proprietà dei giocatori, con le relative scorte |
mic_shopcreator_jobs | Quali lavori e gradi possono utilizzare un negozio |
mic_shopcreator_rewards | Cosa paga una rapina |
mic_shopcreator_owners | Chi possiede quale negozio |
mic_shopcreator_employees | Chi lavora dove, la sua commissione e la sua cassaforte personale |
mic_shopcreator_vaults | Il saldo di denaro pulito e denaro sporco di ogni negozio di proprietà |
Stai aggiornando da una versione precedente? Non hai bisogno di update.sql: a ogni avvio la risorsa controlla le colonne aggiunte successivamente (clothes su locations, min_amount e max_amount su rewards) e le aggiunge se mancano. La console stampa Added clothes column to mic_shopcreator_locations table. l’unica volta in cui lo fa.
4. Oggetti
Sezione intitolata “4. Oggetti”Nessuno proprio. Un negozio vende oggetti che esistono già nel tuo inventario — digiti i loro nomi quando aggiungi un prodotto. Le immagini dei prodotti provengono dalla cartella delle immagini del tuo inventario, vedi il passaggio 5.
5. Framework, target e immagini
Sezione intitolata “5. Framework, target e immagini”Apri config.lua e controlla:
| Opzione | Impostala su |
|---|---|
Config.Framework | 'esx' (predefinito) o 'qbcore'. Non viene rilevato automaticamente. Su QBox, usa 'qbcore' — QBox esegue le risorse QBCore tramite il suo livello di compatibilità |
Config.Interaction | 'ox_target' (predefinito), 'qb-target' o 'default' (suggerimento di aiuto e tasto E) |
Config.InventoryImagePath | Dove il tuo inventario conserva le immagini degli oggetti. Di base punta a nui://ox_inventory/web/images/ |
Config.IdentifierType | Come vengono riconosciuti proprietari e dipendenti. Di base è 'discord'; vedi sotto |
Config.IdentifierType decide cosa viene inserito nell’elenco dei proprietari e cosa memorizza la tabella dei dipendenti:
| Valore | I giocatori sono riconosciuti tramite | Usalo quando |
|---|---|---|
'discord' | Il loro ID Discord, il numero senza discord: | Tutti si connettono con Discord collegato |
'license' | La loro licenza Rockstar, l’intero license:… | Non richiedi Discord |
'esx' | L’identificatore proprio di ESX, incluso il prefisso personaggio | ESX con multicharacter, così ogni personaggio possiede i negozi separatamente |
'citizenid' | Il citizen ID di QBCore | QBCore o QBox, così ogni personaggio possiede i negozi separatamente |
Sceglilo prima che qualcuno possieda o lavori in un negozio. Cambiarlo in seguito significa dover reinserire ogni proprietario, e i dipendenti esistenti non saranno più riconosciuti.
6. Assegnati i permessi per il pannello
Sezione intitolata “6. Assegnati i permessi per il pannello”Il pannello è protetto dal permesso ACE mic_shop.open (non mic_shopcreator.open). Concedilo in server.cfg con una riga add_ace — a una persona, ad esempio add_ace identifier.discord:YOUR_DISCORD_ID mic_shop.open allow, oppure a un gruppo, ad esempio add_ace group.admin mic_shop.open allow.
Ha funzionato quando /shopcreator apre lo Shop Creator. Senza il permesso riceverai la notifica di “nessun permesso”.
7. Primo test
Sezione intitolata “7. Primo test”- Esegui
/shopcreator, crea un negozio e dagli un nome. - Aggiungi una posizione. Un’anteprima del negoziante segue il tuo sguardo: la rotellina del mouse lo ruota, ↑ / ↓ lo alzano e lo abbassano, E lo posiziona, X annulla.
- Aggiungi un prodotto: un oggetto esistente nel tuo inventario, un prezzo, una categoria e un metodo di pagamento. Salva.
Ha funzionato quando il negoziante si trova dove l’hai posizionato, parlargli apre il negozio con il tuo prodotto e la relativa immagine, e acquistandolo vengono scalati i soldi e consegnato l’oggetto.
Prima di aprire la tua città
Sezione intitolata “Prima di aprire la tua città”Config.IdentifierTypeè definitivo. Decidilo ora; proprietari e dipendenti vengono salvati in base ad esso.- Solo gli admin hanno
mic_shop.open. Permette di creare, modificare ed eliminare ogni negozio. - Lascia
Config.Screenshotattivo solo sescreenshot-basicè in esecuzione. Altrimenti i log non verranno inviati. - I tempi di attesa delle rapine si impostano per singolo negozio, in minuti — impostane uno su ogni negozio che rendi rapinabile.
- Acquista qualcosa con un personaggio normale in ciascun negozio limitato per lavoro, per verificare il grado che hai impostato.