Правила для сервера TF2

kolya2142

Участник
Сообщения
73
Реакции
3
Есть у меня плагин правил для сервера
#pragma semicolon 1

#include <sourcemod>

public OnClientPutInServer(client)
{
if (client > 0 && !IsFakeClient(client))
{
new Handle:panel = CreatePanel();
{
SetPanelTitle(panel, "Правила сервера");
DrawPanelText(panel, "Правила....\n|---|\nСогласны с правилами?");
DrawPanelItem(panel, "Да");
DrawPanelItem(panel, "Нет");
SendPanelToClient(panel, client, Handler, 0);
CloseHandle(panel);
}
}
}

public Handler(Handle:panel, MenuAction:action, param1, param2)
{
if (action == MenuAction_Select)
{
if (param2 == 2)
{
KickClient(param1, "Вы должны согласиться с правилами!");
}
}
}
Помогите пожалуйста сделать так, чтобы после того как игрок нажмет 3 раза "да", больше у него это не появлялась табличка и если нажмет "нет", то бан 10 мин, можно ли реализовать это через sql? В заранее спасибо
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Выведи
SetPanelTitle(panel, "Правила сервера");
DrawPanelText(panel, "Правила....\n|---|\nСогласны с правилами?");
DrawPanelItem(panel, "Да");
DrawPanelItem(panel, "Нет");
SendPanelToClient(panel, client, Handler, 0);
CloseHandle(panel);
в отдельный паблик. Создай переменную.
в паблике Handler сделаешь проверку на if(param == 1) - т.е. если да, то проверка на выполнение условия, в котором будет проверка на значение переменной = 3. Если условие выполнено, то дальше придумаешь что будет. А функции бана я не знаю)

Добавлено через 7 минут
Примерно так:

PHP:
new pTicks

public OnClientPutInServer(client)
{
	if (client > 0 && args < 1) 
	{
		ShowMyPanel(client); 
	}
	return Plugin_Handled; 
}

public ShowMyPanel(client) 
{
	new Handle:panel = CreatePanel(); 
	SetPanelTitle(panel, "Правила сервера");
	DrawPanelText(panel, "Правила....\n|---|\nСогласны с правилами?");
	DrawPanelItem(panel, "Да");
	DrawPanelItem(panel, "Нет"); 
	SendPanelToClient(panel, client, Handler, 0); 
	SendPanelToClient(panel, client, Select_PanelT, 0); 
	CloseHandle(panel); 
} 

public Select_PanelT(Handle:panel, MenuAction:action, client, option) 
{ 
	if (action == MenuAction_Select) 
	{
		if(option == 1)
		{
			pTicks++;
			if(pTicks == 3)
			{
				//что-то будет
			}
			else
			{
				ShowMyPanel(client); 
			}
		{
		if(option == 2)
		{
			//тут будет бан
		}
	}
}
 
Последнее редактирование:

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • #3
Primo, Если я правильно понял, то он вызывает панель, а не меню. А в панели нельзя выбрать пункт.
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Primo, Если я правильно понял, то он вызывает панель, а не меню. А в панели нельзя выбрать пункт.

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

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #7
Primo, И еще лучше создай 1 раз панель с правилами при старте плагина в глобальном Handle и при входе игрока просто отправляй ему.
 
Сверху Снизу