Иконка ресурса

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #21
Re: [ANY] SourceSleuth 1.0.0 (для SourceBans)

Открываем sourcebans.sp

Находим строку 331:

PHP:
FormatEx(Query, sizeof(Query), "SELECT bid FROM %s_bans WHERE ((type = 0 AND authid REGEXP '^STEAM_[0-9]:%s$') OR (type = 1 AND ip = '%s')) AND (length = '0' OR ends > UNIX_TIMESTAMP()) AND RemoveType IS NULL", DatabasePrefix, auth[8], ip);

Заменяем её на:
PHP:
FormatEx(Query, sizeof(Query), "SELECT bid FROM %s_bans WHERE (authid REGEXP '^STEAM_[0-9]:%s$' OR ip = '%s') AND (length = '0' OR ends > UNIX_TIMESTAMP()) AND RemoveType IS NULL", DatabasePrefix, auth[8], ip);

Далее ищем строки 1499-1512:
PHP:
		if( serverID == -1 )
		{
			FormatEx(Query, sizeof(Query), "INSERT INTO %s_banlog (sid ,time ,name ,bid) VALUES  \
				((SELECT sid FROM %s_servers WHERE ip = '%s' AND port = '%s' LIMIT 0,1), UNIX_TIMESTAMP(), '%s', \
				(SELECT bid FROM %s_bans WHERE ((type = 0 AND authid REGEXP '^STEAM_[0-9]:%s$') OR (type = 1 AND ip = '%s')) AND RemoveType IS NULL LIMIT 0,1))", 
				DatabasePrefix, DatabasePrefix, ServerIp, ServerPort, Name, DatabasePrefix, clientAuth[8], clientIp);
		}
		else
		{
			FormatEx(Query, sizeof(Query), "INSERT INTO %s_banlog (sid ,time ,name ,bid) VALUES  \
				(%d, UNIX_TIMESTAMP(), '%s', \
				(SELECT bid FROM %s_bans WHERE ((type = 0 AND authid REGEXP '^STEAM_[0-9]:%s$') OR (type = 1 AND ip = '%s')) AND RemoveType IS NULL LIMIT 0,1))", 
				DatabasePrefix, serverID, Name, DatabasePrefix, clientAuth[8], clientIp);
		}

Заменяем на:
PHP:
		if( serverID == -1 )
		{
			FormatEx(Query, sizeof(Query), "INSERT INTO %s_banlog (sid ,time ,name ,bid) VALUES  \
				((SELECT sid FROM %s_servers WHERE ip = '%s' AND port = '%s' LIMIT 0,1), UNIX_TIMESTAMP(), '%s', \
				(SELECT bid FROM %s_bans WHERE (authid REGEXP '^STEAM_[0-9]:%s$' OR ip = '%s') AND RemoveType IS NULL LIMIT 0,1))", 
				DatabasePrefix, DatabasePrefix, ServerIp, ServerPort, Name, DatabasePrefix, clientAuth[8], clientIp);
		}
		else
		{
			FormatEx(Query, sizeof(Query), "INSERT INTO %s_banlog (sid ,time ,name ,bid) VALUES  \
				(%d, UNIX_TIMESTAMP(), '%s', \
				(SELECT bid FROM %s_bans WHERE (authid REGEXP '^STEAM_[0-9]:%s$' OR ip = '%s') AND RemoveType IS NULL LIMIT 0,1))", 
				DatabasePrefix, serverID, Name, DatabasePrefix, clientAuth[8], clientIp);
		}

И компилируем.


Если заходит клиент и у него есть активный бан и или стим или ип совпадает - он не войдет
 
Последнее редактирование:

radionucleid

Участник
Сообщения
139
Реакции
13
Re: [ANY] SourceSleuth 1.0.0 (для SourceBans)

R1KO, вы меня немного не поняли. Посмотрите вложение.
 

Вложения

  • scripting.zip
    19.5 КБ · Просмотры: 57

CTe6eJIeK_vRn

Участник
Сообщения
2,114
Реакции
1,867
Re: [ANY] SourceSleuth 1.0.0 (для SourceBans)

radionucleid, сделай аналогично в sb_bans.sp
 

radionucleid

Участник
Сообщения
139
Реакции
13
Re: [ANY] SourceSleuth 1.0.0 (для SourceBans)

