Доступ к готовым решениям

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

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

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

Мануал Система оценки сервера

Armanish

Компетентный
Доброго времени форумчане.
Представляю вам систему оценки вашего сервера
Автор: Я

Для начала добавим в enum игрока pGolos

В любое место мода
PHP:
stock SetGolos(playerid, id)
{
	new string[128], text[64];
	
    if(pData[playerid][pGolos] == 1) // pData заменять на свой enum например PlayerInfo
 		return SendClientMessage(playerid, COLOR_WHITE, "{FFCC00}Вы уже поставили оценку серверу, поставить оценку еще раз - не возможно");

	switch(id)
	{
	    case 0: text = "{33AA33}(Хороший сервер)";
	    case 1: text = "{33AA33}(Лучший сервер)";
	    case 2: text = "{FF0000}(Плохой сервер)";
	    case 3: text = "{FF0000}(Худший сервер)";
		case 4: text = "{FF9900}(Нормальный сервер)";
		case 5: text = "{FF9900}(Не плохой сервер)";
	}
    pData[playerid][pGolos] = 1; // pData заменять на свой enum например PlayerInfo
    PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);

    format(string, sizeof(string), "Вы успешно поставили оценку нашему серверу - %s{ffffff}. Спасибо за оценку!", text);
	SendClientMessage(playerid, COLOR_WHITE, string);

    GetPlayerName(playerid, string, MAX_PLAYER_NAME);

	format(string, sizeof(string), "Игрок {ffcc00}%s{ffffff} поставил оценку нашему серверу %s{ffffff}",string,text);
	AdminChat(COLOR_WHITE,string); // AdminChat заменять на свою функцию отправки сообщения админам.
	return true;
}

В public OnDialogResponse
PHP:
case 1987: 
		{
			ShowPlayerDialog(playerid, 1988, DIALOG_STYLE_LIST, "{FFCC00}Меню оценки сервера",
			"\
				{33AA33}Хороший сервер\n\
				{33AA33}Лучший сервер\n\
				{FF0000}Плохой сервер\n\
				{FF0000}Худший сервер\n\
				{FF9900}Нормальный сервер\n\
				{FF9900}Не плохой сервер", "Выбрать", "Отмена"
			);
		}
		case 1988:
		{
		    switch(listitem)
		    {
		        case 0: SetGolos(playerid, 0);
		        case 1: SetGolos(playerid, 1);
		        case 2: SetGolos(playerid, 2);
		        case 3: SetGolos(playerid, 3);
		        case 4: SetGolos(playerid, 4);
		        case 5: SetGolos(playerid, 5);
		    }
		}

К командам
PHP:
CMD:like(playerid) 
{
	return ShowPlayerDialog(playerid, 1987, DIALOG_STYLE_MSGBOX, "{FFCC00}Меню оценки сервера", 
	"\
		{FFFFFF}Если хотите оценить наш сервер, нажмите на первую кнопку {ffcc00}'Оценить'", "Оценить", "Закрыть"
	);
}

Вариант от #Djuga

PHP:
CMD:like(playerid) return ShowPlayerDialog(playerid, 1987, DIALOG_STYLE_MSGBOX, "{FFCC00}Меню оценки сервера","{FFFFFF}Если хотите оценить наш сервер, нажмите на первую кнопку {ffcc00}'Оценить'", "Оценить", "Закрыть");
PHP:
case 1987:  ShowPlayerDialog(playerid, 1988, DIALOG_STYLE_LIST, "{FFCC00}Меню оценки сервера", "{33AA33}Хороший сервер\n{33AA33}Лучший сервер\n{FF0000}Плохой сервер\n{FF0000}Худший сервер\n{FF9900}Нормальный сервер\n{FF9900}Не плохой сервер", "Выбрать", "Отмена" );

        case 1988: 
        {
if(0 == response)
    return true;
        SetGolos(playerid, listitem);
}
PHP:
new Voice[][] = {
	"{33AA33}(Хороший сервер)",
	"{33AA33}(Лучший сервер)",
	"{FF0000}(Плохой сервер)",
	"{FF0000}(Худший сервер)",
	"{FF9900}(Нормальный сервер)",
	"{FF9900}(Не плохой сервер)"
};

stock SetGolos(playerid, id)
{
    new 
    	string[128], 
    
    if(pData[playerid][pGolos] == 1) // pData заменять на свой enum например PlayerInfo
         return SendClientMessage(playerid, -1, "{FFCC00}Вы уже поставили оценку серверу, поставить оценку еще раз - не возможно");

    pData[playerid][pGolos] = 1; // pData заменять на свой enum например PlayerInfo

    PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);

    format(string, sizeof(string), "Вы успешно поставили оценку нашему серверу - %s{ffffff}. Спасибо за оценку!", Voice[id-1]);
    SendClientMessage(playerid, COLOR_WHITE, string);

    GetPlayerName(playerid, string, MAX_PLAYER_NAME);

    format(string, sizeof(string), "Игрок {ffcc00}%s{ffffff} поставил оценку нашему серверу %s{ffffff}", string, Voice[id-1]);
    AdminChat(COLOR_WHITE,string); // AdminChat заменять на свою функцию отправки сообщения админам.
    return true;
}
 
Последнее редактирование:
Сверху Снизу