Skocz do zawartości

V-Addon - Czyli coś, co każdy potrafiłby zrobić.


V4T3
 Udostępnij

Rekomendowane odpowiedzi

Dla sprostowania, to dodatek raczej dla początkujących - żeby mieli prościej i ewentualnie mogli się wzorować.

Skrypt w dużej mierze zastępuje kilka komend z różnych pluginów.

Na przykład ja nie wykorzystuje w całości takiego Essentials, wystarczy mi z niego kilka komend.

No to ten, "specyfikacja":

- Wiadomość powitalna i pożegnalna.
- Kolorowanie wiadomości w zależności od uprawnień.
- Blokada kilku znanych komend.
- Komenda na włączanie i wyłączanie vanish'a.
- Komenda na wysyłanie wiadomości do gracza, który jest online.
- Komenda, która umożliwia latanie wyznaczonym graczom.
- Komenda na wysyłanie wiadomości do wszystkich graczy na serwerze.
- Komenda, która pozwala na podglądanie ekwipunków jak i Ender Chestów graczy.
- Komenda, która pozwala na ustawianie wielu lokacji i teleportowanie się do nich.
- Komendy umożliwiające teleportacje do wyznaczonego gracza (za jego zgodą).
- System obsługi czatu.

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

Aktualizacje:

Spoiler

24.01.2021 - Kilka zmian.

27.05.2021 - Kilka zmian.

 

Edytowane przez V4T3
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Teraz, jaku49 napisał:

Ta tablica będzie lagowała, jeśli zrobiona jest w taki sposób i bardzo dobrze, że jest wyłączona. 

Testowałem ją u siebie i mi problemów nie powodowała (zależy od maszyny raczej), ale dla pewności napisałem, że może ona źle wpłynąć na wydajność.

Odnośnik do odpowiedzi
Udostępnij na innych stronach

16 minut temu, V4T3 napisał:

Testowałem ją u siebie i mi problemów nie powodowała (zależy od maszyny raczej), ale dla pewności napisałem, że może ona źle wpłynąć na wydajność.

Jeśli będziesz miał 20 graczy i to co 10 sekund będzie się odświeżało dla wszystkich to może to wywołać freezy na serwerze. Skript ma to do siebie, że wszystko wykonuje się w głównym wątku serwera. 

Odnośnik do odpowiedzi
Udostępnij na innych stronach

Teraz, jaku49 napisał:

Jeśli będziesz miał 20 graczy i to co 10 sekund będzie się odświeżało dla wszystkich to może to wywołać freezy na serwerze. Skript ma to do siebie, że wszystko wykonuje się w głównym wątku serwera. 

Właściwie to nie wykluczyłem tej opcji, dlatego też ten dodatek został wyłączony.

Jednak nie zmienia to faktu, że być może za niedługo zostanie to poprawione.

Odnośnik do odpowiedzi
Udostępnij na innych stronach

1. Jeżeli już chcesz robić scoreboarda, aktualizuj go jedynie w przypadku zmiany wartości w nim (po prostu oprzyj na eventach), będzie to znacznie lepsze niż periodical. To samo tyczy się pętli 'while'. Mimo wszystko dobrze, że to poprawiłeś.

2. Zalecam oduczyć się nawyku zagnieżdżania warunków w sobie.

# 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

3. Zalecam również przejść na listy zmiennych.

# Listę zmiennych możesz w prosty sposób wyczyścić (gwiazdka w nazwie zmiennej oznacza dowolny element):
clear {blokada::*} 

# Listę zmiennych możesz zapętlić i wykonać na niej różne operacje:
loop {blokada::*}:
	# Dalszy kod
    
# Możesz sprawdzić jej rozmiar:
size of {blokada::*}

Powyższych rzeczy nie zrobisz ze zwykłymi zmiennymi.

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

14 minut temu, Kormic napisał:

1. Jeżeli już chcesz robić scoreboarda, aktualizuj go jedynie w przypadku zmiany wartości w nim (po prostu oprzyj na eventach), będzie to znacznie lepsze niż periodical. To samo tyczy się pętli 'while'. Mimo wszystko dobrze, że to poprawiłeś.

2. Zalecam oduczyć się nawyku zagnieżdżania warunków w sobie.


# 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

3. Zalecam również przejść na listy zmiennych.


# Listę zmiennych możesz w prosty sposób wyczyścić (gwiazdka w nazwie zmiennej oznacza dowolny element):
clear {blokada::*} 

# Listę zmiennych możesz zapętlić i wykonać na niej różne operacje (w tym przypadku loop-index to nazwa gracza, a loop-value to wartość true/false):
loop {blokada::*}:
	# Dalszy kod
    
# Możesz sprawdzić jej rozmiar:
size of {blokada::*}

Powyższych rzeczy nie zrobisz ze zwykłymi zmiennymi.

Generalnie to po prostu przyzwyczaiłem się do umieszczania if'ów pod sobą, stety albo niestety.

Ale dzięki za tipy.

// Tak swoją drogą, w skrypcie jest tylko jedna zmienna, której raczej nie trzeba czyścić. Więc chyba nie trzeba jej przerabiać na listę?

Edytowane przez V4T3
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...