AMX MOD X
Среда, 11.12.2024, 12:36:28



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Ники игроков из файлов
SVTДата: Вторник, 09.02.2010, 21:24:15 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Привет друганы.
Не нашёл хорошей инфы по описанию функций работы с файлами, поэтому пробовал сам. Научился читать и записывать файлы, но вот как сравнивать их не догнал((
Плыз помогите кто может.
Суть вот в чём. Надоели на сервере игроки с динамикой, но которым сетку не нельзя банить, так как много игроков нормальных на ней. А эти уроды к тому же привязываются к своему нику, чтобы быть в топах. Админы не могут всё время находится, вот и решил я поробовать сделать файл чёрный список. Чтобы при спауне игрок проверялся с файлом и если ни схожк нему применялось наказание, да хоть тот же бан по типу amx_ban vasya ну или в этом роде.

Пробовал разными способами(я понимаю, что они возможно безграмотные, но раздуплял по кодам других программ, которые не делали подобных действий):

Quote

new infp = fopen(conffile, "rt")
if (!infp)
return 0

new name[31]
get_user_name(id,name,49)

while(!feof(infp))
{
fgets(infp, buffer, 63)

эта проверка не понял зачем, но использовал у себя тоже
if(!buffer[0] || buffer[0] == ';' || (buffer[0] == '/' && buffer[1] == '/'))
{
continue
}
а вот как пытался сравнить
if(buffer[0]==name[0])
{
client_cmd(id,"say rabotaet!")
}

И вроде действительно работает, но дело в том что оно и работает с именами похожими, или теми у которых меньше букв, например нужен ник DDDD а работает и DD.

Пробовал и код с этого сайта, по итпу этого

Quote

new lines = file_size(conffile,1)
new file[1024], len
for(new i=0;i<=lines;i++)
{
read_file(conffile,i,file,1023,len)
if(equal(file,"")) {
continue
}
тут я не делал проверку сразу на ник, а пробовал хотябы в ручную написать.
if(!equal(file,"Sadist",6)
{
client_print(0, print_chat, "%s",file)
client_print(id,print_chat,"Sovpalo!")
}
}
return PLUGIN_HANDLED
}

Вот что пробовал. Но пока не вышло. Может я и доделаю, но с моей нехваткой времени это может затянуться н месяцы((
Помогите друзья!


Сообщение отредактировал SVT - Вторник, 09.02.2010, 21:24:39
 
PomanoBДата: Вторник, 09.02.2010, 21:50:59 | Сообщение # 2
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Quote (SVT)
if(!buffer[0] || buffer[0] == ';' || (buffer[0] == '/' && buffer[1] == '/'))

что бы не учитывать комментарии

Проверка:
if (equal(name, buffer))


http://romanov4400.mybrute.com
 
SVTДата: Среда, 10.02.2010, 20:06:08 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Спасибо друг!
Немного не так как ты сказал. ПОтому что если чисто так написать не работало. Я понял, что это изза того, что нужен размер ника, а вот после многочистленных попыток получилось)
if (equal(name, buffer,strlen(name)))
Но всё равно спасибо, за наставления на путь истинный)!!!
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024