Перейти к содержанию
Авторизация  
ZSCRIPTER

Рейтинг Агентов поддержки

Рекомендуемые сообщения

ZSCRIPTER

Всем привет. Многие думали сделать систему репутации администрации либо агентов поддержки

Предостовляю вам свой вариант.

 

Начнем с команды для ответа

CMD:ans(playerid,params[])
{
    if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WARNING,"Не флуди!");
    antiflood[playerid]++;
    if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!");// тту начинаются обычние проверки
    if(PLAYER_DATA[playerid][data_SUPPORTLVL] < 1) return true;
	if(sscanf(params,"us[100]",params[0],params[1])) return SendClientMessage(playerid,COLOR_WARNING,"Используйте: /ans [ид] [текст]");
	if(!IsPlayerConnected(params[0]))return  SendClientMessage(playerid,COLOR_WARNING,"Данного ID нет на сервере!");
	if(PLAYER_DATA[params[0]][data_LOGGED] == false)return  SendClientMessage(playerid,COLOR_WARNING,"Данный игрок не прошел авторизацию!");
    NotReklama(playerid, params[1]);
    PLAYER_DATA[playerid][data_THREP] += 1;// выдаем в БД для подальшой проверке
	new query[100], string[300], string1[300], str[300];
	mysql_format(dbHandle,query,sizeof(query),"UPDATE `accounts` SET `threp` = '%d' WHERE `name` = '%e'",PLAYER_DATA[playerid][data_THREP],PLAYER_DATA[playerid][data_NAME]);//запрос в БД для изменение значение
	mysql_function_query(dbHandle,query,false,"","");

    format(string, sizeof(string), "Агент поддержки #%d ответил %s[%d]: {ffa141}%s", PLAYER_DATA[playerid][data_SUPPORTID],PLAYER_DATA[params[0]][data_NAME],params[0],params[1]);//в админ чат чтобы небыло накрутки репутации и небыло слива
    format(string1, sizeof(string1), "Агент поддержки #%d ответил %s[%d]: {ff5204}%s", PLAYER_DATA[playerid][data_SUPPORTID],PLAYER_DATA[params[0]][data_NAME],params[0],params[1]);//в хелпер чат чтобы другие видели что вы ответили
    format(str, sizeof(str), "Агент #%d ответил вам: %s", PLAYER_DATA[playerid][data_SUPPORTID],params[1]);// ответ на вопрос
    SendClientMessage(params[0], 0xFFCD00AA, str);
    SendAdminMessage(0xff0001FF, string);
    SendSupportMessage(0xFF5204FF, string1);
    return true;
}

продолжим с команды для благодарности

CMD:thanks(playerid,params[])
{
	if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!");//тут также обычные проверки
	if(sscanf(params,"ud",params[0])) return SendClientMessage(playerid,COLOR_WARNING,"Используйте: /th(/thanks [ID]");
	if(PLAYER_DATA[params[0]][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Данного ID нет на сервере!");
	if(PLAYER_DATA[params[0]][data_SUPPORTLVL] == 0) return SendClientMessage(playerid,COLOR_WARNING,"Данный игрок не агент поддержки!");
	if(PLAYER_DATA[params[0]][data_THREP] == 0) return SendClientMessage(playerid,COLOR_WARNING,"Вы уже благодарили данного агента поддержки!");//если в БД будет 0 значит благодарность уже начислялась и доступа к кмд не будет, если в БД будет 1 то можно все ище благодарить
	PLAYER_DATA[playerid][data_THREP] += -1;// после использование данной команды в бд снимается проверка была ли благодарность......
	PLAYER_DATA[params[0]][data_HREP] += 1;// при использование команды добавляем +1 к репутации
	new query[100],str[145];
	mysql_format(dbHandle,query,sizeof(query),"UPDATE `accounts` SET `threp` = '%d' WHERE `name` = '%e'",PLAYER_DATA[playerid][data_THREP],PLAYER_DATA[playerid][data_NAME]);
	mysql_function_query(dbHandle,query,false,"","");
	format(str,sizeof(str),"Спасибо за благодарность");//ответ игроку за то что он отблагодарил хелпера
	SendClientMessage(playerid,0xCC6633FF,str);
	format(str,sizeof(str),"Игрок %s[%d] поблагодарил %s[%d] за помощь ( Репутация: %d )",PLAYER_DATA[playerid][data_NAME],playerid,PLAYER_DATA[params[0]][data_NAME],params[0],PLAYER_DATA[playerid][data_HREP]);//в хелпер чат, чтобы было видно какой игрок кому выдал благодарность
	SendSupportMessage(0xFF5204FF, str);
	return true;
}
data_TIMEHREP,
data_THREP,
data_HREP,

тепер создаем таймер, дабы небыло такого что игроку ответили и он копил копил благодарности а потом одному агенту все и отдал

if(PLAYER_DATA[playerid][data_TIMEHREP] == 105)
{
    PLAYER_DATA[playerid][data_TIMEHREP] = 0;






    if(strfind(PLAYER_DATA[playerid][data_CHAT_TEXT], "", true) == -1) strmid(PLAYER_DATA[playerid][data_CHAT_TEXT], "", 0, 128, 128);






    if(PLAYER_DATA[playerid][data_THREP] >= 1)
{
    PLAYER_DATA[playerid][data_THREP] -= 1;
if(PLAYER_DATA[playerid][data_TIMEHREP] == 100)
{
PLAYER_DATA[playerid][data_TIMEHREP] = 100;
SendClientMessage(playerid,0x82FA58FF,"Не забудьте отблагодарить агента поддержки который смог вам помоч. /thanks(/th)");
}
}


}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Reyn

Не проще сделать диалог? После того как ответил администратор и.т.д появляется у игрока диалог с выбором плохой ответ или хороший.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ZSCRIPTER

@Reyn,ну, ето будет немного мешать, ведь игрок задал вопрос, ему ответил админ а он допустим едет и из-за того что окно появилось он утопился в воде и все ет плохая идея, а так Не будет никак мешать, и после ответа, в течение 1:45 можно поблагодарить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao

Согласен да.Можно было сделать копию аризоны(не пиар) на диалогах.И сохранять те ответы в бд.Красиво бы вышло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Smolin

Не вижу подробных объяснений в данном туторе , только готовый копипаст . Тему переношу .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegas

Не твой вариант. Автора укажи, или хотябы мод , откуда взял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ZSCRIPTER

@Vegas, сам делал, около 45 минут сидел думал, на форуме можно даже найти тему где я просил помоч

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Arsen@

боже ты мой... ты если делаешь мануал то хотяб объясняй что и для чего и куда.

new query[100], string[300], string1[300], str[300]; зачем ты так код насилуешь? 

SendAdminMessage

SendSupportMessage

data_TIMEHREP,

data_THREP,
data_HREP,

data_SUPPORTLVL

antiflood[playerid]

dbHandle

COLOR_WARNING

mysql_function_query

data_NAME

data_SUPPORTID

что это? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.