I. Informace.
1. Gra wstepna.
ProtoSk to dodatek stworzony z mysla o mozliwosci uzywania protokolow w skripcie wedlug wlasnego uznania. Przeznaczony on jest bardziej doswiadczonym skrypterom ktorzy nie beda mieli nic przeciwko ciaglemu kozystaniu z dokumentacji.
2. Przyklady.
# Wyswietlenie Title i subtitle (Informacja na srodku ekranu)
prepare packet PLAY.SERVER:69
set packet's Title action to 1
set packet's chatcomponent 0 to "{'text': 'Daj donate Nya <3', 'underline': 'true'}"
send packet to player
set packet's Title action to 0
set packet's chatcomponent 0 to "{'text': 'Hej!', 'color': 'aqua'}"
send packet to player
# Ustawianie tytulu i stopki tablisty
prepare packet PLAY.SERVER:71
set packet's chatcomponent 0 to "{'text': 'Hej!', 'color': 'aqua'}"
set packet's chatcomponent 1 to "{'text': 'Daj donate Nya <3', 'underline': 'true'}"
send packet to player
II. Wymagania.
Skript
ProtocolLib
III. Dokumentacja.
1. Type
Dodatek ProtoSk dodaje 2 nowe typy by ulatwic pisanie skryptow.
%protocol%
Protokol ktorego uzywamy.
Mozliwe wartosci:
HANDSHAKINGPLAYSTATUSLOGINLEGACY
%sender%
Obiekt ktory wysyla pakiet.
Mozliwe wartosci:
CLIENTSERVER
2. Effect
prepare packet %protocol%.%sender%:%integer%
Pierwszym efektem jest 'prepare packet' ktorego skladnia moze cie przerazic. W rzeczywistosci nie jest to az takie trudne.
Przygotowanie pakietu sprowadza sie jedynie do do podania protokolu, wysylajacego i id protokolu jaki bedziesz chcial wyslac.
Liste protokolow mozesz znalesc na http://wiki.vg/Protocol. Interesuja cie punkty od 3 do 6.
Podpunkty 'Serverbound' oraz 'ClientBound' to odbiorcy pakietu. (Zapamietaj: W typie %sender% podajesz nadawce, nie odbiorce.)
By znalesc identyfikator pakietu patrzysz na 3 cyfre. Gdy znajdziesz juz id swojego pakietu odejmij od niego jeden i wpisz do pola %integer%.
Przyklad:
By wyswietlic tekst na srodku ekranu potrzebujesz protokolu nazwanego 'Title'.
Znajduje on sie w:
4. Play > 4.1 Clientbound > 4.1.70 Title
Gdy znalazles juz swoj pakiet masz juz wszystkie parametry.
prepare packet PLAY.SERVER:69
set protocol['s] PlayerInfo action to %integer% # [url="http://wiki.vg/Protocol#Player_List_Item"]http://wiki.vg/Protocol#Player_List_Item[/url]set protocol['s] Scoreboard action to %integer% # [url="http://wiki.vg/Protocol#Update_Score"]http://wiki.vg/Protocol#Update_Score[/url]set protocol['s] WorldBorder action to %integer% # [url="http://wiki.vg/Protocol#World_Border"]http://wiki.vg/Protocol#World_Border[/url]set protocol['s] Title action to %integer% # [url="http://wiki.vg/Protocol#Title"]http://wiki.vg/Protocol#Title[/url]set protocol['s] (Player|Entity) action to %integer% # [url="http://wiki.vg/Protocol#Entity_Action"]http://wiki.vg/Protocol#Entity_Action[/url]set protocol['s] EntityUse action to %integer% # [url="http://wiki.vg/Protocol#Use_Entity"]http://wiki.vg/Protocol#Use_Entity[/url]
Wiesz juz jak stworzyc pakiet. Czas teraz na jego edycje. W niektorych pakietach mozliwa do wyboru jest akcja ktora bedziemy wykonywac. Przy kazdym efekcie zakomentowalam linki do pakietow ktorym odpowiadaja. W tabeli powinienes znalesc pole 'Action' gdzie masz podane jakie pola konfiguracyjne posiada dana akcja.
Przyklad:
prepare packet PLAY.SERVER:69set protocol Title action to 0
set packet['s] string %integer% to %string%
set packet['s] integer %integer% to %integer%
set packet['s] block %integer% to %block%
set packet['s] byte %integer% to %integer%
set packet['s] chat[ ]component %integer% to %string%
set packet['s] double %integer% to %number%
set packet['s] float %integer% to %number%
set packet['s] short %integer% to %number%
set packet['s] long %integer% to %number%
Nadszedl czas na konfigurowanie pakietow. Kazdy pakiet ma rozne pola wiec trzeba je ustawic w inny sposob. Z tego powodu powstalo tak wiele efektow.
Abys sie dowiedzial ktorego z nich uzyc muisz w tabeli znalezc pole 'Field Type'. Gdy znajdziesz juz odpowiedni efekt wystarczy tylko wpisac wartosc i powinno zadzialac.
Przyklad:
prepare packet PLAY.SERVER:69
set packet's Title action to 0
set packet's chatcomponent 0 to "{'text': 'Daj donate Nya <3', 'underline': 'true'}"
send packet to %player%
Wysyla pakiet do gracza.
Przyklad:
prepare packet PLAY.SERVER:69
set packet's Title action to 0
set packet's chatcomponent 0 to "{'text': 'Daj donate Nya <3', 'underline': 'true'}"
send packet to player
IV. Download.
Download: 1.1
Skan: VirusTotal