shaqupl1 6 Opublikowano 20 stycznia 2021 Udostępnij Opublikowano 20 stycznia 2021 Da się odczytać jakoś jakie są flagi na region, na który wszedł gracz? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1 824 Opublikowano 20 stycznia 2021 Udostępnij Opublikowano 20 stycznia 2021 1 minutę temu, shaqupl1 napisał: Da się odczytać jakoś jakie są flagi na region, na który wszedł gracz? Skript nie udostępnia takiego wyrażenia. Jedyny sposób to odczyt z pliku .yml danego regionu w folderze plugins/WorldGuard/worlds/twój_świat. Mógłbyś to zrobić przykładowo poprzez dodatek skript-yaml. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 CoFFeIN04 605 Opublikowano 20 stycznia 2021 Udostępnij Opublikowano 20 stycznia 2021 (edytowane) Jedyne coś takiego znalazłem Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! jak widać wymaga dodatku SkStuff edit: na SkUnity ktoś dodał taki przykład: command /flagtest: trigger: set {_dad} to "pvp" parsed as worldguard flag set {_dad2} to "mainlobby" parsed as a region send "%wg flag {_dad} of {_dad2}%" Edytowane 20 stycznia 2021 przez CoFFeIN04 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 shaqupl1 6 Opublikowano 20 stycznia 2021 Autor Udostępnij Opublikowano 20 stycznia 2021 1 minutę temu, Kormic napisał: Skript nie udostępnia takiego wyrażenia. Jedyny sposób to odczyt z pliku .yml danego regionu w folderze plugins/WorldGuard/worlds/twój_świat. Mógłbyś to zrobić przykładowo poprzez dodatek skript-yaml. Potrzebuje to zrobić na wersji 1.16.4 a skript-yaml na tej wersji nie działa Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1 824 Opublikowano 20 stycznia 2021 Udostępnij Opublikowano 20 stycznia 2021 Teraz, shaqupl1 napisał: Potrzebuje to zrobić na wersji 1.16.4 a skript-yaml na tej wersji nie działa W takim wypadku jeszcze są trzy dodatki do YAMLa w Skript. Mam tutaj na myśli: SkUtilities SkQuery Skellett Z tych trzech najlepszym wyborem będzie pierwszy. Teoretycznie powinien zadziałać. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 CoFFeIN04 605 Opublikowano 20 stycznia 2021 Udostępnij Opublikowano 20 stycznia 2021 7 minut temu, shaqupl1 napisał: Potrzebuje to zrobić na wersji 1.16.4 SkStuff na 1.16.4 istnieje: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 shaqupl1 6 Opublikowano 20 stycznia 2021 Autor Udostępnij Opublikowano 20 stycznia 2021 3 minuty temu, CoFFeIN04 napisał: SkStuff na 1.16.4 istnieje: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Napisałby ktoś kawałek skripta jak to odczytaćza pomocą yamla z worldguarda za pomocą tego SkStuff? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 CoFFeIN04 605 Opublikowano 20 stycznia 2021 Udostępnij Opublikowano 20 stycznia 2021 Teraz, shaqupl1 napisał: SkStuff SkStuff nie jest do YAMLa, ma składnie do sprawdzania flag: 15 minut temu, CoFFeIN04 napisał: command /flagtest: trigger: set {_dad} to "pvp" parsed as worldguard flag set {_dad2} to "mainlobby" parsed as a region send "%wg flag {_dad} of {_dad2}%" Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1 824 Opublikowano 20 stycznia 2021 Udostępnij Opublikowano 20 stycznia 2021 (edytowane) 12 minut temu, shaqupl1 napisał: Napisałby ktoś kawałek skripta jak to odczytaćza pomocą yamla z worldguarda za pomocą tego SkStuff? W tym dodatku nie ma żadnego YAMLa. Tam masz po prostu do podania flagę, przykład masz wyżej. EDIT: Uważam, że mimo wszystko nie rozwiązuje to problemu, gdyż pozwala to na sprawdzenie tylko jednej flagi. Lepiej jest użyć chociażby SkQuery w celu przechwycenia wszystkich flag. set {_flags::*} to yaml nodes "regions.twojRegion.flags" from "../../WorldGuard/worlds/twojSwiat/regions.yml" send "%{_flags::*}%" Zamień jedynie "twojRegion" na nazwę twojego regionu oraz "twojSwiat" na nazwę twojego świata. Jeżeli podana ścieżka do pliku nie zadziała, spróbuj: from "plugins/WorldGuard/worlds/twojSwiat/regions.yml" Edytowane 20 stycznia 2021 przez Kormic Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 shaqupl1 6 Opublikowano 21 stycznia 2021 Autor Udostępnij Opublikowano 21 stycznia 2021 41 minut temu, Kormic napisał: W tym dodatku nie ma żadnego YAMLa. Tam masz po prostu do podania flagę, przykład masz wyżej. EDIT: Uważam, że mimo wszystko nie rozwiązuje to problemu, gdyż pozwala to na sprawdzenie tylko jednej flagi. Lepiej jest użyć chociażby SkQuery w celu przechwycenia wszystkich flag. set {_flags::*} to yaml nodes "regions.twojRegion.flags" from "../../WorldGuard/worlds/twojSwiat/regions.yml" send "%{_flags::*}%" Zamień jedynie "twojRegion" na nazwę twojego regionu oraz "twojSwiat" na nazwę twojego świata. Jeżeli podana ścieżka do pliku nie zadziała, spróbuj: from "plugins/WorldGuard/worlds/twojSwiat/regions.yml" command /flagtest: trigger: set {_flags::*} to yaml nodes "regions.spawn.flags" from "../../WorldGuard/worlds/world/regions.yml" send "%{_flags::*}%" Po użyciu komendy zwraca <none> Generalnie moim problem jest to że gracz może dowolnie zmieniać flagę "-g NONMEMBER entry" na false lub true tak żeby nikt nie mógł wchodzić na dany region. Gdy jakiś gracz spoza działki wejdzie na region a właściciel działki zablokuje na nią wchodzenie poprzez zmianę flagi, gracz który wszedł utyka w miejscu i czasami zostaje wyrzucony za fly. Gracze wykorzystują to do zwabienia w pułapkę i zabicia. Może jest jakiś inny sposób aby rozwiązać mój problem. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1 824 Opublikowano 21 stycznia 2021 Udostępnij Opublikowano 21 stycznia 2021 1 minutę temu, shaqupl1 napisał: Po użyciu komendy zwraca <none> Czy wypróbowałeś drugą podaną przeze mnie ścieżkę? Zgaduję, że nie. 2 minuty temu, shaqupl1 napisał: Generalnie moim problem jest to że gracz może dowolnie zmieniać flagę "-g NONMEMBER entry" na false lub true tak żeby nikt nie mógł wchodzić na dany region. A dlaczego zwykły gracz może to zmieniać? 2 minuty temu, shaqupl1 napisał: Gdy jakiś gracz spoza działki wejdzie na region a właściciel działki zablokuje na nią wchodzenie poprzez zmianę flagi, gracz który wszedł utyka w miejscu i czasami zostaje wyrzucony za fly. Gracze wykorzystują to do zwabienia w pułapkę i zabicia. Może jest jakiś inny sposób aby rozwiązać mój problem. Jakie znowu działki? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 shaqupl1 6 Opublikowano 21 stycznia 2021 Autor Udostępnij Opublikowano 21 stycznia 2021 1 minutę temu, Kormic napisał: Czy wypróbowałeś drugą podaną przeze mnie ścieżkę? Zgaduję, że nie. A dlaczego zwykły gracz może to zmieniać? Jakie znowu działki? Działki to regiony z worldguarda, właściciel działki może zmieniać kilka flag takich jak pvp czy entry (możliwość wejścia na działkę przez graczy nie dodanych do regionu) po tym jak ktoś obcy wejdzie na działkę a właściciel zablokuje wchodzenie podczas gdy osoba się na niej znajduje, nie może ona się ruszać. Próbuje jakoś temu zapobiec. Moim pomysłem było to aby podczas zmieniania flagi entry na false wszyscy gracze niedodani na działkę zostali teleportowani np na spawn. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1 824 Opublikowano 21 stycznia 2021 Udostępnij Opublikowano 21 stycznia 2021 Teraz, shaqupl1 napisał: Działki to regiony z worldguarda, właściciel działki może zmieniać kilka flag takich jak pvp czy entry (możliwość wejścia na działkę przez graczy nie dodanych do regionu) po tym jak ktoś obcy wejdzie na działkę a właściciel zablokuje wchodzenie podczas gdy osoba się na niej znajduje, nie może ona się ruszać. Próbuje jakoś temu zapobiec. Moim pomysłem było to aby podczas zmieniania flagi entry na false wszyscy gracze niedodani na działkę zostali teleportowani np na spawn. Mógłbyś użyć w tym celu eventu 'on command' i zapętlałbyś wszystkich graczy. Następnie sprawdzałbyś czy zapętlany gracz jest w tym regionie. Jeżeli tak, dalej sprawdzasz czy lista 'members of [twój region]' zawiera tego gracza. Jeżeli nie zawiera, teleportujesz go na spawn. Będzie z tym niestety trochę roboty, gdyż będziesz musiał sprawdzać również argumenty podane w komendzie. command is "rg" or "region" # Sprawdzamy pierwsze słowo w komendzie set {_args::*} to arguments # Ustawiamy do listy argumenty podane w komendzie {_args::1} is "flag" # Sprawdzamy czy argument nr 1 to "flag" loop all regions in world "world": # Zapętlamy wszystkie regiony w świecie "world" (podejrzewam, że nie ma takiej listy, ale raczej rozumiesz co mam na myśli; można opcjonalnie zobaczyć dodatek SharpSK, który dodaje taką listę) set {_r::*} to ("%loop-value%") split at " " # loop-value zawiera "%nazwa regionu% in world %nazwa swiata%" i chcemy przechwycić jedynie pierwsze słowo, czyli nazwę regionu add {_r::1} to {_rgs::*} # Dodajemy pierwsze słowo do listy {_rgs::*} contains {_args::2} # Sprawdzamy czy lista zawierająca nazwy wszystkich regionów w tym świecie zawiera również nazwę regionu podaną w argumencie nr 2 # I dalsze sprawdzanie argumentów... Jak samemu widzisz, masa roboty, gdyż trzeba sprawdzać czy gracz w ogóle dobrze wykonał komendę. Najlepiej byłoby użyć pluginu na działki (PlotSquared, ProtectionStones), który eliminuje tego typu problemy. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 shaqupl1 6 Opublikowano 21 stycznia 2021 Autor Udostępnij Opublikowano 21 stycznia 2021 1 godzinę temu, CoFFeIN04 napisał: Jedyne coś takiego znalazłem Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! jak widać wymaga dodatku SkStuff edit: na SkUnity ktoś dodał taki przykład: command /flagtest: trigger: set {_dad} to "pvp" parsed as worldguard flag set {_dad2} to "mainlobby" parsed as a region send "%wg flag {_dad} of {_dad2}%" [01:33:14 ERROR]: Can't understand this expression: '"pvp" parsed as worldguard flag' (dzialki.sk, line 75: set {_dad} to "pvp" parsed as worldguard flag') [01:33:14 ERROR]: Can't understand this expression: wg flag {_dad} of {_dad2} (dzialki.sk, line 77: send "%wg flag {_dad} of {_dad2}%"') [01:33:14 INFO]: [Skript] Encountered 2 errors while reloading dzialki.sk! Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 shaqupl1 6 Opublikowano 21 stycznia 2021 Autor Udostępnij Opublikowano 21 stycznia 2021 4 minuty temu, Kormic napisał: Jak samemu widzisz, masa roboty, gdyż trzeba sprawdzać czy gracz w ogóle dobrze wykonał komendę. Najlepiej byłoby użyć pluginu na działki (PlotSquared, ProtectionStones), który eliminuje tego typu problemy. Właśnie widzę ile roboty. Co masz na myśli z pluginem ponieważ używam pluginu ProtectionStones Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1 824 Opublikowano 21 stycznia 2021 Udostępnij Opublikowano 21 stycznia 2021 Teraz, shaqupl1 napisał: Właśnie widzę ile roboty. Co masz na myśli z pluginem ponieważ używam pluginu ProtectionStones Zdawało mi się, że ProtectionStones pozbywa się tego problemu. Którego ProtectionStones używasz? Pytam, gdyż jest kilka jego osobnych wersji. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 shaqupl1 6 Opublikowano 21 stycznia 2021 Autor Udostępnij Opublikowano 21 stycznia 2021 1 minutę temu, Kormic napisał: Zdawało mi się, że ProtectionStones pozbywa się tego problemu. Którego ProtectionStones używasz? Pytam, gdyż jest kilka jego osobnych wersji. [01:43:45 INFO]: ProtectionStones: 2.7.7 [01:43:45 INFO]: Developers: [EspiDev] [01:43:45 INFO]: Bukkit: git-Paper-393 (MC: 1.16.4) [01:43:45 INFO]: WG: 7.0.4+f7ff984 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1 824 Opublikowano 21 stycznia 2021 Udostępnij Opublikowano 21 stycznia 2021 2 minuty temu, shaqupl1 napisał: [01:43:45 INFO]: ProtectionStones: 2.7.7 [01:43:45 INFO]: Developers: [EspiDev] [01:43:45 INFO]: Bukkit: git-Paper-393 (MC: 1.16.4) [01:43:45 INFO]: WG: 7.0.4+f7ff984 Czyli używasz najnowszej. Sprawdzałeś czy aby przypadkiem nie należy ustawić czegoś, co teleportuje gracza przy zablokowaniu go w regionie? Jeżeli jesteś pewien, że nie ma nic takiego, możesz wejść na ich Discorda i zapytać jak rozwiązać ten problem (link na stronie pluginu). Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 luk4sMC 10 Opublikowano 14 lutego 2021 Udostępnij Opublikowano 14 lutego 2021 (edytowane) Fajnie i bardzo praktyczne. Chodzisz po mapie i sprawdzasz wszystkie flagi. Cytat właściciel działki może zmieniać kilka flag takich jak pvp czy entry /lp user user|group permission set worldguard.region.flag.flags.entry false #? /lp user St4sPro permission set worldguard.region.flag.flags.pvp false #? Pytanie czemu może? Edytowane 14 lutego 2021 przez luk4sMC Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
shaqupl1 6
Da się odczytać jakoś jakie są flagi na region, na który wszedł gracz?
Odnośnik do komentarza
Udostępnij na innych stronach
18 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ą.