Skocz do zawartości
  • 0

Dopisek Sk


Nitrusiniski

Pytanie

on right click on beacon:
    player is in world "swiat"
    if player has stick named "&ctest":
        broadcast "test"
    else:
        send "brak test" to player

Stworzyłem oto cos takiego chciałbym osiągnąc cos takiego aby gdy gracz kliknie na becona patykie o nazwie test to rozpoczyna sie losowanie i w promieniu 8 kratek pojawiają sie losowe przedmioty które ustale 

Edytowane przez xNightPower_
Nieaktywny

Umieszczaj kod w code.

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/
Udostępnij na innych stronach

  • Odpowiedzi 54
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy dla tego pytania

Top użytkownicy dla tego pytania

Rekomendowane odpowiedzi

  • 0
17 minut temu, Kormic napisał:

Musisz sobie zrobić jakąś zmienną, która będzie kontrolowała czy jest losowanie, czy też nie. Przed rozpoczęciem losowania sprawdzasz czy zmienna jest ustawiona - jeżeli tak, zatrzymujesz skrypt.

Następnie ustawiasz sobie listę {_itemy::*}, do której wrzucasz wszystkie twoje przedmioty.

Pamiętaj o dzieleniu mającym na celu zrobienie dokładnych przerw czasowych między losowaniem przedmiotów, opisałem je wyżej.

Co do błędu, wstawiłem procent w złym miejscu.


wait "%{_ticks}% ticks" parsed as timespan

Tak jest poprawnie.

variables:
	{losowanie} = false

command /setlosowanie [<text>]:
	trigger:
		if player has permission "setlosowanie":
			set {location.losowanie} to location of player
		if {location.losowanie} is set:
			set {_loc} to "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%"
			if "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%" is {_loc}:
				teleport player to {location.losowanie}
				send "&atak"
				
on right click on beacon:
	player is in world "all"
	if player has stick named "&cLosowanie":
		remove stick named "&cLosowanie" from player
		broadcast "test"
	else:
		send "brak test" to player
		
every 20 seconds:
	set {losowanie} to true
	set {a} to a random integer between stone
	set {b} to a random integer between diamond
	set {c} to a random integer between dirt
	set {itemy} to "%{a}%%{b}%%{c}%%"
	wait 5 ticks 
	set {losowanie} to false
	drop diamond named "&ctesst" at {location.losowanie}
	drop stone named "&8test" at {location.losowanie}
	drop dirt named "&ctest" at {location.losowanie}

Zrobiłem cos takiego nie wiem jak mam dodac itemy

 

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282237
Udostępnij na innych stronach

  • 0
Teraz, Nitrusiniski napisał:

Zrobiłem cos takiego nie wiem jak mam dodac itemy

Ustawiasz listę w ten sposób:

set {_itemy::*} to stone named "test1", stone named "test2" and stone named "test3"

 

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282238
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

Ustawiasz listę w ten sposób:


set {_itemy::*} to stone named "test1", stone named "test2" and stone named "test3"

 

variables:
	{_ticks} = 2 seconds

command /setlosowanie [<text>]:
	trigger:
		if player has permission "setlosowanie":
			set {location.losowanie} to location of player
		if {location.losowanie} is set:
			set {_loc} to "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%"
			if "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%" is {_loc}:
				teleport player to {location.losowanie}
				send "&atak"
				
on right click on beacon:
	player is in world "all"
	if player has stick named "&cLosowanie":
		remove stick named "&cLosowanie" from player
		broadcast "test"
	else:
		send "brak test" to player

	loop {_itemy::*}:
		set {_itemy::*} to stone named "test1", stone named "test2" and stone named "test3"
		wait "%{_ticks}% ticks" parsed as timespan
		

Ustawiłem przedmioty i w zmiennej czas ale nie daje przedmiotów

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282240
Udostępnij na innych stronach

  • 0
Teraz, Nitrusiniski napisał:

Ustawiłem przedmioty i w zmiennej czas ale nie daje przedmiotów

Przecież to nie zadziała. Zapętlasz listę, a dopiero później ją ustawiasz.

Musisz najpierw ją ustawić, a dopiero później zapętlić. Taka kolej rzeczy.

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282242
Udostępnij na innych stronach

  • 0
Teraz, Kormic napisał:

Przecież to nie zadziała. Zapętlasz listę, a dopiero później ją ustawiasz.

Musisz najpierw ją ustawić, a dopiero później zapętlić. Taka kolej rzeczy.

a jak to zapętlić?

 

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282245
Udostępnij na innych stronach

  • 0

Musisz ją ustawić przed jej zapętleniem.

