Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Система хелперов. [Engine RP]

Статус
В этой теме нельзя размещать новые ответы.

LivingThings

Умник
Hello all.

В pInfo:
PHP:
pHelper
Далее в stock LoadAccount ищем примерно такую строку:
sscanf(query,
PHP:
"p<|>is[32]s[32]s[16]is[32]s[64]iiiis[16]iiiiiiis[16]s[40]s[160]s[40]iiiis[16]s[20]iiiis[32]s[32]fiiiiis[32]s[32]iiiiiiiiis[32]iiiiiii",
и добавляем в конец одну ''i''.

Чуть ниже ищем примерно такое:
PHP:
		PlayerInfo[playerid][pMarried],
		PlayerInfo[playerid][pWhoMarried],
		PlayerInfo[playerid][pReferal]);
Добавляем pHelper:
PHP:
                PlayerInfo[playerid][pMarried],
		PlayerInfo[playerid][pWhoMarried],
		PlayerInfo[playerid][pReferal],
                PlayerInfo[playerid][pHelper]);
В stock LoadAccount:
PHP:
if(PlayerInfo[playerid][pHelper] > 0) SendMes(playerid, COLOR_BLUE, "Возможности хелпера 1 уровня - активированы!");
В stock SaveAccount:
PHP:
	format(src, sizeof(src), "helper='%i',", PlayerInfo[playerid][pHelper]);
	strcat(query, src, sizeof(query));
В любое место:
PHP:
stock SendHelperMessage(color, str[])
{
	foreach(Player, i)
	{
	        if(!IsPlayerConnected(i)) continue;
		if(PlayerInfo[i][pHelper] > 0) SendClientMessage(i, color, str);
	}
	return 1;
}
в stock ResetNow:
PHP:
PlayerInfo[playerid][pHelper] = false
CMD:
PHP:
CMD:makehelper(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return 1;
    if(PlayerInfo[playerid][pAdmin] < 1337 || AdminLogged[playerid] == false) return 1;
   	if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_LIGHTRED, "Использование: /makehelper [ ид игрока ]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, PlayerIsNotOnline);
	if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, -1, PlayerIsNotLogged);
	if(PlayerInfo[params[0]][pLeader] != 0) return SendClientMessage(playerid, -1, "{FF0000}[ОШИБКА]{FFFFFF} Указанный игрок является лидером фракции.");
	if(PlayerInfo[params[0]][pHelper] != 0) return SendClientMessage(playerid, -1, "{FF0000}[ОШИБКА]{FFFFFF} Указанный игрок уже является хелпером.");
	SendMes(playerid, COLOR_BLUE, "Вы назначили игрока %s хелпером.", sendername(params[0]));
	SendMes(params[0], COLOR_BLUE, "Вы были назначены хелпером Гл.Администратором %s.", sendername(playerid));
	PlayerInfo[params[0]][pHelper] = 1;
	format(string, 110, "[A] Администратор %s, назначил(а) игрока %s хелпером.", sendername(playerid), sendername(params[0])), SendAdminMessage(COLOR_BLUE, string);
	return 1;
}
CMD:hhelp(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return 1;
	if(PlayerInfo[playerid][pHelper] < 1) return 1;
	ShowPlayerDialog(playerid, D_NULL, DIALOG_STYLE_MSGBOX, " ", "1. [ /ans ] - ответить на заданный вопрос.\n2. [ /hc ] - чат между хелперами.", "Отмена", "");
	return 1;
}
CMD:ans(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return 1;
	if(PlayerInfo[playerid][pHelper] < 1) return 1;
	if(sscanf(params, "us", params[0], params[1])) return SendClientMessage(playerid, COLOR_LIGHTRED, "Использование: /ans [ ид игрока ] [ ответ ]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, PlayerIsNotOnline);
	if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, -1, PlayerIsNotLogged);
	format(string, 200, "[H] Хелпер %s, ответил(а) на вопрос игроку %s: %s", sendername(playerid), sendername(params[0]), params[1]), SendHelperMessage(COLOR_TOMATO, string);
	SendMes(params[0], COLOR_ALLDEPT, "Ответ от хелпера %s: {33AA33}%s", sendername(playerid), params[1]);
	return 1;
}

CMD:hc(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return 1;
	if(PlayerInfo[playerid][pHelper] < 1) return 1;
	if(sscanf(params, "s", params[0])) return SendClientMessage(playerid, COLOR_LIGHTRED, "Использование: /hc [ сообщение ]");
	format(string, 200, "[H] Хелпер %s: %s", sendername(playerid), params[0]), SendHelperMessage(COLOR_YELLOW2, string);
	return 1;
}

CMD:unmakehelper(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return 1;
    if(PlayerInfo[playerid][pAdmin] < 6 || AdminLogged[playerid] == false) return 1;
   	if(sscanf(params, "us[70]", params[0], params[1])) return SendClientMessage(playerid, COLOR_LIGHTRED, "Использование: /unmakehelper [ ид игрока ] [ причина ]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, PlayerIsNotOnline);
	if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, -1, PlayerIsNotLogged);
	if(PlayerInfo[params[0]][pHelper] < 1) return SendClientMessage(playerid, -1, "{FF0000}[ОШИБКА]{FFFFFF} Указанный игрок не является хелпером.");
	SendMes(playerid, COLOR_BLUE, "Вы сняли игрока %s с поста хелпера. Причина: %s", sendername(params[0]), params[1]);
	SendMes(params[0], COLOR_BLUE, "Вы были сняты с поста хелпера Гл.Администратором %s. Причина: %s", sendername(playerid), params[1]);
	PlayerInfo[params[0]][pHelper] = 0;
	return 1;
}
CMD:vopros(playerid)
{
	new helpers = 0;
	foreach(Player, i)
	{
		if(!IsPlayerConnected(i) || PlayerLogged[i]) continue;
		if(PlayerInfo[i][pHelper] < 1) continue;
		helpers++;
	}
	if(helpers == 0) return SendClientMessage(playerid, -1, "{FF0000}[ОШИБКА]{FFFFFF} Невозможно задать вопрос, т.к нет хелперов в онлайне.");
	ShowPlayerDialog(playerid, D_MAIN+10, DIALOG_STYLE_INPUT, " ", "Введите вопрос, который хотите задать хелперам сервера.", "Далее", "Отмена");
	return 1;
}
В OnDialogResponse:
PHP:
		case D_MAIN+10:
		{
		    if(!response) return 1;
		    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, D_MAIN+10, DIALOG_STYLE_INPUT, " ", "Введите вопрос, который хотите задать хелперам сервера.", "Далее", "Отмена");
            if(GetPVarInt(playerid,"AntiFloodAsk") > gettime()) return SendClientMessage(playerid, -1, "{FF0000}[ОШИБКА]{FFFFFF} Посылать вопрос(ы) хелперам, можно раз в 30 секунд.");
			SetPVarInt(playerid,"AntiFloodAsk",gettime() + 30);
			format(string, 128, "[H] Вопрос от игрока %s[%i]: %s", sendername(playerid), playerid, inputtext), SendHelperMessage(COLOR_LIGHTGREEN, string);
		}
Автор мануала/кода - я!
Скриншоты:





 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу