Голосование за AWP

m9c0

Участник
Сообщения
159
Реакции
72
Всем привет, друзья!

Может быть уже есть такой плагин (на АМ я такого не нашел)
Или может быть кто-то согласится его написать.

Суть плагина такова: если ЛЮБОЙ игрок на сервере CSGO напишет в чат !voteawp, то перед ним открывается меню (как админ меню SM), в котором ему предлагается запустить одно из голосований:
1. Голосование за запрет AWP на карте
2. Голосование за разрешение AWP на карте
Далее запускается голосование (наподобие как за смену карты SM).
- Если голосование за запрет AWP проходит успешно, то ни один игрок не может купить AWP и поднять его.
- Если голосование за запрет AWP провалилось, то ничего не происходит (то есть все могут играть с AWP).
- Если голосование за разрешение AWP проходит успешно, то все игроки могут купить AWP и поднять его.
- Если голосование за разрешение AWP провалилось, то все игроки не могут покупать AWP и поднять его.

И было бы классно, чтобы этот плагин был совместим с плагином Weapon Restrict.
 

m9c0

Участник
Сообщения
159
Реакции
72
да нее, ребят, я наверное неправильно выразился.
хотелось бы, чтобы плагин работал не как voteban, то есть не нужно, чтобы каждый игрок писал в чате !voteawp , тем самым отдавая свой голос
а нужно, чтобы один игрок написал !voteawp, выбирал необходимое голосование
1. Голосование за запрет AWP на карте
2. Голосование за разрешение AWP на карте
а потом бы всем игрокам на сервере выпадало меню голосования (как за смену карты SM) с вариантами ДА и НЕТ

Например:
Хотите ли Вы запретить AWP на карте?
1. Да
2. Нет
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756
1. Голосование за запрет AWP на карте
2. Голосование за разрешение AWP на карте
Разве это не одно и то же, по сути?
Сделал один вопрос: 50% голосов для ответа "Нет" - разрешает AWP, более половины проголосовавших за "Да" - запрещает.
PHP:
new Handle:g_hMenu, g_iTime;

public OnPluginStart()
{
	SetMenuTitle(g_hMenu = CreateMenu(SelectMenu, MenuAction_Select), "Хотите ли Вы запретить AWP на карте?\n \n");
	SetVoteResultCallback(g_hMenu, VoteResults);
	AddMenuItem(g_hMenu, "", "Да");
	AddMenuItem(g_hMenu, "", "Нет");
	SetMenuExitButton(g_hMenu, false);
	decl Handle:cvar;
	HookConVarChange(cvar = CreateConVar("weapon_restrict_vote_time",	"60",	"Продолжительность голосования, секунд.", _, true, 0.0), ChangeCvar_Time);
	g_iTime = GetConVarInt(cvar);
}

public ChangeCvar_Time(Handle:convar, String:oldValue[], String:newValue[]) g_iTime = GetConVarInt(convar);

public SelectMenu(Handle:menu, MenuAction:action, param1, param2){}

public OnClientSayCommand_Post(client, const String:command[], const String:sArgs[])
{
	if ((strcmp(sArgs[1], "voteawp", false) == 0 || strcmp(sArgs, "voteawp", false) == 0) && client)
	{
		if (IsVoteInProgress()) PrintToChat(client, "\x01\04[VoteAWP] \x01Это или другое \x05голосование \x03уже в процессе\x01!");
		else
		{
			decl players[MaxClients];
			new total;
			for (new i = 1; i <= MaxClients; ++i)
			{
				if (IsClientInGame(i) && !IsFakeClient(i)) players[total++] = i;
			}
			VoteMenu(g_hMenu, players, total, g_iTime);
		}
	}
}

public VoteResults(Handle:menu, num_votes, num_clients, const client_info[][2], num_items, const item_info[][2])
{
	decl String:winner[19];
	if (item_info[0][VOTEINFO_ITEM_VOTES] > item_info[1][VOTEINFO_ITEM_VOTES])
	{
		ServerCommand("sm_restrict_awp_ct 0;sm_restrict_awp_t 0");
		winner = "запретить";
	}
	else
	{
		ServerCommand("sm_restrict_awp_ct -1;sm_restrict_awp_t -1");
		winner = "разрешить";
	}
	for (new i = 1; i <= MaxClients; ++i)
	{
		if (IsClientInGame(i)) PrintToChat(i, "\x01\04[VoteAWP] \x01Игроки предпочли \x03%s \x01оружие \x05AWP\x01!", winner);
	}
}
Квар weapon_restrict_vote_time - длительность голосования в секундах.
Требуется:
 
Последнее редактирование:
  • Мне нравится
Реакции: m9c0

m9c0

Участник
Сообщения
159
Реакции
72
@AlmazON, я люблю тебя мужик, ты лучший!
Пошел тестить)
--- Добавлено позже ---
@AlmazON, Все работает. Но вот только еще одна просьба, не мог бы ты сделать, чтобы !voteawp работал и без "!" тоже.
 
Последнее редактирование:

komashchenko

Идиот
Сообщения
916
Реакции
2,570
Оффтоп
 

m9c0

