Migliore modo per gestire l’economia dei premi per il voto

Migliore modo per gestire l’economia dei premi per il voto

Scritto da Andrea il 08 Mar 2014 5 commenti.
Questa guida è basata per chi usa Bungeecord. Necessita anche di un database MySQL.

Avete mai pensato di impostare un premio per ogni server? In modo che appena entri nel server principale ti dia il premio e si converta in soldi / item nelle altre istanze server?

Per intenderci, un player vota il vostro server, nella lobby principale riceve l’oggetto del premio, che viene poi venduto tramite il comando /shop per un gettone. Quel gettone si può usare per comprare item negli altri server.

Puoi anche cambiare il comando shop con un altro, inserendo un alias, per approfondire segui questa guida

Da ora in poi intendiamo Lobby il server principale del vostro server bungeecord.
Ci sono semplici modi che ora andremo a spiegare:

  • Il plugin principale per fare ciò si chiama BossShop, che lo andremo ad inserire nel server lobby principale.
  • Ricordiamo sempre che serve Vault per far funzionare tutto.
  • Un componente che possiamo aggiungere, è il sistema coin, quindi PlayerPoint, che invece lo andremo a mettere in tutti i server in qui vogliamo che vengano passati i coin.

 

Inziamo subito con inserire i plugins BossShop e PlayerPoint nella cartella plugins della lobby. Ora andremo a configurare il comando /shop (sempre per la lobby).
Quindi iniziamo con BossShop:
andiamo nella cartella plugins\BossShop\shops e apriamo il file Menu.yml.


Adesso dobbiamo fare due ragionamenti, in questo caso creiamo un sistema che quando scrivi /shop ti apre una gui (finestra, come quando apri una chest) che puoi scegliere due opzioni: lo shop, oppure la scelta del server dove andare con bungeecord.



ShopName: Menu #Nome del menu
DisplayName: '&5Menu principale' #Testo che leggi in alto al bordo della gui
signs:
  text: '[Menu]'
  NeedPermissionToCreateSign: true
shop:  
  Coin:
    RewardType: shop
    PriceType: free
    Reward: Coin
    MenuItem:
    - type:CHEST
    - amount:1
    - name:&cOttieni gettoni con i premi dei voti!
    - lore:&8In ogni modalita' di gioco avrai gli stessi gettoni
    Message: ''
    InventoryLocation: 7
    ExtraPermission: ''
  Server:                               # nome classe oggetto
    RewardType: shop              
    PriceType: free    # Puoi anche impostare un costo
    Reward: Server      # Nome del file che andremo a creare per passare ad un altro menu 
    MenuItem: 
    - type:NOTE_BLOCK      # Oggetto che si vedrà nella gui 
    - amount:1             # Quantità dell'oggetto 
    - name:&2Scegli il server in cui giocare!   # Testo che si legge quando passi il mouse sull'oggetto
    Message: '&1Ricorda che per tornare qua puoi scrivere /hub'  # Testo che leggi in chat quando ci clicci sopra
    InventoryLocation: 3   # Posizione nella gui 
    ExtraPermission: ''

Salva pure il file.
Come puoi vedere nella riga Reward: Server, si capisce che quando un player andrà a cliccare sopra quel oggetto, si troverà compiere un azione, questa è quella di cambiare GUI, quindi dopo Reward: andremo a mettere il nome del file che andremo a creare.
Ora eliminiamo tutti i file nella cartella shops tranne il file Menu.yml e creamo due file nuovi di nome Coin.yml e Server.yml.



Vediamo per primo il config Coin.yml:

ShopName: Coin # Questo nome è quello che siamo andati a definire nel menu nella riga Reward,
DisplayName: '&6Scambia i tuoi oggetti per coin!' 
signs:
  text: '[PointShop]'
  NeedPermissionToCreateSign: true
shop:
 Diamond:
    RewardType: points 
    PriceType: item
    Price:
    - - type:EMERALD  # Nome oggetto
      - amount:1 # Quantità del oggetto che si deve scambiare
    Reward: 1 # Coin in cambio degli oggetti soprastanti
    MenuItem:
    - type:DIAMOND
    - amount:1
    - name:&b Scambia in gettoni!
    - 'lore:&2Scambia uno smeraldo per 1 gettone!'
    - amount:1
    Message: '&eHai scambiato correttamente 1 smeraldo per 1 gettone!' 
    InventoryLocation: 1
    ExtraPermission: ''

Ora vediamo il file Server.yml:

