Skocz do zawartości

Wirtualne skrzynie


Rekomendowane odpowiedzi

Witam wszystkich użytkowników Skript.pl :)

W tym poradniku wyjaśnię jak na naszym serwerze możemy stworzyć wirutalne skrzynki za opłatą.
Zaczynamy!
Na początku zdefiniujmy zmienne i opcje, aby łatwiej było nam potem pisać.

options:	tag: &a[VChest]&7variables:	{mg1.%player%} = false	{mg2.%player%} = false

Zmienna {mg1.%player%} będzie sprawdzać czy gracz zakupił skrzynię 1, a zmienna {mg2.%player%} sprawdza tak samo drugą skrzynię. Opcji {@tag} będziemy mogli użyć w wiadomościach na chacie.

Najpierw musimy zdecydować co trzeba zrobić aby otworzyć skrzynkę. W moim przypadku będzie to kliknięcie na daną tabliczkę. Zatem piszemy:

on rightclick on sign:

Aby nie działało to na każdej tabliczce na serwerze, dodajmy warunki sprawdzające tekst w danych linijkach tabliczki:

line 1 is "&1[VChest]"line 3 is "&lMagazyn 1"line 4 is "10 000$"

Ta część sprawdzi pierwszą, trzecią i czwartą linijkę tabliczki. Jeśli wszystkie są prawidłowe, wykona dalszą cześć skryptu. Więc lecimy dalej, sprawdźmy czy gracz ma wystarczająco pieniędzy aby zakupić skrzynkę.

player's money is greater than 10001:

Moja skrzynka będzie kosztować 10 000$. Uwaga! Aby zadziałało poprawnie przy równej ilości 10 000$ należy dodać 1, czyli 10 001$ inaczej nie zadziała gdy gracz będzie miał równo 10 000$. Dalej sprawdzamy cz zakupił już skrzynkę, do tego przyda nam się nasza zmienna.

{mg1.%player%} is false:

Myślę, że nie ma tu czego tłumaczyć. :) Teraz pobawimy się w ustawianie skrzyń na mapie w losowym miejscu.

set {_x} to random integer between 0 and 10000set {_y} to 255set {_z} to random integer between 1 and 10000

Zmienna {_x} ustawi się na losową wartość pomiędzy 0 i 10000, tak samo zmienna {_z}. Zmienna {_y} jest natomiast ustawiona na 255, dzięki czemu będzie przy samym niebie.

set {_r} to location at {_x}, {_y}, {_z}

Tutaj ustawiamy lokację {_r}, z naszych wcześniejszych zmiennych.

set block at {_r} to chest

Zmieniamy blok w tym miejscu na skrzynkę. Jeżeli chcemy aby skrzynia była podwójna dodajmy to:

set block east {_r} to chest

Teraz:

set {rmg1.%player%} to location of {_r}

Ustawiamy właściciela skrzynki. :)

set {mg1.%player%} to true

Zaznaczamy, że gracz kupił już skrzynkę.

remove 10000 from player's money

I zabieramy pieniążki. :D

Ewentualnie możemy wysłać wiadomość, np:

send "{@tag} Zakupiles &lMagazyn 1&7 za &l10 000$&7."

Teraz pod linijką {mg1.%player%} is false: dajemy taki kod:

{mg1.%player%} is true:

Czyli sprawdzamy czy gracz zakupił już skrzynkę. Dalej dodajemy to:

open the inventory of the block at {rmg1.%player%} to the player

Właściwie główna część naszego skryptu, ponieważ to ona odpowiada za otwieranie skrzyni.
Teraz pod linijką player's money is greater than 10001: dodajemy warunek else (przeciwnie):

else:

I wysyłamy wiadomość. :)

send "{@tag} Nie masz wystarczajaco pieniedzy."

Cały kod powinien wyglądać tak:

options:	tag: &a[VChest]&7variables:	{mg1.%player%} = false	{mg2.%player%} = falseon rightclick on sign:	line 1 is "&1[VChest]"	line 3 is "&lMagazyn 1"	line 4 is "10 000$"	player's money is greater than 10001:		{mg1.%player%} is false:			set {_x} to random integer between 0 and 10000			set {_y} to 255			set {_z} to random integer between 1 and 10000			set {_r} to location at {_x}, {_y}, {_z}			set block at {_r} to chest			set {rmg1.%player%} to location of {_r}			set {mg1.%player%} to true			remove 10000 from player's money			send "{@tag} Zakupiles &lMagazyn 1&7 za &l10 000$&7."		{mg1.%player%} is true:			open the inventory of the block at {rmg1.%player%} to the player			stop	else:		send "{@tag} Nie masz wystarczajaco pieniedzy."

Na początku jednak są dwie zmienne. Jeśli chcecie zrobić dwie skrzynki, zróbcie drugi taki skrypt, zmieniając cyferki. :)

 

 

 

Poradnik oraz skrypt w całości napisany przez RaiZeN.

Zakaz kopiowania bez mojej zgody.

Odnośnik do komentarza
https://skript.pl/temat/416-wirtualne-skrzynie/
Udostępnij na innych stronach

Fajny pomysł. Można kilka razy wkleić

on rightclick on sign:    line 1 is "&1[VChest]"    line 3 is "&lMagazyn 1"    line 4 is "10 000$"    player's money is greater than 10001:        {mg1.%player%} is false:            set {_x} to random integer between 0 and 10000            set {_y} to 255            set {_z} to random integer between 1 and 10000            set {_r} to location at {_x}, {_y}, {_z}            set block at {_r} to chest            set {rmg1.%player%} to location of {_r}            set {mg1.%player%} to true            remove 10000 from player's money            send "{@tag} Zakupiles &lMagazyn 1&7 za &l10 000$&7."        {mg1.%player%} is true:            open the inventory of the block at {rmg1.%player%} to the player            stop    else:        send "{@tag} Nie masz wystarczajaco pieniedzy."

Zmieniając line 3 ewetualnie 4 i będzie działać.
@Edit

player's money is greater than 10001

Zapomniałem o tym :)

Odnośnik do komentarza
https://skript.pl/temat/416-wirtualne-skrzynie/#findComment-2187
Udostępnij na innych stronach

  • 2 miesiące temu...

Co do tego znalezienia skrzyni: fakt

Co do podwójnej skrzyni: Nie fakt, bo to nie pobiera określonego bloku, tylko bloku na koordynatach(Nawet gdy to podwójna skrzynia, to otwiera pojedynczą :P

Odnośnik do komentarza
https://skript.pl/temat/416-wirtualne-skrzynie/#findComment-12268
Udostępnij na innych stronach

Co do podwójnej skrzyni: Nie fakt, bo to nie pobiera określonego bloku, tylko bloku na koordynatach(Nawet gdy to podwójna skrzynia, to otwiera pojedynczą :p

 

U mnie działała i pojedyncza i podwójna, nie wiem jak u ciebie.

Odnośnik do komentarza
https://skript.pl/temat/416-wirtualne-skrzynie/#findComment-12296
Udostępnij na innych stronach

  • 1 miesiąc temu...
  • Szifter zablokował(a) ten temat
Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...