Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 01/02/21 uwzględniając wszystkie działy

  1. PanMaruda

    DROP ZE STONE

    skąd ja wiedziałem że tak będzie... Nie wiem jak inni (czyt. Kormic), ale ja nie biorę się za pisanie czegokolwiek na tą wersję, bo po pierwsze - jest stara i niewspierana, a po drugie - jest stara i niewspierana. Takie zlecenie to byłby strzał w kolano. Dziękuję, tyle ode mnie.
    2 punkty
  2. piratjsk

    Skript - pętle

    Poradnik przedstawiający pętle w Skript. Skript - pętle Poznajemy pętle, ich rodzaje i przykładowe zastosowania. I. Wstęp Czym są pętle? Jak je dzielimy? Pętle są wyrażeniami, dzięki którym możemy zapętlić w dany sposób/daną ilość razy jakiś kod. Pętle dzielimy na dwie grupy: - pętle skończone (wykonujące określoną ilość razy dany kod) - pętle nieskończone (wykonujące dany kod przez cały czas działania skryptu) wyjątkiem jest pętla while, która może być skończona lub nieskończona. II. Pętle skończone Czym się charakteryzują? Do czego można ich użyć? Pętle skończone można podzielić na dwie grupy: - pętle ze zdefiniowaną ilością zapętleń: loop 13 times: # kod loop {zmienna} times: # kod loop 4*5+2^30 times: # kod W pętlach tych możemy się odwoływać do zmiennej loop-number, która przechowuje numer zapętlenia. - pętle zapętlające daną grupę obiektów loop {lista::*}: # kod loop all players: # kod loop all sheeps in player's world: # kod loop players in radius 4 of player: # kod loop inventory of clicked block: # kod loop inventory of arg: # kod loop worlds: # kod loop all dropped items: # kod Każda z tych pętli może zawierać inne zmienne: po zapętleniu listy zmiennych: loop-index - nazwa zmiennej, loop-value - wartość zmiennej, po zapętleniu graczy: loop-player - gracz, po zapętleniu owiec: loop-sheep (lub loop-entity) - owca, po zapętleniu ekwipunku: loop-item - przedmiot, po zapętleniu światów: loop-world - świat. Pętle te wykonają dany kod dla każdego obiektu z zapętlonej grupy. Pętle w pętli Jeśli tworzymy kilka pętli w sobie nawzajem i posiadają one zmienne o takich typach, aby się do nich odwołać musimy zdefiniować numer pętli w formacie: nazwa_zmiennej-numer_pętli np. loop-number-2. loop 30 times: loop 4 times: loop-number-1 is 3: send "3 zapętlenie pierwszej pętli, wyświetli się 4 razy" loop-number-2 is 4: send "4 zapętlenie drugiej pętli, wyświetli się 30 razy" loop-number-1 is 30: send "ostatnie zapetlenie pierwszej pętli, wyświetli się 4 razy" III. Pętle nieskończone Czym się charakteryzują? Do czego można ich użyć? Pętle nieskończone, jak sama nazwa wskazuje, wykonują dany kod nieograniczoną ilość razy. Jako jedyne stanowią samodzielne jednostki (nie muszą być zawarte w komendach, zdarzeniach). every <czas>: # kod every 1 tick: # kod every 5 hours: # kod Dany kod będzie wykonywany w nieskończoność co zdefiniowany czas np. co 5 godzin. IV. Pętla while Czym się charakteryzuje? Do czego można jej użyć? Ciekawą pętlą jest pętla while, gdyż może być zarówno skończona jaki i nieskończona. while <warunek>: # kod Słownie można opisać ją tak: dopóki warunek jest spełniony wykonuje dany kod. while 1 is 1: # kod Powyższa pętla będzie wykonywała dany kod w nieskończoność. W praktyce jednak nie ma sensu tworzyć nieskończonej pętli while gdyż będzie ona działała tak samo jak pętle every. Jedyną różnicą jest ta, że jeśli kod w pętli nie będzie zawierał polecenia wait to nieskończona pętla while "zlaguje" serwer gdyż będzie on bez najmniejszej przerwy wykonywał kod w pętli "nie mając czasu" na żadne inne działanie. Tak więc tworzenie nieskończonych pętli while - niewskazane! Przy używaniu tej pętli warto zastosować zabezpieczenie przed nieskończonością, mianowicie: set {_limit} to <limit powtorzen> while <warunek>: # kod remove 1 from {_limit} {_limit} is 0: exit loop V. Przykłady Przykładowe zastosowania różnych pętli. - Pętla every 5 seconds oraz zapętlenie wszystkich graczy na serwerze: every 5 seconds: loop all players: {vampire.%loop-player%} is true sunlight level at the loop-player is greater than 10 ignite the loop-player for 5 seconds Działanie: jeśli zmienna {vampire.%gracz%} ma wartość true i gracz przebywa w słońcu - będzie się palił. - Zapętlenie wszystkich graczy: command /ac [<text>]: trigger: loop all players: loop-player has permission "jestem.adminem": send arg to loop-player Działanie: wysyła wiadomość do wszystkich graczy posiadających uprawnienie jestem.adminem. - Pętla while: on right click on sign: line 1 is "[sklep]" line 2 constains "S" and "K" and ":" set {_i} to 1 while {_k} or {_s} is not set: line 2 of clicked block constains "S %{_i}%:": set {_s} to {_i} line 2 of clicked block constains ":%{_i}% K": set {_k} to {_i} add 1 to {_i} {_i} is 9999: exit loop send "Cena kupna: %{_k}%, Cena sprzedaży: %{_s}%" Działanie: pętla while jest tu wykorzystana do pobrania kwoty kupna i sprzedaży z tabliczki o wzorze: linia 1: [sklep] linia 2: S <cena sprzedaży>:<cena kupna> K Pętla będzie wykonywana tak długo, aż zmienne {_s} i {_k} będą zapisane lub gdy osiągnie 9999 powtórzeń.
    1 punkt
  3. xMuffionex

    Skarga na xNightPower_

    Napisz ponownie kiedy nauczysz się poprawnie składać zdania. Pozdrawiam i miłego wieczoru
    1 punkt
  4. Kormic

    Max pieniedzy w /sklep

    To jest w końcu pytanie czy zlecenie? Dodam, że skrypt wygląda ohydnie. Dlaczego kilkanaście razy jest powtórzony execute dla tych samych komend? Dlaczego nie zastosowano pętli w ustawianiu slotów? Dlaczego użyto zbugowanego i ograniczonego w możliwościach formatowania GUI z SkQuery?
    1 punkt
  5. Notro

    System ID gracza

    Użyj send "%player% [&4%{NID::%player%}%&f]: %message%" to loop-player
    1 punkt
  6. Kormic

    System ID gracza

    Proszę, skrypt nietestowany. Zmienna to {NID::%player%}. on join: set {nextNID} to 1 if {nextNID} is not set set {NID::%player%} to {nextNID} add {NID::%player%} to {usedNID::*} remove {NID::%player%} from {unusedNID::*} if size of {unusedNID::*} >= 1: set {nextNID} to (first element out of sorted {unusedNID::*}) else if size of {usedNID::*} >= 1: set {nextNID} to (last element out of sorted {usedNID::*}) + 1 else: set {nextNID} to 1 on quit: remove {NID::%player%} from {usedNID::*} add {NID::%player%} to {unusedNID::*} clear {NID::%player%} if size of {unusedNID::*} >= 1: set {nextNID} to (first element out of sorted {unusedNID::*}) else if size of {usedNID::*} >= 1: set {nextNID} to (last element out of sorted {usedNID::*}) + 1 else: set {nextNID} to 1
    1 punkt
  7. Gooldzik

    Placeholdery na chacie

    Hej, Chcecie mieć liczbę gotówki gracza przed nickiem na chacie, albo marzy Wam się pokazać poziom wyspy gracza przed nickiem? To nic trudnego! Musicie posiadać tylko - EssentialsX, EssentialsX Chat, PlaceholderAPI i ChatInjector Essentials - https://essentialsx.net/downloads.html ChatInjector - https://www.spigotmc.org/resources/chatinjector-1-13.81201/ PlaceholderAPI - https://www.spigotmc.org/resources/placeholderapi.6245/ Co dalej zrobić? Wystarczy zapoznać się z wiki pluginu PlaceholderAPI, aby sprawdzić, jakie są placeholdery. Całą listę znajdziecie tutaj Placeholders · PlaceholderAPI/PlaceholderAPI Wiki (github.com) No i przechodzimy do konfiguracji Aby to uczynić, musimy wejść w config pluginu Essentials, a następnie przejść do sekcji chat, gdzie znajdziemy formaty grup. Przy okazji, możemy ustawić prefixy dla LuckPerms. Aby dodać tylko sam placeholder, bez formatowania prefixów, bądź suffixów grup, zmieniamy tylko linijkę format. format: '{DISPLAYNAME} : {MESSAGE}' Tak jak już wspomniałem, pokaże Wam jak zrobić, aby przed nazwą użytkownika był stan konta. Chciałbym tylko dodać, że będzie to placeholder fixed, który pokazuję pełną kwotę. Placeholder, jaki będziemy stosować, to %vault_eco_balance_fixed% Także przechodzimy do konfiguracji format: '%vault_eco_balance_fixed% {DISPLAYNAME} : {MESSAGE}' No i powinno działać, jednak obierzmy to jeszcze w ładniejszy styl format: '&7[&c%vault_eco_balance_fixed%&7] &r{DISPLAYNAME} : {MESSAGE}' Pozdrawiam
    1 punkt
  8. Witajcie, słowem wstępu chciałbym powiedzieć, że ten poradnik, jak i każdy mój inny poradnik znajdzie się na dwóch innych forach. Na jednym jestem pod nickiem AlexsanderARG, a na drugim Krulik. A więc zaczynajmy. Najważniejsze informacje ProtectionStones jest zaawansowanym pluginem na cuboidy, potocznie nazywane działkami. Aby wgrać go na serwer, musicie spełnić kilka warunków, niektóre są obowiązkowe, a niektóre tylko opcjonalne - więc tych drugich nie musicie spełniać. Aby wgrać plugin na swój serwer, musicie posiadać WorldEdit i WorldGuard w wersji 7+, oraz musicie posiadać serwer co najmniej na wersji Spigot 1.13 Opcjonalnymi dodatkami są Vault, który jest wymagany, aby działało połączenie ekonomii z działkami, czyli po prostu, żeby można było działki kupować (Pluginem na ekonomie jest plugin Essentials), oraz drugim opcjonalnym pluginem jest PlaceholderAPI, który umożliwia pełno rzeczy, o których nie będę pisać, ponieważ byłoby to po prostu za dużo. To na co pozwala PlaceholderAPI, znajdziecie tutaj, w zakładce About PlaceholderAPI | SpigotMC - High Performance Minecraft oraz tutaj Placeholders · espidev/ProtectionStones Wiki (github.com) Instalacja pluginu Plugin ProtectionStones instalujemy tak samo jak wszystkie inne pluginy, czyli logujemy się do serwera przy pomocy FTP lub SFTP, oraz wrzucamy plik z rozszerzeniem .jar, a następnie restartujemy serwer. Plugin pobierzecie stąd ProtectionStones [Updated for 1.13 - 1.16 + WG7] | SpigotMC - High Performance Minecraft Konfiguracja pluginu Przejdźmy teraz do najważniejszej rzeczy - konfiguracji pluginu. Aby to zrobić, należy połączyć się z FTP lub SFTP, oraz wejść w folder plugins, a następnie w folder ProtectionStones. Otwieramy plik config.toml https://code.skript.pl/8aNS0fYv I mamy tutaj do opisania kilka rzeczy. Zacznijmy po kolei.. placing_cooldown - Tutaj definiujemy czas, który użytkownik musi odczekać między postawieniem działek - wyrażamy go w sekundach. Jest typem int, czyli podajemy tylko liczbę. async_load_uuid_cache - Definiujemy tutaj, czy chcemy, aby plugin blokował uruchamiania serwera, w celu ładowania pamięci podręcznej (cache) UUID. Jest typem boolean, czyli wpisujemy true albo false allow_duplicate_region_names - Tutaj definiujemy, czy regiony mogą mieć tę samą nazwę. Jest również typem boolean. ps_view_cooldown - Krótko i na temat, czas, który trzeba odczekać między używaniem komendy /ps view base_command - Definiujemy tutaj bazową komendę, na jaką będzie reagować plugin. Domyślnie jest to ps, ale możemy zmienić to np. na działka. Jest to typ string, czyli ciąg znaków - określamy go w cudzysłowie. aliases - Czyli aliasy komendy bazowej, na które również będzie reagować plugin. drop_item_when_inventory_full - Określamy tutaj, czy blok działki ma wypadać na ziemie po zniszczeniu, gdy gracz ma pełne inventory. Jest typem boolean. regions_must_be_adjacent - Dziwna rzecz. Określamy tutaj, czy cuboidy tego samego gracza, które są obok siebie, muszą na siebie nachodzić, albo stykać się granicami. Jest typem boolean allow_merging_regions - Definiujemy zgodę na to, czy regiony graczy mogą na siebie nachodzić, czy też nie. Jest również typem boolean. allow_merging_holes - Definiujemy, czy gracze mogą stawiać regiony w kółko, aby w środku był niezabezpieczony teren. Jest typem boolean. Dalej jest sekcja ekonomii. Aby działało to poprawnie, wymagany jest plugin Essentials (dodaje ekonomie), oraz Vault (jest to API). max_rent_price - Ustawia maksymalną cenę za wynajem działki. Jest typem float, czyli liczbą z przecinkiem - w tym przypadku z kropką. Na przykład 10.50 min_rent_price - Ustawia minimalną cenę za wynajem działki. Również jest typem float. max_rent_period - Tego nie rozumiem, może ktoś w komentarzu mi wyjaśni. min_rent_period - Tego tak samo nie rozumiem. tax_enabled - Podatki, podatki i jeszcze raz podatki. Definiujemy, czy wymagamy od gracza podatku od działki. Jest typem boolean. tax_message_on_join - Definiuje, czy gracze mają dostawać wiadomości o zaległych opłatach za wynajem, przy wejściu na serwer. Również jest typem boolean. Przejdźmy teraz do konfiguracji bloków działek. W tym przypadku block1.toml https://code.skript.pl/gbA6WwB8 Tutaj najważniejsze co zainteresuje przeciętnego administratora, jest type - Określamy jaki blok ma być działką. Jest typem string. alias - Definiujemy alias działki, czyli słowo, którym będzie określana działka w komendzie /ps get. Musi być to jedno słowo - bez spacji. Również jest typem string. description - Czyli po prostu opis działki. Jest typem string. x_radius - Wymiary działki w kierunku x. Jest typem int, czyli wpisujemy samą liczbę. y_radius - Wymiary działku w pionie. Aby ustawić maksymalną wysokość, wpisujemy -1. Również jest typem int. x_radius - Wymiary działki w kierunku z. Jest również integerem. Dla zaawansowanych użytkowników przydadzą się jeszcze flagi flags - Tutaj określamy, jakie flagi mają być ustawione na stałe na działce. allowed_flags - Określamy, jakie flagi użytkownik można nałożyć, zdjąć oraz edytować samemu. hidden_flags_from_info - Określamy, jakie flagi mają zostać ukryte, po wpisaniu komendy /ps info Listę wszystkich flag znajdziecie tutaj Region Flags — WorldGuard 7.0 documentation (enginehub.org) Reszta kiedyś Uprawnienia działki Jak każdy plugin, tak i ten ma swoje uprawnienia. Aby je nadać, oraz aby gracze mogli korzystać z działek, trzeba posiadać plugin LuckPerms (PEX jest niewpierany od dawna, oraz zawiera masę błędów, przez głupotę autorów). Listę uprawnień znajdziecie tutaj Permissions · espidev/ProtectionStones Wiki (github.com), a dodajecie ją w sposób następujący /lp group default permission set UPRAWNIENIE true Informacje mniejsze i te większe Wszystko wziąłem stąd ProtectionStones [Updated for 1.13 - 1.16 + WG7] | SpigotMC - High Performance Minecraft oraz z configu pluginu.
    1 punkt
  9. Libter

    Skarga na BrixNW

    Ze względu na przedstawione dowody oraz brak skruchy @BrixNW - na podstawie §2.1.2.1 regulaminu, w nawiązaniu do §1.2 rozporządzenia o zasłużonych oraz sekcji Kary rozporządzenia o Discordzie: @BrixNW traci tytuł zasłużonego. @BrixNW otrzymuje bana na Discordzie z możliwością odbanowania po kontakcie z administracją nie wcześniej niż 23.09.2020.
    1 punkt
  10. Nau

    DROP ZE STONE

    Wersja serwera 1.8.8, powiedz mi ile kosztowałby taki skrypt, który opisałem z Twojej strony a z ceną myślę, że byśmy się dogadali raczej
    0 punktów
  11. xxxxddddaaaaxxxx

    AntyNogi

    no ze free pluginem to ciężko ale masz ty skryptjeśli dobrze zrozumiałem co to antynogi możesz kogoś poprosić o napisanie pluginu package net.nocny.antynozki; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin{ Main plugin = this; public void onEnable(){ getServer().getPluginManager().registerEvents(new Listeners(this), this); } } package net.nocny.antynozki; import java.util.ArrayList; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.ItemStack; import net.md_5.bungee.api.ChatColor; public class Listeners implements Listener{ ArrayList<String> pvp = new ArrayList<String>(); Main plugin; public Listeners(Main plugin){ this.plugin = plugin; } public void onDamage(EntityDamageEvent e){ if(e.getEntity() instanceof Player){ Player p = (Player) e.getEntity(); pvp.add(p.getName()); } } public void onPlace(BlockPlaceEvent e){ if(e.getBlock().getType().equals(new ItemStack(Material.COBBLESTONE))){ Player p = e.getPlayer(); if(pvp.contains(p.getName())); e.setCancelled(true); p.sendMessage(ChatColor.RED + "Nie mozesz budowac podczas walki!"); } } public void onLeave(PlayerQuitEvent e){ if(pvp.contains(e.getPlayer().getName())){ pvp.remove(e.getPlayer().getName()); } } }
    0 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
  • Najwięcej postów w tygodniu

    xSebixx1
    xSebixx1
    2 posty
    Fendi
    Fendi
    2 posty
    bug128
    bug128
    1 post
    F3lip3za
    F3lip3za
    1 post
    Nieaktywny
    Nieaktywny
    1 post
    LusiaMC
    LusiaMC
    1 post
    Antychryst
    Antychryst
    1 post
    MICHALBEZSKINOW
    MICHALBEZSKINOW
    1 post
    artur9010
    artur9010
    1 post
  • Najwięcej tematów w tygodniu

    LusiaMC
    LusiaMC
    1 temat
    Antychryst
    Antychryst
    1 temat
    MICHALBEZSKINOW
    MICHALBEZSKINOW
    1 temat
    artur9010
    artur9010
    1 temat
    0j_12
    0j_12
    1 temat
    xSebixx1
    xSebixx1
    1 temat
    bug128
    bug128
    1 temat
    Nieaktywny
    Nieaktywny
    1 temat
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...