<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[MineServer.pl - Minecraft Serwer Serwery Minecraft - Poradniki ]]></title>
		<link>https://mineserver.pl/</link>
		<description><![CDATA[MineServer.pl - Minecraft Serwer Serwery Minecraft - https://mineserver.pl]]></description>
		<pubDate>Tue, 21 Apr 2026 15:30:21 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[[PORADNIK] Jak zarejestrować się na serwerze Minecraft?]]></title>
			<link>https://mineserver.pl/Temat-PORADNIK-Jak-zarejestrowa%C4%87-si%C4%99-na-serwerze-Minecraft</link>
			<pubDate>Sun, 24 Mar 2024 20:55:10 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-PORADNIK-Jak-zarejestrowa%C4%87-si%C4%99-na-serwerze-Minecraft</guid>
			<description><![CDATA[<span style="font-size: x-large;"><span style="font-weight: bold;">Jak się zarejestrować na serwerze Minecraft?</span></span><br />
<span style="font-size: small;">W tym poradniku dowiesz się, jak założyć konto na naszym serwerze oraz jak dodać do niego adres E-Mail.</span><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 1.</span></span> Po dołączeniu na serwer, aby się zarejestrować, wpisz komendę <span style="font-weight: bold;">"/register &lt;hasło&gt; &lt;powtórzhasło&gt;"</span><br />
<br />
<img class="postimage" src="https://i.imgur.com/w0YjRxG.png" border="0" alt="[Obrazek: w0YjRxG.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 2.</span></span> Po wpisaniu tego polecenia zostaniesz zarejestrowany na naszym serwerze.<br />
<br />
<img class="postimage" src="https://i.imgur.com/VdeL9nc.png" border="0" alt="[Obrazek: VdeL9nc.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 3.</span></span> Od teraz wejście na twoje konto będzie możliwe tylko przy użyciu hasła. Aby zalogować się do konta, wpisz  <span style="font-weight: bold;">/login &lt;hasło&gt;</span><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 4.</span></span> Następnym krokiem po zarejestrowaniu konta będzie dodanie do niego adresu E-Mail; pozwoli to w przyszłości w razie zapomnianego hasła zresetować je, przywracając przy tym dostęp do konta.<br />
Aby dodać adres E-Mail wpisz <span style="font-style: italic;">/setemail &lt;adres e-mail&gt; &lt;hasło&gt;</span>. Po wpisaniu tej komendy zostanie wysłana na twoją skrzynkę specjalna wiadomość potwierdzająca dodanie E-Maila do konta.<br />
<br />
<img class="postimage" src="https://i.imgur.com/UewVL0P.png" border="0" alt="[Obrazek: UewVL0P.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 5.</span></span> Otrzymany kod należy wpisać na serwerze przy użyciu komendy <span style="font-style: italic;">/verifyemail &lt;kod&gt;</span><br />
Od teraz, gdy zapomnisz hasła, będziesz mieć możliwość zresetowania go poprzez swój adres E-Mail.<br />
<br />
<img class="postimage" src="https://i.imgur.com/6Qkk5nG.png" border="0" alt="[Obrazek: 6Qkk5nG.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">RESETOWANIE HASŁA</span></span><br />
Aby zresetować hasło, należy użyć komendy <span style="font-style: italic;">/resetpassword</span>,<br />
następnie ustaw nowe przy użyciu <span style="font-style: italic;">/confirmpasswordreset  &lt;kod&gt; &lt;nowehasło&gt; &lt;nowehasło&gt;</span>.<br />
<span style="font-weight: bold;">Hasło należy zresetować w jednej sesji logowania</span>, tzn. wpisać /resetpassword i /confirmpasswordreset bez wychodzenia z serwera.<br />
<br />
<img class="postimage" src="https://i.imgur.com/IJjRwTR.png" border="0" alt="[Obrazek: IJjRwTR.png]" />]]></description>
			<content:encoded><![CDATA[<span style="font-size: x-large;"><span style="font-weight: bold;">Jak się zarejestrować na serwerze Minecraft?</span></span><br />
<span style="font-size: small;">W tym poradniku dowiesz się, jak założyć konto na naszym serwerze oraz jak dodać do niego adres E-Mail.</span><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 1.</span></span> Po dołączeniu na serwer, aby się zarejestrować, wpisz komendę <span style="font-weight: bold;">"/register &lt;hasło&gt; &lt;powtórzhasło&gt;"</span><br />
<br />
<img class="postimage" src="https://i.imgur.com/w0YjRxG.png" border="0" alt="[Obrazek: w0YjRxG.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 2.</span></span> Po wpisaniu tego polecenia zostaniesz zarejestrowany na naszym serwerze.<br />
<br />
<img class="postimage" src="https://i.imgur.com/VdeL9nc.png" border="0" alt="[Obrazek: VdeL9nc.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 3.</span></span> Od teraz wejście na twoje konto będzie możliwe tylko przy użyciu hasła. Aby zalogować się do konta, wpisz  <span style="font-weight: bold;">/login &lt;hasło&gt;</span><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 4.</span></span> Następnym krokiem po zarejestrowaniu konta będzie dodanie do niego adresu E-Mail; pozwoli to w przyszłości w razie zapomnianego hasła zresetować je, przywracając przy tym dostęp do konta.<br />
Aby dodać adres E-Mail wpisz <span style="font-style: italic;">/setemail &lt;adres e-mail&gt; &lt;hasło&gt;</span>. Po wpisaniu tej komendy zostanie wysłana na twoją skrzynkę specjalna wiadomość potwierdzająca dodanie E-Maila do konta.<br />
<br />
<img class="postimage" src="https://i.imgur.com/UewVL0P.png" border="0" alt="[Obrazek: UewVL0P.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 5.</span></span> Otrzymany kod należy wpisać na serwerze przy użyciu komendy <span style="font-style: italic;">/verifyemail &lt;kod&gt;</span><br />
Od teraz, gdy zapomnisz hasła, będziesz mieć możliwość zresetowania go poprzez swój adres E-Mail.<br />
<br />
<img class="postimage" src="https://i.imgur.com/6Qkk5nG.png" border="0" alt="[Obrazek: 6Qkk5nG.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">RESETOWANIE HASŁA</span></span><br />
Aby zresetować hasło, należy użyć komendy <span style="font-style: italic;">/resetpassword</span>,<br />
następnie ustaw nowe przy użyciu <span style="font-style: italic;">/confirmpasswordreset  &lt;kod&gt; &lt;nowehasło&gt; &lt;nowehasło&gt;</span>.<br />
<span style="font-weight: bold;">Hasło należy zresetować w jednej sesji logowania</span>, tzn. wpisać /resetpassword i /confirmpasswordreset bez wychodzenia z serwera.<br />
<br />
<img class="postimage" src="https://i.imgur.com/IJjRwTR.png" border="0" alt="[Obrazek: IJjRwTR.png]" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[PORADNIK] Jak załączyć logowanie Premium?]]></title>
			<link>https://mineserver.pl/Temat-PORADNIK-Jak-za%C5%82%C4%85czy%C4%87-logowanie-Premium</link>
			<pubDate>Sun, 24 Mar 2024 12:18:38 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-PORADNIK-Jak-za%C5%82%C4%85czy%C4%87-logowanie-Premium</guid>
			<description><![CDATA[<span style="font-size: x-large;"><span style="font-weight: bold;">Jak załączyć logowanie Premium?</span></span><br />
<span style="font-size: small;">W tym poradniku dowiesz się, jak załączyć logowanie Premium.</span><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 1.</span></span> Po zalogowaniu się do serwera wpisz komendę <span style="font-weight: bold;">"/premium &lt;hasło&gt;"</span><br />
<span style="color: #FF0000;"><span style="font-weight: bold;">UWAGA! JEŻELI NIE MASZ KONTA PREMIUM, TO WPISANIE TEJ KOMENDY SPOWODUJE UTRATĘ DOSTĘPU DO KONTA</span></span><br />
<img class="postimage" src="https://i.imgur.com/ZW5Te59.png" border="0" alt="[Obrazek: ZW5Te59.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 2.</span></span> Po wpisaniu tego polecenia konieczne będzie potwierdzenie decyzji o włączeniu logowania Premium.<br />
Aby to zrobić wpisz <span style="font-weight: bold;">"/confirmpremium"</span><br />
<img class="postimage" src="https://i.imgur.com/OEPenC5.png" border="0" alt="[Obrazek: OEPenC5.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 3.</span></span> Po zatwierdzeniu decyzji zostaniesz wyrzucony z serwera z następującym komunikatem:<br />
<img class="postimage" src="https://i.imgur.com/erXG2IH.png" border="0" alt="[Obrazek: erXG2IH.png]" /><br />
Od teraz zalogowanie na konto będzie możliwe tylko z użytkownika Premium, a wpisywanie hasła nie będzie konieczne.<br />
<br />
<span style="font-weight: bold;">Aby wyłączyć tą funkcję (np. przy zmianie konta na nonpremium), należy wpisać na lobby /cracked</span><br />
<br />
<span style="font-weight: bold;"><span style="color: #FF0000;"><span style="font-size: medium;">JEŻELI NIE JESTEŚ POSIADACZEM MINECRAFT PREMIUM, NIE ZAŁĄCZAJ LOGOWANIA PREMIUM, BO UTRACISZ DOSTĘP DO KONTA.</span></span></span>]]></description>
			<content:encoded><![CDATA[<span style="font-size: x-large;"><span style="font-weight: bold;">Jak załączyć logowanie Premium?</span></span><br />
<span style="font-size: small;">W tym poradniku dowiesz się, jak załączyć logowanie Premium.</span><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 1.</span></span> Po zalogowaniu się do serwera wpisz komendę <span style="font-weight: bold;">"/premium &lt;hasło&gt;"</span><br />
<span style="color: #FF0000;"><span style="font-weight: bold;">UWAGA! JEŻELI NIE MASZ KONTA PREMIUM, TO WPISANIE TEJ KOMENDY SPOWODUJE UTRATĘ DOSTĘPU DO KONTA</span></span><br />
<img class="postimage" src="https://i.imgur.com/ZW5Te59.png" border="0" alt="[Obrazek: ZW5Te59.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 2.</span></span> Po wpisaniu tego polecenia konieczne będzie potwierdzenie decyzji o włączeniu logowania Premium.<br />
Aby to zrobić wpisz <span style="font-weight: bold;">"/confirmpremium"</span><br />
<img class="postimage" src="https://i.imgur.com/OEPenC5.png" border="0" alt="[Obrazek: OEPenC5.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 3.</span></span> Po zatwierdzeniu decyzji zostaniesz wyrzucony z serwera z następującym komunikatem:<br />
<img class="postimage" src="https://i.imgur.com/erXG2IH.png" border="0" alt="[Obrazek: erXG2IH.png]" /><br />
Od teraz zalogowanie na konto będzie możliwe tylko z użytkownika Premium, a wpisywanie hasła nie będzie konieczne.<br />
<br />
<span style="font-weight: bold;">Aby wyłączyć tą funkcję (np. przy zmianie konta na nonpremium), należy wpisać na lobby /cracked</span><br />
<br />
<span style="font-weight: bold;"><span style="color: #FF0000;"><span style="font-size: medium;">JEŻELI NIE JESTEŚ POSIADACZEM MINECRAFT PREMIUM, NIE ZAŁĄCZAJ LOGOWANIA PREMIUM, BO UTRACISZ DOSTĘP DO KONTA.</span></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[PORADNIK] Jak załączyć weryfikację dwuetapową?]]></title>
			<link>https://mineserver.pl/Temat-PORADNIK-Jak-za%C5%82%C4%85czy%C4%87-weryfikacj%C4%99-dwuetapow%C4%85</link>
			<pubDate>Sun, 24 Mar 2024 12:17:25 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-PORADNIK-Jak-za%C5%82%C4%85czy%C4%87-weryfikacj%C4%99-dwuetapow%C4%85</guid>
			<description><![CDATA[<span style="font-size: x-large;"><span style="font-weight: bold;">Jak załączyć weryfikację dwuetapową?</span></span><br />
<span style="font-size: small;">W tym poradniku dowiesz się, jak załączyć weryfikację dwuetapową podczas logowania na serwerze.</span><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 1.</span></span> Po zalogowaniu się do serwera wpisz komendę <span style="font-weight: bold;">"/2fa"</span><br />
<img class="postimage" src="https://i.imgur.com/6e3k1BJ.png" border="0" alt="[Obrazek: 6e3k1BJ.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 2.</span></span> Po wpisaniu tego polecenia zostaniesz przeniesiony na specjalny świat, a na twoim pasku itemów pojawi się mapa ze specjalnym kodem QR. Obrazek ten należy zeskanować wcześniej zainstalowaną dowolną aplikacją autoryzacyjną, np. <span style="font-weight: bold;">Google Authenticator</span> <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&amp;hl=pl&amp;gl=US&amp;pli=1" target="_blank">[Android]</a> <a href="https://apps.apple.com/pl/app/google-authenticator/id388497605?l=pl" target="_blank">[IOS]</a>, lub <span style="font-weight: bold;">Microsoft Authenticator</span> <a href="https://play.google.com/store/search?q=microsoft+authentication&amp;c=apps&amp;hl=pl&amp;gl=US" target="_blank">[Android]</a> <a href="https://apps.apple.com/pl/app/microsoft-authenticator/id983156458?l=pl" target="_blank">[IOS]</a><br />
<img class="postimage" src="https://i.imgur.com/Hu54tdY.png" border="0" alt="[Obrazek: Hu54tdY.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 3.</span></span> Po zeskanowaniu obrazka z kodem wpisz komendę <span style="font-weight: bold;">/2faconfirm &lt;kod z aplikacji&gt;</span><br />
<img class="postimage" src="https://i.imgur.com/hLAlru5.png" border="0" alt="[Obrazek: hLAlru5.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 4.</span></span> Po zatwierdzeniu kodu powyższą komendą zostaniesz wyrzucony z serwera z następującą wiadomością:<br />
<img class="postimage" src="https://i.imgur.com/IfzIyUR.png" border="0" alt="[Obrazek: IfzIyUR.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 5.</span></span> Od teraz każda próba zalogowania się na twoje konto będzie wymagała nie tylko hasła, ale też kodu 2FA.<br />
<img class="postimage" src="https://i.imgur.com/65gUudl.png" border="0" alt="[Obrazek: 65gUudl.png]" />]]></description>
			<content:encoded><![CDATA[<span style="font-size: x-large;"><span style="font-weight: bold;">Jak załączyć weryfikację dwuetapową?</span></span><br />
<span style="font-size: small;">W tym poradniku dowiesz się, jak załączyć weryfikację dwuetapową podczas logowania na serwerze.</span><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 1.</span></span> Po zalogowaniu się do serwera wpisz komendę <span style="font-weight: bold;">"/2fa"</span><br />
<img class="postimage" src="https://i.imgur.com/6e3k1BJ.png" border="0" alt="[Obrazek: 6e3k1BJ.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 2.</span></span> Po wpisaniu tego polecenia zostaniesz przeniesiony na specjalny świat, a na twoim pasku itemów pojawi się mapa ze specjalnym kodem QR. Obrazek ten należy zeskanować wcześniej zainstalowaną dowolną aplikacją autoryzacyjną, np. <span style="font-weight: bold;">Google Authenticator</span> <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&amp;hl=pl&amp;gl=US&amp;pli=1" target="_blank">[Android]</a> <a href="https://apps.apple.com/pl/app/google-authenticator/id388497605?l=pl" target="_blank">[IOS]</a>, lub <span style="font-weight: bold;">Microsoft Authenticator</span> <a href="https://play.google.com/store/search?q=microsoft+authentication&amp;c=apps&amp;hl=pl&amp;gl=US" target="_blank">[Android]</a> <a href="https://apps.apple.com/pl/app/microsoft-authenticator/id983156458?l=pl" target="_blank">[IOS]</a><br />
<img class="postimage" src="https://i.imgur.com/Hu54tdY.png" border="0" alt="[Obrazek: Hu54tdY.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 3.</span></span> Po zeskanowaniu obrazka z kodem wpisz komendę <span style="font-weight: bold;">/2faconfirm &lt;kod z aplikacji&gt;</span><br />
<img class="postimage" src="https://i.imgur.com/hLAlru5.png" border="0" alt="[Obrazek: hLAlru5.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 4.</span></span> Po zatwierdzeniu kodu powyższą komendą zostaniesz wyrzucony z serwera z następującą wiadomością:<br />
<img class="postimage" src="https://i.imgur.com/IfzIyUR.png" border="0" alt="[Obrazek: IfzIyUR.png]" /><br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">KROK 5.</span></span> Od teraz każda próba zalogowania się na twoje konto będzie wymagała nie tylko hasła, ale też kodu 2FA.<br />
<img class="postimage" src="https://i.imgur.com/65gUudl.png" border="0" alt="[Obrazek: 65gUudl.png]" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Jak napisać skrypt, czyli poradnik dla opornych pseudo-programistów]]></title>
			<link>https://mineserver.pl/Temat-Jak-napisa%C4%87-skrypt-czyli-poradnik-dla-opornych-pseudo-programist%C3%B3w</link>
			<pubDate>Sat, 25 Nov 2023 12:56:56 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Jak-napisa%C4%87-skrypt-czyli-poradnik-dla-opornych-pseudo-programist%C3%B3w</guid>
			<description><![CDATA[<div style="text-align: center;">
<br />
<br />
<br />
<img class="postimage" src="https://i.imgur.com/Km1SFDV.png" border="0" alt="[Obrazek: Km1SFDV.png]" /><br />
<br />
Jeżeli jakimś cudem sam, z własnej nieprzymuszonej niczym woli wszedłeś w ten wątek, najprawdopodobniej chcesz się czegoś nauczyć lub po prostu pośmiać z nieudolności autora w zakresie tłumaczenia i nie tylko.<br />
<br />
<br />
<span style="font-size: xx-large;"><span style="color: #FF0000;">UWAGA! | ATTENTION! | ACHTUNG! | ODDAM ŚWIEŻAKA! | ATTENTION! | ¡ATENCIÓN! | ВНИМАНИЕ!</span></span><br />
Do wyciągnięcia wniosków z tego tekstu potrzebna jest umiejętność czytania ze zrozumieniem. Jeżeli czytasz ten tekst ze względu na ogłoszenie o świeżaku wejź w ten <a href="https://mineserver.pl" target="_blank">link</a> i już nigdy nie wracaj do tego wątku.</div>
<br />
Poniżej znajduje się kilka nagłówków streszczających znajdujący się poniżej poniższych nagłówków poniższy niestreszczony tekst:<br />
<br />
<br />
<br />
<span style="font-size: x-large;">1. Dobra dokumentacja</span><br />
W podstawówce/liceum uczysz się z podręczników, w przypadku skryptów zostaje dostępna w internecie dokumentacja. <br />
Pora na interesujące linki:<ul>
<li><span style="font-weight: bold;">Oficjalna dokumentacja Skripta:</span><br />
 <ul>
<li><a href="https://docs.skriptlang.org" target="_blank">https://docs.skriptlang.org</a> - Aktualna dokumentacja.</li>
<li><a href="http://en.njol.ch/projects/skript" target="_blank">http://en.njol.ch/projects/skript</a> - Wersja archaiczna (welcome in 2014!).</li>
<li><a href="https://github.com/SkriptLang/skript-aliases" target="_blank">https://github.com/SkriptLang/skript-aliases</a> - Lista aktualnych aliasów podzielonych na kategorie.<br />
  </li></ul></li>
<li><span style="font-weight: bold;">Baza różnych dodatków do Skripta:</span><br />
 <ul>
<li><a href="https://skripthub.net/docs/" target="_blank">https://skripthub.net/docs/</a> - Osobiście ulubiona wyszukiwarka metod ze skripta oraz dodatków do niego.</li>
<li><a href="https://skunity.com" target="_blank">https://skunity.com</a> - "Istny kombajn", co w tłumaczeniu z języka bananowego oznacza "ma praktycznie wszystko". Posiada własne forum, wyszukiwarkę metod, parser, tutoriale, liczne dodatki do pobrania, oraz "wiele więcej!".<br />
  </li></ul></li>
<li><span style="font-weight: bold;">Fora dla skrypto-maniaków:</span><br />
 <ul>
<li><a href="https://forums.skunity.com" target="_blank">https://forums.skunity.com</a> - Opisane wyżej</li>
<li><a href="https://skript.pl" target="_blank">https://skript.pl</a> - Dla tych którzy mają problemy z angielskim, ale przynajmniej polski znają na poziomie komunikatywnym.</li>
<li><a href="https://www.spigotmc.org/forums/" target="_blank">https://www.spigotmc.org/forums/</a> - Forum raczej dla <del>prawdziwych</del> programistów piszących pluginy, jednak czasem można się napotkać na tematy związane ze skriptem.<br />
  </li></ul></li>
<li><span style="font-weight: bold;">Translator:</span><br />
 <ul>
<li><a href="http://translate.google.pl" target="_blank">http://translate.google.pl</a> - Chyba najpopularniejszy dostępny na rynku translator.</li>
<li><a href="https://pl.bab.la" target="_blank">https://pl.bab.la</a> - Alternatywny tlumacz, w przypadku tłumaczenia poradników ze skripta różnicy nie zrobi, ale lepiej poradzi sobie z "prawdziwymi" angielskimi zwrotami w tłmaczeniu na polski.<br />
  </li></ul></li>
<li><span style="font-weight: bold;">Google:</span><br />
 <ul>
<li><a href="https://google.com" target="_blank">https://google.com</a> - Google. Tak, tu możesz szukać swojego problemu który najpewniej został już rozwiązany przez dwóch hindusów i jednego azjatę.<br />
  </li></ul>
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">2. Odpowiednie wyposażenie</span><ul>
<li><span style="font-weight: bold;"><a href="https://github.com/SkriptLang/Skript/releases" target="_blank">Skript</a></span> - O ile każdy z poziomem inteligencji wyższym od przeciętnej małpy domyśla się że do pisania i testowania skryptów potrzebny jest Skript, tyle dobór wersji jest już bardziej problematyczny. Ostatnią wersją która wspiera silnik 1.8 jest Skript <del>2.2-dev37c</del>, jednak wersja ta zawiera krytyczny błąd związany z czyszczeniem starych zmiennych tymczasowych, przez co serwerowi potrafiło zabraknąć w połowie dnia RAMu, tak więc tej wersji kategorycznie się pozbywamy. Znacznie bezpieczniejsza jest wersja Skript 2.2-dev36, która aktualnie jest wykorzystywana na większości trybów z silnikiem 1.8 na naszej serwerowni. W przypadku pozostałych wersji silnika najlepiej korzystać z najnowszej wersji Skripta (aktualnie Skript 2.5.3). W przypadku pisania skryptu na pod konkretny tryb najlepiej pierw zapytać kogoś z dostępem do plików jaka wersja Skripta jest na nim zainstalowana oraz jakie dodatki do niego są wykorzystywane. Pisanie skryptu na tej samej wersji Skripta co na serwerze docelowym powinno zminimalizować do zera prawdopodobieństwo niekompatybilności kodu.</li>
<li><span style="font-weight: bold;"><a href="https://papermc.io/downloads" target="_blank">Własny serwer do testów</a></span> - Nie mam zamiaru opisywać tutaj procesu stawiania serwera na własnym komputerze, jest od tego multum poradników w internecie. Najlepiej skorzystać z forka Spigota o nazwie Paper.</li>
<li><span style="font-weight: bold;"><a href="https://notepad-plus-plus.org/downloads/" target="_blank">Notepad++</a></span> - Jest to według mnie najwygodniejsze narzędzie do edycji skryptów, umożliwia uzupelnianie wsześniej użytych fraz, automatycznie dodaje wcięcia w nowych linijkach i pokazuje numery kolejnych linii, a dodatkowo posiada wsparcie dla znaków specjalnych (np. '\n', '\r') oraz regexa (np. '[0-9A-Za-z]*')</li>
<li><span style="font-weight: bold;"><a href="https://google.com" target="_blank">Google</a></span> - Google<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">3. Zrozumienie założeń</span><br />
<span style="color: red;">Zadaniem tego akapitu w żadnym wypadku <span style="font-weight: bold;">nie jest</span> wytłumaczenie kolejnych elementów Skripta, ma on jedynie pomóc w ogólnym <span style="font-weight: bold;">zrozumieniu</span> jego idei oraz sposobu działania.</span><br />
<br />
Jak wiadomo każdej <span style="font-weight: bold;">akcji</span> towarzyszy <span style="font-weight: bold;">reakcja</span>. Stwierdenie to ma racje bytu zarówno w fizyce, polityce, jak i Skripcie.<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>on jump:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- AKCJA (EVENT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;send "Gdyby kózka nie skakała to by nóżki nie złamała"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#92;<br />
&nbsp;&nbsp;&nbsp;&nbsp;apply slowness 2 to player&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;set {_random} to random integer between 1 and 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| &lt;- REAKCJA<br />
&nbsp;&nbsp;&nbsp;&nbsp;if {_random} is bigger than 9:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;damge player by 1 hearth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/</code></div></div>
<br />
Tak więc nic nie dzieje się bez powodu (nie licząc przebłysków inteligencji trawy, tego nikt się nie spodziewa). Reakcję natomiast można podzielić na kolejne podkategorie: <span style="font-weight: bold;">warunki</span> oraz <span style="font-weight: bold;">efekty</span>. Myślę że nie trzeba nikomu tłumaczyć co oznacza co, jednak lepiej dmuchać na zimne (w końcu link do tego wątku będzie najbardziej prawdopodobną odpowiedzią z mojej strony). Można reagować bezmyślnie na każdą akcje lub postawić kilka warunków, które mają na celu sprecyzowanie w jakiej konkretnie sytuacji ma się wykonać dany efekt.<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;send "Gdyby kózka nie skakała to by nóżki nie złamała"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- EFEKT (EFFECT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;apply slowness 2 to player&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- EFEKT<br />
&nbsp;&nbsp;&nbsp;&nbsp;set {_random} to random integer between 1 and 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- EFEKT<br />
&nbsp;&nbsp;&nbsp;&nbsp;if {_random} is bigger than 9:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- WARUNEK (CONDITION)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;damge player by 1 hearth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- EFEKT</code></div></div>
<br />
Oczywiście głupotą byłoby gdyby efekty i warunki były statyczne, korzystają one ze zmiennych. Ale czym w takim razie jest <span style="font-weight: bold;">zmienna</span>? Można powiedzieć że to pudełko do którego można coś włożyć a następnie wykorzystać w jakimś efekcie lub warunku. Istnieje kilka rodzajów takich pudełek a różnią się one sposobem zapisu w kodzie oraz funkcjonalnością.<br />
W przypadku zmiennej o kreatywnej nazwie <span style="color: aqua;"><span style="font-weight: bold;">ZMIENNA</span></span> będą to:<ul>
<li><span style="font-weight: bold;">{<span style="color: aqua;">ZMIENNA</span>}</span> - jest to zmienna globalna, to znaczy że istnieje i będzie istnieć aż do momentu kiedy nie zostanie usunięta. Nie przeszkodzi jej nawet restart serwera, jest zapisywana w specjalnym pliku</li>
<li><span style="font-weight: bold;">{_<span style="color: aqua;">ZMIENNA</span>}</span> - jest to zmienna tymczasowa, można powiedzieć że jest to pudełko jednorazowe, które po ukończeniu reakcji po prost się rozpadnie. Jest ona dostępna w obrębie pojedyńczego eventu, a każde kolejne jego wywołanie resetuje zmienną</li>
<li><span style="font-weight: bold;">{<span style="color: aqua;">ZMIENNA</span>::*}</span> - jest to właściwie to samo co {ZMIENNA}, tyle że w tym przypadku mamy do czynienia z listą zmiennych, a więc byłoby to pudełko z wieloma przegródkami. Możemy uzyskać dostęp do pojedyńczej zmiennej zastępując * na końcu identyfikatorem danej przegródki np. {ZMIENNA::1} lub {ZMIENNA::szumielxd}</li>
<li><span style="font-weight: bold;">{_<span style="color: aqua;">ZMIENNA</span>::*}</span> - jest to po prostu fuzja zmiennej tymczasowej ({_ZMIENNA}) oraz listy ({ZMIENNA::*})<br />
</li></ul>
<br />
Oczywiście na początku swojego istnienia pudełko (nie mylić z kapeluszem magika) jest puste, dopiero później chowamy do niego jego przyszłą zawartość, analogicznie aby zmienna nie zwracała nam pięknego &lt;none&gt; musimy ją "nasetować", a robi się to dośc trywialnie<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>set {_zmienna} to "Jestem tekstem zapisanym do zmiennej"</code></div></div>
<br />
Ciekawym może wydać się fakt że <span style="font-weight: bold;">nazwa zmiennej również może być zmienną</span>. W poniższym przykładzie wartość zmiennej {_nick} będzie równa "To mój nick"<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>set {_var} to "NICK"<br />
set {ZMIENNA.NICK} to "To mój nick"<br />
set {_nick} to {ZMIENNA.%{_var}%}</code></div></div>
<br />
Analogicznie zmiennych można używać w tekście. W tym przypadku w konsoli powinna się wyświetlić fraza "Wartość zmiennej {_nick} to: kebab"<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>set {_nick} to "kebab"<br />
send "Wartość zmiennej {_nick} to: %{_nick}%" to console</code></div></div>
<br />
Kilka sugestii:<ul>
<li>Zmienne globalne są GLOBALNE. Uważaj z ich nazewnictwem, inaczej pewnego pięknego dnia zdziwisz się kiedy Twoja zmienna o nazwie {zmienna} zwróci Ci kolor owcy zamiast wartości Twojego portfela. Dobrą prakyką jest nazywanie zmiennej w taki sposób aby mówiła nam co powinna przechowywać oraz w jakim miejscu kodu możemy się jej spodziewać. Przykładowo {BOSKIE.ROG.CZAS::*} brzmi jak idealna nazwa do przechowywania czasu ostatniego użycia rogu dusz, który jest jednym z boskich przedmiotów na WD.</li>
<li>Jeżeli planujesz w przyszłości pracować w IT nazywaj zmienne po angielsku. Nie ma sensu uczyć się złego nawyku którego z czasem będziesz musiał się pozbyć. Aktualnie nawet małe studia GameDev nie dość że piszą kod po angielsku (tyczy się to również komentarzy), to jeszcze tworzą dokuemtację w tym właśnie języku.</li>
<li>Zmiennych globalnych używaj tylko w ostateczności. Każda zmienna to dodatkowa linijka pliku do wczytania i zapisu, kilkaset tysięcy zmiennych może negatywnie wpłynąć na czas ładowania serwera oraz może powodować spadki TPS w czasie zapisywania zmiennych do pliku (backup domyślnie wykonuje się co 3 godziny)</li>
<li>Zmienne globalne zapisuj WIELKIMI LITERAMI. W ten sposób na kilometr rozpoznasz zmienną globalną, a dodatkowo jest to często przyjmowana przez programstów praktyka.<br />
</li></ul>
<br />
Istnieje też coś co z jednej strony jest zmienną z drugiej zaś jakimś dziwnym tworem, a jest to <span style="font-weight: bold;">metadata</span>. Jest ona przypisana do entity, metadata gracza jest zaś usuwana tylko przy restarcie serwera, tak więc idealnie nadaje się na zapisywanie w niej takich perełek jak czas do ponownego użycia boskiego przedmiotu, czy też drużyna w której aktualnie się znajduje gracz. W ten sposób nie obciążamy ddatkowo zmiennych globalnych, a jednocześnie możemy odczytać jej wartość z dowolnego miejsca w skrypcie.<br />
Operacje na metadacie są dosyć proste, tradycyjnie zaprezentuje to na przykładzie metadaty o nazwie <span style="color: aqua;">ZMIENNA</span>:<ul>
<li>set metadata value "<span style="color: aqua;">ZMIENNA</span>" of player to "wartość"</li>
<li>set {_m} to metadata value "<span style="color: aqua;">ZMIENNA</span>" of player</li>
<li>if player has metadata value "<span style="color: aqua;">ZMIENNA</span>":</li>
<li>clear metadata value "<span style="color: aqua;">ZMIENNA</span>" of player<br />
</li></ul>
<br />
Chyba każdy przyzna że ustawianie wartości zmiennej do statycznej liczby czy też tekstu jest nudne i bezcelowe (choć są od tego wyjątki), na szczęście skrypt daje nam wyrażenia. Czym jest <span style="font-weight: bold;">wyrażenie</span> najlepiej wytłumaczyć na przykładzie. Jest sobie Marcin, Marcin posiada imię, ma na imię Marcin, a więc fraza "Marcin" to imię Marcina. W przypadku skripta byłoby to wyrażenie player's name. Mogę to wykorzystać na 2 sposoby: albo zapisać do zmiennej, albo wysłać na chacie.<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>set {_p} to player<br />
set {_nick} to {_p}'s name&nbsp;&nbsp;&nbsp;&nbsp;# 1<br />
broadcast "%{_p}'s name%"&nbsp;&nbsp;&nbsp;&nbsp; # 2</code></div></div>
<br />
Jednym z ostatnich podstawowych tematów jest <span style="font-weight: bold;">iteracja</span>. Chciałbyś wysłać 10 wiadomości na chacie a treść każdej kolejnej do numer od 1 do 10?<br />
Możesz to zrobić tak:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>broadcast "1"<br />
broadcast "2"<br />
broadcast "3"<br />
broadcast "4"<br />
broadcast "5"<br />
broadcast "6"<br />
broadcast "7"<br />
broadcast "8"<br />
broadcast "9"<br />
broadcast "10"</code></div></div>
Abo tak:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>loop 10 times:<br />
&nbsp;&nbsp;&nbsp;&nbsp;broadcast "%loop-number%"</code></div></div>
<br />
Dodatkowo iterować można całe listy zmiennych, a jest to banalnie proste. Taka iteracja daje nam dwie dodatkowe zmienne: <span style="font-weight: bold;">loop-index</span> oraz <span style="font-weight: bold;">loop-value</span>. Łatwo można się domyśleć że pierwsza jest naszym indexem zmiennej w liście, a druga zmienną we własnej osobie.<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>loop {LISTA_ZMIENNYCH::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;broadcast "%loop-index%. %loop-value%"</code></div></div>
<br />
Nietypowym wyzwalaczem kodu jest <span style="font-weight: bold;">komenda</span>, o ile zwykły event deklarujemy za pomocą jednej linijki kodu, o tyle komendy rejestrowane są w inny sposób:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /test &lt;player&gt;:<br />
&nbsp;&nbsp;&nbsp;&nbsp;aliases: t, tst<br />
&nbsp;&nbsp;&nbsp;&nbsp;description: To jest testowa komenda<br />
&nbsp;&nbsp;&nbsp;&nbsp;usage: /test &lt;nick&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;executable by: players, console<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission: sk.command.test<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission-message: Nie możesz użyć tej komendy<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%sender% wysłał do Ciebie testową wiadomość"</code></div></div>
Myślę że każdy kto zna angielski jest w stanie zrozumieć która linijka do czego służy. W razie jakichkolwiek problemów tu jest to dość szczegółowo wytłumaczone: <a href="https://dev.bukkit.org/projects/skript/pages/custom-commands" target="_blank">https://dev.bukkit.org/projects/skript/p...m-commands</a>. Ten punkt po prostu należało poruszyć i odhaczyć, warto natomiast skorzystać z okazji i zasugerować w jaki sposób w miarę "profesjonalnie" deklarować komendy. Dobrze jest każdą komendę zaopatrzyć w odpowiednią permissję, każdorazowo inną, w ten sposób można łatwo manimupować dostępem do komendy, i zablokować ją w przypadku wykrycia jakiś nieprawidłowości. W ten sposób również sprawiamy że jeżeli gracz nie będzie miał dostępu do tej komendy nie będzie w stanie jej zobaczyć wpisując '/' i klikając TAB. Pozornie TAG `executable by` zdaje się bezużyteczny, jednak jail pzekonał mnie że czasem coś musi być idiotoodporne z każdej strony również dla naszego dobra. To że stworzyłeś daną komendę nie oznacza że ktoś inny jej nie wykorzysta, a co gorsza w sposób którego się nie spodziewałeś, tak jak na przykład konsola probująca się teleportować do swojej celi notorycznie wypluwając NullPointerExcetion w logach. Tak więc jeżeli tworzysz komendę tylko dla graczy dobrze jest to zadeklarowaś dodając TAG `executable by: players` i analogicznie w przypadku komend tylko dla konsoli.<br />
Najczęściej moje komendy mają taki format:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /teleport [&lt;offline player&gt;] [&lt;text&gt;]:<br />
&nbsp;&nbsp;&nbsp;&nbsp;aliases: tp<br />
&nbsp;&nbsp;&nbsp;&nbsp;permision: sk.command.teleport<br />
&nbsp;&nbsp;&nbsp;&nbsp;executable by: players<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if arg 1 is online:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;teleportPlayer(arg 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% Podaj nick gracza"</code></div></div>
Jak można zauważyć nie ustawiam informacji o sposobie użycia komendy przy jej deklaracji, zamiast tego ręcznie wysyłam wiadomość o niewłaściwym jej użyciu, jest to najpopularniejsza technika wsród developerów pluginów, sekcja usage jest raczej traktowana jako pozostałość po komendach z vanilli.<br />
<br />
I nadeszła pora na ostatni nietypowy event, a jest to <span style="font-weight: bold;">funkcja</span>. Pisanie jednego długiego bloku kodu jest dość niewygodne, nieczytelne i często syzyfowe, słabego osobnika może nieraz doprowadzić do ciężkiej zapaści (tak, mam tu na myśli pokolenie "Cześć, mam depresje i lubie żyletki"). Dlatego takowy kod najlepiej jest podzielić na funkcje, ma ona również inną umiejętność, otóż potrafi zwracać wartości. Poniżej znajdują się 2 funkcje wraz z deklaracją, pierwsza zwraca wartość, druga natomiast ma po prostu wykonać jakiś kod. Na pierwszej funkcji można również wytłumaczyć szczegóły deklaracji funkcji. Otóż deklaracja zaczyna się frazą 'function', a następnie użytkownik deklaruje nazwę tej funkcji. Każda funkcja posiada nawias okrągły w którym deklaruje się jej argumenty oddzelone przecinkami w postaci 'nazwaZmiennej: <a href="https://skriptlang.github.io/Skript/classes.html" target="_blank">typ</a>'. W przypadku kiedy funkcja ma coś zwracać należy również zadeklarować typ zwracanej wartości, w tym celu po nawiasie należy dodać frazę ' :: <a href="https://skriptlang.github.io/Skript/classes.html" target="_blank">typ</a>'. Należy nadmienić że funkcje działają globalnie, tak więc funkcja zadeklarowana w skrypcie a.sk może zostać użyta w skrypcie b.sk<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /test:<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission: sk.command.test<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_rand} to random integer between 1 and 10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_min} to minimum({_rand}, 5)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendAds({_min})<br />
<br />
function minimum(i1: integer, i2: integer) :: integer:<br />
&nbsp;&nbsp;&nbsp;&nbsp;if {_i1} is bigger than {_i2}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return {_i2}<br />
&nbsp;&nbsp;&nbsp;&nbsp;else:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return {_i1}<br />
<br />
function sendAds(amount: integer):<br />
&nbsp;&nbsp;&nbsp;&nbsp;loop {_amount} times:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;broadcast "&amp;b"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;broadcast "&amp;bNaukowcy go nienawidzą! Wymyślił lekarstwo na głupotę!"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;broadcast "&amp;dKliknij aby zamówić darmową próbkę!"</code></div></div>
<br />
<br />
<br />
<span style="font-size: x-large;">5. Dodatki których używam</span><ul>
<li><a href="https://github.com/szumielxd/PlaceholderSK/releases" target="_blank">PlaceholderSK</a> - Znacznie zoptymalizowany pod kątem asynchronicznych zapytań dodatek umożliwiający stworzenie własnych placeholderów wykorzystywanych przez PlaceholderAPI.</li>
<li><a href="https://www.spigotmc.org/resources/skbee-skript-addon.75839/" target="_blank">SkBee</a> - Jest to hybryda kilku innych dodatków tego samego autora, znajdziemy tu łatwą edycję NBT, tworzenie nowych receptur, scoreboard, możliwość wklejania własnych struktur.</li>
<li><a href="https://www.spigotmc.org/resources/skript-java-addon-skellett.34361" target="_blank">Skellett</a> - Aktualnie sporo z funkcji Skelletta zostało zaimplementowanych do Skripta, jednak nadal ma się on czym pochwalić. W przypadku wersji silnika pre-flattering (1.8-1.12.2) najlepiej używać wersji Skellett 1.9.6b.</li>
<li><a href="https://www.spigotmc.org/resources/skquery-1-9-1-16.36631/" target="_blank">SkQuery</a> - Dość mocno rozbudowuje składnię Skripta o bardziej przyjazne dla programistów stwierdzenia, wraz ze Skelletem stanowi sporą bibliotekę przydatnych metod.</li>
<li><a href="https://github.com/btk5h/skript-db/releases" target="_blank">skript-db</a> - Umożliwia wykonanie zapytania do zewnętrznej bazy MySQL korystając z szybkiego klienta HikariCP</li>
<li><a href="https://www.spigotmc.org/resources/skript-reflect.82259/" target="_blank">skript-reflect</a> - Wprowadza do Skripta dość rozbudowaną implementację Javy, tym samym pozwalając korzystać z większości dobrodziejstw API Bukkita oraz zainstalowanych pluginów.</li>
<li><a href="https://forums.skunity.com/resources/skutilities.26/" target="_blank">skUtilities</a> - Jak sama nazwa mówi: zbiór różnorakich narzędzi które okażą się przydatne w najmniej spodziewanym momencie.</li>
<li><a href="https://forums.skunity.com/resources/thatpacketaddon.847/" target="_blank">ThatPacketAddon</a> - Można powiedzieć że jest to dość kulawy adapter ProtocolLib dla Skripta, jednak ciężko postarać się o coś lepszego w tym zakresie.</li>
<li><a href="https://github.com/szumielxd/TuSKe/releases" target="_blank">TuSke</a> - Głównie przydatny przy tworzeniu customowych gui, których nie będzie dało się skopiować klikając więcej niż 7cps, prócz tego można nim tworzyć własne receptury oraz enchanty, posiada również multum bliżej niezgrupowanych metod.<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">6. Dobre praktyki</span><ul>
<li>Jeżeli tworzysz w skripcie coś większego niż pojedyńczą blokade dropu przedmiotów z mobów dobrze jest podzielić jeden wielki skrypt na kilka mniejszych, a najlepiej wrzucić jeszcze do oddzielnego folderu. W ten sposób znacznie zmniejszysz prawdopodobieństwo zgubienia się we własnych skryptach, a sam kod będzie łatwiej przeładować, mniejszy plik to mniej kodu do wczytania i parsowania.<br />
Tu przykład z WvsP:<br />
<img class="postimage" src="https://i.imgur.com/PjwyOtE.png" border="0" alt="[Obrazek: PjwyOtE.png]" /><br />
A tu w mniejszej skali z WD:<br />
<img class="postimage" src="https://i.imgur.com/ad3iaXz.png" border="0" alt="[Obrazek: ad3iaXz.png]" /></li>
<li>Niektóre tryby/skrypty wrzucane są na więcej niż jeden serwer. Na większości trybów do których mam dostęp stworzyłem plik o nazwie _main.sk w którym umieszczam podstawowe zmienne, takie jak prefix na chacie czy też adres url serwera. W ten sposób migracja skryptu jest o wiele łatwiejsza ponieważ bez względu na serwer poprawne dane będzie pobierać ze zmiennej<br />
<img class="postimage" src="https://i.imgur.com/XZ45Pa4.png" border="0" alt="[Obrazek: XZ45Pa4.png]" /></li>
<li>Piszesz długi i skomplikowany kod? Dodaj do niego komentarze! Tak nieidealne istoty jak członkowie naszej ukochanej społeczności mają skłonność do zapominania rzeczy które przez pewien czas nie były im potrzebne, to oznacza że kiedyś odczujesz potrzebę powrotu do swojego starego kodu, który bez żadnych opisów nie będzie niczym innym jak spaghetti.</li>
<li>Recykling do przyszłość nie tylko w ekologii. Raz napisany kod może się przydać w więcej niż jednym miejscu. Nieraz trafić można na funkcję która robi coś ciekawego i od razu wiadomo że będzie można ją wykorzystać w więcej niż jednym miejscu. Wtedy warto takową funkcję wrzucić do pliku o nazwie utils.sk lub podobnej, plik ten będzie z nami podróżować na kolejne nasze place zabaw, gdzie nieraz oszczędzi nam czasu na klepaniu kolejny raz tego samego kodu. W moim przypadku jest już cały folder.<br />
<img class="postimage" src="https://i.imgur.com/ssmkGKv.png" border="0" alt="[Obrazek: ssmkGKv.png]" /></li>
<li>funkcje nazywaj intuicyjnie, działają one globalnie, tak więc w przypadku znalezienia w kodzie funkcji o nazwie kosmicznyKebab() dość ciężko może być zlokalizować miejsce w którym ta funkcja została zadeklarowana. Dobrym wyjściem wydaje się poprzedzać nazwę funkcji nazwą pliku w którym się znajduje (przykład: stats_loadPlayer()), w ten sposób wystarczy otworzyć odpowiedni plik i kliknąć ctrl+f. Wśród programistów powstał również zwyczaj zapisywania nazw zmiennych w specjalnym formacie tzw. camelCase (pierwsze litery kolejnych słów są Wielkie z wyłączeniem pierwszego słowa).<br />
<br />
</li></ul>
<br />
<br />
<span style="font-size: x-large;">7. Sztuczki</span><ul>
<li>Skrypty ładują się alfabetycznie według nazwy, jeżeli chcesz żeby jakiś skrypt załadował się przed innymi po prostu dodaj '_' na początku jego nazwy. Okazuje się to przydatne kiedy Skript zaczyna się pruć o nieistniejącą funkcję która tak naprawde istnieje, ale w pliku o którym Skript jeszcze nie wie.</li>
<li>Nowsze wersje Skripta (2.3+) mają całkowicie przebudowany system zmiennych oraz ich recyklngu, przez co są usuwane po opuszczeniu oryginalnego wątku, tak jak ma to miejsce w przypadku dodatku <span style="font-weight: bold;">skript-db</span> gdzie po wykonaniu jakiegokolwiek połączenia z bazą wszystkie nasze zmienne tymczasowe stają się puste. Problem ten można rozwiązać na 2 sposoby.<br />
<ul>
<li>Pierwszy polega na stworzeniu jednoelementowej listy, którą następnie będziemy iterować, zmienna zostanie usunięta, jednak loop-value jakimś cude zostaje nienaruszone, najwiekszym problemem jest tu brak możliwości ponownego ustawienia wartości loop-value oraz fakt że każda kolejna zmienna z której chcemy korzystać to kolejna iteracja, tak więc mamy kilka różnych loop-value (loop-value-1, loop-value-2, ...).<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;function updatePlayer(p: player, statType: text):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add {_p} to {_list1::*}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add {_statType} to {_list2::*}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop {_list1::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop {_list2::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execute "SELECT `value` FROM `statystyki` WHERE `username` = %unsafe loop-value-1% AND `stat_type` = %unsafe loop-value-2%" in {STATYSTYKI.SQL} and store result in {_result::*}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {STATYSTYKI.PLAYER::%loop-value-1%::%loop-value-2%} to {_result::value::1}</code></div></div>
</li>
<li>Drugi natomiast wymaga wykorzystania dodatku o nazwie skript-reflect (nie zadziała z skript-mirror), który umożliwia asynchroniczne wykonanie kodu co pozwoli nam na wykonanie zapytania do bazy w tym samym watku co reszta skryptu.<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;function updatePlayer(p: player, statType: text):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create new section with {_p}, {_statType} and store in {_section}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execute synchronously "SELECT `value` FROM `statystyki` WHERE `username` = %unsafe {_p}% AND `stat_type` = %unsafe {_statType}%" in {STATYSTYKI.SQL} and store result in {_result::*}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {STATYSTYKI.PLAYER::%{_p}%::%{_statType}%} to {_result::value::1}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run section {_section} async with {_p}, {_statType}</code></div></div>
	</li></ul></li>
<li>Niektóre wersje Skripta mają problem z poprawną interpretacją typu zmiennej, co może czasem sprawić że zmienna będzie po prostu odczytywana przez funkcję/wyrażenie/efekt/chomika w betoniarce/warunek jako &lt;none&gt;, a tu krótki przykład:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /vegeterrorysta:<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission: op<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_var} to 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add 1 to {_var}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jedzWarzywa({_var})<br />
<br />
function jedzWarzywa(i: integer):<br />
&nbsp;&nbsp;&nbsp;&nbsp;broadcast "Zjedzono warzyw: %{_i}%"</code></div></div>
W niektórych wersjach funkcja otrzyma informację że zmienna {_var} jest typu <span style="font-weight: bold;">number</span> zamiast <span style="font-weight: bold;">integer</span>, a skoro typ zmiennej nie jest właściwy to argument przybierze wartość &lt;none&gt;. Jakie jest w takim razie rozwiązanie?<br />
Banalnie:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /vegeterrorysta:<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission: op<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_var} to 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add 1 to {_var}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jedzWarzywa("%{_var}%" parsed as integer)<br />
<br />
function jedzWarzywa(i: integer):<br />
&nbsp;&nbsp;&nbsp;&nbsp;broadcast "Zjedzono warzyw: %{_i}%"</code></div></div>
</li>
<li>Nie bójmy się korzystać z faktu że ustawionej zmiennej nie nadpiszemy wartością &lt;none&gt;, ale jednocześnie bójmy się faktu że wartość &lt;none&gt; nie nadpisze nam zmiennej.<br />
Pora na 2 krótkie przykłady:<br />
<ul>
<li>Możemy to wykorzystać do dynamicznego przypisywania celu naszych działań. Poniżej znajduje się prosta komenda na sprawdzanie stanu konta, może ją wykonać zarówno gracz jak i konsola. W przypadku kiedy gracz wykona tą komendę zmienna player będzie ustawiona, jednak nie w przypadku konsoli. Pierwszy argument tej komendy nie jest obowiązkowy, jednak w momencie kiedy zostanie podany nadpisze on wartość zmiennej {_p}, w ten sposób zamiast sprawdzać stan konta gracza który wykonał komendę sprawdzony zostanie stan konta gracza którego nick został podany jako argument. W przypadku kiedy komendę wykona konsola i nie poda nicku w argumencie wartość zmiennej {_p} pozostanie niezmienna, czyli &lt;none&gt;.<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;command /balance [&lt;player&gt;] [&lt;text&gt;]:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aliases: bal<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;permission: sk.command.balance<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_p} to player<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_p} to arg 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if {_p} is not set:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% &amp;cJako konsola musisz podać nick gracza."<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% &amp;7Gracz &amp;b%{_p}% &amp;7posiada &amp;b%{_p}'s balance%&#36;&amp;7."</code></div></div>
</li>
<li>Można się na tym również przejechać i to bardzo prosto:<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;loop {_list::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_p} to loop-value parsed as player<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add 10 to {_p}'s balance<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% &amp;7Otrzymałeś wypłatę w wysokości &amp;b10&#36;&amp;7!"</code></div></div>
	I tu pojawia się problem. Co w momencie kiedy jakiś nick z listy jest offline? wtedy 'loop-value parsed as player' zwróci none, a więc zmienna {_p} pozostanie z wartością z poprzedniej iteracji, a więc pewien szczęśliwiec dostanie co najmniej 2 wypłaty. Na szczęście rozwiązanie jest trywialne<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;loop {_list::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete {_p}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_p} to loop-value parsed as player<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if {_p} is set:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add 10 to {_p}'s balance<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% &amp;7Otrzymałeś wypłatę w wysokości &amp;b10&#36;&amp;7!"</code></div></div>
	</li></ul></li>
<li>Zadbajmy o wygodę użytkownika, każdemu czasem zdarzy się wpisać komendę z dodatkowym, zupełnie niepotrzebnym argumentem. Przykład? '/day y'. Rozwiązanie? dodajmy na końcu deklaracji komendy dodatkowy, nieobowiązkowy argument typu tekstowego, w ten sposób podanych przez gracza nigdy nie będzie za dużo. A więc zamiast 'command /day:' wpisujemy 'command /day [&lt;text&gt;]:'</li>
<li>Zmienna typu boolean (prawda/fałsz) tak naprawde może przyjąć 3 wartości: true, false oraz &lt;none&gt;. W przypadku Skripta jest to raczej mało istotne, ale w przypadku silnie typowanych języków jak Java jest to niezwyle przydatne dla leniwych programistów (i tu wyszedł nam wiecznie prawdziwy epitet "leniwy programista")</li>
<li>SkQuery udostępnia nam niejako możliwość ustawienia domyślnej wartości zwracanej przez zmienną w przypadku kiedy jest ona pusta. Zastosowanie jest banalnie proste: 'send "Zabiłeś %{STATYSTYKI.KILLS::%player%}?0% przeciwników" to player'. W przypadku kiedy zmienna będzie równa &lt;none&gt; gracz otrzyma wiadomość 'Zabiłeś 0 przeciwników', w przeciwnym wypadku zero zostanie zastąpione wartością zmiennej.</li>
<li>Ewenementem Skripta jest możliwośc operowania na pustych zmiennych. W przypadku operacji arytmetycznych jest ona po prostu uznawana za zero, to samo ma miejsce w przypadku operacji typu 'add 1 to {_var}', w tym wypadku wartość zmiennej po wykonaniu operacji będzie równa 1 (0 + 1 = 1)</li>
<li>Czasem do zapisu dużej ilości zmiennych typu boolean dobrze jest zastąpić je jedną zmienną typu integer. Jak dobrze wiadomo komputery operują na systemie dwójkowym, tak więc zmienna typu int również będzie zbiorem zer i jedynek, dla przykładu wartość true, false, true, false zapiszemy jako 10, co w systemie dwójkowym (U2, big endian) da nam 00000000000000000000000000001010. W jednej zmiennej typu int zmieścimy maksymalnie 32 zmienne boolean. Może się to doskonale nadać do zapisu dropu na survivalu, gdzie zamiast 10 oddzielnych zmiennych wystarczy jedna.<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">8. Bezpieczeństwo</span><ul>
<li>Zarówno event 'every x seconds' jak i 'wait x seconds' są rejestrowane w timerze skripta, nie opiera się on na czasie systemowym, a na ilości ticków które minęły. Jaka jest różnica? Przyjmuje się że 1 sekunda to 20 ticków, tyle że 20 ticków nie musi trwać sekundy. Każdy z nas kojarzy skrót TPS oznaczający Ticks Per Second, tak więc jeżeli na serwerze będzie 10 TPS to 'wait 1 second' będzie w rzeczywistości czekać 2 sekundy. Praktyczne na żadnym serwerze nie ma idealnie stabilnych 20 TPS, tak więc nasze 'every 12 hours' może na przykład wykonać się po 12 godzinach i 30 minutach, to natomiast może doprowadzić do sytuacji kiedy jakaś akcja zostanie wykonana w ciągu doby tylko 1 raz zamiast planowanych 2.</li>
<li>Każdy tryb na naszej serwerowni jest restartowany codziennie w godzinach najmniejszego ruchu, oznacza to że event 'every 24 hours' nigdy nie powinien się wykonać, ponieważ serwer nie zdąży tyle czasu być online.</li>
<li>Pisząc kod zakładaj że coś może pójść nie tak, postarac się go tak zabezpieczyć żeby w przypadku błędu serwer doznał jak najmniej szkód. Zapewne większość z nas pisząc kod nie zastanawia się nad sytuacją w której baza danych nagle przestanie odpowiadać, a to nie dobrze bo taka sytuacja ma miejsce codziennie w godzinach restartu serwera.</li>
<li>Operując na publicznych obiektach (gracz, ekwipunek, blok, ...) bierz pod uwagę sytuację kiedy zostanie on edytowany w trakcie wykonywanego prze Ciebie kodu. Prykładowo chcemy wykonać kilka operacji na nicku gracza, jednak w trakcie kodu zmieni on swój nick. W przypadku kiedy pierw zapiszemy jego nick do zmiennej a następniej będziemy operować na tej zmiennej wszystko będzie działać prawidłowo, gorzej bedzie się mieć sytuacja w której każde odniesienie do nicku gracza będzie dynamiczne, tak więc za każdym razem będziem korzystać z frazy 'player's name', wtedy nasz kod może zrobić coś czego absolutnie się nie spodziewamy.</li>
<li>Na pewnym etapie życia każdej osoby piszącej skrypty największą zmorą staje się gracz klikający 100cps tym śmiesznym mieczem świetlnym który pożyczył od siostry spod łóżka. Tu Skript okazuje się czasem za wolny, szczególnie w przypadku klikania w przedmioty w GUI, dobrym i niezwykle wygodnym rozwiązaniem wydaje się TuSKe z metodą 'format gui slot %integer% of %player% to run function %function%', nie należy tego jednak mylić z podobną metodą z SkQuery, którą również można zbugować.</li>
<li>POD ŻADNYM POZOREM NIE UŻYWAJ JAKIEGOKOLWIEK EFEKTU FORSUJĄCEGO GRACZA DO WYKONANIA KOMENDY JAKO OPERATOR. CZASEM GRACZ ZOSTAJE OPERATOREM DO MOMNTU KIEDY KTOŚ GO RĘCZNIE NIE ZDEGRADJE SPOWROTEM DO GRACZA.</li>
<li>Jeżeli tworzysz jakieś komendy testowe koniecznie zadeklaruj do niej permissję której nie będzie posiadał żaden gracz. Wciąż pamiętam zabawę w usuwanie światów o nieprzyzwoitych nazwach na betatestach WvsP.<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">9. Optymalizacja</span><br />
Skrypt ma jeden wielki minus w porównaniu do tradycyjnych pluginów pisanych w Javie czy też Kotlinie (teoretycznie można to również zrobić w Pythonie), operuje on na jednym wątku, głównym wątku serwera. Ma to również zaletę, Skript widnieje w timingach, jednak jakim kosztem. Co właściwie oznaca jednowątkowość? Taki program nie jest w stanie wykonywać dwóch operacji jednocześnie, jest wolniejszy, a w przypadku żle napisanego kodu może na stałe zablokować cały wątek czego rezultatem będzie prawdopodobnie crash. Tak więc wszystkie operacje wykonywane w Skripcie są wykonywane naprzemiennie z operacjami rdzenia serwera. Planując jakiekolwiek opercje w Skripcie naszym priorytetem musi być czas wykonywania każdej z nich. Najczęściej patrzymy żeby nasz skrypt nie wykonywał się zbyt często, ale jednocześnie zapominamy jak ważne jest trzymanie się w ramach 50ms czasu jednego ticku.<ul>
<li>Najbardziej pospolitym błędem jest korzystanie z jakichkolwiek połączeń, czyli m. in. odczytanie danych z pliku, załadowanie strony www, czy też wysłanie zapytania do MySQL. Co gorsza nie da się oszacować czasu trwania tych operacji, są one zależne od obciążenia dysku i procesora, ruchu w internecie, obciążenia bazy danych i oczywiście wielkości informacji zwrotnej (callback). Tu warto odnieść się do tematu lagów na MF'owym SkyBlock'u, Aktualnie największe obciążenie generuje asynchroniczny(?) backup. Jak to możliwe skoro jest asynchroniczny? Jest asynchroniczny w połowie. Baza wysp oraz baza UUID jest zapisywana w oddzielnych asychronicznych wątkach, jednak ostatnia, najmniejsza baza zapisywana jest z poziomu głównego wątku, sam plik jest mały, więc teoretycznie nie powinien generować aż takiego obciążenia, tyle że jednocześnie 2 asynchroniczne wątki nadpisują 2 ogromne pliki z danymi wszystkich graczy i wysp którzy odwiedzili ten tryb w przeciągu ostatnich 3 lat. Gdyby ostatni i jednocześnie najmniejszy plik był również zapisywany asynchronicznie, problem najprawdopodobniej przestałby istnieć ponieważ serwer nie musiałby czekać na zakończenie zapisu tego jednego drobnego pliku.</li>
<li>Kolejną częstą praktyką jest kilkukrotne wykonywanie tego samego obciążąjącego kodu, kiedy wystarczy go wykonać raz, ale porządnie. I tu znowu pora na przykład z życia, ale z racji RODO zmienię imię bohatera naszych wydarzeń oraz stwierdzę że <span style="font-style: italic;">Wszystkie wydarzenia i postacie przedstawione w tym przykładzie są fikcyjne i nie mają bezpośredniego odniesienia do rzeczywistości</span>. Otóż kiedyś Koko miał świetny pomysł aby wszystko zapisywać w pliku yaml, niestety żaden dodatek do skripta nie oferował sensownego sposobu przeprowadzania operacji na tego rodzaju plikach, pozostało więc użycie tego najmniej sensownego rozwiązania. Otóż Koko wykonywał w skripcie 4 akcje: pierw sprawdzał czy w pliku istnieje dana ścieżka, następnie sprawdzał wartość danej ścieżki, póżniej usuwał daną ścieżkę tylko po to aby za chwilę ustawić jej nową wartość. Ile razy nasz Koko otworzył plik? Dokładnie 4 razy i tyle samo razy ten plik parsował. Nie dość że w tym przypadku usunięcie ścieżki zupełnie nie ma sensu to ta metoda nigdy nie powinna zostać dopuszczona do użytku na produkcyjnym serwerze. Zawartość pliku YAML musi zostać przekonwertowana w taki sposóc aby dało się z niej korzystać z poziomu kodu, w javie wystarczy to zrobić raz i zapisać jako obiekt na którym następnie można wykonywać operacje odczytu wybranych danych, w skripcie natomiast miało to miejsce przy każdej kolejnej operacji na tym pliku.</li>
<li>Niekiedy zdarza się również że ciężki kod jest wykonywany ze zbyt dużą częstotliwościa, nie dając serwerowi ani chwili wytchnienia i szansy na ponowną stabilizację. W takim wypadku nie ma co się rozpisywać, wystarczy zmniejszyć częstotliwość zasobożernych operacji.</li>
<li>Niektórym developerom zdarza się również zapomnieć że im większy plik, tym dłużej będzie odczytywany i parsowany. Tak więc jeżeli planujecie zapis danych użytkowników w miejscu innym niż skryptowe zmienne, stwórzcie folder w którym będą tworzone oddzielne pliki dla każdego użytkownika, tak jak ma to miejsce w przypadku Essentials'a lub playerdaty.</li>
<li>Skript nie jest i prawdopodobnie nigdy nie będzie całkowitą alternatywą dla pluginów, pisanie całego trybu w Skripcie jest długie, toporne i średnio optymalne. Jeżeli istnieje plugin który spełnia nasze wymagania, najlepiej z niego skorzystać, natomiast jeżeli tylko częściowo spełnia nasze wymagania najlepiej z niego skorzystać, ale brakujące funkcje dorobić w skripcie. Aktualnie WvsP jest jednym z niewielu trybów stworzonych w casach tej złocistej epoki o nazwie "Serwer przeklęty w Skripcie zamknięty". Jego czas ładowania to istna porażka, a próba jakiejkolwiek modernizacji jego silnika może skończyć się katastrofą, a i tak żeby tego dokonać do pracy musiałem zaprząc skript-mirror.</li>
<li>Stwierdzenie że wait 0 tick załatwi wszelkie problemy z synchronicznym wykonywaniem kodu to jedno wielkie kłamstwo. Kod ten nadal jest wykonywany w głównym wątku, tyle że po drodze wywoływana jest funkcja BukkitScheduler::runTaskLater, która rejestruje dalszą część kodu w wewnętrznym timerze Bukkita tylko po to żeby wykonać go w zupelnie tej samej chwili.</li>
<li>Takim samym kłamstwem jest stwierdzenie że wait 1 tick magicznie odciąży serwer. Faktycznie, serwer nie zostanie automatycznie zrestartowany z powodu timeout'u, ale tylko dlatego że będzie w stanie odpowiedzieć co 1 tick po czym spowrotem się zaciąć.</li>
<li>Niewiele osób zdaje sobie również sprawę z tego jak nieoptymalna staje się skriptowa lista zmiennych wraz ze wzrostem jej wielkości. Pętla która do pustej listy będzie dodawać kolejno 10.000 elementów może spowodować restart serwera z powodu timeoutu (60 sekund braku odpowiedzi). Jest to spowodowane charakterystyką skriptowej listy, otóż przed dodaniem kolejnego elementu do listy jest ona iterowana w poszukiwaniu jej ostatniego indeksu aby następną zmienną umieścić na indeksie o jeden większym niż ostatni. To oznacza że dodanie 6 elementów do pustej tablicy będzie wymagało wykonania 0+1+2+3+4+5=15 operacji, tak więc w przypadku 10.000 elementów będzie to 0+1+2+3+...+9997+9998+9999=(9999+0)/2*10000=49.995.000 operacji, chyba każdy przyzna że to dość sporo. Swoją drogą złożoność operacji dodania jednego elementu do listy jest opisana wzorem 0.5*(n-1)(n), a więc jest to złożoność kwadratowa.</li>
<li>Bardziej zaawansowani programiści będą w stanie korzystac z dobrodziejstw skript-reflect, który prócz implementacji podstaw Javy oferuje równiez łatwe w użyciu "sekcje" w których umieszcza się kod, następnie wystarczy daną sekcję wywołać asynchronicznie.</li>
<li>Warto nadmienić że asynchronicznośc nie jest wcale lekarstwem na wszystkie choroby świata, a jedynie jednym z wyborów. Wykonywanie kodu w głównym wątku obciąża serwer, natomiast wykonywanie kodu asynchronicznie obciążą całą maszynę i jest o wiele trudniejsze do wykrycia (patrz: Zabawa z notorycznym wywalaniem Creative MS przez scoreboard). Zycie to sztuka wyborów, wybierz mądrze.</li>
<li>Pozostaje jeszcze kwestia optymalizacji samego procesu ładowania Skripta. Jak już wspominałem im większy plik tym dłużej będzie się on ładował, więc lepiej pisać więcej małych skryptów. Co jednak dziwne czas ładowania skryptu jest również zależny od złożoności linijek, długa linijka będzie się wczytywać dłużej niż ta sama linijka podzielona na kilka mniejszych przy użyciu zmiennych.</li>
<li>Należy również zwracać uwagę aby nie generować niepotrzebnych zmienych na zapas. Fatalnym pomysłem wydaje się tworzenie kilku zmiennych z domyślnymi wartościami jak tylko gracz wejdzie na tryb, jest to nic więcej jak tworzenie śmieciowych zmiennych, które z czasem dadzą o sobie znać.<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">10. Poprawne numerowanie punktów</span><br />
<br />
<br />
<br />
<span style="font-size: x-large;">11. Podsumowanie</span><br />
Na samym wstępie tego zakończenia pragnę wspomnieć że w tekscie ukryłem 40 literówek, potraktujcie to jak szukanie jajek wielkanocnych. Chciałbym również nadmienić że nienawidzę używania polskich odpowiedników angielskich określeń powiązanych z informatyką, cieszcie się grą na waszych mózgach elektronowych z oświetleniem LED.<br />
<br />
A teraz pora przejść do właściwej części zakończenia.<br />
<br />
Po co to? Jak to się mówi "dla potomnych". Starajcie się również sami szukać informacji, jest to dobra metoda nauki oraz zapamiętywania, a jednocześnie rozwija wasze umiejętności poznawcze. Nic nie musi się udawać za pierwszym razem, traktujcie problemy jak kolejne łamigłówki. Co najważniejsze, nie probójcie skakać na głęboką wodę, przeważnie kończy się to jedynie frustracją oraz zastaniem wszystkich chęci do rozwijania się w tym kierunku.]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;">
<br />
<br />
<br />
<img class="postimage" src="https://i.imgur.com/Km1SFDV.png" border="0" alt="[Obrazek: Km1SFDV.png]" /><br />
<br />
Jeżeli jakimś cudem sam, z własnej nieprzymuszonej niczym woli wszedłeś w ten wątek, najprawdopodobniej chcesz się czegoś nauczyć lub po prostu pośmiać z nieudolności autora w zakresie tłumaczenia i nie tylko.<br />
<br />
<br />
<span style="font-size: xx-large;"><span style="color: #FF0000;">UWAGA! | ATTENTION! | ACHTUNG! | ODDAM ŚWIEŻAKA! | ATTENTION! | ¡ATENCIÓN! | ВНИМАНИЕ!</span></span><br />
Do wyciągnięcia wniosków z tego tekstu potrzebna jest umiejętność czytania ze zrozumieniem. Jeżeli czytasz ten tekst ze względu na ogłoszenie o świeżaku wejź w ten <a href="https://mineserver.pl" target="_blank">link</a> i już nigdy nie wracaj do tego wątku.</div>
<br />
Poniżej znajduje się kilka nagłówków streszczających znajdujący się poniżej poniższych nagłówków poniższy niestreszczony tekst:<br />
<br />
<br />
<br />
<span style="font-size: x-large;">1. Dobra dokumentacja</span><br />
W podstawówce/liceum uczysz się z podręczników, w przypadku skryptów zostaje dostępna w internecie dokumentacja. <br />
Pora na interesujące linki:<ul>
<li><span style="font-weight: bold;">Oficjalna dokumentacja Skripta:</span><br />
 <ul>
<li><a href="https://docs.skriptlang.org" target="_blank">https://docs.skriptlang.org</a> - Aktualna dokumentacja.</li>
<li><a href="http://en.njol.ch/projects/skript" target="_blank">http://en.njol.ch/projects/skript</a> - Wersja archaiczna (welcome in 2014!).</li>
<li><a href="https://github.com/SkriptLang/skript-aliases" target="_blank">https://github.com/SkriptLang/skript-aliases</a> - Lista aktualnych aliasów podzielonych na kategorie.<br />
  </li></ul></li>
<li><span style="font-weight: bold;">Baza różnych dodatków do Skripta:</span><br />
 <ul>
<li><a href="https://skripthub.net/docs/" target="_blank">https://skripthub.net/docs/</a> - Osobiście ulubiona wyszukiwarka metod ze skripta oraz dodatków do niego.</li>
<li><a href="https://skunity.com" target="_blank">https://skunity.com</a> - "Istny kombajn", co w tłumaczeniu z języka bananowego oznacza "ma praktycznie wszystko". Posiada własne forum, wyszukiwarkę metod, parser, tutoriale, liczne dodatki do pobrania, oraz "wiele więcej!".<br />
  </li></ul></li>
<li><span style="font-weight: bold;">Fora dla skrypto-maniaków:</span><br />
 <ul>
<li><a href="https://forums.skunity.com" target="_blank">https://forums.skunity.com</a> - Opisane wyżej</li>
<li><a href="https://skript.pl" target="_blank">https://skript.pl</a> - Dla tych którzy mają problemy z angielskim, ale przynajmniej polski znają na poziomie komunikatywnym.</li>
<li><a href="https://www.spigotmc.org/forums/" target="_blank">https://www.spigotmc.org/forums/</a> - Forum raczej dla <del>prawdziwych</del> programistów piszących pluginy, jednak czasem można się napotkać na tematy związane ze skriptem.<br />
  </li></ul></li>
<li><span style="font-weight: bold;">Translator:</span><br />
 <ul>
<li><a href="http://translate.google.pl" target="_blank">http://translate.google.pl</a> - Chyba najpopularniejszy dostępny na rynku translator.</li>
<li><a href="https://pl.bab.la" target="_blank">https://pl.bab.la</a> - Alternatywny tlumacz, w przypadku tłumaczenia poradników ze skripta różnicy nie zrobi, ale lepiej poradzi sobie z "prawdziwymi" angielskimi zwrotami w tłmaczeniu na polski.<br />
  </li></ul></li>
<li><span style="font-weight: bold;">Google:</span><br />
 <ul>
<li><a href="https://google.com" target="_blank">https://google.com</a> - Google. Tak, tu możesz szukać swojego problemu który najpewniej został już rozwiązany przez dwóch hindusów i jednego azjatę.<br />
  </li></ul>
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">2. Odpowiednie wyposażenie</span><ul>
<li><span style="font-weight: bold;"><a href="https://github.com/SkriptLang/Skript/releases" target="_blank">Skript</a></span> - O ile każdy z poziomem inteligencji wyższym od przeciętnej małpy domyśla się że do pisania i testowania skryptów potrzebny jest Skript, tyle dobór wersji jest już bardziej problematyczny. Ostatnią wersją która wspiera silnik 1.8 jest Skript <del>2.2-dev37c</del>, jednak wersja ta zawiera krytyczny błąd związany z czyszczeniem starych zmiennych tymczasowych, przez co serwerowi potrafiło zabraknąć w połowie dnia RAMu, tak więc tej wersji kategorycznie się pozbywamy. Znacznie bezpieczniejsza jest wersja Skript 2.2-dev36, która aktualnie jest wykorzystywana na większości trybów z silnikiem 1.8 na naszej serwerowni. W przypadku pozostałych wersji silnika najlepiej korzystać z najnowszej wersji Skripta (aktualnie Skript 2.5.3). W przypadku pisania skryptu na pod konkretny tryb najlepiej pierw zapytać kogoś z dostępem do plików jaka wersja Skripta jest na nim zainstalowana oraz jakie dodatki do niego są wykorzystywane. Pisanie skryptu na tej samej wersji Skripta co na serwerze docelowym powinno zminimalizować do zera prawdopodobieństwo niekompatybilności kodu.</li>
<li><span style="font-weight: bold;"><a href="https://papermc.io/downloads" target="_blank">Własny serwer do testów</a></span> - Nie mam zamiaru opisywać tutaj procesu stawiania serwera na własnym komputerze, jest od tego multum poradników w internecie. Najlepiej skorzystać z forka Spigota o nazwie Paper.</li>
<li><span style="font-weight: bold;"><a href="https://notepad-plus-plus.org/downloads/" target="_blank">Notepad++</a></span> - Jest to według mnie najwygodniejsze narzędzie do edycji skryptów, umożliwia uzupelnianie wsześniej użytych fraz, automatycznie dodaje wcięcia w nowych linijkach i pokazuje numery kolejnych linii, a dodatkowo posiada wsparcie dla znaków specjalnych (np. '\n', '\r') oraz regexa (np. '[0-9A-Za-z]*')</li>
<li><span style="font-weight: bold;"><a href="https://google.com" target="_blank">Google</a></span> - Google<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">3. Zrozumienie założeń</span><br />
<span style="color: red;">Zadaniem tego akapitu w żadnym wypadku <span style="font-weight: bold;">nie jest</span> wytłumaczenie kolejnych elementów Skripta, ma on jedynie pomóc w ogólnym <span style="font-weight: bold;">zrozumieniu</span> jego idei oraz sposobu działania.</span><br />
<br />
Jak wiadomo każdej <span style="font-weight: bold;">akcji</span> towarzyszy <span style="font-weight: bold;">reakcja</span>. Stwierdenie to ma racje bytu zarówno w fizyce, polityce, jak i Skripcie.<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>on jump:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- AKCJA (EVENT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;send "Gdyby kózka nie skakała to by nóżki nie złamała"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#92;<br />
&nbsp;&nbsp;&nbsp;&nbsp;apply slowness 2 to player&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;set {_random} to random integer between 1 and 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| &lt;- REAKCJA<br />
&nbsp;&nbsp;&nbsp;&nbsp;if {_random} is bigger than 9:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;damge player by 1 hearth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/</code></div></div>
<br />
Tak więc nic nie dzieje się bez powodu (nie licząc przebłysków inteligencji trawy, tego nikt się nie spodziewa). Reakcję natomiast można podzielić na kolejne podkategorie: <span style="font-weight: bold;">warunki</span> oraz <span style="font-weight: bold;">efekty</span>. Myślę że nie trzeba nikomu tłumaczyć co oznacza co, jednak lepiej dmuchać na zimne (w końcu link do tego wątku będzie najbardziej prawdopodobną odpowiedzią z mojej strony). Można reagować bezmyślnie na każdą akcje lub postawić kilka warunków, które mają na celu sprecyzowanie w jakiej konkretnie sytuacji ma się wykonać dany efekt.<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;send "Gdyby kózka nie skakała to by nóżki nie złamała"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- EFEKT (EFFECT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;apply slowness 2 to player&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- EFEKT<br />
&nbsp;&nbsp;&nbsp;&nbsp;set {_random} to random integer between 1 and 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- EFEKT<br />
&nbsp;&nbsp;&nbsp;&nbsp;if {_random} is bigger than 9:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- WARUNEK (CONDITION)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;damge player by 1 hearth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;- EFEKT</code></div></div>
<br />
Oczywiście głupotą byłoby gdyby efekty i warunki były statyczne, korzystają one ze zmiennych. Ale czym w takim razie jest <span style="font-weight: bold;">zmienna</span>? Można powiedzieć że to pudełko do którego można coś włożyć a następnie wykorzystać w jakimś efekcie lub warunku. Istnieje kilka rodzajów takich pudełek a różnią się one sposobem zapisu w kodzie oraz funkcjonalnością.<br />
W przypadku zmiennej o kreatywnej nazwie <span style="color: aqua;"><span style="font-weight: bold;">ZMIENNA</span></span> będą to:<ul>
<li><span style="font-weight: bold;">{<span style="color: aqua;">ZMIENNA</span>}</span> - jest to zmienna globalna, to znaczy że istnieje i będzie istnieć aż do momentu kiedy nie zostanie usunięta. Nie przeszkodzi jej nawet restart serwera, jest zapisywana w specjalnym pliku</li>
<li><span style="font-weight: bold;">{_<span style="color: aqua;">ZMIENNA</span>}</span> - jest to zmienna tymczasowa, można powiedzieć że jest to pudełko jednorazowe, które po ukończeniu reakcji po prost się rozpadnie. Jest ona dostępna w obrębie pojedyńczego eventu, a każde kolejne jego wywołanie resetuje zmienną</li>
<li><span style="font-weight: bold;">{<span style="color: aqua;">ZMIENNA</span>::*}</span> - jest to właściwie to samo co {ZMIENNA}, tyle że w tym przypadku mamy do czynienia z listą zmiennych, a więc byłoby to pudełko z wieloma przegródkami. Możemy uzyskać dostęp do pojedyńczej zmiennej zastępując * na końcu identyfikatorem danej przegródki np. {ZMIENNA::1} lub {ZMIENNA::szumielxd}</li>
<li><span style="font-weight: bold;">{_<span style="color: aqua;">ZMIENNA</span>::*}</span> - jest to po prostu fuzja zmiennej tymczasowej ({_ZMIENNA}) oraz listy ({ZMIENNA::*})<br />
</li></ul>
<br />
Oczywiście na początku swojego istnienia pudełko (nie mylić z kapeluszem magika) jest puste, dopiero później chowamy do niego jego przyszłą zawartość, analogicznie aby zmienna nie zwracała nam pięknego &lt;none&gt; musimy ją "nasetować", a robi się to dośc trywialnie<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>set {_zmienna} to "Jestem tekstem zapisanym do zmiennej"</code></div></div>
<br />
Ciekawym może wydać się fakt że <span style="font-weight: bold;">nazwa zmiennej również może być zmienną</span>. W poniższym przykładzie wartość zmiennej {_nick} będzie równa "To mój nick"<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>set {_var} to "NICK"<br />
set {ZMIENNA.NICK} to "To mój nick"<br />
set {_nick} to {ZMIENNA.%{_var}%}</code></div></div>
<br />
Analogicznie zmiennych można używać w tekście. W tym przypadku w konsoli powinna się wyświetlić fraza "Wartość zmiennej {_nick} to: kebab"<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>set {_nick} to "kebab"<br />
send "Wartość zmiennej {_nick} to: %{_nick}%" to console</code></div></div>
<br />
Kilka sugestii:<ul>
<li>Zmienne globalne są GLOBALNE. Uważaj z ich nazewnictwem, inaczej pewnego pięknego dnia zdziwisz się kiedy Twoja zmienna o nazwie {zmienna} zwróci Ci kolor owcy zamiast wartości Twojego portfela. Dobrą prakyką jest nazywanie zmiennej w taki sposób aby mówiła nam co powinna przechowywać oraz w jakim miejscu kodu możemy się jej spodziewać. Przykładowo {BOSKIE.ROG.CZAS::*} brzmi jak idealna nazwa do przechowywania czasu ostatniego użycia rogu dusz, który jest jednym z boskich przedmiotów na WD.</li>
<li>Jeżeli planujesz w przyszłości pracować w IT nazywaj zmienne po angielsku. Nie ma sensu uczyć się złego nawyku którego z czasem będziesz musiał się pozbyć. Aktualnie nawet małe studia GameDev nie dość że piszą kod po angielsku (tyczy się to również komentarzy), to jeszcze tworzą dokuemtację w tym właśnie języku.</li>
<li>Zmiennych globalnych używaj tylko w ostateczności. Każda zmienna to dodatkowa linijka pliku do wczytania i zapisu, kilkaset tysięcy zmiennych może negatywnie wpłynąć na czas ładowania serwera oraz może powodować spadki TPS w czasie zapisywania zmiennych do pliku (backup domyślnie wykonuje się co 3 godziny)</li>
<li>Zmienne globalne zapisuj WIELKIMI LITERAMI. W ten sposób na kilometr rozpoznasz zmienną globalną, a dodatkowo jest to często przyjmowana przez programstów praktyka.<br />
</li></ul>
<br />
Istnieje też coś co z jednej strony jest zmienną z drugiej zaś jakimś dziwnym tworem, a jest to <span style="font-weight: bold;">metadata</span>. Jest ona przypisana do entity, metadata gracza jest zaś usuwana tylko przy restarcie serwera, tak więc idealnie nadaje się na zapisywanie w niej takich perełek jak czas do ponownego użycia boskiego przedmiotu, czy też drużyna w której aktualnie się znajduje gracz. W ten sposób nie obciążamy ddatkowo zmiennych globalnych, a jednocześnie możemy odczytać jej wartość z dowolnego miejsca w skrypcie.<br />
Operacje na metadacie są dosyć proste, tradycyjnie zaprezentuje to na przykładzie metadaty o nazwie <span style="color: aqua;">ZMIENNA</span>:<ul>
<li>set metadata value "<span style="color: aqua;">ZMIENNA</span>" of player to "wartość"</li>
<li>set {_m} to metadata value "<span style="color: aqua;">ZMIENNA</span>" of player</li>
<li>if player has metadata value "<span style="color: aqua;">ZMIENNA</span>":</li>
<li>clear metadata value "<span style="color: aqua;">ZMIENNA</span>" of player<br />
</li></ul>
<br />
Chyba każdy przyzna że ustawianie wartości zmiennej do statycznej liczby czy też tekstu jest nudne i bezcelowe (choć są od tego wyjątki), na szczęście skrypt daje nam wyrażenia. Czym jest <span style="font-weight: bold;">wyrażenie</span> najlepiej wytłumaczyć na przykładzie. Jest sobie Marcin, Marcin posiada imię, ma na imię Marcin, a więc fraza "Marcin" to imię Marcina. W przypadku skripta byłoby to wyrażenie player's name. Mogę to wykorzystać na 2 sposoby: albo zapisać do zmiennej, albo wysłać na chacie.<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>set {_p} to player<br />
set {_nick} to {_p}'s name&nbsp;&nbsp;&nbsp;&nbsp;# 1<br />
broadcast "%{_p}'s name%"&nbsp;&nbsp;&nbsp;&nbsp; # 2</code></div></div>
<br />
Jednym z ostatnich podstawowych tematów jest <span style="font-weight: bold;">iteracja</span>. Chciałbyś wysłać 10 wiadomości na chacie a treść każdej kolejnej do numer od 1 do 10?<br />
Możesz to zrobić tak:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>broadcast "1"<br />
broadcast "2"<br />
broadcast "3"<br />
broadcast "4"<br />
broadcast "5"<br />
broadcast "6"<br />
broadcast "7"<br />
broadcast "8"<br />
broadcast "9"<br />
broadcast "10"</code></div></div>
Abo tak:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>loop 10 times:<br />
&nbsp;&nbsp;&nbsp;&nbsp;broadcast "%loop-number%"</code></div></div>
<br />
Dodatkowo iterować można całe listy zmiennych, a jest to banalnie proste. Taka iteracja daje nam dwie dodatkowe zmienne: <span style="font-weight: bold;">loop-index</span> oraz <span style="font-weight: bold;">loop-value</span>. Łatwo można się domyśleć że pierwsza jest naszym indexem zmiennej w liście, a druga zmienną we własnej osobie.<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>loop {LISTA_ZMIENNYCH::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;broadcast "%loop-index%. %loop-value%"</code></div></div>
<br />
Nietypowym wyzwalaczem kodu jest <span style="font-weight: bold;">komenda</span>, o ile zwykły event deklarujemy za pomocą jednej linijki kodu, o tyle komendy rejestrowane są w inny sposób:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /test &lt;player&gt;:<br />
&nbsp;&nbsp;&nbsp;&nbsp;aliases: t, tst<br />
&nbsp;&nbsp;&nbsp;&nbsp;description: To jest testowa komenda<br />
&nbsp;&nbsp;&nbsp;&nbsp;usage: /test &lt;nick&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;executable by: players, console<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission: sk.command.test<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission-message: Nie możesz użyć tej komendy<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%sender% wysłał do Ciebie testową wiadomość"</code></div></div>
Myślę że każdy kto zna angielski jest w stanie zrozumieć która linijka do czego służy. W razie jakichkolwiek problemów tu jest to dość szczegółowo wytłumaczone: <a href="https://dev.bukkit.org/projects/skript/pages/custom-commands" target="_blank">https://dev.bukkit.org/projects/skript/p...m-commands</a>. Ten punkt po prostu należało poruszyć i odhaczyć, warto natomiast skorzystać z okazji i zasugerować w jaki sposób w miarę "profesjonalnie" deklarować komendy. Dobrze jest każdą komendę zaopatrzyć w odpowiednią permissję, każdorazowo inną, w ten sposób można łatwo manimupować dostępem do komendy, i zablokować ją w przypadku wykrycia jakiś nieprawidłowości. W ten sposób również sprawiamy że jeżeli gracz nie będzie miał dostępu do tej komendy nie będzie w stanie jej zobaczyć wpisując '/' i klikając TAB. Pozornie TAG `executable by` zdaje się bezużyteczny, jednak jail pzekonał mnie że czasem coś musi być idiotoodporne z każdej strony również dla naszego dobra. To że stworzyłeś daną komendę nie oznacza że ktoś inny jej nie wykorzysta, a co gorsza w sposób którego się nie spodziewałeś, tak jak na przykład konsola probująca się teleportować do swojej celi notorycznie wypluwając NullPointerExcetion w logach. Tak więc jeżeli tworzysz komendę tylko dla graczy dobrze jest to zadeklarowaś dodając TAG `executable by: players` i analogicznie w przypadku komend tylko dla konsoli.<br />
Najczęściej moje komendy mają taki format:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /teleport [&lt;offline player&gt;] [&lt;text&gt;]:<br />
&nbsp;&nbsp;&nbsp;&nbsp;aliases: tp<br />
&nbsp;&nbsp;&nbsp;&nbsp;permision: sk.command.teleport<br />
&nbsp;&nbsp;&nbsp;&nbsp;executable by: players<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if arg 1 is online:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;teleportPlayer(arg 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% Podaj nick gracza"</code></div></div>
Jak można zauważyć nie ustawiam informacji o sposobie użycia komendy przy jej deklaracji, zamiast tego ręcznie wysyłam wiadomość o niewłaściwym jej użyciu, jest to najpopularniejsza technika wsród developerów pluginów, sekcja usage jest raczej traktowana jako pozostałość po komendach z vanilli.<br />
<br />
I nadeszła pora na ostatni nietypowy event, a jest to <span style="font-weight: bold;">funkcja</span>. Pisanie jednego długiego bloku kodu jest dość niewygodne, nieczytelne i często syzyfowe, słabego osobnika może nieraz doprowadzić do ciężkiej zapaści (tak, mam tu na myśli pokolenie "Cześć, mam depresje i lubie żyletki"). Dlatego takowy kod najlepiej jest podzielić na funkcje, ma ona również inną umiejętność, otóż potrafi zwracać wartości. Poniżej znajdują się 2 funkcje wraz z deklaracją, pierwsza zwraca wartość, druga natomiast ma po prostu wykonać jakiś kod. Na pierwszej funkcji można również wytłumaczyć szczegóły deklaracji funkcji. Otóż deklaracja zaczyna się frazą 'function', a następnie użytkownik deklaruje nazwę tej funkcji. Każda funkcja posiada nawias okrągły w którym deklaruje się jej argumenty oddzelone przecinkami w postaci 'nazwaZmiennej: <a href="https://skriptlang.github.io/Skript/classes.html" target="_blank">typ</a>'. W przypadku kiedy funkcja ma coś zwracać należy również zadeklarować typ zwracanej wartości, w tym celu po nawiasie należy dodać frazę ' :: <a href="https://skriptlang.github.io/Skript/classes.html" target="_blank">typ</a>'. Należy nadmienić że funkcje działają globalnie, tak więc funkcja zadeklarowana w skrypcie a.sk może zostać użyta w skrypcie b.sk<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /test:<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission: sk.command.test<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_rand} to random integer between 1 and 10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_min} to minimum({_rand}, 5)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendAds({_min})<br />
<br />
function minimum(i1: integer, i2: integer) :: integer:<br />
&nbsp;&nbsp;&nbsp;&nbsp;if {_i1} is bigger than {_i2}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return {_i2}<br />
&nbsp;&nbsp;&nbsp;&nbsp;else:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return {_i1}<br />
<br />
function sendAds(amount: integer):<br />
&nbsp;&nbsp;&nbsp;&nbsp;loop {_amount} times:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;broadcast "&amp;b"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;broadcast "&amp;bNaukowcy go nienawidzą! Wymyślił lekarstwo na głupotę!"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;broadcast "&amp;dKliknij aby zamówić darmową próbkę!"</code></div></div>
<br />
<br />
<br />
<span style="font-size: x-large;">5. Dodatki których używam</span><ul>
<li><a href="https://github.com/szumielxd/PlaceholderSK/releases" target="_blank">PlaceholderSK</a> - Znacznie zoptymalizowany pod kątem asynchronicznych zapytań dodatek umożliwiający stworzenie własnych placeholderów wykorzystywanych przez PlaceholderAPI.</li>
<li><a href="https://www.spigotmc.org/resources/skbee-skript-addon.75839/" target="_blank">SkBee</a> - Jest to hybryda kilku innych dodatków tego samego autora, znajdziemy tu łatwą edycję NBT, tworzenie nowych receptur, scoreboard, możliwość wklejania własnych struktur.</li>
<li><a href="https://www.spigotmc.org/resources/skript-java-addon-skellett.34361" target="_blank">Skellett</a> - Aktualnie sporo z funkcji Skelletta zostało zaimplementowanych do Skripta, jednak nadal ma się on czym pochwalić. W przypadku wersji silnika pre-flattering (1.8-1.12.2) najlepiej używać wersji Skellett 1.9.6b.</li>
<li><a href="https://www.spigotmc.org/resources/skquery-1-9-1-16.36631/" target="_blank">SkQuery</a> - Dość mocno rozbudowuje składnię Skripta o bardziej przyjazne dla programistów stwierdzenia, wraz ze Skelletem stanowi sporą bibliotekę przydatnych metod.</li>
<li><a href="https://github.com/btk5h/skript-db/releases" target="_blank">skript-db</a> - Umożliwia wykonanie zapytania do zewnętrznej bazy MySQL korystając z szybkiego klienta HikariCP</li>
<li><a href="https://www.spigotmc.org/resources/skript-reflect.82259/" target="_blank">skript-reflect</a> - Wprowadza do Skripta dość rozbudowaną implementację Javy, tym samym pozwalając korzystać z większości dobrodziejstw API Bukkita oraz zainstalowanych pluginów.</li>
<li><a href="https://forums.skunity.com/resources/skutilities.26/" target="_blank">skUtilities</a> - Jak sama nazwa mówi: zbiór różnorakich narzędzi które okażą się przydatne w najmniej spodziewanym momencie.</li>
<li><a href="https://forums.skunity.com/resources/thatpacketaddon.847/" target="_blank">ThatPacketAddon</a> - Można powiedzieć że jest to dość kulawy adapter ProtocolLib dla Skripta, jednak ciężko postarać się o coś lepszego w tym zakresie.</li>
<li><a href="https://github.com/szumielxd/TuSKe/releases" target="_blank">TuSke</a> - Głównie przydatny przy tworzeniu customowych gui, których nie będzie dało się skopiować klikając więcej niż 7cps, prócz tego można nim tworzyć własne receptury oraz enchanty, posiada również multum bliżej niezgrupowanych metod.<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">6. Dobre praktyki</span><ul>
<li>Jeżeli tworzysz w skripcie coś większego niż pojedyńczą blokade dropu przedmiotów z mobów dobrze jest podzielić jeden wielki skrypt na kilka mniejszych, a najlepiej wrzucić jeszcze do oddzielnego folderu. W ten sposób znacznie zmniejszysz prawdopodobieństwo zgubienia się we własnych skryptach, a sam kod będzie łatwiej przeładować, mniejszy plik to mniej kodu do wczytania i parsowania.<br />
Tu przykład z WvsP:<br />
<img class="postimage" src="https://i.imgur.com/PjwyOtE.png" border="0" alt="[Obrazek: PjwyOtE.png]" /><br />
A tu w mniejszej skali z WD:<br />
<img class="postimage" src="https://i.imgur.com/ad3iaXz.png" border="0" alt="[Obrazek: ad3iaXz.png]" /></li>
<li>Niektóre tryby/skrypty wrzucane są na więcej niż jeden serwer. Na większości trybów do których mam dostęp stworzyłem plik o nazwie _main.sk w którym umieszczam podstawowe zmienne, takie jak prefix na chacie czy też adres url serwera. W ten sposób migracja skryptu jest o wiele łatwiejsza ponieważ bez względu na serwer poprawne dane będzie pobierać ze zmiennej<br />
<img class="postimage" src="https://i.imgur.com/XZ45Pa4.png" border="0" alt="[Obrazek: XZ45Pa4.png]" /></li>
<li>Piszesz długi i skomplikowany kod? Dodaj do niego komentarze! Tak nieidealne istoty jak członkowie naszej ukochanej społeczności mają skłonność do zapominania rzeczy które przez pewien czas nie były im potrzebne, to oznacza że kiedyś odczujesz potrzebę powrotu do swojego starego kodu, który bez żadnych opisów nie będzie niczym innym jak spaghetti.</li>
<li>Recykling do przyszłość nie tylko w ekologii. Raz napisany kod może się przydać w więcej niż jednym miejscu. Nieraz trafić można na funkcję która robi coś ciekawego i od razu wiadomo że będzie można ją wykorzystać w więcej niż jednym miejscu. Wtedy warto takową funkcję wrzucić do pliku o nazwie utils.sk lub podobnej, plik ten będzie z nami podróżować na kolejne nasze place zabaw, gdzie nieraz oszczędzi nam czasu na klepaniu kolejny raz tego samego kodu. W moim przypadku jest już cały folder.<br />
<img class="postimage" src="https://i.imgur.com/ssmkGKv.png" border="0" alt="[Obrazek: ssmkGKv.png]" /></li>
<li>funkcje nazywaj intuicyjnie, działają one globalnie, tak więc w przypadku znalezienia w kodzie funkcji o nazwie kosmicznyKebab() dość ciężko może być zlokalizować miejsce w którym ta funkcja została zadeklarowana. Dobrym wyjściem wydaje się poprzedzać nazwę funkcji nazwą pliku w którym się znajduje (przykład: stats_loadPlayer()), w ten sposób wystarczy otworzyć odpowiedni plik i kliknąć ctrl+f. Wśród programistów powstał również zwyczaj zapisywania nazw zmiennych w specjalnym formacie tzw. camelCase (pierwsze litery kolejnych słów są Wielkie z wyłączeniem pierwszego słowa).<br />
<br />
</li></ul>
<br />
<br />
<span style="font-size: x-large;">7. Sztuczki</span><ul>
<li>Skrypty ładują się alfabetycznie według nazwy, jeżeli chcesz żeby jakiś skrypt załadował się przed innymi po prostu dodaj '_' na początku jego nazwy. Okazuje się to przydatne kiedy Skript zaczyna się pruć o nieistniejącą funkcję która tak naprawde istnieje, ale w pliku o którym Skript jeszcze nie wie.</li>
<li>Nowsze wersje Skripta (2.3+) mają całkowicie przebudowany system zmiennych oraz ich recyklngu, przez co są usuwane po opuszczeniu oryginalnego wątku, tak jak ma to miejsce w przypadku dodatku <span style="font-weight: bold;">skript-db</span> gdzie po wykonaniu jakiegokolwiek połączenia z bazą wszystkie nasze zmienne tymczasowe stają się puste. Problem ten można rozwiązać na 2 sposoby.<br />
<ul>
<li>Pierwszy polega na stworzeniu jednoelementowej listy, którą następnie będziemy iterować, zmienna zostanie usunięta, jednak loop-value jakimś cude zostaje nienaruszone, najwiekszym problemem jest tu brak możliwości ponownego ustawienia wartości loop-value oraz fakt że każda kolejna zmienna z której chcemy korzystać to kolejna iteracja, tak więc mamy kilka różnych loop-value (loop-value-1, loop-value-2, ...).<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;function updatePlayer(p: player, statType: text):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add {_p} to {_list1::*}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add {_statType} to {_list2::*}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop {_list1::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop {_list2::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execute "SELECT `value` FROM `statystyki` WHERE `username` = %unsafe loop-value-1% AND `stat_type` = %unsafe loop-value-2%" in {STATYSTYKI.SQL} and store result in {_result::*}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {STATYSTYKI.PLAYER::%loop-value-1%::%loop-value-2%} to {_result::value::1}</code></div></div>
</li>
<li>Drugi natomiast wymaga wykorzystania dodatku o nazwie skript-reflect (nie zadziała z skript-mirror), który umożliwia asynchroniczne wykonanie kodu co pozwoli nam na wykonanie zapytania do bazy w tym samym watku co reszta skryptu.<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;function updatePlayer(p: player, statType: text):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create new section with {_p}, {_statType} and store in {_section}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execute synchronously "SELECT `value` FROM `statystyki` WHERE `username` = %unsafe {_p}% AND `stat_type` = %unsafe {_statType}%" in {STATYSTYKI.SQL} and store result in {_result::*}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {STATYSTYKI.PLAYER::%{_p}%::%{_statType}%} to {_result::value::1}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run section {_section} async with {_p}, {_statType}</code></div></div>
	</li></ul></li>
<li>Niektóre wersje Skripta mają problem z poprawną interpretacją typu zmiennej, co może czasem sprawić że zmienna będzie po prostu odczytywana przez funkcję/wyrażenie/efekt/chomika w betoniarce/warunek jako &lt;none&gt;, a tu krótki przykład:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /vegeterrorysta:<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission: op<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_var} to 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add 1 to {_var}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jedzWarzywa({_var})<br />
<br />
function jedzWarzywa(i: integer):<br />
&nbsp;&nbsp;&nbsp;&nbsp;broadcast "Zjedzono warzyw: %{_i}%"</code></div></div>
W niektórych wersjach funkcja otrzyma informację że zmienna {_var} jest typu <span style="font-weight: bold;">number</span> zamiast <span style="font-weight: bold;">integer</span>, a skoro typ zmiennej nie jest właściwy to argument przybierze wartość &lt;none&gt;. Jakie jest w takim razie rozwiązanie?<br />
Banalnie:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>command /vegeterrorysta:<br />
&nbsp;&nbsp;&nbsp;&nbsp;permission: op<br />
&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_var} to 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add 1 to {_var}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jedzWarzywa("%{_var}%" parsed as integer)<br />
<br />
function jedzWarzywa(i: integer):<br />
&nbsp;&nbsp;&nbsp;&nbsp;broadcast "Zjedzono warzyw: %{_i}%"</code></div></div>
</li>
<li>Nie bójmy się korzystać z faktu że ustawionej zmiennej nie nadpiszemy wartością &lt;none&gt;, ale jednocześnie bójmy się faktu że wartość &lt;none&gt; nie nadpisze nam zmiennej.<br />
Pora na 2 krótkie przykłady:<br />
<ul>
<li>Możemy to wykorzystać do dynamicznego przypisywania celu naszych działań. Poniżej znajduje się prosta komenda na sprawdzanie stanu konta, może ją wykonać zarówno gracz jak i konsola. W przypadku kiedy gracz wykona tą komendę zmienna player będzie ustawiona, jednak nie w przypadku konsoli. Pierwszy argument tej komendy nie jest obowiązkowy, jednak w momencie kiedy zostanie podany nadpisze on wartość zmiennej {_p}, w ten sposób zamiast sprawdzać stan konta gracza który wykonał komendę sprawdzony zostanie stan konta gracza którego nick został podany jako argument. W przypadku kiedy komendę wykona konsola i nie poda nicku w argumencie wartość zmiennej {_p} pozostanie niezmienna, czyli &lt;none&gt;.<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;command /balance [&lt;player&gt;] [&lt;text&gt;]:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aliases: bal<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;permission: sk.command.balance<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trigger:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_p} to player<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_p} to arg 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if {_p} is not set:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% &amp;cJako konsola musisz podać nick gracza."<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% &amp;7Gracz &amp;b%{_p}% &amp;7posiada &amp;b%{_p}'s balance%&#36;&amp;7."</code></div></div>
</li>
<li>Można się na tym również przejechać i to bardzo prosto:<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;loop {_list::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_p} to loop-value parsed as player<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add 10 to {_p}'s balance<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% &amp;7Otrzymałeś wypłatę w wysokości &amp;b10&#36;&amp;7!"</code></div></div>
	I tu pojawia się problem. Co w momencie kiedy jakiś nick z listy jest offline? wtedy 'loop-value parsed as player' zwróci none, a więc zmienna {_p} pozostanie z wartością z poprzedniej iteracji, a więc pewien szczęśliwiec dostanie co najmniej 2 wypłaty. Na szczęście rozwiązanie jest trywialne<br />
	<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;loop {_list::*}:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete {_p}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set {_p} to loop-value parsed as player<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if {_p} is set:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add 10 to {_p}'s balance<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send "%{prefix}% &amp;7Otrzymałeś wypłatę w wysokości &amp;b10&#36;&amp;7!"</code></div></div>
	</li></ul></li>
<li>Zadbajmy o wygodę użytkownika, każdemu czasem zdarzy się wpisać komendę z dodatkowym, zupełnie niepotrzebnym argumentem. Przykład? '/day y'. Rozwiązanie? dodajmy na końcu deklaracji komendy dodatkowy, nieobowiązkowy argument typu tekstowego, w ten sposób podanych przez gracza nigdy nie będzie za dużo. A więc zamiast 'command /day:' wpisujemy 'command /day [&lt;text&gt;]:'</li>
<li>Zmienna typu boolean (prawda/fałsz) tak naprawde może przyjąć 3 wartości: true, false oraz &lt;none&gt;. W przypadku Skripta jest to raczej mało istotne, ale w przypadku silnie typowanych języków jak Java jest to niezwyle przydatne dla leniwych programistów (i tu wyszedł nam wiecznie prawdziwy epitet "leniwy programista")</li>
<li>SkQuery udostępnia nam niejako możliwość ustawienia domyślnej wartości zwracanej przez zmienną w przypadku kiedy jest ona pusta. Zastosowanie jest banalnie proste: 'send "Zabiłeś %{STATYSTYKI.KILLS::%player%}?0% przeciwników" to player'. W przypadku kiedy zmienna będzie równa &lt;none&gt; gracz otrzyma wiadomość 'Zabiłeś 0 przeciwników', w przeciwnym wypadku zero zostanie zastąpione wartością zmiennej.</li>
<li>Ewenementem Skripta jest możliwośc operowania na pustych zmiennych. W przypadku operacji arytmetycznych jest ona po prostu uznawana za zero, to samo ma miejsce w przypadku operacji typu 'add 1 to {_var}', w tym wypadku wartość zmiennej po wykonaniu operacji będzie równa 1 (0 + 1 = 1)</li>
<li>Czasem do zapisu dużej ilości zmiennych typu boolean dobrze jest zastąpić je jedną zmienną typu integer. Jak dobrze wiadomo komputery operują na systemie dwójkowym, tak więc zmienna typu int również będzie zbiorem zer i jedynek, dla przykładu wartość true, false, true, false zapiszemy jako 10, co w systemie dwójkowym (U2, big endian) da nam 00000000000000000000000000001010. W jednej zmiennej typu int zmieścimy maksymalnie 32 zmienne boolean. Może się to doskonale nadać do zapisu dropu na survivalu, gdzie zamiast 10 oddzielnych zmiennych wystarczy jedna.<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">8. Bezpieczeństwo</span><ul>
<li>Zarówno event 'every x seconds' jak i 'wait x seconds' są rejestrowane w timerze skripta, nie opiera się on na czasie systemowym, a na ilości ticków które minęły. Jaka jest różnica? Przyjmuje się że 1 sekunda to 20 ticków, tyle że 20 ticków nie musi trwać sekundy. Każdy z nas kojarzy skrót TPS oznaczający Ticks Per Second, tak więc jeżeli na serwerze będzie 10 TPS to 'wait 1 second' będzie w rzeczywistości czekać 2 sekundy. Praktyczne na żadnym serwerze nie ma idealnie stabilnych 20 TPS, tak więc nasze 'every 12 hours' może na przykład wykonać się po 12 godzinach i 30 minutach, to natomiast może doprowadzić do sytuacji kiedy jakaś akcja zostanie wykonana w ciągu doby tylko 1 raz zamiast planowanych 2.</li>
<li>Każdy tryb na naszej serwerowni jest restartowany codziennie w godzinach najmniejszego ruchu, oznacza to że event 'every 24 hours' nigdy nie powinien się wykonać, ponieważ serwer nie zdąży tyle czasu być online.</li>
<li>Pisząc kod zakładaj że coś może pójść nie tak, postarac się go tak zabezpieczyć żeby w przypadku błędu serwer doznał jak najmniej szkód. Zapewne większość z nas pisząc kod nie zastanawia się nad sytuacją w której baza danych nagle przestanie odpowiadać, a to nie dobrze bo taka sytuacja ma miejsce codziennie w godzinach restartu serwera.</li>
<li>Operując na publicznych obiektach (gracz, ekwipunek, blok, ...) bierz pod uwagę sytuację kiedy zostanie on edytowany w trakcie wykonywanego prze Ciebie kodu. Prykładowo chcemy wykonać kilka operacji na nicku gracza, jednak w trakcie kodu zmieni on swój nick. W przypadku kiedy pierw zapiszemy jego nick do zmiennej a następniej będziemy operować na tej zmiennej wszystko będzie działać prawidłowo, gorzej bedzie się mieć sytuacja w której każde odniesienie do nicku gracza będzie dynamiczne, tak więc za każdym razem będziem korzystać z frazy 'player's name', wtedy nasz kod może zrobić coś czego absolutnie się nie spodziewamy.</li>
<li>Na pewnym etapie życia każdej osoby piszącej skrypty największą zmorą staje się gracz klikający 100cps tym śmiesznym mieczem świetlnym który pożyczył od siostry spod łóżka. Tu Skript okazuje się czasem za wolny, szczególnie w przypadku klikania w przedmioty w GUI, dobrym i niezwykle wygodnym rozwiązaniem wydaje się TuSKe z metodą 'format gui slot %integer% of %player% to run function %function%', nie należy tego jednak mylić z podobną metodą z SkQuery, którą również można zbugować.</li>
<li>POD ŻADNYM POZOREM NIE UŻYWAJ JAKIEGOKOLWIEK EFEKTU FORSUJĄCEGO GRACZA DO WYKONANIA KOMENDY JAKO OPERATOR. CZASEM GRACZ ZOSTAJE OPERATOREM DO MOMNTU KIEDY KTOŚ GO RĘCZNIE NIE ZDEGRADJE SPOWROTEM DO GRACZA.</li>
<li>Jeżeli tworzysz jakieś komendy testowe koniecznie zadeklaruj do niej permissję której nie będzie posiadał żaden gracz. Wciąż pamiętam zabawę w usuwanie światów o nieprzyzwoitych nazwach na betatestach WvsP.<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">9. Optymalizacja</span><br />
Skrypt ma jeden wielki minus w porównaniu do tradycyjnych pluginów pisanych w Javie czy też Kotlinie (teoretycznie można to również zrobić w Pythonie), operuje on na jednym wątku, głównym wątku serwera. Ma to również zaletę, Skript widnieje w timingach, jednak jakim kosztem. Co właściwie oznaca jednowątkowość? Taki program nie jest w stanie wykonywać dwóch operacji jednocześnie, jest wolniejszy, a w przypadku żle napisanego kodu może na stałe zablokować cały wątek czego rezultatem będzie prawdopodobnie crash. Tak więc wszystkie operacje wykonywane w Skripcie są wykonywane naprzemiennie z operacjami rdzenia serwera. Planując jakiekolwiek opercje w Skripcie naszym priorytetem musi być czas wykonywania każdej z nich. Najczęściej patrzymy żeby nasz skrypt nie wykonywał się zbyt często, ale jednocześnie zapominamy jak ważne jest trzymanie się w ramach 50ms czasu jednego ticku.<ul>
<li>Najbardziej pospolitym błędem jest korzystanie z jakichkolwiek połączeń, czyli m. in. odczytanie danych z pliku, załadowanie strony www, czy też wysłanie zapytania do MySQL. Co gorsza nie da się oszacować czasu trwania tych operacji, są one zależne od obciążenia dysku i procesora, ruchu w internecie, obciążenia bazy danych i oczywiście wielkości informacji zwrotnej (callback). Tu warto odnieść się do tematu lagów na MF'owym SkyBlock'u, Aktualnie największe obciążenie generuje asynchroniczny(?) backup. Jak to możliwe skoro jest asynchroniczny? Jest asynchroniczny w połowie. Baza wysp oraz baza UUID jest zapisywana w oddzielnych asychronicznych wątkach, jednak ostatnia, najmniejsza baza zapisywana jest z poziomu głównego wątku, sam plik jest mały, więc teoretycznie nie powinien generować aż takiego obciążenia, tyle że jednocześnie 2 asynchroniczne wątki nadpisują 2 ogromne pliki z danymi wszystkich graczy i wysp którzy odwiedzili ten tryb w przeciągu ostatnich 3 lat. Gdyby ostatni i jednocześnie najmniejszy plik był również zapisywany asynchronicznie, problem najprawdopodobniej przestałby istnieć ponieważ serwer nie musiałby czekać na zakończenie zapisu tego jednego drobnego pliku.</li>
<li>Kolejną częstą praktyką jest kilkukrotne wykonywanie tego samego obciążąjącego kodu, kiedy wystarczy go wykonać raz, ale porządnie. I tu znowu pora na przykład z życia, ale z racji RODO zmienię imię bohatera naszych wydarzeń oraz stwierdzę że <span style="font-style: italic;">Wszystkie wydarzenia i postacie przedstawione w tym przykładzie są fikcyjne i nie mają bezpośredniego odniesienia do rzeczywistości</span>. Otóż kiedyś Koko miał świetny pomysł aby wszystko zapisywać w pliku yaml, niestety żaden dodatek do skripta nie oferował sensownego sposobu przeprowadzania operacji na tego rodzaju plikach, pozostało więc użycie tego najmniej sensownego rozwiązania. Otóż Koko wykonywał w skripcie 4 akcje: pierw sprawdzał czy w pliku istnieje dana ścieżka, następnie sprawdzał wartość danej ścieżki, póżniej usuwał daną ścieżkę tylko po to aby za chwilę ustawić jej nową wartość. Ile razy nasz Koko otworzył plik? Dokładnie 4 razy i tyle samo razy ten plik parsował. Nie dość że w tym przypadku usunięcie ścieżki zupełnie nie ma sensu to ta metoda nigdy nie powinna zostać dopuszczona do użytku na produkcyjnym serwerze. Zawartość pliku YAML musi zostać przekonwertowana w taki sposóc aby dało się z niej korzystać z poziomu kodu, w javie wystarczy to zrobić raz i zapisać jako obiekt na którym następnie można wykonywać operacje odczytu wybranych danych, w skripcie natomiast miało to miejsce przy każdej kolejnej operacji na tym pliku.</li>
<li>Niekiedy zdarza się również że ciężki kod jest wykonywany ze zbyt dużą częstotliwościa, nie dając serwerowi ani chwili wytchnienia i szansy na ponowną stabilizację. W takim wypadku nie ma co się rozpisywać, wystarczy zmniejszyć częstotliwość zasobożernych operacji.</li>
<li>Niektórym developerom zdarza się również zapomnieć że im większy plik, tym dłużej będzie odczytywany i parsowany. Tak więc jeżeli planujecie zapis danych użytkowników w miejscu innym niż skryptowe zmienne, stwórzcie folder w którym będą tworzone oddzielne pliki dla każdego użytkownika, tak jak ma to miejsce w przypadku Essentials'a lub playerdaty.</li>
<li>Skript nie jest i prawdopodobnie nigdy nie będzie całkowitą alternatywą dla pluginów, pisanie całego trybu w Skripcie jest długie, toporne i średnio optymalne. Jeżeli istnieje plugin który spełnia nasze wymagania, najlepiej z niego skorzystać, natomiast jeżeli tylko częściowo spełnia nasze wymagania najlepiej z niego skorzystać, ale brakujące funkcje dorobić w skripcie. Aktualnie WvsP jest jednym z niewielu trybów stworzonych w casach tej złocistej epoki o nazwie "Serwer przeklęty w Skripcie zamknięty". Jego czas ładowania to istna porażka, a próba jakiejkolwiek modernizacji jego silnika może skończyć się katastrofą, a i tak żeby tego dokonać do pracy musiałem zaprząc skript-mirror.</li>
<li>Stwierdzenie że wait 0 tick załatwi wszelkie problemy z synchronicznym wykonywaniem kodu to jedno wielkie kłamstwo. Kod ten nadal jest wykonywany w głównym wątku, tyle że po drodze wywoływana jest funkcja BukkitScheduler::runTaskLater, która rejestruje dalszą część kodu w wewnętrznym timerze Bukkita tylko po to żeby wykonać go w zupelnie tej samej chwili.</li>
<li>Takim samym kłamstwem jest stwierdzenie że wait 1 tick magicznie odciąży serwer. Faktycznie, serwer nie zostanie automatycznie zrestartowany z powodu timeout'u, ale tylko dlatego że będzie w stanie odpowiedzieć co 1 tick po czym spowrotem się zaciąć.</li>
<li>Niewiele osób zdaje sobie również sprawę z tego jak nieoptymalna staje się skriptowa lista zmiennych wraz ze wzrostem jej wielkości. Pętla która do pustej listy będzie dodawać kolejno 10.000 elementów może spowodować restart serwera z powodu timeoutu (60 sekund braku odpowiedzi). Jest to spowodowane charakterystyką skriptowej listy, otóż przed dodaniem kolejnego elementu do listy jest ona iterowana w poszukiwaniu jej ostatniego indeksu aby następną zmienną umieścić na indeksie o jeden większym niż ostatni. To oznacza że dodanie 6 elementów do pustej tablicy będzie wymagało wykonania 0+1+2+3+4+5=15 operacji, tak więc w przypadku 10.000 elementów będzie to 0+1+2+3+...+9997+9998+9999=(9999+0)/2*10000=49.995.000 operacji, chyba każdy przyzna że to dość sporo. Swoją drogą złożoność operacji dodania jednego elementu do listy jest opisana wzorem 0.5*(n-1)(n), a więc jest to złożoność kwadratowa.</li>
<li>Bardziej zaawansowani programiści będą w stanie korzystac z dobrodziejstw skript-reflect, który prócz implementacji podstaw Javy oferuje równiez łatwe w użyciu "sekcje" w których umieszcza się kod, następnie wystarczy daną sekcję wywołać asynchronicznie.</li>
<li>Warto nadmienić że asynchronicznośc nie jest wcale lekarstwem na wszystkie choroby świata, a jedynie jednym z wyborów. Wykonywanie kodu w głównym wątku obciąża serwer, natomiast wykonywanie kodu asynchronicznie obciążą całą maszynę i jest o wiele trudniejsze do wykrycia (patrz: Zabawa z notorycznym wywalaniem Creative MS przez scoreboard). Zycie to sztuka wyborów, wybierz mądrze.</li>
<li>Pozostaje jeszcze kwestia optymalizacji samego procesu ładowania Skripta. Jak już wspominałem im większy plik tym dłużej będzie się on ładował, więc lepiej pisać więcej małych skryptów. Co jednak dziwne czas ładowania skryptu jest również zależny od złożoności linijek, długa linijka będzie się wczytywać dłużej niż ta sama linijka podzielona na kilka mniejszych przy użyciu zmiennych.</li>
<li>Należy również zwracać uwagę aby nie generować niepotrzebnych zmienych na zapas. Fatalnym pomysłem wydaje się tworzenie kilku zmiennych z domyślnymi wartościami jak tylko gracz wejdzie na tryb, jest to nic więcej jak tworzenie śmieciowych zmiennych, które z czasem dadzą o sobie znać.<br />
</li></ul>
<br />
<br />
<br />
<span style="font-size: x-large;">10. Poprawne numerowanie punktów</span><br />
<br />
<br />
<br />
<span style="font-size: x-large;">11. Podsumowanie</span><br />
Na samym wstępie tego zakończenia pragnę wspomnieć że w tekscie ukryłem 40 literówek, potraktujcie to jak szukanie jajek wielkanocnych. Chciałbym również nadmienić że nienawidzę używania polskich odpowiedników angielskich określeń powiązanych z informatyką, cieszcie się grą na waszych mózgach elektronowych z oświetleniem LED.<br />
<br />
A teraz pora przejść do właściwej części zakończenia.<br />
<br />
Po co to? Jak to się mówi "dla potomnych". Starajcie się również sami szukać informacji, jest to dobra metoda nauki oraz zapamiętywania, a jednocześnie rozwija wasze umiejętności poznawcze. Nic nie musi się udawać za pierwszym razem, traktujcie problemy jak kolejne łamigłówki. Co najważniejsze, nie probójcie skakać na głęboką wodę, przeważnie kończy się to jedynie frustracją oraz zastaniem wszystkich chęci do rozwijania się w tym kierunku.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Całkowicie DARMOWY Serwer w Minecraft]]></title>
			<link>https://mineserver.pl/Temat-Ca%C5%82kowicie-DARMOWY-Serwer-w-Minecraft</link>
			<pubDate>Tue, 13 Apr 2021 15:17:07 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Ca%C5%82kowicie-DARMOWY-Serwer-w-Minecraft</guid>
			<description><![CDATA[Siema. Kiedyś szukałem poradnika "Jak stworzyć własny darmowy serwer w mc" I większość nie działała lub występowały błędy. Znalazłem też taki poradnik na tym  forum lecz był jakoś z 2014 wiec postanawiam to zaaktualizować.<br />
<br />
1. Na wstępie stwórzcie sobie Folder na pulpicie o nazwie "serwer"<br />
2. W tym folderze tworzycie notatnik który nazywacie "start" i zmieniacie jego rozszerzenie na ".bat". Jezeli macie problem z zmienieniem rozszerzenia to wejdzicie w "widok" i po prawej stronie włączcie sobie "rozszerzenia nazw plików" i powinno działac ^^.<br />
3. Gdy już stworzycie plik "start.bat" klikacie na niego ppm i "edytuj" nastepnie wklejacie tam takie cos: <br />
<br />
java -Xmx1024M -jar craftbukkit.jar<br />
PAUSE<br />
<br />
I zapisujecie plik.<br />
"-xMx1024m" oznacza max ramu, wiec jezeli będzie wam lagować to możecie zwiększyć np -Xmx2048 <br />
4. Teraz musicie pobrac silnik waszej gry, będzie to spigot albo bukkit ja wole bukkita. Wpisujecie w przeglądarke bukkit 1.12.2 i pobieracie. Musi to być plik javy i zmieniacie jego nazwe na "craftbukkit.jar" jeżeli ma inną.Pobrany bukkit wrzucacie do folderu "serwer"<br />
<br />
Następnie tworzycie notatnik o nazwie "server.properties" (properties to rozszerzenie) i musicie wkleić tam rzeczy jakie podam niżej , tam gdzie napisze zeby wpisać ręcznie wpisujecie ręcznie bo każdy ma inaczej:<br />
To co musicie do tego pliku wpisać:<br />
<br />
#Minecraft server properties<br />
#Tue Apr 13 16:18:16 CEST 2021<br />
spawn-protection=4<br />
max-tick-time=60000<br />
generator-settings=<br />
force-gamemode=false<br />
allow-nether=true<br />
gamemode=0<br />
broadcast-console-to-ops=true<br />
enable-query=false<br />
player-idle-timeout=0<br />
difficulty=1<br />
spawn-monsters=true<br />
op-permission-level=4<br />
pvp=true<br />
snooper-enabled=true<br />
level-type=DEFAULT<br />
hardcore=false<br />
enable-command-block=true<br />
max-players=5<br />
network-compression-threshold=256<br />
resource-pack-sha1=<br />
max-world-size=29999984<br />
server-port=25565<br />
server-ip= (musi to być wasze ip, uzupelnijcie ręcznie)<br />
spawn-npcs=true<br />
allow-flight=true<br />
level-name=world<br />
view-distance=8<br />
resource-pack=<br />
spawn-animals=true<br />
white-list=true<br />
generate-structures=true<br />
online-mode=false<br />
max-build-height=256<br />
level-seed=<br />
prevent-proxy-connections=false<br />
enable-rcon=false<br />
motd=XD<br />
<br />
<br />
5. No ,to tyle troche tego było xD<br />
5.1 Otwieracie plik "start.bat" i powinien wam wyskoczyc cmd .<br />
5.2 Zamykacie tego cmd<br />
5.3 Wchodzicie w eula.txt który powinien się stworzyć i w notatniku gdzie pisze wam "eula=false" zmieniacie na "eula=true"<br />
6.Następnie odpalacie serwer gdzie powinien już cały działać, wbijacie na mc dodajecie serwer i wpisujecie tam swoje ip komputera które wcześniej wpisaliście jako "server-ip=" w server properties wchodzicie i wszystko powinno smigac.<br />
<br />
W razie pytań piszcie pod wątkiem, pomoge.<br />
Jezeli cos nie będzie działać to postaram sie zrobić wszystko zeby wam dzialalo ;3<br />
PS nie podawajcie niezaufanym/nieznajomym osobom swojego ip<br />
PPS Jezeli chcecie sprawdzic swoje ip to wchodzicie w cmd i wpisujecie tam "ipconfig" tam gdzie pisze ipv4address po prawej macie swoje ip<br />
Pozdro ;&gt;]]></description>
			<content:encoded><![CDATA[Siema. Kiedyś szukałem poradnika "Jak stworzyć własny darmowy serwer w mc" I większość nie działała lub występowały błędy. Znalazłem też taki poradnik na tym  forum lecz był jakoś z 2014 wiec postanawiam to zaaktualizować.<br />
<br />
1. Na wstępie stwórzcie sobie Folder na pulpicie o nazwie "serwer"<br />
2. W tym folderze tworzycie notatnik który nazywacie "start" i zmieniacie jego rozszerzenie na ".bat". Jezeli macie problem z zmienieniem rozszerzenia to wejdzicie w "widok" i po prawej stronie włączcie sobie "rozszerzenia nazw plików" i powinno działac ^^.<br />
3. Gdy już stworzycie plik "start.bat" klikacie na niego ppm i "edytuj" nastepnie wklejacie tam takie cos: <br />
<br />
java -Xmx1024M -jar craftbukkit.jar<br />
PAUSE<br />
<br />
I zapisujecie plik.<br />
"-xMx1024m" oznacza max ramu, wiec jezeli będzie wam lagować to możecie zwiększyć np -Xmx2048 <br />
4. Teraz musicie pobrac silnik waszej gry, będzie to spigot albo bukkit ja wole bukkita. Wpisujecie w przeglądarke bukkit 1.12.2 i pobieracie. Musi to być plik javy i zmieniacie jego nazwe na "craftbukkit.jar" jeżeli ma inną.Pobrany bukkit wrzucacie do folderu "serwer"<br />
<br />
Następnie tworzycie notatnik o nazwie "server.properties" (properties to rozszerzenie) i musicie wkleić tam rzeczy jakie podam niżej , tam gdzie napisze zeby wpisać ręcznie wpisujecie ręcznie bo każdy ma inaczej:<br />
To co musicie do tego pliku wpisać:<br />
<br />
#Minecraft server properties<br />
#Tue Apr 13 16:18:16 CEST 2021<br />
spawn-protection=4<br />
max-tick-time=60000<br />
generator-settings=<br />
force-gamemode=false<br />
allow-nether=true<br />
gamemode=0<br />
broadcast-console-to-ops=true<br />
enable-query=false<br />
player-idle-timeout=0<br />
difficulty=1<br />
spawn-monsters=true<br />
op-permission-level=4<br />
pvp=true<br />
snooper-enabled=true<br />
level-type=DEFAULT<br />
hardcore=false<br />
enable-command-block=true<br />
max-players=5<br />
network-compression-threshold=256<br />
resource-pack-sha1=<br />
max-world-size=29999984<br />
server-port=25565<br />
server-ip= (musi to być wasze ip, uzupelnijcie ręcznie)<br />
spawn-npcs=true<br />
allow-flight=true<br />
level-name=world<br />
view-distance=8<br />
resource-pack=<br />
spawn-animals=true<br />
white-list=true<br />
generate-structures=true<br />
online-mode=false<br />
max-build-height=256<br />
level-seed=<br />
prevent-proxy-connections=false<br />
enable-rcon=false<br />
motd=XD<br />
<br />
<br />
5. No ,to tyle troche tego było xD<br />
5.1 Otwieracie plik "start.bat" i powinien wam wyskoczyc cmd .<br />
5.2 Zamykacie tego cmd<br />
5.3 Wchodzicie w eula.txt który powinien się stworzyć i w notatniku gdzie pisze wam "eula=false" zmieniacie na "eula=true"<br />
6.Następnie odpalacie serwer gdzie powinien już cały działać, wbijacie na mc dodajecie serwer i wpisujecie tam swoje ip komputera które wcześniej wpisaliście jako "server-ip=" w server properties wchodzicie i wszystko powinno smigac.<br />
<br />
W razie pytań piszcie pod wątkiem, pomoge.<br />
Jezeli cos nie będzie działać to postaram sie zrobić wszystko zeby wam dzialalo ;3<br />
PS nie podawajcie niezaufanym/nieznajomym osobom swojego ip<br />
PPS Jezeli chcecie sprawdzic swoje ip to wchodzicie w cmd i wpisujecie tam "ipconfig" tam gdzie pisze ipv4address po prawej macie swoje ip<br />
Pozdro ;&gt;]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[PORADNIK] Weryfikacja konta Minecraft]]></title>
			<link>https://mineserver.pl/Temat-PORADNIK-Weryfikacja-konta-Minecraft</link>
			<pubDate>Sun, 07 Mar 2021 17:48:38 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-PORADNIK-Weryfikacja-konta-Minecraft</guid>
			<description><![CDATA[<hr />
<br />
<div style="text-align: center;"><span style="font-size: 25pt;"><span style="color: orange;"><span style="font-weight: bold;">Weryfikacja konta Minecraft</span></span></span></div>
<br />
<hr />
<br />
<br />
<hr />
<br />
<div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size: 14pt;">Witajcie!</span></span></div>
<br />
<span style="font-size: 13pt;">Poradnik ten jest skierowany do osób, które mają problemy połączenia się z Serwerami:<ul>
<span style="font-weight: bold;"></li>
<li>Mineserver.pl</li>
<li>Hypixel.pl</li>
<li>BestRPG.pl</li>
<li>Warz.pl</span><br />
</li></ul>
</span><br />
<hr />
<br />
<br />
<span style="font-size: 13pt;">Czasami podczas próby wejścia na serwer, możecie się spotkać z problemem weryfikacji waszego konta. <br />
<br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj1-cCruTnFFj4.png" border="0" alt="[Obrazek: Zdj1-cCruTnFFj4.png]" /><br />
<br />
Może to wynikać z powodu, iż serwer wykrył na waszym koncie podejrzaną aktywność, m.in:<ul>
<li>Łączenie się z serwerem za pomocą <span style="font-weight: bold;">VPN/OPEN PROXY</span>,</li>
<li>Łączenie się z serwerem za pomocą <span style="font-weight: bold;">nowego Adresu IP</span>,</li>
<li>Łączenie się z serwerem za pomocą <span style="font-weight: bold;">zagranicznego Adresu IP</span>,</li>
<li>Łączenie się z serwerem z <span style="font-weight: bold;">dużą ilością nowych kont przypisanych do Waszego Adresu IP/Komputera</span>,</li>
<li>Łączenie się z serwerem za pomocą <span style="font-weight: bold;">podejrzanego nicku (np. Losowe znaki)</span>.<br />
</li></ul>
<br />
W celu zweryfikowania konta, udajemy się na stronę weryfikującą nasze konto - <a href="http://mineserver.pl/weryfikacja/" target="_blank"><span style="font-weight: bold;">MineServer - Weryfikacja konta</span></a> <span style="font-style: italic;">(&lt;-- Kliknij w nazwę obok, aby przejść na stronę)</span><br />
<br />
<br />
Po przejściu na stronę, natrafimy na panel z podaną instrukcją dalszego działania</span><br />
<br />
<div style="text-align: center;"><img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj2-apwnwBJmmR.png" border="0" alt="[Obrazek: Zdj2-apwnwBJmmR.png]" /></div>
<br />
<hr />
<br />
<div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size: 20pt;">Weryfikacji konta możemy dokonać na dwa sposoby:</span></span></div>
<span style="font-size: 14pt;"><br />
<ol type="1"><span style="font-style: italic;"><span style="font-weight: bold;"></li>
<li>Weryfikacja ręczna</li>
<li>Weryfikacja automatyczna</span></span><br />
</li></ol>
</span><br />
<br />
<hr />
<br />
<span style="font-size: 14pt;"><span style="font-weight: bold;"><span style="font-style: italic;">1. Weryfikacja ręczna</span></span></span><br />
<span style="font-size: 13pt;"><br />
<ol type="1">
<li>W miejscu <span style="font-weight: bold;">"Nick z gry" wpisujemy swój nick</span> z serwera na którym gramy.</li>
<li>Wypełniamy Test CAPTCHA wybierając opcję <span style="font-weight: bold;">"Nie jestem robotem"</span></li>
<li>Klikamy przycisk <span style="font-weight: bold;">"ZWERYFIKUJ"</span><br />
</li></ol>
<span style="font-weight: bold;">Przykładowe wypełnienie za pomocą weryfikacji ręcznej:</span><br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj3-SBWtYE4HLA.png" border="0" alt="[Obrazek: Zdj3-SBWtYE4HLA.png]" /><br />
<br />
<span style="font-weight: bold;">Po zweryfikowaniu, otrzymamy następującą wiadomość:</span><br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj4-jpD9jXVp5D.png" border="0" alt="[Obrazek: Zdj4-jpD9jXVp5D.png]" /><br />
</span><br />
<br />
<hr />
<br />
<span style="font-size: 14pt;"><span style="font-weight: bold;"><span style="font-style: italic;">2. Weryfikacja automatyczna</span></span></span><br />
<br />
<div style="text-align: center;"><span style="font-size: 14pt;"><span style="color: #FF0000;"><span style="font-weight: bold;">Przed wybraniem Weryfikacji Automatycznej, upewnij się, że posiadasz konto na forum <a href="http://Mineserwer.pl" target="_blank">Mineserwer.pl</a> !<br />
W przeciwnym wypadku nie będziesz mógł/a dokonać Weryfikacji Automatycznej!</span></span></span></div>
<br />
<span style="font-size: 13pt;"><br />
<ol type="1">
<li>Pod przyciskiem <span style="font-weight: bold;">"ZWERYFIKUJ"</span> znajdziemy napis <span style="font-weight: bold;">"Zweryfikuj automatycznie poprzez MineSerwer.pl"</span><br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj5-SDtNqqQybB.png" border="0" alt="[Obrazek: Zdj5-SDtNqqQybB.png]" /></li>
<li><span style="font-weight: bold;">Naciskamy</span> na wyżej wymieniony napis<br />
</li></ol>
<br />
<span style="font-weight: bold;">Po zweryfikowaniu, otrzymamy następującą wiadomość:</span></span><br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj4-jpD9jXVp5D.png" border="0" alt="[Obrazek: Zdj4-jpD9jXVp5D.png]" /><br />
<hr />
<br />
<div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size: 16pt;">Po udanym wykonaniu niniejszej weryfikacji o charakterze globalnym, zostanie dla Ciebie odblokowana możliwość gry na wszystkich serwerach Naszej sieci!</span></span></div>]]></description>
			<content:encoded><![CDATA[<hr />
<br />
<div style="text-align: center;"><span style="font-size: 25pt;"><span style="color: orange;"><span style="font-weight: bold;">Weryfikacja konta Minecraft</span></span></span></div>
<br />
<hr />
<br />
<br />
<hr />
<br />
<div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size: 14pt;">Witajcie!</span></span></div>
<br />
<span style="font-size: 13pt;">Poradnik ten jest skierowany do osób, które mają problemy połączenia się z Serwerami:<ul>
<span style="font-weight: bold;"></li>
<li>Mineserver.pl</li>
<li>Hypixel.pl</li>
<li>BestRPG.pl</li>
<li>Warz.pl</span><br />
</li></ul>
</span><br />
<hr />
<br />
<br />
<span style="font-size: 13pt;">Czasami podczas próby wejścia na serwer, możecie się spotkać z problemem weryfikacji waszego konta. <br />
<br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj1-cCruTnFFj4.png" border="0" alt="[Obrazek: Zdj1-cCruTnFFj4.png]" /><br />
<br />
Może to wynikać z powodu, iż serwer wykrył na waszym koncie podejrzaną aktywność, m.in:<ul>
<li>Łączenie się z serwerem za pomocą <span style="font-weight: bold;">VPN/OPEN PROXY</span>,</li>
<li>Łączenie się z serwerem za pomocą <span style="font-weight: bold;">nowego Adresu IP</span>,</li>
<li>Łączenie się z serwerem za pomocą <span style="font-weight: bold;">zagranicznego Adresu IP</span>,</li>
<li>Łączenie się z serwerem z <span style="font-weight: bold;">dużą ilością nowych kont przypisanych do Waszego Adresu IP/Komputera</span>,</li>
<li>Łączenie się z serwerem za pomocą <span style="font-weight: bold;">podejrzanego nicku (np. Losowe znaki)</span>.<br />
</li></ul>
<br />
W celu zweryfikowania konta, udajemy się na stronę weryfikującą nasze konto - <a href="http://mineserver.pl/weryfikacja/" target="_blank"><span style="font-weight: bold;">MineServer - Weryfikacja konta</span></a> <span style="font-style: italic;">(&lt;-- Kliknij w nazwę obok, aby przejść na stronę)</span><br />
<br />
<br />
Po przejściu na stronę, natrafimy na panel z podaną instrukcją dalszego działania</span><br />
<br />
<div style="text-align: center;"><img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj2-apwnwBJmmR.png" border="0" alt="[Obrazek: Zdj2-apwnwBJmmR.png]" /></div>
<br />
<hr />
<br />
<div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size: 20pt;">Weryfikacji konta możemy dokonać na dwa sposoby:</span></span></div>
<span style="font-size: 14pt;"><br />
<ol type="1"><span style="font-style: italic;"><span style="font-weight: bold;"></li>
<li>Weryfikacja ręczna</li>
<li>Weryfikacja automatyczna</span></span><br />
</li></ol>
</span><br />
<br />
<hr />
<br />
<span style="font-size: 14pt;"><span style="font-weight: bold;"><span style="font-style: italic;">1. Weryfikacja ręczna</span></span></span><br />
<span style="font-size: 13pt;"><br />
<ol type="1">
<li>W miejscu <span style="font-weight: bold;">"Nick z gry" wpisujemy swój nick</span> z serwera na którym gramy.</li>
<li>Wypełniamy Test CAPTCHA wybierając opcję <span style="font-weight: bold;">"Nie jestem robotem"</span></li>
<li>Klikamy przycisk <span style="font-weight: bold;">"ZWERYFIKUJ"</span><br />
</li></ol>
<span style="font-weight: bold;">Przykładowe wypełnienie za pomocą weryfikacji ręcznej:</span><br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj3-SBWtYE4HLA.png" border="0" alt="[Obrazek: Zdj3-SBWtYE4HLA.png]" /><br />
<br />
<span style="font-weight: bold;">Po zweryfikowaniu, otrzymamy następującą wiadomość:</span><br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj4-jpD9jXVp5D.png" border="0" alt="[Obrazek: Zdj4-jpD9jXVp5D.png]" /><br />
</span><br />
<br />
<hr />
<br />
<span style="font-size: 14pt;"><span style="font-weight: bold;"><span style="font-style: italic;">2. Weryfikacja automatyczna</span></span></span><br />
<br />
<div style="text-align: center;"><span style="font-size: 14pt;"><span style="color: #FF0000;"><span style="font-weight: bold;">Przed wybraniem Weryfikacji Automatycznej, upewnij się, że posiadasz konto na forum <a href="http://Mineserwer.pl" target="_blank">Mineserwer.pl</a> !<br />
W przeciwnym wypadku nie będziesz mógł/a dokonać Weryfikacji Automatycznej!</span></span></span></div>
<br />
<span style="font-size: 13pt;"><br />
<ol type="1">
<li>Pod przyciskiem <span style="font-weight: bold;">"ZWERYFIKUJ"</span> znajdziemy napis <span style="font-weight: bold;">"Zweryfikuj automatycznie poprzez MineSerwer.pl"</span><br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj5-SDtNqqQybB.png" border="0" alt="[Obrazek: Zdj5-SDtNqqQybB.png]" /></li>
<li><span style="font-weight: bold;">Naciskamy</span> na wyżej wymieniony napis<br />
</li></ol>
<br />
<span style="font-weight: bold;">Po zweryfikowaniu, otrzymamy następującą wiadomość:</span></span><br />
<img class="postimage" src="http://mineserwer.pl/forum-secureimg/Zdj4-jpD9jXVp5D.png" border="0" alt="[Obrazek: Zdj4-jpD9jXVp5D.png]" /><br />
<hr />
<br />
<div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size: 16pt;">Po udanym wykonaniu niniejszej weryfikacji o charakterze globalnym, zostanie dla Ciebie odblokowana możliwość gry na wszystkich serwerach Naszej sieci!</span></span></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Jak używać i pobrać TeamViewer]]></title>
			<link>https://mineserver.pl/Temat-Jak-u%C5%BCywa%C4%87-i-pobra%C4%87-TeamViewer</link>
			<pubDate>Wed, 03 Mar 2021 22:23:24 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Jak-u%C5%BCywa%C4%87-i-pobra%C4%87-TeamViewer</guid>
			<description><![CDATA[Witam w tym poradniku pokażę ci jak pobrać i używać programu TeamViewer. Krok po kroku.<br />
1. Pobierz TeamViewera ze strony <a href="https://www.teamviewer.com/pl/" target="_blank">https://www.teamviewer.com/pl/</a><br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=CVD7" border="0" alt="[Obrazek: image.php?di=CVD7]" /><br />
2. Jak zainstalowałeś już TeamViewera otwierasz go.<br />
3. Po Otworzeniu  programu  TeamViewer ukazuje ci się  twoje id oraz hasło<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=4OIX" border="0" alt="[Obrazek: image.php?di=4OIX]" /><br />
4. kiedy jesteś sprawdzany kopiujesz twoje id i hasło i podajesz je na /helpop aby administracja mogła cię sprawdzić.<br />
 jeżeli poradnik pomógł zostaw diaxa <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /><br />
<br />
Notatka moderatora<br />
Wyedytowałem o screeny (łatwiej zrozumieć) + wątek przypięty w dziale ~kubamax]]></description>
			<content:encoded><![CDATA[Witam w tym poradniku pokażę ci jak pobrać i używać programu TeamViewer. Krok po kroku.<br />
1. Pobierz TeamViewera ze strony <a href="https://www.teamviewer.com/pl/" target="_blank">https://www.teamviewer.com/pl/</a><br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=CVD7" border="0" alt="[Obrazek: image.php?di=CVD7]" /><br />
2. Jak zainstalowałeś już TeamViewera otwierasz go.<br />
3. Po Otworzeniu  programu  TeamViewer ukazuje ci się  twoje id oraz hasło<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=4OIX" border="0" alt="[Obrazek: image.php?di=4OIX]" /><br />
4. kiedy jesteś sprawdzany kopiujesz twoje id i hasło i podajesz je na /helpop aby administracja mogła cię sprawdzić.<br />
 jeżeli poradnik pomógł zostaw diaxa <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /><br />
<br />
Notatka moderatora<br />
Wyedytowałem o screeny (łatwiej zrozumieć) + wątek przypięty w dziale ~kubamax]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Jak zagrać na naszych serwerach?]]></title>
			<link>https://mineserver.pl/Temat-Jak-zagra%C4%87-na-naszych-serwerach</link>
			<pubDate>Mon, 01 Mar 2021 22:14:42 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Jak-zagra%C4%87-na-naszych-serwerach</guid>
			<description><![CDATA[<span style="font-size: large;">Jak zagrać na naszych serwerach?</span><br />
<span style="font-size: large;"><span style="font-weight: bold;">1.</span> Pobierz launcher z grą. Jeden z ogólnodostępnych: <span style="font-weight: bold;"><a href="http://mineserwer.pl/Minecraft.exe" target="_blank">Shiginima Launcher</a></span></span><br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">2. </span> Uruchom launcher, wpisz swój nick i uruchom grę.<br />
Zalecana wersja gry to 1.12.2, ale jeśli chcesz to możesz grać na nowszych/starszych, w zależności od wsparcia dla danego trybu.</span><br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=GIQ1" border="0" alt="[Obrazek: image.php?di=GIQ1]" /><br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">3. </span>Dodaj nasze serwery i graj.<br />
<br />
HYPIXEL.PL - (Połączenie Minefox.pl + Mineserver.pl )<br />
BestRpg.pl<br />
WARZ.pl</span><br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=SQ9P" border="0" alt="[Obrazek: image.php?di=SQ9P]" />]]></description>
			<content:encoded><![CDATA[<span style="font-size: large;">Jak zagrać na naszych serwerach?</span><br />
<span style="font-size: large;"><span style="font-weight: bold;">1.</span> Pobierz launcher z grą. Jeden z ogólnodostępnych: <span style="font-weight: bold;"><a href="http://mineserwer.pl/Minecraft.exe" target="_blank">Shiginima Launcher</a></span></span><br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">2. </span> Uruchom launcher, wpisz swój nick i uruchom grę.<br />
Zalecana wersja gry to 1.12.2, ale jeśli chcesz to możesz grać na nowszych/starszych, w zależności od wsparcia dla danego trybu.</span><br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=GIQ1" border="0" alt="[Obrazek: image.php?di=GIQ1]" /><br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">3. </span>Dodaj nasze serwery i graj.<br />
<br />
HYPIXEL.PL - (Połączenie Minefox.pl + Mineserver.pl )<br />
BestRpg.pl<br />
WARZ.pl</span><br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=SQ9P" border="0" alt="[Obrazek: image.php?di=SQ9P]" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Jak zacząć grać na trybie GTA 6.1 !]]></title>
			<link>https://mineserver.pl/Temat-Jak-zacz%C4%85%C4%87-gra%C4%87-na-trybie-GTA-6-1</link>
			<pubDate>Mon, 04 Jan 2021 20:26:08 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Jak-zacz%C4%85%C4%87-gra%C4%87-na-trybie-GTA-6-1</guid>
			<description><![CDATA[<div style="text-align: center;"><span style="font-size: large;">Jak zacząc grać w GTA 6.1 </span><br />
<br />
</div><div style="text-align: left;"> Cześć ! Jestem twoim przewodnikiem po trybie GTA 6.1 !<br />
Możesz tu zostać kim chcesz ! Od płatnego zabójcy do szefa wielkiej mafi !<br />
<br />
Jesteś nowy? Nie wiesz jak zacząć? <br />
To dobry czas żeby się tego nauczyć !<br />
<br />
Dzień 1:<br />
<br />
Pierwszy raz jesteś na trybie. Podziwiasz mape i myślisz jak zacząć. <br />
Pierw musisz znaleść przystanek autobusowy, jest on za spawnem jak i przed nim. Na starcie masz już : Kij, 20&#36; i jedzonko.<br />
Jak już znajdziesz przystanek musisz wybrać się do Manuela.<br />
Kiedy już tam będzi podbiegnij do Diego i weź od niego misje ,, Eliminiuj Konkurencje ,,. <br />
To zadanie jest bardzo łatwe a daje DUŻY zarobek jak na poczatek.<br />
Żeby tą misje wogóle zrobić musisz udać się na groove street.<br />
Tam znajdziesz kryjówke Heinsberga. Podpowiedź jest ona domem i jest tam tabliczka.<br />
Kiedy już znajdziesz jego kryjówke nie wachaj się...<br />
ZABIJ GO !<br />
Kiedy już to zrobisz wróc do Manuela i oddaj zadanie do Diego.<br />
BRAWO ! Zrobiłeś swoje pierwsze zadanie ! Musisz czuć się nieźle. Lecz to dopiero początek drogi do zostania szefem mafi.<br />
Twoje zarobki będą wynosiły koło 100&#36; do 150&#36;. <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /><br />
<br />
Dzień 2:<br />
Masz już swój hajs. Jesteś szczęśliwy <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> . Teraz musisz:<br />
Wejść na sklep. To proste po prostu wpisz /oferty na czacie.<br />
i wyszukaj ,, Dubeltówki ,, . To będzie twoja broń! <br />
Jej statystyki są takie:<br />
<br />
-Amunicja : 2<br />
-Obrażenia - 3 DMG<br />
-Szybkość wystrzału : Wolna<br />
-Szybkość przeładowywania : Średnia <br />
<br />
Kiedy już ją kupiłeś nie pozostało ci nic innego jak zrobienie kolejnej misji!<br />
LECZ NIE ZAPOMNIJ - Zanim weźmiesz misje kup sobie troche ammunicji, Sprzedaje ją wojskowy na prawo od spawnu.<br />
Dobra... Masz broń, amunicje czego ci jeszcze trzeba? <br />
Tak ! Zbroji lecz spokojnie nie kupuj jej teraz.<br />
Pierw, na przystanku autobusowym wybierz lokalizacje ,, Moris ,,<br />
Kiedy już tam będziesz weź zadanie od Carlos'a ,, Rozwal Yakuze ,,<br />
Misja ta jest trudniejsza niż poprzednia. Musisz udać się na dzielnice Yakuzy, możesz ją znaleść na mapie albo wybrać się tam. <br />
Musisz zabić 15 członków Yakuzy !<br />
Kiedy już to zrobisz odbierz misje.<br />
BRAWO twoja druga misja ! Zarobki to 75&#36; do 125&#36; !<br />
<br />
<br />
<br />
Dzień 3 wyjdzie jutro albo pojutrze narka <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><span style="font-size: large;">Jak zacząc grać w GTA 6.1 </span><br />
<br />
</div><div style="text-align: left;"> Cześć ! Jestem twoim przewodnikiem po trybie GTA 6.1 !<br />
Możesz tu zostać kim chcesz ! Od płatnego zabójcy do szefa wielkiej mafi !<br />
<br />
Jesteś nowy? Nie wiesz jak zacząć? <br />
To dobry czas żeby się tego nauczyć !<br />
<br />
Dzień 1:<br />
<br />
Pierwszy raz jesteś na trybie. Podziwiasz mape i myślisz jak zacząć. <br />
Pierw musisz znaleść przystanek autobusowy, jest on za spawnem jak i przed nim. Na starcie masz już : Kij, 20&#36; i jedzonko.<br />
Jak już znajdziesz przystanek musisz wybrać się do Manuela.<br />
Kiedy już tam będzi podbiegnij do Diego i weź od niego misje ,, Eliminiuj Konkurencje ,,. <br />
To zadanie jest bardzo łatwe a daje DUŻY zarobek jak na poczatek.<br />
Żeby tą misje wogóle zrobić musisz udać się na groove street.<br />
Tam znajdziesz kryjówke Heinsberga. Podpowiedź jest ona domem i jest tam tabliczka.<br />
Kiedy już znajdziesz jego kryjówke nie wachaj się...<br />
ZABIJ GO !<br />
Kiedy już to zrobisz wróc do Manuela i oddaj zadanie do Diego.<br />
BRAWO ! Zrobiłeś swoje pierwsze zadanie ! Musisz czuć się nieźle. Lecz to dopiero początek drogi do zostania szefem mafi.<br />
Twoje zarobki będą wynosiły koło 100&#36; do 150&#36;. <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /><br />
<br />
Dzień 2:<br />
Masz już swój hajs. Jesteś szczęśliwy <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> . Teraz musisz:<br />
Wejść na sklep. To proste po prostu wpisz /oferty na czacie.<br />
i wyszukaj ,, Dubeltówki ,, . To będzie twoja broń! <br />
Jej statystyki są takie:<br />
<br />
-Amunicja : 2<br />
-Obrażenia - 3 DMG<br />
-Szybkość wystrzału : Wolna<br />
-Szybkość przeładowywania : Średnia <br />
<br />
Kiedy już ją kupiłeś nie pozostało ci nic innego jak zrobienie kolejnej misji!<br />
LECZ NIE ZAPOMNIJ - Zanim weźmiesz misje kup sobie troche ammunicji, Sprzedaje ją wojskowy na prawo od spawnu.<br />
Dobra... Masz broń, amunicje czego ci jeszcze trzeba? <br />
Tak ! Zbroji lecz spokojnie nie kupuj jej teraz.<br />
Pierw, na przystanku autobusowym wybierz lokalizacje ,, Moris ,,<br />
Kiedy już tam będziesz weź zadanie od Carlos'a ,, Rozwal Yakuze ,,<br />
Misja ta jest trudniejsza niż poprzednia. Musisz udać się na dzielnice Yakuzy, możesz ją znaleść na mapie albo wybrać się tam. <br />
Musisz zabić 15 członków Yakuzy !<br />
Kiedy już to zrobisz odbierz misje.<br />
BRAWO twoja druga misja ! Zarobki to 75&#36; do 125&#36; !<br />
<br />
<br />
<br />
Dzień 3 wyjdzie jutro albo pojutrze narka <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[★ [PORADNIK] Jak zmniejszyć ścinki w Minecraft ?? ★]]></title>
			<link>https://mineserver.pl/Temat-%E2%98%85-PORADNIK-Jak-zmniejszy%C4%87-%C5%9Bcinki-w-Minecraft-%E2%98%85</link>
			<pubDate>Mon, 08 Jun 2020 10:15:54 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-%E2%98%85-PORADNIK-Jak-zmniejszy%C4%87-%C5%9Bcinki-w-Minecraft-%E2%98%85</guid>
			<description><![CDATA[<span style="font-style: italic;">Hejka <img class="postimage" src="images/smilies/sleepy.gif" style="vertical-align: middle;" border="0" alt="Sleepy" title="Sleepy" /><img class="postimage" src="images/smilies/heart.gif" style="vertical-align: middle;" border="0" alt="Heart" title="Heart" /><br />
Dziś przedstawię poradnik <span style="color: #FF0000;"><span style="font-weight: bold;">,,Jak zmniejszyć ścinki w Minecraft''</span></span>.<br />
Zaczynajmy !!!</span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">1. Zmiana ustawień grafiki w minecraft:</span></span><br />
<span style="font-weight: bold;">Jeśli denerwują Cię lagi na MC, zrób tak:<br />
Esc &gt; Opcje &gt; Ustawienia Graficzne<br />
Ustawienia mogą być ustawione tak, jak na tym zdjęciu:</span><br />
<a href="https://imgur.com/a/WSfCQWP" target="_blank">https://imgur.com/a/WSfCQWP</a><br />
<span style="font-weight: bold;">To powinno zmniejszyć lagi.</span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">2. Nigdy przy graniu w MC nie miej włączonych kilkunastu stron, setki programów itd Wszystko powyłączajcie i zostawcie włączone MC i jave !!!</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">3. Zrobienie porządków w plikach, komputerze, urządzeniu, usuwanie niepotrzebnych programów.</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">4. Jeśli możesz, graj na zmniejszonym oknie MC.</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">5. Używaj texturepack z mniejszą ilością mb, wtedy zmniejszają one default podstawowej gry.</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">6. Podczas budowy nie używaj dużej ilości mechanizmów, jeśli są one konieczne to najlepiej używać ich o mniejszej zawartości kb.</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">7. Jeśli prowadzisz serwer, zmniejsz pluginy albo wyczyść niepotrzebne pliki na stronie serwera !!!</span></span> <span style="font-weight: bold;">To bardzo ważne, by Wasz serwer wtedy mógł działać płynnie !!!</span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">8. Miej urządzenie na którym grasz blisko routera, jeśli sprzęt ma swoje lata wyczyść go do ustawień fabrycznych lub po prostu kup nowy sprzęt.</span></span><br />
<br />
<span style="font-style: italic;">No więc, to tyle. <img class="postimage" src="images/smilies/rolleyes.gif" style="vertical-align: middle;" border="0" alt="Rolleyes" title="Rolleyes" /></span><br />
<br />
<span style="font-style: italic;">Mam nadzieję, że to trochę pomoże na Wasze ścinki.<br />
Buźkaa <img class="postimage" src="images/smilies/heart.gif" style="vertical-align: middle;" border="0" alt="Heart" title="Heart" /><br />
<span style="color: #FF6347;"><span style="font-weight: bold;">~ VerrxcktesKey</span></span> <img class="postimage" src="images/smilies/blush.gif" style="vertical-align: middle;" border="0" alt="Blush" title="Blush" /><img class="postimage" src="images/smilies/heart.gif" style="vertical-align: middle;" border="0" alt="Heart" title="Heart" /><br />
<br />
EDIT : Mój błąd, widziałam ten poradnik i jednak zgapiłam ;x</span>]]></description>
			<content:encoded><![CDATA[<span style="font-style: italic;">Hejka <img class="postimage" src="images/smilies/sleepy.gif" style="vertical-align: middle;" border="0" alt="Sleepy" title="Sleepy" /><img class="postimage" src="images/smilies/heart.gif" style="vertical-align: middle;" border="0" alt="Heart" title="Heart" /><br />
Dziś przedstawię poradnik <span style="color: #FF0000;"><span style="font-weight: bold;">,,Jak zmniejszyć ścinki w Minecraft''</span></span>.<br />
Zaczynajmy !!!</span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">1. Zmiana ustawień grafiki w minecraft:</span></span><br />
<span style="font-weight: bold;">Jeśli denerwują Cię lagi na MC, zrób tak:<br />
Esc &gt; Opcje &gt; Ustawienia Graficzne<br />
Ustawienia mogą być ustawione tak, jak na tym zdjęciu:</span><br />
<a href="https://imgur.com/a/WSfCQWP" target="_blank">https://imgur.com/a/WSfCQWP</a><br />
<span style="font-weight: bold;">To powinno zmniejszyć lagi.</span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">2. Nigdy przy graniu w MC nie miej włączonych kilkunastu stron, setki programów itd Wszystko powyłączajcie i zostawcie włączone MC i jave !!!</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">3. Zrobienie porządków w plikach, komputerze, urządzeniu, usuwanie niepotrzebnych programów.</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">4. Jeśli możesz, graj na zmniejszonym oknie MC.</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">5. Używaj texturepack z mniejszą ilością mb, wtedy zmniejszają one default podstawowej gry.</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">6. Podczas budowy nie używaj dużej ilości mechanizmów, jeśli są one konieczne to najlepiej używać ich o mniejszej zawartości kb.</span></span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">7. Jeśli prowadzisz serwer, zmniejsz pluginy albo wyczyść niepotrzebne pliki na stronie serwera !!!</span></span> <span style="font-weight: bold;">To bardzo ważne, by Wasz serwer wtedy mógł działać płynnie !!!</span><br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">8. Miej urządzenie na którym grasz blisko routera, jeśli sprzęt ma swoje lata wyczyść go do ustawień fabrycznych lub po prostu kup nowy sprzęt.</span></span><br />
<br />
<span style="font-style: italic;">No więc, to tyle. <img class="postimage" src="images/smilies/rolleyes.gif" style="vertical-align: middle;" border="0" alt="Rolleyes" title="Rolleyes" /></span><br />
<br />
<span style="font-style: italic;">Mam nadzieję, że to trochę pomoże na Wasze ścinki.<br />
Buźkaa <img class="postimage" src="images/smilies/heart.gif" style="vertical-align: middle;" border="0" alt="Heart" title="Heart" /><br />
<span style="color: #FF6347;"><span style="font-weight: bold;">~ VerrxcktesKey</span></span> <img class="postimage" src="images/smilies/blush.gif" style="vertical-align: middle;" border="0" alt="Blush" title="Blush" /><img class="postimage" src="images/smilies/heart.gif" style="vertical-align: middle;" border="0" alt="Heart" title="Heart" /><br />
<br />
EDIT : Mój błąd, widziałam ten poradnik i jednak zgapiłam ;x</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Poradnik] Jak pobrać  (i używać) anydesk.]]></title>
			<link>https://mineserver.pl/Temat-Poradnik-Jak-pobra%C4%87-i-u%C5%BCywa%C4%87-anydesk</link>
			<pubDate>Fri, 17 Apr 2020 08:30:12 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Poradnik-Jak-pobra%C4%87-i-u%C5%BCywa%C4%87-anydesk</guid>
			<description><![CDATA[<span style="font-size: large;"><span style="text-decoration: underline;"><span style="font-weight: bold;"><span style="color: #FF0000;"><div style="text-align: center;">Jeśli interesują cię konkrety, lub aktualnie jesteś sprawdzany przejdź akapit niżej!</div></span></span></span></span><br />
W tym poradniku przedstawie jak pobrać program anydesk. Napisałem ten poradnik dla TYCH, którzy podczas kontroli o to pytają - średnio jakieś <span style="text-decoration: underline;">50%</span> sprawdzanych osób, czyli połowa społeczności. Dobra, zaczynajmy.<br />
<br />
<span style="color: #FF0000;"><div style="text-align: center;"><span style="font-size: x-large;">ANYDESK</span></div></span><br />
<span style="font-weight: bold;">KROK 1.</span> Wpisujemy w wyszukiwarkę "anydesk download"<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4709" target="_blank">p5.png</a> (Rozmiar: 2.12 KB / Pobrań: 20)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-weight: bold;">KROK 2.</span> Gdy wyświetli nam się odnośnik do strony wybieramy nasz system operacyjny.<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4705" target="_blank">p1.png</a> (Rozmiar: 21.74 KB / Pobrań: 42)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-weight: bold;">KROK 3.</span> <span style="text-decoration: underline;">W samym centrum monitora</span> znajduje się przycisk "DOWNLOAD NOW" - naciskamy go.<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4706" target="_blank">p2.png</a> (Rozmiar: 167.74 KB / Pobrań: 36)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-weight: bold;">KROK 4.</span> Następnie klikamy "zapisz plik"<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4707" target="_blank">p3.png</a> (Rozmiar: 7.51 KB / Pobrań: 26)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-weight: bold;">KROK 5.</span> A gdy w prawym górnym rogu ( zakładce pobrań ) ukończy nam się pobieranie programu (nawet na dirtowym internecie potrwa to maksymalnie minutę) - otwieramy program i podajemy <span style="color: #6B8E23;">Stanowisko Robocze</span>.<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4708" target="_blank">p4.png</a> (Rozmiar: 66.71 KB / Pobrań: 67)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-style: italic;"><br />
KONIEC, żadna filozofia <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" /></span>]]></description>
			<content:encoded><![CDATA[<span style="font-size: large;"><span style="text-decoration: underline;"><span style="font-weight: bold;"><span style="color: #FF0000;"><div style="text-align: center;">Jeśli interesują cię konkrety, lub aktualnie jesteś sprawdzany przejdź akapit niżej!</div></span></span></span></span><br />
W tym poradniku przedstawie jak pobrać program anydesk. Napisałem ten poradnik dla TYCH, którzy podczas kontroli o to pytają - średnio jakieś <span style="text-decoration: underline;">50%</span> sprawdzanych osób, czyli połowa społeczności. Dobra, zaczynajmy.<br />
<br />
<span style="color: #FF0000;"><div style="text-align: center;"><span style="font-size: x-large;">ANYDESK</span></div></span><br />
<span style="font-weight: bold;">KROK 1.</span> Wpisujemy w wyszukiwarkę "anydesk download"<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4709" target="_blank">p5.png</a> (Rozmiar: 2.12 KB / Pobrań: 20)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-weight: bold;">KROK 2.</span> Gdy wyświetli nam się odnośnik do strony wybieramy nasz system operacyjny.<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4705" target="_blank">p1.png</a> (Rozmiar: 21.74 KB / Pobrań: 42)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-weight: bold;">KROK 3.</span> <span style="text-decoration: underline;">W samym centrum monitora</span> znajduje się przycisk "DOWNLOAD NOW" - naciskamy go.<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4706" target="_blank">p2.png</a> (Rozmiar: 167.74 KB / Pobrań: 36)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-weight: bold;">KROK 4.</span> Następnie klikamy "zapisz plik"<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4707" target="_blank">p3.png</a> (Rozmiar: 7.51 KB / Pobrań: 26)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-weight: bold;">KROK 5.</span> A gdy w prawym górnym rogu ( zakładce pobrań ) ukończy nam się pobieranie programu (nawet na dirtowym internecie potrwa to maksymalnie minutę) - otwieramy program i podajemy <span style="color: #6B8E23;">Stanowisko Robocze</span>.<br />
<!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/image.gif" border="0" alt=".png" />&nbsp;&nbsp;<a href="attachment.php?aid=4708" target="_blank">p4.png</a> (Rozmiar: 66.71 KB / Pobrań: 67)
<!-- end: postbit_attachments_attachment --><br />
<span style="font-style: italic;"><br />
KONIEC, żadna filozofia <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" /></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[GTA 6] Jak zacząć zarabiać?]]></title>
			<link>https://mineserver.pl/Temat-GTA-6-Jak-zacz%C4%85%C4%87-zarabia%C4%87</link>
			<pubDate>Fri, 05 Jul 2019 11:48:06 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-GTA-6-Jak-zacz%C4%85%C4%87-zarabia%C4%87</guid>
			<description><![CDATA[<span style="color: #000000;"><span style="font-weight: bold;"><div style="text-align: center;">Pewnie zastanawiasz się jak zacząć zarabiać na GTA 6? <img class="postimage" src="images/smilies/huh.gif" style="vertical-align: middle;" border="0" alt="Huh" title="Huh" /><br />
</div>W tym poradniku dowiesz się:<br />
<br />
</span>1. Co robić jako pierwsze na gta,<br />
2. Warto kupić konto </span><span style="color: #FF0000;"><span style="font-weight: bold;">BOSS </span></span><span style="color: #000000;">czy </span><span style="color: #32CD32;"><span style="font-weight: bold;">100k </span></span><span style="color: #000000;">za tą samą cenę 20zl (PSC),</span><br />
3. Skąd można wziąść dobrą broń.<br />
<br />
<br />
<span style="color: #FFA500;"><span style="font-weight: bold;"><div style="text-align: center;">1.<br />
</div></span></span><span style="color: #000000;">Wchodząc na serwer pierwszy raz zadajesz sobie następujące pytania:<br />
</span><span style="color: #A9A9A9;">- Jak mam tutaj zarobić?<br />
- Co najpierw robić aby mieć pieniądze?<br />
- Jak zdobyć broń?<br />
</span><span style="color: #000000;">Nie dawno na spawn powstał magazyn w którym zbieramy paczki i sprzedajemy za nie wielkie pieniądze. Kolejnym sposobem jest szukanie skrzyń na mapie gta. W skrzyni możesz znaleźć: </span><span style="color: #4B0082;">amunicje, jedzenie, granaty, część zbroji, miksturę, pistolet oraz 1-15&#36;</span><span style="color: #000000;">. Każda ze skrzyń odnawia się co 2 minuty od jej otworzenia. Grając w między czasie na mapie pojawia się </span><span style="color: #6B8E23;"><span style="font-weight: bold;">wojskowa skrzynia </span></span><span style="color: #000000;">w której znajdziemy np.: </span><span style="color: #4B0082;">miksturę, karabin mysliwski oraz 10-150&#36;</span><span style="color: #000000;">.</span><br />
<br />
<span style="color: #FFA500;"><span style="font-weight: bold;"><div style="text-align: center;">2.<br />
</div></span></span><span style="color: #000000;">Warto kupić konto </span><span style="color: #FF0000;"><span style="font-weight: bold;">BOSS </span></span><span style="color: #000000;">czy </span><span style="color: #32CD32;"><span style="font-weight: bold;">100k</span></span><span style="color: #000000;">?<br />
</span><span style="color: #000080;"><span style="font-weight: bold;">BOSS posiada:<br />
</span></span><span style="color: #A9A9A9;">-&gt; /kit amunicja - z tego co pamiętam 1x 64 po kazdym rodzaju. (co 24h)<br />
-&gt; /kit auto - 1 auto. Jeśli posiadasz bossa to możesz jeździć bez prawa jazdy. (co 24h)<br />
-&gt; /kit boss - 1 karabin maszynowy MP5 - wygląda tak samo jak SCAR-L. (co 15 dni - chyba)<br />
<br />
</span><span style="color: #000000;">Moim zdaniem opłaca się kupić 100k, ponieważ kupując bossa nie dostajesz zbroji ani niczego - kiedy kupisz bossa i tak jesteś bez pieniędzy. Kupując 100k możesz w sklepie na spawn zakupić całą zbroje paramilitarną. Sam mam zbroje paramilitarną więc wiem, że był to dobry wybor - teraz mogę robić banki itd. <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" /><br />
<br />
</span><span style="color: #FFA500;"><span style="font-weight: bold;"><div style="text-align: center;">3.<br />
</div></span></span><span style="color: #000000;">No tak, bez broni ani rusz...<br />
Bronie można zdobyć na spawn w sklepie wymieniając głowy różnych mafii na daną broń. Członków różnych mafii znajdziesz na mapie lub łatwym sposobem możesz teleportować się do nich po przez przystanek autobusowy lub telefon/laptop.<br />
Najłatwiejszym sposobem jest zarabianie pieniędzy i kupowanie broni z ofert /oferty. Bronie możesz znaleźć również w skrzynkach na mapie czyli pistolet lub dubeltowke.<br />
</span><br />
<span style="color: #FF0000;"><div style="text-align: center;"><span style="font-weight: bold;"><span style="font-style: italic;">Ja jako Mr_0VERR również zbieram główki więc sprzedaje bardzo tanio bronie na ofertach - zapraszam do kupna <img class="postimage" src="images/smilies/rolleyes.gif" style="vertical-align: middle;" border="0" alt="Rolleyes" title="Rolleyes" /><br />
</span></span></span></div>]]></description>
			<content:encoded><![CDATA[<span style="color: #000000;"><span style="font-weight: bold;"><div style="text-align: center;">Pewnie zastanawiasz się jak zacząć zarabiać na GTA 6? <img class="postimage" src="images/smilies/huh.gif" style="vertical-align: middle;" border="0" alt="Huh" title="Huh" /><br />
</div>W tym poradniku dowiesz się:<br />
<br />
</span>1. Co robić jako pierwsze na gta,<br />
2. Warto kupić konto </span><span style="color: #FF0000;"><span style="font-weight: bold;">BOSS </span></span><span style="color: #000000;">czy </span><span style="color: #32CD32;"><span style="font-weight: bold;">100k </span></span><span style="color: #000000;">za tą samą cenę 20zl (PSC),</span><br />
3. Skąd można wziąść dobrą broń.<br />
<br />
<br />
<span style="color: #FFA500;"><span style="font-weight: bold;"><div style="text-align: center;">1.<br />
</div></span></span><span style="color: #000000;">Wchodząc na serwer pierwszy raz zadajesz sobie następujące pytania:<br />
</span><span style="color: #A9A9A9;">- Jak mam tutaj zarobić?<br />
- Co najpierw robić aby mieć pieniądze?<br />
- Jak zdobyć broń?<br />
</span><span style="color: #000000;">Nie dawno na spawn powstał magazyn w którym zbieramy paczki i sprzedajemy za nie wielkie pieniądze. Kolejnym sposobem jest szukanie skrzyń na mapie gta. W skrzyni możesz znaleźć: </span><span style="color: #4B0082;">amunicje, jedzenie, granaty, część zbroji, miksturę, pistolet oraz 1-15&#36;</span><span style="color: #000000;">. Każda ze skrzyń odnawia się co 2 minuty od jej otworzenia. Grając w między czasie na mapie pojawia się </span><span style="color: #6B8E23;"><span style="font-weight: bold;">wojskowa skrzynia </span></span><span style="color: #000000;">w której znajdziemy np.: </span><span style="color: #4B0082;">miksturę, karabin mysliwski oraz 10-150&#36;</span><span style="color: #000000;">.</span><br />
<br />
<span style="color: #FFA500;"><span style="font-weight: bold;"><div style="text-align: center;">2.<br />
</div></span></span><span style="color: #000000;">Warto kupić konto </span><span style="color: #FF0000;"><span style="font-weight: bold;">BOSS </span></span><span style="color: #000000;">czy </span><span style="color: #32CD32;"><span style="font-weight: bold;">100k</span></span><span style="color: #000000;">?<br />
</span><span style="color: #000080;"><span style="font-weight: bold;">BOSS posiada:<br />
</span></span><span style="color: #A9A9A9;">-&gt; /kit amunicja - z tego co pamiętam 1x 64 po kazdym rodzaju. (co 24h)<br />
-&gt; /kit auto - 1 auto. Jeśli posiadasz bossa to możesz jeździć bez prawa jazdy. (co 24h)<br />
-&gt; /kit boss - 1 karabin maszynowy MP5 - wygląda tak samo jak SCAR-L. (co 15 dni - chyba)<br />
<br />
</span><span style="color: #000000;">Moim zdaniem opłaca się kupić 100k, ponieważ kupując bossa nie dostajesz zbroji ani niczego - kiedy kupisz bossa i tak jesteś bez pieniędzy. Kupując 100k możesz w sklepie na spawn zakupić całą zbroje paramilitarną. Sam mam zbroje paramilitarną więc wiem, że był to dobry wybor - teraz mogę robić banki itd. <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" /><br />
<br />
</span><span style="color: #FFA500;"><span style="font-weight: bold;"><div style="text-align: center;">3.<br />
</div></span></span><span style="color: #000000;">No tak, bez broni ani rusz...<br />
Bronie można zdobyć na spawn w sklepie wymieniając głowy różnych mafii na daną broń. Członków różnych mafii znajdziesz na mapie lub łatwym sposobem możesz teleportować się do nich po przez przystanek autobusowy lub telefon/laptop.<br />
Najłatwiejszym sposobem jest zarabianie pieniędzy i kupowanie broni z ofert /oferty. Bronie możesz znaleźć również w skrzynkach na mapie czyli pistolet lub dubeltowke.<br />
</span><br />
<span style="color: #FF0000;"><div style="text-align: center;"><span style="font-weight: bold;"><span style="font-style: italic;">Ja jako Mr_0VERR również zbieram główki więc sprzedaje bardzo tanio bronie na ofertach - zapraszam do kupna <img class="postimage" src="images/smilies/rolleyes.gif" style="vertical-align: middle;" border="0" alt="Rolleyes" title="Rolleyes" /><br />
</span></span></span></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Poradnik jak miec skina MC]]></title>
			<link>https://mineserver.pl/Temat-Poradnik-jak-miec-skina-MC</link>
			<pubDate>Sun, 30 Jun 2019 16:07:45 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Poradnik-jak-miec-skina-MC</guid>
			<description><![CDATA[<span style="font-weight: bold;">JAK MIEC SKINA DO MINECRAFT</span><br />
<span style="color: #FF0000;">Wiec tak po pierwsze wchodzimy na strone needcoolshoes i robimy sobie skina</span><br />
<span style="color: #006400;">Nastepnie wchodzimy zakladamy konto na stronie ELY.BY</span><br />
<span style="color: #483D8B;">Z tej strony pobieramy T Launcher a w launcherze dodajemy swoje konto ELY.BY</span><br />
URL=http://mineserwer.pl/uploadzdjec/?pm=6NU3]<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?dm=6NU3" border="0" alt="[Obrazek: image.php?dm=6NU3]" />[/URL]<br />
<br />
URL=http://mineserwer.pl/uploadzdjec/?pt=YEWN]<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?dt=YEWN" border="0" alt="[Obrazek: image.php?dt=YEWN]" />[/URL]<br />
No i po werydikacji mozemy cieszyc sie skinem <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /><br />
Wiem ze poradnik nie jest idealny ale by moze choc komus sie przyda.<br />
<hr />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=6NU3" border="0" alt="[Obrazek: image.php?di=6NU3]" /><br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=YEWN" border="0" alt="[Obrazek: image.php?di=YEWN]" /><br />
<hr />
Przepraszam za poprzednie obrazy <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" />]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;">JAK MIEC SKINA DO MINECRAFT</span><br />
<span style="color: #FF0000;">Wiec tak po pierwsze wchodzimy na strone needcoolshoes i robimy sobie skina</span><br />
<span style="color: #006400;">Nastepnie wchodzimy zakladamy konto na stronie ELY.BY</span><br />
<span style="color: #483D8B;">Z tej strony pobieramy T Launcher a w launcherze dodajemy swoje konto ELY.BY</span><br />
URL=http://mineserwer.pl/uploadzdjec/?pm=6NU3]<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?dm=6NU3" border="0" alt="[Obrazek: image.php?dm=6NU3]" />[/URL]<br />
<br />
URL=http://mineserwer.pl/uploadzdjec/?pt=YEWN]<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?dt=YEWN" border="0" alt="[Obrazek: image.php?dt=YEWN]" />[/URL]<br />
No i po werydikacji mozemy cieszyc sie skinem <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /><br />
Wiem ze poradnik nie jest idealny ale by moze choc komus sie przyda.<br />
<hr />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=6NU3" border="0" alt="[Obrazek: image.php?di=6NU3]" /><br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=YEWN" border="0" alt="[Obrazek: image.php?di=YEWN]" /><br />
<hr />
Przepraszam za poprzednie obrazy <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[PORADNIK] SkyBlock]]></title>
			<link>https://mineserver.pl/Temat-PORADNIK-SkyBlock-70048</link>
			<pubDate>Sun, 12 May 2019 14:41:34 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-PORADNIK-SkyBlock-70048</guid>
			<description><![CDATA[<div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size: large;">Witajcie <img class="postimage" src="images/smilies/wink.gif" style="vertical-align: middle;" border="0" alt="Wink" title="Wink" /></span></span><br />
<br />
Nie znalazłem w ostatnich poradnikach takiego o trybie SkyBlock, więc postanowiłem takowy napisać <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> Zaczynajmy!<br />
<br />
Symbolem trybu w menu wyboru trybów jest <span style="font-weight: bold;">wiaderko z lawą</span><br />
<br />
Po wejściu na tryb naszym oczom ukaże się spawn:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=YTFR" border="0" alt="[Obrazek: image.php?di=YTFR]" /><br />
<br />
Z tyłu znajduję się <span style="font-weight: bold;">Zarządca Wysp</span> u którego tworzymy wyspy:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=WWLP" border="0" alt="[Obrazek: image.php?di=WWLP]" /><br />
<br />
Po prawej widzimy budynek z <span style="font-weight: bold;">Zaklinaczem</span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=SUZO" border="0" alt="[Obrazek: image.php?di=SUZO]" /><br />
<span style="font-weight: bold;">Możemy u niego kupić spawnery oraz proszki różnych zwierząt czy mobów:</span><br />
- Świni<br />
- Krowy<br />
- Kurczaka<br />
- Owcy<br />
- Zombie<br />
- Szkieleta<br />
- Golema<br />
- Grzybowej Krowy<br />
- Kałamarnicy<br />
- Osadnika<br />
- Konia<br />
- Kota<br />
Kupimy tam także enderchest i <span style="font-weight: bold;">Zwój Restartu Wyspy</span> pozwalający zresetować wyspe, kiedy skończą się nam resety.<br />
<br />
Jest również sklep, oraz informacje o <span style="font-weight: bold;">Strefie Administracyjnej na TeamSpeaku</span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=424H" border="0" alt="[Obrazek: image.php?di=424H]" /><br />
<br />
Mamy również tablicę z podstawowymi komendami:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=BYXU" border="0" alt="[Obrazek: image.php?di=BYXU]" /><br />
<br />
Są też skrzynki, do których klucze możemy albo kupić, albo wydropić:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=0R9D" border="0" alt="[Obrazek: image.php?di=0R9D]" /><br />
<br />
Z boku znajduje się <span style="font-weight: bold;">Topka Wysp</span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=OCBJ" border="0" alt="[Obrazek: image.php?di=OCBJ]" /><br />
O miejsce w niej walczą gracze podczas całej edycji. A jest to opłacalne, ponieważ na nowej edycji topka z edycji poprzedniej znajduje się na <span style="font-style: italic;"><span style="font-weight: bold;">Wyspie Wspomnień</span></span>. Jest tam również topka poziomów itp z poprzedniej edycji:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=CAYI" border="0" alt="[Obrazek: image.php?di=CAYI]" /><br />
<br />
Idąc na wyspe wspomnień, możemy natknąć się na portal do <span style="font-weight: bold;">Krainy Nieumarłych</span>.<br />
Wszystko o niej opisane jest tu:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=EX2X" border="0" alt="[Obrazek: image.php?di=EX2X]" /><br />
<br />
Wróćmy na spawn. Znajduje się tam również tablica z listą dostępnych warpów. Obecnie mamy ich 21:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=82DD" border="0" alt="[Obrazek: image.php?di=82DD]" /><br />
<br />
Idąc dalej znajdziemy <span style="font-weight: bold;">Regulamin SkyBlocka</span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=IKAV" border="0" alt="[Obrazek: image.php?di=IKAV]" /><br />
Pełny regulamin serwerowy dostępny jest tutaj ---&gt; <a href="http://mineserwer.pl/Temat-Regulamin-Forum-oraz-Serwer%C3%B3w" target="_blank">http://mineserwer.pl/Temat-Regulamin-For...wer%C3%B3w</a><br />
Przydatny jest również Regulamin korzystania ze stoniarek, farm automatycznych oraz spawnerów dostępny tutaj ---&gt; <a href="http://mineserwer.pl/Temat-Regulamin-korzystania-ze-stoniarek-automat%C3%B3w-oraz-spawner%C3%B3w" target="_blank">http://mineserwer.pl/Temat-Regulamin-kor...ner%C3%B3w</a><br />
<br />
Następnie naszym oczom ukaże się budynek, w którym znajdują się informacje o <span style="font-style: italic;"><span style="font-weight: bold;">Gigantach</span></span> oraz <span style="font-style: italic;"><span style="font-weight: bold;">Bóstwach Podziemia</span></span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=O394" border="0" alt="[Obrazek: image.php?di=O394]" /><br />
<br />
Co to wogóle jest?<br />
<span style="font-weight: bold;">Giganty</span> - To olbrzymy-zombie. Związany jest z nimi quest, niezbędny do walki z Bóstwami Podziemia. Aby dojść do gigantów musimy udać się na /warp krypta i znaleźć Strażnika Bramy. Następnie potrzebny jest nam Klucz do Areny Gigantów, który możemy dropnąć z Obrońców Bramy. Dajemy klucz Strażnikowi i przenosi nas na <span style="font-weight: bold;">Arenę Gigantów</span>!<br />
A na niej 4 biomy - <span style="font-style: italic;"><span style="font-weight: bold;">dżunglowy, sawanna, dębowy i akacjowy</span></span>.<br />
Na każdym biomie 1 gigant. Odpowiednio: <span style="font-style: italic;"><span style="font-weight: bold;">Athos, Toas, Otis i Agrios</span></span>.<br />
I z każdego giganta dropi 1 drzewko: <span style="font-weight: bold;"><span style="font-style: italic;">Magiczne Drzewko Dżungli, Sawanny, Dębu i Akacji</span></span>.<br />
Drzewka możemy wymienić na spawnie we wspomnianym już wyżej budynku u <span style="font-weight: bold;"><span style="color: #800080;">Znawcy Gigantów</span></span> na <span style="font-style: italic;"><span style="font-weight: bold;"><span style="color: #DAA520;">Zwój Podziemia SkyBlock</span></span></span>. Pozwala nam on wejść do Podziemi SkyBlock, a tam czeka na nas kolejny quest również wspomniany wyżej - <span style="font-weight: bold;">Bóstwa Podziemia</span>.<br />
<br />
<span style="font-weight: bold;">Bóstwa Podziemia</span> - są 3 - <span style="font-weight: bold;"><span style="color: #696969;">Kronos, Hyperion i Rea</span></span>. Z każdego z nich dropi 1 przedmiot - <span style="color: #FF0000;"><span style="font-weight: bold;">Stal Kronosa</span></span>, <span style="color: #FF0000;"><span style="font-weight: bold;">Dusza Hyperiona</span></span> i <span style="color: #FF0000;"><span style="font-weight: bold;">Serce Rei</span></span>. Oddajemy je Nemesis, która znajduje się w tym samym budynku co Znawca Gigantów, a ona w zamian daje nam <span style="color: #32CD32;"><span style="font-weight: bold;">Skrzynie Bóstw Podziemia</span></span>. Ze skrzyni tej wypaść może nam parę rzeczy:<br />
- <span style="color: #800000;"><span style="font-weight: bold;">Hełm Hadesa</span></span>; szansa: <span style="font-weight: bold;">4%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Szata Dejaniry</span></span>; szansa: <span style="font-weight: bold;">4%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Spodnie Posejdona</span></span>; szansa: <span style="font-weight: bold;">5%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Buty Hermesa</span></span>; szansa: <span style="font-weight: bold;">5%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Łuk Artemidy</span></span>; szansa: <span style="font-weight: bold;">5%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Topór Herkulesa</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Miecz Aresa</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Miecz Damoklesa</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Magiczny Kilof Hefajstosa</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Kilof Podziemia</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">64 bloki ziemi</span></span>; szansa: <span style="font-weight: bold;">7%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;"> EnderChest</span></span>; szansa: <span style="font-weight: bold;">8%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">10 Złotych Jabłek</span></span>; szansa: <span style="font-weight: bold;">9%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">8 Magicznych Orbów</span></span>; szansa: <span style="font-weight: bold;">10%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">25 bloków diamentów</span></span>; szansa: <span style="font-weight: bold;">11%</span><br />
<br />
<span style="font-style: italic;"><span style="font-weight: bold;">Magiczny Orb</span></span> - To waluta trybu. Możemy je wymienić u Handlarza Orbów na spawnie na:<br />
- <span style="color: #00BFFF;"><span style="font-weight: bold;">Boski Hełm Życia</span>/<span style="color: #008000;">Siły</span></span> (15 orbów)<br />
- <span style="color: #00BFFF;"><span style="font-weight: bold;">Boska Zbroja Życia</span> /<span style="color: #008000;">Siły</span></span> (25 orbów)<br />
- <span style="color: #00BFFF;"><span style="font-weight: bold;">Boskie Nogawice Życia</span>/<span style="color: #008000;">Siły</span></span>  (15 orbów)<br />
- <span style="color: #00BFFF;"><span style="font-weight: bold;">Boskie Buty Życia</span>/<span style="color: #008000;">Siły</span></span> (10 orbów)<br />
Przedmioty te dają nam więcej życia lub wzmocnioną siłę.<br />
<br />
Oprócz questów opisanych powyżej mamy również inne:<br />
<span style="font-weight: bold;">Quest Dariusza </span>- Zmasakruj 100 szkieletów<br />
<span style="font-weight: bold;">Quest Rybaka</span> - Wspaniały Połów zdobądź zbiór ryb<br />
<span style="font-weight: bold;">Quest Romana</span> - Zbierz 700 kamieni<br />
<span style="font-weight: bold;">Quest Kucharza</span> - Zbierz 30 ciast dla Cukiernika<br />
<span style="font-weight: bold;">Quest Marcusa</span> - Gigantyczna Sprawa (Jajo smoka)<br />
<span style="font-weight: bold;">Quest Józka</span> - Zdobądź 300 obydianów<br />
<span style="font-weight: bold;">Quest Sentinela</span> - Pokonaj 5 Witherów<br />
<span style="font-weight: bold;">Quest Lady</span> - Zbierz 100 tulipanów z mojego ogrodu<br />
<span style="font-weight: bold;">Quest Wojownika</span> - Wyeliminuj okrutne stwory (zabij 25 zombie, szkieletów, pigzombie, creeperów, pająków i golemów)<br />
<br />
Jest również <span style="font-weight: bold;">Quest z Witherem</span>. Polega on na zdobyciu 3 głów czarnego szkieleta (na /warp event) oraz pokonaniu Withera. (W tym samym labiryncie na warp event musimy znaleźć kraty, za którymi spawnuje się wither).<br />
To zadanie oraz <span style="font-weight: bold;">Quest Bóstw Podziemia</span> są niezbędne, aby wejść do <span style="font-weight: bold;">netheru</span>.<br />
<hr />
<span style="font-weight: bold;">A teraz jakie kopalnie znajdują się na serwerze:</span><br />
Mamy oczywiście darmową kopalnie 100% stone (drop ze stone dostepny pod komendą /drop)<br />
oraz:<br />
- kopalnie węgla (20 000&#36; u Górnika)<br />
- kopalnie złota (25 000&#36; u Górnika)<br />
- kopalnie żelaza (30 000&#36; u Górnika)<br />
- kopalnie diamentów (35 000&#36; u Górnika)<br />
<span style="color: #FF6347;"><span style="text-decoration: underline;"><span style="font-weight: bold;">UWAGA!<br />
Muszą one być kupowane po kolei!</span></span></span><br />
<br />
Jest również kopalnia VIP (dostepna pod komendą /warp kopalniavip) oraz 2 kopalnie netherowe - jedna większa, drugia mniejsza.<br />
<hr />
<br />
Przydatne komendy:<br />
- <span style="font-weight: bold;">/oferty</span> - możemy tam kupić różne przedmioty wystawiane przez innych graczy, oraz sami je wystawiać<br />
- <span style="font-weight: bold;">/sprzedaj [cena] [ilosc]</span> - mozemy wystawic przedmiot na /oferty<br />
<br />
Ale może nie chcemy sprzedawać/kupować przedmiotu na ofertach? Możemy to zrobić również na /warp sklep oraz na własnej wyspie. Na wyspie musimy postawić skrzynie, włożyć do niej przedmiot, a następnie na skrzyni postawić tabliczkę. Na tabliczce piszemy:<br />
<span style="font-weight: bold;">[Twój nick]<br />
[Ilość]<br />
B/S(Buy lub Sell, w zależności czy chcemy aby gracze sprzedawali czy kupowali) [cena]<br />
[ID przedmiotu lub "?"(ID uzupełni się automatycznie)]</span><br />
<br />
czyli na przykład:<br />
<span style="font-weight: bold;">ralin7<br />
1<br />
B 10<br />
Diamond</span><br />
<br />
<hr />
<span style="font-weight: bold;">Ciekawostki:</span><br />
- Na SkyBlocku są <span style="font-weight: bold;">STONIARKI</span> (ich crafting dostępny na /warp kopalnia)<br />
- Trzymając w dłoni 10 ryb/kości/jabłek i naciskając shift + prawy przycisk myszy, możemy zespawnować kota/wilka/konia<br />
- Możemy zamienić postawiony obsydian na lawę klikając na niego wiaderkiem.<br />
- Wyspy nie można usunąć, można ją zresetować.<br />
- Kopalnia dla graczy resetuje się co 30 minut.<br />
<hr />
<span style="font-weight: bold;">Inne przydatne poradniki nt. SkyBlock:</span><br />
- <a href="http://mineserwer.pl/Temat-SKY-BLOCK-System-punkt%C3%B3w-wysp" target="_blank">http://mineserwer.pl/Temat-SKY-BLOCK-Sys...3%B3w-wysp</a>   (szczegółowy opis wartości bloków do lvl wyspy)<br />
- <a href="http://mineserwer.pl/Temat-Poradnik-WAKACYJNY-UPDATE-SKY-BLOCK-Nether-Wither" target="_blank">http://mineserwer.pl/Temat-Poradnik-WAKA...her-Wither</a>    (szczegółowy opis questu z Netherem i Witherem)<br />
- <a href="http://mineserwer.pl/Temat-PORADNIK-Statystyki-Umiej%C4%99tno%C5%9Bci-na-SkyBlock?highlight=mcmmo" target="_blank">http://mineserwer.pl/Temat-PORADNIK-Stat...ight=mcmmo</a>   (szczegółowy opis MCMMO)<br />
<br />
<span style="font-weight: bold;"><span style="font-size: large;"><span style="color: #0000CD;">Dziękuję Wam za przeczytanie, mam nadzieję, że poradnik się przydał i spodobał <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" /></span></span></span></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size: large;">Witajcie <img class="postimage" src="images/smilies/wink.gif" style="vertical-align: middle;" border="0" alt="Wink" title="Wink" /></span></span><br />
<br />
Nie znalazłem w ostatnich poradnikach takiego o trybie SkyBlock, więc postanowiłem takowy napisać <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> Zaczynajmy!<br />
<br />
Symbolem trybu w menu wyboru trybów jest <span style="font-weight: bold;">wiaderko z lawą</span><br />
<br />
Po wejściu na tryb naszym oczom ukaże się spawn:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=YTFR" border="0" alt="[Obrazek: image.php?di=YTFR]" /><br />
<br />
Z tyłu znajduję się <span style="font-weight: bold;">Zarządca Wysp</span> u którego tworzymy wyspy:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=WWLP" border="0" alt="[Obrazek: image.php?di=WWLP]" /><br />
<br />
Po prawej widzimy budynek z <span style="font-weight: bold;">Zaklinaczem</span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=SUZO" border="0" alt="[Obrazek: image.php?di=SUZO]" /><br />
<span style="font-weight: bold;">Możemy u niego kupić spawnery oraz proszki różnych zwierząt czy mobów:</span><br />
- Świni<br />
- Krowy<br />
- Kurczaka<br />
- Owcy<br />
- Zombie<br />
- Szkieleta<br />
- Golema<br />
- Grzybowej Krowy<br />
- Kałamarnicy<br />
- Osadnika<br />
- Konia<br />
- Kota<br />
Kupimy tam także enderchest i <span style="font-weight: bold;">Zwój Restartu Wyspy</span> pozwalający zresetować wyspe, kiedy skończą się nam resety.<br />
<br />
Jest również sklep, oraz informacje o <span style="font-weight: bold;">Strefie Administracyjnej na TeamSpeaku</span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=424H" border="0" alt="[Obrazek: image.php?di=424H]" /><br />
<br />
Mamy również tablicę z podstawowymi komendami:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=BYXU" border="0" alt="[Obrazek: image.php?di=BYXU]" /><br />
<br />
Są też skrzynki, do których klucze możemy albo kupić, albo wydropić:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=0R9D" border="0" alt="[Obrazek: image.php?di=0R9D]" /><br />
<br />
Z boku znajduje się <span style="font-weight: bold;">Topka Wysp</span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=OCBJ" border="0" alt="[Obrazek: image.php?di=OCBJ]" /><br />
O miejsce w niej walczą gracze podczas całej edycji. A jest to opłacalne, ponieważ na nowej edycji topka z edycji poprzedniej znajduje się na <span style="font-style: italic;"><span style="font-weight: bold;">Wyspie Wspomnień</span></span>. Jest tam również topka poziomów itp z poprzedniej edycji:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=CAYI" border="0" alt="[Obrazek: image.php?di=CAYI]" /><br />
<br />
Idąc na wyspe wspomnień, możemy natknąć się na portal do <span style="font-weight: bold;">Krainy Nieumarłych</span>.<br />
Wszystko o niej opisane jest tu:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=EX2X" border="0" alt="[Obrazek: image.php?di=EX2X]" /><br />
<br />
Wróćmy na spawn. Znajduje się tam również tablica z listą dostępnych warpów. Obecnie mamy ich 21:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=82DD" border="0" alt="[Obrazek: image.php?di=82DD]" /><br />
<br />
Idąc dalej znajdziemy <span style="font-weight: bold;">Regulamin SkyBlocka</span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=IKAV" border="0" alt="[Obrazek: image.php?di=IKAV]" /><br />
Pełny regulamin serwerowy dostępny jest tutaj ---&gt; <a href="http://mineserwer.pl/Temat-Regulamin-Forum-oraz-Serwer%C3%B3w" target="_blank">http://mineserwer.pl/Temat-Regulamin-For...wer%C3%B3w</a><br />
Przydatny jest również Regulamin korzystania ze stoniarek, farm automatycznych oraz spawnerów dostępny tutaj ---&gt; <a href="http://mineserwer.pl/Temat-Regulamin-korzystania-ze-stoniarek-automat%C3%B3w-oraz-spawner%C3%B3w" target="_blank">http://mineserwer.pl/Temat-Regulamin-kor...ner%C3%B3w</a><br />
<br />
Następnie naszym oczom ukaże się budynek, w którym znajdują się informacje o <span style="font-style: italic;"><span style="font-weight: bold;">Gigantach</span></span> oraz <span style="font-style: italic;"><span style="font-weight: bold;">Bóstwach Podziemia</span></span>:<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=O394" border="0" alt="[Obrazek: image.php?di=O394]" /><br />
<br />
Co to wogóle jest?<br />
<span style="font-weight: bold;">Giganty</span> - To olbrzymy-zombie. Związany jest z nimi quest, niezbędny do walki z Bóstwami Podziemia. Aby dojść do gigantów musimy udać się na /warp krypta i znaleźć Strażnika Bramy. Następnie potrzebny jest nam Klucz do Areny Gigantów, który możemy dropnąć z Obrońców Bramy. Dajemy klucz Strażnikowi i przenosi nas na <span style="font-weight: bold;">Arenę Gigantów</span>!<br />
A na niej 4 biomy - <span style="font-style: italic;"><span style="font-weight: bold;">dżunglowy, sawanna, dębowy i akacjowy</span></span>.<br />
Na każdym biomie 1 gigant. Odpowiednio: <span style="font-style: italic;"><span style="font-weight: bold;">Athos, Toas, Otis i Agrios</span></span>.<br />
I z każdego giganta dropi 1 drzewko: <span style="font-weight: bold;"><span style="font-style: italic;">Magiczne Drzewko Dżungli, Sawanny, Dębu i Akacji</span></span>.<br />
Drzewka możemy wymienić na spawnie we wspomnianym już wyżej budynku u <span style="font-weight: bold;"><span style="color: #800080;">Znawcy Gigantów</span></span> na <span style="font-style: italic;"><span style="font-weight: bold;"><span style="color: #DAA520;">Zwój Podziemia SkyBlock</span></span></span>. Pozwala nam on wejść do Podziemi SkyBlock, a tam czeka na nas kolejny quest również wspomniany wyżej - <span style="font-weight: bold;">Bóstwa Podziemia</span>.<br />
<br />
<span style="font-weight: bold;">Bóstwa Podziemia</span> - są 3 - <span style="font-weight: bold;"><span style="color: #696969;">Kronos, Hyperion i Rea</span></span>. Z każdego z nich dropi 1 przedmiot - <span style="color: #FF0000;"><span style="font-weight: bold;">Stal Kronosa</span></span>, <span style="color: #FF0000;"><span style="font-weight: bold;">Dusza Hyperiona</span></span> i <span style="color: #FF0000;"><span style="font-weight: bold;">Serce Rei</span></span>. Oddajemy je Nemesis, która znajduje się w tym samym budynku co Znawca Gigantów, a ona w zamian daje nam <span style="color: #32CD32;"><span style="font-weight: bold;">Skrzynie Bóstw Podziemia</span></span>. Ze skrzyni tej wypaść może nam parę rzeczy:<br />
- <span style="color: #800000;"><span style="font-weight: bold;">Hełm Hadesa</span></span>; szansa: <span style="font-weight: bold;">4%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Szata Dejaniry</span></span>; szansa: <span style="font-weight: bold;">4%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Spodnie Posejdona</span></span>; szansa: <span style="font-weight: bold;">5%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Buty Hermesa</span></span>; szansa: <span style="font-weight: bold;">5%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Łuk Artemidy</span></span>; szansa: <span style="font-weight: bold;">5%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Topór Herkulesa</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Miecz Aresa</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Miecz Damoklesa</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Magiczny Kilof Hefajstosa</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">Kilof Podziemia</span></span>; szansa: <span style="font-weight: bold;">6%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">64 bloki ziemi</span></span>; szansa: <span style="font-weight: bold;">7%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;"> EnderChest</span></span>; szansa: <span style="font-weight: bold;">8%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">10 Złotych Jabłek</span></span>; szansa: <span style="font-weight: bold;">9%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">8 Magicznych Orbów</span></span>; szansa: <span style="font-weight: bold;">10%</span><br />
- <span style="color: #800000;"><span style="font-weight: bold;">25 bloków diamentów</span></span>; szansa: <span style="font-weight: bold;">11%</span><br />
<br />
<span style="font-style: italic;"><span style="font-weight: bold;">Magiczny Orb</span></span> - To waluta trybu. Możemy je wymienić u Handlarza Orbów na spawnie na:<br />
- <span style="color: #00BFFF;"><span style="font-weight: bold;">Boski Hełm Życia</span>/<span style="color: #008000;">Siły</span></span> (15 orbów)<br />
- <span style="color: #00BFFF;"><span style="font-weight: bold;">Boska Zbroja Życia</span> /<span style="color: #008000;">Siły</span></span> (25 orbów)<br />
- <span style="color: #00BFFF;"><span style="font-weight: bold;">Boskie Nogawice Życia</span>/<span style="color: #008000;">Siły</span></span>  (15 orbów)<br />
- <span style="color: #00BFFF;"><span style="font-weight: bold;">Boskie Buty Życia</span>/<span style="color: #008000;">Siły</span></span> (10 orbów)<br />
Przedmioty te dają nam więcej życia lub wzmocnioną siłę.<br />
<br />
Oprócz questów opisanych powyżej mamy również inne:<br />
<span style="font-weight: bold;">Quest Dariusza </span>- Zmasakruj 100 szkieletów<br />
<span style="font-weight: bold;">Quest Rybaka</span> - Wspaniały Połów zdobądź zbiór ryb<br />
<span style="font-weight: bold;">Quest Romana</span> - Zbierz 700 kamieni<br />
<span style="font-weight: bold;">Quest Kucharza</span> - Zbierz 30 ciast dla Cukiernika<br />
<span style="font-weight: bold;">Quest Marcusa</span> - Gigantyczna Sprawa (Jajo smoka)<br />
<span style="font-weight: bold;">Quest Józka</span> - Zdobądź 300 obydianów<br />
<span style="font-weight: bold;">Quest Sentinela</span> - Pokonaj 5 Witherów<br />
<span style="font-weight: bold;">Quest Lady</span> - Zbierz 100 tulipanów z mojego ogrodu<br />
<span style="font-weight: bold;">Quest Wojownika</span> - Wyeliminuj okrutne stwory (zabij 25 zombie, szkieletów, pigzombie, creeperów, pająków i golemów)<br />
<br />
Jest również <span style="font-weight: bold;">Quest z Witherem</span>. Polega on na zdobyciu 3 głów czarnego szkieleta (na /warp event) oraz pokonaniu Withera. (W tym samym labiryncie na warp event musimy znaleźć kraty, za którymi spawnuje się wither).<br />
To zadanie oraz <span style="font-weight: bold;">Quest Bóstw Podziemia</span> są niezbędne, aby wejść do <span style="font-weight: bold;">netheru</span>.<br />
<hr />
<span style="font-weight: bold;">A teraz jakie kopalnie znajdują się na serwerze:</span><br />
Mamy oczywiście darmową kopalnie 100% stone (drop ze stone dostepny pod komendą /drop)<br />
oraz:<br />
- kopalnie węgla (20 000&#36; u Górnika)<br />
- kopalnie złota (25 000&#36; u Górnika)<br />
- kopalnie żelaza (30 000&#36; u Górnika)<br />
- kopalnie diamentów (35 000&#36; u Górnika)<br />
<span style="color: #FF6347;"><span style="text-decoration: underline;"><span style="font-weight: bold;">UWAGA!<br />
Muszą one być kupowane po kolei!</span></span></span><br />
<br />
Jest również kopalnia VIP (dostepna pod komendą /warp kopalniavip) oraz 2 kopalnie netherowe - jedna większa, drugia mniejsza.<br />
<hr />
<br />
Przydatne komendy:<br />
- <span style="font-weight: bold;">/oferty</span> - możemy tam kupić różne przedmioty wystawiane przez innych graczy, oraz sami je wystawiać<br />
- <span style="font-weight: bold;">/sprzedaj [cena] [ilosc]</span> - mozemy wystawic przedmiot na /oferty<br />
<br />
Ale może nie chcemy sprzedawać/kupować przedmiotu na ofertach? Możemy to zrobić również na /warp sklep oraz na własnej wyspie. Na wyspie musimy postawić skrzynie, włożyć do niej przedmiot, a następnie na skrzyni postawić tabliczkę. Na tabliczce piszemy:<br />
<span style="font-weight: bold;">[Twój nick]<br />
[Ilość]<br />
B/S(Buy lub Sell, w zależności czy chcemy aby gracze sprzedawali czy kupowali) [cena]<br />
[ID przedmiotu lub "?"(ID uzupełni się automatycznie)]</span><br />
<br />
czyli na przykład:<br />
<span style="font-weight: bold;">ralin7<br />
1<br />
B 10<br />
Diamond</span><br />
<br />
<hr />
<span style="font-weight: bold;">Ciekawostki:</span><br />
- Na SkyBlocku są <span style="font-weight: bold;">STONIARKI</span> (ich crafting dostępny na /warp kopalnia)<br />
- Trzymając w dłoni 10 ryb/kości/jabłek i naciskając shift + prawy przycisk myszy, możemy zespawnować kota/wilka/konia<br />
- Możemy zamienić postawiony obsydian na lawę klikając na niego wiaderkiem.<br />
- Wyspy nie można usunąć, można ją zresetować.<br />
- Kopalnia dla graczy resetuje się co 30 minut.<br />
<hr />
<span style="font-weight: bold;">Inne przydatne poradniki nt. SkyBlock:</span><br />
- <a href="http://mineserwer.pl/Temat-SKY-BLOCK-System-punkt%C3%B3w-wysp" target="_blank">http://mineserwer.pl/Temat-SKY-BLOCK-Sys...3%B3w-wysp</a>   (szczegółowy opis wartości bloków do lvl wyspy)<br />
- <a href="http://mineserwer.pl/Temat-Poradnik-WAKACYJNY-UPDATE-SKY-BLOCK-Nether-Wither" target="_blank">http://mineserwer.pl/Temat-Poradnik-WAKA...her-Wither</a>    (szczegółowy opis questu z Netherem i Witherem)<br />
- <a href="http://mineserwer.pl/Temat-PORADNIK-Statystyki-Umiej%C4%99tno%C5%9Bci-na-SkyBlock?highlight=mcmmo" target="_blank">http://mineserwer.pl/Temat-PORADNIK-Stat...ight=mcmmo</a>   (szczegółowy opis MCMMO)<br />
<br />
<span style="font-weight: bold;"><span style="font-size: large;"><span style="color: #0000CD;">Dziękuję Wam za przeczytanie, mam nadzieję, że poradnik się przydał i spodobał <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" /></span></span></span></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Poradnik] Plugin Mythic Mobs]]></title>
			<link>https://mineserver.pl/Temat-Poradnik-Plugin-Mythic-Mobs</link>
			<pubDate>Thu, 21 Mar 2019 15:41:37 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Poradnik-Plugin-Mythic-Mobs</guid>
			<description><![CDATA[<div style="text-align: center;"><img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=3EZ8" border="0" alt="[Obrazek: image.php?di=3EZ8]" /></div>
<br />
Hejaa, to mój 1-szy poradnik, więc w razie jakiś poprawek/pytań piszcie pod tym wątkiem<br />
<br />
<div style="text-align: center;"><span style="font-weight: bold;">A więc czym jest plugin Mythic Mobs?</span><br />
Krótko, zwięźle i na temat - Plugin do tworzenia mobów/przedmiotów/spawnerów/dropu<br />
<br />
<span style="font-weight: bold;">Jak go zainstalować?</span></div><div style="text-align: center;">Serwer Spigot - <a href="https://www.spigotmc.org/resources/mythicmobs.5702/" target="_blank">https://www.spigotmc.org/resources/mythicmobs.5702/</a><br />
Serwer Bukkit - <a href="https://dev.bukkit.org/projects/mythicmobs" target="_blank">https://dev.bukkit.org/projects/mythicmobs</a></div>
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Permisje</span><br />
mythicmobs.admin - Daje dostęp do używania całego pluginu<br />
mythicmobs.command.[KOMENDA] - Daję dostęp do używania jednej z komend pluginu</div>
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Tworzenie Moba</span></div>
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">Mob1</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Mob1&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Nazwa&nbsp;naszego&nbsp;Moba<br />&nbsp;&nbsp;Type</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Skeleton&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Rodzaj&nbsp;moba<br />&nbsp;&nbsp;Display</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'&amp;6Mob1'&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Nazwa&nbsp;Moba<br />&nbsp;&nbsp;Health</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">20&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Życie&nbsp;potwora<br />&nbsp;&nbsp;Damage</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Damage&nbsp;zadawany&nbsp;przez&nbsp;potwora<br />&nbsp;&nbsp;Options</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Opcje&nbsp;Moba<br />&nbsp;&nbsp;&nbsp;&nbsp;MovementSpeed</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Zwiększamy</span><span style="color: #007700">/</span><span style="color: #0000BB">zmniejszamy&nbsp;szybkośc&nbsp;moba<br />&nbsp;&nbsp;Equipment</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">wyposażenie&nbsp;potwora<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Przedmiot1</span><span style="color: #007700">:</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Przedmiot&nbsp;trzymany&nbsp;w&nbsp;ręce<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Przedmiot2</span><span style="color: #007700">:</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">-&nbsp;&nbsp;(</span><span style="color: #0000BB">Buty</span><span style="color: #007700">)<br />&nbsp;&nbsp;-&nbsp;</span><span style="color: #0000BB">Przedmiot3</span><span style="color: #007700">:</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #007700">-&nbsp;&nbsp;(</span><span style="color: #0000BB">Spodnie</span><span style="color: #007700">)<br />&nbsp;&nbsp;-&nbsp;</span><span style="color: #0000BB">Przedmiot4</span><span style="color: #007700">:</span><span style="color: #0000BB">3&nbsp;</span><span style="color: #007700">-&nbsp;&nbsp;(</span><span style="color: #0000BB">Klata</span><span style="color: #007700">)<br />&nbsp;&nbsp;-&nbsp;</span><span style="color: #0000BB">Przedmiot5</span><span style="color: #007700">:</span><span style="color: #0000BB">4&nbsp;</span><span style="color: #007700">-&nbsp;&nbsp;(</span><span style="color: #0000BB">Hełm</span><span style="color: #007700">)<br /></span><span style="color: #0000BB">Zamiast&nbsp;Przedmiot1</span><span style="color: #007700">;</span><span style="color: #0000BB">2</span><span style="color: #007700">;</span><span style="color: #0000BB">3</span><span style="color: #007700">;</span><span style="color: #0000BB">4</span><span style="color: #007700">;</span><span style="color: #0000BB">5&nbsp;można&nbsp;dać&nbsp;ID&nbsp;przedmiotu&nbsp;zgodnie&nbsp;z&nbsp;liczbą&nbsp;po&nbsp;dwukropku&nbsp;<br /></span></code></div></div></div>
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Opcje mobów</span></div>
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">AlwayShowName</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ciągłe&nbsp;pokazywanie&nbsp;nazwy&nbsp;naszego&nbsp;moba'<br /></span><span style="color: #0000BB">AttackSpeed</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Szybkość&nbsp;ataku&nbsp;naszego&nbsp;moba'<br /></span><span style="color: #0000BB">Collidable</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Tzw.&nbsp;Kolizje&nbsp;z&nbsp;innymi&nbsp;mobami'<br /></span><span style="color: #0000BB">Despawn</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;znikać&nbsp;gdy&nbsp;w&nbsp;pobliżu&nbsp;nie&nbsp;ma&nbsp;żadnego&nbsp;gracza'<br /></span><span style="color: #0000BB">FollowRange</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Maksymalny&nbsp;dystans&nbsp;na&nbsp;jaki&nbsp;mob&nbsp;będzie&nbsp;atakować&nbsp;gracza&nbsp;od&nbsp;spawnu&nbsp;tego&nbsp;moba'<br /></span><span style="color: #0000BB">Glowing</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;świecić&nbsp;w&nbsp;ciemności'<br /></span><span style="color: #0000BB">Invincible</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;być&nbsp;niewidzialny'<br /></span><span style="color: #0000BB">Interactable</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Mozliwosc&nbsp;niszczenia&nbsp;przez&nbsp;moba&nbsp;np.&nbsp;Drzwi'<br /></span><span style="color: #0000BB">KnockbackResistance</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Ochrona&nbsp;przed&nbsp;odrzutem&nbsp;#&nbsp;0.1&nbsp;=&nbsp;10%,&nbsp;1&nbsp;=&nbsp;100%'<br /></span><span style="color: #0000BB">MaxCombatDistance</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Maksymalna&nbsp;odległość&nbsp;na&nbsp;jaką&nbsp;mob&nbsp;będzie&nbsp;atakować&nbsp;gracza&nbsp;#&nbsp;Jezeli&nbsp;gracz&nbsp;znajdzie&nbsp;się&nbsp;poza&nbsp;tym&nbsp;zasięgiem&nbsp;mob&nbsp;go&nbsp;zostawi'<br /></span><span style="color: #0000BB">MovementSpeed</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Szybkość&nbsp;chodzenia&nbsp;moba'<br /></span><span style="color: #0000BB">Silent</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;wydawać&nbsp;dźwięki'<br /></span><span style="color: #0000BB">ShowHealth</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;pokazywać&nbsp;swoją&nbsp;ilość&nbsp;życia'<br /></span><span style="color: #0000BB">PreventRandomEquipment</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;spawnować&nbsp;się&nbsp;z&nbsp;losowymi&nbsp;itemami'<br /></span><span style="color: #0000BB">PreventRenaming</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;może&nbsp;mieć&nbsp;zmienioną&nbsp;nazwe&nbsp;za&nbsp;pomocą&nbsp;NameTaga'<br /></span><span style="color: #0000BB">PreventOtherDrops</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;NIE&nbsp;MOŻE&nbsp;dropnąć&nbsp;przedmiotu&nbsp;który&nbsp;zostaje&nbsp;w&nbsp;nim&nbsp;ustawiony'<br /></span><span style="color: #0000BB">PreventMobKillDrops</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;NIE&nbsp;MOŻE&nbsp;dropnąć&nbsp;przedmiotu&nbsp;który&nbsp;zostaje&nbsp;naturalnie&nbsp;przez&nbsp;niego&nbsp;dropnięty'<br /></span><span style="color: #0000BB">PreventItemPickup</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;może&nbsp;podniosić&nbsp;przedmioty&nbsp;z&nbsp;ziemi'<br /></span><span style="color: #0000BB">Persistent</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;może&nbsp;być&nbsp;ochroniony&nbsp;przed&nbsp;komendą&nbsp;"mm&nbsp;mobs&nbsp;killall"&nbsp;i&nbsp;ma&nbsp;ustawia&nbsp;"Despawn"&nbsp;na&nbsp;FALSE'<br /></span><span style="color: #0000BB">NoGravity</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;na&nbsp;moba&nbsp;ma&nbsp;NIE&nbsp;DZIAŁAĆ&nbsp;grawitacja'<br /></span><span style="color: #FF8000">#Niektóre&nbsp;opcje&nbsp;działają&nbsp;tylko&nbsp;i&nbsp;wyłącznie&nbsp;na&nbsp;1.12&nbsp;wzwyż&nbsp;(wersja&nbsp;MM&nbsp;2.4&nbsp;bodajże)&nbsp;<br /></span></code></div></div></div>
<br />
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Tworzenie itemu</span></div>
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">Przedmiot1</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Nazwa&nbsp;przedmiotu<br />&nbsp;&nbsp;Id</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">268&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">ID&nbsp;przedmiotu<br />&nbsp;&nbsp;Data</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Wartość&nbsp;przedmiotu</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">domyślna&nbsp;wartość&nbsp;to&nbsp;0<br />&nbsp;&nbsp;Amount</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Ilość<br />&nbsp;&nbsp;Display</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'&amp;4Miecz&nbsp;Prawdy'&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Nazwa&nbsp;wyświetlanego&nbsp;przedmiotu<br />&nbsp;&nbsp;Lore</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Opis&nbsp;przedmiotu<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ten&nbsp;miecz&nbsp;wyjawi&nbsp;prawde'&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'nawet&nbsp;ta&nbsp;najciemniejsza&nbsp;xd'<br />&nbsp;&nbsp;</span><span style="color: #0000BB">Enchantments</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Enchanty<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Damage_ALL</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Enchant&nbsp;przedmiotu</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">w&nbsp;tym&nbsp;przypadku&nbsp;sharpness&nbsp;2<br />&nbsp;&nbsp;Options</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Opcje&nbsp;itemu<br />&nbsp;&nbsp;&nbsp;&nbsp;MovementSpeed</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Przykładowa&nbsp;wartość&nbsp;chodzenia&nbsp;<br /></span></code></div></div></div>
<br />
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Enchanty przedmiotów</span></div>
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #DD0000">'✰&nbsp;ENCHANTY&nbsp;NA&nbsp;MIECZE&nbsp;✰'<br /></span><span style="color: #0000BB">DAMAGE_ATHROBOTS<br />FIRE_ASPECT&nbsp;<br />KNOCKBACK<br />DAMAGE_ALL&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Sharpness'<br /></span><span style="color: #0000BB">DAMAGE_UNDEAD&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Smite'<br /></span><span style="color: #0000BB">LOOT_BONUS_MOBS&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Looting'<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'✰&nbsp;ENCHANTY&nbsp;NA&nbsp;ŁUKI&nbsp;✰'<br /></span><span style="color: #0000BB">ARROW_DAMAGE&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Power'<br /></span><span style="color: #0000BB">ARROW_FIRE&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Flame'<br /></span><span style="color: #0000BB">ARROW_KNOCKBACK&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Punch'<br /></span><span style="color: #0000BB">ARROW_INFINITE&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Infinity'<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'✰&nbsp;ENCHANTY&nbsp;NA&nbsp;NARZĘDZIA&nbsp;✰'<br /></span><span style="color: #0000BB">DIG_SPEED&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Efficiency'<br /></span><span style="color: #0000BB">DURABILITY&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Unbreaking'<br /></span><span style="color: #0000BB">LOOT_BONUS_BLOCK&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Fortune'<br /></span><span style="color: #0000BB">SILK_TOUCH&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zwykły,&nbsp;zwyczajny&nbsp;Silk&nbsp;Touch'<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'✰&nbsp;ENCHANTY&nbsp;NA&nbsp;ZBROJE&nbsp;✰'<br /></span><span style="color: #0000BB">Tutaj&nbsp;jest&nbsp;trochę&nbsp;więcej</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">więc&nbsp;nie&nbsp;będe&nbsp;przy&nbsp;każdym&nbsp;dodawał&nbsp;notki</span><span style="color: #007700">...<br /></span><span style="color: #0000BB">OXYGEN&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;Respiration'<br /></span><span style="color: #0000BB">PROTECTION_ENVIRONMENTAL&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;Protection'<br /></span><span style="color: #0000BB">PROTECTION_FALL<br />PROTECTION_FIRE<br />PROTECTION_PROJECTILE<br />PROTECTION_EXPLOSIONS<br />THORNS<br />WATER_WORKER&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;enchantu&nbsp;Aqua&nbsp;Infinity'<br /></span><span style="color: #0000BB">DEPTH_STRIDER<br />FROST_WALKER&nbsp;<br /></span></code></div></div></div>
<br />
<br />
<span style="font-weight: bold;"><div style="text-align: center;">Tworzenie Spawneru</div></span><ul>
<li>Stajemy w miejscu w którym chcemy postawić spawner</li>
<li>Kierujemy wzrok naszej postaci w miejsce w którym ma być spawner</li>
<li>Wpisujemy komende /mm s create spawner1 (Nazwa spawneru) Mob1 (nazwa moba)<br />
</li></ul>
<br />
<span style="font-size: small;"><div style="text-align: right;">Wszystkie informacje, które użyłem w tym wątku są wzięte z oficjalnej strony MythicMobs/forum/poradników/własnej wiedzy...<br />
W razie problemów śmiało piszcie, Apfulek <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" /></div></span>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=3EZ8" border="0" alt="[Obrazek: image.php?di=3EZ8]" /></div>
<br />
Hejaa, to mój 1-szy poradnik, więc w razie jakiś poprawek/pytań piszcie pod tym wątkiem<br />
<br />
<div style="text-align: center;"><span style="font-weight: bold;">A więc czym jest plugin Mythic Mobs?</span><br />
Krótko, zwięźle i na temat - Plugin do tworzenia mobów/przedmiotów/spawnerów/dropu<br />
<br />
<span style="font-weight: bold;">Jak go zainstalować?</span></div><div style="text-align: center;">Serwer Spigot - <a href="https://www.spigotmc.org/resources/mythicmobs.5702/" target="_blank">https://www.spigotmc.org/resources/mythicmobs.5702/</a><br />
Serwer Bukkit - <a href="https://dev.bukkit.org/projects/mythicmobs" target="_blank">https://dev.bukkit.org/projects/mythicmobs</a></div>
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Permisje</span><br />
mythicmobs.admin - Daje dostęp do używania całego pluginu<br />
mythicmobs.command.[KOMENDA] - Daję dostęp do używania jednej z komend pluginu</div>
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Tworzenie Moba</span></div>
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">Mob1</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Mob1&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Nazwa&nbsp;naszego&nbsp;Moba<br />&nbsp;&nbsp;Type</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Skeleton&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Rodzaj&nbsp;moba<br />&nbsp;&nbsp;Display</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'&amp;6Mob1'&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Nazwa&nbsp;Moba<br />&nbsp;&nbsp;Health</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">20&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Życie&nbsp;potwora<br />&nbsp;&nbsp;Damage</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Damage&nbsp;zadawany&nbsp;przez&nbsp;potwora<br />&nbsp;&nbsp;Options</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Opcje&nbsp;Moba<br />&nbsp;&nbsp;&nbsp;&nbsp;MovementSpeed</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Zwiększamy</span><span style="color: #007700">/</span><span style="color: #0000BB">zmniejszamy&nbsp;szybkośc&nbsp;moba<br />&nbsp;&nbsp;Equipment</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">wyposażenie&nbsp;potwora<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Przedmiot1</span><span style="color: #007700">:</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Przedmiot&nbsp;trzymany&nbsp;w&nbsp;ręce<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Przedmiot2</span><span style="color: #007700">:</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">-&nbsp;&nbsp;(</span><span style="color: #0000BB">Buty</span><span style="color: #007700">)<br />&nbsp;&nbsp;-&nbsp;</span><span style="color: #0000BB">Przedmiot3</span><span style="color: #007700">:</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #007700">-&nbsp;&nbsp;(</span><span style="color: #0000BB">Spodnie</span><span style="color: #007700">)<br />&nbsp;&nbsp;-&nbsp;</span><span style="color: #0000BB">Przedmiot4</span><span style="color: #007700">:</span><span style="color: #0000BB">3&nbsp;</span><span style="color: #007700">-&nbsp;&nbsp;(</span><span style="color: #0000BB">Klata</span><span style="color: #007700">)<br />&nbsp;&nbsp;-&nbsp;</span><span style="color: #0000BB">Przedmiot5</span><span style="color: #007700">:</span><span style="color: #0000BB">4&nbsp;</span><span style="color: #007700">-&nbsp;&nbsp;(</span><span style="color: #0000BB">Hełm</span><span style="color: #007700">)<br /></span><span style="color: #0000BB">Zamiast&nbsp;Przedmiot1</span><span style="color: #007700">;</span><span style="color: #0000BB">2</span><span style="color: #007700">;</span><span style="color: #0000BB">3</span><span style="color: #007700">;</span><span style="color: #0000BB">4</span><span style="color: #007700">;</span><span style="color: #0000BB">5&nbsp;można&nbsp;dać&nbsp;ID&nbsp;przedmiotu&nbsp;zgodnie&nbsp;z&nbsp;liczbą&nbsp;po&nbsp;dwukropku&nbsp;<br /></span></code></div></div></div>
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Opcje mobów</span></div>
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">AlwayShowName</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ciągłe&nbsp;pokazywanie&nbsp;nazwy&nbsp;naszego&nbsp;moba'<br /></span><span style="color: #0000BB">AttackSpeed</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Szybkość&nbsp;ataku&nbsp;naszego&nbsp;moba'<br /></span><span style="color: #0000BB">Collidable</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Tzw.&nbsp;Kolizje&nbsp;z&nbsp;innymi&nbsp;mobami'<br /></span><span style="color: #0000BB">Despawn</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;znikać&nbsp;gdy&nbsp;w&nbsp;pobliżu&nbsp;nie&nbsp;ma&nbsp;żadnego&nbsp;gracza'<br /></span><span style="color: #0000BB">FollowRange</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Maksymalny&nbsp;dystans&nbsp;na&nbsp;jaki&nbsp;mob&nbsp;będzie&nbsp;atakować&nbsp;gracza&nbsp;od&nbsp;spawnu&nbsp;tego&nbsp;moba'<br /></span><span style="color: #0000BB">Glowing</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;świecić&nbsp;w&nbsp;ciemności'<br /></span><span style="color: #0000BB">Invincible</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;być&nbsp;niewidzialny'<br /></span><span style="color: #0000BB">Interactable</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Mozliwosc&nbsp;niszczenia&nbsp;przez&nbsp;moba&nbsp;np.&nbsp;Drzwi'<br /></span><span style="color: #0000BB">KnockbackResistance</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Ochrona&nbsp;przed&nbsp;odrzutem&nbsp;#&nbsp;0.1&nbsp;=&nbsp;10%,&nbsp;1&nbsp;=&nbsp;100%'<br /></span><span style="color: #0000BB">MaxCombatDistance</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Maksymalna&nbsp;odległość&nbsp;na&nbsp;jaką&nbsp;mob&nbsp;będzie&nbsp;atakować&nbsp;gracza&nbsp;#&nbsp;Jezeli&nbsp;gracz&nbsp;znajdzie&nbsp;się&nbsp;poza&nbsp;tym&nbsp;zasięgiem&nbsp;mob&nbsp;go&nbsp;zostawi'<br /></span><span style="color: #0000BB">MovementSpeed</span><span style="color: #007700">:&nbsp;[</span><span style="color: #0000BB">WARTOŚĆ</span><span style="color: #007700">]&nbsp;-&nbsp;</span><span style="color: #DD0000">'Szybkość&nbsp;chodzenia&nbsp;moba'<br /></span><span style="color: #0000BB">Silent</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;wydawać&nbsp;dźwięki'<br /></span><span style="color: #0000BB">ShowHealth</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;pokazywać&nbsp;swoją&nbsp;ilość&nbsp;życia'<br /></span><span style="color: #0000BB">PreventRandomEquipment</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;ma&nbsp;spawnować&nbsp;się&nbsp;z&nbsp;losowymi&nbsp;itemami'<br /></span><span style="color: #0000BB">PreventRenaming</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;może&nbsp;mieć&nbsp;zmienioną&nbsp;nazwe&nbsp;za&nbsp;pomocą&nbsp;NameTaga'<br /></span><span style="color: #0000BB">PreventOtherDrops</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;NIE&nbsp;MOŻE&nbsp;dropnąć&nbsp;przedmiotu&nbsp;który&nbsp;zostaje&nbsp;w&nbsp;nim&nbsp;ustawiony'<br /></span><span style="color: #0000BB">PreventMobKillDrops</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;NIE&nbsp;MOŻE&nbsp;dropnąć&nbsp;przedmiotu&nbsp;który&nbsp;zostaje&nbsp;naturalnie&nbsp;przez&nbsp;niego&nbsp;dropnięty'<br /></span><span style="color: #0000BB">PreventItemPickup</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;może&nbsp;podniosić&nbsp;przedmioty&nbsp;z&nbsp;ziemi'<br /></span><span style="color: #0000BB">Persistent</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;mob&nbsp;może&nbsp;być&nbsp;ochroniony&nbsp;przed&nbsp;komendą&nbsp;"mm&nbsp;mobs&nbsp;killall"&nbsp;i&nbsp;ma&nbsp;ustawia&nbsp;"Despawn"&nbsp;na&nbsp;FALSE'<br /></span><span style="color: #0000BB">NoGravity</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">/</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ustawia&nbsp;czy&nbsp;na&nbsp;moba&nbsp;ma&nbsp;NIE&nbsp;DZIAŁAĆ&nbsp;grawitacja'<br /></span><span style="color: #FF8000">#Niektóre&nbsp;opcje&nbsp;działają&nbsp;tylko&nbsp;i&nbsp;wyłącznie&nbsp;na&nbsp;1.12&nbsp;wzwyż&nbsp;(wersja&nbsp;MM&nbsp;2.4&nbsp;bodajże)&nbsp;<br /></span></code></div></div></div>
<br />
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Tworzenie itemu</span></div>
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">Przedmiot1</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Nazwa&nbsp;przedmiotu<br />&nbsp;&nbsp;Id</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">268&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">ID&nbsp;przedmiotu<br />&nbsp;&nbsp;Data</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Wartość&nbsp;przedmiotu</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">domyślna&nbsp;wartość&nbsp;to&nbsp;0<br />&nbsp;&nbsp;Amount</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Ilość<br />&nbsp;&nbsp;Display</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'&amp;4Miecz&nbsp;Prawdy'&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Nazwa&nbsp;wyświetlanego&nbsp;przedmiotu<br />&nbsp;&nbsp;Lore</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Opis&nbsp;przedmiotu<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Ten&nbsp;miecz&nbsp;wyjawi&nbsp;prawde'&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'nawet&nbsp;ta&nbsp;najciemniejsza&nbsp;xd'<br />&nbsp;&nbsp;</span><span style="color: #0000BB">Enchantments</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Enchanty<br />&nbsp;&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Damage_ALL</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Enchant&nbsp;przedmiotu</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">w&nbsp;tym&nbsp;przypadku&nbsp;sharpness&nbsp;2<br />&nbsp;&nbsp;Options</span><span style="color: #007700">:&nbsp;-&nbsp;</span><span style="color: #0000BB">Opcje&nbsp;itemu<br />&nbsp;&nbsp;&nbsp;&nbsp;MovementSpeed</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">Przykładowa&nbsp;wartość&nbsp;chodzenia&nbsp;<br /></span></code></div></div></div>
<br />
<br />
<div style="text-align: center;"><span style="font-weight: bold;">Enchanty przedmiotów</span></div>
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #DD0000">'✰&nbsp;ENCHANTY&nbsp;NA&nbsp;MIECZE&nbsp;✰'<br /></span><span style="color: #0000BB">DAMAGE_ATHROBOTS<br />FIRE_ASPECT&nbsp;<br />KNOCKBACK<br />DAMAGE_ALL&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Sharpness'<br /></span><span style="color: #0000BB">DAMAGE_UNDEAD&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Smite'<br /></span><span style="color: #0000BB">LOOT_BONUS_MOBS&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Looting'<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'✰&nbsp;ENCHANTY&nbsp;NA&nbsp;ŁUKI&nbsp;✰'<br /></span><span style="color: #0000BB">ARROW_DAMAGE&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Power'<br /></span><span style="color: #0000BB">ARROW_FIRE&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Flame'<br /></span><span style="color: #0000BB">ARROW_KNOCKBACK&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Punch'<br /></span><span style="color: #0000BB">ARROW_INFINITE&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Infinity'<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'✰&nbsp;ENCHANTY&nbsp;NA&nbsp;NARZĘDZIA&nbsp;✰'<br /></span><span style="color: #0000BB">DIG_SPEED&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Efficiency'<br /></span><span style="color: #0000BB">DURABILITY&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Unbreaking'<br /></span><span style="color: #0000BB">LOOT_BONUS_BLOCK&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;enchant&nbsp;Fortune'<br /></span><span style="color: #0000BB">SILK_TOUCH&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zwykły,&nbsp;zwyczajny&nbsp;Silk&nbsp;Touch'<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'✰&nbsp;ENCHANTY&nbsp;NA&nbsp;ZBROJE&nbsp;✰'<br /></span><span style="color: #0000BB">Tutaj&nbsp;jest&nbsp;trochę&nbsp;więcej</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">więc&nbsp;nie&nbsp;będe&nbsp;przy&nbsp;każdym&nbsp;dodawał&nbsp;notki</span><span style="color: #007700">...<br /></span><span style="color: #0000BB">OXYGEN&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;Respiration'<br /></span><span style="color: #0000BB">PROTECTION_ENVIRONMENTAL&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;za&nbsp;Protection'<br /></span><span style="color: #0000BB">PROTECTION_FALL<br />PROTECTION_FIRE<br />PROTECTION_PROJECTILE<br />PROTECTION_EXPLOSIONS<br />THORNS<br />WATER_WORKER&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #DD0000">'Zastępnik&nbsp;enchantu&nbsp;Aqua&nbsp;Infinity'<br /></span><span style="color: #0000BB">DEPTH_STRIDER<br />FROST_WALKER&nbsp;<br /></span></code></div></div></div>
<br />
<br />
<span style="font-weight: bold;"><div style="text-align: center;">Tworzenie Spawneru</div></span><ul>
<li>Stajemy w miejscu w którym chcemy postawić spawner</li>
<li>Kierujemy wzrok naszej postaci w miejsce w którym ma być spawner</li>
<li>Wpisujemy komende /mm s create spawner1 (Nazwa spawneru) Mob1 (nazwa moba)<br />
</li></ul>
<br />
<span style="font-size: small;"><div style="text-align: right;">Wszystkie informacje, które użyłem w tym wątku są wzięte z oficjalnej strony MythicMobs/forum/poradników/własnej wiedzy...<br />
W razie problemów śmiało piszcie, Apfulek <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" /></div></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Poradnik] Wszystko o Identities czyli jak zachować rangi po reinstalacji ts3]]></title>
			<link>https://mineserver.pl/Temat-Poradnik-Wszystko-o-Identities-czyli-jak-zachowa%C4%87-rangi-po-reinstalacji-ts3</link>
			<pubDate>Mon, 04 Mar 2019 13:01:05 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Poradnik-Wszystko-o-Identities-czyli-jak-zachowa%C4%87-rangi-po-reinstalacji-ts3</guid>
			<description><![CDATA[Wiem że pewnie słaby poradnik ale zawsze coś dla osób zielonych <img class="postimage" src="images/smilies/wink.gif" style="vertical-align: middle;" border="0" alt="Wink" title="Wink" />.<br />
<br />
 <br />
<br />
Witam otóż postanowiłem napisać poradnik na temat jak zachować identities po reinstalacji clienta ts3.<br />
<br />
1.Zacznijmy od tego czym jest "identity".<br />
<br />
 <br />
<br />
Więc tak identities jest to unikalny idenfikator , jak wcześniej wspomniałem jest unikalny co znaczy że po usunięciu nie odzyskamy go ponownie bez wcześniejszego  zapisania a najlepiej wysłać sobie jeszcze na email bo zawsze możemy mieć formata kompa <img class="postimage" src="images/smilies/wink.gif" style="vertical-align: middle;" border="0" alt="Wink" title="Wink" />.<br />
<br />
2.Gdzie znajdę Identity.<br />
<br />
Identity znajdziemy gdy przejdziemy do settings -&gt; identities (ctrl+i) pojawi się lista wyglądająca tak o:<br />
<img class="postimage" src="https://i.imgur.com/FXQ9D6c.png" border="0" alt="[Obrazek: FXQ9D6c.png]" /><br />
<br />
3. W jaki sposób zapiszemy swoje id?<br />
<img class="postimage" src="https://i.imgur.com/8t2w5LM.png" border="0" alt="[Obrazek: 8t2w5LM.png]" /><br />
<br />
Wybieramy ID które chcemy zapisać w taki sposób aby było one zaznaczone tak jak widać na ss powyżej (ID "мαтι™.").<br />
Następnie klikamy przycisk "Export", pojawi się ostrzeżenie żeby nikomu nie wysyłać tego pliku, oczywiście to rozumiemy i klikamy "Yes"<br />
<br />
<br />
<br />
<br />
Następnie wybieramy ścieżkę gdzie ma się zapisać nasze ID.<br />
 <br />
"Okej mam już zapisane swoje ID ale jak je mam wgrać żeby odzyskać swoje rangi?"<br />
 <br />
W tym przypadku wystarczy nacisnąć przycisk "Import" i wybrać zapisany wcześniej plik, zaznaczyć ID które wgraliśmy i nacisnąć przycisk "Default" oraz podczas łączenia się do ts'a wybrać je w zakładce "Identity"<br />
<br />
 <br />
<br />
Spodobał się poradnik zostaw + <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" />.]]></description>
			<content:encoded><![CDATA[Wiem że pewnie słaby poradnik ale zawsze coś dla osób zielonych <img class="postimage" src="images/smilies/wink.gif" style="vertical-align: middle;" border="0" alt="Wink" title="Wink" />.<br />
<br />
 <br />
<br />
Witam otóż postanowiłem napisać poradnik na temat jak zachować identities po reinstalacji clienta ts3.<br />
<br />
1.Zacznijmy od tego czym jest "identity".<br />
<br />
 <br />
<br />
Więc tak identities jest to unikalny idenfikator , jak wcześniej wspomniałem jest unikalny co znaczy że po usunięciu nie odzyskamy go ponownie bez wcześniejszego  zapisania a najlepiej wysłać sobie jeszcze na email bo zawsze możemy mieć formata kompa <img class="postimage" src="images/smilies/wink.gif" style="vertical-align: middle;" border="0" alt="Wink" title="Wink" />.<br />
<br />
2.Gdzie znajdę Identity.<br />
<br />
Identity znajdziemy gdy przejdziemy do settings -&gt; identities (ctrl+i) pojawi się lista wyglądająca tak o:<br />
<img class="postimage" src="https://i.imgur.com/FXQ9D6c.png" border="0" alt="[Obrazek: FXQ9D6c.png]" /><br />
<br />
3. W jaki sposób zapiszemy swoje id?<br />
<img class="postimage" src="https://i.imgur.com/8t2w5LM.png" border="0" alt="[Obrazek: 8t2w5LM.png]" /><br />
<br />
Wybieramy ID które chcemy zapisać w taki sposób aby było one zaznaczone tak jak widać na ss powyżej (ID "мαтι™.").<br />
Następnie klikamy przycisk "Export", pojawi się ostrzeżenie żeby nikomu nie wysyłać tego pliku, oczywiście to rozumiemy i klikamy "Yes"<br />
<br />
<br />
<br />
<br />
Następnie wybieramy ścieżkę gdzie ma się zapisać nasze ID.<br />
 <br />
"Okej mam już zapisane swoje ID ale jak je mam wgrać żeby odzyskać swoje rangi?"<br />
 <br />
W tym przypadku wystarczy nacisnąć przycisk "Import" i wybrać zapisany wcześniej plik, zaznaczyć ID które wgraliśmy i nacisnąć przycisk "Default" oraz podczas łączenia się do ts'a wybrać je w zakładce "Identity"<br />
<br />
 <br />
<br />
Spodobał się poradnik zostaw + <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" />.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[TS3] Rozszerzone informacje o kliencie.]]></title>
			<link>https://mineserver.pl/Temat-TS3-Rozszerzone-informacje-o-kliencie</link>
			<pubDate>Wed, 27 Feb 2019 10:14:55 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-TS3-Rozszerzone-informacje-o-kliencie</guid>
			<description><![CDATA[Witajcie,<br />
<br />
 <br />
<br />
Ten motyw przywraca stare zaawansowane szczegóły i kolory na czacie<br />
Ten motyw dodaje dodatkowe informacje o kliencie i kanale. <br />
Jest przydatny dla administratorów, gdy potrzebujesz identyfikatora użytkownika bez jego wyszukiwania. <br />
I może być używany przez każdego, kto lubi stare kolory czatu.<br />
<br />
Klient:<ul>
<li>Identyfikator klienta</li>
<li>Unikalny identyfikator klienta</li>
<li>Identyfikator bazy danych klienta</li>
<li>Znajomości</li>
<li>System operacyjny jako ikona</li>
<li>Klient Buduj datę i godzinę<br />
</li></ul>
<ul>
Kanał:</li>
<li>ID kanału</li>
<li>Bieżący użytkownicy i maks. Kanały używają tylko jednej linii</li>
<li>Status szyfrowania danych głosowych</li>
<li>Moderowana ikona</li>
<li>Ikona pióra obok opisu<br />
</li></ul>
<br />
Kolory czatu używają stylu przed 2014 rokiem:<br />
<br />
Czerwony dla użytkowników, zakazy i rzuty<br />
Niebieski dla rozłączeń<br />
Pogrubiona niebieska nazwa kanału i serwera<br />
Zielony dla połączeń<br />
itp...<br />
 <br />
<br />
Wsparcie:<br />
<br />
<a href="http://forum.teamspeak.com/threads/73296" target="_blank">http://forum.teamspeak.com/threads/73296</a><br />
 <br />
Download:<br />
<br />
<a href="https://www.myteamspeak.com/addons/45f5a52a-8e98-4a8b-ab69-0753c8d44617" target="_blank">https://www.myteamspeak.com/addons/45f5a...53c8d44617</a>]]></description>
			<content:encoded><![CDATA[Witajcie,<br />
<br />
 <br />
<br />
Ten motyw przywraca stare zaawansowane szczegóły i kolory na czacie<br />
Ten motyw dodaje dodatkowe informacje o kliencie i kanale. <br />
Jest przydatny dla administratorów, gdy potrzebujesz identyfikatora użytkownika bez jego wyszukiwania. <br />
I może być używany przez każdego, kto lubi stare kolory czatu.<br />
<br />
Klient:<ul>
<li>Identyfikator klienta</li>
<li>Unikalny identyfikator klienta</li>
<li>Identyfikator bazy danych klienta</li>
<li>Znajomości</li>
<li>System operacyjny jako ikona</li>
<li>Klient Buduj datę i godzinę<br />
</li></ul>
<ul>
Kanał:</li>
<li>ID kanału</li>
<li>Bieżący użytkownicy i maks. Kanały używają tylko jednej linii</li>
<li>Status szyfrowania danych głosowych</li>
<li>Moderowana ikona</li>
<li>Ikona pióra obok opisu<br />
</li></ul>
<br />
Kolory czatu używają stylu przed 2014 rokiem:<br />
<br />
Czerwony dla użytkowników, zakazy i rzuty<br />
Niebieski dla rozłączeń<br />
Pogrubiona niebieska nazwa kanału i serwera<br />
Zielony dla połączeń<br />
itp...<br />
 <br />
<br />
Wsparcie:<br />
<br />
<a href="http://forum.teamspeak.com/threads/73296" target="_blank">http://forum.teamspeak.com/threads/73296</a><br />
 <br />
Download:<br />
<br />
<a href="https://www.myteamspeak.com/addons/45f5a52a-8e98-4a8b-ab69-0753c8d44617" target="_blank">https://www.myteamspeak.com/addons/45f5a...53c8d44617</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[PORADNIK] Muzyka na noteblockach]]></title>
			<link>https://mineserver.pl/Temat-PORADNIK-Muzyka-na-noteblockach</link>
			<pubDate>Wed, 16 Jan 2019 00:28:41 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-PORADNIK-Muzyka-na-noteblockach</guid>
			<description><![CDATA[Cześć. Jak niektórzy wiedzą, ostatnio sporo bawiłem się blokami muzycznymi i postanowiłem stworzyć poradnik, który umożliwi niejednemu odtworzenie wybranego utworu.<br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">Część 1: Instrumenty i podstawy.</span></span><br />
Najważniejsze jest, aby rozumieć, jak działają noteblocki, jakie mamy instrumenty i jak ich używać. Może zacznijmy od rodzajów instrumentów. To, jaki instrument gra blok muzyczny, zależy od bloku, na którym stoi. Każdy z nich można kliknąć 24 razy, z każdym kliknięciem dźwięk jest coraz wyższy. Z jednego noteblocka mamy w sumie 25 dźwięków, wliczając nieklikany dźwięk.<br />
<br />
<span style="font-weight: bold;">Piasek, żwir, piasek dusz - Werbel</span><br />
Instrument perkusyjny, rodzaj bębna. Każdy zna jego dźwięk, pełni krytyczną funkcję przy tworzeniu rytmu.<br />
<br />
<span style="font-weight: bold;">Kamień, Cegły, bloki na bazie kamienia - Bęben basowy</span><br />
Instrument perkusyjny, niski, kopiący bęben. Razem z werblem tworzy rytm.<br />
<br />
<span style="font-weight: bold;">Szkło, bloki na bazie szkła - Tik-Tok</span><br />
Inaczej tego nie umiałem nazwać. Wydaje prosty, krótki, klikający dźwięk. Przydaje się przy wybijaniu rytmu - ja używam go za talerze perkusyjne, których w MC nie ma.<br />
<br />
<span style="font-weight: bold;">Drewno, deski, bloki na bazie drewna - Bas</span><br />
Tutaj przechodzimy już do instrumentów, których będziemy używać do tworzenia melodii. Bas dźwiękiem przypomina gitarę basową.<br />
<br />
<span style="font-weight: bold;">Ziemia, powietrze, bloki inne niż powyżej - Harfa / pianino</span><br />
Drugi instrument, który stosuje się do tworzenia melodii. Najwyższy dźwięk basu ma wysokość najniższego dźwięku harfy, więc mamy 49 dźwięków o różnej wysokości (wliczając nieklikane dźwięki.<br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">Część 2: Rytm</span></span><br />
Jak się domyślamy, rytm to nie będzie nic innego jak seria bębnów basowych i werbli z pewnymi, ustalonymi przez repeatery odstępami czasowymi. Jednak czy da się przenieść nuty z notacji na repeatery i noteblocki? Da się, ale nie jest to łatwe, ponieważ bardzo łatwo się pomylić, a ograniczenia repeaterów uniemożliwiają odwtorzenie niektórych nut. Ale do rzeczy.<br />
<br />
Nieklikany repeater daje przerwę 0.1 sekundy, kliknięty raz daje przerwę 0.2 sekundy, dwa razy przerwę 0.3 sekundy, a trzy razy przerwę 0.4 sekundy. Spiszę listę popularnych temp w muzyce, wraz z różnymi nutami i ilością / klikami repeatera, by je osiągnąć.<br />
<br />
0 kliknięć - 0.1s<br />
1 kliknięcie - 0.2s<br />
2 kliknięcia - 0.3s<br />
3 kliknięcia - 0.4s<br />
<br />
BPM to Beats Per Minute, czyli dosłownie Uderzenia na minutę. Jest to miara tempa.<br />
<br />
<span style="font-style: italic;">Nuty, które są rzadkie i nieobowiązkowe napisałem kursywą, żebyście nie krzątali sobie głowy mało używanymi nutami. Najbardziej insteresują nas nuty, półnuty, ćwierćnuty i ewentualnie ósemki, bo ich będziemy używać w muzyce najczęściej.</span><br />
<br />
TEMPO: 6o BPM:<br />
Półnuta: 2 sekundy (0.4s + 0.4s + 0.4s + 0.4s + 0.4s)<br />
Ćwierćnuta: 1 sekunda (0.4s + 0.4s + 0.2s)<br />
Ósemka: 0.5 sekundy (0.4s + 0.1s)<br />
Szesnastka: [/]<br />
<span style="font-style: italic;">Kwintola(1/5 ćwierćnuty): 0.2 sekundy (0.2s)</span><br />
<br />
TEMPO: 75 BPM:<br />
Półnuta: 1.6 sekudy (0.4s  + 0.4s + 0.4s + 0.4s)<br />
Ćwierćnuta: 0.8 sekundy (0.4s + 0.4s)<br />
Ósemka: 0.4 sekundy (0.4s)<br />
Szesnastka: 0.2 sekundy (0.2s)<br />
<span style="font-style: italic;">Trzydziestka-Dwójka: 0.1 sekundy (0.1s)</span><br />
<br />
TEMPO: 100 BPM:<br />
Półnuta: 1.2 sekundy (0.4s + 0.4s + 0.4s)<br />
Ćwierćnuta: 0.6 sekundy(0.4s + 0.2s)<br />
Ósemka: 0.3 sekundy(0.3s)<br />
Triola(1/3 ćwierćnuty): 0.2 sekundy(0.2s)<br />
Szesnastka: [/]<br />
<br />
TEMPO: 120 BPM:<br />
Półnuta: 1 sekunda(0.4s + 0.4s + 0.2s)<br />
Ćwierćnuta: 0.5 sekundy(0.4s + 0.1s<br />
Ósemka: [/]<br />
Szesnastka [/]<br />
<span style="font-style: italic;">Kwintola(1/5 ćwierćnuty): 0.1 sekundy (0.1s)</span><br />
<br />
TEMPO: 150 BPM:<br />
Półnuta: 0.8 sekundy(0.4s + 0.4s)<br />
Ćwierćnuta: 0.4 sekundy (0.4s)<br />
Ósemka: 0.2 sekundy(0.2s)<br />
Szesnastka: 0.1 sekundy(0.1s)<br />
<br />
Nie znosisz pojęć muzycznych? Nie znasz się na muzyce? Równie dobrze można rytm można zrobić metodą prób i błędów, lub na wyczucie. Zresztą rytm w wielu gatunkach(pop, rock, muzyka elektroniczna, a w szczególności techno) jest bardzo prosty i ogranicza się do naprzemiennego bębna basowego i werbla, ewentualnie wzbogaconego o połowę szybszy tik-tok. Problemy zaczynają się przy próbie grania np. metalcoru lub metalu matematycznego, których złożona rytmika jest ich wizytówką.<br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">Część 3: Melodia</span></span><br />
Nie ma muzyki bez melodii. To wiemy. Jednak nie każdy wie, że wysokości dźwięków granych przez bloki muzyczne są uporządkowane tak samo, jak w prawdziwych instrumentach! Zatem dysponując zapisem muzycznym (nawet prosta, czytelna tabulatura nam wystarczy!) możemy wiernie odtworzyć nasz ulubiony utwór. Warunkiem jest fakt, że utwór ma zapis muzyczny (R.I.P. muzyka elektroniczna).<br />
<br />
PRZERWY<br />
<br />
Tak jak w przypadku rytmu, melodia ma pewne odstępy czasowe. Melodie dobrze jest ustawiać na wyczucie przed strojeniem, a po całkowitym nastrojeniu dopracowywać. Tak jest przynajmniej w moim przypadku<br />
<br />
STROJENIE NOTEBLOCKÓW:<br />
<br />
Jeśli otworzymy tabulaturę naszego utworu (najczęściej tabulatura jest do gitary, ale w gitarowej formie jest również notacja do pianina), to w rogu znajdziemy dźwięki strun.<br />
<img class="postimage" src="https://i.imgur.com/t18LaJL.png" border="0" alt="[Obrazek: t18LaJL.png]" /><br />
<br />
Korzystając z poniższego odniesienia stroimy noteblocki na te dźwięki, na które nastrojone są użyte struny.<br />
<br />
<img class="postimage" src="https://d1u5p3l4wpay3k.cloudfront.net/minecraft_gamepedia/b/bd/Noteblock_reference.png?version=7c1da1f936b432a70f45990dc0c16fbb" border="0" alt="[Obrazek: Noteblock_reference.png?version=7c1da1f9...0dc0c16fbb]" /><br />
<br />
Miejmy na uwadze, że najczęściej struny są posortowane (od dołu) od najniższej do najwyższej, więc stroi się je kolejno coraz wyżej za pomocą odniesienia. Jeśli używamy w utworze wszystkich strun, do tych niskich strun używamy basu, a do wysokich strun harfy. Nie wszystkie melodie będzie się dało zagrać jednym instrumentem. Akurat tą melodię można zagrać jedynie harfą. Zatem nasze noteblocki będą nastrojone następująco:<br />
C(6 kliknięć), F(11 kliknięć), F, F, F, F, A(15 kliknięć)<br />
<br />
<br />
DRUGIE STROJENIE NOTEBLOCKÓW:<br />
Mając podstawowe dźwięki, musimy jeszcze kliknąć noteblocki odpowiednio do numerów na tabulaturze, aby je odpowiednio podwyższyć. Zatem noteblock C klikamy 3 razy, bloki F 5, 6, 5, 6, 5 razy, a noteblock A 6 razy. No i voila! Jednak niestety rzeczywistość często jest rozczarowująca, i nieraz różnice dźwięków są za wysokie, przez co musimy używać na raz harfy i basu.<br />
<br />
<br />
CO JAK MUSZĘ ŁĄCZYĆ BAS Z HARFĄ?<br />
Najniższe dźwięki oczywiście będą grane basem, a te wyższe harfą. Wartym uwagi jest fakt, że jeśli przykładowo zabraknie nam na basie 4 kliknięć do chcianego dźwięku, możemy wziąć harfę i kliknąć ją 4 razy - wtedy otrzymamy żądany dźwięk, tylko na harfie, a nie na basie. Być może ta wizualizacja wam trochę pomoże przy tworzeniu:<br />
<br />
<img class="postimage" src="https://i.imgur.com/TAoJNwO.png" border="0" alt="[Obrazek: TAoJNwO.png]" /><br />
<br />
<br />
CO JAK DŹWIĘKI SĄ ZA WYSOKIE?<br />
<br />
<img class="postimage" src="https://i.imgur.com/OdAaM4M.png" border="0" alt="[Obrazek: OdAaM4M.png]" /><br />
Taki przykład. Jak widzimy, musimy noteblocki nastroić wysoko, a progi również są wysokie. Ale... Aaale! Każdy próg możemy obniżyć o oktawę, czyli 12 dźwięków w dół. Wtedy każdy dźwięk będzie odpowiedni, ale niższy o oktawę, a więc utwór dalej będzie prawidłowy. Czasami nawet trudno będzie poczuć różnicę. Ta technika strojenia działa tylko wtedy, jak każdy dźwięk melodii jest 12+.<br />
<br />
JAK ZROBIĆ AKORD?<br />
<br />
Akord to współbrzmienie kilku dźwięków, ponieważ pojedyncze dźwięki często brzmią słabo i nieznacząco. Miejmy na względzie, że jeśli obok jednego noteblocka postawimy drugi noteblock, wtedy sygnał redstone przechodząc przez jeden aktywuje również drugi noteblock. Ustawiając noteblocki w jednej linii możemy zatem zagrać akord z maksymalnie 3 dźwięków, ale dla chcącego nic trudnego. Zatem stroimy każdy dźwięk najpierw na odpowiedni dźwięk(strunę), potem na odpowiedni próg (cyferka na tabulaturze), i mamy nasz akord. <br />
<br />
Dziękuję za przeczytanie i powodzenia w tworzeniu!<br />
<br />
<span style="font-style: italic;">Wątek będzie aktualizowany o nowe, rzetelne informacje i przykłady. Wszelkie niejasności, nieprawidłowe informacje czy źle wytłumaczone zagadnienia proszę zgłaszać w poście. Zapraszam do komentowania i konstruktywnego krytycyzmu.</span>]]></description>
			<content:encoded><![CDATA[Cześć. Jak niektórzy wiedzą, ostatnio sporo bawiłem się blokami muzycznymi i postanowiłem stworzyć poradnik, który umożliwi niejednemu odtworzenie wybranego utworu.<br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">Część 1: Instrumenty i podstawy.</span></span><br />
Najważniejsze jest, aby rozumieć, jak działają noteblocki, jakie mamy instrumenty i jak ich używać. Może zacznijmy od rodzajów instrumentów. To, jaki instrument gra blok muzyczny, zależy od bloku, na którym stoi. Każdy z nich można kliknąć 24 razy, z każdym kliknięciem dźwięk jest coraz wyższy. Z jednego noteblocka mamy w sumie 25 dźwięków, wliczając nieklikany dźwięk.<br />
<br />
<span style="font-weight: bold;">Piasek, żwir, piasek dusz - Werbel</span><br />
Instrument perkusyjny, rodzaj bębna. Każdy zna jego dźwięk, pełni krytyczną funkcję przy tworzeniu rytmu.<br />
<br />
<span style="font-weight: bold;">Kamień, Cegły, bloki na bazie kamienia - Bęben basowy</span><br />
Instrument perkusyjny, niski, kopiący bęben. Razem z werblem tworzy rytm.<br />
<br />
<span style="font-weight: bold;">Szkło, bloki na bazie szkła - Tik-Tok</span><br />
Inaczej tego nie umiałem nazwać. Wydaje prosty, krótki, klikający dźwięk. Przydaje się przy wybijaniu rytmu - ja używam go za talerze perkusyjne, których w MC nie ma.<br />
<br />
<span style="font-weight: bold;">Drewno, deski, bloki na bazie drewna - Bas</span><br />
Tutaj przechodzimy już do instrumentów, których będziemy używać do tworzenia melodii. Bas dźwiękiem przypomina gitarę basową.<br />
<br />
<span style="font-weight: bold;">Ziemia, powietrze, bloki inne niż powyżej - Harfa / pianino</span><br />
Drugi instrument, który stosuje się do tworzenia melodii. Najwyższy dźwięk basu ma wysokość najniższego dźwięku harfy, więc mamy 49 dźwięków o różnej wysokości (wliczając nieklikane dźwięki.<br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">Część 2: Rytm</span></span><br />
Jak się domyślamy, rytm to nie będzie nic innego jak seria bębnów basowych i werbli z pewnymi, ustalonymi przez repeatery odstępami czasowymi. Jednak czy da się przenieść nuty z notacji na repeatery i noteblocki? Da się, ale nie jest to łatwe, ponieważ bardzo łatwo się pomylić, a ograniczenia repeaterów uniemożliwiają odwtorzenie niektórych nut. Ale do rzeczy.<br />
<br />
Nieklikany repeater daje przerwę 0.1 sekundy, kliknięty raz daje przerwę 0.2 sekundy, dwa razy przerwę 0.3 sekundy, a trzy razy przerwę 0.4 sekundy. Spiszę listę popularnych temp w muzyce, wraz z różnymi nutami i ilością / klikami repeatera, by je osiągnąć.<br />
<br />
0 kliknięć - 0.1s<br />
1 kliknięcie - 0.2s<br />
2 kliknięcia - 0.3s<br />
3 kliknięcia - 0.4s<br />
<br />
BPM to Beats Per Minute, czyli dosłownie Uderzenia na minutę. Jest to miara tempa.<br />
<br />
<span style="font-style: italic;">Nuty, które są rzadkie i nieobowiązkowe napisałem kursywą, żebyście nie krzątali sobie głowy mało używanymi nutami. Najbardziej insteresują nas nuty, półnuty, ćwierćnuty i ewentualnie ósemki, bo ich będziemy używać w muzyce najczęściej.</span><br />
<br />
TEMPO: 6o BPM:<br />
Półnuta: 2 sekundy (0.4s + 0.4s + 0.4s + 0.4s + 0.4s)<br />
Ćwierćnuta: 1 sekunda (0.4s + 0.4s + 0.2s)<br />
Ósemka: 0.5 sekundy (0.4s + 0.1s)<br />
Szesnastka: [/]<br />
<span style="font-style: italic;">Kwintola(1/5 ćwierćnuty): 0.2 sekundy (0.2s)</span><br />
<br />
TEMPO: 75 BPM:<br />
Półnuta: 1.6 sekudy (0.4s  + 0.4s + 0.4s + 0.4s)<br />
Ćwierćnuta: 0.8 sekundy (0.4s + 0.4s)<br />
Ósemka: 0.4 sekundy (0.4s)<br />
Szesnastka: 0.2 sekundy (0.2s)<br />
<span style="font-style: italic;">Trzydziestka-Dwójka: 0.1 sekundy (0.1s)</span><br />
<br />
TEMPO: 100 BPM:<br />
Półnuta: 1.2 sekundy (0.4s + 0.4s + 0.4s)<br />
Ćwierćnuta: 0.6 sekundy(0.4s + 0.2s)<br />
Ósemka: 0.3 sekundy(0.3s)<br />
Triola(1/3 ćwierćnuty): 0.2 sekundy(0.2s)<br />
Szesnastka: [/]<br />
<br />
TEMPO: 120 BPM:<br />
Półnuta: 1 sekunda(0.4s + 0.4s + 0.2s)<br />
Ćwierćnuta: 0.5 sekundy(0.4s + 0.1s<br />
Ósemka: [/]<br />
Szesnastka [/]<br />
<span style="font-style: italic;">Kwintola(1/5 ćwierćnuty): 0.1 sekundy (0.1s)</span><br />
<br />
TEMPO: 150 BPM:<br />
Półnuta: 0.8 sekundy(0.4s + 0.4s)<br />
Ćwierćnuta: 0.4 sekundy (0.4s)<br />
Ósemka: 0.2 sekundy(0.2s)<br />
Szesnastka: 0.1 sekundy(0.1s)<br />
<br />
Nie znosisz pojęć muzycznych? Nie znasz się na muzyce? Równie dobrze można rytm można zrobić metodą prób i błędów, lub na wyczucie. Zresztą rytm w wielu gatunkach(pop, rock, muzyka elektroniczna, a w szczególności techno) jest bardzo prosty i ogranicza się do naprzemiennego bębna basowego i werbla, ewentualnie wzbogaconego o połowę szybszy tik-tok. Problemy zaczynają się przy próbie grania np. metalcoru lub metalu matematycznego, których złożona rytmika jest ich wizytówką.<br />
<br />
<span style="font-size: large;"><span style="font-weight: bold;">Część 3: Melodia</span></span><br />
Nie ma muzyki bez melodii. To wiemy. Jednak nie każdy wie, że wysokości dźwięków granych przez bloki muzyczne są uporządkowane tak samo, jak w prawdziwych instrumentach! Zatem dysponując zapisem muzycznym (nawet prosta, czytelna tabulatura nam wystarczy!) możemy wiernie odtworzyć nasz ulubiony utwór. Warunkiem jest fakt, że utwór ma zapis muzyczny (R.I.P. muzyka elektroniczna).<br />
<br />
PRZERWY<br />
<br />
Tak jak w przypadku rytmu, melodia ma pewne odstępy czasowe. Melodie dobrze jest ustawiać na wyczucie przed strojeniem, a po całkowitym nastrojeniu dopracowywać. Tak jest przynajmniej w moim przypadku<br />
<br />
STROJENIE NOTEBLOCKÓW:<br />
<br />
Jeśli otworzymy tabulaturę naszego utworu (najczęściej tabulatura jest do gitary, ale w gitarowej formie jest również notacja do pianina), to w rogu znajdziemy dźwięki strun.<br />
<img class="postimage" src="https://i.imgur.com/t18LaJL.png" border="0" alt="[Obrazek: t18LaJL.png]" /><br />
<br />
Korzystając z poniższego odniesienia stroimy noteblocki na te dźwięki, na które nastrojone są użyte struny.<br />
<br />
<img class="postimage" src="https://d1u5p3l4wpay3k.cloudfront.net/minecraft_gamepedia/b/bd/Noteblock_reference.png?version=7c1da1f936b432a70f45990dc0c16fbb" border="0" alt="[Obrazek: Noteblock_reference.png?version=7c1da1f9...0dc0c16fbb]" /><br />
<br />
Miejmy na uwadze, że najczęściej struny są posortowane (od dołu) od najniższej do najwyższej, więc stroi się je kolejno coraz wyżej za pomocą odniesienia. Jeśli używamy w utworze wszystkich strun, do tych niskich strun używamy basu, a do wysokich strun harfy. Nie wszystkie melodie będzie się dało zagrać jednym instrumentem. Akurat tą melodię można zagrać jedynie harfą. Zatem nasze noteblocki będą nastrojone następująco:<br />
C(6 kliknięć), F(11 kliknięć), F, F, F, F, A(15 kliknięć)<br />
<br />
<br />
DRUGIE STROJENIE NOTEBLOCKÓW:<br />
Mając podstawowe dźwięki, musimy jeszcze kliknąć noteblocki odpowiednio do numerów na tabulaturze, aby je odpowiednio podwyższyć. Zatem noteblock C klikamy 3 razy, bloki F 5, 6, 5, 6, 5 razy, a noteblock A 6 razy. No i voila! Jednak niestety rzeczywistość często jest rozczarowująca, i nieraz różnice dźwięków są za wysokie, przez co musimy używać na raz harfy i basu.<br />
<br />
<br />
CO JAK MUSZĘ ŁĄCZYĆ BAS Z HARFĄ?<br />
Najniższe dźwięki oczywiście będą grane basem, a te wyższe harfą. Wartym uwagi jest fakt, że jeśli przykładowo zabraknie nam na basie 4 kliknięć do chcianego dźwięku, możemy wziąć harfę i kliknąć ją 4 razy - wtedy otrzymamy żądany dźwięk, tylko na harfie, a nie na basie. Być może ta wizualizacja wam trochę pomoże przy tworzeniu:<br />
<br />
<img class="postimage" src="https://i.imgur.com/TAoJNwO.png" border="0" alt="[Obrazek: TAoJNwO.png]" /><br />
<br />
<br />
CO JAK DŹWIĘKI SĄ ZA WYSOKIE?<br />
<br />
<img class="postimage" src="https://i.imgur.com/OdAaM4M.png" border="0" alt="[Obrazek: OdAaM4M.png]" /><br />
Taki przykład. Jak widzimy, musimy noteblocki nastroić wysoko, a progi również są wysokie. Ale... Aaale! Każdy próg możemy obniżyć o oktawę, czyli 12 dźwięków w dół. Wtedy każdy dźwięk będzie odpowiedni, ale niższy o oktawę, a więc utwór dalej będzie prawidłowy. Czasami nawet trudno będzie poczuć różnicę. Ta technika strojenia działa tylko wtedy, jak każdy dźwięk melodii jest 12+.<br />
<br />
JAK ZROBIĆ AKORD?<br />
<br />
Akord to współbrzmienie kilku dźwięków, ponieważ pojedyncze dźwięki często brzmią słabo i nieznacząco. Miejmy na względzie, że jeśli obok jednego noteblocka postawimy drugi noteblock, wtedy sygnał redstone przechodząc przez jeden aktywuje również drugi noteblock. Ustawiając noteblocki w jednej linii możemy zatem zagrać akord z maksymalnie 3 dźwięków, ale dla chcącego nic trudnego. Zatem stroimy każdy dźwięk najpierw na odpowiedni dźwięk(strunę), potem na odpowiedni próg (cyferka na tabulaturze), i mamy nasz akord. <br />
<br />
Dziękuję za przeczytanie i powodzenia w tworzeniu!<br />
<br />
<span style="font-style: italic;">Wątek będzie aktualizowany o nowe, rzetelne informacje i przykłady. Wszelkie niejasności, nieprawidłowe informacje czy źle wytłumaczone zagadnienia proszę zgłaszać w poście. Zapraszam do komentowania i konstruktywnego krytycyzmu.</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[SkyBlock] Poradnik - Własna Golemiarka]]></title>
			<link>https://mineserver.pl/Temat-SkyBlock-Poradnik-W%C5%82asna-Golemiarka</link>
			<pubDate>Thu, 26 Jul 2018 10:18:46 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-SkyBlock-Poradnik-W%C5%82asna-Golemiarka</guid>
			<description><![CDATA[----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<div style="text-align: center;"><span style="font-style: italic;">Od zawsze marzyłeś/aś  o własnej farmie golemów?<br />
Chciałbyś szybko wzbogacić się na trybie SkyBlock?<br />
Nie wiesz skąd gracze mają tyle pieniędzy i też byś tak chciał/a?</div></span><br />
<div style="text-align: center;"><span style="font-weight: bold;">Ten poradnik jest dla</span> <span style="font-weight: bold;"><span style="color: #800000;">CIEBIE</span>!</span></div>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<br />
<span style="font-style: italic;"><div style="text-align: center;">Co to jest <span style="font-weight: bold;">golemiarka</span>?<br />
Golemiarka to zautomatyzowana farma żelaza, jeden z najlepszych zarobków na naszym  Sky Blocku.</div></span><br />
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<div style="text-align: center;">Postaram się w kilku krokach zobrazować Ci to, w jaki sposób poprawnie zbudować swoją pierwszą farmę golemów.</div>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<span style="font-weight: bold;">Potrzebne ci będzie:</span><br />
• Kilka staków furtek z dowolnego drewna<br />
• Kilka staków lejków<br />
• Trochę wiader lawy<br />
• Troche cobbla, stone lub innych bloków - co sobie wybierzesz.<br />
• Troche skrzynek<br />
• 40 000&#36; na spawner golemów<br />
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<span style="font-weight: bold;"><br />
<span style="color: #FF0000;">UWAGA: Golemiarka, którą przedstawie Ci w tym poradniku to jedna z wielu propozycji, można zbudować ją na wiele sposobów.</span></span><br />
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<span style="font-weight: bold;">1.</span> Pomyśl nad tym, ile spawnerów chciałbyś/aś mieć w swojej farmie w przyszłości. Najlepszą opcją jest jak najwięcej, ponieważ wkrótce, kiedy twoja golemiarka zacznie generować duże zyski będziesz potrzebował/a dużo miejsca na spawnery.<br />
<br />
<span style="font-weight: bold;">2.</span> Załóżmy, że myślisz przyszłościowo i celujesz w dużą ilość spawnerów. Pierwszym krokiem do zrobienia golemiarki jest oczywiście uzbieranie pieniędzy na spawnery, które są przecież niezbędne do stworzenia tej farmy. Jeden spawner razem z proszkiem golemów kosztuje 40 000&#36; i możesz zakupić go u zaklinacza na spawnie<br />
 <br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=V0ZD" border="0" alt="[Obrazek: image.php?di=V0ZD]" /><br />
<br />
<span style="font-weight: bold;">3.</span> Jak już masz <span style="font-weight: bold;">spawner</span> i nie możesz się doczekać, aby go postawić to kontynuuj czytanie <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" />. Należy pamiętać, że ważne jest budowanie swojej farmy z najładniejszych bloków jakie mamy, ponieważ po jakimś czasie gracze lub my sami widząc naszą golemiarkę z cobbla albo z desek nie będą zachwyceni. Trzeba myśleć przyszłościowo, dlatego surowiec z jakiego ja zbuduje swoją to Nether Bricki i Czerwone szkło. Nether Bricki możesz pozyskać z netheru, lub kupić od graczy, a szkło wręczy ci villager w zamian za parę  <span style="color: #32CD32;">emeraldów</span> <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" />. Oczywiście ty możesz wybrać inne bloki, takie, na które cię stać i takie, które ci się podobają.<br />
<br />
<br />
<span style="font-weight: bold;">4.</span>  Teraz zbuduj kwadrat na ziemi o wymiarach 20x20 lub większy. (Nie wypełniaj środka)<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=NAJV" border="0" alt="[Obrazek: image.php?di=NAJV]" /><br />
<br />
<span style="font-weight: bold;">5.</span> Zapytasz o wysokość? <br />
Najlepiej jakby golemiarka była jak najwyższa, aby odległość między spawnerami a lawą była wystarczająca. Ja swoją zrobię wysoką na 15 kratek. Pamiętaj, im wyżej tym lepiej. Zbuduj taki jakby szkielet golemiarki.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=4H46" border="0" alt="[Obrazek: image.php?di=4H46]" /><br />
<br />
<span style="font-weight: bold;">6.</span> Wypełnij ściany golemiarki blokami, które sobie wybierzesz.. Miejsce na twoją farmę jest już gotowe, teraz jeszcze pozostaje rozstawić lejki, furtki i rozlać lawę.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=AO32" border="0" alt="[Obrazek: image.php?di=AO32]" /><br />
<br />
<span style="font-weight: bold;">7.</span> Na samym dole przyszłej golemiarki rozstaw lejki, aby żelazo do nich wpadało, a następnie przechodziło do skrzynek. Wszystkie lejki powinny kierować się w jedną stronę. Powinno wyglądać to tak.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=NFUS" border="0" alt="[Obrazek: image.php?di=NFUS]" /><br />
<br />
<span style="font-weight: bold;">8.</span> Teraz należy postawić furtki 1 kratke wyżej niż lejki, tzn. między lejkami a furtkami ma być 1 pusta kratka. Furtki stawiamy po to, żeby dać na niej lawę. Furtki tak jak tabliczki zatrzymują lawę i wodę. Muszą być one otwarte, aby golemy przez nie przelatywały.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=3GCY" border="0" alt="[Obrazek: image.php?di=3GCY]" /><br />
<br />
<span style="font-weight: bold;">9.</span> Od razu na furtkach rozlewamy lawę, tak, aby pokryła całą powierzchnie nad furtkami. Powinno wyglądać to tak:<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=2J00" border="0" alt="[Obrazek: image.php?di=2J00]" /><br />
<br />
<span style="font-weight: bold;">10.</span> Gratuluję! Twoja Golemiarka jest prawie gotowa! Teraz jeszcze tylko postawić spawnery. Spawnery stawiamy w kostkach po osiem spawnerow. Kostki powinny być 3 kratki od siebie i od ścian, aby golemy nie wypadały za golemiarke. Na kostkach należy postawić półpłytki, aby golemy nie respiły się na spawnerach, tylko od razu spadały w dół do lawy. Powinno wyglądać to tak:<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=JMZN" border="0" alt="[Obrazek: image.php?di=JMZN]" /><br />
<br />
<span style="font-weight: bold;">11.</span> Golemiarka powinna działać w ten sposób. Golemy spadają na dół, gdzie zabija je lawa, która jednocześnie nie spala żelaza i kwiatków, które wypadają z golemów. Żelazo leci do lejków, a następnie do Twoich skrzynek, skąd możesz je zebrać i sprzedać na ./warp sklep.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=QTPE" border="0" alt="[Obrazek: image.php?di=QTPE]" /><br />
<br />
<span style="font-weight: bold;">12.</span> Pamiętaj, że spawnery działają tylko wtedy, kiedy w promieniu 15 kratek od nich znajduje się gracz. Aby zapewnić to, że spawnery będą działały nawet, kiedy Ciebie nie będzie w grze, postaw tabliczkę powitalną na samej górze i coś co zachęciłoby ludzi, do przychodzenia na Twojego warpa i stania tam. Najlepszą opcją jest sklep.<br />
<br />
<span style="font-weight: bold;">W ten sposób utworzyłeś/aś swoją farmę żelaza, miłego zarabiania!</span><br />
<span style="font-weight: bold;">Dziękuję moderatorce sky błocka, <span style="color: #FF69B4;">pixieily</span>, która pomogła mi w tworzeniu tego poradnika ! &lt;3</span><br />
Podczas korzystania ze spawnerów pamiętaj o tym: <br />
<a href="http://mineserwer.pl/Temat-Regulamin-kor...ner%C3%B3w" target="_blank">http://mineserwer.pl/Temat-Regulamin-kor...ner%C3%B3w</a><br />
<br />
<span style="color: #87CEEB;"><span style="font-weight: bold;">Ekipa Sky Block</span></span><br />
<span style="font-weight: bold;">Maciewek</span><br />
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<span style="font-size: x-small;"></span>]]></description>
			<content:encoded><![CDATA[----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<div style="text-align: center;"><span style="font-style: italic;">Od zawsze marzyłeś/aś  o własnej farmie golemów?<br />
Chciałbyś szybko wzbogacić się na trybie SkyBlock?<br />
Nie wiesz skąd gracze mają tyle pieniędzy i też byś tak chciał/a?</div></span><br />
<div style="text-align: center;"><span style="font-weight: bold;">Ten poradnik jest dla</span> <span style="font-weight: bold;"><span style="color: #800000;">CIEBIE</span>!</span></div>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<br />
<span style="font-style: italic;"><div style="text-align: center;">Co to jest <span style="font-weight: bold;">golemiarka</span>?<br />
Golemiarka to zautomatyzowana farma żelaza, jeden z najlepszych zarobków na naszym  Sky Blocku.</div></span><br />
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<div style="text-align: center;">Postaram się w kilku krokach zobrazować Ci to, w jaki sposób poprawnie zbudować swoją pierwszą farmę golemów.</div>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<span style="font-weight: bold;">Potrzebne ci będzie:</span><br />
• Kilka staków furtek z dowolnego drewna<br />
• Kilka staków lejków<br />
• Trochę wiader lawy<br />
• Troche cobbla, stone lub innych bloków - co sobie wybierzesz.<br />
• Troche skrzynek<br />
• 40 000&#36; na spawner golemów<br />
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<span style="font-weight: bold;"><br />
<span style="color: #FF0000;">UWAGA: Golemiarka, którą przedstawie Ci w tym poradniku to jedna z wielu propozycji, można zbudować ją na wiele sposobów.</span></span><br />
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<span style="font-weight: bold;">1.</span> Pomyśl nad tym, ile spawnerów chciałbyś/aś mieć w swojej farmie w przyszłości. Najlepszą opcją jest jak najwięcej, ponieważ wkrótce, kiedy twoja golemiarka zacznie generować duże zyski będziesz potrzebował/a dużo miejsca na spawnery.<br />
<br />
<span style="font-weight: bold;">2.</span> Załóżmy, że myślisz przyszłościowo i celujesz w dużą ilość spawnerów. Pierwszym krokiem do zrobienia golemiarki jest oczywiście uzbieranie pieniędzy na spawnery, które są przecież niezbędne do stworzenia tej farmy. Jeden spawner razem z proszkiem golemów kosztuje 40 000&#36; i możesz zakupić go u zaklinacza na spawnie<br />
 <br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=V0ZD" border="0" alt="[Obrazek: image.php?di=V0ZD]" /><br />
<br />
<span style="font-weight: bold;">3.</span> Jak już masz <span style="font-weight: bold;">spawner</span> i nie możesz się doczekać, aby go postawić to kontynuuj czytanie <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" />. Należy pamiętać, że ważne jest budowanie swojej farmy z najładniejszych bloków jakie mamy, ponieważ po jakimś czasie gracze lub my sami widząc naszą golemiarkę z cobbla albo z desek nie będą zachwyceni. Trzeba myśleć przyszłościowo, dlatego surowiec z jakiego ja zbuduje swoją to Nether Bricki i Czerwone szkło. Nether Bricki możesz pozyskać z netheru, lub kupić od graczy, a szkło wręczy ci villager w zamian za parę  <span style="color: #32CD32;">emeraldów</span> <img class="postimage" src="images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" />. Oczywiście ty możesz wybrać inne bloki, takie, na które cię stać i takie, które ci się podobają.<br />
<br />
<br />
<span style="font-weight: bold;">4.</span>  Teraz zbuduj kwadrat na ziemi o wymiarach 20x20 lub większy. (Nie wypełniaj środka)<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=NAJV" border="0" alt="[Obrazek: image.php?di=NAJV]" /><br />
<br />
<span style="font-weight: bold;">5.</span> Zapytasz o wysokość? <br />
Najlepiej jakby golemiarka była jak najwyższa, aby odległość między spawnerami a lawą była wystarczająca. Ja swoją zrobię wysoką na 15 kratek. Pamiętaj, im wyżej tym lepiej. Zbuduj taki jakby szkielet golemiarki.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=4H46" border="0" alt="[Obrazek: image.php?di=4H46]" /><br />
<br />
<span style="font-weight: bold;">6.</span> Wypełnij ściany golemiarki blokami, które sobie wybierzesz.. Miejsce na twoją farmę jest już gotowe, teraz jeszcze pozostaje rozstawić lejki, furtki i rozlać lawę.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=AO32" border="0" alt="[Obrazek: image.php?di=AO32]" /><br />
<br />
<span style="font-weight: bold;">7.</span> Na samym dole przyszłej golemiarki rozstaw lejki, aby żelazo do nich wpadało, a następnie przechodziło do skrzynek. Wszystkie lejki powinny kierować się w jedną stronę. Powinno wyglądać to tak.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=NFUS" border="0" alt="[Obrazek: image.php?di=NFUS]" /><br />
<br />
<span style="font-weight: bold;">8.</span> Teraz należy postawić furtki 1 kratke wyżej niż lejki, tzn. między lejkami a furtkami ma być 1 pusta kratka. Furtki stawiamy po to, żeby dać na niej lawę. Furtki tak jak tabliczki zatrzymują lawę i wodę. Muszą być one otwarte, aby golemy przez nie przelatywały.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=3GCY" border="0" alt="[Obrazek: image.php?di=3GCY]" /><br />
<br />
<span style="font-weight: bold;">9.</span> Od razu na furtkach rozlewamy lawę, tak, aby pokryła całą powierzchnie nad furtkami. Powinno wyglądać to tak:<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=2J00" border="0" alt="[Obrazek: image.php?di=2J00]" /><br />
<br />
<span style="font-weight: bold;">10.</span> Gratuluję! Twoja Golemiarka jest prawie gotowa! Teraz jeszcze tylko postawić spawnery. Spawnery stawiamy w kostkach po osiem spawnerow. Kostki powinny być 3 kratki od siebie i od ścian, aby golemy nie wypadały za golemiarke. Na kostkach należy postawić półpłytki, aby golemy nie respiły się na spawnerach, tylko od razu spadały w dół do lawy. Powinno wyglądać to tak:<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=JMZN" border="0" alt="[Obrazek: image.php?di=JMZN]" /><br />
<br />
<span style="font-weight: bold;">11.</span> Golemiarka powinna działać w ten sposób. Golemy spadają na dół, gdzie zabija je lawa, która jednocześnie nie spala żelaza i kwiatków, które wypadają z golemów. Żelazo leci do lejków, a następnie do Twoich skrzynek, skąd możesz je zebrać i sprzedać na ./warp sklep.<br />
<br />
<img class="postimage" src="http://mineserwer.pl/uploadzdjec/image.php?di=QTPE" border="0" alt="[Obrazek: image.php?di=QTPE]" /><br />
<br />
<span style="font-weight: bold;">12.</span> Pamiętaj, że spawnery działają tylko wtedy, kiedy w promieniu 15 kratek od nich znajduje się gracz. Aby zapewnić to, że spawnery będą działały nawet, kiedy Ciebie nie będzie w grze, postaw tabliczkę powitalną na samej górze i coś co zachęciłoby ludzi, do przychodzenia na Twojego warpa i stania tam. Najlepszą opcją jest sklep.<br />
<br />
<span style="font-weight: bold;">W ten sposób utworzyłeś/aś swoją farmę żelaza, miłego zarabiania!</span><br />
<span style="font-weight: bold;">Dziękuję moderatorce sky błocka, <span style="color: #FF69B4;">pixieily</span>, która pomogła mi w tworzeniu tego poradnika ! &lt;3</span><br />
Podczas korzystania ze spawnerów pamiętaj o tym: <br />
<a href="http://mineserwer.pl/Temat-Regulamin-kor...ner%C3%B3w" target="_blank">http://mineserwer.pl/Temat-Regulamin-kor...ner%C3%B3w</a><br />
<br />
<span style="color: #87CEEB;"><span style="font-weight: bold;">Ekipa Sky Block</span></span><br />
<span style="font-weight: bold;">Maciewek</span><br />
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<span style="font-size: x-small;"></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Prawie każdy tryb na jednej wersji? :]]></title>
			<link>https://mineserver.pl/Temat-Prawie-ka%C5%BCdy-tryb-na-jednej-wersji</link>
			<pubDate>Thu, 10 May 2018 11:26:52 +0000</pubDate>
			<guid isPermaLink="false">https://mineserver.pl/Temat-Prawie-ka%C5%BCdy-tryb-na-jednej-wersji</guid>
			<description><![CDATA[Hejka, wiem że kilka trybów upada przez to że nie chce się Wam zmieniać wersji i wiecie co? Nie dziwie się.. Ale tak ostatnio przeglądałem sobie launchery polecam shiginima v3.100 (czy jakoś tak) jest to pirat w końcu nie każdego stać na premkę. Ale do rzeczy.. Wybierając wersje w zyczu czy innych launcherach gra crashował na 1.8. A na tym launcherze wejdziecie praktycznie na każdy tryb nie musząc zmieniać wersji. Na prawdę polecam ładujecie grę raz i śmigacie po każdym trybie (prawie). Niżej podam link do pobrania tego launcher'a z którego pobierałem ja gdyż mam pewność że strona ta nie jest zawirusowana <img class="postimage" src="images/smilies/wink.gif" style="vertical-align: middle;" border="0" alt="Wink" title="Wink" />. <br />
<br />
<a href="http://www.instalki.pl/gry/download/mody/Minecraft_Shiginima_Launcher.html" target="_blank">http://www.instalki.pl/gry/download/mody...ncher.html</a><br />
<br />
A tutaj jak pobrać <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> <br />
<br />
<a href="https://imgur.com/a/tpWOyeo" target="_blank">https://imgur.com/a/tpWOyeo</a><br />
<br />
1. Czekamy aż się pobierze. <br />
2. Wchodzimy tam gdzie zapisują się Wam pobrane pliki w moim przypadku jest to folder pobrane.<br />
3. Mam zapakowany launcher w .rar (aby go rozpakować będziemy potrzebować winrar). Musimy go rozpakować.<br />
4. Wchodzimy w wypakowany folder i wybieramy OS lub Linux lub windows zależy jaki macie system operacyjny <br />
5. Otwieramy launcher.<br />
6. Tworzymy profil, wpisujemy taką nazwę jaka mamy na serwerze minserwer. <br />
7. Wybieramy wersje minecraft 1.8<br />
8. Dajemy "Play" i cieszmy się z gry <br />
<br />
Miłego dnia myślę ze pomogłem i poradnik jest zrozumiały.]]></description>
			<content:encoded><![CDATA[Hejka, wiem że kilka trybów upada przez to że nie chce się Wam zmieniać wersji i wiecie co? Nie dziwie się.. Ale tak ostatnio przeglądałem sobie launchery polecam shiginima v3.100 (czy jakoś tak) jest to pirat w końcu nie każdego stać na premkę. Ale do rzeczy.. Wybierając wersje w zyczu czy innych launcherach gra crashował na 1.8. A na tym launcherze wejdziecie praktycznie na każdy tryb nie musząc zmieniać wersji. Na prawdę polecam ładujecie grę raz i śmigacie po każdym trybie (prawie). Niżej podam link do pobrania tego launcher'a z którego pobierałem ja gdyż mam pewność że strona ta nie jest zawirusowana <img class="postimage" src="images/smilies/wink.gif" style="vertical-align: middle;" border="0" alt="Wink" title="Wink" />. <br />
<br />
<a href="http://www.instalki.pl/gry/download/mody/Minecraft_Shiginima_Launcher.html" target="_blank">http://www.instalki.pl/gry/download/mody...ncher.html</a><br />
<br />
A tutaj jak pobrać <img class="postimage" src="images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> <br />
<br />
<a href="https://imgur.com/a/tpWOyeo" target="_blank">https://imgur.com/a/tpWOyeo</a><br />
<br />
1. Czekamy aż się pobierze. <br />
2. Wchodzimy tam gdzie zapisują się Wam pobrane pliki w moim przypadku jest to folder pobrane.<br />
3. Mam zapakowany launcher w .rar (aby go rozpakować będziemy potrzebować winrar). Musimy go rozpakować.<br />
4. Wchodzimy w wypakowany folder i wybieramy OS lub Linux lub windows zależy jaki macie system operacyjny <br />
5. Otwieramy launcher.<br />
6. Tworzymy profil, wpisujemy taką nazwę jaka mamy na serwerze minserwer. <br />
7. Wybieramy wersje minecraft 1.8<br />
8. Dajemy "Play" i cieszmy się z gry <br />
<br />
Miłego dnia myślę ze pomogłem i poradnik jest zrozumiały.]]></content:encoded>
		</item>
	</channel>
</rss>