Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Убрать из плагина добавление тега [NO-UCP]
soap
Дата: Пятница, 13.01.2012, 00:24 | Сообщение # 1
офлайн

  • Сообщения: 100
  • Награды: 0
  • Замечания:
 
И снова Здравствуйте, у меня на сервере стоит античит UCP 7.0 и плагин noucp.amxx который позволяет заходить игрокам и без античита, но к игрокам без античита UCP он добавляет тег "[NO-UCP] " Как сделать что бы он не добавлял тег !? А то все теряют лвл
Code
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <ip>
#include <regex>

#define KickReason "CETb 3A6AHEHA! DOCTY/7 -> example.ru"

#define PROTECTED_ADMIN ADMIN_BAN
#define PROTECTED_USER ADMIN_LEVEL_G

// Comment to disable
//#define ACCEPT_ADMIN // Accept users with flag PROTECTED_ADMIN
//#define ACCEPT_USER // Accept users with flag PROTECTED_USER
//#define ACCEPT_STEAM // Accept users with steamid STEAM_0:
//#define ACCEPT_REVEMU // Accept users with steamid VALVE_0:
//#define ACCEPT_SUBNET // Accept users from allowed subnet

#define TAG_EVERYONE // Accept everyone and set tag for users without ucp. This ignores ACCEPT_* settings

// Uncomment only one:
// false for blacklist, true for whitelist
#define SUBNET_REVERSE false
//#define SUBNET_REVERSE true

new _debug = 1 // log info about every connect?

#define TASK_ID 9871 // For tag adding. Bounds 0..32. Change if overlap with other plugins

//##############################################################

// [Credits]
// jim_yang for amx_logged forward
// Hawk552 for CreateMultiForward
// Zefir for ip.inc
// Z@C,NO PASARAN,RUNET for BanSubnets
// max_rip for regex

#define PLUGIN "No-UCP"
#define VERSION "1.5"
#define AUTHOR "VoidLess"

#define NU_NOTCHECKED 0
#define NU_CHECKED 1
#define NU_HASUCP 2

new checked[33] // checked for access
new g_names[33][33] // name db for search

new Regex:compiledPattern

#if defined ACCEPT_SUBNET
new Array:g_networks
new g_network_num
new DeniedFile[64]
#endif

public plugin_init()
{
  register_plugin(PLUGIN,VERSION,AUTHOR)
  register_srvcmd("kzck", "KickIgnore", -1)
   
  static error[100]
  new ret
   
  compiledPattern = regex_compile("^^Login NO-UCP: <(.+)> <[0-9.]+> <[A-Za-z_0-9:]+>$",ret,error,sizeof error)
  if (ret < 0) set_fail_state(error)
   
  #if defined ACCEPT_SUBNET
  static confdir[64]
  get_configsdir(confdir, 63)
  format(DeniedFile, 63, "%s/BanSubnets/Denied2.ini", confdir)
   
  g_networks = ArrayCreate(32, 10)
   
  read_networks()
  log_amx("Startup: read %d banned networks", g_network_num )
  #endif
   
}

public plugin_natives()
{
  register_native("has_user_ucp", "native_has_user_ucp")
}

public client_connect(id)
{
  if(id != 0)
  {
   checked[id] = NU_NOTCHECKED
    
   static name[33]
   get_user_name(id, name, 32)
   copy(g_names[id], 32, name)
  }
}

public client_disconnect(id)
{
  if(id != 0)
  {
   checked[id] = NU_NOTCHECKED
   copy(g_names[id], 32, "")
  }
}

stock tag_add(id, name[])
{
  if ( !equali ( name, "[NO-UCP] ", 9 ) ) // Тега нет :/
  {
   format ( name, 31, "[NO-UCP] %s", name )
   //force_rename(id, name)
   set_task(0.5, "force_rename", TASK_ID + id, name, 31)
  }
}

stock tag_del(id, name[])
{
  if ( equali ( name, "[NO-UCP] ", 9 ) ) // Тег есть, но зачем?
  {
   replace ( name, 31, "[NO-UCP] ", "" )
   trim ( name )
   if (name[0] == EOS) copy(name, 7, "Player")
   //force_rename(id, name)
   set_task(0.5, "force_rename", TASK_ID + id, name, 31)
  }
}

public force_rename(name[], id)//id, name[]
{
  id -= TASK_ID
  if ( !is_user_connected(id) ) return 0
   
  engfunc(EngFunc_SetClientKeyValue, id, engfunc( EngFunc_GetInfoKeyBuffer, id ), "name", name)
  client_cmd(id, "name ^"%s^"; setinfo name ^"%s^"", name, name)
  return 0
}

stock search_name(name[])
{
  new i = 1
  for(; i<33; i++)
  {
   if( equal( name, g_names[i] ) ) return i
  }
  return 0
}

public native_has_user_ucp(plugin_id, param_count)
{
  if(param_count != 1) return 0
   
  new id = get_param(1)
  return (checked[id] == NU_HASUCP)
}

public KickIgnore(id, level, cid)
{
  return PLUGIN_HANDLED
}

