Skocz do zawartości

UPRAWNIENIA - skrypt na uprawnienia dla członków gildii


Rekomendowane odpowiedzi

Witam!

 stworzyłem amatorski skrypt na uprawnienia dla członków gildii aby zapobiec oszusta w gildiach.

Jest on w wersji początkowej więc aktualnie znajduje się w nim

- niszczenie / stawiania bloków

- niszczenie / stawianie obsydianu

- stawianie tnt

- otwieranie / niszczenie skrzynek

- zarządzanie beaconem

Jeśli skrypt się przyjmie dodam więcej szczegółowych rzeczy.

Było by miło gdybyście ocenili skrypt, nawet najgorsza krytyka pomaga w dążeniu do doskonałości. 

Jest to mój pierwszy "WIĘKSZY" skrypt niż 10 linijek.

 

UPRAWNIENIA:

- BRAK...

 

KOMENDY:

/uprawnienia (nick)

 

WYMAGANIA:

- WILDSKRIPT

- SkQuery

- FunnySkAddon

- Skript

POBIERZ:

Download discord:

https://discord.gg/dw5sCnakAw

 
Edytowane przez dwadzieci2
TakiJakTy

Usuwam formatowanie.

Notatka dodana przez TakiJakTy

Odnośnik do komentarza
https://skript.pl/temat/37758-uprawnienia-skrypt-na-uprawnienia-dla-cz%C5%82onk%C3%B3w-gildii/
Udostępnij na innych stronach

  • 1 miesiąc temu...
  • 1 miesiąc temu...

Skrypt wygląda ładnie, lecz niepokoi mnie jedna rzecz.

Stos niepotrzebnych komend i powtarzających się eventów.

Zamiast komend, możesz wszystko wykonywać w evencie on inventory click

Tutaj dam podpowiedź:

* W komendzie uprawnienia zamiast stos ifów, możesz zmienić zmienne tak, by przechowywały wartość boolean. wtedy będziesz mógł wykorzystać tę metodę: skUnity - Najlepsza dokumentacja skripta

* wtedy zapis będzie wyglądał mniej-więcej tak:

open chest with 3 rows named "&7Uprawnienia dla: &e%player arg% &cBy: KabelOdProdiza" to player
wait 1 tick
set player's current inventory's slot 10 to cobblestone named "&eBudowanie" with lore "%{bloki1::%player arg%} ? ""&aPosiada"" : ""&cNie posiada""% &3By: KabelOdProdiza"
set player's current inventory's slot 12 to diamond pickaxe named "&eNiszczenie" with lore "%{bloki1::%player arg%} ? ""&aPosiada"" : ""&cNie posiada""% &dBy: KabelOdProdiza"

* Przyjemniej, czyż nie?

I kilka innych małych drobiazgów.

Od razu widać, że robiłeś to przy pomocy kopiuj wklej i bez żadnego pomyślunku:

Dajmy jeden przykład:

Cytat

on place of tnt:
    if player is in guild region player:
        if {bloki5::%player%} is "&cNie posiada":
            cancel event
            send "&8» &7Brak uprawnien do stawiania tnt popros &elidera &7aby Ci je nadal &e/uprawnienia"
            if {bloki5::%player%} is "&aPosiada":
                stop

 

Błąd logiczny - najpierw sprawdzasz czy zmienna jest false, a później sprawdzasz (już po sprawdzeniu) czy jest prawdziwa.

I w wielu eventach jest pomylona nazwa przedmiotu którego się używa.

Np:

- Przy wylewaniu lawy jest napis od wody.

- Przy niszczeniu skrzynki jest wspomniany beacon.

I jeszcze jeden szczegół, ratuje Cię tylko to, że dopisałeś w komendach drugi argument z którego nie korzystasz.

"&7Uprawnienia dla: &e%player arg% &cBy: KabelOdProdiza"

Otwierasz skrzynkę z dopiskiem by: kabelodprodiza

a w evencie inventory click juz bedzie w zmiennej taka nazwa:

set {_name} to uncolored inventory name of current inventory of player
replace all "Uprawnienia dla: " with "" in {_name}

1. {_name} = Uprawnienia dla: knugi By: KabelOdProdiza

2. {_name} = knugi By: KabelOdProdiza

....

Później już wykonujesz komendę taką:

Cytat

/blokiupr knugi By: KabelOdProdiza

Ale, że masz ten drugi argument to nie ma błędu.

Chciałeś krytykę? To Masz ! XD 

Pozdrawiam #Knugi

