Skocz do zawartości

Rekomendowane odpowiedzi

Kod:
Kod v1.0.0https://code.skript.pl/MDbtPddA/
Kod v1.0.1https://code.skript.pl/slvSAVnQ/
Kod v1.0.2https://code.skript.pl/K0EbQkoL/
Kod v1.0.3https://code.skript.pl/c6oo360N/ - Poprawione przez @HeezQ - dziękuje za pomoc :) 
Komendy i permissie:
v1.0.0
/warn [NICK] [POWOD] - skbans.warn
/delwarn [NICK] - skbans.delwarn
/zbanuj [NICK] [POWOD] - skbans.zbanuj
/odbanuj [NICK] - skbans.odbanuj
v1.0.2
/tempban [NICK] [POWOD] [CZAS W SEKUNDACH]

Edytowane przez MrSzescianPL
v1.0.3
Odnośnik do komentarza
https://skript.pl/temat/16507-skbans-v103/
Udostępnij na innych stronach

Albo wziąłeś ten kod z jakiegoś pseudo edytora, albo nie wiem. Te wcięcia są tak dziwne, że wydaję mi się, że jest to plagiat.

command /warn [<text>] [<text>]:
		permission: skbans.warn
    permission message: &4Nie masz dostepu do tej komendy.

 

{warn.%arg 1%} is 2:
        	execute player command "/odbanuj %arg 1%"
        send "&e[&c&lSkBans&e] &4%player%&f zabral jedno ostrzezenie graczowi &a%arg 1%&f!" to all players
        set {warn.%arg 1%} to 2
        stop
{warn.%arg 

//edit - dlaczego jak chcesz usunąć warn'a to wykonuje się komenda /odbanuj, która usuwa bana? No to przykład plagiatu, chyba...

Edytowane przez KrejzolekPRO
Odnośnik do komentarza
https://skript.pl/temat/16507-skbans-v103/#findComment-112743
Udostępnij na innych stronach

Skrypt taki przeciętny, możesz dodać również #AUTORSKI# tempban, ban-ip, itp. :) Jest dużo możliwości, skrypt jeszcze raz powiem, jest ok lecz ostatnio widzę takich wiele, ponieważ jest to bardzo łatwe do napisania :) Czekam na ciekawe aktualizacje oraz będę śledził ten temat, bo wydaje się ciekawy ;) 

Odnośnik do komentarza
https://skript.pl/temat/16507-skbans-v103/#findComment-112771
Udostępnij na innych stronach

10 minut temu, MrSzescianPL napisał:

UPDATE v1.0.2
Kod:
Kod v1.0.2https://code.skript.pl/K0EbQkoL/
v1.0.2

/tempban [NICK] [POWOD] [CZAS W SEKUNDACH]

Cieszę się z tego update'a :) Mam nadzieję, że rozwiniesz również tempbana (nie będzie trzeba podawać w sekundach :) Fajny update ;)

Odnośnik do komentarza
https://skript.pl/temat/16507-skbans-v103/#findComment-112884
Udostępnij na innych stronach

7 minut temu, MrSzescianPL napisał:

Jutro wyjdzie kolejny update, dzisiaj wyjdzie pierwsza wersja antybota.

Cieszę się, ale jednak mam do czego się przyczepić, a mianowicie w linijce 97 jest "wait %{czas.%arg 1%}%" A co się stanie, gdy serwer się wyłączy ? kaput .... Ban będzie leciał od nowa... :) trzymaj tutaj poprawioną wersję :)
Masz, kliknij tutaj :D

Edytowane przez HeezQ
Odnośnik do komentarza
https://skript.pl/temat/16507-skbans-v103/#findComment-112895
Udostępnij na innych stronach

Hm, całkiem ciekawe, napisane w bardzo prosty i przejrzysty sposób, sam korzystam z czegoś na bazie JBans (znajdziecie na forum) posiada on więcej funkcji i troszkę ładniej wyglada. Radzę zobaczyć i zedytowac swój ;) bardzo fajny projekt

Odnośnik do komentarza
https://skript.pl/temat/16507-skbans-v103/#findComment-112965
Udostępnij na innych stronach

No nie wiem czy bany w Skript to dobry pomysł...

Skript jest zbyt mało stabilny żeby robić na nim takie rzeczy jak uprawnienia czy bany.

Dodatkowo "on join" jest wykonywane po zalogowaniu gracza; powinieneś sprawdzać bana w logowaniu - on jest dodatkowo asynchroniczny. Nie wiem jak to działa w Skript. Powody przyjmują tylko jeden parametr, to znaczy, że jak podam "/warn Gracz Mowimy nie kapitalizmowi", to powodem będzie tylko "Mowimy".

Z powodów ujednolicenia komend, bo wszystkie inne takie są, powinny one być po angielsku. Komenda /tempban przyjmuje parametry w złej kolejności. Co jeżeli będę chciał podać liczbę w powodzie?

Linia 62 nie ma dwukropku. Skrypt nie zostanie sparsowany.

Loopowanie co sekundę wszystkich graczy tylko po to, żeby go odbanować jest czystym szaleństwem - to marnotrawstwo. Powinieneś zapisywać czas wygaśnięcia bana i sprawdzać go przy logowaniu. Poza tym jak chcesz odbanować gracza, który ma tempbana i nie ma go na serwerze (bo przecież ma bana)?

 

Pozdrawiam Czerwono 

Odnośnik do komentarza
https://skript.pl/temat/16507-skbans-v103/#findComment-113241
Udostępnij na innych stronach

3 godziny temu, TheMolkaPL napisał:

 

No nie wiem czy bany w Skript to dobry pomysł...

 

Nadal nie rozumiem, dlaczego to zły pomysł,
 

 

3 godziny temu, TheMolkaPL napisał:

Skript jest zbyt mało stabilny żeby robić na nim takie rzeczy jak uprawnienia czy bany.

"Uprawnienia" ? Słucham, jakie uprawnienia, przecież (if player has permission "...":) to jest czyste dobro... Jest to brane z PermissionEx - Podstawowego pluginu na permissje :/ Nadal nie rozumiem,

3 godziny temu, TheMolkaPL napisał:

Dodatkowo "on join" jest wykonywane po zalogowaniu gracza; powinieneś sprawdzać bana w logowaniu - on jest dodatkowo asynchroniczny. Nie wiem jak to działa w Skript. Powody przyjmują tylko jeden parametr, to znaczy, że jak podam "/warn Gracz Mowimy nie kapitalizmowi", to powodem będzie tylko "Mowimy".

event "on join" jest wykonywany wtedy, kiedy gracz WCHODZI na serwer lub próbuje się z nim połączyć :/ Po za tym, ostatni argument to tzw. "argument NIESKOŃCZONY" - Co to oznacza ? - Oznacza to, że jeżeli ostatni argument to "[<text>]" to można pisać tam tyle słów, czy czegokolwiek, że aż starach!... Tutaj masz przykład:
 

command /komenda [<ŚKOŃCZONE>] [<SKOŃCZONE>] [<NIESKOŃCZONE>]:
  	trigger:
  		send "%arg 1%"
  		send "%arg 2%"
  		send "%arg 3%" # ON MOŻE BYĆ NIESKOŃCZENIE DŁUGI!

 

3 godziny temu, TheMolkaPL napisał:

Z powodów ujednolicenia komend, bo wszystkie inne takie są, powinny one być po angielsku. Komenda /tempban przyjmuje parametry w złej kolejności. Co jeżeli będę chciał podać liczbę w powodzie?

Linia 62 nie ma dwukropku. Skrypt nie zostanie sparsowany.

wut ? Nadal nie rozumiem....

3 godziny temu, TheMolkaPL napisał:

