Skocz do zawartości
  • 0

Problem ze skryptem


hbrt
 Udostępnij

Pytanie

Witam!
Mam problem w tym kodzie:
 

on load:
	set {glosowanie.tak} to 0
	set {glosowanie.nie} to 0
	set {glosowanie.all} to 0
	if {glosowanie.%player%} is true:
		execute console command "lp user %player% permission unset glosowanie.vote"
		wait 30 second
		execute console command "lp user %player% permission set glosowanie.vote"

command /glosowanie [<text>]:
	trigger:
		if player has permission "stworz.glosowanie" or "*":
			execute console command "chat off"
			send "&7» &aGracz &e%player%&a wywołał głosowanie:"
			send "&7» &a{@[<text>]}"
			send "&7»"
			send "                   <tooltip:&eKliknij tu aby zagłosować na &aTAK!>&6<run command:/glosowanie_tak>[TAK]<reset>        <tooltip:&eKliknij tu aby zagłosować na &cNIE!>&9<run command:/glosowanie_nie>[NIE]<reset>" to all players
			wait 30 second
			send "&8» &7Głosowanie zakończone!"
			wait 2 second
			if {glosowanie.tak} is smaller than {glosowanie.nie}:
				send "&eZagłosowano na &cNIE!"
				send "&eLiczba głosów na nie: {glosowanie.nie}"
				send "&eLiczba wszystkich głosujących: {glosowanie.all}"
				wait 2 second
				execute console command "chat on"
			else:
				send "&eZagłosowano na &aTAK!"
				send "&eLiczba głosów na tak: {glosowanie.tak}"
				send "&eLiczba wszystkich głosujących: {glosowanie.all}"
				wait 2 second
				execute console command "chat on"
		else:
			send "&cBRAK PERMISSI!"

command /glosowanie_tak:
	trigger:
		if player has permission "glosowanie.vote":
			send "&eZagłosowałeś na &a&l&oTAK!"
			add 1 to {glosowanie.tak}
			add 1 to {glosowanie.all}
			set {glosowanie.%player%} to true
		else:
			send "&cOddałeś już głos!"

command /glosowanie_nie:
	trigger:
		if player has permission "glosowanie.vote":
			send "&eZagłosowałeś na &a&l&oNIE!"
			add 1 to {glosowanie.nie}
			add 1 to {glosowanie.all}
			set {glosowanie.%player%} to true
		else:
			send "&cOddałeś już głos!"

uTp3ZTO.png

Nie za bardzo wiem gdzie leży problem, liczę na pomoc.

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

Rekomendowane odpowiedzi

  • 0

Problem leży, jak wskazuje błąd na samym początku: 

on load:
	set {glosowanie.tak} to 0
	set {glosowanie.nie} to 0
	set {glosowanie.all} to 0
	if {glosowanie.%player%} is true:
		execute console command "lp user %player% permission unset glosowanie.vote"
		wait 30 second
		execute console command "lp user %player% permission set glosowanie.vote"

, możesz to zmienić loopując wszystkich graczy i później ustawianiu tych permisji

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, CROACH napisał:

Problem leży, jak wskazuje błąd na samym początku: 

on load:
	set {glosowanie.tak} to 0
	set {glosowanie.nie} to 0
	set {glosowanie.all} to 0
	if {glosowanie.%player%} is true:
		execute console command "lp user %player% permission unset glosowanie.vote"
		wait 30 second
		execute console command "lp user %player% permission set glosowanie.vote"

, możesz to zmienić loopując wszystkich graczy i później ustawianiu tych permisji

a czy mógłbyś mi z tym pomóc? bo ja jestem początkujący 😅

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
on load:
	set {glosowanie.tak} to 0
	set {glosowanie.nie} to 0
	set {glosowanie.all} to 0
	loop all players:
		if {glosowanie.%loop-player%} is true:
			execute console command "lp user %loop-player% permission unset glosowanie.vote"
			wait 30 second
			execute console command "lp user %loop-player% permission set glosowanie.vote"

Proszę. Ale radzę ci się poduczyć bo ciężko będzie

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Tu racja, nie zauważyłem tego

Teraz, CoFFeIN04 napisał:

Mimo wszystko podczas ładowania skryptu raczej nie ma żadnych graczy na serwerze.

co to znaczy? Jak chcesz wyświetlić to co gracz wpisał w komendzie to używasz %arg% 

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, CoFFeIN04 napisał:

co to znaczy? Jak chcesz wyświetlić to co gracz wpisał w komendzie to używasz %arg% 

kurde thx wielkie XD tutaj po prostu nie wiedziałem jak to zrobić, ale prawie na to wpadłem XD
thx wielkie

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
30 minut temu, hbrt napisał:

if {glosowanie.%player%} is true:
execute console command "lp user %player% permission unset glosowanie.vote"
wait 30 second
execute console command "lp user %player% permission set glosowanie.vote"

Co ma to robić?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, CoFFeIN04 napisał:

Co ma to robić?

to ma po prostu odbierać permissie i nadawać ją pod koniec głosowania, ale chyba to trochę zmienię

Edit:
tylko nie wiem za bardzo jak by to zrobić, aby to działało

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

  • 0

Chyba nie rozumiesz eventu "on load". Jest to na załadowanie skrypta, czyli np. przy restarcie lub /sk reload <nazwa skrypta>, nie przy jego użyciu

Teraz, hbrt napisał:

to ma po prostu odbierać permissie i nadawać ją pod koniec głosowania, ale chyba to trochę zmienię

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, CROACH napisał:

Chyba nie rozumiesz eventu "on load". Jest to na załadowanie skrypta, czyli np. przy restarcie lub /sk reload <nazwa skrypta>, nie przy jego użyciu

 

no cóż, a pomógłbyś mi w tym? bo za bardzo nie wiem gdzie to wsadzić... w options?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Po utworzeniu głosowania po prostu zapętl wszystkich graczy i nadaj im to  uprawnienie, np. po tej linijce

			execute console command "chat off"

Następnie po 30 sekundach zapętl ich ponownie i zabierz to uprawnienie.

Nie jest to zbyt dobry sposób, bo gracze mogą wyjść i w taki sposób dostaną uprawnienie na zawsze.

 

O wiele lepszym sposobem byłaby zmienna, np. {głosowanie}, która jeśli jest na true to pozwala używać komend do głosowania, w przeciwnym wypadku nie pozwala ;) 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
7 minut temu, CoFFeIN04 napisał:

O wiele lepszym sposobem byłaby zmienna, np. {głosowanie}, która jeśli jest na true to pozwala używać komend do głosowania, w przeciwnym wypadku nie pozwala ;) 

ok, zajmę się tym, a czy mógłbyś mi jeszcze pomóc z wysyłaniem wiadomości? Bo tak to powinno działać chyba prawda? Jak nie, to czy mógłbyś mi powiedzieć jak to napisać?

send "wiadomość" to %loop-player%

EDIT:
Nie ważne XD

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

  • 0
