Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Привязка по IP
4atty Дата: Пятница, 11.09.2015, 23:29:04 | Сообщение # 1
Сообщений: 21
Репутация: 0 [ +/- ]
Всем привет, подскажите пожалуйста, как сделать привязку именно по IP адресу без порта. Чтобы плагин работал только на этом IP 11.111.11.111 на всех портах, на 22.222.22.222 чтобы не работал)
 
pro-health Дата: Суббота, 12.09.2015, 07:10:04 | Сообщение # 2
Сообщений: 188
Репутация: 5 [ +/- ]
http://world-source.ru/forum/102-2275-1
 
BarD Дата: Суббота, 12.09.2015, 12:46:33 | Сообщение # 3
Сообщений: 943
Репутация: 137 [ +/- ]
Код
public OnPluginStart()  
{  
      ////////////////////////////////////////////////////////  

      // на каком должен работать  
      new const String:IP_SERVER[] = "1.2.3.4";  

      /////////  

      new Handle:h_IP = FindConVar("hostip");  

      if (h_IP == INVALID_HANDLE)  
      {  
          SetFailState("h_IP == INVALID_HANDLE");  
          return;  
      }  

      new hostip = GetConVarInt(h_IP);  
      new ip1 = hostip >>> 24 & 255;  
      new ip2 = hostip >>> 16 & 255;  
      new ip3 = hostip >>> 8 & 255;  
      new ip4 = hostip & 255;  

      decl String:current_ip[75];  
      Format(current_ip, 75, "%d.%d.%d.%d", ip1, ip2, ip3, ip4);  
      if (strcmp(current_ip, IP_SERVER, false) != 0)  
      {  
          SetFailState("\nYour server: %s. Plugin for: %s", current_ip_port, IP_PORT);  
      }  

      ////////////////////////////////////////////////////////  
}

Держи. Переделал код wS'а.
 
Jon4ik Дата: Суббота, 12.09.2015, 14:49:57 | Сообщение # 4
Сообщений: 278
Репутация: 7 [ +/- ]
4atty,

SetFailState("\nYour server: %s. Plugin for: %s", current_ip_port, IP_PORT); поправь на current_ip

и IP_PORT вроде на IP_SERVER надо изменить


Сообщение отредактировал Jon4ik - Суббота, 12.09.2015, 14:50:53
 
4atty Дата: Суббота, 12.09.2015, 16:34:30 | Сообщение # 5
Сообщений: 21
Репутация: 0 [ +/- ]
Jon4ik, спасибо. Все получилось)
 
BarD Дата: Воскресенье, 13.09.2015, 08:35:24 | Сообщение # 6
Сообщений: 943
Репутация: 137 [ +/- ]
Цитата 4atty ()
Проверил, выдает ошибку при компиляции, вот скрин


Цитата Jon4ik ()
поправь на current_ip
и IP_PORT вроде на IP_SERVER надо изменить


Да, не заметил) Извините :)
 
Jon4ik Дата: Воскресенье, 13.09.2015, 11:50:57 | Сообщение # 7
Сообщений: 278
Репутация: 7 [ +/- ]
Мне кажется лучше делать вообще так:

Код

#define plugin "myplugin"
public OnPluginStart()     
{     
         ////////////////////////////////////////////////////////     

         // на каком должен работать     
         new const String:IP_SERVER[] = "1.2.3.4";     

         /////////     

         new Handle:h_IP = FindConVar("hostip");     

         if (h_IP == INVALID_HANDLE)     
         {     
             SetFailState("h_IP == INVALID_HANDLE");     
             return;     
         }     

        new hostip = GetConVarInt(h_IP);     
         new ip1 = hostip >>> 24 & 255;     
         new ip2 = hostip >>> 16 & 255;     
         new ip3 = hostip >>> 8 & 255;     
         new ip4 = hostip & 255;     

         decl String:current_ip[75];     
         Format(current_ip, 75, "%d.%d.%d.%d", ip1, ip2, ip3, ip4);     
         if (strcmp(current_ip, IP_SERVER, false) != 0)     
         {     
            LogError("\nYour server: %s. Plugin for: %s", current_ip, IP_SERVER);    
            ServerCommand("sm plugin unload %s",plugin);
         }     

         ////////////////////////////////////////////////////////     
}
    

т.к SetFailState выдает ошибки в логи какие то, а так в еррор логах будет только: Your server: 123456. Plugin for: 1259


Сообщение отредактировал Jon4ik - Воскресенье, 13.09.2015, 11:51:41
 
BarD Дата: Воскресенье, 13.09.2015, 12:04:39 | Сообщение # 8
Сообщений: 943
Репутация: 137 [ +/- ]
Jon4ik, ну, можно и так.


Сообщение отредактировал BarD - Воскресенье, 13.09.2015, 12:05:17
 
TEIN Дата: Воскресенье, 13.09.2015, 15:47:12 | Сообщение # 9
Сообщений: 563
Репутация: 78 [ +/- ]
выгружать по имени плагина - плохой способ, т.к. его можно изменить банально, ну а на счет ошибок - так это не проблема, сервер, которому предназначен данный плагине увидит ошибок


Сообщение отредактировал TEIN - Воскресенье, 13.09.2015, 15:48:00
 
Jon4ik Дата: Воскресенье, 13.09.2015, 16:07:11 | Сообщение # 10
Сообщений: 278
Репутация: 7 [ +/- ]
TEIN, вроде где то писали если сделать так

#define plugin "myplugin"

и потом так ServerCommand("sm plugin unload %s",plugin);

изменение имени не поможет


Сообщение отредактировал Jon4ik - Воскресенье, 13.09.2015, 16:07:27
 
Scarface_slv Дата: Воскресенье, 13.09.2015, 16:30:28 | Сообщение # 11
Сообщений: 737
Репутация: 61 [ +/- ]
Jon4ik, а не так?
Код

decl String:text[45];  
GetPluginFilename(GetMyHandle(), text, 45);  
ServerCommand("sm plugin unload %s", text);  
 
Jon4ik Дата: Понедельник, 14.09.2015, 20:36:02 | Сообщение # 12
Сообщений: 278
Репутация: 7 [ +/- ]
Scarface_slv, Можно и так наверное)
 
  • Страница 1 из 1
  • 1
Поиск: