.fxy_
Użytkownik-
Ilość zawartości
62 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
1
Treść opublikowana przez .fxy_
-
@up: To nie jest literówka, działa na oba sposoby bodajże. p.s: To jest tylko tutorial, wy sobie ten kod możecie swobodnie edytować.
-
@up: Dzięki, to mnie motywuje do dalszej "pracy". :) p.s: Masz może pomysł na kolejny tutek?
-
Tak, jest napisane o tym na początku.
-
Witajcie w moim kolejnym (drugim) poradniku dotyczących gildii. Wszystkie te poradniki dotyczących gildii wychodzą po to żeby się ogólnie czegoś nauczyć pisząc skrypt na gildie. Głównym obiektem naszego zainteresowania w tym tutorialu jest wchodzenie oraz wychodzenie z terenu gildii (z intruzem). O co w tym chodzi? Chodzi w tym o to, że gdy wejdziemy lub wyjdziemy z terenu gildii pojawi nam się informacje o wchodzeniu lub wychodzeniu z danego terenu gildii. Gdy wchodzimy na teren gildii w której nie jesteśmy członkami wszystkim członkom online w tej gildii wyświetli się informacja o intruzie. Bez zbędnego gadania przejdźmy do pisania, a przed zaczęciem przypomnę tylko, że do poprawnego działania kodu potrzebny jest dodatek: WildSkript. No to zaczynamy: Zmienne z których będziemy korzystać: {gildie.%player%.step} = przetrzymywanie tagu gildii na którym się znajdujemy {gildie.%player%.step-enabled} = zapobiega tylko spamowaniu wejściem/wyjściem. {gildie.gildia.%{gildie.%player%.step}%.czlonkowie: :*} = członkowie gildii {gildie.gildia.%{gildie.%player%.step}%.tag} = tag gildii {gildie.gildia.%{gildie.%player%.step}%.nazwa} = nazwa gildii Teraz przejdźmy do kodu: 1. Na początek stworzymy sobie event "on anymove" oraz przypiszemy lokalizacje gracza do regionu w którym się znajduje: on anymove: set {_gildia} to Region.at{location of player};2. Sprawdźmy czy gracz był już na terenie jakiejś gildii, żeby to sprawdzić zmienna: {gildie.%player%.step} musi być "is set": if {gildie.%player%.step} is set:3. A teraz czas na resztę kodu od opuszczania terenu gildii: send " &8{@p} &7Opusciles teren gildii &6[%{gildie.gildia.%{gildie.%player%.step}%.tag}%] %{gildie.gildia.%{gildie.%player%.step}%.nazwa}%&7." if {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*} doesn't contain "%player%": loop {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*}: send " &8{@p} &cIntruz opuscil teren twojej gildii &7(%player%)&c." to loop-value parsed as player set {gildie.%player%.step-enabled} to false delete {gildie.%player%.step} stop4. Co to za tutorial bez omówienia kodu: - wyślij informacje do gracza o opuszczeniu terenu; - zloopuj wszystkich członków terenu gildii na której ostatnio byliśmy. - jeśli w zloopowanych członkach gildii nie znajdziemy nas; - wyślij do osób z gildii informacje o tym, że intruz opuścił teren gildii; Całe opuszczanie gildii właśnie zrobiliśmy, teraz czas na wchodzenie: 1. Sprawdzamy czy teren gildii zawiera "gildia-". Jeśli tak to usuwamy "gildia-" aby uzyskać tag gildii: if {_gildia} contain "gildia-": replace all "gildia-" with "" in {_gildia}2. Blokujemy już, żeby spamowało wejściem/wyjściem: if {gildie.%player%.step-enabled} is not set: set {gildie.%player%.step-enabled} to false if {gildie.%player%.step-enabled} is false: set {gildie.%player%.step-enabled} to true3. Teraz sprawdzamy czy nie jest przypisany teren na który weszliśmy. Jeśli tak jest to go setujemy na tag gildii: if {gildie.%player%.step} is not set: set {gildie.%player%.step} to "%{_gildia}%"4. Teraz czas na resztę kodu: send " &8{@p} &7Wszedles na teren gildii &6[%{gildie.gildia.%{gildie.%player%.step}%.tag}%] %{gildie.gildia.%{gildie.%player%.step}%.nazwa}%&7." if {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*} doesn't contain "%player%": loop {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*}: send " &8{@p} &cNa terenie twojej gildii pojawil sie intruz &7(%player%)&c." to loop-value parsed as player stop5. Oraz jego omówienie: - wyślij do gracza informacje o wejściu na teren gildii; - zloopuj wszystkich graczy w gildii z terenu na który weszliśmy; - jeśli w zloopowanych graczach nie znajdziemy nas; - wysyłamy do graczy z gildii o tym, że intruz wszedł na teren gildii; I'voila, kod napisany. Cały wygląda tak: on anymove: set {_gildia} to Region.at{location of player}; if {_gildia} is not set: if {gildie.%player%.step} is set: send " &8{@p} &7Opusciles teren gildii &6[%{gildie.gildia.%{gildie.%player%.step}%.tag}%] %{gildie.gildia.%{gildie.%player%.step}%.nazwa}%&7." if {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*} doesn't contain "%player%": loop {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*}: send " &8{@p} &cIntruz opuscil teren twojej gildii &7(%player%)&c." to loop-value parsed as player set {gildie.%player%.step-enabled} to false delete {gildie.%player%.step} stop if {_gildia} contain "gildia-": replace all "gildia-" with "" in {_gildia} if {gildie.%player%.step-enabled} is not set: set {gildie.%player%.step-enabled} to false if {gildie.%player%.step-enabled} is false: set {gildie.%player%.step-enabled} to true if {gildie.%player%.step} is not set: set {gildie.%player%.step} to "%{_gildia}%" send " &8{@p} &7Wszedles na teren gildii &6[%{gildie.gildia.%{gildie.%player%.step}%.tag}%] %{gildie.gildia.%{gildie.%player%.step}%.nazwa}%&7." if {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*} doesn't contain "%player%": loop {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*}: send " &8{@p} &cNa terenie twojej gildii pojawil sie intruz &7(%player%)&c." to loop-value parsed as player stopPozdrawiam ~.fxy_
-
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")?
-
Jest zmienna. jak budowla to nic się nie stanie, przez 1 hit tylko nieśmiertelność, a jak lawa to mało prawdopodobne, że się trafi otwarte źródło ale powinien przeżyć.
-
Dzięki wszystkim za pomoc. Temat rozwiązany, można zamknąć. :)
-
---------------------------------------------------------------------------- Witam, chciałbym wam przedstawić mój kolejny skrypt którym jest RandomTP. Sam pomysł na skypt nie jest za bardzo oryginalny lecz działanie już tak. Cały skrypt opiera się na rzeczach w Skript. Skrypt nie potrzebuje innego pluginu czy dodatkowo do działania. Autor: .fxy_ Wersja: 1.0 Kod: Kliknij, aby przejść! (raw version) ----------------------------------------------------------------------------
-
@2up: Chodzi nam o to samo? Gdy gracz jest po za cuboidem gildii to może go rozwalać?
-
@up Levi, może dlatego, że ten temat to temat z skryptem patka? p.s: Levi, chyba pomyliłeś tematy xd
-
Można prosić o dodanie ^^? nick: DragoPeeL
-
@topic: Patison, jeśli Cię to obchodzi to znalazłem spory bug w cuboidach tych w wersji 1.7. Po więcej informacji pisz na pw ;)
-
Witajcie, w tym małym ale przejrzystym tutku dotyczących głównie gildii w skrypcie dowiecie 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óry powoduje, że większa ilość wybuchów przyśpiesza licznik. Przed zaczęciem poradnika przypomnę jeszcze, że do poprawnego dział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 to sprawdzamy 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óry jest 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ępnie go 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_
-
@up: Cały czas go poprawiam ;) Głównie to go od nowa piszę bo mi nie wyszło coś a taki syf w nim, że się patrzeć nie da. Na 100% w nowej wersji ukaże się powiększanie cuboidów oraz płacenie odpowiedniej ilości diamentów za dołączenie do gildii (19,27,31) itp. mam na to wszystko przygotowany skromny algorytm.
-
@up: Wiem, że istnieje ale na aktualnym czasowym np. nie ubywa tego życia co np. sekundę, źle działa jak bym chciał stworzyć na 10 sekund i 50 procent życia.
- 499 odpowiedzi
-
- dzikoysk
- wildskript
-
(i 3 więcej)
Oznaczone tagami:
-
Tworzenie czasowego paska smoka jak to jest możliwe w BarAPI za pomocą kodu: BarAPI.setMessage(player, message, 5);to w skrypcie można to zrobić inaczej: display "Czesc!" on timed bossbar on 10 seconds with 50 percent I to spowoduje wyświetlenie paska smoka czasowego na 10 sekund na którym ubywa życie od tych 50 procent czyli połowy życia. Pobieranie aktualnych rzeczy na pasku smoka: set {_text} to text on player's bossbarset {_percent} to percent on player's bossbarset {_time} to time on player's bossbar@EDIT: Oprócz tego jeżeli jest to możliwe to można by było dodać edytowanie aktualnego paska smoka niż tworzenie dla tego gracza kolejnego: change text on player's bossbar to "Czesc, kolego!"change time on player's bossbar to 11change percent on player's bossbar to 75
- 499 odpowiedzi
-
- dzikoysk
- wildskript
-
(i 3 więcej)
Oznaczone tagami:
-
@offtopic: Cały temat stał się teraz pogawędką o tym jak skrypty czy pluginy są od siebie lepsze, a nie o to w tym chodzi. Jeżeli jakiś moderator stwierdzi, że to jest plagiat albo coś co narusza coś tam to po prostu niech zamknie ten temat to się spam skończy. Takie przezwiska i wgl. to tylko przez to, że skopiowałem marne 20 linijek czegoś co jest nie realne? Proszę was, jak macie robić z tego czegoś aferę to zapraszam do psychiatryka bo jest z wami coś nie tak.
-
@up: Nie no... podaj reszte kodów podobnych, z chęcią je zobaczę i postaram się zmienić pisząc inne kody niż ty mistrzu skryptów.
-
Ja zliczyłem 3 ;) p.s: Zjechałem na sam dół i co... widzę tylko 2 eventy takie same ŁOŁ (PO PROSTU BULLSHIT NA CAŁEGO...) to jest zbieg okoliczności, że wyglądają tak samo. Ja zostaje przy swoim. :) p.s2: Porównując to to są jedyne ok. 20-25 linijek takie same a gdzie twoje całe 93 niby?
-
Heh, ja swoje powiedziałem: nie skopiowałem od nikogo kodu, wszystko sam napisałem. Jak Patison ma taki ból dupy to mogę skrypt jeszcze raz napisać tak żeby nie przypominało to lepszej kopii jego skryptu ;) p.s: Prawda jest taka, że jak ja bym swój skrypt wstawił jako pierwszy a patison po mnie to ja bym mógł go o to samo posądzać, ale taki szczegół.
-
@up: Ja nie udaję, z twojego kodu nic nie patrzyłem bo i tak jest w nim masło maślane i mało co można go ogarnąć, a kod tych gildii pisałem sam i wiem o tym. To, że ty masz jakąś super strone od sprawdzania podobieństw kodu to już twoja sprawa, ja będę cały czas sądził, że kod tych gildii sam pisałem, coś jeszcze?
-
@up: Doceniam, a to że on ci tyle pokazał to nie znaczy że kopiuje tylko podobnie wygląda. Kod pisałem sam, udowodnić ci to jakoś inaczej? Może mam go inaczej napisać żebyś był zadowolony...?
-
Napisz co, bo cały kod to moja wiedza i pomoc docem WildSkripta.
-
Dzięki, do zamknięcia! //Zamykam na prośbę autora ~ tropereks