Участник
Сообщения
159
Реакции
72
@AlmazON, братан, сорян, я не знал, как это реализауется.
ставлю задачу более подробно:
1. вызов голосования командами: voteawp и !voteawp
2. cделай пожалуйста, чтобы в чате выводилась инфа, какой вариант выиграл голосование!
3. сделай пожалуйста конфиг с кваром о длительности голосования (необязательно)
Заранее благодарен)
 
Последнее редактирование:

m9c0

Участник
Сообщения
159
Реакции
72
@AlmazON, ну чтож, и на этом спасибо!
 
Последнее редактирование:

m9c0

Участник
Сообщения
159
Реакции
72
@AlmazON, ну так я еще вчера вечером скопировал, после того, как ты добавил квар о длительности голосования и сообщение в чате о результате голосования.
Версия 1.0.1 потому, что это 2е твое изменение, так что чисто технически, я читаю так будет правильнее. Версия 1.0.0 если что, у меня тоже есть
 

m9c0

Участник
Сообщения
159
Реакции
72
@AlmazON, хорошо, исправлю. спасибо!

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

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756
Он был бы замечательным, если, скажем, добавить в него интеллектуальности: AWP уже запрещено, то выдать текст:
Голосование за разрешение AWP на карте
Если разрешено:
Хотите ли Вы запретить AWP на карте?
Также добавить файл перевода для иностранцев и запрет спамом повторного голосования. А так, больше показательный.
 

m9c0

Участник
Сообщения
159
Реакции
72
@AlmazON, проверил voteawp, теперь все в порядке. спасибо!
--- Добавлено позже ---
@AlmazON, есть еще несколько предложений, касательно данного плагина. Реализовывать их или нет, дело твое...
1. сделать возможность настройки через конфиг, длительности голосования
2. сделать возможность настройки через конфиг, оружия или нескольких оружий (например чтобы можно было к примеру указать "weapon_awp;weapon_scar-20;weapon_ssg08" и .т.п. Но в таком случае уже нужно будет переписывать большую часть плагина и в соответствии с вышеуказанным оружием в конфиге, менять сам вопрос в голосовании. Я думаю, что это сложно будет реализовать, поэтому смотри сам.
3. в случае, если в голосовании выигрывает вариант "разрешить", то чтобы данные о ограничениях на то или иное оружие тянулись из конфигов Weapon Restrict. Например, если к примеру на сервере играется карта $2000$, и Weapon Restrict настроен таким образом, что оружие ограничивается на каждой карте по своему, то чтобы инфа тянулась из этих конфигов в случае выигрыша варианта "разрешить". Но опять же, я не знаю, насколько сложно это реализовать.

Сейчас плагин достаточно прост, а если в него добавить тот функционал, который я предлагаю, боюсь что он обрастет парой сотен строчек кода, что в последствии повлечет за собой более высокую нагрузку на сервер.

А с другой стороны, можно не мудрить и всего лишь сделать копию данного плагина и поменять в нем вопрос, квар для ограничения желаемого оружия и все. Но в таком случае будет один и тот же код повторяться в Voteawp, VoteScar и т.д., что тоже негативно скажется на пожирании ресурсов машины.
--- Добавлено позже ---
Также еще есть предложение сделать плагин за запрет использования на сервере так называемых анимированных клантегов и ников, а то эта ерунда флудит в консоль, лично меня это напрягает
 

Вложения

  • voteawprestrict.sp
    2.4 КБ · Просмотры: 13
  • voteawprestrict.smx
    5.2 КБ · Просмотры: 8
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756
через конфиг, длительности голосования
Просто в server.cfg вбей квар. Ради него одного нет смысла делать отдельный конфиг.
weapon_awp;weapon_scar-20;weapon_ssg08
Будто все игроки знают, что это за оружие. Оффтоп
данные о ограничениях на то или иное оружие тянулись из конфигов Weapon Restrict
Тогда при старте карты всё это оружие будет запрещено/разрешено изначально по его конфигу.
 

Туник

Участник
Сообщения
1,281
Реакции
264
Народ а на ксго данный плагин не работает что-ль ?
Залил на сервер вылазит меню люди голосуют на запрет но авп купить все же можно, с этого раунда и с нового, и при смене карты не чего ни поменялось!
Плагин интересен но требует доработки))
 

m9c0

Участник
Сообщения
159
Реакции
72
@Mr.Credo, для работы плагина, необходим установленный на сервер плагин Weapon Restrict

@AlmazON, так как ты автор плагина, я думаю, тебе пора запилить тему на HLMODe с релизом этого плагина =)
--- Добавлено позже ---
@AlmazON, братан, нашел несколько багов.

1. Если уже запущено голосование voteawp и оно еще не закончилось, то можно запустить еще одно. Надо это как то ограничить.

2. Если AWP запрещено через конфиги или админку, и игроки хотят его разрешить, то при написании в чат voteawp, выходит вопрос "Хотите ли Вы запретить AWP?" с вариантами ответов:
- "Да", при выборе которого, AWP разрешается (оно действительно разрешается, его можно подобрать\купить и также об этом говорится в чате сервера, что AWP "разрешено").
- "Нет", при выборе которого, AWP запрещается (оно действительно запрещается, его нельзя подобрать\купить и также об этом говорится в чате сервера, что AWP "запрещено").
ПыСы: возможно это баг Weapon Restrict
 
Последнее редактирование:
Сверху Снизу