Skocz do zawartości

PanMaruda

Użytkownik
  • Ilość zawartości

    1471
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    40

Treść opublikowana przez PanMaruda

  1. pierwsza sprawa jest taka, że skrócimy kod i poprawimy go wizualnie, ale patrząc bardziej praktycznie druga - skript jest jaki jest - ma swoje słabe i gorsze strony - trzeba je analizować i skutecznie omijać \ eliminować żeby nie wsadzić sobie na serwer wielkiego, zasobożernego kloca pamiętaj na przyszłość - im więcej mniejszych operacji tym gorzej: (załóżmy że mamy 10 graczy na serwerze) twój kod zapętli ich wszystkich i do każdego z nich wyśle 256 wiadomości - daje nam to 2500 pojedynczych operacji, więcej przesłanych pakietów i tak dalej - w skrócie mówiąc chujnia jeżeli stworzymy sobie zmienną z listą 100 pustych wiadomości (czyli tak jak w kodzie podałem) to wykonamy 100 operacji w pętli jeżeli wyślemy do gracza tą listę, to zostanie ona (a przynajmniej tak mi się wydaje) wysłana w postaci jednego pakietu - zatem wychodzi nam 10 operacji (pakietów) - w sumie daje nam to 110 operacji 2500 i 110 - jest różnica kolejna sprawa - zauważyłem niejednokrotnie że jeżeli w składni można podać listę zamiast pojedynczej wartości - to lepiej jest ją podać, zamiast ją zapętlać i wykonywać kod dla każdej z jej wartości, czyli np. #zamiast loop all players: loop {_lista::*}: send loop-value to loop-player #lepiej użyć send {_lista::*} to all players jeżeli zrobimy swoją pętlę to znowu - kod wygląda mniej czytelnie oraz procesor jest bardziej obciążany
  2. PanMaruda

    MOTD w skript

    nie mam pojęcia jak dokładnie działa bugneecord, aczkolwiek z tego co się orientuję to na serwerze lobby będziesz musiał wgrać plugin skript oraz dodatek obsługujący właśnie bugneecorda - potem musisz już normalnie korzystając z tego poradnika zrobić sobie skrypt tylko zamiast (przykładowo) liczby graczy z lobby, musisz pobrać liczbę graczy ze wszystkich pod-serwerów zsumować ją i dopiero wyświetlić - ot, cała filozofia.
  3. wymienisz te "feature'y"? bo ja niestety żadnych nie widzę. innowacja dla ciebie - zwykła sprawa dla obcujących w temacie oczywiście: im więcej działań wykonuje skrypt, tym bardziej obciążamy procesor, tym mniej skrypt jest optymalny, dlatego: zamiast 256 iteracji w pętli zrób ich gdzieś 50-100 - tyle wiadomości wystarczy żeby zakryć chat zamiast wysyłać za każdym razem osobno te 100 wiadomości do każdego gracza - dodaj 100 pustych wiadomości do zmiennej i wyślij ją do wszystkich graczy loop 100 times: add "" to {_lista::*} send {_lista::*} to all players #ewentualnie można dodać warunek sprawdzający permisję (https://skriptlang.github.io/Skript/expressions.html#ExprFilter) #send {_lista::*} to all players where [input has permission "chat.bypass"] żeby nie bawić się z nullem (<none>) lepiej użyć wyrażenia "SENDER", które nie może być nullem - zwróci albo nick gracz, albo konsolę, którzy użyli komendy - wtedy nie będziesz musiał w kodzie bawić się z takimi warunkami
  4. every 5 minutes: set {_} to (random element out of {randomStones::*}) set block at {_} to stone command /saves: trigger: add location of block at player to {randomStones::*} send "&aPomyślnie dodano lokalizację bloku na koordynatach &6%location of the player%&a." to player
  5. PanMaruda

    Chat

    Przyjacielu, ale wiadomości spoza tego świata się do niego dostaną - zablokowałeś tylko wyjście wiadomości
  6. send "%join all players with "",""%"
  7. PanMaruda

    Chat

    chat: world of player is "Poczekalnia": loop all players: world of loop-player is not "Poczekalnia": remove loop-player from chat recipients else: loop all players in world "Poczekalnia": remove loop-player from chat recipients
  8. PanMaruda

    Zmienna

    skoro zmiennej nigdzie nie zdefiniowałeś to jak ma ci cokolwiek wyświetlić? Musisz nadać zmiennej jakąś wartość, żeby później móc coś na niej działać
  9. pluginem protocol support spróbuj
  10. jak może dobrze działać, skoro piszesz że ??
  11. PanMaruda

    użycie muzyki z txt

    Można coś odtworzyć z plików serwera, o ile dźwięk jest w formacie nbt (dźwięki z notebloków)
  12. spróbuj użyć mojego skryptu mGUI (link w sygnaturze)
  13. zabrali nam shoutboxa...
    zatem piszę tutaj - zapraszam 

     

  14. Witam szanownych użytkowników, może ogólnie zacznę tak jak w tytule - pierwszy raz wziąłem się za coś innego niż Skript, akurat padło na Kotlina postawiłem sobie na początek przepisać jeden z moich skryptów na losowe kody (marudaCode) - no i jakoś coś wyszło, po kilku godzinach wypociłem trochę kodu... tutaj dochodzimy do sedna tematu - byłbym wdzięczny, gdyby ktoś z was (a najlepiej tych bardziej zorientowanych w temacie) spojrzał w to moje cudo i powiedział co jest źle, niepoprawnie, staroświecko i najlepiej wytłumaczył jak zrobić to lepiej i optymalniej.
  15. wystarczy zapisać współrzędne bloku w którym stoi gracz command /pos1: trigger: set {zadanie1} to (location of block at player) execute player command "hd create zadanie1 &uZadanie nr1 | Użyj komendy /zadanie1 aby wykonać zadanie" command /zadanie1: trigger: if (location of block at player) = {zadanie1}: send "SIEMA" else: send "Stań w dokładnej pozycji zadania1"
  16. a najlepiej jeżeli o gui chodzi to pobaw się moim skryptem mGUI (link w sygnaturze)
  17. wedle życzenia: command zaproszony <offline player>: trigger: if arg has played before: if {zaproszenie::%arg%} is not true: set {zaproszenie::%arg%} to true send "dostajesz nagrodę" else: send "dostałeś nagrodę" else: send "nie ma takiego gracza"
  18. błędu żadnego nie ma bo ten kod działa poprawnie, wina leży po stronie twojego serwera.
  19. death: attacker = player: victim != player: send action bar "&6Exp: {EXP_GIVE}" to attacker
  20. można, można zrobić wszystko... ale skrypt będzie miał pierdyliard linijek skrypt będzie lagował 100 razy bardziej niż dobry plugin ktoś się jeszcze powiesi jak będzie musiał to pisać nie dostaniesz takiego skryptu za darmo jeszcze się przekręcisz jak usłyszysz kwotę za takie zlecenie po co robić coś co już jest zrobione w kilku pluginach i działa szybko, lekko i zajebiście? zainteresuj się pluginem TAB od użytkownika Neznamy
  21. a zatem mamy do czynienia z opcją numer jeden - za stare wersje: jeżeli ten kod poniżej wywala ci unknown command to raczej nic z tym nie zrobisz - takie błędy są standardem wśród kilkuletnich wersji pluginów, które już od dawna nie otrzymują wsparcia od twórców command /chat [<text>]: permission: chat.admin permission message: &4>>Ty &cjestes &4chyba &cgłupi trigger: if arg 1 is not set: send "&0[&bF&eM&bC&0] &4Coś nie pykło" stop if arg 1 is set: if arg 1 is "on" or "off" or "clear" or "c": if arg 1 is "on": send "&0[&bF&eM&bC&0] &2Pomyślnie włączyłeś czat!" broadcast "&0[&bF&eM&bC&0] &7Czat został &2Włączony&7 przez &2%player%" set {chat.status} to true if arg 1 is "off": send "&0[&bF&eM&bC&0] &2Pomyślnie wyłączyłeś czat!" broadcast "&0[&bF&eM&bC&0] &7Czat został &cWyłączony&7 przez &c%player%" set {chat.status} to false if arg 1 is "clear" or "c": loop all players: loop 100 times: send "" to loop-player broadcast "&0[&bF&eM&bC&0] &7Czat zostal &cwyczyszczony&7 przez &c%player%" Najlepsze co teraz możesz zrobić to przenieść się na wersję 1.16.3 (najlepiej na silniku Paper), zaktualizować pluginy do najnowszych dostępnych wersji i wtedy wgrać te skrypty - raczej nie będą więcej sprawiać problemów.
  22. ten błąd z unknown command pojawia się często gdy: wersja gry (jak i pluginów jest za stara) pluginy są niekompatybilne z wersją korzystasz z craftbukkita plugin ma problem ze składnią (i sypie errorami do konsoli) najlepiej będzie jeżeli wypiszesz nam tutaj wszystko z poniższej listy: wersja serwera nazwa silnika wersja skripta (pod komendą /ver Skript) wersja Skelleta (/ver Skellet) [opcjonalnie] lista pozostałych dodatków do skripta
  23. PanMaruda

    Skrypt na report

    to ja może tak od serduszka dodam, że dopóki będziesz korzystał ze starych wersji pluginów, lub dziwnych silników pokroju bukkita, to takie błędy będą się pojawiały non stop i większość skryptów po prostu działać nie będzie proponuję zaktualizować serwer do wersji 1.15+ zaopatrzyć się w najnowsze pluginy i nie będzie żadnych problemów.
  24. według wzoru command /komenda: cooldown: 30 minutes aliases: aliasy permission: permisje trigger: kod
  25. PanMaruda

    Skrypt na //kit w gui

    dlaczego nie użyjesz skryptu kKits od knugiego?
×
×
  • Dodaj nową pozycję...