Skocz do zawartości

Facebook Errorhead.pl

Obserwuj nas na Facebooku!

Obserwuj

Głosuj na nasze serwery!

Głosuj już teraz i pomóż w rozwoju serwerów

Zagłosuj

Zostan adminem na naszych serwerach!

Szybka rekrutacja jest otwarta

Złóż podanie!

Zgłoś błąd w stylu!

jeżeli widzisz jakieś błędy na forum, daj nam znać!

Zgłoś

Nie ma czasu na wyjaśnienia

Dołącz do nas lub zaloguj się, aby tworzyć z nami coś pięknego

FastKilleR

Wyciszanie graczy

Rekomendowane odpowiedzi

FastKilleR
Napisano (edytowane)

Na wielu serwerach jest jeden poważny problem jeśli chodzi o wyciszanie graczy. I mam tu na myśli amx_mute oraz amx_gag. Plugin który dodaje amx_mute jest często potrzebny żeby żywi admini słyszeli nieżywych graczy. Ale ten sam plugin niestety powoduje że amx_gag nie działa poprawnie i nie można wyłączyć mikrofonu graczowi. Można jedynie skorzystać z amx_mute jednak działa to jedynie tymczasowo, aż gracz wyjdzie z serwera lub aż zmieni się mapa. Tak więc nie ma sposobu żeby admin zmutował komuś mikrofon ma czas dłuższy niż do opuszczenia serwera przez gracza. A jednak jest to bardzo ważna funkcja, zarówno mutowanie graczy oraz słyszenie wszystkich graczy przez adminów. Na serwerze paintball działa już mój plugin który właśnie łączy te wszystkie funkcje. Jedyny taki który znalazłem w internecie (voice_control.amxx) ma sporo błędów, więc wrzucam tu swój plugin który działa praktycznie idealnie. Właścicielom serwera polecam go dodać oraz przy tym wyłączyć pluginy o nazwie: Voices_Management.amxx, voice_control.amxx, amx_gag.amxx jeśli te są włączone. @ Właściciel Serwera

 

Komendy dostępne dla graczy:

say /mute - gracz moze wyciszyc u siebie jakas inna osobe
say /vm - informacja o tym kto kogo slyszy

Komendy dostępne dla adminów:

amx_gag <nick> [time] [flags] - Wycisza gracza. Dostepne flagi: a - zmutuj chat, b - zmutuj team chat, c - wycisz mikrofon
amx_mute <nick> [time] [flags] - Wycisza gracza. Dostepne flagi: a - zmutuj chat, b - zmutuj team chat, c - wycisz mikrofon
amx_gagmenu, amx_mutemenu, amx_mute_menu - Otwiera menu mutowania graczy.
+voiceadmin - Do uzycia w formie bindu (bind l +voiceadmin). Podczas trzymania zbindowanego klawisza wszyscy który nie używają +voiceadmin zostaną wyciszeni oraz wszyscy usłyszą co mówi dany admin (nie trzeba trzymać drugiego klawisza od mikrofonu).

 

Wszystkie wyciszenia zapisują się w bazie danych. Tak więc plugin wymaga bazy danych, ale to raczej nie problem, raczej każdy serwer ma bazę danych, a tak łatwiej jest usuwać z niej wyciszenia graczy niż gdyby miał to być zapis w zwykłym pliku. Cvary do bazy danych:

mute_sql_host "127.0.0.1"
mute_sql_user "root"
mute_sql_pass ""
mute_sql_database ""

Wpisy w bazie danych wyglądają następująco:

996863298_Screenshot-22_07.png.c08a7b4c38b6d985bd9035439863e652.png

 

