Skocz do zawartości

SH Kowal


kanafu

Rekomendowane odpowiedzi

SH Kowal

Skrypt na twój serwer RPG

 

Opis

Spoiler

"SH Kowal" to mój pierwszy skrypt po rocznej przerwie od skryptów a zarazem pierwszy na mojej liście skryptów do zrobienia, Planuje zrobić pełny zestaw skryptów na serwery RPG więc prawdopodobnie za parę tygodni wleci kolejny skrypt. Wszystkie pomysły na kolejne skrypty albo na ulepszenie tego chętnie wysłucham, jakby ktoś znalazł jakiś błąd proszę mnie o tym poinformować.

Ważne informacje

Spoiler

Każdy entity z nazwą sklepu jest nieśmiertelny i nie może się ruszać. Najlepiej jest stworzyć własne entity jakimś pluginem i nazwać je nazwą sklepu

SS'y:

Spoiler

unknown.pngunknown.pngunknown.pngunknown.pngunknown.pngunknown.pngunknown.pngunknown.pngunknown.png

Komendy Administratora i permisje:
 

Spoiler
  1. /wzmocnienia - Admin.Wzmocnienia (Daje wszystkie przedmioty potrzebne do wzmacniania)
  2. /ResetWzmocnien [<player>] - Admin.ResetWzmocnien (Resetuje wzmocnienia gracza na 0 poziom)
  3. /StworzSklep - Admin.StworzSklep (Tworzy sklep)

Wymagania:
 

Spoiler

 

Skript

WildSkript

SkQuery

skRayFall

SharpSK

Skellett

TuSKe

 

Wersje do pobrania

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

Odnośnik do komentarza
Udostępnij na innych stronach

No, powiem tak. Ładna robota jak na roczną przerwę, więc masz ode mnie plusa. Tylko przyczepiłbym się do dwóch rzeczy:

1. Nie twórz zmiennych typu {to.jest.zmienna}, używaj zamiast nich list zmiennych, np. {to::jest::lista}. Jaka jest tego zaleta? Chyba największą jest możliwość czyszczenia całej listy jednocześnie, czyli:

clear {to::jest::*}

Mógłbyś to zaimplementować w tym skrypcie, aby potencjalni użytkownicy mogli zrestartować poziomy wszystkim graczom na swoim serwerze.

2. Nie jest to błąd, ale unikałbym "drzew if-statementów", są one zawarte w twoim skrypcie, przykładowo:

if clicked slot is 3:
	if player's tool is not air:
		if player's balance >= (({Upgrade.%player%}+1)*1500):
			if player has nether star named "&cWzmacniacz ostrza":
				if lore of player's tool contains "&7Wzmocnienie &c%{Upgrade.%player%}% &7Stopnia":

Zamiast tego starałbym się zrobić coś takiego:

if clicked slot is not 3:
	stop
if player's tool is air:
	stop
if player's balance < (({Upgrade.%player%}+1)*1500):
	stop
if player doesn't have nether star named "&cWzmacniacz ostrza":
	stop
if lore of player's tool doesn't contain "&7Wzmocnienie &c%{Upgrade.%player%}% &7Stopnia":
	stop

Tak jak mówię, to NIE jest błąd! To jest tylko kwestia schludności skryptu.

Podsumowując:

Przeglądając skrypt nie zauważyłem żadnych większych nieprawidłowości, dobra robota! Ważne jest, aby nie zniechęcać się po krytyce, ale aby przemyśleć jej zasadność i ewentualnie się do niej zastosować :)

EDIT:

Przeglądając jeszcze raz skrypt zauważyłem, że w niektórych 'send' masz określonego odbiorcę wiadomości, a w niektórych nie. Uważam, że dobrą praktyką jest wyrabianie sobie nawyku każdorazowego określania odbiorcy, niejednokrotnie mnie zgubiło to, że nie określałem tego i poźniej po głowie się drapałem dlaczegoż to nie dostaję wiadomości na czacie :P

Edytowane przez Kormic
Odnośnik do komentarza
Udostępnij na innych stronach

39 minut temu, Kormic napisał:

No, powiem tak. Ładna robota jak na roczną przerwę, więc masz ode mnie plusa. Tylko przyczepiłbym się do dwóch rzeczy:

1. Nie twórz zmiennych typu {to.jest.zmienna}, używaj zamiast nich list zmiennych, np. {to::jest::lista}. Jaka jest tego zaleta? Chyba największą jest możliwość czyszczenia całej listy jednocześnie, czyli:


clear {to::jest::*}

Mógłbyś to zaimplementować w tym skrypcie, aby potencjalni użytkownicy mogli zrestartować poziomy wszystkim graczom na swoim serwerze.

2. Nie jest to błąd, ale unikałbym "drzew if-statementów", są one zawarte w twoim skrypcie, przykładowo:


if clicked slot is 3:
	if player's tool is not air:
		if player's balance >= (({Upgrade.%player%}+1)*1500):
			if player has nether star named "&cWzmacniacz ostrza":
				if lore of player's tool contains "&7Wzmocnienie &c%{Upgrade.%player%}% &7Stopnia":

Zamiast tego starałbym się zrobić coś takiego:


if clicked slot is not 3:
	stop
if player's tool is air:
	stop
if player's balance < (({Upgrade.%player%}+1)*1500):
	stop
if player doesn't have nether star named "&cWzmacniacz ostrza":
	stop
if lore of player's tool doesn't contain "&7Wzmocnienie &c%{Upgrade.%player%}% &7Stopnia":
	stop

Tak jak mówię, to NIE jest błąd! To jest tylko kwestia schludności skryptu.

Podsumowując:

Przeglądając skrypt nie zauważyłem żadnych większych nieprawidłowości, dobra robota! Ważne jest, aby nie zniechęcać się po krytyce, ale aby przemyśleć jej zasadność i ewentualnie się do niej zastosować :)

EDIT:

Przeglądając jeszcze raz skrypt zauważyłem, że w niektórych 'send' masz określonego odbiorcę wiadomości, a w niektórych nie. Uważam, że dobrą praktyką jest wyrabianie sobie nawyku każdorazowego określania odbiorcy, niejednokrotnie mnie zgubiło to, że nie określałem tego i poźniej po głowie się drapałem dlaczegoż to nie dostaję wiadomości na czacie :P

Na pewno wezmę sobie pod uwagę to co napisałeś zwłaszcza to z nadawaniem do kogo ma dostarczyć "send" wiadomość Ale nie mogę się zgodzić z pkt 2. bo robię do większość "else:" a w tym przypadku to by się nie sprawdziło chyba że ja coś nie ogarniam

Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, kanafu napisał:

Na pewno wezmę sobie pod uwagę to co napisałeś zwłaszcza to z nadawaniem do kogo ma dostarczyć "send" wiadomość Ale nie mogę się zgodzić z pkt 2. bo robię do większość "else:" a w tym przypadku to by się nie sprawdziło chyba że ja coś nie ogarniam

Wtedy dajesz pod 'stop' wyrażenia, które normalnie umieściłbyś w else.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
  • 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ę...