Jak wykryć użycie czatu głosowego?
PANDA_2zl
13.03.2023
A z tym się bawiłeś? https://amxx.pl/topi...ces-management/
MocnyAmper
13.03.2023
Mam ReGameDLL version: 5.21.0.546-dev.
Tego pluginu nie próbowałem, ale ten VTC powinien działać przecież...
MocnyAmper
13.03.2023
EDIT:
Znalazłem jeszcze coś takiego jak Revoice Plus i do niego voice utils. Tam jest forward VU_OnStartSpeak() którego mógłbym użyć. Jak zaintstalować to voice utils?
MocnyAmper
13.03.2023
Tak, widziałem. Chodzi mi bardziej o to, że muszę osobno do /addons/ wrzucić ten revoice plus, a potem jeszcze do /amxmodx/modules/voice_utils_amxx_i386.so? I jak mam to dopisać do pliku modules.ini?
PANDA_2zl
13.03.2023
MocnyAmper
13.03.2023
Tak też robiłem, ale wywala mi błąd jak wpisze amxx plugins:
(6) Load fails: Module/Library "voice_utils" required for plugin. Check modules.ini.
Wrzuciłem voice_utils_amxx_i386.so do folderu modules i dopisałem voice_utils do modules.ini
Za to w meta list wygląda chyba wporządku:
[21] VoiceUtils RUN - voice_utils_amxx_i386.so v1.0.0 pl2 ANY ANY
Robiin
13.03.2023
Pytanie czy w ogóle potrzebujesz revoice? Nie napisałeś nigdzie co tak naprawdę próbujesz osiągnąć tym, że blokujesz komuś możliwość rozmawiania. To ma być jakiś system gagowania?
MocnyAmper
13.03.2023
Coś w tym stylu. Mam swój własny system banowania i pomyślałem, że dodam taką funkcje, że jak ktoś dostanie bana to chce mu jednocześnie zablokować od razu możliwość pisania i mówienia przez mikro. I jednocześnie żeby mu się jakaś wesoła muzyczka na otarcie łez włączyła jak wciśnie "K" Z pisaniem nie było problemu, gorzej z tym czatem głosowym.
MocnyAmper
13.03.2023
No wszystko fajnie, tylko nadal potrzebuję wykryć kiedy gracz próbuje coś powiedzieć przez mikro...
Tego revoice i tak używałem wcześniej, więc bez większej różnicy.
PANDA_2zl
13.03.2023
No wszystko fajnie, tylko nadal potrzebuję wykryć kiedy gracz próbuje coś powiedzieć przez mikro...
Tego revoice i tak używałem wcześniej, więc bez większej różnicy.
No to wszystko jest w tym pluginie, nie rozumiem o co chodzi, skoro to plugin od gagów + jest API od razu
Robiin
13.03.2023
Dokładnie, masz wszystko czego potrzebujesz. Kwestia logiki w kodzie.
Po pierwszym użyciu mikro dajesz graczowi blokadę i włączasz mu muzyczke czy co tam chcesz. Jeśli event wykona się kolejny raz (za 0.3 sekundy), to już będzie zablokowane i returnujesz z supercede - a w efekcie masz jednorazowe wykonanie jakiejś tam funkcji, w twoim przypadku blokada mikro i włączenie muzyki.
MocnyAmper
13.03.2023

MocnyAmper
15.03.2023
W tym pluginie też jest to oparte na FM_Voice_SetClientListening. Więc wyciągnąłem to z kodu i mam coś takiego jak wcześniej:
#include <amxmodx> #include <amxmisc> #include <fakemeta> new bool:lock[33]; public plugin_init() { register_plugin("test", "1.0", "sebxx"); register_forward(FM_Voice_SetClientListening, "PlayerVoiceSpeak", 0); } public client_connect(id) lock[id] = false; public PlayerVoiceSpeak(receiver, id) { if ( receiver == id || !is_user_connected(id) || lock[id] ) return FMRES_IGNORED; set_task(5.0, "unlock", id+4510); client_print(id, print_center, "SPEAKING!"); return FMRES_IGNORED; } public unlock(id) lock[id-4510] = false;
Teraz po wciśnięciu przycisku K nic się przez jakiś czas nie dzieje, a potem cały czas wyświetla client_print()...
MocnyAmper
15.03.2023
EDIT: A dobra, widze. Zapomniałem ustawić lock na true
Ale teraz z kolei pokazuje się napis, znika, ale za chwile znowu się sam pokazuje, chociaż nie wciskam już "K". I tak w kółko
Robiin
06.05.2023
Wypisz id w client_print. Jedyne co mi przychodzi do głowy to id == 0, dlatego ci się pokazuje wiadomość na czacie (a raczej nie tylko tobie, a całemu serwerowi). Przy okazji pokaż aktualny kod