Dany wpis zostanie usunięty kiedy czas trwania wyciszenia minie. Jednak tylko wtedy kiedy gracz wejdzie na serwer lub admin go odmutuje. Aby te wpisy były usuwane na bieżąco należy odkomentować te linijkę (czyli usunąć //):

//#define MYSQL_FORCE_CLEAR

Jednak jeśli to zostanie będzie można wykorzystać stare wpisy chociażby do ustalenia czy wyciszenie spowodowało skończenie gry na tym serwerze przez gracza.

 

Flagi dostępu:

new const adminvoice_flag = ADMIN_CHAT; // mozliwosc uzywania +voiceadmin
new const adminlisten_flag = ADMIN_CHAT; // slyszenie wszystkich graczy
new const mute_flag = ADMIN_CHAT; // dostep do wyciszania graczy

 

Bez ingerencji adminów/graczy normalnie martwi gracze słyszą wszystkich graczy a żywi wszystkich żywych. Jednak co do żywych graczy można to zmienić:

new const alive_hear = 1; // 0 - zywi slysza wszystkich (zombie mod ?), 1 - zywi slysza zywych, 2 - zywi slysza team

Oczywiście po wprowadzeniu jakichkolwiek zmian w kodzie należy go jeszcze raz skompilować. Najlepiej kompilatorem 1.8.2.

 

W przeciwieństwie do normalnego amx_gag, tutaj czas jest liczony również gdy gracza nie ma na serwerze. Po zmutowaniu na godzinę, równo za godzinę ten gracz będzie mógł znowu pisać/mówić, nawet jeśli przez te godzinę nie było go na serwerze.

Zapis jest na steamid, zmiana nicku nie wystarczy aby obejść wyciszenie.

Nie ma żadnych dodatkowych logów ale szczerze mówiąc wpisy w bazie danych wystarczą.

 

 comm_manager.smacomm_manager.amxxunixtime.inc

 

Podsumowując amx_gag i Voices_Management nie współpracują ze sobą jeśli chodzi o mikrofon, przez co amx_gag nie działa na mikrofon. A oba te pluginy są potrzebne: amx_gag do wyciszania graczy a Voices_Management żeby admini wszystkich słyszeli, tak więc jest problem. Ten plugin zawiera obie te funkcję więc problem znika a wszystko ładnie działa. Tak więc uważam że powinno się to znaleźć na serwerach, chyba że właściciele mają inne rozwiązania. Poza tym hltv będzie słyszeć wszystkich graczy i nie trzeba będzie mu dodawać uprawnień żeby na demkach słyszeć mikrofon graczy.

Edytowane przez FastKilleR
  • Lubie to 2
  • Super 1
  • Szanuję! 3

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Joker.^^
Napisano (edytowane)

Miałem ten problem jakiś 1 rok temu Ale połączyłem sobie Najnowszy amx_Gag z VM. Ale wielki + za pomoc :) 

Edytowane przez `Joker.^^

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
FastKilleR
2 minuty temu, `Joker.^^ napisał:

Miałem ten problem jakiś 1 rok temu Ale połączyłem sobie Najnowszy amx_Gag z VM. Ale wielki + za pomoc :) 

 

Najnowszy ? Również próbowałem z najnowszym ale nic to nie dawało. Problem w tym że jak Voices_Management zrobi coś z mikrofonem graczy w FM_Voice_SetClientListening to później żaden inny plugin tego wychwyci i nie zmieni. A Voices_Management ustawia wartość 'true' nawet jeśli nie trzeba, więc amx_gag nie może zadziałać na mikrofon graczy. Chociaż możliwe że po znalezieniu amx_gag które działa jakoś inaczej i kombinowaniu z cvarami/kolejnością pluginów coś by się dało zrobić. Chyba że masz na myśli że dosłownie połączyłeś oba pluginy w jeden. Jednak uważam że komuś może się to przydać. Poza tym menu chyba jest bardziej zrozumiałe niż w normalnym amx_gag.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Joker.^^

@ FastKilleR nie używam tego pluginu "Voices_Management"  I mam w swoim VM mutowanie zrobione też z bazą sql a amx_gag mam osobno zrobione na serwie.

oHFdNfH.jpg

 

cgzxp6x.jpg

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
FastKilleR

