Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Command Helper czyli największy konkurent Skripta ;)


imago96

Rekomendowane odpowiedzi

Opublikowano

CommandHelper_Logo_New.png?dl=1&token_ha

Poradnik do Command Helpera

 

Witajcie przedstawiam wam poradnik do pluginu Command Helper, który to jak już sam tytuł mówi jest największym konkurentem Scripta ;) Znacznie różni się on składnią od Scripta oraz ma o wiele więcej wspólnego z javą.Plugin ten gorąco polecam osobą, które w przyszłości będą się brały za pisanie pluginów do MC.

 

Spis treści:

 

1.Podstawy

 

Po zainstalowaniu Command Helpera w katalogu z pluginem pokażą wam się 3 najważniejsze pliki:

config.txt – tu będziemy pisac większość naszych skryptów,które są wywoływane przez wpisanie komendy.

auto_include.ms- tu będzie wyjaśnienie ;p

main.ms – tu będziemy pisać skrypty, które chcemy aby działały cały czas a nie czekały na wywołująca je komendę.Przykładem takiego skryptu może być skrypt na auto informacje na czacie czy też logowanie.

Najważniejszą komendą w CH jest: /reloadaliases dzięki niej możecie odświeżyć zawartość waszego configu bez konieczności restartowania serwera :)

Aliasy
Komendy w pluginach są z reguły po angielsku,są też czasami długie,a dekomplikacja pluginu i zmiana tych komend na polskie zajmuje trochę czasu i jest po części trochę ryzykowna bo możemy zawsze coś niechcący skopać.Dlatego zamiast dekomplikować plugin warto jest może dodać alias danej komendy.Aliasy używane w CH wyglądają tak:

/nasz_alias = /prawdziwa_komenda

Przykładowo:

/regulamin = /rules

Należy pamiętać że w CH panuje zasada „jeden alias jeden wiersz” oznacza ona że nie możemy zapisać:

/nasz_alias = /komenda1
/komenda 2
/komenda3

Jednakże istnieje coś takiego jak wielolinijkowość (ang.multiline) ale o tym później.Istnieje też zasada mówiąca, że jeżeli komenda w aliasie kończy się „\” to można to zapisać jako:

/nasz_alias = /komenda1 \
/komenda2 \
/komenda3

Jest to tak zwany “makro” zapis.W przypadku prostych aliasów jest on bardzo dobry jednakże w przypadku bardziej rozbudowanych skryptów należy zastąpić go wspomnianymi przeze mnie już wcześniej „multilajnami” wraz z funkcją run.

W CH możemy zrobić tak że jedna komenda odpala parę innych:

/komenda = /komenda1 \ /komenda2 \ /komenda3 itd…

Przykładowo:

/kit gold = /give player() 284 64 \ /give player() 285 64

Jak widzicie w powyższym kodzie użyłem funkcji “player()”.Jest to funkcja określająca osobę, która wpisała komendę.

Jak jednak wiecie w Minecrafcie są takie komendy, które pobierają od gracza dane.Przykładem takiej komendy może być na przykład (/msg i /tp).Jak zrobić aby nasz skrypt pobierał jakieś dane od gracza?Otóż służą do tego zmienne zapisywane za pomocą $.Macie tu przykład:

/wpisalem $tekst = msg(‘Wpisales ’ . $tekst)

PAMIĘTAJ!COMMAND HELPER NIE CZYTA POLSKICH ZNAKÓW!!!

Jak widzicie w tym przykładzie zostanie pobrana wartość $tekst i wyświetli się ona po słowie „wpisałeś”.Po co ta kropka w kodzie?Otóż musimy naszą zmienną „tekst” połączyć z wiadomością wpisałeś i właśnie do tego służy owa kropka.Można również użyć przecinka.

Czas na trochę praktyki wpiszcie kod komendy „/wpisales” na samym końcu pliku config.txt.

Zwróćcie uwagę że w pliku config.txt jest masa linijek z „#” o co chodzi?Otóż „#” to znak komentarza, który to Command Helper pomija.Oznacza to że możecie wpisac po „#” cokolwiek a CH nie będzie wam tego odczytywał jako kod,który ma wykonać.Po wpisaniu kodu wejdźcie na serwer i wpiszcie:


/wpisalem test

Na czacie powinien wyświetlić się biały napis „Wpisales test”.

No dobra a wpiszecie sobie teraz

/wpisalem test zaba

Wyświetli wam się informacja że nie ma takiej komendy.Dlaczego?Ponieważ zadeklarowaliśmy naszej komendzie "/wpisalem" tylko zmienną $tekst przez co CH nie wie czym jest ta „zaba”.Żeby więc działało trzeba by było zadeklarować kolejną zmienną.

W MC mamy komende /say stwórzmy do niej alias!

/mowie $ = /say $

Jak „widzicie” nie nazwałem swojej zmiennej...i zrobiłem to specjalnie ponieważ samo „$” to szczególna zmienna pobierająca cały tekst a nie tylko jego konkretną część.Wklejcie zresztą ten kod powyżej i sami się przekonajcie że mam racje.

A teraz zróbmy komendę, która będzie pobierac nam 3 zmienne i je wyświetlać.

/lubie $owoc $warzywo $piosenke = msg('Moim ulubionym owocem jest ' . $owoc . ' ulubionym warzywem ' . $warzywo . ' i uwielbiam piosenke ' . $piosenke . ' bo jest fajna')

