Witam, czy jest taka możliwość, aby funkcja działa po wpisaniu hasła rcon?
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Czy da się odblokować funkcje po wpisaniu hasła rcon?
#1
Napisano 24.03.2019 21:18
#2
Napisano 29.03.2019 00:53
if(get_user_flags(id) & ADMIN_RCON)
#3
Napisano 29.03.2019 00:57
if(get_user_flags(id) & ADMIN_RCON)
Panie Rafał, Pan nie czyta dzisiaj postów
Chodziło (tak mi się wydaje) o funkcję, która będzie dostępna dopiero po wpisaniu rcona. Coś w stylu forwardu, który wykona się po wpisaniu poprawnego rcona. Jeśli nie, to mnie zbiczujcie
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
#4
Napisano 30.03.2019 21:43
o to chodzi asiorr
chyba ze wystarczy to co napisał dark, wiec sprawdzę sobie, ale wątpię.
Użytkownik Manua-L edytował ten post 30.03.2019 21:53
#5
Napisano 30.03.2019 22:33
o to chodzi asiorr
chyba ze wystarczy to co napisał dark, wiec sprawdzę sobie, ale wątpię.
Napisałeś, że chcesz wykonać funkcję po wpisaniu hasła. Flaga ADMIN_RCON nie sprawdza czy wpisałeś hasło. To jest flaga, którą dodajesz w users.ini.
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
#6
Napisano 03.04.2019 19:08
o to chodzi asiorr
chyba ze wystarczy to co napisał dark, wiec sprawdzę sobie, ale wątpię.
Napisałeś, że chcesz wykonać funkcję po wpisaniu hasła. Flaga ADMIN_RCON nie sprawdza czy wpisałeś hasło. To jest flaga, którą dodajesz w users.ini.
no to też wiedziałem, ale pomyślałem, że może amxx jakoś zinterpretuje wpisanie hasła rcon w konsoli i przypisze na sesję flagę rcona i da dostęp do funkcji co by już rozwiązało problem (mówimy tutaj dalej o pluginie), jednak to nie działa w taki sposób, więc wracam do pytania.
Użytkownik Manua-L edytował ten post 03.04.2019 19:09
#7
Napisano 03.04.2019 22:40
W sumie myślałem nad tym chwile i jeśli flaga nie jest ustawiana to mamy problem.
Tutaj w rehlds rcon jest sprawdzany https://github.com/d...ine/sv_main.cpp( SV_Rcon )
Ale nie widzę nigdzie zapisywania kto ma dostęp , może hasło jest wysyłane za każdym razem przez klienta ( ? )
Ale pewnie i tak istnieje jakaś funkcja w amxx o której zapomniałem
#8
Napisano 12.04.2019 00:54
#9
Napisano 12.04.2019 07:39
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
#10
Napisano 12.04.2019 13:19
Czy przypadkiem gracz nie ma lokalnego cvara rcon_password (nie bijcie jeśli się mylę) ? W końcu do rcona można się zalogować bez wchodzenia na serwer.
Wtedy można by pobrać jego wartość przez get_user_info i porównywać z wartością tego na serwerze np. (nietestowane)
new local_rcon[32]; get_user_info(id, "rcon_password", local_rcon, charsmax(local_rcon)); new global_rcon[32]; get_cvar_string("rcon_password", global_rcon, charsmax(global_rcon)); if (equal(local_rcon, global_rcon)) { super_tajna_funkcja(); }
#11
Napisano 19.04.2019 14:41
dobra działa dzięki bardzo.
#12
Napisano 19.04.2019 16:45
dobra działa dzięki bardzo.
Nie jednak nie działa
public rconMatch(id){
new local_rcon[32];
get_user_info(id, "rcon_password", local_rcon, charsmax(local_rcon));
new global_rcon[32];
get_cvar_string("rcon_password", global_rcon, charsmax(global_rcon));
if (equal(local_rcon, global_rcon))
{
client_cmd(id,"say hej");
}
}
Nie działa wywołanie say hej
Użytkownik Manua-L edytował ten post 19.04.2019 16:49
#13
Napisano 19.04.2019 20:26
Kiedy wywołujesz rconMatch? Pamiętaj, że client_cmd nie zawsze zadziała.
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
#14
Napisano 20.04.2019 08:25
register_clcmd("haslo","rconMatch");
po wpisaniu w konsole tego "haslo" nic sie nie dzieje.
próbowałem też sposób z dodaniem flagi na komendę, chciałem do tego wtedy zrobić cvara, ale nie bardzo umiem przerobić tego cvara, na komendę ;/
Użytkownik Manua-L edytował ten post 20.04.2019 08:46
#15
Napisano 20.04.2019 10:23
Bazując na kodzie:
Jego output w mojej konsoli:
] rcon_password "rcon_password" is "" ] rcon_password 123 ] rc Comparing: (userPassword: ) to (rconPassword: abc) Password invalid ] rcon_password abc ] rc Comparing: (userPassword: ) to (rconPassword: abc) Password invalid
Problemem tutaj są dane, jakie możemy pobrać za pomocą get_user_info, które bazuje na komendzie "setinfo". Domyślnie są to wszystkie komendy, które możemy ustawić przez "setinfo key value", wszystkim znane "setinfo _pw password" jest jedną z tych komend. Przykładowa lista to:
] setinfo _cl_autowepswitch 0 bottomcolor 0 cl_dlmax 512 cl_lc 1 cl_lw 1 model arctic topcolor 0 _vgui_menus 0 _ah 0 _pw tutaj_nasze_haslo cl_updaterate 100 name aSior rate 25000 password pass
Dlatego właśnie nie pobierzesz tym natywem takich danych jak rcon_password bez wcześniejszego ich ustawiania. Zmienia się oblicze sytuacji, kiedy gracz zamiast "rcon_password pass" wpisze "setinfo rcon_password pass" - wtedy zadziała to tak:
] setinfo rcon_password abc ] rc Comparing: (userPassword: abc) to (rconPassword: abc) Password valid. ] setinfo _cl_autowepswitch 0 bottomcolor 0 cl_dlmax 512 cl_lc 1 cl_lw 1 model arctic topcolor 0 _vgui_menus 0 _ah 0 _pw tutaj_nasze_haslo cl_updaterate 100 name aSior rate 25000 password pass rcon_password abc
Na ten moment nie dam Ci sposobu, jakiego mógłbyś użyć ale powiem Ci, że jest możliwe, żeby wyciągnąć te dane od gracza.
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
#16
Napisano 20.04.2019 11:14
no dobra to w takim razie, mam inne rozwiązanie z dodaniem flagi, ale sam tego nie umiem zrobić, bo problemem nie jest ustawić na jaką komendę ma być wywołana fukncja, a jak napisać, by komenda mogła być formą edytowalnego cvaru.
tzn.
#include <amxmodx>
#define haslo ADMIN_RCON
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("haslo","rconMatch");
}public rconMatch(id){
if(!(get_user_flags(id) & haslo)){
set_user_flags(id, haslo);
}
}
ten kod ma na celu nadania rangi, wszystko działa, ale jak edytować kod, by "hasło" w register_clcmd dało się zmieniać z poziomu serwera, nie chciałbym co chwila kompilować pliku, bo to nie ma prawa bytu.
Użytkownik Manua-L edytował ten post 20.04.2019 11:38
#17
Napisano 20.04.2019 11:23
Nie rozumiem, wyjaśnij i daj jakiś konkretny przykład
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
#18
Napisano 20.04.2019 11:46
#include <amxmodx>
#define haslo ADMIN_RCON
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("haslo","rconMatch");
register_clcmd("say /menu","menu",ADMIN_RCON);
register_clcmd("say menu","menu",ADMIN_RCON);
register_clcmd("say_team /menu","menu",ADMIN_RCON);
register_clcmd("say_team menu","menu",ADMIN_RCON);
}
public rconMatch(id){
if(!(get_user_flags(id) & haslo)){
set_user_flags(id, haslo);
}
}
public menu(id){
if(!is_user_connected(id))
return PLUGIN_HANDLED
//Menu zarządzające #1
new menu=menu_create("Menu","menu");
menu_additem(menu,"Kickuj Gracza","0");
menu_additem(menu,"Banuj Gracza","1");
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL);
menu_setprop(menu,MPROP_BACKNAME,"Wstecz");
menu_setprop(menu,MPROP_NEXTNAME,"Dalej");
menu_setprop(menu,MPROP_EXITNAME,"Anuluj");
menu_display(id,menu,0);
return PLUGIN_HANDLED;
}
dopowiedzenie do wcześniejszego posta, bo nie mogłem edytować.
Użytkownik Manua-L edytował ten post 20.04.2019 11:49
#19
Napisano 20.04.2019 12:16
Możesz po prostu zmuszać gracza do wpisania rcona jednorazowo na mapę, żeby nadać mu dostęp do menu. Kod pisałem na szybko i pod AMXX 1.9, więc u Ciebie może się nie kompilować. Pytanie tylko czy o to Ci chodzi:
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
#20
Napisano 20.04.2019 13:05
Tak o to mi chodziło dzięki
szkoda że w 1.9, bo reszta mi nie będzie działać. Nie da rady tego napisać w 1.8 jeszcze? Jak nie, to sobie poradzę.
Użytkownik Manua-L edytował ten post 20.04.2019 13:09
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych