Skocz do zawartości

Rekomendowane odpowiedzi

Witam, widziałem że istnieje już taki poradnik lecz został on dosyć chaotycznie zrobiony więc postanowiłem zrobić swój w bardziej "ogarnięty" sposób.

Nasza komenda będzie polegać na zapisie do pliku Rangę którą dostanie gracz oraz odczytaniu jej z pliku i nadani tej rangi graczowi.

 

 

ZAPIS

A więc zacznijmy od podstawy, tworzymy komendę:

command /dajrange [<player>] [<text>]:
	trigger:

Gdy nie podano nicku wyświetla się komunikat "Podaj nick gracza!":

		if arg 1 is not set:
			send "&c&lPodaj nick gracza!"
			stop

Gdy nie podano rangi wyświetla się komunikat "Podaj range!":

		if arg 2 is not set:
			send "&c&lPodaj range!"
			stop

 

 

Teraz przejdźmy do konkretów:

wf "X: 'Y'" to "ścieżka"	

w miejsce X wstawiamy to co ma być zapisywane czyli "Ranga"

w miejsce Y wstawiamy to co ma być zapisywanie jako "Ranga"

w miejsce ŚCIEŻKA podajemy docelowe miejsce zapisu pliku

 

Przykład:

wf "Ranga: '%arg-2%'" to "plugins/Gracze/%player%.yml"	

w miejsce X podstawiłem "Ranga" czyli to co chcemy mieć zapisane u gracza

w miejsce Y podstawiłem "%arg-2%" czyli to co będzie zapisane do pliku (w moim przypadku będzie to argument 2 czyli ranga)

w miejsce ŚCIEŻKA podałem że powyższe dane mają zapisywać się w pliku z nickiem gracza.

 

!PLIK UTWORZY SIĘ SAMOCZYNNIE!

 

no i tutaj dalsze część komendy:

				execute console command "pex user %arg-1% group set %arg-2%"
				wait 1 tick
				send "&2&lDales graczowi &9&l%arg-1% &2&lrange &9&l%arg-2%"
				stop

 

Po wpisaniu komendy /dajrange luki1123 Wlasciciel w pliku wygląda to tak:

Ranga: 'Wlasciciel'

 

Cała komenda:

command /dajrange [<player>] [<text>]:
	permission: dajrange.admin
	trigger:
		if arg 1 is not set:
			send "&c&lPodaj nick gracza!"
			stop
		if arg 2 is not set:
			send "&c&lPodaj range!"
			stop
		if arg 1 is set:
			if arg 2 is "Gracz" or "vip" or "svip" or "czatownik" or "straznik":
				wf "Ranga: '%arg-2%'" to "plugins/Gracze/%player%.yml"	
				execute console command "pex user %arg-1% group set %arg-2%"
				wait 1 tick
				send "&2&lDales graczowi &9&l%arg-1% &2&lrange &9&l%arg-2%"
				stop
		if arg 1 is set:
			if arg 2 is "moderator" or "mod" or "pomocnik" or "wlasciciel":
				execute console command "pex user %arg-1% add sluzba.admin"
				wf "Ranga: '%arg-2%'" to "plugins/Gracze/%player%.yml"	
				execute console command "pex user %arg-1% group set %arg-2%"
				wait 1 tick
				send "&2&lDales graczowi &9&l%arg-1% &2&lrange &9&l%arg-2%"
				stop

 

 

Odczyt

Zaczynamy oczywiście od podstawy:

command /sluzba:
	trigger:

I teraz jeżeli gracz nie jest na służbie:

		if {sluzba.%player%} is false:

to:

set Z to single value "X" get of "sciezka"

w miejsce Z wstawiamy zmienną którą sobie ustalimy, w moim przypadku będzie to {rank::%player%}

w miejsce X wstawiamy to co chcemy żeby było odczytane

w miejsce ŚCIEŻKA wstawiamy lokalizację pliku

 

Czyli w moim przypadku będzie to wyglądać tak:

set {rank::%player%} to single value "Ranga" get of "plugins/Gracze/%player%.yml"

Ustawia zmienną {rank::%player%} na to co jest zapisane w pliku jako "Ranga"

 

I dalsza częśc komendy:

			execute console command "pex user %player% group set %{rank::%player%}%"
			execute player command "bc &f&l%player% &4&lwlasnie zalogowal sie jako Administrator!"
			set {sluzba.%player%} to true

przydziela graczowi rangę która jest zapisana w pliku

wysyla komunikat do wszystkich że gracz zalogował się jako Administrator

Ustawia zmienną {sluzba.%player%} na true czyli że gracz jest teraz na służbie

 

Gdy gracz jest już na służbie:

	else:
			if {sluzba.%player%} is true:
				execute console command "pex user %player% group set Gracz"
				send "&c&lOd teraz nie jestes na sluzbie!"
				set {sluzba.%player%} to false

Ustawia rangę gracza na "Gracz"

 

Cała komenda:

command /sluzba:
	permission: sluzba.admin
	trigger:
		if {sluzba.%player%} is false:
			set {rank::%player%} to single value "Ranga" get of "plugins/Gracze/%player%.yml"
			execute console command "pex user %player% group set %{rank::%player%}%"
			execute player command "bc &f&l%player% &4&lwlasnie zalogowal sie!"
			set {sluzba.%player%} to true
		else:
			if {sluzba.%player%} is true:
				execute console command "pex user %player% group set Gracz"
				send "&c&lOd teraz nie jestes na sluzbie!"
				set {sluzba.%player%} to false

 

Edytowane przez Skowronn
Odnośnik do komentarza
https://skript.pl/temat/37345-zapisodczyt-z-pliku/
Udostępnij na innych stronach

Mamy 2020, a ludzie nadal używają WildSkripta - porzuconego dodatku, który nie jest wspierany na najnowszych wersjach... Poradnik miałby jakikolwiek sens, gdyby zastosowany zostałby yaml z SkQuery czy SkUtilities.

Edytowane przez LjayPL789
Odnośnik do komentarza
https://skript.pl/temat/37345-zapisodczyt-z-pliku/#findComment-237694
Udostępnij na innych stronach

27 minut temu, LjayPL789 napisał:

Mamy 2020, a ludzie nadal używają WildSkripta - porzuconego dodatku, który nie jest wspierany na najnowszych wersjach... Poradnik miałby jakikolwiek sens, gdyby zastosowany zostałby yaml z SkQuery czy SkUtilities.

WildSkript zawiera ciekawe opcje m.in. sprawdzenie folderu, a nie samego pliku.. Poza tym, bardzo dużo serwerów jest właśnie pod starsze wersję m.in. 1.8.

Odnośnik do komentarza
https://skript.pl/temat/37345-zapisodczyt-z-pliku/#findComment-237697
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ę...