Skocz do zawartości
  • 0

Poprawa wydajności w kodzie


Misio12320
 Udostępnij

Pytanie

Witam, poprawi mi ktoś kod, by wydajność nie była zniszczona?
 

every 1 real seconds:
    loop all players in "swiat":
        if loop-player is alive:
            if loop-player's y coord <= 60:
                if loop-player isn't wearing golden helmet of protection 1:
                    if name of loop-player's helmet isn't "&6Hełm &3Górnika":
                        loop-player is not in god mode:
                            chance of 100%:
                                damage loop-player by 3 hearts
                                wait 5 tick
                                message "&cPotrzebujesz hełmu &b*&6Górnika&b*&c by wejść w podziemia..." to loop-player
                                stop

 

Odnośnik do komentarza
Udostępnij na innych stronach

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 1
every 1 second:
	loop all players in "swiat":
		if loop-player's y coord <= 60:
			if helmet of loop-player is not golden helmet of protection 1 named "&6Hełm &3Górnika":
				damage loop-player by 3 hearts
					send "&cPotrzebujesz hełmu &b*&6Górnika&b*&c by wejść w podziemia..." to loop-player

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1
1 godzinę temu, Misio12320 napisał:

Witam, poprawi mi ktoś kod, by wydajność nie była zniszczona?

Wydajnościowo poza usunięciem niepotrzebnego 'chance of 100%' i 'wait 5 tick' niewiele można zrobić. Mimo wszystko zamiast periodicalu (jeśli to możliwe) użyłbym regionu w tym celu i eventu 'on entering of region "nazwa_regionu"'.

every 1 real seconds:
	loop all players in "swiat":
		loop-player is alive
		loop-player's y-loc <= 60
		loop-player isn't wearing golden helmet of protection 1 named "&6Hełm &3Górnika"
		loop-player is not in god mode
		damage loop-player by 3 hearts
		message "&cPotrzebujesz hełmu &b*&6Górnika&b*&c by wejść w podziemia..." to loop-player

Nadal zastanawiam się co to za warunek "is not in god mode"... Rozumiem, że to z jakiegoś dodatku?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
9 godzin temu, PanMaruda napisał:

every 1 second:
	loop all players in "swiat":
		if loop-player's y coord <= 60:
			if helmet of loop-player is not golden helmet of protection 1 named "&6Hełm &3Górnika":
				damage loop-player by 3 hearts
					send "&cPotrzebujesz hełmu &b*&6Górnika&b*&c by wejść w podziemia..." to loop-player

 

Dziękuję, pozdrawiam cieplutko :3.

8 godzin temu, Kormic napisał:

Wydajnościowo poza usunięciem niepotrzebnego 'chance of 100%' i 'wait 5 tick' niewiele można zrobić. Mimo wszystko zamiast periodicalu (jeśli to możliwe) użyłbym regionu w tym celu i eventu 'on entering of region "nazwa_regionu"'.


every 1 real seconds:
	loop all players in "swiat":
		loop-player is alive
		loop-player's y-loc <= 60
		loop-player isn't wearing golden helmet of protection 1 named "&6Hełm &3Górnika"
		loop-player is not in god mode
		damage loop-player by 3 hearts
		message "&cPotrzebujesz hełmu &b*&6Górnika&b*&c by wejść w podziemia..." to loop-player

Nadal zastanawiam się co to za warunek "is not in god mode"... Rozumiem, że to z jakiegoś dodatku?

Nie mam pojęcia skąd wytrzasnąłem ten god mode, wróciłem do tego skryptu po roku i jeżeli się nie mylę to napisałem ten god mode by linijkę zająć i nie kasować męczyć się z tabami. Przeglądając docs, nie zauważyłem God Mode w czystym Skript, więc pewnie z jakiegoś dodatku to wziąłem..


Zastanawiałem się nad regionami. Zrobiłbym to, ale potrzebowałbym na calą mapę. Dziękuję za pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1
13 minut temu, Misio12320 napisał:

Zastanawiałem się nad regionami. Zrobiłbym to, ale potrzebowałbym na calą mapę. Dziękuję za pomoc.

po co region skoro tylko wysokość jest sprawdzana

on any move:
	if y-loc of past location > 60:
		if y-loc of new location <= 60:
			if {helm::%player%} is not set:
				set {helm::%player%} to true
				while {helm::%player%} is true:

					#kod

					wait second
	else:
		if y-loc of new location >= 60:
			delete {helm::%player%}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
12 godzin temu, PanMaruda napisał:

po co region skoro tylko wysokość jest sprawdzana


on any move:
	if y-loc of past location > 60:
		if y-loc of new location <= 60:
			if {helm::%player%} is not set:
				set {helm::%player%} to true
				while {helm::%player%} is true:

					#kod

					wait second
	else:
		if y-loc of new location >= 60:
			delete {helm::%player%}

 

tak, tylko mi w kodzie chodzi by gracz się "dusił" w podziemiach, a nie że jak się porusza to ma zadawać obrażenia. :thinking:. Wpadłem na pomysł, by skrypt na obrażenia był w innym kodzie zapisany, a ten on any move uruchamiał go. Tylko znowu by nie wyłączył go jakby gracz lognął podczas zadawanych obrażeń :thinking:

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

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

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