.fxy_ 24 Opublikowano 2 sierpnia 2014 Udostępnij Opublikowano 2 sierpnia 2014 (edytowane) Witajcie, w tym małym ale przejrzystym tutku dotyczących głównie gildii w skrypciedowiecie się jak blokować budowanie po wybuchu tnt lub creepera przez np. 60 sekund.Sam owego kodu używam w nowych gildiach które piszę a w tych aktualnych jest bug którypowoduje, że większa ilość wybuchów przyśpiesza licznik. Przed zaczęciem poradnika przypomnę jeszcze, że do poprawnegodziałania kodu potrzebny jest dodatek: WildSkript. No więc.. od czego zaczynamy: Tworzymy event "on explode" oraz pobieramy region przypisując mu lokalizacje wybuchu:on explode: set {_gildia} to Region.at{location of event-location};Jeśli się da to można jeszcze tak (nie sprawdzałem):on explode: set {_gildia} to Region.at{event-location};Teraz sprawdzamy czy istnieje region w tej lokalizacji wybuchu "{_gildia}", jeśli tak tosprawdzamy czy nazwa tego regionu zawiera "gildia-" (moje nazwy cuboidów to "gildia-%tag gildii%"): if {_gildia} is not set: stop if {_gildia} contain "gildia-":Jeśli się okaże, że zawiera to usuwamy sobie to "gildia-" żeby uzyskać tag gildii: replace all "gildia-" with "" in {_gildia} Dla dodatku ja posiadam środek gildii czyli w tym przypadku "sponge" któryjest mi do czegoś potrzebny i nie chce aby on też wybuchł: loop all blocks in radius 5 around event-location: if loop-block is sponge: wait 0.1 second set loop-block to spongeDo poprawnego użycia będą nam potrzebne 2 zmienne:{gildie.gildia.%{_gildia}%.explode-enabled}Która zapobiega zbugowaniu licznika oraz:{gildie.gildia.%{_gildia}%.explode}Która przetrzymuje liczbę sekund przez które nie możemy budować. 1 zmienną nigdzie nie setujemy czyli jest "not set", na początek ją zsetujemy na "false": if {gildie.gildia.%{_gildia}%.explode-enabled} is not set: set {gildie.gildia.%{_gildia}%.explode-enabled} to falseA następnie tworzymy cały licznik. Ja wkleję cały kod na ten licznik a następniego omówimy: if {gildie.gildia.%{_gildia}%.explode-enabled} is false: set {gildie.gildia.%{_gildia}%.explode-enabled} to true set {gildie.gildia.%{_gildia}%.explode} to 60 loop {gildie.gildia.%{_gildia}%.czlonkowie::*}: send " &8{@p} &cNa terenie twojej gildii wybuchlo TNT. Nie mozesz od teraz na nim budowac przez &760 sekund&c." to loop-value parsed as player while {gildie.gildia.%{_gildia}%.explode} is greater than 0: wait 1 second subtract 1 from {gildie.gildia.%{_gildia}%.explode} set {gildie.gildia.%{_gildia}%.explode-enabled} to false stopTłumaczenia będą linijka po linijce: - jeśli {gildie.gildia.%{_gildia}%.explode-enabled} jest ustawiona na false;- ustaw {gildie.gildia.%{_gildia}%.explode-enabled} na true (żeby nie można było zbugować licznika);- ustaw {gildie.gildia.%{_gildia}%.explode} (licznik) na 60;- zloopuj członków gildii na której wybuchło;- wyślij do nich wiadomość z informacją;- pętla while będzie wykonywana dopóki {gildie.gildia.%{_gildia}%.explode} (licznik) jest większy niż 0;- czeka 1 sekunde;- zabiera 1 z {gildie.gildia.%{_gildia}%.explode} (licznika);- po pętli while ustawia {gildie.gildia.%{_gildia}%.explode-enabled} na false;- stop; GOTOWE, licznik gotowy, cały kod wygląda następująco:on explode: set {_gildia} to Region.at{location of event-location}; if {_gildia} is not set: stop if {_gildia} contain "gildia-": replace all "gildia-" with "" in {_gildia} loop all blocks in radius 5 around event-location: if loop-block is sponge: wait 0.1 second set loop-block to sponge if {gildie.gildia.%{_gildia}%.explode-enabled} is not set: set {gildie.gildia.%{_gildia}%.explode-enabled} to false if {gildie.gildia.%{_gildia}%.explode-enabled} is false: set {gildie.gildia.%{_gildia}%.explode-enabled} to true set {gildie.gildia.%{_gildia}%.explode} to 60 loop {gildie.gildia.%{_gildia}%.czlonkowie::*}: send " &8{@p} &cNa terenie twojej gildii wybuchlo TNT. Nie mozesz od teraz na nim budowac przez &760 sekund&c." to loop-value parsed as player while {gildie.gildia.%{_gildia}%.explode} is greater than 0: wait 1 second subtract 1 from {gildie.gildia.%{_gildia}%.explode} set {gildie.gildia.%{_gildia}%.explode-enabled} to false stopAle poczekaj... to przecież tylko licznik. Teraz czas na blokowanie budowania:on place: set {_gildia} to Region.at{location of player}; if {_gildia} is not set: stop if {_gildia} contain "gildia-": replace all "gildia-" with "" in {_gildia} if {gildie.%player%.tag} isn't "%{_gildia}%": cancel event send " &8{@p} &cNie mozesz klasc blokow na terenie innej gildii!" stop else: if {gildie.gildia.%{gildie.%player%.tag}%.explode} is greater than 0: cancel event send " &8{@p} &cNa terenie gildii wybuchlo TNT. Nie mozesz na nim budowac jeszcze przez &7%{gildie.gildia.%{gildie.%player%.tag}%.explode}% sekund&c." stopPierwsze 6 linijek (nie licząc eventu) są takie same, nie będę ich omawiał. Teraz czas na omawianie reszty: - Jesli tag gildii gracza nie będzie taki sam jak tag gildii cuboidu;- anuluje event;- wysyła wiadomość informacyjną;- stop; - jeśli tag gildii gracza będzie jednak taki sam jak tag gildii cuboidu;- jeśli {gildie.gildia.%{gildie.%player%.tag}%.explode} (licznik) będzie większy niż 0;- anuluje event;- wysyła wiadomość informacyjną;- stop; I tak o to napisaliśmy wybuchanie tnt na terenie gildii. Zmienne wykorzystane w tutorialu: - {gildie.%player%.tag} = tag gildii gracza;- {gildie.gildia.%{gildie.%player%.tag}%.explode} = licznik;- {gildie.gildia.%{_gildia}%.explode-enabled} = zapobiega zbugowaniu licznika {_gildia} = tag gildii. Pozdrawiam ~.fxy_ Edytowane 2 sierpnia 2014 przez .fxy_ franio3321 1 Odnośnik do komentarza https://skript.pl/temat/1971-wildskript-gildie-brak-mo%C5%BCliwo%C5%9Bci-budowania-po-wybuchu-przez-60-sekund-wildskript/ Udostępnij na innych stronach Więcej opcji udostępniania...
Nieaktywny Opublikowano 2 sierpnia 2014 Udostępnij Opublikowano 2 sierpnia 2014 Dobry TuT. Warty Like. Odnośnik do komentarza https://skript.pl/temat/1971-wildskript-gildie-brak-mo%C5%BCliwo%C5%9Bci-budowania-po-wybuchu-przez-60-sekund-wildskript/#findComment-16858 Udostępnij na innych stronach Więcej opcji udostępniania...
.fxy_ 24 Opublikowano 2 sierpnia 2014 Autor Udostępnij Opublikowano 2 sierpnia 2014 Dzięki za opinie. ;) @offtopic: Chcielibyście poradnik dot. wchodzenia i wychodzenia z cuboidów gildyjnych (chodzi o wiadomosci: "Wszedłeś na teren gildii x", "Opuściłeś teren gildii x", "Na terenie twojej gildii pojawił się intruz (<gracz>)", "Intruz opuścił teren twojej gildii")? Odnośnik do komentarza https://skript.pl/temat/1971-wildskript-gildie-brak-mo%C5%BCliwo%C5%9Bci-budowania-po-wybuchu-przez-60-sekund-wildskript/#findComment-16861 Udostępnij na innych stronach Więcej opcji udostępniania...
Dinekkk 134 Opublikowano 2 sierpnia 2014 Udostępnij Opublikowano 2 sierpnia 2014 Przyjemnie sie czyta ten tut, wszystko ładne ,tylko dodaj opisy zmiennych ;) @UP porządnych poradników nigdy za wiele ;) Odnośnik do komentarza https://skript.pl/temat/1971-wildskript-gildie-brak-mo%C5%BCliwo%C5%9Bci-budowania-po-wybuchu-przez-60-sekund-wildskript/#findComment-16862 Udostępnij na innych stronach Więcej opcji udostępniania...
Adamek 182 Opublikowano 5 sierpnia 2014 Udostępnij Opublikowano 5 sierpnia 2014 Bardzo fajny tutorial, właśnie dodaje to do pewnego skryptu i mam nadzieje że zadziała :3 Pozdrawiam [-: Odnośnik do komentarza https://skript.pl/temat/1971-wildskript-gildie-brak-mo%C5%BCliwo%C5%9Bci-budowania-po-wybuchu-przez-60-sekund-wildskript/#findComment-17439 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi