Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Cooldown na chat


Russiabljet

Rekomendowane odpowiedzi

Opublikowano

Witam, potrzebuję skrypt na cooldown pisania na chacie, wiem, że jest tego pełno, ale ja potrzebuję, żeby gracze mieli cooldown 5 sek a vip 3  sek. Z  góry dzięki za pomoc.

Opublikowano

@1361622928-U485574.pngRussiabljet

options:
	ilegracz: 5 #liczba sekund na odczekanie przez gracza
	ilevip: 3 #liczba sekund na odczekanie przez vip'a

# == TU JUŻ NIC NIE RUSZAJ ==#

variables:
	{czekaj.gracz.%player%} = false
	{czekaj.vip.%player%} = false
on chat:
	if player has permission is "chat.gracz":
		if {czekaj.gracz.%player%} is false:
			set {czekaj.gracz.%player%} to true
			wait {@ilegracz} second
			set {czekaj.gracz.%player%} to false
		else:
			cancel event
			stop
	if player has permission is "chat.vip":
		if {czekaj.vip.%player%} is false:
			set {czekaj.vip.%player%} to true
			wait {@ilevip} second
			set {czekaj.vip.%player%} to false
		else:
			cancel event
			stop
Opublikowano

@1361622928-U485574.pngRussiabljet

 

Witam,

oto ten skrypt. Dołączam do niego konfigurację, dzięki czemu obsługa jego będzie łatwiejsza.

Aby system uznał gracza za gracza z rangą VIP, dodaj do tej rangi uprawnienie: chatcooldown.vip

Jeżeli chcesz, aby administracja mogła pisać na chacie bez ograniczeń, w opcjach ustaw wartość 'adminchat-instant' na 'true', oraz dodaj uprawnienie chatcooldown.instant

rangom, której chcesz to umożliwić.

 

Skrypt:

 

 

 

#========================#
#   Script by: Palladin  #
#========================#

# KONFIGURACJA:

options:
        tag: &e[&bAntiSpam&e]&r # <-- przedrostek do wiadomości na chacie
        denymsg: &cDo napisania następnej wiadomości musisz odczekać kilka sekund. # <-- wiadomość wysyłana do gracza gdy użyje chatu podczas cooldownu
        vtime: 3 # <-- czas cooldownu chatu w sekundach dla gracza z uprawnieniem 'chatcooldown.vip'
        ptime: 5 # <-- czas cooldownu chatu w sekundach dla zwykłego gracza
        adminchat-instant: false # <-- jeżeli 'true', wszyscy gracze z uprawnieniem 'chatcooldown.instant' nie muszą czekać ani sekundy na cooldown chatu, jeżeli 'false', posiadanie tego uprawnienia nie zezwoli graczowi do natychmiastowego wysyłania wiadomości
        
# KOD:

on chat:
    if {@adminchat-instant} is true:
        if player has permission "chatcooldown.instant":
            stop
        else:
            if {chat-cooldown.%player%} is set:
                cancel event
                send "{@tag} {@denymsg}" to player
                stop
            else:
                set {chat-cooldown.%player%} to true
                if player has permission "vip.chatcooldown":
                    wait {@vtime} seconds
                    delete {chat-cooldown.%player%}
                    stop
                else:
                    wait {@ptime} seconds
                    delete {chat-cooldown.%player%}
                    stop
    else:
        if {chat-cooldown.%player%} is set:
            cancel event
            send "{@tag} {@denymsg}" to player
            stop
        else:
            set {chat-cooldown.%player%} to true
            if player has permission "vip.chatcooldown":
                wait {@vtime} seconds
                delete {chat-cooldown.%player%}
                stop
            else:
                wait {@ptime} seconds
                delete {chat-cooldown.%player%}
                stop

 

 

 

Jeżeli jest coś niejasne, wyjaśnię. Jeżeli w skrypcie są błędy, pisz, to ja ci pomogę.

 

@AlexsanderARG

 

Oj, sorry, nie zauważyłem że już odpowiedziałeś.

:D  Let's start with MPCForum :D

 

 

 

30/50/69/100/150/200/250...

Opublikowano

@1361622928-U485574.pngRussiabljet

 

Witam,

oto ten skrypt. Dołączam do niego konfigurację, dzięki czemu obsługa jego będzie łatwiejsza.

Aby system uznał gracza za gracza z rangą VIP, dodaj do tej rangi uprawnienie: chatcooldown.vip

Jeżeli chcesz, aby administracja mogła pisać na chacie bez ograniczeń, w opcjach ustaw wartość 'adminchat-instant' na 'true', oraz dodaj uprawnienie chatcooldown.instant

rangom, której chcesz to umożliwić.

 

Skrypt:

 

 

 

#========================#
#   Script by: Palladin  #
#========================#

# KONFIGURACJA:

options:
        tag: &e[&bAntiSpam&e]&r # <-- przedrostek do wiadomości na chacie
        denymsg: &cDo napisania następnej wiadomości musisz odczekać kilka sekund. # <-- wiadomość wysyłana do gracza gdy użyje chatu podczas cooldownu
        vtime: 3 # <-- czas cooldownu chatu w sekundach dla gracza z uprawnieniem 'chatcooldown.vip'
        ptime: 5 # <-- czas cooldownu chatu w sekundach dla zwykłego gracza
        adminchat-instant: false # <-- jeżeli 'true', wszyscy gracze z uprawnieniem 'chatcooldown.instant' nie muszą czekać ani sekundy na cooldown chatu, jeżeli 'false', posiadanie tego uprawnienia nie zezwoli graczowi do natychmiastowego wysyłania wiadomości
        
# KOD:

on chat:
    if {@adminchat-instant} is true:
        if player has permission "chatcooldown.instant":
            stop
        else:
            if {chat-cooldown.%player%} is set:
                cancel event
                send "{@tag} {@denymsg}" to player
                stop
            else:
                set {chat-cooldown.%player%} to true
                if player has permission "vip.chatcooldown":
                    wait {@vtime} seconds
                    delete {chat-cooldown.%player%}
                    stop
                else:
                    wait {@ptime} seconds
                    delete {chat-cooldown.%player%}
                    stop
    else:
        if {chat-cooldown.%player%} is set:
            cancel event
            send "{@tag} {@denymsg}" to player
            stop
        else:
            set {chat-cooldown.%player%} to true
            if player has permission "vip.chatcooldown":
                wait {@vtime} seconds
                delete {chat-cooldown.%player%}
                stop
            else:
                wait {@ptime} seconds
                delete {chat-cooldown.%player%}
                stop

<spoiler...>

 

Jeżeli jest coś niejasne, wyjaśnię. Jeżeli w skrypcie są błędy, pisz, to ja ci pomogę.

 

@AlexsanderARG

 

Oj, sorry, nie zauważyłem że już odpowiedziałeś.

Co to jest XDD w evencie jest jasne ze wysyla wiadomosc do gracza, wiec po co dajesz 'to player', czemu zamiast zmieniac zmienna na 'false', to ja usuwasz? Przeciez nie dales do variables, tej zmiennej, wiec znajda sie bugi.

 

 

 

 

 

 

@topic

Maly, krotki kod, malo rozni sie od kodu Alexsandra

variables:
	{czat.gracz::%player%} = false
	{czat.vip::%player%} = false
	
on chat:
	if player has permission "chat.gracz":
		if {czat.gracz::%player%} is true:
			cancel event
			send "&6Mozesz pisac co 5 sekund!"
			stop
		if {czat.gracz::%player%} is false:
			set {czat.gracz::%player%} to true
			wait 5 seconds
			set {czat.vip::%player%} to false
	if player has permission "chat.vip":
		if {czat.vip::%player%} is true:
			cancel event
			send "&6Mozesz pisac co 3 sekundy!"
			stop
		if {czat.vip::%player%} is false:
			set {czat.gracz::%player%} to true
			wait 3 seconds
			set {czat.vip::%player%} to false

Vipowi daj permisje chat.vip, graczowi chat.gracz

 

 

JAVA <3

 

Opublikowano

@1361622928-U485574.pngEntify

 

1. Usuwanie zmiennej to zmniejszanie wykorzystywanych zasobów dyskowych. Zanim napiszesz "Haha!" pomnóż se tą zmienną x500 graczy kiedykolwiek używajązych chatu na serwerze, razy ilość logów do logów (logi <data>.log.gz i log lastest.log) i wreszcie  razy ilość takich zmiennych - mamy już niepotrzebnie zajęte megabajty. Nie mówiąc już o pliku variables.csv o mniejszym poziomie kompresji niż pliki .log i .log.gz

2. Nie będzie żadnych bugów z tym związanych. Dałem specialnie "if <zmienna> is set:" by sprawdzać czy zmienna wogóle ISTNIEJE a nie na co jest ustawiona.

3. Twój skrypt, który podałeś panu @1361622928-U485574.pngRussiabljet jest zabójczo podobny do skryptu pana @AlexsanderARG

4. Dopisanie 'to player' nic nie zmieni, można w zasadzie to usunąć. Ale po co?

:D  Let's start with MPCForum :D

 

 

 

30/50/69/100/150/200/250...

Opublikowano

@1361622928-U485574.pngEntify

 

1. Usuwanie zmiennej to zmniejszanie wykorzystywanych zasobów dyskowych. Zanim napiszesz "Haha!" pomnóż se tą zmienną x500 graczy kiedykolwiek używajązych chatu na serwerze, razy ilość logów do logów (logi <data>.log.gz i log lastest.log) i wreszcie  razy ilość takich zmiennych - mamy już niepotrzebnie zajęte megabajty. Nie mówiąc już o pliku variables.csv o mniejszym poziomie kompresji niż pliki .log i .log.gz

2. Nie będzie żadnych bugów z tym związanych. Dałem specialnie "if <zmienna> is set:" by sprawdzać czy zmienna wogóle ISTNIEJE a nie na co jest ustawiona.

3. Twój skrypt, który podałeś panu @1361622928-U485574.pngRussiabljet jest zabójczo podobny do skryptu pana @AlexsanderARG

4. Dopisanie 'to player' nic nie zmieni, można w zasadzie to usunąć. Ale po co?

 

 

3. Twój skrypt, który podałeś panu @1361622928-U485574.pngRussiabljet jest zabójczo podobny do skryptu pana @AlexsanderARG

Uwierz, że tylko spojrzałem na jego skrypt, wlaczylem notepada, zaczalem pisac, sadzac po moich postach, chyba potrafie pisac skrypty, nie boj sie, nie zerznalem kodu jak niektorzy, pisałem jakies 2-3 minuty, wstawiłem, zobaczyłem ,że są lekko podobne.

 

Przedłużyłeś kod o kilka linijek, zobacz mój kod a swój, i tutaj nie rób ze skryptów niewiadomo czego, mam wiele skryptów na serwerze, które są podobne, zapisuja zmienne itp, i jakoś nie laguje.

 

 

JAVA <3

 

Opublikowano

@1361622928-U485574.pngEntify

 

Ja, uwierz, na swoim serwerze mam tysiące linijek kodów skryptów, które działają niemal nienagannie i są (jak na skrypty oczywiście) zoptymalizowane. I nie ma lagów. Jeżeli chodzi o podejrzenie podobieństwa, rzeczywiście mogłem się mylić. W sumie jest to chyba najlepsze rozwiązanie tego systemu. Podobieńswo jest tu raczej nieuniknione. Więc sorry.

 

Jestem wyczulony na optymalizacje kodu. To przez "właścicieli serwerów" którzy ciągle piszą: "Skrypty to szit, pluginy lepsze", bo dawali "every 1 tick" i myślą, że skrypty strasznie lagują serwer. Więc staram się, by optymalizacja była jak najwyższa zachęcając ludzi do skryptów. (Oczywiście nie mówię że pluginy są złe. Mówię, że skrypty są prawie tak dobre jak pluginy, tylko muszą być zoptymalizowane.)

:D  Let's start with MPCForum :D

 

 

 

30/50/69/100/150/200/250...

Opublikowano

@1361622928-U485574.pngRussiabljet

 

Proszę, załączony VIP+

 

UWAGA: Wklej CAŁY skrypt, naniosłem małe poprawki.

 

 

 

#========================#
#   Script by: Palladin  #
#========================#

# KONFIGURACJA:

options:
        tag: &e[&bAntiSpam&e]&r # <-- przedrostek do wiadomości na chacie
        denymsg: &cDo napisania następnej wiadomości musisz odczekać kilka sekund. # <-- wiadomość wysyłana do gracza gdy użyje chatu podczas cooldownu
        vtime: 3 # <-- czas cooldownu chatu w sekundach dla gracza z uprawnieniem 'chatcooldown.vip'
        ptime: 5 # <-- czas cooldownu chatu w sekundach dla zwykłego gracza
        vplustime: 1 # <-- czas cooldownu chatu w sekundach dla gracza z uprawnieniem 'chatcooldown.vipplus'
        adminchat-instant: false # <-- jeżeli 'true', wszyscy gracze z uprawnieniem 'chatcooldown.instant' nie muszą czekać ani sekundy na cooldown chatu, jeżeli 'false', posiadanie tego uprawnienia nie zezwoli graczowi do natychmiastowego wysyłania wiadomości
        
# KOD:

on chat:
    if {@adminchat-instant} is true:
        if player has permission "chatcooldown.instant":
            stop
        else:
            if {chat-cooldown.%player%} is set:
                cancel event
                send "{@tag} {@denymsg}" to player
                stop
            else:
                set {chat-cooldown.%player%} to true
                if player has permission "chatcooldown.vipplus":
                    wait {@vplustime} seconds
                    delete {chat-cooldown.%player%}
                    stop
                if player has permission "chatcooldown.vip":
                    wait {@vtime} seconds
                    delete {chat-cooldown.%player%}
                    stop
                else:
                    wait {@ptime} seconds
                    delete {chat-cooldown.%player%}
                    stop
    else:
        if {chat-cooldown.%player%} is set:
            cancel event
            send "{@tag} {@denymsg}" to player
            stop
        else:
            set {chat-cooldown.%player%} to true
            if player has permission "chatcooldown.vipplus":
                wait {@vplustime} seconds
                delete {chat-cooldown.%player%}
                stop
            if player has permission "chatcooldown.vip":
                wait {@vtime} seconds
                delete {chat-cooldown.%player%}
                stop
            else:
                wait {@ptime} seconds
                delete {chat-cooldown.%player%}
                stop

 

 

 

Liczę na like.

 

// Edit

 

Oczywiście jak są błędy, pisz.

:D  Let's start with MPCForum :D

 

 

 

30/50/69/100/150/200/250...

Opublikowano

Łap:

variables:
	{czat.gracz::%player%} = false
	{czat.vip::%player%} = false
	{czat.vipplus::%player%} = false
	
on chat:
	if player has permission "chat.gracz":
		if {czat.gracz::%player%} is true:
			cancel event
			send "&6Mozesz pisac co 5 sekund!"
			stop
		if {czat.gracz::%player%} is false:
			set {czat.gracz::%player%} to true
			wait 5 seconds
			set {czat.vip::%player%} to false
			stop
	if player has permission "chat.vip":
		if {czat.vip::%player%} is true:
			cancel event
			send "&6Mozesz pisac co 3 sekundy!"
			stop
		if {czat.vip::%player%} is false:
			set {czat.vip::%player%} to true
			wait 3 seconds
			set {czat.vip::%player%} to false
			stop
	if player has permission "chat.vipplus":
		if {czat.vipplus::%player%} is true:
			cancel event
			send "&6Mozesz pisac co 1 sekunde!"
			stop
		if {czat.vipplus::%player%} is false:
			set {czat.vipplus::%player%} to true
			wait 1 second
			set {czat.vipplus::%player%} to false
			stop

Daj vipowi+ permisje "chat.vipplus"

 

 

JAVA <3

 

Opublikowano

@Entify, gdy gracze maja tą permisje to nadal im pisze, że wiadomość mogą wysyłać co 5 sek, po 5 sek nadal im to samo pisze. Więc nie mogą pisać.

Gracze ci pisza? Sam przetestuj, ja tutaj nie widze bledu, po prostu moze caly czas wpisuja cos, zamiast poczekac?

 

 

JAVA <3

 

Opublikowano

 

@Entify, gdy gracze maja tą permisje to nadal im pisze, że wiadomość mogą wysyłać co 5 sek, po 5 sek nadal im to samo pisze. Więc nie mogą pisać.

Gracze ci pisza? Sam przetestuj, ja tutaj nie widze bledu, po prostu moze caly czas wpisuja cos, zamiast poczekac?

 

Sam testowałem. Nie działało, nawet po 10 sek.

 

@Palladin można tak zrobić, by pokazywało ile czasu zostało?

 

 

 

 

 

Opublikowano

