Skocz do zawartości
Stp90PL

[PYTANIE] Autoryzacja RCON

Rekomendowane odpowiedzi

Witajcie, mam pytanko dotyczące autoryzacji RCON. Czy mógłby mi ktoś powiedzieć jak zrobić taką autoryzację, że:

 

 

-Aby gracz był adminem, musi być wpisany w skrypt.

-Gdy gracz nie jest wpisany w skrypt z automatu go banuje na IP lub na perm bana.

 

 

------

Da się coś takiego zrobić?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Da się, tylko powiedz mi jedna rzecz.

Ma go zbanowac w momencie kiedy:

Próbuje użyć jakiejkolwiek komendy rcon?

Próbuje się zalogowac do rcona?

Czy jeśli się zaloguje, ale nie jest do tego upoważniony w skrypcie?

Powiem ci tyle że moim zdaniem najlepszą opcja jest 3 bo ludzie często próbują to robić i będziesz miał wiele bezsensownych banow.

/Tel

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
public OnRconLoginAttempt(ip[], password[], success)

{

if(!success) //If the password was incorrect

{

printf("FAILED RCON LOGIN BY IP %s USING PASSWORD %s",ip, password);

new pip[16];

for(new i=0; i<MAX_PLAYERS; i++) //Loop through all players

{

GetPlayerIp(i, pip, sizeof(pip));

if(!strcmp(ip, pip, true)) //If a player's IP is the IP that failed the login

{

SendClientMessage(i, 0xFFFFFFFF, "Wrong Password. Bye!"); //Send a message

Ban(i); //They are now banned.

}

}

}

return 1;

}

oj źle przeczytałem.

 

Możesz to zrobić na zasadzie mySQL że w tabeli dodajesz czy gracz jest adminem następnie używasz warunku if.

Wszystko jest proste, tylko musisz pomyśleć.

Edytowane przez Mafia

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gdzieś tam na górze mapy:

enum e_Admins
{
    aNick[MAX_PLAYER_NAME]
};

new Admins[][e_Admins] =
{
     {"Nick1"},
     {"Nick2"},
     {"Nick3"}
}; 

OnRconLoginAttempt:

public OnRconLoginAttempt(ip[], password[], success)
{
     if(!success)
     {
          new name[MAX_PLAYER_NAME], pip[60];

          for(new x = 0; x < MAX_PLAYERS; x++) // Można również użyć pobieranie IP w OnPlayerConnect, zamiast tutaj
          {
               if(IsPlayerConnected(x))
               {
                     GetPlayerIp(x, pip, sizeof pip);
 
                     if(!strcmp(pip, ip, false))
                     {
                           GetPlayerName(x, name, sizeof name);

                           for(new y = 0; y < sizeof Admins; y++)
                           {
                                 if(strcmp(name, Admins[y][aNick], false))
                                 {
                                       Ban(x);
                                 }
                           }

                           break;
                     }
               }
          }
     }

     return 1;
}
Edytowane przez LeSzczurek

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

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

×