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

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

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Плагины (от пользователей) » Connect player and country
Connect player and country
Beelzebub Дата: Понедельник, 08.10.2012, 02:08:44 | Сообщение # 1
Сообщений: 202
Репутация: 13 [ +/- ]
Описание:
Показывает какой игрок подключается к серверу его страну и стим айди. Плагин без кваров.
Можно использовать в качестве урока.

Гости не могут скачивать файлы


Сообщение отредактировал Beelzebub - Понедельник, 08.10.2012, 16:02:17
 
_wS_ Дата: Понедельник, 08.10.2012, 02:55:22 | Сообщение # 2
Thanks
Quote (Beelzebub)
Можно использовать в качестве урока.

-> nea (слишком много ошибок, хоть и кода мало)

Вот твой код:

Code
public bool:OnClientConnect(id)
{
     decl String:country[45];
     decl String:name[MAX_NAME_LENGTH];
     decl String:ip[64];
         
     GetClientName(id, name, sizeof(name));
   
     GetClientIP(id, ip, sizeof(ip));
     GeoipCountry(ip, country, sizeof(country));
         
     if (GetUserAdmin(id) == INVALID_ADMIN_ID)
     {
         PrintToChatAll("Игрок подключается %s из %s", name, country);
     }
     return true;
}

Функция "GetUserAdmin" бесполезна в событии "OnClientConnect", всегда будет INVALID_ADMIN_ID.
Использовать нужно в "OnClientPostAdminCheck".

Если GetUserAdmin(id) != INVALID_ADMIN_ID, то код выше становится бесполезным.
Его нужно использовать внутри условия.

Ты готовишь переменные с помощью decl, но не обезопасил их. Все эти три функции (GetClientName, GetClientIP, GeoipCountry), или какая-то из них - могут не сработать, и получится ты попробуешь вывести значение переменной, хотя в ней нет никакого значения - так и сервер упасть может.

grust
 
Beelzebub Дата: Понедельник, 08.10.2012, 11:35:35 | Сообщение # 3
Сообщений: 202
Репутация: 13 [ +/- ]
Понятно :) Спасибо за урок.

так будет правильно?

Code
public bool:OnClientConnect(client)
{
         decl String:country[45];
         decl String:name[MAX_NAME_LENGTH];
         decl String:ip[64];
         
         GetClientName(client, name, sizeof(name));
         
         GetClientIP(client, ip, sizeof(ip));
         GeoipCountry(ip, country, sizeof(country));
         
         PrintToChatAll("Игрок подключается %s из %s", name, country);
   
         return true;
}
 
duxa Дата: Понедельник, 08.10.2012, 15:07:57 | Сообщение # 4
Сообщений: 1
Репутация: 0 [ +/- ]
Могу предложить такой вариант:
Code

public bool:OnClientConnect(client)  
{  
  decl    String:szCountry[45],
    String:szIP[16];

  if(GetClientIP(client, szIP, sizeof(szIP)) && GeoipCountry(szIP, szCountry, sizeof(szCountry)))
  {
   PrintToChatAll("Игрок %N подключается из %s", client, szCountry);  
  }
  return true;
}
 
Beelzebub Дата: Понедельник, 08.10.2012, 16:00:01 | Сообщение # 5
Сообщений: 202
Репутация: 13 [ +/- ]
Я уже свой вариант сделал :) Новый.
 
Vadimreal Дата: Суббота, 21.03.2015, 17:25:02 | Сообщение # 6
Сообщений: 13
Репутация: 0 [ +/- ]
А как сюда добавить еще Ip адресс?
 
BarD Дата: Воскресенье, 22.03.2015, 16:24:28 | Сообщение # 7
Сообщений: 943
Репутация: 137 [ +/- ]
Код
public bool:OnClientConnect(client)   
{   
   decl    String:szCountry[45],  
     String:szIP[16];  

   if(GetClientIP(client, szIP, sizeof(szIP)) && GeoipCountry(szIP, szCountry, sizeof(szCountry)))  
   {  
    PrintToChatAll("Игрок %N подключается из %s (IP: %s)", client, szCountry, szIP);   
   }  
   return true;  
}
 
Форум » SourceMod >> CS:Source >> CSGO » Плагины (от пользователей) » Connect player and country
  • Страница 1 из 1
  • 1
Поиск: