Skocz do zawartości
  • 0

Meteoryty #2


Gość Usunięty#19006

Pytanie

Gość Usunięty#19006

Witam ZNOWU mam skrypt na meteoryty od pana Helios1993 i mam pytanie czy da sie zrobić aby na actionbarze pokazywało się ile zostało do spadnięcia meteorytu licząc od 10min??

function meteoryt():
	set {_x} to random integer between -50 and 50
	set {_z} to random integer between -50 and 50
	set {_loc} to location of highest block at location at (random integer between -500 and 500), 90, (random integer between -50 and 50) in world "world"
	set block at {_loc} to air
	remove 1 from y-loc of {_loc}
	set {meteoryt::%{_loc}%} to true
	set block at {_loc} to obsidian
	broadcast "&6Meteoryt spadł na koordynatach: &e%{_loc}%&6!"
	while {meteoryt::%{_loc}%} is set:
		loop all players in radius 6 around {_loc}:
			apply slowness to loop-player for 2 second
			apply poison to loop-player for 2 second
		wait 2 second
		
on rightclick on obsidian:
	if {meteoryt::%location at event-block%} is set:
		clear {meteoryt::%location at event-block%}
		set event-block to air
		drop 5 prismarine shard of sharpness 5 named "&bMagiczny Odłamek" at event-block
		broadcast "&6Gracz &e%player% &6zdobył meteoryt!"
		
every 10 minute:
	meteoryt()
	
command /meteoryt [<text>]:
	permission: skript.command.meteoryt
	trigger:
		meteoryt()
	
command /meteoryty:
	trigger:
		send "&bLokalizacje meteorytów:" to sender
		loop {meteoryt::*}:
			send "&7- &6%loop-value%" to sender

Mam jeszcze jeden problem (wiem że to sie nadaje do innego działu ale chciałem aby ktoś mi to naprawił przy okazji) ponieważ pan Kormic zrobił mi komende /meteoryty ale ona nie działa tzn. działa ale nie pokazuje koordynatów tylko 'true'  

[INFO] Lokalizacje meteorytów:

[INFO] - true

[INFO] - true

[INFO] - true

[INFO] - true

[INFO] - true

 

Odnośnik do komentarza
https://skript.pl/temat/42562-meteoryty-2/
Udostępnij na innych stronach

11 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Teraz, jhgggg napisał:

Witam ZNOWU mam skrypt na meteoryty od pana Helios1993 i mam pytanie czy da sie zrobić aby na actionbarze pokazywało się ile zostało do spadnięcia meteorytu licząc od 10min??

Każdemu?

Teraz, jhgggg napisał:

Mam jeszcze jeden problem (wiem że to sie nadaje do innego działu ale chciałem aby ktoś mi to naprawił przy okazji) ponieważ pan Kormic zrobił mi komende /meteoryty ale ona nie działa tzn. działa ale nie pokazuje koordynatów tylko 'true'  

Mój błąd, wstaw tam loop-index zamiast loop-value w komendzie /meteoryty.

Odnośnik do komentarza
https://skript.pl/temat/42562-meteoryty-2/#findComment-266782
Udostępnij na innych stronach

  • 0
37 minut temu, jhgggg napisał:

Tak, każdemu

loop-index zadziałało, dzięki

Jeżeli w funkcjach będziesz miał błąd (wtedy zakładam, że masz Skripta poniżej 2.5) to należy utworzyć zmienną lokalną z wartością '{_int} / 10' i podać ją jako argument do funkcji.

Ważna informacja: action bar jedynie odlicza do spadnięcia kolejnego meteorytu z tej pętli 10-minutowej.

function meteoryt():
	set {_x} to random integer between -50 and 50
	set {_z} to random integer between -50 and 50
	set {_loc} to location of highest block at location at (random integer between -500 and 500), 90, (random integer between -50 and 50) in world "world"
	set block at {_loc} to air
	remove 1 from y-loc of {_loc}
	set {meteoryt::%{_loc}%} to true
	set block at {_loc} to obsidian
	broadcast "&6Meteoryt spadł na koordynatach: &e%{_loc}%&6!"
	while {meteoryt::%{_loc}%} is set:
		loop all players in radius 6 around {_loc}:
			apply slowness to loop-player for 2 second
			apply poison to loop-player for 2 second
		wait 2 second
		