ShopName: Server       # Questo nome è quello che siamo andati a definire nel menu nella riga Reward,
DisplayName: '&cScegli il server dove giocare'
signs:
  text: '[BungeeCordServers]'
  NeedPermissionToCreateSign: true
shop:
  Fazioni:
    RewardType: bungeecordserver    # Definisce che vuoi far andare un player in un altro server di bungee
    PriceType: free                 
    Reward: fazioni                 # Nome server Bungeecord che vuoi venga spostato il player
    MenuItem:
    - type:STAINED_CLAY
    - amount:1
    - name:&aFazioni
    - lore:&7Il mondo principale del server!
    - durability:3
    InventoryLocation: 5
    ExtraPermission: ''

Salva e relodda il plugin con /BossShop reload


Perfetto, siamo a buon punto, all’inizio sembra un pò complicato, ma in realtà è una cosa semplice.

A questo punto arriva la parte un pò più difficile, prenditi un breve riposo, poi continua a leggere.

Colleghiamo il database di PlayerPoint in MySQL

Premetto subito che da un errore quando si prova a fare il collegamento con il database, quindi necessita di un plugin aggiuntivo di nome SQLibrary
Andiamo nella cartella di configurazione di playerpoint (plugins\PlayerPoints)
Apri il file di configurazione (Config.yml) e modifica come segue:

storage: MySQL # Abbiamo cambiato la scritta YAML in MySQL
mysql:
  host: localhost       # Se usi PhpMyAdmin in locale, mantieni localhost, altrimenti metti l'ip del tuo database
  port: 3306         # Porta per Mysql
  database: playerpoint # Nome database Mysql che andremo a creare
  user: username    # Username di accesso database (deve avere permessi di root)
  password: pass # Passoword per accesso 
  import:
    use: false
    source: YAML
  export:
    use: false
    source: SQLITE
  retry: 10
vote:
  enabled: false
  amount: 100
  online: false
debug:
  database: false
vault: false
version: 1.7.1 Se è diversa, aggiornatela con quella che avete voi

Ora andiamo a creare un database nel mysql, quindi collegatevi al vostro PhpMyadmin (se locale http://ipvostroserver/phpmyadmin) oppure quello che usate voi.


BossShop_screen_3

A questo punto entrate nel vostro server e fate il comando /p give Vostro-nome 10, aggiornate la pagina del phpmyadmin e vedrete che si è creata una tabella di nome Playerpoints.


Inserite questi due plugin in tutti i server bungeecord che volete vengano passati i coin, e fate la stessa cosa che abbiamo fatto per la lobby, cioè collegate PlayerPoint al database mysql. Inseriamo anche BossShop in tutti i server per fare in modo che facendo il comando /shop (oppure quello che avete impostato, seguendo la guida citata sopra) puoi comprare oggetti con i coin che hai guadagnato alla lobby con i premi dei voti.

Una configurazione di BossShop possibile da fare per gli altri server potrebbe essere questa:
(Dal file Menu.yml, elimina anche gli altri file nella cartella shops se non ti servono)

ShopName: Menu
DisplayName: '&1Compra item usando i tuoi coin'
signs:
  text: '[Compra]'
  NeedPermissionToCreateSign: true
shop:
Spadadidiamante:
    RewardType: item
    PriceType: points
    Price: 1  # Numero di coin necessari per comprare l'oggetto
    Reward:
    - - type:DIAMOND_SWORD      # Nome dell'oggetto che si deve comprare
      - amount:1                # Quantità degli oggetti che si deve comprare
      - name:&cSpada di diamante ottenuta votando      # Nome della spada
      - enchantment:DAMAGE_ALL#1     # Enchant possibile del oggetto
    MenuItem:     
    - type:DIAMOND_SWORD
    - amount:1
    - name:&4Compra una spada di diamante Affilatezza 1
    - 'lore:&cCosto: 1 gettone'
    Message: '&eHai comprato una spada di diamante affilatezza 1 per 1 gettone!'
    InventoryLocation: 1
    ExtraPermission: ''

Salvate tutto e riavviate il server.
Se volete fare in modo che si apri la finestra di BossShop alla lobby tramite una bussola/orologio, potete seguire questa guida.

// In caso trovi delle difficoltà, degli errori, non esitare a commentare 😀

Leggi anche ...

Questo articolo è stato scritto da Andrea

Studente universitario di Informatica con la passione di Minecraft, ho costruito Minecraft-Server.it per condividere tutte le informazioni che ho raccolto negli ultimi 4 anni nella gestione dei servers Minecraft.