|
|
- // maxips FS limits the number of players connecting from a
- // single IP address.
-
- #include <a_samp>
-
- #define MAX_CONNECTIONS_FROM_IP 3
-
- //---------------------------------------------
-
- public OnFilterScriptInit()
- {
- printf("\n*** Player IP limiting FS (maxips) Loaded. Max connections from 1 IP = %d\n",MAX_CONNECTIONS_FROM_IP);
- }
-
- //---------------------------------------------
- // GetNumberOfPlayersOnThisIP
- // Returns the number of players connecting from the
- // provided IP address
-
- stock GetNumberOfPlayersOnThisIP(test_ip[])
- {
- new against_ip[32+1];
- new x = 0;
- new ip_count = 0;
- for(x=0; x<MAX_PLAYERS; x++) {
- if(IsPlayerConnected(x)) {
- GetPlayerIp(x,against_ip,32);
- if(!strcmp(against_ip,test_ip)) ip_count++;
- }
- }
- return ip_count;
- }
-
- //---------------------------------------------
-
- public OnPlayerConnect(playerid)
- {
- new connecting_ip[32+1];
- GetPlayerIp(playerid,connecting_ip,32);
- new num_players_on_ip = GetNumberOfPlayersOnThisIP(connecting_ip);
-
- if(num_players_on_ip > MAX_CONNECTIONS_FROM_IP) {
- printf("MAXIPs: Connecting player(%d) exceeded %d IP connections from %s.", playerid, MAX_CONNECTIONS_FROM_IP, connecting_ip);
- Kick(playerid);
- return 1;
- }
-
- return 0;
- }
-
- //---------------------------------------------
-
|