После админского голосования за бан игрока, бан не попадает в Систему банов

★Сириус★

Участник
Сообщения
743
Реакции
197
Ребят, давно заметил такую вещь.
К примеру играем на сервере, вдруг какой-то игрок накосячил не сильно, и тут как и бан не хочется давать ну и наказать нужно, поэтому к примеру в этой ситуации через админку админ запускает голосование
C-подобный:
sm_voteban "игрок"
игроки проголосовали за "да" (тоесть да забанить игрока на 30 минут)
игрок уходит в бан, но этот бан не высвечивается в Системе банов

Как можно сделать, чтобы подобные баны высвечивались в системе банов?
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Сириус,
За 30 минут успеваешь сервер перезапустить ? Или это так важно что бы отмечалось что игрок был забанен голосованием
 

★Сириус★

Участник
Сообщения
743
Реакции
197
у меня важно, я слежу за действиями админов, и попадется неадекватный админ будет баловаться таким образом, а забаненый игрок и жалобу подать не сможет на форуме, так как этот бан не зафиксирован в систме банов

Добавлено через 46 секунд
За 30 минут успеваешь сервер перезапустить ?
нет ни чего я не перезапускаю, причину я написал выше

Добавлено через 18 минут
в общем нашел я плагин тут: http://forums.alliedmods.net/showthread.php?t=197790
но но там косяк один, сразу вот сколько банов мне выдал, банил себя

4487553.png


править походу нужно

Добавлено через 20 минут
может кто-нибудь поправит плагин?
 
Последнее редактирование:

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
★Сириус★, вот простой способ, дописываем плагин базе вотест, в нлавном файле в фуекции public Handler_VoteCallback(Handle:menu, MenuAction:action, param1, param2) строка case (voteType:ban):
ищим
PHP:
BanClient(g_voteClient[VOTE_CLIENTID],
							  30,
							  BANFLAG_AUTO,
							  g_voteArg,
							  "Banned by vote",
							  "sm_voteban");
И делаем так
PHP:
if (SOURCEBANS_AVAILABLE())
					{
						SBBanPlayer(0, g_voteClient[VOTE_CLIENTID], 30, "Banned by vote");
					}
					else
					{
						BanClient(g_voteClient[VOTE_CLIENTID],
								30,
								BANFLAG_AUTO,
								g_voteArg,
								"Banned by vote",
								"sm_voteban");
					}
А вверху добавляем эти строчки
PHP:
#define SOURCEBANS_AVAILABLE()	(GetFeatureStatus(FeatureType_Native, "SBBanPlayer") == FeatureStatus_Available)
native SBBanPlayer(client, target, time, String:reason[]);
Взял со смака.
перевод native SBBanPlayer(Кто банит, кого баним, время, причина);

А можно тупа сделать через
PHP:
ServerCommand("sm_ban #%d %d \"%s\"", g_voteClient[VOTE_CLIENTID], 30, "Banned by vote");
Заместо BanClient. На счёт решётки в команде не уверен))
 
Последнее редактирование:

★Сириус★

Участник
Сообщения
743
Реакции
197
★Сириус★, вот простой способ, дописываем плагин базе вотест, в нлавном файле в фуекции public Handler_VoteCallback(Handle:menu, MenuAction:action, param1, param2) строка case (voteType:ban):
ищим
PHP:
BanClient(g_voteClient[VOTE_CLIENTID],
							  30,
							  BANFLAG_AUTO,
							  g_voteArg,
							  "Banned by vote",
							  "sm_voteban");
И делаем так
PHP:
if (SOURCEBANS_AVAILABLE())
					{
						SBBanPlayer(0, g_voteClient[VOTE_CLIENTID], 30, "Banned by vote");
					}
					else
					{
						BanClient(g_voteClient[VOTE_CLIENTID],
								30,
								BANFLAG_AUTO,
								g_voteArg,
								"Banned by vote",
								"sm_voteban");
					}
А вверху добавляем эти строчки
PHP:
#define SOURCEBANS_AVAILABLE()	(GetFeatureStatus(FeatureType_Native, "SBBanPlayer") == FeatureStatus_Available)
native SBBanPlayer(client, target, time, String:reason[]);

попробовал этот вариант, работает,
но что это за ошибка при компиляции?
4502914.png
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
★Сириус★, это не ошибка, а предупреждение, ни чего особенного, просто добавь #pragma tabsize 0 в начале скрипта к #pragma semicolon 1. Такое бывает когда используют пробел и таб. Тот параметр избавляет от таких предупреждений.
+ убери пробелы в пути сервера.
+ можно компилировать один файл, просто перетаскивая на компилятор.
 

★Сириус★

