Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Czy da się odblokować funkcje po wpisaniu hasła rcon?


Najlepsza odpowiedź Robiin, 20.04.2019 13:24

Spoiler
Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
20 odpowiedzi w tym temacie

#1 Manua-L

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

Napisano 24.03.2019 21:18

Witam, czy jest taka możliwość, aby funkcja działa po wpisaniu hasła rcon?


  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 29.03.2019 00:53

if(get_user_flags(id) & ADMIN_RCON)

  • +
  • -
  • 0

#3 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

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


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#4 Manua-L

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

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

  • +
  • -
  • 0

#5 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

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.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#6 Manua-L

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

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

  • +
  • -
  • 0

#7 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

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  ;P 
 


  • +
  • -
  • 0

#8 Manua-L

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

Napisano 12.04.2019 00:54

Zna ktoś odpowiedź, nie jestem tak zaawansowany, by odczytywać te biblioteki...
  • +
  • -
  • 0

#9 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 12.04.2019 07:39

Nie możesz zrobić menu, które odpali messagemode i przechwytywać input, porównywać do cvara rcon_password, po czym już hasAccess[index] = true?
  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#10 Ogen Dogen

    Czempion

  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

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();
    }

DarkGL (12.04.2019 18:10):
Jesli to zadziala to przekombinowałem w mysleniu xD

  • +
  • -
  • 1

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#11 Manua-L

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

Napisano 19.04.2019 14:41

dobra działa dzięki bardzo.


  • +
  • -
  • 0

#12 Manua-L

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

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

  • +
  • -
  • 0

#13 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 19.04.2019 20:26

Kiedy wywołujesz rconMatch? Pamiętaj, że client_cmd nie zawsze zadziała.


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#14 Manua-L

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

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

  • +
  • -
  • 0

#15 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 20.04.2019 10:23

Bazując na kodzie:

Spoiler

 

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.


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#16 Manua-L

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

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

  • +
  • -
  • 0

#17 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 20.04.2019 11:23

Nie rozumiem, wyjaśnij i daj jakiś konkretny przykład


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#18 Manua-L

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

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

  • +
  • -
  • 0

#19 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

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:

Spoiler

  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#20 Manua-L

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:71
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Częstochowa
Offline

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

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych