Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Szukam] Skript, najwyzsza losowa liczba


Rekomendowane odpowiedzi

Opublikowano

Witam, potrzebuje skryptu, ktory ustali, ktora z losowo przydzielonych wczesniej liczb jest najwieksza i do jakiego gracza nalezala (Takie losowanie i kto ma najwieksza liczbe wygrywa).

 

Opublikowano

Nie łatwiej zwykłe losowanie? Mój skrypt ze starego serwera:

options:
	l: <grey>[<green>Losowanie<grey>]<reset>
	c: &e
	ec: &4

command /losuj <material> <number>:
	permission: losowanie
	permission message: <grey>[<green>Losowanie<grey>] &cNie mozesz tego zrobic!
	description: Pozwala losowac przedmiot
	trigger:
		if arg 1 is set:
			if arg 2 is set:
				set {_material} to arg 1
				set {_number} to arg 2
				broadcast "{@l} {@c}Losowanie rozpoczete! Do wygrania <aqua>%{_number}% %{_material}%{@c}!"
				loop all players:
					add loop-player to {_list::*}
				wait 1 second
				set {_player.win} to random element of {_list::*}
				wait 4 seconds
				execute console command "give %{_player.win}% %arg 1% %arg 2%"
				execute console command "playsound random.levelup %{_player.win}%"
				broadcast "{@l} {@c}Losowanie wygral gracz <gold>%{_player.win}%{@c}!"
			else:
				send "{@l} {@ec}Musisz podac ilosc itemow!"
				stop
		else:
			send "{@l} {@ec}Musisz podac nazwe przedmiotu!"
			stop

Jesli pomoglem daj Like.

Opublikowano

Dzieki, chodz nie do konca o to mi chodzilo.

Wiekszosc skryptu mam juz zrobionego, ale brakuje mi jeszcze wytypowania najwyzszej wylosowanej liczby.

Na czym to ma polegac?

Gracz placi za aktywacje eventu i wtedy kazdy gracz na serwerze moze wziasc udzial w losowaniu (o ile wpisz komende /roll). Graczowi przydziela losowy numer, (od 1 do 1000) ktory wyskakuje rowniez na czacie. Po 30 sekundach event jest zamykany, a osoba ktora miala najwyzsza liczbe otrzymuje nagrode.

 

Podaje skrypt, ktory do tej pory napisalem:

variables:
	{los} = false
	{los2} = false
	{roll.%player%} = 0
	{start} = true
command /startroll:
	trigger:
		player has diamond:
			if {start} is true:
				remove 1 diamond from player
				set {start} to false
				set {los} to true
				set {los2} to true
				broadcast "<orange>%player% <light green>rozpoczal losowanie! Aby wziasc udzial wpisz &b/roll"
				wait 20 second
				broadcast "&6Pozostalo &410 &6sekund do konca losowania!"
				wait 5 second
				broadcast "&6Pozostalo &45 &6sekund do konca losowania!"
				wait 5 second
				broadcast "<orange>&6Losowanie zakonczone, szukanie zwyciezcy!"
				set {los} to false
				wait 1 second
				loop all players:
					if {roll.%loop-player%} is the greatest
				set {start} to true
			else:
				send "&cLosowanie juz trwa!"
		else:
			send "<light red> potrzebujesz do tego diamentu"
command /roll:
	trigger:
		if {los} is true:
			if {los2} is true:
				set {liczba} to random integer between 1 and 1000
				add {liczba} to {roll.%player%}
				broadcast "<orange>%player% <light green>wylosowal liczbe<green> (%{liczba}%)"
				set {los2} to false
			else:
				send "<light red>Mozesz losowac tylko raz!"
		else:
			send "<light red>Nie ma obecnie losowania!"
Opublikowano

Musisz dac loopa z sprawdzanien zmiennych od 1000 do 1 (nie, nie duzo kodu. Pomysl z loopem i dodawaniem liczb do zmiennych).

Gotowy kod dam ok 12 w tym poscie jednak bedzie on na szybko i nie bd poprawial ew bugow gdy 2 graczy bdzie mialo najwyzsza liczbe

733761405517115815990.png

"To, że milczę, nie znaczy, że nie mam nic do powiedzenia" ~Jonathan Carroll

Opublikowano

Zakładając, że liczba gracza zapisana jest w {liczba.%player%}:

variables:
	{najwyzsza.liczba} = 0

command /sprawdz:
	trigger:
		loop all players:
			if {liczba.%loop-player%} is set:
				if {liczba.%loop-player%} is greather than {najwyzsza.liczba}:
					set {najwyzsza.liczba} to {liczba.%loop-player%}
					set {winner} to loop-player
		boadcast "Wygral gracz %{winner}%!"
		set {najwyzsza.liczba} to 0
		clear {winner}	

Mam nadzieję, że mój skrypt ci pomoże ;)

Jesli pomoglem daj Like.

Opublikowano

Wielkie dzieki za to, ale nawet po kilku poprawkach, skrypt nie dziala w pelni poprawnie.

Sprobuje naniesc jeszcze jakies poprawki, ale jestem otwarty na inne propozycje skryptow.

Opublikowano

Kod na samo wybranie najwyższej liczby:

loop all players:
	loop number of players times:
		{_w} is not set:
			set {_w} to {roll.%loop-player%}
			set {_p} to loop-player
		{roll.%loop-player%} is more than {_w}:
			set {_w} to {roll.%loop-player%}
			set {_p} to loop-player
send "&aLosowanie wygral &6%{_p}% &a(&2%{_w}%&a)!"
Opublikowano

 

Kod na samo wybranie najwyższej liczby:

loop all players:
	loop number of players times:
		{_w} is not set:
			set {_w} to {roll.%loop-player%}
			set {_p} to loop-player
		{roll.%loop-player%} is more than {_w}:
			set {_w} to {roll.%loop-player%}
			set {_p} to loop-player
send "&aLosowanie wygral &6%{_p}% &a(&2%{_w}%&a)!"

Zrobiłeś to samo co ja tylko innym kodem :huh:

 

@Edit

I chyba broadcast zamiast send chciałeś wpisać ;)

Jesli pomoglem daj Like.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...