Skocz do zawartości
  • 👋 Witaj na MPCForum!

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

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

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

    Zarejestruj się teraz

Jak pisać skrypty?


ʞɔ!ɹ

Rekomendowane odpowiedzi

Opublikowano

Skript jest to plugin, który za pomocą prostego kodu pozwala na pisanie bardzo złożonych projektów. Zapraszam do świata Skryptów.

 

0.Objaśnienia:


NA CZERWONO - WAŻNE RZECZY
NA ZIELONO - OBJAŚNIENIA


 
1. Przygotowania do pracy:


1. Ściągamy plugin do folderu plugins,



http://dev.bukkit.org/bukkit-plugins/skript/

2. Uruchamiamy serwer, aby utworzyły nam się foldery.
3. Najbardziej będzie nas interesował folder scripts.
4. Polecam też pobrać Notepad++

http://notepad-plus-plus.org/download/v6.5.5.html 

5.Teraz możemy przystąpić do pisania skryptów  :) 


 
2.Pierwszy skrypt


Na początek kilka ważnych rzeczy:
1. Używamy Tabulacji [TAB] do budowania struktury. NIE UŻYWAMY SPACJI, GDYŻ BĘDĄ WYWALAĆ BŁĘDY
2. Nie używamy polskich znaków.
3. Nasze pliki zapisujemy w .sk (w notepad++, przed zapisaniem w Zapisz jako typ przewijasz do góry do Wszystkie pliki i po nazwie wpisujesz .sk)
4.Treść po hashu (#) będzie traktowana jako komentarz
5.Tekst w send i broadcast wpisujemy w "tekst"
Dobrze, przejdźmy do naszego pierwszego skryptu. Będzie to prosta komenda.
Na początku wpisujemy:



command /siema: #Wymagane do poprawnego działania komendy
	trigger: #Jak wyżej
		send "Hej" to player #Wysyła do gracza wiadomość "Hej" po wpisaniu komendy /siema

Te odstępy to TAB'y. Tab to przycisk nad Caps Lockiem z ikonką można to powiedzieć dwóch strałek skierowanych w różnym kierunku.
Ok. Mamy komendę, bardzo prostą. Dodajmy do niej takie rzeczy jak: publiczną wiadomość ze zmienną, kolor w wiadomościach i sprawdzanie czy gracz ma permisje.

command /siema: #Wymagane do poprawnego działania
	trigger: #Jak wyżej
		if player has permission "hej": #Jak gracz ma permisje "hej"
			send "&eHej" to player #Wysyła do gracza kolorową wiadomość "Hej" po wpisaniu komendy /siema
			broadcast "&cGracz &e%player% &cprzywital sie z serwerem!" #Wysyła do wszystkich wiadomość że gracz <nick> przywitał się z serwerem. 

DO UPRAWNIEŃ WYMAGANY JEST OSOBNY PLUGIN
Ok, mamy kod naszej urozmaiconej komendy. Dodamy jeszcze żeby komenda /witaj oraz /dziendobry robiła to samo co /siema oraz dodamy wiadomość o braku permisji używając else.

command /siema: #Wymagane do poprawnego działania
	aliases: witaj, dziendobry
	trigger: #Jak wyżej
		if player has permission "hej": #Jak gracz ma permisje "hej"
			send "&eHej" to player #Wysyła do gracza kolorową wiadomość "Hej" po wpisaniu komendy /siema
			broadcast "&cGracz &e%player% &cprzywital sie z serwerem!" #Wysyła do wszystkich wiadomość że gracz x przywitał się z serwerem. 
		else:
			send "&cNie masz dostepu" #Wiadomosc o braku dostepu 

command /siema - uświadamia że to komenda
aliases - "różne nazwy tej samej komendy"
trigger - w nim jest "wnętrze komendy"
if - jeśli
send - wysyła wiadomość do gracza
broadcast - wysyła wiadomość do wszystkich graczy
else - bądź


 
3.Obsługa wydarzeń i pętli.


Powiedzmy, że chcemy wyczyścić czat, klikając prawym przyciskiem myszy na blok redstona patykiem nazwanym "&6Rozdzka", ale chcemy też, żeby czat można było wyczyścić najzwyklejszą komendą oraz żebyśmy mogli dostać Różdżkę komendą. Wydaje nam się, że jest to długie i czasochłonne, ale tak nie jest ;) .
 
Więc na początku poznajmy Wydarzenie. Wydarzenia w Skripcie to np. on place, on mine, on chat, on rightclick on redstone block.
Tego ostatniego użyjemy do naszego projektu. Ale zanim będziemy pisać poznamy Pętlę - x krotne powtórzenie danej czynności.
Ok. Zacznijmy pisać nasz kod!
 
Jak się domyślacie, początek to:

on rightclick on redstone block:

Mamy więc początek, lecz chcemy żeby komenda działała tylko naszą różdżką. Nic trudnego!

on rightclick on redstone block:
	player's tool is a stick named "&6Rozdzka": #Przed player's można dodać if, ale nie jest to konieczne

Ok, ale teraz musimy dodać komendę. Nie można tworzyć komendy w wydarzeniu (chodzi o pisanie komendy np. takiej jak w pkt.2) ! Poznamy teraz takie zdanie: 



make player execute command "/komenda" #Gracz wykonuję komendę /komenda (ze sprawdzeniem, czy ma permisje"

Jest to wykonywanie przez gracza (oczywiście on tego nie wpisuje ;]) komendy ze sprawdzeniem, czy gracz ma dostęp. Złączmy teraz nasz kod.

on rightclick on redstone block:
	player's tool is a stick named "&6Rozdzka": #Przed player's można dodać if, ale nie jest to konieczne
		make player execute command "/wyczysc" #Tak będzie się nazwywała nasza komenda na wyczyszczenie

Robimy teraz komendę /wyczysc, która 100 razy używa:

broadcast ""

Na myśl nam przychodzi, że będziemy musieli pisać 100 linijek :) Nic z tych rzeczy, gdyż użyjemy pętli! Oto kod (którego myślę, nie muszę tłumaczyć ^^) :

command /wyczysc:
	trigger:
		if player has permission "wyczysc":
			loop 100 times:
				broadcast ""
			broadcast "&cCzat wyczyszczony przez &e%player%"
			broadcast ""
			broadcast ""
		else:
			send "&cNie masz dostepu" to player

Teraz użyjemy give, o którym dokładniej powiem w następnych punktach. Oto kod (też nie tłumaczę) :

command /rozdzka:
	trigger:
		if player has permission "rozdzka":
			give a stick named "&6Rozdzka" to player
			send "&eCiesz sie swoja &6Rozdzka&c!" to player
		else:
			send "&cNie masz dostepu" to player

I teraz przedstawię całość kodu:

on rightclick on redstone block:
	player's tool is a stick named "&6Rozdzka": #Przed player's można dodać if, ale nie jest to konieczne
		make player execute command "/wyczysc" #Tak będzie się nazwywała nasza komenda na wyczyszczenie
command /wyczysc:
	trigger:
		if player has permission "wyczysc":
			loop 100 times:
				broadcast ""
			broadcast "&cCzat wyczyszczony przez &e%player%"
			broadcast ""
			broadcast ""
		else:
			send "&cNie masz dostepu" to player
command /rozdzka:
	trigger:
		if player has permission "rozdzka":
			give a stick named "&6Rozdzka" to player
			send "&eCiesz sie swoja &6Rozdzka&c!" to player
		else:
			send "&cNie masz dostepu" to player 

Gratulacje! Z moją pomocą zrobiłeś dość trudny dla amatora 20 linijkowy kod! Tak trzymaj!

ScreenShoty:

Uzycie komendy /rozdzka:

gj8u.png

 

 

Użycie Różdżki na bloku czerwonego kamienia tym samym uzycie komendy /wyczysc:

6ab5.png

 

 

 

 

f

Opublikowano

ja bym zmienił send " ..." to player na message " ..." lepiej. ;-) 

Poradnik nawet dobry,ale widziałem lepsze (dodaj ssy albo coś).

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...