command /glosowanie [<text>] [<text>]:
	trigger:
		if arg 1 is not set:
			if player doesn't have permission "glosowanie.glosuj" or "glosowanie.*":
				send "&cNie masz uprawnień do brania udziału w głosowaniach."
				stop
			if {Glosowanie::status} is not set:
				send "&cAktualnie nie trwa żadne głosowanie."
				stop
			send "&7» &aGracz &e%{Glosowanie::tworca}% &awywołał głosowanie."
			send "&7» &aTreść: &e%{Glosowanie::tresc}%"
			send "&7» &aCzas na oddanie głosu: &e%{Glosowanie::czas}% &asekund"
			send "&7»"
			send "                   <tooltip:&eKliknij tu aby zagłosować na &aTAK!><run command:/glosuj tak>&e[&aTAK&e]        <tooltip:&eKliknij tu aby zagłosować na &cNIE!><run command:/glosuj nie>&e[&cNIE&e]"
			stop
		if player doesn't have permission "glosowanie.stworz" or "glosowanie.*":
			send "&cNie masz uprawnien do stworzenia głosowania."
			stop
		if arg 1 is not "anuluj":
			if arg 1 parsed as integer is not set:
				send "&cBłąd: &7Poprawne użycie: /glosowanie <czas w sekundach> <treść>"
				stop
		else:
			if {Glosowanie::status} is not set:
				send "&cAktualnie nie trwa żadne głosowanie."
				stop
			send "&cGłosowanie zostało anulowane." to all players
			clear {Glosowanie::*}
			execute console command "chat on"
			stop
		if arg 2 is not set:
			send "&cBłąd: &7Poprawne użycie: /glosowanie <czas w sekundach> <treść>"
			stop
		if {Glosowanie::status} is set:
			send "&cPoczekaj na zakończenie poprzedniego głosowania."
			stop
		execute console command "chat off"
		set {Glosowanie::status} to true
		set {Glosowanie::tresc} to arg 2
		set {Glosowanie::tworca} to name of player
		set {Glosowanie::glosy::tak} to 0
		set {Glosowanie::glosy::nie} to 0
		set {Glosowanie::czas} to arg 1 parsed as integer
		send "&7» &aGracz &e%player% &awywołał głosowanie." to all players
		send "&7» &aTreść: &e%arg 2%" to all players
		send "&7» &aCzas na oddanie głosu: &e%arg 1% &asekund" to all players
		send "&7»"
		send "                   <tooltip:&eKliknij tu aby zagłosować na &aTAK!><run command:/glosuj tak>&e[&aTAK&e]        <tooltip:&eKliknij tu aby zagłosować na &cNIE!><run command:/glosuj nie>&e[&cNIE&e]" to all players
		while {Glosowanie::status} is true:
			wait a second
			remove 1 from {Glosowanie::czas}
			if {Glosowanie::czas} is 0:
				send "&8» &7Głosowanie zakończone!" to all players
				send "&7» &aTreść: &e%arg 2%" to all players
				if {Glosowanie::glosy::tak} is more than {Glosowanie::glosy::nie}:
					send "&eZagłosowano na &aTAK!" to all players
				else if {Glosowanie::glosy::tak} is less than {Glosowanie::glosy::nie}:
					send "&eZagłosowano na &cNIE!" to all players
				else:
					send "&eGłosowanie zakończyło się remisem." to all players
				send "&eLiczba głosów na tak: %{Glosowanie::glosy::tak}%" to all players
				send "&eLiczba głosów na nie: %{Glosowanie::glosy::nie}%" to all players
				send "&eLiczba wszystkich głosujących: %{Glosowanie::glosy::tak}+{Glosowanie::glosy::nie}%" to all players
				clear {Glosowanie::*}
				execute console command "chat on"
on script unload:
	if {Glosowanie::status} is true:
		send "&cGłosowanie zostało anulowane." to all players
		clear {Glosowanie::*}
		execute console command "chat on"
		stop
command /glosuj [<text>]:
	trigger:
		if player doesn't have permission "glosowanie.glosuj" or "glosowanie.*":
			send "&cNie masz uprawnień do brania udziału w głosowaniach."
			stop
		if arg is not "tak" or "nie":
			send "&cBłąd: &7Poprawne użycie: /glosuj <tak|nie>"
			stop
		if {Glosowanie::status} is not set:
			send "&cAktualnie nie trwa żadne głosowanie."
			stop
		if {Glosowanie::glos::%player%} is set:
			send "&cOddałeś już swój głos w tym głosowaniu."
			stop
		set {Glosowanie::glos::%player%} to true
		if arg is "tak":
			send "&eZagłosowałeś na &aTAK&e."
			add 1 to {Glosowanie::glosy::tak}
			stop
		else:
			send "&eZagłosowałeś na &cNIE&e."
			add 1 to {Glosowanie::glosy::nie}
			stop

 

Napisałem od podstaw, może Ci się przyda.

 

Komendy:

/glosowanie <czas w sekundach> <treść> (permisja glosowanie.stworz lub glosowanie.*)
/glosowanie anuluj (permisja glosowanie.stworz lub glosowanie.*)
/glosuj tak / nie (permisja glosowanie.glosuj lub glosowanie.*) - Ta komenda jest wykonywana podczas klikania [TAK] [NIE] na czacie (Głos można oddać tylko raz podczas jednego głosowania i nie można go zmienić)
 

Przeładowanie skryptu powoduje anulowanie trwającego głasowania.

 

//EDIT

Jeśli gracz ma uprawnienia do głosowania to może zobaczyć aktualnie trwające głosowanie komendą /glosowanie

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

  • 0