@1361622928-U485574.pngRussiabljet

 

Proszę, już powinno pisać, ile jeszcze zostało.

 

Uwagi:

Mogą wyskoczyć błędy! Jeśli tak się stanie, to pisz!

 

 

 

#========================#
#   Script by: Palladin  #
#========================#

# KONFIGURACJA:

options:
        tag: &e[&bAntiSpam&e]&r # <-- przedrostek do wiadomości na chacie
        denymsg: &cDo napisania następnej wiadomości musisz odczekać jeszcze [reaming].# <-- wiadomość wysyłana do gracza gdy użyje chatu podczas cooldownu. Wpisz [reaming] tam, gdzie chcesz by był wyświetlany pozostały czas.
        vtime: 3 # <-- czas cooldownu chatu w sekundach dla gracza z uprawnieniem 'chatcooldown.vip'
        ptime: 5 # <-- czas cooldownu chatu w sekundach dla zwykłego gracza
vplustime: 1 # <-- czas cooldownu chatu w sekundach dla gracza z uprawnieniem 'chatcooldown.vipplus'
        adminchat-instant: false # <-- jeżeli 'true', wszyscy gracze z uprawnieniem 'chatcooldown.instant' nie muszą czekać ani sekundy na cooldown chatu, jeżeli 'false', posiadanie tego uprawnienia nie zezwoli graczowi do natychmiastowego wysyłania wiadomości
        
# KOD:

on chat:
    if {@adminchat-instant} is true:
        if player has permission "chatcooldown.instant":
            stop
        else:
            if {chat-cooldown.%player%} is set:
                cancel event
                set {_m} to {@denymsg}
                set {_t} to difference between {lasttyped.%player%} and now
                if player has permission "chatcooldown.vipplus":
                    replace all "[reaming]" with "%difference between {@vplustime} seconds and {_t}%" in {_m}
                if player has permission "chatcooldown.vip":
                    replace all "[reaming]" with "%difference between {@vtime} seconds and {_t}%" in {_m}
                if player doesn't have permission "chatcooldown.vip" or "chatcooldown.vipplus":
                    replace all "[reaming]" with "%difference between {@ptime} seconds and {_t}%" in {_m}
                send "{@tag} {_m}" to player
                stop
            else:
                set {chat-cooldown.%player%} to true
                set {lasttyped.%player%} to now
                if player has permission "chatcooldown.vipplus":
                    wait {@vplustime} seconds
                    delete {chat-cooldown.%player%}
                    delete {lasttyped.%player%}
                    stop
                if player has permission "chatcooldown.vip":
                    wait {@vtime} seconds
                    delete {chat-cooldown.%player%}
                    delete {lasttyped.%player%}
                    stop
                else:
                    wait {@ptime} seconds
                    delete {chat-cooldown.%player%}
                    delete {lasttyped.%player%}
                    stop
    else:
        if {chat-cooldown.%player%} is set:
            cancel event
            set {_m} to {@denymsg}
            set {_t} to difference between {lasttyped.%player%} and now
            if player has permission "chatcooldown.vipplus":
                replace all "[reaming]" with "%difference between {@vplustime} seconds and {_t}%" in {_m}
            if player has permission "chatcooldown.vip":
                replace all "[reaming]" with "%difference between {@vtime} seconds and {_t}%" in {_m}
            if player doesn't have permission "chatcooldown.vip" or "chatcooldown.vipplus":
                replace all "[reaming]" with "%difference between {@ptime} seconds and {_t}%" in {_m}
            send "{@tag} {_m}" to player
            stop
        else:
            set {chat-cooldown.%player%} to true
            if player has permission "chatcooldown.vipplus":
                wait {@vplustime} seconds
                delete {chat-cooldown.%player%}
                delete {lasttyped.%player%}
                stop
            if player has permission "chatcooldown.vip":
                wait {@vtime} seconds
                delete {chat-cooldown.%player%}
                delete {lasttyped.%player%}
                stop
            else:
                wait {@ptime} seconds
                delete {chat-cooldown.%player%}
                delete {lasttyped.%player%}
                stop

 

 

 

// Edit

 

Pozostały czas będzie napisany po angielsku. I tego nie da się za bardzo naprawić.

:D  Let's start with MPCForum :D

 

 

 

30/50/69/100/150/200/250...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...