Po wpisaniu komendy /lubie mango marchew bejbe powinien wyświetlić nam się standardowy komunikat z tymi wszystkimi zmiennymi :)

 

„Zadanie Domowe”

Zrób komende „/omnie”, która będzie wyświetlać na czacie wpisane przez gracza imię,nazwisko i wiek.
 

Dodatkowe

Dodaj do komendy /omnie aby oprocz podanych wcześniej danych wyświetlała nick gracza który ją wpisał.Podpowiem że już użyliśmy funkcji za to odpowiedzialnej.

 

 

2.Kolorowanie wiadomości + permisje

 

Aby pokolorować komendę w CH należy użyć funkcji "color". Dodajmy ją do naszej komendy /wpisales:
 

/wpisalem $tekst = msg(color(red)('Wpisales ' . $tekst)

Teraz gdy użyjemy komendy wpisałem to wyświetli nam się czerwony tekst :)

 

Wzór zapisu jest taki:

msg(color(nazwakoloru)(dlasz część komendy)

Wszystkie dostępne kolory macie tutaj:

http://wiki.sk89q.com/wiki/CommandHelper/Staged/API/color'>http://wiki.sk89q.com/wiki/CommandHelper/Staged/API/color

W poprzedniej części prosiłem abyście mieli opa?Dlaczego?Ponieważ nie opisałem wtedy permisji ale zrobię to teraz :)

Permisje w CH sprawdzamy za pomocą funkcji has_permission.Przykładowo więc dla naszej komendy /owoc dodajemy:

has_permission(player(), owoc.sprawdz)

czyli gotowa komenda wygląda tak:

/lubie $owoc $warzywo $piosenke = has_permission(player(), ekipa.owoc) broadcast('Ulubionym owocem gracza ' . player() . ' jest ' . $owoc . ' ulubionym warzywem ' . $warzywo . ' i ulubiona piosenka jest ' . $piosenke . ' bo jest fajna')

Brzydko to wygląda co nie?Dlatego w następnym poradniku poznamy multilajny i zastosujemy je w owej komendzie :)

Zadanie domowe:
Pokoloruj komendę o mnie oraz dodaj do niej permisje :)

 

 

Zapraszam na mojego bloga do wpisu o CH:

http://www.imago96.pl/minecraft/poradnik-command-helpera-cz-1/

oraz do obejrzenia wersji Video poradnika:

https://www.youtube.com/watch?v=18BsMdJY1g8

 

Download:

http://builds.enginehub.org/job/commandhelper/last-successful/?branch=master

Wiki:

http://wiki.sk89q.com/wiki/CommandHelper

Masz jakiś problem z kodem?Pisz śmiało nie gryzę :)

 

Spokojnie to jeszcze nie koniec nie długo będę go uzupełniał :)

Opublikowano

Trochę bardziej mi pasuję z MyCommand, no ale jak mówisz, że z Sk to nie będę się sprzeczał.

Poradnik czysty, dosyć ciekawy, lecz dużo z tego nie wiem.^^

Opublikowano

Trochę bardziej mi pasuję z MyCommand, no ale jak mówisz, że z Sk to nie będę się sprzeczał.

Poradnik czysty, dosyć ciekawy, lecz dużo z tego nie wiem.^^

Jak zobaczysz drugą część to zmienisz zdanie ;p

 

@topic Zapomniałem o linku do pobrania z enginehuba (nie daje skanu bo nie jest to pobieranie bezpośrednie, jeżeli mam dać to napisz):

http://builds.enginehub.org/job/commandhelper/last-successful/?branch=master
Oraz o linku do wiki:

http://wiki.sk89q.com/wiki/CommandHelper
Dodam jak będe na kompie
Opublikowano

Nie miałem za bardzo czasu na przeczytanie tego wszystkiego, ale widzę, że plugin ma dość inne pisanie "skryptów", mam kilka pytań odnośnie plguinu:

  • Czy możliwości są zbliżone do popularnego Skripta,
  • Jak wygląda kwestia lagów podczas korzystania z pluginu, czy obciąża serwer tak samo jak skript
  • Czy można zapisywać zmienne, ustawiać permissje, itp.

 

 

 

Ogólnie na poradnik masz plusik :)

Opublikowano

Nie miałem za bardzo czasu na przeczytanie tego wszystkiego, ale widzę, że plugin ma dość inne pisanie "skryptów", mam kilka pytań odnośnie plguinu:

  • Czy możliwości są zbliżone do popularnego Skripta,
  • Jak wygląda kwestia lagów podczas korzystania z pluginu, czy obciąża serwer tak samo jak skript
  • Czy można zapisywać zmienne, ustawiać permissje, itp.
Ogólnie na poradnik masz plusik :)

1.Zdecydowanie możliwości ma duże, z całą pewnością dorównuje skryptowi ;)

 

2.CH jest wydajniejszy niż script.Znam serwer 200 slotów, w którym są skrypty z CH i nie ma żadnych problemów.

 

3.Permisje masz już w 2 cz. poradnika ;)

Co do zmiennych to owszem istnieją one, przedstawie je w 3 cz. :)

Opublikowano

Poradnik średnio mi się podoba ale  może być. Popracuj nad estetyką ponieważ trochę nudno wypada czytanie. Po za tym ok.

b6tusk.png


 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...