6 minut temu, Shooterowy napisał:
command /glosowanie [<text>] [<text>]:
	trigger:
		if player doesn't have permission "glosowanie.stworz" or "glosowanie.*":
			send "&cNie masz uprawnien do stworzenia głosowania."
			stop
		if arg 1 is not "anuluj":
			if arg 1 parsed as integer is not set:
				send "&cBłąd: &7Poprawne użycie: /glosowanie <czas w sekundach> <treść>"
				stop
		else:
			if {Glosowanie::status} is not set:
				send "&cAktualnie nie trwa żadne głosowanie."
				stop
			send "&cGłosowanie zostało anulowane." to all players
			clear {Glosowanie::*}
			execute console command "chat on"
			stop
		if arg 2 is not set:
			send "&cBłąd: &7Poprawne użycie: /glosowanie <czas w sekundach> <treść>"
			stop
		if {Glosowanie::status} is set:
			send "&cPoczekaj na zakończenie poprzedniego głosowania."
			stop
		execute console command "chat off"
		set {Glosowanie::status} to true
		set {Glosowanie::temat} to arg 2
		set {Glosowanie::glosy::tak} to 0
		set {Glosowanie::glosy::nie} to 0
		set {Glosowanie::czas} to arg 1 parsed as integer
		send "&7» &aGracz &e%player% &awywołał głosowanie." to all players
		send "&7» &aTreść: &e%arg 2%" to all players
		send "&7» &aCzas na oddanie głosu: &e%arg 1% &asekund" to all players
		send "&7»"
		send "                   <tooltip:&eKliknij tu aby zagłosować na &aTAK!><run command:/glosuj tak>&e[&aTAK&e]        <tooltip:&eKliknij tu aby zagłosować na &cNIE!><run command:/glosuj nie>&e[&cNIE&e]" to all players
		while {Glosowanie::status} is true:
			wait a second
			remove 1 from {Glosowanie::czas}
			if {Glosowanie::czas} is 0:
				send "&8» &7Głosowanie zakończone!" to all players
				send "&7» &aTreść: &e%arg 2%" to all players
				if {Glosowanie::glosy::tak} is more than {Glosowanie::glosy::nie}:
					send "&eZagłosowano na &aTAK!" to all players
				else if {Glosowanie::glosy::tak} is less than {Glosowanie::glosy::nie}:
					send "&eZagłosowano na &cNIE!" to all players
				else:
					send "&eGłosowanie zakończyło się remisem." to all players
				send "&eLiczba głosów na tak: %{Glosowanie::glosy::tak}%" to all players
				send "&eLiczba głosów na nie: %{Glosowanie::glosy::nie}%" to all players
				send "&eLiczba wszystkich głosujących: %{Glosowanie::glosy::tak}+{Glosowanie::glosy::nie}%" to all players
				clear {Glosowanie::*}
				execute console command "chat on"
on script unload:
	if {Glosowanie::status} is true:
		send "&cGłosowanie zostało anulowane." to all players
		clear {Glosowanie::*}
		execute console command "chat on"
		stop
command /glosuj [<text>]:
	trigger:
		if player doesn't have permission "glosowanie.glosuj" or "glosowanie.*":
			send "&cNie masz uprawnień do brania udziału w głosowaniach."
			stop
		if arg is not "tak" or "nie":
			send "&cBłąd: &7Poprawne użycie: /glosuj <tak|nie>"
			stop
		if {Glosowanie::status} is not set:
			send "&cAktualnie nie trwa żadne głosowanie."
			stop
		if {Glosowanie::glos::%player%} is set:
			send "&cOddałeś już swój głos w tym głosowaniu."
			stop
		set {Glosowanie::glos::%player%} to true
		if arg is "tak":
			send "&eZagłosowałeś na &aTAK&e."
			add 1 to {Glosowanie::glosy::tak}
			stop
		else:
			send "&eZagłosowałeś na &cNIE&e."
			add 1 to {Glosowanie::glosy::nie}
			stop

 

Napisałem od podstaw, może Ci się przyda.

 

Komendy:

/glosowanie <czas w sekundach> <treść> (permisja glosowanie.stworz lub glosowanie.*)
/glosowanie anuluj (permisja glosowanie.stworz lub glosowanie.*)
/glosuj tak / nie (permisja glosowanie.glosuj lub glosowanie.*) - Ta komenda jest wykonywana podczas klikania [TAK] [NIE] na czacie (Głos można oddać tylko raz podczas jednego głosowania i nie można go zmienić)
 

Przeładowanie skryptu powoduje anulowanie trwającego głasowania.

Wiesz, dzięki za fatygę, ale ja po prostu się uczę skryptów trochę ostatnio... i dla tego stworzyłem ten temat.
Ale sprawdziłem to i muszę powiedzieć, że gracze mogą głosować w nieskończoność.

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