Loopowanie co sekundę wszystkich graczy tylko po to, żeby go odbanować jest czystym szaleństwem - to marnotrawstwo. Powinieneś zapisywać czas wygaśnięcia bana i sprawdzać go przy logowaniu. Poza tym jak chcesz odbanować gracza, który ma tempbana i nie ma go na serwerze (bo przecież ma bana)?

Tutaj akurat się zgodzę, ale nie w pełni, ponieważ " Poza tym jak chcesz odbanować gracza, który ma tempbana i nie ma go na serwerze (bo przecież ma bana)?" Ale, przecież, "text" to za równo "player" jak i "offlineplayer" TEXT'em można uzasadnić DOSŁOWNIE wszystko!...
Dla mnie skrypt ciekawy, ale nie zbyt oryginalny, wiem przyłożyłem się do poprawy jego, ale i tak jest jeszcze nie sprawny w 100%

Odnośnik do komentarza
https://skript.pl/temat/16507-skbans-v103/#findComment-113302
Udostępnij na innych stronach

@HeezQ

Skript zapisuje wszystko w swoich zmiennych. Nie jest to dobre rozwiązanie do robienia banów, gdzie te powinny być zapisywane w bazie danych lub (mniej zalecane) na plikach lokalnych. Uszkodzenie tychże plików (na przykład usunięcie) możesz spowodować nieodwracalne skutki. Załóżmy na przykład zapełnienie się dysku. Skript nie będzie w stanie poprawnie działać, ponieważ inne skrypty będą próbowały zapisać coś w plikach i nie będzie przez to mógł przeprowadzić odczytu. Ostatecznie osoba z banem będzie mogła wejść na serwer...

 

Nigdzie nic nie ma związanego z PermissionsEx. Bukkit ma własne API do uprawnień, PermissionsEx z niego korzysta, aby graczom je dodawać oraz usuwać. Wszystko opiera się na PermissionAttachment. Nie mam też na myśli sprawdzania uprawnień, a ich przyznawania oraz usuwania, aka. klon PermissionsEx.

 

Skript wrappuje (czyli tworzy nowe obiekty (eventy) na podstawie oryginalnych (eventów)) swoje eventy na podstawie tych Bukkitowskich. To znaczy, że jeżeli wykonuje się event w Bukkicie to zostanie on także wywołany w Skript. Skript przy wchodzeniu na serwer ma 2 eventy - "on join" i "on connect". Ten pierwszy wykonywany jest przy Bukkitowskim PlayerJoinEvent, wtedy gdy gracz się zalogował, został zarejestrowany w Bukkit oraz wysyłana jest do niego świat. "on connect" wykonywany jest w PlayerLoginEvent (który jest przestarzały). Dopiero po nim następuje autoryzacja gracza. To w nim powinno się blokować wejście graczy na serwer. PlayerLoginEvent jest przestarzały ponieważ jest synchroniczny, to znaczy, że wykonuje się w głównym wątku serwera (w tym samym w którym jest fizyka i całego tickowanie). Z tego też powodu Skript nie nadaje się na bany, ponieważ przy próbie logowania może zabić serwer.

 

Wszystkie komendy powinny być po angielsku, ponieważ wszystkie inne w Bukkit oraz Minecraft są właśnie po angielsku. To tak jak programowanie - pisanie kodu w istniejącej aplikacji powinno być oparte o już zastosowany styl kodu, nie tworzenie nowego.

 

W tym ostatnim miałem na myśli to:

every 1 seconds:
    loop all players:
        if diference between {czas.%loop-player%} and now is larger than or equal to {_x.%loop-player%}:
            execute console command "odbanuj %loop-player%"
            stop

 

Robotnicze Pozdrowienia   $

Edytowane przez TheMolkaPL
Odnośnik do komentarza
https://skript.pl/temat/16507-skbans-v103/#findComment-113321
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...