Skocz do zawartości
  • 0

Tylko wywołujący komendę może wpisać podkomendę


Notro
 Udostępnij

Pytanie

Hej, mam problem, otóż chciałem zrobić skrypt na automatyczny ox, wszystko dla mnie dziala lecz chcialem przetestowac na innych i jak sie okazalo, im nie działa wybór czy chcą dołączyć do ox.. Jak była zmienna wybor::%player% to nic sie nie dzialo, jak inna osoba, niż ja wpisujący komende /ox auto wybrała odpowiedź Tak/Nie, a jak spróbowałem z wybor::* to jeśli jedna osoba wybierze, druga już nie może, bo zmienna wybor zmienia się na false.. Proszę o wyrozumiałość, bo wiem, że to zapewne głupi błąd..

 

command /ox [<text>]:
	trigger:
			
		if arg 1 is "zmienna":
			send "%{graczeOX}%" to player
		if arg 1 is "lista":
			loop {gracze::*}:
				send "%loop-value%" to player
			
		if arg 1 is "auto":
			set {graczeOX} to 0
			clear {gracze::*}
			set {wybor::*} to true
			send "{@prefix} &aEvent OX został włączony w trybie automatycznym! Zaraz zaczynamy!" to all players
			wait 20 tick
			send "{@prefix} &aEvent OX zaraz się rozpocznie! Czy chcesz dołączyć?" to all players
			send formatted "<tooltip:Kliknij><cmd:/ox dolacz>&b» &aTak" to all players
			send formatted "<tooltip:Kliknij><cmd:/ox odrzuc>&b» &cNie" to all players
			wait 500 tick
			set {wybor::*} to false
			chance of 16.6%:
				set {wylpyt} to {pytanie1}
				set {wylodp} to {odp1}
			else:
				chance of 16.6%:
					set {wylpyt} to {pytanie2}
					set {wylodp} to {odp2}
				else: 
					chance of 16.6%:
						set {wylpyt} to {pytanie3}
						set {wylodp} to {odp3}
					else:
						chance of 16.6%:
							set {wylpyt} to {pytanie4}
							set {wylodp} to {odp4}
						else:
							chance of 16.6%:
								set {wylpyt} to {pytanie5}
								set {wylodp} to {odp5}
							else:
								chance of 16.6%:
									set {wylpyt} to {pytanie6}
									set {wylodp} to {odp6}
					
			wait 2 tick
			send "{@prefix} &aPytanie 1: %{wylpyt}%" to {gracze::*}
			send formatted "<tooltip:Kliknij><cmd:/ox tak>&b» &aTak" to {gracze::*}
			send formatted "<tooltip:Kliknij><cmd:/ox nie>&b» &cNie" to {gracze::*}
		
		if arg 1 is "tak":
			if {wylodp} is "tak":
				send "{@prefix} &aTwoja odpowiedź jest poprawna!" to player
			if {wylodp} is "nie":
				send "{@prefix} &cTwoja odpowiedź jest niestety zła! Wypadasz z ox :(" to player
			
		else if arg 1 is "nie":
			if {wylodp} is "nie":
				send "{@prefix} &aTwoja odpowiedź jest poprawna!" to player
			if {wylodp} is "tak":
				send "{@prefix} &cTwoja odpowiedź jest niestety zła! Wypadasz z ox :(" to player
				
			
			
		if {wybor::*} is true:
			if arg 1 is "dolacz":
				send "{@prefix} &eDołączyłeś do eventu OX!" to player
				add 1 to {graczeOX}
				add player to {gracze::*}
				wait 2 tick
				set {wybor::*} to false
			if arg 1 is "odrzuc":
				send "{@prefix} &cOdrzuciłeś zaproszenie do eventu OX!" to player
				wait 2 tick
				set {wybor::*} to false
		else if {wybor::*} is false:
			if arg 1 is "dolacz" or "odrzuc":
				send "{@prefix} &cJuż wybrałeś lub skończył się czas!"
			

 

Odnośnik do komentarza
Udostępnij na innych stronach

10 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
			chance of 16.6%:
				set {wylpyt} to {pytanie1}
				set {wylodp} to {odp1}
			else:
				chance of 16.6%:
					set {wylpyt} to {pytanie2}
					set {wylodp} to {odp2}
				else: 
					chance of 16.6%:
						set {wylpyt} to {pytanie3}
						set {wylodp} to {odp3}
					else:
						chance of 16.6%:
							set {wylpyt} to {pytanie4}
							set {wylodp} to {odp4}
						else:
							chance of 16.6%:
								set {wylpyt} to {pytanie5}
								set {wylodp} to {odp5}
							else:
								chance of 16.6%:
									set {wylpyt} to {pytanie6}
									set {wylodp} to {odp6}

na: 

set {wylpyt} to {pytanie1} or {pytanie2} or {pytanie3} or {pytanie4} or {pytanie5} or {pytanie6}

i identycznie z {wylodp}

 

lub losujesz losową liczbę set {_x} to random integer between 1 and 6 i ustawiasz w taki sposob {pytanie%{_x}%}

 

a co do pytania, nie zrozumiałem go

 

jedyne co rozumiem to: {wybor::*} powinieneś przypisywać raczej do gracza, zatem {wybor::%player%}

 

Edytowane przez CoFFeIN04
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, JkodGames napisał:

Hej, mam problem, otóż chciałem zrobić skrypt na automatyczny ox, wszystko dla mnie dziala lecz chcialem przetestowac na innych i jak sie okazalo, im nie działa wybór czy chcą dołączyć do ox.. Jak była zmienna wybor::%player% to nic sie nie dzialo, jak inna osoba, niż ja wpisujący komende /ox auto wybrała odpowiedź Tak/Nie, a jak spróbowałem z wybor::* to jeśli jedna osoba wybierze, druga już nie może, bo zmienna wybor zmienia się na false.. Proszę o wyrozumiałość, bo wiem, że to zapewne głupi błąd..

Jak już to ta lista {wybor::*} powinna raczej działać na zasadzie, że zapisuje do niej tych graczy, którzy zdecydowali czy zagrają w OX'a, czy też nie.

Natomiast w liście {gracze::*} znajdują się wszyscy ci, którzy zdecydowali, iż będą grać.

W przypadku komend /ox tak oraz /ox nie powinien być warunek sprawdzający czy gracz bierze udział w OX'ie. Jeżeli nie, to nie może po prostu wykonać tej komendy.

Oczywiście zamiast listy {wybor::*} wystarczy, że wstawisz jakąś inną, zwykłą zmienną, która będzie kontrolowała czy nadal jest czas na dołączenie do OX'a.

Mam nadzieję, że w miarę wyjaśniłem ci w jaki sposób powinien działać ten skrypt.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

Jak już to ta lista {wybor::*} powinna raczej działać na zasadzie, że zapisuje do niej tych graczy, którzy zdecydowali czy zagrają w OX'a, czy też nie.

Natomiast w liście {gracze::*} znajdują się wszyscy ci, którzy zdecydowali, iż będą grać.

W przypadku komend /ox tak oraz /ox nie powinien być warunek sprawdzający czy gracz bierze udział w OX'ie. Jeżeli nie, to nie może po prostu wykonać tej komendy.

Oczywiście zamiast listy {wybor::*} wystarczy, że wstawisz jakąś inną, zwykłą zmienną, która będzie kontrolowała czy nadal jest czas na dołączenie do OX'a.

Mam nadzieję, że w miarę wyjaśniłem ci w jaki sposób powinien działać ten skrypt.

Chciałem zrobić tak, że to zmienna czy gracz może jeszcze wybrać, czy chce dołączyć do oxa, ale jestem słabiutki w skript.. 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, JkodGames napisał:

Chciałem zrobić tak, że to zmienna czy gracz może jeszcze wybrać, czy chce dołączyć do oxa, ale jestem słabiutki w skript.. 

