Skocz do zawartości

knugi

Użytkownik
  • Ilość zawartości

    1686
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    106

Treść opublikowana przez knugi

  1. Jeżeli nie chcesz usuwać tej komendy, żeby była ona dostępna dla niektórych, to nie rób komendy tylko słuchaj eventu. On command: Wtedy sprawdź czy argumenty zawiera br sphere. Następnie sprawdź czy player ma uprawnienia: If player Has permissions "uprawnienia": Następnie stop Robisz enter, usuwasz jeden TAB i wpisujesz cancel event Ban
  2. Proszę bardzo:
  3. Jedynie poprawiłem błędy które występują w konsoli które wpisałeś w temacie. Teraz mając większe spektrum nie działania skryptu możemy przejść do kolejnych działań. Powiedz mi co chciałeś uzyskać tworząc ten skrypt. O jaki "proces progresu" Ci chodzi? Jak to ma wyglądać?
  4. Aby zniwelować te błędy wystarczą delikatne poprawki Jednakże nie jestem w 100% pewny czy to będzie działać, gdyż nie sprawdzałem. Jeżeli chcesz aby to poprawić aby działało, podaj swoją wersję serwera, wersję skripta i dodatki jakie masz
  5. On death to event, nie warunek. Jeżeli boisz się o udostępnienie kodu publicznie możesz wysłać mi w wiadomości prywatnej.
  6. To podaj kod jeszcze który masz na sojusze i dopiszę do tego jeden warunek i powinno być w porządku
  7. Dzięki, akurat czegoś takiego szukałem na swój serwer lokalny. Nie chciało mi się pisać podstawki od nowa, to użyję Twojego. Oczywiście jeżeli będę musiał to przerobie pod siebie, mam nadzieję że się nie obrazisz, lecz ewentualna przeróbka nie ujrzy światła dziennego, gdyż jest to jedynie lokalne rozwiązanie Pozdrawiam #Knugi
  8. knugi

    Generatory do genblock

    options: odleglosc: 15 tick: &a✔&r x: &c✘&r command /dajgenerator: trigger: give player 1 hay block named "&6Generator Siana" send "{@tick} &7Otrzymano &6Generator Siana&7." on place of hay block: if name of player's tool is "&6Generator Siana": if {kopalniadirta::%player%} is not set: set {kopalniadirta::%player%} to true add location of event-block to {kopalniadirta::%player%::*} send "{@tick} &7Postawiono generator &6Siana&7 na pozycji %location of event-block%." to player stop on break of hay block: loop {kopalniadirta::*}: loop {kopalniadirta::%loop-index%::*}: if location of event-block is loop-value-2: set {_a} to true if "%loop-index-1%" is "%player%": set {_x} to true if {_a} is true: if {_x} is not set: cancel event send "{@x} &7Nie ty postawiles ten generator!" stop remove location of event-block from {kopalniadirta::%player%::*} send "{@tick} &7Zniszczono generator" cancel event set event-block to air give player 1 hay block named "&6Generator Siana" stop every 1 second: loop all players: if {kopalniadirta::%loop-player%} is set: loop {kopalniadirta::%loop-player%::*}: if distance between loop-player and loop-value-2 is smaller than or equal to {@odleglosc}: drop dirt at loop-value-2 #broadcast "&4DEBUG &7Zespawnowano dirt na pozycji %loop-value-2%" every 30 seconds: delete all dropped items #Trzeba dodac jeszcze zabezpieczenia na wybuchy!
  9. Jedyny dowód jaki mam w tej sprawie udostępniam w postaci wideo. Pozdrawiam #Knugi
  10. Jest do czego się przyczepić, lecz jest to błahostka. Jeżeli nie mamy na serwerze premiumcase, to musimy wypi****** kod, a można dodać w options czy mamy premiumcasy czy nie. Bo jak nie wyrzucimy kodu to bedziemy dostawac zwykle skrzynki z nazwa do ekwipunku nic nie znaczące xD Skrypt fajny. Pozdrawiam #Knugi
  11. To dodam za Ciebie, nie testowałem, ale wiem że będzie działać: on right click on player: if player is holding shears: if {kastracja::%event-entity%} is not set: send "&aPomyslnie wykastrowano %event-entity%" to player send "&aZostales wykastrowany przez %player%" to event-entity give slimeball named "&fPrawe jądro %event-entity%" to player give slimeball named "&fLewe jądro %event-entity%" to player set {kastracja::%event-entity%} to true stop send "&aGracz %event-entity% zostal juz wykastrowany" to player stop Skrypcik naprawdę pomysłowy, z dupy wzięty i w sumie do dupy, ale ciekawostka na serwer fajna Pozdrawiam #Knugi
  12. Pssst. Nie lepiej tak? I tak już jestem zbyt mocno podchmielony, ale zaoszczędziłem 40 linijek skryptu, gdzie dwie sekcje się powtarzały. Ale widać kodzik na propsie @Hiri12 robisz postępy, tak trzymaj! Zaraz mnie wygryziesz z inżynierii GUI, albo może i z tytułu na tym forum xD Wszystko elegancko opisane, sporo funkcji, podoba mi się. Szkoda tylko że nie chce mi się tego wrzucać na serwer testowy i sprawdzać czy działa, ale zakładam że działa i było sprawdzane tysiąc razy podczas pisania skryptu. Pozdrawiam #Knugi
  13. Tak darmowe. Bo gdy uzbieramy tę kwotę to nam pozwala na otworzenie GUI modyfikacji możemy tam wkładać i usuwać przedmioty i dopóki nie klikniemy rozpocznij to kasy nam nie zabiera. Zgadza się
  14. knugi

    Vouchery z kodem

    Jedynie odpowiedziałem Tobie na pytanie jak zrobić aby nie wygenerować drugi raz tego samego kodu bez zbędnych innych zmiennych. Dalej jest to śmietnik w bazie, ale już wtedy potrzebny gdy chcemy tę niepotrzebną opcję uzyskać. Tak, w tym momencie mnie poprawiłeś. Zgadzam się z Tobą. Ale i tak wyświetli mu błąd jak drugi raz wstrzeli się w ten sam kod jakimś cudem i dostanie rangę. A dodawanie kodu do listy w tej postaci: add {_code} to {vouchers::*} to jest zaśmiecanie bazy. bo można zrobić to sposobem co opisałem wyżej. Rozejdźmy się w dobrych humorach, piwko stawiam napisz na PW wyślę bliczka na browarka wypijemy razem, pogadamy. Pozdrawiam #Knugi
  15. knugi

    Vouchery z kodem

    Nie, można by było to zrobić prościej czytając ze zrozumieniem autora tematu: Jednorazowy, czyli jak wygenerujesz kod 123456 pierwsza osoba która go wpisze otrzyma rangę. Usuwasz zmienną i druga osoba w tym samym czasie nie dostanie vipa z tym samym kodem, a że za miesiąc albo za rok wylosuje znowu ten sam kod który i tak będzie tylko na jedną osobę to co to zmienia, że znowu wylosowało ten sam kod który był ileś czasu temu? Po co to robić? To jest utrudnianie sobie życia. Tego nie napisałeś w pierwszej odpowiedzi, ale daruję. Nie o wszystko musimy się czepiać np zamiast dodawać go do {vouchers::*} można zrobić tak: {vouchers::%{_kod}%} :: ranga przy generowaniu kodu pętla while czy dany kod istnieje czy nie (is set), jeżeli nie to ustawia {vouchers::123456} to "VIP" przy wykorzystaniu kodu ustawiasz zmienną {vouchers::%{_kod}%} na true/false i tyle. Potem tylko jeden warunek czy to jest boolean i tyle.
  16. knugi

    Vouchery z kodem

    A skript wielkości znaków nie uwzględnia tak btw. Tak napisałem. 123456 to był kod. a w {vouchers::1} zapisujesz 123456 add {_code} to {vouchers::*} I przy tym mnożysz niepotrzebne zmienne które zostają w bazie danych. To było czysto teoretyczne, ale im więcej kodów utworzysz to tym częściej można trafić na ten sam kod. (oczywiście mniej niż 1%). Według mojej interpretacji: Generujesz voucher o kodzie 123456 i rangą VIP ktoś go sobie zużywa, usuwasz zmienną {vouchers::123456::1} co oznacza VIP ale dalej pozostaje {vouchers::123456::2} jako expired (nie wiem czy on się przenosi na pierwsze miejsce, bo dawno skryptów nie pisałem, ale on tam jest). I jeżeli drugi raz wygenerujesz kod 123456 i dodasz do {vouchers::123456::*} może ustawić się jako liczba 2 albo 3 (ewentualnie 1 wtedy nie będzie problemu) i w pętli loop {vouchers::123456::*} zadziała warunek to nie otrzymasz vipa. phi wracaj, jest jeszcze gorzej bo na tym warunku nie wychodzisz z pętli tylko ona wyświetli błąd i pójdzie dalej, więc i tak otrzymasz tego vipa. Więc to nie jest krytyczny błąd, tylko niektórzy gracze otrzymają nie potrzebną wiadomość. Ukryty błąd logiczny. Witam @Kormic, dziękuję za odpowiedź szczerze do mnie pozytywną. Pozdrawiam #Knugi
  17. knugi

    Vouchery z kodem

    Wybacz @Saanjuk ale Twój kod ma dwa małe błądy. W utworzeniu kodu sprawdzasz utworzony kod czy nie został wcześniej wygenerowany, i nawet jeżeli nie był wygenerowany to drugi raz i tak go generuje. set {_code} to random 6 char string from `a-Z0-9` #Tworzysz kod if {vouchers::*} contains {_code}: #Sprwadzasz go send "&c&lBłąd! &cTaki kod został już utworzony!" #Wysylasz blad i generujesz nowy send "&eGeneruje nowy kod..." set {_code} to random 6 char string from `a-Z0-9` #Ale jezeli go nie bylo to i tak generujesz nowy ktory i tak moze sie powtorzyc A drugi błąd to taki, że w ogóle nie usuwasz zmiennych co zapełnia bazę danych i zabiera miejsce na dysku. Po co przetrzymywać kod w takiej postaci? {vouchers:1} = 123456 {vouchers::123456::1} = "VIP" {vouchers::123456::2} = "expired". Można to po prostu zrobić w {vouchers::%kod%"} = "ranga". I jak się to wykorzysta to kasować zmienną. A że drugi raz powtórzy się ten sam kod jak ktoś go wykorzysta to nic nie znaczy o niczym nie świadczy. Patrząc z drugiej strony, to gdy wykorzystamy wszystkie możliwości tworzenia kodu i skrypt nie może stworzyć nowego kodu? Zrobiłeś obejście który napisałem w punkcie pierwszym, ale że nie usuwasz zmiennych dalej jest expire w nim i gracz nie mógłby go wykorzystać. A to jest błąd poważny. Spróbuj zrozumieć to co napisałem i napisz czy mam rację czy się z tym nie zgadzasz. Pozdrawiam #Knugi P.S Autorze tematu, mimo że nie napisałem skryptu, to nie myśl że Tobie nie pomagam. Pomagam Tobie uzyskać lepszy skrypt autorstwa pana powyżej oraz pomagam panu wyżej pisać lepsze skrypty.
  18. ChatGPT to może jedynie mi berło czyścić, bo on kompletnie na skryptach się nie zna. Zauważyłem, że na początku bierzesz null do szans zamiast z opcji. I masz powalone taby. I jeżeli to pisał ChatGPT to on lepiej niech skryptów nie pisze
  19. knugi

    Ciekawy problem

    Błąd jest, bo nie wykryło wersji pluginu. Źle skompilowales? Bo później musisz to zaimplementować. P.message(FixColor(message));
  20. knugi

    Ciekawy problem

    Tylko po co te replace? ChatColor.translateAlternateColorCodes('&', m)
  21. To mam rozumieć, że chcesz mieć tęczowe wiadomości, ale jak dasz kolor to ma tęcza się wyłączać aż do &r? Słabo to wytłumaczyłes.
  22. Tak, ja wiem.
  23. Jeżeli chodzi Tobie o grę kółko i krzyżyk to jest tak zaprogramowany. Zawsze masz możliwość napisania do tego ulepszonej wersji, że komputer będzie przewidywał lepsze ruchy. Pozdrawiam
  24. Można prościej, lecz wpadamy tutaj w błędne koło. Ty masz rację i ja mam rację. Fakt, ten drugi argument jest tutaj całkowicie nie potrzebny. Można zakładać, że autor tematu skopiował to z jakiegoś innego skryptu i zapomniał usunąć lub nie wiedział czy on jest potrzebny czy nie to zostawił. Nie mi to oceniać, a że znajduje się w takim dziale jakim się znajduje to nie mogę krytykować. Jedynie możemy spekulować. Fakt, komenda która wykonuje inną komendę, śmieszne, lecz prawdziwe i o dziwo niekiedy całkiem użyteczne. Pomijając post kolegi powyżej, że plugin oferuje własne alliasy. A co do drugiej części to jestem zdania tego, że kto chce używać "usage" to niech sobie używa i w takich prostych komendach może być nawet bardziej czytelne. Przyznaję Ci rację. Ale nie zabraniaj komuś używać opcjonalnych argumentów mimo że ich nie wykorzystuje Pozdrawiam.
×
×
  • Dodaj nową pozycję...