Skocz do zawartości

Znajdź zawartość

Wyświetlanie wyników dla 'głowa gracza'.

  • Wyszukaj za pomocą tagów

    Wpisz tagi, oddzielając je przecinkami.
  • Wyszukaj przy użyciu nazwy użytkownika

Typ zawartości


Forum

  • Skript
    • Skrypty
    • Pytania i problemy
    • Zlecenia
  • Serwery Minecraft
    • Prezentacje serwerów Minecrafta
    • Pytania i problemy
    • Poradniki
  • Programowanie
    • Projekty
    • Pytania i problemy
    • Zlecenia
  • Społeczność
    • Współpraca
    • Pogaduszki
    • Komputery i sprzęt
    • Twórczość użytkowników
    • Gry forumowe
  • Forumowe projekty
    • UtopiaMC - forumowy serwer Minecraft
  • Serwis
    • Informacje i aktualności
    • Prawo
    • System wniosków
    • Archiwum
  • Klub futurystuw Wdrożeńa
  • Klub futurystuw Propozycje
  • Klub futurystuw Offtopic
  • Klub futurystuw Zastosowańa
  • podwiek.pl Prawo
  • podwiek.pl Dyskusje

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Od tej daty

    Do tej daty


Ostatnia aktualizacja

  • Od tej daty

    Do tej daty


Filtruj po ilości...

Dołączył

  • Od tej daty

    Do tej daty


Grupa podstawowa


Lokalizacja


Hobby


Nick w MC


GG


E-mail


Skype


Strona www


Discord