linijka z zapętlaniem to ta:

loop {_itemy::*}:

linijka z ustawianiem to ta:

set {_itemy::*} to stone named "test1", stone named "test2" and stone named "test3"

 

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282248
Udostępnij na innych stronach

  • 0
17 minut temu, CoFFeIN04 napisał:

Musisz ją ustawić przed jej zapętleniem.

linijka z zapętlaniem to ta:


loop {_itemy::*}:

linijka z ustawianiem to ta:


set {_itemy::*} to stone named "test1", stone named "test2" and stone named "test3"

 

on right click on beacon:
	player is in world "all"
	if player has stick named "&cLosowanie":
		remove stick named "&cLosowanie" from player
		broadcast "test"
	else:
		send "brak test" to player
	loop {_itemy::*}:
		set {_itemy::*} to stone named "test1", stone named "test2" and stone named "test3"
		wait "%{_ticks}% ticks" parsed as timespan

Ustawiłem pętle i przedmioty zabiera patyk ale nie wypadaja przedmioty

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282272
Udostępnij na innych stronach

  • 0

Napisałem Ci już co musisz zrobić,
jeśli masz coś zrobić wcześniej, to znaczy że w kodzie ma być to przed tym

24 minuty temu, CoFFeIN04 napisał:

Musisz ją ustawić przed jej zapętleniem.

linijka z zapętlaniem to ta:



loop {_itemy::*}:

linijka z ustawianiem to ta:



set {_itemy::*} to stone named "test1", stone named "test2" and stone named "test3"

 

 

Edytowane przez CoFFeIN04
Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282279
Udostępnij na innych stronach

  • 0
7 minut temu, Nitrusiniski napisał:

Ustawiłem pętle i przedmioty zabiera patyk ale nie wypadaja przedmioty

Najpierw ustawiasz, później zapętlasz. Rozumiesz czy nie rozumiesz?

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282280
Udostępnij na innych stronach

  • 0
5 minut temu, Kormic napisał:

Najpierw ustawiasz, później zapętlasz. Rozumiesz czy nie rozumiesz?

variables:
	{_ticks} = 2 seconds

command /setlosowanie [<text>]:
	trigger:
		if player has permission "setlosowanie":
			set {location.losowanie} to location of player
		if {location.losowanie} is set:
			set {_loc} to "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%"
			if "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%" is {_loc}:
				teleport player to {location.losowanie}
				send "&atak"
				
on right click on emerald block:
	player is in world "all"
	if player has stick named "&cLosowanie":
		remove stick named "&cLosowanie" from player
		broadcast "test"
	else:
		send "brak test" to player
		set {_itemy::*} to stone named "test1", stone named "test2" and stone named "test3"
		loop {_itemy::*}:
			wait "%{_ticks}% ticks" parsed as timespan

nie ustawiłem przedmioty przed pętlą i dalej nie wypadaja przedmioty

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282282
Udostępnij na innych stronach

  • 0
Teraz, Nitrusiniski napisał:

nie ustawiłem przedmioty przed pętlą i dalej nie wypadaja przedmioty

Bo nigdzie ich nie wyrzucasz.

Spójrz sobie na kod, w którym wtedy podrzuciłem ci te zapętlanie. Masz tam linijkę wyrzucającą loop-value w ustalonej lokalizacji.

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282283
Udostępnij na innych stronach

  • 0
8 minut temu, Kormic napisał:

Bo nigdzie ich nie wyrzucasz.

Spójrz sobie na kod, w którym wtedy podrzuciłem ci te zapętlanie. Masz tam linijkę wyrzucającą loop-value w ustalonej lokalizacji.

variables:
	{_ticks} = 2 seconds

command /setlosowanie [<text>]:
	trigger:
		if player has permission "setlosowanie":
			set {location.losowanie} to location of player
		if {location.losowanie} is set:
			set {_loc} to "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%"
			if "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%" is {_loc}:
				send "&atak"
				
on right click on beacon:
	player is in world "all"
	if player has stick named "&cLosowanie":
		remove stick named "&cLosowanie" from player
		broadcast "test"
	else:
		send "brak test" to player
		set {_itemy::*} to stone named "test1", stone named "test2" and stone named "test3"
		loop {_itemy::*}:
			drop loop-value at {location.losowanie}
			wait "%{_ticks}% ticks" parsed as timespan

Hmm teraz ustawiłem ale dalej przedmioty nie wypadaja

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282289
Udostępnij na innych stronach

  • 0
8 godzin temu, Kormic napisał:

A posiadasz patyk czy nie? Czy zmienna z lokalizacją jest ustawiona?