Nie ma co się użalać nad sobą tylko trzeba wziąć się w garść.

Jeżeli czegoś nie wiesz, skorzystaj z poradników do Skripta, których jest od groma.

Przeczytaj na spokojnie to, co napisałem i dostosuj to do swojego pomysłu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Teraz jak się z tym pobawiłem, okazało się, że od razu po /ox auto zmienna wybor::%player% zmienia się na false, nawet jak usune wszystkie polecenia "set zmienna to false".. A na samym starcie jest to, że ma się ustawić na true.. O co chodzi?

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, JkodGames napisał:

Teraz jak się z tym pobawiłem, okazało się, że od razu po /ox auto zmienna wybor::%player% zmienia się na false, nawet jak usune wszystkie polecenia "set zmienna to false".. A na samym starcie jest to, że ma się ustawić na true.. O co chodzi?

 

Pokaż ponownie kod komendy.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

Pokaż ponownie kod komendy.

variables:
	{wybor::%player%} = true
	
	


command /ox [<text>]:
	trigger:
			
		if arg 1 is "zmienna":
			send "%{wybor::%player%}%" to player
		if arg 1 is "lista":
			loop {gracze::*}:
				send "%loop-value%" to player
			
		if arg 1 is "auto":
			set {graczeOX} to 0
			clear {gracze::*}
			set {wybor::%player%} to true
			send "{@prefix} &aEvent OX został włączony w trybie automatycznym! Zaraz zaczynamy!" to all players
			wait 20 tick
			send "{@prefix} &aEvent OX zaraz się rozpocznie! Czy chcesz dołączyć?" to all players
			send formatted "<tooltip:Kliknij><cmd:/ox dolacz>&b» &aTak" to all players
			send formatted "<tooltip:Kliknij><cmd:/ox odrzuc>&b» &cNie" to all players
			wait 500 tick
			set {wybor::%player%} to false
			set {wylpyt} to {pytanie1} or {pytanie2} or {pytanie3} or {pytanie4} or {pytanie5} or {pytanie6}
			wait 2 tick
			send "{@prefix} &aPytanie 1: %{wylpyt}%" to {gracze::*}
			send formatted "<tooltip:Kliknij><cmd:/ox tak>&b» &aTak" to {gracze::*}
			send formatted "<tooltip:Kliknij><cmd:/ox nie>&b» &cNie" to {gracze::*}
		
		if arg 1 is "tak":
			if {wylodp} is "tak":
				send "{@prefix} &aTwoja odpowiedź jest poprawna!" to player
			if {wylodp} is "nie":
				send "{@prefix} &cTwoja odpowiedź jest niestety zła! Wypadasz z ox :(" to player
			
		else if arg 1 is "nie":
			if {wylodp} is "nie":
				send "{@prefix} &aTwoja odpowiedź jest poprawna!" to player
			if {wylodp} is "tak":
				send "{@prefix} &cTwoja odpowiedź jest niestety zła! Wypadasz z ox :(" to player
				
			
			
		if {wybor::%player%} is true:
			if arg 1 is "dolacz":
				send "{@prefix} &eDołączyłeś do eventu OX!" to player
				add 1 to {graczeOX}
				add player to {gracze::*}
				wait 2 tick
				set {wybor::%player%} to false
			if arg 1 is "odrzuc":
				send "{@prefix} &cOdrzuciłeś zaproszenie do eventu OX!" to player
				wait 2 tick
				set {wybor::%player%} to false
		else if {wybor::%player%} is false:
			if arg 1 is "dolacz" or "odrzuc":
				send "{@prefix} &cJuż wybrałeś lub skończył się czas!"
			

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

Problem leży w tym, iż w komendzie ustawiasz zmienną jedynie dla gracza wykonującego komendę. Jeżeli chcesz dla wszystkich graczy, musisz ich zapętlić za pomocą 'loop all players'.

O Jezu.. rzeczywiście.. jeszcze nie mam takiego myślenia skryptowego, dzięki!

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