Skocz do zawartości

Ustawiane celu kompasu gracza


Rekomendowane odpowiedzi

Nigdzie tego nie znalazłem, więc zaczynajmy !

 

Kod odpowiadający za ustawianie celu kompasu to:

set compass target of [GRACZ] to [KORDY]

[GRACZ] - nick gracza mającego kompas.

[KORDY] - koordynacje bloku, który ma wskazywać kompas.

 

Dajmy na to, mamy serwer minigames napisanym w skript, ale nie mamy kompasu do najbliższego gracza, wię c:

 

1.Dajemy graczowi kompas, w moim przypadku będzie to po wejściu, wię c:

On join:	give compass to player 

2.Tworzymy kod, który będzie wykrywał odległość i koordynację najbliższego gracza, ja już podam gotowy kod i go wytłumaczę.

command /recomp:	trigger:		set {_dystans.%player%} to 9999999        		loop all players:			player isn't loop-player			distance between player and loop-player is smaller than {_dystans.%player%}:				set {_najgracz.%player%} to location of loop-player				set compass target of player to {_najgracz.%player%}				set {_dystans.%player%} to distance between player and loop-player				if player is holding a compass:					set name of player's tool to "&6%{_dystans.%player%}% do gracza %loop-player%"

1.Używamy komendy, by móc odnieść się do gracza, by zapętlił tylko tych wokół siebie.

2.trigger

3.Ustawiamy w jakim dystansie ma nam wykrywać gracza.

4.Zapętlamy wszystkich graczy

5.ustawiamy, by gracz nie był najbliższym graczem

6.Wykonuje dalszy kod jeśli między dwoma graczami odległość jest mniejsza niż "{_dystans.%player%}"

7.Ustawia koordynacje drugiego gracza

8.Ustawia kompas gracza na koordynacje drugiego

9.Ustawia dystans między dwoma graczami

10.Wykonuje dalszy kod jeśli gracz trzyma kompas

11.Ustawia nazwę kompasu na odległość od drugiego gracza i jego nick. 

 

3.Zapętlamy to dla wszystkich graczy:

every 5 seconds:	loop all players:		execute loop-player command "/recomp"

Niestety konsola jest zaspamiona, ale działa.

 

Cały kod:

On join:	give compass to playercommand /recomp:	trigger:		set {_dystans.%player%} to 9999999        		loop all players:			player isn't loop-player			distance between player and loop-player is smaller than {_dystans.%player%}:				set {_najgracz.%player%} to location of loop-player				set compass target of player to {_najgracz.%player%}				set {_dystans.%player%} to distance between player and loop-player				if player is holding a compass:					set name of player's tool to "&6%{_dystans.%player%}% do gracza %loop-player%"every 5 seconds:	loop all players:		make execute loop-player command "/recomp"

Efekt:

https://screenshooter.blob.core.windows.net/engine4files/spwxlbpsayehwttggigshftjxqklqcqckxeywxxicxdepctacozelirnvnzuqdbxicxzpukjlxqjbouvxkjccmqbfrcixdsyvfwnftlhdqtoshlgsewfuyuwlvtyrblh

 

PS.Mam zbugowaną teksturę gracza non-premium.

 

Myślę, że pomogłem :)

Odnośnik do komentarza
https://skript.pl/temat/5067-ustawiane-celu-kompasu-gracza/
Udostępnij na innych stronach

No, poradnik się napewno komuś przyda. Co do strony graficznej, to byś to jakoś dopracowa, pooddzielał, bo czytanie takiego ciągłego tekstu, który nie ma wyróżnień itp. to trochę takie nieprzyjemne.

Odnośnik do komentarza
https://skript.pl/temat/5067-ustawiane-celu-kompasu-gracza/#findComment-41821
Udostępnij na innych stronach

command /recomp:	trigger:		function "odswiezKompas" { player }every 3 second:	loop all players:		function "odswiezKompas" { loop-player }function "odswiezKompas" {}:	set {_p} to arg{1}	set {_dystans.%{_p}%} to 99999999	loop all players:		if loop-player is not {_p}:			if {_p} is holding compass:				if distance between {_p} and loop-player is smaller than {_dystans.%{_p}%}:					set compass target of {_p} to loop-player					set name of {_p}'s tool to "&7Najblizszy gracz: &f%loop-player% &7(&f%distance between {_p} and loop-player%&7)"

Ten kod jest wydajniejszy, i nie spami w konsoli (Ale wymaga za to WildSkript)

Odnośnik do komentarza
https://skript.pl/temat/5067-ustawiane-celu-kompasu-gracza/#findComment-41868
Udostępnij na innych stronach

command /recomp:	trigger:		function "odswiezKompas" { player }every 3 second:	loop all players:		function "odswiezKompas" { loop-player }function "odswiezKompas" {}:	set {_p} to arg{1}	set {_dystans.%{_p}%} to 99999999	loop all players:		if loop-player is not {_p}:			if {_p} is holding compass:				if distance between {_p} and loop-player is smaller than {_dystans.%{_p}%}:					set compass target of {_p} to loop-player					set name of {_p}'s tool to "&7Najblizszy gracz: &f%loop-player% &7(&f%distance between {_p} and loop-player%&7)"

Ten kod jest wydajniejszy, i nie spami w konsoli (Ale wymaga za to WildSkript)

 

 

Chciałem coś takiego napisać, lecz jeszcze nie orientuję się w "function "odswiezKompas" {}:", Dlatego chciałem spróbować napisać to jak najprościej i jeszcze będę szukał możliwości odświeżania bez spamienia w konsoli.

 

PS. Czy function występuje w SkQ ?

Odnośnik do komentarza
https://skript.pl/temat/5067-ustawiane-celu-kompasu-gracza/#findComment-41878
Udostępnij na innych stronach

  • 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ę...