Skocz do zawartości
  • 0

Meteoryty #3


Usunięty#19006
 Udostępnij

Pytanie

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 jhgggg
Odnośnik do komentarza
Udostępnij na innych stronach

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Teraz, jhgggg napisał:

Witam ponownie, mam skrypt pana Helios1993 z obliczaniem czasu dodany przez pana Kormic ale chciałbym dodać ż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ż dodać ż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.

O ile rzeczywiście da się zrobić dziurę i to o wiele prościej, tak już nie rozumiem przywracania do poprzedniego stanu. Raz, że jest to poniekąd nierealistyczne (chociaż z drugiej strony bez tego twoja mapa będzie niczym ser szwajcarski), a dwa, że ciężko jest to zrobić. Dla każdego meteorytu trzeba by tworzyć odrębną listę, w której należałoby zapisywać wszystkie bloki z pierwotnego stanu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
4 minuty temu, jhgggg napisał:

W takim razie, bez przywracania stanu lecz tworzenie takiej dziury przede wszystkim jest mi potrzebne.

Dobra, dodałem tworzenie krateru o promieniu 3 kratek.

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
	set blocks in radius 3 around {_loc} to air
	remove 3 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

W linijce 6. ustawiasz promień krateru, a w 7. wysokość na jakiej ma być meteoryt. Jeżeli będzie zbytnio zakopany, zmniejszasz wartość, natomiast jeżeli będzie nad ziemią, zwiększasz tę wartość.

Odnośnik do komentarza
Udostępnij na innych stronach

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

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...