Участник
Сообщения
743
Реакции
197
а у меня еще вопрос:
я сделал причину в условии на русско тоесть так:
C-подобный:
if (SOURCEBANS_AVAILABLE()) 
                    { 
                        SBBanPlayer(0, g_voteClient[VOTE_CLIENTID], 30, "[COLOR="Red"]Забанен через голосование админа[/COLOR]"); 
                    } 
                    else 
                    { 
                        BanClient(g_voteClient[VOTE_CLIENTID], 
                                30, 
                                BANFLAG_AUTO, 
                                g_voteArg, 
                                "Banned by vote", 
                                "sm_voteban"); 
                    }
и в каком случае у меня будет из это условия применяться эта функция:
C-подобный:
                        BanClient(g_voteClient[VOTE_CLIENTID], 
                                30, 
                                BANFLAG_AUTO, 
                                g_voteArg, 
                                "Banned by vote", 
                                "sm_voteban");
(здесь я причину оставил на английском)
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Если сделал причину на русском, то меняй кодировку на утф8 без бом. Тот код будет выполнятся если сб не будет работать.
 

KapaT

Эгоист
Сообщения
1,988
Реакции
535
★Сириус★, скинь готовый плагин может кому то и пригодится
 

★Сириус★

Участник
Сообщения
743
Реакции
197

Вложения

  • basevotes.sp
    12.5 КБ · Просмотры: 33
  • basevotes.smx
    14.5 КБ · Просмотры: 21

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Сириус,
Так получается не известно кто из админов начал голосование
Я просто заметил только Vote_Admin
 

★Сириус★

Участник
Сообщения
743
Реакции
197
Сириус,
Так получается не известно кто из админов начал голосование
Я просто заметил только Vote_Admin

будет писать вообще забанен админом Console
Как сделать чтобы писался тот админ который запустил голосование. я хрен знает

А Vote_Admin я сделал просто с помощью этого: http://hlmod.ru/forum/showpost.php?p=89741&postcount=16

Добавлено через 4 минуты
только в ../pages/page.banlist.php
добавил:
PHP:
    if (strpos($data['reason'],'Забанен через голосование админа') !== false) $data['admin'] = 'Vote_Admin';
а в ../index.php
PHP:
function callback_page($buffer) 
{ 
    $from=array( 
        '"listtable_1"><font color="#555555"><center>Vote_Admin</center></font></td>' 
    ); 
    $to=array( 
         '"listtable_1"><font color="#5f91f5"><center>Vote_Admin</center></font></td>' 
        ); 
  return str_replace($from,$to, $buffer); 
}
 
Последнее редактирование:

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
★Сириус★, думаю, что без соответствующей модификации исходного кода SourceBans можно, но это будет немного не так, как задумывалось:
Для того, чтобы в сб попала информация с администратором, нужно банить от админа, т.е. в строке
C-подобный:
SBBanPlayer(0, g_voteClient[VOTE_CLIENTID], 30, "Забанен через голосование админа");
вместо нуля написать client администратора, запустившего голосование. Казалось бы, нет ничего сложного. Но ведь администратор может выйти до результатов голосования, и тогда неизвестно, как поведет себя сб.
Вот как можно сделать, чтобы, если администратор вышел, голосование (успешное) не производило бана во избежание ошибок, а если он остался, то в сб бан бы был от него:
в ...\scripting\basevotes.sp:
Добавить новую переменную new g_iCallerUserId;
Изменить
C-подобный:
SBBanPlayer(0, g_voteClient[VOTE_CLIENTID], 30, "Забанен через голосование админа");
на
C-подобный:
					new iClient = GetClientOfUserId(g_iCallerUserId);
					if ( iClient != 0 )
					{
						SBBanPlayer(iClient, g_voteClient[VOTE_CLIENTID], 30, "Забанен через голосование админа");
					}
в ...\scripting\basevotes\voteban.sp:
C-подобный:
DisplayVoteBanMenu(client, target)
{
	g_voteClient[VOTE_CLIENTID] = target;
	g_voteClient[VOTE_USERID] = GetClientUserId(target);
	g_iCallerUserId = GetClientUserId(client); // добавляем эту строку, чтобы запомнить UserId администратора, который начал голосование.

	// дальше без изменений

P.S. Код не проверял, но по идее всё должно работать как надо.
 

★Сириус★

Участник
Сообщения
743
Реакции
197
Reiko1231, во спасибо, все работает и ошибок в логах нет. Теперь как нужно все
Вот для ленивых готовый плагин и исходники
sm-1.5.0
 

Вложения

  • cstrike.zip
    22.4 КБ · Просмотры: 71

Alcone

optizone.ru
Сообщения
318
Реакции
73
Было бы не плохо если бы еще был фикс на customvotes, запущенные голосование админом вообще не поподают в сб =\
 
Сверху Снизу