|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
force_unmodified (наоборот)
|
|
pike | Дата: Вторник, 11.08.2009, 12:20:37 | Сообщение # 1 |
Полковник
Группа: Пользователи
Сообщений: 207
Статус: Не в сети
| Как реализовать сравнение клиентского файла с серверным, если совпадает действие ?
|
|
| |
Scoott | Дата: Вторник, 11.08.2009, 15:51:05 | Сообщение # 2 |
Сержант
Группа: Пользователи
Сообщений: 35
Статус: Не в сети
| по точнее можеш сказать?
|
|
| |
pike | Дата: Пятница, 14.08.2009, 14:22:32 | Сообщение # 3 |
Полковник
Группа: Пользователи
Сообщений: 207
Статус: Не в сети
| Клиент имеет файл к примеру Х , на сервере есть точно такой же Х. При подключении клиента к серверу файлы сравниваюся,если одинаковые - кик. Добавлено (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
Статус: Не в сети
| Попробуй мой пример,информацию будет записывать в 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
Статус: Не в сети
| inconsistent_file вызывается для не совпадающих/не существующих файлов, если такой файл есть, то не вызывается Поэтому можно поступить по другому: Если для игрока не была вызвана inconsistent_file, значит такой файл у него есть
http://romanov4400.mybrute.com
|
|
| |
pike | Дата: Пятница, 14.08.2009, 14:55:48 | Сообщение # 6 |
Полковник
Группа: Пользователи
Сообщений: 207
Статус: Не в сети
| С этим 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
Статус: Не в сети
| Так попробуй 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
Статус: Не в сети
| 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
Статус: Не в сети
| Попробуй этот пример.Если у игрока нет файла 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
Статус: Не в сети
| 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
Статус: Не в сети
| 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
Статус: Не в сети
| 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 Russian Community © 2006-2024 | |
|
| |