on rightclick on obsidian:
	if {meteoryt::%location at event-block%} is set:
		clear {meteoryt::%location at event-block%}
		set event-block to air
		drop 5 prismarine shard of sharpness 5 named "&bMagiczny Odłamek" at event-block
		broadcast "&6Gracz &e%player% &6zdobył meteoryt!"
		
every 10 minute:
	meteoryt()
	set {_int} to 600
	loop (10 * 60) times:
		if loop-number is less than or equal to 540:
			send action bar "&6Meteoryt spadnie za &a%floor({_int} / 10)% minut i %mod({_int} / 10)% sekund&6!" to all players
		else:
			send action bar "&6Meteoryt spadnie za &a%mod({_int} / 10)% sekund&6!" to all players
		remove 1 from {_int}	
		wait 1 second
	
command /meteoryt [<text>]:
	permission: skript.command.meteoryt
	trigger:
		meteoryt()
	
command /meteoryty:
	trigger:
		send "&bLokalizacje meteorytów:" to sender
		loop {meteoryt::*}:
			send "&7- &6%loop-index%" to sender

 

Odnośnik do komentarza
https://skript.pl/temat/42562-meteoryty-2/#findComment-266802
Udostępnij na innych stronach

  • 0
Gość Usunięty#19006

[ERROR] The function 'mod' requires at least 2 arguments, but only 1 is given. (meteoryty.sk, line 28: send action bar "&6Meteoryt spadnie za &a%floor({_int} / 10)% minut i %mod({_int} / 10)% sekund&6!" to all players')

[ERROR] The function 'mod' requires at least 2 arguments, but only 1 is given. (meteoryty.sk, line 30: send action bar "&6Meteoryt spadnie za &a%mod({_int} / 10)% sekund&6!" to all players')

@Kormic

Odnośnik do komentarza
https://skript.pl/temat/42562-meteoryty-2/#findComment-266846
Udostępnij na innych stronach

  • 0
Teraz, jhgggg napisał:

[ERROR] The function 'mod' requires at least 2 arguments, but only 1 is given. (meteoryty.sk, line 28: send action bar "&6Meteoryt spadnie za &a%floor({_int} / 10)% minut i %mod({_int} / 10)% sekund&6!" to all players')

[ERROR] The function 'mod' requires at least 2 arguments, but only 1 is given. (meteoryty.sk, line 30: send action bar "&6Meteoryt spadnie za &a%mod({_int} / 10)% sekund&6!" to all players')

@Kormic

No tak... w wywoływaniu funkcji mod() zamień ukośnik na przecinek, tak, aby nie było spacji między nim, a zmienną {_int}.

 

Odnośnik do komentarza
https://skript.pl/temat/42562-meteoryty-2/#findComment-266847
Udostępnij na innych stronach

  • 0
Gość Usunięty#19006

czyli &a%mod({_int},10)%? @

 

Wczytuje skrypt bez błędów lecz nie pokazuje sie actionbar @Kormic // jednak sie pokazuje ale pokazuje ze meteoryt spadnie za 50minut XD a sekundy zaczynają sie odliczać od 10sek a nie 59

Edytowane przez jhgggg
CountingDogs

Łączę posty.

Notatka dodana przez CountingDogs

Odnośnik do komentarza
https://skript.pl/temat/42562-meteoryty-2/#findComment-266850
Udostępnij na innych stronach

  • 0
35 minut temu, jhgggg napisał:

Wczytuje skrypt bez błędów lecz nie pokazuje sie actionbar @Kormic // jednak sie pokazuje ale pokazuje ze meteoryt spadnie za 50minut XD a sekundy zaczynają sie odliczać od 10sek a nie 59

Dobra, widocznie zabawa z modulo nie będzie taka prosta jak mogłaby się wydawać... spróbuj jeszcze zamienić wszystkie 10 na 60 (mówię jedynie o zamianie w action barach). Jeżeli nie zadziała, mam kolejne rozwiązanie.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/42562-meteoryty-2/#findComment-266865
Udostępnij na innych stronach

  • 0
2 minuty temu, jhgggg napisał:

Zamienienie 10 na 60 nic nie dało, dalej liczy od 10s @Kormic

W takim wypadku masz ode mnie w prezencie funkcję przeliczającą sekundy na czas. W linijce nr 52 możesz zmienić false na true, wtedy będą słowne jednostki czasowe.

 

Odnośnik do komentarza
https://skript.pl/temat/42562-meteoryty-2/#findComment-266879
Udostępnij na innych stronach

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