C-подобный:
    Line 194:                                     WHERE  ((type = %i AND steam REGEXP '^STEAM_[0-9]:%s$') OR (type = %i AND '%s' REGEXP REPLACE(REPLACE(ip, '.', '\\.') , '.0', '..{1,3}'))) \
    Line 195:                                       AND  (length = 0 OR create_time + length * 60 > UNIX_TIMESTAMP()) \
    Line 196:                                       AND  unban_time IS NULL",
    Line 300:                                           AND  steam REGEXP '^STEAM_[0-9]:%s$' \
    Line 301:                                           AND  (length = 0 OR create_time + length * 60 > UNIX_TIMESTAMP()) \
    Line 302:                                           AND  unban_time IS NULL",
    Line 313:                                           AND  ip   = '%s' \
    Line 314:                                           AND  (length = 0 OR create_time + length * 60 > UNIX_TIMESTAMP()) \
    Line 315:                                           AND  unban_time IS NULL",
    Line 335:                                           AND  steam REGEXP '^STEAM_[0-9]:%s$' \
    Line 336:                                           AND  (length = 0 OR create_time + length * 60 > UNIX_TIMESTAMP()) \
    Line 337:                                           AND  unban_time IS NULL",
    Line 343:                                           AND  ip   = '%s' \
    Line 344:                                           AND  (length = 0 OR create_time + length * 60 > UNIX_TIMESTAMP()) \
    Line 345:                                           AND  unban_time IS NULL",
    Line 364:     // Get values from SourceBans config and store them locally
    Line 375:     // Get reasons from SourceBans config and store them locally
    Line 652:                                       AND       (create_time + length * 60 <= %i OR insert_time + 300 <= %i)",
    Line 947:                                           AND    steam          REGEXP '^STEAM_[0-9]:%s$' \
    Line 956:                                           AND    ip             = '%s' \
    Line 1040:                                     VALUES      ((SELECT id FROM {{bans}} WHERE ((type = %i AND steam REGEXP '^STEAM_[0-9]:%s$') OR (type = %i AND '%s' REGEXP REPLACE(REPLACE(ip, '.', '\\.') , '.0', '..{1,3}'))) AND unban_time IS NULL ORDER BY create_time LIMIT 1), '%s', %i, UNIX_TIMESTAMP())",
    Line 1119:                                     WHERE       (type = %i AND steam = '%s') \
    Line 1120:                                        OR       (type = %i AND ip    = '%s')",
    Line 1174:                                         WHERE  ((type = %i AND steam = '%s') OR (type = %i AND ip = '%s')) \
    Line 1175:                                           AND  (length = 0 OR create_time + length * 60 > %i OR (queued = 0 AND insert_time + 300 > %i))",
    Line 1181:                                           AND  (length = 0 OR create_time + length * 60 > %i OR (queued = 0 AND insert_time + 300 > %i))",
что именно то? :)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #25
Re: [ANY] SourceSleuth 1.0.0 (для SourceBans)

radionucleid, начиная с 192-й строки:
PHP:
	Format(sQuery, sizeof(sQuery), "SELECT type, steam, ip, name, reason, length, admin_id, admin_ip, create_time \
	                                FROM   {{bans}} \
	                                WHERE  ((type = %i AND steam REGEXP '^STEAM_[0-9]:%s$') OR (type = %i AND '%s' REGEXP REPLACE(REPLACE(ip, '.', '\\.') , '.0', '..{1,3}'))) \
	                                  AND  (length = 0 OR create_time + length * 60 > UNIX_TIMESTAMP()) \
	                                  AND  unban_time IS NULL",
	                                STEAM_BAN_TYPE, sAuth[8], IP_BAN_TYPE, sIp);

тут нужно менять, но я не могу понять что)
 

radionucleid

Участник
Сообщения
139
Реакции
13
Re: [ANY] SourceSleuth 1.0.0 (для SourceBans)

R1KO, спасибо, как только опробую отпишусь.
 
  • Мне нравится
Реакции: R1KO

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #28
Re: [ANY] SourceSleuth 1.0.0 (для SourceBans)

Исправил все ошибки, сделал как мануал: SourceSleuth
 
Последнее редактирование модератором:

Олег Миронов

Участник
Сообщения
2
Реакции
0
Re: [ANY] SourceSleuth 1.0.0 (для SourceBans)

подскажите как сделать вот у меня стоит соурс банс анти чит забанил его на сервер и потом пишит вы были забанены на данном серве переидите по сылку а если карочи он заходит и ему что бы писало время бана там 1 час например.думаю понели
 

Lominad

Участник
Сообщения
195
Реакции
33
/del
 
Последнее редактирование:

Sniper0770

Участник
Сообщения
58
Реакции
6
R1KO, а можешь изменить запрос БД для нового sourcebans, вот этот, чтобы не пускало на серв если бан по steam и или ip )
 

666FoX666

Участник
Сообщения
702
Реакции
210
Плагин нормально работает сейчас? Если разбанить через СБ игрок нормально разбанится, или до следующего своего входа на сервер?
 
M

miracle

Re: [ANY] SourceSleuth 1.0.0 (для SourceBans)

Исправил все ошибки, сделал как мануал: Сообщество администраторов игровых серверов HLmod.ru
Не подскажешь почему ники отображаются некоректно?
после того как кто-то попытается перезайти (из забанненых) то его ник в какихто иероглифах
 
Сверху Снизу