@ `Joker.^^  wcześniej na paintballu było to samo. Z tym że to voice_control.amxx bugowało się i np. po zmutowaniu kogoś na zawsze nie można było usunąć tego muta. Trzeba było usuwać ręcznie z pliku. A i to nie wiem czy do końca pomagało bo jeśli plugin zapisywał to do zmiennych to musiałbym serwer wyłączyć żeby kogoś odmutować.

Tutaj menu mutowania jest bardziej czytelne. Najpierw wybierasz gracza, później czas, później zaznaczasz co ma zostać zmutowane i 'Zmutuj'. Lub jeśli jest już zmutowany wybierasz gracza i 

w następnym menu potwierdzasz usunięcie mute. Moim zdaniem lepiej niż w takim czymś wzorowanym na amx_slapmenu. A wszystko jest w bazie danych również dobrze czytelne i proste do edytowania.

  • Lubie to 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Mixtaz

Do mutowania używam tego pluginu: https://github.com/xPaw/AMXX-Gag

 

Również z zapisem na mySQL. Nie miałem okazji jeszcze go za dobrze wypróbować, ale po obejrzeniu kodu i po autorze który go pisał, wiem że jest na poziomie

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
FastKilleR
1 godzinę temu, Mixtaz napisał:

Do mutowania używam tego pluginu: https://github.com/xPaw/AMXX-Gag

 

Również z zapisem na mySQL. Nie miałem okazji jeszcze go za dobrze wypróbować, ale po obejrzeniu kodu i po autorze który go pisał, wiem że jest na poziomie

 

Widocznie nie zrozumiałeś tematu. amx_gag który podałeś używa funkcji z engine set_speak. Jednak forward fakemety FM_Voice_SetClientListening jest ważniejszy dla gry więc jeśli ten forward zwróci 'true' to set_speak już nic nie zrobi. A tak się składa że Voices_Management używa właśnie podanego wyżej forwardu i zwraca wartość true/false w każdym możliwym miejscu. Te dwa pluginy nie będą razem działać, jeśli dodasz na serwer VM to amx_gag nie zadziała na mikrofon. I wcale nie mówię że xPaw czy Exolent na niczym się nie znają. Ich kod jest dobry ale widocznie nie przewidzieli że serwery będą używać amx_gag razem z VM a wtedy ich kod nie zadziała poprawnie. Napisany przeze mnie plugin łączy funkcje obu tych pluginów i nie ma takich problemów, poza tym trochę mniej obciąża serwer oraz menu i zapis lepiej wyglądają. Gdybyś przeczytał temat ze zrozumieniem oraz zobaczył mój plugin wiedziałbyś na czym polega problem i po co napisałem ten temat.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Mixtaz
Napisano (edytowane)
30 minut temu, FastKilleR napisał:

Gdybyś przeczytał temat ze zrozumieniem oraz zobaczył mój plugin wiedziałbyś na czym polega problem i po co napisałem ten temat.

 

Właśnie to zrobiłem i:

 

ERROR [988]: invalid expression, assumed zero
ERROR [988 -- 992]: must be a constant expression; assumed zero

 

Mojemu kompilatorowi się to nie spodobało... ale przeczytałem kod ze zrozumieniem i naprawiłem Twój błąd ;)

 

/* Linijka 988 */ #else

zamiast

/* Linijka 988 */ #elseif

 

i proszę:

Success
Output: 


amxxpc exited with code 0.

 

Nie omieszkam wykorzystać na swoim serwerze w wolnej chwili, dzięki!

Edytowane przez Mixtaz
poprawka

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
FastKilleR

@ Mixtaz  ja nie miałem takiego problemu przy kompilacji. Dlatego powiedziałem żeby użyć kompilatora 1.8.2. Jednak rzeczywiście zamiast 'elseif' powinno być tam 'else'.

Poprawiłem już ten błąd oraz inny dotyczący mutowania na zawsze i dodałem do menu unmute również pozostały czas. Jeśli już ktoś używa tego pluginu to polecałbym pobrać go jeszcze raz i usunąć z bazy danych tabele 'mute'. Poza tym już wszystko na pewno działa dobrze.

  • Szanuję! 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Zegarmistrz Świata

Gag ban na 3maps działa bardzo dobrze, jest to plugin napisany ręcznie, jeżeli zaistnieje taka możliwość plugin, może zostać innym właścicielom oddany/przekazany.

  • Haha 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
FastKilleR
Napisano (edytowane)
W dniu 24.07.2020 o 10:15, Zegarmistrz Świata napisał:

Gag ban na 3maps działa bardzo dobrze, jest to plugin napisany ręcznie, jeżeli zaistnieje taka możliwość plugin, może zostać innym właścicielom oddany/przekazany.

Cóż... skoro ja już opublikowałem swoją wersje to po co kolejna z twojego serwera. Nie wiem jakie pluginy są na 3maps. Jeśli mówisz że napisałeś własny i na pewno przewidziałeś w nim każdą sytuacje (np. zmianie nicku, ja użyłem eventu i fakemety) i nie widzisz powodu żeby zmieniać ten plugin na inny to już twoja sprawa. Ja do niczego nie zmuszam, zauważyłem że amx_gag i VM bugują się ze sobą i w internecie nie ma żadnego całkiem działającego rozwiązania, dlatego napisałem ten temat, gdyby ktoś potrzebował poprawić ten błąd to już ma gotowe rozwiązanie.

Edytowane przez FastKilleR

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

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

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony zgadzasz się na Warunki użytkowania oraz Naszą Polityka prywatności