tak posiadam patyk i lokalizacja jest ustawiona

 

8 godzin temu, Kormic napisał:

A posiadasz patyk czy nie? Czy zmienna z lokalizacją jest ustawiona?

Hmmm teraz naciskam patykiem ale nic sie nie dzieje ale gdy nacisne wszystkim innym to działa i wylatuje przedmiot i wylatuje tylko stone named "test3"

 

Nieaktywny

Łączę posty.

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282298
Udostępnij na innych stronach

  • 0
5 minut temu, Kormic napisał:

A zrobiłeś taki warunek, że losowanie jest tylko wtedy gdy nie posiadasz patyka.

Tak zrobiłem musiałem poprawić else w pewnym miejscu i teraz działa gdy ma sie patyk to daje item a gdy sie nie ma to nie daje. Teraz problem jest taki ze jak ustawic w ciagu 2 minut losowało co (10 sekund aby było parzyscie) wyrzucanie przedmiotu a i chce dodac dalej losuje tylko stone 3

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282308
Udostępnij na innych stronach

  • 0
1 minutę temu, Nitrusiniski napisał:

Tak zrobiłem musiałem poprawić else w pewnym miejscu i teraz działa gdy ma sie patyk to daje item a gdy sie nie ma to nie daje. Teraz problem jest taki ze jak ustawic w ciagu 2 minut losowało co (10 sekund aby było parzyscie) wyrzucanie przedmiotu a i chce dodac dalej losuje tylko stone 3

W takim razie spróbuj do tej pętli dodać 'send "%loop-value%"'.

Co do tego, aby odstępy czasowe były porówno, pokazałem ci jakie trzeba działanie zrobić w którymś z postów wcześniej.

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282309
Udostępnij na innych stronach

  • 0
6 minut temu, Kormic napisał:

W takim razie spróbuj do tej pętli dodać 'send "%loop-value%"'.

Co do tego, aby odstępy czasowe były porówno, pokazałem ci jakie trzeba działanie zrobić w którymś z postów wcześniej.

1 - 20 sekund - 2 - 20 sekund - 3 - 20 sekund - 4 - 20 sekund - 5 - 20 sekund - 6 - 20 sekund - 7

Mało z tego rozumiem i tej funkcji floor

 

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282310
Udostępnij na innych stronach

  • 0
4 minuty temu, Nitrusiniski napisał:

1 - 20 sekund - 2 - 20 sekund - 3 - 20 sekund - 4 - 20 sekund - 5 - 20 sekund - 6 - 20 sekund - 7

Mało z tego rozumiem i tej funkcji floor

 

Funkcja floor() służy do zaokrąglania ułamka do najbliższej liczby całkowitej mniejszej od tej liczby.

send "%floor(36.5)%" # Pokaże się 36
send "%floor(36)%" # Pokaże się 36
send "%floor(36.99)%" # Pokaże się 36

Czego jeszcze nie rozumiesz?

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282311
Udostępnij na innych stronach

  • 0
4 minuty temu, Kormic napisał:

Funkcja floor() służy do zaokrąglania ułamka do najbliższej liczby całkowitej mniejszej od tej liczby.


send "%floor(36.5)%" # Pokaże się 36
send "%floor(36)%" # Pokaże się 36
send "%floor(36.99)%" # Pokaże się 36

Czego jeszcze nie rozumiesz?

variables:
	{_ticks} = 2 seconds

command /setlosowanie [<text>]:
	trigger:
		if player has permission "setlosowanie":
			set {location.losowanie} to location of player
		if {location.losowanie} is set:
			set {_loc} to "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%"
			if "%x-coordinate of player%, %y-coordinate of player%, %z-coordinate of player%" is {_loc}:
				send "&atak"
				
on right click on beacon:
	player is in world "all"
	if player has stick named "&cLosowanie":
		remove stick named "&cLosowanie" from player
		broadcast "test"
		set {_itemy::*} to stone named "test1"
		set {_itemy::*} to stone named "test2"
		set {_itemy::*} to stone named "test3"
		loop {_itemy::*}:
			drop loop-value at {location.losowanie}
			wait "%{_ticks}% ticks" parsed as timespan
			send "%floor(1)%" 
			send "%floor(2)%"
			send "%floor(3)%" 
			send "%floor(4)%" 
			send "%floor(5)%" 
	else:
		send "test"

yyy cos chyba zle zrobiłem

 

Odnośnik do komentarza
https://skript.pl/temat/44902-dopisek-sk/#findComment-282312
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
Odpowiedz na pytanie...

×   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.

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

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