Odnośnik do komentarza
https://skript.pl/temat/37758-uprawnienia-skrypt-na-uprawnienia-dla-cz%C5%82onk%C3%B3w-gildii/#findComment-252098
Udostępnij na innych stronach

  • 3 tygodnie później...
W dniu 6.07.2020 o 21:58, knugi napisał:

Skrypt wygląda ładnie, lecz niepokoi mnie jedna rzecz.

Stos niepotrzebnych komend i powtarzających się eventów.

Zamiast komend, możesz wszystko wykonywać w evencie on inventory click

Tutaj dam podpowiedź:

* W komendzie uprawnienia zamiast stos ifów, możesz zmienić zmienne tak, by przechowywały wartość boolean. wtedy będziesz mógł wykorzystać tę metodę: skUnity - Najlepsza dokumentacja skripta

* wtedy zapis będzie wyglądał mniej-więcej tak:


open chest with 3 rows named "&7Uprawnienia dla: &e%player arg% &cBy: KabelOdProdiza" to player
wait 1 tick
set player's current inventory's slot 10 to cobblestone named "&eBudowanie" with lore "%{bloki1::%player arg%} ? ""&aPosiada"" : ""&cNie posiada""% &3By: KabelOdProdiza"
set player's current inventory's slot 12 to diamond pickaxe named "&eNiszczenie" with lore "%{bloki1::%player arg%} ? ""&aPosiada"" : ""&cNie posiada""% &dBy: KabelOdProdiza"

* Przyjemniej, czyż nie?

I kilka innych małych drobiazgów.

Od razu widać, że robiłeś to przy pomocy kopiuj wklej i bez żadnego pomyślunku:

Dajmy jeden przykład:

Błąd logiczny - najpierw sprawdzasz czy zmienna jest false, a później sprawdzasz (już po sprawdzeniu) czy jest prawdziwa.

I w wielu eventach jest pomylona nazwa przedmiotu którego się używa.

Np:

- Przy wylewaniu lawy jest napis od wody.

- Przy niszczeniu skrzynki jest wspomniany beacon.

I jeszcze jeden szczegół, ratuje Cię tylko to, że dopisałeś w komendach drugi argument z którego nie korzystasz.


"&7Uprawnienia dla: &e%player arg% &cBy: KabelOdProdiza"

Otwierasz skrzynkę z dopiskiem by: kabelodprodiza

a w evencie inventory click juz bedzie w zmiennej taka nazwa:


set {_name} to uncolored inventory name of current inventory of player
replace all "Uprawnienia dla: " with "" in {_name}

1. {_name} = Uprawnienia dla: knugi By: KabelOdProdiza

2. {_name} = knugi By: KabelOdProdiza

....

Później już wykonujesz komendę taką:

Ale, że masz ten drugi argument to nie ma błędu.

Chciałeś krytykę? To Masz ! XD 

Pozdrawiam #Knugi

HaHA :D Dzięki wielkie długo mnie tutaj nie było, aż zapomniałem ze tutaj to dodałem :). Robiłem to pierwszy raz trochę się poduczyłem więc mam nadzieje że będzie tylko lepiej :D

Odnośnik do komentarza
https://skript.pl/temat/37758-uprawnienia-skrypt-na-uprawnienia-dla-cz%C5%82onk%C3%B3w-gildii/#findComment-253470
Udostępnij na innych stronach

  • 4 tygodnie później...
  • 5 miesięcy temu...
5 godzin temu, dwadzieci2 napisał:

Witam, ktoś tego używa lub chciałby zacząć używać? Wprowadzać jakieś dodatki do tego? :D

Dobrze byłoby poprawić rzeczy, o których knugi wspomniał, a skrypt będzie wyglądał znacznie lepiej.

Dorzucę od siebie, że skrypt może być znacznie krótszy poprzez wprowadzenie dwóch rzeczy.

1. Niektóre eventy można by skrócić i połączyć w jedność, dzięki temu kod będzie bardziej przejrzysty.

2. Te ustawianie zmiennych...

on guild member join:
	set {bloki::%player%} to "&cNie posiada"
	set {bloki1::%player%} to "&cNie posiada"
	set {bloki2::%player%} to "&cNie posiada"
	set {bloki3::%player%} to "&cNie posiada"
	set {bloki4::%player%} to "&cNie posiada"
	set {bloki5::%player%} to "&cNie posiada"
	set {bloki6::%player%} to "&cNie posiada"
	set {bloki7::%player%} to "&cNie posiada"

... zrobiłbym w ten sposób:

on guild member join:
	set {bloki::%player%} to "&cNie posiada"
	loop 7 times:
		set {bloki%loop-number%::%player%} to "&cNie posiada"

Widać różnicę, nieprawdaż?

3. Zalecam również wyzbyć się nawyku zagnieżdżania w sobie warunków.

# Jak ty to robisz:

if arg-1 is set:
	if arg-2 is set:
		if arg-3 is set:
			# Dalszy kod
		else:
			send "Podaj argument nr 3!"
	else:
		send "Podaj argument nr 2!"
else:
	send "Podaj argument nr 1!"		

# Jak ja bym to zrobił:

if arg-1 is not set:
	send "Podaj argument nr 1!"
	stop
if arg-2 is not set:
	send "Podaj argument nr 2!"
	stop
if arg-3 is not set:
	send "Podaj argument nr 3!"
	stop
# Dalszy kod

W pierwszym przypadku kod przesuwasz coraz bardziej na prawo, a w drugim masz ładnie w rządku ułożone warunki.

4. Zamiast definiować komendy tylko po to, aby przypisać akcje slotom, po prostu lepiej jest je zdefiniować w 'on inventory click'.

Jeszcze jest parę pomniejszych rzeczy, do których można by się przyczepić, ale są one na tyle nieistotne, że nie ma sensu nimi zawracać tobie głowy.

Jak poprawisz skrypt, możliwe, że ktoś zacznie z niego korzystać, kto wie.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/37758-uprawnienia-skrypt-na-uprawnienia-dla-cz%C5%82onk%C3%B3w-gildii/#findComment-281978
Udostępnij na innych stronach

3 minuty temu, Kormic napisał:

Dobrze byłoby poprawić rzeczy, o których knugi wspomniał, a skrypt będzie wyglądał znacznie lepiej

Dorzucę od siebie, że skrypt może być znacznie krótszy poprzez wprowadzenie dwóch rzeczy.

1. Niektóre eventy można by skrócić i połączyć w jedność, dzięki temu kod będzie bardziej przejrzysty.

2. Te ustawianie zmiennych...


on guild member join:
	set {bloki::%player%} to "&cNie posiada"
	set {bloki1::%player%} to "&cNie posiada"
	set {bloki2::%player%} to "&cNie posiada"
	set {bloki3::%player%} to "&cNie posiada"
	set {bloki4::%player%} to "&cNie posiada"
	set {bloki5::%player%} to "&cNie posiada"
	set {bloki6::%player%} to "&cNie posiada"
	set {bloki7::%player%} to "&cNie posiada"

... zrobiłbym w ten sposób:


on guild member join:
	set {bloki::%player%} to "&cNie posiada"
	loop 7 times:
		set {bloki%loop-number%::%player%} to "&cNie posiada"

Widać różnicę, nieprawdaż?

3. Zalecam również wyzbyć się nawyku zagnieżdżania w sobie warunków.


# Jak ty to robisz:

if arg-1 is set:
	if arg-2 is set:
		if arg-3 is set:
			# Dalszy kod
		else:
			send "Podaj argument nr 3!"
	else:
		send "Podaj argument nr 2!"
else:
	send "Podaj argument nr 1!"		

# Jak ja bym to zrobił:

if arg-1 is not set:
	send "Podaj argument nr 1!"
	stop
if arg-2 is not set:
	send "Podaj argument nr 2!"
	stop
if arg-3 is not set:
	send "Podaj argument nr 3!"
	stop
# Dalszy kod

W pierwszym przypadku kod przesuwasz coraz bardziej na prawo, a w drugim masz ładnie w rządku ułożone warunki.

4. Zamiast definiować komendy tylko po to, aby przypisać akcje slotom, po prostu lepiej jest je zdefiniować w 'on inventory click'.

Jeszcze jest parę pomniejszych rzeczy, do których można by się przyczepić, ale są one na tyle nieistotne, że nie ma sensu nimi zawracać tobie głowy.

Jak poprawisz skrypt, możliwe, że ktoś zacznie z niego korzystać, kto wie.

Dziękuje za wypowiedzenie się :D. Robiłem go głownie dla własnej satysfakcji i wrzuciłem go po to aby ktoś skorzystał jak nie potrafi chodź takiego z błedami zrobić. Miałem długą przerwę od tego wszystkiego po paru miesiącach wróciłem zalogowałem się i przypomniało mi sie, że takie coś tutaj wrzuciłem. A więc chciałbym go jakoś poprawić jak znajdzie się czas :D, dzięki za opinię

Odnośnik do komentarza
https://skript.pl/temat/37758-uprawnienia-skrypt-na-uprawnienia-dla-cz%C5%82onk%C3%B3w-gildii/#findComment-281979
Udostępnij na innych stronach

  • 2 miesiące 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ę...