AMX MOD X
Пятница, 26.04.2024, 20:02:10



Приветствую Вас Гость | RSS
[ Главная ] [ force_unmodified (наоборот) - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » force_unmodified (наоборот) (действие при наличии точно такого же файла)
force_unmodified (наоборот)
pikeДата: Вторник, 11.08.2009, 12:20:37 | Сообщение # 1
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Как реализовать сравнение клиентского файла с серверным, если совпадает действие ?
 
ScoottДата: Вторник, 11.08.2009, 15:51:05 | Сообщение # 2
Сержант
Группа: Пользователи
Сообщений: 35
Репутация: 1
Статус: Не в сети
по точнее можеш сказать?
 
pikeДата: Пятница, 14.08.2009, 14:22:32 | Сообщение # 3
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Клиент имеет файл к примеру Х , на сервере есть точно такой же Х.
При подключении клиента к серверу файлы сравниваюся,если одинаковые - кик.

Добавлено (2009-08-12, 4:35 Pm)
---------------------------------------------
Есть у кого идеи ?

Добавлено (2009-08-14, 11:43 Am)
---------------------------------------------
Кика после проверки файла нет.Зато есть запись в лог если файл клиента не совпадает с серверным или вообще отсутствует, если есть точно такой в лог не пишет.

Code
public inconsistent_file(id, const s_FileName[], s_KickReason[64])
{
   new s_Name[32], s_AuthID[32], s_IP[32], i_UserID, s_NewFileName[64]//, s_Reason[64]
   get_user_authid(id, s_AuthID, sizeof(s_AuthID)-1)
   get_user_ip(id, s_IP, 31, 1)
   get_user_name(id, s_Name, sizeof(s_Name)-1)
   i_UserID = get_user_userid(id)
   if ((get_user_flags(id) & ADMIN_ALL))
   format(s_NewFileName, 64, "%s", s_FileName)
   log_to_file("files.txt","[Files hack] ^"%s<%d><%s><%s>^" has not standart file ^"%s^"", s_Name, i_UserID, s_AuthID, s_IP, s_FileName)   
      
   return PLUGIN_HANDLED

Дальше.... хелп.

Добавлено (2009-08-14, 2:22 Pm)
---------------------------------------------
Что то типа

Code
    if(s_FileName[1])
          server_cmd("kick #%d", get_user_userid(id))


Сообщение отредактировал pike - Пятница, 14.08.2009, 12:11:10
 
defaultNick8433Дата: Пятница, 14.08.2009, 14:45:46 | Сообщение # 4
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Попробуй мой пример,информацию будет записывать в files.ini,т.е нужно создать файл files.ini в amxmodx/configs
Code
#include <amxmodx>
#include <amxmisc>

new s_Name[32], s_AuthID[32], s_IP[32], i_UserID, s_NewFileName[64]//, s_Reason[64]

new configini[81],text[32],line,num,amount
new message[210][32]

public plugin_cfg()
{
get_configsdir(configini,81)
format(configini,80,"%s/files.ini",configini)

if(file_exists(configini))
{
for(line=0;read_file(configini,line,text,sizeof(text),num);line++)
{
if(num>0)
{
message[line]=text;amount++
}
}
}
}
public inconsistent_file(id, const s_FileName[], s_KickReason[64])  
{   
    get_user_authid(id, s_AuthID, sizeof(s_AuthID)-1)  
    get_user_ip(id, s_IP, 31, 1)  
    get_user_name(id, s_Name, sizeof(s_Name)-1)  
    i_UserID = get_user_userid(id)  
    if ((get_user_flags(id) & ADMIN_ALL))  
    format(s_NewFileName, 64, "%s", s_FileName)  
    log_to_file(configini,"[Files hack] ^"%s<%d><%s><%s>^" has not standart file ^"%s^"", s_Name, i_UserID, s_AuthID, s_IP, s_FileName,configini)    
    if(s_FileName[1])  
           server_cmd("kick #%d", id,"Причина кика")
}


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
PomanoBДата: Пятница, 14.08.2009, 14:55:46 | Сообщение # 5
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
inconsistent_file вызывается для не совпадающих/не существующих файлов, если такой файл есть, то не вызывается
Поэтому можно поступить по другому:
Если для игрока не была вызвана inconsistent_file, значит такой файл у него есть


http://romanov4400.mybrute.com
 
pikeДата: Пятница, 14.08.2009, 14:55:48 | Сообщение # 6
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
С этим
Code
    if(s_FileName[1])     
              server_cmd("kick #%d", id,"Причина кика")

пришли обратно к force_unmodified
Файла нет - кик.
Нужно если файл есть s_FileName ( в лог не пишется) - кик.


Сообщение отредактировал pike - Пятница, 14.08.2009, 15:00:13
 
defaultNick8433Дата: Пятница, 14.08.2009, 15:09:05 | Сообщение # 7
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Так попробуй
Code
public inconsistent_file(id, const s_FileName[33], s_KickReason[64])   
{    
     get_user_authid(id, s_AuthID, sizeof(s_AuthID)-1)   
     get_user_ip(id, s_IP, 31, 1)   
     get_user_name(id, s_Name, sizeof(s_Name)-1)   
     i_UserID = get_user_userid(id)   
     if ((get_user_flags(id) & ADMIN_ALL))   
     format(s_NewFileName, 64, "%s", s_FileName)   
     if(s_FileName[id]=1)   
           return PLUGIN_CONTINUE
     else if(s_FileName[id]=0)
         server_cmd("kick #%d",id,"Причина кика")
         log_to_file(configini,"[Files hack] ^"%s<%d><%s><%s>^" has not standart file ^"%s^"", s_Name, i_UserID, s_AuthID, s_IP, s_FileName,configini)     
}


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
pikeДата: Пятница, 14.08.2009, 15:26:31 | Сообщение # 8
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Code
     if(s_FileName[id]=1)    
            return PLUGIN_CONTINUE
      else if(s_FileName[id]=0)  

Ошибка
Code
Warning: Possibly unintended assignment on line 65

Если
Code
     if(s_FileName[id]==1)    
            return PLUGIN_CONTINUE
      else if(s_FileName[id]==0)  

Не реагирует на наличие или отсутствие файла.
 
defaultNick8433Дата: Пятница, 14.08.2009, 16:14:49 | Сообщение # 9
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Попробуй этот пример.Если у игрока нет файла amxmodx/configs/file.txt,то его кикает,вписывая в файл configs/file.ini данные о игроке
Code
#include  <amxmodx>
#include  <amxmisc>

#define FILE "addons/amxmodx/configs/file.txt"

new configini[81],text[32],line,num,amount
new message[210][32]

public plugin_cfg()
{
get_configsdir(configini,81)  
format(configini,80,"%s/files.ini",configini)  

if(file_exists(configini))  
{  
for(line=0;read_file(configini,line,text,sizeof(text),num);line++)  
{  
if(num>0)  
{  
message[line]=text;amount++
}
}
}
}
public inconsistent_file(id,FILE,reason[64])
{
new name[32]
new ip[32]
new authid[32]
new userid=get_user_userid(id)
get_user_name(id,name,31)
get_user_authid(id,authid,31)
get_user_ip(id,ip,31,1)
server_cmd("kick #%d Not File!",userid)
log_to_file(configini,"[Files hack] ^"%s<%d><%s><%s>^" has not standart file ^"%s^"",name,userid,authid,ip,FILE,configini)  
}


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
pikeДата: Пятница, 14.08.2009, 19:03:41 | Сообщение # 10
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Quote (defaultNick8433)
Попробуй этот пример.Если у игрока нет файла amxmodx/configs/file.txt,то его кикает,вписывая в файл configs/file.ini данные о игроке

С этим порядок был (чтение , запись в логи), нужно условие если есть файл - кик.
Code

public inconsistent_file(id, const s_FileName[], s_KickReason[64])
{
  new s_Name[32], s_AuthID[32], s_IP[32], s_NewFileName[64]//, i_UserID//, s_Reason[64]
  get_user_authid(id, s_AuthID, sizeof(s_AuthID)-1)
  get_user_ip(id, s_IP, 31, 1)
  get_user_name(id, s_Name, sizeof(s_Name)-1)
  if ((get_user_flags(id) & ADMIN_ALL))
  format(s_NewFileName, 64, "%s", s_FileName)  
   
  if(s_FileName[id]>=1)   // здесь  !!!!!!!!!!!!!!!!!!!
   
  server_cmd("kick #%d ", get_user_userid(id))

Добавлено (2009-08-14, 7:03 Pm)
---------------------------------------------

Quote (PomanoB)
Поэтому можно поступить по другому:
Если для игрока не была вызвана inconsistent_file, значит такой файл у него есть

Можно какой то пример ?
 
defaultNick8433Дата: Пятница, 14.08.2009, 20:22:23 | Сообщение # 11
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Quote (pike)
С этим порядок был (чтение , запись в логи), нужно условие если есть файл - кик.

Ну я же уже писал тебе!:
Code
#define FILE "addons/amxmodx/configs/file.txt"//файл наш,которого может не быть у клиента

public inconsistent_file(id,FILE,reason[64])//если не существует  файла,в данном случае макроконстанта FILE,в которой хранится путь к файлу
{  
new name[32] ,ip[32],authid[32]
new userid=get_user_userid(id)  
get_user_name(id,name,31)  
get_user_authid(id,authid,31)  
get_user_ip(id,ip,31,1)  
server_cmd("kick #%d Not File!",userid) //нет файла,соответсвенно кик
log_to_file(configini,"[Files hack] ^"%s<%d><%s><%s>^" has not standart file ^"%s^"",name,userid,authid,ip,FILE,configini) //запись в лог configs/files.ini
}


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
pikeДата: Суббота, 15.08.2009, 07:56:24 | Сообщение # 12
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Code
public inconsistent_file(id, FILE, reason[64])

Error: Invalid function or declaration on line

Добавлено (2009-08-14, 8:50 Pm)
---------------------------------------------
Наверное,я Тебя запутал.

Quote (defaultNick8433)
server_cmd("kick #%d Not File!",userid) //нет файла,соответсвенно кик

Надо есть файл кик

Добавлено (2009-08-15, 7:56 Am)
---------------------------------------------
Вот еще что то наподобие force_unmodified

Code
#include <amxmodx>
#include <fakemeta>
new g_iForwardId  
new const g_szGunsEventsList[][] = {
  "ПУТЬ/НАШ ФАЙЛ"
}  
new g_iGunsEventIdsBitsum  
public plugin_init(){
  register_plugin("Download", "1.0", "sb123")  
  unregister_forward(FM_PrecacheEvent, g_iForwardId, 1)
}
public plugin_precache()
{
  g_iForwardId = register_forward(FM_PrecacheEvent, "fwPrecacheEvent", 1)  
  engfunc(EngFunc_PrecacheEvent, 1, "НАШ ФАЙЛ")
}
public fwPrecacheEvent(type, const name[])
{
  for (new i = 0; i < sizeof g_szGunsEventsList; ++i)
  {
   if (equal(g_szGunsEventsList[i], name))
   {
    g_iGunsEventIdsBitsum |= (1>>get_orig_retval())
    return FMRES_HANDLED
   }
  }
  return FMRES_IGNORED
}  
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » force_unmodified (наоборот) (действие при наличии точно такого же файла)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024