forward amx_logged(plugin[], msg[]);
public amx_logged(plugin[], msg[])
{
  new index
  new name_len
  static logged_name[33]
  new ignore
  if(equali(plugin,"ucp.amxx",8))
  {
   if(equali(msg,"Login: ",7))
   {
    // TODO: regex
    name_len = copyc(logged_name, 32, msg[7], '|')
    copy(logged_name, name_len-1, logged_name)
    index = search_name(logged_name)
     
    if( 0 == user_has_ucp(logged_name, index) )
     shout_noucp_checked(index, 1)
   } else
   if(equali(msg,"Login NO-UCP: <",15))
   {
    if(regex_match_c(msg,compiledPattern,ignore) > 0)
    {
     regex_substr(compiledPattern,1,logged_name,32)
      
     index = search_name(logged_name)
      
     if( 0 == user_has_no_ucp(logged_name, index) )
      shout_noucp_checked(index, 0)
    } else {
     log_amx("[ERROR] Name not found in: %s", msg)
    }
   }
  }
  return PLUGIN_HANDLED
}

stock shout_noucp_checked(index, result)
{
  new iForward = CreateMultiForward("noucp_checked",ET_IGNORE, FP_CELL, FP_CELL),iReturn
  if(iForward < 0)
   return log_amx("Forward could not be created.")
   
  if(!ExecuteForward(iForward,iReturn, index, result))
   return log_amx("Could not execute forward.")
   
  return DestroyForward(iForward)
}

stock user_has_ucp(logged_name[], index)
{
  if(index == 0)
  {
   log_amx("[ERROR] Player not found [%s] %d (ucp)", logged_name, index)
   return -1
  }
  new userid = get_user_userid(index)
  static authid[33]
  get_user_authid(index, authid, 127)
  if ( _debug ) log_amx("UCP login: %s id=%d userid=%d steamid=%s", logged_name, index, userid, authid)
  checked[index] = NU_HASUCP
   
  return 0
}

stock user_has_no_ucp(logged_name[], index)
{
  if(index == 0)
  {
   log_amx("[ERROR] Player not found [%s] %d (no ucp)", logged_name, index)
   return -1
  }
   
  checked[index] = NU_CHECKED
  new userid = get_user_userid(index)
   
  #if defined TAG_EVERYONE
  tag_add(userid, logged_name)
   
  return 0
  #else
    
   #if defined ACCEPT_ADMIN
   if(access(index, PROTECTED_ADMIN))
   {
    if ( _debug ) log_amx("Admin login: %s id=%d userid=%d", logged_name, index, userid)
    return 0
   }
   #endif
    
   #if defined ACCEPT_USER
   if(access(index, PROTECTED_USER))
   {
    if ( _debug ) log_amx("s-Access login: %s id=%d userid=%d", logged_name, index, userid)
    return 0
   }
   #endif
    
   #if defined ACCEPT_STEAM
   static authid[33]
   get_user_authid(index, authid, 127)
   #else
    #if defined ACCEPT_REVEMU
    static authid[33]
    get_user_authid(index, authid, 127)
    #endif
   #endif
    
   #if defined ACCEPT_STEAM
   if(equali(authid,"STEAM_0:",8))
   {
    if ( _debug ) log_amx("Steam login: %s id=%d userid=%d steamid=%s", logged_name, index, userid, authid)
    return 0
   }
   #endif
    
   #if defined ACCEPT_REVEMU
   if(equali(authid,"VALVE_0:",8))
   {
    if ( _debug ) log_amx("RevEmu login: %s id=%d userid=%d steamid=%s", logged_name, index, userid, authid)
    return 0
   }
   #endif
    
   #if defined ACCEPT_SUBNET
   if(check_network(index) == SUBNET_REVERSE)
   {
    if ( _debug ) log_amx("Allowed subnet login: %s id=%d userid=%d steamid=%s", logged_name, index, userid, authid)
    return 0
   }
    
   if ( _debug ) log_amx("Blocked subnet: %s id=%d userid=%d steamid=%s", logged_name, index, userid, authid)
   #endif
    
   server_cmd("kick #%d %s", userid, KickReason)
   // Don't use server_exec here, or it will crash
    
   return -1
   
  #endif
}

#if defined ACCEPT_SUBNET
stock bool:check_network(index)
{
  if(g_network_num == 0) return false
   
  static ip[16], network[32]
  new i, bool:result
   
  get_user_ip(index, ip, 15, 0)
   
  for(; i<g_network_num; i++)
  {
   format(network, 31, "%a", ArrayGetStringHandle(g_networks, i))
   result = in_range(network, ip)
   if (result) return true
  }
   
  return false
}

stock read_networks()
{
  if ( !file_exists(DeniedFile) ) return 0
  if ( file_size(DeniedFile, 0) < 9 ) return 0
   
  new lineno, line[32], len
   
  while (read_file(DeniedFile, lineno++, line, 31, len)) {
   if ( len < 9 || line[0] == ';' )
    continue
    
   trim( line )
   ArrayPushString(g_networks, line)
   g_network_num++
  }
   
  return g_network_num
}
#endif

#if defined TAG_EVERYONE

public client_infochanged ( id ) // By Makzz
{
  static sName[32]
   
  if ( checked[id] == NU_CHECKED ) // Нет клиента
  {
   get_user_info ( id, "name", sName, 31 )
    
   tag_add(id, sName)
  }
  else if ( checked[id] == NU_HASUCP ) // Есть клиент
  {
   get_user_info ( id, "name", sName, 31 )
    
   tag_del(id,sName)
  }
}
#endif
 
SMaster
Дата: Пятница, 13.01.2012, 04:02 | Сообщение # 2
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
tag_add(id, sName) удали.

Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
soap
Дата: Пятница, 13.01.2012, 05:10 | Сообщение # 3
офлайн

  • Сообщения: 100
  • Награды: 0
  • Замечания:
 
хз че такое но я отключил плагин noucp.amxx и все равно без античита можно заходить ! и тег больше не добавляется! но все равно спасибо )
 
  • Страница 1 из 1
  • 1
Поиск: