Ranking
Popularna zawartość
Treść z najwyższą reputacją w 09/12/20 uwzględniając wszystkie działy
-
Skrypty
gnomq oraz jeden pozostały przyznał(a) reputację PanMaruda za pytanie
Może... ale nie musi... ale może... ale też i nie. Podajesz do wiadomości ilość ramu, gdzie tak naprawdę ma ona najmniejsze znaczenie jeżeli chodzi o efektywność serwera. Mówisz że nie ma żadnych błędów - tylko że błędy przy ładowaniu skryptu nie powodują lagów. Ale może jednak błąd gdzieś jest - ukryty w rozumowaniu, a nie w składni skripta? Skript o nim nie wie, więc i ty o nim nie wiesz ale może on tam jest? 60 skryptów a żadnego z nich nie podajesz do wglądu, więc nawet nie da się ocenić czy są dobrymi jakościowo skryptami czy zasobożernymi blokami kodu. Załatw sobie technika od wszystkiego, albo przynajmniej kogoś kto ma pojęcie o skryptach, wpuść go na serwer i jego wtedy pytaj czy wszystko jest dobrze i czy serwer wytrzyma. Bo w zasadzie na twoje pytanie mogę odpowiedzieć ogólnikowo podobnie jak towarzystwo powyżej: Zawsze sprawdzaj tps (gdy dodajesz coś nowego, gdy coś usuwasz, gdy wzrasta liczba graczy albo po prostu co jakiś czas) - najlepiej dodać sobie go gdzieś do stopki tablisty. Tps musi być zawsze stabilny i wynosić 20 (±0.01) - jeżeli wartość utrzymuje się na innym poziomie to sprawą należy się zainteresować, bo wtedy serwer nie wyrabia i będą występować mniej lub bardziej odczuwalne lagi. Jak wyeliminować nieznany błąd - na silniku Paper zrobić timingi - wpisujesz komendę /timings on i czekasz kilka/kilkanaście minut (w tym czasie serwer gromadzi informacje o wykorzystywaniu procesora przez poszczególne światy, chunki, pluginy, skrypty, zadania). Gdy już odczekasz wpisujesz /timings report i otrzymujesz link do strony na której wszystkie te logi są przedstawione. Tam wyszukujesz najbardziej zasobożerne źródła i je eliminujesz.2 punkty -
Frozen player
gnomq oraz jeden pozostały przyznał(a) reputację ShadowEk za pytanie
O, to dzięki za informacje, miałem jedynie na serwerze skript-mirror, nie używałem nigdy skript-reflect'a. Ale jeśli oferuje wsparcie, to być może się przeniosę. Dopiero po przeczytaniu drugiej raz twojej wypowiedzi, która znajduje się na górze, zrozumiałem dokładniej, bo początkowo myślałem, że event "on shoot" zadziała dopiero jak strzała uderzy wroga, mój błąd. Skrypty to ja piszę raz na rok, dlatego importowałem event.2 punkty -
Frozen player
gnomq oraz jeden pozostały przyznał(a) reputację Kormic za pytanie
Tak jak mówiłem, dobra robota z tym skryptem, szczerze ciężko o coś lepszego. Dodanie do listy albo do NBT pewnych informacji byłoby bezcenne, ale niestety działa to dość opornie.2 punkty -
Frozen player
gnomq oraz jeden pozostały przyznał(a) reputację Kormic za pytanie
Twój skrypt jest dość dobry, lecz ma jedną wadę. Jeżeli gracz wystrzeli wiele zamrażających strzał w jednym momencie, to tylko ta pierwsza, która trafi, spowoduje zamrożenie, reszta będzie bez efektu, gdyż zmienna się wyczyści. Próbowałem dodawać tag do NBT projectile'ów (to by było najlepsze), próbowałem również dodawać je do listy, niestety żadne z tych nie poskutkowało. Być może twój skrypt jest najlepszym wyjściem, nie wiadomo.2 punkty -
Frozen player
gnomq oraz jeden pozostały przyznał(a) reputację Kormic za pytanie
To nie zadziała, gdyż zanim strzała trafi kogoś, to osoba, która strzeliła może już w tym czasie zmienić narzędzie na coś innego.2 punkty -
Wyzwiska, również nawiązujące do zaburzeń rozwojowych (co zwiększa szkodliwość społeczną ) nie są dozwolone na forum. Nawet jeśli nie są bezpośrednio skierowane do osoby. Niemniej jednak w tym przypadku wynika to po części z kontekstu i ogólna szkodliwość jest niska - dlatego dostałeś 1 punkt czyli minimalną liczbę za takie przewinienie, więc decyzję moderatora uważam za słuszną.1 punkt
-
zależy - jedni stracą, drudzy nie - gracze który wejdą na serwer i do jego wyłączenia upłynie mniej jak 12h nigdy nie stracą swojego ekwipunku, cała reszta straci - tak kod napisany. Dostałeś w tamtym wątku też skrypt ode mnie - nie wiem czy go testowałeś (pewnie nie, tak samo jak ja) ale wydaje mi się że będzie działał. Tu od razu też informacja na temat wydajności (bo dopiero co pytałeś o 60 skryptów na serwerze) - jeżeli nawalisz takich rzeczy jak ci wysłał wyżej kormic, gdzie jest od zajebania pętli z czasówkami to raczej długo z takimi skryptami nie pociągniesz.1 punkt
-
Spróbuj w ten sposób: every 1 second: loop {ochrona::itemow::gracze::*}: if difference between {ochrona::itemow::czas::%loop-value%} and now is less than 12 hours: continue clear {ochrona::itemow::czas::%loop-value%} remove loop-value from {ochrona::itemow::gracze::*} if loop-value is online: send " &8● &cOchrona twoich itemów skończyła się! Powodzenia!" to loop-value else: add loop-value to {ochrona::itemow::powiadomienie::*} on first join: add player to {ochrona::itemow::gracze::*} set {ochrona::itemow::czas::%player%} to now on join: if {ochrona::itemow::powiadomienie::*} doesn't contain player: stop remove player from {ochrona::itemow::powiadomienie::*} send " &8● &cOchrona twoich itemów skończyła się! Powodzenia!" to player on death of player: if {ochrona::itemow::czas::%victim%} is not set: stop keep items and xp cancel drops Proszę. EDIT: Mała poprawka.1 punkt
-
Spróbuj tak: every 1 second: loop all players: if {butyHermesa::particles::*} contains loop-player: remove loop-player from {butyHermesa::particles::*} if loop-player's boots is not diamond boots named "&atest": continue apply potion of speed 3 without any particles to loop-player for 1 second add loop-player to {butyHermesa::particles::*} every 5 ticks: loop {butyHermesa::particles::*}: loop 3 times: play mob spawner flames at loop-value-1 oraz tak: every 5 ticks: loop all players: if loop-player's boots is not netherite boots named "&atest": continue apply potion of speed 3 without any particles to loop-player for 1 second loop 3 times: play mob spawner flames at loop-player1 punkt
-
every 1 second: loop all players: if loop-player's boots is not diamond boots named "&atest": continue apply potion of speed 3 without any particles to loop-player for 1 second play mob spawner flames at loop-player Dodaj sobie odpowiedni efekt (6 linijka) z tej listy: https://skriptlang.github.io/Skript/classes.html#visualeffect1 punkt
-
every 1 second: loop all players: if loop-player's boots is not netherite boots named "&atest": continue apply potion of speed 3 without any particles to loop-player for 1 second Gdyby event 'on armor change' (w Skript'cie) był bardziej rozbudowany i mógł przechwytywać zdjętą zbroję, to bym go użył. A że pozwala przechwycić tylko nową zbroję, to trzeba to zrobić to w ten sposób.1 punkt
-
Testowane, działa. every 1 second: loop all players: if {butyHermesa::lastLoc::%loop-player%} is not set: set {butyHermesa::lastLoc::%loop-player%} to location of the loop-player continue set {_dist} to distance between location of the loop-player and {butyHermesa::lastLoc::%loop-player%} if loop-player's boots is not netherite boots named "&atest": continue if loop-player has speed: if {_dist} is less than 0.1: remove speed from loop-player clear {butyHermesa::pokonaneBloki::%loop-player%} add round({_dist}) to {butyHermesa::pokonaneBloki::%loop-player%} set {butyHermesa::lastLoc::%loop-player%} to location of the loop-player if {butyHermesa::pokonaneBloki::%loop-player%} is less than 10: continue clear {butyHermesa::pokonaneBloki::%loop-player%} apply potion of speed 1 to loop-player for 3 minutes1 punkt
-
Dla wszystkich w potrzebie załączam funkcję translateTimespan(): function translateTimespan(t: timespan) :: text: set {_t} to "%{_t}%" replace all "seconds" with "sekund" in {_t} replace all "second" with "sekunde" in {_t} replace all "minutes" with "minut" in {_t} replace all "minute" with "minute" in {_t} replace all "hours" with "godzin" in {_t} replace all "hour" with "godzine" in {_t} replace all "months" with "miesiecy" in {_t} replace all "month" with "miesiac" in {_t} replace all "years" with "lat" in {_t} replace all "year" with "rok" in {_t} return "%{_t}%" Wystarczy ją wkleić gdzieś do kodu (najlepiej na górze).1 punkt
-
1. Przecież border sam w sobie blokuje przekraczanie granicy mapy (jeśli chcesz coś nowego, to sprecyzuj). 2. To można spokojnie zrobić. 3. To również jest łatwe do zrobienia. Odpowiedz na punkt nr 1, to będę w stanie pomóc.1 punkt
-
on right click: if player's tool is not golden pickaxe named "&atest": stop if clicked block is not bedrock: stop if {superKilof::cooldown::%player%} is not set: set {superKilof::cooldown::%player%} to now subtract 1 minute from {superKilof::cooldown::%player%} if difference between {superKilof::cooldown::%player%} and now is less than 1 minute: set {_c} to {superKilof::cooldown::%player%} add 1 minute to {_c} set {_diff} to difference between {_c} and now set {_diff} to translateTimespan({_diff}) send "&cMozesz uzyc niszczenia bedrocka ponownie za &6%{_diff}%&c!" to player stop set {superKilof::cooldown::%player%} to now break clicked block naturally create a fake explosion at clicked block Wymagana tutaj jest funkcja translateTimespan (ta z moich poprzednich skryptów z chociażby cooldownem na czat).1 punkt
-
Proszę. on consume: if event-item is not honey bottle named "&atest": stop if {honeyBottle::zachowanyEkwipunek::gracze::*} contains player: cancel event send "&cJuz raz wypiles butelke miodu, wiec przy najblizszej smierci twoj ekwipunek bedzie zachowany!" to player stop add player to {honeyBottle::zachowanyEkwipunek::gracze::*} send "&aPrzy najblizszej smierci twoj ekwipunek bedzie zachowany." to player on death: if {honeyBottle::zachowanyEkwipunek::gracze::*} doesn't contain victim: stop keep inventory and xp on respawn: if {honeyBottle::zachowanyEkwipunek::gracze::*} doesn't contain player: stop remove player from {honeyBottle::zachowanyEkwipunek::gracze::*} send "&aTwoj ekwipunek zostal zachowany dzieki mocy butelki!" to player1 punkt
-
Proszę. on right click: if player's tool is not golden pickaxe named "&atest": stop if clicked block is not bedrock: stop if {superKilof::cooldown::%player%} is not set: set {superKilof::cooldown::%player%} to now subtract 1 minute from {superKilof::cooldown::%player%} if difference between {superKilof::cooldown::%player%} and now is less than 1 minute: stop set {superKilof::cooldown::%player%} to now break targeted block naturally create a fake explosion at clicked block1 punkt
-
Dodałem nowy kod wyżej, sprawdzałem i działa.1 punkt
-
add 1 golden apple named "&atest" to slot (player's current hotbar slot) of player's inventory EDIT: Ulepszona wersja: on consume: if event-item is not golden apple named "&atest": stop set {_s} to player's current hotbar slot wait 1 tick add 1 golden apple named "&atest" to slot {_s} of player's inventory Proszę.1 punkt
-
1. Twoi gracze mają ciekawe nicki. 2. Ustawianie wiadomości odpada, chyba jedynie można zrobić &c&o*ignorujesz gracza &6%player%*. EDIT: Nie lepiej zrobić, że po prostu nic się nie pokazuje? Jeżeli jeden gracz będzie chciał coś od drugiego, to ten drugi dostanie np. 5x tę samą wiadomość.1 punkt
-
on chat: loop all players: if loop-player is player: continue if {ignorowani::%loop-player%::*} contains player: remove loop-player from chat recipients send "&c&o*ignorujesz tego gracza*" to loop-player command /ignore [<offline player>]: trigger: if arg 1 is not set: send "&cMusisz podac nick gracza, ktorego chcesz ignorowac!" to player stop if arg 1 is player: send "&cChcesz ignorowac samego siebie?" to player stop if {ignorowani::%player%::*} doesn't contain arg 1: add arg 1 to {ignorowani::%player%::*} send "&aOd teraz ignorujesz gracza &6%arg 1%&a." to player stop else: remove arg 1 from {ignorowani::%player%::*} send "&aJuz nie bedziesz ignorowal gracza &6%arg 1%&a." to player Proszę.1 punkt
-
command ignore <offline player>: trigger: if {ignore::%player%::*} contains arg: remove name of arg from {ignore::%player%::*} send "ignorujesz %arg%" else: add name of arg to {ignore::%player%::*} send "nie ignoreujesz %arg%" on chat: if event is not cancelled: loop all players: if {ignore::%loop-player%::*} contains name of player: send "ignoruejsz tego gracza" to loop-player remove loop-player from chat recipients1 punkt
-
Tylko jedno mnie zastanawia, dlaczego importowałeś przez skript-mirrora event 'on shoot'? On już jest w Skript'cie, nie ma potrzeby importowania go (no chyba, że o czymś nie wiem i przykładowo importowany event daje np. więcej wartości w event'cie, do których można się odnosić). Poza tym w mojej ocenie lepszy jest skript-reflect niż skript-mirror. Ten drugi jest już opuszczony, a ten pierwszy oferuje wsparcie.1 punkt
-
Z tym NBT nawet dobry pomysł, niech autor zdecyduje, czy ten skrypt mu wystarczy, czy o to mu chodziło1 punkt
-
Tak jak Virtuosso napisał, wszystko zależy od zawartości skryptu. Możesz mieć 100 skryptów z jakimiś komendami i funkcjami, a okaże się, że mniej obciążają niż 10, a nawet 5 skryptów z pętlami zapisującymi zmienne od każdego gracza. Graczy masz 20 (z tego co mi wiadomo), więc ciężko o obciążenia serwera, a skryptów najgorszego sortu raczej nie masz. Na tym screenie można zobaczyć, że alokowana pamięć nie sięga nawet 1 GB, czyli po prostu twojemu serwerowi wystarczyło w obecnej na screenie sytuacji ok. 800 - 900 MB pamięci RAM. Jeśli chcesz mieć bardziej szczegółowe informacje na temat tego co się dzieje na serwerze, możesz użyć komendy /timings on, a później po kilku, może kilkunastu minutach używasz komendy /timings paste.1 punkt
-
Wydaje mi się, że o to chodzi, żeby zamrożenie nie było możliwe do nabijania się jako efekt, byłoby to za silne (przynajmniej dla mnie). A to przypadkiem nie jest tak, że po wystrzale zmienna ustawia się automatycznie? Przynajmniej tak u mnie działało, gdy testowałem. Można też wrzucić usuwanie zmiennej pod "wait 2 seconds", chociaż to i tak nie ma znaczenia. Ja tam dałem jeszcze takie "ala zabezpieczenie", jeśli szybkość gracza jest większa niż 0, bo po co ustawiać szybkość gracza na 0, kiedy już jest ustawiona, może dlatego? Nie wiem szczerze mówiąc, jak będzie okej to spoko, jak nie to niech autor napisze co poprawić i to się zrobi // EDIT: Rozumiem, no tak, przecież. W jednym momencie to rzeczywiście będzie bez efektu, prawda. Wydaję mi się, że można dodawać 1 do zmiennej co każde wystrzelenie, a potem sprawdzać czy jest ona większa od zera, jeśli tak to wykonuje event, jeśli nie to przerywa i tyle Tylko by trzeba było sprawdzać, czy "entity" został trafiony, a to już jest bardziej ciekawe. Więcej bawienia się i straconego czasu1 punkt
-
import: org.bukkit.event.entity.EntityShootBowEvent on EntityShootBowEvent: set {_player} to event.getEntity() if {_player} is a player: if name of {_player}'s tool is "&aTest": set {bow.freeze::%{_player}%} to true on damage: projectile exists projectile is arrow attacker != victim if {bow.freeze::%attacker%} is set: delete {bow.freeze::%attacker%} set {_speed} to victim's walk speed if victim's walk speed > 0: set victim's walk speed to 0 wait 2 seconds set victim's walk speed to {_speed} on any movement: set {_location::%player%} to player's location if player's walk speed <= 0.01: remove jump boost from player apply jump boost -10 to player for 0.01 second teleport player to {_location::%player%} Wymagany skript-mirror1 punkt
-
Proszę. on consume of golden apple: wait 1 tick add 1 golden apple to slot (player's current hotbar slot) of player's inventory1 punkt
-
Przetestuj, powinno działać. every 1 second: loop all players: if {butyHermesa::lastLoc::%loop-player%} is not set: set {butyHermesa::lastLoc::%loop-player%} to location of the loop-player continue set {_dist} to distance between location of the loop-player and {butyHermesa::lastLoc::%loop-player%} if loop-player has speed: if {_dist} is less than 0.1: remove speed from loop-player if loop-player's boots is not netherite boots named "&atest": continue set {_dist} to distance between location of the loop-player and {butyHermesa::lastLoc::%loop-player%} add round({_dist}) to {butyHermesa::pokonaneBloki::%loop-player%} if {butyHermesa::pokonaneBloki::%loop-player%} is less than 10: continue clear {butyHermesa::pokonaneBloki::%loop-player%} apply potion of speed 1 to loop-player for 3 minutes1 punkt
-
To również nie zadziała, event 'on shoot' aktywuje się przy wystrzeleniu strzały, rzuceniu śnieżką itp.1 punkt
-
A, rozumiem. Czyli po prostu nadpisałeś komendę. W takim wypadku zrobiłbym to poprzez event 'on command'. on command "/pl": if sender is not console: if player has permission "minecast.pl": stop cancel event send " &8● &cTa komenda została wyłączona!" to player1 punkt
-
Frozen player
gnomq przyznał(a) reputację xXx_Skrypter_xXx za pytanie
Nie testowane, pisane z telefonu On damage: If attacker's tool is bow named "&atest": If damage was caused by projectile: If projectile is a arrow: If shooter is a attacker: Set walk speed of victim to 0 Wait 2 second Set walk speed of victim to 1 Wytabuj to sobie1 punkt -
Czyli przez skrypt masz to zablokowane, tak? Jak tak to daj mi ten skrypt, dodam do niego permisję.1 punkt
-
Proszę. every 1 second: loop all players: if loop-player is op: continue if {antiAfk::lastLoc::%loop-player%} is not set: set {antiAfk::lastLoc::%loop-player%} to location of loop-player continue if distance between {antiAfk::lastLoc::%loop-player%} and location of loop-player is greater than or equal to 0.5: clear {antiAfk::czasAfk::%loop-player%} continue add 1 to {antiAfk::czasAfk::%loop-player%} if {antiAfk::czasAfk::%loop-player%} is less than 1200: stop execute loop-player command "warp afk" clear {antiAfk::czasAfk::%loop-player%}1 punkt
-
Wszystko zależy od tego co te skrypty robią, bo jak byś miał np: 60 skryptów na komendy typu /pomoc to nawet vps przy 2gb ramu dałby rade + dochodzi do tego: wielkość mapy/ile graczy gra/jaki to tryb/ jak długo te skrypty działają/jak bardzo są obciążające itp1 punkt
-
Proszę wysłać na [email protected] maila z konta przypisanego do użytkownika gnomq z prośbą o jego usunięcie, a zostanie usunięte i będziesz mógł zmienić nick w sklepie.1 punkt
-
no, to nie jest chat w sk tylko "wsparcie" tej zmiennej w chat format, więc jak w plg dasz w formacie {LVL} to zamieni na wartośc.1 punkt
-
a skąd my mamy to wiedzieć? co znaczy dobra optymalizacja? czy dobra optymalizacja według ciebie = dobra optymalizacja według mnie? nie sądzę... nikt ci nie powie poda takich informacji bo nie da się tego przewidzieć - a nawet jeżeli poda to nie ma się tym co sugerować bo to są tylko i wyłącznie jego niczym niepoparte domysły to TY musisz sam znaleźć dobry sprzęt, sprawdzić jego możliwości przy twojej konfiguracji i wtedy samemu ocenić MNIEJ WIĘCEJ ilu graczy się na nim pomieści jednocześnie. No chyba że zależy ci na tym żeby ktoś podał jakąś losową liczbę, która pomoże ci podjąć decyzję o wynajęciu tego niebłahego sprzętu - to proszę - 478 graczy. Miłego tworzenia serwera.1 punkt
-
1 punkt
-
owszem, ale do bana - zalecam przeczytać tos discorda = ))1 punkt
-
Mega profesjonalne, szybkie i tanie usługi, odpowiada w 90% przypadków w 5 minut jak nie mniej; jeżeli twój serwer upada bo twój pseudo technik pisze pluginy już rok to paweU i Zbucki team to najlepszy wybór!1 punkt
-
Najwięcej postów w tygodniu
-
Najwięcej tematów w tygodniu
-
Aktywni użytkownicy
