Witam ponownie, mam skrypt pana Helios1993 z obliczaniem czasu dodany przez pana Kormic ale chciałbym żeby ktoś mi dopisał że jeśli meteoryt spadł na jakieś koordynaty to robi dziurę i w środku tej dziury dopiero tworzy się ten obsydian z którego wypada itemek. Czy takie coś jest możliwe? Wydaje mi się że można takie coś zrobić poprzez wybuch tnt w danych koordynatach i w takim wypadku takie tnt zrobi dziurę. Chcę również dopisanie że jeżeli gracz przejął meteoryt (po prostu kliknął prawym na niego i dostał nagrode) to ta dziura po prostu przywraca sie do pierwotnego stanu przed wytworzeniem dziury. Kod:
function convertToDHMS(secondsinput: integer, texts: boolean) :: text:
set {_minutes} to ({_secondsinput} - mod({_secondsinput}, 60))/60
set {_seconds} to {_secondsinput} - ({_minutes} * 60)
set {_hours} to ({_minutes} - mod({_minutes}, 60))/60
set {_minutes} to {_minutes} - ({_hours} * 60)
set {_days} to ({_hours} - mod({_hours}, 24))/24
set {_hours} to {_hours} -({_days} * 24)
if {_texts} is true:
if {_days} is less than 1:
return "%{_hours}% godzin, %{_minutes}% minut, %{_seconds}% sekund"
else:
return "%{_days}% dni, %{_hours}% godzin, %{_minutes}% minut, %{_seconds}% sekund"
return "%{_hours}% godzin, %{_minutes}% minut, %{_seconds}% sekund"
if {_texts} is false:
if {_seconds} is less than 10:
set {_seconds} to "0%{_seconds}%"
if {_minutes} is less than 10:
set {_minutes} to "0%{_minutes}%"
if {_hours} is less than 10:
set {_hours} to "0%{_hours}%"
if {_days} is less than 1:
return "%{_hours}%:%{_minutes}%:%{_seconds}%"
if {_days} is greater than or equal to 1:
return "%{_days}%:%{_hours}%:%{_minutes}%:%{_seconds}%"
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:
send action bar "&6Meteoryt spadnie za &a%convertToDHMS({_int}, false)%&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
Pytanie
Gość Usunięty#19006
Witam ponownie, mam skrypt pana Helios1993 z obliczaniem czasu dodany przez pana Kormic ale chciałbym żeby ktoś mi dopisał że jeśli meteoryt spadł na jakieś koordynaty to robi dziurę i w środku tej dziury dopiero tworzy się ten obsydian z którego wypada itemek. Czy takie coś jest możliwe? Wydaje mi się że można takie coś zrobić poprzez wybuch tnt w danych koordynatach i w takim wypadku takie tnt zrobi dziurę. Chcę również dopisanie że jeżeli gracz przejął meteoryt (po prostu kliknął prawym na niego i dostał nagrode) to ta dziura po prostu przywraca sie do pierwotnego stanu przed wytworzeniem dziury. Kod:
function convertToDHMS(secondsinput: integer, texts: boolean) :: text: set {_minutes} to ({_secondsinput} - mod({_secondsinput}, 60))/60 set {_seconds} to {_secondsinput} - ({_minutes} * 60) set {_hours} to ({_minutes} - mod({_minutes}, 60))/60 set {_minutes} to {_minutes} - ({_hours} * 60) set {_days} to ({_hours} - mod({_hours}, 24))/24 set {_hours} to {_hours} -({_days} * 24) if {_texts} is true: if {_days} is less than 1: return "%{_hours}% godzin, %{_minutes}% minut, %{_seconds}% sekund" else: return "%{_days}% dni, %{_hours}% godzin, %{_minutes}% minut, %{_seconds}% sekund" return "%{_hours}% godzin, %{_minutes}% minut, %{_seconds}% sekund" if {_texts} is false: if {_seconds} is less than 10: set {_seconds} to "0%{_seconds}%" if {_minutes} is less than 10: set {_minutes} to "0%{_minutes}%" if {_hours} is less than 10: set {_hours} to "0%{_hours}%" if {_days} is less than 1: return "%{_hours}%:%{_minutes}%:%{_seconds}%" if {_days} is greater than or equal to 1: return "%{_days}%:%{_hours}%:%{_minutes}%:%{_seconds}%" 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: send action bar "&6Meteoryt spadnie za &a%convertToDHMS({_int}, false)%&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
Edytowane przez jhggggOdnośnik do komentarza
https://skript.pl/temat/42627-meteoryty-3/Udostępnij na innych stronach
3 odpowiedzi na to pytanie
Rekomendowane odpowiedzi
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ą.