_AvaX_ 294 Opublikowano 4 lutego 2017 Udostępnij Opublikowano 4 lutego 2017 Witam. Ostatnio natrafiłem na kilka skryptów,które mają w sobie tereny. Tereny najczęściej były zrobione na prostej zasadnie WG (WorldGuard) i WE (WorldEdit), wszystko fajnie i wszystko działa. Wpiszemy komendę "/rg list" i można się załamać.Tego typu regiony są bardzo obciążające serwer i nawet po usunięciu skryptu zostają. W tym poradniku chciałbym Wam przedstawić jak uniknąć tego rozwiązania. Jak działają regiony?Regiony którymi się dzisiaj zajmiemy będą oparte na zmiennych oraz chunk'ach (Chunk?). Pewnie w tym momencie bardziej zaawansowana grupa osób już wie o co chodzi. Tzw. Chunk to obszar mapy o konkretnym oznaczeniu (tak jak koordynaty) np. 14,24 of world Do każdego z nich można więc podpisać wartość w zmiennej. Zapis wygląda następująco, set {chunk::%chunk at player%} to player Skript czyta to w taki sposób chunk (14,24) of world = Quaczi Jak stworzyć region dla gracza?Sekcja wyżej bardzo dużo tłumaczy, jeżeli ją pominąłeś przeczytaj ją. Zacznijmy od podpisania gracza do chunka. set {chunk::%chunk at player%} to player Mamy już zapisanego gracza jako właściciela tego obszaru, teraz już tylko blokady. on break: if {chunk::%chunk at event-block%} is set: # Jezeli ten chunk ma wlasciciela if {chunk::%chunk at event-block%} is not player: # Jezeli gracz nie jest wlascicielem cancel event # Przerwij wydarzenie send "&cNie jestes wlascicielem tego obszaru" Takim właśnie prostym kawałkiem kodu stworzyliśmy region 16x16 na którym niszczyć może tylko właściciel. Identycznie tworzymy blokadę budowania. Jak można to jeszcze wykorzystać takie regiony?W temacie napisałem "mapa" i taką też mamy możliwość, jak ma wyglądać taka mapa, jak ma działać i co najważniejsze jak ją zrobić? Mapa będzie wyświetlana na czacie co nie jest tutaj jedyną możliwością bo jednak posługujemy się zmiennymi czyli podstawą Skript'a. Spoiler Jak zrobić taką mapę? set {_mapX} to 11 set {_mapY} to 6 set {_m} to "" loop 13 times: loop 23 times: set {_x} to {_mapX} * 16 set {_y} to {_mapY} * 16 set {_chunk} to chunk at block {_y} blocks north {_x} blocks west of player if {qg::mapa::%{_chunk}%} isn't set: set {_result} to "" if {qg::mapa::%{_chunk}%} is "DZICZ": set {_result} to "" else: set {_result} to {qg::mapa::%{_chunk}%} if {_chunk} is chunk at player: set {_m} to "%{_m}%&2█" else if {_result} is {qg::mapa::%{_chunk}%}: if {_result} is {qg::player::%player%::tag}: set {_m} to "%{_m}%&a█" else: set {_m} to "%{_m}%&c█" else if {_result} is "STREFA BEZPIECZNA": set {_m} to "%{_m}%&b█" else if {_result} is "WOJNA": set {_m} to "%{_m}%&4█" else if {_result} is "": set {_m} to "%{_m}%&7█" else: set {_m} to "%{_m}%&c█" add -1 to {_mapX} message "%{_m}%" to player set {_m} to "" add -1 to {_mapY} set {_mapX} to 11 send "&eLEGENDA:" to player send "&2█ &8- &2Ty &7█ &8- &7Wolny teren &a█ &8- &aTwoja gildia " to player send "&c█ &8- &cInne gildie &b█ &8- &bSTREFA BEZPIECZNA &4█ &8- &4WOJNA" to player #Kawalek kodu mojego skryptu na gildie Zacznijmy od samego działania. Zmienne tymczasowe {_mapX} oraz {_mapY} służą do określenia położenia gracza tak aby był on na środku mapki. Pętle 13 oraz 23 to rozmiar mapy. Dzięki temu fragmentowi możemy dalej pozostać na środku oraz określić który chunk jest obok nas i jeszcze dalej w taki sposób żeby ich położenie na mapie było odpowiednie do lokalizacji w grze. set {_x} to {_mapX} * 16 set {_y} to {_mapY} * 16 set {_chunk} to chunk at block {_y} blocks north {_x} blocks west of player Znowuż ten fragment if {_chunk} is chunk at player: set {_m} to "%{_m}%&2█" Koloruje kratkę na której jesteśmy czyli tak jak mówiłem, środkową. Oczywiście kolejna część jest zrozumiała, tak mi się przynajmniej wydaje. else if {_result} is {qg::mapa::%{_chunk}%}: if {_result} is {qg::player::%player%::tag}: set {_m} to "%{_m}%&a█" else: set {_m} to "%{_m}%&c█" else if {_result} is "STREFA BEZPIECZNA": set {_m} to "%{_m}%&b█" else if {_result} is "WOJNA": set {_m} to "%{_m}%&4█" else if {_result} is "": set {_m} to "%{_m}%&7█" else: set {_m} to "%{_m}%&c█" add -1 of {_mapY} Pewnie wiadomo, odpowiada za dobranie kolorów mapy i przejście do następnego chunka (ostatnia linijka). Ostatnia już część,która jest wymagana to: message "%{_m}%" to player set {_m} to "" add -1 to {_mapY} set {_mapX} to 11 Dajemy w niej znać,że skrypt ma wysłać już naszą pokolorowaną wiadomość do gracza, zrestartować ją i ustawić następny chunk zachowując informacje,iż gracz ma pozostać na środku. Dziękuję za uwagę liczę na + z Waszej strony oraz uwagi czy pytania. Kraftowy, KrejzolekPRO, Rejszpat i 3 innych 3 3 Odnośnik do komentarza https://skript.pl/temat/16235-skquery-regiony-osobny-system-region%C3%B3w-mapa/ Udostępnij na innych stronach Więcej opcji udostępniania...
KrejzolekPRO 600 Opublikowano 4 lutego 2017 Udostępnij Opublikowano 4 lutego 2017 Problemem jest, gdy chce stworzyć teren gildii. np. 20x20. Rejszpat 1 Odnośnik do komentarza https://skript.pl/temat/16235-skquery-regiony-osobny-system-region%C3%B3w-mapa/#findComment-110571 Udostępnij na innych stronach Więcej opcji udostępniania...
Kraftowy 41 Opublikowano 4 lutego 2017 Udostępnij Opublikowano 4 lutego 2017 Bardzo fajny i przydatny poradnik, co tu więcej pisać ;D (No chyba że pytanie @KrejzolekPRO takie jak, mógłbyś to opisać tutaj jeszcze) Odnośnik do komentarza https://skript.pl/temat/16235-skquery-regiony-osobny-system-region%C3%B3w-mapa/#findComment-110576 Udostępnij na innych stronach Więcej opcji udostępniania...
_AvaX_ 294 Opublikowano 4 lutego 2017 Autor Udostępnij Opublikowano 4 lutego 2017 19 minut temu, KrejzolekPRO napisał: Problemem jest, gdy chce stworzyć teren gildii. np. 20x20. Powiedzmy, że coś za coś Odnośnik do komentarza https://skript.pl/temat/16235-skquery-regiony-osobny-system-region%C3%B3w-mapa/#findComment-110577 Udostępnij na innych stronach Więcej opcji udostępniania...
HeezQ 231 Opublikowano 4 lutego 2017 Udostępnij Opublikowano 4 lutego 2017 Świetny, ciekawy poradnik, sporo się przez niego nauczyłem ? Możesz robić takich więcej ? Odnośnik do komentarza https://skript.pl/temat/16235-skquery-regiony-osobny-system-region%C3%B3w-mapa/#findComment-110649 Udostępnij na innych stronach Więcej opcji udostępniania...
Joker1337 1 Opublikowano 19 marca 2018 Udostępnij Opublikowano 19 marca 2018 Jest możliwość stworzenia terenu 25 na 25 ??? Odnośnik do komentarza https://skript.pl/temat/16235-skquery-regiony-osobny-system-region%C3%B3w-mapa/#findComment-172708 Udostępnij na innych stronach Więcej opcji udostępniania...
LloydPL 436 Opublikowano 19 marca 2018 Udostępnij Opublikowano 19 marca 2018 @Joker1337 Jak się opiera na chunkach które są 16x16 to jak mają być 25x25? pomyśl... sfuty 1 Odnośnik do komentarza https://skript.pl/temat/16235-skquery-regiony-osobny-system-region%C3%B3w-mapa/#findComment-172716 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi