[Guida] Skript - Creazione di piccoli "plugin", semplicemente.

  • Pagine (2):
  • 1
  • 2
  • »
ATTENZIONE
La guida è stata spostata nell'apposita sezione della piattaforma. (Link)





Skript
by Niketion



Benvenuto aspirante scripter!
Questa guida è stata realizzate da @Niketion, un normale utente di internet interessato nella parte tecnica di un server minecraft.



Link (Click image)

[Immagine: favicon.ico] [Immagine: Bukkit.png]



Storia
Skript progetto iniziato il Febbraio del 2012 da Njol (Click). Quest'ultimo abbandonò il team nel 2014, e donò la gestione alla community dell'epoca. Quindi non ci fu una sola persona a capo del plugin, bensì una community numerosa. Per questo, l'ultima versione ufficiale, progettata da Njol è stata la 2.2 alpha; successivamente Mirriducki (Skript 2.2v9), nfell2009 (Skript 2.2v9b) e Bensku (Skript 2.2v18dev), si diedero da fare per aggiornare (costantemente) il plugin.

Ma, anche se non vi sono versioni ufficiali, la community di SkUnity (Forum ufficiale) è in costante crescita.



Requisiti
Per impostare i tuoi primi script dovrai installarti un editor di testo intuitivo e semplice nell'utilizzo.
Esempi:
Sublime Text (Click)
Atom (Click)
Notepad++ (Click)

Successivamente dovrai scaricare e inserire il plugin Skript all'interno della cartella plugins del server.

Skript Bensku (2.2v18dev - Non ufficiale - 1.10)

Skript Bukkit (2.1 - Ufficiale - 1.7)



Tutorial
Ma il quesito che ti porrai è il seguente: A cosa serve?
Esso è un plugin che semplifica la creazione di piccole aggiunte al server. Infatti, invece di avere conoscenze elevate in Java, in Skript basta una elementare conoscenza dell'inglese.

Infatti in java un normale evento (cui spiegherò successivamente il significato) è impostato così:

Codice:
[...]

@EventHandler
public void onJoin(PlayerJoinEvent e)
  Player p = e.getPlayer();
  p.sendMessage("Ciao " + p.getName() + "!");

In skript invece si presenta in questo modo:

Codice:
on join:
  message "Ciao %player%!"



Avvertenze
Skript è stato realizzato per piccole aggiunte al server, non per la completa creazione di quest'ultimo. Perchè? Esso contiene molti problemi di lag, che causerebbero l'abbassamento dei tps del server, fino alla completa ingiocabilità del game stesso. Pertanto, consiglio di non utilizzare eventi troppo veloci (Periodical) o eccessivi loop. Inoltre, eseguire "/sk reload <script/all>" solo quando non è possibile utilizzare "/reload" per eventuali problemi.

Colui che crea script, NON può nominarsi programmatore/sviluppatore. Quest'ultimo NON è un linguaggio di programmazione/markup.

Skript ha problemi nella gestione degli spazi, pertanto sceglierli dall'inizio per utilizzarli in tutto l'evento/comando.

Codice:
on join:
(spazio)message "Ciao"
(spazio)if player has permission "Permesso.Permesso"
(spazio)(spazio)message "Ciao 2"



Eventi
Quando un utente effettua l'accesso nel server, quando una tnt esplode, ecc.
Essi verranno nominati "events".
Gli eventi costituiscono 1/2 della parte principale di uno script.
Infatti, senza esso non potremmo applicare un effetto. come delle particelle o semplicemente un messaggio.

Codice:
on join:
  message "Ciao!"
on explosion prime:
   broadcast "E' esplosa una tnt!"

EP (Esempio Pratico)
Voglio fare in modo che i player non possano spaccare i blocchi i nessun punto del server in questione, inoltre, dovrà inviare un messaggio di avvertimento.

Codice:
on break:
  cancel the event
   message "&cNon puoi spaccare i blocchi!"
   stop



Comandi
Quando esegui in un normale server "/home", esso verrà classificato da skript come "commands".
I comandi hanno la stessa importanza dell'evento, pertanto, senza l'inserimento di un comando e/o un evento lo script non funzionerà.

Ma, i comandi "nascondono" diverse sezioni cui noi potremmo inserire o no.

Codice:
command /comando <text>:
  description: Descirizione del comando
  usage: /comando [testo]
  permission: Permesso.Permesso
  permission message: &cMessaggio inviato quando il player non ha i permessi necessari
  executable by: players and console
  aliases: /c, /cc
  trigger: #Trigger è l'unica sezione obbligatoria. Spiega al comando che successivamente a "trigger:" c'è l'effetto voluto
     #Altro

EP (Esempio Pratico)
Voglio creare un comando helloworld, quest'ultimo potrà essere utilizzato solo dai player con permesso "Hello.World"

Codice:
command /helloworld:
  permission: Hello.World
   permission message: &cNon hai il permesso.
   trigger:
    message "HelloWorld!"
    stop trigger




Condizioni
Quando vuoi che quel tipo di messaggio venga visionato solo da utenti con uno specifico permesso, controllare se l'argomento 1 è stato inserito correttamente, o semplicemente specificare un evento, bisogna utilizzare le condizioni.

Vi sono due tipi di condizioni, "if", che in italiano viene tradotto in "se", e l' "else", cui viene tradotto in "sennò".

Codice:
on join:
  if player has permission "Hello.World": #Se il player ha il permesso
    message "Permesso accettato!"
     message "Benvenuto staffer!"
     stop
  else: #Sennò
    message "Permesso negato"
     stop

EP (Esempio Pratico)
Voglio che quando la gamemode di un player cambia, se quest'ultimo non ha il permesso "Gamemode.Permesso", venga ucciso.

Codice:
on gamemode change:
  if player does not have permission "Gamemode.Permesso":
    kill the player




Loop
Quando vuoi ripetere lo stesso messaggio 10 volte senza utilizzare il copia e incolla, o mandare un effetto a tutti i giocatori online, bisogna utilizzare i loop.

Codice:
on join:
  loop all players:
    if loop-player is in "world":
       message "Tutti i player sono nel mondo world" to player

EP (Esempio Pratico)
Voglio creare un clearchat per il mio server, senza utilizzare message "", più volte.

Codice:
command /clearchat:
  permission: Hello.World
   permission message: &cNon hai il permesso.
   trigger:
     loop 150 times:
      broadcast ""
    message "ClearChat by %player%"
    stop trigger




Changelog
7 ottobre 2016 - Aggiornamento guida (2.0)



Contatti
Telegram - @Niketion
Email - Niketion.info@gmail.com
Skype - Nik116ita - (Poco utilizzato)
(Modificato 03/02/2017, 16:54 da Niketion.)
6 utenti apprezzano questo post
ok sto commentando mentre la legoo e gia dale condizioni mi stanno venendo un sacco di idee bellissime idee s
se ti va quando le faccio le vuoi vedere?
@hacklover Che ne dici di mettere questo thred "In rilievo"?

Inviato da uno Shulker al gusto di banana elettronica
Era da un po' di tempo che volevo iniziare ad usare Skript, ma non ho mai trovato il momento per farlo, adesso spunti tu e "puff" mi fai venire di nuovo la voglia di creare qualcosa di carino.
Non è complicato da usare se conosci le basi del linguaggio C o C++, anzi la maggior parte delle cose sono uguali.
Bella guida Patpat
02/05/2016, 23:54karto ha scritto: Era da un po' di tempo che volevo iniziare ad usare Skript, ma non ho mai trovato il momento per farlo, adesso spunti tu e "puff" mi fai venire di nuovo la voglia di creare qualcosa di carino.
Non è complicato da usare se conosci le basi del linguaggio C o C++, anzi la maggior parte delle cose sono uguali.
Bella guida Patpat

ciao
anche io uso skript ti va se facciamo qualcosa insieme?? sto creando uno skript per le manette è un po difficile mi servirebbe una mano!! se vuoi aggiungimi su skype server mcg
Ottima guida.
02/05/2016, 02:44Server_MCGofficial ha scritto: ok sto commentando mentre la legoo e gia dale condizioni mi stanno venendo un sacco di idee bellissime idee s
se ti va quando le faccio le vuoi vedere?

Quando terminerò la mia vacanza sarò felice di visionare i tuoi progetti.
02/05/2016, 23:54karto ha scritto: Era da un po' di tempo che volevo iniziare ad usare Skript, ma non ho mai trovato il momento per farlo, adesso spunti tu e "puff" mi fai venire di nuovo la voglia di creare qualcosa di carino.
Non è complicato da usare se conosci le basi del linguaggio C o C++, anzi la maggior parte delle cose sono uguali.
Bella guida Patpat

Ti ringrazio.
03/05/2016, 14:56iAmGio ha scritto: Ottima guida.

Ti ringrazio. (Modificato 05/05/2016, 12:55 da Niketion.)
[Immagine: bZvpSjW.png]   [Immagine: biskBkG.png]
[Immagine: tumblr_oaryl0d7lS1u8gax7o2_r2_500.gif]

26 Maggio 2016 - 19:00 - Modifica sezione loop
UP
[Immagine: bZvpSjW.png]   [Immagine: biskBkG.png]
[Immagine: tumblr_oaryl0d7lS1u8gax7o2_r2_500.gif]

26/05/2016, 19:02Nik116ita ha scritto: 26 Maggio 2016 - 19:00 - Modifica sezione loop
UP

Complimenti Nik, guida dettagliata e spiegata molto bene. :dsa:

[Immagine: d312Q0e.png]
[Immagine: Lucatro.png]
26/05/2016, 20:31Dr_Yodaah ha scritto:
26/05/2016, 19:02Nik116ita ha scritto: 26 Maggio 2016 - 19:00 - Modifica sezione loop
UP

Complimenti Nik, guida dettagliata e spiegata molto bene. :dsa:

Ti ringrazio.
[Immagine: bZvpSjW.png]   [Immagine: biskBkG.png]
[Immagine: tumblr_oaryl0d7lS1u8gax7o2_r2_500.gif]

  • Pagine (2):
  • 1
  • 2
  • »
Discussioni simili
Discussione: Autore Risposte: Letto: Ultimo
[Problema] Lag, plugin che lagga Aspectz 1 20 7 ore fa
Ultimo: MrFreasy
[Domanda] Come collegare uno o più plugin ad uno stesso server (No Bungee)? zMattew_ 1 26 9 ore fa
Ultimo: MrFreasy
[Problema] plugin anti lagg loginonano 35 516 ieri, 13:13
Ultimo: xMrOxy
[Problema] Problema plugin luckyblock tizi2808 2 53 ieri, 13:10
Ultimo: xMrOxy
[Problema] Problema LuckyBlock plugin Aspectz 2 59 14/08/2017, 16:47
Ultimo: Aspectz

Utente(i) che stanno guardando questa discussione: 1 Ospite(i)