Steam

  1. Podstawowe informacje Wersja serwera: każda Wersja Skript: najnowsza Dodatki Skript i ich wersje: skbee najnowsza Kod skryptu command /duel [<offline player>]: trigger: if arg-1 is not set: send "&e☄ Aby rozpocząć arene, trzeba wpisać nazwę gracza!" to player stop set {_target} to arg-1 if {_target} is online: open chest inventory with 4 rows named "&e⚔ | Wybierz zestaw:" to player wait 1 tick set slot 31 of player's current inventory to barrier block named "&cZamknij" set slot 11 of player's current inventory to diamond sword named "&bSword" else: send "&c☄ Ten gracz jest offline, albo nigdy nie założył swojego konta" to player Opis problemu: Chce usunąć to z miecza w skripcie powyżej
  2. Sieć serwerów Minecraft Sky-Land.pl zaprasza wszystkich graczy do wspólnej gry! Działamy nieprzerwanie od 2012 roku, posiadamy doświadczoną administrację, autorskie pluginy i miłą atmosferę U nas znajdziesz takie tryby jak: - SkyBlock - Classic (Freebuild) - PvP z Pistoletami - SkyWars - Gierki (PartyGames) Na naszych serwerach będziesz mógł/mogła: - ustawić własnego skina: https://sky-land.pl/skin/ - skorzystać z naszego launchera Minecraft: https://launcher.sky-land.pl/ - wziąć udział w wielu eventach budowlanych - oraz poznać miłych ludzi Kilka linków: - adres IP serwera to oczywiście: sky-land.pl - nasze forum: https://forum.sky-land.pl/ - serwer discord: http://discord.sky-land.pl/ - kanał na youtube: https://www.youtube.com/channel/UCwONT60IBLaeQ1wYLldspnA - konto na tiktoku: https://www.tiktok.com/@mcskyland_ Tryb SkyBlock 1.18: - wyspy 50x50 - drop z potworów - zmodyfikowane spawnery - publiczna kopalnia - sklepiki [Trade] - MobArena do walk z potworami - mini gra KoTH King of The Hill (Król Wzgórza) - tor parkour - kilka rodzajów LuckyBlocków Tryb Classic 1.18 (Freebuild/Survival): - działki 50x50 + możliwość łączenia kilku działek - mapa surowcowa 8k bloków resetowana co 5 dni - handel z wieśniakami - mechanika pvp z 1.8 - nether - prace (jobs) - losowy teleport + grupowy - rynek na spawnie z możliwością wynajęcia własnego straganu - drop główek z potworów, zwierząt i bloków - śluby między graczami - eventy rybackie - strzelnica
  3. mervi_X

    Skrypt na dystrykty

    Podstawowe informacje Wersja serwera:1.21.4 Wersja Skript: Opis zlecenia /dzaloz <D1/D2/D3/D4/D5/D6/D7/D8/D9/D10/D11/D12> (kazdy dystrykt ma przydzielana range np dystrykt D1 ma /lp <user> parent set d1 (z permisja) /dsojusz <D1/D2/D3/D4/D5/D6/D7/D8/D9/D10/D11/D12> (zaklada sojusz z dystruktem) /dusun <usuwa dystrykt> /dzapros <D1/D2/D3/D4/D5/D6/D7/D8/D9/D10/D11/D12> <gracz> dodaje gracza do dystryktu i automatycznie dodaje mu range (z permisja) /dwyrzuc <D1/D2/D3/D4/D5/D6/D7/D8/D9/D10/D11/D12> <gracz> wyrzuca gracza z dystryktu i automatycznie zabiera mu range Dodam że chce aby gracze będący w tym samym dystrykcie nie mogli się bić żeby nie było przypadkowych uderzeń, oraz żeby każdy dystrykt miał swój inny unikatowy kolor który pokazuje się nad głową na czacie gdy gracz coś napiszę o po kliknięciu TAB.
  4. Witaj na ManiMC.pl! Szukasz serwera Minecraft, na którym nie będziesz się nudzić po kilku dniach? ManiMC.pl to nowoczesna sieć serwerów oferująca kilka unikalnych trybów rozgrywki, aktywną administrację, regularne aktualizacje oraz przyjazną społeczność graczy. Niezależnie od tego, czy lubisz budować ogromne projekty, rozwijać własną wyspę, rywalizować z innymi graczami czy po prostu spokojnie grać ze znajomymi – znajdziesz tutaj coś dla siebie! Strona WWW: https://manimc.pl/ Discord: https://discord.manimc.pl/ IP Serwera: ManiMC.pl Survival + Działki + Ekonomia Klasyczny Minecraft wzbogacony o wiele dodatkowych możliwości! System działek chroniących Twoje budowle Rozbudowana ekonomia i handel między graczami Sklepy graczy i własny rynek Przyjazny balans rozgrywki Eventy organizowane przez administrację Stabilny i wydajny serwer 24/7 Buduj własne imperium, zarabiaj pieniądze, rozwijaj swoją działkę i rywalizuj z innymi mieszkańcami świata Survival. SkyBlock Rozpocznij przygodę na własnej wyspie zawieszonej w powietrzu! Tworzenie i rozwijanie własnej wyspy Wspólna gra ze znajomymi Ranking najlepszych wysp System misji i wyzwań Generator cobblestone i rozwój ekonomii Sklep dostosowany do rozgrywki SkyBlock Unikalne nagrody za aktywność Udowodnij, że nawet z kilku bloków można stworzyć prawdziwe królestwo. Creative Miejsce stworzone dla architektów i kreatywnych graczy. Standardowa mapa (nie płaski teren) Nieograniczone możliwości budowania Łatwe zarządzanie własną działką Możliwość odwiedzania projektów innych graczy Idealne miejsce do tworzenia map i konstrukcji Pokaż swoją kreatywność i twórz projekty bez ograniczeń. MiniGry Lubisz rywalizację i szybką akcję? Ten tryb jest dla Ciebie! BedWars Dynamiczne rozgrywki PvP Drużynowa współpraca Rozbudowane mapy i areny System statystyk i rankingów Więcej trybów już wkrótce! Administracja stale rozwija serwer i planuje dodanie kolejnych minigier oraz nowych atrakcji. Dlaczego warto wybrać ManiMC.pl? Stabilny serwer działający 24/7 Aktywna i pomocna administracja Regularne aktualizacje i nowe funkcje Przyjazna społeczność graczy Ochrona przed cheaterami i griefingiem Kilka trybów rozgrywki na jednej sieci serwerów Dołącz już teraz! Nie czekaj — rozpocznij swoją przygodę już dziś i stań się częścią społeczności ManiMC.pl! WWW: https://manimc.pl/ Discord: https://discord.manimc.pl/ IP: ManiMC.pl [tutaj grafika przedstawiająca wszystkie tryby serwera]
  5. Chciał bym się pochwalić jaki skrypt dzisiaj napisałem😊

    Skrypt na Wirtualny portfel dla graczy gdzie można kupować rangi.

  6. Witam, napisałem 2 Skript na Anti-LAGOWANIE. Ty nic nie musisz konfigurowac (chcyba ze chcesz) a oto mój skromny kodzik: # ========================================== # 1. BLOKOWANIE WYBUCHÓW (TNT i Kryształy) # ========================================== on explode: # Blokuje niszczenie bloków przez TNT i End Crystale if event-entity is tnt or ender crystal: cancel event on damage: # Blokuje obrażenia zadawane graczom przez wybuchy kryształów/TNT if damage cause is block explosion or entity explosion: cancel event # ========================================== # 2. COOLDOWN NA KRYSZTAŁY (End Crystals) # ========================================== on right click holding end crystal: # Sprawdzamy cooldown if {crystal.cooldown::%player%} is set: set {_waited} to difference between {crystal.cooldown::%player%} and now if {_waited} is less than 3 seconds: cancel event send "&c[Anty-Lag] Możesz użyć kryształu dopiero za %difference between 3 seconds and {_waited}%!" to player stop set {crystal.cooldown::%player%} to now on damage of ender crystal: # Zapobiega natychmiastowemu rozbijaniu kryształów (atakowanie kryształu to damage) if {crystal.cooldown::%attacker%} is set: set {_waited} to difference between {crystal.cooldown::%attacker%} and now if {_waited} is less than 3 seconds: cancel event stop # ========================================== # 3. BLOKADA PRZEDMIOTÓW GENERUJĄCYCH LAGI # ========================================== on place: # 1. Masowe stawianie stojaków na zbroje if player's tool is armor stand: set {_count} to 0 loop entities in radius 5 around event-block: if loop-entity is armor stand: add 1 to {_count} if {_count} >= 5: cancel event send "&c[Anty-Lag] Nie możesz postawić więcej niż 5 stojaków na małym obszarze!" to player stop # 2. Blokada mechanizmów zegarowych z tłokami if event-block is piston or sticky piston: set {_pistons} to 0 loop blocks in radius 4 around event-block: if loop-block is piston or sticky piston: add 1 to {_pistons} if {_pistons} >= 8: cancel event send "&c[Anty-Lag] Wykryto próbę zbudowania lag-maszyny z tłoków! Limit w okolicy to 8." to player stop # 3. Blokada wagoników z TNT / Lejami przy kliknięciu na tory on right click: if player's tool is tnt minecart or hopper minecart: if player does not have permission "admin.safety": cancel event send "&c[Anty-Lag] Ten przedmiot jest zablokowany ze względów bezpieczeństwa!" to player # Ograniczenie wylewania cieczy (woda/lawa) on flow: if event-block is lava or water: if y-coordinate of event-block is less than 10: cancel event Jeżeli nie zadziała, Napisz mi a ja poprawie!
  7. Witam, jestem nowy na forum i napisałem własny Skript na kit. Czesciowo lepszy niż pluginy kod: # ======================================================ten kod tutaj sie zaczyna. Zaznacz ten kod i ctrl-c i do np. Notatnik ctrl-v # KREATOR KITÓW - OBSŁUGA GODZIN, MINUT I SEKUND BY NikoSkript nazwa: SkKIT # ======================================================================== # 1. OTWIERANIE GUI NA PRZEDMIOTY command /stworzkit [<text>]: permission: admin.kitcreator permission message: &cNie masz do tego uprawnień! trigger: if arg-1 is not set: send "&cPoprawne użycie: &e/stworzkit <nazwa_kitu>" to player stop set {_kit} to arg-1 set {edytowany_kit::%player%} to {_kit} if {kits::lista::*} does not contain {_kit}: add {_kit} to {kits::lista::*} set {kits::%{_kit}%::cooldown} to "24 hours" set {kits::%{_kit}%::permission} to "group.default" open chest inventory with 4 rows named "Wloz przedmioty dla: %{_kit}%" to player set {_slot} to 0 loop {kits::%{_kit}%::items::*}: set slot {_slot} of player's current inventory to loop-value add 1 to {_slot} # 2. AUTOMATYCZNE ZAPISYWANIE PRZEDMIOTÓW on inventory close: if name of event-inventory contains "Wloz przedmioty dla:": set {_kit} to {edytowany_kit::%player%} if {_kit} is set: delete {kits::%{_kit}%::items::*} loop all items in event-inventory: if loop-item is not air: add loop-item to {kits::%{_kit}%::items::*} send "&a&lZapisano przedmioty dla kitu: &e%{_kit}%&a!" to player send "&7Ustaw cooldown: &e/kitcooldown %{_kit}% <czas>" to player send "&7Przykłady czasu: &e24h&7, &e30m&7, &e45s" to player delete {edytowany_kit::%player%} # 3. KOMENDA DO USTAWIANIA COOLDOWNU (ROZBITE LINIE DLA BEZPIECZEŃSTWA) command /kitcooldown [<text>] [<text>]: permission: admin.kitcreator trigger: if arg-1 is not set: send "&cUżycie: /kitcooldown <nazwa_kitu> <czas>" to player stop if arg-2 is not set: send "&cUżycie: /kitcooldown <nazwa_kitu> <czas>" to player send "&7Przykłady: &e10s &7(10 sek), &e5m &7(5 min), &e2h &7(2 godz)" to player stop set {_raw-time} to arg-2 # Konwersja skrótów na format Skripta if {_raw-time} contains "s": replace all "s" with " seconds" in {_raw-time} else if {_raw-time} contains "m": replace all "m" with " minutes" in {_raw-time} else if {_raw-time} contains "h": replace all "h" with " hours" in {_raw-time} else if {_raw-time} contains "d": replace all "d" with " days" in {_raw-time} else: set {_raw-time} to "%{_raw-time}% hours" set {_test} to {_raw-time} parsed as time span if {_test} is not set: send "&cZły format czasu! Użyj np. 30s, 15m, 2h" to player stop set {kits::%arg-1%::cooldown} to {_raw-time} send "&aUstawiono cooldown dla kitu &e%arg-1% &ana &e%arg-2%&a!" to player # 4. KOMENDA DO USTAWIANIA PERMISJI (ROZBITE LINIE DLA BEZPIECZEŃSTWA) command /kitperm [<text>] [<text>]: permission: admin.kitcreator trigger: if arg-1 is not set: send "&cUżycie: /kitperm <nazwa_kitu> <permisja>" to player stop if arg-2 is not set: send "&cUżycie: /kitperm <nazwa_kitu> <permisja>" to player stop set {kits::%arg-1%::permission} to arg-2 send "&aUstawiono permisje dla kitu &e%arg-1% &ana: &b%arg-2%" to player # ======================================================================== # SYSTEM ODBIERANIA KITÓW # ======================================================================== command /odbierzkit [<text>]: trigger: if arg-1 is not set: send "&7Dostępne kity:" to player loop {kits::lista::*}: send "&e- %loop-value%" to player stop set {_kit} to arg-1 if {kits::%{_kit}%::cooldown} is not set: send "&cTaki kit nie istnieje!" to player stop if player does not have permission {kits::%{_kit}%::permission}: send "&cNie masz uprawnień, aby odebrać ten kit!" to player stop if {cooldown::kit::%{_kit}%::%player%} is set: set {_waited} to difference between {cooldown::kit::%{_kit}%::%player%} and now set {_cooldown-time} to {kits::%{_kit}%::cooldown} parsed as time span if {_waited} is less than {_cooldown-time}: set {_remaining} to {_cooldown-time} remove {_waited} from {_remaining} send "&cMusisz odczekać jeszcze: &e%{_remaining}%&c!" to player stop loop {kits::%{_kit}%::items::*}: give loop-value to player set {cooldown::kit::%{_kit}%::%player%} to now send "&aOdebrałeś zestaw &e%{_kit}%&a!" to player send "&aOdebrałeś zestaw &e%{_kit}%&a!" to player #dostepne komendy dla graczy i adminow #/stworzkit <nazwa> #co robi? #Otwiera czyste GUI (skrzynkę). Wrzucasz do niej przedmioty, które mają być w kicie, a po zamknięciu ekwipunku (E) skrypt automatycznie je zapisuje. #/kitcooldown <nazwa_kitu> <godziny> #co robi? #Ustala, co ile godzin gracz może odebrać ten zestaw.Przykład: /kitcooldown vip 24 (ustawi czas oczekiwania na 24 godziny) #/kitperm <nazwa_kitu> <permisja_lub_grupa> #co robi? #Ustala, kto ma dostęp do kitu. Jeśli używasz LuckPerms, wpisujesz tutaj permisję grupy (np. group.vip) lub dowolną własną permisję (np. kit.vip). #/odbierzkit <nazwa> #co robi? # Wydaje graczowi przedmioty z danego kitu, o ile gracz ma odpowiednią rangę/permisję i nie ma aktywnego cooldownu. #/odbierzkit #co robi? #Wyświetla graczowi na czacie listę wszystkich stworzonych na serwerze zestawów.
  8. Og. tam chodzi o to ze jest Skoczny Mace Ktory wybija gracza albo na 15 kratek do gory albo na 25 kratek i dobre enchanty np windburst i taki mieczyk o nazwie Miecz Krolika ktory blokuje skok jak kogos uderzysz na 5 sekund jest cooldown na mace i na mieczu na mace 30sec a na mieczu tez 30 sec i crafting tych itow i commenda na danie tych itow
  9. W4F3LQ_NL

    skrypt na przelewy

    #---Skrypt na /pay--- #---Made by W4F3L--- options: tag: &8#11E210&lᴏ&#33E632&lᴡ&#55EA54&lʟ&#77EE76&lᴍ&#99F399&lᴄ&#BBF7BB&l.&#DDFBDD&lᴘ&#FFFFFF&lʟ] # Prefiks wiadomości command /pay [<player>] [<number>]: permission: skrypt.pay permission message: {@tag} &cNie masz uprawnień do przesyłania pieniędzy. trigger: # Sprawdzenie czy podano gracza if arg 1 is not set: send "{@tag} &7Użycie: &b/pay (gracz) (kwota)" stop # Sprawdzenie czy podano kwotę if arg 2 is not set: send "{@tag} &7Musisz podać kwotę." stop # Sprawdzenie czy kwota jest dodatnia if arg 2 <= 0: send "{@tag} &cKwota musi być większa niż 0." stop # Sprawdzenie czy gracz nie próbuje wysłać kasy do siebie if arg 1 is player: send "{@tag} &cNie możesz wysłać pieniędzy samemu sobie." stop # Główna logika sprawdzająca stan konta (Vault) if player's balance is greater than or equal to arg 2: remove arg 2 from player's balance add arg 2 to arg 1's balance send "{@tag} &fPrzesłałeś &a%arg 2%$ &fdo gracza &b%arg 1%&f." to player send "{@tag} &fOtrzymałeś &a%arg 2%$ &fod gracza &b%player%&f." to arg 1 else: send "{@tag} &cNie masz wystarczająco środków na koncie! &7(Brakuje: &e%arg 2 - player's balance%$&7)"
  10. Podstawowe informacje Wersja serwera: 1.20.1 paper Wersja Skript: 2.12.2 Opis zlecenia Mam skript abym mógł podpisywać autografy lecz mi nie działa. Problem: [Skript] Reloading the config, aliases and all scripts... [19:23:26 INFO]: [Skript] Loaded 5172 aliases in 51ms [19:23:26 INFO]: Line 12: (autograf.sk) [19:23:26 INFO]: List is missing 'and' or 'or', defaulting to 'and': "&7", "&7Autograf od:&r %player%", "&7" [19:23:26 INFO]: Line: set lore of player's tool to "&7", "&7Autograf od:&r %player%", "&7" [19:23:26 INFO]: [19:23:26 INFO]: Line 14: (autograf.sk) [19:23:26 INFO]: a slot can't be set to 'player's tool with hidden enchantments' because the latter is neither an item type nor an item stack [19:23:26 INFO]: Line: set player's tool to player's tool with hidden enchantments [19:23:26 INFO]: [19:23:26 INFO]: Line 19: (autograf.sk) [19:23:26 INFO]: This command doesn't have any arguments [19:23:26 INFO]: Line: if arg-1 is not set: [19:23:26 INFO]: [19:23:26 INFO]: Line 23: (autograf.sk) [19:23:26 INFO]: This command doesn't have any arguments [19:23:26 INFO]: Line: set name of player's tool to colored arg-1 [19:23:26 INFO]: [19:23:26 INFO]: Line 24: (autograf.sk) [19:23:26 INFO]: List is missing 'and' or 'or', defaulting to 'and': "&7", "&7Autograf od:&r %player%", "&7" [19:23:26 INFO]: Line: set lore of player's tool to "&7", "&7Autograf od:&r %player%", "&7" [19:23:26 INFO]: [19:23:26 INFO]: Line 26: (autograf.sk) [19:23:26 INFO]: a slot can't be set to 'player's tool with hidden enchantments' because the latter is neither an item type nor an item stack [19:23:26 INFO]: Line: set player's tool to player's tool with hidden enchantments [19:23:26 INFO]: [19:23:26 INFO]: Encountered 4 errors while reloading the config, aliases and all scripts! (118ms) SKRIPT: command /autograf: permission: autograf.command permission message: &cBrak permisji! trigger: if player's tool is air: send "&cMusisz trzymać coś w ręku!" stop # Domyślni gracze - stały autograf if player has permission "group.default": set name of player's tool to "&7Autograf" set lore of player's tool to "&7", "&7Autograf od:&r %player%", "&7" enchant player's tool with unbreaking 1 set player's tool to player's tool with hidden enchantments send "&aUtworzono autograf!" stop # Pozostali - autograf z argumentu if arg-1 is not set: send "&cUżycie: /autograf <autograf>" stop set name of player's tool to colored arg-1 set lore of player's tool to "&7", "&7Autograf od:&r %player%", "&7" enchant player's tool with unbreaking 1 set player's tool to player's tool with hidden enchantments send "&aUtworzono autograf!" Bardzo dziękuje za każdą odpowiedź i pomoc przy tym!
  11. Mam dla was prezentacje wlasniego pluginu pod tryb cashblok **Komendy** /top - pokazuje topke siana i wykopanych blokow /wyplata - wyplata od 20vplnow (kody psc mozna dodac w configu) / mozna tez odebrac na discordzie serverowym (link do niego) /booster all <sekundy> - Boost dla wszystkich na x sekund 2x siana /rudydroppodloz <gracz> <ilosc> - Podkladanie siana pod blok dla gracza /rudydrop - reload pluginu **PERMISJE** RudyDrop.podloz - dla administracji ktora ma opa **Obowiazkowe pluginy** Vault EssentialsX To co jest w pluginie na ta chwile: (niektore funkcje do ustawienia w configu) - scoreboard - topka - wypłaty - podkładanie admina - bossbar globalny - motd animowane - brushe **Integracja z moim drugim autorskim pluginem na brushe** **Komendy** /rudybrush <1-10> - daje brush o wybranym rozmiarze /rudybrushzobacz - otwiera GUI z brushami **PERMISJE** rudybrush.use - podstawowa permisja **Daje:** używanie /rudybrush używanie /rudybrushzobacz rudybrush.bosko - bonus do kasy RudyBrush.Admin - Wszystko dla admina Prezentacja pluginu:
  12. 1. Wymagane Pluginy Aby ten skrypt w ogóle ruszył i współpracował z rangami, musisz mieć zainstalowane na serwerze: Skript: Główny silnik, który czyta ten kod. LuckPerms: Najlepszy plugin do rang. To w nim tworzysz grupy (VIP, GVIP) i nadajesz uprawnienia. 2. Jak dodać rangę w LuckPerms (LP)? Twój skrypt sprawdza uprawnienia linijkami: if player has permission "kit.vip". Musisz więc stworzyć rangi i przypisać im te konkretne uprawnienia w LuckPerms. Komendy w konsoli lub w grze (jeśli masz OP): Tworzenie rang: /lp create group vip /lp create group gvip Nadawanie uprawnień do kitów: Dla VIP: /lp group vip permission set kit.vip true Dla G-VIP: /lp group gvip permission set kit.gvip true Dodawanie gracza do rangi: /lp user <NICK> parent set vip 3. Wyjaśnienie komend ze skryptu /kit Otwiera główne menu (GUI) z wyborem zestawów. Gracz & Jedzenie: Dostępne dla każdego. VIP: Sprawdza, czy gracz ma permisję kit.vip. G-VIP / YT: Sprawdza, czy gracz ma permisję kit.gvip. /kitreset <nick> <nazwa_kitu> (lub /kitusun) Komenda tylko dla administratora (wymaga uprawnienia admin.kit). Działanie: Usuwa zapisany czas oczekiwania dla danego gracza. 4. Logika działania skryptu (Krok po kroku) Wybór: Gracz klika przedmiot w /kit. Sprawdzenie: Skrypt sprawdza, czy minął wymagany czas (cooldown) i czy gracz ma rangę (permisję). Potwierdzenie: Jeśli wszystko jest OK, otwiera się drugie menu z zielonym barwnikiem. Wydanie: Po kliknięciu "Potwierdź", skrypt czyści zmienną tymczasową, daje przedmioty i zapisuje aktualną godzinę jako start nowego czasu oczekiwania. Przykład: Jeśli VIP odebrał kit i musi czekać 30 minut, a Ty chcesz mu pozwolić wziąć go znowu teraz, wpisujesz: /kitreset Janusz vip.
  13. Update v1.2.0 Spory update — cztery nowe rzeczy. 1. Transakcje Możesz teraz wykonać kilka zapytań jako jedną atomową operację — albo wszystko się zapisze, albo nic. Jeśli cokolwiek się posypie w trakcie, plugin automatycznie cofa wszystko i ustawia flagę którą możesz sprawdzić w Skripcie. db begin transaction db update table "players" set "coins" to "%{_new}%" where "uuid" = {_uuid} wait 2 ticks db insert into table "purchases" columns {_cols::*} values {_vals::*} wait 2 ticks db commit transaction if last db transaction failed: send "&cCoś poszło nie tak." to player stop send "&aZakup udany!" to player 2. Blokowanie graczy Zapobiega race conditions gdy gracz wywołuje komendę kilka razy zanim poprzednia się skończy. Locki trzymane są w pamięci pluginu — żadnych zmiennych Skriptowych. if player is db locked: send "&cPoczekaj chwilę." to player stop db lock player # ... zapytania ... db unlock player 3. db ensure table Nowy efekt do tworzenia tabel który rozwiązuje problem z race conditions na starcie serwera. Blokuje wykonanie skryptu dopóki tabela faktycznie nie powstanie — nie trzeba już kombinować z wait ticks ani flagami. # Nowe on skript load: db ensure table "players" with query "CREATE TABLE IF NOT EXISTS players (...)" # Stare on skript load: check db table "players" wait 20 ticks if db table "players" doesn't exist: execute db query "CREATE TABLE IF NOT EXISTS players (...)" wait 5 ticks 4. PlaceholderAPI Jeśli macie PlaceholderAPI na serwerze, plugin automatycznie rejestruje własne placeholdery. Ustawiacie wartość ze Skripta po zapytaniu i działa wszędzie — scoreboard, tablist, hologramy, cokolwiek obsługuje PAPI. execute db query "SELECT coins FROM players WHERE uuid = ?" with values {_uuid} wait 2 ticks set {_coins} to column "coins" from row 1 of last db query result db set placeholder "coins" to "%{_coins}%" for player Od tej chwili %hexvgdb_coins% zwraca aktualną wartość dla gracza. Placeholder Opis %hexvgdb_<klucz>% wartość ustawiona ze Skripta %hexvgdb_connected% true / false — status połączenia z bazą %hexvgdb_locked% true / false — czy gracz ma aktywny lock PlaceholderAPI jest opcjonalne — bez niego plugin działa dokładnie tak samo jak wcześniej. W repozytorium są dwa przykładowe skrypty — example.sk z systemem coinów i nowy example_papi.sk pokazujący system statystyk z pełną integracją PlaceholderAPI. Jak coś nie działa albo macie pomysły — piszcie w komentarzach albo otwórzcie Issue na GitHubie.
  14. VictorPL

    Skrypt na prace 1.21.11

    Podstawowe informacje Wersja serwera: 1.21.11 Wersja Skript: 2.14.2 Opis zlecenia Poszukuję skryptu na prace, uzywam EssentialsX jak bedzie trzeba Vault to moge wziac Skrypt ma polegac na tym, zeby po wpisaniu /prace wyswietlalo nam sie GUI w ktorym jest do wybrania 4 prace a wybor ich ma byc z cooldownem 30 minutowym na gracza. - Rzeznik - co zabicie moba 0.20$, za wither skeletona 3$, withera 30$ - Drwal - co wykopany 1 blok drewna (naturalnie zgenerowany, nie postawiony przez gracza) 3$ - Gornik - co lepsza rude wiecej dolarow, wegiel 1$, zelazo 2$, zloto 4$, - Wedkarz - za kazdy łów zdobywa 0.50$ Jesli bedzie potrzeba jakis dodatkow do skriptu zeby skrypt smigal to oczywiscie takich uzyje
  15. YCHEST Skrypt zawiera: - Dużo configu pod swoje preferencje (permisje, wiadomości, nazwy skrzyń , dźwięki i więcej..) - Podgląd i Edytowanie w GUI - Bardzo przyjazny interfejs ustawiania szans - Tab completery, hologramy - Dużo dużo więcej funkcji Informacje: W komendach używamy liczb jako identyfikacji skrzyń np. 1 jest odpowiednikiem skrzyni którą ustawiliście w configu Komendy: Komendy działają pod /skrzynia, /yc, /ychest /yc set [1-5] - ustawia skrzynie /yc del - usuwa skrzynie na którą patrzymy + zawartość /yc move [1-5] - Przenosi skrzynię na blok na który patrzymy /yc edit - otwiera edytowanie skrzyni na którą patrzymy /yc reset - resetuje wszystkie skrzynie /yc list - wyświetla liste skrzyń (Typ + kordy) /yc help - otwiera pomoc /klucz Gracz/All typ-klucza [ilosc] - rozdaje graczowi/każdemu klucz (Domyślna ilość = 1) Liczę na szczerą opinię + co można poprawić/dodać Wymagania: Skript (Najlepiej 2.12.1) skript-reflect hologramAPI (SK) Download: 1.0 (Jedyny fragment AI to optymalizacja previewChest)
  16. Cześć. Od niedawna rozwijam platformę LySide.pl, na której udostępniam autorskie pluginy do Minecrafta (przygotowane pod silniki 1.20+). Szukam obecnie właścicieli serwerów, techników oraz twórców paczek do współpracy partnerskiej. Uruchomiłem na stronie program afiliacyjny. Działa to tak, że generujesz własny kod rabatowy dla graczy lub klientów. Każda osoba, która z niego skorzysta, otrzymuje zniżkę, a Ty dostajesz 15% prowizji od jej zakupu na własne konto. To dobra opcja, jeśli pomagasz innym w konfiguracji serwerów lub polecasz sprawdzone rozwiązania. Zamiast kupować w ciemno, możecie sprawdzić jakość naszych projektów za darmo. Udostępniam do pobrania pełną wersję pluginu LyShop – zoptymalizowanego sklepu w GUI dla graczy, który bez problemu zastępuje ciężkie skrypty. Konfiguracja opiera się w całości na plikach YAML (nie wymaga MySQL). Posiada wbudowane zabezpieczenia przed kopiowaniem przedmiotów. Układ menu jest prosty do samodzielnej edycji. LyShop możecie pobrać za darmo bezpośrednio z naszej strony, żeby samemu przetestować, jak to działa w praktyce na serwerze. Znajdziecie tam również inne, płatne systemy (m.in. zaawansowane zdrapki). Zainteresowanych pobraniem wtyczki lub dołączeniem do programu partnerskiego zapraszam na stronę oraz naszego Discorda. Chętnie odpowiem na wszelkie pytania techniczne. Strona : https://lyside.pl/ Discord: https://discord.gg/SXRqx9k4X6
  17. UWAGA, LIMITOWANA PROMOCJA! W branży serwerów gier liczy się nie tylko stabilność i szybkość działania, ale też wygodna, bezpieczna i bezproblemowa obsługa płatności. Właśnie dlatego wybór odpowiedniej bramki płatniczej ma ogromne znaczenie – zarówno dla właścicieli serwerów, jak i ich graczy. HotPay to rozwiązanie stworzone z myślą o maksymalnej skuteczności, prostocie wdrożenia i wsparciu sprzedaży, dlatego dla wielu serwerów gier jest po prostu najlepszym wyborem. Szeroki wybór metod płatności Szeroki wybór dostępnych metod płatności jest kluczowym elementem, który pozwala nie tylko maksymalizować i ułatwiać generowanie przychodów z serwera, ale także decydować o tym, czy dany gracz w ogóle się na nim pojawi. Rozbudowana gama kanałów płatności musi odpowiedzieć na potrzeby i możliwości zarówno młodocianych, jak i doświadczonych, dorosłych już graczy. Blik Przelewy bankowe Paysafecard Direct Billing (tzw. SMS+) SMS Premium Karty płatnicze Google Pay i Apple Pay, PayPal Płatności odroczone PayPo Część z w/w metod pozwala na uruchomienie płatności cyklicznych, co dla poszczególnych serwerów może stanowić dodatkowy atut w ofercie dla zrzeszonych w nim graczy. Oferta dla każdego Osoby prywatne - nierejestrowane działalności gospodarcze HotPay wspiera osoby działające w ramach działalności nierejestrowanej, co stanowi duże ułatwienie na etapie rozpoczynania sprzedaży. To rozwiązanie pozwala wejść na rynek w prostszy sposób, ograniczyć formalności na starcie i skupić się na weryfikacji potencjału projektu w praktyce. Jednoosobowe działalności gospodarcze, spółki, instytucje HotPay to rozwiązanie stworzone nie tylko dla osób, które dopiero startują, ale również dla firm, które chcą wygodnie i skutecznie obsługiwać płatności online na dużych, rozwiniętych już serwerach. Obsługujemy każdy rodzaj podmiotów gospodarczych, w tym również podmioty zarejestrowane poza granicami kraju. Ugruntowana pozycja na rynku Istniejemy od ponad 10 lat HotPay to operator płatności o ugruntowanej pozycji rynkowej, działający na rynku usług płatniczych od ponad 10 lat. W tym czasie obsłużył miliony transakcji, potwierdzając swoją skalę, doświadczenie i wiarygodność. HotPay jest licencjonowanym podmiotem działającym pod nadzorem Komisji Nadzoru Finansowego, co stanowi kluczowe potwierdzenie rękojmi bezpieczeństwa i zgodności z obowiązującymi przepisami. Rozpoznawalność wśród młodej grupy odbiorców Staż i doświadczenie – szczególnie wśród młodszego grona odbiorców – nie decyduje o rozpoznawalności i wiarygodności marki. HotPay jest jednym z najbardziej rozpoznawalnych systemów płatności wśród młodej grupy odbiorców nie tylko dzięki obsłudze sporej ilości serwerów gier, ale przede wszystkim dzięki niezliczonym działaniom medialnym. HotPay regularnie współpracuje z Influencerami, czy pojawia się w roli sponsora na wydarzeniach z ich udziałem, takich jak np. FAME MMA. Regularna wielomilionowa ekspozycja, często w viralowej formie i najczęściej wśród młodszej grupy odbiorców sprawia, że Twój operator płatności może stać się Twoim dodatkowym filarem wiarygodności. Integracja z HotPay Współpraca z itemshopami HotPay zintegrowany jest z najpopularniejszymi systemami sprzedaży dla serwerów gier, tzw. itemshopami, m.in.: ItemShopSys, SpaceIs, VIshop, ShopMC, MCShop. Dzięki nim możesz skonfigurować płatności bez specjalistycznej wiedzy, czy konieczności angażu niepotrzebnych godzin na tworzenie własnego oprogramowania. Rozbudowane, proste APi Dla bardziej zaawansowanych serwerów, które korzystają z własnych systemów sprzedaży, HotPay oferuje kompletną dokumentację API pozwalającą na proste i spójne zintegrowanie wszystkich dostępnych metod płatności. Gotowość na huczne premiery HotPay jest systemem, który jako jedyny w Polsce został od podstaw zaprojektowany i stworzony w pełni w oparciu o infrastrukturę chmurową, specjalnie na potrzeby obsługi wydarzeń na żywo, kiedy to setki tysięcy płatników chcą dokonać transakcji w jednej chwili – momencie startu. Dzięki HotPay nawet najhuczniej zapowiadana premiera serwera nie będzie w stanie zagrozić stabilności Twoich przychodów. Otwartość na współpracę Jak pokazuje nasza historia – jesteśmy otwarci na współpracę w każdym możliwym wymiarze. Jeżeli prowadzisz serwer gier, tworzysz do niego oprogramowanie, jesteś technikiem takich serwerów czy tworzysz jakieś wydarzenie ze świata gier, daj znam o tym znać: [email protected] Chętnie się poznamy.
  18. Wyróżnij swój serwer na tle konkurencji! Oferuję w pełni responsywną, nowoczesną stronę WWW zintegrowaną z Twoim serwerem Minecraft. Kluczowe Funkcje (Co oferuje ta strona?) Dynamiczny Status Serwera: Automatyczne pobieranie liczby graczy online, wersji serwera i MOTD przez API. Zintegrowany ItemShop: Gotowe makiety pod moduły płatności (przystosowane do integracji z bramkami płatniczymi). System Statystyk: Możliwość wyświetlania tabeli TOP graczy (np. najwięcej zabójstw, najbogatsi). Pełne RWD: Strona jest w pełni responsywna – gracze mogą wygodnie przeglądać sklep na telefonach. Stack Techniczny Frontend: HTML5, Modern CSS (Flexbox/Grid), JavaScript (ES6+) Performance: Czysty kod, błyskawiczne ładowanie i brak zbędnych bibliotek. Prezentacja Wideo / Demo Aby chronić kod źródłowy, pełny podgląd projektu udostępniam w formie wideo lub na dedykowanym serwerze testowym: Wideo-Prezentacja: ( https://drive.google.com/file/d/1EbMQdFUVdu6rnF04Bwi3td7QDD4ZJ3yi/view?usp=sharing ) Live Demo (Podgląd): DOSTĘPNY TYLKO PRYWATNIE Galeria Realizacji: ( https://drive.google.com/drive/folders/1JCE1WB8Dy1Q4DnFhzdRDrPsZO15Jx8qD?usp=sharing ) Zainteresowany współpracą? Tworzę dedykowane strony WWW dopasowane do unikalnych potrzeb Twojego serwera. Gwarantuję wsparcie techniczne po wdrożeniu. Discord: xxdusii Email: [email protected] Wycena: Napisz na PW, aby omówić szczegóły Twojego projektu! P.S. Nowy styl: Neon / Cyberpunk! Ostatnio mocno siedzę w mrocznych, futurystycznych klimatach. Jeśli szukacie czegoś, co zmiażdży standardowe szablony, zerknijcie na moją najnowszą realizację: ZOBACZ PROJEKT CYBERPUNK ( https://drive.google.com/drive/folders/1rizYq_Tgqdbgy4i5UecvWm61itjRxiZz?usp=sharing ) © 2026 XDUSIO - Wszelkie prawa zastrzeżone.
  19. W ostatnim czasie było sporo zmian! Oto lista: Nowe funkcje dla użytkowników avatary (upload), status online, powiadomienia w aplikacji ulepszone profile użytkowników i system weryfikacji Rozbudowa funkcji dla właścicieli serwerów dashboard analityczny + zaawansowane statystyki (porównania okresów) możliwość zarządzania serwerem (np. port, treści, odpowiedzi na recenzje) blogi serwerów i większa kontrola nad publikacją treści badge "zweryfikowany właściciel" Moderacja i bezpieczeństwo system zgłoszeń, filtrowanie treści, walidacje większa kontrola admina (np. zatwierdzanie zasobów, bannery ogłoszeń) Nowe funkcje i narzędzia na stronie narzędzia dla graczy (kalkulator RAM, status serwera, generator MOTD) sekcja FAQ i lepsza prezentacja treści nowe listingi i statystyki serwerów UI/UX i ogólne usprawnienia przeprojektowana strona główna, nawigacja i widok serwera lepsza wersja mobilna i spójny wygląd poprawki wydajności i ogólna optymalizacja
  20. MegaFan

    Mega Kilof

    Byl to ciemny dzień roku pańskiego 2023. Straciłem wszystko: dach nad głową, rodzine, prace. Nie wiedziałem juz co więcej mogę ze soba zrobić. Zatracony w tym całym smutku i alkoholu, który towarzyszył mi podczas tego jakże mrocznego czasu, czułem się kompletnie bezwartościowy. Po latach, mogę powiedzieć ze nigdy nie czułem się tak tragicznie. Zacząłem się zastanawiać, czy nie powinienem może nie zakończyć swojego cierpienia. Wtedy, właśnie wtedy nadeszła mnie jedna myśl. Wydaje mi się, ze mogla ona zostać zesłana od mojego anioła stroza, choć tego pewny nie jestem. Ważne jednak jest to, ze ta jedna myśl niczym światełko w tunelu pomogła mi się odbić od dna. Na następny dzień wszystko wydawało się lepsze, jakby, bardziej kolorowe jak za lat wczesnej młodości. Udało mi się wstać z kolan i naprawić swoje życie. Dzisiaj jestem milionerem z wielkim domem i kochającą zona i trojka dzieci. Znajomi często pytają mnie co tak na prawdę pomoglo mi osiągnąć tak wielki sukces. Oni nie zrozumieją, ale wiem ze wy tak. Mowie tu o każdej osobie która miała zaszczyt używać Mega Kilofa. To właśnie on, niczym plomien przyniesiony ludziom przez Prometeusza, oświetlił moja drogę. To właśnie Mega Kilofowi zawdzięczam wszystko co mam. Nigdy NIGDY nie zapomnę o wszystkim co Mega Kilof mi dal. A dal mi więcej niż ktokolwiek w moim życiu. Mega Kilof KOCHAM CIE. Mam juz 3 tatuaże z Mega Kilofem (tak, planuje następny). Mega Kilof, nigdy się nie zmieniaj bo to ty dajesz nam wszystkim otuchę w tych trudnych czasach. Mega Kilof to jest cale moje życie. Codziennie rano budzę się i wraz z pierwszym oddechem mam w głowie tylko jedna myśl - Mega Kilof. A z ta myślą nigdy nie zbłądzę. Tak, kocham Mega Kilof i nigdy nie przestane. Mega Kilof jest dla mnie jak dla Leonarda DiCaprio dziewczyna która ma mniej niż 25 lat. Mega Kilof jest dla mnie jak dla alkoholika łyk zimnego piwka. Mega Kilof jest dla mnie wszystkim.
  21. czemus1

    poprawa skrypt

    Podstawowe informacje Wersja serwera: Wersja Skript: Opis zlecenia poprawi ktoś skrypt tak aby działał tak żeby jak sie rejestrujesz to nie da sie odczytać nawet kordów żeby poprstu był cały czarny ekran nie efekt tylko cały czarny ekran na dole daje skrypt on first join: apply blindness to player for 30 seconds send "&aZarejestruj się używając /register haslo haslo" to player loop 5 times: wait 10 seconds send "&aZarejestruj się używając /register haslo haslo" to player wait 30 seconds kick player due to "&cRejestracja trwała zbyt długo" on join: apply blindness to player for 30 seconds if {haslo::%player%} is not set: send "&aZarejestruj się używając /register haslo haslo" to player wait 30 seconds kick player due to "&cRejestracja trwała zbyt długo" else: send "&aZaloguj się używając /login haslo" to player wait 30 seconds if {zalogowany::%player%} is not true: kick player due to "&cLogowanie trwało zbyt długo" command /register [<text>] [<text>]: trigger: if {haslo::%player%} is not set: if arg-1 and arg-2 are set: if arg-1 is equal to arg-2: set {haslo::%player%} to arg-1 set {zalogowany::%player%} to true send "&aZarejestrowano pomyślnie" remove blindness from player else: send "&cHasła nie są takie same!" else: send "&cMusisz powtórzyć hasło!" else: send "&cJesteś już zarejestrowany" command /login [<text>]: trigger: if {zalogowany::%player%} is not true: if {haslo::%player%} is set: if arg contains {haslo::%player%}: send "&aPomyślnie zalogowano" set {zalogowany::%player%} to true remove blindness from player else: send "&cBłędne hasło" else: send "&cMusisz się najpierw zarejestrować" else: send "&cJesteś już zalogowany!" command /changepassword [<text>] [<text>]: trigger: if arg-1 and arg-2 is set: if {zalogowany::%player%} is set: if arg-1 is equal to {haslo::%player%}: set {haslo::%player%} to arg-2 send "&aZmieniłeś swoje hasło!" else: send "&cTwoje stare hasło jest błędne" else: send "&cNie możesz zmienić hasła nie będąc zalogowanym" else: send "&cPoprawne użycie /changepassword starehaslo nowehaslo" command /resetpassword <player>: usage: &c/resetpassword gracz permission: admin.perm trigger: if player doesn't have permission "admin.perm": delete {haslo::%arg%} delete {zalogowany::%arg%} send "&aZresetowałeś hasło gracza %arg%" else: send "&cNie możesz zresetować hasła %arg% bo jest adminem" on command: if sender is player: if player is not console: if {zalogowany::%player%} is not set: if command is not "login" or "register": send "&cNajpierw się zarejestruj/zaloguj" cancel event on drop: if {zalogowany::%player%} is not set: cancel event on damage: if {zalogowany::%attacker%} is not set: if {zalogowany::%victim%} is not set: cancel event on load: delete {zalogowany::*} on leave: delete {zalogowany::%player%} on player move: if {zalogowany::%player%} is not set: cancel event on inventory click: if {zalogowany::%player%} is not set: cancel event on break: if {zalogowany::%player%} is not set: cancel event on place: if {zalogowany::%player%} is not set: cancel event
  22. Szukam skripta na /zadania, ze jak wpiszesz to wyswietla ci sie zadanie zeby bylo za zabicie 3 graczy, za zdonycie 100 diamentow bloku, i za czas 15 minut na serwerze i zadania sie resetuja co 5 minut i mozesz je na nowo robić, bardzo proszę.

    1. melon16

      melon16

       

      Zamień sekcje inventory click to nie bedziesz musial uzywac skript reflect, pisane dawno nie wnikaj w kod wiem ze mozna to zrobic lepiej xD

  23. Wyróżnij swój serwer na tle konkurencji! Oferuję w pełni responsywną, nowoczesną stronę WWW zintegrowaną z Twoim serwerem Minecraft. Kluczowe Funkcje (Co oferuje ta strona?) Dynamiczny Status Serwera: Automatyczne pobieranie liczby graczy online, wersji serwera i MOTD przez API. Zintegrowany ItemShop: Gotowe makiety pod moduły płatności (przystosowane do integracji z bramkami płatniczymi). System Statystyk: Możliwość wyświetlania tabeli TOP graczy (np. najwięcej zabójstw, najbogatsi). Pełne RWD: Strona jest w pełni responsywna – gracze mogą wygodnie przeglądać sklep na telefonach. Stack Techniczny Frontend: HTML5, Modern CSS (Flexbox/Grid), JavaScript (ES6+) Performance: Czysty kod, błyskawiczne ładowanie i brak zbędnych bibliotek. Prezentacja Wideo / Demo Aby chronić kod źródłowy, pełny podgląd projektu udostępniam w formie wideo lub na dedykowanym serwerze testowym: Wideo-Prezentacja: ( https://drive.google.com/file/d/1EbMQdFUVdu6rnF04Bwi3td7QDD4ZJ3yi/view?usp=sharing ) Live Demo (Podgląd): DOSTĘPNY TYLKO PRYWATNIE Galeria Realizacji: ( https://drive.google.com/drive/folders/1JCE1WB8Dy1Q4DnFhzdRDrPsZO15Jx8qD?usp=sharing ) Zainteresowany współpracą? Tworzę dedykowane strony WWW dopasowane do unikalnych potrzeb Twojego serwera. Gwarantuję wsparcie techniczne po wdrożeniu. Discord: xxdusii Email: [email protected] Wycena: Napisz na PW, aby omówić szczegóły Twojego projektu! P.S. Nowy styl: Neon / Cyberpunk! Ostatnio mocno siedzę w mrocznych, futurystycznych klimatach. Jeśli szukacie czegoś, co zmiażdży standardowe szablony, zerknijcie na moją najnowszą realizację: ZOBACZ PROJEKT CYBERPUNK ( https://drive.google.com/drive/folders/1rizYq_Tgqdbgy4i5UecvWm61itjRxiZz?usp=sharing ) © 2026 XDUSIO - Wszelkie prawa zastrzeżone.
  24. HexVG-DatabaseAddon Addon do Skripta obsługujący operacje bazodanowe na serwerze VenomGrave https://github.com/VenomGrave/HexVG-DatabaseAddon O projekcie HexVG-DatabaseAddon to addon do Skripta stworzony na potrzeby serwera VenomGrave. Sporo pracy poszło w to żeby asynchroniczność działała porządnie. Plugin pozwala pisać skrypty które komunikują się z MySQL lub SQLite bez żadnej znajomości Javy. Połączenie, pula połączeń HikariCP, obsługa błędów, rollbacki transakcji, blokowanie graczy i tworzenie tabel - to wszystko jest po stronie pluginu. W Skripcie piszesz tylko co chcesz zrobić z danymi. Funkcje Obsługa MySQL i SQLite W pełni asynchroniczne zapytania - serwer nigdy nie freezuje Transakcje z automatycznym rollbackiem przy błędzie System blokowania graczy - zapobiega race conditions przy duplikatach komend Gwarantowane tworzenie tabel - db ensure table blokuje dopóki tabela nie istnieje, bez race conditions na starcie Integracja z PlaceholderAPI - wartości z bazy dostępne w scoreboardach, tablistach, hologramach Ochrona przed SQL injection przez PreparedStatement Walidacja nazw tabel i kolumn Cache wyników per gracz Tryb debug z logowaniem zapytań i czasem wykonania Wszystkie biblioteki spakowane w jarze - brak dodatkowych zależności Wymagania Wymaganie Wersja Paper 1.16.5+ Skript 2.6+ Java 11+ PlaceholderAPI opcjonalne Instalacja Wrzuć HexVG-DatabaseAddon.jar do folderu plugins/ Uruchom serwer - plugin wygeneruje config.yml Skonfiguruj połączenie z bazą danych Zrestartuj serwer Przy MySQL pamiętaj żeby wcześniej ręcznie utworzyć bazę: CREATE DATABASE nazwa_bazy; Konfiguracja debug: false database: type: SQLITE # SQLITE lub MYSQL sqlite: file: database.db mysql: host: localhost port: 3306 database: nazwa_bazy username: root password: "" pool-size: 5 Składnia Skript Tworzenie tabeli (zalecane) Blokuje dopóki tabela nie powstanie - bezpieczne w on skript load, bez wait ticks, bez race conditions nawet gdy kilku graczy dołączy jednocześnie. on skript load: db ensure table "players" with query "CREATE TABLE IF NOT EXISTS players (uuid VARCHAR(36) PRIMARY KEY, name VARCHAR(16), coins INT DEFAULT 0)" Pobieranie danych execute db query "SELECT * FROM players WHERE uuid = ?" with values {_uuid} wait 2 ticks set {_coins} to column "coins" from row 1 of last db query result set {_rows} to db row count of last db query result Dodawanie rekordu set {_cols::1} to "uuid" set {_cols::2} to "coins" set {_vals::1} to {_uuid} set {_vals::2} to "0" db insert into table "players" columns {_cols::*} values {_vals::*} Aktualizacja i usuwanie db update table "players" set "coins" to "%{_new}%" where "uuid" = {_uuid} db delete from table "players" where "uuid" = {_uuid} Transakcje Kilka zapytań jako jedna atomowa operacja - albo wszystko się zapisuje, albo nic. db begin transaction db update table "players" set "coins" to "%{_new}%" where "uuid" = {_uuid} wait 2 ticks db insert into table "purchases" columns {_cols::*} values {_vals::*} wait 2 ticks db commit transaction if last db transaction failed: send "&cCoś poszło nie tak. Coiny nie zostały pobrane." to player stop send "&aZakup zakończony sukcesem!" to player db begin transaction i db commit transaction nie wymagają wait — blokują wewnętrznie do czasu zakończenia operacji. Blokowanie gracza Zapobiega wielokrotnemu wywołaniu komendy zanim poprzednie wykonanie się skończy. if player is db locked: send "&cPoczekaj chwilę przed ponownym użyciem tej komendy." to player stop db lock player # ... zapytania ... db unlock player PlaceholderAPI Jeśli PlaceholderAPI jest zainstalowane, ekspansja rejestruje się automatycznie. Ustaw wartość ze Skripta po zapytaniu i działa wszędzie gdzie PAPI jest obsługiwane. execute db query "SELECT coins FROM players WHERE uuid = ?" with values {_uuid} wait 2 ticks set {_coins} to column "coins" from row 1 of last db query result db set placeholder "coins" to "%{_coins}%" for player Placeholder Opis %hexvgdb_<klucz>% wartość ustawiona przez db set placeholder %hexvgdb_connected% true / false — status połączenia z bazą %hexvgdb_locked% true / false — czy gracz ma aktywny lock Ważne — wait ticks Zwykłe zapytania są asynchroniczne, więc przed odczytaniem wyniku daj wait 2 ticks. db ensure table, db begin transaction i db commit transaction nie wymagają wait - blokują wewnętrznie. Komendy Komenda Opis Uprawnienie /hexvgdb status Status połączenia z bazą hexvg.database.admin /hexvgdb debug Włącza / wyłącza tryb debug hexvg.database.admin /hexvgdb reload Przeładowuje konfigurację hexvg.database.admin Domyślnie dostępne tylko dla operatorów. Przykładowe skrypty W repozytorium znajdują się dwa przykłady: example.sk - system coinów z SELECT, INSERT, UPDATE, DELETE, transakcjami i lockami example_papi.sk - system statystyk (coiny, kills, rank) z pełną integracją PlaceholderAPI Autorzy Stworzony przez HexVG Team. Błędy i propozycje: https://github.com/VenomGrave/HexVG-DatabaseAddon/issues
  25. Fendi

    potrzebuje skryptu

    Łączenie się z prawdziwą walutą nie powinno odbywać się w skrypcie. Taka mechanika powinna być dobrze zabezpieczona. A ciężko tu zrobić dobry system zapisywania danych. Jeżeli ktoś doładuje sobie kase, a serwer dostanie crasha to kasa ci zniknie, czemu? Bo skript zapisuje swoje zmienne co jakies tysiąc albo 5 tysięcy zmian w nich albo przy zdrowym wyłączeniu serwera. Opcją na ominięcie tego jest zapisywanie od razu do pliku yml. Tylko że dysk jest cholernie wolny i takie updatowanie plików zapycha trochę główny wątek. Przy małych serwerkach to raczej nie zrobi różnicy ale przy większych już tak. Jeszcze kiedy ten plik zrobi się wiekszy. Odpowiedzią na to jest ASYNC, który w skripcie nie istnieje, można go wykorzystać poprzez skript-reflect ale działa to trochę głupio i nie do konca tak jakbyśmy chcieli. Wtedy co jakiś czas można w osobnym wątku sprawdzać czy dane jakiegoś gracza sie zmieniły i wykonać zadanie podmiany jego danych na dysku bez wchodzenia w główny wątek
×
×
  • Dodaj nową pozycję...